11.12.2022#
Шифр Вернама и гаммирование#
Шифр Вернама работает с исходным текстом, представленным в виде бинарной последоватльности m=m_{1}m_{2}\dots m_{e}.
В качестве ключа используется бинарная последовательность k=k_{1}k_{2}\dots k_{e} той же самой длины (или большей).
Шифрованный текст представляется в виде бинарной последовательности c=c_{1}c_{2}\dots c_{e} той же самой длины. Процесс шифрования определяется операцией побитного сложения по \text{mod 2}:
Эиа операция называется XOR.
Более общим является шифрование методом гаммировния \text{mod n}. Обычно в качестве n выбирают мощность алфавита, буквы которого занумерованы вычетами 0,\dots,n-1.
Исходный текст m=m_{1}m_{2}\dots m_{e} представлен вычетами m_{i} (\text{mod }n),i=1,2,\dots,l. Ключ также представляет собой последовательность вычетов по \text{mod }n той же (или большей длины):
Шифрование результатом которого является последовательность c=c_{1}c_{2},\dots,c_{e} вычестов \text{mod }n, осуществлеяется по правилу:
Ясно, что дешифрирование шифрованного текста c осуществляется по формуле:
В случае с n=2 получится m_{i}=c_{i}+k_{i}
Если ключ K представляет собой случайную последовательность и используется один раз, то говорят о шифровании методом одноразового блокнота. Такое шифрование является абсолюнто надежным. Таким образом, из текста m можно получать подходящим выбором ключа любой текст той же самой длины.
Любая частичная дешифровка текста (определение части ключа) не помогает при расшифровке остального текста (определению остатка ключа).
Основной недостаток этого метода шифрования - его громоздкость, необходимость предварительного секретного разделения ключа, надежного его хрангения, одноразовость.
Гаммированием называется метод шифрования, который определяется формулой (1), но при этом ключ K генерируется. Ключ K называется гаммой.
К ключу K предъявляются следующее требование: Последовательность, играющая роль ключа должна быть псевдослучайной.
Использование блочных шифров#
Многие современные системы шифрования представляют собой блочные шифры.
Режим ЕСВ#
- Исходный текст m делится на блоки m_{1},m_{2},\dots m_{g}. При необходимости m_{g} дополняется до полного блока одним из обговоренных в каждом случае способом;
- Далее к каждому блоку m_{i} последовательно применяется шифрование с заданным ключом k: C_{i}=E_{k}(m_{i}). Результатом является разбитый на блоки шифротекст: c=c_{1}c_{2},\dots c_{q}
- Недостатки:
-
- Злоумышленник может удалить или добавить блок 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 c_{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}
Некоторые элементы криптоанализа#
Криптоанализ - это наука о надежности систем шифрования, при этом исследуется различные возможности получения инфорамции.
Попытки взлома называются атаками. Некоторые типы атак:
1. Известны соответствующие друг другу исходный текст m и шифрованный текст c:E_{e}(m)=c. Необходимо найти ключ шифрования e или ключ дешифрования d. Говорят, что это анализ с полной информацией.
2. Известен только шифрованный текст c. Требуется прочитать m, найти ключ шфирования e и ключ дешифрирования d. Такая атака называется пассивной.
3. Взломщик имеет возможность посылать шифрованные тексты и получать на них ответы. По этим данным он пытается восстановить секретные параметры шифра. Это - активная атака.
Рассмотрим некоторые конкретные возможности взломщика:
1. Полный перебор#
Допустим он знает исходный текст m и шифрованный текст c=E_{e}(m). Предположим, что сщуествует единственный ключ шифрования e:c=E_{e}(m), где e_{p} один из ключей e_{1},\dots e_{t}. Тем самым найдем ключ шифрования.