Файл: Опорный конспект.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.06.2024

Просмотров: 64

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Традиційні симетричні криптосистеми

Шифри простої заміни

План

1 Полібіанський квадрат

2 Система шифрування Цезаря

3 Аффінна система підстановок Цезаря

4 Система Цезаря із ключовим словом

5 Таблиці Трисемуса

6 Біграмний шифр Плейфейра

7 Криптосистема Хілла

8 Система омофонів

Шифри простої заміни

При шифруванні заміною (підстановкою) символи тексту, що шифруються, замінюються символами того самого або іншого алфавіту із заздалегідь установленим правилом заміни. У шифрі простої заміни кожен символ вихідного тексту замінюється символами того самого алфавіту однаково протягом всього тексту. Часто шифри простої заміни називають шифрами одноалфавітної підстановки.

1 Полібіанський квадрат

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

(лямбда)

(ні)

(тета)

(сігма)

(хі)

(ро)

(пі)

(іпсилон)

(альфа)

(йота)

(мі)

(ета)

(дельта)

(фі)

(гама)

(псі)

(ксі)

(бета)

(омега)

(омікрон)

(каппа)

(епсилон)

 

(дзета)

(тау)

Рисунок 1 – Полібіанський квадрат При шифруванні в полібіанському квадраті знаходили букву відкритого тексту та записували в

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

одержимо такий шифротекст

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

2 Система шифрування Цезаря

Шифр Цезаря є окремим випадком шифру простої заміни (одноалфавітної підстановки). Шифр одержав свою назву від імені римського імператора Гая Юлія Цезаря, який використовував цей шифр при листуванні із Цицероном (близько 50 р. до н.е.).

При шифруванні вихідного тексту кожна буква замінялася на іншу букву того самого алфавіту за таким правилом. Буква для підстановки визначалася шляхом зсуву по алфавіту від букви відкритого тексту на K позицій. При досягненні кінця алфавіту виконувався циклічний перехід до його початку. Цезар використав шифр із значенням K=3.

Наприклад, послання Цезаря ALEA JACTA EST («Жереб кинутий») для ключа K=3 у зашифрованому вигляді виглядає так: DOHD MDFWD HVW.

Таким чином, система Цезаря являє собою одноалфавітну підстановку, що шифрує n-грамуx0 , x1 , x2 , , xn 1 відкритого тексту в n-граму y0 , y1 , y2 , , yn 1 шифротексту відповідно до такого правила:

11


 

yi EK (xi ), 0 i n,

 

: j ( j K ) mod m, 0 K m,

EK

де

j – числовий код букви відкритого тексту;

( j K ) mod m – числовий код відповідної букви шифротексту.

Система шифрування Цезаря утворює сімейство одноалфавітних підстановок для обраних значень ключа K , причому 0 K m.

Перевагою системи шифрування Цезаря є простота шифрування та розшифрування. До недоліків системи Цезаря необхідно віднести такі:

підстановки, що виконуються відповідно до системи Цезаря, не маскують частот появи букв вихідного відкритого тексту;

зберігається алфавітний порядок у послідовності букв, якими замінюються букви відкритого тексту; при зміні значення K змінюються тільки початкові позиції такої послідовності;

число можливих ключів K досить мале і обмежене кількістю букв алфавіту;

шифр Цезаря легко розкривається на основі аналізу частот появи букв у шифротексті.

Криптоаналіз шифру Цезаря

Алгоритм злому шифру Цезаря можна виконати, використовуючи такий алгоритм:

1Визначити частоти символів алфавіту. Занести їх у масив FiA.

2Визначити частоти символів шифротексту. Занести їх у масив FiC:

а) обчислити скільки разів трапляється той або інший символ у шифротексті (занести в масив freq);

б) визначити кількість символів у шифротексті (l);

в) нормувати частоти символів, обчислені в пункті 2(a), результат помістити в масив FiC, тобто

FiC[i] friq[i] . l

3 Знайти таке значення k, при якому сума одноіменних різниць d була б мінімальною: а) обчислити для всіх значень k=0, 1, … , 26 суми різниць

26

 

FiA j FiC m

 

 

d

 

 

, де m ( j k 27) mod 27 ;

 

 

j 0

 

 

б) знайти мінімальну суму різниць d; в) запам'ятати значення k.

4 Розшифрувати шифротекст, використовуючи ключ k.

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

3 Аффінна система підстановок Цезаря

У системі шифрування Цезаря використовувалися тільки адитивні властивості множини цілих

чисел Zm . Однак елементи множини Zm можна також множити за модулем m. Застосовуючи одночасно

