Гриль (криптология)

редактировать

Метод гриль (Польский : metoda rusztu), в криптология была методом, который в основном использовался еще до появления циклометра криптологами Польского бюро шифровальщиков (Biuro Szyfrów ) в расшифровка немецкой машины Enigma шифрование. Роторная шифровальная машина Enigma изменяет символы открытого текста на зашифрованный текст, используя различную перестановку для каждого символа, и таким образом реализует полиалфавитный заменяющий шифр.

Содержание
  • 1 Предпосылки
    • 1.1 Пример сообщения
    • 1.2 Шифрование ключа
  • 2 Характеристика Реевского
    • 2.1 Слабые ключи
    • 2.2 Продолжение примера 1930 года
  • 3 Модель Реевского
    • 3.1 Вернуться к примеру 1930 года
  • 4 Гриль
    • 4.1 Нижний лист
    • 4.2 Верхний лист
  • 5 Восстановление абсолютных положений ротора для клавиш сообщений
  • 6 Восстановление кольца настройка
  • 7 Отклонение
  • 8 См. также
  • 9 Примечания
  • 10 Ссылки
  • 11 Внешние ссылки
История вопроса

Немецкий флот начал использовать машины Enigma в 1926 году; он назывался Funkschlüssel C («Радиошифр C»). К 15 июля 1928 года немецкая армия (Reichswehr ) представила свою собственную версию Enigma - Enigma G; переработанная Enigma I (с коммутационной панелью ) появилась в июне 1930 года. Enigma I, использовала немецкие военные в 1930-х годах, была 3-роторной машиной. Первоначально было всего три ротора с маркировкой I, II и III, но их можно было расположить в любом порядке при установке в машину. Реевский определил перестановки ротора буквами L, M и N; шифрование, производимое роторами, изменялось при шифровании каждого символа. Самая правая перестановка (N) изменяется с каждым символом. Кроме того, была коммутационная панель, которая выполняла дополнительное шифрование.

Количество применяемых схем подключения ротора:

26! = 403, 291, 461, 126, 605, 635, 584, 000, 000 {\ displaystyle 26! = 403,291,461,126,605,635,584,000,000}26! = 403,291,461,126,605,635,584,000,000

Число потенциальных проводов отражателя составляет:

26! 2 13 13! = 7, 905, 853, 580, 625 {\ displaystyle {\ frac {26!} {2 ^ {13} \, 13!}} = 7,905,853,580,625}{\ displaystyle {\ frac {26!} {2 ^ {13} \, 13!}} = 7 905 853 580 625}

Возможно, более интуитивный способ получить эту цифру - это Учтите, что 1 букву можно связать с любой из 25. Осталось 24 буквы для подключения. Следующая выбранная буква может соединиться с любым из 23. И так далее.

25 * 23 * 21 * 19... * 3 * 1 = 7, 905, 853, 580, 625 {\ displaystyle 25 * 23 * 21 * 19... * 3 * 1 = 7 905 853 580 625 }{\ displaystyle 25 * 23 * 21 * 19... * 3 * 1 = 7 905 853 580 625}

Количество различных соединений коммутационной панели (для шести кабелей):

26! 2 6 6! 14! = 100, 391, 791, 500 {\ displaystyle {\ frac {26!} {2 ^ {6} \, 6! \, 14!}} = 100,391,791,500}{\ frac {26!} {2 ^ {6} \, 6! \, 14!}} = 100 391 791 500

Для шифрования или дешифрования настройки оператор сделал следующее ключ машины:

  • порядок ротора (Walzenlage)
  • кольцо (Ringstellung)
  • разъемные соединения (Steckerverbindung)
  • и начальное положение ротора (Grundstellung)

В начале 1930-х годов немцы распространяли секретный ежемесячный список всех ежедневных настроек машины. Немцы знали, что было бы глупо шифровать дневной трафик одним и тем же ключом, поэтому каждое сообщение имело свой собственный «ключ сообщения». Этот ключ сообщения был выбранным отправителем начальным положением ротора (например, ДА). Ключ сообщения должен быть передан оператору-получателю, поэтому немцы решили зашифровать его заранее, заданные суточные наземные настройки дня (Grundstellung). Получатель будет использовать ежедневные настройки машины для всех сообщений. Он установил начальное положение ротора Энигмы в положение «земля» и расшифровал ключ сообщения. Затем получатель установит начальное положение ротора для ключа сообщения и расшифрует тело сообщения.

Enigma использовалась для радиосвязи, поэтому письма иногда искажались во время передачи или приема. Если у получателя не было правильного ключа сообщения, то получатель не мог расшифровать сообщение. Немцы решили отправить трехбуквенный ключ дважды, чтобы не допустить ошибок передачи. Вместо того, чтобы один раз зашифровать ключ сообщения «YEK» и дважды послать зашифрованный ключ, немцы удвоили ключ сообщения до «YEKYEK» («удвоенный ключ»), зашифровали удвоенный ключ с помощью наземных настроек и отправили зашифрованный двойной ключ. После этого мог распознать неправильный ключ сообщения и по-прежнему расшифровать сообщение. Например, если получатель получил и расшифровал удвоенный ключ как «YEKYEN», то получатель может попробовать оба ключа сообщения «YEK» и «YEN»; один будет выдавать желаемое сообщение, а другой - тарабарщину.

Зашифрованный двойной ключ был огромной криптографической ошибкой, потому что он позволяет криптоаналитикам знать два шифрования одной и той же буквы, разнесенные на три места, для каждой из трех букв. Польские дешифровщики использовали эту ошибку способами. Мариан Реевски использовал сдвоенный ключ и некоторые известные ежедневные ключи, полученные шпионом, для определения проводки трех роторов и отражателя. Кроме того, клерки кода часто не выбирают безопасные случайные ключи, а вместо этого выбирают слабые ключи, такие как «AAA», «ABC» и «SSS». Позже поляки использовали сдвоенные слабые ключи, чтобы найти неизвестные ежедневные ключи. Метод гриля был ранним использованием двойного ключа для восстановления части ежедневных настроек. циклометр и bomba kryptologiczna были более поздними разработками двойного ключа.

Пример сообщения

Машина Enigma была электромеханической роторной машиной со скремблером, состоящим из (справа налево) входного барабана, трех роторов и рефлектор. Он был коммерчески доступен с начала 1920-х годов и был модифицирован для использования немецкими военными, которые приняли его на вооружение в конце десятилетия.

Фроде Вейруд предоставляет секретные настройки и результаты, которые использовались в немецком техническом руководстве 1930 года. 33>

Ежедневные настройки (общий секрет): Порядок колес: II I III Ringstellung: 24 13 22 (XMV) Отражатель: A Plugboard: AM, FI, NV, PS, TU, WZ Grundstellung: 06 15 12 (FOL) Ключ сообщения, выбранный оператором: ABL Зашифрованное, начиная с FOL: PKPJXI Сообщение для отправки и результирующие 5-буквенные группы открытого текста: Feindliche Infanteriekolonne beobachtet. Anfang Südausgang Bärwalde. Ende 3 km ostwärts Neustadt. Feind LIQEI NFANT ERIEK OLONN EBEOB AQTET XANFA NGSUE DAUSG ANGBA ERWAL DEXEN DEDRE IKMOS TWAER TSNEU STADT Результирующее сообщение: 1035 - 90 - 341 - PKPJX IGCDS EAHUG WTQGR KVLFG XUCAL XVYMI GMMNM FDXTG NVHVR MMEVO UYFZS LRHDR RXFJW CFHUH Münze FRDIS IKBGP MYVXU Z

Первая строка сообщения не зашифрована. «1035» - это время, «90» - это количество символов, зашифрованных с помощью ключа сообщения, а «341» - это системный индикатор, который сообщает получателю, как было зашифровано сообщение (то есть с помощью Enigma с определенным ежедневным ключом). Первые буквы в теле («PKPJXI») предоставляющий собой удвоенный ключ («ABLABL»), зашифрованный с использованием шести настроек ключа и запуск шифрование в наземной настройке / Grundstellung «FOL». Получатель расшифрует первые шесть букв, чтобы восстановить ключ сообщения («ABL»); Затем он устанавливал роторы машины на «ABL» и расшифровывал оставшиеся 90 символов. Обратите внимание, что в Enigma нет цифр, знаков препинания или умляутов. Числа были прописаны. Большинство пробелов игнорировалось; "X" использовался для периода. Умлауты использовали свое альтернативное написание с буквой «е». Были использованы некоторые сокращения: «Q» использовалось для «CH».

Когда Реевский начал свою атаку в 1932 году, он обнаружил очевидным, что первые шесть букв были зашифрованы двойным ключом.

Шифрование ключа

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

AAAAAA ->PUUJJN BBBBBB ->TKYWXV.19 ->KZMVVY DDDDDD ->XMSRQK EEEEEE ->RYZOLZ FFFFFF ->ZXNSTU GGHHIIQGH II ->WNOZPL JJJJJJ ->MQVAAX KKKKKK ->CBTTSD LLLLLL ->OWPQEI MMMMMM ->JDCXUO NNNNNN ->YIFPGA OOOOOO ->LPIEZM PPPPPRDR ->AOLNIW QQQGGQQ ->AOLNIW QQJGGQQ ->AOLNIW QQJGGQQ VAAGMF VVVVVV ->UTJCCB WWWWWW ->ILHBRP XXXXXX ->DFRMBJ YYYYYY ->NEBHHC ZZZZZZ ->FCEIOE

Из этой информации можно найти шесть вариантов для каждого ключа. Обозначьте каждую перестановку A B C D E F. Эти перестановки секретны: противник не должен их знать.

