Delphi用に記述された5つのサンプルアプリケーションは、AESを使用した対称暗号化、RSAによる非対称暗号化、および暗号化アルゴリズムと署名と検証の両方の組み合わせとしてのハイブリッド暗号化の紹介を提供します。 winapi.winrtとwinapi.security.cryptography Libraryを使用した純粋なDelphiに基づくすべてのコードは、Delphi 10シアトルから配信されました。追加のサードパーティライブラリは必要ありません。このコードはWindowsでのみ実行されるため、VCLを使用します。
この最初のサンプルアプリは、小さなメッセージに非対称暗号化を使用することがどれほど簡単かを示しています。この目的のために、アプリケーションはRSAアルゴリズムのさまざまなバリエーションを提供します。キーの長さも選択できます。最大メッセージの長さはキーの長さによって制限されます。

この2番目のサンプルアプリは、より長い実際のメッセージに対称暗号化を使用することがどれほど簡単かを示しています。この目的のために、アプリケーションはAESアルゴリズムのさまざまなバリエーションを提供します。キーの長さも選択できます。 CBCブロック暗号化の場合、追加の初期ベクトルが必要です。これは、各暗号化に対して再コーティングする必要があります。メッセージの長さは、ブロック長の倍数でなければなりません。これを行うには、メッセージをパディングする必要があります。 PKCS7パディングアルゴリズムにより、一定の文字をフィラーとして使用するよりも、これがより安全になります。

この3番目のサンプルアプリは、このメッセージの受信者の公開鍵でメッセージを暗号化する方法を示しています。受信機の適切な秘密鍵は、後続の復号化に使用されます。各暗号化を使用すると、新しいセッションキーが生成され、メッセージ全体を対称的に暗号化します。このセッションキーのみが暗号化され、非対称アルゴリズムによって復号化されます。

4番目のサンプルアプリは、複数の受信者による復号化を許可することにより、以前のサンプルアプリを展開します。
複数の受信者の場合、セッションキーは公開鍵で非対称に暗号化され、メッセージに追加されます。

Fiveth Sampleアプリは、メッセージに送信者署名を追加することにより、以前のサンプルアプリを展開します。復号化するとき、この署名は、メッセージが送信者によって作成されたかどうかを確認するために使用されます。

サンプルプロジェクトは、Delphi 12.0 Athena用に開発および準備されています。
Delphiは、Embarcadero Technologies、Inc。の登録商標です。
クリストフ・シュナイダー
Schneider Infosystems Ltd
2023年11月