Кодування тексту та шифрування
І кодування, і шифрування мають спільне те, що змінюють форму тексту. Однак у цих методів різні цілі. Метою шифрування є збереження секретності. Метою кодування є не секретність, а лише надійний запис або передача повідомлення.
Базове кодування тексту використовувалося ще до появи комп’ютерів. Наприклад, азбука Морзе використовувалася для передачі повідомлень по телеграфу, а шрифт Брайля кодує текст, який читається на дотик. Для текстового кодування в комп’ютерах використовуються методи на основі двійкових чисел (нулів і одиниць).
Кодування не шифрує повідомлення. Якщо ми напишемо повідомлення PES азбукою Морзе (.–.|.|…), то будь-хто, хто знає цей код, зможе легко прочитати повідомлення. Щоб зберегти повідомлення в секреті, використовується шифрування. Люди люблять тримати речі в таємниці, тому шифрування використовується майже так само довго, як письмо. Уже в давнину широко використовувався, наприклад, добре відомий шифр Цезаря. Шифрування багато разів відігравало важливу роль в історії. Так, однією з ключових подій Другої світової війни став злам німецької шифрувальної машини Enigma.
Шифрування все ще відіграє важливу роль сьогодні. Електронна торгівля, наприклад, була б неможливою без високоякісних шифрів. Кожен користувач Інтернету регулярно використовує шифрування, навіть не знаючи про це, оскільки воно виконується автоматично веб-браузером.
Ви можете практикувати тему шифрування кількома способами:
- Базові шифри – основні принципи шифрування (транспонування, підстановка), проілюстровані простими прикладами.
- Шифри з ідеєю – ці шифри не використовуються для практичних цілей, але вони добре послужать для тренування мислення та перевірки основних криптоаналітичних навичок.
- Шифрування: основні поняття та принципи – більш просунута тема, у якій детальніше розглядаються методи використання шифрування та основні концепції.
Базове кодування тексту
Зазвичай ми кодуємо інформацію як текст, який записуємо на папері за допомогою літер алфавіту. Однак написання літер на папері — не єдиний спосіб кодування тексту.
- Азбука Морзе присвоює кожній літері код, що складається з крапок і тире. Раніше він використовувався в основному для передачі інформації за допомогою телеграфу.
- У Міжнародному Кодексі Сигналів кожна літера має свій прапор. Текст закодовано у вигляді серії прапорів.
- У прапорцевій сигналізації відповідна людина кодує літери, використовуючи різні положення рук, тримаючи кольорові прапорці. Як і алфавіт військово-морського прапора, він використовується, наприклад, серед моряків для зв’язку на великі відстані.
- Шрифт Брайля кодує літери за допомогою нерівностей у сітці 2×3. Цей шрифт призначено для людей із вадами зору для читання на дотик.
- Комп’ютери зберігають літери за допомогою числових кодів. Окрема тема стосується кодування тексту в комп’ютерах.
Кодування тексту в компʼютерах
У комп’ютері вся інформація зберігається у вигляді нулів і одиниць. Щоб зберігати текстову інформацію, нам потрібне кодування, яке перетворює текст на нулі та одиниці. У 60-х роках ХХ століття для цього була створена таблиця ASCII, яка присвоювала символам числа від 0 до 255, а потім ці числа записували у двійковій системі в один байт.
Однак ASCII дозволяло кодувати лише літери англійського алфавіту та деякі інші базові символи. Тому пізніше був розроблений стандарт Unicode, який дозволяє писати не лише основні літери, а й літери інших світових алфавітів та багато інших символів (як-от, символ сніговика: ☃). Ви можете дізнатися, які інші символи є в Unicode тут. У той час як Unicode призначає цифри символам, різні кодування (наприклад, UTF-8) визначають, як конвертувати ці числа в одиниці та нулі для збереження на комп’ютері.
Напр., Unicode кодує сніговика як число 2603 у шістнадцятковій системі. UTF-8 кодує це число у три байти зі значеннями 11 100 010, 10 011 000 і 10 000 011.
ВгоруБазові шифри
Транспозиційні шифри
Транспозиційні шифри змінюють лише порядок літер, а не їх зовнішній вигляд. Основні шифри транспозиції засновані на переписуванні тексту в рядок або сітку за простим принципом. Приклади:
- написання задом наперед (ДИНОЗАВР → РВАЗОНИД)
- написання через одну літеру (ДИНОЗАВР → ДЗИАНВОР)
- заміна сусідніх літер (ДИНОЗАВР → ИДОНАЗРВ)
Існують також більш складні шифри транспонування, які дозволяють шифрувати за допомогою пароля.
Шифри підстановки
З іншого боку, шифри підстановки зберігають порядок літер, але змінюють їхню форму. Базовий шифр заміни — це зсув у алфавіті (також званий шифром Цезаря), коли літери замінюються іншими літерами, наприклад, при зсуві на одну ми шифруємо ЛЬВІВ → МЮГЇГ (Л змінюється на М, Ь змінюється на Ю і так далі). Більш складним прикладом шифру підстановки є шифр Віженера.
Кодування подібне до шифрів підстановки, як-от, азбуки Морзе, Брайля або таблиці ASCII. Однак саме кодування не є шифром, оскільки воно не шифрує повідомлення. Коли ми пишемо повідомлення за допомогою азбуки Морзе, кожен, хто знає цей код, може легко його прочитати.
ВгоруШифри з ідеєю
У практичних застосуваннях шифрування основний принцип шифрування зазвичай відомий, а безпека шифру базується на секретності ключа. У вправах ви можете спробувати шифри, для розшифровування яких вам потрібно відкрити їх принцип шифрування. Такі шифри в основному використовуються для розваг, наприклад, вони широко використовуються в криптоіграх, скринях зі скарбами та змаганнях. Незважаючи на те що ці шифри не мають прямого практичного використання, ви можете практикувати принципи базових шифрів, а також логічне мислення, пошук шаблонів і терпіння.
Вгору