暗号解読において、パイリングアップ補題は、ブロック暗号の動作の線形近似を構築するために線形暗号解読で使用される原理です。これは、線形暗号解読の分析ツールとして、松井満(1993)によって導入されました。 [ 1 ]この補題は、独立した二値確率変数の線形ブール関数(XOR節)のバイアス(期待値の1/2からの偏差)が、入力バイアスの積と関連していることを示しています。[ 2 ]
または
どこはバイアス(ゼロ方向[ 3 ])であり、不均衡:[ 4 ] [ 5 ]
逆に、補題が成り立たない場合、入力変数は独立ではない。[ 6 ]
この補題は、独立した二値変数をXOR演算すると、常にバイアスが減少する(少なくとも増加しない)ことを示唆している。さらに、出力がバイアスを持たないのは、少なくとも1つのバイアスのない入力変数が存在する場合に限る。
2 つの変数については、は相関尺度であるそして、等しい ;相関関係として解釈できると共に .
確率変数が の値をとる場合、蓄積補題はより自然に表現できる。変数を導入すると(マッピング)からそしてから ) そして、検査により、XOR演算は積に変換されることがわかります。
そして期待値は不均衡であるため、、補題は次のとおりである。
従属変数の場合、上記の定式化には(正または負の)共分散項が加わるため、この補題は成り立ちません。実際、2つのベルヌーイ変数は、無相関(つまり共分散がゼロである;無相関性を参照)である場合に限り独立であるため、積み重ね補題の逆が成り立ちます。つまり、この補題が成り立たない場合、変数は独立(無相関)ではありません。
積み重ね補題により、暗号解読者は次の等式が成り立つ確率を決定できます。
保持する、そこではバイナリ変数(つまりビット:または )
させよう は「~の確率」を表す。は真です。1に等しい場合、 は必ず起こり、それがゼロに等しい場合は、は起こり得ない。まず、2 つのバイナリ変数に対するパイルアップ補題を考える。そして .
さて、ここで以下の点を検討してみましょう。
XOR演算の特性により、これは以下と同等です。
そしてこれらは互いに排他的な事象なので、次のように言うことができます。
ここで、パイリングアップ補題の中心的な仮定、すなわち、扱う二値変数は独立である、つまり、ある変数の状態が他の変数の状態に影響を与えない、という仮定を置く必要があります。したがって、確率関数を次のように展開できます。
確率を次のように表現しますそしてとしてそして、そこでは確率バイアスであり、確率が からどれだけずれているかを示します。 .
したがって、確率バイアス上記のXOR和は .
この公式はさらに多くのものに拡張できます以下のように:
いずれかがsはゼロです。つまり、バイナリ変数の 1 つが不偏であるため、確率関数全体が不偏になります。 .
関連する、やや異なるバイアスの定義は、、実際には前の値の2倍を引いた値です。利点は、今なら
我々は持っています
ランダム変数を加えるということは、それらの(2番目の定義による)バイアスを掛け合わせることに等しい。
実際には、はブロック暗号のSボックス(置換要素)の近似値です。通常、値は S ボックスへの入力であり、Sボックスの値は対応する出力です。暗号解読者はSボックスを見るだけで、確率バイアスが何であるかを判断できます。重要なのは、確率がゼロまたは1になる入力値と出力値の組み合わせを見つけることです。近似値がゼロまたは1に近いほど、線形暗号解読においてその近似値はより有用になります。
しかし実際には、二値変数は、積み重ね補題の導出で仮定されているように独立ではありません。この点を補題を適用する際には留意する必要があります。これは自動的な暗号解読式ではありません。