Режим «Сцепление блоков шифра»

 

В этом режиме исходный файл М разбивается на N-битовые блоки: М=М1М2…Мn. Первый блок М1 складывается по модулю 2 с N-битовым начальным вектором IV, который меняется ежедневно и держится в секрете. Полученная сумма затем шифруется с использование ключа блочного алгоритма, известного и отправителю, и получателю информации. Полученный N-битовый шифр С1 складывается по модулю 2 со вторым блоком текста, результат шифруется и получается второй N-битовый шифр С2, и т.д. Процедура повторяется до тех пор, пока не будут обработаны все блоки текста.

 

 

Рисунок 4.1.5 — Схема блочного алгоритма в режиме счепления блоков шифра

 

Таким образом, для всех i = 1…n (n — число блоков) результат шифрования Сi определяется следующим образом: Сi = E (Mi Å Ci-1), где С0 = IV — начальное значение шифра, равное начальному вектору (вектору инициализации).

Очевидно, что последний N-битовый блок шифротекста является функцией секретного ключа, начального вектора и каждого бита открытого текста независимо от его длины. Этот блок шифротекста называют кодом аутентификации сообщения (КАС).

Код КАС может быть легко проверен получателем, владеющим секретным ключом и начальным вектором, путем повторения процедуры, выполненной отправителем. Посторонний, однако, не может осуществить генерацию КАС, который воспринялся бы получателем как подлинный, чтобы добавить его к ложному сообщению, либо отделить КАС от истинного сообщения для использования его с измененным или ложным сообщением.

Достоинство данного режима в том, что он не позволяет накапливаться ошибкам при передаче.

Блок Мi является функцией только Сi-1 и Сi. Поэтому ошибка при передаче приведет к потере только двух блоков исходного текста.

 

4.1.2.3 Режим «Обратная связь по шифру»

 

Файл, подлежащий шифрованию (расшифрованию), считывается последовательными блоками длиной k-битов (k=1…N).

 

Рисунок 4.1.6 — Схема блочного алгоритма в режиме обратной связи по шифру

Входной блок (N-битовый регистр сдвига) вначале содержит вектор инициализации, выровненный по правому краю.

Предположим, что в результате разбиения на блоки мы получили n блоков длиной k битов каждый (остаток дописывается нулями или пробелами). Тогда для любого i=1…n блок шифротекста

 

Ci = Mi Å Pi-1,

 

где Pi-1 обозначает k старших битов предыдущего зашифрованного блока.

Обновление сдвигового регистра осуществляется путем удаления его старших k битов и записи Ci в регистр. Восстановление зашифрованных данных также выполняется относительно просто: Pi-1 и Ci вычисляются аналогичным образом и

Mi = Ci Å Pi-1.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: