- •Теория алгоритмов (краткий курс лекций для самостоятельной работы)
- •Лекции по теории алгоритмов Введение
- •Предмет криптографии
- •Лекция №1
- •Краткие теоретические сведения
- •1 Шифр сцитала
- •2 Шифр вертикальной перестановки
- •3 Шифр поворотной решетки
- •4 Шифры с использованием магичных квадратов
- •5 Перестановка бит
- •Лекция №2
- •Краткие теоретические сведения
- •Варианты реализации шифров простой замены
- •1 Система шифрования Цезаря
- •2 Афинная система подстановок
- •3 Лозунговый шифр
- •4 Шифровальный квадрат Полибия
- •5 Шифровальная таблица Трисемуса
- •4Х8 «Сколько волка ни корми, он все в лес глядит »
- •Лекция №3
- •Краткие теоретические сведения
- •1 Биграммный шифр Плейфейера
- •2 Шифр с использованием омофонов
- •3 Шифр Гронсфельда
- •4 Система шифрования Вижинера
- •5 Шифр «Двойной квадрат Уитстона»
- •Общие сведения о блочных шифрах
- •Описание алгоритма des
- •Режимы реализации алгоритмов симметричного шифрования
- •Асимметричные криптоалгоритмы
- •Модулярная арифметика
- •Открытое распределение ключей
- •Криптосистема rsa
- •7 Самокорректирующиеся коды
- •7.1 Построение кодов Хемминга (описание алгоритма кодирования)
- •7.2 Обнаружение ошибок в кодах Хемминга
- •7.3 Декодирование
- •Примеры решения задач Задача № 3
- •Задача № 4
- •Алгоритм решения задачи следующий:
- •Литература
2 Шифр с использованием омофонов
Буквы исходного текста шифруются числами от 000 до 999, причем каждая буква шифруется некоторым множеством чисел в зависимости от вероятности ее появления в тексте (см. таблицу ниже). Например букве О будет поставлено в сответствие 90 трехразрядных случайных чисел, букве К – 28; букве Б – 14 и т.д. При шифровании каждой буквы выбирают случайным образом одно число из множества омофонов для этой буквы. В результате таких действий вероятность появления омофонов в шифротексте равновероятна, что обеспечивает защиту от криптоаналитических атак, основанных на частотном анализе.
Таблица – Вероятности появления букв в исходном русскоязычном тексте
|
про- бел |
О |
Е |
И |
А |
Н |
Т |
С |
Р |
В |
Л |
К |
М |
Д |
П |
У |
|
0,175 |
0,090 |
0,072 |
0,070 |
0,061 |
0,052 |
0,053 |
0,045 |
0,040 |
0,038 |
0,035 |
0,028 |
0,026 |
0,025 |
0,023 |
0,021 |
|
|
|
|
|
|
|
|
|
|
|
Продолжение таблицы | |||||
|
Я |
Ы |
З |
Ъ |
Б |
Г |
Ч |
Х |
Ж |
Ю |
Ш |
Ц |
Ь |
Щ |
Э |
Ф |
|
0,018 |
0,016 |
0,016 |
0,014 |
0,014 |
0,013 |
0,012 |
0,009 |
0,007 |
0,006 |
0,006 |
0,004 |
0,004 |
0,003 |
0,003 |
0,002 |
3 Шифр Гронсфельда
Алгоритм шифрования следующий (алфавиты исходного и шифротекста совпадают): под символами исходного текста записывают цифры числового ключа. Если исходный текст оказался длинее ключа, то ключ циклически повторяется до исчерпания исходного текста. Для замены каждой буквы исходного текста выбирают ту букву алфавита, которая смещена по отношению к заменяемой на величину цифры ключа. Например, применив для шифрования фразы Я СТУДЕНТ ДГМА ключ 2718 (основание натурального логарифма), получим следующее:
|
Я |
С |
Т |
У |
Д |
Е |
Н |
Т |
Д |
Г |
М |
А |
|
2 |
7 |
1 |
8 |
2 |
7 |
1 |
8 |
2 |
7 |
1 |
8 |
|
Б |
Ш |
У |
Ы |
З |
П |
О |
Ь |
З |
Л |
Н |
И |
Таблица 3 – Сокращенный русский алфавит (пропущены Ё, Й )
|
Алфа- вит |
А |
Б |
В |
Г |
Д |
Е |
Ж |
З |
И |
К |
Л |
М |
Н |
О |
П |
|
№ буквы |
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 |
26 |
27 |
28 |
29 |
30 |
31 |
Шифр Гронсфельда представляет частный случай системы шифрования Вижинера.
4 Система шифрования Вижинера
Этот шифр сложной замены реализуется с помощью таблицы шифрования (квадрата) Вижинера (см. табл. 3). Эта таблица используется как для шифрования, так и для дешифрования текстов. Верхнюю строку подчеркнутых символов используют для поиска очередной буквы исходного текста, крайний левый столбец чисел – соответствующий ей числовой ключ (если ключ – некоторая буква ключевой фразы, то ее берут из соседнего числовому ключу столбца). На пересечении выбранных строки и столбца находят букву замены для шифротекста.
Таблица 4 – Квадрат Вижинера
|
Для того чтобы зашифровать исходное сообщение, его записывают в строку и под каждой его буквой записывают подряд буквы ключевой фразы или цифры числового ключа. Если ключ оказался короче исходного текста, его циклически повторяют. После этого каждую пару символов, расположенную в одном столбце заменяют буквой в соответствии с таблицей 3 (как описано выше).
Пример
Необходимо зашифровать фразу «Я ИЗУЧАЮ КРИПТОГРАФИЮ», используя систему шифрования Вижинера. Для шифрования использовать ключ «АМУЛЕТ» (в нижней строке приведен шифротекст).
|
Я |
И |
З |
У |
Ч |
А |
Ю |
К |
Р |
И |
П |
Т |
О |
Г |
Р |
А |
Ф |
И |
Ю |
|
А |
М |
У |
Л |
Е |
Т |
А |
М |
У |
Л |
Е |
Т |
А |
М |
У |
Л |
Е |
Т |
А |
|
Ниже приведен шифротекст | ||||||||||||||||||
|
А |
Ф |
Ь |
Э |
Ъ |
Т |
Ю |
Х |
В |
У |
Ф |
Г |
О |
П |
Б |
Л |
Щ |
Ь |
Ю |
Дешифрование выполняют аналогично – под строкой шифротекста записивают ключ при необходимости циклически его повторяя. Каждую пару символов, расположенных в одном столбце заменяют буквой исходного текста: по букве ключа находят строку в таблице 3, затем в этой строке находят букву шифротекста, которая определяет столбец; исходный символ – первая буква столбца.
