「暗号技術入門 秘密の国のアリス」 (7) 第9章 デジタル署名

暗号技術入門 第3版

暗号技術入門 第3版

第9章 デジタル署名

改ざんやなりすましを検出し、さらにそれを第三者に対しても示すことができる。しかも否認も防止できる。それがデジタル署名。

デジタル署名

メッセージ認証コードは改ざんやなりすましを検出できるが、それを第三者に「ほら、正真でしょ?」「改ざんされてるね」と証明することはできない。また、否認防止にもならない。そこでデジタル署名

デジタル署名は公開鍵暗号方式によく似ており、署名を作成するときと検証するときで違う鍵を使う。署名を行う人だけが持っている署名用の鍵(プライベート鍵)で署名を作成し、署名を検証するときは誰でも持つことのできる検証用の鍵を用いる。

公開鍵暗号方式のときは、暗号用の鍵が公開鍵で復号用の鍵がプライベート鍵だったが、デジタル署名の場合は署名作成用の鍵がプライベート鍵で検証用の鍵が公開鍵(のようなもの)。プライベート鍵と公開鍵、受信者と送信者の組み合わせが逆になっている。

デジタル署名の方法

デジタル署名は、メッセージに直接署名する場合とメッセージのハッシュ値に署名する場合がある。(実用的に使われているのは後者のみ)

メッセージに直接署名する場合は、送信者が自分のプライベート鍵でメッセージを暗号化し、平文(「プライベート鍵」で暗号化されてないという意味で)のメッセージと一緒に受信者に送る。受信者は暗号化されたメッセージを公開鍵で復号し、平文のメッセージと署名されていたメッセージが一致するかどうか検証する。

ハッシュ値に署名する場合もほとんど同様で、プライベート鍵で暗号化するものを平文のメッセージそのものではなく平文のメッセージのハッシュ値にするだけ。受信者はハッシュ値が一致するかどうか検証する。

デジタル署名に対する疑問

  1. なんでこれで署名になるの?

  2. プライベート鍵で暗号化されたメッセージは、プライベート鍵を持っている人にしか作り出せない認承子だから。

  3. メッセージは暗号化しなくてよいのか

  4. デジタル署名は機密性を保つ仕組みではない。機密性が必要なのであれば、これまで出てきた暗号化のしくみを使う。

  5. デジタルデータだからコピーが作れるのでは?

  6. デジタル署名が担保するのは、そのデータの「内容」がたしかに送信者の作成したものであるということ。そもそもデジタルデータにオリジナル・コピーの差異はない。

  7. 書き換えできる?

  8. 公開鍵暗号が(現時点では)安全なように、デジタル署名もいまのところそう簡単に攻撃できない。

  9. 署名だけ再利用されたりしない?

  10. デジタル署名はメッセージとプライベート鍵から作成されるので、異なるメッセージに署名だけコピったものをくっつけても検証で弾かれる。

  11. 署名したメッセージを取り消すには?

  12. それは取り消す契約の文書を作成する必要がある。既存の署名済みメッセージ自体を取り消すのはむずかしい。

  13. 否認防止?

  14. メッセージ認証コードと違い、デジタル署名はプライベート鍵を盗まれていない限りその人しかできないから。

  15. デジタル署名はアナログ署名の代わりになるのか

  16. それは法制度や判例が整備されてかないと。

デジタル署名の利用例

  • セキュリティ情報のアナウンス
  • ソフトウェアのダウンロード
  • 公開鍵の証明書
  • SSL/TLS

デジタル署名に対する攻撃

  • 中間者攻撃
    公開鍵が本物かどうかフィンガープリントで確認する

デジタル署名の問題

デジタル署名も公開鍵暗号方式と同様、公開鍵が本物なのかどうかという問題がある。