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

3189

.pdf
Скачиваний:
6
Добавлен:
15.11.2022
Размер:
8.9 Mб
Скачать

9. СИММЕТРИЧНЫЕ СИСТЕМЫ ШИФРОВАНИЯ. DES

Цель работы - освоить основные стандарты симметричного блочного шифрования DES и российский ГОСТ 28147-89.

Сведения из теории

Алгоритмы с использованием ключа делятся на два класса: симметричные (или алгоритмы секретным ключом) и асимметрич­ ные (или алгоритмы с открытым ключом). Разница в том, что сим­ метричные алгоритмы используют один и тот же ключ для шифрова­ ния и для дешифрования (или же ключ для дешифровки просто вы­ числяется по ключу шифровки). В то время как асимметричные ал­ горитмы используют разные ключи, и ключ для дешифровки не мо­ жет быть вычислен по ключу шифровки.

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

Процесс распределения секретных ключей между абонентами обмена конфиденциальной информации в симметричных криптоси­ стемах имеет весьма сложный характер. Имеется в виду, что переда­ ча секретного ключа нелегитимному пользователю может привести к вскрытию всей передаваемой информации. Наиболее известные симметричные криптосистемы - шифр Цезаря, шифр Вижинера, американский стандарт шифрования DES, шифр IDEA и отечествен­ ный стандарт шифрования данных ГОСТ 28147-89..

Рассмотрим блочное/потоковое шифрование. Блочная криптоси­ стема (блочный шифр) разбивает открытый текст М на последова­ тельные блоки Ml, М2, ..., Мп и применяет криптографическое пре­ образование к каждому блоку. Поточная криптосистема (поточный шифр) разбивает открытый текст М на буквы или биты ml, m2,..., mn и применяет криптографическое преобразование к каждому знаку mi

Рис. 1. Архитектура сети Файстеля

в соответствии со знаком ключевого потока 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]