Режим обратной связи по шифротексту, режим гаммирования с обратной связью (англ. Cipher Feedback Mode, CFB) — один из вариантов использования симметричного блочного шифра, при котором для шифрования следующего блока открытого текста он складывается по модулю 2 с перешифрованным (блочным шифром) результатом шифрования предыдущего блока.
Шифрование может быть описано следующим образом:
где i {\displaystyle i} — номера блоков, I V {\displaystyle IV} — вектор инициализации (синхропосылка), C i {\displaystyle C_{i}} и P i {\displaystyle P_{i}} — блоки зашифрованного и открытого текстов соответственно, а E k {\displaystyle E_{k}} — функция блочного шифрования.
Вектор инициализации I V {\displaystyle IV} , как и в режиме сцепления блоков шифротекста, можно делать известным, однако он должен быть уникальным.
Ошибка, которая возникает в шифротексте при передаче (например, из-за помех), сделает невозможным расшифровку как блока, в котором ошибка произошла, так и следующего за ним, однако не распространяется на последующие блоки.
Существует более сложный вариант использования режима, когда размер блока CFB не совпадет с размером блока шифра[1]:
I 1 = IV I j = LSB b − s ( I j − 1 ) ∥ C j − 1 # j = 2 , . . . , n O j = E K ( I j ) j = 1 , 2 , . . . , n C j # = P j # ⊕ MSB s ( O j ) j = 1 , 2 , . . , n P j # = C j # ⊕ MSB s ( O j ) j = 1 , 2 , . . , n {\displaystyle {\begin{array}{ll}I_{1}={\textit {IV}}\\I_{j}={\textit {LSB}}_{b-s}(I_{j-1})\parallel C_{j-1}^{\#}&j=2,...,n\\O_{j}=E_{K}(I_{j})&j=1,2,...,n\\\\C_{j}^{\#}=P_{j}^{\#}\oplus {\textit {MSB}}_{s}(O_{j})&j=1,2,..,n\\P_{j}^{\#}=C_{j}^{\#}\oplus {\textit {MSB}}_{s}(O_{j})&j=1,2,..,n\\\end{array}}}
где: