対称鍵暗号系

今日から暗号理論の内容。黒い感じの話が多いのであんまり好きになれないんだよなぁ、暗号理論。。。

  • 平文
    • 盗聴や覗き見から守りたい情報
  • 中身が公開されたものだけを信用する
    • 多くの研究者に「叩かれても生き残っている」品質
    • 秘密方式にはトラップが存在する可能性も排除できない
    • 実績のあるものを重視する
  • 実績のあるものを重視する
    • 安全性の検証には、それなりに時間がかかる
    • 斬新であることはそのことだけでもリスクが高い
  • 安全性とコストとのトレドオフを意識する
    • 「守りたい情報の価値< 攻撃にかかるコスト」で十分
    • システム運用のストも十分意識してシステム運用のコストも、十分意識して
  • DES(Data Encryption Standard)
    • 1977年くらいに出てきたアルゴリズム
  • 1990年代にそれに対する攻撃方法(差分攻撃、線形攻撃)が分かってくるまで結構長い間使われていた
    • 現在はAESというのらしいが、今でもDESは広く使われている
  • DESの基本構造はp18のようになっている
    • 平文を下位と上位のビットに分ける
    • 鍵をラウンド鍵というものに分ける(?)
    • 最初と最後で置換(最後は最初の逆置換になるように)
  • LiとRiを再帰的に組み合わせながら最終的な暗号文を作る
    • 途中でラウンド鍵の情報も入れる
    • Feistel構造

XORとラウンド鍵の性質によって、ラウンド鍵がないと復号できない仕組みになっているところがキーポイント。

  • 復号も同じような構造になっている
    • p24からのスライドを見ると分かるが、暗号化と復号のi段目と16-(i-1)段目がお互いにキャンセルアウトするような仕組みになっている

授業中にはf関数について説明されなかったので、授業後に質問に行ってみた。復号するという意味ではf関数は(決定的な?)任意の関数でいいが、それだとf関数によっては簡単に復号されてしまう恐れがある。XORとラウンド鍵の性質によって、ラウンド鍵がないと復号できない仕組みになっていたが、f関数の性質によっては偏りが生じてしまう、ということかららしい。そのような理由でfはなんでもよい、というわけではなく、いくつかよさそうな関数がある、ということだった(その辺は仕様書に書いてあるとか)。