Блочный шифр
Базовая схема блочного шифра изображена следующим образом -
Блочный шифр принимает блок битов открытого текста и генерирует блок битов зашифрованного текста, как правило, одинакового размера. Размер блока в данной схеме фиксирован. Выбор размера блока не влияет напрямую на надежность схемы шифрования. Сила шифра зависит от длины ключа.
Размер блока
Хотя допустим любой размер блока, при выборе размера блока необходимо учитывать следующие аспекты.
Avoid very small block size- Скажем, размер блока составляет m бит. Тогда возможные комбинации битов открытого текста равны 2 m . Если злоумышленник обнаруживает блоки обычного текста, соответствующие некоторым ранее отправленным блокам зашифрованного текста, то злоумышленник может запустить тип «атаки по словарю», создав словарь пар открытого текста / зашифрованного текста, отправленных с использованием этого ключа шифрования. Чем больше размер блока, тем сложнее атака, так как словарь должен быть больше.
Do not have very large block size- При очень большом размере блока шифр становится неэффективным в работе. Такие открытые тексты необходимо будет дополнить перед шифрованием.
Multiples of 8 bit - Предпочтительный размер блока кратен 8, поскольку его легко реализовать, поскольку большинство компьютерных процессоров обрабатывают данные, кратные 8 битам.
Заполнение в блочном шифре
Блочные шифры обрабатывают блоки фиксированного размера (скажем, 64 бита). Длина открытых текстов в большинстве случаев не кратна размеру блока. Например, 150-битный открытый текст предоставляет два блока по 64 бита каждый с третьим блоком баланса 22 бита. Последний блок битов необходимо дополнить избыточной информацией, чтобы длина последнего блока была равна размеру блока схемы. В нашем примере к оставшимся 22 битам необходимо добавить еще 42 избыточных бита, чтобы обеспечить полный блок. Процесс добавления битов к последнему блоку называетсяpadding.
Слишком большое количество отступов делает систему неэффективной. Кроме того, заполнение может иногда делать систему небезопасной, если заполнение всегда выполняется одними и теми же битами.
Схемы блочных шифров
Существует огромное количество схем блочных шифров, которые используются. Многие из них широко известны. Ниже перечислены наиболее популярные и известные блочные шифры.
Digital Encryption Standard (DES)- Популярный блочный шифр 1990-х годов. В настоящее время он считается «сломанным» блочным шифром, прежде всего из-за его небольшого размера ключа.
Triple DES- Это вариантная схема, основанная на многократных приложениях DES. Это все еще уважаемые блочные шифры, но они неэффективны по сравнению с доступными новыми более быстрыми блочными шифрами.
Advanced Encryption Standard (AES) - Это относительно новый блочный шифр, основанный на алгоритме шифрования. Rijndael который выиграл конкурс дизайна AES.
IDEA- Это достаточно сильный блочный шифр с размером блока 64 и размером ключа 128 бит. Ряд приложений используют шифрование IDEA, включая ранние версии протокола Pretty Good Privacy (PGP). Использование схемы IDEA имеет ограниченное применение из-за проблем с патентами.
Twofish- Эта схема блочного шифра использует размер блока 128 бит и ключ переменной длины. Он был одним из финалистов AES. Он основан на более раннем блочном шифре Blowfish с размером блока 64 бита.
Serpent- Блочный шифр с размером блока 128 бит и длиной ключа 128, 192 или 256 бит, который также был финалистом конкурса AES. Это более медленный, но более безопасный дизайн, чем другие блочные шифры.
В следующих разделах мы сначала обсудим модель блочного шифра, а затем DES и AES, два из самых влиятельных современных блочных шифров.