НОУ ІНТУЇТ | лекція | Традиційні шифри з симетричним ключем

  1. багатоалфавітних шифри У многоалфавитной підстановці кожна поява символу може мати різну заміну....
  2. криптоаналіз
  3. Шифр Плейфера
  4. Криптоаналіз шифру Плейфера
  5. Шифр Віженера
  6. список Віженера

багатоалфавітних шифри

У многоалфавитной підстановці кожна поява символу може мати різну заміну. Відносини між символом в початковому тексті і символом в зашифрованому тексті - "один до багатьох". Наприклад, "a" може бути зашифровано як "D" на початку тексту, але як "N" - в середині. Багатоалфавітних шифри мають перевагу: вони приховують частоту появи символу основного мови. Єва не може використовувати статистичну частоту окремого символу, щоб зламати зашифрований текст.

Щоб створити багатоалфавітних шифр, ми повинні зробити кожен символ зашифрованого тексту залежать від відповідного символу вихідного тексту і позиції символу вихідного тексту в повідомленні. Це має на увазі, що наш ключ повинен бути потоком подключей, в яких кожен підключ так чи інакше залежить від позиції символу вихідного тексту, який використовується для вибору підключа шифрування. Іншими словами, ми повинні мати ключовий потік k = (k1, k2, k3. ....), В якому ki застосовується, щоб зашифрувати i-тий символ в початковому тексті і створити i-тий символ в зашифрованому тексті.

Автоключевой шифр

Щоб зрозуміти залежність ключа від позиції, обговоримо простий багатоалфавітних шифр, названий "автоключевим". У цьому шифрі ключ - потік подключей, в якому кожен підключ використовується, щоб зашифрувати відповідний символ в початковому тексті. Перший з'єднання - певне заздалегідь значення, таємно узгоджене Алісою і Бобом. Другий з'єднання - значення першого символу вихідного тексту (між 0 і 25). Третій - i -тое значення другого вихідного тексту. І так далі.

P = P1 P2 P3 ... .. C = C1 C2 C3 ... .. K = (k1, P1, P2, P3, ... ..) Шифрування Ci = (Pi + ki) mod 26 Дешифрування Pi = (Ci - ki) mod 26

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

приклад 4.14

Припустимо, що Аліса і Боб погодилися використовувати автоключевой шифр з початковим ключовим значенням k1 = 12. Тепер Аліса хоче передати Бобу повідомлення "Attack is today" ( "Атака - сьогодні"). Шифрування проводиться символ за символом. Кожен символ в початковому тексті спочатку замінюється його значенням цілого числа, як показано на Мал. 4.8 , Перший підключ додається, щоб створити перший символ зашифрованого тексту. Інша частина ключа створюється в міру читання символів вихідного тексту. Зверніть увагу, що шифр є багатоалфавітних, тому що ці три появи "a" в початковому тексті зашифровані різному. Три виникнення "t" також зашифровані різному.

Оригінальний текст attackistoday Значення P 00 19 19 00 02 10 08 18 19 14 03 00 24 Потік ключів 12 00 19 19 00 02 10 08 18 19 14 03 00 Значення C 12 19 12 19 02 12 18 00 11 07 17 03 24 Зашифрований текст MTMTCMSALHRDY

криптоаналіз

Автоключевой шифр дійсно приховує статистику частоти окремого символу. Однак він так само вразливий при атаці за допомогою грубої сили, як і адитивний шифр. Перший з'єднання може бути тільки одним з 25 значень (1 - 25). Ми потребуємо багатоалфавітних шифри, які не тільки приховують характеристики мови, а й мають великі безлічі ключів.

Шифр Плейфера

Інший приклад багатоалфавітних шифру - Шифр ​​Плейфера, який використовували британської армією протягом Першої світової війни. Ключ засекречування в цьому шифрі зроблений з 25 букв алфавіту, розміщених в матриці Інший приклад багатоалфавітних шифру - Шифр ​​Плейфера, який використовували британської армією протягом Першої світової війни (Букви I і J розглядаються при шифруванні як однакові). За допомогою різних угод про розміщення букв в матриці можна створити багато різних ключів засекречування. Одне з можливих угод показано на малюнку 4.13 .


Мал.4.13.

Приклад секретного ключа Плейфера

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

Шифр використовує три правила для шифрування:

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

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

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

