Розділ 5. Криптолінґвістика
План викладення матеріалу
- Основні визначення криптолінґвістики
- Лінґвістичні схеми у криптографії
- Кодування інформації
- Моноалфавітні шифри
- Застосування перестановок
- Поліалфавітні шифри
- Книжкові шифри
- Дволітерні шифри
- Основи криптоаналізу. Лінґвістичне дешифрування
- Розкриття шифру Цезара
- Розкриття шифру заміни
- Розкриття книжкового шифру
- Розкриття шифру Віженера
- Контрольні питання
- Задачі для самостійної роботи
Потреба передавання секретної інформації у військовій справі чи, наприклад, для археології – необхідність дешифрування текстів, написаних мертвими мовами, вимагають одночасного застосування методів та засобів криптолінґвістики, яка поєднує та використовує набутки і мовознавства, і математики. Дослідження характеристик мов, що мають будь-яке відношення до криптології, таких як частоти появи певних літер, комбінацій літер, загальні шаблони тощо, називають криптолінґвістикою [4].
Вивчення методів криптолінґвістики ґрунтується на моделях та методах комбінаторики, теорії ймовірностей, математичної статистики і теорії інформації. У загальній схемі квантитативної лінґвістики зв’язки між методами розділів математики та розділами квантитативної лінґвістики відображені на рис. 5.1.
Результати криптолінґвістичних досліджень застосовують під час реалізації лінґвістичних схем у криптології – науці про методи шифрування та дешифрування. Методи шифрування разом із оцінюванням їх слабких та сильних сторін складають предмет вивчення криптографії, а методи дешифрування є цариною досліджень криптоаналізу.
- 5.1.Основні визначення криптолінґвістики
Якщо ви хочете передати своє текстове повідомлення (послідовність символів деякого алфавіту) адресата так, щоб воно залишилося таємним для сторонніх осіб, то у вас є, принаймні, дві можливості. Ви можете спробувати приховати сам факт передачі тексту, тобто вдатися до методів стеганографії, в арсеналі якої – симпатичне (невидиме) чорнило, мікрокрапки і тому подібні засоби. Інша можливість полягає в спробі приховати зміст повідомлення від сторонніх осіб, випадково або навмисно познайомилися з переданим текстом. В цьому випадку ви можете вдатися до методів криптографії. Термін «криптографія» походить від двох грецьких слів: «криптос» – таємниця і «графейн» – писати, і означає тайнопис. «Тайнопис» якраз і має на увазі, що ви приховуєте зміст свого повідомлення. Повідомлення, яке ви хочете передати адресатові, називатимемо відкритим повідомленням. Для збереження повідомлення в таємниці воно перетвориться криптографічними методами і лише після цього передається адресатові. Перетворене повідомлення називатимемо шифрованим повідомленням. Інша назва шифрованого повідомлення – криптограма (або шифротекст). Уведемо такі означення (табл. 5.1) [6, 108, 1304, с.4].
Таблиця 5.1
Основні означення криптолінґвістики
№ | Назва | Означення |
1. | Монограф | Поодинока літера будь-якого алфавіту, яку ми використовуємо. Аналогічно, диграф – це будь-яка пара літер, що розташовані поряд. Так, наприклад, ТИ – це диграф. Триграф складається із трьох літер, що розташовані поряд, наприклад, ВІН – це триграф, і т.д. Поліграф складається з довільної кількості послідовно записаних літер, але це не обов’язково слово будь-якої мови. Але, якщо при спробі дешифрувати повідомлення, написане, припустімо, українською, нам зустрічається гептаграф БУДИНОК, то це є правдоподібніше, ніж якщо ми отримаємо гептаграф у вигляді ОРТЬЛЬМ. Також використовуються терміни біграма, триграма, n-грама [108]. |
2. | Символ | Будь-який знак, у тому числі літера, цифра або знак пунктуації; рядок – це будь-яка множина разом написаних символів. Довжиною рядка називають кількість символів у ньому. Наприклад, П%)+/ являє собою рядок довжиною 5. |
3. | Система шифрування (криптографічна) | Будь-яка система, яку можна використовувати для зміни тексту повідомлення з метою зробити його незрозумілим для всіх, крім тих, кому воно призначене. |
4. | Шифрування | Процес застосування системи шифрування до початкового тексту повідомлення. |
5. | Відкритий текст | Початковий текст повідомлення, до шифрування. |
6. | Шифрований текст | Текст, отриманий у результаті шифрування. |
7. | Розшифрування або дешифрування | Процес, зворотний шифруванню, тобто відновлення початкового тексту повідомлення за шифрованим текстом. Ці терміни не є повними синонімами. Легальний отримувач повідомлення вважає, що він займається його розшифруванням, а той, кому воно не призначене, пробуючи зрозуміти зміст повідомлення, вважає, що займається дешифруванням. |
8. | Криптографія | Вивчає побудову та використання систем шифрування, в тому числі їх стійкість, слабкості та ступінь вразливості відносно різних методів розкриття. |
9. | Криптограф | Особа, яка займається криптографією. |
10. | Криптоаналіз | Вивчає методи розкриття систем шифрування. |
11. | Криптоаналітик (зламник шифрів) | Особа, яка займається криптоаналізом. |
12. | Коди | Частковий випадок системи шифрування, але не всі системи шифрування є кодами. Ми будемо використовувати слово шифр стосовно методів шифрування, в яких використовують не кодові книги, а шифрований текст отримують із початкового відкритого тексту за визначеним правилом (алгоритмом). Дія шифру керується як алгоритмами, так і ключами. |
13. | Ключ | Секретний параметр (в ідеалі, відомий лише двом сторонам) для окремого контексту під час передавання повідомлення. Ключі дуже важливі, оскільки без змінних ключів алгоритми шифрування легко зламуються (розкриваються) і стають непридатними для використання. Для більшість систем, які ми розглянемо, відмінність між кодуванням та шифруванням буде досить чіткою. Так, наприклад, «Енігма», яку часто помилково називають «кодом Енігми», є зовсім не кодом, а шифрмашиною (додаток И). |
Приклади та задачі, наведені в цьому розділі, будують на основі англійських або українських текстів з використанням 26-літерного латинського та 33-літерного українського алфавіту, відповідно, або розширеного варіанту із врахуванням таких знаків як пропуск, крапка та кома. Нескладно видозмінити ці приклади, включивши туди додаткові символи чи цифри, або ж перейти до мов з іншими алфавітами.
Для зручності подальшого викладу позначимо буквою A – відкрите повідомлення, B – шифроване повідомлення, f – правило шифрування, g – правило розшифрування. В цьому випадку шифрування відкритого повідомлення A в шифроване повідомлення B можна записати у вигляді f(A)= B. Зворотне перетворення (тобто здобуття відкритого повідомлення A шляхом розшифрування B) запишеться у вигляді співвідношення g(B)= A [140].Правило шифрування f не може бути довільним. Воно має бути таким, аби за шифротекстом B за допомогою правила розшифрування g можна було однозначно відновити відкрите повідомлення A. Однотипні правила шифрування можна об’єднати в класи. Усередині класу правила розрізняються між собою за значеннями деякого ключа, який може бути числом, таблицею і так далі.Є принаймні дві обставини, які дозволяють зрозуміти необхідність запровадження поняття ключа. По-перше, звичайне шифрування проводиться з використанням спеціальних пристроїв. У вас має бути можливість змінювати значення параметрів пристрою, аби шифроване повідомлення не змогли розшифрувати навіть особи, що мають такий самий пристрій та не знають вибраного вами значення параметра. По-друге, багаторазове використання одного і того ж правила шифрування fдля шифрування відкритих текстів створює передумови для отримання відкритих повідомлень по шифрованих без знання правил розшифрування g. Тому необхідно своєчасно замінювати правило шифрування.
Використовуючи поняття ключа, процес шифрування можна описати у вигляді співвідношення fa(A)= B, у якому a – обраний ключ, відомий відправникові та адресатові. Для кожного ключа a шифроперетворення fa має бути зворотним, тобто повинне існувати зворотне перетворення , яке при обраному ключі a однозначно визначає відкрите повідомлення A за шифрованим повідомленням B, тобто ga(B)= A. Сукупність перетворень fa і набір ключів, яким вони відповідають, і називають шифром [140].
Як правило, в завданнях цього розділу шифр відомий, а використаний ключ – ні. Для визначення вихідного тексту за шифрованим при невідомому ключі можливі два підходи: перший – визначити ключ і потім знайти вихідне повідомлення розшифруванням; інший – знайти вихідне повідомлення без визначення ключа. Під стійкістю шифру, як правило, розуміється здатність протистояти спробам розкрити його. При аналізі шифру зазвичай виходять з принципу, сформульованого голландцем Огустом Керкгоффсом (1835-1903). Згідно з цим принципом при розкритті криптограми супротивникові відомо про шифр все, окрім використовуваного ключа. Однією з природних характеристик шифру є кількість його можливих ключів, бо розкрити шифр можна перебором всіх можливих його ключів.
Часом змішують два поняття: шифрування і кодування. Ми вже домовилися, що для шифрування треба знати шифр і секретний ключ. При кодуванні немає нічого секретного, є лише певна заміна літер або слів на заздалегідь визначені символи. Методи кодування направлені не на те, аби приховати відкрите повідомлення, а на те, аби подати його в зручнішому вигляді для передачі по технічних засобах зв'язку, для зменшення довжини повідомлення тощо. В принципі, кодування, звичайно ж, можна розглядати як шифр заміни, для якого «набір» можливих ключів складається лише з одного ключа (наприклад, буква «а» в абетці Морзе завжди кодується знаками ●▬ і це не є секретом).
В даний час для захисту інформації широко використовують електронні шифрувальні пристрої. Важливою характеристикою таких пристроїв є не лише стійкість шифру, що реалізовується, але і висока швидкість здійснення процесів шифрування і розшифрування. Для створення і забезпечення грамотної експлуатації такої техніки широко використовують досягнення сучасної криптографії, в основі якої лежать математика, інформатика, фізика, електроніка та інші науки.
Сучасна криптографія бурхливо розвивається. У ній з'являються нові напрями. Так, з 1976 року розвивається «відкрита криптографія». Її особливістю є поділ ключів для шифрування і розшифрування. При цьому ключ для шифрування не потрібно робити секретним, більш того, він може бути загальнодоступним і міститися в телефонному довіднику разом з прізвищем і адресою його власника.
Поряд з терміном «криптографія» в літературі зустрічається термін «криптологія», що також походить від грецького коріння та означає «таємний» і «слово». Цей термін використовують для позначення всієї області секретного зв'язку. Криптологію поділяють на дві частини: криптографію і криптоаналіз. Криптограф намагається знайти методи забезпечення секретності повідомлень, криптоаналітик намагається при невідомому ключі виконати зворотне завдання. При цьому часто говорять, що криптоаналітик розкрив шифр, хоча частіше він розкриває ключ заздалегідь відомого шифру.
- 5.2.Лінґвістичні схеми у криптографії
Криптографія (від грецького kryptós – прихований і gráphein – писати) – наука про методи забезпечення конфіденційності (неможливості прочитання інформації стороннім) і автентичності (цілісності і справжності авторства) інформації. Розвинулася через практичну потребу передавати важливі відомості найнадійнішим чином [114]. Донедавна криптографія займалася виключно забезпеченням конфіденційності повідомлень (тобто шифруванням) – перетворенням повідомлень зі зрозумілої форми в незрозумілу і зворотнім відновленням на стороні одержувача, забезпечуючи неможливість прочитання для того, хто перехопив або підслухав без секретного знання (а саме ключа, необхідного для розшифрування повідомлення). Упродовж останніх десятиліть сфера застосування криптографії розширилася і включає не лише таємне передавання повідомлень, але й методи перевірки цілісності повідомлень, ідентифікування відправника/одержувача (автентифікація), цифрові підписи, інтерактивні підтвердження та технології безпечного спілкування тощо.
- 5.1.1.Кодування інформації
Характеристики кодів. Під час шифрування літери або фрази за допомогою коду кожного разу виходить однаковий шифрований текст, тоді як шифрування літери або фрази за допомогою системи шифрування в різні моменти часу виходять, як правило, різні шифровані тексти. Це відбувається тому, що більшість систем шифрування мають один або декілька параметрів, таких, як ключове слово або кутові установки коліс (у шифрмашинах). Через певні проміжки часу, регулярні або нерегулярні, значення параметрів змінюють, щоб для одного і того самого відкритого тексту на виході отримати різні шифровані тексти. Основний механізм отримання шифрованого тексту залишається незмінним, змінюються тільки параметри. Як правило, коди не містять таких параметрів, хоча код може змінитися цілком – але в цьому випадку це буде вже інший код. На практиці для цього час від часу випускають нову кодову книгу.
Вочевидь, найбільш відомим є код, винайдений в 1832 р. Самюелем Морзе (1791-1872) для передавання повідомлень телеграфом. У цьому коді літери алфавіту представлені у вигляді комбінацій «крапок» і «тире» (від одного до чотирьох знаків), цифри від 0 до 9 – п'ятьма знаками, а деякі розділові знаки – шістьма знаками. Для передачі «крапки» телеграфний ключ натискають протягом 1/24 частки секунди, а для передачі «тире» – протягом 1/8 частки секунди. Інтервал між посиланнями літер дорівнює часу передачі «крапки», а інтервал між літерами дорівнює часу передачі «тире». Код Морзе був розроблений таким чином, що час передачі найбільш частотних літер англійської мови виявлявся коротшим, ніж для менш частих літер. Тому літері Е відповідає єдина «крапка», а літері Т – єдине «тире», тоді як для літери J потрібно чотири символи: «крапка-тире-тире-тире». Це зроблено з метою мінімізувати час, необхідний для передавання повідомлення. Міжнародна версія коду Морзе для бездротового телеграфу приведена в табл. 5.2 [89, c.84].
Таблиця 5.2
Код Морзе для латинської абетки та цифр
A | E | I | M | Q | U | Y | |||||||
B | F | J | N | R | V | Z | |||||||
C | G | K | O | S | W | ||||||||
D | H | L | P | T | X |
Кваліфікований спеціаліст, використовуючи код Морзе, міг передавати в середньому близько 30 слів на хвилину.
Комп’ютерний практикум. Організуємо процедуру мовою Pascal для кодування голосних літер англійського алфавіту кодом Морзе.
procedure Morse(ch:char); begin case ch of ‘a’: write(‘* -’); ‘o’: write(‘- - -’); ‘u’: write(‘* * -’); ‘e’: write(‘*’); ‘i’: write(‘* *’); end; end; |
Одночастинні та двочастинні коди. Більшість кодів передбачає використання кодової книги, яка може містити тисячі кодових груп. У кодах, якими користуються військові, літери, числа і фрази, зазвичай представляють кодовими групами з чотирьох або п'яти літер (цифр). Кодові групи зовсім не обов'язково повинні складатися з однакового числа символів. Головна перевага кодів полягає у великій кількості можливих кодових груп: їх може бути 10 тис. у разі чотиризначного цифрового коду, і майже 12 млн. для п'ятизначного літерного коду. Недоліки кодів полягають в тому, що користувачі кодів змушені носити з собою кодові книги, а також якщо противник отримає копію цієї книги, то він зможе безпосередньо читати всі наступні повідомлення.
Розкриття кодів значно полегшується, якщо код є одночастинним, тобто коли одну і ту ж кодову книгу використовують як для шифрування, так і для розшифрування. У цьому випадку кодові групи, що відповідають словам і фразам, близько розташованим в словнику, будуть також близькі і за своїми числовими значеннями. Наприклад, розділ чотиризначної одночастинної кодової книги може виглядати, як показано в табл. 5.3.
Таблиця 5.3
Приклад розділу чотиризначної одночастинної кодової книги
Кодова група | Значення |
А | 0001 |
АБО | 0002 |
АВТОКОЛИВАННЯ | 0006 |
АГРАРНИЙ | 0013 |
АДАПТАЦІЯ | 0016 |
АЕРОЗНІМОК | 0021 |
АЖ | 0023 |
АЗОВСЬКИЙ | 0024 |
АКАДЕМІК | 0026 |
АЛГЕБРАЇЧНИЙ | 0042 |
Зазвичай, використовують не всі з 10 тис. можливих кодових груп. У них можуть бути залишені проміжки, щоб надалі була можливість за бажанням вставити в код інші слова та фрази. З криптографічної точки зору одночастинний код дає дуже велику перевагу криптоаналітику, оскільки він може здогадатися про значення ще не встановлених кодових груп, пошукавши в словнику відповідні слова, близькі до вже встановлених. Цю проблему можна усунути, якщо зробити числовий порядок кодових груп незалежним від алфавітного або числового порядку кодованих слів. У такому разі ми отримуємо двочастинний код, оскільки користувачам тепер знадобляться дві кодові книги – одна для шифрування, інша для розшифрування. Тоді наведені вище кодові слова в книзі для шифрування можуть виглядати, наприклад, як в табл. 5.4, а книга для розшифрування могла б починатися так, як показано в табл. 5.5, і так далі.
Таблиця 5.4
Кодова книга для шифрування
Кодова група | Значення |
САМ | 1325 |
СВИНЕЦЬ | 1388 |
СИНДРОМ | 2897 |
СІТКА | 3412 |
СЛОВОСПОЛУЧЕННЯ | 6948 |
СПОСТЕРЕЖЕННЯ | 1047 |
СТАТИСТИЧНО | 1520 |
СУМІСНИЙ | 6398 |
ТАБЛИЦЯ | 2081 |
ТЛУМАЧЕННЯ | 6647 |
Таблиця 5.5
Кодова книга для розшифрування
Значення | Кодова група |
0009 | УГРУПОВАННЯ |
0019 | ДОЗА |
0478 | БУТИ |
У будь-якому випадку широко поширеним словам будуть, скоріш за все, зіставлені декілька кодових груп, а користувачі проінструктовані про використання всіх альтернативних варіантів у «випадковому» порядку.
- 5.1.2.Моноалфавітні шифри
Шифр Юлія Цезара. Кожну літеру повідомлення Цезар замінював на іншу, яка в латинському алфавіті містилася від початкової на три позиції далі. Отже, літера А латинського алфавіту замінювалася на D, В на Е і т.д. до літери W, яка замінювалася на Z, потім Х на А, Y на В і, нарешті, Z на С. Якщо би він проробив це зі своїм відомим висловом
VENI. VIDI. VICI. (Прийшов. Побачив. Переміг.).
за допомогою 26-літерного алфавіту, яким користуються в англомовних країнах, то це повідомлення виглядало б наступним чином
YHQL. YLGL. YLFL.
Це не дуже складний метод, відразу стає очевидним, що повідомлення складається із трьох слів, і в кожному із них чотири літери, причому деякі літери повторюються. У такій нескладній системі складно ліквідувати ці недоліки. Але розширення алфавіту з 26 до 29 знаків і більше за рахунок включення знаків пунктуації та пропусків трохи замасковує довжину кожного слова. Проте, Цезар увійшов в історію криптографії, а шифр Юлія Цезара, як його досі називають, слугує прикладом однієї з перших систем шифрування та є частковим випадком шифру простої заміни.
Шифри простої заміни. У шифрі простої заміни звичайний алфавіт заміняють переставленим («перетасованим»). Це означає, що кожна літера звичайного алфавіту заміняють на літеру, що має той самий порядковий номер у переставленому алфавіті [110, с.77]. Формально в цьому випадку шифр заміни можна описати таким чином. Для кожної літери a вихідного алфавіту будують деяку множину символів Ma так, що множини Ma і Mb попарно не перетиналися при a¹b, тобто будь-які дві різні множини не містять однакових елементів. Множину Ma називають множиною шифропозначень для літери a (табл. 5.6).
Таблиця 5.6
Ключ шифру заміни
а | б | в | ... | я |
Ма | Мб | Мв | ... | Мя |
Знаючи ключ шифру заміни, можна здійснити як шифрування, так і розшифрування. При шифруванні кожну літеру a відкритого повідомлення, починаючи з першої, замінюють на будь-який символ з множини Ma. Якщо в повідомленні є декілька літер, то кожну з них замінюють на будь-який символ з Ma. За рахунок цього за допомогою одного ключа, поданого табл. 5.6, можна отримати різні варіанти шифрованого повідомлення для одного і того ж відкритого повідомлення.
Задача 5.1. Нехай дано таке переставлення алфавіту (перший рядок – звичайний латинський алфавіт, другий – переставлений). Зашифрувати повідомлення COME AT ONCE (задачу взято з [130, с.18]).
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
Y M I H B A W C X V D N O J K U Q P R T F E L G Z S
Розв’язок. Якщо використовувати шифр простої заміни з цим алфавітом шифрування для шифрування відкритого повідомлення COME AT ONCE, то отримаємо шифрований текст IKOB YT KJIB. Спроба дешифрувати його як шифр Юлія Цезара до успіху не приведе.
Припустимо, криптоаналітик вирішив, що перед ним шифр простої заміни. Чи зможе він дешифрувати його? Він точно зауважить, що повідомлення складається із трьох слів із 4, 2 та 4 літер відповідно, що літери 1 і 9, 2 і 7, 4 і 10 співпадають. Отже, хоч усіх тут десять літер, різних серед них лише сім. Звідси випливає, що будь-яка множина із трьох слів англійською, або будь-якою іншою мовою, яка задовольняє ці умови, є можливим розв’язком. Тому, поряд з іншими можливостями, розв’язками рівною мірою можуть бути такі повідомлення:
GIVE TO INGE
HAVE TO ACHE
SECT IN EAST.
Жоден із цих текстів не виглядає достатньо правдоподібним, але кожний з них є розв’язком. Це показує, що коротке повідомлення, шифроване простою заміною, може бути дешифроване неоднозначно, тому щоб розв'язок був єдиним у випадку шифру простої заміни треба мати не менше 50 знаків. Вважають [130, с.19], щоб розв’язок був не тільки єдиним, але його було б нескладно отримати, необхідно біля двохсот знаків тексту.
Зауваження. Є ще два зауваження до останнього прикладу та наведеного вище алфавіту простої заміни.
- Задача дешифрування повідомлення у поданому випадку є значно легшою, ніж могла б бути, оскільки шифрований текст був записаний зі збереженням пропусків між словами. Тим самим стають відомі довжини слів початкового повідомлення. Є два стандартних способи ліквідації цієї проблеми.
- Іґноруючи пропуски та знаки пунктуації, записати у вигляді рядка знаків латинського алфавіту. Тоді відкритий і шифрований тексти останнього прикладу будуть виглядати так: COMEATONCE i IKOBYTKJIB. Тоді криптоаналітик не знатиме, чи складається повідомлення з одного слова з 10 літер або з кількох слів меншої довжини, і, відповідно, кількість можливих варіантів розв’язку значно зростає. Недолік такого підходу є в тому, що отримувачу повідомлення необхідно вставляти в нього пропуски та знаки пунктуації в ті місця, які він вважає для цього кращими, а це іноді може привести до двозначності. Для ілюстрації такої ситуації придатна відома фраза СТРАТИТИНЕМОЖНАПОМИЛУВАТИ, де від розміщення коми зміст вироку змінюється на протилежний. Отже, отримання відкритого тексту ускладнюється і для криптоаналітика, і для адресата.
- Замість пропуску використовувати якусь рідковживану літеру, наприклад, Х. У тих окремих випадках, коли зустрічається справжня літера Х, її замінюють на іншу комбінацію літер, наприклад, KS. Якщо зробити це із задачею 5.1, то саме повідомлення і відповідний шифрований текст запишуться так: COMEXATXONCE i IKOBGYTGKJIB, оскільки літера Х перетворюється на G в алфавіті шифрування, а в початковому повідомленні Х не зустрічається. Криптоаналітик може здогадатися, що G означає пропуск і після цього знайти довжини слів. Чим більша довжина тексту, тим наочнішим є розташування символів, що замінюють пропуски.
Також можна додати в алфавіт декілька знаків, щоб можна було врахувати і пропуски, і символи пунктуації, такі як крапка і кома. У цьому випадку в алфавіт шифрованного тексту доведеться давати нові символи. Як такі придатні будь-які неалфавітні знаки. Для латинського алфавіту типова трійка знаків може виглядати, наприклад, $, % i &. І може бути, що в 29-літерному алфавіті шифрованного тексту літера D буде відображена знаком &, літера J – знаком $, літера S – знаком %, а пропуск, крапка та кома – знаками S, C i W. Числа при цьому можна записати словами, а можна, навпаки, розширити алфавіт і далі, включивши в нього також і цифри. Такі додаткові знаки, можливо, надають шифрованому тексту «неприпустимого вигляду», але практично стійкість шифру зростає досить незначно.
- Зауважимо, що в наведеному прикладі шифру простої заміни дві літери (Q i T) не змінюються. Часто студенти, що вивчають криптографію, вважають, що цього треба уникати. Насправді боятися цього не треба, якщо таких літер 1-2. Можна математично точно довести, що у випадково обраному алфавіті заміни з ймовірністю біля 63% зустрінеться хоча би одна літера, що не змінюється [130].
Шифри простої заміни перетворюють текст таким чином, що кожен символ замінюють на якийсь інший. При цьому символам у відкритому тексті відповідають однакові символи у криптотексті, а різним – різні. Ключем є табличка, що вказує, в який саме символ перетворюють кожен символ відкритого тексту. Символи в табличці можуть бути розміщені довільним чином. Отже, питання полягає в тому, скількома способами можна перемістити всі літери абетки у ключі. Для першої позиції для українського тексту літеру можна обрати 33-ма способами. Коли вона обрана, для другої позиції літеру можна обрати вже 32-ма способами, для третьої – 31-м способом тощо. Для передостанньої позиції вибір здійснюють двома способами, остання ж літера визначена однозначно. Тоді загальна кількість можливостей розмістити літери (ключів) є 33!. У загальному випадку, коли алфавіт налічує n символів, ми отримуємо n! ключів. Шифр зсуву є звуженням загального шифру заміни на сукупність лише n ключів, в яких нижній рядок є циклічним зсувом верхнього. Ключ повністю визначається довжиною зсуву s. Хоча кількість ключів при використанні шифрів простої заміни є велика, розшифрувати текст успішно дозволяє частотний метод.
Частота символу у тексті дорівнює кількості його входжень у цей текст, поділеній на загальну кількість літер у тексті. Наприклад, частота літери А у тексті «КУПИЛА МАМА КОНИКА» дорівнює 4/18, а частота пропуску між словами у цьому самому тексті дорівнює 2/18. Для кожної мови справджується такий емпіричний факт: у досить довгих текстах кожна літера зустрічається із приблизно однаковою частотою, залежною від самої літери і не залежною від конкретного тексту. Частотним методом можна здійснити дешифрування, навіть не знаючи ключа. Для цього обчислюють частоти кожного символу у криптотексті і порівнюють отримані результати з таблицею частот для мови, якою написане повідомлення. Це дозволить радикально скоротити перевірку.
Свою роль у частотному аналізі відіграє та обставина, що кожна мова має властивість надлишковості, тобто текст можна поновити, навіть якщо частина його літер невідома. Нехай нам належить розшифрувати криптотекст
ПЦПСПОФНПМПЛПИБГПЕФРПТМБВМЕОП,
який був отриманий шифром зсуву без врахування пропусків та розділових знаків. Підраховуємо частоти і зауважуємо, що найбільша (9/29) припадає на літеру П, припустимо, що у відкритому тексті їй відповідає найпоширеніша в українській мові літера О. Це означає, що довжина зсуву дорівнює 1. Виконуємо зсув вліво і отримуємо змістовне повідомлення
ОХОРОНУМОЛОКОЗАВОДУПОСЛАБЛЕНО.
Гомофонний шифр заміни був винайдений Гаусом. Цей шифр ґрунтується на ідеї, яка робить підрахунок частот безперспективним. Кожну літеру відкритого тексту замінюють будь-яким символом із кількох можливих. Наприклад, замість а може бути підставлено будь-яке з чисел 10, 17, 23, 45, 55, а замість б – будь-яке із 12, 71. Основною вимогою є те, щоб замість різних літер завжди підставлялися різні символи, вибір яких здійснюють щоразу випадково. Якщо кількість варіантів для кожної літери пропорційна її частоті в мові, то всі символи у криптотексті зустрічатимуться з приблизно відповідною частотою. Такий текст піддається різновиду частотного аналізу, який, крім частот окремих символів, враховує також частоти пар символів.
Задача 5.2. Зашифрувати повідомлення «Я ЗНАЙОМИЙ ІЗ ШИФРАМИ ЗАМІНИ» з ключем, заданим таблицею.
А | Б | В | Г | Ґ | Д | Е | Є | Ж | З | И | І | Ї | Й | К | Л | М |
21 | 37 | 14 | 22 | 94 | 01 | 36 | 24 | 62 | 73 | 74 | 46 | 97 | 65 | 23 | 12 | 08 |
40 | 26 | 63 | 47 | 98 | 31 | 78 | 83 | 88 | 30 | 17 | 02 | 99 | 34 | 91 | 72 | 32 |
10 | 03 | 71 | 82 | 96 | 15 | 86 | 70 | 11 | 55 | 42 | 90 | 95 | 92 | 69 | 38 | 61 |
Н | О | П | Р | С | Т | У | Ф | Х | Ц | Ч | Ш | Щ | Ь | Ю | Я | |
27 | 53 | 35 | 04 | 20 | 13 | 59 | 25 | 75 | 43 | 19 | 29 | 06 | 48 | 28 | 16 | |
77 | 68 | 60 | 44 | 52 | 39 | 07 | 49 | 33 | 85 | 58 | 80 | 50 | 56 | 64 | 41 | |
54 | 09 | 84 | 45 | 89 | 67 | 93 | 76 | 18 | 51 | 87 | 66 | 81 | 79 | 05 | 57 |
Розв’язок.Повідомлення «я знайомий із шифрами заміни» може бути зашифровано, наприклад, будь-яким з наступних трьох способів:
я | з | н | а | й | о | м | и | й | і | з | ш |
16 | 55 | 54 | 10 | 65 | 09 | 61 | 42 | 92 | 90 | 55 | 29 |
41 | 55 | 77 | 10 | 34 | 68 | 08 | 17 | 65 | 02 | 30 | 66 |
57 | 30 | 27 | 10 | 92 | 68 | 32 | 17 | 34 | 02 | 73 | 80 |
и | ф | р | а | м | и | з | а | м | і | н | и |
17 | 49 | 44 | 10 | 08 | 42 | 73 | 21 | 32 | 90 | 54 | 74 |
74 | 76 | 44 | 21 | 61 | 17 | 55 | 21 | 61 | 90 | 54 | 42 |
42 | 49 | 45 | 40 | 32 | 74 | 55 | 40 | 08 | 02 | 27 | 42 |
Задача 5.3.Одним з відкритих повідомлень є фраза:
СЬОГОДНІ ЗАНЯТТЯ НЕ БУДЕ,
або наступна фраза:
ЗАНЯТТЯ ПРОВЕСТИ ЗАВТРА.
Зашифрувати ці повідомлення за допомогою послідовності літер, тобто послідовності шифрування
ШИФРУВАТИ ПОВІДОМЛЕННЯ.
Шифрування кожної літери початкового повідомлення складається у сумуванні її порядкового номера в алфавіті з порядковим номером відповідної літери послідовності шифрування та заміни такої суми на літеру алфавіту, порядковий номер якої має ту ж остачу від ділення на 33, що і ця сума.
Розв’язок. Повідомлення, яке записане в алфавіті, поданого в табл. 5.7, шифрується за допомогою послідовності літер цього ж алфавіту.
Таблиця 5.7
Послідовність літер українського алфавіту
А | Б | В | Г | Ґ | Д | Е | Є | Ж | З | И | І | Ї | Й | К | Л | М |
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 | 33 |
Довжина послідовності шифрування (табл. 5.8)
ШИФРУВАТИПОВІДОМЛЕННЯ
Таблиця 5.8
Ключ шифру заміни
№ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
Ключ | Ш | И | Ф | Р | У | В | А | Т | И | П | О | В | І | Д | О | М | Л | Е | Н | Н | Я |
K | 29 | 11 | 25 | 21 | 24 | 3 | 1 | 23 | 11 | 20 | 19 | 3 | 12 | 6 | 19 | 17 | 16 | 7 | 18 | 18 | 33 |
рівна довжині першого повідомлення (табл. 5.9)
СЬОГОДНІЗАНЯТТЯНЕБУДЕ
Таблиця 5.9
Повідомлення 1
№ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
Фраза | С | Ь | О | Г | О | Д | Н | І | З | А | Н | Я | Т | Т | Я | Н | Е | Б | У | Д | Е |
T1 | 22 | 31 | 19 | 4 | 19 | 6 | 18 | 12 | 10 | 1 | 18 | 33 | 23 | 23 | 33 | 18 | 7 | 2 | 24 | 6 | 7 |
та довжині другого повідомлення (табл. 5.10)
ЗАНЯТТЯПРОВЕСТИЗАВТРА
Таблиця 5.10
Повідомлення 2
№ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
Фраза | З | А | Н | Я | Т | Т | Я | П | Р | О | В | Е | С | Т | И | З | А | В | Т | Р | А |
T2 | 10 | 1 | 18 | 33 | 23 | 23 | 33 | 20 | 21 | 19 | 3 | 7 | 22 | 23 | 11 | 10 | 1 | 3 | 23 | 21 | 1 |
Зашифруємо перше повідомлення (табл. 5.11).
Таблиця 5.11
Процес шифрування повідомлення 1
№ | Фраза | Сума T1+K | Остача | Шифротекст |
1 | С | 22+29=51 | 18 | Н |
2 | Ь | 31+11=42 | 9 | Ж |
3 | О | 19+25=44 | 11 | И |
4 | Г | 4+21=25 | 25 | Ф |
5 | О | 19+24=43 | 10 | З |
6 | Д | 6+3=9 | 9 | Ж |
7 | Н | 18+1=19 | 19 | О |
8 | І | 12+23=35 | 2 | Б |
9 | З | 10+11=21 | 21 | Р |
10 | А | 1+20=21 | 21 | Р |
11 | Н | 18+19=37 | 4 | Г |
12 | Я | 33+3=36 | 3 | В |
13 | Т | 23+12=35 | 2 | Б |
14 | Т | 23+6=29 | 29 | Ш |
15 | Я | 33+19=52 | 19 | О |
16 | Н | 18+17=35 | 2 | Б |
17 | Е | 7+16=23 | 23 | Т |
18 | Б | 2+7=9 | 9 | Ж |
19 | У | 24+18=42 | 9 | Ж |
20 | Д | 6+18=24 | 24 | У |
21 | Е | 7+33=40 | 7 | Е |
Отримаємо наступний шифр
НЖИФЗЖОБРРГВБШОБТЖЖУЕ
Зашифруємо друге повідомлення (табл. 5.12).
Таблиця 5.12
Процес шифрування повідомлення 2
№ | Фраза | Сума T2+K | Остача | Шифротекст |
1 | З | 10+29=39 | 6 | Д |
2 | А | 1+11=12 | 12 | І |
3 | Н | 18+25=43 | 10 | З |
4 | Я | 33+21=54 | 21 | Р |
5 | Т | 23+24=47 | 14 | Й |
6 | Т | 23+3=26 | 26 | Х |
7 | Я | 33+1=34 | 1 | А |
8 | П | 20+23=43 | 10 | З |
9 | Р | 21+11=32 | 32 | Ю |
10 | О | 19+20=39 | 6 | Д |
11 | В | 3+19=22 | 22 | С |
12 | Е | 7+3=10 | 10 | З |
13 | С | 22+12=34 | 1 | А |
14 | Т | 23+6=29 | 29 | Ш |
15 | И | 11+19=29 | 29 | Ш |
16 | З | 10+17=27 | 27 | Ц |
17 | А | 1+16=17 | 17 | М |
18 | В | 3+7=10 | 10 | З |
19 | Т | 23+18=41 | 8 | Є |
20 | Р | 21+18=39 | 6 | Д |
21 | А | 1+33=34 | 1 | А |
Наше шифроване друге повідомлення виглядає так:
ДІЗРЙХАЗЮДСЗАШШЦМЗЄДА
- 5.1.3.Застосування перестановок
Шифр, перетворення з якого змінюють лише порядок розташування символів початкового тексту, але не змінюють їх самих, називається шифром перестановки (ШП) [140]. Шифри із застосуванням перестановок зберігають усі літери відкритого тесту, але розміщують їх у криптотексті в іншому порядку. Ці шифри інакше називають шифрами обходу [110 с. 87; 130].
Розглянемо перетворення з ШП, призначене для шифрування повідомлення довжиною n символів. Його можна подати за допомогою таблиці
де i1 – номер місця шифротексту, на яке потрапляє перша літера вихідного повідомлення при вибраному перетворенні, i2 – номер місця для другої літери тощо. У верхньому рядку таблиці виписані по порядку числа від 1 до n, а в нижньому – ті ж числа, але в довільному порядку. Така таблиця називається підстановкою міри n. Знаючи підстановку, що задає перетворення, можна здійснити як шифрування, так і розшифрування тексту. Наприклад, якщо для перетворення використовують підстановку
і відповідно до її шифрують слово ХЕРСОН, то вийде ОЕРХСН. Спробуйте розшифрувати повідомлення ТЛУАША, отримане внаслідок перетворення за допомогою вказаної вище підстановки.
Існує 1×2×3×…×n= n! варіантів заповнення нижнього рядка таблиці [140]. Таким чином, кількість різних перетворень шифру перестановки, призначеного для шифрування повідомлень довжини n, менше або рівне n! (зауважимо, що в цю кількість входить і варіант перетворення, що залишає всі символи на своїх місцях!). Із збільшенням числа n значення n! зростає дуже швидко.
Розглянемо матричний шифр обходу. Повідомлення записують рядками у вигляді прямокутної матриці. Криптотекст формують зчитуванням літер із матриці у зміненому порядку, а саме, стовпчиками. При цьому послідовність зчитуваних стовпчиків визначають ключем.
Задача 5.4.Потрібно зашифрувати повідомлення «Сказано на глум, а ти бери на ум» (Галицько-руські народні приповідки: У 3-т т. / Зібрав, упорядкував і пояснив Др. Іван Франко: 2-е вид. – Львів: Видавничий центр ЛНУ імені Івана Франка, 2006. – Т.3. – 699с.) з ключем ФРАНКО.
Розв’язок. Записуємо текст у прямокутну матрицю.
С | К | А | З | А | Н |
О | Н | А | Г | Л | У |
М | А | Т | И | Б | Е |
Р | И | Н | А | У | М |
Для ключа ФРАНКО порядок зчитування стовпчиків буде 6-5-1-3-2-4. В результаті отримуємо шифрований текст СОМРКНАИААТНЗГИААЛБУНУЕМ.
- 5.1.4.Поліалфавітні шифри
Шифри Віженера. Слабкість шифру Юлія Цезара полягає в тому, що він має всього 25 можливих варіантів розшифрування, і тому криптоаналітик зможе всі їх перебрати. Щоб збільшити число таких варіантів, треба зсувати літери не на фіксоване число позицій в алфавіті, а на змінну величину, залежну від розташування літери в тексті. Очевидно, повинно існувати правило обчислення величини зсуву у кожному конкретному випадку, інакше розшифрувати повідомлення буде неможливо навіть адресатові. Просте правило полягає у використанні послідовності з кількох фіксованих зсувів [110, с. 82].
Задача 5.5. Зашифруйте повідомлення COME AT ONCE зі зсувами 19-5 (задачу взято з [130, с.35]).
Розв’язок. У задачі 5.1 фраза COME AT ONCE була було шифрована з фіксованим зсувом 19, і в шифрованому вигляді було таким:
VHFX ТМ HGVX.
Будемо тепер по черзі використовувати два зсуви 19 і 5 так, щоб перша, третя, п'ята і так далі літери зсовувались на 19 позицій, а друга, четверта і так далі літери зсовувались на 5 позицій, у цьому випадку шифроване повідомлення матиме вигляд
VTFJ TY HSVJ.
Задача 5.6.Замінити в повідомленні COME AT ONCE знак пропуску на Z та зашифруйте його зі зсувами 19-5-11 (задачу взято з [130, с.36]).
Розв'язок. Якщо в повідомленні замінити знак пропуску на Z, то відкритий текст виглядає так:
COMEZATZONCE
Застосування трьох послідовних зсувів 19, 5 і 11 переводить повідомлення у таке:
VTXXELMEZGHP
а ключем шифрування є трійка чисел 19-5-11. Щоб прочитати це повідомлення, одержувач повинен скористатися ключем розшифрування, який випливає з ключа шифрування заміною кожного числа з трійки на його доповнення по модулю 26, а саме: 7-21-15.
Навіть якщо криптоаналітик здогадається, що використаний шифр Юлія Цезара з трьома послідовними зсувами, йому доведеться перебрати 75 або більше комбінацій (тому що один зі зсувів може дорівнювати нулеві). Якщо повідомлення занадто коротке і неможливо знайти кожен з трьох зсувів окремо, то, ймовірно, доведеться застосувати метод «повного перебору». Однак, оскільки це вимагатиме перевірки 25´25´25=15625 варіантів, до нього варто вдаватися лише як до крайнього заходу. У особливому випадку, коли число зсувів у послідовності дорівнює числу літер в тексті, повідомлення стає таким, що не «дешифрується», якщо у послідовності зсувів не відмічено якої-небудь невипадкової характеристики.
Описаним тут способом посилення шифру Юлія Цезара за допомогою декількох зсувів користуються вже багато сотень років. Такі системи називають шифрами Віженера. Оскільки більшості людей легко запам'ятовувати слова, а не випадкові послідовності літер або чисел, то ключі шифрів Віженера нерідко набувають вигляду ключового слова. Літери ключового слова перетворяться в числа стандартним способом (А=0, В=1, С=2..., Z=25). Наприклад, ключове слово CHAOS еквівалентне використанню послідовності з п'яти зсувів 2-7-0-14-18. Ключове слово або числовий ключ виписують над відкритим текстом періодично. Додаючи до кожної літери відкритого тексту відповідний зсув, визначений літерою ключа, отримуємо шифрований текст.
Задача 5.7. Зашифруйте текст HOMOZHOMINIZLUPUSZEST за допомогою шифру Віженера з ключовим словом PASCAL.
Розв’язок. Шифрування відбувається так:
P | A | S | C | A | L | P | A | S | C | A | L | P | A | S | C | A | L | P | A | S |
H | O | M | O | Z | H | O | M | I | N | I | Z | L | U | P | U | S | Z | E | S | T |
В результаті отримуємо шифрований текст
W | O | E | Q | Z | S | D | M | A | P | I | K | A | U | H | W | S | K | T | S | L |
Шифр Віженера є особливим специфічним випадком багатоалфавітної системи, в якій використовують декілька різних алфавітів заміни (а не один, як в шифрі простої заміни). Кількість алфавітів заміни може бути довільною: від двох до багатьох тисяч.
Кількаразове шифрування. У 20-х роках ХХ століття були винайдені роторні шифрувальні пристрої (додаток И), які вдосконалювалися упродовж наступних десятиліть і інтенсивно використовувалися під час Другої світової війни. Прикладом може служити відома німецька шифрмашина «Енігма». Роторні системи реалізовували багатократну композицію шифрів Віженера, що давало шифр з дуже великим періодом. Частковим випадком композиції двох шифрів є послідовне застосування двічі одного й того самого шифру але перспективнішим є подвійне шифрування з незалежним вибором ключа кожного разу. Тобто, за допомогою алгоритму шифрування Е повідомлення М перетворюється у криптотекст , де два ключі K1 та K2 вибирають незалежно один від одного. Алгоритм, який полягає у шифруванні повідомлення за допомогою одного шифру, а потім застосуванні до отриманого криптотексту ще одного шифру називають композицією або добутком цих двох шифрів. Дешифрування не викликає труднощів: (треба звернути увагу на зміну порядку, в якому застосовують ключі) [6].
Одноразовий блокнот. У період класичної криптографії, як правило, не виникало потреби записувати відкритий текст та криптотекст якось інакше, ніж у звичайній абетці. Завдяки цьому криптограф-практик не потребував для роботи нічого, крім письмового приладдя свого часу, чого було достатньо і для шифрування, і для пересилання повідомлення. Але у технічному відношенні традиційний текст не є найзручнішою формою для перетворення та передавання інформації.
З цього погляду вигіднішим є подання інформації у цифровій формі, коли кожен символ тексту замінюємо його номером у алфавіті, нумерацію починаємо з 0. Для прикладу, слово БАНАН буде подане як 01 00 17 00 17. Кожна літера відображена своїм номером, записаним двома цифрами, перша з яких може бути нулем. При потребі в алфавіт можна включити, окрім літер, також знаки пунктуації, пропуск, цифри тощо.Номери літер ми можемо записувати не в десятковій системі числення, а у двійковій. Для того самого слова БАНАН матимемо запис 000001000000010001000000010001, де кожен блок із шести цифр є номером відповідної літери у двійковому записі (ми потребуємо не менше шести цифр, бо п'ятьма можна записати щонайбільше 32 числа, тоді як українська абетка налічує 33 літери). Будь-яку послідовність бітів називають двійковим словом.
Шифр одноразового блокноту був винайдений 1917 року Гілбертом Вернамом. Він використовує операцію додавання бітів за модулем 2, яку ми розглянемо перед тим, як описати сам шифр. Операцію позначають символом Å і задають так: 0Å0=0, 0Å1=1, 1Å0=1, 1Å1=0.
Поширимо цю операцію на двійкові слова однакової довжини домовившись, що додавання таких слів здійснюють побітово (не можна плутати цю операцію зі звичайним додаванням чисел у двійковій системі; зокрема, при побітовому додаванні не виникає ніяких переносів у наступний розряд). Наприклад,
Å | 000001000000010001000000010001 |
001101110101100010011000111010 | |
001100110101110011011000101011 |
Для двійкових слів Х і Y однакової довжини результат їх побітового додавання позначатимемо як XÅ Y. Легко перевірити рівності XÅ Y = Y Å X та (X Å Y) Å Z = X Å (Y Å Z), що справджуються для будь-яких двійкових слів X, Y і Z однакової довжини. Для фіксованого k позначимо через 0 двійкове слово 000...00, що складається із k нулів. Очевидно, що для будь-якого двійкового слова Х довжини k виконують рівності XÅ0= X і XÅ X =0. Перейдемо тепер до опису шифру. Перед шифруванням повідомлення М записують у двійковій формі. Ключем K служить довільне двійкове слово однакової з М довжини. Шифрований текст С отримують побітовим додаванням повідомлення і ключа, тобто C= M Å K.
Задача 5.8. Зашифруємо слово БАНАН з допомогою ключа K.
Розв’язок. Вище подано двійкову форм слова БАНАН:
М = 000001000000010001000000010001.
Як ключ виберемо K = 001101110101100010011000111010.
Сумування цих двох двійкових послідовностей вже виконане нами вище. Отож маємо криптотекст
С = 001100110101110011011000101011.
Дешифрування у шифрі одноразового блокноту збігається із шифруванням – щоб отримати вихідне повідомлення М, треба додати до криптотексту С той самий ключ K. Це легко обґрунтувати: оскільки C= M Å K, то
CÅ K = (M Å K) Å K = M Å (K Å K) = M Å 0 = M.
Шифр одноразового блокноту є абсолютно надійним або, як ще кажуть, надійним у теоретико-інформаційному сенсі. Якщо суперник не знає ключа K, то з підслуханого криптотексту С він зовсім нічого не може довідатися про повідомлення М. Справді, двійкове слово С могло б бути криптотекстом для будь-якого повідомлення М', якби шифрування здійснювалося з деяким іншим ключем K', а саме K' = M Å C , тоді як для суперника всі ключі однаково вірогідні. Наприклад, за допомогою деякого ключа K ми щойно перетворили повідомлення БАНАН у шифрований текст С = 001100110101110011011000101011. Але такий самий криптотекст ми отримали б, якби шифрували повідомлення ГРУША з ключем K' = 001111100001100100000100101011.
Назва шифру походить від того, що аґент, який здійснював шифрування вручну, отримував свої копії ключів записаними у блокноті. Як тільки ключ використовувався, сторінка з ним знищувалася. Зрозуміло, що шифр просто реалізувати і технічними засобами. Кажуть, що саме шифр одноразового блокноту використовувався для захисту від підслуховування встановленої під час холодної війни гарячої лінії зв'язку між Москвою і Вашингтоном.
Іншими типовими значеннями модулів, що використовують в криптології, є 10 та 26. Як і в операціях за модулем 2, усі числа заміняють на остачу від ділення цих чисел на модуль. Якщо в остачі від’ємна величина, то до нею додають значення модуля, щоб остача стала додатною. Наприклад, використовуючи модуль 26 (допустимими є числа від 0 до 25), додамо 17 до 19. У результаті одержимо 10, оскільки 17+19=36, а 36 ділиться на 26 з остачею 10. Аби вказати, що використовують модуль 26, використаємо таку форму запису:
17+19=10(mod 26).
Якщо відняти 19 від 17, то результат (-2) буде від’ємним, тому до нього додають 26, і у результаті отримаємо 24.
Задача 5.9. Додати за модулем 26 послідовності 15 0 18 2 0 11 15 0 18 2 0 11 15 0 18 2 0 11 15 0 18 та 7 14 12 14 25 7 14 12 8 13 8 25 11 20 15 20 15 20 18 25 4 18 19.
Розв’язок.
15 | 0 | 18 | 2 | 0 | 11 | 15 | 0 | 18 | 2 | 0 | 11 | 15 | 0 | 18 | 2 | 0 | 11 | 15 | 0 | 18 | |
7 | 14 | 12 | 14 | 25 | 7 | 14 | 12 | 8 | 13 | 8 | 25 | 11 | 20 | 15 | 20 | 18 | 25 | 4 | 18 | 19 | |
22 | 14 | 30 | 16 | 25 | 18 | 29 | 12 | 26 | 15 | 8 | 36 | 26 | 20 | 33 | 22 | 18 | 36 | 19 | 18 | 37 | |
(mod26) | 22 | 14 | 4 | 16 | 25 | 18 | 3 | 12 | 0 | 15 | 8 | 10 | 0 | 20 | 7 | 22 | 18 | 10 | 19 | 18 | 11 |
і в результаті отримаємо 22 14 4 16 25 18 3 12 0 15 8 10 0 20 7 22 18 10 19 18 11.
- 5.1.5.Книжкові шифри
Для роботи з книжковим шифром потрібна книга на будь-яку тему, текст якої набраний лише одним алфавітом. Щоб користуватися книжковим шифром, необхідно уміти попарно «додавати та віднімати» літери алфавіту. Цю процедуру починають з того, що кожній літері алфавіту присвоюють номер (для латинського алфавіту – А=0, В=1, С=2 ..., Z=25), далі проводиться додавання або віднімання (для 26 літер латинського алфавіту – за модулем 26) і зворотне перетворення результату в літери. Для полегшення процедури складено таблиці [15, с.29].
Задача 5.10. Перетворимо латинський алфавіт в числа, починаючи з А=0, В=1, і так далі. Потім додамо два приведених нижче тексти за модулем 26 і перетворимо отриманий чисельний результат знову в літери.
Текст 1 | Q | U | E | E | N | X | E | L | I | Z | A | B | E | T | H |
Текст 2 | A | X | P | I | E | C | E | X | O | F | X | C | A | K | E |
Розв'язок.
Пронумеруємо літери англійського алфавіту (табл. 5.13).
Таблиця 5.13
Нумерація літер латинського алфавіту
A | B | C | D | E | F | G | H | I | J | K | L | M |
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
Спочатку за допомогою даної таблиці перетворимо тексти в числа:
Текст 1 | Q | U | E | E | N | X | E | L | I | Z | A | B | E | T | H |
16 | 20 | 4 | 4 | 13 | 23 | 4 | 11 | 8 | 25 | 0 | 1 | 4 | 19 | 7 | |
Текст 2 | A | X | P | I | E | C | E | X | O | F | X | C | A | K | E |
0 | 23 | 15 | 8 | 4 | 2 | 4 | 23 | 14 | 5 | 23 | 2 | 0 | 10 | 4 |
Тепер додамо їх і приведемо за модулем 26:
16 | 20 | 4 | 4 | 13 | 23 | 4 | 11 | 8 | 25 | 0 | 1 | 4 | 19 | 7 | |
0 | 23 | 15 | 8 | 4 | 2 | 4 | 23 | 14 | 5 | 23 | 2 | 0 | 10 | 4 | |
Сума | 16 | 43 | 19 | 12 | 17 | 25 | 8 | 34 | 22 | 30 | 23 | 3 | 4 | 29 | 11 |
(mod 26) | 16 | 17 | 19 | 12 | 17 | 25 | 8 | 8 | 22 | 4 | 23 | 3 | 4 | 3 | 11 |
Перетворимо результати знову в літери, використовуючи Таблицю 5.5:
Q | R | T | M | R | Z | I | I | W | E | X | D | E | D | L |
Такий шифрований текст буде надіслано. Одержувачеві потрібно буде відняти з нього Текст 2 за модулем 26, щоб відновити Текст 1, а саме:
Шифрований текст | Q | R | T | M | R | Z | I | I | W | E | X | D | E | D | L |
Текст 2 | A | X | P | I | E | C | E | X | O | F | X | C | A | K | E |
16 | 17 | 19 | 12 | 17 | 25 | 8 | 8 | 22 | 4 | 23 | 3 | 4 | 3 | 11 | |
0 | 23 | 15 | 8 | 4 | 2 | 4 | 23 | 14 | 5 | 23 | 2 | 0 | 10 | 4 |
Тепер віднімемо за модулем 26 (тобто якщо результат негативний, додамо 26). Одержуємо:
16 | 20 | 4 | 4 | 13 | 23 | 4 | 11 | 8 | 25 | 0 | 1 | 4 | 19 | 7 | 16 | 20 |
Перетворимо результат назад в літери:
Q | U | E | E | N | X | E | L | I | Z | A | B | E | T | H | Q | U |
і отримаємо Текст 1, тобто вихідне повідомлення.
Кожного разу при шифруванні повідомлення доводиться перетворювати текст в числа, додавати їх, віднімаючи там, де потрібно, число 26, і знов перетворювати числа в літери. Очевидно, що цей процес вельми трудомісткий, може легко призвести до помилки. Тому є сенс побудувати дві таблиці (одну – для шифрування, іншу – для розшифрування), з яких одразу можна взяти результат цих операцій (табл. К.1-К.2). Відмітимо, що під час користування таблицею шифрування (табл. К.1) не має значення, чи є текст повідомлення «Текстом 1», а текст ключа – «Текстом 2», або навпаки, оскільки додавання цих двох текстів у будь-якому випадку дає один і той же результат. Але під час використанні таблиці розшифрування (табл. К.2) шифрований текст і ключ необхідно розрізняти, оскільки для отримання відкритого тексту необхідно відняти ключ з шифрованого тексту, а не навпаки.
- 5.1.6.Дволітерні шифри
Може здатися, що для шифру, на відміну від коду, характерно, що кожну літеру шифрують окремо і замінюють на іншу окрему літеру (символ). Для багатьох систем шифрування це справді так. Проте, існують системи шифрування, в яких кожну літеру відкритого тексту представляють в шифрованому тексті декількома літерами; є й інші системи, в яких шифрують відразу дві (або декілька) літер відкритого тексту. Прикладом першого типу є така система шифрування.
Заміна «монограф-диграф». Алфавіт вписують в квадрат (прямокутник) такої розмірності, щоб вмістились усі символи, що підлягають кодуванню. Далі розглядатимемо випадок англійської мови з алфавітом у 26 літер. Тобто йдеться про квадрат 5x5, причому одна літера відсутня. Зазвичай опускають літеру J; у разі потреби її замінюють на I. П'ять рядків і п'ять стовпців квадрата позначено літерами А, В, С, D, Е (табл. 5.14).
Таблиця 5.14
Квадрат для заміни «монограф-диграф»
A | B | C | D | E | |
A | A | B | C | D | E |
B | F | G | H | I | K |
C | L | M | N | O | P |
D | Q | R | S | T | U |
E | V | W | X | Y | Z |
Кожну літеру відкритого тексту замінюють на пару літер, що позначають стовпець і рядок, на перетині яких вона стоїть. Так, на приклад, літера О переходить в СD. Тому шифрований текст отримують удвічі довшим за початковий відкритий текст і складається він тільки з літер від А до Е.
Задача 5.11. Зашифруйте фразу АLMA MATER, використовуючи табл. 5.16.
Розв’язок. Шифрована фраза відкритого тексту виглядає так:
AACA CBAA CBAA DDAE DB.
У такому вигляді цей шифр є слабким, але його стійкість можна підсилити, якщо внести дві зміни:
- використовувати переставлений алфавіт усередині квадрату 5x5;
- застосувати до шифрованого тексту шифр перестановки.
Частково переставлений алфавіт іноді отримують за допомогою ключового слова, яке вписують в таблицю, а порожні місця, що залишилися, заповнюють невикористаними літерами алфавіту, крім J. Повторення літер в ключовому слові ігнорують.
Задача 5.12. Зашифруйте фразу HAPPY BIRTHDAY, використовуючи таблицю з ключовим словом THURSDAY та застосуйте до шифрованого тексту перестановку 5-1-4-2-3. Квадрат для шифрування подано у табл. 5.15 (задачу взято з [130, с.68]).
Таблиця 5.15
Квадрат для заміни з ключовим словом
A | B | C | D | E | |
A | T | H | U | R | S |
B | D | A | Y | B | C |
C | E | F | G | I | K |
D | L | M | N | O | P |
E | Q | V | W | X | Z |
Розв'язок. Шифрована фраза відкритого тексту HAPPY BIRTHDAY виглядає так:
ABBBD EDEBC BDCDA DAAAB ВАВВВ С.
Оскільки в перестановці беруть участь п'ять чисел, впишемо шифрований текст в таблицю з п'яти стовпців. Відмітимо, що один із стовпців повинен містити шість літер, оскільки довжина шифрованого тексту 26 знаків. Отримувач повідомлення повинен знати, які стовпці (якщо такі є) є «довгими». Про це необхідно домовитися заздалегідь. Не обмежуючи загальності, припустимо, що «довгі» стовпці мають в перестановці менші номери. Тому в даному прикладі єдиним «довгим» стовпцем виявляється стовпець, позначений цифрою «1» (тобто другий ліворуч). Вписуючи шифрований текст в таблицю перестановок, отримуємо табл. 5.16.
Таблиця 5.16
Таблиця перестановок
5 | 1 | 4 | 2 | 3 |
A | B | B | B | D |
E | D | E | B | C |
B | D | C | D | A |
D | A | A | A | B |
B | A | B | B | B |
. | C | . | . | . |
Остаточний варіант надаваного тексту виглядає так:
BDDAA CBBDA BDCAB BBECA BAEBD В.
У нім початкові пари диграфів розбиті, що значно ускладнює розкриття шифру. Ми можемо дуже просто приховати цей факт, перетворивши диграфи знову в монографи за допомогою того ж самого квадрата (табл. 5.16). В результаті отримуємо новий шифрований текст, що складається з монографів:
BLUAL BEАСЕ DVM.
Зауважимо, що перед повторним використанням квадрата застосування перестановки обов'язкове, оскільки інакше ми просто розшифруємо повідомлення!
МДПМ-шифри. Розглянутий метод можна було, строго кажучи, назвати системою «монограф-диграф-перестановка-монограф», скорочено МДПМ. У нім зв'язки між окремими літерами відкритого і шифрованого текстів дуже складні, оскільки кожну вихідну літеру замінюють парою літер, кожна з яких утворює диграф із літерою з деякої іншої пари, а він, у свою чергу, знову перетвориться в монограф.
Задача 5.13. Використовуючи метод МДПМ, зашифрувати 25-літерний алфавіт (літера J опущена) за допомогою квадрата 5x5 зі звичайним порядком розташування літер, а також перестановки 3-1-6-4-5-7-2-9-10-8 (задачу взято з [130, с.70]).
Розв'язок. «Відкритий текст» має вигляд: ABCDEFGHIKLMNOPQRSTUVWXYZ.
Після його перетворення по квадрату 5x5 (табл. 5.1), отримаємо:
АААВА CADAE BABBB CBDBE CACBC CCDCE DADBD CDDDE EAEBE CEDEE.
Вписуючи його в таблицю перестановок (табл. 5.17), отримаємо шифрований текст, що складається з диграфів
ААААА ABCDE ABCDE BBBBB ABCDE ABCDE ССССС ЕЕЕЕЕ DDDDD ABCDE
Таблиця 5.17
Таблиця перестановок
3 | 1 | 6 | 4 | 5 | 7 | 2 | 9 | 10 | 8 |
A | A | A | B | A | C | A | D | A | E |
B | A | B | B | B | C | B | D | B | E |
C | A | C | B | C | C | C | D | C | E |
D | A | D | B | D | C | D | D | D | E |
E | A | E | B | E | C | E | D | E | E |
з якого, провівши зворотне перетворення, отримаємо шифрований текст із монографів
AAAHU BOWGG BOVHU NNPZZ TTQHU.
Складно здогадатись, що тут шифрований 25-літерний алфавіт, записаний у звичному порядку.
Історичний факт. На початку 1918 р. німецьке верховне командування почало використовувати шифр, основою якого був квадрат 5x5. У ньому 25 літер алфавіту перетворювалися в диграфи, в яких використовувались лише літери A, D, F, G, X. У його модифікації використовувався квадрат 6x6, де було 11 додаткових знаків. Це давало можливість використовувати всі 26 літер алфавіту і 10 цифр. Цей шифр був відомий під назвою «шифр ADFGVX». Таким чином, кожна літера вихідного повідомлення, перетворювалася на пару літер, які потім розділялися і переставлялися згідно ключа, ключ мінявся щодня. Розкрити цей шифр було нелегко, однак французький криптоаналітик Жорж Пенвен (Georges Painvin) знайшов метод прочитання цього шифру за наявності декількох повідомлень з однаковим відкритим текстом на початку або в кінці. І хоча вдалося прочитати повідомлення тільки декількох днів, їх кількість в ті дні була великою, а зміст — особливо важливим. Писали, що «одне з повідомлень було прочитано так швидко, що крупна операція німецьких військ, про яку в ньому йшлося, була повністю зірвана» [130, сс.71-72].
Система «диграф-диграф». У шифрі простої заміни кожну окрему літеру алфавіту заміняють іншою окремою літерою. Подібно до цього, можна запропонувати систему, в якій кожен диграф замінюють двома літерами. Найбільш простий спосіб в даному випадку – скласти список всіх можливих дволітерних комбінацій та їх шифрованих еквівалентів. Для латинського алфавіту це буде 676(=26x26) комбінацій, наприклад:
АА=ТК, AB= LD, AC = ER..., ZX = DW, ZY = HB, ZZ=MS.
Але це означає необхідність мати два списки по 676 елементів кожен: один для шифрування, інший – для розшифрування. І хоча стійкість такої системи буде вища в порівнянні з простою заміною, користуватися нею незручно. Альтернативою цьому може бути використання квадрату диграфів, що містить тільки 25 літер алфавіту (для англійського, наприклад, – окрім J). При цьому диграфи шифрованого тексту виходять з диграфів відкритого тексту згідно певного правила
- 5.2.Основи криптоаналізу. Лінґвістичне дешифрування
Криптоаналіз – розділ криптології, що займається методами порушення конфіденційності і цілісності інформації без знання ключа [108, 114]. Застосування для криптоаналізу методів мовознавства називають лінґвістичним дешифруванням [89, с.82].
- 5.2.1.Розкриття шифру Цезара
Цезар зсував літери лише на три позиції, хоч міг би зсувати їх на будь-яку кількість позицій від 1 до 25 (для латинського алфавіту). Тому шифр Юлія Цезара має 25 варіантів. Звідси випливає, як такий шифр можна розкрити: запишемо шифроване повідомлення, а під ним на 25 рядках виписуємо 25 варіантів, які отримують зсувом кожної літери на 1, 2, 3, ..., 25 позицій, відповідно. Один із цих рядків і буде містити початкове повідомлення.
Задача 5.14. Текст повідомлення, шифрованого за системою Юлія Цезара, має вигляд XOPXC KJOVOZ. Необхідно дешифрувати повідомлення.
Розв’язок. Запишемо шифроване повідомлення та, в разі потреби, усі 25 його зсувів у стовпець, проставивши значення зсувів зліва від кожного рядка.
Зсув |
Повідомлення |
0 | VHFX TM HGVX |
1 | WIGY UN IHWY |
2 | XJHZ VO JIXZ |
3 | YKIA WP KJYA |
4 | ZLJB XQ LKZB |
5 | AMKC YR MLAC |
6 | BNLD ZS NMBD |
7 | COME AT ONCE |
Ми бачимо, що у шифрі використаний зсув на 19 позицій, оскільки шифрований текст, будучи зсунутий на 7 позицій вперед, дає відкритий текст. Це означає, що для отримання шифрованого тексту відкритий текст треба зсунути на (26-7)=19 позицій. Ймовірно (якщо припускати, що при кожному іншому зсуві не отримують змістовне повідомлення), що ми правильно дешифрували це повідомлення, і тому немає необхідності виписувати інші варіанти. Таке припущення про поодинчість розв’язку достатньо обумовлене, коли шифроване повідомлення містить понад 5-6 знаків; але якщо повідомлення досить коротке, можливих розв’язків може бути декілька. Приведемо приклад неоднозначного розв’язку [130, с. 18]. Нехай шифрований текст виглядає так: MSG (це схоже на абревіатуру англійського слова «message» – «повідомлення»). Далі подано два можливих розв’язки, але звідси зовсім не випливає, що такий шифр є простим способом перекладу французького тексту на англійську мову.
Зсув |
Повідомлення |
0 | MSG |
1 | OUI |
2 | YES |
- 5.2.2.Розкриття шифру заміни
Спочатку ми розглянемо спосіб, яким не треба розкривати шифр простої заміни – спосіб повного перебирання всіх варіантів. Літері А відкритого тексту можна поставити у відповідність будь-яку із 26 латинських літер, літері В – будь-яку із 25, що залишилися, літері С – будь-яку із 24, що залишилися, і т. ін. Тому кількість можливих алфавітів простої заміни дорівнює 26´25´…´ 2 ´ 1, тобто 26! Це число більше за , тому навіть комп’ютер, здатний кожну секунду перевіряти тисячу мільйонів (тобто ) алфавітів, затратить на цю задачу декілька сотень мільйонів років. Метод повного перебору, що дає задовільні результати з шифром Юлія Цезара (в ньому всього 25 варіантів), тут зовсім не придатний. Практичний метод розкриття шифру такого типу називають частотним аналізом та полягає в подальшому (табл. 5.18) [108; 110, с. 75; 114; 130].
Таблиця 5.18
Етапи розкриття шифру
№ етапу | Опис етапу |
1. | Скласти таблицю частоти знаків, що зустрічаються у шифрованому тексті, тобто підрахувати, скільки разів там зустрічається кожна з літер відповідного алфавіту. |
2. | Визначити, який знак у шифрованому тексті відповідає пропуску. Якщо шифроване повідомлення не дуже коротке, то зробити це просто, оскільки пропуски та інші символи пунктуації складають від 15% до 20% знаків звичайного англійського чи українського тексту (для різних мов, вочевидь, ці межі є змінними), причому більша частина цих символів припадає власне на пропуски. Ймовірно, що найчастіше вживаний знак шифрованого тексту як раз відповідає пропуску. І що більше, якщо це припущення справедливе, то знаки, які відповідають пропускам, мають зустрічатися у шифрованому тексті через кожні декілька літер, без значних проміжків між ними. |
3. | Визначивши знак алфавіту заміни, що відповідає пропуску, переписати шифрований текст, замінивши в ньому ці знаки пропусками. Тепер він складається із множини окремих «слів» тої самої довжини і структури, що і слова відкритого тексту. Так, наприклад, якщо у слові відкритого тексту повторюється яка-небудь літера, те ж саме буде і в його шифрованій версії. |
4. | Визначити шифровані позначення для деяких літер, що часто зустрічаються. Разом вони зазвичай складають понад 40% всього тексту. На цьому етапі необхідно використати таблицю частот появи знаків відповідної мови (табл. А.3-А.5 додатку А), а також таблиці ймовірностей появ біграфів, триграфів та поліграфів мови (табл. А.7 додатку А). Ці таблиці необхідно трактувати тільки як підказки: якщо для частовживаних літер їх частоти мало змінюються від вибірки до вибірки, то частоти рідковживаних літер містять мало інформації. |
5. | Коли таким чином будуть відновлені деякі фраґменти слів, треба шукати короткі слова, в яких невідомі 1-2 літери. Наприклад, якщо йдеться про англійську мову, а у відновлюваному тексті літери Т і Е вже відомі, і якщо зустрілося слово довжиною у три знаки із невідомою літерою між літерами Т і Е, то це, найімовірніше, слово ТНЕ. Далі можна розставити такі слова, як THIS, THAT, THERE, THEN, отримуючи нові відповідності між знаками відкритого і шифрованого тексту. Також варто користуватися частотними словниками відповідних стилів мови. Наприклад, для наукового стилю сучасної української мови найбільш частотними словами є В/У, І/Й/ТА, НА, ЩО (спол.), БУТИ, ДЛЯ [22]. |
6. | Закінчити розкриття шифру, використовуючи граматичну та контекстну інформацію. |
Задача 5.15. Отримано шифроване повідомлення із 286 символів. Відомо, що система шифрування являє собою шифр простої заміни, шифрується уривок українського літературного твору, всі знаки пунктуації іґнорують. Необхідно відновити відкритий текст повідомлення. Шифрований текст має вигляд:
UGPAKWBNHVTZUGDVZTD3MG5V2HUKVUHVCTWTZV4G2TJUK4JBVT6HVA3WTV41FG57
UK2V5KZDFQJJ82V8V7VSG57ZQV55G7G5V4HAHV4G2TZT4JGJUBT0VW0ZQUT0VUKDTW
QVUHVU3ZQ548VUKDTWQVUHVU3ZB935G5VUGV4G2TJKV6HV5KZF8Z7HUU8VAHSVDKU
6H5T9TVJHF2KU3VUHVW8DGWTVPNT5VUGVUBT9TV45KZT2TVG7V1TDQV5WG4UQPV9T
WT4V1TMG5V5QZG5GJQ48VM37Q2
Розв’язок.
- Спочатку складемо таблицю частот появи знаків (табл. 5.19) та відсортуємо її за спаданням кількості появ знаків.
Таблиця 5.19.
Частоти появи знаків у шифрованому тексті
V | 43 | H | 14 | W | 10 | 7 | 7 | 9 | 4 | 0 | 3 |
T | 26 | Z | 13 | J | 9 | 3 | 7 | P | 3 | S | 2 |
U | 23 | K | 12 | 2 | 9 | B | 5 | M | 3 | N | 2 |
G | 20 | 4 | 12 | D | 8 | F | 4 | 6 | 3 | C | 1 |
5 | 18 | Q | 11 | 8 | 7 | A | 4 | 1 | 3 |
- Оскільки літера V зустрічається 43 рази у тексті з 256 знаків, тобто частіше за інші знаки, то можна зробити висновок, що знак V шифрованого тексту відповідає знаку пропуску.
- По всьому шифрованому тексті замінимо V на пропуски, і отримаємо текст із відомими довжинами слів. Усього слів у повідомленні 45, пронумеруємо їх, щоб далі було зручніше на них посилатися.
1 | 2 | 3 | 4 | 5 | 6 |
UGPAKWBNH | TZUGD | ZTD3MG5 | 2HUK | UH | CTWTZ |
7 | 8 | 9 | 10 | 11 | 12 |
4G2TJUK4JB | T6H | A3WT | 41FG57UK2 | 5KZDFQJJ82 | 8 |
13 | 14 | 15 | 16 | 17 | 18 |
7 | SG57ZQ | 55G7G5 | 4HAH | 4G2TZT4JGJUBT0 | W0ZQUT0 |
19 | 20 | 21 | 22 | 23 | 24 |
UKDTWQ | UH | U3ZQ548 | UKDTWQ | UH | U3ZB935G5 |
25 | 26 | 27 | 28 | 29 | 30 |
UG | 4G2TJK | 6H | 5KZF8Z7HUU8 | AHS | DKU6H5T9T |
31 | 32 | 33 | 34 | 35 | 36 |
JHF2KU3 | UH | W8DGWT | PNT5 | UG | UBT9T |
37 | 38 | 39 | 40 | 41 | 42 |
45KZT2T | G7 | 1TDQ | 5WG4UQP | 9TWT4 | 1TMG5 |
43 | 44 | ||||
5QZG5GJQ48 | M37Q2 |
В отриманому тексті розподіл довжин слів загалом більш-менш подібний на звичайну мову. Отже, наше припущення, що літера V відповідає пропуску, підтверджується.
- Наступна за частотою появи у шифрованому тексті є знак Т – він з’являється 26 разів, тому припустимо, що це літера О відкритого тексту. Тоді шифрований текст виглядатиме так.
1 | 2 | 3 | 4 | 5 | 6 |
UGPAKWBNH | TZUGD | ZTD3MG5 | 2HUK | UH | CTWTZ |
--------- | О---- | -О----- | ---- | -- | -О-О- |
7 | 8 | 9 | 10 | 11 | 12 |
4G2TJUK4JB | T6H | A3WT | 41FG57UK2 | 5KZDFQJJ82 | 8 |
---О------ | О-- | ---О | --------- | ---------- | - |
13 | 14 | 15 | 16 | 17 | 18 |
7 | SG57ZQ | 55G7G5 | 4HAH | 4G2TZT4JGJUBT0 | W0ZQUT0 |
- | ------ | ------ | ---- | ---О-О------О- | -----О- |
19 | 20 | 21 | 22 | 23 | 24 |
UKDTWQ | UH | U3ZQ548 | UKDTWQ | UH | U3ZB935G5 |
---О-- | -- | ------- | ---О-- | -- | --------- |
25 | 26 | 27 | 28 | 29 | 30 |
UG | 4G2TJK | 6H | 5KZF8Z7HUU8 | AHS | DKU6H5T9T |
-- | ---О-- | -- | ----------- | --- | ------О-О |
31 | 32 | 33 | 34 | 35 | 36 |
JHF2KU3 | UH | W8DGWT | PNT5 | UG | UBT9T |
------- | -- | -----О | --О- | -- | --О-О |
37 | 38 | 39 | 40 | 41 | 42 |
45KZT2T | G7 | 1TDQ | 5WG4UQP | 9TWT4 | 1TMG5 |
----О-О | -- | -О-- | ------ | -О-О- | -О--- |
43 | 44 | ||||
5QZG5GJQ48 | M37Q2 | ||||
---------- | ----- |
Наступним за частотою у шифрованому тексті є знаки U (23 появи) та G (20 появ). Згідно [115], третє та четверте місце за частотою появи літер української мови посідають літери Н та А. Припустимо, що знаки U і G відповідають Н і А (або А і Н). Спробуємо символами * та + замінити у шифрованому тексті знаки G та U, відповідно. Тоді частково встановлене повідомлення виглядає так.
1 | 2 | 3 | 4 | 5 | 6 |
UGPAKWBNH | TZUGD | ZTD3MG5 | 2HUK | UH | CTWTZ |
*+------- | О-*+- | -О---+- | --*- | *- | -О-О- |
7 | 8 | 9 | 10 | 11 | 12 |
4G2TJUK4JB | T6H | A3WT | 41FG57UK2 | 5KZDFQJJ82 | 8 |
-+-О-*---- | О-- | ---О | ---+--*-- | ---------- | - |
13 | 14 | 15 | 16 | 17 | 18 |
7 | SG57ZQ | 55G7G5 | 4HAH | 4G2TZT4JGJUBT0 | W0ZQUT0 |
- | -+---- | --+-+- | ---- | -+-О-О--+-*-О- | ----*О- |
19 | 20 | 21 | 22 | 23 | 24 |
UKDTWQ | UH | U3ZQ548 | UKDTWQ | UH | U3ZB935G5 |
*--О-- | *- | *------ | *--О-- | *- | *------+- |
25 | 26 | 27 | 28 | 29 | 30 |
UG | 4G2TJK | 6H | 5KZF8Z7HUU8 | AHS | DKU6H5T9T |
*+ | -+-О-- | -- | --------**- | --- | --*---О-О |
31 | 32 | 33 | 34 | 35 | 36 |
JHF2KU3 | UH | W8DGWT | PNT5 | UG | UBT9T |
-----*- | *- | ---+-О | --О- | *+ | *-О-О |
37 | 38 | 39 | 40 | 41 | 42 |
45KZT2T | G7 | 1TDQ | 5WG4UQP | 9TWT4 | 1TMG5 |
----О-О | +- | -О-- | --+-*-- | -О-О- | -О-+- |
43 | 44 | ||||
5QZG5GJQ48 | M37Q2 | ||||
---+-+---- | ----- |
Серед отриманого тексту звертають на себе увагу подвоєння символів ** (у слові 28) та чотириразова поява біграфів *+ (у словах 1, 2, а також слова 25, 35). Тобто знайдено або подвоєння літер НН та чотири рази з’являється біграф НА (з них два – окремі слова) у шифрованому тексті (якщо позначення літер символами * та + було вірне), або знайдено подвоєння літер АА та чотири рази з’являється біграф АН (з них два – окремі слова) у шифрованому тексті (якщо позначення літер символами * та + було не вірне). Очевидно, що ймовірність зустріти подвоєння літер НН в українському тексті набагато більша, ніж імовірність зустріти АА. Також більшою є імовірність появи біграфа НА, ніж АН. Тому наше припущення про те, що літера U шифрованого тексту є літерою Н в оригіналі, а літера G – літерою А справджується. Внесемо відповідні заміни у відкритий текст.
1 | 2 | 3 | 4 | 5 | 6 |
UGPAKWBNH | TZUGD | ZTD3MG5 | 2HUK | UH | CTWTZ |
НА------- | О-НА- | -О---А- | --Н- | Н- | -О-О- |
7 | 8 | 9 | 10 | 11 | 12 |
4G2TJUK4JB | T6H | A3WT | 41FG57UK2 | 5KZDFQJJ82 | 8 |
-А-О-Н---- | О-- | ---О | ---А--Н-- | ---------- | - |
13 | 14 | 15 | 16 | 17 | 18 |
7 | SG57ZQ | 55G7G5 | 4HAH | 4G2TZT4JGJUBT0 | W0ZQUT0 |
- | -А---- | --А-А- | ---- | -А-О-О--А-Н-О- | ----НО- |
19 | 20 | 21 | 22 | 23 | 24 |
UKDTWQ | UH | U3ZQ548 | UKDTWQ | UH | U3ZB935G5 |
Н--О-- | Н- | Н------ | Н--О-- | Н- | Н------А- |
25 | 26 | 27 | 28 | 29 | 30 |
UG | 4G2TJK | 6H | 5KZF8Z7HUU8 | AHS | DKU6H5T9T |
НА | -А-О-- | -- | --------НН- | --- | --Н---О-О |
31 | 32 | 33 | 34 | 35 | 36 |
JHF2KU3 | UH | W8DGWT | PNT5 | UG | UBT9T |
-----Н- | Н- | ---А-О | --О- | НА | Н-О-О |
37 | 38 | 39 | 40 | 41 | 42 |
45KZT2T | G7 | 1TDQ | 5WG4UQP | 9TWT4 | 1TMG5 |
----О-О | А- | -О-- | --А-Н-- | -О-О- | -О-А- |
43 | 44 | ||||
5QZG5GJQ48 | M37Q2 | ||||
---А-А---- | ----- |
- Розглянемо короткі слова, де бракує 1-2 літер. Наприклад, для другого слова відкритого тексту (О.НА.) варто проаналізувати словники, які ж саме існують слова з п’яти літер, де першою О, а третьою та четвертою – НА. Знайдемо, що слів, які б відповідали заданій схемі, є три: ОдНАк, ОзНАк, ОсНАч. Проаналізуємо отримані результати. На другому місці слова у шифрованому тексті є літера є літера Z, абсолютна частота якої є досить високою і складає 13. В українській мові ймовірність літери Д складає 0,028, літери З – 0,018, літери С – 0,033, тобто найбільш частотною є літера С, далі – Д і З. Також біграф ОС є більш імовірною, ніж ОД чи ОЗ. Тому, попри те, що ймовірність появи біграфа АК більша за ймовірність появи біграфа АЧ, можна припустити, що слово, яке ми підбираємо, не ОЗНАК. Серед двох слів, які продовжуємо розглядати, слово ОДНАК має значно більшу ймовірність появи, ніж маловживане слово ОСНАЧ. Також на користь слова ОДНАК свідчить те, що ймовірність появи літери К є більшою за ймовірність появи літери Ч. Тому наступним нашим припущенням буде те, що шуканим словом є ОДНАК, що дає нам можливі літери Д замість Z та К замість D.
Розглянемо тепер слово з двох літер, що починається на Н (таких є чотири – 5, 20, 23, 32). Найбільш частотними словами, що відповідають схемі, є НЕ/НИ, НА (його відкидаємо, бо літера А вже відкрита), НУ та НЕ/НЄ [22-25]. Для нашого конкретного шифрованого тексту другим знаком слова є Н, абсолютна частота якого досить висока (14 появ у шифрованому тексті), тому припустимо, що знак Н шифрованого тексту відповідає літері Е шуканого відкритого тексту. Внесемо відповідні літери.
1 | 2 | 3 | 4 | 5 | 6 |
UGPAKWBNH | TZUGD | ZTD3MG5 | 2HUK | UH | CTWTZ |
НА------Е | ОДНАК | ДОК--А- | -ЕН- | НЕ | -О-ОД |
7 | 8 | 9 | 10 | 11 | 12 |
4G2TJUK4JB | T6H | A3WT | 41FG57UK2 | 5KZDFQJJ82 | 8 |
-А-О-Н---- | О-Е | ---О | ---А--Н-- | --ДК------ | - |
13 | 14 | 15 | 16 | 17 | 18 |
7 | SG57ZQ | 55G7G5 | 4HAH | 4G2TZT4JGJUBT0 | W0ZQUT0 |
- | -А--Д- | --А-А- | -Е-Е | -А-ОДО--А-Н-О- | --Д-НО- |
19 | 20 | 21 | 22 | 23 | 24 |
UKDTWQ | UH | U3ZQ548 | UKDTWQ | UH | U3ZB935G5 |
Н-КО-- | НЕ | Н-Д---- | Н-КО-- | НЕ | Н-Д----А- |
25 | 26 | 27 | 28 | 29 | 30 |
UG | 4G2TJK | 6H | 5KZF8Z7HUU8 | AHS | DKU6H5T9T |
НА | -А-О-- | -Е | --Д--Д-ЕНН- | -Е- | К-Н-Е-О-О |
31 | 32 | 33 | 34 | 35 | 36 |
JHF2KU3 | UH | W8DGWT | PNT5 | UG | UBT9T |
-Е---Н- | НЕ | --КА-О | --О- | НА | Н-О-О |
37 | 38 | 39 | 40 | 41 | 42 |
45KZT2T | G7 | 1TDQ | 5WG4UQP | 9TWT4 | 1TMG5 |
---ДО-О | А- | -ОК- | --А-Н-- | -О-О- | -О-А- |
43 | 44 | ||||
5QZG5GJQ48 | M37Q2 | ||||
--ДА-А---- | ----- |
Розглянемо тепер двічі повторюваний блок у шифрованому тексті – слова 19 та 22, частина слова вже розшифрована (Н.КО..). Згідно словників, цим словом може бути НаКОли, НеКОли, НиКОни, НіКОли, НіКОль. Звернемо увагу на останню літеру слова: це або И, або Ь. Імовірність появи для літери И є значно вищою, ніж для літери Ь, літера И є однією із п’яти-шести найбільш частотних літер української мови. У шифрованому тексті літера Q також належить до п’ятірки найбільш частотних, тому ствердимо, що цій літері в шуканому тексті відповідає И.
Передостанньою літерою шуканого слова може бути Л або Н, проте слово НИКОНИ (третій день свят) є рідковживаним, тому припустимо, що передостанньою літерою шуканого слова буде Л. Другою літерою шуканого слова, таким чином, може бути А, Е або І. Пам’ятаємо, що А та Е уже відкриті, тому шукана літера – І.
Внесемо знайдені літери: замість Q – И, замість W – Л, замість K – І.
1 | 2 | 3 | 4 | 5 | 6 |
UGPAKWBNH | TZUGD | ZTD3MG5 | 2HUK | UH | CTWTZ |
НА--ІЛ--Е | ОДНАК | ДОК--А- | -ЕНІ | НЕ | -ОЛОД |
7 | 8 | 9 | 10 | 11 | 12 |
4G2TJUK4JB | T6H | A3WT | 41FG57UK2 | 5KZDFQJJ82 | 8 |
-А-О-НІ--- | О-Е | --ЛО | ---А--НІ- | -ІДК-И---- | - |
13 | 14 | 15 | 16 | 17 | 18 |
7 | SG57ZQ | 55G7G5 | 4HAH | 4G2TZT4JGJUBT0 | W0ZQUT0 |
- | -А--ДИ | --А-А- | -Е-Е | -А-ОДО--А-Н-О- | Л-ДИНО- |
19 | 20 | 21 | 22 | 23 | 24 |
UKDTWQ | UH | U3ZQ548 | UKDTWQ | UH | U3ZB935G5 |
НІКОЛИ | НЕ | Н-ДИ--- | НІКОЛИ | НЕ | Н-Д----А- |
25 | 26 | 27 | 28 | 29 | 30 |
UG | 4G2TJK | 6H | 5KZF8Z7HUU8 | AHS | DKU6H5T9T |
НА | -А-О-І | -Е | -ІД--Д-ЕНН- | -Е- | КІН-Е-О-О |
31 | 32 | 33 | 34 | 35 | 36 |
JHF2KU3 | UH | W8DGWT | PNT5 | UG | UBT9T |
-Е--ІН- | НЕ | Л-КАЛО | --О- | НА | Н-О-О |
37 | 38 | 39 | 40 | 41 | 42 |
45KZT2T | G7 | 1TDQ | 5WG4UQP | 9TWT4 | 1TMG5 |
--ІДО-О | А- | -ОКИ | -ЛА-НИ- | -ОЛО- | -О-А- |
43 | 44 | ||||
5QZG5GJQ48 | M37Q2 | ||||
-ИДА-А-И-- | ---И- |
Із першої п’ятірки найбільш частотних літер шифрованого тексту нерозкритою залишився знак – цифра 5, якому, згідно з частотами появи літер української мови, може відповідати літера В або Т. Спробуємо знайти підтвердження цього. Так, слово .ІДК.И…. (11), вочевидь, не може починатись з літери Т, але цілком логічним є літера В на початку слова. Більше того, наприкінці слова знаходимо подвоєння літеру шифрованому тексті, і аналізованим словом ВІДК.И…. цілком може виявитись слово ВІДКРИТТЯМ. Тому спробуємо замінити цифру 5 у шифрованому тексті на В, F – літерою Р, J – Т, 8 - Я, 2 – М. Тоді сьоме слово .АМОТНІ.Т. є, очевидно, словом САМОТНІСТЬ, п’ятнадцяте слово ВВА.АВ – ВВАЖАВ, вісімнадцяте слово Л.ДИНО. – ЛЮДИНОЮ.
1 | 2 | 3 | 4 | 5 | 6 |
UGPAKWBNH | TZUGD | ZTD3MG5 | 2HUK | UH | CTWTZ |
НА--ІЛЬ-Е | ОДНАК | ДОК--АВ | МЕНІ | НЕ | -ОЛОД |
7 | 8 | 9 | 10 | 11 | 12 |
4G2TJUK4JB | T6H | A3WT | 41FG57UK2 | 5KZDFQJJ82 | 8 |
САМОТНІСТЬ | О-Е | --ЛО | С-РА-ВЖНІМ | ВІДКРИТТЯМ | Я |
13 | 14 | 15 | 16 | 17 | 18 |
7 | SG57ZQ | 55G7G5 | 4HAH | 4G2TZT4JGJUBT0 | W0ZQUT0 |
Ж | -АВЖДИ | ВВАЖАВ | СЕ-Е | САМОДОСТАТНЬОЮ | ЛЮДИНОЮ |
19 | 20 | 21 | 22 | 23 | 24 |
UKDTWQ | UH | U3ZQ548 | UKDTWQ | UH | U3ZB935G5 |
НІКОЛИ | НЕ | Н-ДИВСЯ | НІКОЛИ | НЕ | Н-ДЬ--ВАВ |
25 | 26 | 27 | 28 | 29 | 30 |
UG | 4G2TJK | 6H | 5KZF8Z7HUU8 | AHS | DKU6H5T9T |
НА | САМОТІ | -Е | ВІДРЯДЖЕННЯ | -Е- | КІН-ЕВОГО |
31 | 32 | 33 | 34 | 35 | 36 |
JHF2KU3 | UH | W8DGWT | PNT5 | UG | UBT9T |
ТЕРМІН- | НЕ | ЛЯКАЛО | --ОВ | НА | НЬО-О |
37 | 38 | 39 | 40 | 41 | 42 |
45KZT2T | G7 | 1TDQ | 5WG4UQP | 9TWT4 | 1TMG5 |
СВІДОМО | АЖ | -ОКИ | ВЛАСНИ- | -ОЛОС | -О-АВ |
43 | 44 | ||||
5QZG5GJQ48 | M37Q2 | ||||
ВИДАВАТИСЯ | --ЖИМ |
- Тепер літери, що залишилися, легко відновити. Повністю алфавіт розшифрування (якщо позначити пропуск знаком _) виглядає наступним чином:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | F | G | H | J | K | M | N | P | Q | S | T | U | V | W | Z |
Ю | П | М | У | С | В | Ц | Ж | Я | Г | Б | Ь | Х | К | Р | А | Е | Т | І | Ч | Ш | Й | И | З | О | Н | _ | Л | Д |
Алфавіт шифрування, яким користується відправник, для отримання шифрованого тексту із відкритого, є, звичайно, його інверсією:
А | Б | В | Г | Д | Е | Ж | З | И | І | Й | К | Л | М | Н | О | П | Р | С | Т | У | Х | Ц | Ч | Ш | Ь | Ю | Я | _ |
G | A | 5 | 9 | Z | H | 7 | S | Q | K | P | D | W | 2 | U | T | 1 | F | 4 | J | 3 | C | 6 | M | N | B | 0 | 8 | V |
Початкове повідомлення виглядало наступним чином:
НАЙБIЛЬШЕ, ОДНАК, ДОКУЧАВ МЕНI НЕ ХОЛОД. САМОТНIСТЬ. ОЦЕ БУЛО СПРАВЖНIМ ВIДКРИТТЯМ. Я Ж ЗАВЖДИ ВВАЖАВ СЕБЕ САМОДОСТАТНЬОЮ ЛЮДИНОЮ, НIКОЛИ НЕ НУДИВСЯ, НIКОЛИ НЕ НУДЬГУВАВ НА САМОТI. ЦЕ ВIДРЯДЖЕННЯ БЕЗ КIНЦЕВОГО ТЕРМIНУ НЕ ЛЯКАЛО, ЙШОВ НА НЬОГО СВIДОМО. АЖ ПОКИ ВЛАСНИЙ ГОЛОС ПОЧАВ ВИДАВАТИСЯ ЧУЖИМ.
(Вдовиченко Г. Тамдевін. – К. : Нора-Друк, 2009, – 240 с.)
Задача 5.16. Отримано шифроване повідомлення із 53 п’ятизначних груп. Відомо, що система шифрування являє собою шифр простої заміни, пропуски у відкритому тексті замінюють на літеру Z, а всі інші знаки пунктуації іґнорують. Необхідно відновити відкритий текст повідомлення (задачу взято з [130, с.23]).
Шифрований текст має вигляд:
MJZYB | LGESE | CNCMQ | YGXYS | PYZDZ | PMYGI | IRLLC |
PAYCK | YKGWZ | MCWZK | YFRCM | ZYVCX | XZLZP | MYXLG |
WYTJS | MYGPZ | YWCAJ | MYCWS | ACPZY | XGLYZ | HSWBN |
ZYXZT | YTGRN | VYMJC | POYMJ | SMYCX | YMJZL | ZYSLZ |
YMTZP | MQYMJ | LZZYB | ZGBNZ | YCPYS | YLGGW | YMJZP |
YMJZL | ZYCKY | SPYZD | ZPKYI | JSPIZ | YMJSM | YMJZL |
ZYSLZ | YMTY | GXYMJ | ZWYTC | MJYMJ | ZYKSW | ZYECL |
MJVSQ | YERMY | MJCKY | CKYKG |
Розв’язок.
- Спочатку складемо таблицю частот появи знаків (табл. 5.20).
Таблиця 5.20
Частоти появи знаків у шифрованому тексті
А | 3 | Е | 4 | I | 4 | M | 27 | Q | 3 | U | 0 | Y | 49 |
В | 4 | F | 1 | J | 17 | N | 4 | R | 4 | V | 3 | Z | 33 |
C | 18 | G | 14 | K | 9 | O | 1 | S | 14 | W | 19 | ||
D | 2 | H | 1 | L | 14 | P | 13 | T | 6 | X | 8 |
- Оскільки літера Y зустрічається 49 разів у тексті з 265 знаків, тобто частіше за інші знаки (18% тексту), то можна зробити висновок, що знак Y шифрованого тексту відповідає знаку пропуску. Далі за Y за частотою вживання ідуть літери Z і М, тому позначимо їх як кандидатури на місце літер Е та Т, або Т і Е.
- По всьому шифрованому тексті замінимо Y на пропуски, опускаючи при цьому пропуски між п’ятизначними групами (вони не містять жодної інформації), і отримаємо текст із відомими довжинами слів. Загальна кількість слів у повідомленні дорівнює 50. Пронумеруємо їх, щоб далі було зручніше на них посилатися.
1 | 2 | 3 | 4 | 5 | 6 |
MJZ | BLGESECNCMQ | GX | SP | ZDZPM | GIIRLLCPA |
7 | 8 | 9 | 10 | 11 | 12 |
CK | KGWZMCWZK | FRCMZ | VCXXZLZPM | XLGW | TJSM |
13 | 14 | 15 | 16 | 17 | 18 |
GPZ | WCAJM | CWSACPZ | XGL | ZHSWBNZ | XZT |
19 | 20 | 21 | 22 | 23 | 24 |
TGRNV | MJCPO | MJSM | CX | MJZLZ | SLZ |
25 | 26 | 27 | 28 | 29 | 30 |
MTZPMQ | MJLZZ | BZGBNZ | CP | S | LGGW |
31 | 32 | 33 | 34 | 35 | 36 |
MJZP | MJZLZ | CK | SP | ZDZPK | IJSPIZ |
37 | 38 | 39 | 40 | 41 | 42 |
MJSM | MJZL Z | SLZ | MTG | GX | MJZW |
43 | 44 | 45 | 46 | 47 | 48 |
TCMJ | MJZ | KSWZ | ECLMJVSQ | ERM | MJCK |
49 | 50 | ||||
CK | KG |
В отриманому тексті велика кількість коротких слів, середня довжина слова (для англійської мови) міститься в інтервалі від 4 до 5, а сам розподіл довжин слів загалом більш-менш подібний на звичайну мову. Отже, наше припущення, що літера Y відповідає пропуску, підтверджується.
- При розгляданні коротких слів виясняють наступне:
- слово довжиною 1 тільки одне (№ 29), складається з літери S, тому можна припустити, що це або А, або І.
- слів довжиною 2 зустрілося лише 10; одне з них (СК) зустрілося 3 рази (7, 33, 49), а два інших по два рази – GX (3, 41) і SP (4, 34);
- слів довжиною 3 всього 11, із них два зустрілися по два рази: MJZ (1, 44) і SLZ (24, 39).
Оскільки ми вже припускали, що знаки Z і М відповідають Е і Т (або Т і Е), то триграф MJZ перетвориться в Е?Т або Т?Е. Оскільки він зустрівся двічі, то ймовірно це слово ТНЕ, так що знаки М, J і Z – це, відповідно, літери Т, Н і Е. У шифрованому тексті є ще декілька слів, що містять в собі М, J і Z, в тому числі:
Звідси робимо висновок, що знаку L відповідає R, знаку S відповідає А, а знаку W відповідає М або N.
Оскільки слово 26 – це ТНRЕЕ, то необхідно перевірити, чи не є слово під номером 25 чисельником. У шифрованому вигляді воно виглядає як MTZPMQ, і завдяки вже відомим літерам записують у відкритому вигляді як Т?Е?Т?, що схоже на ТWЕNТY. Якщо це припущення вірне, то знаки T, P і Q – це, відповідно, літери W, N і Y, і тим самим для знаку W ліквідується невизначеність – це літера М.
Нами вже встановлені відкриті еквіваленти для дев’яти символів шифрованого тексту: J, L, M, P, Q, S, W, Y i Z. Їм відповідають у відкритому тексті, відповідно, H, R, T, N, Y, A, M, пропуск і Е. Ці дев’ять знаків разом покривають понад 60% тексту, тому знову випишемо текст, проставляючи відкриті еквіваленти вже відомих знаків шифрованого тексту, і проаналізуємо відповідний текст знову.
Зробивши це, можна встановити ще декілька відповідностей між знаками відкритого та шифрованого тексту. Слово 30, вже частково дешифроване як R..M, містить всередині два однакових знаки, і отже, це може бути тільки RООM, тому знак G відповідає О відкритого тексту. Відповідно, слово під номером 50 (у шифрованому тексті KG) у відкритому вигляді тепер виглядає .О, і тому знак К відповідає або S, або D, оскільки нам уже відомо, що це не N і не Т. Слова під номерами 48 і 49 (MJCK та CK) частково дешифровані як ТН.S і .S, і звідси ми робимо висновок, що знак С – це літера І. Оскільки знаки С і G зустрічалися у шифрованому тексті 18 і 14 разів, відповідно, то вони мають відповідати частовживаним літерам. Тому літери І та О сюди добре надаються, що ви вже зауважили зі сказаного вище. Підставляючи І, О та S замість С, G та К у частково встановлений текст, отримаємо:
1 | 2 | 3 | 4 | 5 | 6 |
MJZ | BLGESECNCMQ | GX | SP | ZDZPM | GIIRLLCPA |
THE | .RO.A.I.IT. | O. | AN | E.ENT | O…RRIN. |
7 | 8 | 9 | 10 | 11 | 12 |
CK | KGWZMCWZK | FRCMZ | VCXXZLZPM | XLGW | TJSM |
IS | SOMETIMES | ..ITE | .I..ERENT | .ROM | .HAT |
13 | 14 | 15 | 16 | 17 | 18 |
GPZ | WCAJM | CWSACPZ | XGL | ZHSWBNZ | XZT |
ONE | MI.HT | IMA.INE | .OR | E.AM..E | .E. |
19 | 20 | 21 | 22 | 23 | 24 |
TGRNV | MJCPO | MJSM | CX | MJZLZ | SLZ |
WO… | THIN. | THAT | I. | THERE | ARE |
25 | 26 | 27 | 28 | 29 | 30 |
MTZPMQ | MJLZZ | BZGBNZ | CP | S | LGGW |
TWENTY | THREE | .EO..E | IN | A | ROOM |
31 | 32 | 33 | 34 | 35 | 36 |
MJZP | MJZLZ | CK | SP | ZDZPK | IJSPIZ |
THEN | THERE | IS | AN | E.ENS | ..AN.E |
37 | 38 | 39 | 40 | 41 | 42 |
MJSM | MJZL Z | SLZ | MTG | GX | MJZW |
THAT | THERE | ARE | TWO | O. | THEM |
43 | 44 | 45 | 46 | 47 | 48 |
TCMJ | MJZ | KSWZ | ECLMJVSQ | ERM | MJCK |
.ITH | THE | SAME | .IRTH.A. | ..T | THIS |
49 | 50 | ||||
CK | KG | ||||
IS | SO |
Тепер літери, що залишилися, легко відновити. Повністю алфавіт розшифрування (якщо позначити пропуск знаком _) виглядає наступним чином:
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
G P I V B Q O X C H S R T L K N Y U A W . D M F _ E
Алфавіт шифрування, яким користується відправник, для отримання шифрованого тексту із відкритого, є, звичайно, його інверсією:
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
S E I V Z X A J C . O N W P G B F L K M R D T H Q Y
Аналізуючи задачу, зауважимо, що у шифрованому тексті відсутній знак U, а літер J i Z немає у відкритому тексті. Z використовують в ньому замість пропуску, і у шифрованому тексті перетворюють в Y, а літера J є відкритим еквівалентом знаку U шифрованого тексту і відсутня у початковому повідомленні, яке виглядає наступним чином:
THE PROBABILITY OF AN EVENT OCCURRING IS SOMETIMES QUITE DIFFERENT FROM WHAT ONE MIGHT IMAGINE FOR EXAMPLE FEW WOULD THINK THAT IF THERE ARE TWENTY THREE PEOPLE IN A ROOM THEN THERE IS AN EVENS CHANCE THAT THERE ARE TWO OF THEM WITH THE SAME BIRTHDAY BUT THIS IS SO.
Дешифрування цієї криптограми було частково засноване на статистичних властивостях мови, у даному випадку англійської (табл. А.5 додатку А). Проте іноді може зустрітися уривок із «нетипового» джерела, такого, як вузькоспеціалізований науковий текст, і загальні частотні характеристики літер виявляться спотвореними.
Задача 5.17. Шифрування фрази латинською мовою здійснено у два етапи. На першому етапі кожна літера заміняється на наступну в алфавітному порядку (остання Z заміняється на першу А). На другому етапі застосовується шифр простої заміни з невідомим ключем. Його застосування полягає в заміні кожної літери тексту, що шифрують, літерами того ж алфавіту згідно таблиці.
№ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
Літера | A | B | C | D | E | F | G | H | I | J | L | M |
№ | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
Літера | N | O | P | Q | R | S | T | U | V | X | Y | Z |
За даним шифротекстом
OSZJX FXRF YOQJSZ RAYFJ
треба відтворити відкрите повідомлення, якщо відомо, що для використаного (невідомого) ключа результат шифрування не залежить від порядку виконання вказаних етапів для будь-якого відкритого повідомлення. Пропуски в тексті поділяють слова [приклад узято із 140].
Розв’язок. Оскільки пропонується алфавіт з 24 літер, необхідно розглянути 24 варіанта різних зсувів. Початкове повідомлення визначається зсувом вліво (табл. 5.21) або зсувом вправо (табл. 5.22). Ускладнення, пов’язані із переходом Z в А, усуваються або переходом до остач при ділені на 24, або виписуванням після літери Z вдруге алфавіту AB…Z.
Таблиця 5.21
Зсув вліво
№ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | ||||
1. | O | S | Z | J | X | F | X | R | F | Y | O | Q | J | S | Z | R | A | Y | F | J | ||||
14 | 18 | 24 | 10 | 22 | 6 | 22 | 17 | 6 | 23 | 14 | 16 | 10 | 18 | 24 | 17 | 1 | 23 | 6 | 10 | |||||
2. | N | R | Y | I | V | E | V | Q | E | X | N | P | I | R | Y | Q | Z | X | E | I | ||||
13 | 17 | 23 | 9 | 21 | 5 | 21 | 16 | 5 | 22 | 13 | 15 | 9 | 17 | 23 | 16 | 24 | 22 | 5 | 9 | |||||
3. | M | Q | X | H | U | D | U | P | D | V | M | O | H | Q | X | P | Y | V | D | H | ||||
12 | 16 | 22 | 8 | 20 | 4 | 20 | 15 | 4 | 21 | 12 | 14 | 8 | 16 | 22 | 15 | 23 | 21 | 4 | 8 | |||||
4. | L | P | V | G | T | C | T | O | C | U | L | N | G | P | V | O | X | U | C | G | ||||
11 | 15 | 21 | 7 | 19 | 3 | 19 | 14 | 3 | 20 | 11 | 13 | 7 | 15 | 21 | 14 | 22 | 20 | 3 | 7 | |||||
5. | J | O | U | F | S | B | S | N | B | T | J | M | F | O | U | N | V | T | B | F | ||||
10 | 14 | 20 | 6 | 18 | 2 | 18 | 13 | 2 | 19 | 10 | 12 | 6 | 14 | 20 | 13 | 21 | 19 | 2 | 6 | |||||
6. | I | N | T | E | R | A | R | M | A | S | I | L | E | N | T | M | U | S | A | E | ||||
9 | 13 | 19 | 5 | 17 | 1 | 17 | 12 | 1 | 18 | 9 | 11 | 5 | 13 | 19 | 12 | 20 | 18 | 1 | 5 |
Таблиця 5.22
Зсув вправо
№ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | ||||
1. | O | S | Z | J | X | F | X | R | F | Y | O | Q | J | S | Z | R | A | Y | F | J | ||||
14 | 18 | 24 | 10 | 22 | 6 | 22 | 17 | 6 | 23 | 14 | 16 | 10 | 18 | 24 | 17 | 1 | 23 | 6 | 10 | |||||
2. | P | T | A | L | Y | G | Y | S | G | Z | P | R | L | T | A | S | B | Z | G | L | ||||
15 | 19 | 1 | 11 | 23 | 7 | 23 | 18 | 7 | 24 | 15 | 17 | 11 | 19 | 1 | 18 | 2 | 24 | 7 | 11 | |||||
3. | Q | U | B | M | Z | H | Z | T | H | A | Q | S | M | U | B | T | C | A | H | M | ||||
16 | 20 | 2 | 12 | 24 | 8 | 24 | 19 | 8 | 1 | 16 | 18 | 12 | 20 | 2 | 19 | 3 | 1 | 8 | 12 | |||||
4. | R | V | C | N | A | I | A | U | I | B | R | T | N | V | C | U | D | B | I | N | ||||
17 | 21 | 3 | 13 | 1 | 9 | 1 | 20 | 9 | 2 | 17 | 19 | 13 | 21 | 3 | 20 | 4 | 2 | 9 | 13 | |||||
5. | S | X | D | O | B | J | B | V | J | C | S | U | O | X | D | V | E | C | J | O | ||||
18 | 22 | 4 | 14 | 2 | 10 | 2 | 21 | 10 | 3 | 18 | 20 | 14 | 22 | 4 | 21 | 5 | 3 | 10 | 14 | |||||
6. | T | Y | E | P | C | L | C | X | L | D | T | V | P | Y | E | X | F | D | L | P | ||||
19 | 23 | 5 | 15 | 3 | 11 | 3 | 22 | 11 | 4 | 19 | 21 | 15 | 23 | 5 | 22 | 6 | 4 | 11 | 15 | |||||
7. | U | Z | F | Q | D | M | D | Y | M | E | U | X | Q | Z | F | Y | G | E | M | Q | ||||
20 | 24 | 6 | 16 | 4 | 12 | 4 | 23 | 12 | 5 | 20 | 22 | 16 | 24 | 6 | 23 | 7 | 5 | 12 | 16 | |||||
8. | V | A | G | R | E | N | E | Z | N | F | V | Y | R | A | G | Z | H | F | N | R | ||||
21 | 1 | 7 | 17 | 5 | 13 | 5 | 24 | 13 | 6 | 21 | 23 | 17 | 1 | 7 | 24 | 8 | 6 | 13 | 17 | |||||
9. | X | B | H | S | F | O | F | A | O | G | X | Z | S | B | H | A | I | G | O | S | ||||
22 | 2 | 8 | 18 | 6 | 14 | 6 | 1 | 14 | 7 | 22 | 24 | 18 | 2 | 8 | 1 | 9 | 7 | 14 | 18 | |||||
10. | Y | C | I | T | G | P | G | B | P | H | Y | A | T | C | I | B | J | H | P | T | ||||
23 | 3 | 9 | 19 | 7 | 15 | 7 | 2 | 15 | 8 | 23 | 1 | 19 | 3 | 9 | 2 | 10 | 8 | 15 | 19 | |||||
11. | Z | D | J | U | H | Q | H | C | Q | I | Z | B | U | D | J | C | L | I | Q | U | ||||
24 | 4 | 10 | 20 | 8 | 16 | 8 | 3 | 16 | 9 | 24 | 2 | 20 | 4 | 10 | 3 | 11 | 9 | 16 | 20 | |||||
12. | A | E | L | V | I | R | I | D | R | J | A | C | V | E | L | D | M | J | R | V | ||||
1 | 5 | 11 | 21 | 9 | 17 | 9 | 4 | 17 | 10 | 1 | 3 | 21 | 5 | 11 | 4 | 12 | 10 | 17 | 21 | |||||
13. | B | F | M | X | J | S | J | E | S | L | B | D | X | F | M | E | N | L | S | X | ||||
2 | 6 | 12 | 22 | 10 | 18 | 10 | 5 | 18 | 11 | 2 | 4 | 22 | 6 | 12 | 5 | 13 | 11 | 18 | 22 | |||||
14. | C | G | N | Y | L | T | L | F | T | M | C | E | Y | G | N | F | O | M | T | Y | ||||
3 | 7 | 13 | 23 | 11 | 19 | 11 | 6 | 19 | 12 | 3 | 5 | 23 | 7 | 13 | 6 | 14 | 12 | 19 | 23 | |||||
15. | D | H | O | Z | M | U | M | G | U | N | D | F | Z | H | O | G | P | N | U | Z | ||||
4 | 8 | 14 | 24 | 12 | 20 | 12 | 7 | 20 | 13 | 4 | 6 | 24 | 8 | 14 | 7 | 15 | 13 | 20 | 24 | |||||
16. | E | I | P | A | N | V | N | H | V | O | E | G | A | I | P | H | Q | O | V | A | ||||
5 | 9 | 15 | 1 | 13 | 21 | 13 | 8 | 21 | 14 | 5 | 7 | 1 | 9 | 15 | 8 | 16 | 14 | 21 | 1 | |||||
17 | F | J | Q | B | O | X | O | I | X | P | F | H | B | J | Q | I | R | P | X | B | ||||
6 | 10 | 16 | 2 | 14 | 22 | 14 | 9 | 22 | 15 | 6 | 8 | 2 | 10 | 16 | 9 | 17 | 15 | 22 | 2 | |||||
18 | G | L | R | C | P | Y | P | J | Y | Q | G | I | C | L | R | J | S | Q | Y | C | ||||
7 | 11 | 17 | 3 | 15 | 23 | 15 | 10 | 23 | 16 | 7 | 9 | 3 | 11 | 17 | 10 | 18 | 16 | 23 | 3 | |||||
19 | H | M | S | D | Q | Z | Q | L | Z | R | H | J | D | M | S | L | T | R | Z | D | ||||
8 | 12 | 18 | 4 | 16 | 24 | 16 | 11 | 24 | 17 | 8 | 10 | 4 | 12 | 18 | 11 | 19 | 17 | 24 | 4 | |||||
20 | I | N | T | E | R | A | R | M | A | S | I | L | E | N | T | M | U | S | A | E | ||||
9 | 13 | 19 | 5 | 17 | 1 | 17 | 12 | 1 | 18 | 9 | 11 | 5 | 13 | 19 | 12 | 20 | 18 | 1 | 5 |
Відповідь: INTER ARMA SILENT MUSAE (коли гримить зброя, музи мовчать). Ключем такого шифру є табл. 5.23.
Таблиця 5.23
Ключ шифру
№ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
Літера | A | B | C | D | E | F | G | H | I | J | L | M |
Ключ | E | F | G | H | I | J | L | M | N | O | P | Q |
№ | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
Літера | N | O | P | Q | R | S | T | U | V | X | Y | Z |
Ключ | R | S | T | U | V | X | Y | Z | A | B | C | D |
Окрім частоти появи літер, можуть бути використані інші обставини, що допомагають розкрити повідомлення. Наприклад, може бути відоме розбиття на слова, як в прикладі Л.1 (додаток Л), і розставлені розділові знаки. Розглядаючи невелику кількість можливих варіантів заміни для прийменників і сполучників, можна спробувати визначити частину ключа. Якщо шифроване повідомлення написане без пропусків між символами, то з'являється додаткова складність при розбитті шифрованого повідомлення на окремі символи і слова. Будь-які особливості тексту, які можуть бути вам відомі, – ваші помічники, розкриття шифрів – мистецтво (приклади Л.1-Л.4 додатку Л).
- 5.2.3.Розкриття книжкового шифру
Припустимо, що криптоаналітик зрозумів, що шифрований текст є результатом Припустимо, що криптоаналітик зрозумів, що шифрований текст є результатом шифрування англійського тексту за допомогою книги англійською мовою, взятої за ключ. Не зважаючи на те, що частоти появ літер у шифрованому тексті, можливо, допомогли йому прийти до висновку про використання книжкового шифру, вони не настільки сильно відрізняються від рівноймовірних, щоб це йому допомогло. Не допоможуть і диграфи, і тому подібне, однак, існує метод, стосовно якого книжковий шифр є уразливим – цей метод називають «протяганням шаблону» [130, с. 101]. Припустимо, що або повідомлення, або ключ містить яке-небудь поширене англійське слово, наприклад THE. Його додають з трьома літерами іншого англійського слова в другому тексті, в результаті виходять літери шифрованого тексту. Якщо ми спробуємо віднімати THE з шифрованого тексту у всіх можливих місцях і розглядати отримані триграфи, то серед них ми, можливо, виявимо частини англійських слів, які виглядатимуть цілком правдоподібно. Їх, можливо, вдасться відновити, тим самим додавши в другому тексті ще кілька літер, що стоять до або після слова THE. Можна спробувати й інші часті триграфи. У разі успіху обидва тексти почнуть, що називається, «відкриватися». Якщо літеру X використовують в якості роздільника слів, то триграф THE можна розширити до ТНЕХ, або навіть до ХТНЕХ. Хоча, таким чином можна пропустити інше слово, наприклад THERE. Навіть дуже коротке слово, таке як А, може виявитися дуже корисним, якщо воно зустрічається у складі триграфа ХАХ.
Якщо в ключі виявлені будь-які незвичайні слова, то з їх допомогою, можливо, вдасться визначити тип використаної книги і навіть ідентифікувати саму книгу, що значно полегшить подальший криптоаналіз. На практиці, можливо, спочатку вдасться відновити лише частини слів у обох текстах; проте, навіть часткове відновлення може бути інформативним, а подальші повідомлення можуть дати нові корисні «шаблони». Проілюструємо цей метод на маленькому зразку у 50 літер.
Задача 5.18. Наступні 10 груп зашифровано за допомогою книжкового шифру. Використовуючи прийом «протяганням шаблону», відновити тексти ключа і повідомлення (задачу взято з [130, с.102]).
FLIQT | NYQFK | VACEH | UCUAC | MOXRG |
EYYQJ | BNOEQ | FJXUL | ILREJ | ATVQB |
Розв'язок. Як шаблони спробуємо найбільш часто використовувані слова англійської мови, перше з яких – слово THE. Протягання шаблону є дуже трудомісткою процедурою, оскільки доведеться прикладати шаблон до всіх можливих позицій у шифрованому тексті. Оскільки будь-яка з літер, що перевіряють (у даному випадку Т, Н і Е), може зустрітися і в інших шаблонах, то ми у результаті заощадимо зусилля, якщо спочатку обчислимо результуючі літери відкритого тексту, віднімаючи з кожної літери шифрованого тексту спочатку літеру Т, потім літеру Н, і, нарешті, літеру Е. Якщо тепер записати три отримані рядки «відкритого тексту» один під одним, змістивши перший рядок (відповідний літері Т) на два знаки вправо, а другий рядок (рядок Н) – на один знак управо щодо третього рядка (рядка Е), то у вертикальних три літерних стовпцях опиняться можливі варіанти «слів», а саме:
Шифрований текст | FLIQT | NYQFK | VACEH | UCUAC | MOXRG |
Рядок T | MSPXA | UFXMR | CHJLO | BJBHJ | TVEYN |
Рядок H | YEBJMG | RJYDO | TVXAN | VNTVF | HQKZX |
Рядок E | BHEMPJU | MBGRW | YADQY | QWYIK | TNCAU |
Шифрований текст | EYYQJ | BNOEQ | FJXUL | ILREJ | ATVQB |
Рядок T | LFFXQ | IUVLX | MQEBS | PSYLQ | HACXI |
Рядок H | RRJCU | GHXJU | CQNEB | EKXCT | MOJU |
Рядок E | UMFXJ | KAMBF | TQHEH | NAFWP | RMX |
Вийшло декілька триграфів, які виглядають правдоподібними, наприклад:
МЕЕ на 1-му місці,
ROW на 10-му місці,
ОNY на 15-му місці,
BEE на 39-му місці,
PEN на 41-му місці.
Тепер спробуємо розширити шаблон THE до ТНЕХ і подивимось, чи дасть це правдоподібний тетраграф у якому-небудь із цих п'яти випадків. Підставимо літеру X на 4-е, 13-е, 18-е, 42-е і 44-е місця. Літери шифрованого тексту на цих місцях рівні, відповідно, Q, С, L та L, і ми розшифруємо їх, віднімаючи з них літеру X, що, фактично, означає зсув кожної з цих літер на три позиції вперед за алфавітом. Результати розшифрування рівні, відповідно, Т, F, X, О і Н, тому ми отримуємо наступні тетраграфи:
MEET на 1-му місці,
RОWF на 10-му місці,
ONYX на 15-му місці,
ВЕЕО на 39-му місці,
PENH на 41-му місці.
Перший з них виглядає найправдоподібніше, і ми зосередимось наразі на його дослідженні. Оскільки перше «попадання» слова THE зустрілося на першій позиції, розглядатимемо шифрований текст, що стоїть відразу за ним. Спочатку розглянемо перші 10 знаків. Імовірно отримуємо наступне:
Шифрований текст | FLIQT NYQFK |
Текст 1 | THEX |
Текст 2 | MEET |
Перше слово в Тексті 2 може бути MEET, і якщо це так, то після нього повинен стояти роздільник, тобто літера X; або перше слово може бути довше, наприклад, MEETINGX. У першому випадку п'ята літера Тексту 1 буде рівна W; у другому випадку літери 5, 6, 7 і 8 в Тексті 1 будуть рівні (T-I), (N-N), (Y-G) і (Q-X), тобто L, A, S і Т, тобто Текст 1 починається зі слів
THE LAST
Тепер ми припускаємо, що після LAST іде літера X, і у такому разі дев'ята літера Тексту 2 рівна (F-X), що дає нам I. Ми могли б отримати її значення також із таблиці розшифрування, приведеної вище, знайшовши перетин рядка F (рядок літери шифрованого тексту) зі стовпцем X (стовпець потенційної літери відкритого тексту в Тексті 1). Тоді перші 15 літер шифрованого і частково відновлених відкритих текстів виглядають таким чином:
Шифрований текст | FLIQTNYQFKVACEH |
Текст 1 | THE LAST . . |
Текст 2 | MEETING I |
Мабуть, у Тексті 2 за літерою I йде або літера N, або літера S. У обох випадках після цієї літери, скоріш за все, стоїть літера X. Тоді відповідні літери в Тексті 1 – це або (К-N) і (V-Х), або (K-S) і (V-X), тобто або XY, або SY. Другий варіант виглядає правдоподібнішим, оскільки в першому варіанті виходять здвоєні пропуски. В якості припущення проставимо в Тексті 2 диграф SX, і тоді в Тексті 1 виходить SY. Тепер частково дешифрований текст читають таким чином:
Шифрований текст | FLIQTNYQFKVACEH |
Текст 1 | THE LAST SY . . |
Текст 2 | MEETING I |
Наше наступне завдання – з'ясувати, яка літера стоїть відразу після SY в Тексті 1. Можливих варіантів небагато, і найбільш імовірною є поява літери В, L, М, N і S. Оскільки на 12-му місці шифрованого тексту стоїть літера А, то відповідна літера в Тексті 2 в цих п'яти випадках буде рівна (А-В), (A-L), (A-M), (A-N) або (A-S), тобто Z, Р, О, N або I. З цих літер малоймовірною видається лише Z, тому тепер перейдемо до аналізу інших місць тексту в надії виявити які-небудь додаткові підказки.
Повертаючись до п'яти передбачуваних випадків появи триграфа THE, відзначимо, що перший з них (на 1-ій позиції) підтверджений, а другий (на 10-ій позиції) відхилений. Тому перейдемо до третього варіанту (на 15-ій позиції). Це дає нам ТНЕХ в одному з текстів (ми не можемо відразу визначити, в якому саме), і ONYX – в іншому. Якщо ТНЕХ стоїть на 15-му місці, то на 14-му місці повинна стояти літера X, і оскільки відповідна літера шифрованого тексту дорівнює Е, то перед ONYX повинна стояти літера, що дорівнює (Е-Х), тобто Н. Тоді третім словом в Тексті 1 буде SY . . HONY і скоріш за все, це слово SYMPHONY. Якщо це так, і оскільки 12-а і 13-а літери шифрованого тексту рівні А і С, то в Тексті 2 їм відповідатимуть літери (А-М) і (С-Р), тобто О і N, що виглядає цілком правдоподібним. Тепер фрагмент дешифрованого тексту читають так:
Шифрований текст | FLIQTNYQFKVACEHUCUAC |
Текст 1 | THE LAST SYMPHONY . . . |
Текст 2 | MEETING IS ON THE . . |
Тепер розглянемо два місця, що залишилися, де в одному з текстів імовірно зустрічається ТНЕХ, а саме місця 39 і 41. Вони явно несумісні, оскільки частково перекриваються, і вірним може опинитися щонайбільше один з цих варіантів. Маємо додаткову інформацію: якщо в тексті зустрічається ТНЕХ, то перед ним повинен стояти роздільник слів X. Тому віднімемо X з літер шифрованого тексту X і L, що стоять, відповідно, на 38-му і 40-му місцях. Це дає нам літери А і О як літери відкритого тексту, і, таким чином, ми отримуємо можливі пентаграфи відкритого тексту:
АВЕЕО на 38-му місці;
OPENH на 40-му місці.
Перший з них не виглядає правдоподібно, другий – більш імовірний. Оскільки йдеться про зустрічі (MEETING), то цілком можливо, що призначене місце зустрічі. Навіть не маючи додаткової інформації, варто спробувати слово COPENHAGEN, оскільки воно пасує до даного пентаграфу. Тому, підставляючи літеру С на 39-е місце літери и A, G, Е, N і X – на місця 45, 46, 47, 48 і 49, отримаємо наступні тексти з 39-ї по 49-у позиції:
Шифрований текст | ULILREJATVQ |
Текст 1 | S THE JUPIT |
Текст 2 | COPENHAGEN |
Це підтверджує нашу здогадку і дає додаткову корисну інформацію: THE JUPITER (англ. Юпітер) – це назва останньої симфонії Моцарта, і можна чекати згадування його імені в Тексті 1 десь між позиціями 19 і 38. Більше того, слову COPENHAGEN повинен передувати роздільник, тому підставимо в текст літеру Х. Враховуючи, що літера шифрованого тексту в даному випадку також X, одержуємо літеру А на 38-му місці Тексту 1, який тепер читають так:
Текст 1 | . АS THE JUPITЕ |
Оскільки йдеться про останню симфонію Моцарта літера на 37-му місці цілком може бути W, і в цьому випадку на 36-му місці стоїть літера X. Підставивши ці літери в шифрований текст, отримуємо з 36 по 49 місці наступний текст:
Шифрований текст | FJXULILREJATVQ |
Текст 1 | WAS THE JUPIT |
Текст 2 | IN COPENHAGEN |
На 50-му місці в шифрованому тексті стоїть літера В, якій повинні відповідати літера Е в Тексті 1 і пропуск в Тексті 2. І це справді так, що є додатковим підтвердженням правильності дешифрування. Перед словом IN в Тексті 2 має бути пропуск, тому підставимо сюди (на 35-е місце) літеру X. Тут у шифрованому тексті стоїть літера Q, що дає нам в Тексті 1 літеру Т. Отже, на даному етапі ситуація така: текст дешифрований з 1-ї по 18-у і з 35-ї по 50-у позиції, тобто на дві третини. Тепер шифрований і відкриті тексти виглядають так:
FLIQTNYQFKVACEH UCUACMOXRGEYYQJBNOEQFJXULILREJATVQB |
THE LAST SYMPHONY Т WAS THE JUPITЕ |
MEETING IS ON THE IN COPENHAGEN |
У Тексті 1 ми шукаємо слово MOZART, і літера Т на 35-му місці цілком може бути останньою літерою цього імені. Тому спробуємо підставити XMОZAR на місця з 29-го по 34-е, що дає нам TXNООN в Тексті 2. Літері Т напевно передує диграф ХА, що дає нам BY в Тексті 1 на 27-му і 28-му місцях. Тепер тексти читають таким чином:
FLIQTNYQFKVACEH UCUAC MOXRGEYYQJBNOEQFJXULILREJATVQB |
THE LAST SYMPHONY BY MOZARТ WAS THE JUPITЕ |
MEETING IS ON THE AT NOON IN COPENHAGEN |
Слову BY повинна передувати літера X, що дає (Е-X)=Н у Тексті 2. Оскільки логічно чекати, що в тексті стоїть дата проведення зустрічі, ми можемо з повною підставою спробувати перед Н літеру Т, що дає нам (G-T)=N на 25-му місці Тексту 1. Тепер залишається дешифрувати тільки 6 літер. У Тексті 2 тут майже напевно стоїть число. Швидше за все, це дата, яка у формі порядкового числівника закінчується на ТН. Числівник ELEVEN (англ. одинадцять) є найбільш вірогідним кандидатом, оскільки в ньому рівно 8 літер. Віднімаючи ці 6 літер з літер шифрованого тексту, ACMOXR, отримуємо в Тексті 1 WRITTE. Дешифрування закінчене. Повний текст читають таким чином:
FLIQTNYQFKVACEH UCUACMOXRGEYYQJBNOEQFJXULILREJATVQB |
THE LAST SYMPHONY WRITTEN BY MOZARТ WAS THE JUPITЕ |
MEETING IS ON THE ELEVENTH AT NOON IN COPENHAGEN |
Криптоаналітик не тільки дешифрував повідомлення, але і вияснив, що в якості ключа використовувалася книга про Моцарта або про музику. Ця інформація може виявитися корисною при дешифруванні наступних повідомлень.
- 5.2.4.Розкриття шифру Віженера
Розкриття шифру Віженера слід розпочати з визначення довжини ключа. Припустимо, що є достатньо довгий шифрований текст. Тоді слід знайти поєднання літер, що повторюються, так звані поліграфи, і визначити відстані між ними. Якщо ці повторення не випадкові, тобто якщо за ними ховається один і той самий відкритий текст, то вони розташовані один від одного на відстані, кратній довжині ключа. Таким чином ми визначаємо довжину ключа або, принаймні, зводимо її до невеликої кількості варіантів. Що довшими є повторювані поліграфи, то кращою є ситуація для криптоаналітика. Але в даному випадку корисними можуть опинитися навіть диграфи, тобто дволітерені поєднання.
Задача 5.19. Дано повідомлення довжиною 157 знаків, шифроване шифром Віженера, при чому пропуски у відкритому тексті замінені на літеру Z (задачу взято з [130, с.37]):
HQEOT | FNMKP | ELTEL | UEZSI | KTFYG | STNME | GNDGL |
PUJCH | QWFEX | FEEPR | PGKZY | EHHQV | PSRGN | YGYSL |
EDBRX | LWKPE | ZMYPU | EWLFG | LESVR | PGJLY | OJGNY |
GYSLE | XVWYP | SRGFY | KECVF | XGFMV | ZEGKT | LQOZE |
LUIKS | FYLXK | HQWGI | LF |
Необхідно знайти довжину ключа, сам ключ і дешифрувати повідомлення.
Розв'язок. Аналізуючи текст, ми знаходимо, що шість диграфів зустрічаються не менше трьох разів, а саме:
EL на позиціях 11, 14 і 140;
FY на позиціях 23, 119 і 146;
GN на позиціях 31,64 і 103;
HQ на позиціях 1,40, 58 і 151;
LE на позиціях 70,91 і 109;
YG на позиціях 24,66 і 105.
Подальше дослідження показує, що диграф GN на позиціях 64 і 103 в обох випадках є початком восьмилітерного повторення («октографа»): GNYGYSLE (ці літери в приведеному вище тексті підкреслені). Випадкова поява восьмилітерного повторення малоймовірна. Тому ми покладемо, що за ним напевно ховається повторення відкритого тексту. Знайдемо відстань між цими октографами, яка рівна (103-64)=39. Оскільки 39=3x13, ми припускаємо, що довжина ключа рівна або 3, або 13. Тепер розглянемо відстані між іншими диграфами, що повторюються, наприклад, наступними: EL на позиціях 11, 14 і 140 дає відстані 3 і 126(=3х42); HQ на позиціях 1, 40, 58 і 151 дає відстані 39, 18 і 93, і всі вони кратні 3. Це вказує на те, що, скоріш за все, найбільш вірогідною довжиною ключового слова є число 3. Припустимо, що це так. Тоді наступним кроком буде пошук ключа.
Припустимо, що використовують три зсуви: перший зсув застосовують до літер 1-ої, 4-ої, 7-ої, і так далі; другий зсув – до літер 2-ої, 5-ої, 8-ої, і так далі; третій зсув – до літер 3-ої, 6-ої, 9-ої і так далі. Тому випишемо шифроване повідомлення в три колонки і обчислимо частоти літер шифрованого тексту в кожній з цих трьох колонок: в результаті отримаємо таблицю 3-1. Просумувавши частоти по рядках, отримаємо суми, рівні, відповідно, 53, 52 і 52. Якби літери були розподілені рівноймовірно, то кожна з частот повинна була б приблизно дорівнювати 2, але у нашому випадку логічно чекати розкиду частот від 0 до 5 або 6. Зрозуміло, розподіл частот далекий від рівноймовірного, оскільки кожна окремо узята колонка складається з літер відкритого тексту, зсунутого на одну і ту саму величину. В даному випадку слід зосередитися на пошуку літер із аномально високою частотою появи, щоб визначити літери, що відповідають знакам пропусків 'Z' в даних трьох строчках таблиці. Відзначимо, що в першому рядку літера G зустрічається 13 разів, а після неї найчастішою є літера L – вона зустрічається 7 разів. Якщо G є шифрованим знаком Z, то зсув для першого рядка дорівнює 7, і тоді L відповідає шифрованій літері Е, оскільки вона розташована в алфавіті через 7 позицій від Е. Оскільки Е – літера, що часто зустрічається (табл. 5.24), то наше припущення, що перший зсув дорівнює 7, підтверджується. Таким чином, перший елемент ключа дорівнює 7.
Таблиця 5.24
Літери | A | B | C | D | E | F | G | H | I | J | K | L | M |
1-ий зсув | 0 | 1 | 0 | 0 | 0 | 3 | 13 | 4 | 0 | 0 | 1 | 7 | 1 |
2-ий зсув | 0 | 0 | 0 | 0 | 13 | 6 | 0 | 0 | 3 | 2 | 2 | 1 | 2 |
3-ій зсув | 0 | 0 | 2 | 2 | 4 | 1 | 1 | 1 | 0 | 1 | 5 | 5 | 1 |
Літери | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
1-ий зсув | 2 | 1 | 5 | 0 | 0 | 2 | 2 | 4 | 4 | 0 | 0 | 2 | 1 |
2-ий зсув | 3 | 0 | 0 | 6 | 3 | 3 | 1 | 0 | 0 | 2 | 1 | 3 | 1 |
3-ій зсув | 0 | 1 | 4 | 0 | 2 | 3 | 2 | 0 | 1 | 3 | 4 | 6 | 3 |
Бачимо, що в другому рядку літера Е зустрічається 13 разів, і, отже, з великою часткою упевненості можна припустити, що Е – це шифрований еквівалент літери Z; звідси слідує, що другий зсув дорівнює 5. У цьому рядку найчастішими після Е будуть літери шифрованого тексту F і Q, кожна з яких зустрічається 6 разів. Зсув їх на 5 позицій назад показує, що у відкритому тексті їм відповідають літери А і L. З іншого боку, літера відкритого тексту Е в такому випадку переходить в J. Дана літера шифрованого тексту зустрічається в другому рядку лише двічі, хоча можна було б чекати, що вона повинна зустрітися 5 разів, оскільки в типових зразках англійського тексту на Е припадає близько 10% усіх літер. Ці дані, хоча і не переконують нас остаточно, але у результаті вказують на те, що другий елемент ключа, можливо, дорівнює 5.
У третьому рядку літери, що мають аномально високу частоту, відсутні, а якнайкращими кандидатами на роль шифрованого еквіваленту літери Z є Y, К і L, які зустрілися 6, 5 і 5 разів, відповідно. Можна послідовно випробувати кожен з цих варіантів. Але є альтернативний підхід: випишемо початок шифрованого тексту, опускаючи пропуски, що стоять після кожної п'ятизначної групи. Для кожної трійки знаків розшифруємо першу і другу літери, використовуючи передбачувані зсуви на 7 і на 5. Третій знак в кожній трійці замінимий на знак «/». Тепер подивимося, чи не можна довизначити які-небудь слова з пропусками і таким чином обчислити третій елемент ключа. Тоді ми отримуємо:
Шифрований текст | H | Q | E | O | T | F | N | M | K | P |
Відкритий текст | A | L | / | H | O | / | G | H | / | I |
Шифрований текст | E | L | T | E | L | U | E | Z | S | I |
Відкритий текст | / | M | / | N | / | L | D | |||
Шифрований текст | K | T | F | Y | G | S | T | N | M | E |
Відкритий текст | / | M | A | / | N | / | G | H | / | |
Шифрований текст | G | N | D | G | L | P | U | J | C | H |
Відкритий текст | I | / | G | / | N | E | / | A | ||
Шифрований текст | Q | W | F | E | X | F | E | E | P | R |
Відкритий текст | L | / | Y | / | Y | / | I | M |
Перше слово схоже на слово ALTHOUGH. І якщо це так, то літера відкритого тексту Т переходить у знак шифрованого тексту Е. Оскільки Е стоїть в алфавіті на 11-ій позиції після літери Т, або, що те саме, на 15-ій позиції до неї, то звідси випливає, що величина зсуву дорівнює 11. Тоді пропуску, тобто літері Z, в шифрованому тексті відповідає літера К, що і було одним з наших припущень. Робимо висновок, що третій елемент ключа рівний 11. Отже, ключ шифрування складається з трьох чисел, а саме 7-5-11, і отже, ключ розшифрування дорівнює 19-21-15. Розшифрувавши весь текст, ми остаточно переконуємося в цьому:
ALTHOUGH I AM AN OLD MAN NIGHT IS GENERALLY MY TIME FOR WALKING IN THE SUMMER I OFTEN LEAVE HOME EARLY IN THE MORNING AND ROAM ABOUT FIELDS AND LANES ALL DAY
(цими словами починається перший розділ книги Ч. Діккенса «Крамниця старожитностей»; розділові знаки тут опущені).
- 5.3.Контрольні питання
- Розкрийте різницю між кодами та шифрами.
- Поясніть принцип, за яким було розроблено код Морзе.
- Поясніть принцип застосування частотного аналізу.
- Наведіть приклади застосування методів криптолінґвістики.
- 5.4.Задачі для самостійної роботи
1. Для довільного відкритого тексту провести закодування та шифрування усіма описаними методами. Обмінятись кодами та шифрами із напарником, спробувати розкодувати та розшифрувати його повідомлення. В разі потреби передати (отримати) ключі.
2. Повідомлення шифровано за системою МДПМ з ключовим словом ABSOLUTE і перестановкою 3-1-5-2-4. У результаті отриманий шифрований текст: CFIGS FLTBC XKEEA EBHTB GLDPI. Розшифруйте це повідомлення.
(Для ознайомлення з повним текстом статті необхідно залогінитись)