3189
.pdf9. СИММЕТРИЧНЫЕ СИСТЕМЫ ШИФРОВАНИЯ. DES
Цель работы - освоить основные стандарты симметричного блочного шифрования DES и российский ГОСТ 28147-89.
Сведения из теории
Алгоритмы с использованием ключа делятся на два класса: симметричные (или алгоритмы секретным ключом) и асимметрич ные (или алгоритмы с открытым ключом). Разница в том, что сим метричные алгоритмы используют один и тот же ключ для шифрова ния и для дешифрования (или же ключ для дешифровки просто вы числяется по ключу шифровки). В то время как асимметричные ал горитмы используют разные ключи, и ключ для дешифровки не мо жет быть вычислен по ключу шифровки.
Симметричные алгоритмы подразделяют на потоковые шифры и блочные шифры. Потоковые позволяют шифровать информацию побитово, в то время как блочные работают с некоторым набором бит данных и шифруют этот набор как единое целое.
Процесс распределения секретных ключей между абонентами обмена конфиденциальной информации в симметричных криптоси стемах имеет весьма сложный характер. Имеется в виду, что переда ча секретного ключа нелегитимному пользователю может привести к вскрытию всей передаваемой информации. Наиболее известные симметричные криптосистемы - шифр Цезаря, шифр Вижинера, американский стандарт шифрования DES, шифр IDEA и отечествен ный стандарт шифрования данных ГОСТ 28147-89..
Рассмотрим блочное/потоковое шифрование. Блочная криптоси стема (блочный шифр) разбивает открытый текст М на последова тельные блоки Ml, М2, ..., Мп и применяет криптографическое пре образование к каждому блоку. Поточная криптосистема (поточный шифр) разбивает открытый текст М на буквы или биты ml, m2,..., mn и применяет криптографическое преобразование к каждому знаку mi
в соответствии со знаком ключевого потока ki. Поточное шифрова ние часто называют гаммированием. Гамма - это псевдослучайная числовая последовательность, вырабатываемая по заданному алго ритму и используемая для зашифрования открытых данных и рас шифрования зашифрованных. Гаммированием принято называть процесс наложения по определенному закону гаммы шифра на от крытые данные для их зашифрования. В основу блочных шифров легли идеи доктора Файстеля.
Предложенная им схема шифрова ния легко может быть продемонст рирована с помощью схемы шиф рования.
На изображенной схеме (рис. 1) буквами Li и Ri обозначе ны левая и правая половинки ис ходных данных на i-м шаге после довательного преобразования. Ка ждый такой целый шаг называют раундом шифрования. Функция гаммирования обозначена через Fi,
поскольку на каждом раунде может быть использована своя собст венная функция. Ключ также имеет индекс i, но уже в силу того, что исходный ключ к может быть преобразован некоторым образом (го ворят, развернут) в последовательность итерационных ключей либо подключей, то есть ключей, которые используются непосредственно функцией гаммирования.
Как видно из схемы, сначала с помощью функции гаммирования вырабатывают гамма-последовательность, которая зависит от итераци онного ключа ki и правой половины данных. После этого левая поло винка просто суммируется с полученной гаммой по модулю, напри мер, 2. Затем левая и правая половинки меняются местами. На этом один цикл шифрования заканчивается. Поскольку за один раз обраба тывается только одна половина данных, желательно, чтобы число раун дов было кратно двум. В таком случае есть уверенность, что каждая из половинок будет обработана одинаковое число раз.
Исходя из данного описания, преобразование данных одного ра унда можно представить с помощью двух формул, выражающих но вые значения левой и правой половинок блока шифруемых данных.
Американский стандарт криптографического закрытия данных DES
DES (Data Encryption Standard), принятый в 1978 году, является типичным представителем семейства блочных шифров и одним из наиболее распространенных криптографических стандартов на шиф рование данных, применяемых в США. Этот шифр допускает эффек тивную аппаратную и программную реализацию, причем возможно достижение скоростей шифрования до нескольких мегабайт в секунду. DES имеет блоки по 64 бит и основан на 16-кратной пере становке данных, а также для шифрования использует ключ в 56 бит. Существует несколько режимов DES: Electronic Code Book (ЕСВ) и Cipher Block Chaining (CBC). 56 бит - это 8 семибтовых ASCII символов, т.е. пароль не может быть больше, чем 8 букв. Если вдоба вок использовать только буквы и цифры, то количество возможных вариантов будет существенно меньше максимально возможных 256.
Функция f (Ь, к) предусматривает выполнение следующих действий: 1) над 32-битным входным значением b выполняется расши
ряющая перестановка (ЕР), которая дает 48-битное значение be;
2)be складывается с ключом раунда Ki операцией XOR; обо значим результат этой операции как bk;
3)bk разбивается на 8 фрагментов по 6 бит, каждый из которых
прогоняется через соответствующую таблицу замен (S1 S8). Каж дая таблица содержит по 4 строки, содержащих по 16 значений от О до 15. Входное значение интерпретируется следующим образом: два крайних бита формируют номер строки (от 0 до 3), из которой выби рается число, расположенное в столбце, номер которого соответству ет значению четырех остальных бит входа. Например, при двоичном входе 101100 (десятичное число 44) выбирается значение шестой ячейки второй строки;
4) полученные в результате замен 4-битные значения объеди няются в 32-битный субблок (обозначим его значение как bs), после чего над ними выполняется еще одна перестановка (Р), которая за вершает работу функции f;
5)после 16 раундов преобразований (последний раунд несколь ко отличается от предыдущих - в нем субблоки не меняются места ми) выполняется еще одна табличная перестановка, называемая фи нальной;
6)схема процедуры расширения ключа описана ниже. Ее зада
ча - формирование подключей для 16 раундов, которое выполняется следующим образом:
♦прежде всего, из 64-битного ключа выбираются (в опреде ленном порядке, т.е. с перестановкой относительно их ис ходного расположения) 56 значащих бит. 56-битный ключ делится на два 28-битных фрагмента, которые обозначаются как С и D;
♦затем выполняется 16 раундов процедуры расширения клю ча. Каждый раунд дает один из требуемых фрагментов Ki;
♦ сочетание данных преобразований приводит к тому, что в каждом ключе раунда используется уникальный набор бит ключа шифрования;
7) Расшифрование зашифрованного посредством DES текста осуществляется с использованием тех же блоков благодаря обрати мости преобразования.
BlowFish. Блочный алгоритм, построенный на сбалансиро ванной сети Файстеля, - 16 итераций простого криптографического преобразования. Длина ключа 40-448 бит, отсюда сложная фаза инициализации до операций шифрования. Разработан в 1993 году. Автор: Брюс Шнаейр (Bruce Schneier).
Параметры:
♦размер блока 64 бита;
♦размер ключа 32-448 бит;
♦число раундов 16.
CAST. В некотором смысле аналог DES. Авторы: С.М. Adams и S.E. Tavares.
Параметры'.САБТ-128 ♦ размер блока 64 бита;
♦размер ключа 128 бит;
♦число раундов 16. CAST-256
♦размер блока 128 бит;
♦размер ключа 256 бит.
DEAL. Базируется на DES (DEA). Увеличение длины блока уменьшает вероятность удачной криптоатаки методом сравнения криптограмм, уровень стойкости шифрования сопоставим с уровнем triple-DES. Автор: Lars R. Knudsen.
Параметры:
♦размер блока 128 бит;
♦размер ключа 128/192/256 бит;
♦число раундов: 6 (DEAL-128, DEAL-192); 8 (DEAL-256). IDEA (International Decryption-Encryption Algorithm). Bpe-
мя/место разработки 1990-1991 годы, Цюрих, Швейцария. Архитек тура: общая сбалансированная шифрующая SP-сеть, инвариант раун да - побитовая сумма по модулю 2 старшей и младшей половин бло ка. Авторы: Xuejia Lai, James Massey.
Параметры:
♦размер блока 64 бита;
♦размер ключа 128 бит;
♦число раундов 8.
NewDES. Создан в 1985 году как творческая переработка DES. Это самостоятельный алгоритм, а не вариант DES. NewDES несколь ко проще, чем DES, поскольку у него нет начальной и, понятно, ко нечной перестановки. Операции производятся над байтами, а не над битами, как в DES. Brute-force атака на NewDES требует 2119 опера ций, против 2Ш для TripleDES. Автор: Robert Scott.
Параметры:
♦размер блока 64 бита;
♦размер ключа 120 бит;
♦число раундов 17.
RC2. Блочный алгоритм шифрования. Длина ключа пременная - от 8 до 1024 бит. Разрабатывался под 16-битовое слово. Реализует 16 раундов «перемешивающих» (mixing) и 2 раунда «размазывающих» (mashing) преобразований. Описан в RFC2268. Разработал Ron Rivest (RSA Laboratories). Режимы: ECB, CBC, CFB 8bit, OFB, OFB counter 8bit. ECB, CBC, OFB: шифруют данные блоками по 64 бита (8 байт). CFB, OFBC: шифруют данные блоками по 8 бит (1 байту). Автор: RSA Data Security (Ron Rivest) /RC - Ron's Code/
Параметры:
♦размер блока 64 бита;
♦размер ключа до 1024 бит;
♦число раундов 16.
RC4. Описывать RC4 просто. Алгоритм работает в режиме OFB: поток ключей не зависит от открытого текста. Используется S-блок размером 8*8: So, Si, , S2 5 5 - Элементы представляют собой пере становку чисел от 0 до 255, а перестановка является функцией ключа переменной длины. В алгоритме применяются два счетчика i и j с нулевыми начальными значениями. Для генерации случайного бай та выполняется следующее:
♦i = (i + 1) mod 256;
♦j = (j + Sj) mod 256;
♦поменять местами Sj и Sj;
♦t = (Sj + Sj) mod 256;
♦K = St.
Байт К используется в операции XOR с открытым текстом для получения шифротекста или в операции XOR с шифротекстом для получения открытого текста. Шифрование выполняется примерно в 10 раз быстрее, чем DES. Также несложна и инициализация S-блока. Сначала заполним его линейно: So = 0, Si = 1, , S255 - 255. Затем заполним ключом другой 256-байтовый массив, при необходимости для заполнения всего массива повторяя ключ: Ко, К), . ., Кг55- Уста новим значение индекса) равным 0. Затем:
for i = 0 to 255:
j = 0 + Sj + Ki) mod 256 поменять местами S i и S j.
Автор: RSA Data Security (Ron Rivest) /RC - Ron's Code/.
RC5. Блочный шифр с переменными параметрами. Режимы: ЕСВ, СВС, CFB 8bit, OFB, OFB counter 8bit. Шифр RC5 «словоори ентированный»; все простейшие вычислительные операции произво дятся над w-битными словами. RC5 блочный шифр с размерностью входного и выходного блоков 2 слова. Номинальный выбор для w - 32 бита, при котором входной и выходной блоки RC5 имеют размер 64 бита. В принципе RC5 допускает любое значение w > О, однако для простоты принимают допустимые значения w - 16, 32 и 64 бита. Число раундов г является вторым параметром RC5. Выбор большего числа раундов увеличивает степень защиты. Возможные значения для г: 0,1,...,255. Заметим также, что RC5 имеет расширенную ключе вую таблицу S, получаемую из предоставляемого пользователем сек ретного ключа. Размер t таблицы S также зависит от числа раундов г и составляет t = 2(г +1) слов. Выбор большего числа раундов, таким образом, увеличивает требования к памяти. Для записи параметров RC5 применяют следующую нотацию: RC5-w/r/b. Например, запись RC5-32/16/10 означает, что используются 32-битные слова, 16 раун дов и 10-байтовый (80-битный) секретный ключ, а также расширен ная ключевая таблица размером 2(16+1)=34 слов. «Номинальным» набором параметров считается RC5-32/12/16 (размер слова 32 бита, число раундов - 12 и 16-байтовый ключ). ЕСВ, СВС, OFB: шифруют данные блоками по 64 бита (8 байт). CFB, OFBC: шифруют данные блоками по 8 бит (1 байту). Автор: RSA Data Security (Ron Rivest) /RC - Ron's Code/.
Параметры:
♦размер блока 32/64/128 бит;
♦размер ключа до 2048 бит.
RC6. Блочный шифр. Автор: RSA Data Security (Ron Rivest)/RC - Ron's Code/.
Параметры:
♦размер блока 128 бит;
♦размер ключа до 2048 бит;
♦число раундов 16-24.
Rijndael. Является нетрадиционным блочным шифром, по скольку выполнен в архитектуре SQUARE. Алгоритм представляет каждый блок кодируемых данных в виде двумерного массива байт размером 4x4, 4x6 или 4x8 в зависимости от установленной длины блока. Далее на соответствующих этапах преобразования произво дятся либо над независимыми столбцами, либо над независимыми строками, либо вообще над отдельными байтами в таблице. Автор: Joan Daemen and Vincent Rijmen.
Параметры:
♦размер блока 128, 192, 256 бит, в качестве AES допускается использование шифра с размером блока 128 бит;
♦размер ключа 128, 192, 256 бит;
♦ число раундов 10, 12, 14. Зависит от размера блока (Nb) и ключа (Nk), заданных в битах, по следующей формуле: Nr=max(Nb,Nk)/32+6;
SAFER. Автор: J. L. Massey. Параметры:
♦размер блока 64 бит;
♦размер ключа 64/128;
♦число раундов, г:
♦SAFER К64 6 (5 < г < 11)
♦SAFER SK64 8 (5 < г < 11)
♦SAFER К128 10 (9 < г < 13)
♦SAFER SK128 10(9 < г < 13)
SAFER+ («Secure And Fast Encryption Routine»). Один из канди датов на AES. Автор: Cylink Corporation.
Параметры:
♦размер блока 16 байт;
♦размер ключа 128/192/256;
♦число раундов 8/12/16.
TEA (Tiny Encryption Algorithm). Авторы: David Wheeler, Roger M. Needham.
Параметры:
♦размер блока - 64 бита;
♦размер ключа - 128 бит.
TriplepES. Алгоритм зашифрования состоит в следующем: ис ходный текст зашифровывается DES с ключом К), результат рас шифровывается DES с ключом Кг, а этот результат опять зашифро вывается DES с ключом К]. Итого длина ключа составляет 112 бит. Иногда применяют 3 разных ключа, но стойкость от этого не меняет ся. DES - не группа, то есть композиция двух операций шифрования с разными ключами не является в общем случае DES-шифрованием с некоторым третьим ключом. Следовательно, можно пытаться увели чить пространство ключей за счет многократного применения DES. Двойной DES, S=Ki(K2(M)), не обеспечивает увеличение в 256 раз объема перебора, необходимого для определения ключа, поскольку при атаке с известным открытым текстом можно подбирать парал лельно исходный текст М и шифрограмму S, накапливать в хэштаблице значения K2(M),Kf'(S) и искать совпадения между ними. Тройной DES рекомендуется специалистами в качестве замены DES: в режиме ЕСВ S=K|(K2(K3(M))) или S=Ki(K2'‘(K3(M))); в других ре жимах S=K|(K2-'(K,(M))).
Применение функции расшифрования на втором шаге объясня ется желанием достичь совместимости с однократным алгоритмом DES в случае, если все ключи равны. Тройное шифрование с двумя ключами все равно сводится к одинарному при использовании атаки с выбором открытого текста. Автор: NIST ANSI Х9.17, «American National Standard, Financial Institution Key Management (Wholesale)», 1985. ISO/IEC 8732:1987, «Banking - Key Management (Wholesale)».
Параметры:
♦размер ключа 112 бит;
♦остальное - см. DES.