ds.mermaidsequenceDiagram
participant 送信者
participant 受信者
participant CA(認証局)
autonumber
送信者 ->> 送信者 : 鍵ペアを作成
送信者 ->> CA(認証局) : 事前に電子証明書を発行してもらう
CA(認証局) -->>送信者 : 電子証明書
送信者 ->> 送信者 : 「データ」をハッシュ関数でハッシュ化して「ダイジェスト(別名:フィンガープリント)」を作成
送信者 ->> 送信者 : 「ダイジェスト」を秘密鍵で暗号化して「署名」を作成
送信者 ->> 受信者 : 「データ」と「署名」を送信
送信者 ->> 受信者 : 電子証明書(「公開鍵」「CAの署名」)を送信
受信者 ->> 受信者 : 「CAの署名」を検証
Note right of 受信者: 検証が必要
受信者 ->> 受信者 : 電子証明書内の「公開鍵」で署名を復号して「ダイジェスト(b)」を作成
受信者 ->> 受信者 : 受け取った「データ」からハッシュ関数で「ダイジェスト(a)」を作成
受信者 ->> 受信者 : ダイジェストを比較して照合する。データが送信者によるものと分かる