En mars 2024 j'ai démarré une série de streams sur Twitch autour d'algorithmes simples de chiffrement et déchiffrement en Pascal. Ca avait abouti à la création de l'unité Olf.RTL.CryptDecrypt.pas dans ma boite à outils et de programmes simples de génération de clés compatibles.
Je suis repassé dessus cette semaine pour les diffuser autrement que juste sous forme de codes sources sur GitHub.
IDB keys generator génère des clés utilisables par ajout/suppression de valeur en rotation sur un buffer d'octets.
Shift keys generator génère des séries de chiffres de -7 à +7 pour décaler chaque octet d'un buffer avec des SHL/SHR (sans oublier le bit de gauche ou de droite qui "saute" dans l'opération binaire).
Swap keys generator génère une série de 256 octets pour un algorithme classique. Le remplacement par permuttation d'un octet par un autre dans le buffer à chiffrer.
XOR keys generator génère une série de valeurs utilisables pour faire des "ou exclusif logique" (XOR) sur les octets de votre buffer à chiffrer/déchiffrer.
Ce sont des algorithmes simples. Pas des trucs qui résistent aux attaquants ayant une grosse puissance de calcul. C'est du réversible donc ne les utilisez pas non plus pour calculer une signature.
Il y a de nombreuses alternatives si vous voulez faire du chiffrement poussé dans vos projets sous Delphi dont :
- DEC - Delphi Encryption Compendium développé en open source par Markus Humm
- TMS Cryptography Pack distribué par TMS Software