A = (abcdefghijklmnopqrstuvwxyz ptkxrzqswmcojylagehbvuidnf) = (ap) (bt) (ck) (dx) (er) (fz) (gq) (hs) (iw) (jm) (lo) (ny) (uv) (abcdefghijklmnopqrstuvwxyz ukzmyxrsnqbwdipojghvatlfec) = (au) (bk) (cz) (dm) (ey) (fx) (gr) (hs) (in) (jq) (lw) (op) (tvfzbeij) () =mvc by) (cm) (ds) (ez) (fn) (gq) (hw) (io) (jv) (kt) (lp) (rx) D = (abcdefghijklmnopqrstuvwxyz jwvrosuyzatqxpenldfkgcbmhi) = (ajv) (bw) (cw)) (dr) (eo) (fs) (gu) (hy) (iz) (kt) (lq) (mx) (np) E = (abcdefghijklmnopqrstuvwxyz jxvqltnypaseugzidwkfmcrbho) = (aj) (bx) (cv) (dq) (el) (ft) (gn) (hy) (ip) (ks) (mu) (oz) (rw) F = (abcdefghijklmnopqrstuvwxyz nvykzutslxdioamwrqhgfbpjce) = (an) (bv) (cy) (dk) (ez) ( фу) (gt) (hs) (il) (jx) (mo) (pw) (qr) {\ displaystyle {\ begin {align} A = {\ binom {\ texttt {abcdefghijklmnopqrstuvwxyz}} {\ texttt {ptkxrzqswmcojylagefbvuidn }} = {\ texttt {(ap) (bt) (ck) (dx) (er) (fz) (gq) (hs) (iw) (jm) (lo) (ny) (uv)}} \ \ B = {\ binom {\ texttt {abcdefghijklmnopqrstuvwxyz}} {\ texttt {ukzmyxrsnqbwdipojghvatlfec}}} = {\ texttt {(au) (bk) (cz) (dm) (ey) (fx) (gr) (hs) (in) (jq) (lw) (op) (tv) }} \\ C = {\ binom {\ texttt {abcdefghijklmnopqrstuvwxyz}} {\ texttt {uymsznqwovtpcfilgxdkajhrbe}}} = {\ texttt {(au) (by) (cm) (ds) (ez) (fn) ( gq) (hw) (io) (jv) (kt) (lp) (rx)}} \\ D = {\ binom {\ texttt {abcdefghijklmnopqrstuvwxyz}} {\ texttt {jwvrosuyzatqxpenldfkgcbmhi}} = {\ texttt {(aj) (bw) (cv) (dr) (eo) (fs) (gu) (hy) (iz) (kt) (lq) (mx) (np)}} \\ E = {\ binom {\ texttt {abcdefghijklmnopqrstuvwxyz}} {\ texttt {jxvqltnypaseugzidwkfmcrbho}}} = {\ texttt {(aj) (bx) (cv) (dq) (el) (ft) (gn) (hy) (ip) (ks) (mu) (oz) (rw)}} \\ F = {\ binom {\ texttt {abcdefghijklmnopqrstuvwxyz}} {\ texttt {nvykzutslxdioamwrqhgfbpjce}}} = {\ texttt {(an) (bv) (cy) (dk) (ez) (fu) (gt) (hs) (il) (jx) (mo) (pw) (qr)}} \\\ end {align}}}{\ begin {выровненный} A = {\ binom {\ texttt {abcdefghijklmnopqrstuvwxyz}} {\ texttt {ptkxrzqswmcojylagehbvuidnf}}} = {\ texttt {(ap) (bt) (ck) (dx) (er) (fz) (gq) (hs) (iw) (jm) (lo) (ny) (uv)}} \\ B = {\ binom {\ texttt {abcdefghijklmnopqrstuvwxyz}} {\ texttt {ukzmyxrsnqbwdipojghvatlfec}}} = {\ texttt {(au) (bk) (cz) (dm) (ey) (fx) (gr) (hs) (in) (jq) (lw) (op) (tv)}} \\ C = {\ binom {\ texttt {abcdefghijklmnopqrstuvwxyz}} {\ texttt {uymsznqwovtpcfilgxdkajhrbe}}} = {\ texttt {(au) (by) (cm) (ds) (ez) (fn) (gq) (hw) (io) (jv) (kt) (lp) (rx)}} \\ D = {\ binom {\ texttt {abcdefghijklmnopqrstuvwxyz}} {\ texttt {jwvrosuyzatqxpenldfkgcbmhi} }} = {\ texttt {(aj) (bw) (cv) (dr) (eo) (fs) (gu) (hy) (iz) (kt) (lq) (mx) (np)}} \ \ E = {\ binom {\ texttt {abcdefghijklmnopqrstuvwxyz}} {\ texttt {jxvqltnypaseugzidwkfmcrbho}}} = {\ texttt {(aj) (bx) (cv) (dq) (el) (ft) (gn) ( hy) (ip) (ks) (mu) (oz) (rw)}} \\ F = {\ binom {\ texttt {abcdefghijklmnopqrstuvwxyz}} {\ texttt {nvykzutslxdioamwrqhgfbpjce}}} = {\ texttt {(an) (bv) (cy) (dk) (ez) (fu) (gt) (hs) (il) (jx) (mo) (pw) (qr)}} \\\ конец {выровнено} }

Обратите внимание, что перестановки - это непересекающиеся транспозиции. Для перестановки A он не только изменяет «A» на «P», но также меняет «P» на «A». Это позволяет машине шифровать и расшифровывать сообщения.

Огюстен-Луи Коши ввел двухстрочную нотацию в 1815 году и нотацию <цикла114>в 1844 году.

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

Длина клавиш составляет три символа, поэтому длина двойных клавиш составляет шесть символов. Реевский обозначил перестановки для следующих друг за другом символов ключа сообщения ABCDE F. Он не знал, что это были перестановки, но он знал, что перестановки A и D зашифровали одну и ту же букву ключа сообщения, что B и E зашифровали одну и ту же букву и что C и F зашифровали одну и ту же букву. Если p i - (неизвестные) буквы открытого текста ключа сообщения, а c i - соответствующие (известные) буквы зашифрованного текста, то

p 1 = c 1 A - 1 знак равно п 4 знак равно с 4 D - 1 п 2 знак равно с 2 В - 1 = п 5 = с 5 Е - 1 п 3 = с 3 С - 1 = п 6 = с 6 F - 1 {\ Displaystyle {\ begin {выровнено} p_ {1} = c_ {1} A ^ {- 1} = p_ {4} = c_ {4} D ^ {- 1} \\ p_ {2} = c_ {2} B ^ {-1} = p_ {5} = c_ {5} E ^ {- 1} \\ p_ {3} = c_ {3} C ^ {- 1} = p_ {6} = c_ {6} F ^ {- 1} \\\ конец {выровнено}}}{\ begin {выровнено} p_ {1} = c_ {1} A ^ {{- 1}} = p_ {4} = c_ {4} D ^ {{- 1}} \\ p_ {2} = c_ {2} B ^ {{- 1}} = p_ {5} = c_ {5} E ^ {{- 1}} \\ p_ {3} = c_ {3} C ^ {{- 1} } = p_ {6} = c_ {6} F ^ {{- 1}} \\\ конец {выровнено}}

Уравнения можно затем умножить на D, E и F соответственно, чтобы упростить правые части:

p 1 D = c 1 A - 1 D знак равно п 4 D знак равно c 4 p 2 E = c 2 B - 1 E = p 5 E = c 5 p 3 F = c 3 C - 1 F = p 6 F = c 6 {\ displaystyle {\ begin {выровнено} p_ {1} D = c_ {1} A ^ {- 1} D = p_ {4} D = c_ {4} \\ p_ {2} E = c_ {2} B ^ {- 1} E = p_ {5} E = c_ {5} \\ p_ {3} F = c_ {3} C ^ {- 1} F = p_ {6} F = c_ {6 } \\\ конец {выровнено}}}{\ begin {align} p_ {1 } D = c_ {1} A ^ {{- 1}} D = p_ {4} D = c_ {4} \ \ p_ {2} E = c_ {2} B ^ {{- 1}} E = p_ {5} E = c_ {5} \\ p_ {3} F = c_ {3} C ^ {{- 1} } F = p_ {6} F = c_ {6} \\\ конец {выровнено}}

Значени я открытого текста неизвестны, поэтому эти термины просто отбрасываются, чтобы оставить:

c 1 A - 1 D = c 4 c 2 B - 1 E = c 5 c 3 C - 1 F = c 6 {\ displaystyle {\ begin {align} c_ {1} A ^ {- 1} D = c_ {4} \\ c_ {2} B ^ {- 1} E = c_ {5} \\ c_ {3} C ^ {- 1 } F = c_ {6} \\\ end {align}}}{\ begin {align} c_ {1} A ^ {{- 1}} D = c_ {4} \\ c_ {2} B ^ {{- 1}} E = c_ {5} \\ c_ {3} C ^ {{- 1}} F = c_ {6} \\\ конец {выровнено}}

Приведенные выше уравнения описывают путь через перестановки. Если c 1 передается через обратный к A, то получается p 1. Если этот символ проходит через D, то c 4.

Реевски также знал, что перестановки Enigma были самообращенными: шифрование и дешифрование Enigma были идентичны. Это означает, что A A = I, где I - тождественная перестановка. Следовательно, A = A. Таким образом:

c 1 AD = c 4 c 2 BE = c 5 c 3 CF = c 6 {\ displaystyle {\ begin {align} c_ {1} AD = c_ {4} \ c_ {2} BE = c_ {5} \\ c_ {3} CF = c_ {6} \\\ конец {выровнено}}}{\ begin {align} c_ {1} AD = c_ {4} \\ c_ {2} BE = c_ {5} \\ c_ {3} CF = c_ {6} \ \\ конец {выровнен}}

Вышеупомянутые уравнения взаимосвязь между сдвоенными ключевыми символами. Хотя Реевски не знал индивидуальных перестановок A B C D E F, в одном сообщении ему рассказывалось, как символы переставляются составными перестановками AD, BE и CF.

Из множества сообщений Реевский мог полностью определить составные перестановки. На практике для определения перестановок требовалось около 60 сообщений.

Реевский записал три перестановки с помощью циклической записи, которую он назвал характеристикой. Реевский (1981, стр. 217) приводит пример:

AD = (dvpfkxgzyo) (eijmunglht) (bc) (rw) (a) (s) BE = (blfqveoum) (hjpswizrn) (axt) (cgy) (d) (k) CF = (abviktjgfcqny) (duzrehlxwpsmo) {\ displaystyle {\ begin {align} AD = {\ texttt {(dvpfkxgzyo) (eijmunglht) (bc) (rw) (a) ( s)}} \\ BE = {\ texttt {(blfqveoum) (hjpswizrn) (axt) (cgy) (d) (k)}} \\ CF = {\ texttt {(abviktjgfcqny) (duzrehlxwpsmo)}} \\ \ end {align}}}{\ begin {align} AD = {\ texttt {(dvpfkxgzyo) (eijmunglht) (bc) (rw) (a) (s)}} \\ BE = {\ texttt {(blfqveoum) (hjpswizrn) (axt) (cgy) ( d) (k)}} \\ CF = {\ texttt {(abviktjgfcqny) (duzrehlxwpsmo)}} \\\ конец {выровнен}}

В этой записи первого цикла перестановки AD будет отображать d в v, v в p, p в f,..., y в o, а o будет переходить в d.

Маркс и Вейруд приводят пример из Алана Тьюринга, который показывает, что эти циклы могут быть завершены, когда некоторая информация неполной.

Кроме того, перестановки Enigma были простыми транспозициями, что означало каждую перестановку ABCDEF только транспонирует пары символов. Эти пары символов должны были происходить из разных циклов одинаковой длины. Более того, любая пара между двумя циклами определяет все остальные пары в этих циклах. Следовательно, перестановки A и D должны быть переставлены, поскольку что (a) и (s) - единственные циклы длины один, и есть только один способ их спарить. Есть два способа сопоставить (bc) и (rw), потому что b должен сочетаться с r или w. Точно так же есть десять способов сопоставить оставшиеся десятисимвольные циклы. Другими словами, Реевский теперь знал, что существует только двадцать возможностей для перестановок A и D. Точно так же было 27 кандидатов на B и E и 13 кандидатов на C и F.

Слабые ключи

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

Поляки перехватили много сообщений; им потребуется около 60 сообщений в одном и том же ежедневном ключе для определения характеристик, но у них может быть намного больше. С самого начала Реевский определил шесть символов, составляющих ключ сообщения. Если бы клерки кода выбирали случайные ключи сообщений, то нельзя было бы ожидать увидеть большую корреляцию в зашифрованных шести символах. Однако некоторые клерки были ленивы. Что, если из ста сообщений было пять сообщений от разных станций (то есть пять разных клерков), которые все один один и тот же ключ «PUUJJN»? То, что все они придумали один и тот же ключ, предполагает, что они использовали очень простой или очень общий ключ. Поляки отслеживали разные станции и то, как эти станции выбирали ключи сообщений. Вначале клерки часто использовали простые ключи, такие как «AAA» или «BBB».

Конечным результатом было то, что, не зная настроек коммутационной панели Enigma, положения ротора или кольца, Реевски определил каждый из перестановки ABCDEF, и, следовательно, все ключи дневных сообщений.

Первоначально Реевски использовал знание перестановок ABCDEF (и руководство, полученное французским шпионом), чтобы определить проводку ротора. Изучив проводку ротора, поляки использовали перестановки, чтобы определить порядок ротора, соединения коммутационной панели и настройки кольца на дальнейших этапах методов гриля.

Продолжая пример 1930 года

Используя ежедневный ключ в техническом опыте 1930 года выше, тогда (с достаточным количеством возможностей) Реевский мог найти следующие характеристики:

AD = (pjxroquctwzsy) (kvgledmanhfib) BE = (kxtcoigweh) (zvfbsylrnp) (ujd) (mqa) CF = (yvxqtdhpim) (skgrjbcolw) (un) (fa) (e) (z) {\ displaystyle {\ begin {align} AD = {\ texttt { (pjxroquctwzsy) (kvgledmanhfib)}} \\ BE = {\ texttt {(kxtcoigweh) (zvfbsylrnp) (ujd) (mqa)}} \\ CF = {\ texttt {(yvxqtdhpim) (skgrjbcolw) (un) ( un) (un) (un) (un) (un) (e) (z)}} \\\ end {align}}}{\ begin {выровненный} AD = {\ texttt {(pjxroquctwzsy) (kvgledmanhfib)}} \\ BE = {\ texttt {(kxtcoigweh) (zvfbsylrnp) (ujd) (mqa)}} \\ CF = {\ texttt {(yvxqtdh pim) (skgrjbcolw) (un) (fa) (e) (z)}} \\\ конец {выровнено}}

Хотя теоретически существует 7 триллионов возможностей для каждой из перестановок ABCDEF, приведенные выше характеристики сузили перестановки A и D до 13 вариантов, B. и E всего 30 возможностей, а C и F всего 20 возможностей. Характеристика CF имеет два одноэлементных цикла: (e)и (z). Эти одноэлементные циклы должны объединяться в отдельные перестановки, поэтому характеристика для CF подразумевает, что «E» и «Z» обмениваются как в перестановках C, так и F.

C = (ez)... F = (ez)... {\ displaystyle {\ begin {align} C = {\ texttt {(ez)...}} \\ F = {\ texttt {(ez)...}} \\\ end {align} }}{\ begin {align} C = {\ texttt {(ez)...}} \\ F = {\ texttt {(ez)...}} \\\ end {align}}

Пара "E" и "Z" может быть проверена в исходных (секретных) перестановках, приведенных выше.

Реевски теперь знал, что индикаторы с шаблоном «..E..E» были из ключа сообщения «..Z»; аналогично индикатор «..Z..Z» был от ключа сообщения «..E». В дневном трафике он может найти такие индикаторы, как «PKZJXZ» или «RYZOLZ»; может ли один из этих индикаторов быть общим (ленивым) ключом сообщений «EEE»? Характеристика ограничивает количество перестановок небольшое число, что позволяет выполнять простые проверки. «PKZJXZ» не может быть «EEE», потому что для этого требуются «K» и «E» для обмена в B, но и «K», и «E» являются частью одного и того же цикла в BE: (kxtcoigweh). Перестановочные буквы должны происходить из разных циклов одинаковой длины. Повторяющийся ключ также может быть подтвержден, потому что он может раскрыть другие повторяющиеся ключи.

Индикатор «RYZOLZ» является кандидатом для ключей сообщения «EEE», и он немедленно определит обе перестановки A и D. Например, в AD предполагаемый ключ сообщения «EEE» требует, чтобы «E» и «R» поменялись местами в A и чтобы «E» и «O» поменялись местами в D.

A = (er)... D = (ео)... {\ displaystyle {\ begin {выровнено} A = { \ texttt {(эр)...}} \\ D = {\ texttt {(eo)...}} \\\ end { выровнено}}}{\ begin {выровнено} A = {\ texttt {(эр)...}} \\ D = {\ texttt {(eo)...}} \\\ конец {выровнен}}

Если "E" заменяется на "R" в A (обратите внимание, что один символ пришел из первого цикла в AD, а другой - из второго цикла), тогда буква, следующая за "E" (т. е. " D ") поменяется местами с буквой, предшествующей" R "( т.е." X ").

A = (er) (dx)... D = (eo)... {\ displaystyle {\ begin {align} A = {\ texttt {(er) (dx)...}} \\ D = {\ texttt {(eo)...}} \\\ end {align}}}{\ begin {align} A = {\ texttt {(er) (dx)...}} \\ D = {\ texttt {(eo)...} } \\\ конец {выровненный}}

Это можно продолжить, чтобы получить все символы для обеих перестановок.

A = (er) (dx) (jm) (ap) (ny) (hs) (fz) (iw) (bt) (ck) (uv) (gq) (lo) D = (eo) ( lq) (gu) (cv) (kt) (bw) (iz) (fs) (hy) (np) (ag) (mx) (dr) {\ displaystyle {\ begin {align} A = {\ texttt { (er) (dx) (jm) (ap) (ny) (hs) (fz) (iw) (bt) (ck) (uv) (gq) (lo)}} \\ D = {\ texttt {( eo) (lq) (gu) (cv) (kt) (bw) (iz) (fs) (hy) (np) (ag) (mx) (dr)}} \\\ конец {выровнено}}}{\ begin {align} A = {\ texttt {(er) (dx) (jm) (ap) (ny) (hs) (fz) (iw) (bt) (ck) ( uv) (gq) (lo)}} \\ D = {\ texttt {(eo) (lq) (gu) (cv) (kt) (bw) (iz) (fs) (hy) (np) (ag) (mx) (dr)}} \\\ end {align}}

Это характерное обозначение эквивалентно выражениям, данным для перестановок A и D 1930 года, приведенным выше, путем сортировки циклов так, чтобы самая ранняя буква была первой.

A = (ap) (bt) (ck) (dx) (er) (fz) (gq) (hs) (iw) (jm) (lo) (ny) (uv) D = (aj) ( bw) (cv) (dr) (eo) (fs) (gu) (hy) (iz) (kt) (lq) (mx) (np) {\ displaystyle {\ begin {align} A = {\ texttt { (ap) (bt) (ck) (dx) (er) (fz) (gq) (hs) (iw) (jm) (lo) (ny) (uv)}} \\ D = {\ texttt {( aj) (bw) (cv) (dr) (eo) (fs) (gu) (hy) (iz) (kt) (lq) (mx) (np)}} \\\ конец {выровнено}}}{\ begin {выровнено} A = {\ texttt {(ap) (bt) (ck) (dx) (er) (fz) (gq) (hs) (iw) (jm) (lo) (ny) (uv)}} \\ D = {\ texttt {(aj) (bw) ( cv) (dr) (eo) (fs) (gu) (hy) (iz) (kt) (lq) (mx) (np)}} \\\ конец {выровнен}}

Предполагаемый ключ сообщения индикатора «RYZOLZ», создающего «EEE», также будет определять соединение 10-ти длинных циклов в перестановке BE.

B = (ey) (hs) (kb) (xf) (tv) (cz) (op) (in) (gr) (wl)... E = (le) (rw) (ng) ( пи) (zo) (vc) (ft) (bx) (sk) (yh)... {\ displaystyle {\ begin {align} B = {\ texttt {(ey) (hs) (kb) (xf) (tv) (cz) (op) (in) (gr) (wl)...}} \\ E = {\ texttt {(le) (rw) (ng) (pi) (zo) (vc) ( ft) (bx) (sk) (yh)...}} \\\ end {align}}}{\ begin {выровнено} B = { \ texttt {(ey) (hs) (kb) (xf) (tv) (cz) (op) (in) (gr) (wl)...}} \\ E = {\ texttt {(le) (rw) (ng) (pi) (zo) (vc) (ft) (bx) (sk) (yh)...}} \\\ конец {выровнено}}

Это определяет большую часть B и E, и останется только три возможных варианта этой пары (ujd)и (mqa). Есть еще 20 возможных вариантов для C и F. На данный момент поляки могут расшифровать все первые и четвертые буквы ежедневных ключей; они также могли расшифровать 20 из 26 второй и пятой букв. Веру поляков в эти перестановки можно было проверить, посмотрев на другие ключи и посмотрев, были ли они типичными ключами, используемыми клерками кодов.

Обладая этой информацией, они могли бы искать и находить другие вероятные слабые ключи сообщений, которые будут определять остальные перестановки A B C D E F. Например, если бы у поляков был индикатор «TKYWXV», они могли бы расшифровать его как «BB.BB.»; проверка циклов для CF покажет, что индикатор соответствует ключу сообщения «BBB».

Модель Реевского

Реевски смоделировал машину как перестановку, сделанную из перестановок коммутационной панели (S), проводки от клавиатуры / ламп к роторам (H), трем роторам (LMN), и отражатель (R). Перестановка для каждой позиции сдвоенного ключа была разной, но они были связаны перестановкой P, которая представляла один шаг ротора (P известен). Реевский предположил, что левый и средний роторы не двигались при шифровании сдвоенного ключа. Шесть букв сдвоенного ключа, соответственно, видят перестановки ABCDEF:

A = SH (P 1 NP - 1) LMRM - 1 L - 1 (P 1 N - 1 P - 1) H - 1 S - 1 B = SH (P 2 NP - 2) LMRM - 1 L - 1 (P 2 N - 1 P - 2) H - 1 S - 1 C = SH (P 3 NP - 3) LMRM - 1 L - 1 (P 3 N - 1 P - 3) H - 1 S - 1 D = SH (P 4 NP - 4) LMRM - 1 L - 1 (P 4 N - 1 P - 4) H - 1 S - 1 E = SH (P 5 NP - 5) LMRM - 1 L - 1 (P 5 N - 1 P - 5) H - 1 S - 1 F = SH (P 6 NP - 6) LMRM - 1 L - 1 (P 6 N - 1 P - 6) H - 1 S - 1 {\ displaystyle {\ begin {align} A = SH (P ^ {1} NP ^ {- 1}) LMRM ^ {- 1} L ^ {- 1} (P ^ {1 } N ^ {- 1} P ^ {- 1}) H ^ {- 1} S ^ {- 1} \\ B = SH (P ^ {2} NP ^ {- 2}) LMRM ^ {- 1} L ^ {- 1} (P ^ {2} N ^ {- 1} P ^ {- 2}) H ^ {- 1} S ^ {- 1} \\ C = SH (P ^ {3} NP ^ {-3}) LMRM ^ {- 1} L ^ {- 1} (P ^ {3} N ^ {- 1} P ^ {- 3}) H ^ {- 1} S ^ {- 1} \\ D = SH (P ^ {4} NP ^ {- 4}) LMRM ^ {- 1} L ^ {- 1} (P ^ {4} N ^ {- 1} P ^ {- 4}) H ^ { -1} S ^ {- 1} \\ E = SH (P ^ {5} NP ^ {- 5}) LMRM ^ {- 1} L ^ {- 1} (P ^ {5} N ^ {- 1 } P ^ {- 5}) H ^ {- 1} S ^ {- 1} \\ F = SH (P ^ {6} NP ^ {- 6}) LMRM ^ {- 1} L ^ {- 1} (P ^ {6} N ^ {- 1} P ^ {- 6}) H ^ {- 1} S ^ {- 1} \\\ конец {выровнено}}}{\ begin {выровнено} A = SH (P ^ {{1}} NP ^ {{- 1}}) LMRM ^ {{- 1}} L ^ {{- 1}} (P ^ {{1}} N ^ {{- 1}} P ^ { {-1}}) H ^ {{- 1}} S ^ {{- 1}} \\ B = SH (P ^ {{2}} NP ^ {{- 2}}) LMRM ^ {{- 1 }} L ^ {{- 1}} (P ^ {{2}} N ^ {{- 1}} P ^ {{- 2}}) H ^ {{- 1}} S ^ {{- 1} } \\ C = SH (P ^ {{3}} NP ^ {{- 3}}) LMRM ^ {{- 1}} L ^ {{- 1}} (P ^ {{3}} N ^ { {-1}} P ^ {{- 3}}) H ^ {{- 1}} S ^ {{- 1}} \\ D = SH (P ^ {{4}} NP ^ {{- 4} }) LMRM ^ {{- 1}} L ^ {{- 1}} (P ^ {{4}} N ^ {{- 1}} P ^ {{- 4}}) H ^ {{- 1} } S ^ {{- 1}} \\ E = SH (P ^ {{5}} NP ^ {{- 5}}) LMRM ^ {{- 1}} L ^ {{- 1}} (P ^ {{5}} N ^ {{- 1}} P ^ {{- 5}}) H ^ {{- 1}} S ^ {{- 1}} \\ F = SH (P ^ {{6} } NP ^ {{- 6}}) LMRM ^ {{- 1}} L ^ {{- 1}} (P ^ {{6}} N ^ {{- 1}} P ^ {{- 6}}) H ^ {{- 1}} S ^ {{-1}} \\\ конец {выровненный}}

Упрощенный Реевский d эти уравнения, создав Q как составной отражатель, сделанный из реального отражателя и двух крайних левых роторов:

Q = LMRM - 1 L - 1 {\ displaystyle Q = LMRM ^ {- 1} L ^ {- 1}}Q = LMRM ^ {{- 1}} L ^ {{- 1}}

Замена дает:

A = SH (P 1 NP - 1) Q (P 1 N - 1 P - 1) H - 1 S - 1 B = SH (P 2 NP - 2) Q (P 2 N - 1 P - 2) H - 1 S - 1 C = SH (P 3 NP - 3) Q (P 3 N - 1 P - 3) H - 1 S - 1 D = SH (P 4 NP - 4) Q (P 4 N - 1 P - 4) H - 1 S - 1 E = SH (P 5 NP - 5) Q (P 5 N - 1 P - 5) H - 1 S - 1 F = SH (P 6 NP - 6) Q (P 6 N - 1 P - 6) H - 1 S - 1 {\ displaystyle {\ begin {align} A = SH (P ^ {1} NP ^ {- 1}) Q (P ^ { 1} N ^ {- 1} P ^ {- 1}) H ^ {- 1} S ^ {- 1} \\ B = SH (P ^ {2} NP ^ {- 2}) Q (P ^ { 2} N ^ {- 1} P ^ {- 2}) H ^ {- 1} S ^ {- 1} \\ C = SH (P ^ {3} NP ^ {- 3}) Q (P ^ { 3} N ^ {- 1} P ^ {- 3}) H ^ {- 1} S ^ {- 1} \\ D = SH (P ^ {4} NP ^ {- 4}) Q (P ^ { 4} N ^ {- 1} P ^ {- 4}) H ^ {- 1} S ^ {- 1} \\ E = SH (P ^ {5} NP ^ {- 5}) Q (P ^ { 5} N ^ {- 1} P ^ {- 5}) H ^ {- 1} S ^ {- 1} \\ F = SH (P ^ {6} NP ^ {- 6}) Q (P ^ { 6} N ^ {- 1} P ^ {- 6}) H ^ {- 1} S ^ {- 1} \\\ end {align}}}{\ начало {выровнено} A = SH (P ^ {{1}} NP ^ {{- 1}}) Q (P ^ {{1}} N ^ {{- 1}} P ^ {{- 1}}) H ^ {{- 1}} S ^ {{- 1}} \\ B = SH (P ^ {{2}} NP ^ {{- 2}}) Q (P ^ {{2}} N ^ { {-1}} P ^ {{- 2}}) H ^ {{- 1}} S ^ {{- 1}} \\ C = SH (P ^ {{3}} NP ^ {{- 3} }) Q (P ^ {{3}} N ^ {{- 1}} P ^ {{- 3}}) H ^ {{- 1}} S ^ {{- 1}} \\ D = SH ( P ^ {{4}} NP ^ {{- 4}}) Q (P ^ {{4}} N ^ {{- 1}} P ^ {{- 4}}) H ^ {{- 1}} S ^ {{- 1}} \\ E = SH (P ^ {{5}} NP ^ {{- 5}}) Q (P ^ {{5}} N ^ {{- 1}} P ^ { {-5}}) H ^ {{- 1}} S ^ {{- 1}} \\ F = SH (P ^ {{6}} NP ^ {{- 6}}) Q (P ^ {{ 6}} N ^ {{- 1}} P ^ {{- 6}}) H ^ {{- 1}} S ^ {{- 1}} \\\ конец {выровнено}}

Результатом являются шесть уравнений с четырьмя неизвестными (SHNQ). У Реевского была коммерческая машина Enigma, и он сначала думал, что H будет такой же. Другими словами, Реевский догадался, что

H = (q w e r t z u i o a s d f g h j k p y x c v b n m l a b c d e f g h i j k l m n o p q r s t u v w x y z) {\ displaystyle H = {\ binom {qwertzu v w x y z}) {\ displaystyle H = {\ binom {qwertfzuijcdfjk}} Затем Реевский предположил (правильно), что H было просто тождественной перестановкой:

H = (a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p q r s t u v w x y z) {\ displaystyle H = {\ binghvjkkvkvkljq} Реевский комментирует:

Итак, у меня была система из шести уравнений с тремя неизвестными: S, N и Q. Пока я ломал голову над тем, как решить эту систему уравнений 9 декабря 1932 года, совершенно неожиданно и в самый подходящий момент. В этот момент мне была доставлена ​​фотокопия двух таблиц ежедневных ключей за сентябрь и октябрь 1932 года.

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

H - 1 S - 1 ASH = (P 1 NP - 1) Q (P 1 N - 1 P - 1) H - 1 S - 1 BSH = (P 2 NP - 2) Q (P 2 N - 1 P - 2) H - 1 S - 1 CSH = (P 3 NP - 3) Q (P 3 N - 1 P - 3) H - 1 S - 1 DSH = (P 4 NP - 4) Q (P 4 N - 1 P - 4) H - 1 S - 1 ESH = (P 5 NP - 5) Q (P 5 N - 1 P - 5) H - 1 S - 1 FSH = (P 6 NP - 6) Q ( P 6 N - 1 P - 6) {\ displaystyle {\ begin {align} H ^ {- 1} S ^ {- 1} ASH = (P ^ {1} NP ^ {- 1}) Q (P ^ { 1} N ^ {- 1} P ^ {- 1}) \\ H ^ {- 1} S ^ {- 1} BSH = (P ^ {2} NP ^ {- 2}) Q (P ^ {2 } N ^ {- 1} P ^ {- 2}) \\ H ^ {- 1} S ^ {- 1} CSH = (P ^ {3} NP ^ {- 3}) Q (P ^ {3} N ^ {- 1} P ^ {- 3}) \\ H ^ {- 1} S ^ {- 1} DSH = (P ^ {4} NP ^ {- 4}) Q (P ^ {4} N ^ {- 1} P ^ {- 4}) \\ H ^ {- 1} S ^ {- 1} ESH = (P ^ {5} NP ^ {- 5}) Q (P ^ {5} N ^ {-1} P ^ {- 5}) \\ H ^ {- 1} S ^ {- 1} FSH = (P ^ {6} NP ^ {- 6}) Q (P ^ {6} N ^ { -1} P ^ {- 6}) \\\ end {align}}}{\ begin {выровнено} H ^ {{- 1}} S ^ {{- 1}} ASH = (P ^ {{1}} NP ^ {{- 1}}) Q (P ^ {{1}} N ^ {{- 1}} P ^ {{- 1} }) \\ H ^ {{- 1}} S ^ {{- 1}} BSH = (P ^ {{2}} NP ^ {{- 2}}) Q (P ^ {{2}} N ^ {{-1}} P ^ {{- 2}}) \\ H ^ {{- 1}} S ^ {{- 1}} CSH = (P ^ {{3}} NP ^ {{- 3} }) Q (P ^ {{3}} N ^ {{- 1}} P ^ {{- 3}}) \\ H ^ {{- 1}} S ^ {{- 1}} DSH = (P ^ {{4}} НП ^ {{- 4}}) Q (P ^ {{4}} N ^ {{- 1} } P ^ {{- 4}}) \\ H ^ {{- 1} } S ^ {{- 1}} ESH = (P ^ {{5}} NP ^ {{- 5}}) Q (P ^ {{5}} N ^ {{- 1}} P ^ {{- 5}}) \\ H ^ {{- 1}} S ^ {{- 1}} FSH = (P ^ {{6}} NP ^ {{- 6}}) Q (P ^ {{6}} N ^ {{- 1}} P ^ {{- 6}}) \\\ конец {выровнен}}

Самая левая и самая правая перестановки P в правой части (которые также были известны) были перемещены влево; результатам были присвоены имена переменных UVWXYZ:

U = P - 1 H - 1 S - 1 ASHP 1 = (NP - 1) Q (P 1 N - 1) V = P - 2 H - 1 S - 1 BSHP 2 = (NP - 2) Q (P 2 N - 1) W = P - 3 H - 1 S - 1 CSHP 3 = (NP - 3) Q (P 3 N - 1) X = P - 4 H - 1 S - 1 DSHP 4 = (NP - 4) Q (P 4 N - 1) Y = P - 5 H - 1 S - 1 ESHP 5 = (NP - 5) Q (P 5 N - 1) Z = P - 6 H - 1 S - 1 FSHP 6 = (NP - 6) Q (P 6 N - 1) {\ displaystyle {\ begin {align} U = P ^ {- 1} H ^ {- 1} S ^ { -1} ASHP ^ {1} = (NP ^ {- 1}) Q (P ^ {1} N ^ {- 1}) \\ V = P ^ {- 2} H ^ {- 1} S ^ {-1} BSHP ^ {2} = (NP ^ {- 2}) Q (P ^ {2} N ^ {- 1}) \\ W = P ^ {- 3} H ^ {- 1} S ^ {- 1} CSHP ^ {3} = (NP ^ {- 3}) Q (P ^ {3} N ^ {- 1}) \\ X = P ^ {- 4} H ^ {- 1} S ^ {- 1} DSHP ^ {4} = (NP ^ {- 4}) Q (P ^ {4} N ^ {- 1}) \\ Y = P ^ {- 5} H ^ {- 1 } S ^ {- 1} ESHP ^ {5} = (NP ^ {- 5}) Q (P ^ {5} N ^ {- 1}) \\ Z = P ^ {- 6} H ^ {- 1} S ^ {- 1} FSHP ^ {6} = (NP ^ {- 6}) Q (P ^ {6} N ^ {- 1}) \\\ конец {выровнено}}}{\ begin {align} U = P ^ {{- 1}} H ^ {{- 1}} S ^ { {-1}} ASHP ^ {{1}} = (NP ^ {{- 1}}) Q (P ^ {{1}} N ^ {{- 1}}) \\ V = P ^ {{ -2}} H ^ {{- 1}} S ^ {{- 1}} BSHP ^ {{2}} = (NP ^ {{- 2}}) Q (P ^ {{2}} N ^ {{-1}}) \\ W = P ^ {{- 3}} H ^ {{- 1}} S ^ {{- 1}} CSHP ^ {{3}} = (NP ^ {{- 3}}) Q (P ^ {{3}} N ^ {{- 1}}) \\ X = P ^ {{- 4}} H ^ {{- 1}} S ^ {{- 1}} DSHP ^ {{4}} = (NP ^ {{- 4}}) Q (P ^ {{4}} N ^ {{- 1}}) \\ Y = P ^ {{- 5}} H ^ {{- 1}} S ^ {{- 1}} ESHP ^ {{5}} = (NP ^ {{- 5}}) Q (P ^ {{5}} N ^ {{- 1} }) \\ Z = P ^ {{- 6}} H ^ {{- 1}} S ^ {{- 1}} FSHP ^ {{6}} = (NP ^ {{- 6}}) Q (P ^ {{6}} N ^ {{- 1}}) \\\ конец {выровнено}}

Реевский затем умножили ка ждое уравнение на следующее:

UV = (NP - 1) Q (P 1 N - 1) (NP - 2) Q (P 2 N - 1) = NP - 1 (QP - 1 QP) P 1 Н - 1 VW = (NP - 2) Q (P 2 N - 1) (NP - 3) Q (P 3 N - 1) = NP - 2 (QP - 1 QP) P 2 N - 1 WX = (NP - 3) Q (P 3 N - 1) (NP - 4) Q (P 4 N - 1) = NP - 3 (QP - 1 QP) P 3 N - 1 XY = (NP - 4) Q (P 4 N - 1) (NP - 5) Q (P 5 N - 1) = NP - 4 (QP - 1 QP) P 4 N - 1 YZ = (NP - 5) Q (P 5 N - 1) (NP - 6) Q (P 6 N - 1) = NP - 5 (QP - 1 QP) P 5 N - 1 {\ displaystyle {\ begin {выровнено} UV = (NP ^ {- 1}) Q (P ^ {1} N ^ {- 1}) (NP ^ {- 2}) Q (P ^ {2} N ^ {- 1}) = NP ^ {- 1} (QP ^ {- 1} QP) P ^ {1} N ^ {- 1} \\ VW = ( NP ^ {- 2}) Q (P ^ {2} N ^ {- 1}) (NP ^ {- 3}) Q (P ^ {3} N ^ {- 1}) = NP ^ {- 2 } (QP ^ {- 1} QP) P ^ {2} N ^ {- 1} \\ WX = (NP ^ {- 3}) Q (P ^ {3} N ^ {- 1}) (NP ^ {-4}) Q (P ^ {4} N ^ {- 1}) = NP ^ {- 3} (QP ^ {- 1} QP) P ^ {3} N ^ {- 1} \\ XY = (NP ^ {- 4}) Q (P ^ {4} N ^ {- 1}) (NP ^ {- 5}) Q (P ^ {5} N ^ {- 1}) = NP ^ { -4} (QP ^ {- 1} QP) P ^ {4} N ^ {- 1} \\ YZ = (NP ^ {- 5}) Q (P ^ {5} N ^ {- 1}) ( NP ^ {- 6}) Q (P ^ {6} N ^ {- 1}) = NP ^ {- 5} (QP ^ {- 1} QP) P ^ {5} N ^ {- 1} \ \\ end {align}}}{\ begin {align} UV = (NP ^ {{- 1}}) Q (P ^ {{1}} N ^ {{- 1}}) (NP ^ {{- 2}}) Q ( P ^ {{2}} N ^ {{- 1}}) = NP ^ {{- 1}} (QP ^ {{- 1}} QP) P ^ {{1}} N ^ {{- 1 }} \\ VW = (NP ^ {{- 2}}) Q (P ^ {{2}} N ^ {{- 1}}) (NP ^ {{- 3}}) Q (P ^ {{ 3}} N ^ {{- 1}}) = NP ^ {{- 2}} (QP ^ {{- 1}} QP) P ^ {{2}} N ^ {{- 1}} \\ WX = (NP ^ {{- 3}}) Q (P ^ {{3}} N ^ {{- 1}}) (NP ^ {{- 4}}) Q (P ^ {{4}} N ^ {{- 1}}) = NP ^ {{- 3}} (QP ^ {{- 1}} QP) P ^ {{3}} N ^ {{- 1}} \\ XY = (NP ^ {{- 4}}) Q (P ^ {4}} N ^ {{- 1}}) (NP ^ {{- 5}}) Q (P ^ {{5}} N ^ {{- 1}}) = NP ^ {{- 4}} (QP ^ {{- 1}} QP) P ^ {{4}} N ^ {{- 1}} \\ YZ = (NP ^ {{- 5}}) Q (P ^ {{5}} N ^ {{- 1}}) (NP ^ {{- 6}}) Q (P ^ {{6}} N ^ {{- 1}}) = NP ^ {{- 5}} (QP ^ {{- 1}} QP) P ^ {{5}} N ^ {{- 1}} \\ \ end {align}}

Затем Реевский удалил общее подвыражение (QPQP), подставив его значение, полученное из предыдущего произведения.

VW = NP - 1 N - 1 (UV) NP 1 N - 1 WX = NP - 1 N - 1 (VW) NP 1 N - 1 XY = NP - 1 N - 1 (WX) NP 1 N - 1 YZ = NP - 1 N - 1 (XY) NP 1 N - 1 { \ Displaystyle {\ begin {align} VW = NP ^ {- 1} N ^ {- 1} (UV) NP ^ {1} N ^ {- 1} \\ WX = NP ^ {- 1} N ^ {- 1} (VW) NP ^ {1} N ^ {- 1} \\ XY = NP ^ {- 1} N ^ {- 1} (WX) NP ^ {1} N ^ {- 1} \\ YZ = NP ^ {- 1} N ^ {- 1} (XY) NP ^ {1} N ^ {- 1} \\\ end {align}}}{\ begin {выровнен} VW = NP ^ {{- 1}} N ^ { {-1}} (UV) NP ^ {{1}} N ^ {{- 1}} \\ WX = NP ^ {{- 1}} N ^ {{- 1}} (VW) NP ^ {{ 1}} N ^ {{- 1}} \\ XY = NP ^ {{- 1}} N ^ {{- 1}} (WX) NP ^ {{1}} N ^ {{- 1}} \ \ YZ = NP ^ {{- 1}} N ^ {{- 1}} (XY) NP ^ {1}} N ^ {{- 1}} \\\ конец {выровнено}}

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

Назад к 1930 например

Для 1930 приведенного выше примера,

АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ A ptkxrzqswmcojylagehbvuidnf В ukzmyxrsnqbwdipojghvatlfec С uymsznqwovtpcfilgxdkajhrbe Д jwvrosuyzatqxpenldfkgcbmhi Х jxvqltnypaseugzidwkfmcrbho Р nvykzutslxdioamwrqhgfbpjce

преобразуются в в UVWXYZ подстановки:

АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ U gkvlysarqxbdptumihfnoczjew V gnfmycaxtrzsdbvwujliqophek Ш uekfbdszrtcyqxvwmigjaopnlh Х jelfbdrvsaxctqyungimphzkow У ltgmwycsvqxadzrujohbpiekfn Z mskpiyuteqcravzdjlbhgnxwfo

, а затем умножается, чтобы произвести пять последовательных продуктов:

АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ УФ = azoselgjuhnmwiqdtxcbvfkryp = (a) (e) (g) (y) (hj) (rx) (bzpdscoqt) (flmwkniuv) VW = sxdqlkunjihgfeopatyrmvwzbc = (o) (p) (v) (w) (ij) (rt) (asybxzcdq) ( elgumfkhn) WX = pbxdefiwgmlonkhztsrajyuqcv = (b) (d) (e) (f) (gi) (rs) (apzvycxqt) (hwujmnklo) XY = qwaytmoihlkgbjfpzcvdusnxre) (xi) (xi) (xi) (k) sv) (aqzetdyrc) (bwnjlgofm) YZ = rhuax fkbnjwmpolgqztsdeicyv = (f) (j) (q) ( y) (bh) (st) (arzvexcud) (gkwinolmp)

Теперь цель состоит в том, чтобы найти единую карту, сохраняющую структуру, которая преобразует UV в VW, VW в WX, WX в XY и XY в YZ. Найдено по подписке циклической записи. Когда UV сопоставляется с VW, карта должна сопрягать циклы одинаковой длины. Это означает, что (a)в UV должен отображаться на один из (o) (p) (v) (w)в VW. Другими словами, aдолжен соответствовать одному из opvw. Их можно попробовать по очереди.

UV = (a) (e) (g) (y) (hj) (rx) (bzpdscoqt) (flmwkniuv) VW = (o) (p) (v) (w) (ij) ( rt) (asybxzcdq) (elgumfkhn) VW = (o) (p) (v) (w) (ij) (rt) (asybxzcdq) (elgumfkhn) WX = (b) (d) (e) (f) (gi) (rs) (apzvycxqt) (hwujmnklo) WX = (b) (d) (e) (f) (gi) (rs) (apzvycxqt) (hwujmnklo) XY = (k) (p) (u) (x) (привет) (sv) (aqzetdyrc) (bwnjlgofm) XY = (k) (p) (u) (x) (привет) (sv) (aqzetdyrc) (bwnjlgofm) YZ = (f) (j) (q) ( y) (bh) (st) (arzvexcud) (gkwinolmp)

Но aдолжен отображать то же самое в oв каждой паре, поэтому другие сопоставления символов также определяется:

UV = (a) (e) (g) (y) (hj) (rx) (bzpdscoqt) (flmwkniuv) VW = (o) (p) (v) (w) (ij) (rt) (asybxzcdq) (elgumfkhn) VW = (o) (p) (v) (w) (ij) (rt) (asybxzcdq) (elgumfkhn) WX = (ohwujmnkl) (b) (d) (e) (f) (gi) (rs) (apzvycxqt) WX = (b) (d) (e) (f) (gi) (rs) (apzvycxqt) (hwujmnklo) XY = (ofmbwnjlg) (k) (p) ( u) (x) (привет) (sv) (aqzetdyrc) XY = (k) (p) (u) (x) (привет) (sv) (aqzetdyrc) (bwnjlgofm) YZ = (olmpgkwin) (f) (j)(q)(y)(bh)(st)(arzvexcud)

Consequently, the character maps for sybxzcdq, pzvycxqt, and qzetdyrcare discovered and consistent. Those mappings can be exploited:

UV = (a)(e)(g)(y)(hj)(rx)(bzpdscoqt)(flmwkniuv) VW = (o)(p) (w) (ij)(umfkhnelg)(xzcdqasyb) (v)(rt) VW = (o)(p)(v)(w)(ij)(rt)(asybxzcdq)(elgumfkhn) WX = (f)(b) (ig)(ohwujmnkl)(pzvycxqta) (d)(e)(rs) WX = (b)(d)(e)(f)(gi)(rs)(apzvycxqt)(hwujmnklo) XY = (u)(k)(p) (ih)(ofmbwnjlg) (x)(sv)(aqzetdyrc) XY = (k)(p)(u)(x)(hi)(sv)(aqzetdyrc)(bwnjlgofm) YZ = (f) (j) (hb)(olmpgkwin)(udarzvexc) (q)(y)(st)

Which determines the rest of the map and consistently subscribes:

UV = (a)(e)(g)(y)(hj)(rx)(bzpdscoqt)(flmwkniuv) VW = (o)(p)(v)(w)(tr)(ij)(umfkhnelg)(xzcdqasyb) VW = (o)(p)(v)(w)(ij)(rt)(asybxzcdq)(elgumfkhn) WX = (e)(f)(b)(d)(sr)(ig)(ohwujmnkl)(pzvycxqta) WX = (b)(d)(e)(f)(gi)(rs)(apzvycxqt)(hwujmnklo) XY = (u)(k)(p)(x)(vs)(ih)(ofmbwnjlg)(tdyrcaqze) XY = (k)(p)(u)(x)(hi)(sv)(aqzetdyrc)(bwnjlgofm) YZ = (q)(f)(y)(j)(ts)(hb)(olmpgkwin)(udarzvexc)

The resulting map with successive subscriptions:

resulting map: ABCDEFGHIJKLMNOPQ RSTUVWXYZ ounkpxvtsrqzcaeflihgybdjwm = (aoepfxjrishtgvbuywdkqlzmcn) UV = (a)(e)(g)(y)(hj)(rx)(bzpdscoqt)(flmwkniuv) VW = (o)(p)(v)(w)(tr)(ij)(umfkhnelg)(xzcdqasyb) WX = (e)(f)(b)(d)(gi)(sr)(ycxqtapzv)(jmnklohwu) XY = (p)(x)(u)(k)(vs)(hi)(wnjlgofmb)(rcaqzetdy) YZ = (f)(j)(y)(q)(bh)(ts)(darzvexcu)(inolmpgkw)

The map gives us NPN, but that is also congugate (structure preserving). Consequently, the 26 possible values for N are found by subscribing P in 26 possible ways.

The model above ignored the right rotor's ring setting (22) and ground setting (12), both of which were known because Rejewski had the daily keys. The ring setting has the effect of counterrotating the drum by 21; the ground setting advances it by 11. Consequently, the rotor rotation is -10, which is also 16.

 АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ Straight ounkpxvtsrqzcaeflihgybdjwm Смещенный gpsquvbyxwortzmcekdafnljih = (agbpcsdqeufvnzhyixjwlrkomt) подписаться Р различными способами: (АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ) (bcdefghijklmnopqrstuvwxyza) * фактический проводки ротора (cdefghijklmnopqrstuvwxyzab)... (zabcdefghijklmnopqrstuvwxy) ротор * АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ bdfhjlcprtxvznyeiwgakmusqo
Гриль

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

Нижний лист

Реевский заметил, что S близка к тождественной перестановке (в начале 1930-х годов только 12 из 26 букв были затронуты коммутационной панелью). Он переместил все, кроме Q, в левую часть уравнений путем предварительного или последующего умножения. В результате получается система уравнений:

(P 1 N - 1 P - 1) S - 1 AS (P 1 NP - 1) = Q (P 2 N - 1 P - 2) S - 1 BS (P 2 NP - 2) = Q (P 3 N - 1 P - 3) S - 1 CS (P 3 NP - 3) = Q (P 4 N - 1 P - 4) S - 1 DS (P 4 NP - 4) = Q (P 5 N - 1 P - 5) S - 1 ES (P 5 NP - 5) = Q (P 6 N - 1 P - 6) S - 1 FS (P 6 NP - 6) = Q {\ displaystyle {\ begin {align} (P ^ {1} N ^ {- 1} P ^ {- 1}) S ^ {- 1} AS (P ^ {1} NP ^ {- 1}) = Q \ \ (P ^ {2} N ^ {- 1} P ^ {- 2}) S ^ {- 1} BS (P ^ {2} NP ^ {- 2}) = Q \\ (P ^ {3 } N ^ {- 1} P ^ {- 3}) S ^ {- 1} CS (P ^ {3} NP ^ {- 3}) = Q \\ (P ^ {4} N ^ {- 1 } P ^ {- 4}) S ^ {- 1} DS (P ^ {4} NP ^ {- 4}) = Q \\ (P ^ {5} N ^ {- 1} P ^ {- 5 }) S ^ {- 1} ES (P ^ {5} NP ^ {- 5}) = Q \\ (P ^ {6} N ^ {- 1} P ^ {- 6}) S ^ {- 1} FS (P ^ {6} NP ^ {- 6}) = Q \\\ конец {выровнено}}}{\ b egin {выровнено} (P ^ {{1}} N ^ {{- 1}} P ^ {{- 1}}) S ^ {{- 1}} AS (P ^ {{1}} NP ^ {{ -1}}) = Q \\ (P ^ {{2}} N ^ {{- 1}} P ^ {{- 2}}) S ^ {{- 1}} BS (P ^ {{2 }} NP ^ {{- 2}}) = Q \\ (P ^ {{3}} N ^ {{- 1}} P ^ {{- 3}}) S ^ {{- 1}} CS (P ^ {{3}} NP ^ {{- 3}}) = Q \\ (P ^ {{4}} N ^ {{- 1}} P ^ {{- 4}}) S ^ { {-1}} DS (P ^ {{4}} NP ^ {{- 4}}) = Q \\ (P ^ {{5}} N ^ {{- 1}} P ^ {{- 5 }}) S ^ {{- 1}} ES (P ^ {{5}} NP ^ {{- 5}}) = Q \\ (P ^ {{6}} N ^ {{- 1}} P ^ {{- 6}}) S ^ {{- 1}} FS (P ^ {{6}} NP ^ {{- 6}}) = Q \\\ конец {выровнен}}

В его точке Q неизвестно, но одинаково для каждого уравнения. Реевски не знает N, но он знает, что это один из роторов (I, II и III), и он знает проводку для каждого из этих роторов. Было всего три ротора и 26 возможных начальных оборотов. Следовательно, существует только 84 возможных значения для N. Rejewski может посмотреть на каждое возможное значение, чтобы увидеть, согласована ли перестановка Q. Если бы не было стекеров (S было тождеством), то каждое уравнение дало бы одно и то же Q.

Следовательно, он сделал один нижний лист для каждого возможного ротора (три листа). Каждый нижний лист состоял из 31 строки (26 + 5, чтобы сделать шесть строк смежными). Каждая строка содержала ступенчатую перестановку известного ротора. Например, подходящий нижний лист для ротора III:

P 0 N P - 0 bdfhjlcprtxvznyeiwgakmusqo P 1 N P - 1 cegikboqswuymxdhvfzjltrpna P 2 N P - 2 dfhjanprvtxlwcgueyiksqomzb...... P 25 NP - 25 pcegikmdqsuywaozfjxhblnvtr Р 0 НП - 0 bdfhjlcprtxvznyeiwgakmusqo P 1 NP - 1 cegikboqswuymxdhvfzjltrpna P 2 НП - 2 dfhjanprvtxlwcgueyiksqomzb P 3 NP - 3 egizmoquswkvbftdxhjrpnlyac {0} {NPE_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT_TEXTTTTTTTTTTTTTTT_TEXT bdfhjlcprtxvznyeiwgakmusqo}} \\ P ^ {1} и {NP ^ - 1} \ {\ texttt {cegikboqswuymxdhvfzjltrpna}} \\ P ^ {2} NP ^ {- 2} \ {\ texttt} \ \\ texttt {dfhwomcgueprvtikx}...... \\ P ^ {25} NP ^ {- 25} \ {\ texttt {pcegikmdqsuywaozfjxhblnvtr}} \\ P ^ {0} NP ^ {- 0} \ {\ texttt {bdfhjlcprtxvznyeiwgakmusqo}} \\ P ^ {1} NP ^ {- 1} \ {\ texttt {cegikboqswuymxdhvfzjltrpna}} \\ P ^ {2} NP ^ {- 2} \ {\ texttt {dfhjanprvtxlwcgueyiksqomzb}} \\ P ^ {3} NP ^ {- 3} \ {\ texttt {egizmoquswkvbftdxhjrpnlyac}} \\ P ^ {4} NP ^ {- 4} \ {\ texttt {fhylnptrvjuaescwgiqomkxzbd}} \\\ конец {выровнено}}}{\ begin {align} P ^ {{0}} NP ^ {{- 0}} \ {\ texttt {bdfhjlcprtxvznyeiwgakmusqo}} \\ P ^ {{1}} NP ^ {{ -1}} \ {\ texttt {cegikboqswuymxdhvfzjltrpna}} \\ P ^ {{2}} NP ^ {{- 2}} \ {\ texttt { dfhjanprvtxlwcgueyiksqomzb}} \\...... \ \ P ^ {{25}} NP ^ {{- 25}} \ {\ texttt {pcegikmdqsuywaozfjxhblnvtr}} \\ P ^ {{0}} NP ^ {{- 0}} \ {\ texttt {bdfhjlcprtxvznyeiwgakmusqo} } \\ P ^ {{1}} NP ^ {{- 1}} \ {\ texttt {cegikboqswuymxdhvfzjltrpna}} \\ P ^ {{2}} NP ^ {{- 2}} \ {\ texttt { dfhjanprvtxlwcgueyiksqomzb}} \\ P ^ {{3}} NP ^ {{- 3}} \ {\ texttt {egizmoquswkvbftdxhjrpnlyac}} \\ P ^ {{4}} NP ^ {{- 4}} \ {\ texttt {fhylnptrvjuaescwgiqomkxzbd}} \\\ конец {выровнено}}

