vak: (Улыбка)
[personal profile] vak
(https://snob.ru/selected/entry/109929)

Согласно алгоритму, имя, отчество и фамилия записываются вместе без пробелов: артемюрьевиччайка. Последовательность букв необходимо разделить на блоки, в каждый блок включаются символы через четыре начиная с первого, второго, третьего, четвертого и пятого. Получается «аюик», «ррча», «тьч», «ееа», «мвй».

Каждый символ из этой последовательности заменяется на его числовой код. Если в названии компании, которое нужно зашифровать, есть цифры, они не меняются. Вместо букв же пишутся их номера в алфавите, к которым прибавили цифру девять. Таким образом получаем: а — 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», а героя телесериала «Игра престолов» как «бтнйд».

Date: 2016-06-21 19:20 (UTC)
From: [identity profile] kondybas.livejournal.com
Хеш по MD5 с пеной у рта бьется в корчах.

Date: 2016-06-21 19:56 (UTC)
From: [identity profile] spamsink.livejournal.com
Интересно, что 43^5 - примерно 147 миллионов. Если бы у всех жителей России были разные имена и - чудо - не случилось бы коллизий, как раз на всех бы хватило c минимальным запасом.
Не совсем ясно, что делать, если в ФИО больше 25 букв, как у какой-нибудь банальной Александры Александровны Крестовоздвиженской.

Ну и сразу приходит в голову математическая задачка на подбор коэффициентов для получения из очевидного исходного имени очевидного результата из пяти букв.

Date: 2016-06-21 23:14 (UTC)
From: [identity profile] proxfessor.livejournal.com
АРТЕМ или всё-таки АРТЁМ? Судя по коду буквы И, Ё считается отдельной буквой. Интересно, что Ё в приведённом примере - как раз тринадцатая буква с коэффициентом 0.
Edited Date: 2016-06-21 23:31 (UTC)

Date: 2016-06-21 23:39 (UTC)
From: [identity profile] proxfessor.livejournal.com
Что-то я нервничаю. "С помощью программы «Сноб» закодировал имена Владимир Владимирович Путин и Джон Эддардович Сноу". Но в имени Путина - 25 символов, а число известных коэффициентов - всего 17, по числу символов в именах обеих чаек. Недостающие коэффициенты невозможно определить, не располагая хэшами имен длиной как минимум из 25 символов.

Date: 2016-06-22 03:37 (UTC)
From: [identity profile] spamsink.livejournal.com
На самом деле всё это херня. Имеем 10 уравнений (по уравнению на символ в известных примерах, которых всего два, по количеству братьев), в то время как искомых переменных (коэффициентов) гораздо больше двух дюжин. Таких формул можно хоть сколько нарыть, даже в предположении, что алгоритм действительно такой.

Date: 2016-07-03 00:10 (UTC)
From: [identity profile] Лев Горенштейн (from livejournal.com)
Особый +1 за "делится на число 43 (сумма цифр и букв в русском алфавите: 10+33=43)" ;-)