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

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

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

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

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

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

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

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

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

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

 

Рис. 3.6. Схема режима ECB.

 

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

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

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

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

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

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

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

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

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

 

Рис. 3.7. Схема режима CBC.

 

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