Шифр FreeBitcoins и результат конкурса

Привет! Наконец-то мой шифр в конкурсе «Расшифруй текст» был разгадан. О том, что там было зашифровано, как работает шифр, кто его разгадал и какой правильный ответ — читай в этой статье 🙂

Конкурс от сайта FreeBitcoins.pp.ua

Немного предыстории:

В сентябре я придумал шифр и решил сделать на его основе конкурс, так как сайту в марте исполнился год, а я не сделал никакого конкурса тогда. Для победы в конкурсе нужно было разгадать шифр и ответить на зашифрованный там вопрос, ответ на который был несложный. Победитель получал лично от меня 50$ и 80% от всего доната в BTC и ETH, которого в итоге вообще не было.

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

Что я зашифровал и кто победитель

За все время было прислано всего лишь 3 ответа.

Вот два неправильных ответа:
Расшифрованный текст — год основания биткоина? Ответ на зашифрованный вопрос — 2009
Расшифрованный текст — Ты едешь сегодня на рынок? Ответ на зашифрованный вопрос — Да

Первый ответ вовсе не логичен, ведь в моем шифре в первом слове 2 буквы, а не 3, во втором слове 5, а не 9 и так далее. Во втором ответе хотя бы соответствует количество слов и букв в них, но это просто статистически похожее предложение.

Ночью 3 декабря я получил такое сообщение в VK:

Итоги конкурса FreeBitcoins.com.ua

Сначала я подумал, что это пишет кто-то из людей приславших неправильный ответ, с уверенностью что он правильный. Я поспешил проверить форму гугла, и оказалось, что еще во вторник в форме появился новый ответ — правильный ответ.
Из-за того, что в Телеграме прекратил работу один бот, то я не получал автоматически уведомлений при заполнении формы, поэтому и забыл о ней.

Я также проверил форумы, и фактически, оказалось, что еще во вторник (28 ноября 2017) один из форумчан выслал ответ:

Победитель конкурса FreeBitcoins.com.ua

Сколько же у меня было радости от того, что кто-то наконец-то смог расшифровать текст…

Вот тот самый ответ из гугл формы:

Правильный ответ в конкурсе FreeBitcoins.com.ua

Что я зашифровал: на какой планете мы живём?
Правильный ответ: Земля

Для проверки честности конкурса был создан PDF файл с правильным ответом.
Пароль к зашифрованному PDF файлу с правильным ответом, который можно скачать в статьей с конкурсом:
ju@7hxwequ189d13NX&$jida!!kndiw

Победитель решил остаться анонимен, новый аккаунт на форуме, одноразовая страница в вк. Поэтому он останется для нас как Нина, Стюи или CryptoSwinger.

Что CryptoSwinger пишет на форуме о расшифровке

Так забавно смотреть на все эти обвинения  :mrgreen:

Шифр можно либо расшифровать, либо нет. Если ты его расшифровал — ты в этом уверен. Так что одной попытки хватает. А если кто-то там наугад что-то отвечает — это тыканье пальцем в небо просто.

Вот это куда ближе к истине. За неё просто не брался никто, кто хоть раз в жизни с буквенными шифрами сталкивался.

Итак. Что у нас было изначально.
У нас был сам шифр.

У нас есть знание того, что это русский язык и ответ также на русском.
У нас есть знание того, что зашифрован ВОПРОС.
У нас есть знание того, что ответ на этот вопрос ОБЩЕИЗВЕСТЕН.

Мы начнём с лексического анализа. Вопросы у нас в языке строятся по определенной схеме.
В начале могут идти слова вроде «где», «что», «когда», «кто» и т.д.
Также распространенным вариантом являются словосочетания с различными формами слова «какой». Например: на какой, до каких, по какой, с какой, на какую и т.д.

Взглянем на шифр. Первое слово 2 буквы, второе 5 букв (1 и 3 одинаковы). Вариант с формами слова «какой» отлично вписывается. Два Щ — два К, число букв совпадает.

Скажу честно, в этот момент я уже понял что там за вопрос. Так как он общеизвестен!!! Это была главная подсказка, которую никто и не видел.

Ну да ладно. Не будем все массово торопиться. Перейдем к математике. Большинство буквенных шифр предполагают те или иные операции с номерами букв (обычными или обратными). Берём классический русский алфавит с 33 буквами. Вносим в первые столбцы екселя буквы и их номера. Проверяем наши предположения касаемо того, что такое ПЭ. Используем ВПР для быстроты. Из трех наших вариантов. Вариант с «на» дает чудесно одинаковые суммы.


Точно также прогоняем слова «какой», «какую», «каком».
И видим это

Снова суммы совпали. Ура! Вам хочется указать мне на 6 и 62. Но это просто буквы, ушедшие на другой круг в тех же позициях. Прибавьте\вычтите 33 — и вот они 39 и 29.

