タイミング攻撃
暗号化におけるタイミング攻撃とは、暗号アルゴリズムを実行するのにかかる時間を解析することで、攻撃者が暗号システムへの不正侵入を試みようとするサイドチャネル攻撃である。コンピュータ内で全ての論理演算を実行するには時間がかかり、入力に応じて時間が異なることがある。各演算の時間を正確に測定することで、攻撃者は入力の後からの作業ができる。
ある質問への応答にかかる時間を測定することにより、システムから情報が漏れる可能性がある。この情報が攻撃者をどの程度助けるかは多くの変動要因しだいであり、暗号システムの設計、システムを実行するCPU、使われているアルゴリズム、さまざまな実装の詳細、タイミング攻撃対策、タイミング測定の精度、などで異なる。
タイミング攻撃は実装に非常に依存しており、コンパイラ最適化に伴って不注意で取り込まれる可能性があるため、設計段階ではしばしば見落とされることがある。タイミング攻撃を回避するには、一定時間(constant-time)機能の設計と最終実行可能コードの慎重な試験が必要となる。
タイミング攻撃は、アルゴリズムの数学的特性というよりも、アルゴリズム実装のデータ依存動作特性を利用する攻撃の例である。データ依存のタイミング情報を削減または排除する方法で、多くの暗号アルゴリズムを実装(またはプロキシによって隠す)することが可能となる。