2012年9月20日木曜日

251・デジタル署名って、何ですか?

データの送信元が間違いないか?


「デジタル署名」とは、送られてきたデータの送信元が間違いないか、伝送経路上でデータが改ざんされていないかを確認するための技術です。


  • 公開鍵暗号方式の署名の使い方では、「誰から送付されてきたか」を確認することができました。
  • またハッシュ関数は、基のデータを少しでも修正したら、その計算結果であるハッシュ値が全く異なる値になることから、改ざんを検知するための情報として利用できました。

デジタル署名の仕組みは、この二つの技術を組み合わせて作られています。



  1. 送信者は送信するデータを作成します。
  2. 作成したデータを基にハッシュ関数を使ってハッシュ値を算出します。
  3. ハッシュ値を送信者の個人鍵を使って暗号化します。このときに利用するのは公開鍵暗号方式です。
  4. (1)で作成したデータと(3)で作成した「送信者の個人鍵で暗号化したハッシュ値」を合わせて受信者に送付します。
  5. 受信者は、受信データを基に、送信者が使ったものと同じハッシュ関数を使ってハッシュ値を算出します。
  6. 送信者が送ってきた「送信者の個人鍵で暗号化されたハッシュ値」を、あらかじめ入手していた送信者の公開鍵で復号します。
  7. (5)で算出したハッシュ値と、(6)で復号したハッシュ値を比較します。両者が一致すれば、「伝送経路上でデータが改ざんされていない」という点と、「送信者が正しい」という点を確認できます。