暗号技術 その1


暗号

平文で通信していると、メッセージを途中で盗聴されてしまうかもしれない。
そこで、送信者はメッセージを暗号化し途中で盗聴されないようにする。
受信者は、暗号化されたメッセージを受け取ると複合しメッセージを読む。

暗号は機密性を守る

暗号化と複合化をする手順を合わせて暗号アルゴリズムという

暗号アルゴリズムには鍵が必要

対称暗号と公開鍵暗号

対称暗号
暗号化と復号を同じ鍵で行う
鍵配送問題がある(鍵配送センターやDiffie-Hellman鍵交換などで解決できる)
DESや3DES、AESがある

公開鍵暗号
暗号化と復号で異なる鍵を使う
man-in-the-middle攻撃や選択暗号文攻撃に弱い(認証)
RSAやElGamal、楕円曲線暗号などがある

ハイブリット暗号システム
公開鍵暗号は暗号化、復号の処理速度が対称暗号に比べて遅い
その為、メッセージは擬似乱数でセッション鍵を生成し、その対称暗号で暗号化する。
その後、セッション鍵を公開鍵で暗号化する。
暗号化したセッション鍵と暗号化したメッセージを結合し送信する。
逆の手順で復号する。

一方向ハッシュ関数

正真性、完全性を調べることができる

正真性、完全性とは対象のものが正しいかどうか

1bitでも改ざんされているとハッシュ値が違ってくるので正真性がわかる

ハッシュ値はハッシュ値をとる対象の長さがどんな長さでも固定のサイズになる

サイズはハッシュ関数によって変わる

弱衝突耐性と強衝突耐性

あるメッセージと同じハッシュ値を持つメッセージを見つけ出すことが困難であることを弱衝突耐性
ハッシュ値が同じになるような、異なる2つのメッセージを見つけ出すことが困難であることを強衝突耐性という
弱衝突耐性は強衝突耐性に対比して使われる用語のため衝突耐性がなくて弱いという意味ではない

一方向性

ハッシュ値から元のメッセージを逆算できない性質

MD4やMD5は安全ではない
SHA-2とSHA-3を使うべし

ブルートフォースアタックや誕生日攻撃に弱い

//その2
http://qiita.com/sizukutamago/items/e7157a3e1fe8a7726c1c

ご指摘ありがとうございます(8/28)