ハードウェアセキュリティ
タイミング攻撃が成り立つ原理と、代表的な対策の組み合わせとして正しいものはどれか。
- A処理が速すぎることを利用する。わざと処理を遅くする
- B時計の時刻がずれていることを利用する。時計を合わせる
- C秘密の値によって処理時間が変わることを利用する。秘密の値に関係なく同じ時間で終わる(定数時間の)実装にする
答えと解説を見る
正解:C. 秘密の値によって処理時間が変わることを利用する。秘密の値に関係なく同じ時間で終わる(定数時間の)実装にする
例えば鍵のビットが1のときだけ余分な計算をする実装では、処理時間を何度も測ると鍵のビットが分かってしまいます。対策は、秘密の値によって分岐や繰り返しの回数、メモリを読む場所が変わらないように書く定数時間の実装です。一律に処理を遅くしたり、ランダムな待ち時間を加えたりするだけでは、測定の回数を増やされると差が見えてしまうので、十分ではありません。
- A. 一律に遅くしても、時間の差が残れば漏れます。
- B. 時計の時刻の問題ではありません。
- C. 正しい。分岐やメモリの読み方が秘密に依存しないようにします。