Шифр Цезаря
Шифр Цезаря або шифр зсуву — симетричний моноалфавітний алгоритм шифрування, в якому кожна буква відкритого тексту заміняється на ту, що віддалена від неї в алфавіті на сталу кількість позицій. Римський імператор Юлій Цезар використовував для приватного листування шифр зсуву з ключем 3 — замість літери A підставляв D, замість B — E і так далі[1].
Як і будь-який моноалфавітний шифр, Цезарів вразливий до частотного криптоаналізу. Навіть легше зламати його простим перебором, бо кількість можливих ключів зовсім невелика — для українського алфавіту 32 варіанти. Метод Цезаря не надає майже ніякого криптографічного захисту, але він ліг в основу дещо складніших алгоритмів, наприклад шифру Віженера. Варіант шифру зсуву ROT13 використовується в англомовному сегменті інтернету для приховування спойлерів, розгадок головоломок тощо[2].
Принцип дії полягає в тому, щоб циклічно зсунути алфавіт, а ключ — це кількість літер, на які робиться зсув.
Якщо зіставити кожному символу алфавіту його порядковий номер (нумеруючи з 0), то шифрування і дешифрування можна виразити формулами:
де — порядковий номер символу відкритого тексту, — порядковий номер символу шифрованого тексту, — потужність алфавіту, а — ключ.
Можна помітити, що суперпозиція двох шифрувань на ключах і є просто шифруванням на ключі . Більш загально, множина шифруючих перетворень шифру Цезаря утворює групу .
Припустимо, що, використовуючи шифр Цезаря, з ключем, який дорівнює 3, необхідно зашифрувати словосполучення «ШИФР ЦЕЗАРЯ».
Для цього зрушимо алфавіт так, щоб він починався з четвертої букви (Г). Отже, беручи вихідний алфавіт
АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ,
і зміщуючи всі літери вліво на 3, отримуємо відповідність:
А Б В Г Ґ Д Е Є Ж З И І Ї Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ю Я
Г Ґ Д Е Є Ж З И І Ї Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ю Я А Б В,
де Г=А, Д=В, Е=Г, і т. д.
Використовуючи цю схему, відкритий текст «ШИФР ЦЕЗАРЯ» перетворюється на «ЮЙЧУ ЩЗЇГУВ». Для того, щоб одержувач повідомлення міг відновити вихідний текст, необхідно повідомити йому, що ключ — 3.
Шифр Цезаря має замало ключів — на одиницю менше, ніж літер в абетці. Тому його легко зламати перебором — пробувати усі можливі ключ, поки розшифрування не дасть впізнаваний відкритий текст.
Також зламати шифр Цезаря можна, як і звичайний підстановочний шифр, у зв'язку з тим, що частота появи кожної літери в шифртексті збігається з частотою появи у відкритому тексті. Якщо припустити, що частота появи літер у відкритому тексті приблизно відповідає середньостатистичній відносній частоті появи літер в текстах мови, якою написане повідомлення, тоді ключ знаходиться зіставленням перших декількох літер, що трапляються найчастіше у відкритому та зашифрованому текстах. Тобто за допомогою методу частотного криптоаналізу.
- ↑ Тарнавський, 2018, с. 28.
- ↑ Holden, 2017, с. 5.
- Тарнавський (2018). Технології захисту інформації (PDF). КПІ ім. Ігоря Сікорського. Архів оригіналу (PDF) за 3 грудня 2021. Процитовано 7 червня 2019.
- Singh (2000). The Code Book. Anchor. ISBN 978-0385495325.
- Holden (2017). The Mathematics of Secrets. Princeton University Press. ISBN 978-0691141756.
- Деякі статистичні відомості [Архівовано 11 березня 2007 у Wayback Machine.] сторінка на сайті «Весна», містить інформацію про середню частоту українських літер у текстах.
- Історія таємного письма [Архівовано 6 листопада 2020 у Wayback Machine.] — інтерактивна стаття про класичні методи шифрування
Це незавершена стаття з математики. Ви можете допомогти проєкту, виправивши або дописавши її. |
Це незавершена стаття про алгоритми. Ви можете допомогти проєкту, виправивши або дописавши її. |