Обзор современных средств криптографии
Рефераты >> Криптология >> Обзор современных средств криптографии

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

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

Симметричные криптосистемы и блочные шифры.

Криптографическое преобразование составляет основу любого блочного шифра. Прямое криптографическое преобразование (шифрование) переводит блок открытого текста в блок шифротекста той же длины. Обратное криптографическое преобразование (дешифрование) переводит блок шифротекста в исходный блок открытого текста. Необходимое условие выполнения как прямого, так и обратного криптографического преобразования – наличие секретного ключа. Шифры, в которых прямое и обратное преобразование выполняются над блоками фиксированной длины, называются блочными. Для многих блочных шифров разрядность блока составляет 64 бита. Прямое криптографическое преобразование обладает следующим свойством: различные блоки открытого текста отображаются в различные блоки шифротекста. При обратном преобразовании соответствие сохраняется. Прямое преобразование можно рассматривать как перестановку на множестве сообщений с фиксированным размером блока. Результат перестановки носит секретный характер, что обеспечивается секретным компонентом – ключом.

Конструкция Фейстеля.

Конструкция Фейстеля, или сеть Фейстеля представляет собой разновидность интерированного блочного шифра. При шифровании блок открытого текста разбивается на две равные части – правую и левую. Очевидно, что длина блока при этом должна быть четной. На каждом цикле одна из частей подвергается преобразованию при помощи функции f и вспомогательного ключа ki, полученного из исходного секретного ключа. Результат операции суммируется по модулю 2 с другой частью. Затем левая и правая часть меняются местами. Преобразования на каждом цикле идентичны, но на последнем не выполняется перестановка. Процедура дешифрования аналогична процедуре шифрования, однако ki выбираются в обратном порядке. Конструкция Фейстеля хороша тем, что прямое и обратное криптографические преобразования для такого блочного шифра имеют идентичную структуру.

Конструкция Фейстеля применяеться в криптоалгоритмах DES, ГОСТ 28147-89, Lucifer, FEAL, Khufu, Khare, LOKI, COST, CAST, Blowfish, и др. Блочный шифр, использующий такую конструкцию, является обратимым и гарантирует возможность восстановления входных данных функции f на каждом цикле. Сама функция f не обязательно должна быть обратимой. При задании произвольной функции f не потребуется реализовывать две различные процедуры – одну для шифрования, а другую для дешифрования. Структура сети Фейстеля автоматически позаботиться об этом.

Федеральный стандарт США – DES.

Стандарт шифрования данных DES (Data Encrypting Standard), который ANSI называет Алгоритмом шифрования данных DEA (Data Encrypting Algorith), а ISO – DEA-1, за 20 лет стал мировым стандартом . За годы своего существования он выдержал натиск различных атак и при известных ограничениях все еще считается криптостойким.

DES представляет собой блочный шифр, шифрующий данный 64-битовыми блоками. С одного конца алгоритма вводиться 64-битовый блок открытого текста, а с другого конца выходит 64-битный блок шифротекста.

DES является симметричным алгоритмом: для шифрования и дешифрования используется одинаковые алгоритм и ключ (за исключением небольших различий в использовании ключа). Длина ключа равна 56 битам. (Ключ обычно представляется 64-битным числом, но каждый восьмой бит используеться для проверки четности и игнорируется.) Ключ, который может быть любым 56-битовым числом, можно изменить в любой момент времени. Криптостойкость полностью определяется ключом. Фундаментальным строительным блоком DES является комбинация подстановок и перестановок. DES состоит из 16 циклов (рис. 5).

Рис. 5

В общем цикл преобразования представлен на рис. 6. Если Li и Ri – левая и правая половины, полученные в результате i-й итерации, Ki – 48-битный ключ для цикла i, а f – функция, выполняющая все подстановки, перестановки и XOR с ключом, то один цикл преобразования можно представить как (Li, Ri) = (Ri-1, Li-1 (XOR) f(Ri-1, Ki)).

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

То есть если при шифровании использовались ключи K1, K2, …,K16, то ключами дешифрования будут K16, K15, …, K1. Алгоритм использует только стандартную арифметику 64-битовых чисел и логические операции, поэтому легко реализуется на аппаратном уровне.

DES работает с 64-битовыми блоками открытого текста. После первоначальной перестановки блок разбивается на правую и левую половины длиной по 32 бита. Затем выполняются 16 преобразований (функция f), в которых данные объединяются с ключом. После шестнадцатого цикла правая и левая половины объединяються, и алгоритм завершается заключительной перестановкой (обратной по отношению к первоначальной). На каждом цикле (рис. 6) биты ключа сдвигаются, и затем из 56 битов ключа выбираются 48 битов. Правая половина данных увеличивается до 48 битов с помощью перестановки с расширением, объединяется посредством XOR с 48 битами смещенного и перестановленного ключа, проходит через S-блоков, образуя 32 новых бита, и переставляются снова. Эти четыре операции и выполняются функцией f.

Рис. 6

Затем результат функции f объединяется с левой половиной с помощью другого XOR. В итоге этих действий появляется новая правая половина, а старая становится новой левой половиной. Эти действия повторяются 16 раз, образуя 16 циклов DES.

Стандарт России – ГОСТ 28147-89

ГОСТ 28147-89 – это блочный шифр с 256-битным ключом и 32 циклами преобразования, оперирующий 64-битными блоками. В криптоалгоритме также используется дополнительный ключ, который рассматривается ниже. Для шифрования открытый текст сначала разбиваеться на левую и правую половины L и R. На i-м цикле используеться подключ Ki:

Li=Ri-1,

Ri=Li-1 XOR (f(Ri-1, Ki)).

Один цикл криптографического преобразования показан на рис. 7.

Рис 7.

Функция f реализована следующим образом. Сначала правая половина и i-й складываются по модулю 232. Результат разбивается на восемь 4-битовых подпоследовательностей, каждая из которых поступает на вход своего S-блока. ГОСТ использует восемь различных S-блоков, первые 4 бита попадают в первый S-блок, вторые 4 бита – во второй S-блок и т.д. Каждый S-юлок представляет собой перестановку чисел от 0 до 15. Например, S-блок может выглядеть так: 7,10,2,4,15,9,0,3,6,12,5,13,1,8,11. В этом случае, если на входе S-блока 0, то на выходе 7. Если на входе 1, то на выходе 10 и т.д. Все восемь S-блоков различны, они фактически являются дополнительным ключевым материалом. Выходы всех восьми S-блоков объединяются в 32-битное слово, затем все слово циклически сдвигается влево на 11 битов. Наконец, результат объединяется с помощью операции XOR с левой половиной, и получается новая правая половина, а правая половина становиться новой левой половиной. Для генерации подключей исходный 256-битный ключ разбивается на восемь 32-битных блоков: k1,k2,…,k8. На каждом цикле используется свой подключ. Дешифрование выполняется так же, как и шифрование, но инвертируется порядок подключей ki. Стандарт не определяет способ генерации S-блоков.


Страница: