№4 - Четыре возможных режима использования блочных шифров#
Режимы использования блочных шифров:
Режим ЕСВ#
- Исходный текст m делится на блоки m_{1},m_{2},\dots m_{g}. При необходимости m_{g} дополняется до полного блока одним из обговоренных в каждом случае способом;
- Далее к каждому блоку m_{i} последовательно применяется шифрование с заданным ключом k: C_{i}=E_{k}(m_{i}). Результатом является разбитый на блоки шифротекст;
- Недостатки:
-
- Злоумышленник может удалить или добавить блок c_{t} или переставить блоки
-
- Могут появиться два одинаковых блока
Режим СВС#
- Исходный текст, разбитый на блоки m_{1}, m_{2},\dots m_{g} добавляется фиативный блок m^{\approx}
c_{1}=E_{k}(m_{1} \oplus m^{\approx})
c_{2}=E_{k}(m_{2} \oplus m_{1})
c_{q}=E_{k}(m_{q} \oplus c_{q-1}) - При таком методе шифрования ошибка, допущенная в блоке с номером j распространяется не только на этот блок, но и на последующие. Одинаковые блоки исходного текста шифруются поразному.
Режим OFB#
- Основная задача: адаптировать данный блочный шифр его поточному использованию
- При размере блока n выбирается переменная j(1\leq j\leq n). С помощью блочного шифра создается потом ключей, j-бит за один раз.
- Мы разбиваем исходный текст m_{1},m_{2},\dots m_{g}, но на этот раз блоки состоят из j-бит. В начале переменной x_{1} присваивается значение m^{\approx}.
y_{1}=E_{k}(x_{1}), y_{2}=E_{k}(x_{2}), далее полагается c_{i}=m_{i}\oplus e_{i}, где e_{i-j} крайних слева бит для y_{i}, причем x_{i+1}=y_{i}
Режим CFB#
- См. предыдущий, но с модификацией.
- y_{0}=m^{\approx},z_{i}=E_{k}(y_{i}-1)
- e_{i}=j крайних слева бит блока z_{i}
- y_{i}=m_{i}\oplus e_{i}