У нас уже есть первые два слова «На какой … ?»
У нас также есть понимание того, что суммы буквы дают одинаковые, но лишь внутри отдельно взятого слова.
Повторюсь, я уже понимал что это за вопрос благодаря главной подсказке о том, что ответ на этот вопрос знает каждый. Но давайте я попытаюсь представить, что это не так. У нас есть еще одно слово из двух букв в шифре. На какой … слово из двух букв …. ? Что там может быть? Местоимение?

На какой … ты … ?
На какой … мы …?

Неплохо подходит, верно? Проверяем нашей табличкой. Местоимение «мы» отлично подходит. Мне не охото больше делать картинок, ибо я уже дольше пишу этот пост, чем разгадывал этот шифр, но вы можете проверить.

На какой … мы … ?

Давайте, вы же узнаете ответ. Рил толк. Изи-изи.

Ну окей. Попробуем взломать слово номер три. Оттолкнемся от знаний русского языка. Это должно быть существительное. Женского рода. Предложный падеж. Есть лишь два варианта окончания: -и или -е. При этом последняя буква есть у нас и внутри корня слова.

На какой ****е*е мы … ?

На какой ****и*и мы … ?

Это уже больше похоже на «Поле чудес», чем на сложный шифр. Можно конечно ломать это екселевской табличкой. Но можно просто уже назвать слово. ПЛАНЕТЕ.

На какой планете мы … ?

Последнее слово вы назовёте же сами. Да? ЖИВЁМ!

На какой планете мы живём?

Ну собственно вот… Шифр висел тут более двух месяцев, но всем просто было впадлу подумать…

Спасибо автору за 50 $. Бывали конечно и более легкие\быстрые деньги в моей жизни. Но тут было хоть интересно.

Как работает шифр FreeBitcoins

В основе моего шифра лежит шифр Цезаря, однако в моем случае используется динамический ключ, когда направление и размер смещения зависят от количества букв в конкретно взятом слове, плюс использовался обратный (зеркальный) алфавит. Сейчас я наглядно покажу как происходит зашифровка и дешифровка:

  1. Берем любой алфавит и делаем его зеркальным, пример с русским алфавитом (с буквой ё):
    нормальный порядок: абвгдеёжзийклмнопрстуфхцчшщъыьэюя
    зеркальный порядок: яюэьыъщшчцхфутсрпонмлкйизжёедгвба
  2. Берем предложение для зашифровки, пусть будет: Меня зовут Богдан
  3. Начинаем зашифровывать. Для этого берем букву из алфавита с нормальным порядком и заменяем на букву из зеркального алфавита. То есть, букве «а» (которая 1 по счету в нормальном алфавите) соответствует буква «я» (которая 1 по счету в зеркальном алфавите), букве «в» (3 в нормальном алфавите) соответствует «э» (3 в зеркальном алфавите) и так далее. В моем примере первая буква «М» (14 в нормальном), значит заменяем её на «Т» (14 в зеркальном алфавите).
  4. Далее нужно новую букву сместить влево либо вправо на определенное количество букв. Это направление и количество букв зависит от количества букв в исходном слове. Так как сейчас мы заменяем буквы в слове «Меня», то соответственно считаем количество букв в этом слове — их 4. Если число четное — сдвигаем вправо, если нечетное — влево. То есть, теперь букву «Т» сдвигаем вправо на 4, это будет буква «О».
    Ключ к шифру FreeBitcoins
  5. Таким же образом заменяем и другие буквы в слове «Меня», в итоге получаем «Оцнь». Так как последняя буква «я» заменяется на «а», и мы смещаем её вправо, то просто начинаем считать заново уже с левой стороны.
  6. В слове «зовут» уже 5 букв, поэтому смещение будет влево на 5. После зашифровки «зовут» превращается в «ьхврс».
  7. После шифрования имени «Богдан» получаем «Шкцхщл» (сдвиг вправо на 6).
  8. В итоге зашифровав шифром FreeBitcoins предложение «Меня зовут Богдан», получили «Оцнь ьхврс Шкцхщл».
  9. Для расшифровки нужно сделать противоположные действия. Если в слове четное количество букв, считать будем уже в левую сторону, если нечетное — в правую. После этого полученную букву из зеркального алфавита заменяем на соответствующую букву нормального алфавита. Например, расшифруем слово «Чуп».
    В слове 3 буквы, значит в зеркальном алфавите с каждой буквой сдвигаемся на 3 вправо. В зеркальном алфавите «Ч» после 3х сдвигов вправо это «Ф», которой в нормальном алфавите соответствует «К». Далее проделываем тоже самое с буквами «у» и «п», в итоге получаем слово «Кот».

Биткоин кот

Напиши в комментариях, если знаешь чей это кот))

Приз 50$ был выплачен в BTC на кошелек биржи Yobit победителя.

Приз победителю в конкурсе от FreeBitcoins.com.ua

Для закрепления материала, расшифруй согласно инструкции данный текст и напиши его в комментариях, также можешь сам зашифровать моим методом текст, а я расшифрую его.

Фцёфэеч хэ вжфлрф, вижиятфи юфг

P.S. Был написан скрипт для быстрого взлома шифра, подробнее в статье Программный взлом шифра FreeBitcoins.