В начале 1930-х гг. х годов порядок ротора был одинаковым в течение месяца или более, поэт ому поляки обычно знали, какой ротор находится в крайнем правом положении, и им требовалось использовать только один нижний лист. После 1 ноября 1936 года порядок роторов менялся каждый день. Поляки могли использовать метод часов для определения крайнего правого ротора, так что грилю нужно исследовать только нижний лист этого ротора.

Верхний лист

Для верхнего листа, Реевский написал шесть перестановок от A до F.

A: abcdefghijklmnopqrstuvwxyz srwivhnfdolkygjtxbapzecqmu (..slit......................)... F: abcdefghijklmnopqrstuvwxyz wxofkduihzevqscymtnrglabpj (..slit......................)

Было шесть прорезей, чтобы можно было увидеть перестановки на нижнем листе в нужном месте.

Затем верхний лист будет проходить через все возможные положения ротора N, и криптоаналитик будет искать согласованность с некоторой неизвестной, но постоянной перестановкой Q. согласованного Q нет, то пробуется следующая позиция.

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

А: АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ ptkxrzqswmcojylagehbvuidnf 17 fpjtvdbzxkmoqsulyacgeiwhnr (видимого через щель) Б: АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ ukzmyxrsnqbwdipojghvatlfec 18 oisucaywjlnprtkxzbfdhvgmqe (видно через щель) С : АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ uymsznqwovtpcfilgxdkajhrbe 19 hrtbzxvikmoqsjwyaecguflpdn (видно через щель) D: АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ jwvrosuyzatqxpenldfkgcbmhi 20 qsaywuhjlnprivxzdbftekocmg (видно через щель) Е: АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ jxvqltnypaseugzidwkfmcrbho 21 rzxvtgikmoqhuwycaesdjnblfp (видно через щель) F: АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ nvykzutslxdioamwrqhgfbpjce 22 ywusfhjlnpgtvxbzdrcimakeoq (видно через щель)

