Anthropicは10月16日、電子署名に使われる暗号規格に残されていた25年以上の謎を、社内のAI研究モデル「Claude」が30分未満で解明したと発表した。 米国家安全保障局(NSA)が提供した数値について、どのように作られたのかを突き止め、再現に成功したという。 生成方法は公表されておらず、NSAの元担当者も正確な手順を思い出せなかったとされる。 今回の謎は、電子署名などに使われる暗号方式「ECDSA」に関するものだ。 ECDSAは「楕円曲線」と呼ばれる数学的な仕組みを利用する。 米国立標準技術研究所(NIST)が2000年に公表した規格には、曲線の形を決める際に使う「シード」という数値が記載されていた。 これらの数値はNSAが提供したものだが、生成方法は説明されていなかった。 そのため、NSAが意図的に弱点を持つ曲線を選んだのではないかという疑念が、長年にわたって残っていた。 NSAの元職員ジェリー・ソリナス氏は2015年、シードについて、冗談めいた英文をハッシュ化して作ったと記憶していると説明していた。 しかし、正確な手順は思い出せず、実際にプログラムを書いた同僚も詳細を覚えていなかった。 古い記録も見つからず、生成方法は謎のままだった。 Anthropicによると、同社の社員が社内の研究モデルにシードの由来を調べるよう依頼したところ、Claudeは30分足らずで、NISTの5つの曲線に使われるシードの生成方法を特定した。 使われていたのは、C言語のライブラリーにある「lrand48」という疑似乱数生成機能だ。 199798年の日付と時刻を数値で表したものを初期値とし、生成された数値を組み合わせることで、元のシードを再現できたという。 Anthropicは再現用のコードも公開している。 つまり、シードは元担当者の記憶にあった英文をハッシュ化したものではなく、当時の時刻を基にした乱数生成プログラムから作られていたことになる。 Claudeはさらに、別の規格に掲載された5つの曲線や、NISTが採用した別の4つの曲線についてもシードの生成方法を突き止めた。 一部の曲線では、公開鍵の計算などに使う基準点がどのように選ばれたかも解明した。 ただし、今回の発見は暗号が解読されたことを意味しない。 シードは公開された規格上の数値であり、利用者の秘密鍵とは異なる。 Anthropicは、新たな攻撃方法や曲線の弱点が見つかったわけではないと説明。 むしろ、数値が単純な方法で生成されていたことから、意図的な弱点が仕込まれていた可能性は低くなったとしている。 利用者が設定を変更するなどの対応も必要ないという。 一方、すべての謎が解けたわけではない。 生成された候補の中には、暗号に利用できる条件を満たしていたとみられるのに、採用されなかったものがある。 その理由は分かっていない。 また、別の曲線「B-163」のシードや、一部の曲線で使われる基準点の選び方も、引き続き不明だ。 この謎を巡っては、暗号技術者のFilippo Valsorda氏らが2023年に報奨金を設けていた。 賞金は1万2288ドルで、米国の税制上の条件を満たす慈善団体への寄付を選ぶと、金額が3倍になる仕組みだ。 Valsorda氏は10月16日、Anthropicの研究チームが報奨金を獲得したと発表した。 研究チームは寄付を選び、3万6864ドルが、無料の電子証明書を提供する「Let's Encrypt」を運営する非営利団体「Internet Security Research Group」へ寄付されるという。