【VBA】「デジタル署名」のイメージをVBAで関数化

デジタル署名(デジタルしょめい)とは、書面上の手書き署名のセキュリティ特性を模倣するために用いられる公開鍵暗号技術の一種である。

こちらのサイト を参考に「デジタル署名」のイメージを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 Sub

Function 送信者の公開鍵入手() 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

コメント

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