読み方 : タイミングこうげき
タイミング攻撃【timing attack】
概要

暗号化や認証などの処理が入力値によって実行時間に差を生じることを利用する。例えば、パスワード照合処理において、先頭から1文字ずつ比較し、不一致が見つかった時点で処理を終了する実装がある場合、正しい文字に近づくほど処理時間がわずかに長くなる。この時間差を多数回計測し統計的に分析することで、正しい文字列を段階的に推定できる可能性がある。
代表的な例としては、公開鍵暗号であるRSAの復号処理に対する研究がある。秘密鍵を用いる演算において、鍵のビット値に応じて計算経路や演算回数が変化する実装では、処理時間の差から鍵情報が推測される可能性が指摘されている。これは暗号理論そのものの欠陥ではなく、実装上の挙動に起因するものである。
この攻撃はネットワーク越しにも成立し得るが、通信遅延やノイズの影響を受けやすいため、精度の高い測定と多数回の試行が必要となる。対策としては、入力値にかかわらず常に同一時間で処理を行う定数時間実装(constant‑time implementation)や、ランダムな遅延の挿入などが挙げられる。安全なシステム設計においては、アルゴリズムの強度だけでなく、実装の時間的特性にも配慮する必要がある。