— Ремонт бы тебе сделать, — назидательно произнес он, — алкаш этот, Рома, квартиру жуть как запустил. Так и помер в свинарнике.
— Что, прямо тут и помер? — поинтересовался Кирилл.
— Нет, его в тот раз после очередного запоя «белка» навестила, зеленые человечки в уборной завелись и хотели беднягу для исследований на Марс забрать. Видимо, изучали влияние паленой водки на организм пьющего сантехника. Так он, от них спасаясь, в окно и вышел.
— Разбился?
— Да нет же. Какое разбился, второй этаж. В больницу увезли, переломанного. Там и умер.
Судьба бывшего владельца его нынешнего жилища Кирилла занимала мало, а вот ремонт и вправду был необходим, но он все откладывал это мероприятие на неопределенное будущее. Гости к нему заглядывали редко, а сам он с продранным линолеумом и грязными обоями уже как‑то свыкся. Да и вдоволь полюбоваться на интерьер получалось не так уж и часто: он подолгу зависал в «Синем экране», а дома проводил почти все время за экраном ноутбука, и там, в мире, где клавиши звучали громче человеческих голосов, окружающая реальность не имела никакого значения.
Борис Семенович прошел в комнату, с кряхтеньем опустился на предложенный Кириллом стул, нацепил очки и развернул перед собой школьную тетрадку в клетку, исписанную мелким бисерным почерком.
— Значится, так, — прихлопнул он ладонью тетрадный разворот, — то, что ключик берется не из воздуха, это хорошо. Идея там простая: дата как соль, серийный номер диска как персональная метка машины — склеил их, прогнал через генератор и получил ключ. Вот это первая загвоздка. Если ключ зависит от текущей даты, то вернуть файлы, зашифрованные, скажем, три недели назад, можно — но требуется знать, какое именно значение использовал троян. Не просто «март», а точное время.
Кирилл заглянул соседу через плечо, пробежал по листку глазами: почерк был мелким, но аккуратным и разборчивым, формулы лежали в клеточках, будто книжки на полке. Очень изящный и аккуратный алгоритм придумал Криптодед, просто загляденье. Где он, интересно, этому научился?
— Дату и время можно взять из метаданных самого файла, — задумчиво произнес Киря, — а лучше вытащить из нескольких и сравнить для надежности.
— Со вторым значением, которое серийный номер, все проще, — продолжил Борис Семенович, — разве что, если хозяин компьютера сменит винчестер и перенесет зашифрованные файлы туда, весь «персональный» фактор улетит в трубу. А вот если у тебя есть хотя бы один исходный файл — хоть сохраненная фотка, хоть шаблон письма, любой незашифрованный документ, — то алгоритм можно подручными методами проверить: подать предположительную дату, серийник и посмотреть, совпадает ли расклад. То есть нужен мостик — небольшая подсказка извне. Без нее ты будешь тыкаться вслепую и подбор ключа займет гораздо больше времени. Это вторая загвоздка.
Кирилл кивнул, внутренне поражаясь тому, с какой легкостью сосед рассуждает о вещах, которые большинству людей показались бы непонятной тарабарщиной. От пожилого человека в застиранной майке и вытянутых трениках ожидаешь услышать что угодно, кроме почти научной лекции по основам криптографии. Его так и подмывало поинтересоваться напрямую, откуда все‑таки у Бориса Семеновича взялись столь глубокие познания в генераторах и ключах. Не решился. Да и сам тон соседа не оставлял места расспросам: будто тот нарочно держал границу, открывая ровно столько, сколько считал нужным.
— Давайте я тогда расшифровщик набросаю, — предложил Кирилл, — сразу и проверим, как ваш алгоритм работает.
— Годится, — кивнул сосед. — А я пойду на кухню, чайник поставлю. Печенье у тебя найдется какое‑нибудь?
— Вчерашний батон только.
— Тогда я из дома сгущенки принесу. Чего пустой чай гонять?
Пока Кирилл возился с кодом, Борис Семенович поставил на плиту чайник, стукнул дверцей холодильника, о чем‑то поворчал, потом сбегал к себе и вернулся с половиной палки докторской колбасы, брикетиком сливочного масла и банкой сгущенного молока. Спустя несколько часов все было готово — Кирилл запустил декодер из командной строки, передав ему на вход требуемые параметры и путь к одному из зашифрованных файлов. Программа работала.
— Ваши файлы я к утру расшифрую, — пообещал Кирилл, с аппетитом откусив от ломтика политого сгущенкой нарезного, которые Борис Семенович аккуратно разложил на тарелочке.
— Думаю, не один я от этого вируса пострадал, — произнес сосед, — можно и другим людям помочь.
— В принципе, можно… — Кирилл прикинул в уме, что понадобится для реализации этой затеи, и потянулся за следующим куском. — Тогда надо к программе графический интерфейс приделать, чтобы было проще. Сайт какой‑нибудь можно на коленке соорудить. Да и вообще, ничто не мешает копейку за расшифровку брать — меньше, чем злодеи просят, но и чтобы не совсем даром. Подумать надо.
— Вот и подумай.
— Только расшифровщик наш именно с этой версией трояна справиться может. Если его авторы поумнеют и добавят в алгоритм настоящую случайность — скажем, вместо простой конкатенации даты и серийника станут использовать источник истинного энтропийного шума, — то весь ваш блестящий алгоритм превратится в тыкву. Ни дата, ни серийник не помогут.
— Ну да, — Борис Семенович вздохнул, — а еще автору трояна может не понравиться, что ты его бизнесу мешаешь.
Кирилл откусил еще кусок булки и на мгновение задумался: деньги за расшифровку, интерфейс, сайт на коленке… Картинка понемногу становилась не такой уж простой — слишком мелкая прибыль против возможных проблем.
— А может, бесплатно декодер выложить? — продолжил размышлять он вслух.
— Может, и так, — хмыкнул сосед, — но на всякий случай старайся лишний раз не светиться в интернете. Никаких громких рекламных объявлений, никаких больших сумм и, главное, никаких реальных имен. Чем меньше народу знает, кто именно этим занимается, тем дольше будет работать метод.
Кирилл кивнул. Он ощутил, как внутри просыпается привычный азарт — решить задачу, сделать рабочий продукт, довести его до ума. Деньги и потенциальный риск отступили на второй план.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
