Алгоритм ЛСДУ3
2016-06-21 12:15![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Согласно алгоритму, имя, отчество и фамилия записываются вместе без пробелов: артемюрьевиччайка. Последовательность букв необходимо разделить на блоки, в каждый блок включаются символы через четыре начиная с первого, второго, третьего, четвертого и пятого. Получается «аюик», «ррча», «тьч», «ееа», «мвй».
Каждый символ из этой последовательности заменяется на его числовой код. Если в названии компании, которое нужно зашифровать, есть цифры, они не меняются. Вместо букв же пишутся их номера в алфавите, к которым прибавили цифру девять. Таким образом получаем: а — 10, ю — 41, и — 19, к — 21, р — 27, р — 27, ч — 34, а — 10, т — 29, ь — 39, ч — 34, е — 15, е — 15, а — 10, м — 23, в — 12, й — 20.
Для каждого блока математики вычислили свой набор коэффициентов (все коэффициенты есть в распоряжении редакции). Для первого числа первого блока коэффициент — 38, для второго — 1, для третьего — 4, для четвертого — снова 4. Для первого числа второго блока коэффициент — 9, для второго — 2, для третьего — 2, для четвертого — 5. Для первого числа третьего блока коэффициент — 36, для второго — 3, для третьего — 8. Для первого числа четвертого блока — 0, для второго — 7, для третьего — 14. Для первого числа последнего блока — 38, для второго — 1, для третьего — 1.
Каждая цифра из блока умножается на ее коэффициент. Произведения складываются. Для первого блока расчет будет такой: 10*38 + 41*1 + 19*4 + 21*4 = 581.
Результат расчета — в данном случае 581 – делится на число 43 (сумма цифр и букв в русском алфавите: 10+33=43). 581 делится на 43 с остатком 22: 581 = 43*13 + 22. Остаток — 22 — это код символа, который будет в первом исходном коде имени. По ранее указанному правилу, чтобы получить букву из цифры, вычитаем 9 из 22: 22 – 9 = 13. Под 13-м номером в русском алфавите следует буква «Л». Она и будет первой буквой кода. По такому же алгоритму вычисляются кодовые символы и в остальных блоках.
С помощью программы «Сноб» закодировал имена Владимир Владимирович Путин и Джон Эддардович Сноу. Программа зашифровала имя российского президента как «чщ2з1», а героя телесериала «Игра престолов» как «бтнйд».
no subject
Date: 2016-06-21 19:20 (UTC)no subject
Date: 2016-06-21 19:31 (UTC)no subject
Date: 2016-06-21 19:33 (UTC)no subject
Date: 2016-06-21 19:53 (UTC)Забороть частотку русского алфавита и перейти к равномерному распределению в хешах можно и без такого... эээ... каминг-аута.
no subject
Date: 2016-06-21 19:56 (UTC)Не совсем ясно, что делать, если в ФИО больше 25 букв, как у какой-нибудь банальной Александры Александровны Крестовоздвиженской.
Ну и сразу приходит в голову математическая задачка на подбор коэффициентов для получения из очевидного исходного имени очевидного результата из пяти букв.
no subject
Date: 2016-06-21 20:02 (UTC)Вероятно, позиционные коэффициенты циклически применяются, хуже от этого уж точно не будет.
no subject
Date: 2016-06-21 20:13 (UTC)no subject
Date: 2016-06-21 20:16 (UTC)no subject
Date: 2016-06-21 20:18 (UTC)То есть тринадцатая буква просто игнорируется и не влияет на результат.
Так что коллизий будет завались.
Да, было бы прикольно восстановить ФИО из результата типа Х*ЙЛО или П*ЗДА.
no subject
Date: 2016-06-21 20:27 (UTC)no subject
Date: 2016-06-21 21:15 (UTC)no subject
Date: 2016-06-21 23:14 (UTC)no subject
Date: 2016-06-22 02:27 (UTC)no subject
Date: 2016-06-22 03:23 (UTC)no subject
Date: 2016-06-22 03:27 (UTC)no subject
Date: 2016-06-22 03:28 (UTC)no subject
Date: 2016-06-22 03:32 (UTC)no subject
Date: 2016-06-22 03:36 (UTC)no subject
Date: 2016-06-22 03:38 (UTC)no subject
Date: 2016-06-22 03:39 (UTC)no subject
Date: 2016-06-22 04:48 (UTC)no subject
Date: 2016-06-21 23:39 (UTC)no subject
Date: 2016-06-22 03:37 (UTC)no subject
Date: 2016-06-22 04:09 (UTC)no subject
Date: 2016-07-03 00:10 (UTC)