Вопросы безопасности

Самосинхронизирующиеся потоковые шифры также чувствительны к вскрытию повторной передачей. Сна­чала Мэллори записывает несколько битов шифротекста. Затем, позднее, он вставляет эту запись в текущий трафик. После выдачи некоторой чепухи, пока принимающая сторона синхронизируется с вставленной записью , старый шифротекст будет расшифрован как нормальный . У принимающей стороны нет способа узнать, что по­лученные данные являются повторно передаваемой записью. Если не используются метки времени, Мэллори может убедить банк снова и снова зачислять деньги на его счет, повторно передавая одно и то же сообщение (конечно, при условии, что ключ не менялся). Другие слабые места этой схемы могут стать заметны при очень частой пересинхронизации [408].

9.6 Режим обратной связи по шифру

Блочный шифр также может быть реализованы как самосинхронизирующийся потоковый шифр, такой р е-жим называется режимом обратной связи по шифру (cipher-feedback, CFB). В режиме СВС шифрование не мог­ло начаться, пока не получен целый блок данных. Это создает проблемы для некоторых сетевых приложений . Например, в безопасной сетевой среде терминал должен иметь возможность передавать главному компьютеру каждый символ сразу, как только он введен. Если данные нужно обрабатывать байтами, режим СВС также не работает.

В режиме CFB единица зашифрованных данных может быть меньше размера блока . В следующем примере каждый раз шифруется только один символ ASCII (это называется 8-битовым шифрованием), но в числе 8 нет ничего волшебного. Вы можете шифровать данные по одному биту с помощью 1-битового CFB, хотя использо­вание для единственного бита полного шифрования блочным шифром потребует много ресурсов, потоковый шифр в этом случае был бы идеей получше. (Уменьшение количества циклов блочного фильтра для повышения скорости не рекомендуется [1269].) Можно также использовать 64-битовый CFB, или любой и-битовый CFB, где п больше или равно размеру блока.


На 0-й показан 8-битовый режим CFB, работающий с 64-битовым алгоритмом. Блочный алгоритм в режиме CFB работает с очередью, размер которой равен размеру используемого блока . Сначала очередь заполнена IV, как и в режиме СВС. Очередь шифруется и для крайних левых восьми битов результата выполняется XOR с первыми 8-битовым символом открытого текста для получения первого 8-битового символа шифротекста. Т е-перь этот символ передается. Те же восемь битов также передвигаются на место крайних правых восьми битов очереди, а крайними левыми битами становятся следующие восемь битов . Крайние восемь левых битов отбра­сывается. Следующий символ открытого текста шифруется тем же способом . Дешифрирование является обрат­ным процессом. И шифрующей, и дешифрирующей стороной блочный алгоритм используется в режиме шифр о-вания.

Если размер блока алгоритма - п, то -битовый CFB выглядит следующим образом (см. -1-й):

С, = Р, ®Ek(C,j) Р, = С, ®Ек(С,.,)


Сдвиговый регистр


Сдвиговый регистр


V/


Ключ К


Шифрование


Ключ К


Шифрование


 


Самый левый байт


к,


Самый левый байт


к,


 


pi