- •Оглавление
- •ВВЕДЕНИЕ
- •1.1. Предмет криптографии и основные определения
- •1.2. Математические основы криптографии
- •1.3. Математическая модель шифра
- •1.4. Классификация шифров
- •1.5. Обзор истории криптографии
- •Появление шифров
- •Становление криптографии как науки
- •Криптография в Новое время
- •Научная криптология
- •2.1. Понятие подстановки
- •2.2. Математическая модель шифра подстановок
- •2.3. Сравнимость
- •2.4. Примеры классических шифров подстановок
- •2.5. Математическая модель шифра перестановок
- •2.6. Маршрутные перестановки как пример шифра перестановок
- •ГЛАВА 3 Характеристики открытых текстов. Вероятностный подход
- •3.2. Вероятностный подход к анализу текстов
- •Частоты букв европейских языков, в %
- •Частоты символов русского языка, в %
- •Сочетаемость букв русского языка
- •Чередование гласных и согласных для текста длиной 105 знаков
- •Буква
- •Буква
- •4.1. Теоретико-информационный подход к анализу текстов
- •4.2. Комбинаторный подход к анализу текстов
- •Современные симметричные криптосистемы
- •5.1. Математическая модель шифра замены
- •5.2. Классификация шифров замены
- •ГЛАВА 6 Принципы построения симметричных шифров
- •6.1. Принципы построения поточных шифров
- •6.2. Принципы построения блочных шифров
- •ГЛАВА 7 Математические основы асимметричной криптографии
- •7.1. История и основные определения асимметричной криптографии
- •7.2. Основы теории простых чисел
- •7.3. Функция Эйлера
- •ГЛАВА 8 Теоремы асимметричной криптографии и алгоритм RSA
- •8.1. Основные теоремы асимметричной криптографии
- •8.2. Алгоритм RSA
- •9.1. Задачи асимметричной криптографии
- •10.1. Понятие электронной подписи
- •10.2. Алгоритм электронной подписи на основе алгоритма RSA
- •ГЛАВА 11 Управление криптографическими ключами
- •11.1. Задачи управления криптографическими ключами
- •11.2. Генерация ключей
- •11.3. Хранение ключей
- •Заключение
- •Список рекомендованной литературы
которые называются классами вычетов по модулю m. Соответственно чис-
ла одного и того же класса Cr называются вычетами класса Cr.
Вычеты класса Cr имеют форму ml+r и получаются, когда l пробегает все целые значения.
Пример 2.3
Все числа, образующие класс вычетов C3 по модулю 10, то есть дающие при делении на 10 остаток 3, имеют вид 10l+3, где
L = 0, ±1, ±2, ±3, … ,
то есть представляются рядом чисел
…-27, -17, -7, 3, 13, 23, 33, …
Если из каждого класса вычетов по модулю m взять по одному представителю, то полученная система чисел называется полной системой вы-
четов по модулю m.
Пример 2.4
Построим полную систему вычетов по модулю 10. Для этого возьмем по одному представителю из каждого класса, числа которых имеют вид:
10l+0, 10l+1, 10l+2, …, 10l+9,
например:
20, 31, 62, 93…, 29.
2.4. Примеры классических шифров подстановок
Наиболее простым примером шифра моноалфавитной подстановки является шифр Цезаря, при котором символы исходного текста сдвигаются на фиксированное количество позиций в алфавите.
Установим взаимно однозначное соответствие алфавита Am и множества натуральных чисел от 1 до m (то есть пронумеруем символы алфавита) и рассмотрим следующую подстановку:
|
a |
a |
2 |
... |
a |
m |
|
|
1 |
|
|
|
|
||
π = |
|
|
|
|
|
|
. |
a(1+k)(mod m) a(2 |
+k)(mod m) ...a(m+k)(mod m) |
||||||
25
Тогда шифр Цезаря можно записать в следующем виде:
Ck = π: a j → a(j+k)(mod m)
или
Ck : j →(j + k)(mod m),1 ≤ j ≤ m,
где j – числовой эквивалент буквы исходного сообщения (ее порядковый номер в алфавите).
Число k, равное величине сдвига шифрованного текста относительно исходного, является ключом шифра.
Для того чтобы построить отображение расшифрования на ключе k, найдем подстановку, обратную к π. Очевидно, что такой подстановкой будет:
|
−1 |
|
a |
a |
2 |
... |
a |
m |
|
|
π |
|
1 |
|
|
|
|
, |
|||
|
= |
|
|
|
|
|
|
|
||
|
|
a(1−k)(mod m) a(2 |
−k)(mod m) ...a(m−k)(mod m) |
|
||||||
следовательно, расшифрование шифра Цезаря выражается следующим отображением:
Ck−1 : i →(i −k)(mod m),1 ≤ i ≤ m,
где i – числовой эквивалент буквы шифрованного сообщения.
Для вскрытия исходного сообщения по сообщению, зашифрованному шифром Цезаря, достаточно перебрать все значения ключа k от 1 до m, где m – объем алфавита.
Следует отметить, что классическим шифром Цезаря является замена каждого символа открытого текста третьим, следующим за ним символом алфавита, то есть k = 3. Мы же рассмотрели обобщенный шифр Цезаря при 1 ≤ k < m.
На основе обобщенного шифра Цезаря можно описать и шифр Тритемия, приведенный в п. 1.5 главы 1.
Запишем таблицу Тритемия (см. рис. 1.2) в виде последовательности преобразований Ck, k = 0, 1, …, m-1:
C0 : j → j (тождественное преобразование);
C1 : j → (j +1)(mod m);
26
…
Ck : j → (j + k)(mod m)
…
Cm−1 : j → (j + m −1)(mod m).
Тогда каждый символ исходного сообщения x1 ,x2 , ,xn зашифровывается соответствующим преобразованием из последовательности:
y1 = C1 (x1 ), y2 = C2 (x2 ),…, yk = Ck (xk ),…, yn = Cn (xn ).
Более криптостойким является шифр Вернама, который состоит в том, что каждый символ исходного текста складывается с соответствующим символом ключа. При расшифровании из каждого символа шифрованного текста вычитается соответствующий символ ключа. Математическая модель шифра Вернама выглядит следующим образом.
Пусть x = (x1 ,x2 ,...,xn ) – исходное сообщение, состоящее из n симво-
лов;
k = (k1 ,k2 ,..,kn ) – ключ, длина которого равна n, а в общем случае может быть больше, чем n;
y = (y1 ,y2 ,...,yn ) – шифрованное сообщение, полученное в результате преобразования зашифрования:
V : xj → (xj + kj )(mod m),
где 1 ≤ j ≤ n .
Преобразование расшифрования шифра Вернама:
V−1 : yi →(yi −ki )(mod m),
где 1 ≤i ≤ n .
Ключ k в шифрах многоалфавитной замены иначе называют гаммой шифра.
По своим характеристикам шифр Вернама приближается к нераскрываемым шифрам, то есть шифрам, удовлетворяющим следующим требованиям:
1.Исходный текст не может быть похищен.
2.Ключ используется один раз.
3.Длина ключа не меньше, чем длина исходного текста.
27
Если добавить сюда требование равновероятности ключа (все символы ключа выбираются случайным образом), мы получим абсолютно нераскрываемый шифр, то есть шифр, для которого затраты на дешифрование не меньше чем на прямой подбор исходного текста.
Такие системы не могут применяться при обмене информацией, так как затраты на передачу секретного ключа равносильны затратам на передачу самого сообщения.
На практике используются модификации шифра Вернама, которые позволяют снизить эти затраты. В них длинный секретный ключ генерируется на основе более короткого отрезка. Пример такой системы – шифр Виженера.
Процесс шифрования шифром Виженера такой же, как и шифром Вернама, однако его ключ формируется упрощенным способом. Берется последовательность символов, меньшая по длине, чем исходное сообщение и повторяется достаточное число раз. В результате получается ключ вида:
k = (k1,k2 ,...,kp ,k1,k2 ,...,kp ,...,k1,k2 ,...,kp ).
Преобразование шифрования VIG : (x1 ,x2 ,...,xn )→ (y1 ,y2 ,...,yn ) строится следующим образом:
x1 → (x1 + k1 )(mod m);
x2 → (x2 + k2 )(mod m);
…
xp → (xp + kp )(mod m); xp+1 → (xp+1 + k1)(mod m);
xp+2 → (xp+2 + k2 )(mod m);
…
x2 p → (x2 p + kp )(mod m);
…
2.5. Математическая модель шифра перестановок
Шифры перестановок являются второй разновидностью симметричных шифров. Процесс шифрования перестановкой состоит в том, что сим-
28
волы исходного сообщения переставляются между собой по определенному правилу. Правило, по которому перемешиваются символы, является ключом шифра.
Несмотря на то, что модель шифра, которую мы далее построим, очень похожа на модель шифра подстановок, имеется одно существенное отличие. В шифрованном сообщении, полученном шифрованием перестановкой, встречаются все символы исходного сообщения и никакие другие. В шифрованное сообщение, полученное подстановкой, могли не войти ка- кие-то символы исходного сообщения, а могли появиться те, которых в исходном сообщении нет.
Построим математическую модель шифра перестановок. Множества исходных и шифрованных текстов совпадают и равны
AL , где A – алфавит, L – длина текста:
X =Y = AL .
Если длина исходного текста больше L, то он разбивается на отрезки (блоки) длины L, и к каждому из отрезков применяется рассматриваемая модель.
Таким образом, модель шифра перестановки мы строим для текстов (отрезков текстов) определенной фиксированной длины.
Далее рассмотрим множество всех возможных подстановок на множестве целых чисел (1, 2, …, L), которое обозначим SL. Это и будет множество ключей:
K = SL.
Определим преобразования зашифрования и расшифрования:
Для каждого x = (x1 ,x2 ,...,xL ) X , каждого y = (y1 ,y2 ,...,yL ) Y и
каждого k K :
Ek (x)= (xk(1),xk(2),...,xk(L));
Dk (y)= yk −1(1), yk −1(2),..., yk −1(L) ,
где k −1 – подстановка, обратная к k.
29
