«Вы, конечно, шутите, мистер Фейнман!» - Фейнман Ричард Филлипс. Страница 34
Повернув затем лимб на один оборот в обратную сторону (при этом штырек на втором лимбе захватывается с обратной стороны) и дальше до второго числа, ты устанавливаешь в нужное положение и второй диск.
Обращая еще раз направление вращения лимба, ты ставишь в правильное положение первый диск. Теперь все три прорези находятся друг против друга, и поворотом лимба на 10 ты открываешь замок.
Так вот, я старался изо всех сил и ничего не мог поделать с этим замком. Я купил пару книжек про известных взломщиков, но толку от них было мало. В начале книжки автор травил несколько историй про фантастические подвиги взломщика, вроде той, где запертая в холодильнике женщина замерзла бы, если б не взломщик, который за две минуты открыл замок, вися вниз головой. Или той, где герой ныряет и под водой открывает сундук с драгоценными мехами или золотыми слитками.
Во второй части книги шли советы, как лучше вскрыть сейф вам. Это была туфта вроде того, что «прекрасная идея – попробовать в качестве комбинации цифр дату, потому что куча народу использует для этой цели даты». Или: «подумайте о складе ума владельца сейфа и о том, что он мог использовать в качестве комбинации». Или «секретарши часто боятся забыть комбинацию и записывают ее в одном из следующих мест: на краешке стола, в записной книжке, и…». И дальше мура в том же духе.
И все-таки кое-что полезное про обычные сейфы я узнал. У обычных сейфов есть дополнительная ручка, и если ее поворачивать, одновременно вращая цифровой лимб, повторится ситуация, уже описанная применительно к барабанным замкам: проталкиваемый ручкой через прорези (которые не выстроены вдоль одной прямой) дисков стержень одним диском удерживается больше, чем остальными. Поэтому, когда стержень попадает против отверстия в этом диске, раздается еле слышный щелчок, который можно уловить стетоскопом, или наблюдается небольшое уменьшение трения, которое можно ощутить рукой (и стирать кончики пальцев о наждачную бумагу для этого не нужно!). Услышав этот щелчок, вы говорите себе: «Ага, вот число!».
Вы не знаете, первое, второе или третье это число, но довольно точное представление об этом сможете получить, сосчитав число оборотов, которые нужно сделать в обе стороны, чтобы снова услышать тот же щелчок. Если оно меньше единицы, то это первый диск, а если немного меньше двух (нужно учитывать толщину штырьков), – второй.
Этот полезный трюк срабатывает только с обычными сейфами, имеющими дополнительную ручку, и для меня он был бесполезен.
Я перепробовал с этими шкафами всякие «нечестные» способы: пытался, например, не открывая верхнего ящика, открыть защелки нижних проволочным крюком, продетым через отверстия, получающиеся при вывинчивании винтов из передней панели шкафа.
Я пробовал вращать лимб очень быстро и затем устанавливать его на 10, надеясь, что благодаря трению диски каким-то образом сами встанут в нужное положение. Я перепробовал все, что пришло мне в голову, и все было напрасно. Я был в отчаянии.
Тогда я предпринял небольшое систематическое исследование. Типичной была, например, комбинация 69–32–21. Я задался вопросом, насколько неверной может быть эта комбинация, чтобы она все-таки открывала замок? Если первое число 69, пойдет ли 68? 67? Для тех замков, что были у нас, ответом на эти оба вопроса было да, а вот 66 уже не годилось. Вы могли ошибиться на две единицы в обе стороны. Это означало, что пробовать вам надо было одно число из пяти, так что набирать нужно было нуль, пять, десять, пятнадцать и так далее. Это уменьшало количество чисел на лимбе со ста до двадцати, а количество всех возможных комбинаций трех чисел – с 1 000 000 до 8000.
После этого возникал вопрос, сколько времени займет перепробовать 8000 комбинаций? Допустим, я знаю первые два числа комбинации, которую я хочу найти. Пусть это будут числа 69–32, но я не знаю этого, – я получил их как 70–30. Я могу теперь попробовать двадцать третьих чисел, не набирая каждый раз первые два. Допустим теперь, что правильно я знаю только первое число комбинации. Перепробовав на третьем диске двадцать чисел, я сдвину второй диск лишь немного и затем наберу еще двадцать чисел на третьем диске.
Я тренировался на своем сейфе все свободное время, и в конце концов я стал проделывать эту процедуру с максимальной скоростью, не забывая при этом, какое число нужно набирать сейчас и не путая первое число. Подобно жонглеру, я выработал у себя абсолютное чувство ритма и последние 400 чисел мог перебрать менее чем за полчаса. Это значило, что открыть сейф я могу максимум за 8 часов при среднем времени 4 часа.
В Лос-Аламосе был еще один малый по имени Стейли, который тоже интересовался замками. Время от времени мы встречались и болтали, но ни к чему хорошему так и не пришли. Когда я открыл этот способ открывать замок в среднем за четыре часа, я пошел продемонстрировать его Стейли. Я поднялся в вычислительный отдел, где он работал, и сказал: «Ребята, если вы не возражаете, я воспользуюсь вашим сейфом, чтобы кое-что показать Стейли».
Вокруг меня стали собираться сотрудники вычислительного отдела, и один из них закричал: «Эй, все сюда! Фейнман будет учить Стейли взламывать сейфы!» Я не собирался именно открывать сейф; я хотел только показать Стейли способ быстрого перебора последних двух чисел без повторной установки первого.
Я начал: «Предположим, что первое число – 40, а в качестве второго числа мы пробуем 15. Крутим назад и вперед до 10, назад на пять больше и вперед до 10 и так далее. Мы перепробовали все возможные третьи числа. Попробуем теперь в качестве второго числа 20. Крутим назад и потом вперед до 10, потом назад на 5 больше и вперед до 10, еще на 5 больше назад и вперед…» ЩЕЛК! Моя челюсть отпала: первое и второе числа оказались правильными!
Выражения моего лица никто не видел, потому что я стоял ко всем спиной. Стейли выглядел очень удивленным, но мы оба быстро поняли, что произошло. Я торжественно выдвинул верхний ящик и сказал: «Пожалте!»
Стейли сказал: «Я понял. Это очень хорошая схема», и мы вышли. Все были ошарашены. Это был полный успех. Теперь я на самом деле приобрел славу взломщика.
На это у меня ушло полтора года (я работал и над бомбой, само собой!), но я считал, что с сейфами я справился – в том смысле, что если бы возникла действительная нужда, – кто-нибудь бы пропал или умер, а комбинацию больше никто не знал бы, – я смог бы открыть сейф. После той напыщенной галиматьи, которую о взломщиках писали в книжках, я мог считать это вполне серьезным достижением.
С развлечениями у нас в Лос-Аламосе было неважно, нам приходилось развлекать себя самим, и возня с мозлеровским замком моего шкафа была одним из моих развлечений. Как-то раз я сделал интересное наблюдение: когда замок был открыт, ящик выдвинут, а лимб оставлен на 10 (именно в таком состоянии люди оставляли свой шкаф, когда они его открывали и вынимали из него документы), запирающий стержень все еще оставался в нижнем положении. Что же это означало, что стержень был внизу? Это означало, что стержень продет через прорези всех трех дисков, которые, следовательно, все еще стоят друг против друга. Ага…
Если теперь лимб слегка повернуть от 10, стержень пойдет вверх, но если сразу вернуть лимб на 10, он снова опустится, потому что канал из прорезей для него все еще сохранен. Если шагами по 5 делений уходить от 10, начиная с некоторого момента стержень перестанет опускаться при возвращении на 10: канал для стержня только что был нарушен. А непосредственно предшествовавшее этому число, при котором стержень все еще опускался, есть последнее число комбинации!
Я сообразил, что то же можно проделать и для второго числа: если я знаю последнее число, я могу прокрутить лимб в обратную сторону и снова, шагами по пять делений, постепенно повернуть второй диск в такое положение, при котором стержень перестанет проходить через него. Предшествовавшее этому число будет вторым числом комбинации.
Если бы я был очень терпеливым человеком, таким способом я мог бы находить все три числа комбинации, но усилия, которые надо было затратить для нахождения первого числа таким хитроумным способом, намного превосходили те, которые требовались для простого перебора двадцати возможных чисел с двумя уже известными последними числами комбинации (напомню, что такой перебор выполнялся на закрытом замке).