デジタル署名の解説(基本情報技術者シラバス用語)

目次

デジタル署名とは

デジタル署名(電子署名)とは、公開鍵暗号方式の技術を応用し、送信されたデジタルデータが「間違いなく本人が作成したものであること(なりすまし防止)」と「送信された後にデータが改ざんされていないこと(改ざん検知)」を受信者が確認できるようにするための技術です。データの送信者は、データからハッシュ値を計算し、それを自身の「秘密鍵」で暗号化して「署名」を作成しデータに添付します。受信者は、送信者の「公開鍵」で署名を復号し、元のデータから計算したハッシュ値と一致するか確認します。

具体例

インターネット上で重要な契約書(PDF等)を交わす際、署名者が自身の秘密鍵を使ってファイルに電子的な署名を施します。相手方はその署名を公開鍵で検証し、契約書が本人の合意によるものであり、後から改ざんされていないことを確認します。

[送信側] 送信データ -> ハッシュ計算 -> 自身の「秘密鍵」で暗号化 =【デジタル署名】
[受信側] 添付された署名 -> 送信者の「公開鍵」で復号 -> ハッシュ値を比較して改ざんを検証

もう少し詳しく

デジタル署名では、公開鍵暗号方式を通常とは逆の順序で利用します。送信者はまずデータからハッシュ関数を使ってハッシュ値(メッセージダイジェスト)を計算し、それを自分自身の「秘密鍵」で暗号化して署名を作成します。受信者は、送信者の「公開鍵」でその署名を復号してハッシュ値を取り出し、受け取ったデータから改めて計算したハッシュ値と比較します。両者が一致すれば「本人が作成したデータであること」と「送信後に改ざんされていないこと」の両方が同時に証明されます。

試験でのポイント

「秘密鍵で暗号化し、公開鍵で復号する」という、通常の公開鍵暗号方式(公開鍵で暗号化し秘密鍵で復号)とは逆の鍵の使い方をする点が最も問われやすいポイントです。この逆転の仕組みにより、署名を復号できた(=正しい公開鍵で開けた)ことがそのまま「秘密鍵の持ち主本人が署名した証拠」になります。デジタル署名単体では「なりすましの相手が本当に本人か」までは証明できないため、電子証明書(認証局による本人確認)と組み合わせて使われる点もあわせて理解しておく必要があります。

関連する用語

署名作成の基礎となる「公開鍵暗号方式」「ハッシュ関数」、本人性を保証する「電子証明書」があります。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