データの正当性を証明するための技術として、最も代表的なものにデジタル署名が挙げられる。

デジタル署名とは

デジタル署名とは、送信者本人であること、データが改ざんされていないことを保証する認証技術のことで、電子署名とも呼ばれる。
公開鍵暗号方式と、ハッシュ化されたメッセージダイジェストを組み合わせることで、デジタル文書の正当性を証明する。

デジタル署名 暗号化と復号の流れ

  1. 送信者は、平文をハッシュ関数を用いてメッセージダイジェストに変換する。
  2. 送信者は、メッセージダイジェストを送信者の秘密鍵で暗号化し、デジタル署名を生成する。
  3. 送信者は、平文とデジタル署名を送信する。
  4. 受信者は、認証局の公開鍵リストから送信者の公開鍵を取り出し、受信したデジタル署名を復号する。
    これにより、送信前のメッセージダイジェストが復号される。
  5. 受信者は、3で受信した平文からハッシュ関数でメッセージダイジェストを生成し、4で復号したメッセージダイジェストと照合し一致するかどうかを確認する。
    一致すればデータが送信者から送られたもの、改ざんされていないことの二つが保証される。

ハッシュ関数

ハッシュ関数を使うと、平文などのデータから一定長のハッシュ値を生成することができる。

代表的なハッシュ関数に「SHA-256」があり、256ビットのハッシュ値を生成する。

メッセージダイジェスト

ハッシュ関数により生成されたハッシュ値のことを、メッセージダイジェストと言う。

二つの全く同じ平文をハッシュ化すると、全く同じハッシュ値が生成されるという特徴を持つ。
また、一度ハッシュ化されたメッセージダイジェストを元の平文に戻すことは極めて不可能に近いとされている。