Алгоритмы симметричного шифрования

Режим CFB


Блочный алгоритм предназначен для шифрования блоков определенной длины. Однако можно преобразовать блочный алгоритм в поточный алгоритм шифрования, используя последние два режима. Поточный алгоритм шифрования устраняет необходимость разбивать сообщение на целое число блоков достаточно большой длины, следовательно, он может работать в реальном времени. Таким образом, если передается поток символов, каждый символ может шифроваться и передаваться сразу, с использованием символьно ориентированного режима блочного алгоритма шифрования.

Одним из преимуществ такого режима блочного алгоритма шифрования является то, что зашифрованный текст будет той же длины, что и исходный.

Будем считать, что блок данных, используемый для передачи, состоит из J бит; обычным значением является J=8. Как и в режиме CBC, здесь используется операция XOR для предыдущего блока зашифрованного текста и следующего блока незашифрованного текста. Таким образом, любой блок зашифрованного текста является функцией от всего предыдущего незашифрованного текста.

Рассмотрим шифрование. Входом функции шифрования является регистр сдвига, который первоначально устанавливается в инициализационный вектор IV. Для левых J битов выхода алгоритма выполняется операция XOR с первыми J битами незашифрованного текста Р1 для получения первого блока зашифрованного текста С1. Кроме того, содержимое регистра сдвигается влево на J битов, и С1 помещается в правые J битов этого регистра. Этот процесс продолжается до тех пор, пока не будет зашифровано все сообщение.

При дешифровании используется аналогичная схема, за исключением того, что для блока получаемого зашифрованного текста выполняется операция XOR с выходом алгоритма для получения незашифрованного блока.


Рис. 10. Шифрование в режиме СFВ



 


Рис. 11. Дешифрование в режиме СFВ



Содержание раздела