В перестановка A, криптоаналитик знает, что (ck)поменяется местами. Он может видеть, как ротор III зашифровывает буквы, глядя на первую строку (алфавит по порядку) и строку, видимую через щель. Ротор отображает cв jи отображает kв m. Если мы пока проигнорируем Штекеров, это означает, что перестановка Q поменяет местами (j m). Для согласованности Q он должен быть одинаковым для всех шести перестановок A B C D E F.

Посмотрите на решетку рядом с перестановкой D, чтобы убедиться, что ее Q также меняет местами (j m). Через щель найдите букву jи посмотрите в том же столбце на две строки над ней, чтобы найти h. Это говорит нам, что ротор, когда он продвинулся на три позиции, теперь отображает hв j. Точно так же усовершенствованный ротор преобразует yв m. Глядя на перестановку D, она меняет местами (h y), поэтому два теста согласованы.

Аналогично, в перестановке A, (dx)перестановка и подразумевает, что (th)перестановка в Q. Рассматривая перестановку E, (el)взаимообмен, а также подразумевают, что (th)обмен в Q.

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

Эффект перестановки ротора может быть устранен, чтобы оставить Q, подразумеваемый перестановками ABCDE F. Результат (вместе с фактическим значением Q):

-: ABCDEFGHIJKLMNOPQRSTUVWXYZ Q (A): vyzrilptemqfjsugcdnhoaxw : myqvswpontxzaihgcuejrdfkblzfjpmdx) (Coulswpontxzaihgcuejrdfkblgefcpmdx) (Coulswp): vemgbkdtwufzcxrysoqhjainpl Q (F): wvlrpqsmjizchtuefdgnobayxk Q: vyqrpkstnmfzjiuecdghoaxwbl (этот фактический Q неизвестен криптоаналитику)

