Crypto Wiki

EPOC (Efficient Probabilistic Public Key Encryption) is a probabilistic public-key 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 public-key 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 (Okamoto-Uchiyama) function, in which to invert the OU function is proven to be as hard as factoring a composite integer public-key. There are three versions of EPOC:

  • EPOC-2 uses a one-way trapdoor function, two random functions (hash functions) and a symmetric-key encryption (e.g., one-time padding and block-ciphers);
  • EPOC-3 uses the Okamoto-Uchiyama one-way trapdoor function and two random functions (hash functions) as well as any symmetric encryption scheme such as the one-time pad, or any classical block-cipher.

EPOC-1 is designed for key-distribution; EPOC-2 and EPOC-3 are designed for both key-distribution and encrypted data transfer.

See also[]

  • Cryptography
  • Computational complexity theory
  • Okamoto-Uchiyama cryptosystem