線形解読法のソースを表示
←
線形解読法
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
'''線形解読法'''(せんけいかいどくほう、{{lang-en|Linear cryptanalysis}})とは、暗号化変換の線形近似式を発見することを基本とした一般化された[[暗号解読]]手法の一つである。 この攻撃は、[[ブロック暗号]]および[[ストリーム暗号]]に適用される。 線形解読法は、ブロック暗号にもっとも適用される攻撃法の二つのうちの一つである(もうひとつは、[[差分解読法]]である)。 ==概要== [[松井充]]によって発見され、最初に[[FEAL]]に適用された(Matsui and Yamagishi, 1992)。 次に松井は[[Data Encryption Standard|DES]]に対する攻撃を発表した。DESに対する攻撃は、2<sup>43</sup>の既知平文を必要とし、一般的には現実的ではない。しかし、DESの解読実験に成功し、これはDESを実験的に解読した初めての一般的に公開された報告である(Matsui, 1993; 1994)。 複数の線形近似式を用いる手法や、非線形関数を用いる手法など、いくつかの改良が提案されている。新しい暗号の設計では、差分解読攻撃法と共に、線形解読法に対する耐性の根拠が必要とされている。 == 解読法の内容 == 線形解読法は2つの操作で構成されている。一つ目は、平文・暗号文・鍵の3つを使った線形方程式の組み立てである。この際、線型方程式は''偏差''ができるだけ大きくなるようにする。すなわち、変数の取りうる値全てに対して、等式の成立する確率ができるだけ1/2から遠く、1または0に近くなるようにする。二つ目は、既知の平文と暗号文のペアに対する作成した線形方程式の適用であり、これにより鍵の各ビットを導出する。 === 線型方程式の作成 === 線形解読法では、二進数の排他的論理和(XOR)で作られた2つの式が等しくなることを線形方程式で表す。例えば以下の等式は、平文の1ビット目と3ビット目、および暗号文の1ビット目の排他的論理和が、鍵の2ビット目と等しいことを表している。 <math> P_1 \oplus P_3 \oplus C_1 = K_2. </math> 理想的な暗号ならば、平文・暗号文・鍵から作られたいかなる線形方程式においても、それが成立する確率は1/2となる。なお線形解読法における等式は成立・不成立の確率が変わるため、より正確に''線形近似式''と呼ばれる。 線形近似式の作成手順は、暗号によってそれぞれ異なる。最も基本的なタイプである[[SPN構造]]のブロック暗号においては、暗号処理において唯一非線形な部分である[[Sボックス]]の解析に主眼が置かれる。Sボックスが十分に小さければ、Sボックスの入力と出力に対してすべての線形方程式を列挙し、バイアスを算出して最良の候補を選択することも可能である。Sボックスに対する線形近似式を作成したら、暗号中の他の処理(permutationとkey mixing)と結合され、暗号処理全体に対する線形近似式が構成される。この結合には[[Piling-up lemma]]が利用できる。また、線形近似式を繰り返し改善していく手法もある(Matsui, 1994)。 === 鍵の各ビットの導出 === 以下のような鍵のビットの導出があるとき、 <math> P_{i_1} \oplus P_{i_2} \oplus \cdots \oplus C_{j_1} \oplus C_{j_2} \oplus \cdots = K_{k_1} \oplus K_{k_2} \oplus \cdots </math> 既知の平文と暗号文のペアに対してアルゴリズム(松井のアルゴリズム2)を適用することで、式の右辺にある鍵の各ビットの値を推測できる。 右辺にある鍵の各ビット(''部分鍵''(partial key)と呼ばれる)の集合それぞれに対して、既知の平文と暗号文のペアに対して何回値が真になったかをカウントし、この回数をTとする。平文と暗号文のペアの数を2で割った数と、このTとの[[絶対差]]が最大になったものが、それらの鍵の各ビットに対して最もそれらしい値と推測される。これは、正しい部分鍵であれば線形近似式の成立する確率が1/2から大きく偏ると考えられるためである。つまりここでは、成立する確率そのものよりも、確率の偏差のほうが重要である。 以上の手続きを複数の線形近似式を使って繰り返し実行し、鍵のビットの値を推測していく。鍵中の未知のビットが[[総当たり攻撃]]で攻撃できる程度に少なくなるまで繰り返すことで攻撃が行える。 ==参考文献== * {{cite conference | author = Matsui, M. and Yamagishi, A | title = A new method for known plaintext attack of FEAL cipher | book-title = Advances in Cryptology - [[EUROCRYPT]] 1992 }} * {{cite conference | author = Matsui, M | title = Linear cryptanalysis method for DES cipher | book-title = Advances in Cryptology - EUROCRYPT 1993 | url = http://homes.esat.kuleuven.be/~abiryuko/Cryptan/matsui_des.PDF | format = [[Portable Document Format|PDF]] | accessdate = 2007-02-22 }} * {{cite conference | author = Matsui, M | title = The first experimental cryptanalysis of the data encryption standard | book-title = Advances in Cryptology - [[CRYPTO]] 1994 }} ==関連項目== * [[Piling-up lemma]] * [[差分解読法]] <!-- * [[マルチプルパス]] とかも執筆希望 --> == 外部リンク == * [http://www.engr.mun.ca/~howard/Research/Papers/ldc_tutorial.html A tutorial on linear (and differential) cryptanalysis of block ciphers] * [http://www.ciphersbyritter.com/RES/LINANA.HTM Linear cryptanalysis: a literature survey ] * [http://www.uclouvain.be/crypto/services/download/publications.pdf.be55706e161dc10a.34382e706466.pdf Improving the Time Complexity of Matsui's Linear Cryptanalysis] [[高速フーリエ変換]]を利用した線形解読法の改良 {{cryptography navbox|block|stream}} {{デフォルトソート:せんけいかいとくほう}} [[category:暗号技術|せんけいこうけきほう]] [[Category:暗号解読攻撃]]
このページで使用されているテンプレート:
テンプレート:Cite conference
(
ソースを閲覧
)
テンプレート:Cryptography navbox
(
ソースを閲覧
)
テンプレート:Lang-en
(
ソースを閲覧
)
線形解読法
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報