Искусственный интеллект (ИИ) Claude за полчаса восстановил способ, которым Агентство национальной безопасности США получило числа для криптографических стандартов. Разгадка снимает подозрения о скрытой уязвимости и тайных мотивах сотрудников АНБ.
Загадка из 1990-х
В 2000 году Национальный институт стандартов и технологий США (NIST) утвердил стандарт цифровой подписи ECDSA и набор эллиптических кривых, которые применяются в криптографии. Такие математические конструкции помогают защищать цифровые данные и подтверждать подлинность электронных подписей. В параметрах кривых использовались специальные стартовые значения — сиды. Их предоставило Агентство национальной безопасности США (АНБ), но объяснений, как именно они были получены, не последовало.
Неопределенность породила подозрения: не подбирало ли АНБ числа таким образом, чтобы оставить скрытую лазейку в системе защиты? Другие исследователи предполагали, что значения могли быть результатом хеширования какой-нибудь шутливой фразы. Вспоминали и версию, которую связывали с бывшим сотрудником АНБ Джерри Солинасом: будто бы в основе лежала фраза вроде просьбы повысить зарплату двум коллегам. Однако проверить эту догадку не удавалось.
По следу старого кода
Как сообщила Anthropic, Claude нашел объяснение менее чем за полчаса. Вместо того чтобы перебирать возможные фразы, модель предположила, что разработчики конца 1990-х могли использовать стандартный генератор псевдослучайных чисел из библиотеки языка C. Затем она восстановила состояние генератора по фрагментам опубликованных значений и проверила, совпадают ли результаты.
Версия подтвердилась: для создания сидов использовали генератор lrand48, запускавшийся с начальным значением, полученным из отметки системного времени Unix. Найденные отметки соответствовали датам с мая 1997-го по апрель 1998 года. Для кривой P-256, одной из наиболее известных в этом наборе, совпавший результат был получен 16 августа 1997 года — после 1842 попыток генерации.
Это вовсе не значит, что Claude взломал шифрование. Стартовые значения были опубликованы, а новая работа лишь объясняет их происхождение, а не раскрывает секретные ключи пользователей. В Anthropic считают, что простая процедура генерации делает версию о намеренно встроенной лазейке менее вероятной. Компания подчеркивает: пользователям не нужно менять настройки или отказываться от этих криптографических стандартов.
Не все вопросы сняты
Открытие не означает, что каждая деталь истории установлена окончательно. Исследователи отмечают, что остается неясным, почему при генерации некоторые подходящие варианты пропускали, а также как выбирались отдельные параметры кривых. Поэтому корректнее говорить о разгадке происхождения многих загадочных чисел, а не о полном ответе на все вопросы вокруг разработки стандартов.
Работа Claude стала примером того, как ИИ может помочь в исследовании старого программного кода и математических задач. Anthropic сообщила, что вознаграждение за разгадку в размере $36864 (около 3,08 млн. рублей) передаст Internet Security Research Group — некоммерческой организации, которая поддерживает инфраструктуру безопасности Интернета, в том числе проект Let’s Encrypt.