u>i+8 = v>i+v>i+1+v>i+7 (1)
где u>i = y>i-z>i, v>i = π(y>i)- π(z>i).
Из (1) имеем:
v>i = u>i+8 –v>i+1-v>i+7 (2)
Линейное уравнение – мечта криптографа! Тут только надо найти все такие решения, при которых для каждой пары (u>i,v>i) соответствующий элемент р>ui,vi в матрице Р(π) был бы ненулевым. Поехали!
При Т=16 из (1) и (2) имеем:
u>1,u>2,…u>8, v>1,v>2,…v>8 – известны – это открытый текст
u>17,u>18,…u>24, v>17,v>18,…v>24 – известны – это шифртекст
Из (2) последовательно находим:
v>16 = u>24-v>17-v>23
v>15 = u>23-v>16-v>22
…………
v>9 = u>17-v>10-v>16
а затем уже из (1) – все u>i. Система (1) полностью решена!
Дальше – раздолье. Ключ опробуем позначно. Для первого байта ключа x>1 оставляем допустимыми только те значения, при которых пара (y>9,z>9) является решением системы
y>9-z>9 = u>9
π(y>9)- π(z>9) = v>9
Если таких значений будет несколько, то возьмем еще одну пару и истинным будут только те значения, которые содержатся в пересечении этих множеств и так поштучно определяем весь ключ.
Вот теперь пора и почитать, что там наша доблестная армия нашифровала. Военный приказ будем взламывать по-военному четко: делай раз, делай два, делай три.
1. Берем первые 24 знака известного нам открытого текста, соответствующие им знаки шифртекста и составляем две пары переходов из открытого текста в шифрованный.
Первая пара
Открытый текст | Шифртекст |
D1 EE E2 E5 F0 F8 E5 ED | D8 C7 83 EF F9 CA 71 FA |
ED EE 20 F1 E5 EA F0 E5 | 07 55 16 9B 3A 1A 99 53 |
Вторая пара
D1 EE E2 E5 F0 F8 E5 ED | D8 C7 83 EF F9 CA 71 FA |
F2 ED EE 2E 20 CF F0 E8 | 87 CC 83 9D FA 1D D6 D8 |
2. Все байты в этих парах заменяем по подстановке π>-1
D2 0B 77 52 B6 31 52 F5 | 68 6E F7 86 2A A7 E8 3F |
F5 0B CD 5D 52 4E B6 52 | 42 74 C0 E0 19 37 D6 3C |
D2 0B 77 52 B6 31 52 F5 | 68 6E F7 86 2A A7 E8 3F |
E4 F5 0B 38 CD 6A B6 35 | 5E 27 F7 F9 3F 7E A0 68 |
3. Для каждой из этих двух пар составляем и решаем систему линейных уравнений (1)
Первая пара
Открытый текст
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
u>i | DD | 00 | AA | F5 | 64 | E3 | 9C | A3 |
v>i | E4 | 00 | C2 | F4 | 0B | 0E | F5 | 08 |
Шифртекст
17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
26 | FA | 37 | A6 | 11 | 70 | 12 | 03 |
D1 | 72 | 6D | 54 | BF | B0 | D8 | A7 |
Сначала с помощью уравнений (2) вычисляем промежуточные значения v>16,v>15,…,v>9
v>16 = u>24 – v>17 –v>23 = 03 –D1-D8 = 5A
v>15 = u>23 – v>16 –v>22 = 12 –5A-B0 = 08
v>14 = u>22 – v>15 –v>21 = 70 – 08-BF =A9
v>13 = u>21 – v>14 –v>20 = 11 – A9-54 = 14
v>12 = u>20 – v>13 –v>19 = A6 – 14 -6D = 25
v>11 = u>19 – v>12 –v>18 = 37 – 25 -72 = A0
v>10 = u>18 – v>11 –v>17 = FA – A0 -D1 = 89
v>9 = u>17 – v>10 –v>16 = 26 – 89 -5A = 43
Затем с помощью (1) вычисляем u>9,u>10,…,u>16
u>9 = v>1+v>2+v>8 = E4+00+08 = EC
u>10 = v>2+v>3+v>9 = 00+C2+43 = 05
u>11 = v>3+v>4+v>10 = C2+F4+89 = 3F
u>12 = v>4+v>5+v>11 = F4+0B+A0 = 9F
u>13 = v>5+v>6+v>12 = 0B+0E+25 = 3E
u>14 = v>6+v>7+v>13 = 0E+F5+14 = 17
u>15 = v>7+v>8+v>14 = F5+08+A9 = A6
u>16 = v>8+v>9+v>15 = 08+43+08 = 53
Таким образом, получилась табличка промежуточных значений
Промежуточные значения для первой пары
9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
EC | 05 | 3F | 9F | 3E | 17 | A6 | 53 |
43 | 89 | A0 | 25 | 14 | A9 | 08 | 5А |
Теперь проделываем все то же самое для второй пары.
Открытый текст
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
u>i | EE | 16 | 6C | 1A | E9 | C7 | 9C | C0 |
v>i | DF | 01 | F4 | B7 | D0 | 29 | F5 | 05 |
Промежуточные значения
9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
E5 | В5 | 85 | 0C | 05 | 23 | 1D | 07 |
C0 | 5F | 97 | 6E | 1F | 7A | B0 | EB |
Шифртекст
17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
0A | 47 | 00 | 8D | EB | 29 | 48 | D7 |
51 | FB | 00 | 52 | FF | AD | 9B | 22 |
Чуток осталось! Для определения первого знака ключа х>1 надо найти у>9, поскольку
х>1=у>9-π(у>1)- π(у>2)- π(у>8), а все значения у>1,у>2,…,у>8 – известны. Значение же у>9 находим исходя из следующих условий:
π(у>9)- π(у>9-ЕС)= 43 (для первой пары) и
π(у>9)- π(у>9-E5)= C0 (для второй пары)
Честно перебрав все 256 значений, находим: у>9 = 9В, тогда х>1 = 9В – D1 – EE – ED = EF
Далее – все аналогично. Для второго знака ключа
π(у>10)- π(у>10-05)= 89 (для первой пары) и
π(у>10)- π(у>10-В5)= 5F (для второй пары)
откуда у>10 = 98, тогда х>2 = 98 – ЕЕ – Е2 – В0 = 18
Точно таким же путем можно вычислить и все остальные знаки ключа. Небольшое затруднение возникнет лишь при определении х>11, поскольку в этом случае система получится такая:
π(у>19)- π(у>19-37)= 6D (для первой пары) и
π(у>9)- π(у>9-00)= 00 (для второй пары)
Вторая пара здесь ничего не дает, но зато первая отсеяла все отлично, только одно допустимое значение остается: F7.
Вот он, полностью вычисленный ключ к «Ангстрему-3» при Т=16:
EF 18 9E C8 7B B9 0F A1 8E BC 71 6F D1 07 94 92
А вот и телеграмма, расшифрованная с его помощью: