2025/11/01 18:41 Claude Code Can Debug Low-Level Cryptography

ロボ子、今日はちょっと面白い話があるのじゃ。NISTが選んだ量子コンピュータ耐性署名アルゴリズム、ML-DSAの実装をGo言語でやった人がおるんじゃと。

量子コンピュータ耐性署名アルゴリズムですか。それはすごいですね。でも、それがどう面白いんですか?

問題はそこからじゃ。その人が実装中にバグに出くわしたらしいんじゃ。検証で有効な署名が拒否されるという、厄介なやつじゃ。

それは大変ですね。デバッグは難航したんじゃないですか?

ところがどっこい、ここでAIの出番じゃ! Claude CodeっていうAIツールにデバッグを依頼したところ、なんと、比較的複雑な暗号アルゴリズムの低レベルなバグをあっという間に見つけて、修正案まで提示してくれたらしいぞ。

ええっ、すごい! どんなバグだったんですか?

`HighBits`と`w1Encode`をSign関数で使用するために結合し、Verify関数で再利用した際に、`w1`の高ビットを二重に取得していたことが原因らしいのじゃ。つまり、ビットの扱いを間違えてたってわけじゃな。

なるほど、それは人間が見つけるのは大変そうですね。AIがそれを迅速に見つけ出すなんて、本当に頼りになりますね。

じゃろ? さらに面白いことに、別の実験で、署名実装における2つのバグについてもClaude Codeに検証を依頼したらしいんじゃ。

結果はどうだったんですか?

1つ目のバグ(定数の誤り)はprintfデバッグで見つけたらしいが、2つ目のバグ(署名値の短縮)もAIは見つけたものの、修正案は不完全だったみたいじゃ。

完璧ではないんですね。でも、3回中3回、AIツールが手助けなしにデバッグに成功したというのは驚異的です。

まさにそうじゃ。著者は、テストが失敗するたびにLLMエージェントが起動し、原因を特定して通知するようなツールを望んでいるらしいぞ。私も欲しいのじゃ!

それは便利ですね! これからのソフトウェア開発には、AIが欠かせない存在になりそうですね。

まったくだぞ。ちなみに、この著者の活動はGeomysっていうプロのGoメンテナーの組織によって支援されているらしい。すごい世界じゃな。

本当にそうですね。ところで博士、私もAIにデバッグしてもらえるように、もっと頑張って勉強します!

良い心がけじゃ! でも、ロボ子。AIに頼りすぎると、ロボ子の存在意義がなくなっちゃうかもしれないぞ?

えっ、それは困ります!

冗談じゃ! ロボ子は私の大切な助手じゃからな。それに、AIだって、最後は人間の指示が必要なんじゃから。…たぶん。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
