デジタル署名

読み:でじたるしょめい / 英語表記:digital signature

データの作成者が自分の秘密鍵で付ける署名。受け取った側は作成者の公開鍵で検証し、データが改ざんされていないことと、本人が作成したことを確かめられる。

イマシルちゃんの解説

紙の書類なら、本人のハンコやサインで「私が書きました」って証明できるよね。
デジタルの世界でそれをするのがデジタル署名なんだ。

自分しか持っていない鍵(秘密鍵)で署名して、
みんなが持っている鍵(公開鍵)で確かめてもらう。
途中で1文字でも書き換えられたら、確かめたときにバレちゃうんだよ!

より深い解説

定義

デジタル署名は、公開鍵暗号の仕組みを使って、データに付ける署名である。署名には作成者の秘密鍵を使い、検証には作成者の公開鍵を使う。暗号化(受信者の公開鍵で暗号化し、受信者の秘密鍵で復号する)とは、鍵の使い方が逆になる。

署名と検証の手順

手順送信者(署名する側)受信者(検証する側)
1データのハッシュ値を計算する受け取ったデータのハッシュ値を計算する
2ハッシュ値を自分の秘密鍵で処理し、署名を作る署名を送信者の公開鍵で検証する
3データと署名を送る1のハッシュ値と、署名から得られる値が一致すれば、検証に成功

データそのものではなくハッシュ値に署名するのは、データが大きくても署名の計算を短く済ませるためである。

デジタル署名でわかること

わかること理由
改ざんされていないこと(完全性)データが1ビットでも変わると、ハッシュ値が変わって検証に失敗する
作成者が本人であること(認証)対応する秘密鍵を持つ本人にしか、正しい署名は作れない
作成者が後で否定できないこと(否認防止)秘密鍵は本人しか持たないので、「自分は署名していない」と言い逃れできない

一方、デジタル署名だけでは、データの中身を秘密にする(機密性)ことはできない。中身を隠すには、別に暗号化を行う。

公開鍵が本物であることの確認

検証に使う公開鍵が、確かに作成者のものでなければ意味がない。そのため、公開鍵が本人のものであることを、認証局がデジタル証明書で保証する。

主な方式と利用場面

方式には、RSA署名、ECDSA(楕円曲線を使う方式)、EdDSAなどがある。

実際の試験ではここに出る!

この用語が出てくる記事

↑