デジタル署名(デジタルしょめい)とは、書面上の手書き署名のセキュリティ特性を模倣するために用いられる公開鍵暗号技術の一種である。
こちらのサイト を参考に「デジタル署名」のイメージをVBAで関数化
中身は実装していないが、なんとなくデータの流れが見えてきた。
Sub 送信者の処理()
Dim 公開鍵 As String
Dim 秘密鍵 As String
Dim メッセージ As String
Dim ハッシュ値 As String
Dim 署名 As String公開鍵 = 公開鍵生成()
秘密鍵 = 秘密鍵生成()
鍵公開 公開鍵
メッセージ = メッセージ作成()
ハッシュ値 = ハッシュ値算出(メッセージ)
署名 = ハッシュ値を秘密鍵で暗号化(ハッシュ値, 秘密鍵)
Call 署名を送信(署名)
Call メッセージを送信(メッセージ)End Sub
Function 公開鍵生成() As String
End Function
Function 秘密鍵生成() As String
End Function
Function 鍵公開(ByVal 公開鍵 As String) As Boolean
End Function
Function メッセージ作成() As String
End Function
Function ハッシュ値算出(ByVal メッセージ As String) As String
End Function
Function ハッシュ値を秘密鍵で暗号化(ByVal ハッシュ値 As String, ByVal 秘密鍵 As String) As String
End Function
Function 署名を送信(ByVal 署名 As String) As Boolean
End Function
Function メッセージを送信(メッセージ) As String
End Function
Sub 受信者の処理()
Dim 送信者の公開鍵 As String
Dim 送信者の署名 As String
Dim 送信者のメッセージ As String
Dim 送信者のハッシュ値 As String
Dim 検算用のハッシュ値 As String
送信者の公開鍵 = 送信者の公開鍵入手()
送信者の署名 = 送信者の署名入手()
送信者のメッセージ = 送信者のメッセージ入手()
送信者のハッシュ値 = 復号化しハッシュ値の取得(送信者の署名, 送信者の公開鍵)
検算用のハッシュ値 = ハッシュ値算出(送信者のメッセージ)
Call ハッシュ値を比較(送信者のハッシュ値, 検算用のハッシュ値)
End SubFunction 送信者の公開鍵入手() As String
End Function
Function 送信者の署名入手() As String
End Function
Function 送信者のメッセージ入手() As String
End Function
Function 復号化しハッシュ値の取得(ByVal 送信者の署名 As String, ByVal 送信者の公開鍵 As String) As String
End Function
Function ハッシュ値を比較(ByVal 送信者のハッシュ値 As String, ByVal 検算用のハッシュ値 As String)
End Function
コメント