20年以上にわたり、暗号学者たちは、セキュリティで最も広く使われている数のいくつかがどこから来たのかを疑問に思ってきました。2000年に標準化され、ウェブ全体でデジタル署名に使われているNISTの楕円曲線P-192、P-224、P-256、P-384、P-521は、それぞれ公表されたシードから定義されましたが、そのシードの由来は説明されませんでした。シードが作り方の説明なしにNSAから提供されたため、弱点が隠されているのではないかと疑う人もいました。AnthropicのFrontier Red Teamによると、社内のClaudeモデルがその作り方を突き止め、答えは平凡なものでした。
シードは、噂のようにある文言のハッシュ値ではありませんでした。1990年代のCライブラリにあった乱数生成器lrand48を、Unixのタイムスタンプで初期化して得た生の出力だったのです。Anthropicの従業員が以前の手がかりに触れずに由来を探すよう頼むと、モデルは30分足らずで答えにたどり着きました。各シードの断片が古い生成器の連続した出力に見えるかを調べるスキャナーを書き、一部のシードで最上位ビットが偶然では考えにくいほど頻繁に0であることに気づき、素体上の曲線のシードについては標準的な格子の手法で生成器の内部状態を復元しました。生成器を逆向きにたどると、すべての開始点が1997年5月から1998年4月までのタイムスタンプでした。P-256のシードはその実行の1,842番目の候補で、復元した各状態はシードの160ビットすべてを再現するため、偶然の一致はありえません。
この発見は信頼を損なうのではなく高めます。Anthropicは、これは暗号の破綻でも新しい攻撃でもないと強調しています。弱い生成器をタイムスタンプで動かして得たシードであれば、意図的に欠陥のある曲線を探した余地はほとんどないからです。さらにモデルは、P-192と関連する5つのANSIの例示用曲線のベースポイントが、Arjen LenstraのライブラリFreeLIPの乱数生成器から来たことも説明しました。Anthropicは、NISTのベースポイントが説明されたのはこれが初めてだとみています。
読者がすべきことはありません。P-256とその仲間はもともと広く信頼されており、Anthropicも対応は不要だと明言しています。興味深いのは手法です。推測を力任せに試すのではなく、1990年代のソフトウェアがおそらくどう動いていたかを推論したモデルが、Anthropicの従業員による以前の試みも含め、人間の努力が届かなかった謎を解いたのです。
疑問も残っています。使えたはずの候補がいくつか飛ばされており、P-256では同じ実行の876番目の候補も適した曲線になったはずで、選択の規則は分かっていません。ただしAnthropicは、飛ばされた数が少なすぎて意図的な弱体化を示すものではないと論じています。2進体上の曲線のシードの1つB-163は、試したどの方法にも合わず、P-224、P-256、P-384、P-521のベースポイントも説明されていません。再現用のコードは公開されているので、ほかの人も確かめられます。