Okamoto–Uchiyama cryptosystem
The Okamoto–Uchiyama cryptosystem is a public key cryptosystem proposed in 1998 by Tatsuaki Okamoto and Shigenori Uchiyama. The system works in the multiplicative group of integers modulo n,, where n is of the form p2q and p and q are large primes.
Background
Let be an odd prime. Define.is a subgroup of with .
Define by
is a homomorphism between and the additive group : that is,. Since is bijective, it is an isomorphism.
One can now show the following as a corollary:
Let such that and for. Then
The corollary is a direct consequence of.
Operation
Like many public key cryptosystems, this scheme works in the group. This scheme is homomorphic and hence malleable.Key generation
A public/private key pair is generated as follows:The public key is then and the private key is.
Encryption
A message can be encrypted with the public key as follows.- Choose a random integer.
- Compute.
Decryption
An encrypted message can be decrypted with the private key as follows.- Compute.
- Compute. and will be integers.
- Using the Extended Euclidean Algorithm, compute the inverse of modulo :
- :.
- Compute.
Example
Let and. Then. Select. Then.Now to encrypt a message, we pick a random and compute.
To decrypt the message 43, we compute
And finally.
Proof of correctness
We wish to prove that the value computed in the last decryption step,, is equal to the original message. We haveSo to recover we need to take the discrete logarithm with base. This can be done by applying, as follows.
By Fermat's little theorem,. Since one can write with. Then and the corollary from earlier applies:.