- •Е.Н. Каширская
- •Содержание
- •1Симметричные криптоалгоритмы
- •1.1Перестановочные шифры
- •1.1.1Простой столбцевой перестановочный шифр
- •1.1.2Перестановочный шифр с ключевым словом
- •1.1.3Шифрование с помощью магических квадратов
- •1.1.4Двойная перестановка столбцов и строк
- •1.1.5Перестановка по случайному ключу в ms Excel
- •1.1.6Случайная перестановка символов
- •1.1.7Перестановка букв в середине слова
- •1.2Подстановочные шифры (шифры замены)
- •1.2.1Шифр Цезаря
- •1.2.2Шифры Полибия
- •1.2.3Шифрование методом Атбаш
- •1.2.4Простая замена по алгоритму rot13
- •1.2.5Шифрование сложением по модулю два (шифр Вернама)
- •1.2.6Шифрование методом решетки Кардано
- •1.2.7Шифры сложной замены
- •1.2.8Многоалфавитная замена «Энигма»
- •1.2.14Аффинный шифр
- •1.2.15Шифрование с помощью аналитических преобразований
- •1.3Контрольная работа «Симметричные криптоалгоритмы»
- •2Методы вскрытия шифров замены
- •2.1Частотный анализ
- •2.1.1Одноалфавитный метод (с фиксированным смещением)
- •2.1.2Одноалфавитный метод с задаваемым смещением (метод Цезаря)
- •2.1.3Криптоанализ при неизвестном смещении
- •2.1.4Метод перестановки
- •2.1.5Метод инверсного кодирования
- •2.2Метод полосок
- •2.3Криптоанализ при неизвестном методе шифрования
- •2.4Криптоанализ шифра xor
- •2.5Взлом шифра Гронсфельда
- •3Алгоритмы шифрования данных с открытым ключом
- •3.1Алгоритм rsa
- •3.2Контрольная работа «Алгоритмы шифрования с открытым ключом»
- •3.3Криптосистема Эль-Гамаля
- •3.4Процедура открытого распределения ключей Диффи-Хеллмана
- •Криптограммы для расшифровки
- •Ответы на задания
- •Вопросы для самопроверки
- •Библиографический список
1.2.14Аффинный шифр
Афинный шифр - шифр простой замены, использующий в качестве ключа два числа. Эти числа (то есть ключ афинного шифра) определяют линейную зависимость порядковых номеров символов будущей шифровки от порядковых номеров заменямых символов открытой информации в используемом алфавите. Так например, если линейная зависимость афинного шифра 2x+8, то символ «А» (порядковый номер символа равен 1) заменяется на «И» (порядковый номер символа равен 2*1+8=10).
В аффинном шифре каждой букве алфавита размера m ставится в соответствие число из диапазона 0…m-1. Затем при помощи модульной арифметики для каждого числа, соответствующего букве исходного алфавита, вычисляется новое число, которое заменит старое в шифротексте. Функция шифрования для каждой буквы:
,
где модуль m— размер алфавита,
пара a и b— ключ шифра.
Значение a должно быть выбрано таким, что a и m оказались взаимно простыми числами.
Функция расшифрования:
,
где a-1 - обратное к a число по модулю m, то есть оно удовлетворяет уравнению
.
Обратное к a число существует только в том случае, когда a и m - взаимно простые. Значит, при отсутствии ограничений на выбор числа a расшифрование может оказаться невозможным. Покажем, что функция расшифрования является обратной к функции шифрования.
Количество возможных ключей для аффинного шифра можно записать через функцию Эйлера как φ(m)m, где n – натуральное число, φ(m) – функция Эйлера, равная количеству натуральных чисел, не превосходящих n и взаимно простых с ним.
Примеры шифрования и расшифрования.
В следующих примерах используются латинские буквы от A до Z, соответствующие им численные значения:
A, B, C, D, E, F ,G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z;
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 22,23, 24, 25.
В этом примере необходимо зашифровать сообщение "ATTACK AT DAWN", используя упомянутое выше соответствие между буквами и числами, и значения a = 3, b = 4 и m = 26, так как в используемом алфавите 26 букв. На число a наложены ограничения, так как оно должно быть взаимно простым с 26. Возможные значения a: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 и 25. Значение b может быть любым, только если a не равно единице, так как это сдвиг шифра. Итак, для нашего примера функция шифрования
.
Первый шаг шифрования — запись чисел, соответствующих каждой букве сообщения.
Потом для каждого значения x найдем значение (3x + 4). После нахождения значения (3x + 4) для каждого символа возьмем остаток от деления (3x + 4) на 26. Вот следующие два шага процесса шифрования:
Последний шаг процесса шифрования заключается в подстановке вместо каждого числа соответствующей ему буквы. В этом примере шифротекст будет "EJJEKIEJNESR". Ниже приведены все шаги по шифрованию сообщения аффинным шифром.
Сообщение: A T T А C K A T D A W N
x: 0 19 19 0 2 10 0 19 3 0 22 13
3x + 4: 4 61 61 4 10 34 4 61 13 4 70 43
(3x + 4) mod 26: 4 9 9 4 10 8 4 9 13 4 18 17
Шифротекст: E J J E K I E J N E S R
Для расшифрования возьмем полученный шифротекст. Функция расшифрования будет
. ,
где a − 1 = 9,
b = 4,
m = 26.
Для начала запишем численные значения для каждой буквы шифротекста. Теперь для каждого y необходимо рассчитать 9(y − 4) и взять остаток от деления этого числа на 26. Последний шаг операции расшифрования для шифротескста — поставить в соответствие числам буквы. Сообщение после расшифрования будет "ATTACKATDAWN". Ниже приведены все шаги по расшифрованию сообщения.
Шифротекст: E J J E K I E J N E S R
y : 4 9 9 4 10 8 4 9 13 4 18 17
9(y − 4): 0 45 45 0 54 36 0 45 81 0 126 117
9(y − 4) mod 26: 0 19 19 0 2 10 0 19 3 0 22 13
Сообщение: A T T А C K A T D A W N
Чтобы ускорить шифрование и расшифрование, можно провести процедуру шифрования для всех букв алфавита и получить таблицу соответствий между буквами исходного сообщения и шифротекста.