cerca
El Gamal
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Return to El Gamal  (Edit)

Uni.CrittoElGamal History

Hide minor edits - Show changes to output

Added lines 1-55:
(:title El Gamal:)
%titolo%''':: El Gamal ::'''

[[Torna alla pagina di Crittografia -> Crittografia]]

!!Che cos'č
El Gamal č un algoritmo di cifratura asimmetrica che si basa sull'intrattabilitā del [[logaritmo discreto -> CrittoDH]].

!!Generazione dei parametri
'''p''' č un numero primo
'''g''' č un generatore di Z'_p_'^'*'^
'''&#945;''' č un numero casuale, &#945; < p - 1
'''&#946;''' = '''g'^&#945;^' mod p'''

Chiave privata: '''p''', '''g''', '''&#945;'''.\\
Chiave pubblica: '''p''', '''g''', '''&#946;'''.

!!Come funziona
Bob vuole mandare il messaggio M ad Alice, e sfrutta la '''chiave pubblica''' di Alice, ovvero p, g e &#946;.\\

* sceglie un valore '''k''' casuale, k < p - 1
* genera due valori: '''y^_1_^''' e '''y^_2_^'''
** '''y^_1_^ = g'^k^' mod p'''
** '''y^_2_^ = (&#946;'^k^' * M) mod p'''

Invia quindi ad Alice i valori '''y'_1_'''' e '''y'_2_''''.

Alice, per decrittografare, fa le seguenti operazioni:
* '''z = y'_1_''^&#945;^' mod p'''
* '''M = z'^-1^' * y'_2_' mod p'''

Secondo voi non funziona? Beh, provate per credere!:)

!!!Esempio
p = 11
g = 6
&#945; = 3

Quanto vale &#946;? Beh, &#946; = g'^&#945;^' = 6'^3^' = 7 mod 11.

Quindi:\\
Chiave privata: p = 11, g = 6, &#945; = 3
Chiave pubblica: p = 11, g = 6, &#946; = 7

Ora, Bob vuole crittografare il messaggio M = 8 per inviarlo ad Alice:
* sceglie un '''k''' casuale: k = 2 < (11 - 1)
* y'_1_' = g'^k^' = 6 '^2^' = 3 mod 11
* y'_2_' = M * &#946;'^k^' = 8 * 7'^2^' = 8 * 5 = 40 = 7 mod 11

Alice vuole decifrare:
* z = y'_1_''^&#945;^' = 3'^3^' = 27 = 5 mod 11
* z'^-1^' = 9 mod 11. Infatti, 5 * 9 = 45 = 1 mod 11
* M = z'^-1^' * y'_2_' = 9 * 7 = 63 = 8 mod 11

[[Torna alla pagina di Crittografia -> Crittografia]]