Большинство букв в перестановках неверны. Обмен в подразумеваемой перестановке является правильным, если две буквы не соединены. Около половины букв скруглены, поэтому ожидается, что только четверть букв в подразумеваемой перестановке верны. В нескольких столбцах показаны корреляции; столбец Aимеет три символа v, а (a v)заменяются в фактическом Q; Столбец Dсодержит четыре символа r, а замену (dr)в Q.

Rejewski (1981, p. 222) возможность записи шести подразумеваемых Q для всех 26 положений ротора. Реевский утверждает: «Если бы перестановка S на самом деле была тождественной, то... для конкретной [начальной позиции] мы получили бы одно и то же значение для всех выражений Q, и таким образом мы нашли бы настройку барабана N. Перестановка S действительно Однако, поэтому для no [начальная позиция] выражения Q не будет определенное сходство для конкретной [начальной позиции], поскольку перестановка S не изменяет все буквы ».

Реевский заявляет, что записать все возможные Q «было бы слишком утомительно», поэтому он разработал метод гриля (решетки). «Затем сетка перемещается по бумаге, на которой установлены соединения, которые устанавливаются вместе с установленными в результате перестановки Q....................». Этот процесс требует внимания, поскольку отмеченные мною сходства не всегда проявляются отчетливо и их очень легко не заметить ». В справочнике не описано, какие методы использовались. Реевский действительно заявленный, метод гриля требует незакрепленных пар букв.

