Cipher Feed Back

From CryptoWiki
Jump to: navigation, search

(CFB) Cipher Feed Back Режим обратной связи по шифротексту - одна из схем симметричного шифрования, при которой зашифрованный блок текста представляет собой побитное сложение блока открытого текста с зашифрованным результатом шифрования предыдущего блока. Имеет модификацию, позволяющую шифровать данные, размер которых меньше размера блока шифра.

Contents

Постановка задачи защиты информации (Security challenge)

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

К примеру, нам необходимо зашифровать один символ в кодировке ASCII (8 бит). Общеизвестные блочные шифры имеют длину блока бОльшую, чем 8 бит (DES – 64 бит, AES – 128 бит). В таком случае применяют модификацию CFB, которая позволяет это выполнить.

Для данной схемы шифрования характерны так же следующие особенности:

  1. Если при передаче сообщения произойдёт изменение любого одного бита шифротекста, то ошибка распространится на текущий и следующий блок данных открытого текста. Однако на последующие блоки (через один) ошибка не распространится, поэтому схему CFB также называют самовосстанавливающейся.
  2. В случае потери или вставки хотя бы одного бита в шифротекст произойдет смещение битов и границ блоков, что приведет к ошибочной расшифрации всех последующих блоков шифротекста (исправима, при реализации методов контроля границ блоков шифротекста)
  3. Злоумышленник может добавить блоки к концу зашифрованного сообщения, дополняя тем самым открытый текст (однако без ключа получается мусор)
  4. Два одинаковых сообщения имеют одинаковые шифротексты при использовании одинакового вектора инициализации (IV).
  5. Из п. 4 следует, что если использовать один вектор инициализации (IV) для шифрования различных сообщений, имеющих одинаковые первые k блоков – первые k блоков шифротекста так же будут одинаковые, что дает возможность совершить атаку (описано в разделе проблем безопасности схемы ECB)
  6. Обобщая п. 5 и 4 можно сказать, что для очень крупных сообщений (32 Гбайта при длине блока 64 бита) всё-таки возможно применение атак, основанных на структурных особенностях открытого текста (следствие парадокса дней рождений).
  7. Ошибка синхронизации IV является фатальной для процесса работы
  8. Ошибка хотя бы одного бита при шифровании приводит к ошибкам во всех последующих блоках шифротекста, (либо пока регистр сдвига полностью не обновится при использовании модифицированной версии) – как следствие полный мусор при верной расшифрации
  9. Процесс расшифрования возможно выполнять параллельно.
  10. Имеет модификацию, позволяющую шифровать данные, размер которых меньше размера блока шифра.

Теоретические основы решения задачи (Theoretical issues)

Блок-схема работы шифра в схеме CFB

Математически может быть описана следующим образом:

CFB.PNG

где ECB 2.PNG – открытый текст, Mi.PNG – блоки открытого текста по N бит, t – количество блоков, на которое разбит открытый текст, ECB 3.PNG – блоки шифротекста, соответствующие блокам Mi.PNG открытого текста, Ek.PNG и Dk.PNG – алгоритмы шифрования и расшифрования на ключе k, IV – вектор инициализации.

Для возможности шифрования данных, размер которых меньше размера блока шифра используют регистры сдвига и сама схема немного изменяется

Блок-схема работы схемы CFB в режиме шифрования блоков данных, размер которых меньше размера блока шифра. Где E – шифрование, Si.PNG – регистр сдвига, K – секретный ключ, Ti.PNG – временный регистр сдвига.

Математически схема CFB может быть описана следующим образом:

CFB 1.PNG

где ECB 2.PNG – открытый текст, Mi.PNG – блоки открытого текста по N бит, t – количество блоков, на которое разбит открытый текст, ECB 3.PNG – блоки шифротекста, соответствующие блокам Mi.PNG открытого текста, Ek.PNG и Dk.PNG – алгоритмы шифрования и расшифрования на ключе k, IV – вектор инициализации, SelectLeftr.PNG – функция, которая выбирает крайние r бит своей переменной, ShiftLeftr.PNG – функция, которая сдвигает содержание своей переменной на r бит влево, при этом крайние правые r бит отбрасываются.


В этой схеме шифрования дополнение блоков открытого текста не требуется, потому как размер блоков – r можно принять равным размеру блока данных, который требуется зашифровать (символ или бит).

Кроме того, у данной схемы нет необходимости ждать получения целого блока данных шифра (64 бита или 128 битов) для того, чтобы начать процесс шифрования. Процесс шифрования может выполняться для маленького блока данных (таких как символ или бит), Но эти два преимущества приводят к двум недостаткам - CFB менее эффективна, чем CBC или ECB, потому что она применяет шифрование основным блочным шифром маленького блока размером r.

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

Блок-схема работы схемы CFB в режиме потока

Ci.PNG можно спокойно передавать по открытому каналу, поскольку постоянный секретный ключ K генерирует ключевые потоки Ki.PNG.

Практические применения криптографических конструкций, особенности их реализации (Practical issues)

Блок-схема работы DES по схеме CFB

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

Рассмотрим более конкретное применение схемы симметричного шифрования CFB с использованием алгоритма шифрования DES:

исходный файл M, согласно схеме CFB считывается последовательно по r бит. 64-битовый сдвиговый регистр S содержит вектор инициализации IV. Для каждого сеанса шифрования используется новый IV. При поступлении первых r бит на вход происходит шифрование регистра S алгоритмом DES, затем берутся крайние левые r бит результата шифрования и производится операция XOR с r битами открытого текста, в результате получаем первый блок шифротекста размером r. При поступлении следующих r бит открытого текста происходит сдвиг регистра S на r бит влево и в освободившиеся r бит записывается предыдущий блок шифротекста размера r бит. Содержимое регистра S шифруется алгоритмом DES и повторяются операции, описанные выше до тех пор, пока сеанс шифрования не прекратится.

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

Библиографический указатель (Bibliography)

Список литературы к разделу "Симметричные схемы шифрования"


Другие статьи по теме Симметричные схемы шифрования:

  1. (ECB) Electronic Code Book (Режим электронной кодовой книги)
    • (ECB CTS) CipherText Stealing (Захват зашифрованного текста)
  2. (CBC) Cipher Block Chaining Режим сцепления блоков шифротекста
    • (CBC CTS) CipherText Stealing (Захват зашифрованного текста)
    1. (BC) block chaining Режим сцепления блоков
    2. (CBC$) Cipher Block Chaining with random IV (initialization vector) Режим сцепления блоков со случайным вектором инициализации
    3. (CBCC) cipher block chaining with checksum Режим сцепления блоков шифротекста с контрольной суммой
    4. (PCBC) propagating cipher block chaining Режим сцепления блоков с распространением ошибок
    5. (CBCPD) cipher block chaining of plaintext difference Сцепления блоков текста по различиям открытого текста
  3. (CFB) Cipher Feed Back Режим обратной связи по шифротексту
  4. (OFB) Output Feed Back Режим обратной связи по выходу
  5. (OFBNLF) output feedback with a nonlinear function Режим нелинейной обратной связи по выходу
  6. (PBC) plaintext block chaining Сцепление блоков открытого текста
  7. (PFB) plaintext feedback Режим обратной связи по открытому тексту
  8. (CTR) Counter Режим счетчика
  9. Кратное шифрование
    1. Двойное
      • Метод Дэвиса-Прайса
    2. Тройное
      • Схема Тачмена
      • Схема с тремя ключами