МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ДОСЛІДЖЕННЯ ЗАХИСТУ КОМПЮТЕРНИХ СИСТЕМ ВІД НЕСАНКЦІОНОВАНОГО ДОСТУПУ ПРИКЛАДІ ВИБРАНИХ ІСТОРИЧНИХ ШИФРІВ
МЕТОДИЧНІ ВКАЗІВКИ
до виконання лабораторної роботи №1,2
з курсу “Системи ТЗІ”
для студентів спеціальності
Затверджено
на засіданні кафедри
“Захист інформації” протокол № від 2010 р.
Львів – 2010
Мета: Вивчення історичних шифрів заміни та перестановок. Отримати навики роботи з шифрами в пакеті CrypTool. Навчитися проводити шифрування і дешифрування тексту, застосовувати набуті знання для комп’ютерного аналізу текстової інформації.
1. КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ
Криптографія – термін утворений з двох грецьких слів: kryptós - "тайний", gráphein –"письмо".
Традиційним завданням криптографії було забезпечення конфіденційності текстової інформації, тобто приховування її семантичного змісту шляхом шифрування.
Рис.1. Узагальнена схема традиційного шифрування
Схему традиційного (симетричного) шифрування (рис. 1) можна описати використовуючи п’ять основних понять:
Відкритий або явний текст (англ. Plaintext) – це вихідний текст або дані, які подаються на вхід алгоритму шифрування.
Алгоритм шифрування (англ. Enkryption) – це процес спеціальних криптографічних перетворень, який виконується над символами відкритого тексту.
Таємний ключ (англ. Key) – це параметр, який також подається на вхід алгоритму шифрування і є необхідний для безперешкодного здійснення шифрування текстів.
Шифрований текст або шифрограма – це перетворене повідомлення, яке одержують в результаті шифрування і яке залежить від відкритого тексту та таємного ключа (одне і те ж саме повідомлення шифроване двома різними ключами дає різні шифротексти).
Алгоритм дешифрування (англ. Dekryption) – це процес зворотних щодо шифрування перетворень, тобто вхідною інформацією є шифротекст і той самий таємний ключ, що використовувався для шифрування, а результатом відновлений відкритий текст.
Є два основні методи, криптографічних перетворень:
1. Підстановки (substitution) – полягає на заміні символів відкритого тексту на інші символи того самого або іншого алфавіту.
2. Перестановок (transposition або permutation) – полягає на перемішуванні символів відкритого тексту, отже шифрограма містить лише ті символи і в тій самій кількості, що і вихідний явний текст.
Одержання відкритого повідомлення із шифрованого без наперед відомого ключа називається взламанням шифру, на відміну від дешифрування – коли ключ відомий.
Злам шифру без знання ключа з метою оцінки його досконалості, тобто його криптологічної стійкості є предметом дисципліни під назвою криптоаналіз, що поряд із криптографією є складовою більш загальної дисципліни – криптології.
Однією із важливих характеристик шифру є число його можливих ключів, оскільки взлом шифру може здійснюватися перебором можливих ключів.
1.1. Шифри підстановки
Шифр підстановки кожен символ відкритого тексту замінює на деякий інший. В класичній криптографії розрізняють чотири типи шифру підстановки:
1. Одноалфавітний шифр підстановки (шифр простої заміни) - шифр, при якому кожен символ відкритого тексту замінюється на деякий, фіксований при даному ключі символ того ж алфавіту. Приклади: шифри Цезара, Rot-13.
2. Гомоморфний (однозвучний) шифр підстановки схожий на одноалфавітний за винятком того, що символ відкритого тексту може бути замінений одним з декількох можливих символів.
3. Поліграммний шифр підстановки замінює не один символ, а цілу групу. Приклади: шифр Плейфера, шифр Хілла.
4. Багатоалфавітний шифр підстановки складається з декількох шифрів простої заміни. Приклади: шифр Віженера, шифр Бофора, Варнама (одноразового блокноту).
Шифри одноалфавітної заміни Цезаря і Rot-13. В шифрі Цезаря як ключ використовується одна буква із алфавіту. Залежно від позиції цієї букви в алфавіті, букви шифрованого тексту зсуваються в замкнених циклах. Якщо алфавіт складається лише із великих букв (класичний випадок), пересування на одну позицію відбудеться, якщо вписати літеру "В", на дві - залітери "С" і т.д. При дешифруванні зашифрований текст пересувається в протилежному напрямі. Отже, модель шифрування та дешифрування можна подати такими формулами
(1.1)
(1.2)
де і - номер і-ої букви відповідно відкритого тексту і шифрограми; - ключ; - розмір алфавіту, наприклад для англійського алфавіту 26.
Приклад 1.
Припустимо, що в якості ключа до шифру використали букву "D".
Відповідно всі букви циклічно пересуваються на три позиції (табл. 1).
Таблиця 1
Приклад заміни дійсного тексту
Дійсний текст
Зашифрований текст
A
B
C
……
W
X
Y
Z
D
E
F
……
Z
A
B
C
Букву "А" не можна використовувати як ключ, тому що в цьому випадку текст "зашифрований" збігається із явним.
Особливим випадком шифру Цезаря є шифр Rот-13, який інколи застосовують на чатах та в дискусійних групах. Шифр Rot-13 пересуває кожну букву на 13 позицій, що відповідає шифру Цезаря з ключем "М". Повторне застосування шифру Rot-13 до шифрограми відтворює явний текст.
Багатоалфавітний шифр Віженера та його варіанти. У класичному варіанті для шифрування і дешифрування за Віженером використовувалася таблиця алфавітів, так звана tabula recta. Щодо англійського алфавіту таблиця Віженера складається з рядків по 26 символів, причому кожен наступний рядок зсувається на одну позицію (рис.1.2).
Для шифруваня кожної букви відкритого тексту шифр Віженера використовує різні алфавіти з цієї таблиці залежно від символу ключового слова. У шифрі Віженера ключ задається набором з символів, які по черзі визначають рядок (алфавіт) для заміни поточної букви відкритого тексту. Можна сказати, що шифр Віженера складається з послідовності декількох шифрів Цезаря із різними значеннями зсуву.
Приклад 2.
Припустимо, що початковий текст має вигляд:
LVIV POLITECHNIC NATIONAL UNIVERSITY
Нехай ключем буде слово KLYUCH, тобто період ключа . Оскільки довжина відкритого тексту складає 33 літери і перевищує розмір ключа, потрібно періодично повторювати ключ, поки його довжина не відповідатиме довжині початкового тексту.
VGGPRVVTRYEOXTAHCASZLUNBXTTYTZSEW
Рис. 1.2. Таблиця Віженера
Перша буква відкритого тексту L пердставлена у шифрограмі літерою V, яка знаходиться на перетині стовпця L та рядка K, що є першим символом ключа. Так само для другого символу відкритого тексту V використовується другий символ ключа L, тобто другий символ шифрованого тексту G виходить на перетині стовпця V і рядка L і т.д. (рис. 1.2).
Дешифрування здійснюється у зворотному напрямку: із рядка таблиці Віженера, що відповідає першому символу ключового слова K знаходять першу літеру зашифрованого тексту V і за стовпцем, якому належить ця літера зчитують букву відкритого тексту L і т.д.
Модель процесу шифрування і дешифрування за Віженером можна описати формулами
(1.3)
(1.4)
де – і-й символ ключа.
Шифр Віженера з періодом 1 збігається із шифром Цезаря.
Повторне застосування двох і більше шифрів Віженера називатється складеним шифром Віженера і описується рівнянням:
(1.5)
де ключі , ..., можуть мати різні періоди, а період їх суми буде найменшим спільним кратним окремих періодів.
Якщо використовується шифр Віженера з «необмеженим» ключем, що не повторюється впродовж відкритого тексту, то одержуємо шифр одноразового блокноту (Вернама). Якщо ключем служить текст, що має зміст, то це шифр із біжучим ключем.
1.2. Перестановочні шифри
Простий перестановочний шифр із фіксованим періодом n розбиває початковий текст на блоки по n символів і в межах кожного такого блоку виконує деяку перестановку E. Ключем такого шифру є перестановочна матриця М або вектор В, який вказує правило перестановки. Загальна кількість можливих ключів визначається довжиною блоку n і рівна n!.
При дешифруванні використовується матриця оберненої перестановки М-1, яка є оберненою до матриці М, тобто М-1×М=I, де I - одинична матриця.
Класичним прикладом шифру перестановки є шифр Стародавньої Спарти. Ключем такого шифру була циліндрична паличка, а шифрування виконувалося так:
- вузька пергаментна стрічка намотувалася по спіралі на циліндричну паличку;
- шифрований текст записався на пергаментній стрічці по довжині палички, коли довжина палички закінчувалась, її повертали і текст писався далі, доти доки не закінчувався текст, або не списувалася вся пергаментна стрічка. В останньому випадку використовувався наступна стрічка.
Дешифрування виконувалася з використанням палички такого ж діаметру.
Таким чином, довжина блоку n визначалася довжиною та діаметром палички, а само шифрування полягало в перестановці символів початкового тексту відповідно до довжини обводу палички. Наприклад, використовуючи паличку, по довжині обводу якої поміщається 4 символи, а довжина палички дозволяє записати 6 символів, початковий текст: «ЦЕ ШИФР СТАРОДАВНЬОЇ СПАРТИ» перетвориться на шифрограму: «ЕФВПТРНАО ЕР ДЙТШР ИЇЕС». Довжина блоку n = 23, а вектор В, вказує правило перестановки, для цього шифру може бути записане так:
В = {1, 7, 13, 19, 2, 8, 14, 20, 3, 9, 15, 21, 4, 10, 16, 22, 5, 11, 17, 23, 6, 12, 18}.
2. ПОСЛІДОВНІСТЬ ВИКОНАННЯ РОБОТИ
2.1. Створити файл із заданим текстом (рис.2.1). Відкрити в опції Меню заданий викладачем файл з розширенням *.txt.
Рис. 2.1. Створення робочого файлу
2.2. Відкрити в діалоговому вікні Шифрування опцію Історичний (рис.2.2.).
Рис. 2.2. Початок роботи з історичними шифрувальними алгоритмами
2.3. Провести шифрування застосувавши шифри Цезаря і Rot-13. Ввести ключ згідно варіанту (рис. 2.3).
Рис. 2.3. Ввід ключа шифру Цезара
Введіть букву алфавіту і клікніть на кнопку Шифруй. З'явиться вікно із зашифрованим текстом. Збережіть зашифрований техт Cesar.txt.
Відкритий текст може бути отриманий через дешифрацію документа. Потрібно при активному вікні з шифрограмою, знову вибрати в меню Шифрування \ Історичне \ Ceasar / Rot-13 варіант Цезар і ввести ключ, за допомогою якого даний документ був зашифрований. Щоб відтворити з шифрограми дійсний текст клікніть на клавішу Дешифруй.
В діалозі Опції тексту (рис. 2.4) можна розширити діапазон символів алфавіту.
Текст, також, можна записати блоками, якщо використати опцію Розділити.
Рис. 2.4. Діалог Опції тексту
2.4. Визначіть ентропію відкритого тексту через меню Криптоаналіз (Kryptoanaliza) \ Засоби аналізу (Narzеdzia analizy) \ Entropia (рис. 2.5) і частості виступу окремих знаків в тексті з допомогою меню Kryptoanaliza \ Narzеdzia analizy \ Histogram (рис. 2.6).
Рис. 2.5. Аналіз ентропії відкритого тексту
Рис. 2.6. Аналіз частоти знаків в явному тексті
2.5. Визначіть ентропію шифрованого тексту і частоти виступу окремих знаків в цьому тексті (рис. 2.7).
Рис. 2.7. Аналіз частоти знаків в шифрованому тексті
Аналіз гістограм зашифрованого документу показує, що багатократність виступу знаків при ключі С були пересунуті на три позиції. Означає це, що цей алгоритм шифрування не є безпечним.
Якщо вибрати в меню Kryptoanaliza \ Algorytmy historyczne \ tylko szyfr \ Cezar документ буде автоматично проаналізований і можливе отримання ключа, який використовувався для шифрування документу.
2.5. Провести шифрування (дешифрування) застосувавши шифр Віженера. Ввести ключ відповідно п. 3.3. Провести частотний аналіз і визначити ентропію.
Ключ для алгоритму кодування Віженера вводиться в діалог Ввід ключа (рис. 2.8).
Рис. 2.8. Вікно вводу ключа для шифру Віженера
2.7. Знайдіть ключ для дешифрування документу за допомогою меню Kryptoanaliza/Algorytmy historyczne/Tylko szyfr\Vigenere, текст буде автоматично аналізований.
Спочатку відкриється вікно autokorelacja (автокореляція). Потім є можливість визначення довжини ключа за регулярними піками автокореляційної функції (11 знаків). Натиснувши клавішу Продовжити, отримаємо ключ, яким був зашифрований документ (рис. 2.9).
Рис. 2.9. Вікна аналізу шифру Вінеджера
2.8. Провести шифрування (дешифрування) застосувавши метод перестоновки. Ввести ключ відповідно п. 3.4. Провети частотні аналізи і визначити ентропії.
Ключ для алгоритму кодування вводиться в діалоговому вікні пермутація/транспозиція (рис. 2.10).
В кожне, з двох полів до заповнення, можна вписати ключове слово або нумеричну перестановку.
Заповнення першого поля обов'язкове. Заповнення другого поля є опціональним. Якщо було заповнено друге поле, створюється не одна а дві пермутації.
Для кожної пермутації додатково можна встановити виконання пермутації з колонок або з віршів.
Максимальна довжина пермутації 26. Може бути вписано або 26 великих букв, чи секвенція чисел, тобто пермутація 1, 2 ..., 26.
Через активацію відповідного поля вибору в групі опції, можна встановити шифруванням або дешифруванням вхідної пермутації, або анулювати дії.
Можна отримати більше інформації про вибір пермутації і її інверсії якщо клікнути кнопку шифрування або дешифрування (рис. 2.11).
Пермутація двохразового обміну колони називається подвійною транспозицією колон.
Рис. 2.10. Вікно шифрування методом транспозиції.
Рис. 2.11. Вікно застосування пермутації і інверсії пермутації.
3. ЗАВДАННЯ ДЛЯ ВИКОНАННЯ
3.1. Зашифрувати і розшифрувати текст наданий викладачем за допомогою алгоритму Цезаря. Ключ – літера в латинського алфавіту, позиція якої визначається номером прізвища студента в журналі викладача. Провести частотний аналіз і визначити ентропію.
3.2. Зашифрувати і розшифрувати текст наданий викладачем за допомогою алгоритму Rot-13. Провести частотні аналізи і визначити ентропії.
3.3. Зашифрувати і розшифрувати текст наданий викладачем за допомогою алгоритму Віженера. Ключ – прізвище студента в латинській транслітерації. Провести частотні аналізи і визначити ентропії.
3.4. Зашифрувати і розшифрувати текст наданий викладачем за методом перетановки. Ключ – прізвище студента в латинській транслітерації. Провести частотні аналізи і визначити ентропії.
3.5. Провести шифрування і дешифрування перших 12 символів тексту вручну за алгоритмами Цезара/Rot-13, Віженера, перестановок. Звірити з даними на комп’ютері.
4. ПРЕДСТАВЛЕННЯ РЕЗУЛЬТАТІВ У ЗВІТІ
Представити результати виконання лабораторної роботи і аналітичний матеріал відповідно п.п. 3.1.-3.5.
Скласти блок-схему програми, яка б відтворювала алгоритм шифрування/дешифрування за Віженером.
Висновки, що відображають переваги і недоліки досліджуваних алгоритмів.
5. Контрольні питання
Що називають шифрами заміни та перестановок?
Який загальний алгоритм шифрів заміни?
До якого класу відноситься шифр Цезаря, як він реалізується, різновидом якого алгоритму є?
Описати різновиди шифру Віженера.
Що є ключем шифру заміни? Чому дорівнює ключ складених шифрів заміни?
У чому слабкість шифрів заміни? Як можна збільшити стійкість шифру заміни?
Які алгоритми шифрів перестановок використовуються на практиці?
Який шифр називають шифром маршрутної перестановки?
У чому полягяє шифр вертикальної перестановки?
Для чого застосовується формула Стірлінга?
Що таке транспозиція? Який ключ складеної транспозиції?
Список літератури.
Безопасность информационных технологий. Методология создания систем защиты // Домарев В.В. – К.: ООО “ТИД ЛС”, 2002. – 688 с.
Столлингс Вильям. Основы защиты сетей. Приложения и стандарты: Пер. с англ. – М.: Издательский дом “Вильямс”, 2002. – 432 с.
Петраков А.В. Основы практической защиты информации. – М.: Радио и связь. 1999.- 368 с.
Брюс Шнайер. Практическая криптография. – М.: Издательский дом “Вильямс”, 2005. – 424 с.