Специалисты Anthropic восстановили, как именно формировались seed-параметры для эллиптических кривых ECDSA P-192, P-224, P-256, P-384 и P-521, стандартизированных NIST.
Тем самым подтверждается надёжность ECDSA и развеивается известная конспирологическая версия: будто исходные параметры кривых, изначально созданных в АНБ, подбирались намеренно — чтобы заложить уязвимости, подрывающие цифровые подписи. Почву для таких подозрений дала непрозрачность выбора seed-параметров, усугублённая обнаружением потенциального бэкдора в генераторе псевдослучайных чисел Dual_EC_DRBG из стандарта NIST. Как именно генерировались параметры инициализации для стандартизированных кривых, публично не раскрывалось. Существовала гипотеза, что в 1997 году их получили из хэшей экспромтом придуманных фраз Джерри Солинаса (Jerry Solinas), которые затем забыли.
В ходе исследования AI-модель Claude установила: seed-параметры создавались псевдослучайными числами из функции lrand48 — она входит в стандартную Си-библиотеку — с инициализацией текущим эпохальным временем. На след навели характерные признаки применения lrand48, в частности возврат только старших 31 бита из 48-битного внутреннего состояния генератора. Состояние генератора восстановили алгоритмом редукции базиса, после чего SHA-1 хэши от получаемых через lrand48 наборов нужной длины перебором сопоставлялись с имеющимися seed-параметрами. Попытки повторяли с переинициализацией через srand48() для моментов 1997–1998 годов, когда шла разработка ECDSA.
Выяснилось, что создатели ECDSA принимали не все подходящие для надёжных кривых значения — часть пропускалась. Но единичные пропуски объясняют не злым умыслом, а отсутствием точных данных о критериях отбора. Для шести вариантов кривых ECDSA удалось установить и происхождение базовых точек: их сгенерировали генератором псевдослучайных чисел из библиотеки FreeLIP с простыми значениями инициализации — например, 20000 для P-192 и 20420 для prime239v1.
За восстановление происхождения seed-параметров исследователям Anthropic вручили учреждённую три года назад премию в $36864. Команда передала её некоммерческой организации ISRG, развивающей Let’s Encrypt. Учредитель премии криптограф Филиппо Валсорда (Filippo Valsorda) заявил, что теперь лично ставит кривые ECDSA выше Curve25519, Ed25519 и X25519 и будет рекомендовать их в первую очередь.
