Математические основы криптологии и криптографические методы и средс
..pdf- число раундов 16.
CAST. В некотором смысле аналог DES. Авторы: С.М. Adams
и S.E. Tavares.
Параметры: C A S T -128
-размер блока 64 бита;
-размер ключа 128 бит;
-число раундов 16. CAST-256
-размер блока 128 бит;
-размер ключа 256 бит.
DEAL. Базируется на DES. Увеличение длины блока уменьшает вероятность удачной криптоатаки методом сравнения криптограмм, уровень стойкости шифрования сопоставим с уровнем triple-DES. Автор: Lars R. Knudsen.
Параметры:
-размер блока 128 бит;
-размер ключа 128/192/256 бит;
-число раундов: 6 (DEAL - 128, DEAL - 192); 8 (DEAL - 256).
IDEA (International Decryption-Encryption Algorithm). Bpe-
мя/место разработки: 19901991 годы, Цюрих, Швейцария. Архи тектура: Общая сбалансированная шифрующая 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: поток ключей не зависит от открытого текста. Используется 5-блок размером 8*8: 50, 5Ь , Si55- Элементы представляют собой пере становку чисел от 0 до 255, а перестановка является функцией ключа переменной длины. В алгоритме применяются два счетчика, i и у, с нулевыми начальными значениями. Для генерации случайного бай та выполняется следующее:
/ = (/ + 1) mod 256; _/ = (/ + Si) mod 256;
поменять местами 5, и S/, t = (Sj + Sj) mod 256;
K = St.
Байт К используется в операции XOR с открытым текстом для
получения |
шифротекста или в операции XOR с шифротекстом для |
|
получения |
открытого текста. Шифрование выполняется примерно |
|
в 10 раз быстрее, чем DES. Также несложна и инициализация 5-блока. |
||
Сначала заполним его линейно: 50 = 0, 5] = 1, |
, S255 ~ 255. Затем |
заполним ключом другой 256-байтовый массив, при необходимости
для заполнения всего массива повторяя ключ: К0, Ки , Кг55. Уста новим значение индексаj равным 0. Затем:
for 1 = 0 to 255:
j = (j + Si 1 К,) mod 256 поменять местами Si и Sj.
Автор: RSA Data Security (Ron Rivest) fRC - Ron's Code/.
RC5. Блочный шифр с переменными параметрами. Режимы: ЕСВ, СВС, CFB 8bit, OFB, OFB counter 8bit. Шифр RC5 «словоори ентированный»; все простейшие вычислительные операции произво дятся над w-битными словами. RC5 блочный шифр с размерностью входного и выходного блоков 2 слова. Номинальный выбор для w -3 2 бита, при котором входной и выходной блоки RC5 имеют размер 64 бита. В принципе, RC5 допускает любое значение w > 0, однако для простоты принимают допустимые значения w —16, 32 и 64 бита. Число раундов г является вторым параметром RC5. Выбор большего числа раундов увеличивает степень защиты. Возможные значения для г: 0,1,...,255. Заметим также, что RC5 имеет расширен ную ключевую таблицу S, получаемую из предоставляемого пользо вателем секретного ключа. Размер t таблицы S также зависит от чис ла раундов г и составляет t = 2(r + 1) слов. Выбор большего числа раундов, таким образом, увеличивает требования к памяти. Для записи параметров RC5 применяют следующую нотацию: RC5 - w/r/b. Напри мер, запись RC5 - 32/16/10 означает, что используются 32-битные слова, 16 раундов и 10-байтовый (80-битный) секретный ключ, а также расши ренная ключевая таблица размером 2(16+1) = 34 слова. «Номиналь ным» набором параметров считается R C 5 -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 Rivesl)/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. Зависит |
от размера |
блока (М>) |
|
и ключа (Nk), заданных |
в |
битах, по |
|
следующей |
формуле: |
Nr = max(M>, 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 бит.
TripleDES. Алгоритм шифрования состоит в следующем: ис ходный текст шифруется DES с ключом К\, результат дешифровыва ется DES с ключом К2, а этот результат опять шифруется DES с клю чом К\. Итого: длина ключа составляет 112 бит. Иногда применяют 3 разных ключа, но стойкость от этого не меняется. DES - не группа, т.е. композиция двух операций шифрования с разными ключами не является в общем случае DES-шифрованием с некоторым третьим ключом. Следовательно, можно пытаться увеличить пространство ключей за счет многократного применения DES. Двойной DES, 5 = Ki(K2(M)), не обеспечивает увеличение в 256 раз объема перебора, необходимого для определения ключа, поскольку при атаке с извест ным открытым текстом можно подбирать параллельно исходный текст М и шифрограмму S, накапливать в хэш-таблице значения K2(M),K\~\S) и искать совпадения между ними. Тройной DES реко
мендуется специалистами |
в качестве замены |
DES: в |
режиме |
ЕСВ S = К\{К2{Къ{М))) или |
£ = К\{К2 \К 2(М)))\ в |
других |
режимах |
S =Kl(K2 \K l(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.
2.1.7. ГОСТ № 28147-89
Как всякое уважающее себя государство, Российская Федерация имеет свой стандарт шифрования. Этот стандарт закреплен ГОСТ № 28147 - 89, принятом, как явствует из его обозначения, еще в 1989 году в СССР. Однако, без сомнения, история этого шифра гораздо более давняя. Стандарт родился предположительно в недрах восьмо го главного управления КГБ СССР, преобразованного ныне
вФАПСИ. К сожалению, в отличие от самого стандарта история его создания и критерии проектирования шифра до сих пор остаются тайной за семью печатями.
Возможное использование ГОСТа в ваших собственных разра ботках ставит ряд вопросов. Вопрос первый - нет ли юридических препятствий для этого. Ответ здесь простой - таких препятствий нет, и вы можете свободно использовать ГОСТ, он не запатентован, сле довательно, не у кого спрашивать разрешения. Более того, вы имеете на это полное моральное право как наследники тех, кто оплатил раз работку стандарта из своего кармана, - прежде всего это ваши роди тели. Известный указ Президента России № 334 от 03.04.95 и соот ветствующие постановления правительства ничего нового не вносят
вэту картину. Хотя они формально и запрещают разработку систем, содержащих средства криптозащиты юридическими и физическими лицами, не имеющими лицензии на этот вид деятельности, но реаль но указ распространяется лишь на случай государственных секретов, данных, составляющих банковскую тайну, и т.п. - словом, он дейст вует только там, где нужна бумажка, что «данные защищены».
Описание стандарта шифрования Российской Федерации со держится в документе, озаглавленном «Алгоритм криптографическо го преобразования данных ГОСТ 28147-89». То, что в его названии вместо термина «шифрование» фигурирует более общее понятие
«криптографическое преобразование», вовсе не случайно. Помимо
нескольких тесно связанных между собой процедур шифрования в документе описан один построенный на общих принципах с ними алгоритм выработки имитовставки. Последняя является не чем
иным, как криптографической контрольной комбинацией, т.е. кодом, вырабатываемым из исходных данных с использованием секретного ключа с целью имитозащиты, или защиты данных от внесения в них несанкционированных изменений.
На различных шагах алгоритмов ГОСТа данные, которыми они оперируют, интерпретируются и используются различным образом. В некоторых случаях элементы данных обрабатываются как массивы независимых битов, в других случаях - как целое число без знака, в третьих - как имеющий структуру сложный элемент, состоящий из нескольких более простых элементов. Поэтому во избежание пута ницы следует договориться об используемых обозначениях.
Элементы данных в этом подразделе обозначаются заглавными латинскими буквами с наклонным начертанием (например, X). Через {А^ обозначается размер элемента данных X в битах. Таким образом, если интерпретировать элемент данных X как целое неотрицательное число, можно записать следующее неравенство: 0<Х<2|Л1
Если элемент данных состоит из нескольких элементов меньше го размера, то этот факт обозначается следующим образом: X = (Хо, Хи ..., A„_i) = Aro||Ar|||...||Ar,^i. Процедура объединения нескольких эле ментов данных в один называется конкатенацией данных и обозна чается символом ||. Естественно, для размеров элементов данных
должно |
выполняться следующее соотношение: [Al = (Ar0|+ |X||+ + |
+ |
При задании сложных элементов данных и операции конка |
тенации составляющие элементы данных перечисляются в порядке возрастания старшинства. Иными словами, если интерпретировать составной элемент и все входящие в него элементы данных как це лые числа без знака, то можно записать следующее равенство:
(Х0,Х„...,Х,_,) = Х0 IIX, I...|| ЛГ_, = X, +
+2TO(Jf, + 2№1(-(-Г„-2 + 2^-2'Jf._,)...)).
Валгоритме элемент данных может интерпретироваться как массив отдельных битов, в этом случае биты обозначаем той же са мой буквой, что и массив, но в строчном варианте, как показано на следующем примере:
Х = (Хо, Х Ь ..., x„_i) = х0+ 2 l -Xi + + 2"~кхп-1.
Если над элементами данных выполняется некоторая операция, имеющая логический смысл, то предполагается, что данная операция выполняется над соответствующими битами элементов. Иными сло вами А*В = (а0*6о, где п -\А \ = |fi|, а символом «•» обозначается произвольная бинарная логическая операция; как пра вило, имеется в виду операция ИСКЛЮЧАЮЩЕГО ИЛИ, она же - операция суммирования по модулю 2: a® b = (а + b) mod 2.
1. Логика построения шифра и структура ключевой ин формации ГОСТа
Если внимательно изучить оригинал ГОСТ 28147-89, можно за метить, что в нем содержится описание алгоритмов нескольких уровней. На самом верхнем находятся практические алгоритмы, предназначенные для шифрования массивов данных и выработки для них имитовставки. Все они опираются на три алгоритма низшего уровня, называемые в тексте ГОСТа циклами. Эти фундаментальные алгоритмы упоминаются в данной статье как базовые циклы, чтобы отличать их от всех прочих циклов. Они имеют следующие названия и обозначения, последние приведены в скобках и смысл их будет объяснен позже:
♦цикл шифрования (32 - 3);
♦цикл дешифрования (32 - Р);
♦цикл выработки имитовставки (16 - 3).
Всвою очередь, каждый из базовых циклов представляет собой многократное повторение одной единственной процедуры, в настоя щем подразделе называемой для определенности основным шагом криптопреобразования.
Таким образом, чтобы разобраться в ГОСТе, надо понять три следующие вещи:
а) что такое основной шаг криптопреобразования; б) как из основных шагов складываются базовые циклы;
в) как из трех базовых циклов складываются все практические алгоритмы ГОСТа.
Прежде чем перейти к изучению этих вопросов, следует погово рить о ключевой информации, используемой алгоритмами ГОСТа. В соответствии с принципом Кирхгофа, которому удовлетворяют все современные известные широкой общественности шифры, именно ее секретность обеспечивает секретность шифрованного сообщения. В ГОСТе ключевая информация состоит из двух структур данных. Помимо собственно ключа, необходимого для всех шифров, она со держит еще и таблицу замен. Ниже приведены основные характери стики ключевых структур ГОСТа.
1. Ключ является массивом из восьми 32-битных элементов ко да, далее в настоящей работе он обозначается символом К:К = {К;}Ш, 7. В ГОСТе элементы ключа используются как 32-раз-
рядные целые числа без знака: 0 <Kt <232 Таким образом, размер
ключа составляет 32*8 = 256 бит или 32 байта.
2. Таблица замен является матрицей 8x16, содержащей 4-битовые элементы, которые можно представить в виде целых чисел от 0 до 15. Строки таблицы замен называются узлами замен, они должны содержать различные значения, т.е. каждый узел замен дол жен содержать 16 различных чисел от 0 до 15 в произвольном поряд ке. В настоящем подразделе таблица замен обозначается символом
Н: Н = |
,0 < Н{ j < 15. |
Таким образом, общий объем таб |
лицы замен равен: |
8 узлов х 16 |
элементов/узел х 4 бита/элемент = |
= 512 бит или 64 байта. |
|
|
2. Основной шаг криптопрсобразования |
||
Основной шаг |
криптопреобразования по своей сути является |
оператором, определяющим преобразование 64-битового блока дан ных. Дополнительным параметром этого оператора является 32-битовый блок, в качестве которого используется какой-либо эле мент ключа. Схема алгоритма основного шага приведена на рис. 36. Ниже даны пояснения к алгоритму основного шага:
— 1
S =(TVj +Я')тос1232
т= 0...7
-- 9
X =и .,,.
. __
S= 0 „ (S )
--А
S= S ®N 2
--S
=N t, N , = S
.-б
Шаг 0. Определяет исходные данные для основного шага крипто преобразования.
♦N - преобразуемый 64-бито вый блок данных, в ходе вы полнения шага его младшая (N\) и старшая (N2) части обрабатываются как отдель ные 32-битовые целые числа без знака. Таким образом, можно записать N = (N\ ,/V2).
♦Л"-32-битовый элемент
ключа.
Шаг 1. Сложение с ключом. Младшая половина преобразуемого блока складывается по модулю 232 с используемым на шаге элементом ключа, результат передается на сле дующий шаг.
Шаг 2. Определяет исходные
„% S преобразования:
Рис. 36. Схема основного |
^ |
~ г л * |
шага криптопреобразо- |
♦ ЛГ-преобразуемый 64-бито- |
|
вания алгоритма |
вый блок данных, в ходе |
|
ГОСТ28147-89 |
выполнения |
шага его млад |
шая (TVi) и старшая (ZV2) части обрабатываются как отдельные 32-битовые целые числа без знака. Таким образом, можно за писать N = (ЛГьЛГг).
♦ X - 32-битовый элемент ключа.
Шаг 3. Сложение с ключом. Младшая половина преобразуемого блока складывается по модулю 232 с используемым на шаге элемен том ключа, результат передается на следующий шаг.