Шифри Кардано і Ардженті, з варіацією
Лабораторна робота 1
Шифри Полібія, Цезаря, Тритемія, Віженера
1. Опис методів шифрування
1.1. Шифр на основі квадрату Полібія (ІІ вік до н.е.). Символи алфавіту, який застосовується для представлення повідомлення, розміщуються в виді квадратної таблиці (в загальному випадку така таблиця може бути прямокутною). Шифрування полягає в заміні кожного символу
повідомлення впорядкованою парою чисел
, де
та
– номера, відповідно, рядка і стовпця таблиці
, на перетині яких розташований символ
. Розшифрування основане на послідовному перегляді шифротексту, виділенні чергової пари чисел
і її заміні символом
, розташованому в таблиці
на перетині
-го рядку і
-го стовпця.
Приклад 1.1. Таблиця 1.1 – варіант квадрату Полібія для російської мови (символ «_» – знак пробілу).
Таблиця 1.1
А | Б | В | Г | Д | Е | Ж | |
З | И | Й | К | Л | М | Н | |
О | П | Р | С | Т | У | Ф | |
Х | Ц | Ч | Ш | Щ | Ъ | Ы | |
Ь | Э | Ю | Я | _ | , | ; | |
: | . | ! | ? | “ | ” | - |
Зашифруємо за допомогою таблиці 1 фразу
МАТЕМАТИКА_–_ЭТО_“ГИМНАСТИКА”_УМА!
Замінимо кожний символ впорядкованою парою чисел
, де
та
– відповідно, номер рядка і номер стовпця таблиці 1, на перетині яких розташований символ
. Отримаємо послідовність чисел:
Розшифруємо тепер шифротекст
2647553634163315273155331112313511162662,
отриманий за допомогою таблиці 1.
Розіб’ємо отриману послідовність на пари чисел:
(26)(47)(55)(36)(34)(16)(33)(15)(27)(31)(55)(33)(11)(12)(31)(35)
(11)(16)(26)(62).
Замінимо кожну пару чисел символом, розташованим в таблиці 1 на перетині
-го рядку і
-го стовпця. Отримаємо фразу:
МЫ_УСЕРДНО_РАБОТАЕМ!
1.2. Шифр Цезаря (І вік до н.е.). Нехай повідомлення, які передаються, представлені в -літерному алфавіті
. Побудуємо матрицю
, у якої перший рядок це символи алфавіту
, а другий рядок це алфавіт
, зсунутий циклічно на
позицій ліворуч. Таким чином, отримаємо підстановку
елементів множини
. Позначимо через
символ повідомлення, а через
символ шифротексту. Шифрування полягає в заміні символу
його образом у підстановці:
. Ключ шифру кількість позицій зсуву
. Для розшифровки необхідно побудувати підстановку
, і потім замінити символ шифротексту його прообразом:
.
Приклад 1.2. Таблиця 1.2 – це підстановка з зсувом на 3 позиції для російського алфавіту, розглянутого в прикладі 1.
Таблиця 1.2
А | Б | В | Г | Д | Е | Ж | З | И | Й | К | Л | М | Н | О | П | Р | С | Т | У | Ф | Х | Ц | Ч | Ш | Щ | Ъ | Ы | Ь | Э | Ю | Я | _ | , | ; | : | . | ! | ? | “ | ” | - |
Г | Д | Е | Ж | З | И | Й | К | Л | М | Н | О | П | Р | С | Т | У | Ф | Х | Ц | Ч | Ш | Щ | Ъ | Ы | Ь | Э | Ю | Я | _ | , | ; | : | . | ! | ? | “ | ” | - | А | Б | В |
Зашифруємо за допомогою таблиці 1.2 фразу
МАТЕМАТИКА_–_ЭТО_“ГИМНАСТИКА”_УМА!
Отримаємо шифротекст:
ПГХИПГХЛНГ:В:_ХС:АЖЛПРГФХЛНГБ:ЦПГ”
1.3. Шифр на основі таблиці Тритемія (1518 р.). Нехай повідомлення, які передаються, представлені в -літерному алфавіті
. Таблиця Тритемія – це квадратна таблиця
розміру
, рядки якої занумеровані числами
, а стовпці – елементами алфавіту
, причому
-й рядок
таблиці
– це алфавіт
, зсунутий циклічно на
позицій ліворуч. Ясно, що кожна матриця
порядку
, у якої 1-й рядок – це номера стовпців таблиці
, а 2-й рядок – це
-й рядок таблиці
, визначає деяку перестановку
елементів множини
, причому, якщо
, то перестановки – відмінні.
Шифрування полягає в заміні -го символу
повідомлення його образом при перестановці
,
тобто при шифруванні 1-го символу використовується 1-й рядок таблиці , при шифруванні 2-го символу – 2-й рядок таблиці
і т.д.
Розшифровка полягає в заміні -го символу
шифротексту його прообразом при перестановці
, тобто застосовується перестановка
. Для цього в таблиці
здійснюється пошук
-го символу
шифротексту в
-у рядку, якщо число
не кратне числу
і в
-у рядку, якщо число
кратне числу
. Далі цей символ замінюється номером стовпця таблиці
, в якому він розташований.
Приклад 1.3. Таблиця 1.3 – це таблиця Тритемія для російського алфавіту, розглянутого в прикладі 1.1.
Зашифруємо за допомогою цієї таблиці фразу
МАТЕМАТИКА_–_ЭТО_“ГИМНАСТИКА”_УМА!
Таблиця 1.3
Отримаємо:
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
.
Таким чином, шифротекст має вид:
НВХЙСЖЩРУКГВГБ;ЮЗПЧЬ;.Ч,Б:?ЬЩФИВ;Ь
Зазначимо, що шифр на основі таблиці Тритемія – це нетривіальне узагальнення шифру Цезаря, в якому для шифрування повідомлень, представлених в -літерному алфавіті
, застосовується лише
-й рядок таблиці
. Ясно також, що таблицю
для
-літерного алфавіту
можна розширити до таблиці
розміру
. Для цього достатньо взяти в якості рядків таблиці
всі можливі
перестановок
-елементної множини
.
1.4. Шифри Віженера (XVI вік). Засновані на таблиці Віженера . В них вперше реалізовано поняття сеансовий ключ, що істотно залежить від повідомлення, яке передається. Таблиця
відрізняється від таблиці Тритемія
лише тим, що в таблиці
рядки (як і стовпці) занумеровані елементами алфавіту
. Нехай повідомлення – це послідовність
, де
. Відправник і адресат заздалегідь домовлялися про пароль, тобто коротку послідовність
символів алфавіту
. Відомі такі шифри Віженера.
1-й шифр Віженера. При шифруванні формуються послідовності – вихідний текст і
– сеансовий ключ. Представимо ці послідовності в виді
,
,
де
,
.
Шифрування вихідного тексту здійснюється у відповідності до алгоритму 1.
Алгоритм 1.
Крок 1. .
Крок 2. , де
– символ алфавіту
, розташований в таблиці
на перетині
-го рядка и
-го стовпця,
.
Крок 3. Якщо , то перехід до кроку 2, інакше – кінець.
Розшифровка шифротексту здійснюється згідно з алгоритмом 2.
Алгоритм 2.
Крок 1. .
Крок 2. В – у стовпці таблиці
здійснюється пошук елементу
.
Крок 3. , де
– номер рядка таблиці
, на перетині якого з
-м стовпцем розташований елемент
,
.
Крок 4. Якщо , то перехід до кроку 2, інакше – перехід до кроку 5.
Крок 5. и кінець.
Фінальний відрізок шифротексту представляє собою «підпис» відправником зашифрованої інформації, якщо під «підписом» розуміти зашифрований пароль. Таким чином, в шифрах Віженера вперше закладений механізм автентифікації (тобто розпізнавання автентичності) як користувача, так і інформації. Така автентифікація здійснюється у відповідності до алгоритму 3.
Алгоритм 3.
Крок 1. .
Крок 2. В – у стовпці таблиці
здійснюється пошук елементу
.
Крок 3. , де
– номер рядку таблиці
, на перетині якої з
-м стовпцем розташований елемент
,
.
Крок 4. Якщо , то перехід до кроку 2, інакше – перехід до кроку 5.
Крок 5. Якщо , то інформацію прийняти і кінець, інакше, інформацію відкинути і кінець.
Алгоритми 2 і 3 можна об’єднати в один алгоритм, тобто при використанні 1-го шифру Віженера автентифікація здійснюється безпосередньо в процесі розшифрування інформації.
2-й шифр Віженера (або шифр з автоключем). Відрізняється від 1-го шифру Віженера тим, що сеансовий ключ має вид
, де
– шифротекст, тобто сеансовий ключ
формується в процесі шифрування вихідного тексту
. Шифрування здійснюється у відповідності до алгоритму 1. Оскільки адресат має пароль
(тобто послідовність
), то він має і сеансовий ключ
. Розшифровка здійснюється у відповідності до алгоритму 2. Для 2-го шифру Віженера автентифікація здійснюється за допомогою алгоритму 3.
3-й шифр Віженера (або шифр з періодичним ключем). Відрізняється від 1-го шифру Віженера тим, що сеансовий ключ формується з періодичної (потенційно нескінченої) послідовності
, згідно з правилом:
(
).
Шифрування здійснюється у відповідності до алгоритму 1. Адресат формує сеансовий ключ з паролю . Розшифровка здійснюється згідно з алгоритмом 2. Для 3-го шифру Віженера автентифікація також здійснюється за алгоритмом 3.
Приклад 1.4. Таблиця 1.4 – це таблиця Віженера для російського алфавіту з лабораторної роботи 1. Зашифруємо з допомогою 1-го шифру Віженера фразу
МАТЕМАТИКА_–_ЭТО_“ГИМНАСТИКА”_УМА!
В якості пароля оберемо слово
ШИФР.
Таким чином, сеансовий ключ має наступний вид
ШИФРМАТЕМАТИКА_–_ЭТО_“ГИМНАСТИКА”_УМА!
Для зручності шифрування, запишемо послідовності і
одна під іншою:
Таблиця 1.4
Скористаємось таблицею 1.4. Отримаємо:
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
.
Таким чином, шифротекст має вид:
?Й“ЦЩБ?ОЧБЙЗБЮЙНЧЫЦЧГЛДЪЯЦЛТП,ЮН“ЫВХХЛ
2. Завдання на проведення лабораторної роботи
2.1. Зашифрувати довільну фразу довжиною не менше 16 символів за допомогою шифрів
а) Полібія;
б) Цезаря (значення ключа номер варіанту);
в) Тритемія.
2.2. Розшифрувати фразу за допомогою таблиці Тритемія. Символи L і R позначають, відповідно, “ та ”. Номер фрази для розшифровки це номер варіанту за .
Таблиця 1.5
№ | фраза |
ДТЛЕУЛЛЦЛАУЭЬЬЪВШ_ХФ_МЩОАЬ,!ИФД-ИФЕ!РЬЦЕУР | |
РКФ_СЖLЩЧОРЬУОЪШЗЦЫ._!.ШБ:И;Д-L?ЧЗЗЛЖRЛЕЮ. | |
СВФОХ;ТР,ЫУЭЯУЫ.ЗЕ?:Ш!НЖ;ДБЬУВМ?ДФЩЙЛКППН. | |
ТНСКНСП-ФТЬЮ-ДСЖ:!;.Я,Н_П,БАД_!И,ГБЪЖRКМНЙ | |
СЗЫЙЧРЗЗ,ЬДСЖДЩЫЕ,ТК_ЫЪ:LРЭАДЕЗ_Д:?ЕГ--И,СГ |
2.3. Зашифрувати довільну фразу довжиною не менше 16 символів за допомогою трьох шифрів Віженера.
2.4. Розшифрувати фразу за допомогою таблиці Віженера. Символи L і R позначають, відповідно, “ та ”.
Таблиця 1.6
№ | ключ | фраза | № шифру |
ПУСТОТА | RЩЭЕГЙГ-ЛПБХЦЕЭ?Й;ИХ.Ь_НХЪИ,Ц!-Е,_ЙЭ!ВИЧПЬ.ПЫЩИФАЮП | ||
RЩЭЕГЙГОЯ;Ф!,ЖЪХLLМЯLБЦЕАХИЖЗРRГМЦЗЯСИЙГШ.Б_ШЭХБИФ; | |||
RЩЭЕГЙГ;ЩХ;ЕИГЫЙЧ?_И;_ФЩХЧ?ЙХНИХЕ_БLФЭШЕФЬЫ:;R_?П:Ф | |||
МИНЕРАЛ | ЬЬЯШЯУМЖ!ТЪСЫГ;ЬБЩЯ,Л;ЭУТ-;,ГТ?ЖЬЙRЦ!Й..ЧRО!ВВЯЧДКСМЪ | ||
ЬЬЯШЯУМУГ__:ЬПФП;ИХУШЛ;КЙ;ФПШ:ЭПИЭХ:ЬФГЫВМLЭ_Т-ЛЪГД;Ю | |||
ЬЬЯШЯУМГЩОНУЙОНФОЧГ;ФГЪ_ЖЬБВЩЙ_Л;ЙСЦВД..ПВСЙЩФЭЙЩТЩОС | |||
РАСТЕНИЕ | ЭЙЯШЦОФRЭЙХИЩГМВ:_-Л,ФУМЭЦLС.ГЯ!В,LRХAГ-;ФЕДУ_ЙКОФФ | ||
ЭЙЯШЦОФRДКLЫЯСХИЦАЮ!Ц.-Й:;?ГЩХЛГЩАЬ;В!ВИЪМБИГМХО-ХЗ | |||
ЭЙЯШЦОФR;БЩХОРЙС:_ИЫRЯЫЖЬ;ШЫИ,Х,ЗЙИЖШЬ,КСМ_.ЖЯЫЛЮЙЧ | |||
ЖИВОТНОЕ | ЧЙФ;ШЫЧЛЗСТЪИЦЛЖВЯТ!.С.ТЮПЭБЧН.ЪЦБЮБИ!RВLЗЫЯ_ИЗИ, | ||
ЧЙФ;ШЫЧЛОЪХ,Ы!ЪМЪ,LЬТГСЮГAЙБЙИФLЗБЬЮЫ-О;БИ?;АСЬЖЗ | |||
ЧЙФ;ШЫЧЛLЩГЦХЦСЖТЧФБЙЦЕЧЩЙОЭЙТСОКЙХБ!ГИ,AПЛС;_ЬФМ | |||
ЧЕЛОВЕК | ЮООЭХУЩМ,УПЪРЧИ;ЬПЩЯ,Л;Э;Т-Е,И_ЪОМ;RЭБХ,НМЭС-ЬЮТД | ||
ЮООЭХУЩ!ЕЯЮЭЦ:LЖБГЕЙЩЖLУЦЖХ-LП:ЮФЦСГЫХВЖ.ЛЫ;;СЙ,Ц | |||
ЮООЭХУЩЭRЬПКИУЪЖЧЭФ:Б_RЭ;ГСЩОЧЪЦРЖЭЭС-ЬЮТДЕЛЧЭЕЛХ | |||
ДУХОВНЫЙ | ЬЩ;ЭЕУRА-ЖУСЛИЛВ:_-Л,СВЬЧБЧХКУТЯЧЮУЖК:.ЭИЧЭЕЕ:R!ЕЗОLШ | ||
ЬЩ;ЭЕУRАГЪ,_ОЦLМХР_,Е?,ЭЫЬЧМЩАРВГЕКЖРЮ.С!КЛТЯ.НLЙНЩД, | |||
ЬЩ;ЭЕУRАХФЭСЛРЬХЦЙМЧ.ЬЭЪКЯМЫЦТВШЦRИИ.БДШ?ШЦЪСТЕЯУЦ.АМ | |||
АНГЕЛ | Е;ЩФОТЕЯЕЪУLШ.ЭРВ_ХЖЦЧ;;МЩЕ;;-ВЕ.ХБ_ЕЦРАОИЕЫЯТЕ | ||
Е;ЩФОУУ.ЛRЩЯИОВ!ЦЪ;ГЖНАЖПФЬТЩВЙУ!ЬСЛ:,АГШЬАОЗЮ- | |||
Е;ЩФОО,НR.ЖЩТИСЛДХШММДУФЧОЬХШ-ЯДХИЪВЬИУLНЗДУПЖЩ |
Лабораторна робота 2
Шифри Кардано і Ардженті, з варіацією