Цифрова Фортеця
Шрифт:
Стретмор нахилився й повернув монітор так, щоб його бачила Сюзанна. Екран був чорний, і лише маленьке жовте вікно з текстом блимало в центрі:
Сюзанна спантеличено витріщалася на екран. Отже, «Транскод» працював уже понад п’ятнадцять годин. Вона знала потужність комп’ютера, офіційно підтверджену під час випробувань: тридцять мільйонів паролів на секунду, тобто сто мільярдів на годину. І якщо «Транскод» і досі розшифровував, це означало, що код був, напевне, просто гігантським –
– Але ж такого не може бути! – впевнено заявила вона. – Ви не перевіряли показники помилки? Може, комп’ютер наскочив на якийсь глюк і…
– Прогін абсолютно чистий.
– Тоді, напевне, пароль має гігантські розміри!
Стретмор скрушно похитав головою.
– Стандартний комерційний алгоритм. Наскільки я розумію, це 64-бітний код.
Сюзанна отетеріло зиркнула крізь вікно вниз, на суперкомп’ютер. Вона була впевнена, що «Транскод» міг впоратися з 64-бітним кодом менш ніж за десять хвилин.
– Але ж має бути якесь пояснення.
Стретмор кивнув.
– Воно є. І це пояснення вам не сподобається.
На Сюзанниному обличчі відбилася тривога.
– У роботі суперкомп’ютера збій?
– Ні, «Транскод» функціонує нормально.
– Може, у машину потрапив вірус?
Стретмор похитав головою.
– Ні, це не вірус. Помовчіть і вислухайте мене.
Сюзанна була спантеличена і пригнічена. Ще ніколи «Транскод» не натрапляв на код, який не розшифровувався менш ніж за годину. Зазвичай Стретмор мав розшифрований текст уже через десять хвилин. Вона кинула погляд на швидкісний принтер, що стояв на столі. Порожньо.
– Сюзанно, – тихо мовив Стретмор. – Спочатку з цим важко буде змиритися, але просто послухайте мене одну хвилину. – Начальник трохи помовчав, прикусивши губу. – Код, над яким тепер працює наша машина – унікальний. Нічого подібного ми іще не бачили. – Стретмор знову замовк, наче йому було важко говорити. – Цей код розшифрувати неможливо. Він – незламний.
Сюзанна ледь стрималася, щоб не розреготатися. «Незламний код? І що ж це має означати?» Незламного коду не існувало в природі, просто не могло бути: звісно, на деякі з них витрачалося більше часу, але будь-який код можна розшифрувати. Згідно із законами математики, «Транскод» мав рано чи пізно знайти правильний пароль.
– Перепрошую?
– Цей код незламний, – спокійно повторив Стретмор.
«Незламний?» – Сюзанна повірити не могла, що ці слова мовив чоловік із двадцятисемирічним досвідом розгадування кодів.
– Як це – незламний, сер? – спитала вона з тривогою в голосі. – А як же принцип Берґовського?
Про принцип Берґовського Сюзанна дізналася ще на початку своєї кар’єри. Він був наріжним каменем теорії брутального тиску. Саме цей принцип надихнув Стретмора на створення «Транскода». І цей принцип чітко свідчив: якщо комп’ютер перепробує достатню кількість паролів, то, згідно із законами математики, гарантовано знайде серед них єдиний правильний. Неприступність коду забезпечувалася не тим, що його пароль неможливо було зламати, а тим, що більшість людей не мали для цього достатньо часу чи необхідного устаткування.
Стретмор заперечно похитав головою.
– Цей код – не такий, як інші.
– Не такий? – перепитала Сюзанна,
Стретмор витер долонею спітніле чоло.
– Цей код є продуктом новітнього шифрувального алгоритму, який нам іще жодного разу не траплявся.
Зачувши це, Сюзанна засумнівалася ще більше. Шифрувальні алгоритми – це всього-на-всього математичні формули, свого роду рецепти для перетворення тексту в кодоване повідомлення. Математики і програмісти створювали такі алгоритми щодня. На ринку їх налічувалося сотні: PDG, Diffie-Hellman, ZIP, IDEA, El Gamal. І всі ці коди «Транскод» розгадував ЩОДНЯ і без проблем. Для цього суперкомп’ютера всі коди були ідентичними, незалежно від алгоритму, який використовувався для їх написання.
– Нічого не розумію, – не поступалася жінка. – Ідеться не про зворотне декодування якоїсь складної функції, ідеться про метод брутального тиску. Неважливо, з чим ми маємо справу – з PGP, Lucifer чи DSA. Алгоритм виробляє пароль, який вважає захищеним, а наш комп’ютер робить здогадки доти, доки не знайде його.
Стретмор відповів як досвідчений наставник із добре тренованою терплячістю:
– Згоден, Сюзанно, «Транскод» завжди знайде пароль – хоч яким би великим він не був. – Він зробив довгу паузу й додав: – За тим винятком, коли…
Сюзанна хотіла щось сказати, але зрозуміла, що Стретмор уже приготувався кинути свою бомбу. І встигла лише подумати: «За яким винятком?»
– За тим винятком, коли комп’ютер не здатен встановити, що код уже розшифрований.
Жінка мало зі стільця не впала.
– Що?!
– За тим винятком, коли комп’ютер знаходить правильний код, але працює далі, бо не знає, що вже знайшов його. – Стретмор похнюпився й зітхнув. – На мою думку, цей алгоритм має відкритий текст із циклічним зсувом.
Сюзанна ошелешено дивилася на шефа. Ідея функції з циклічним зсувом уперше була описана 1987 року в маловідомій праці угорського математика, такого собі Йозефа Гарне. Через те, що комп’ютери, на яких використовувався метод брутального тиску, розгадували коди методом пошуку у відкритому тексті словесних структур, що піддавалися визначенню, Гарне запропонував шифрувальний алгоритм, котрий, на додачу до власне шифрування, зсував відкритий текст на змінну часову величину. Теоретично така постійна зміна мала гарантувати, що комп’ютер-дешифратор ніколи не зможе зафіксувати визначувані структури слова, а значить – ніколи не зможе взнати, що знайшов потрібний пароль. Запропонований угорцем принцип чимось нагадував ідею колонізації Марсу: вона була цілком збагненною на інтелектуальному рівні, але наразі абсолютно нереальною на рівні практичному.
– То де ви його надибали? – вимогливо спитала Сюзанна.
Стретмор трохи помовчав, не поспішаючи з відповіддю.
– Його написав один приватний програміст.
– Що?! – Сюзанна аж підскочила у своєму кріслі. – Але ж у нашому відділі працюють найкращі програмісти у світі! І всі вони, працюючи разом, навіть близько не спромоглися написати функцію з циклічним зсувом відкритого тексту. Ви намагаєтеся переконати мене, що якийсь волоцюга примудрився створити її на своєму персональному комп’ютері?