- •1.1. Поняття про шифри підставляння (простої заміни).
- •1.2. Історія створення алгоритму шифрування за допомогою афінної системи підставлянь Цезаря.
- •1.3. Характеристика криптографічної системи Хілла.
- •Розділ 2. Афінна система підставлянь Цезаря та криптографічна система Хілла
- •2.3. Алгоритм (де)шифрування інформації за допомогою криптографічної системи Хілла.
2.3. Алгоритм (де)шифрування інформації за допомогою криптографічної системи Хілла.
Розглянемо приклад використання n-грамної криптографічної системи Лестера Хілла стосовно українського алфавіту. Спробуємо зашифрувати вхідний текст "Все йде, все минає, і краю немає." (див. прикл. 1). Вставивши відповідні пропуски, отримаємо таке вхідне повідомлення:
все_йде,_все_минає,_і_краю_немає.
Розбиття цього повідомлення на 3-грами дає такий початковий текст:
все _йд е,_ все _ми нає ,_і _кр аю_ нем ає.
Потім у кожній 3-грамі початкового тексту замінимо кожну букву її числовим еквівалентом згідно з наведеною вище таблицею кодів:
Отримаємо такі 3-грами початкового тексту:
№ п/п |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
все |
_йд |
е,_ |
все |
_ми |
нає |
,_і |
_кр |
аю_ |
нем |
ає. |
|
1 |
2 |
32 |
5 |
2 |
32 |
16 |
34 |
32 |
0 |
16 |
0 |
2 |
20 |
12 |
34 |
20 |
15 |
0 |
32 |
13 |
29 |
5 |
6 |
3 |
5 |
4 |
32 |
5 |
9 |
6 |
10 |
19 |
32 |
15 |
33 |
Перетворення 3-грам початкового тексту в 3-грами зашифрованого тексту здійснюється за таким матричним рівнянням:
.
Отримуємо:
Шифрування |
|
Матриця |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
№ |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
|||||||||||
Т |
|
|
|
п/п |
все |
_йд |
е,_ |
все |
_ми |
нає |
,_і |
_кр |
аю_ |
нем |
ає. |
|
|||||||||||
32 |
42 |
23 |
|
1 |
2 |
32 |
5 |
2 |
32 |
16 |
34 |
32 |
0 |
16 |
0 |
|
|||||||||||
27 |
59 |
51 |
* |
2 |
20 |
12 |
34 |
20 |
15 |
0 |
32 |
13 |
29 |
5 |
6 |
= |
|||||||||||
31 |
34 |
15 |
|
3 |
5 |
4 |
32 |
5 |
9 |
6 |
10 |
19 |
32 |
15 |
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1019 |
1620 |
2324 |
1019 |
1861 |
650 |
2662 |
2007 |
1954 |
1067 |
1011 |
|
|
|
|
|
= |
1489 |
1776 |
3773 |
1489 |
2208 |
738 |
3316 |
2600 |
3343 |
1492 |
2037 |
(mod 36=) |
|
|
|
|
|
817 |
1460 |
1791 |
817 |
1637 |
586 |
2292 |
1719 |
1466 |
891 |
699 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
11 |
0 |
20 |
11 |
25 |
2 |
34 |
27 |
10 |
23 |
3 |
|
|||||
|
|
|
|
= |
13 |
12 |
29 |
13 |
12 |
18 |
4 |
8 |
31 |
16 |
21 |
|
|||||
|
|
|
|
|
25 |
20 |
27 |
25 |
17 |
10 |
24 |
27 |
26 |
27 |
15 |
|
|||||
|
|
|
|
п/п |
їкц |
айс |
сфш |
їкц |
цйо |
впі |
,дх |
шзш |
іьч |
фнш |
гтм |
|
|||||
|
|
|
|
№ |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
Замінюючи в 3-грамах зашифрованого тексту числа на відповідні символи, отримуємо 3-граму зашифрованого тексту:
їкц айс сфш їкц цйо впі ,дх шзш іьч фнш гтм
При дешифруванні цього зашифрованого тексту застосовується зворотний порядок дій. Перетворення 3-грами зашифрованого тексту в 3-грами початкового тексту здійснюється за таким матричним рівнянням:
.
Отримуємо:
Дешифрування |
|
Матриця |
|
|
|
|
|
|
|
|||||||
|
|
|
|
№ |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
Т-1 |
|
|
|
п/п |
їкц |
айс |
сфш |
їкц |
цйо |
впі |
,дх |
шзш |
іьч |
фнш |
гтм |
|
21 |
4 |
19 |
|
1 |
11 |
0 |
20 |
11 |
25 |
2 |
34 |
27 |
10 |
23 |
3 |
|
12 |
5 |
3 |
* |
2 |
13 |
12 |
29 |
13 |
12 |
18 |
4 |
8 |
31 |
16 |
21 |
= |
35 |
26 |
26 |
|
3 |
25 |
20 |
27 |
25 |
17 |
10 |
24 |
27 |
26 |
27 |
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
758 |
428 |
1049 |
758 |
896 |
304 |
1186 |
1112 |
828 |
1060 |
432 |
|
|
|
|
|
= |
272 |
120 |
466 |
272 |
411 |
144 |
500 |
445 |
353 |
437 |
186 |
(mod 36=) |
|
|
|
|
|
1373 |
832 |
2156 |
1373 |
1629 |
798 |
1918 |
1855 |
1832 |
1923 |
1041 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
2 |
32 |
5 |
2 |
32 |
16 |
34 |
32 |
0 |
16 |
0 |
|
|||||
|
|
|
|
= |
20 |
12 |
34 |
20 |
15 |
0 |
32 |
13 |
29 |
5 |
6 |
|
|||||
|
|
|
|
|
5 |
4 |
32 |
5 |
9 |
6 |
10 |
19 |
32 |
15 |
33 |
|
|||||
|
|
|
|
п/п |
все |
_йд |
е,_ |
все |
_ми |
нає |
,_і |
_кр |
аю_ |
нем |
ає. |
|
|||||
|
|
|
|
№ |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
У розглянутому прикладі матриці перетворення мали розмір 33 і шифрувалися 3-грами (парами) букв. Хоча буква е може бути зашифрована по-різному в різних парах початкового повідомлення, одна і та ж пара, наприклад все, шифруватимемо завжди однаково впродовж всього початкового тексту. Система шифрування Хілла є одноалфавітною в широкому сенсі цього слова.
2.4. Використання чисел Фібоначчі в афінній криптосистемі перетворень.
Висновки до розділу.
Розділ 3. Криптографічний аналіз афінної системи підставлянь Цезаря та криптографічної системи Хілла
3.1. Криптографічна стійкість афінної системи підставлянь Цезаря: безпека, продуктивність, сумісність.
3.2. Криптографічна стійкість криптографічної системи Хілла: безпека, продуктивність, сумісність.
3.3. Інші варіанти алгоритму шифрування за допомогою афінної криптосистеми перетворень.
3.4. Продовження історії розвитку алгоритму.
Висновки до розділу.
Розділ 4. Програмна реалізація алгоритму шифрування за допомогою афінної криптосистеми перетворень
4.1. Програмна реалізація алгоритму шифрування за допомогою афінної системи підставлянь Цезаря.
Підготовка даних для розв'язання задачі
1. Шифрування інформації
Прямий хід
Перетворення вхідного повідомлення у символи таблиці ASCII
Застосування алгоритму Евкліда для знаходження коренів лінійного рівняння
Використання Афінної системи перетворень та перетворення отриманого повідомлення у символи таблиці ASCII
Зворотній хід
Використання Афінної системи перетворень та перетворення отриманого повідомлення у символи таблиці ASCII
Перетворення вхідного повідомлення у символи таблиці ASCII
Перетворення символів у відправне повідомлення
4.2. Програмна реалізація криптографічної системи Хілла.
Підготовка даних для розв'язання задачі
1. Шифрування інформації
Прямий хід
Перетворення вхідного повідомлення у символи таблиці ASCII
Зворотний хід
Застосування алгоритму Евкліда для знаходження коренів лінійного рівняння ax+my=1.
Для знаходження коренів лінійного рівняння ax+my=1 можна використати програму "Пошук розв'язку", внаслідок чого отримано такі результати розрахунку:
Знаходження оберненої матриці шифрування та стовпця коректування
Перевірка правильності отримання оберненої матриці
Зворотній хід
Підготовка зашифрованих даних для дешифрування
Використання Афінної системи криптографічних перетворень та перетворення отриманих даних у символи таблиці ASCII
Перетворення символів у відправне повідомлення
4.3. Програмна реалізація криптографічної системи Хілла з переставлянням рядків і стовпців матриці вхідного повідомлення.
Підготовка даних для розв'язання задачі
1. Шифрування інформації
Підготовка матриць для перестановки стовпців і рядків матриць кодів символів
Прямий хід
Перетворення вхідного повідомлення у символи таблиці ASCII
Перестановка стовпців матриці кодів символів.
Перестановка рядків матриці кодів символів
Виконання афінних перетворень
Перетворення символів у відправне повідомлення
Зворотний хід
Застосування алгоритму Евкліда для знаходження коренів лінійного рівняння .
Знаходження оберненої матриці шифрування
Перевірка правильності отримання оберненої матриці.
Знаходження оберненого стовпця коректування
Підготовка зашифрованих даних для дешифрування
Використання Афінної системи криптографічних перетворень.
Перестановка рядків матриці кодів символів.
Перестановка стовпців матриці кодів символів.
Перетворення символів у відправне повідомлення.
4.4. Програмна реалізація алгоритму шифрування на основі чисел Фібоначі в афінній криптосистемі перетворень.
Висновки до розділу.
Розділ 5. Економічна частина
5.1. Розрахунок витрат на розроблення програмного забезпечення
5.2. Вибір і обґрунтування аналога
5.3. Визначення комплексного показника якості проектної розробки
5.4. Визначення експлуатаційних витрат
5.5. Розрахунок вартості споживання проектного рішення
5.6. Визначення показників економічної ефективності
5.7. Висновки
Загальні висновки
1 Шифр Лестера Хілла (Lester Hill) – поліграмний шифр підстановки, який базується на лінійній алгебрі. Лестер С. Хілл винайшов цей шифр в 1929, і це був перший шифр, який давав змогу на практиці (хоча і насилу) оперувати більш ніж з трьома символами разом. Подальше обговорення шифру передбачає початкові знання матриць.