削除された内容 追加された内容
編集の要約なし
2行目:
 
== 概要 ==
ブロック暗号は、N<sub>b</sub>ビットのブロックとN<sub>k</sub>ビットの鍵を入力として、N<sub>b</sub>ビットのブロックを出力する、暗号化 (encryption) ''E'' と復号 (decryption) ''E<sup>-1</sup>'' の2つの[[アルゴリズム]]からなる。任意の鍵''k''について、復号アルゴリズムは暗号化アルゴリズムの逆関数になっていて、
 
:<math>E_k^{-1}(E_k(m))=m</math>
 
を満たす(''m''は任意のブロック)ようになっている(ただし、KASUMIのように復号が定義されていないブロック暗号もある。)。暗号化アルゴリズムの入力ブロックおよび復号アルゴリズムの出力ブロックは通信文、暗号化アルゴリズムの出力ブロックおよび復号アルゴリズムの入力ブロックは暗号文という。任意の長さの通信文を扱うために、[[暗号利用モード]]が用意されている。ブロック暗号は確定的暗号であり、鍵を一つ固定すると、同じ平文は必ず同じ暗号文に暗号化される。すなわち、同じ暗号文があった場合、そのブロックの平文は同じであるという情報が漏れてしまう。暗号利用モードでは、このような問題を解決する機能ももつ。
 
ブロック長N<sub>b</sub>は64ビットや128ビットが代表的である。暗号アルゴリズムによっては、ブロック長をパラメータで指定でき、ブロック長を変えられるものもある。[[転置式暗号]]でも、共通鍵を持ちブロック長が数百バイト、数千ビットを超える電子式暗号機がある。
14行目:
換字と転置を組み合わせた共通鍵暗号でも、複数の法に基づく大きなブロックの換字式[[ストリーム暗号]]と[[転置式暗号]]を組み合わせることで解読の著しく難しい暗号が構成できる。
 
代表的なブロック暗号として、米[[NIST]]が制定した<!--[[DES (暗号)|DES]] (Data Encryption Standard)や-->[[AES暗号|AES]] (Advanced Encryption Standard) がある。日本製のブロック暗号として、[[MISTY1]]や[[Camellia]]などが知られている。
 
== 構造 ==
28行目:
また、パスワードの保存のための一方向性関数として用いられたり (UNIXの/etc/passwd等) 、[[メッセージ認証コード]] (MAC) に用いられる。
 
擬似乱数列の生成にも用いられる (see [http://csrc.nist.gov/publications/nistpubs/800-90/SP800-90revised_March2007.pdf NIST SP800-90]) 。
 
== 標準 ==
54行目:
=== 計算量的安全性 ===
ブロック暗号は、もとより鍵長<math>n</math>ビットに対して<math>2^n</math>の[[計算量的安全性]]以上の安全性をもたない。すなわち、鍵の[[全数探索]]で必ず解読可能である(平均解読計算量は半分の<math>2^{n-1}</math>となる)。
これは、ブロック暗号の鍵長を定める際に最も重要な要素の一つであり、現在DES (56DES(56ビット) が推奨されないのもその鍵長の短さが原因の一つである。
 
ただし、ブロック長<math>b</math>が<math>b<n</math>である場合、ある通信文と暗号文の対(ペア)に対して、平均して<math>2^{n-b}</math>の鍵候補が存在する。一つの通信文暗号文対では、鍵候補の中に真の暗号化鍵は存在するが、どの鍵候補が真の暗号化鍵であるかは判定できない。<math>p</math>個の通信文暗号文対が存在して、<math>bp>n</math>ならば、真の暗号化鍵が得られることが期待できる。
 
=== ショートカット法 ===
ブロック暗号アルゴリズムの弱点を用いて鍵の全数探索以下の計算量で鍵(の一部)を求める手法を総称してショートカット法と呼ぶ。ショートカット法には多くの種類があるが、ここでは代表的なものを列挙する。
* [[差分解読法]](差分暗号解読) [[:en:Differential cryptanalysis]] (Biham,1989)
** 不能差分暗号解読 Impossible Differential Attack
85行目:
== 歴史 ==
;1971年~1976年
:1971年頃に[[IBM]]でHorst Feistelにより開発された[[Lucifer (暗号)|Lucifer]]が(民生用として)最初のブロック暗号とされている。Luciferは、[[換字式暗号]]と[[転字式暗号]]を組み合わせた、換字-転字暗号 (Substitution-permutation cipher) である。1977年にLuciferをベースにして、[[DES (暗号)|DES]]が制定された。
 
;1987年~1991年
95行目:
 
;1997年~2001年
:計算機とネットワークの進化を背景に、全数探索によるDESの解読可能性を示すために、1997年に[[RSAセキュリティ|RSAセキュリティ社]]がDESチャレンジを企画、96日後に鍵が発見された。1998年にはハードウェアによる鍵探索専用機 DES cracker が開発され、DESの鍵を56時間で探索した。1997年に次世代暗号 ([[AES暗号|AES]]) の制定準備(公募)が始められると共に、1999年にはAESができるまでの中継ぎとして[[トリプルDES|TripleDES]]が制定された (FIPS PUB 46-3) 。2001年11月にAESが制定された。また、ヨーロッパでは[[NESSIE]]、日本では[[CRYPTREC]]といった標準化プロジェクトが実施された。
 
;2002~
:AESや、CRYPTREC, NESSIEの標準暗号とは別に、ある種の特殊用途に特化したブロック暗号の設計が研究されている。[[FPGA]]や[[ICチップ]]で実装した際に回路規模や実行速度が最適化されることを意図して設計された[[CLEFIA]]等があげられる。また、実装された[[ハードウェア]]や[[ソフトウェア]]に対する攻撃([[サイドチャネル攻撃]])も活発になった。
 
== 参考文献 ==