スポンサーリンク

63-5.ディジタル署名

スポンサーリンク
ディジタル署名 ITパスポート
スポンサーリンク

ディジタル署名とは?

ディジタル署名は、送信されたデータの『真正性』と『完全性』の証明に用います。

●ディジタル署名が証明できること
真正性送信者本人がデータを送信したこと
完全性:データが改ざんされていないこと

また、ディジタル署名は次の手順で作成します。

●ディジタル署名の作成手順
①データをハッシュ関数(※後述)で変換し、メッセージダイジェストを作成
②メッセージダイジェストを送信者の秘密鍵で暗号化

つまり、ディジタル署名『データのメッセージダイジェストを送信者の秘密鍵で暗号化(署名)をしたもの』です。

[補足]ハッシュ関数

ハッシュ関数とは、入力したデータを固定長の出力データに変換する関数です。入力データをメッセージ、出力データをメッセージダイジェスト(ハッシュ値)と呼びます。

ハッシュ関数には、『非衝突性』、『一方向性』の特性があります。

●ハッシュ関数の特性
非衝突性:メッセージ(入力)が異なれば、メッセージダイジェスト(出力)も異なる
一方向性:メッセージダイジェスト(出力)からメッセージ(入力)へ逆変換できない

大きなメッセージ(入力)を一意の固定長のメッセージダイジェスト(出力)に変換が可能なため、認証技術のディジタル署名では、データの改ざんがないことの照合に利用されます。

ディジタル署名の手順

具体的に、送信者(Aさん)のディジタル署名を受信者(Bさん)が真正性と完全性を確認するまでの流れを見ていきます。

工程説明
送信者(Aさん)がデータをハッシュ関数で変換し、メッセージダイジェストAを作成
送信者(Aさん)が自身(Aさん)の秘密鍵(※署名鍵)でメッセージダイジェストAを暗号化し、ディジタル署名を作成
送信者(Aさん)は受信者(Bさん)へディジタル署名を送付
受信者(Bさん)は送信者(Aさん)の公開鍵(※検証鍵)でディジタル署名を復号し、メッセージダイジェストAを作成
受信者(Bさん)は送信者(Aさん)から受け取った平文をハッシュ関数で変換し、メッセージダイジェストBを作成
受信者(Bさん)はメッセージダイジェストAとメッセージダイジェストB比較し、一致することを確認

ここで、ディジタル署名で利用した、公開鍵暗号方式の送信者の秘密鍵と公開鍵を、それぞれ署名鍵検証鍵と呼びます。

●署名鍵/検証鍵
署名鍵:メッセージダイジェストを暗号化した送信者の秘密鍵
検証鍵:ディジタル署名を復号した送信者の公開鍵

ディジタル署名による真正性・完全性の証明

ディジタル署名では、真正性と完全性を証明可能です。この理由について、確認します。

●真正性を証明できる理由
ディジタル署名が送信者本人の公開鍵で復号可能
送信者本人の秘密鍵で暗号化された
送信者本人が送付した
●完全性を証明できる理由
メッセージダイジェストAとメッセージダイジェストBが一致
=ハッシュ関数で変換したメッセージと平文が同じ
改ざんがない

つまり、真正性は、ディジタル署名が送信者の秘密鍵(署名鍵)で暗号化されたことの確認で証明します。完全性は、メッセージダイジェストが一致から、入力であるデータも一致することが証明できます。

スポンサーリンク

【まとめ】ディジタル署名

今回、学んだ内容をおさらいしておきましょう。

用語説明
ハッシュ関数入力したデータを固定長の出力に変換する関数
メッセージハッシュ関数の入力
メッセージダイジェスト
(ハッシュ値)
ハッシュ関数の出力
ディジタル署名送信されたデータの『真正性(送信者が本人であること)』と『完全性(改ざんされていないこと)』の証明に用いるもの
データのメッセージダイジェストを送信者の秘密鍵で暗号化(署名)したもの
署名鍵メッセージダイジェストを暗号化した送信者の秘密鍵
検証鍵ディジタル署名を復号した送信者の公開鍵

コメント

タイトルとURLをコピーしました