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

Математические основы криптологии и криптографические методы и средс

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

- число раундов 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 с используемым на шаге элемен­ том ключа, результат передается на следующий шаг.