Занимательная криптаналитика

38 views
Skip to first unread message

Leo B.

unread,
Oct 2, 2026, 5:38:42 AM (9 days ago) Oct 2
to БЭСМ-6
Есть у нас на диске 2053 от СВС программа "СЕРДЖИН", которая умеет делать некоторые системные действия, которые не делает СЕРП, и эти системные действия, например, выдача сообщения на произвольный терминал, защищена нехранимым паролем: 6 слов расшифровываются с помощью синуса и XOR цепным образом, потом на них передается управление. 
Захотелось мне этот пароль вскрыть, for hack value, разумеется. Антропиковский Клод отказался, пришлось Гроком. Он написал программу перебора, а я придумывал разные cleartext cribs, типа должна встречаться команда возврата ПБ (13), не должно быть других переходов за пределы этих 6 слов, и т. п. Первые несколько попыток угадать crib приводили к возможным ключам безумного вида со смесью цифр и букв обоих алфавитов, и ничего не работало. Потом я понял, что сам этот код должен был формировать команды, предположил наличие УИА с небольшим по модулю отрицательным числом, ЦИКЛ назад по тому же регистру, и тут же выскочили вероятные пароли из 4 символов: "2АТD", "2АФD", "ВАС;", "ВАТ;", "ВАФ;", которые давали в первых трех словах что-то похожее на

     УИИ 9(4) пока неясно, зачем
     УИА -2(12)
сюда СЧ откуда+2(12)
     Э75 куда+2(12)
     ЦИКЛ сюда(12)
     ПБ (13)
откуда ....

с ошибками в тех или иных местах, а собственно пароль (конечно, ВАСЯ) давал ошибки в ожидаемых командах (например 26 вместо 24), поэтому в качестве вероятного пароля вообще не появился.
Синус при этом считался стандартным кодом ОС Диспак, в котором есть только сложения и умножения, а на них симулятор собаку съел.

Единственное, что я могу предположить - это что разрабатывали программу на системе, в которой ради улучшенной точности коэффициенты полинома в Диспаке были хакнутые.  О подобных случаях известно?

Leo

Василий Долматов

unread,
Oct 2, 2026, 9:37:46 AM (9 days ago) Oct 2
to be...@googlegroups.com
попробую предположить еще один вариант:

«Рация на БТР» - то бишь «диск от СВС» … то есть, аппаратная база - не классической Б-6… 
вот тут и может прятаться какое-то отличие, при этом, «разрабатывали» эту чудо-программу с «конечно ВАСЕЙ» :) на СВС, откуда родом этот диск, то есть, для них это было вполне естественное поведение синуса… 

хотя, да, вспоминая Азимова, физики - они такие, ради своих целей и Законы Роботехники хакнуть могут. :)

dol@

2 окт. 2026 г., в 12:38, Leo B. <leo...@gmail.com> написал(а):

--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/2c266c8a-306d-4040-a6c8-c8db4eedcc45n%40googlegroups.com.

Mikhail Popov

unread,
Oct 2, 2026, 11:35:43 AM (9 days ago) Oct 2
to be...@googlegroups.com
Что касается синуса, у меня были коллеги, которые не использовали библиотечные функции принципиально, а имели свои собственные, по разным причинам: одни — для точности, другие — для скорости. У одного была колода для БЭСМ-4, там вся тригонометрия была сдалана в кодак 

Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/8F69D8AB-15ED-4312-8A4A-D3ABA78E306A%40gmail.com.

Leo B.

unread,
Oct 2, 2026, 12:36:25 PM (9 days ago) Oct 2
to БЭСМ-6
On Friday, October 2, 2026 at 6:37:46 AM UTC-7 ReedCat wrote:
попробую предположить еще один вариант:

«Рация на БТР» - то бишь «диск от СВС» … то есть, аппаратная база - не классической Б-6… 
вот тут и может прятаться какое-то отличие, при этом, «разрабатывали» эту чудо-программу с «конечно ВАСЕЙ» :) на СВС, откуда родом этот диск, то есть, для них это было вполне естественное поведение синуса… 

На уровне работы сложений и умножений отличие классической Б-6 от СВС было нулевое - ну двухрядный код, ну нормализация, ну округление по стандартному алгоритму АУ, иначе бы её никто не стал использовать. Было бы в вычислении синуса деление, нужное для аппроксимации Паде, вопросов бы не было - но нету его там, чистая схема Горнера.

Leo

Leo B.

unread,
Oct 2, 2026, 12:39:08 PM (9 days ago) Oct 2
to БЭСМ-6
On Friday, October 2, 2026 at 8:35:43 AM UTC-7 mikhailp wrote:
Что касается синуса, у меня были коллеги, которые не использовали библиотечные функции принципиально, а имели свои собственные, по разным причинам: одни — для точности, другие — для скорости. У одного была колода для БЭСМ-4, там вся тригонометрия была сдалана в кодак 

Я в своё время удивлялся, почему в МС "Дубна" тригонометрия сделана через экстракоды, а не втащена хотя бы ровно с теми же формулами ради скорости. Да и точность могли улучшить по ходу дела.
 
Leo

Mikhail Popov

unread,
Oct 2, 2026, 8:09:20 PM (9 days ago) Oct 2
to be...@googlegroups.com
Экстракоды*50 я так понимаю , были изначально реализованы в первом диспетчере, а Дубна поддерживала какую-то 


Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/6be65b4e-d754-41fb-b5e4-e7f7fcd1f877n%40googlegroups.com.

Leo B.

unread,
Oct 5, 2026, 2:18:34 AM (6 days ago) Oct 5
to БЭСМ-6
В конце концов всё выяснилось. Дело было не в синусе. Ожидаемый cleartext достигается изменением нескольких восьмеричных цифр в серединах трех из шести слов ciphertext. То ли изначальный пароль решили переделать на ВАС; (потому что код Я - 076, а код точки с запятой - 037; количество единиц совпадает) и ошиблись, то ли сначала переделали, а потом и он утёк, и ciphertext попортили по принципу "так не доставайся же ты никому". 

Итого,
  
   70000         │ уии М11(М14)           │ уиа −2(М12)
   70001         │ сч 70005(М12)          │ э75 2530(М12)
   70002         │ цикл 70001(М12)        │ пб (М15)
   70003         │ уии М11(М14)           │ э50 7600
   70004         │ уии М15(М10)           │ пб (М13)
   70005         │ 7500000000025000

Секрет заключается в экстракоде Э50 7600, который для работы должен находиться в слове 02526. Он предназначен для корректировки памяти ОС словом на сумматоре по адресу, указанному на М11, и маске на РМР. 

   70002       │ 6324442345102611    │ 6324442361102611   │ 24000000   пб (М10)  →  (М15)
   70003       │ 7010670032357563    │ 7010670036357563   │ 04000000   э50 7600(М1)  →  э50 7600
   70004       │ 7017365624311574    │ 7017365620311574   │ 04000000   пб (М12)  →  (М13)

Уж как-то очень аккуратно попортили; больше похоже на ошибку при перевычислении вручную.

Leo
Reply all
Reply to author
Forward
0 new messages