A cura di Antonio Parziale
Pubblicato il 11/06/2005
Ecco come si costruisce l'algoritmo a chiave pubblica ElGamal.L'articolo è tratto dalla tesi di laurea in "Applicazione delle tecniche di crittografia nella trasmissione ed elaborazione dati" redatta dall'ingegnere Federico Gennari nell'anno accademico 2000/2001.
ElGamal
Ricevente
scelta di: - p grosso numero primo
- a generatore del gruppo moltiplicativo Zp* degli interi modulo p
- XB numero casuale
chiave pubblica del ricevente: (YB, p, a) dove YB = aXB mod p
chiave privata del ricevente: XB
Mittente
scelta di K’ (numero casuale tale che
) da distruggere dopo l’uso
costruzione della chiave K=YBK’ mod p
crittogramma C = {C1, C2} dove C1 = aK mod p
C2 = K M mod p (M è il messaggio)
estrazione della chiave K = C1XB mod p = aK’ XB mod p
recupero di M messaggio M = C2 K-1 mod p
Il modulo p è raccomandato essere almeno di 768 bit, e per sicurezza a lungo termine l’uso di 1024 bit. Il generatore a del gruppo moltiplicativo Zp* appartiene al campo di Galois GF(p), cioè il campo degli interi modulo p, con p numero primo, ma può appartenere ad altri gruppi definiti su altri campi, come i polinomi GF(2m), come il campo dei punti appartenenti a curve ellittiche oppure alle funzioni Lucas (polinomi speciali nel campo intero)(*)