Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка1_new.doc
Скачиваний:
5
Добавлен:
06.05.2019
Размер:
1.63 Mб
Скачать

Для розшифровки виконується зворотня заміна букв.

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

Наприклад, якщо ключем є слово корунд, що починається з десятої позиції, то:

Буква

шифр

Буква

шифр

Буква

шифр

Буква

шифр

а

т

З

я

Н

а

х

и

б

ф

И

ь

О

б

ц

і

в

х

І

к

П

в

ч

ї

г

ц

Ї

о

Р

г

ш

й

д

ч

Й

р

С

е

щ

л

е

ш

К

у

Т

є

ю

м

є

щ

Л

н

У

ж

я

п

ж

ю

М

д

ф

з

ь

с

3. Шифрування гаммуванням. Символи тексту, який шифрується додаються з символами деякої псевдовипадкової послідовності, що називається гаммою шифру. ( Практично перед шифруванням текст розбивається на блоки однакової довжини (звичайно – 64 біти). Гамма генерується у вигляді послідовності такої ж довжини. Чим довша гамма тим стійкіший шифр). Для шифрування використовується яка-небудь функція, що має властивість зворотності, наприклад, операція додавання по модулю 2. Для шифрування і дешифрування виконується така послідовність операцій:

1) Ключем є гамма – початковий текст;

2) 13 14 29 26 15 05 06 03 00 15 15 00 – цифрова форма початкового тексту в десятковій системі;

3) 01101 01110 11101 11010 01111 00101 00110 00011 00000 01111 01111 00000 – двійковий запис;

4) 10110 01010 00011 00110 11010 10101 01001 00100 10100 10010 00001 11100 – гамма;

5) 01011 00100 11110 11100 10101 10000 01111 00111 10100 11101 01110 11100 – шифр (сума по модулю 2 початкового тексту і гамми);

6) 10110 01010 00011 00110 11010 10101 01001 00100 10100 10010 00001 11100 – гамма (та сама, що й при шифруванні);

7) 01101 01110 11101 11010 01111 00101 00110 00011 00000 01111 01111 00000 - двійковий запис розшифрованого тексту (сума по модулю 2 шифрованого тексту і гамми);

8) 13 14 29 26 05 15 06 15 00 21 19 09 25 30 12 - цифрова форма розшифрованого тексту в десятковій системі;

9) Ключем є гамма – початковий текст.

Аналогічно, можно зашифрувати текст і в іншій системі числення, наприклад, десятковій.

Початковий текст можно розглядати як послідовність чисел {an}, що належать множині A={0,1,2,…,31}. Нехай є випадкова послідовність чисел {cn}, що теж належать множині A , такої ж довжини, що й текст, який шифрується. Додаючи по модулю 32 числа an та cn

an + cn bn (mod 32) , 0 bn 31

отримаємо послідовність знаків зашифрованого тексту {bn}.

Скориставшись тим же ключем можна дешифрувати текст:

an bn - cn (mod 32) , 0 an 31.

Якщо, послідовність {cn} дійсно випадкова, то шифр називається одноразовим блокнотом і не може бути розкритий в принципі.

Приклад. Нехай треба зашифрувати слово блокнот

01 14 17 13 16 17 21 – текст {an} - блокнот

18 17 14 22 26 09 15 – гамма {cn}

19 31 31 03 10 26 04 – шифртекст {bn} - рььгічд

18 17 14 22 26 09 15 – гамма {cn}

01 14 17 13 16 17 21початковий текст {an} - блокнот

4. Шифрування аналітичним (функціональним) перетворенням. Символи тексту перетворюються у відповідності з деякою функціональною залежністю.

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

1) Ключем є матриця– початковий текст;

2) 13 14 29 26 05 15 06 15 00 21 19 09 25 30 12 - цифрова форма початкового тексту в десятковій системі;

3) обчислення першого блоку шифрованого тексту c шляхом множення шифруючої матриці M на вектор з першого блоку початкового тексту t M ∙ t = c, тобто

1

3

2

5

2

13

253

2

0

2

0

1

14

089

1

4

1

3

2

29

=

186

4

4

2

3

1

26

249

2

5

2

2

1

05

211

4) обчислення першого блоку розшифрованого тексту t шляхом множення матриці M-1 на вектор з першого блоку шифрованого тексту с

M-1 c = t, тобто

-0,196

0,037

0,131

0,402

-0,308

253

13

-0,112

-0,121

0,075

-0,056

0,252

089

14

0,327

0,271

-0,551

-0,336

0,514

186

=

29

0,280

-0,196

-0,187

0,140

-0,131

249

26

-0,262

0,383

0,841

-0,131

-0,411

211

05

і т.д.

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

Відомо багато методів криптоаналізу:

– метод повного перебору ключів;

– метод статистичного аналізу (використовуються відомі статистичні закономірності мови, якою написаний відкритий текст);

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

та криптоаналітичних атак:

– атака при наявності тільки шифртексту;

– атака при наявності і шифртексту і відповідного відкритого тексту;

– атака при можливості вибору відкритого тексту і одержання відповідного шифртексту;

– атака при можливості вибору шифртексту і одержання відповідного відкритого тексту;