スポンサーリンク

【応用情報技術者試験】デジタル署名

デジタル署名は、署名者の確認とデータの改ざん検知に利用する技術です。署名者の秘密鍵で署名を生成し、対応する公開鍵で検証します。文書の内容を隠す暗号化とは、目的を分けて考えます。

署名の生成と検証

署名はデータを検証し、電子証明書は公開鍵と持ち主を結び付ける
署名はデータを検証し、電子証明書は公開鍵と持ち主を結び付ける
段階処理
生成典型的にはデータのハッシュ値を求め、署名者の秘密鍵を使って署名を生成
送付対象データと署名を相手へ渡す
検証相手が署名者の公開鍵で、データに対する署名の正当性を確認

RSA系やECDSAなどの署名方式があります。方式を問わず「秘密鍵で文書を暗号化し、公開鍵で復号する」と説明するのは正確ではありません。署名は生成・検証という操作として覚えましょう。

ハッシュ値と改ざん検知

ハッシュ関数は、入力から固定長の値を求めます。同じ入力なら同じ値になります。暗号学的ハッシュは、同じ値を持つ別の入力を見つけることなどが困難になるように設計されています。「文書ごとに絶対に一意の値」とは限りません。データに対応する正しい署名を検証することで、不正な変更を検出します。

暗号化・署名・証明書の役割を区別する

目的処理する側の鍵相手側の鍵
共通鍵暗号による保護共有した共通鍵で暗号化同じ共通鍵で復号
公開鍵暗号による機密性確保受信者の公開鍵で暗号化受信者の秘密鍵で復号
デジタル署名署名者の秘密鍵で生成署名者の公開鍵で検証

署名だけでは内容の盗み見を防げません。機密性も必要なら暗号化を組み合わせます。また、公開鍵が誰のものかを確認するために電子証明書などを利用します。秘密鍵が漏えいした場合は署名者の確認に関わるため、鍵の管理も重要です。

ソフトウェア配布などでの利用

配布するソフトウェアや電子文書に署名を付け、利用者が発行元と改ざんの有無を確認する用途があります。署名を付けるだけで、あらゆる文書の安全性や契約の法的効力が自動的に保証されるわけではありません。技術上は、対象データと信頼できる公開鍵で正しく検証することが中心です。

理解を確かめる確認問題

署名者の公開鍵は、署名の生成と検証のどちらに使いますか?また、署名だけで内容を隠せますか?

解答・解説を見る

公開鍵は検証に使います。生成には署名者の秘密鍵を使います。署名だけで内容は隠せないため、機密性が必要なら暗号化も利用します。

参考:NIST:秘密鍵と署名の役割

電子署名制度の参考:デジタル庁:電子署名

コメント