16 pаyндов "пеpемешивающих" (mixing) и 2 pаyнда "pазмазывающих" (mashing)
пpеобpазований. Описан в RFC2268. Разpаботал 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: S0, S1, . . . , S255. Элементы
представляют собой перестановку чисел от 0 до
255, а перестановка является функцией ключа переменной длины. В алгоритме
применяются два счетчика, i и j,
с нулевыми начальными значениями.
Для генерации случайного байта выполняется следующее:
i = (i + 1) mod 256
j = (j + Si) mod 256
поменять местами Si и Sj
t = (Si + Sj) mod 256
K = St
Байт K используется в операции XOR с открытым текстом для получения
шифротекста или в операции XOR с шифротекстом для получения открытого
текста. Шифрование выполняется примерно в 10 раз быстрее, чем DES.
Также несложна и инициализация S-блока. Сначала заполним его линейно:
S0 = 0, S1 = 1, . . . , S255 = 255. Затем заполним ключом другой 256-байтовый
массив, при необходимости для заполнения всего массива повторяя ключ: K0, K1,
. . . , K255. Установим значение индекса j равным 0. Затем:
for i = 0 to 255:
j = (j + Si + Ki) mod 256
поменять местами Si и Sj
Автор: RSA Data Security (Ron Rivest)
/RC - Ron's Code/
RC5
Блочный шифр с переменными параметрами.
Режимы: ECB, CBC, CFB 8bit, OFB, OFB counter 8bit
Шифр RC5 "словоориентированный"; все простейшие вычислительные операции
производятся над w-битными словами. RC5 блочный шифр с размерностью входного и
выходного блоков 2 слова. Номинальный выбор для w - 32 бита, при котором
входной и выходной блоки RC5 имеют размер 64 бита. В принципе, RC5 допускает
любое значение w>0, однако для простоты принимают допустимые значения w - 16,
32 и 64 бита.
Число раундов r является вторым параметром RC5. Выбор большего числа раундов
увеличивает степень защиты. Возможные значения для r: 0,1,...,255.
Заметим также, что RC5 имеет расширенную ключевую таблицу S, получаемую из
предоставляемого пользователем секретного ключа. Размер t таблицы S также
зависит от числа раундов r и составляет t=2(r+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-байтовый ключ).
ECB, CBC, 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. Алгоритм представляет каждый блок кодируемых данных в виде двумерного
массива байт размером 4х4, 4х6 или 4х8 в зависимости от установленной длины
блока. Далее на соответствующих этапах преобразования производятся либо над
независимыми столбцами, либо над независимыми строками, либо вообще над
отдельными байтами в таблице.
Автор: 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
- число раундов, r:
SAFER K64 6 (5<r<11)
SAFER SK64 8 (5<r<11)
SAFER K128 10 (9<r<13)
SAFER SK128 10 (9<r<13)
SAFER+ ("Secure And Fast Encryption Routine")
один из кандидатов на AES
Автор: Cylink Corporation
Параметры:
- размер блока 16 байт
- размер ключа 128/192/256
- число раундов 8/12/16
Skipjack.
Старательно пропихиваемый госдепом США симметричный алгоритм шифрования с
разделяемым ключом и бэкдором. Используется в чипах Clipper и Capstone, которые
хотят засунуть до Интернет унитазов включительно :).
Интересен тем, что ломается 31 раунд (по аналогии с DES запас сделан
минимальный). Еще интересен тем, что по аналогии с ГОСТ ключевое расширение
получается простым повторением ключа.
Режимы: ECB, CBC, CFB 8bit, OFB, OFB counter 8bit
ECB, CBC, OFB: шифруют данные блоками по 64 бита (8 байт)
CFB, OFBC: шифруют данные блоками по 8 бит (1 байту)
Автор: NSA
Параметры:
- размер блока 64 бита
- размер ключа 80 бит
- число раундов 32
TEA (Tiny Encryption Algorithm).
Авторы: David Wheeler, Roger M. Needham
Параметры алгоритма :
- размер блока - 64 бита.
- размер ключа - 128 бит.
TripleDES.
Алгоритм зашифрования состоит в следующем: исходный текст зашифровывается DESом
с ключом K1, результат расшифровывается DESом с ключом K2, а этот результат
опять зашифровывается DESом с ключом K1. Итого длина ключа составляет 112 бит.
Иногда применяют 3 разных ключа, но стойкость от этого не меняется.
DES - не группа, то есть композиция двух операций шифрования с разными
ключами не является в общем случае DES-шифрованием с некоторым третьим
ключом [2.5]. Следовательно, можно пытаться увеличить пространство ключей
за счет многократного применения DES.
Двойной DES, c=К1(К2(m)), не обеспечивает увеличение в 2 в 56 степени
раз объема перебора, необходимого для определения ключа, поскольку при
атаке с известным открытым текстом можно подбирать параллельно исходный
текст m и шифрограмму c, накапливать в хэш-таблице значения К2(m),К1^-1(c)
и искать совпадения между ними.
Тройной DES рекомендуется специалистами в качестве замены DES:
В режиме ECB c=К1(К2(К3(m))) или c=К1(К2^-1(К3(m)))
В других режимах c=К1(К2^-1(К1(m)))
Применение функции расшифрования на втором шаге объясняется желанием достичь
совместимости с однократным алгоритмом DES в случае, если все ключи равны.
Тройное шифрование с двумя ключами все равно сводится к одинарному при
использовании атаки с выбором открытого текста [2.6].
Автор: NIST ANSI X9.17, "American National Standard, Financial Institution
Key Management (Wholesale)", 1985.
ISO/IEC 8732:1987, "Banking - Key Management (Wholesale)".
Параметры:
- размер ключа 112 бит
- остальное - см. DES
ГОСТ 28147-89
Российский федеральный стандарт шифрования. Фактически, описывает несколько
алгоритмов (режимы работы ГОСТ). Кроме ключа ему необходима еще одна таблица
(таблица замен, 128 ячеек 4-битовых чисел) для формирования узлов замены. ГОСТ
ее не определяет, посему она может рассматриваться как долговременный ключевой
элемент. Определены следующие режимы работы: режим простой замены (ECB), режим
гаммирования (SM) и режим гаммирования с обратной связью (OFB). Несколько
особняком стоит режим выработки имитовставки. В принципе, у него такое же
назначение как у хэш-функции, только ее значение еще зависит от секретного
ключа. Из полученного в результате 64 битного значения выбирается l битов, где
l<=32. Минимальный размер данных для имитозащиты - 2 64-битных блока.
Автор: КГБ СССР
Параметры:
- размер блока 64 бита
- размер ключа 256 бит
- число раундов 32 (16 - для имитовставки)
Q: Каковы должны быть правила построения таблиц (узлов) замены в ГОСТе?
A: Основная задача -- сделать S-box'ы (так называют эти таблицы) устойчивыми к
дифференциальному и линейному криптоанализу. Можно попробовать
сформулировать критерии, глядя на те критерии, которые Тучман использовал в
начале 70-х для DES. /* потребовалось около 10 месяцев */
Итак, можно сформулировать следующие правила:
1. Hи один выходной бит не должен сколь-нибудь хорошо приближаться линейной
функцией от входных бит.
2. Если два входных значения отличаются на один бит, выходные значения
должны отличаться не менее чем на 2 бита.
3. Если два входных значения отличаются в двух соседних битах (как минимум
центральных), то выходные значения должны отличаться не менее чем на 2 бита.
4. Для любого значения XOR между входными значениями, следует минимизировать
количество пар, чьи XOR на входе и на выходе равны этому значению (это
весьма хитроумное требование вытекает из попытки защититься от
дифференциального
криптоанализа).
0 комментариев