Часть I
Безопасность сообщений
Глава 4
Блочные шифры
Блочные шифры — одна из фундаментальных составляющих криптогра-
фических систем. Существует обширная литература, посвященная блочным
шифрам, а сами они являются одной из наиболее хорошо изученных областей
криптографии.
4.1
Что такое блочный шифр?
Блочный шифр (block cipher)
— это функция шифрования, которая приме-
няется к блокам текста фиксированной длины. Текущее поколение блочных
шифров работает с блоками текста длиной 128 бит (16 байт). Такой шифр
принимает на вход 128-битовый открытый текст и выдает 128-битовый шиф-
рованный текст. Блочный шифр является обратимым: существует функция
дешифрования, которая принимает на вход 128-битовый шифрованный текст
и выдает исходный 128-битовый открытый текст. Открытый и шифрованный
текст всегда имеет один и тот же размер, который называется
размером блока
(block size)
.
Чтобы зашифровать сообщение, нужен секретный ключ. Невозможно
скрыть сообщение, не сохраняя что-нибудь в секрете. Подобно открытому
и шифрованному тексту, ключ шифрования также представляет собой строку
битов. Наиболее распространены ключи размером 128 и 256 бит. Шифрова-
ние открытого текста
p
при помощи ключа
K
принято обозначать как
E
(
K, p
)
или
E
K
(
p
)
, а расшифровку шифрованного текста
c
при помощи ключа
K
—
D
(
K, c
)
или
D
K
(
c
)
.
Как правило, блочные шифры применяются для шифрования информа-
ции. К коротким сообщениям блочный шифр можно применять непосред-
ственно. Если же длина сообщения превышает длину блока (обычно так и бы-
62
4.2. Типы атак
63
вает), необходимо использовать один из режимов работы блочного шифра,
рассматриваемых в главе 5, “Режимы работы блочных шифров”.
Мы всегда следуем принципу Кирхгофа и предполагаем, что алгоритмы
шифрования и дешифрования являются публично известными. Многим труд-
но смириться с таким подходом, и они предпочитают сохранять алгоритмы
в секрете. Никогда не доверяйте секретным блочным шифрам (или любым
другим секретным криптографическим функциям)!
Иногда блочный шифр было бы удобно представить в виде большой таб-
лицы, построенной на основе конкретного ключа. Для каждого фиксирован-
ного ключа можно построить таблицу соответствий, которая бы отображала
все варианты открытого текста в соответствующий шифрованный текст. Ра-
зумеется, это была бы
очень
большая таблица. Для блочного шифра с раз-
мером блока 32 бит понадобилась бы таблица размером 16 Гбайт, для шифра
с размером блока 64 бит — 150 млн. Тбайт, а для шифра с размером блока
128 бит —
5
·
10
39
байт. Такому большому числу еще даже не придумали назва-
ния! Конечно же, на практике построить такую таблицу нереально, однако
ее удобно использовать в качестве концептуальной модели. Мы также зна-
ем, что блочный шифр является обратимым. Другими словами, в таблице не
существует двух одинаковых элементов шифрованного текста, соответству-
ющих разным элементам открытого текста. В противном случае функция
дешифрования не смогла бы однозначно восстановить открытый текст по
шифрованному тексту. Из этого можно сделать вывод, что в таблице содер-
жится ровно по одному экземпляру всех возможных вариантов шифрован-
ного текста. Как видите, набор элементов шифрованного текста совпадает
с набором элементов открытого текста, порядок расположения которых из-
менен. В математике это называется
перестановкой (permutation)
. Блочный
шифр с размером блока
k
бит задает перестановку
k
-битовых элементов для
каждого из заданных значений ключа.
4.2
Типы атак
На первый взгляд, имея определение блочного шифра, совсем несложно
дать определение безопасному блочному шифру: это блочный шифр, который
позволяет сохранить открытый текст в секрете. Однако очевидно, что данное
требование является необходимым, но отнюдь не достаточным для построе-
ния действительно хорошего шифра. Оно предполагает всего лишь устойчи-
вость блочного шифра по отношению к атаке с использованием только шиф-
рованного текста, в котором нападающий видит лишь зашифрованный текст
сообщения. В литературе опубликовано несколько примеров атак такого типа
[53, 91], однако они крайне редки. Большинство известных атак принадлежат
|