: Block cipher

概要

編集

        (encryption)    (decryption)   2   

 

  [1]



NISTDES (Data Encryption Standard)DESAES (Advanced Encryption Standard) MISTY1Camellia

構造

編集

ブロック暗号は、メインのスクランブラと拡大鍵を生成する鍵スケジューラから構成されているものが多い。さらに、鍵スケジューラは鍵を入力として複数個の拡大鍵を出力し、スクランブラは複数のラウンドからなり、個々のラウンドで拡大鍵を使って入力の置換・転置等を行う構成になっているものが多い。この構成の暗号をProduct cipher(積暗号)という。また、ラウンドが同じ関数の繰り返しになっている場合にはIterated cipher(繰返し暗号)という。

ラウンド関数は置換や転置、論理演算、算術演算などのシンプルな部品で構成されていて、ラウンド関数を複数段、重ねることで十分な強度のスクランブルを行うものである。ラウンド段数は、通常、アルゴリズムの仕様によって指定されているが、セキュリティパラメータとして利用者が選択するものもある。

ラウンド関数の主な構成法にはFeistel構造SPN構造の2つがある。DES, MISTY1, CamelliaはFeistel構造で、AESはSPN構造の暗号である。

用途

編集

ブロック暗号は公開鍵暗号に比して高速であるため、公開鍵暗号と組み合わせたハイブリッド暗号では公開鍵暗号で暗号化されたセッション鍵を用いた本文の暗号化・復号に用いられる。

また、パスワードの保存のための一方向性関数として用いられたり (UNIXの/etc/passwd等) 、メッセージ認証コード (MAC) に用いられる。

擬似乱数列の生成にも用いられる (see NIST SP800-90) 。

標準

編集

暗号標準として採用(もしくは推奨)されているブロック暗号には次のものがある。

安全性

編集

計算量的安全性

編集

    DES56

     

ショートカット法

編集

ブロック暗号アルゴリズムの弱点を用いて鍵の全数探索以下の計算量で鍵(の一部)を求める手法を総称してショートカット法と呼ぶ。ショートカット法には多くの種類があるが、ここでは代表的なものを列挙する。

ショートカット法が存在するアルゴリズムは学術的には「解読可能」と呼ばれるが、その必要な計算量が現実的であるかどうかは考慮されない。学術的に解読可能であることは、必ずしもその暗号を利用したシステムの破綻につながるわけではない。しかしながら、設計者が想定した強度を有していないという事実は、その暗号アルゴリズムが信頼性の低い暗号アルゴリズムであることを意味する。

サイドチャネル攻撃

編集

ハードウェアやソフトウェアに実装された暗号を、アルゴリズムではなく消費電力や実行時間等の情報を用いて攻撃する手法をサイドチャネル攻撃と呼ぶ。サイドチャネル攻撃は実装とアルゴリズムの両方に影響される。

歴史

編集

1971 - 1976

1971IBMHorst FeistelLuciferLucifer- (Substitution-permutation cipher) 1977LuciferDES

1987 - 1991

1987NTT FEAL FEAL8CPU1991Eli BihamFEALDESS[2]

1992 - 1995

19921993 - 1994DES1995 MISTY1MISTY2 

1997 - 2001

DES1997RSADES961998 DES cracker DES561997 (AES) 1999AESTripleDES (FIPS PUB 46-3) 200111AESNESSIECRYPTREC

2002 -

AESCRYPTREC, NESSIEFPGAICCLEFIA

脚注

編集
  1. ^ ただし、KASUMIのように復号が定義されていないブロック暗号もある。
  2. ^ Coppersmith, Don (May 1994). “The Data Encryption Standard (DES) and its strength against attacks” (PDF). IBM Journal of Research and Development 38 (3): 243. http://www.research.ibm.com/journal/rd/383/coppersmith.pdf. 

関連項目

編集