Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОКЗИ

.pdf
Скачиваний:
16
Добавлен:
26.03.2016
Размер:
1.05 Mб
Скачать

небольших компаниях. Системы с 56-битными ключами (DES) требуют для вскрытия заметных усилий, однако могут быть легко вскрыты с помощью специальной аппаратуры. Стоимость такой аппаратуры значительна, но доступна для мафии, крупных компаний и правительств. Ключи длиной 64 бита в настоящий момент, возможно, могут быть вскрыты крупными государствами и уже в ближайшие несколько лет будут доступны для вскрытия преступными организациями, крупными компаниями и небольшими государствами. Ключи длиной 80 бит могут в будущем стать уязвимыми. Ключи длиной 128 бит вероятно останутся недоступными для вскрытия методом грубой силы в обозримом будущем. Можно использовать и более длинные ключи. В пределе нетрудно добиться того, чтобы энергия, требуемая для вскрытия (считая, что на один шаг затрачивается минимальный квантовомеханический квант энергии) превзойдет массу солнца или вселенной.

Однако, длина ключа это еще не все. Многие шифры можно вскрыть и не перебирая всех возможных комбинаций. Вообще говоря, очень трудно придумать шифр, который нельзя было бы вскрыть другим более эффективным способом. Разработка собственных шифров может стать приятным занятием, но для реальных приложений использовать самодельные шифры не рекомендуется если вы не являетесь экспертом и не уверены на 100 процентов в том, что делаете.

Вообще говоря, следует держаться в стороне от неопубликованных или секретных алгоритмов. Часто разработчик такого алгоритма не уверен в его надежности, или же надежность зависит от секретности самого алгоритма. Вообще говоря, ни один алгоритм, секретность которого зависит от секретности самого алгоритма, не является надежным. В частности, имея шифрующую программу,

11

можно нанять программиста, который дизассемблирует ее и восстановит алгоритм методом обратной инженерии. Опыт показывает, что большинство секретных алгоритмов, ставших впоследствии достоянием общественности, оказались до смешного ненадежными.

Длины ключей, используемых в криптографии с открытым ключом обычно значительно больше, чем в симметричных алгоритмах. Здесь проблема заключается не в подборе ключа, а в воссоздании секретного ключа по открытому. В случае RSA проблема эквивалентна разложению на множители большого целого числа, которое является произведением пары неизвестных простых чисел. В случае некоторых других криптосистем, проблема эквивалентна вычислению дискретного логарифма по модулю большого целого числа (такая задача считается примерно аналогичной по трудности задаче разложения на множители). Имеются криптосистемы, которые используют другие проблемы.

Чтобы дать представление о степени сложности вскрытия RSA, скажем, что модули длиной 256 бит легко факторизуются обычными программистами. Ключи в 384 бита могут быть вскрыты исследовательской группой университета или компании. 512-битные ключи находятся в пределах досягаемости крупных государств. Ключи длиной в 768 бит вероятно не будут надежны продолжительное время. Ключи длиной в 1024 бит могут считаться безопасными до тех пор, пока не будет существенного прогресса в алгоритме факторизации; ключи длиной в 2048 большинство считает надежными на десятилетия. Более подробную информацию о длинах ключей RSA можно почерпнуть из статьи Брюса Шнайера (Bruce Scheier).

Важно подчеркнуть, что степень надежности

криптографической системы определяется ее слабей-

12

шим звеном. Нельзя упускать из вида ни одного аспекта разработки системы – от выбора алгоритма до политики использования и распространения ключей.

1.6. Криптоанализ и атаки на криптосистемы

Криптоанализ – это наука о дешифровке закодированных сообщений не зная ключей. Имеется много криптоаналитических подходов. Некоторые из наиболее важных для разработчиков приведены ниже.

Атака со знанием лишь шифрованного текста

(ciphertext-only attack): Это ситуация, когда ата-

кующий не знает ничего о содержании сообщения, и ему приходится работать лишь с самим шифрованным текстом. На практике, часто можно сделать правдоподобные предположения о структуре текста, поскольку многие сообщения имеют стандартные заголовки. Даже обычные письма и документы начинаются с легко предсказуемой информации. Также часто можно предположить, что некоторый блок информации содержит заданное слово.

