it.xnews.jp
生成: 2026-09-22 読了 約 3 分 model: claude-haiku-4-5 原文: https://board.flatassembler.net/topic.php?t=24261 raw.md

AMD プロセッサの乱数生成器が 0 を生成できない問題が発覚

flat assembler フォーラムのユーザー Jessé が、AMD プロセッサの rdrand および rdseed 命令で 0 を生成できないバグを発見した。テスト用アプリケーションを公開し、AMD に報告している。

Jessé は組立て言語でチャートレンダリングコードを作成する際、rdrand と rdseed を使用してデータを生成していたところ、「AMD プロセッサ (おそらく Zen2 のみ) では指定されたサイズの 0 を生成できない」ことを偶然発見した。同じプログラムを Intel プロセッサで実行すると、「0 は問題なく生成される」と述べている。

バグの内容と検証

Jessé は gtk4-bargraph.tar.gz というテスト用アプリケーション (7.25 KB) を作成し、rdrand、rdseed、TSC カスタム手法による 0 の生成状況を可視化した。チャートの最初のバー (0 の生成数を示す赤、青、緑の棒グラフ) は AMD ホストでは常に色が変わらないという。

検証結果によると、2 台の AMD プロセッサで 9 日間のテスト期間中、単一の 0 は生成されなかった。一方、revolution はフォーラム内で「32 ビットまたは 64 ビット出力を使用する場合、下位 16 ビットが全ゼロになることはあるか」と質問。Jessé は「要求されたサイズに適合する真の 0 は AMD では決して発生しない」と回答した。

パフォーマンス測定結果

テスト用アプリケーションにはベンチマーク機能が統合されており、以下の性能が報告されている:

測定結果では、Core i5 2012 がクロック速度に 100% 依存している一方、AMD ジェネレータはクロック変動に対して反応しないという。

AMD からの返答と信頼性に関する議論

Jessé は AMD から返答を受け取ったが、「チームの担当者が自分の結果を完全に読み違えたか、AI を使用して返答を作成したようで (ChatGPT に確認した回答と非常に似ている)」と述べた。さらにこの問題を AMD 内部にエスカレートしている。

フォーラムでは信頼できるハードウェアについても議論が交わされた。sylware は「信頼できるハードウェアは存在しない。あるとすれば、自分自身で設計し、製造プロセスを厳密に管理したハードウェアのみである」と述べた。revolution は「RDRAND の最良なセキュリティのためには、バックドア化されている可能性も、そうでない可能性もあるため、常に他のソースと混合して使用すべき」と提案している。

ttd3v は「rdrand はカーネルのエントロピーソースとして使用される想定のため、AMD の 0 を無効にする選択は奇妙だが、いずれにせよ主要な暗号化 RNG として使用されるべきではない」と述べた。

テスト結果の画面キャプチャ

この記事は元記事の事実のみに基づいて自動生成されました。

筆者の見立て

出典

flat assembler forum. 「AMD's random number generator can't generate a 0 (+ app)」https://board.flatassembler.net/topic.php?t=24261

この記事をシェア