- •Вступ. Історія розвитку криптографії
- •Література
- •Розділ 1. Традиційні симетричні криптосистеми
- •1.1. Основні поняття та визначення
- •1.2. Шифрування методом переставляння
- •1.2.1. Шифр переставляння за описом Плутарха
- •1.2.2. Шифрувальні таблиці
- •1.2.3. Застосування магічних квадратів
- •1.3. Шифрування методом простої заміни
- •1.3.1. Полібіанський квадрат
- •1.3.2. Система шифрування Цезаря
- •1.3.3. Афінна система підставлянь Цезаря
- •1.3.4. Система шифрування Цезаря з ключовим словом
- •1.3.5. Шифрувальні таблиці Трісемуса
- •1.3.6. Біграмний шифр Плейфера
- •1.3.7. Криптографічна система Хілла
- •1.3.8. Система омофонів
- •1.4. Шифрування методом складної заміни
- •1.4.1. Система шифрування Віженера
- •1.4.2. Шифр Гронсфельда
- •1.4.3. Шифр "подвійний квадрат" Уїтстона
- •1.4.4. Одноразова система шифрування
- •1.4.5. Шифрування методом Вернама
- •1.4.6. Роторні машини
- •1.5. Шифрування методом гамування
- •1.5.1. Накладання гами шифру на вхідний текст
- •1.5.2. Методи генерування псевдовипадкових послідовностей чисел
1.3. Шифрування методом простої заміни
При шифруванні простою заміною (простим підставлянням) символи вхідного тексту замінюються символами того ж або іншого алфавіту за заздалегідь встановленим алгоритмом заміни. У шифрі простої заміни кожен символ початкового тексту замінюється символами того ж алфавіту однаково протягом всього тексту. Часто шифрування методом простої заміни називають шифрами одноалфавітного підставляння.
1.3.1. Полібіанський квадрат
Одним з перших шифрів простої заміни вважається так званий Полібіанський квадрат. За два століття до наший ери грецький письменник і історик Полібій6 для шифрування повідомлень винайшов квадратну таблицю розміром 55, заповнену випадково буквами грецького алфавіту (рис. 1.6).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
θ |
|
|
|
|
|
|
Рис. 1.6. Полібіанський квадрат, заповнений випадково 24 буквами грецького алфавіту і пропуском
При шифруванні початкового повідомлення в цьому Полібіанському квадраті знаходили чергову букву тексту і записували в зашифрований текст букву, розташовану нижче за неї в тому ж самому стовпці. Якщо буква тексту опинялася в нижньому рядку таблиці, то для зашифрованого тексту брали верхню букву з того ж самого стовпця. Наприклад, для слова виходить зашифрований текст .
Концепція Полібіанського квадрата виявилася плідною і знайшла широке застосування в подальших криптографічних системах.
Приклад 3.1. Розглянемо приклад використання Полібіанського квадрата стосовно українського алфавіту, який складається всього з 32-ох букв і 4-ох основних символів: _ (пропуск); . (крапка); , (кома); ' (апостроф). Тобто, сформована нами випадково квадратна таблиця розміром 66 складатиметься з 36 символів (рис. 1.7).
а |
б |
в |
г |
д |
е |
|
ь |
й |
ю |
і |
ш |
з |
є |
ж |
з |
и |
і |
ї |
|
ц |
є |
ф |
д |
т |
в |
й |
к |
л |
м |
н |
о |
|
р |
а |
о |
, |
м |
_ |
п |
р |
с |
т |
у |
ф |
|
к |
я |
ї |
щ |
и |
ч |
х |
ц |
ч |
ш |
щ |
ю |
|
ж |
х |
е |
у |
г |
с |
я |
ь |
_ |
. |
, |
' |
|
б |
п |
' |
н |
. |
л |
Рис. 1.7. Полібіанський квадрат, заповнений випадково 32 буквами українського алфавіту і чотирма основними символами
Спробуємо зашифрувати такий вхідний текст: "Все йде, все минає, і краю немає.", яке має 33 символи. Заповнивши пропуски на відповідні символи, отримаємо таке вхідне повідомлення: "Все_йде,_все_минає,_і_краю_немає.". Результати його шифрування матимуть такий вигляд:
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 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
В |
с |
е |
_ |
й |
д |
е |
, |
_ |
в |
с |
е |
_ |
м |
и |
н |
а |
є |
, |
_ |
і |
_ |
к |
р |
а |
ю |
_ |
н |
е |
м |
а |
є |
. |
_ |
л |
' |
ч |
є |
, |
' |
щ |
ч |
_ |
л |
' |
ч |
и |
г |
і |
я |
а |
щ |
ч |
д |
ч |
ж |
к |
я |
ф |
ч |
і |
' |
и |
я |
а |
ш |
тобто, отримаємо на виході такий зашифрований текст:
_л'чє,'щч_л'чигіяащчдчжкяфчі'ияаш
Змінивши випадково заповнення полібіанського квадрата на інше розміщення символів, отримаємо на виході зовсім інший зашифрований текст, тобто розміщення символів у квадраті є ключем до шифрування/дешифрування різних повідомлень.