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

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

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

公開鍵暗号方式とハッシュ関数を利用した「デジタル署名」のデータの流れを、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

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月27日

  • 変更リンク切れとなっていた古い外部参考サイトのURLを削除し、Wikipediaの公式情報へ整理しました。
  • 変更引用タグ内に露出していたコードを通常のHTMLタグを用いたコードブロック形式に修正しました。

文書情報

記事タイトル
【VBA】「デジタル署名」のイメージをVBAで関数化
作成日
更新日
Source URL
https://papanda925.com/?p=636

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

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