この動画はメンバー限定動画です
全ての講座が
月額990円で学び放題
文書のやり取りなどに起こるリスクの1つに、改ざんのリスクがあります。送信した文書の内容が、途中で書き換えられてしまって、別の内容になって相手に届いてしまうというもの。
そこで、「デジタル署名(電子署名)」という方法を使って、内容の完全性を保つことができます。
そして、このしくみはすでに紹介した「公開鍵暗号方式」を利用します。
デジタル署名のしくみ
改めて、公開鍵と秘密鍵の関係を紹介すると、公開鍵は暗号にすることしかできず、これを複合化することができません。秘密鍵は暗号化も複合化もできます。
そこで、デジタル署名では完全性を証明したい内容を、持ち主の「秘密鍵」を使って暗号化します。そして、内容の平文と一緒に、その暗号化されたものを相手に送信します(これがデジタル署名になります)
受け取った相手は、別途受け取っていた「公開鍵」を使って、受け取った平文を自分でも暗号化します。
すると、受け取った暗号(デジタル署名)と自分自身で暗号化した内容が一致するはずです。これにより、内容の完全性を確認することができるというわけです。
[ad]
メッセージダイジェスト
署名したい内容が長文だったりする場合、これを暗号化すると時間がかかったり、暗号が長くなってしまいます。そこで、署名したい内容を「ハッシュ化」などして短い文字列に変えてからデジタル署名を作成することがあり、これを「メッセージダイジェスト」といいます。
メッセージダイジェストでデジタル署名をしても、元の文書を改ざんした場合はメッセージダイジェストの内容も変わってしまうため、デジタル署名も行えなくなり完全性を保つことができます。
メッセージダイジェストの生成には「SHA-2」という方法などが利用されます。
デジタル署名の強化策
このデジタル署名は、公開鍵自体が偽物であったり、メッセージダイジェストが本文と一致するように改ざんされてしまう恐れがあります。そこで、「MAC鍵」という共通鍵を用いて、本文にこれを追加してからメッセージダイジェストを生成するといった「メッセージ認証記号」などの方法が取られることがあります。
また、確実に相手に届けるために、デジタル署名自体を公開鍵で暗号化してから通信相手に届けたりする方法などもあり、セキュリティと利便性や動作速度などのバランスで検討されます。