1.1. Закономерности организации сложных криптосистем
Все это подготовило переход к этапу научной криптографии, на-чалом которого считается 1949 г., когда была опубликована работа известного американского математика К. Шеннона «Теория связи в секретных системах», в которой он дал теоретико-информационную формулировку задачи обеспечения секретности информации. С этих пор классическая криптография (симметричная, или криптография с секретным ключом) получила научные основы, стал разрабатываться математический аппарат. Важной вехой на пути развития научной криптографии явилась разработка в 1970-е гг. XX в. сложных шифров типа DES, надолго определивших способы создания алгоритмов блочного и поточного шифрования.
В 1976 г. появляется работа двух других известных американских математиков - Уитфилда Диффи и Мартина Хеллмана «Новые направления в криптографии». Действительно, она положила начало развитию второго типа криптосистем - асимметричных (двухключе- вых).
Другое их название - криптосистемы с открытым ключом. Теоретической основой этого раздела криптографии стала матема-тическая теория сложности. Первые практически применимые асимметричные криптосистемы на основе однонаправленной функции RSA появились в 1979 г. В 1984 г. Goldwasser и Micali сформу-лировали определение, дающее теоретико-сложностной аналог со-вершенной секретности. В 1989 г. Goldwasser, Micali и Rackoll обобщили теоретико-сложностной подход на криптографические протоколы.Все эти работы фактически подготовили базу для формирования совершенно новой науки: наряду с классической криптографией, объединившей лучшие достижения донаучной, симметричной и асимметричной криптографии, появляется доказательная, или ре-дукционистская, или, как часто называют ее за рубежом, современ-ная криптография. Все эти названия являются соответственно пере-водами английских терминов «provable security», «reductionist», «modern cryptography».
В настоящее время криптография переживает бурный рост, эта наука находится на подъеме. Криптография - это «живая ткань», имеющая множество нитей и направлений развития. Перечислить их все, как и дать строгую классификацию, просто невозможно. Попы-таемся в сжатом виде сформулировать основные закономерности построения криптосистем, сложившиеся в современной крипто-графии,.
По современному определению криптография - наука о методах создания и анализа алгоритмического обеспечения информационных систем, устойчивых к преднамеренным (а заодно и случайным) попыткам отклонения системы от предписанного ей функционального назначения.
Сравнивая две ветви сегодняшней криптографии - классическую и доказательную (редукционистскую), прежде всего необходимо отметить методологическую разницу в подходе к решению крипто-графических задач.
В классической криптографии любая задача в самом общем виде решается следующим порядком:
выдвигается криптографическая проблема (задача), требую-щая решения;
криптографами отыскивается ее решение;
криптоаналитики ищут атаку на предложенное решение - под-вергают алгоритм криптоанализу;
когда атаку находят, если она угрожает или показывает по-тенциальную слабость алгоритма, переходят к п.
(2) и пытаются найти лучшее решение этой задачи;предложенное решение реализуется.
Как видим, здесь процесс разработки, вообще говоря, является итерационным, причем переработка или усовершенствование пред-ложенного решения может потребоваться уже после реализации ал-горитма в программном или аппаратном обеспечении. Классическая криптография требует определенного «дара предвидения», так как стойкость синтезируемых алгоритмов базируется на стойкости при-меняемых в них математических и инженерных конструкций. Тем не менее время от времени находятся тонкие математические взаимо-связи, которые «рушат» считавшиеся ранее стойкими криптографи-ческие конструкции.
Доказательная (редукционистская) криптография - преобла-дающий сейчас в криптографической науке подход к решению задач, основанный на предположении о существовании вычислитель- но-сложных задач и однонаправленных функций. Порядок решения задач в этой методологии предполагается следующим:
выдвигается криптографическая проблема (задача), требую-щая решения, причем если задача довольно сложна, то для ее решения может потребоваться построение специальной математической модели, которая облегчит переход к следующему шагу;
дается формальное, математическое определение проблемы;
конструируется алгоритм (протокол, схема и т. д.), удовлетворяющий сформулированному определению;
принимается некоторое теоретико-сложностное предположение о существовании некоторой вычислительно-неразрешимой задачи;
доказывается, что алгоритм (протокол, схема и т. д.) соответ-ствует своему определению;
предложенное решение реализуется.
В отличие от классического доказательный подход позволяет получать формализованные, а не эмпирические доказательства стойкости криптографических конструкций. Основная сложность здесь заключается в том, чтобы сконструировать такой алгоритм, протокол, схему и т. п., для которых можно было бы доказать желаемое свойство. Для этого необходим определенный творческий поиск, «предчувствие», умение решать задачи «от обратного» (хотя некоторые методы систематического конструирования доказуемо- безопасных конструкций уже известны).
В сложных случаях для решения задачи может потребоваться построение дискретных моде-лей, описывающих состояния информационной системы (например, системы электронной почты, электронных платежей, распределения ключей и др.).Центральный принцип любой криптосистемы, независимо от используемой методологии ее конструирования, - использование асимметрии. Асимметрия выражается в том, что законный участник криптосистемы обладает некоторой информацией, которая позволяет совершать ему определенные действия; противник же этой ин-формацией не обладает, и для него, таким образом, создаются вы-числительные препятствия.
В криптографии известны три принципиально различных способа реализации асимметрии:
использование криптографических ключей;
канал, более надежный для законного пользователя, чем для противника (теоретико-информационные модели);
вычислительные ресурсы, более мощные, чем у противника.
Поскольку второй случай труднореализуем, а третий маловероятен, преобладающим методом является использование криптогра-фических ключей. Остальные же представляют скорее чисто теоре-тический интерес.
Предмет изучения криптографии можно представить в виде мно-гоуровневой схемы, отдаленно напоминающей, скажем, всем из-вестную модель ISO/OSI (рис. 1.1). Распределение криптографиче-ских конструкций по уровням и блокам довольно условно, но тем не менее позволяет выделить несколько основных понятий. Кроме то-го, следует отметить, что многие направления современной крипто-графии появились совсем недавно, переживают бурный рост, поэтому в них еще нет устоявшейся терминологии. В каждой области исследований используются свои термины, часто не совпадающие с терминологией из других отраслей науки.
Криптографические примитивы - это отображения самого нижнего уровня, которые обладают полезными для криптографии каче-ствами. Сами они не представляют практического интереса и не дают нам готовых решений никаких задач. Криптографические прими-тивы могут быть двух типов:
перемешивающие, или «инэ/сенерные» (в англоязычной тер-минологии также confusion/diffusion primitives), например петля Фейстеля, линейный регистр сдвига с обратной связью, SP-сети;
алгебраические и комбинаторные примитивы, например функция дискретного логарифма, функция RSA и др.
Рис. 1.1. Многоуровневая структура криптосистем