切り詰め差分暗号解析は、差分攻撃の一種で、平文対や状態対の差分を完全なビット単位の値としてではなく、より粗い仕様で追跡する。これは、差分をマスク、アクティブなバイト、その他の部分的な記述として表せるようにすることで、古典的な差分暗号解析を一般化したものだ。この緩和により、厳密な差分にこだわると見えにくい伝搬や確率が明らかになることがあり、多くの現代的な設計に適している。
仕組み
すべてのビットについて正確なXOR差分や加法差分を求める代わりに、切り詰め差分では、あるワードやバイトのどの部分が非ゼロか、あるいは選択した部分集合に属するかだけを記録する。解析者は、Sボックス、線形層、モジュラ加算を通るこうした切り詰め差分の高確率な遷移を探す。この方法は、個々の値ではなく差分のクラスとその確率に注目し、完全な値のトレイルよりも追跡・結合しやすい差分トレイルを構築する。
主な特徴
- マスクやアクティブ位置のような粗い差分表現により、解析時の分岐が減る。
- 個々の値ではなく、差分集合全体に対して確率的な推論を行える。
- 積分法、不可能差分、高次手法など他の技法と組み合わせて、実用的な攻撃につながることがある。
この技法は1990年代半ばに導入され普及したもので、Lars Knudsenが1994年にその考え方を形式化した人物として一般に挙げられる。切り詰め差分は、SAFER、IDEA、Skipjack、E2、Twofish、Camellia、CRYPTON、さらにはストリーム暗号のSalsa20の学術的な暗号解析にも応用されてきた。完全な差分があまりにも疎であったり、拡散がバイト単位やワード単位で起こる場合には、研究者はしばしば切り詰め差分特性を報告する。
応用と限界
実際には、切り詰め差分は総当たり探索に比べてデータ量や時間の要件を減らせることがあるが、追加の仮定や技法なしに完全な鍵回復へ直結するとは限らない。攻撃の成功は、暗号の非線形性、線形拡散の構造、そして差分が各構成要素を通じてどのように伝搬するかに左右される。切り詰め解析は暗号解読者の重要な道具の一つであり、他の方法と組み合わせて使われることが多い。一般的な暗号攻撃の背景については暗号学と攻撃モデルを参照。差分と関連概念の入門としてはブロック暗号の参考文献や、技法を解説する、あるいは伝搬挙動を分析する解説を参照するとよい。