Режимы работы блочных шифров
Чтобы использовать алгоритмы блочного шифрования для различных криптографических задач существует несколько режимов их работы. Наиболее часто встречающимися в практике являются следующие режимы:
· электронная кодовая книга – 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). Он может защитить как от случайных, так и преднамеренных изменений в сообщениях.