Криптография и свобода

ОглавлениеДобавить в закладки К обложке

Жизнь прекрасна и удивительна! Какие уравнения получились!

уi+8 = П (yi)+П (yi+1)+П (yi+7)+хi

Возьмем-ка теперь парочку блоков открытого текста (y1,y2,…,y8) (z1,z2,…,z8) и соответствующие им блоки шифртекста (y17,y18,…,y24) (z17,z18,…,z24) и выпишем уравнения одни под другими…

уi+8 = П (yi)+П (yi+1)+П (yi+7)+хi

zi+8 = П (zi)+П (zi+1)+П (zi+7)+хi

Это же криптографический Клондайк! Вычитаем одно уравнение из другого и ключ пропадает!

ui+8 = vi+vi+1+vi+7 (1)

где ui = yi-zi, vi = П(yi)- П(zi).

Из (1) имеем:

vi = ui+8 –vi+1-vi+7 (2)

Линейное уравнение – мечта криптографа! Тут только надо найти все такие решения, при которых для каждой пары (ui,vi) соответствующий элемент рui,vi в матрице Р(П) был бы ненулевым. Поехали!

При Т=16 из (1) и (2) имеем:

u1,u2,…u8, v1,v2,…v8 – известны – это открытый текст

u17,u18,…u24, v17,v18,…v24 – известны – это шифртекст

Из (2) последовательно находим:

v16 = u24-v17-v23

v15 = u23-v16-v22

…………

v9 = u17-v10-v16

а затем уже из (1) – все ui. Система (1) полностью решена!

Дальше – раздолье. Ключ опробуем позначно. Для первого байта ключа x1 оставляем допустимыми только те значения, при которых пара (y9,z9) является решением системы

y9-z9 = u9

П(y9)- П(z9) = v9

Если таких значений будет несколько, то возьмем еще одну пару и истинным будут только те значения, которые содержатся в пересечении этих множеств и так поштучно определяем весь ключ.

Вот теперь пора и почитать, что там наша доблестная армия нашифровала. Военный приказ будем взламывать по-военному четко: делай раз, делай два, делай три.

1. Берем первые 24 знака известного нам открытого текста, соответствующие им знаки шифртекста и составляем две пары переходов из открытого текста в шифрованный.

Первая пара

Вторая пара

2. Все байты в этих парах заменяем по подстановке П-1.

3. Для каждой из этих двух пар составляем и решаем систему линейных уравнений (1).

Первая пара

Открытый текст

Шифртекст

Сначала с помощью уравнений (2) вычисляем промежуточные значения v16,v15,…,v9.

v16 = u24 – v17 –v23 = 03 –D1-D8 = 5A

v15 = u23 – v16 –v22 = 12 –5A-B0 = 08

v14 = u22 – v15 –v21 = 70 – 08-BF =A9

v13 = u21 – v14 –v20 = 11 – A9-54 = 14

v12 = u20 – v13 –v19 = A6 – 14 -6D = 25

v11 = u19 – v12 –v18 = 37 – 25 -72 = A0

v10 = u18 – v11 –v17 = FA – A0 -D1 = 89

v9 = u17 – v10 –v16 = 26 – 89 -5A = 43

Затем с помощью (1) вычисляем u9,u10,…,u16.

u9 = v1+v2+v8 = E4+00+08 = EC

u10 = v2+v3+v9 = 00+C2+43 = 05

u11 = v3+v4+v10 = C2+F4+89 = 3F

u12 = v4+v5+v11 = F4+0B+A0 = 9F

u13 = v5+v6+v12 = 0B+0E+25 = 3E

u14 = v6+v7+v13 = 0E+F5+14 = 17


Логин
Пароль
Запомнить меня