Смекни!
smekni.com

Шпаргалки по криптографии (стр. 2 из 8)

блок шифртекста. Далее, результат шифрования с предыдущего шага (до сложения!)

шифруется еще раз и складывается со следующим блоком открытого текста. Таким

образом, гамма шифра получается путем многократного шифрования синхропосылки в

режиме ECB. Обработка последнего блока - аналогично предыдущему режиму.

Легко видеть, что приведённое определение OFB полностью совпадает с

определением SM. И это соотвествует криптографической практике в частности в

[1.2, p 203] просто нет SM, а OFB определяется так:

Ci = Pi ^ Si ; Si = Ek(Si-1) - шифрование

Pi = Ci ^ Si ; Si = Ek(Si-1) - расшифрование

В тоже время можно встретить другое определение OFB, на пример,

http://msdn.microsoft.com/library/psdk/crypto/aboutcrypto_9omd.htm.

Там же рекомендовано установить размер сдвига равный размеру блока

блочного шифра по причинам стойкости. Однако, такая установка приводит

к полному совпадению с режимом SM. В частности для DES, всегда применяют

ofb64bit.

CBC

Cipher Block Chaining Mode (режим сцепления блоков). В этом режиме очередной

блок открытого текста складывается по модулю 2 с предыдущим блоком шифртекста,

после чего подвергается зашифрованию в режиме ECB. Для самого первого блока

"предыдущим блоком шифртекста" является синхропосылка. Если последний блок

открытого текста неполный - он дополняется до необходимой длины.

Q: Что такое "гамма" и "гаммирование"?

A: Гамма - это псевдослучайная числовая последовательность, вырабатываемая по

заданному алгоритму и используемая для зашифрования открытых данных и

расшифрования зашифрованных. Гаммированием принято называть процесс наложения

по определенному закону гаммы шифра на открытые данные для их зашифрования.

Q: А у поточного шифрования какие бывают режимы?

A: Шифрование последовательности с обратной связью (заворачивает

криптотекст на вход ГСП (генератор случайной последовательности, роль которого

играет алгоритм шифрования) шифрование ключей с обратной связью. См. режим CFB

для блочных шифров.

Q: Что такое архитектура "Квадрат" (SQUARE)?

A. Это архитектура построения блочных шифров с секретным ключом, она имеет

следующие особенности:

- она является вариантом общих SP-сетей (за один раунд шифруемый блок

преобразуется целиком), построенным по схеме KASLT (Key Addition -

Substitution - Linear Transformation);

- архитектура байт-ориентирована, шифруемый блок представляется в виде

матрицы байтов, замена также выполняется побайтно, на каждом раунде может

использоваться один, максимум-два узла замен, больше втиснуть сложнее;

- линейное преобразование (третий шаг раунда) двухфазное, состоит из

перестановки байтов в матрице и независимого линейного комбинирования

отдельных столбцов (или строк) матрицы. Смысл этой двухфазности - диффузия

изменений в двух направлениях - по строкам и по столбцам;

В данной архитектуре замена приводит к диффузии изменений внутри байта,

линейное преобразование - в двух измерениях матрицы, в итоге получаем, что

любое изменение в данных диффундирует на весь блок всего за 2 раунда.

В архитектуре "квадрат" выполнены шифры AES(Rijndael), Square ("квадрат",

его название дало имя всей архитектуре), Crypton (один из кандидатов на

AES). Второе место в конкурсе AES занял другой KASLT-шифр, Serpent. Дело

идет к тому, что KASLT-сети и, в частности, архитектура SQUARE, в ближайшем

будущем станут безраздельно доминировать.

Q: А какие есть симметричные алгоритмы шифрования?

A: Да их немеряно! ;) Приведем наиболее известные:

Шифр Цезаря

Великий император, с целью сокрытия содержания написанного заменял каждую

букву на третью следующую за ней по счету букву алфавита. Цезарь применял

сдвиг на три буквы; в общем случае это может быть любое число, меньшее, чем

длина алфавита. Это число и является ключом в данном шифре:

А Б В Г Д Е Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Ь Ъ Э Ю Я

Г Д Е Е Ж 3 И И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Ь Ъ Э Ю Я А Б В

