暗号理論入門 6章
- 作者: 林芳樹
- 出版社/メーカー: 丸善出版
- 発売日: 2012/04/20
- メディア: 単行本
- この商品を含むブログを見る
第6章 DESアルゴリズム
DESは長年世界中で使われてきたが、もはや十分に安全ではない。安全な改良版として三重DES方式がある。
6.1 Feistel暗号
DESアルゴリズムはいわゆるFeistel暗号である。
アルファベットとして 、 をブロックの長さとする。
に対する暗号化関数を とする。
Feistel暗号は次のように構成される。
ブロックの長さが 、アルファベットとして をもつ。
鍵空間 を固定する。
巡回数 も固定し、鍵 より巡回鍵 の列を構成する。
鍵 に対するFeistel暗号の暗号化関数は は次のように定義される。
を長さ の平文とする。これを長さ の左右二つの平文に分け、 と表す。ここで を左半分、 を右半分とする。
系列 を
と構成する。
復号化は
である。鍵列 を 回の巡回(round)で適用することにより暗号文 から を得る。
6.2 DESアルゴリズム
DES暗号化法は、アルファベット とブロック長 64をもつFeistel暗号を少し修正したものである。
平文空間と鍵空間
DESの平文空間と鍵空間は である。
DES鍵は長さ64bitで、bit列をbyteに分けて、各byteの八つのbit総和が奇数になるように、8bit目を設定する。(1bitの格納誤差・伝送誤差の補正が可能)
よって、ひとつのDES鍵では56bitまで、自由に選べる。
初期置換
平文の一つの語 は三段階にわたって入力される。
最初の段階で初期置換(initial permutation)IPを適用する。初期置換はこの方式のために固定されている。
内部ブロック暗号
アルファベットは 、ブロック長は32で鍵空間は である。
データRが拡大関数(Expansion function)によって に拡大される。()
が作られ、長さ6の8個のブロックに分解される。
次の段階でSボックスという関数が使われる。
Sボックス
Sボックスは4行16列の表で表される。 bit1とbit6を行(row index)、bit2,3,4,5を列指数(column index)と考え、表に当てはめた値を2進展開した値を出力とする。
巡回鍵
DES鍵 から長さ48の巡回鍵 を生成する方法。省略。
6.4 DES暗号の安全性
DESを攻撃する特殊な方法として差分暗号解読と線形暗号解読がある。(wikipedia)
しかし、最も成果の上がっている攻撃法は総当たり法である。
現在のところ、三重暗号化が使われたときのみ安全と言われている。