Claude выяснил, откуда взялись загадочные seed-значения кривых NIST: генератор 1990-х годов

Десятилетиями seed-значения для эллиптических кривых NIST считали либо выходом хеш-функции, либо возможной закладкой. Claude нашёл проще: генератор случайных чисел из C-библиотеки, которому скормили Unix-время.

Вкратце

Нулевые старшие биты в нескольких опубликованных seed-значениях указали на генератор: такие значения дает lrand48, который возвращает только 31 бит из 48-битного состояния. Claude перебрал скрытые биты для бинарных кривых и применил редукцию решётки (LLL) для простых. Инициализация простых кривых датируется периодом с мая 1997 по апрель 1998 года.

В треде на HN криптографию почти не обсуждали: спорили о том, кому позволено заниматься подобным анализом.

Нулевые биты, которые выдали генератор

Заглавное изображение из исследования Anthropic
Заглавное изображение из исследования Anthropic

Материал Anthropic закрывает давний вопрос: откуда взялись seed-значения эллиптических кривых NIST? Популярная версия гласила, что это выходы хеш-функции. Гипотеза Claude была проще: слабый генератор случайных чисел, распространённый в C-библиотеках 1990-х. Claude написал сканер, который искал выход этого генератора в опубликованных seed-значениях, и заметил, что старшие биты у некоторых из них нулевые. Это признак lrand48, который возвращает только старшие 31 бит 48-битного состояния. Вероятность такого совпадения по чистой случайности — около 1 к 5810.

Для четырёх seed-значений бинарных кривых восстановление состояния генератора означало перебор 17 скрытых бит. У seed-значений простых кривых на каждый выход приходится меньше бит, поэтому состояние Claude восстановил с помощью редукции решётки LLL. Восстановленные временные метки для простых кривых попадают в период с мая 1997 по апрель 1998 года. Claude также объяснил базовые точки шести кривых (P-192 и пяти примеров кривых из ANSI X9.62): их дал генератор из арифметической библиотеки FreeLIP, инициализированный маленькими целыми, например 20000 и 20420.

Что остаётся неясным

Это не криптографический взлом. Аргумент Anthropic в том, что воспроизводимые seed-значения делают закладку менее правдоподобной: теперь их может пересоздать любой. Открытыми остаются seed для B-163 и базовые точки для P-224, P-256, P-384, P-521 и бинарных кривых NIST. Одна странность: кандидат 876 в поиске для P-256 тоже оказался допустимой кривой, но опубликованный seed соответствует кандидату 1842. Награда в $36 864 за поиск seed-значений достаётся Internet Security Research Group, а код воспроизведения распространяется по лицензии CC0.

Тред: кому можно это запускать?

Самым голосуемым было возражение не о криптографии, а о доступе.

«Anthropic (и кому Anthropic позволит) может делать такую работу с Claude, а если попробуем вы или я, нас заблокируют» — комментатор, который беспокоился о растущем преимуществе

Несколько человек с личным опытом не согласились:

«Я сам работал над этой задачей с Claude и меня не заблокировали (хотя и не добился результата)» — комментатор, который пытался повторить поиск seed-значений

«Это неправда. Я постоянно занимаюсь подобным» — комментатор, который проводит похожие анализы

Третьи вообще не видели смысла в ограничениях:

«Любой может делать такую работу с моделью вроде GLM 5.3 или Kimi K3» — комментатор, который указал на модели с открытыми весами

Самую личную претензию высказал человек, который говорит, что у него есть подготовка по кибербезопасности и наукам о жизни, но он не понимает, как запросить расширенные права: Anthropic не получает от него ни цента, потому что её «любимое слово — нет».

Заблокирован ли он на самом деле, неважно: эпизод показывает разрыв в восприятии доступа. Результат опирался на открытый, задокументированный метод, который было дёшево проверить, но обсуждение вылилось в спор о разрешениях. Если вы занимаетесь исследованиями безопасности и вам отказали в работе с dual-use задачами, сначала стоит проверить программу для киберзащиты, о которой написал один из комментаторов.

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Следующая новость · 2 из 13 Читать дальше
🔥Hot Discussion

Home Assistant закрыл жалобу на проверку паролей как «won't fix», а потом извинился

Пользователь обнаружил, что Home Assistant сверяет настройки, помеченные как пароли, с базой Have I Been Pwned. Первый ответ закрыл задачу как «won't fix». Через несколько часов вернулся мейнтейнер с извинениями и выключателем.

★ 195 · 💬 146 · github.com · 3 мин