Иванов Криптографические методы засчиты информации в компютерных 2012
.pdf
поразрядной операции М2 значений на выходах всех трех генераторов.
Sm |
Q1 |
Q24 |
Q55 |
cro1 |
|
|
|
|
|
|
M2 |
Sm |
Q1 |
Q7 |
ϑ |
Q57 |
|||
cro2 |
|
|
|
Sm |
Q1 |
Q19 |
Q58 |
cro3 |
|
|
|
Схема |
|
|
|
синхронизации |
|
|
|
ТИ |
|
|
|
Рис. 2.22. Генератор ПСЧ PIKE |
|||
Шифр Trivium – синхронный поточный шифр, разработанный в 2005 году С. De Canniere и P. Preneel для европейского проекта eSTREAM.
Trivium, изначально проектировавшийся для аппаратной реализации, также может успешно применяться и в программном исполнении, где одним из его преимуществ является быстродействие.
Для генерации ключевого потока длиной 264 бит требуется 80 бит секретного ключа и 80 бит инициализирующего значения (IV – initial value). Параметры шифра представлены в табл. 2.1.
Как и в большинстве поточных шифров, процесс генерации ключевого потока состоит из двух фаз: 1 – внутреннее состояние шифра инициализируется ключом и инициализирующим значением (IV), 2 – состояние неоднократно обновляется и генерируется ключевой поток. Сначала рассмотрим вторую.
111
Таблица 2.1
Параметры Trivium
Параметр |
Значение, бит |
Размер ключа |
80 |
Размер IV |
80 |
Внутреннее состояние |
288 |
Генерация ключевого потока. Шифр состоит из 288 бит внутреннего состояния обозначаемых (s1, s2 , ..., s288) . Генерация
ключевого потока представляет собой повторяющийся процесс: из внутреннего состояния шифра извлекаются значения 15 определенных битов, с помощью которых обновляются 3 бита внутреннего состояния и рассчитывается один бит ключевого потока zi, затем внутреннее состояние сдвигается. Процесс повторяется
до тех пор, пока требуемое количество битов ( N δ 264 ) ключевого потока не сгенерируется. Описание этого процесса на псевдокоде имеет следующий вид:
for i 1 to N do
t1 μ s66 s93 t2 μ s162 s177 t3 μ s243 s288
zi μ t1 t2 t3
t1 μ t1 s91 s92 s171 t2 μ t2 s175 s176 s264 t3 μ t3 s286 s287 s69
s1, s2 , ..., s93 μ t3, s1, s2 , ..., s92
s94, s95, ..., s177 μ t1, s94, s95, ..., s176s178, s179, ..., s288 μ t2 , s178, s179, ..., s288
end for
112
Операторы «+» и «·» – операции XOR и AND соответственно.
Схема генератора ПСЧ Trivium представлена на рис. 2.23.
S1 |
... |
S66 |
... S69 |
… |
S91 S92 S93 |
|
|
|
|
|
|
t1 |
|
S94 |
... |
S162 |
… S171 |
… S175 S176 S177 |
|
|
|
|
|
|
|
t2 |
|
S178 |
… |
S243 |
… S264 |
… S286 S287 S288 |
|
|
|
|
|
|
|
t3 |
zi |
Рис. 2.23. Генератор ключевого потока Trivium
Инициализация начального состояния ключом и IV. Ал-
горитм инициализируется загрузкой 80-битного ключа K и инициализирующего значения IV такой же разрядности в 288 бит внутреннего состояния, все остальные биты внутреннего состояния, исключая s286, s287, s288, обнуляются. Затем полученное
внутреннее состояние сдвигается вправо четыре полных цикла похожим способом, как описано выше, но без генерации ключевого потока. Этот процесс на псевдокоде можно описать следующим образом:
s1, s2 , ..., s93 μ K1, K2 , ..., K80, 0, ..., 0s94, s95, ..., s177 μ IV1, IV2 , ..., IV80, 0, ..., 0s178, s179, ..., s288 μ 0, ..., 0, 1, 1, 1
for i 1 to 4 288 do
113
t1 μ s66 s91 s92 s93 s171
t2 μ s162 s175 s176 s177 s264 t3 μ s243 s286 s287 s288 s69
s1, s2 , ..., s93 μ t3, s1, s2 , ..., s92
s94, s95, ..., s177 μ t1, s94, s95, ..., s176s178, s179, ..., s288 μ t2 , s178, s179, ..., s288
end for
Несмотря на тот факт, что Trivium проектировался не для программной реализации, шифр довольно успешно может применяться на стандартных ПК.
2.9. Самосинхронизирующиеся поточные шифры
Самосинхронизирующиеся поточные шифры благодаря свойству восстанавливать информацию после нарушения синхронизации – это наиболее распространенный метод шифрования в дипломатических, военных и промышленных системах связи. Наиболее распространенный режим функционирования самосинхронизирующихся поточных шифров – режим обратной связи по шифротексту.
В шифрах рассматриваемого типа каждый зашифрованный символ (бит при последовательной передаче) зависит от ключа k и только от последних Nm символов шифротекста. Память
разрядности Nm поточного шифра может быть реализована
различными способами, простейший из них – использование Nm -разрядного регистра сдвига (рис. 2.24).
Пусть Fc – функция шифрования, G – функция, преобразую-
щая на стадии инициализации секретный ключ K и синхропосылку S во внутренний ключ k и вектор инициализации IV регистра сдвига. Тогда уравнение работы криптосхемы имеет вид
114
k, IV G K, S ; |
|
||
c- Nm 1 ...c0 |
IV ; |
|
|
zt |
Fc k, ct -Nm ...ct -1 |
; |
|
ct |
Mt zt . |
|
|
Расшифрование символа закончится успешно, если последние Nm символов шифротекста были приняты правильно.
Пусть Ns – разрядность символа, тогда одиночная ошибка в канале связи вызовет серию из Nm Ns потенциально неправиль-
но расшифрованных бит на принимающей стороне. Самосинхронизирующееся шифрование имеет смысл применять лишь тогда, когда вероятность битовых ошибок в двоичном канале
без памяти значительно меньше величины Nm Ns -1. Дополни-
тельное достоинство рассматриваемой криптосхемы – возможность реализации поверх любой цифровой коммуникационной системы.
K |
S |
K |
S |
|
G |
G |
|
|
IV |
IV |
|
k |
... |
... |
k |
|
Fc |
Fc |
|
M |
|
c |
M |
Рис. 2.24. Общая схема самосинхронизирующегося поточного шифра
Один из существующих подходов – использование для построения самосинхронизирующихся поточных шифров последовательной и параллельной композиции простейших функций f шифрования. Параллельная композиция суть побитовый XOR последовательностей с выходов двух блоков f, в последователь-
115
ной композиции выход одного блока f является входом другого. На рис. 2.25 показана схема поточного шифра У. Маурера.
Базовый компонент схемы – 3-битовый регистр сдвига с зависящей от ключа функцией f выхода. Четыре таких компонента образуют блок следующего уровня – пару параллельно соединенных цепочек из двух базовых компонентов. На следующем уровне четыре таких блока собраны в последовательную композицию. На двух следующих уровнях эта конструкция повторяется. Результирующая последовательностная машина (ПМ) имеет входную память объемом 192 бит и четыре бита-компонента на каждый бит памяти. Внутреннее состояние ПМ служит входом для зависящей от ключа функции шифрования Fc . Для задания
конструкций булевых функций f ключ шифрования «разворачивается» в 256 байтов, каждый из которых определяет таблицу истинности соответствующей функции.
Основная идея данной конструкции – построение ПМ, количество элементов памяти которой превышает разрядность входной памяти.
k
fi(k)
Fc
M |
c |
Рис. 2.25. Схема Маурера
116
Контрольные вопросы
1.Сформулируйте требования к качественному симметричному шифру.
2.Перечислите недостатки режима шифрования ECB.
3.Укажите области предпочтительного использования режима шифрования ECB.
4.Какие режимы шифрования могут использоваться для формирования контрольного кода целостности информации?
5.Какие режимы шифрования требуют наличия только функции зашифрования EAB ?
6.Сравните генераторы ПСЧ со структурами OFB и Counter.
7.Перечислите основные достоинства Российского стандарта криптозащиты.
8.Сколько раундов AES-128 обеспечивают полное рассеивание и перемешивание информации? Обоснуйте свой ответ.
9.Сравните архитектуры блочных шифров «Сеть Фейстеля» и «Квадрат».
10.Укажите основные различия блочных и поточных шифров (не менее пяти).
11.Укажите способы заполнения таблиц замен S-блоков (не менее трех).
12.Кто является инициатором создания симметричной криптосистемы: отправитель или получатель?
13.Укажите два принципиальных недостатка симметричной криптосистемы.
14.Нарисуйте схему вероятностного блочного шифрования: а) в режиме ECB; б) в режиме OFB, в) в режиме CFB.
15.Сформулируйте требования к качественному S-блоку.
16.Перечислите достоинства вероятностного шифрования.
117
ГЛАВА 3. ХЕШ-ФУНКЦИИ
3.1. Требование к качественной хеш-функции
Хеширование – вид криптографического преобразования, не менее важный, чем шифрование. При этом существует мнение, что задача проектирования качественной хеш-функции более сложная, чем задача проектирования качественного симметричного шифра.
Хеш-функцией называется преобразование h, превращающее информационную последовательность (строку) M произвольной длины в информационную последовательность (строку) фиксиро-
ванной длины h M . На рис. 3.1 показана упрощенная схема хешфункции.
|
|
n |
|
|
|
|
Функция обратной |
|
|
|
|
|
связи FB |
|
|
|
|
m |
h(M) |
|
|
|
N |
|
|
|
|
|
|
|
|
|
Память |
h0 |
|
|
|
Q |
|
|
|
|
|
|
|
F |
n |
Генератор |
|
Исходная |
|
ПСЧ |
|
|
|
|
|
|
|
информация |
n |
|
|
а |
M |
|
|
|
|
M1 |
M2 |
M3 |
... |
Mt |
|
|
M |
|
|
|
|
h(x) |
|
|
|
|
хеш-образ |
б |
|
|
|
h(M) |
|
|
|
|
|
|
|
Рис. 3.1. Хеш-функция: а – наложение ПСП на входную информационную последовательность; б – упрощенный принцип действия хеш-функции
Процесс получения хеш-функции можно рассматривать как наложение псевдослучайной последовательности (ПСП) на входную
118
преобразуемую последовательность. По этой причине часто спецификация синхронного поточного шифра описывает и родственную хеш-функцию.
К криптографической функции h x предъявляются следующие
основные требования:
результат действия хеш-функции должен зависеть от всех двоичных символов исходного сообщения, а также от их взаимного расположения;
h x должна быть чувствительна к любым изменениям вход-
ной информационной последовательности, при любых изменениях на входе результат действия хеш-функции должен быть непредсказуем – в среднем должна измениться половина бит хеш-образа.
Рассмотрим четыре проблемы дней рождения, которые могут быть применены для анализа безопасности хеш-функций.
Имеем равномерно распределенную случайную переменную, принимающую N возможных значений (между 0 и N – 1).
1)Определить минимальное число реализаций k, при котором с вероятностью P τ1/ 2 хотя бы одна выборка оказалась равной предопределенной величине.
2)Определить минимальное число реализаций k, при котором с вероятностью P τ1/ 2 хотя бы одна выборка оказалась равной выбранной величине.
3)Определить минимальное число реализаций k, при котором с вероятностью P τ1/ 2 хотя бы две выборки оказались равными.
Формируем два набора случайных значений по k выборок в каждом.
4)Определить минимальное число реализаций k, при котором с вероятностью P τ1/ 2 хотя бы одна выборка из первого набора оказалась равной одной выборке из второго набора.
Решения проблем дней рождения приведены в табл. 3.1.
Для качественной криптографической хеш-функции три сле-
дующие задачи вычислительно неразрешимы:
1)нахождение прообраза – задача нахождения последовательности M по заданному хеш-образу h M (рис. 3.2,а);
119
2) нахождение коллизии – задача нахождения последователь- |
|
ностей M и M', причем M' ζ M, таких, что h M' |
h M ; |
3)нахождение второго прообраза – задача нахождения для
заданной последовательности M другой последовательности M', M' ζ M, такой, что M' h M (рис. 3.2,б).h
Таблица 3.1
Решения проблем дней рождения
Проб- |
Вероят- |
Значение k |
Значение k |
Значение |
|
лема |
ность |
|
при P 1/ 2 |
k при |
|
|
|
|
|
P |
1/ 2 |
|
|
|
|
и N |
365 |
1 |
P | e k/N |
k | ln>1/ 1 P υ N |
k | 0,69υ N |
253 |
|
2 |
P | e k 1 /N |
k | n>1/ 1 P υ N 1 |
k | 0,69υ N 1 |
254 |
|
3 |
P | ek k 1 /2 N |
k | 2ln>1/ 1 P `1/ 2 υ N1/ 2 |
k |1,18υ N1/ 2 |
|
23 |
4 |
P | e k2/2 N |
k | ln>1/ 1 P `1/ 2 υ N1/ 2 |
k | 0,83υ N1/ 2 |
|
16 |
Примечание. Последняя ячейка в строке 3 представляет собой классический пара-
докс дней рождения.
Если n – разрядность хеш-образа, сложность первой и третьей атаки (рис. 3.2) на идеальную хеш-функцию пропорциональна 2n .
Сложность задачи нахождении коллизии пропорциональна 2n / 2 . В табл. 3.2 приведены оценки сложности атак на идеальную хешфункцию, где k – размер списков сообщений, создаваемых атакующим. Рассмотрим отличия поиска коллизии в случаях 1 и 2. В первом случае речь идет о поиске двух произвольных сообщений, имеющих одинаковое значение хеш-образа. Есть точка зрения, что эта атака бесполезна для атакующего. Однако существуют атаки на конкретные протоколы с использованием известных коллизий MD5. Во втором случае предполагается, что одно сообщение реальное, а другое – фальсифицированное, при этом оба сообщения должны быть осмысленными. Решение состоит в создании двух списков осмысленных сообщений путем внесения избыточности или модификации содержимого (например, добавление пробелов,
120