Перестановка A имеет обмены (ap) (bt) (ck).... Если мы предположим, что обмен (ap)не заблокирован, это подразумевает Q обменов (fl). Остальные пять перестановок BCDEF можно быстро проверить на наличие незафиксированной пары, которая согласуется с Q, меняющими местами (fl)- по существу проверяя столбец Fдля других строк с lбез вычислений всей таблицы. Ничего не найдено, поэтому (ap)будет иметь хотя бы один stecker, поэтому предположение, что он не закреплен, отвергается. Следующая пара может считаться несвязанной. Обмен (bt)подразумевает Q обменов (pg); это согласуется с (lw)в B, но это предположение не оправдывается, потому что tи wсогласованы.

A: b↔t B: l↔w C: k ← t D: x → m E: m → u F: j ← x ↓ ↓ ↓ ↓ * ↑ ↑ * ↑ * * ↑ btlwxtkzzfjk ↓ ↓ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ Q: p↔gp↔gp↔gp↔gp↔gp↔g угадывание (b) (t) без фиксации в S приводит к предположению (l) (w), не зафиксированному в SC находит Stecker (kx) D находит stecker (zm) E находит stecker (fu) F находит (j)

Исследование этим предположением в конечном итоге приводит к противоречию:

A: f↔z B: m → d C: p ← l D: f → s E: p! XF: ↓ ↓ ↑ * * ↑ ↑ * ↑ ↑ Умзырлуарк ↓ ↓ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ Q: e↔qe↔qe↔ qe↔qe↔qe↔q эксплой (fz) в A приводит к (eq) обмену в QB находит (dy) скрученный C находит (pr) скрученный D находит (as) скрученный E находит (px) скрученный - но p уже скомпилирован к р! сбой

