Режимы работы блочных шифров

Чтобы использовать алгоритмы блочного шифрования для различных криптографических задач существует несколько режимов их работы. Наиболее часто встречающимися в практике являются следующие режимы:

· электронная кодовая книга – ECB (Electronic Code Book);

· сцепление блоков шифртекста – CBC (Cipher Block Chaining);

· обратная связь по шифртексту – CFB (Cipher Feed Back);

· обратная связь по выходу – OFB (Output Feed Back);

Обозначим применение шифра к блоку открытого текста как Режимы работы блочных шифров - student2.ru , а применение шифра к блоку шифртекста как Режимы работы блочных шифров - student2.ru ,
где K – ключ, M – блок открытого текста, а C – получающийся шифртекст.

3.5.1. Режим "Электронная кодовая книга"

В режиме электронная кодовая книга (ECB) исходный текст разбивается на блоки, равные размеру блока шифра. Затем с каждый блок шифруют независимо от других с использованием одного ключа шифрования.

Расшифрование осуществляется аналогично. Графически это выглядит так, как показано на рис. 3.6.

Режимы работы блочных шифров - student2.ru
Рис. 3.6. Схема режима ECB.

Непосредственно этот режим применяется для шифрования небольших объемов информации, размером не более одного блока или для шифрования ключей. Это связано с тем, что одинаковые блоки открытого текста преобразуются в одинаковые блоки шифртекста, что может дать криптоаналитику определенную информацию о содержании сообщения. К тому же, если он предполагает наличие определенных слов в сообщении, то получается, что он обладает как фрагментом открытого текста, так и соответствующего шифртекста, что может сильно облегчить задачу нахождения ключа.

Основным достоинством этого режима является простота реализации.

3.5.2. Режим "Сцепление блоков шифртекста"

Сцепление блоков шифртекста (CBC) – один из наиболее часто применимых режимов шифрования для обработки больших количеств информации. Исходный текст разбивается на блоки, а затем обрабатывается по следующей схеме.

1. Первый блок складывается побитно по модулю 2 (XOR) с неким значением IV – начальным вектором (Init Vector), который выбирается независимо перед началом шифрования.

2. Полученное значение шифруется.

3. Полученный в результате блок шифртекста отправляется получателю и одновременно служит начальным вектором IV для следующего блока открытого текста.

Расшифрование осуществляется в обратном порядке.

Графически схема шифрования/расшифрования выглядит так, как показано на рис. 3.7.

Режимы работы блочных шифров - student2.ru
Рис. 3.7. Схема режима CBC.

В виде формулы, преобразование в режиме CBC можно представить как Режимы работы блочных шифров - student2.ru , где i – номер соответствующего блока. Из-за использования такого сцепления блоков шифртекста с открытым текстом пропадают указанные выше недостатки режима ECB, поскольку каждый последующий блок зависит от всех предыдущих. Одним из важных свойств этого режима является "распространение ошибки" – изменение блока открытого текста меняет все последующие блоки шифртекста. Поскольку последний блок шифртекста зависит от всех блоков открытого текста, то его можно использовать для контроля целостности и аутентичности (проверки подлинности) сообщения. Его называют кодом аутентификации сообщения (MAC – Message Authentication Code). Он может защитить как от случайных, так и преднамеренных изменений в сообщениях.

Наши рекомендации