Львів
C
» » Прості шифри: опис популярних кодів і шифрів

Прості шифри: опис популярних кодів і шифрів

Необхідність в шифруванні листування виникла ще в стародавньому світі, і з'явилися шифри простої заміни. Зашифровані послання визначали долю безлічі битв і впливали на хід історії. З часом люди винаходили все більш досконалі способи шифрування. Код та шифр - це, до речі, різні поняття. Перше означає заміну кожного слова в повідомленні кодовим словом. Друга ж полягає в шифруванні за певним алгоритмом кожного символу інформації. Після того як кодуванням інформації зайнялася математика була розроблена теорія криптографії, вчені виявили безліч корисних властивостей цієї прикладної науки. Наприклад, алгоритми декодування допомогли розгадати мертві мови, такі як давньоєгипетський або латинь.


Стеганографія

Стеганографія старше кодування і шифрування. Це мистецтво з'явилося дуже давно. Воно буквально означає «приховане лист» або «тайнопис». Хоч стеганографія не зовсім відповідає визначенням коду чи шифру, але вона призначена для приховування інформації від чужих очей.
Прості шифри: опис популярних кодів і шифрів
Стеганографія є найпростішим шифром. Типовими прикладами є проковтнуті записки, вкриті ваксою, або повідомлення на голеній голові, яке ховається під виросли волоссям. Найяскравішим прикладом стеганографії є спосіб, описаний у безлічі англійських (і не тільки) детективних книг, коли повідомлення передаються через газету, де малопомітним чином позначені літери. Головним мінусом стеганографії є те, що уважний стороння людина може її помітити. Тому, щоб секретне послання не було легко читаним, спільно з стеганографией використовуються методи шифрування і кодування.


ROT1 та шифр Цезаря

Назва цього шифру ROTate 1 letter forward, і він відомий багатьом школярам. Він являє собою шифр простої заміни. Його суть полягає в тому, що кожна буква шифрується шляхом зсуву за алфавітом на 1 букву вперед. А -> Б, Б -> В, , Я -> А. Наприклад, зашифруем фразу «наша Настя голосно плаче» і отримаємо «общб Обтуа дспнлп рмбшеу». Шифр ROT1 може бути узагальнений на довільне число зсувів, тоді він називається ROTN, де N - це число, на яке слід зміщувати шифрування букв. У такому вигляді шифр відомий з глибокої давнини і носить назву «шифр Цезаря».
Прості шифри: опис популярних кодів і шифрів
Шифр Цезаря дуже простий і швидкий, але він є шифром простої одинарною перестановки і тому легко зламується. Маючи подібний недолік, він підходить тільки для дитячих пустощів.

Транспозиционные або перестановочные шифри

Дані види шифру простої перестановки більш серйозні і активно застосовувалися не так давно. У Громадянську війну В США і в Першу світову його використовували для передачі повідомлень. Його алгоритм полягає в перестановці літер місцями - записати повідомлення у зворотньому порядку або попарно переставити букви. Наприклад, зашифруем фразу «азбука Морзе - теж шифр» -> «акубза есром - ежот рфиш». З гарним алгоритмом, який визначав довільні перестановки для кожного символу або їх групи, шифр ставав стійким до простого злому. Але! Тільки в свій час. Так як шифр легко зламується простим перебором або словниковим відповідником, сьогодні з його розшифровкою впорається будь-який смартфон. Тому з появою комп'ютерів цей шифр також перейшов у розряд дитячих.

Азбука Морзе

Абетка є засобом обміну інформацією і її основне завдання - зробити повідомлення більш простими і зрозумілими для передачі. Хоча це суперечить тому, для чого призначене шифрування. Тим не менш вона працює подібно найпростішим шифрів. В системі Морзе кожна літера, цифра, знак пунктуації мають свій код, складений з групи тире і точок. При передачі повідомлень за допомогою телеграфу тире і точки означають довгі і короткі сигнали.
Прості шифри: опис популярних кодів і шифрів
Телеграф і азбука Морзе Морзе був тим, хто перший запатентував «свій» винахід в 1840 році, хоча до нього і в Росії, і в Англії були винайдені подібні апарати. Але кого це тепер цікавить Телеграф і абетка Морзе зробили дуже великий вплив на світ, дозволивши майже миттєво передавати повідомлення на континентальні відстані.

Моноалфавитная заміна

Описані вище ROTN і азбука Морзе є представниками шрифтів моноалфавитной заміни. Приставка «моно» означає, що при шифруванні кожна буква початкового повідомлення замінюється іншою буквою або кодом з єдиного алфавіту шифрування. Дешифрування шифрів простої заміни не складає труднощів, і в цьому їх головний недолік. Розгадуються вони простим перебором або частотним аналізом. Наприклад, відомо, що найбільш використовуються букви російської мови - це «о», «а», «і». Таким чином, можна припустити, що в зашифрованому тексті букви, які зустрічаються найчастіше, означають або «о», або «а», або «і». Виходячи з таких міркувань, можна розшифрувати послання навіть без перебору комп'ютером.
Відомо, що Марія I, королева Шотландії з 1561 по 1567 р., використовувала дуже складний шифр моноалфавитной заміни з кількома комбінаціями. І все ж її вороги змогли розшифрувати послання, та інформації вистачило, щоб засудити королеву до смерті.