Третий обмен (ck)подразумевает Q обменов (jm); на этот раз перестановка D с незафиксированным (hy)будет согласована с Q, меняющим (jm).

A: c↔k B: C: D: h↔y E: F: ↓ ↓ ↑ ↑ ckixnjhyuigu ↓ ↓ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ Q: j↔mj↔mj↔mj↔mj↔mj↔m угадывание (c) (y) без фиксации в S приводит к предположению (h) (y) не скреплены в S

На этом этапе, что буквы chkyне скреплены. Исходя из этого предположения, все штекеры могут быть решены для этой конкретной проблемы. Известные (предполагаемые) обмены в S используются для поиска обменов в Q, и эти обмены для расширения того, что о S.

Использование этих незакрепленных букв в качестве начальных значений (hy)замена в E и подразумевает, что (kf)находится в Q; аналогично (cy)перестановка в F и подразумевает, что (uo)находится в Q. Изучение (uo)в других перестановках обнаруживает (tu)- это штекер.

A: B: C: D: E: h↔y F: ↓ ↓ jaosivvshywe ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↓ ↓ ↑ ↑ Q: k↔fk↔fk↔fk↔fk↔fk↔ f exploit (hy) в EA: B: C: t ← k D: E: F: c↔y * ↑ ↓ ↓ oldaukfwmjcy ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↓ ↓ ↑ ↑ Q: u↔ou↔ou↔ou Эксплойт ↔ou↔ou↔o (cy) в F показывает (tu) в S

