Le cryptage ElGamal est un algorithme de cryptage à clé asymétrique pour la cryptographie à clé publique, qui est basé sur le Diffie–Hellman échange de clés. Il peut être défini sur n'importe quel groupe cyclique G. Sa sécurité dépend de la difficulté d'un certain problème dans G lié au calcul des logarithmes discrets.

Le chiffrement ElGamal se compose de trois composants : le générateur de clé, l'algorithme de chiffrement et l'algorithme de déchiffrement. Ces opérations sortent du cadre de cet article. Nous vous suggérons de suivre l'explication simple donnée sur Wikipédia pour une explication détaillée.

 
Mise en œuvre:

Voici l'implémentation de l'algorithme de chiffrement ElGamal en C. Le programme attend un fichier d'entrée, plain.txt, qui contient le texte brut et génère un fichier de sortie, results.txt, qui contient notre texte décrypté. Le programme génère également deux fichiers intermédiaires - cipher1.txt et cipher2.txt.

 
Le programme ci-dessus est testé dans l'environnement Windows en utilisant Code::Blocks 16.01.

C'est tout à propos de l'implémentation de l'algorithme ElGamal Encryption en C.