EPOC (Efficient Probabilistic Public Key Encryption) is a probabilistic publickey encryption scheme.
EPOC was developed in 1999 by T. Okamoto, S. Uchiyama and E. Fujisaki of NTT Labs in Japan. It is based on the random oracle model, in which a primitive publickey encryption function is converted to a secure encryption scheme by use of a truly random hash function; the resulting scheme is designed to be semantically secure against a chosen ciphertext attack.
EPOC's primitive encryption function is the OU (OkamotoUchiyama) function, in which to invert the OU function is proven to be as hard as factoring a composite integer publickey. There are three versions of EPOC:
 EPOC1 uses a oneway trapdoor function and a random function (hash function);
 EPOC2 uses a oneway trapdoor function, two random functions (hash functions) and a symmetrickey encryption (e.g., onetime padding and blockciphers);
 EPOC3 uses the OkamotoUchiyama oneway trapdoor function and two random functions (hash functions) as well as any symmetric encryption scheme such as the onetime pad, or any classical blockcipher.
EPOC1 is designed for keydistribution; EPOC2 and EPOC3 are designed for both keydistribution and encrypted data transfer.
See alsoEdit
References Edit
 T. Okamoto, S. Uchiyama and E. Fujisaki (1999). "EPOC: Efficient Probabilistic PublicKey Encryption", Contribution to IEEE  describes EPOC1 and EPOC2.
 T. Okamoto and D. Pointcheval (2000). "EPOC3: Efficient Probabilistic PublicKey Encryption (Version 2)", Contribution to IEEE  describes EPOC3.
 Template:Cite journal
