1. 程式人生 > >ElGamal Cryptography(公鑰密碼學代表之一)

ElGamal Cryptography(公鑰密碼學代表之一)

ElGamal Crypotography

Each user generates his key:

-Choose a secret key :  1<XA<q-1

-Compute their public key: {q,a,YA=a^XA mod q}

 

ElGamal Message Exchange

  • B encrypts and sends message to A by computing 

-Message M in range 0<= M<= q-1

-Choose random integer k with 1<=k<=q-1

-Compute one-time key K=YA^k mod q

-Encrypt M as a pair of integers (C1, C2):

C1 =a^k mod q;  C2=K*M mod q

  • A then recovers message by

-Recovering key K as K=C1^XA mod q

-Computing M as M =C2*K^-1 mod q

  • A unique k must be used each time

otherwise result is insecure

 

說了這麼多,下面舉個例子:

Use field GF(19)q=19 and a=10

A computes key:

A chooses XAxs