vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2019-03-09 08:02 pm

Секрет фирмы, или... математический подход к раскрытию шифров

Зашёл [personal profile] spamsink в гости, и мы с ним разобрались, как в сканере задействовать автоматическое устранение искривлений страницы. К примеру, вот англоязычный оригинал вышеупомянутой главы из книги Уэзерелла, которая называлась "A Code of Dishonor, or... Mathematical Cryptanalysis" (PDF).

Текст для расшифровки:
AZEXQ KOAIL CMKPA TBTZU DZKRK KZTZX BYZUO BCCCV ARVTZ MLYHM TROPE
OAZKI CHZTX BQEYG MMZTO QRDXX TPHMA EETOU OSIZT MFYHB EHGVU KJROP
ERWSE LXJOL JJXGU QLAHY DSZHO QYXKJ YDLEK GOATR CDKRM JYOPH OMMZT
NNQNJ QCOVO KYTOZ RGLXE OMYTT TRYSN QNVBY KPPTL UKMRP YJZJG VQZZE
XQPOM JCEPF ICJVC LEGWJ YOPHO MMZTE RJHVQ COVZP TBHPU QAPSK BFTMS
DCMYZ APSRS SDKVU ROART VVPLF GYCCC VARVP RAOQO BVSJX JORSE IZUDY
VUKLB PMEGO DNQNJ ERGUG YLROP EQNJX TPHMA EWCFN GLPSH PQZZX OQXJZ
ZTBCW RFTAB PCADK ATRSU DLICO CQOYI RYEYD VJSON SIEVS JLAFR ASOOK
YMTIK YXAOL JCDGV EZBYI ZVOYI LLZYM LVSJD SHLIG AXCZP TBAPR BTACC
JYHZN ZYSYT ZBYZP BHBVC QCCRY HUNER BTTZR OARMJ YCMYN KAUYM AQNJC
      ZTGYA XPIPE OKVBC SCTZE UKMRP ZBCKD SMBJS JEZGY PKYSK
Подсказка: если кто захочет решить задачу, вот что должно получиться в результате расшифровки.

При сравнении текстов оригинала и перевода обнаруживаются забавные расхождения. Например, оригинал:



Перевод:


В региональном центре Макдональдс не было ничего вычислительного: это фантазии (или юмор) переводчика.
spamsink: (Default)

[personal profile] spamsink 2019-03-10 09:05 am (UTC)(link)
Короче, базовая алфавитная перестановка, использованная для шифрования, такова:

EXACRBTIONDFGWVYZHJKLMPQUS

Она соответствовала бы букве А в ключе.

Ключ: COMPILE. Как у переводчиков из этого вышла "редиска" - одному богу известно.

Ничего особенно интересного, кроме того, что благодаря построению квадрата Виженера со сдвигом перестановки влево на одну позицию для каждой следующей строки, первая буква ключа (С) соответствует тому, что буква А переходит сама в себя, а в конце перестановки оказывается сочетание букв SEX.

Автор статьи на Хабре решал задачу несколько другим способом, чем я в своё время, пользуясь скоростью современных компьютеров.

В оригинале, действительно, одна строка - между строками, начинающимися на ZTBCW и YMTIK выпала. Из-за того, что ни количество групп в строке (11), ни количество букв в группе (5) не кратно длине ключа (7), это приводит к искажению статистики, но, видимо, не настолько сильному, чтобы превратить всё в полную мешанину, раз переводчики смогли разобраться. Если бы выпала строка ближе к середине, было бы гораздо хуже.