ElGamal Public Key Cryptosystem Proof
Buildup
From left to right, let’s name them Alice, Bob, and Eve. Alice and Bob are the parties exchanging messages, and Eve is a passive attacker interested in the message. The orange box represents information known only to Alice, the sky-blue box represents information known only to Bob, and the black box represents public information (also known to Eve).
Alice has a message to receive from Bob.
Algorithm 1
Let’s say it’s a cyclic group with elements.
Key Setup: Publicly choose a very large prime number and , which is a large prime number, as .
Alice decides on a key , known only to herself, and computes to make it public.
Encryption: Generate a one-time random key . Bob calculates and to transmit to Alice.
Decryption: Using , Alice computes to obtain . It’s realistically impossible for Eve to know , therefore, she can’t know .
Explanation
In fact, there’s no need for the order of to be large in the system itself, but choosing a number with a large order is better to reduce the possibility of obtaining it by brute force.
Proof
Decryption
Since Alice knows , and and , she can easily compute without knowing .
■
Encryption
Since Eve only knows and , not and , she cannot know the discrete logarithm problem , and even if she did, she would need to solve it directly. Since this is very difficult, Bob can safely transmit the message to Alice.
■
See Also
Security algorithms utilizing the difficulty of the discrete logarithm problem
Attack algorithms on the discrete logarithm problem
- Shanks’ algorithm
- Pollard’s rho algorithm
- Conditions under which the discrete logarithm problem is easily solvable
Hoffstein. (2008). An Introduction to Mathematical Cryptography: p70. ↩︎