КРИПТОГРАФИЯ -> НУЛТХСЕУГЧЛВ

Шифр Виженера

Является модификацией шифра Цезаря, в котором величина сдвига является

переменной и зависит от ключевого слова. Например, если в качестве ключевого

слова использовать слово "ТАЙНА", то это будет означать, что первую букву

сообщения необходимо сдвинуть на 20 (порядковый номер буквы "Т"), вторую -

на 1 (порядковый номер буквы "А"), третью - на 11, четвертую - на 15,

пятую - на 1, шестую - снова на 20 (ключевое слово начинаем использовать

с начала) и т.д. Таким образом, ключевое слово "накладывается" на защищаемый

текст.

Шифр Вернама

Алгоритм был изобретен в 1917 г. сотрудником компании AT&T по фамилии

Vernam и называется одноразовым блокнотом (one-time pad).

В этом алгоритме ключ представляет собой последовательность битов не менее

длинную, чем шифруемое сообщение m.

Результат шифрования получается в результате побитового сложения по модулю 2

сообщения и ключа.

Расшифровка состоит в побитовом сложении шифрограммы с ключом.

Отметим, что данный алгоритм утрачивает свою надежность, если два сообщения

оказываются зашифрованы одним и тем же ключом. В этом случае путем побитового

сложения шифрограмм можно исключить биты ключа, а получившаяся побитовая

сумма осмысленных сообщений поддается методам статистического анализа.

Ключ должен быть надежным образом передан адресату, что само по себе не

проще, чем передача сообщения. Единственная выгода метода состоит в том,

что ключ можно передать заранее, а сообщение - по открытому каналу и тогда,

когда это будет нужно.

AES.

Победителем конкурса AES стал алгоритм Rijndael (см. ниже).

BlowFish.

Блочный алгоpитм, сбалансиpованная сеть Файстеля, 16 итеpаций пpостого

кpиптогpафического пpеобpазования. Длина ключа 40 - 448

бит, отсюда сложная фаза инициализации до опеpаций шифpования.

Разработан в 1993 году.

Автор: Брюс Шнаейр (Bruce Schneier)

Параметры:

- pазмер блока 64 бита

- pазмер ключа 32-448 бит

- число раундов 16

CAST.

В некотором смысле аналог DES.

Авторы: C.M. Adams и S.E.Tavares.

Параметры:

CAST-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)

DES.

Алгоритм с эффективной длиной ключа в 56-bits (хотя часто говорят о 8 байтах,

но старший бит в байте не используется).

Автор: National Institute of Standards and Technology (NIST).

Параметры:

- размер блока 64 бита

- размер ключа 56 бит

- число раундов 16

IDEA (International Decryption-Encryption Algorithm)

Время/место разработки 1990-1991 годы, Цюрих, Швейцария.

Архитектура Общая сбалансированная шифрующая SP-сеть, инвариант раунда -

побитовая сумма по модулю 2 старшей и младшей половин блока.

Авторы: Xuejia Lai, James Massey.

Параметры:

- pазмер блока 64 бита

- pазмер ключа 128 бит

- число раундов 8

Lucifer.

первый (опубликованный в открытой печати) блочный алгоритм. Предтеча DES

Автор: Horst Feisstel, Walter Tuchman (IBM)

тип - сеть Файстеля

Параметры:

- размер блока 128 bit

- размер ключа 128 bit

- число раундов 16 .

В каждом используется подключ в 72 бита, порождаемый из главного

ключа поскольку имеет больший размер ключа и блока по отношению к DES,

поэтому более устойчив к дифф. криптоанализу

NewDES.

Создан в 1985 как творческая переработка DES. Это самостоятельный алгоритм, а

не вариант DES. NewDES несколько проще, чем DES, поскольку у него нет начальной

и, понятно, конечной перестановки. Операции производятся над байтами, а не

битами как в DES. Brute-force атака на NewDES требует 2^119 операций, против

2^111 для TripleDES.

Автор: Robert Scott.

Параметры:

- размер блока 64 бита

- размер ключа 120 бит

- число раундов 17

RC2.

Блочный алгоpитм шифpования. Длина ключа пpеменная - от 8 до 1024 бит.

Разpабатывался под 16-ти битное слово. Реализyет

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 бита, при котором