本文へスキップ

NIST P-256曲線のシード、1997年のlrand48の実行に由来と判明

Anthropic(アンソロピック)は、NIST P-256曲線のシードが1997年8月16日に始まったlrand48の実行に由来することを突き止め、36,864ドルの懸賞金を獲得しました。この発見は、曲線が破られたことを意味しません。

著者 Tech AI Wire Team

3 分で読めます

Anthropicによる曲線シード研究のコラージュ。ピンクの網点の背景に、破れた緑と炭色の紙に載ったヒマワリの種と、その横の紫の紙片が配置されています。
写真: Anthropic

数字で見る

bounty, donated to Let's Encrypt's nonprofit ISRG
$36,864
candidate number of the published P-256 seed
1,842
year the P-256 generator run started
1997

Anthropicのチームが、NISTのP-256をはじめとする標準的な楕円曲線の背後にある、ランダムに見えるシードの出どころを突き止めました。シードは1997年と1998年に、古いCの乱数生成器lrand48を使って作られていました。生成器は、コンピューターの時計の値から始められていました。この発見の申告は2026年10月15日に行われ、暗号研究者が何年も議論してきた問題に決着をつけます。この発見で曲線が弱くなることはありません。

懸賞金と獲得者

暗号エンジニアのFilippo Valsorda氏は3年前、シードを説明できた人に懸賞金を出すと申し出ました。獲得を知らせる同氏の投稿によると、Anthropicの研究者が2026年10月15日01:07:51 UTCに懸賞金を請求しました。賞金は3倍の36,864ドルに増額され、Let's Encryptの証明書サービスを運営する非営利団体ISRGに贈られます。

Anthropicは10月16日、独自の解説を公開しました。そこには、Nicholas Carlini氏とSteve Weis氏を含む10人の研究者の名前があります。Anthropicによると、同社のモデルClaudeは30分足らずでパターンに気づきました。

シードが重要だった理由

NISTの素数曲線であるP-192からP-521は、デジタル署名を作る一般的な方式ECDSAに使われています。各曲線は20バイトのシードから生成されました。ANSI X9.62規格では、シードをSHA-1でハッシュして曲線の数値を作ります。ランダムに見えるシードは、誰も都合の良い曲線を選んでいないことを示すためのものです。

問題は、シードの出どころを誰も知らなかったことです。シードは1997年、NSAの数学者Jerry Solinas氏から渡されました。同氏は2023年に亡くなっています。何年も語られてきた説明は、シードは英語の文のハッシュだというものでした。懸念は単純でした。シードを自由に選べたのなら、誰かが弱い曲線が出るまで多くのシードを試せたはずです。Valsorda氏は今回、この発見が「BernsteinとLangeが説明した手法を完全に排除する」と書いています。BernsteinとLangeは、そのリスクを研究した2人の研究者です。

シードの作り方

両方の解説によると、方法は単純でした。プログラムは現在のUnixタイムスタンプをsrand48()に渡しました。Unixタイムスタンプとは、1970年からの経過秒数です。次に生成器から20バイトの候補を取り出し、1つずつ検査しました。ANSI X9.62のルールを満たさない候補は捨てられました。

Claudeが最初に見つけた手がかりは、統計的なものでした。Anthropicによると、4つのシードでは、20個のワードすべての最上位ビットが0でした。本当にランダムなデータなら、その確率は5,810分の1です。このパターンは、1990年代の弱い生成器lrand48を指していました。チームはその後、隠れた数を復元する数学の手法である格子簡約を使い、生成器の状態を再構築しました。

曲線生成器の開始時刻(UTC)使われた候補
P-1921997年5月18日 14:45:34139
P-5211997年8月8日 01:12:041,136
P-2561997年8月16日 01:52:341,842
P-3841997年8月30日 14:50:082,688
P-2241998年4月3日 12:52:077,026

Crypto Briefingも同じP-256の数値を報じています。タイムスタンプは871696354、シードはC49D360886E704936A6678E1139D26B7819F7E90です。Valsorda氏はこのアルゴリズムを独自にGoで実装し、AnthropicはコードをCC0のパブリックドメインライセンスで公開しました。

まだ説明されていないこと

答えはまだ完全ではありません。Valsorda氏は、ANSI X9.62以外の追加のルールを見つけました。曲線の位数のビット数が、その曲線の基になる体のビット数より多い場合、その曲線は除外されるというものです。もう1つのルールはまだわからない、と同氏は書いています。この方法では、公開されたシードの約2倍の数の有効なシードが残ります。

Anthropicも同じ空白を挙げています。P-256の実行では候補876でも有効な曲線が得られますが、使われたのは候補1,842でした。P-224、P-256、P-384、P-521のベースポイントは説明されておらず、バイナリ曲線B-163のシードも同様です。一方でAnthropicは、FreeLIPというライブラリの別の生成器を使って、P-192のものを含む6つのベースポイントを説明しました。

開発者にとっての意味

コードを変える必要は何もありません。Anthropicによると、この研究は暗号の破綻でも、新しい攻撃でも、曲線の弱点でもありません。Valsorda氏は、実務家はこれ以前から深刻な懸念を持っていなかったと付け加えています。

変わるのは議論のほうです。シードが謎だという理由でP-256を避けてきたチームは、より良い根拠をもとにその選択を見直せます。Anthropicは、この発見によってバックドアの可能性は低くなったとしています。ただし飛ばされた候補があるため、選択の理由はまだ完全には説明されていません。そのため議論は終わるのではなく、範囲が狭まることになります。

暗号に携わっているなら、再現コードは読む価値があります。統計的なテストと格子簡約を組み合わせれば、出力だけから生成器の状態を再構築できることがわかります。秘密に関わるものにlrand48を決して使ってはいけない、という良い教訓でもあります。

未解決の問題は、興味のある人にとって取り組みがいのあるパズルです。2つ目の除外ルールと欠けているベースポイントは、まだ誰も解いていない問題です。

出典

  1. The NIST Elliptic Curves Seeds Bounty Has Been Claimed - Filippo Valsorda
  2. Claude reveals ECDSA curve origins - Anthropic
  3. Claude traces NIST P-256 seed to a 1997 random number generator run - Crypto Briefing

関連記事

HFS 3.2.1のGitHubリリースページ。7月13日にリリースされたもので、セキュリティ修正についてHorizon3.aiのZach Hanley氏とAnthropic Researchの貢献が記されています。
プログラミング

Rejetto HFS CVE-2026-61500、解説公開の翌日に悪用が始まる

HFS(HTTPファイルサーバー)3.0.0から3.2.0は、ログインの署名にMath.random()を使っています。AnthropicのMythosが見つけた欠陥です。攻撃は解説公開の翌日、10月3日に始まりました。3.2.1で修正されています。

薄暗いデータセンターで、ふたを外したラックサーバーが引き出されています。銀色のヒートシンクの下の2基のサーバー用プロセッサーと、並んだメモリーモジュールが青い光に照らされています。
スタートアップ

Anthropic、コンフィデンシャルAIのスタートアップOpaqueを吸収

今年、評価額3億ドルとされたコンフィデンシャルAIのスタートアップOpaque Systems(オペーク・システムズ)は、チームがAnthropicに加わるのに伴い、事業を終了します。同社のオープンソースツールは別の場所で続きます。