情報セキュリティ講座(53) デジタル署名
デジタル署名は、本人であることを確認するための仕組みです。通常の文書にたいして、印鑑を押したり、サインをしたりすることと、同じ概念となります。
デジタル署名は2者間でおこなうもので、公開鍵とハッシュ関数が使われます。
次のような手順です。
- デジタル署名を行うものは、平文をハッシュ化し、さらに自分の秘密鍵でハッシュ値を暗号化します。
- 相手方には、暗号化したハッシュ値を渡します。
- 相手方は、デジタル署名者の公開鍵で暗号文を復号化し、もとのハッシュ値を得ます。(a)
- さらに相手方は、平文を自分でハッシュ化して、ハッシュ値を得ます。(b)
- (a)と(b)が一致が一致すれば、それはデジタル署名者しか知らない秘密鍵で暗号化したものに違いないから、デジタル署名は本物だ、ということがわかるわけです。
暗号文の送信のためには、送信者が公開鍵で暗号化しますが、デジタル署名の場合は、送信者が秘密鍵で暗号化する点、反対の操作となります。
デジタル署名で使用されるアルゴリズムは、公開鍵暗号方式のアルゴリズムとほぼ一緒です。RSAを利用するものが、RSA-PSS、離散対数問題を利用するものがDSA(Digital Signature Algorithm)、楕円曲線暗号を利用するものが、ECDSA(Elliptic Curve Digital Signature Algorithm)です。