Шифр Плейфера відповідає нашим критеріям для багатоалфавітних шифру. Ключ - потік подключей, в якому вони створюються по два одночасно. У шифрі Плейфера потік ключів і потік шифру - ті ж самі. Це означає, що вищезгадані правила можна уявити як правила для створення потоку ключів. Алгоритм кодування бере пару символів з вихідного тексту і створює пару подключей, дотримуючись зазначених правил. Ми можемо сказати, що потік ключів залежить від позиції символу в початковому тексті. Залежність від позиції має тут різну інтерпретацію: з'єднання для кожного символу вихідного тексту залежить від наступного або попереднього "сусіда". Розглядаючи шифр Плейфера, таким чином, можна сказати, що зашифрований текст - це фактично потік ключів.

P = P1P2P3 ... .. C = C1C2C3 ... .. k = [(k1, k2), (k3, k4), ... ..] Шифрування Ci = ki Дешифрування Pi = ki

приклад 4.15

Нехай нам треба зашифрувати вихідний текст "hello", який використовує ключі на Мал. 4.13 . Коли ми групуємо літери по парам, ми отримуємо "he, ll, o". Ми повинні вставити x між двома l (ель), після чого отримаємо "he, lx, lo". Ми маємо

he -> EC lx -> QZ lo -> BX Оригінальний текст: hello Зашифрований текст: ECQZBX

Ми можемо бачити з цього прикладу, що наш шифр - фактично багатоалфавітних шифр: два появи l (ель) зашифровані як "Q" і "B".

Криптоаналіз шифру Плейфера

Очевидно, атака грубої сили шифру Плейфера дуже важка. Розмір домену - 25! (Факторіал 25). Крім того, шифровка приховує частоту окремих букв.

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

Шифр Віженера

Один цікавий вид багатоалфавітних шифру був створений Блез де Віженер, французьким математиком шістнадцятого століття. Шифр Віженера використовує різну стратегію створення потоку ключів. Потік ключів - повторення початкового потоку ключа засекречування довжини m, де ми маємо 1 <m <26. Шифр може бути описаний таким чином: (k1, k2, ...., Km) - первинний ключ засекречування, узгоджений Алісою і Бобом.

P = P1P2P3 ... .. C = C1C2C3 ... .. k = [(k1, k2), (k3, k4), ... ..] Шифрування Ci = ki Дешифрування Pi = ki

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

приклад 4.16

Подивимося, як ми можемо зашифрувати повідомлення "She is listening (Вона слухає)", використовуючи ключове слово на 6 символів "PASCAL". Початковий потік ключів - це (15, 0, 18, 2, 0, 11). Потік ключів - повторення цього початкового потоку ключів (стільки разів, скільки необхідно).

Оригінальний текст sheislistening Значення P 18 07 04 08 18 11 08 18 19 04 13 08 13 06 Потік ключів 15 00 18 02 00 11 15 00 18 02 00 11 15 00 Значення C 07 07 22 10 18 22 23 18 11 6 13 19 02 06 Шифрований текст HHWKSWXSLGNTCG

приклад 4.17

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

приклад 4.18

Розібравши приклад 4.18, ми переконаємося, що адитивний шифр - окремий випадок шифру Віженера, в якому m = 1.

список Віженера

Інший спосіб розгляду шифрів Віженера - за допомогою того, що названо списком Віженер (Vigenere tableau) і показано в таблиці 4.3 .


Мал.4.14.

Шифр Віженера як комбінація адитивних шифрів Таблиця 4.3. Список Віженера a b c d e f g h i j k l m n o p q r s t u v w x y z A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

Перший рядок показує символи вихідного тексту, який буде зашифрований. Перша колонка містить стовпець символів, які використовуються ключем. Інша частина таблиці показує символи зашифрованого тексту. Щоб знайти зашифрований текст для початкового тексту "she listening", використовуючи слово "PASCAL" як ключ, ми можемо знайти "s" в першому рядку, "P" в першому стовпці, на перетині рядка і стовпця - символ з зашифрованого тексту "H" . Знаходимо "h" в першому рядку і "A" у другому стовпці, на перетині рядка і стовпця - символ "H" з зашифрованого тексту. І повторюємо ті ж дії, поки всі символи зашифрованого тексту не будуть знайдені.