Это превосход буквы tuк семенам. Эти буквы также были неизвестны выше, дополнительную информацию можно почерпнуть, вернувшись: S также имеет (g) (if) (x).

A: c↔k B: f → x C: D: h↔ y E: t → f F: g ← t ↓ ↓ ↑ * ↑ ↑ ↑ * * ↑ ckixnjhyuigu ↓ ↓ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ Q: j↔mj↔mj↔mj↔mj↔mj↔m зная ( tu) в S приводит к (g) (if) в S, тогда (if) в S можно использовать для поиска (x) в S

Revisit (kf) (uo)в Q дает дополнительную информацию:

A: B: o ← p C: f → n D: n → p E: h↔y F: z → e * ↑ ↑ * ↑ * ↓ ↓ ↑ * jaosivvshywe ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↓ ↓ ↑ ↑ Q: k↔fk↔fk↔fk↔fk↔fk↔f exploit (if) в S приводит к (nv) в S (nv) в S приводит к Stecker (ps) (ps) в S приводит к (o) (wz) в S приводит к (e) A: o → l B: C: t ← k D: i → z E: F: c↔y ↑ * * ↑ ↑ * ↓ ↓ oldaukfwmjcy ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↓ ↓ ↑ ↑ Q: u↔ou↔ou↔ou↔ou↔ou↔o exploit (if) в S приводит к Stecker (wz) в S (o) в S приводит к (l) в S

Другой повторный просмотр полностью использует (jm):

A: c↔k B: fx C: v → j D: h↔y E: t → f F : g ← t ↓ ↓ ↑ * ↑ * ↑ ↑ ↑ * * ↑ ckixnjhyuigu ↓ ↓ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ Q: j↔mj↔mj↔mj↔mj↔mj↔m знание (nv) в S приводит к (j) в S

Это дополнение заполняется даже больше:

A: j → m B: o ← p C: f → n D: n → p E: h↔y F: z → e ↑ * * ↑ ↑ * ↑ * ↓ ↓ ↑ * jaosivvshywe ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↓ ↓ ↑ ↑ Q: эксплойт k↔fk↔fk↔fk↔fk↔fk↔f (j) в S приводит к (am) в SA: o → l B: d ← m C: t ← k D: i → z E: a↔j F: c↔y ↑ * * ↑ * ↑ ↑ * ↑ ↑ ↓ ↓ oldaukfwmjcy ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↓ ↓ ↑ ↑ Q: u↔ ou↔ou↔ou↔ou↔ou↔o exploit (j) (am) в S приводит к (d) в SQ = ((fk) (jm) (ou)...) пропущенным 10 парам S = ((am) (c) (d) (fi) (g) (h) (j) (k) (l) (nv) (o) (ps) (tu) (wz) (x) (y)...) На данный момент 22 символа: отсутствующие beqr нашли все 6 токенов, поэтому (b) (e) (q) (r)

После изучения 3 обменов в Q теперь известно все S. Остальные Q могут легко найти.

Когда совпадение найдено, криптоаналитик узнает как начальное вращение N, так и перестановку S коммутационной (Stecker)

Восстановление абсолютных положений ротора для ключа сообщения

На данный момент положения ротора для перестановки Q не известны. То есть начальные положения (и, возможно, порядок) роторов L и M неизвестны. Поляки применили грубую силу, пробуя все возможные начальные положения (26 = 676) двух роторов. С тремя роторами знание того, какой ротор находится в положении N, означало, что есть только два способа загрузить два других ротора.

Позже поляки разработали каталог всех Q-перестановок. Каталог был невелик: было шесть возможных комбинаций двух левых роторов с 26 = 676 настройками, поэтому в каталоге было 4056 записей. После использования гриля поляки искали Q в каталоге, чтобы узнать порядок и начальное положение двух других роторов.

Первоначально немцы нечасто меняли порядок ротора, поэтому поляки часто знали порядок ротора до того, как они начали работать. Порядок ротора менялся каждый квартал до 1 февраля 1936 года. Затем он менялся каждый месяц до 1 ноября 1936 года, когда он менялся ежедневно.

Восстановление кольца

Теперь криптоаналитик знал коммутационную панель, порядок ротора и абсолютная настройка роторов для сдвоенного ключа, но он не знал колец. Он также знал, какой должна быть настройка ключа сообщения, но эта настройка была бесполезна без знания настройки звонка. Кольцо могло быть любым, а это означало, что поляки знали, как расположить роторы для тела сообщения. Вся работа до этого момента была сосредоточена на использовании двойного ключа. Чтобы определить настройку звонка, внимание переключилось на фактическое сообщение.

Здесь немцы совершили еще одну ошибку. Каждое сообщение обычно начинается с текста «ANX», что на немецком языке означает «кому:», а «X» означает пробел. Поляки и здесь применили грубую силу. Они могли пройти до 26 = 17 576 настроек, чтобы найти настройки, которые производят "ANX". После криптоаналитик будет использовать определение абсолютную настройку роторов для определения настройки кольца. Таким образом был восстановлен весь дневной ключ.

Позже поляки усовершенствовали технику поиска грубой силы. Изучив некоторые сообщения, они смогли определить положение крайнего правого ротора; Следовательно, нужно будет попробовать только 676 положений ротора. Реевски больше не помнит, как работал этот трюк.

Отклонить

Метод гриля описан Мариан Реевски как «ручной и утомительный» и, как более поздняя криптологическая бомба, как "основанные... на том факте, что штекерные соединения [в коммутаторе Enigma, или "коммутационной панели"] не изменили все буквы ". Однако, в отличие от бомбы, «метод гриля требовал указать парных букв [а не] указать только пароль».

Изначально коммутационная панель меняла местами только шесть пар букв. В результате перестановка S не повлияла на более чем половину алфавита. 1 августа 1936 г. количество штекеров изменилось; тогда могло быть от пяти до восьми пар букв поменяться местами. Из-за лишних перестановок символов метода метода снижена, поэтому поляки начали искать другие методы. Результатом стали циклометр и соответствующий карточный каталог; этот метод был невосприимчив к Штекерам.

Метод гриля нашел применение еще в декабре 1938 г. при разработке схемы подключения двух роторов Enigma, недавно представленных немцами. (Это стало возможным благодаря тому факту, что сеть Sicherheitsdienst, хотя и представила новые барабаны IV и V, продолжала использовать старую систему для шифрования ключей отдельных сообщений.)

Вкл. 15 сентября 1938 года большинство немецких сетей прекратили шифрование двойного ключа с общей настройкой (наземная настройка). Поляки могли использовать все сообщения в сети, используя одни и те же настройки машины для шифрования двойного ключа. Теперь большинство сетей перестали это делать; вместо этого оператор выберет свои собственные настройки грунта и отправит их получателю в открытом виде. Это изменение разрушило метод гриля и каталог циклометрических карт. Одна сеть, сеть Sicherheitsdienst (SD), продолжала использовать настройку общего доступа, и эта сеть использовалась для перепроектирования новых роторов (IV и V), которые были представлены. Сетевой трафик SD был дважды закодирован, поэтому метод ANX не работал. Метод гриля иногда терпел неудачу после того, как 1 января 1939 года немцы увеличили количество подключений к коммутационной панели до десяти. Когда 1 июля 1939 года сеть SD перешла на новый протокол с ключом сообщений, метод гриля (и метод циклометра) не помогли. дольше полезно.

Вот пример новой процедуры сообщения от 21 сентября 1938 года.

2109 -1750 - 3 ОДВТ - FRX FRX - 1TL -172 = HCALN UQKRQ AXPWT WUQTZ KFXZO MJFOY RHYZW VBXYS IWMMV WBLEB DMWUW BTVHM RFLKS DCCEX IYPAH RMPZI OVBBR VLNHZ UPOSY EIPWJ TUGYO SLAOX RHKVC HQOSV DTRBP DJEUK SBBXV OTYGQLE 3 <- части сообщение состоит из 3 частей; «1TL» (нем. Teil, часть) говорит, что это первая часть; «172» означает, что в сообщении 172 символа (включая ключ сообщения). Для этого сообщения наземная установка "FRX" передается дважды в открытом виде; настройка земли будет / должна быть разной для каждого сообщения в сети. Следовательно, поляки не смогли найти шестьдесят ключей, зашифрованных с использованием той же наземной возможности. Без одинакового объема могут быть определены характеристики, поэтому они не могут определить перестановки A B C D E F или использовать решетку. Для этого сообщения ежедневные настройки (порядок ротора, коммутационная панель и настройки кольца) использовались с «FRX» для расшифровки первых символов («HCALN U») для получения удвоенного ключа сообщения («AGIAGI»).

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

См. Также
Примечания
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-22 10:56:48
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте