systèmes de cryptage dits à clef publique
Dans un système classique, nous avons des fonctions de cryptage EK et des
fonctions de décryptage DK de telle sorte que DK(EK)(T)=T pour tout texte T .
Dans le système à clef privée (comme DES), DK est identique à EK ou peut s'en
déduire facilement (par exemple pour DES, le déchiffrement et le chiffrement sont
identiques, mais avec un ordre des sous-clefs inversé).
Ces systèmes présentent comme inconvénient de nécessiter la communication de la
clef EK entre les deux correspondants, et si ceux-ci sont éloignés (par exemple s'ils
correspondent par internet), la publication de la clef sera possible et rendrait le
système peu sûr. Le principe des systèmes à clef publique sera de rendre la règle
DK impossible à retrouver à partir de la publication de EK Ainsi il n y aura plus
besoin de se préoccuper des éventuels espions qui pourraient intercepter les
messages.
Chiffrement d'Elgamal
Le chiffrement d' Elgamal est basé sur le problème du logarithme discret exposé ci-dessous :
Le problème du logarithme discret est utile pour la cryptographie car le calcul de logarithmes discrets est difficile tandis que l'opération inverse d'exponentiation peut se faire efficacement avec des algorithmes appropriés.
Soit p un nombre premier tel que le problème du logarithme discret dans ZZp soit difficile, et soit a E ZZp* un élément primitif .
Soit P=ZZp*, C=ZZp*.ZZp*, et K={(p,a,c,b) : b=a^c mod p}
Les valeurs p, a, et b sont publiques et c est secret.
Pour K=(p,a,c,b) et pour un k E ZZp-1 aléatoire (secret), on définit
eK(x,k) = (y1,y2)
où y1=a^k mod p et y2 =x.b^k mod p
Pour (y1,y2) E ZZp*, on définit
dK (y1,y2) =y2(y1^c)^(-1) mod p
Autres chiffrements à clef publique