共通鍵暗号では暗号化,復号に同一の秘密鍵を用いる.
共通鍵暗号はストリーム暗号とブロック暗号に大別される.
本講義で解説を行うDESはブロック暗号である.ブロック暗号では平文を固定長のブロックに分割し,
ブロック毎に暗号化,復号の処理を行う.ブロックの長さをブロック長と呼び,
DESのブロック長は64bitsである.平文の長さがブロック長に満たない場合はパディング(つめもの)を行う.
以下では特に断りのない限り平文は既にブロックに分割され,必要であればパディングを 行われているものとする.
平文,暗号文,秘密鍵をそれぞれM,C,Kとする.このとき暗号化装置,復号装置を それぞれ関数e(*,*),d(*,*)で表記すると,
C=e(M,K)
M=d(C,K)
である.暗号化,復号ともに同一の秘密鍵の入力が必要であることに注意されたい.
ある攻撃法による解読装置を関数d'(*)とする.すなわち,
M=d'(C)
と仮定する.解読には当然ながら秘密鍵を利用することはできないが, それ以外であればさまざまなものを利用可能である場合がある. (例えば,複数の暗号文を用いる,対象とする暗号文以外の暗号文と平文の 組が得られるなど.)
このとき
d'(*)による攻撃の計算量≧全数探索の計算量
であるならば,秘密鍵暗号{e(*,*),d(*,*)}は攻撃法d'(*)に対して 計算量的に安全である.
三菱電機の松井氏は差分攻撃,線型攻撃に対して計算量的に安全であることを 証明可能である秘密鍵暗号,MISTYを提案している.
注:DESは既に全数探索で破れている.