Fünf für Delphi geschriebene Probenanwendungen bieten eine Einführung in die symmetrische Verschlüsselung mit AES, asymmetrische Verschlüsselung mit RSA und Hybridverschlüsselung als Kombination aus Verschlüsselungsalgorithmen sowie Vorzeichen und Überprüfung. Der gesamte Code basierend auf reinem Delphi unter Verwendung der Winapi.winrt und Winapi.Security.Cryptography Library seit Delphi 10 Seattle geliefert. Es sind keine zusätzlichen Bibliotheken von dritten Parteien erforderlich. Dieser Code wird nur unter Windows ausgeführt und verwendet daher die VCL.
Diese erste Beispiel -App zeigt, wie einfach es ist, eine asymmetrische Verschlüsselung für kleine Nachrichten zu verwenden. Zu diesem Zweck bietet die Anwendung verschiedene Varianten des RSA -Algorithmus. Die Schlüssellänge kann auch ausgewählt werden. Die maximale Nachrichtenlänge ist durch die Länge des Schlüssels begrenzt.

Diese zweite Beispiel -App zeigt, wie einfach es ist, eine symmetrische Verschlüsselung für längere reale Nachrichten zu verwenden. Zu diesem Zweck bietet die Anwendung verschiedene Varianten des AES -Algorithmus. Die Schlüssellänge kann auch ausgewählt werden. Für die CBC-Blockverschlüsselung ist ein zusätzlicher Anfangsvektor erforderlich, der für jede Verschlüsselung erneut gekoßet werden muss. Die Nachrichtenlänge muss ein Vielfaches der Blocklänge sein. Dazu muss die Nachricht gepolstert werden. Der PKCS7 -Polsteralgorithmus ist dies sicherer als ein konstantes Zeichen als Füllstoff zu verwenden.

Diese dritte Beispiel -App zeigt, wie eine Nachricht mit dem öffentlichen Schlüssel des Empfängers dieser Nachricht verschlüsselt wird. Der entsprechende private Schlüssel des Empfängers wird zur anschließenden Entschlüsselung verwendet. Bei jeder Verschlüsselung wird ein neuer Sitzungsschlüssel generiert, um die gesamte Nachricht symmetrisch zu verschlüsseln. Nur dieser Sitzungsschlüssel wird von asymmetrischen Algorithmen verschlüsselt und entschlüsselt.

Die vierte Beispiel -App erweitert die vorherige Beispiel -App, indem sie die Entschlüsselung durch mehr als einen Empfänger ermöglicht.
Für mehrere Empfänger wird der Sitzungsschlüssel mit ihren öffentlichen Schlüssel asymmetrisch verschlüsselt und an die Nachricht angehängt.

Die Fiveth -Beispiel -App erweitert die vorherige Beispiel -App, indem es der Nachricht eine Sender -Signatur hinzufügt. Beim Entschlüsseln wird diese Signatur verwendet, um zu überprüfen, ob die Nachricht vom Absender mit dem mir bekannten öffentlichen Schlüssel erstellt wurde.

Die Stichprobenprojekte werden für Delphi 12.0 Athena entwickelt und vorbereitet.
Delphi ist eine eingetragene Marke von Embarcadero Technologies, Inc.
Christoph Schneider
Schneider Infosystems Ltd
November 2023