- •Безпека даних
- •Вступ. Основні поняття безпеки. Конфіденційність, цілісність та доступність даних. Класифікація загроз. Сервіси та механізми захисту.
- •Основні поняття і визначення криптографічного захисту даних.
- •Порушення, механізми і служби захисту.
- •Традиційне шифрування. Модель традиційного шифрування. Криптографія і криптоаналіз. Класична техніка шифрування: підстановки і перестановки.
- •Потокові і блокові шифри. Дифузія і конфузія. Шифр Файстеля. Диференційний та лінійний крипто аналіз. Принципи побудови блокових шифрів
- •Стандарт шифрування даних (des). Критерії, що лежать в основі конструкції des. Алгоритми "Подвійний" та "Потрійний" des.
- •Режими роботи блочних шифрів. Проблема та схеми розподілу ключів симетричного шифрування.
- •1. Режим електронної шифрувальної книги
- •2. Режим зчеплення шифрованих блоків
- •3. Режим шифрованого зворотного зв'язку
- •Генерування випадкових чисел. Використання та джерела випадкових чисел. Генератори псевдовипадкових чисел.
- •Криптографія з відкритим ключем. Принципи побудови криптосистем з відкритим ключем.
- •Алгоритм rsa
- •Порівняння основних характеристик симетричних та асиметричних алгориммів
- •Управління ключами і схема Діффі–Хеллмана.
- •1. Публічне оголошення
- •2. Публічно доступний каталог
- •3. Авторитетне джерело відкритих ключів
- •4. Сертифікати відкритих ключів
- •1. Простий розподіл секретних ключів
- •2. Розподіл секретних ключів із забезпеченням конфіденційності і аутентифікації
- •3. Гібридна схема
- •Аутентифікація повідомлень і функції хешування. Вимоги та функції аутентифікації.
- •1.1. Шифрування повідомлення
- •1.1.1. Традиційне шифрування
- •Коди автентичності повідомлень та функції хешування.
- •1. Коди автентичності повідомлень
- •1.1. Необхідні властивості кодів автентичності повідомлень
- •1.2. Коди автентичності повідомлень на основі des
- •2. Функції хешування
- •2.1. Вимоги, що пред'являються до функції хешування
- •2.2. Прості функції хешування
- •2.3. Атаки, в основі яких лежить парадокс задачі про дні народження
- •3. Захист функцій хешування і кодів автентичності повідомлень
- •3.1. Атаки з перебором всіх варіантів
- •3.2. Функції хешування
- •Алгоритми хешування. Алгоритм hmac.
- •1.1. Цілі розробки нмас
- •1.2. Алгоритм нмас
- •1.3. Захищеність нмас
- •Цифрові підписи та протоколи аутентифікації. Вимоги до цифрового підпису. Стандарт цифрового підпису dss.
- •1. Цифрові підписи
- •1.1. Вимоги
- •1.2. Безпосередній цифровий підпис
- •1.3. Арбітражний цифровий підпис
- •Протоколи аутентифікації. Взаємна та одностороння аутентифікація. (прочитати уважно номери малюнків і т.Д.)
- •2. Підходи на основі традиційного шифрування
- •3. Підходи на основі шифрування з відкритим ключем
- •4. Одностороння аутентифікація
- •5. Підхід на основі традиційного шифрування
- •6. Підходи на основі шифрування з відкритим ключем
- •Програмна реалізація криптографічних алгоритмів. Використання криптографічних функцій Microsoft CryptoApi в прикладному пз. Поняття про безпечний цикл розробки пз (sdl).
- •1. Будова і можливості Crypto api
- •2. Криптопровайдери
- •3. Контейнери ключів
- •4. Алгоритми
- •5. Сертифікати
- •6. Базові функції
- •6.1. Шифрування
- •6.2. Експорт сесійних ключів
- •6.3. Імпорт сесійних ключів
- •6.4. Розшифрування
- •6.5. Хешування
- •6.6. Цифровий підпис
- •6.7. Перевірка цифрового підпису
- •Методи і засоби створення захищеного програмного забезпечення.
- •3. Класифікація вразливостей захисту
- •4. Огляд існуючих аналізаторів
- •Відношення Історія експонатів
- •Список літератури
Традиційне шифрування. Модель традиційного шифрування. Криптографія і криптоаналіз. Класична техніка шифрування: підстановки і перестановки.
Традиційне шифрування, яке називають також симетричним шифруванням, шифруванням з секретним ключем і шифруванням за одним ключем, до винаходу шифрування з відкритим ключем було єдиним методом шифрування. Сьогодні цей метод як і раніше залишається найпоширенішим, не в останню чергу завдяки швидкодії та простоті реалізації.
Схема традиційного шифрування складається з наступних п'яти складових ( рис. 2.1).
• Відкритий текст. Це вихідне повідомлення або дані, що подаються на вхід алгоритму шифрування.
• Алгоритм шифрування. Алгоритм, що виконує різні підстановки і перетворення у відкритому тексті .
• Секретний ключ. Секретний ключ також подається на вхід алгоритму. Від цього ключа залежать конкретні підстановки і перетворення, виконувані алгоритмом .
• Шифрований текст. Це " перемішане " повідомлення, одержуване на виході алгоритму . Воно залежить від відкритого тексту і секретного ключа. Для одного і того ж повідомлення два різних ключі породжують різні шифровані тексти.
• Алгоритм дешифрування. По суті, це алгоритм шифрування, виконуваний у зворотний бік. Він бере шифрований текст і той же секретний ключ, який застосовувався при шифруванні, і відновлює вихідний відкритий текст .
Для надійності традиційного шифрування необхідно виконання наступних вимог.
1 . Алгоритм шифрування повинен бути достатньо стійким . Як мінімум, алгоритм повинен бути таким, щоб противник, що знає алгоритм і має доступ до одного або кількох фрагментів відкритого тексту, не зміг би розшифрувати весь текст або обчислити ключ. Ця вимога зазвичай формулюється в більш суворій формі : противник не повинен мати можливості дешифрувати шифрований текст або відкрити ключ навіть при наявності декількох фрагментів шифрованого тексту разом з відповідними їм фрагментами відкритого тексту.
2. Відправник і одержувач повинні деяким таємним чином отримати копії секретного ключа і зберігати його в таємниці. Якщо хтось зможе відкрити ключ і дізнатися алгоритм, то всі повідомлення, шифровані з використанням цього ключа, виявляться незахищеними .
Рис . 2.1 . Спрощена модель традиційного шифрування
Важливо відзначити, що надійність традиційного шифрування залежить від таємності ключа, а не від секретності алгоритму . Тому передбачається, що повинна бути забезпечена практична неможливість розшифровки повідомлення на основі знання шифрованого тексту, навіть якщо відомий алгоритм шифрування / дешифрування . Іншими словами, не потрібно забезпечувати секретність алгоритму - необхідно забезпечити секретність ключа. Саме ця особливість схеми традиційного шифрування є причиною її широкого застосування. Відсутність необхідності зберігати в секреті алгоритм дає виробникам можливість реалізувати алгоритми шифрування даних у вигляді дешевих загальнодоступних мікросхем, якими оснащені сьогодні багато сучасних систем. При використанні традиційного шифрування основна проблема захисту полягає в надійному збереженні секретності ключа.
За допомогою рис. 2.2 давайте розглянемо основні елементи схеми традиційного шифрування докладніше. Джерело створює повідомлення у формі відкритого тексту Х = [Х1, Х2, .. Хm]. Елементами X, відкритого тексту X є символи деякого кінцевого алфавіту. Традиційно використовувався алфавіт, що складається з 26 великих літер англійської мови, але сьогодні частіше застосовується двійковий алфавіт { 0,1 }. Для шифрування генерується ключ у формі К = [К1, К2,..., Кj ]. Якщо ключ генерується там же, де і саме повідомлення, то ключ теж необхідно переправити одержувачу повідомлення через якісь секретні канали. Іншим рішенням може бути створення ключа третьою стороною, яка повинна захищеним способом забезпечити доставку ключа як відправнику, так і одержувачу повідомлення.
При наявності в якості вихідних даних повідомлення X і ключа шифрування К з допомогою алгоритму шифрування формується шифрований текст
Y= [ Y1, Y2,..., Yn]. Це можна записати у вигляді формули
Y = Ех ( Х ).
Дана нотація означає, що Y виходить шляхом застосування алгоритму шифрування Е до відкритого тексту X при використанні ключа К.
Передбачуваний одержувач повідомлення, розташовуючи ключем К, повинен мати можливість виконати зворотне перетворення
Х = DK (Y).
Противник, що володіє можливістю ознайомиться з Y, але не має доступу ні до К, ні до X, може спробувати відновити X або K або відразу обидва ці об'єкти. При цьому мається на увазі, що противник знає і алгоритм шифрування (Е), і алгоритм дешифрування (Р). Якщо противник зацікавлений розпізнати тільки одне конкретне повідомлення, йому слід зосередити свої зусилля на відновленні X шляхом побудови ймовірно відповідного вихідного відкритого тексту X`. Проте частіше противник буває зацікавлений в отриманні можливості читати і всі наступні повідомлення. У цьому випадку його основні зусилля мають бути зосереджені на відновленні K шляхом побудови ймовірно відповідного вихідного ключа K`.
Рис. 2.2. Шифрування та дешифрування по Файстелю
Криптографія
Класифікація криптографічних систем в загальному випадку будується на основі наступних трьох незалежних характеристик.
1 . Тип операцій з перетворення відкритого тексту в шифрований . Всі алгоритми шифрування ґрунтуються на використанні двох операцій: заміни (підстановки), що означає заміщення кожного елемента відкритого тексту ( біта, букви, групи бітів або групи букв ) деяким іншим елементом, і перестановки, яка означає зміну порядку слідування елементів відкритого тексту. При цьому головною вимогою виявляється відсутність втрат інформації (тобто оборотність всіх операцій). У більшості реальних схем шифрування застосовують не одну, а комбінацію декількох операцій заміни та перестановки. Відповідні шифри називаються продукційними
2 . Число застосовуваних ключів. Якщо і відправник, і одержувач використовують один і той же ключ, система називається симетричною, системою з одним ключем, системою з секретним ключем або схемою традиційного шифрування . Якщо відправник і одержувач використовують різні ключі, система називається асиметричною, системою з двома ключами або схемою шифрування з відкритим ключем.
3 . Метод обробки відкритого тексту. Блочне шифрування припускає обробку відкритого тексту блоками, в результаті якої виходять блоки шифрованого тексту. Потокове шифрування має на увазі шифрування елементів відкритого тексту послідовно, після чого на кожному етапі виходить по одному елементу шифрованого тексту.
Криптоаналіз
Процес відтворення противником відкритого тексту або ключа називається Криптоаналіз . При цьому використовувана криптоаналітиків стратегія залежить від схеми шифрування та інформації, наявної в його розпорядженні.
У табл. 2.1 наведено узагальнений перелік різних типів криптоаналізу залежно від інформації, якою володіє криптоаналітик .
Самим складним з усіх представлених в таблиці є випадок, коли в розпорядженні криптоаналітика є тільки шифрований текст. Іноді буває невідомий навіть алгоритм шифрування, але в основному можна припускати, що алгоритм шифрування противник знає. За цих умов один з можливих підходів криптоаналізу полягає в простому переборі всіх можливих варіантів ключів . Однак, якщо простір можливих ключів дуже велике, такий підхід стає нереальним. Тому противнику доводиться більше покладатися на аналіз самого шифрованого тексту, що, як правило, означає виявлення статистичних особливостей такого тексту. Для цього противник повинен мати деякі загальні припущення про вміст відкритого повідомлення, наприклад, про те, що текст написаний англійською або французькою мовою, що це ехе-файл MS DOS, що це вихідний код програми на мові Java, що це файл з інформацією про банківські рахунки і т.п.
Спорідненим по відношенню до задачі криптоаналізу з відомим відкритим текстом є завдання криптоаналізу з імовірно відомим текстом. Якщо супротивник взагалі не має уявлення про тему повідомлення, йому буде важко вирішити, в якому напрямку вести пошук . Однак, якщо він знає якусь специфічну інформацію про вміст повідомлення, частина повідомлення може виявитися для нього з великою ймовірністю відомою. Наприклад, якщо відомо, що пересилаємий файл містить інформацію про банківські рахунки, противник може вгадати розташування певних слів у заголовку цього файлу. А вихідний код програми, створеної деякої компанією, може містити інформацію про авторські права, для якої компанія у своїх програмах може завжди вибирати одну і ту ж позицію.
Табл. 2.1 Типи криптоаналізу та відома криптоаналітику інформація
Тип криптоаналізу |
Дані, відомі криптоаналітику |
Аналіз тільки шифрованого тексту |
Алгоритм шифрування Шифрований текст, який підлягає розшифровці |
Аналіз з відомим відкритим текстом |
Алгоритм шифрування Шифрований текст, який підлягає розшифровці Одна або кілька пар відповідних фрагментів відкритого і шифрованого тексту, створеного з одним і тим же секретним ключем |
Аналіз з обраним відкритим текстом |
Алгоритм шифрування Шифрований текст, який підлягає розшифровці Обраний криптоаналітиком відкритий текст і відповідний шифрований текст, створений за допомогою секретного ключа |
Аналіз з обраним шифрованим текстом |
Алгоритм шифрування Шифрований текст, який підлягає розшифровці Обраний криптоаналітиком шифрований текст і відповідний відкритий текст, розшифрований за допомогою секретного ключа |
Аналіз з обраним текстом |
Алгоритм шифрування Шифрований текст, який підлягає розшифровці Обраний криптоаналітиком відкритий текст і відповідний шифрований текст, створений за допомогою секретного ключа Обраний криптоаналітиком шифрований текст і відповідний відкритий текст, розшифрований за допомогою секретного ключа |
Якщо аналітик зможе тим чи іншим способом отримати доступ до системи, яка генерує повідомлення, щоб пропустити через неї вибране ним повідомлення, то він отримає можливість провести криптоаналіз з обраним відкритим текстом. У загальному випадку, якщо криптоаналитик має можливість за своїм розсудом вибирати повідомлення і шифрувати його, то при правильному виборі повідомлень для шифрування він може цілком виправдано сподіватися розгадати ключ.
Тут доречно дати два визначення. Схема шифрування називається безумовно захищеною (абсолютно стійкою), якщо породжений за цією схемою шифрований текст не містить інформації, достатньої для однозначного відновлення відповідного відкритого тексту, який би великий за обсягом шифрований текст не був у супротивника . Це означає, що незалежно від того, скільки часу витратить противник на розшифровку, йому не вдасться розшифрувати шифрований текст просто тому, що в зашифрованому тексті немає інформації, необхідної для відновлення відкритого тексту. Серед алгоритмів шифрування абсолютно стійких немає, за винятком так званої стрічки одноразового використання ( або схеми з одноразовим блокнотом ), описаної в цій главі нижче . Таким чином, максимум, чого може очікувати користувач від того чи іншого алгоритму шифрування, це виконання хоча б одного з двох наступних критеріїв захищеності .
Вартість злому шифру перевищує вартість розшифрованої інформації.
Час, який потрібен для того, щоб зламати шифр, перевищує час, протягом якого інформація актуальна.
Схема шифрування називається захищеною за обчисленнями, якщо вона відповідає обом зазначеним критеріям. Єдина проблема тут у тому, що дуже непросто кількісно оцінити ті зусилля, які необхідні для успішного криптоаналізу шифрованого тексту, створеного на основі даної конкретної схеми шифрування.
Стеганографія
Ми почнемо обговорення з опису технології, яка, строго кажучи, шифруванням не є - зі стеганографії.
Для того щоб приховати інформацію повідомлення, яке містить відкритий текст, є два шляхи. Методи стеганографії приховують сам факт існування повідомлення, тоді як методи криптографії з допомогою різних перетворень тексту роблять вміст повідомлення для сторонніх незрозумілим. Згідно запропонованої Каном (Капп) термінології, захист (security) визначається як сукупність методів маскування інформації, а розвідка (intelligence) - як сукупність методів отримання інформації.
Однією з найпростіших форм стеганографії (але вимагає значних витрат часу) є така розстановка слів або букв на перший погляд абсолютно нешкідливого відкритого тексту, щоб цей текст насправді ніс у собі певне приховане повідомлення. Наприклад, приховане повідомлення може утворюватися першими літерами кожного слова відкритого повідомлення.
Застосування підстановок
При підстановці окремі букви відкритого тексту замінюються іншими літерами або числами або якимись іншими символами. Якщо відкритий текст розглядається як послідовність бітів, то підстановка зводиться до заміни заданих послідовностей бітів відкритого тексту заданими послідовностями бітів шифрованого тексту.
Шифр Цезаря
Найдавнішим і найпростішим з відомих підстановочних шифрів є шифр, який використовували Юлієм Цезарем. У шифрі Цезаря кожна буква алфавіту замінюється буквою, яка знаходиться на три позиції далі в цьому ж алфавіті. Найпростіше побачити це на прикладі.
Відкритий текст: meet me after the toga party
Шифрований текст: PHHW PH DIWHU WKH WRJD SDUMB
Зверніть увагу на те, що алфавіт вважається "циклічним", тому після Z йде А. Визначити перетворення можна, перерахувавши всі варіанти, як показано нижче.
Відкритий текст:
abcdefghijklmnopqrstuvwxyz
Шифрований текст:
DEFGHIJKLMNOPQRSTUVWXYZABC
Якщо кожній букві призначити числовий еквівалент (а = 1, b = 2 і т.д.), то алгоритм можна виразити наступними формулами. Кожна буква відкритого тексту р замінюється буквою шифрованого тексту С;
С = E (p) = (p + 3) mod (26).
У загальному випадку зсув може бути будь-яким, тому узагальнений алгоритм Цезаря записується формулою
C = E (p) = (p + k) mod (26),
де k приймає значення в діапазоні від 1 до 25. Алгоритм дешифрування так само простий:
P = D (C) = (C- k ) mod (26).
Якщо відомо, що певний текст був шифрований за допомогою коду Цезаря, то за допомогою простого перебору всіх варіантів розкрити шифр дуже просто - для цього достатньо перевірити 25 можливих варіантів ключів.
Застосування методу послідовного перебору всіх можливих варіантів виправдано наступними трьома важливими характеристиками даного шифру .
Відомі алгоритми шифрування і дешифрування .
Необхідно перебрати всього 25 варіантів .
Мова відкритого тексту відома і легко впізнавана.
У більшості випадків, коли мова йде про захист мереж, можна припускати, що алгоритм відомий. Єдине, що робить криптоаналіз на основі методу послідовного перебору практично марним - це застосування алгоритму, для якого потрібно перебрати занадто багато ключів. Наприклад, алгоритм DES, описаний далі, який використовує 56- бітові ключі, вимагає при послідовному переборі розглянути простір з 256, або більш ніж 7 х 1016 ключів.
Третя характеристика також важлива. Якщо мова, якою написаний відкритий текст, невідома, то розшифрований текст можна не розпізнати . Більше того, вихідний текст може складатися з скорочень або бути яким-небудь чином стиснутий - це також утрудняє розпізнавання . Наприклад, на рис. 2.5 показаний фрагмент(треба вставити скрін-шот) текстового файлу, стисненого за допомогою широко відомого алгоритму ZIP. Якщо тепер цей файл зашифрувати за допомогою простого підстановочного шифру ( необхідно лише розширити шифр, щоб він включав всі символи, а не тільки 26 літер), то при використанні методу послідовного перебору варіантів розшифрований текст розпізнати буде дуже складно.
Моноалфавітні шифри
При наявності всього 25 можливих варіантів ключів шифр Цезаря далекий від того, щоб вважатися надійно захищеним. Істотного розширення простору ключів можна домогтися, дозволивши використання довільних підстановок. Давайте ще раз пригадаємо шифр Цезаря.
Відкритий текст:
abcdefghijklmnopqrstuvwxyz
Шифрований текст:
DEFGHIJKLMNOPQRSTUVWXYZABC
Якщо в рядку "Шифрований текст" допустити використання будь-якої з перестановок 26 символів алфавіту, то ми отримаємо 26!, Або більш ніж 4×1026 можливих ключів. Це на 10 порядків більше, ніж розмір простору ключів DES. І це здається достатнім для того, щоб унеможливити успішне застосування криптоаналізу на основі методу послідовного перебору.
Однак для криптоаналітика існує й інша лінія атаки. Якщо криптоаналітик має уявлення про природу відкритого тексту (наприклад, про те, що це не стиснутий текст англійською мовою), можна використовувати відому інформацію про характерні ознаки, властивих текстам на відповідній мові. Щоб показати, як цей підхід застосовується на практиці, розглянемо невеликий приклад, ідея якого була взята з книги [SINK66]. Припустимо, нам потрібно розшифрувати наступний шифрований текст.
UZQSOVDOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ
VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX
EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ
На першому етапі можна визначити відносну частоту появи в тексті різних букв і порівняти їх з середньостатистичними даними для букв англійської мови, показаними на рис. 2.3 (наводиться за [SЕВЕ89]).
Якщо повідомлення досить довге, цієї методики вже може бути досить для розпізнавання тексту, але в нашому випадку, коли повідомлення невелике, точної відповідності очікувати не доводиться. У нашому випадку відносна частота входження букв в зашифрованому тексті (у відсотках) виявляється наступною.
P |
13,33 |
H |
5,83 |
F |
3,33 |
B |
1,67 |
C |
0,00 |
Z |
11,67 |
D |
5,00 |
W |
3,33 |
G |
1,67 |
K |
0,00 |
S |
8,33 |
E |
5,00 |
Q |
2,50 |
Y |
1,67 |
L |
0,00 |
U |
8,33 |
V |
4,17 |
T |
2,50 |
I |
0,83 |
N |
0,00 |
O |
7,50 |
X |
4,17 |
A |
1,67 |
J |
0,83 |
R |
0,00 |
M |
6,67 |
|
|
|
|
|
|
|
|
Рис. 2.3. Відносна частота появи букв в англійському тексті
Порівнюючи ці результати з даними, показаними на рис. 2.3, можна зрозуміти, що, швидше за все, літери Р і Z шифрованого тексту є еквівалентами букв e і t відкритого тексту, хоча важко сказати, якій саме букві - Р або Z - відповідає e, а якій - t. Букви S, U, О. М і Н, що володіють відносно високою частотою появи в тексті, швидше за все, відповідають буквах з множини { r, n, i, o, a, s }. Букви з низькою частотою появи (а саме A, В, G, Y, I, J), мабуть, відповідають буквам множини { w, v, b, k, x, q, j, z }.
Далі можна піти декількома шляхами. Можна, наприклад, прийняти якісь припущення про відповідності і на їх основі спробувати відновити відкритий текст, щоб побачити, чи виглядає такий текст схожим на що-небудь осмислене. Більш систематизований підхід полягає в продовженні пошуку в тексті нових характерних закономірностей. Наприклад, може бути відомо, що в розглянутому тексті обов'язково повинні бути присутніми деякі слова (the). Або ж можна шукати повторювані послідовності букв шифрованого тексту і намагатися визначити їх еквіваленти у відкритому тексті.
Один з дуже ефективних методів полягає в підрахунку частоти використання комбінацій, які складаються з двох букв. Такі комбінації називають біграмами. Для значень відносної частоти появи в тексті біграм теж можна побудувати гістограму, подібну показаної на рис. 2.6. Відомо, що в англійській мові найпоширенішою є біграма th. У нашому зашифрованому тексті найчастіше (три рази) зустрічається комбінація ZW. Тому можна припустити, що Z відповідає t, a W - h.
Застосування перестановок
Всі розглянуті вище методи ґрунтувалися на заміщенні символів відкритого тексту різними символами шифрованого тексту. Принципово інший клас перетворень будується на використанні перестановок букв відкритого тексту. Шифри, створені за допомогою перестановок, називають перестановочними шифрами.
Найпростіший з таких шифрів використовує перетворення "драбинки", що полягає в тому, що відкритий текст записується вздовж похилих рядків певної довжини ("сходинок"), а потім зчитується порядково по горизонталі. Наприклад, щоб шифрувати повідомлення "meet me after the toga party" за методом драбинки зі сходинкою довжиною 2, запишемо це повідомлення у вигляді
m e m a t r h t g p r y
e t e f e t e o a a t
Шифроване повідомлення буде мати наступний вигляд.
MEMATRHTGPRYETEFETEOAAT
Такий "шифр" особливої складності для криптоаналізу не представляє. Більш складна схема припускає запис тексту повідомлення в горизонтальні рядки однакової довжини і подальше зчитування тексту стовпець за стовпцем, але не по порядку, а відповідно до деякої перестановкою стовпців. Порядок зчитування стовпців при цьому стає ключем алгоритму. Розглянемо наступний приклад.
attack postponed until two am xyz (атаку відклали до 2 ранку XYZ)
Ключ: 4 3 1 2 5 6 7
Відкритий текст: a t t a c k p
o s t p o n e
d u n t i l t
w o a m x y z
Шифрований текст: TTNAAPTMTSUOAODWCOIXKNLYPETZ
Простий перестановочний шрифт дуже легко розпізнати, оскільки літери в ньому зустрічаються з тією ж частотою, що і у відкритому тексті. Наприклад, для щойно розглянутого способу шифрування з перестановкою стовпців аналіз шифру виконати досить просто - необхідно записати шифрований текст у вигляді матриці і перебрати можливі варіанти перестановок для стовпців. Можна використовувати також таблиці значень частоти біграм і триграм.
Перестановочний шифр можна зробити істотно більш захищеним, виконавши шифрування з використанням перестановок кілька разів. Виявляється, що в цьому випадку застосовану для шифрування перестановку відтворити вже не так просто. Наприклад, якщо попереднє повідомлення шифрувати ще раз за допомогою того ж самого алгоритму, то результат буде наступним
Ключ: 4 3 1 2 5 6 7
Відкритий текст: t t n a a p t
m t s u c a o
d w c o i x k
n l y p e t z
Шифрований текст: NSCYAUOPTTWLTMDNAOIEPAXTTOKZ
Щоб наочніше уявити те, що ми отримаємо в підсумку повторного застосування перестановки, зіставимо кожну букву вихідного відкритого тексту з номером відповідної їй позиції. Наше повідомлення складається з 28 букв, і вихідною послідовністю буде послідовність
01 02 03 04 05 06 07 08 09 10 11 12 13 14
15 16 17 18 19 20 21 22 23 24 25 26 27 28
Після першої перестановки отримаємо послідовність, яка все ще зберігає деяку регулярність структури.
03 10 17 24 04 11 18 25 02 09 16 23 01 08
15 22 05 12 19 26 06 13 20 27 07 14 21 28
Після другої перестановки виходить наступна послідовність.
17 09 05 27 24 16 12 07 10 02 22 20 03 25
15 13 04 23 19 14 11 01 26 21 18 08 06 28
Регулярність цієї послідовності вже зовсім не проглядається, тому її криптоаналіз зажадає значно більше зусиль.
