- •Симметричные шифры
- •1.1 Введение
- •1.2 Криптографическая система
- •1.3 Принципы Керкхоффса
- •Система не должна быть секретной, и если она попадёт в руки противника, это не должно причинить неудобства.
- •1.4 Классификация симметричных шифров
- •1.5 Шифры перестановки
- •1.6 Шифры замены
- •1.6.1 Шифры сдвига
- •1.7 Композиционные шифры
- •1.7.1 Алгебра секретных систем
- •1.7.2 Теория композиционных шифров
- •1.7.3 Сеть Файстеля (Feistel’s network)
- •1.7.4 Sp сети
- •Режимы использования блочных шифров ecb (Electronic Code Book). Режим простой замены
- •Cbc (Cipher Block Chaining). Режим выработки имитовставки
- •Ofb (Output FeedBack). Режим обратной связи по выходу
- •Cfb (FeedBack). Режим гаммирования с обратной связью
- •Ctr (Counter). Режим счетчика
- •Выработка вектора инициализации (IV)
- •Генераторы псевдослучайных последовательностей
- •Криптографические
- •Некриптографические
- •Поточные шифры
- •Абсолютно стойкий шифр
- •Гост 28147-89
Cbc (Cipher Block Chaining). Режим выработки имитовставки
Этот режим предназначен для зашифрования данных и получения специального хэш-значения, которое дает возможность контролировать несанкционированное изменение данных. Исходные данные делятся на n-битовые блоки Pi. Последний блок при необходимости дополняется до длины n по определенному правилу. Каждый из них подвергается криптографическому преобразованию, используя при этом так называемое сцепление блоков, т.е. складывается по модулю 2 с предыдущим блоком шифрованного текста (Рисунок 2.2):
C1 = Ek (P1 IV) при i = 1 Ci = Ek (Pi Ci-1) при i > 1
P1 = IV Dk (C1) при i = 1 Pi = Ci-1 Dk (Ci) при i > 1
Рисунок 2.2 Режим CBC
Первый блок для сцепления использует вектор инициализации (синхропосылку). Это нужно чтоб избежать первой проблемы режима ECB. IV не является секретным и его предают в открытом виде, однако она должна быть различной для каждого сеанса связи.
Последний блок является нелинейной функцией, зависящей от всех блоков исходного текста, что позволяет использовать его в качестве идентификатора переданных данных. Это свойство решает вторую и третью проблемы, связанные с режимом ECB.
Ошибка при передаче в одном блоке шифротекста соответственно влияет на текущий и последующий блоки исходного текста.
Ofb (Output FeedBack). Режим обратной связи по выходу
Два предыдущих режима шифровали сообщение путем применения криптографического пруобразования непосредственно к блокам исходного текста, в этом и последующих режимах блочный шифр применяется для генерации псевдослучайного потока бит, который потом складывается по модулю 2 с исходным текстом. OFB режим адаптирует блочный алгоритм для использования в качестве синхронного поточного алгоритма, в качестве атомарных единиц которого выступают j-битовые блоки исходного текста. Выбирается число 1 ≤ j ≤ n. Вырабатывается поток j-битовых ключей. Исходные данные делятся на j-битовые блоки Pi. Каждый из них подвергается криптографическому преобразованию методом гаммирования (Рисунок 2.3):
C1 = P1 Ek (IV) при i = 1 Ci = Pi Ek (Pi-1 Ci-1) при i > 1
P1 = C1 Ek (IV) при i = 1 Pi = Ci Ek (Pi-1 Ci-1) при i > 1
Рисунок 2.3 Режим OFB
Наиболее оптимально выбирать j = n, так как в этом случае максимальная длина потока ключей больше, чем при j < n.
Преимущества:
-
Алгоритм расшифрования полностью идентичен алгоритму зашифрования.
-
Нет необходимости дополнения последнего блока.
Недостатки:
-
Последовательность γi не зависит от исходного текста, и, в связи с этим, она будет совпадать при одинаковых значениях Ek и IV. Как следствие – необходимо выбирать различные синхропосылки при многократном использовании ключа.
-
Возможна ситуация, когда значение γi может повториться, что приведет к зацикливанию гамма последовательности.
Cfb (FeedBack). Режим гаммирования с обратной связью
Этот режим аналогичен режиму OFB за исключением того, что адаптация происходит для использования в качестве самосинхронизирующегося поточного алгоритма. Т.е. каждый из j-битовых блоков исходного текста подвергается криптографическому преобразованию методом гаммирования с обратной связью (Рисунок 2.4):
C1 = P1 Ek (IV) при i = 1 Ci = Pi Ek (Ci-1) при i > 1
P1 = C1 Ek (IV) при i = 1 Pi = Ci Ek (Ci-1) при i > 1
Также как и для OFB целесообразно выбрать j = n.
Рисунок 2.4 Режим CFB
Как и в случае CBC при расшифровании каждый последующий блок зашифрованного текста зависит от всех предыдущих блоков исходного текста.