セキュリティの授業の第4回,テーマは「対称暗号」でした.
授業の内容をさらに分けると,「ワンタイムパッド」「DESとAES」「ブロック暗号のモード」となります.
ワンタイムパッドの暗号化は「ビット単位で,鍵と平文の排他的論理和を求める」と表すことができ,これをもとに,復号や,解読の可能性についても述べることができます.鍵は平文と同じ長さの真の乱数であることにより,情報理論的に解読不可能(AESやRSAなどは計算量的に解読不可能)であるとされ,鍵は暗号化する者と復号する者の間で秘密に共有しなければならない点が,実用上の問題点となります.
排他的論理和の「2度適用すると元に戻る(x^y^y==x)」という性質が,暗号化や復号の処理に適している点を挙げ,DESとAESへ話を進めていきます.
DESとAESについては,選定の時期と経緯,考案者,鍵長とブロック長,(現時点での)安全性の状況を対比してから,それぞれの暗号化・復号のアルゴリズムの説明をします.これらの暗号化アルゴリズムで重要なのは,構造と,ラウンドの概念です.ラウンドについては今年も,「柱にロープをくくりつける」というたとえ話をしました*1.
DESは,現代暗号(かつ共通鍵暗号)として重要ではありますが,選定されてまもなく50年を迎えますし,「安全でない」とされている期間のほうが,長くなっています*2.
そういったことから,内容的にDESの分量を減らし,AESの分量を増やそうと,画策してみましたが,今年もうまくいきませんでした.
最も大きな理由は,AESのSPN構造を説明するにあたり,DESのファイステル構造と比較することが不可欠だったからです.
今年度の授業では,スライドの枚数を変えず,DES関連について話す時間を減らしました.3DES(トリプルDES)については,鍵長が3倍になって鍵空間の大きさは3倍よりも遥かに大きくなることは言及し,ハードウェア化により鍵が3つ(DES-EDE3),鍵が2つ(DES-EDE2),そして鍵が1つ(DES)の3通りの暗号化ができる点については,話しませんでした.