Андрей Винокуров. Как устроен блочный шифр?
Классическая, или одно-ключевая криптография решает фактически лишь две задачи: защиту передаваемых сообщений от прочтения и от модификации посторонними лицами. Она опирается на использование симметричных алгоритмов шифрования, в которых за- и расшифрование отличаются только порядком выполнения и направлением некоторых простых шагов. Эти алгоритмы используют один и тот же секретный элемент (ключ), и второе действие (расшифрование) является простым обращением первого (зашифрования). Поэтому каждый из участников обмена может как зашифровать, так и расшифровать сообщение. По причине большой избыточности естественных языков непосредственно в зашифрованное сообщение чрезвычайно трудно внести осмысленное изменение, поэтому классическая криптография обеспечивает также защиту от навязывания ложных данных. Если же естественной избыточности оказывается недостаточно для надежной защиты сообщения от модификации, она может быть искусственно увеличена путем добавления к нему специальной контрольной комбинации, называемой имитовставкой.
Классическая схема шифрования прекрасно работает, пока между участниками информационного обмена есть взаимное доверие. Если же его нет, то могут возникать различные коллизии, так как из-за полной симметрии схемы в случае конфликта между сторонами для независимого наблюдателя нет возможности сделать однозначный вывод, кто из двух участников прав. Действительно, получатель может сам изготовить зашифрованное сообщение и затем объявить, что оно им получено от законного отправителя, а тот, в свою очередь, может отказаться от авторства в действительности переданного им сообщения, объявив, что его сфабриковал сам получатель, благо соответствующая возможность у того имеется. В этих случаях независимый арбитраж, в функции которого входит разрешение конфликтов между участниками информационного процесса, не сможет определить, кто из них прав, а кто - нет. Приведенный факт означает, что рассматриваемая криптографическая схема не позволяет однозначно подтвердить или опровергнуть авторство сообщения. Кроме того, эта схема нуждается в специальной службе, занимающейся изготовлением секретных ключей и доставкой их участникам информационного обмена. Конечно, если участников обмена всего двое, то проблема невелика - роль такой службы может выполнять один из них или даже оба они попеременно. Но если система насчитывает сотни или даже тысячи связанных между собой узлов обработки информации, это небольшая проблема вырастает в большую головную боль.
Противоречие между ограничениями классической криптографии и постоянно возникающими новыми задачами привело к тому, что во второй половине семидесятых годов были разработаны принципиально новые подходы, позволяющие решить ка перечисленные выше проблемы, так и большое число других. Основой послужило открытие так называемых асимметричных криптоалгоритмов, или методов, в которых процедуры прямого и обратного криптопреобразования выполняются на различных ключах и не имеют между собой очевидных и легко прослеживаемых связей, которые позволили бы по одному ключу определить другой. В такой схеме знание только ключа зашифрования не позволяет расшифровать сообщение, поэтому он не является секретным элементом шифра и обычно публикуется участником обмена для того, чтобы любой желающий мог послать ему шифрованное сообщение.
Как видим, современная криптография позволяет решить гораздо более широкий круг задач, чем криптография классическая. На заре ее развития высказывались даже мнения, что она за несколько лет полностью вытеснит свою предшественницу, однако этого не произошло по следующим причинам: Во-первых, алгоритмы с секретным ключом гораздо проще реализуются как программно, так и аппаратно, в силу чего при одинаковых характеристиках производительности и стойкости сложность, а значит и цена аппаратных средств, реализующих шифр с открытым ключом заметно выше цены аппаратуры, реализующей классический шифр, а при программной реализации на одном и том же типе процессора одноключевые шифры работают быстрее двухключевых. Во-вторых, надежность алгоритмов с открытым ключом в настоящее время обоснована гораздо хуже, чем надежность алгоритмов с секретным ключом и нет гарантии, что через некоторое время они не будут раскрыты, как это получилось с криптосистемой, основанной на задаче об укладке ранца. Поэтому для организации шифрованной связи в настоящее время применяются исключительно классические шифры, а методы современной криптографии используются только там, где они не работают, то есть для организации различных хитроумных протоколов типа цифровой подписи, открытого распределения ключей и игры в покер по переписке. Поскольку асимметричные криптографические алгоритмы не являются темой настоящей статьи, автор не будет более задерживаться на этом. Заинтересованный читатель может найти их описание и обсуждение в большом количестве источников, например, в [1,3,4,8].
Необходимо отметить, что в настоящее время публикуется значительное число научных и популярных работ по современной криптографии, тогда как немногочисленные публикации, в которых рассматриваются классические шифры, посвящены в основном или вопросам истории искусства тайнописи, или содержат описание конкретных алгоритмов без исследования общих принципов, лежащих в их основе. Такое положение вещей с одной стороны, является данью моде, а с другой - последствием чрезмерной засекреченности классической криптографии, во всяком случае, нормальным его назвать нельзя. Именно поэтому в настоящей работе автор решил рассказать об общих принципах построения криптоалгоритмов с секретным ключом, точнее, одного из его классов, называемых блочными шифрами, на достаточно простом уровне, чтобы статья была понятна даже не очень подготовленному читателю, и вместе с тем с необходимой строгостью. Нет необходимости подробно расписывать достоинства рассматриваемых в статье принципов построения алгоритмов шифрования, достаточно лишь сказать, что они лежат в основе двух наиболее известных в России шифров из числа самых сильных, или, если вам так больше нравится, двух наиболее сильных шифров из числа самых известных - Российского и американского стандартов шифрования, алгоритмов ГОСТ 28147-89 и DES, а также большого числа менее известных и/или менее сильных шифров. Перейдем непосредственно к их изучению.
[Оглавление] [Предыдущий раздел] [Следующий раздел]
[Начало осмотра] [Что нового] [Статьи] [Выпуски в "Байтах"] [Что скачать] [Криптоалгоритмы] [Глоссарий] [Ссылки] [Гостевая книга] [Форум] [Напиши мне]
Версия от 23.12.00. (c) 1998-2000 Андрей Винокуров.