Атака со знанием содержимого шифровки

(known-plaintext attack): Атакующий знает или может угадать содержимое всего или части зашифрованного текста. Задача заключается в расшифровке остального сообщения. Это можно сделать либо путем вычисления ключа шифровки, либо минуя это.

Атака с заданным текстом (chosen-plaintext attack): Атакующий имеет возможность получить шифрованный документ для любого нужного ему текста, но не знает ключа. Задачей являет-

13

ся нахождение ключа. Некоторые методы шифрования и, в частности, RSA, весьма уязвимы для атак этого типа. При использовании таких алгоритмов надо тщательно следить, чтобы атакующий не мог зашифровать заданный им текст.

Атака с подставкой (Man-in-the-middle attack):

Атака направлена на обмен шифрованными сообщениями и, в особенности, на протокол обмена ключами. Идея заключается в том, что когда две стороны обмениваются ключами для секретной коммуникации (например, используя шифр Диф- фи-Хелмана, Diffie-Hellman), противник внедряется между ними на линии обмена сообщениями. Далее противник выдает каждой стороне свои ключи. В результате, каждая из сторон будет иметь разные ключи, каждый из которых известен противнику. Теперь противник будет расшифровывать каждое сообщение своим ключом и затем зашифровывать его с помощью другого ключа перед отправкой адресату. Стороны будут иметь иллюзию секретной переписки, в то время как на самом деле противник читает все сообщения. Одним из способов предотвратить такой тип атак заключается в том, что стороны при обмене ключами вычисляют криптографическую хэшфункцию значения протокола обмена (или, по меньшей мере, значения ключей), подписывают ее алгоритмом цифровой подписи и посылают подпись другой стороне. Получатель проверит подпись и то, что значение хэш-функции совпадает с вычисленным значением. Такой метод используется, в частности, в системе Фотурис

(Photuris).

14

Атака с помощью таймера (timing attack): Этот новый тип атак основан на последовательном измерении времен, затрачиваемых на выполнение операции возведения в степень по модулю целого числа. Ей подвержены, по крайней мере, следующие шифры: RSA, Диффи-Хеллман и метод эллиптических кривых. Дополнительную информацию смотрите в оригинальной статье и во множестве последовавших статей.

Имеется множество других криптографических атак и криптоаналитических подходов. Однако, приведенные выше являются, по-видимому, наиболее важными для практической разработки систем.

15

2.ФОРМАЛЬНЫЕ МОДЕЛИ ШИФРОВ

2.1.Основные положения

Чтобы доказывать в криптографии точные результаты, нужны математические модели основных исследуемых объектов, к которым относятся в первую очередь шифр и открытый текст.

Шифрование – процедура, использующая некое обратимое преобразование. При этом преобразование открытого текста в шифрованный называется зашифрованием, а обратный процесс – расшифрованием. Шифрование предполагает наличие множества обратимых преобразований. Выбор преобразования из указанного множества для зашифрования данного сообщения осуществляется с помощью ключа. Имеется однозначное соответствие между множеством ключей и множеством преобразований.

Выбор ключа естественным образом определяет функцию, отображающую множество возможных открытых текстов в множество возможных шифрованных текстов. Способ вычисления значения этой функции для произвольного аргумента будем называть правилом зашифрования. Выбранный ключ будем называть ключом зашифрования. Требование однозначности расшифрования определяет обратную функцию, отображающую множество возможных (при выбранном ключе) шифрованных текстов в множество возможных открытых текстов. Способ вычисления значения этой функции для произвольного аргумента будем называть

правилом расшифрования. Ключ, определяющий выбор данного правила – ключ расшифрования.

Перед зашифрованием открытый текст предварительно представляется в виде последовательности подслов, называемых шифрвеличинами. При зашифровании шифрвеличины заменяются некоторыми их эквивалентами в шифртексте, которые назовём шифробозначениями.

16

2.2.Классификация шифров

Вкачестве первичного признака, по которому производится классификация шифров, используется тип преобразования, осуществляемого с открытым текстом при шифровании:

если фрагменты открытого текста (отдельные буквы или группы букв) заменяются некоторыми их эквивалентами в шифртексте, то соответствующий шифр относится к классу шифров заме-

ны;

