今日から暗号理論の内容。黒い感じの話が多いのであんまり好きになれないんだよなぁ、暗号理論。。。
- 平文
- 盗聴や覗き見から守りたい情報
- 中身が公開されたものだけを信用する
- 多くの研究者に「叩かれても生き残っている」品質
- 秘密方式にはトラップが存在する可能性も排除できない
- 実績のあるものを重視する
- 実績のあるものを重視する
- 安全性の検証には、それなりに時間がかかる
- 斬新であることはそのことだけでもリスクが高い
- 安全性とコストとのトレドオフを意識する
- 「守りたい情報の価値< 攻撃にかかるコスト」で十分
- システム運用のストも十分意識してシステム運用のコストも、十分意識して
- 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はなんでもよい、というわけではなく、いくつかよさそうな関数がある、ということだった(その辺は仕様書に書いてあるとか)。