暗号と認証のキーワードを説明してみる

正確な定義はwikipediaを見てもらうとして…

共通鍵暗号

  • 送信者と受信者が同じ鍵を使う。
  • DES、TripleDES、AES等がある。
  • 送信者と受信者の間では暗号化された情報がやりとりされるため、データを奪われても情報は漏れない。
  • 互いに同じ鍵を使う必要があるが、物理的距離が離れている場合、この鍵の共有をどうやっておこなうかが問題になる。(鍵配送問題)

公開鍵暗号

  • 送信者と受信者が違う鍵を使う。
  • 公開鍵と秘密鍵をセットで生成する。二つを合わせて鍵ペアという。
  • 公開鍵で暗号化し、秘密鍵で複合化する。
  • 秘密鍵は他人に公開してはいけないが、公開鍵は公開しても良い。
  • 公開鍵さえ手に入れれば暗号化はできる。複合化は秘密鍵を持つ人にしかできない。
  • 公開鍵が本当に信頼できる物であるかが問題となる(man-in-the-middle攻撃による公開鍵のすり替え等)。この点はデジタル署名で解決されている。

一方向ハッシュ関数

  • 正真性…同じであることを保証する。
  • 別名:メッセージダイジェスト
  • 別名:フィンガープリント
  • MD5SHA-1などがある。
  • 同じ平文は同じハッシュを返すが、ハッシュから平文の推測は困難
  • 平文を1ビットでも変えると、ハッシュ関数は異なる結果を返す。
  • ハッシュを取った時点から書き換えられていないことは証明できるけど、誰がそのハッシュを取ったかは証明できない。(すり替えられている可能性がある)

メッセージ認証コード

  • 通称:MAC
  • 「なりすまし」を防ぐことができる。
  • 送信者と受信者が鍵を共有。
  • 鍵を使って固定ビット長の出力を計算する→MAC
  • 鍵が無ければMAC値が作れないので、「なりすまし」がおこなわれていないことを示せる。
  • 共通鍵暗号と同じく、鍵配送問題を持つ。

デジタル署名

  • 送信者と受信者で別の鍵を使う。
  • 公開鍵暗号の逆
    • 秘密鍵でメッセージないしはメッセージのハッシュを暗号化。この値をデジタル署名とする。
    • この署名は「秘密鍵を持っている人」にしか作れない。(→認証子)
    • 署名が正しいかどうかは、公開鍵を手に入れることで検証できる。
  • 公開鍵暗号と同じく、公開鍵が信用できるかどうかが問題になる。

公開鍵基盤(PKI)

  • 公開鍵を効果的に運用するために定められた規格・仕様の総称。
  • 証明書の発行は認証局(certification authority:CA)がおこなう。
  • 公開鍵は認証局にデジタル署名を施してもらうことで、証明書となる。(公開鍵証明書:public-key ceeertificate:PKC)
  • 証明書が正しいことは、発行した認証局の公開鍵で検証する。
  • この認証局の公開鍵が正しいかどうかは、その公開鍵に付加されているデジタル署名を検証することで確認する。
  • この署名の検証は…と繰り返していくと、最終的にはルートCAに行き着く。
  • ルートCAは自分の公開鍵に自分のデジタル署名を施す(セルフ署名)
  • 認証局が正しいかどうかの拠り所は、「信頼」のみ。

備考

  • 暗号は盗まれないための技術
  • 認証は証明するための技術