если буквы открытого текста при шифровании лишь меняются местами друг с другом, то мы имеем дело с шифром перестановки;

если с целью повышения надёжности шифрования шифрованный текст, полученный применением некоторого шифра, может быть ещё раз зашифрован с помощью другого шифра, то мы имеем дело с композиционными шифрами.

Если ограничиться наиболее важными классами шифров замены и исторически известными классами шифров перестановки, классификацию шифров можно изобразить в виде рис. 2.1. На рисунке стрелки, выходящие из любого прямоугольника, указывают лишь на наиболее значимые частные подклассы шифров. Пунктирные стрелки, ведущие из подклассов шифров перестановки, означают, что эти шифры можно рассматривать и как блочные шифры замены в соответствии с тем, что открытый текст делится при шифровании на блоки фиксированной длины, в каждом из которых производится некоторая перестановка букв. Одноалфавитные и много алфавитные шифры могут быть как поточными, так и блочными. В то же время

17

шифры гаммирования, образующие подкласс многоалфавитных шифров, относятся к поточным, а не к блочным шифрам. Кроме того, они являются симметричными, а не асимметричными шифрами.

Шифры замены

Шифры

Шифры

Композиционные

замены

перестановки

шифры

Многозначные

Однозначные

Маршрутные

замены

замены

перестановки

Симметричные

Асимметричные

Столбцовые

Решётки,

(строчные)

шифры

шифры

лабиринты

перестановки

 

 

 

Поточные

Блочные

шифры

шифры

Одноалфавитные

 

Многоалфавитные

Шифры

шифры

 

шифры

гаммирования

 

 

 

 

 

Рис. 2.1. Схема наиболее важных классов шифров

18

2.3. Блочные шифры

Шеннон сформулировал общий принцип построения шифрующих преобразований – принцип «перемешивания». Его суть – требование, чтобы применение шифрующего преобразования к наборам аргументов отличающихся в незначительном числе позиций, приводило к существенному изменению результата.

Блочные шифры реализуются путём многократного применения к блокам открытого текста некоторых базовых преобразований. Базовые преобразования должны удовлетворять ряду требований, обусловленных тем, что они, вопервых, должны быть просто реализуемы, в том числе программным способом на ЭВМ, и, во-вторых, при небольшом числе итераций давать аналитически сложные преобразования.

Используются базовые преобразования двух типов – сложные в криптографическом отношении локальные преобразования над отдельными частями шифруемых блоков и простые преобразования, переставляющие между собой части шифруемых блоков.

Алгоритм шифрования выполняет некоторое число циклов (итераций). Каждый цикл состоит в применении преобразований первого и второго типов. Такой принцип построения даёт возможность реализовать каждый цикл шифрования с использованием однотипных узлов, а также выполнять расшифрование путём обработки данных в обратном направлении.

Получили распространение алгоритмы, в которых осуществляются преобразования над векторами, представляющими собой левую и правую половины содержимого регистра сдвига.

19

На практике блочный шифр может использоваться в следующих четырёх режимах:

1)Режим электронной кодовой книги (ECB).

Вданном режиме блочный шифр используется шифр, осуществляющий некоторую простую замену блоков открытого текста.

2)Режим сцепления блоков (CBC).

Вданном режиме каждый блок шифртекста Ci перед очередным зашифрованием складывается по модулю 2 со следующим блоком открытого текста Mi+1. При этом вектор C0 меняется ежедневно и хранится в секрете.

3)Режим обратной связи по шифртексту

(CFB).

4)Режим обратной связи по выходу (OFB).

Впоследних двух режимах используется блочная гамма Z0, Z1,…, причём Z0 полагается равным начальному вектору C0.

2.4. Поточные шифры

При использовании поточных шифров простой замены потеря (или искажение) отдельных знаков шифрованного текста при передаче по каналу связи приводит лишь к локальным потерям: все знаки шифртекста, принятые без искажений, будут расшифрованы правильно.

Наибольшее распространение получили шифры, осуществляющие побуквенное зашифрование с помощью некоторого множества подстановочных преобразований алфавита открытых сообщений, то есть эндоморфные поточные многоалфавитные шифры замены с множествами шифр величин и шифр обозначений, совпадающими с алфавитом открытых сообщений.

20