- •Оглавление
- •ВВЕДЕНИЕ
- •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. Хранение ключей
- •Заключение
- •Список рекомендованной литературы
2.2. Математическая модель шифра подстановок
Запишем определение шифра подстановки в терминах математической модели ΣA. Для этого мы должны определить множества, входящие в математическую модель. Это множество исходных текстов X, множество шифрованных текстов Y, множество ключей K, множество преобразований зашифрования E и множество преобразований расшифрования D.
Пусть A – некоторый алфавит. Так как алфавит один и тот же и для открытых текстов и для шифрованных текстов, то множества открытых и шифрованных текстов совпадают:
∞
X =Y = Ai .
i=1
Множество ключей определим как множество всех возможных подстановок на алфавите A:
K = S (A).
Далее, для каждого x = (x1, x2, …, xl) X, каждого y = (y1, y2, …, yl) Y и каждого элемента k K (то есть, подстановки из множества S (A)) определим преобразование зашифрования и расшифрования:
Ek (x) = k (x); |
Dk (y) = k-1 (y), |
где k-1 – подстановка, обратная к k.
Множества E и D определим как множества всех возможных преобразований Ek и Dk соответственно:
E ={Ek : k K}; D ={Dk : k K}.
Шифр, построенный на основе такой модели, называется моноалфа-
витной подстановкой, или простой подстановкой, так как для зашифрова-
ния всех символов исходного сообщения используется одна и та же подстановка k. Процесс применения такогошифра демонстрирует пример 2.1.
На практике криптостойкость шифров моноалфавитных подстановок очень низка. Чтобы ее повысить, усложним модель шифра.
Множества открытых и шифрованных текстов останутся такими же, как и в предыдущем построении:
21
∞
X =Y = Ai ,
i=1
а в качестве ключа будем брать не одну постановку k из множества возможных на алфавите A, а некоторое конечное подмножество S(A):
k = (k1, k2, …, kl ) S(A).
Для каждого x = (x1, x2, …, xl) X, каждого y = (y1, y2, …, yl) Y и каждого k вида (k1, k2, …, kl ) определим преобразование зашифрования:
y= Ek (x)= (k1(x1 ),k2 (x2 ),...,kl (xl ))
ипреобразование расшифрования:
x= Dk (y)= (k1−1 (y1 ), k2−1 (y2 ),..., kl−1 (yl )).
Вкачестве множеств E и D будем рассматривать множества всех
возможных преобразований Ek и Dk соответственно.
Такой вид шифра называется многоалфавитной (полиалфавитной)
подстановкой, так как, шифруя каждый символ своей подстановкой, мы можем представить себе, что используем для каждого символа свой экземпляр алфавита. Рассмотрим применение шифра многоалфавитной подстановки на примере.
Пример 2.2
Рассмотрим алфавит, состоящий из трех символов A = {A, B, C}. Рассмотрим три подстановки на этом алфавите:
k |
A B C |
; |
k |
|
A B C |
; k |
A B |
C |
|
= |
|
= |
|
= |
. |
||||
1 |
|
|
|
2 |
|
|
3 |
|
|
|
B C |
A |
|
|
C A B |
|
C B A |
||
Построим подстановки, обратные к k1, k2, k3:
k−1 |
A |
B |
C |
; |
k−1 |
= |
|
|
|||
1 |
|
A |
|
|
2 |
|
C |
B |
|
|
Зашифруем сообщение x = A B C B A C
с использованием ключа
k = (k1, k2, k3, k1, k2, k3):
A |
B |
C |
; |
k−1 |
A |
B |
C |
= |
|
|
= |
|
. |
||
|
C |
|
|
3 |
|
B |
|
B |
A |
|
|
C |
A |
22
y = Ek (x)= (k1 (x1 ),k2 (x2 ),k3 (x3 ),k1 (x4 ),k2 (x5 ),k3 (x6 ))=.
= (k1 (A),k2 (B),k3 (C),k1 (B),k2 (A),k3 (C))= BAACCA
Расшифрование с использованием обратных подстановок дает исходное сообщение:
x= Dk (y)= (k1−1 (B),k2−1 (A),k3−1 (A),k1−1 (C),k2−1 (C),k3−1 (A))= ABCBAC .
2.3.Сравнимость
Важным понятием в теории шифров подстановок является понятие
сравнения.
Пусть m – некоторое целое число, которое будем называть модулем сравнения.
Известно, что каждое целое число делится на m с некоторым остатком, то есть каждому целому числу соответствует определенный остаток от деления на m.
Если двум целым числам a и b соответствует один и тот же остаток, полученный от деления на m, то эти числа называются сравнимыми по модулю m. Отношение сравнимости записывается следующим образом:
a ≡ b(mod m), |
(2.1) |
а само выражение (2.1) называется сравнением.
Для работы со сравнениями оказывается полезной теорема 2.1.
Теорема 2.1. Сравнимость a и b по модулю m равносильна следующему свойству:
a = b + m t, где t – целое;
Доказательство
По определению сравнимости
a = m q1 + r; b = m q2 + r,
то есть a и b делятся на m с одинаковым остатком. Вычтем из выражения для a выражение для b:
a – b = m (q1 – q2).
Обозначив q1 – q2 = t, получим:
23
a – b = m t.
Перенеся b в правую часть, получим заключение теоремы.
Далее докажем, что из того, что a представимо в виде a = b + m t, следует сравнимость a и b по модулю m.
Число b, как любое целое число, можно представить в виде b = m q1+ r, где 0 ≤ r < m.
Подставив выражение для b в выражение для a, получим: a = m q1 + r + mt.
Обозначив q1 + t = q2, получим a = mq2 + r, то есть a делится на m с тем же остатком, что и b, что и требовалось доказать.
В дальнейшем нам понадобится следующее свойство сравнений:
Теорема 2.2
Общий делитель одной части сравнения и модуля является делителем второй части сравнения.
Доказательство
Пусть d – общий делитель левой части сравнения a ≡ b(mod m) и модуля m, то есть существуют такие числа a1 и m1, что:
a = a1 d , m = m1 d .
Так как по теореме 2.1: a = b + mt , то из выражения
a1d −m1dt = b
видно, что d делит b, что и требовалось доказать.
Соотношение сравнимости по модулю m можно выразить следующим образом.
Объединим все целые числа, дающие при делении на m один и тот же остаток r, в класс, который обозначим Cr. Так как возможных остатков от деления на m всего m штук:
0, 1, 2, …, m-1,
то при делении на m все целые числа разбиваются на m классов:
C0, C1, C2, … , Cm-1,
24
