EPOC (Efficient Probabilistic Public Key Encryption) is a
probabilistic
Probability is a branch of mathematics and statistics concerning events and numerical descriptions of how likely they are to occur. The probability of an event is a number between 0 and 1; the larger the probability, the more likely an e ...
public-key
Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic alg ...
encryption
In Cryptography law, cryptography, encryption (more specifically, Code, encoding) is the process of transforming information in a way that, ideally, only authorized parties can decode. This process converts the original representation of the inf ...
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
In cryptography, a random oracle is an oracle (a theoretical black box) that responds to every ''unique query'' with a (truly) random response chosen uniformly from its output domain. If a query is repeated, it responds the same way every tim ...
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
In cryptography, a semantically secure cryptosystem is one where only negligible information about the plaintext can be feasibly extracted from the ciphertext. Specifically, any PP (complexity), probabilistic, polynomial-time algorithm (PPTA) that ...
against a
chosen ciphertext attack
A chosen-ciphertext attack (CCA) is an attack model for cryptanalysis
Cryptanalysis (from the Greek ''kryptós'', "hidden", and ''analýein'', "to analyze") refers to the process of analyzing information systems in order to understand hidden a ...
.
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-1 uses a one-way
trapdoor function
In theoretical computer science and cryptography, a trapdoor function is a function (mathematics), function that is easy to compute in one direction, yet difficult to compute in the opposite direction (finding its Inverse function, inverse) wit ...
and a random function (hash function);
* 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
Cryptography, or cryptology (from "hidden, secret"; and ''graphein'', "to write", or ''-logy, -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of Adversary (cryptography), ...
*
Computational complexity theory
In theoretical computer science and mathematics, computational complexity theory focuses on classifying computational problems according to their resource usage, and explores the relationships between these classifications. A computational problem ...
*
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, (\mathbb/n\mathbb)^*, where ''n'' is of the form ''p ...
References
* T. Okamoto, S. Uchiyama and E. Fujisaki (1999).
EPOC: Efficient Probabilistic Public-Key Encryption", Contribution to IEEE – describes EPOC-1 and EPOC-2.
* T. Okamoto and D. Pointcheval (2000).
", Contribution to IEEE – describes EPOC-3.
*
{{Cryptography navbox , public-key
Public-key encryption schemes