ElGamal Encryption Algorithm - 240507 - 213505
ElGamal Encryption Algorithm - 240507 - 213505
•
ElGamal encryption is a public-key cryptosystem. It uses asymmetric key encryption
for communicating between two parties and encrypting the message. This cryptosystem
is based on the difficulty of finding discrete logarithm in a cyclic group that is even if
we know ga and gk, it is extremely difficult to compute gak.
Idea of ElGamal cryptosystem:
Suppose Alice wants to communicate with Bob.
1. Bob generates public and private keys:
• Bob chooses a very large number q and a cyclic group Fq.
• From the cyclic group Fq, he choose any element g and
an element a such that gcd(a, q) = 1.
• Then he computes h = ga.
• Bob publishes F, h = ga, q, and g as his public key and retains a as
private key.
2. Alice encrypts data using Bob’s public key :
• Alice selects an element k from cyclic group F
such that gcd(k, q) = 1.
• Then she computes p = gk and s = hk = gak.
• She multiples s with M.
• Then she sends (p, M*s) = (gk, M*s).
3. Bob decrypts the message :
• Bob calculates s′ = pa = gak.
• He divides M*s by s′ to obtain M as s = s′.
In this cryptosystem, the original message M is masked by multiplying gak to it. To
remove the mask, a clue is given in form of gk. Unless someone knows a, he will not
be able to retrieve M. This is because finding discrete log in a cyclic group is difficult
and simplifying knowing g a and gk is not good enough to compute g ak.
Advantages: