Исследователи Anthropic с помощью внутренней версии Claude восстановили происхождение загадочных чисел, по которым в конце 1990-х выбирали параметры пяти эллиптических кривых NIST. Модель справилась меньше чем за полчаса и обнаружила, что числа получили из обычного генератора псевдослучайных чисел, запущенного с меткой системного времени. На безопасность ECDSA находка не влияет, менять ключи или алгоритмы не нужно.
Загадка тянулась больше 25 лет. При стандартизации криптографии на эллиптических кривых для P-192, P-224, P-256, P-384 и P-521 опубликовали 160-битные начальные значения. Их передало Агентство национальной безопасности США, но способ выбора никто не объяснил. Непрозрачное происхождение параметров давно вызывало подозрения: криптографы допускали, что числа могли специально подобрать ради неизвестного другим свойства кривых.
Долгое время одной из главных версий оставалась шуточная фраза, которую якобы пропустили через хеш-функцию. Claude пошел в другую сторону и попытался понять, какой код конца 1990-х мог оставить заметный математический след в опубликованных значениях. След привел к lrand48, старому генератору псевдослучайных чисел из библиотек языка C.
Схема оказалась простой. Программа запускала lrand48, используя метку времени Unix, затем последовательно получала 20-байтовые варианты и проверяла их для будущей кривой. Например, для P-256 генератор стартовал с времени 16 августа 1997 года, а стандартизированное значение появилось после перебора 1842 кандидатов.
Claude сначала заметил характерный рисунок в битах опубликованных чисел, затем восстановил внутреннее состояние генератора и прокрутил его назад. Для всех пяти простых кривых NIST получились даты между маем 1997-го и апрелем 1998 года. Тот же механизм объяснил еще пять значений из стандарта ANSI X9.62. Восстановленные состояния генератора заново выдают все 160 бит исходных чисел, поэтому случайное совпадение практически исключено.
Находка не доказывает математически, что при выборе кривых никто не пытался добиться скрытого свойства. Однако версия о заранее подготовленной закладке стала гораздо менее правдоподобной: исследователи получили простой и воспроизводимый способ появления чисел, которые раньше казались произвольными.
Несколько вопросов все же остались. Генератор иногда пропускал кандидатов, которые тоже подходили по известным критериям, а причину исследователи пока не нашли. Не удалось восстановить начальное значение кривой B-163. Claude также объяснил происхождение базовой точки P-192 и нескольких кривых ANSI, но выбор базовых точек P-224, P-256, P-384 и P-521 пока остается загадкой.
За разгадку происхождения чисел ранее назначили вознаграждение в $36 864. После решения задачи всю сумму решили передать некоммерческой организации Internet Security Research Group.
