– А если поступить как разработчики с процессорами последних моделей: не можешь увеличить скорость работы – увеличивай число ядер.
– Это если удастся распараллелить процесс поиска ключа…
«Стоп! Вполне такое возможно».
Для понимания того как Тьюринг создал свою криптологическую «бомбу» (дешифровальную машину, которая щёлкала своими электромеханическими внутренностями как мина с часовым механизмом) обратимся к истории вопроса. Впервые на то, что «Энигма» создаёт закольцованные цепочки, если сопоставить открытый и, соответствующий ему, шифротекст, обратил внимание польский криптолог Раевский.
Предположим например, что открытый текст содержит слово «погода». «Энигма» зашифровала это слово в такую последовательность букв: «одютпс». Казалось бы ничего примечательного, но Раевский, а за ним Тьюринг, который вывел его идею на более высокий уровень, отметили наличие цикла: буква «п» из слова «погода», превратилась в шифровке в букву «о» (первая буква в абракадабре «одютпс»). Дальше ищем «о» в открытом тексте, их две – во второй и четвёртой позиции, берём первую – получаем букву «д» в адракадабре. Теперь ищем «д» в открытом тексте, это – предпоследняя буква в слове «погода», что даёт нам «п» в шифровке.
«А вот и петля – „п“ превратилась в „п“»! (П-о-о-д-д-п… кстати, «о» в четвёртой позиции слова «погода» цикла не даёт).
– Ну и что это нам даёт?
– Даёт… – воображаемый Тьюринг принимается задумчиво обкусывать траурную кайму ногтя большого пальца («хотя нет, ему ещё до этого открытия три года»). – Если представить эти три перехода, как три «Энигмы» с одинаковыми установками (лишь вторая машинка, со сдвинутым относительно первой, на одну позицию, а третья – на пять позиций), в которых в один и тот же момент должно произойти превращение: на первой «Энигме» – «п» в «о», на второй – «о» в «д», на третьей – «д» в «п».
– Да, это уже кое-что… а какой длины может быть такая петля?
– Обычно три-четыре перехода, длиннее десяти почти не встречается.
– Это означает, что неплохо бы иметь десять ядер. Многовато, конечно, но реально. Однако это никак не решает проблемы с быстродействием: все эти ядра будут работать одинаково медленно, на сложение одна секунда, на умножения – пять.
– Никаких сложений и умножений, все ядра будут выполнять только одну команду: получают символ на входе, выдают на выход тоже символ, но зашифрованный по правилам «Энигмы». Устройство управления получает от работающих ядер результат и сравнивает с искомым. При совпадении печатающее устройство выдаёт текущее положение роторов.
– И всё-таки, что там со скоростью?
– Если принять скорость проверки как одно положение роторов за секунду, то на это уйдёт пять часов. Ещё надо учесть, что имеется шесть разных счетаний пяти типов роторов в трёх посадочных местах «Энигмы». Это даёт разброс времени дешифровки от одной секунды до тридцати часов – как повезёт…
– Тридцать часов…
– Если поставить тридцать таких кластеров, то время сократится до одного часа.
– Давайте сравним железо одной такой десятиядерной установки и стандартной РВМ.
«Сам посчитаю. И вообще, откуда взялись эти голоса»?
Тыльной стороной ладони стираю крупные капли пота, стекающие по лбу и вискам.
«Похоже на жар… как не вовремя, настали такие горячие денёчки. Плохо. А почему, собственно, плохо? Я что старик? Мне что уже сорок лет? Ведь не старый ещё. Организм борется с хворью, надо просто ему помочь».