Шифр Гронсфельда, або полиалфавитная заміна

Прості шифри криптографією визнані непотрібними. Тому багато з них було доопрацьовано. Шифр Гронсфельда — це модифікація шифру Цезаря. Даний спосіб є значно більш стійким до злому і полягає в тому, що кожен символ кодованої інформації шифрується за допомогою одного з різних алфавітів, які циклічно повторюються. Можна сказати, що це багатовимірне застосування найпростішого шифру заміни. Фактично шифр Гронсфельда дуже схожий на шифр Віженер, розглянутий нижче.

Алгоритм шифрування ADFGX

Це найвідоміший шифр Першої світової війни, використовуваний німцями. Своє ім'я шифр отримав тому, що алгоритм шифрування приводив все шифрограми до чергуванню цих букв. Вибір самих же букв був визначений їх зручністю при передачі по телеграфних лініях. Кожна буква в шифрі представляється двома. Розглянемо більш цікаву версію квадрата ADFGX, яка включає цифри і називається ADFGVX.







A



D



F



G



V



X



A



J



Q



A



5



H



D



D



2



E



R



V



9



Z



F



8



Y



I



N



K



V



G



U



P



B



F



6



O



V



4



G



X



S



3



T



X



W



L



Q



7



C



0

Алгоритм складання квадрата ADFGX наступний:
  • Беремо випадкові n літер для позначення стовпців і рядків.
  • Будуємо матрицю N x N.
  • Вписуємо в матрицю алфавіт, цифри, знаки, випадковим чином розкидані по клітинках.
  • Складемо аналогічний квадрат для російської мови. Наприклад, створимо квадрат АБВГД:





    А



    Б



    У



    Р



    Д



    А



    Е/Е



    Н



    Ь/Ъ



    А



    І/Ї



    Б



    Ч



    В/Ф



    Р/К



    З



    Д



    У



    Ш/Щ



    Б



    Л



    Х



    Я



    Р



    Р



    М



    Про



    Ю



    П



    Д



    Ж



    Т



    Ц



    И



    У

    Дана матриця виглядає дивно, так як ряд осередків містить по дві літери. Це допустимо, сенс послання при цьому не втрачається. Його легко можна відновити. Зашифруем фразу «Компактний шифр» за допомогою цієї таблиці:





    1



    2



    3



    4



    5



    6



    7



    8



    9



    10



    11



    12



    13



    14



    Фраза



    До



    Про



    М



    П



    А



    До



    Т



    Н



    И



    Ї



    Ш



    І



    Ф



    Р



    Шифр



    бв



    гв



    гб



    гд



    аг



    бв



    дб



    аб



    дг



    пекло



    ва



    пекло



    бб



    га

    Таким чином, підсумкове зашифроване послання виглядає так: «бвгвгбгдагбвдбабдгвдваадббга». Зрозуміло, німці проводили подібну рядок ще через кілька шифрів. І в підсумку виходило дуже стійке до злому шифроване послання.

    Шифр Віженер

    Даний шифр на порядок більш стійкий до злому, ніж моноалфавитные, хоча являє собою шифр простої заміни тексту. Однак завдяки стійкому алгоритмом довгий час вважався неможливим для злому. Перші його згадки відносяться до 16-го століття. Віженер (французький дипломат) помилково вважається його винахідником. Щоб краще розібратися, про що йде мова, розглянемо таблицю Віженер (квадрат Віженер, tabula recta) для російської мови.
    Прості шифри: опис популярних кодів і шифрів
    Приступимо до фрази шифруванню «Касперович сміється». Але, щоб шифрування вдалося, потрібно ключове слово — хай їм буде «пароль». Тепер почнемо шифрування. Для цього запишемо ключ стільки разів, щоб кількість літер з нього відповідало кількості букв в шифрованих фразі, шляхом повтору ключа або обрізання:





    1



    2



    3



    4



    5



    6



    7



    8



    9



    10



    11



    12



    13



    14



    15



    16



    17



    Фраза:



    До



    А



    З



    П



    Е



    Р



    Про



    У



    І



    Ч



    З



    М



    Е



    Е



    Т



    З



    Я



    Ключ



    П



    А



    Р



    Про



    Л



    Ь



    П



    А



    Р



    Про



    Л



    Ь



    П



    А



    Р



    Про



    Л

    Тепер по таблиці Віженер, як по координатній площині, шукаємо клітинку, яка є перетином пар букв, і отримуємо: К + П = Ъ, А + А = Б, З + Р = В і т. д.





    1



    2



    3



    4



    5



    6



    7



    8



    9



    10



    11



    12



    13



    14



    15



    16



    17



    Шифр:



    Ъ



    Б



    У



    Ю



    З



    Н



    Ю



    Р



    Щ



    Ж



    Е



    Ї



    Х



    Ж



    Р



    А



    Л

    Отримуємо, що "касперович сміється" = "ъбвюснюгщж эйхжгал". Зламати шифр Віженер так складно, тому що для роботи частотного аналізу необхідно знати довжину ключового слова. Тому злом полягає в тому, щоб навмання кидати довжину ключового слова і намагатися зламати засекречене послання. Слід також згадати, що крім абсолютно випадкового ключа може бути використана абсолютно різна таблиця Віженер. В даному випадку квадрат Віженер складається з порядково записаного російського алфавіту зі зміщенням на одиницю. Що відсилає нас до шифру ROT1. І точно так само, як і в шифрі Цезаря, зміщення може бути будь-яким. Більше того, порядок букв не повинен бути алфавітним. В даному випадку сама таблиця може бути ключем, не знаючи яку неможливо буде прочитати повідомлення, навіть знаючи ключ.

    Коди

    Справжні коди складаються з відповідностей для кожного слова окремого коду. Для роботи з ними необхідні так звані кодові книги. Фактично це той же словник, тільки містить переклади слів в коди. Типовим і спрощеним прикладом кодів є таблиця ASCII — міжнародний шифр простих знаків.
    Прості шифри: опис популярних кодів і шифрів
    Головною перевагою кодів є те, що розшифрувати їх дуже складно. Частотний аналіз майже не працює при їх зломі. Слабкість же кодів — це, власне, самі книги. По-перше, їх підготовка — складний і дорогий процес. По-друге, для ворогів вони перетворюються на бажаний об'єкт і перехоплення навіть частини книги змушує міняти всі коди повністю. У 20-му столітті багато держави для передачі секретних даних використовували коди, змінюючи кодову книгу по закінченні певного періоду. І вони ж активно полювали за книгами сусідів і супротивників.

    "Енігма"

    Всім відомо, що "Енігма" — це головна шифрувальна машина нацистів під час II світової війни. Будова "Енігми" включає комбінацію електричних і механічних схем. Те, яким вийде шифр, залежить від початкової конфігурації "Енігми". У той же час "Енігма" автоматично змінює свою конфігурацію під час роботи, шифруючи одне повідомлення кількома способами на всьому його протязі. На противагу найпростішим шифрами "Енігма" давала трильйони можливих комбінацій, що робило злом зашифрованої інформації майже неможливим. У свою чергу, у нацистів на кожен день була заготовлена певна комбінація, яку вони використовували в конкретний день для передачі повідомлень. Тому навіть якщо "Енігма" потрапляла в руки супротивника, вона ніяк не сприяла розшифровці повідомлень без уведення потрібної конфігурації кожен день.
    Прості шифри: опис популярних кодів і шифрів
    Зламати "Енігму" активно намагалися протягом всієї військової кампанії Гітлера. В Англії у 1936 р. для цього побудували один з перших обчислювальних апаратів (машина Тюрінга), що став прообразом комп'ютерів в майбутньому. Його завданням було моделювання роботи декількох десятків "Енігма" одночасно і прогін через них перехоплених повідомлень нацистів. Але навіть машині Тюрінга лише іноді вдавалося зламувати повідомлення.

    Шифрування методом публічного ключа

    Найпопулярніший з алгоритмів шифрування, який використовується повсюдно в техніці і комп'ютерних системах. Його суть полягає, як правило, у наявності двох ключів, один з яких передається публічно, а другий є секретним (приватним). Відкритий ключ використовується для шифрування повідомлення, а секретний — для дешифрування.
    Прості шифри: опис популярних кодів і шифрів
    У ролі відкритого ключа найчастіше виступає дуже велике число, у якого існує тільки два дільника, не рахуючи одиниці і числа. Разом ці два дільника утворюють секретний ключ. Розглянемо простий приклад. Нехай публічним ключем буде 905. Його дільниками є числа 15181 і 905. Тоді секретним ключем буде, наприклад, число 5*181. Ви скажете занадто просто? А що якщо в ролі публічного числа буде число з 60 знаками? Математично складно вирахувати дільники великого числа. У якості більш живого прикладу уявіть, що ви знімаєте гроші в банкоматі. При зчитуванні картки особисті дані зашифровуються певним відкритим ключем, а на стороні банку відбувається розшифровка інформації секретним ключем. І цей відкритий ключ можна змінювати для кожної операції. А способів швидко знайти дільники ключа при його перехоплення — ні.

    Стійкість шрифту

    Криптографічна стійкість алгоритму шифрування — це здатність протистояти злому. Даний параметр є найважливішим для будь-якого шифрування. Очевидно, що шифр простої заміни, розшифровку якого подужає будь-який електронний пристрій, є одним з найбільш нестійких. На сьогоднішній день не існує єдиних стандартів, за якими можна було б оцінити стійкість шифру. Це трудомісткий і довгий процес. Однак є ряд комісій, які виготовили стандарти в цій галузі. Наприклад, мінімальні вимоги до алгоритму шифрування Advanced Encryption Standart або AES, розроблені в NIST США. Для довідки: найстійкішим шифром до злому визнаний шифр Вернама. При цьому його плюсом є те, що за своїм алгоритмом він є найпростішим шифром.