операції додавання та множення за модулем m над елементами множини Zm , можна одержати систему

підстановок, яку називають аффінною системою підстановок Цезаря.

Визначимо перетворення в такій системі:

Ea,b : Zm Zm ,Ea,b : t Ea,b t ,

Ea,b t (at b) mod m,

де a,b Zm , 0 a<m, 0 b<m , НСД (a, m) 1.

У такому перетворенні літера, що відповідає числу t, замінюється літерою, що відповідає числовому значенню (at+b) за модулем m.

12


Слід помітити, що перетворення Ea,b t є взаємно однозначним відображенням на множині

Zm тільки в тому випадку, якщо числа а та m є взаємно простими.

Наприклад, візьмемо m = 26 (літери англійського алфавіту), а = 3, b = 5. Видно, НСД (3,26)=1. Отримаємо таку відповідність між числовими кодами букв:

T

0

1

2

3

4

5

6

7

8

9

10

11

12

3t+5

5

8

11

14

17

20

23

0

3

6

9

12

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

13

14

15

16

17

18

19

20

21

22

23

24

25

3t+5

18

21

24

1

4

7

10

13

16

19

22

25

2

Після відображення чисел в літери, отримуємо таку відповідність для літер відкритого тексту та шифротексту:

T

A

B

C

D

E

F

G

H

I

J

K

L

M

3t+5

F

I

L

O

R

U

X

A

D

Q

J

M

P

 

 

 

 

 

 

 

T

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

3t+5

S

V

Y

B

E

H

K

N

Q

T

W

Z

C

Таким чином, вихідне повідомлення FANCIFUL перетвориться в шифротекст UFSLDUNM Перевагою аффінної системи є зручне керування ключами – ключі шифрування та

розшифрування подаються в компактній формі у вигляді пари чисел (а, b). Недоліки аффінної системи аналогічні недолікам системи шифрування Цезаря.

4 Система Цезаря із ключовим словом

Система шифрування Цезаря із ключовим словом є одноалфавітною системою підстановки. Особливістю цієї системи є використання ключового слова для зсуву й зміни порядку символів в алфавіті підстановки.

Виберемо деяке число k, 0k<25, і слово або коротку фразу як ключове слово. Бажано, щоб всі букви ключового слова були різними. Однак ця вимога не є обов'язковою. Можна просто записати ключове слово (або фразу) без повторення однакових букв.

Нехай ключовим словом є слово «DIPLOMACY» і число k = 5.

Ключове слово записується під буквами алфавіту, починаючи з букви, числовий код якої збігається з обраним числом k:

0

 

 

 

 

5

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

 

 

 

 

25

А

B

C

D

Е

F

G

Н

I

J

К

L

М

N

O

Р

Q

R

S

T

U

V

W

Х

Y

Z

 

 

 

 

 

D

I

P

L

O

M

A

C

Y

 

 

 

 

 

 

 

 

 

 

 

 

Букви, що залишилися, алфавіту підстановки записуються після ключового слова за абеткою:

0

 

 

 

 

5

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

 

 

 

 

25

А

B

C

D

Е

F

G

Н

I

J

К

L

М

N

0

Р

Q

R

S

T

U

V

W

Х

Y

Z

U

V

W

Х

Z

D

I

P

L

O

M

A

C

Y

B

E

F

G

H

J

K

N

Q

R

S

T

Маючи підстановку для кожної букви довільного повідомлення, легко виконати шифрування. Так вихідне повідомлення CHANGE DETALIES шифрується як WPUYIZ XZJUALZH.

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

5 Таблиці Трисемуса

В 1508 р. абат з Німеччини Йоганн Трисемус уперше описав застосування таблиць, що шифрують, заповненим алфавітом у випадковому порядку. Для одержання такого шифру заміни звичайно використовували таблицю для запису букв алфавіту та ключового слова (або фрази). У таблицю спочатку заносили по рядках ключове слово, причому букви, які повторюються, відкидалися. Потім ця таблиця доповнювалася буквами алфавіту, що ввійшли в неї з ключовим словом.

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

13


Розглянемо цей метод шифрування на прикладі. Для українського алфавіту таблиця, що шифрує, може мати розмір 4 8 (32 літери алфавіту). Виберемо як ключ слово “БАНДЕРОЛЬ”. Таблиця для шифрування має вигляд, поданий на рисунку 2.

Б

А

Н

Д

Е

Р

О

Л

Ь

В

Г

Є

Ж

З

И

І

Ї

Й

К

М

П

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ю

Я

