差分故障解析

ウィキペディアから、無料の百科事典

差分故障解析(さぶんこしょうかいせき、英語:Differential fault analysis、略:DFA)は、暗号理論、特に暗号解読の分野における能動的サイドチャネル攻撃の一種である。

原理は、暗号化処理に予期せぬ環境条件を誘発させ、その内部状態を明らかにすることである。フォールト解析、フォールト攻撃、故障利用攻撃、フォールト注入攻撃(Fault Injection Attack、FIA)とも言われる。。

原理

組み込みのプロセッサを含むスマートカードを例に挙げると、遭遇しうる予期せぬ環境条件としては、高温にさらされること、サポート外の電源電圧や電流を受けること、過度にオーバークロックされること、強力な電場や磁場を経験すること、あるいはプロセッサの動作に影響を与える電離放射線を受けることなどが含まれる。このようなストレスを受けると、プロセッサは物理的なデータ破損により誤った結果を出力し始める可能性があり、これが暗号解読者にとってプロセッサが実行している命令やデータの内部状態を推測する手助けとなる場合がある[1][2]。

DESやTriple DESの場合、秘密鍵を取得するには、約200個の単一ビット反転が必要となる[3]。DFAは、AES暗号への適用にも成功している[4]。

この種の攻撃を防ぐために、多くの対策が提案されている。そのほとんどは、エラー検出方式に基づいている[5][6]。

フォールト注入

フォールト注入攻撃では、分析の入力として使用されるフォールトを生成するために、暗号化タスクを担うトランジスタにストレスを加える。このストレスには、電磁パルス(EMパルスまたはレーザーパルス)が用いられることがある。

実際のフォールト注入は、パルサーに接続された電磁プローブ、またはプロセッサのサイクルタイムと同等(ナノ秒単位)の長さの擾乱を生成するレーザーを使用して行われる。チップに伝達されるエネルギーは、チップの特定のコンポーネントを焼き切るのに十分な場合があるため、パルサーの電圧(数百ボルト)とプローブの位置は微調整されなければならない。精度を高めるため、チップはしばしばディキャプセレーション(化学的に浸食して素のシリコンを露出させること)される[7]。

脚注

  1. ↑ Eli Biham; Adi Shamir (1996). The next Stage of Differential Fault Analysis: How to break completely unknown cryptosystems.
  2. ↑ Dan Boneh; Richard A. DeMillo; Richard J. Lipton (1997). On the Importance of Checking Cryptographic Protocols for Faults. Eurocrypt.
  3. ↑ Ramesh Karri; et al. (2002). Fault-Based Side-Channel Cryptanalysis Tolerant Rijndael Symmetric Block Cipher Architecture.
  4. ↑ Christophe Giraud (2005). DFA on AES.
  5. ↑ Xiaofei Guo (2012年). “Invariance-based Concurrent Error Detection for Advanced Encryption Standard”. 2026年5月12日閲覧。
  6. ↑ Rauzy (2014年). “Countermeasures against High-Order Fault-Injection Attacks on CRT-RSA”. 2026年5月12日閲覧。
  7. ↑ “Fault Injection”. eshard.com (2021年11月1日). 2026年5月12日閲覧。