Криптографічні методи. Шифр Цезаря. Шифр Віженера. Алгоритм DES, страница 2

Узагалі, символ = означає, що числа ліворуч і праворуч від символу дають однаковий залишок при розподілі на mod. Наприклад, вірно, що 40 =13 mod 27, 175 =13 mod 27 і т.д. Коли ж у вираженні з mod пишеться знак рівності, праворуч від нього стоїть число з припустимого класу, що лежить в інтервалі [0, mod-1]. Так можна писати 20+20 =13 mod 27. Число, що стоїть в таких вираженнях праворуч від знака рівності, називається найменшим ненегативним залишком (ННО). Можна визначити порівняння інакше: a=b mod m, якщо, додаючи або віднімаючи m скільки завгодно раз, можна зробити так, щоб ліворуч і праворуч стояли однакові числа. Наприклад, - 14=13mod27; дійсно, додавши 27 один раз до лівої частини, одержимо 13 =13 mod 27.

Для зашифровки по Цезарю треба задумати ключ (і повідомити його тому, хто буде розшифровувати). У розглянутому прикладі ключ К— це число з інтервалу [1, 26]. Потім текст, що підлягає зашифровці, обробляється наступним алгоритмом:

ЗАШИФРОВКА ПО ЦЕЗАРЮ

1. Для кожного символу s зашифровуваного тексту від першого символу до останнього проробити наступні операції:

2. Знайти я (s) — номер символу s;

3. Одержати номер зашифрованого символу п (с) по формулі n(s)+K=n(c)mod27;

4. По номеру п (с) знайти і написати символ с.

Розшифровка шифру Цезаря проводиться природним звертанням алгоритму зашифровки.

 РОЗШИФРОВКА ПО ЦЕЗАРЮ

1. Для кожного символу з зашифрованого тексту від першого символу до останнього проробити наступні операції:

2. Знайти п (с) — номер символу з;

3. Одержати номер розшифрованого символу п (s) по формулі n(c)-K=n(s)mod27;

Вирахування по модулю 27 тут означає, що якщо різниця негативна, то до різниці додають модуль.

4. По номеру п (s) знайти і написати символ s.

Це досить простий шифр, він легко зламується простим перебором, перебравши всі можливі значення K від 1 до 26. Для цього потрібно визначити частоти букв англійського алфавіту, це відомі дані, вони приведені в наступній таблиці:

Таблиця 1 - Частоти букв в англійських текстах

A

0.079

B

0.017

C

0.041

D

0.033

E

0.122

F

0.022

G

0.018

H

0.038

I

0.075

J

0.001

K

0.008

L

0.037

M

0.027

N

0.068

O

0.071

P

0.028

Q

0.002

R

0.069

S

0.071

T

0.091

U

0.031

V

0.011

W

0.013

X

0.003

Y

0.020

Z

0.002

_

0.222

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

ВПРАВИ

1.В описаному вище 27-значному алфавіті дане повідомлення:

CAESAR WAS BORN IN THE YEAR ONE HUNDRED ВР.

Зашифрувати його з ДО= 13.

Розшифровка шифру Цезаря проводиться природним звертанням алгоритму зашифровки.

2.В умовах вправи  1зашифрувати вираз з K=10:

  EVERYTHING ON EARTH, INCLUDING YOUR BODY? IS PULLED DOWN TO THE ЕАRTH' SURFACE BY GRAVITY, AND THIS PULL GIVES YOU YOUR WEIGHT.

3. В умовах вправи  1зашифрувати вираз з K=12:

THE GREEK MATHEMATICIAN ARCHIMEDES WAS THE FATHER OF GEOMETRY.

4.В умовах вправи 1 розшифрувати вираз:

TNGYEMORINDRMASMPNRENDMURMIVYYMNFFNPXMKAGDMPAG FDKMV MSVSFKMRVTUFUMOP

5. В умовах вправи  1зашифрувати вираз  з K=5:

THE RELATED MOVEMENTS OF THE EARTH, THE MOON, AND THE SUN PROVIDE US WITH OUR MARKS OF TIME.

6. В умовах вправи  1зашифрувати вираз з K=6:

EVERY FOURTH YEAR IS A LEAP YEAR THAT HAS AN EXTRA DAY.