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

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

Ближче до сьогоднішнього дня люди почали ховати секрети в графічних зображеннях, замінюючи молодший біт зображення зображення бітом повідомлення. Графічне зображення змінювалося зовсім непомітно – більшість графічних стандартів визначають більше колірних градацій, ніж здатне розрізнити людське око – і повідомлення витягувалося на протилежному кінці. Так у чорно-білій картинці 1024x1024 пікселя можна сховати можна сховати повідомлення в 64 Кбайт. Багато загальнодоступних програм можуть робити подібний фокус.

Імітаційні функції Пітера Уейнера (Peter Wayner) маскують повідомлення. Ці функції змінюють повідомлення так, що його статистичний профіль стає схожим на щось інше: розділ The New York Times, п'єсу Шекспіра або телеконференцію в Internet. Цей тип стеганографії не обдурить людини, але може обдурити великий комп'ютер, який шукає необхідну інформацію у Internet.

Підстановочні та перестановочні шифри

До комп'ютерів криптографія складалася з алгоритмів на символьної основі. Різні криптографічні алгоритми або замінювали одні символи на інші, або переставляли символи. Найкращі алгоритми робили і те, й інше, і багато разів.

Сьогодні все значно складніше, але філософія залишається незмінною. Перша змінау тому, що алгоритми почали працювати з бітами, а чи не символами. Це важливо хоча б з погляду розміру алфавіту – з 26 елементів до двох. Більшість хороших криптографічних алгоритмів досі комбінує підстановки та перестановки.

Підстановочні шифри

Підстановковий шифр називається шифр, який кожен символ відкритого тексту в шифротексті замінює іншим символом. Отримувач інвертує підстановку шифротексту, відновлюючи відкритий текст. У класичній криптографії існує чотири типи підстановочних шифрів:

Простий підстановковий шифр або моноалфавітний шифр– це шифр, який кожен символ відкритого тексту замінює відповідним символом шифротексту. Простими підстановними шифрами є криптограми у газетах.

Однозвучний підстановковий шифрсхожий на просту підстановну криптосистему за винятком того, що один символ відкритого тексту відображається на кілька символів шифротексту. Наприклад, "А" може відповідати 5, 13, 25 або 56, "В" - 7, 19, 31 або 42 і так далі.

Поліграмний підстановковий шифр– це шифр, який блоки символів шифрує за групами. Наприклад, "ABA" може відповідати "RTQ", "ABB" може відповідати "SLL" і таке інше.

Поліалфавітний шифр підстановкискладається з декількох простих шифрів підстановки. Наприклад, можуть бути використані п'ять різних простих фільтрів підстановки; кожен символ відкритого тексту замінюється за допомогою одного конкретного шифру.

Знаменитий шифр Цезаря, в якому кожен символ відкритого тексту замінюється символом, що знаходиться трьома символами правіше за модулем 26 ("А" замінюється на "D," "В" - на "Е", . "W" - на "Z", " X" - на "А", "Y" - на "В", "Z" - на "С"), являє собою простийфільтр підстановки. Він справді дуже простий, оскільки алфавіт шифротексту є зміщений, а чи не випадково розподілений алфавіт відкритого тексту.

ROT13 - це проста шифрувальна програма, що зазвичай постачається із системами UNIX. Вона також є простим підстановним шифром. У цьому шифрі "А" замінюється на "N," "В" - на "О" і так далі. Кожна літера зміщується на 13 місць. Шифрування файлу програмою ROTI3 двічі відновлює початковий файл.

ROTI3 не використовується для безпеки, вона часто застосовується у пошті, закриваючи потенційно неприємний текст, вирішення головоломки тощо.

Прості підстановочні шифри легко розкриваються, оскільки шифр не ховає частоти різних символів у відкритому тексті. Щоб відновити відкритий текст, хорошому криптоаналітику потрібно знати лише 33 символи українського алфавіту.

Однозвучні підстановочні шифри використовувалися вже 1401 року у герцогстві Мантуа. Вони більш складні для розтину, ніж прості підстановочні шифри, хоча вони не приховують всіх статистичних властивостей мови відкритого тексту. За допомогою відкриття з відомим відкритим текстом ці шифри розкриваються тривіально. Розтин з використанням тільки шифротексту трудомісткіший, але й воно займає на комп'ютері лише кілька секунд.

Поліграмні підстановочні шифри – це шифри, які кодують одночасно групи символів. Шифр Play-fair ("Чесна гра"), винайдений у 1854 році, використовувався англійцями у Першій світовій війні. Він шифрує кілька символів. Іншим прикладом поліграмного шифру підстановки є шифр Хілла (Hill). Іноді можна бачити як замість шифру використовується кодування за Хаффманом (Huffman), це небезпечний поліграмний шифр підстановки.

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

Шифр з ключом, що біжить (іноді званий книжковим шифром), що використовує один текст для шифрування іншого тексту, являє собою інший приклад подібного шифру. І хоча період цього шифру дорівнює довжині тексту, він може бути легко зламаний.