avva: (Default)
[personal profile] avva
Придумал сюжет для криптофантастического романа или повести. Точнее, не сюжет даже, а завязку.

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


Смотрит внутрь этой функции, видит: там что-то вычисляется, странное и сложное. Разбираться, что именно, чтобы написать генератор номеров, лень, там куча каких-то битовых операций неясных в цикле. С другой стороны, никаких подвохов в виде проверки контрольной суммы вычисляющего кода, или побочных эффектов функции, или других проверок в других местах, вроде бы не видно. Обрадовавшись, что всё оказалось так просто, он быстро забивает код функции, чтобы она всегда возращала истинность проверки, готовит патч, перепроверяет с ним — вроде бы всё работает, программа принимает любой серийный номер без проблем — и отсылает патч по стандартным своим каналам дистрибуции. Работа сделана.

Но что-то продолжает его беспокоить, почему-то он всё время возвращается мысленно к коду этой функции. Что-то там было знакомое, хоть даже и в ассемблере... В конце концов через пару дней он открывает опять пропущенный через дизассемблер код программы, находит эту функцию, читает внимательно, тщательно выписывает, что она делает с серийным номером, мучительно пытается вспомнить, где он это видел. Наконец срывается с места, прыгает к книжной полке, хватает изрядно потрёпанное второе издание Applied Cryptography и быстро находит в нём обсуждение MD5. Да, не может быть никаких сомнений! Загадочная функция проверки серийного номера попросту пропускает его через MD5, и сравнивает после этого с фиксированным 128-битным числом. Более того, числом этим оказывается 0x0123456789ABCDEFFEDCBA9876543210 . Герой откладывает книгу в сторону и надолго задумывается, облокотившись на клавиатуру и уставив невидящий взгляд в горящие на мониторе строки ассемблерных команд, составляющих функцию проверки серийного номера...

Date: 2003-11-23 11:07 am (UTC)
From: [identity profile] avva.livejournal.com
Ну так это и есть один из возможных сюжетов. Я же только завязку написал.

Оказывается, что в фирме, которая написала эту игрушку, сидит юный хакер, который ничтоже сумняшеся обратил MD5, просто увидев имплементацию, которая ему понравилась, в какой-то библиотеке. Или там сидит idiot savant, который умеет в уме обращать MD5, не зная, как он это делает. Он просто думает о результате, напрягается, и ему в голову вскакивает возможная исходная строка. За ним начинают охотиться люди из NSA, итд. итп.

Или оказывается, что в фирме работает астроном-любитель, который уже год подряд получает из окрестностей Альфа Центавра модулированный радиосигнал, который является потоком нулей и единиц, и в попытке его расшифровать он как-то случайно заметил, что поток кодирует одну за другим строки с этим значением MD5. Собственно, как он это заметил: он написал кучу скриптов на Перле для статистического анализа строк из потока. Среди структур данных, к-е используют скрипты, есть хэш, в котором ключом служит строка. Он замечает, что после очередной попытки разделить поток на строки скрипты почему-то начали бежать очень медленно. Долго отлаживает, и обнаруживает, что именно в этом хэше все строки попадают в один bucket (а это какой-то новый Перл, к-й использует MD5 в качестве хэш-функции), и поэтому обращение к хэшу внезапно стало линейным по времени. Ну и так далее.

Про квантовые машины Тьюринга и писать не буду, и так всё очевидно ;) ну и ещё есть 2-3 других возможных продолжения, из которых можно выстроить собственно сюжет.

Date: 2003-11-23 11:26 am (UTC)
From: [identity profile] msh.livejournal.com
Стивенсон: в коде вдруг находится строка "by root@eroditorium.org"

X-Files: правительство знает как реверсировать MD5 с 1949 года

Линч: подробно объясняется кто и как обращает MD5. К концу фильма зритель уже не понимает что такое MD5, кто он сам такой и в каком городе он сейчас находится.

Douglas Adams: они просто загадывают результат, а потом возвращаются в прошлое и смотрят исходное значение


Date: 2003-11-23 12:14 pm (UTC)
From: [identity profile] qth.livejournal.com
X-Files: правительство знает как реверсировать MD5 с 1949 года


Но из-за бюрократических проволочек до 1991 года забывали рассказать людям что такое MD5 вообще.

Date: 2003-11-23 12:23 pm (UTC)
From: [identity profile] 109.livejournal.com
Матрица: чтобы изменить конфигурацию матрицы, Нео должен ввести serial number, а известен только MD5 hash.

Но про Адамса я не понял. как поможет возвращение в прошлое? скорее уж такие строки получаются как побочный продукт работы improbability drive :-)

Bzz

Date: 2003-11-24 12:24 am (UTC)
From: (Anonymous)
Дуглас Адамс: Оказывается что это хеш от "42" :-)

Date: 2003-11-23 12:31 pm (UTC)
From: [identity profile] side-effect.livejournal.com
Или там сидит idiot savant, который умеет в уме обращать MD5, не зная, как он это делает. Он просто думает о результате, напрягается, и ему в голову вскакивает возможная исходная строка. За ним начинают охотиться люди из NSA, итд. итп.

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

Date: 2003-11-23 12:58 pm (UTC)
From: (Anonymous)
Это где Брюс Виллис играл?

TLKH

Date: 2003-11-23 01:45 pm (UTC)
From: [identity profile] side-effect.livejournal.com
возможно, не помню точно

Date: 2003-11-23 02:53 pm (UTC)
From: [identity profile] oblomov-jerusal.livejournal.com
Еще один возможный вариант - после немыслимых приключений в попытках узнать, как генерируются номера, хакер вдруг заметил в коде ранее не замеченную им инструкцию вызова другой функции, которая заменяла результат md5 на сумму значение ключа в 26-ричной системе по модулю 2^128 + 1, как оказалось, код md5 не использовался в программе и был вставлен, чтобы подшутить над хакерами. Во всех, или в большинстве, других вариантов нужно объяснить не только как был обращен md5, но и почему это употреблялось таким образом.

Date: 2003-11-24 08:12 am (UTC)
ext_454496: (Default)
From: [identity profile] alexcohn.livejournal.com
или например вся эта ассемблерная конструкция является просто равноотстоящей последовательностью из книги "Числа".

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
2829 30 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 1st, 2026 05:55 pm
Powered by Dreamwidth Studios