Cinq exemples d'échantillons écrits pour Delphi fournissent une introduction au chiffrement symétrique avec AES, cryptage asymétrique avec RSA et chiffrement hybride comme combinaison des algorithmes de chiffrement et des signes et vérification. Tout le code basé sur Pure Delphi à l'aide de la bibliothèque winapi.winrt et winapi.security.cryptographie livrée depuis Delphi 10 Seattle. Aucune bibliothèque tierce supplémentaire n'est requise. Ce code s'exécute uniquement sur Windows et utilise donc le VCL.
Cet premier exemple d'application montre à quel point il est facile d'utiliser le cryptage asymétrique pour les petits messages. À cette fin, l'application fournit différentes variantes de l'algorithme RSA. La longueur de clé peut également être sélectionnée. La longueur maximale du message est limitée par la longueur de la clé.

Ce deuxième exemple d'application montre à quel point il est facile d'utiliser le cryptage symétrique pour des messages réels plus longs. À cette fin, l'application fournit différentes variantes de l'algorithme AES. La longueur de clé peut également être sélectionnée. Pour le chiffrement du bloc CBC, un vecteur initial supplémentaire est requis, qui doit être re-cité pour chaque cryptage. La longueur du message doit être un multiple de la longueur du bloc. Pour ce faire, le message doit être rembourré. L'algorithme de rembourrage PKCS7 rend cela plus sûr que d'utiliser un caractère constant comme remplissage.

Ce troisième exemple d'application montre comment crypter un message avec la clé publique du récepteur de ce message. La clé privée appropriée du récepteur est utilisée pour le décryptage ultérieur. Avec chaque cryptage, une nouvelle clé de session est générée pour crypter symétriquement l'intégralité du message. Seule cette clé de session est cryptée et déchiffrée par des algorithmes asymétriques.

Le quatrième exemple de l'application étend l'application d'échantillon précédent en autorisant le déchiffrement de plus d'un destinataire.
Pour plusieurs destinataires, la clé de session est cryptée de manière asymétrique avec leurs clés publiques et annexée au message.

L'exemple d'application FIVETHS étend l'exemple d'application précédente en ajoutant une signature de l'expéditeur au message. Lors du décryptage, cette signature est utilisée pour vérifier si le message a été créé par l'expéditeur avec la clé publique connue de moi.

Les exemples de projets sont développés et préparés pour Delphi 12.0 Athena.
Delphi est une marque déposée d'Embarcadero Technologies, Inc.
Christoph Schneider
Schneider Infosystems Ltd
Novembre 2023