Рисунок 2 – Таблиця для шифрування за методом Трисемуса з ключовим словом “БАНДЕРОЛЬ” При шифруванні в таблиці знаходять чергову букву відкритого тексту й записують у шифротекст

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

Наприклад, при шифруванні за допомогою таблиці (рис. 2) повідомлення “МАГІСТРАЛЬ ЗРУЙНОВАНО”, одержимо шифротекст, записаний блоками по п’ять букв

ЧВКУЩ ЮЗВШЇ СЗЯХГ ИЙВГИ.

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

букві.

Криптографічний аналіз системи одноалфавітної заміни

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

6 Біграмний шифр Плейфейра

Шифр Плейфейра (1854 р.), є найбільш відомим біграмним шифром заміни. Він застосовувався Великобританією під час Першої світової війни.

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

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

Процедура шифрування вміщує такі кроки:

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

2Послідовність біграм відкритого тексту перетворюється за допомогою таблиці, що шифрує, у послідовність біграм шифротексту за такими правилами:

якщо обидві літери біграми відкритого тексту не стоять в одному рядку або стовпці, наприклад, літери А і П (рис. 2), тоді знаходять літери в кутах прямокутника, обумовленого вихідною парою літер. У нашому прикладі це букви АЙПЕ. Пара літер АП відображається в пару ЙЕ. Послідовність літер у біграмі шифротексту повинна бути дзеркально розміщеною щодо послідовності літер у біграмі відкритого тексту;

якщо обидві літери біграми відкритого тексту належать одному стовпцю таблиці, то за літери шифротексту беруть літери, які лежать під ними. Наприклад, біграма НК (рис 2) дає біграму шифротексту ГЦ. Якщо при цьому літера відкритого тексту стоїть в нижньому рядку, то для шифротексту береться відповідна літера з верхнього рядка того самого стовпця. Наприклад, біграма НЦ дає біграму шифротексту ГН;

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

14


правому стовпці, то для шифру беруть відповідну літеру з лівого стовпця у тому самому рядку. Так біграма ЕЛ дає біграму шифротексту РБ).

Виконаємо зашифрування тексту ВСЕ ТАЄМНЕ СТАЄ ЯВНИМ.

Розіб’ємо текст на біграми

ВС ЕТ АЄ МН ЕС ТА ЄЯ ВН ИМ.

Дана послідовність біграм відкритого тексту перетворюється за допомогою таблиці для шифрування (рис. 2) в таку послідовність біграм шифротексту:

ЗЙ ОП ДВ КД РП ЙО ІЧ ГА ЄТ. При розшифруванні застосовується зворотний порядок дій.

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

7 Криптосистема Хілла

Алгебраїчний метод, що узагальнює афінну підстановку Цезаря:

Ea,b : Zm Zm ,

Ea,b : t Ea,b t ,

Ea,b t at b(mod m)

для визначення n-грам, був сформульований Лестером С. Хіллом.

Множина цілих чисел Zm , для яких визначені операції додавання, віднімання та множення за модулем m, є кільцем.

Множина всіх n-грам x =(x0, x1, x2, …, xn-1) з компонентами кільця Zm утворить векторний

простір Zm,n над кільцем Zm . Кожна n-грама x називається вектором. У векторному просторі Zm,n для

векторів x визначені операції додавання та віднімання за модулем m, а також скалярне множення вектора на елемент t кільця Zm . Додавання і скалярне множення є операціями, що задовольняють комутативний, асоціативний та дистрибутивний закони.

Вектор x є лінійною комбінацією векторів x(i) : 0 i L , якщо

 

 

 

 

 

 

 

 

 

 

(0)

t

 

(1) ... t

 

 

( L 1) ) mod m . (3.1)

 

x (t

0

x

x

L 1

x

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Лінійне перетворення T є відображенням

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T : Zm,n Zm,n ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T : x y,

 

 

y T (x) ,

 

(3.2)

яке задовольняє умову лінійності

T (t * x s * y) (t *T (x) s *T ( y)) mod m

для всіх s, t Zm та x, y Zm,n .

Лінійне перетворення T може бути представлене матрицею розміром n n вигляду

 

 

0,0

0,1

 

0, j

 

0,n 1

 

 

 

 

 

 

 

 

 

1,0

1,1

 

1, j

 

1,n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

 

,

(3.3)

i,0

i,1

i, j

i,n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1,0

n 1,1

 

n 1, j

n 1,n 1

 

 

 

причому

 

yi

i,0 x0 i,1 x1 i, j x j

i,n 1 xn 1 (mod m)

 

n 1

 

 

або

yi i, j x j (mod m),

0 i n 1.

 

 

j 0

 

 

15