タイミング攻撃(たいみんぐこうげき)
最終更新:2026/4/27
タイミング攻撃とは、暗号化された通信や処理において、処理時間や消費電力などの情報を利用して秘密鍵を推測する攻撃手法である。
別名・同義語 サイドチャネル攻撃時間攻撃
ポイント
タイミング攻撃は、暗号アルゴリズム自体の脆弱性ではなく、実装上の問題を利用するサイドチャネル攻撃の一種である。対策として、処理時間の平準化などが挙げられる。
概要
タイミング攻撃は、暗号処理にかかる時間、消費電力、電磁波放射などの物理的な情報を観測し、そこから秘密鍵などの機密情報を推測する攻撃手法です。暗号アルゴリズム自体に脆弱性があるわけではなく、実装上の問題やハードウェアの特性を利用するため、対策が難しい場合があります。
攻撃原理
多くの暗号処理は、入力データや秘密鍵の値によって処理時間が変動します。例えば、条件分岐処理が多い場合、秘密鍵のビット値によって処理が分岐し、処理時間がわずかに変化します。攻撃者は、この処理時間の変動を精密に測定し、統計的な分析を行うことで、秘密鍵の情報を推測します。
攻撃の種類
- 単純タイミング攻撃 (Simple Timing Attack): 処理時間の平均的な変動を観測し、秘密鍵を推測します。
- 相関タイミング攻撃 (Correlation Timing Attack): 処理時間と秘密鍵のビット値との相関関係を分析し、秘密鍵を推測します。
- 差分タイミング攻撃 (Differential Timing Attack): 異なる入力データに対する処理時間の差分を分析し、秘密鍵を推測します。
対策
- 処理時間の平準化: 処理時間が入力データや秘密鍵の値に依存しないように、処理を一定時間かかるように調整します。例えば、常に同じ処理を実行したり、ダミーの処理を追加したりします。
- マスキング: 秘密鍵をランダムな値でマスクし、処理時間の変動を隠蔽します。
- ハードウェア対策: 処理時間の変動を抑制するハードウェアを開発します。
- 定数時間アルゴリズム: 処理時間が入力データに依存しないアルゴリズムを使用します。
歴史
タイミング攻撃は、1996年にPaul Kocherによって初めて発表されました。当初は、暗号化された通信における秘密鍵の推測を目的としていましたが、その後、様々な暗号処理に対する攻撃手法として発展しました。