EPOC ( Efficient Probabilistic Public Key Encryption ) es un esquema de cifrado probabilístico de clave pública .
EPOC fue desarrollado en 1999 por T. Okamoto, S. Uchiyama y E. Fujisaki de NTT Labs en Japón. Se basa en el modelo de oráculo aleatorio , en el que una función primitiva de cifrado de clave pública se convierte en un esquema de cifrado seguro mediante el uso de una función hash verdaderamente aleatoria; el esquema resultante está diseñado para ser semánticamente seguro contra un ataque de texto cifrado elegido .
La función de cifrado primitiva de EPOC es la función OU (Okamoto-Uchiyama), en la que se ha demostrado que invertir la función OU es tan difícil como factorizar una clave pública entera compuesta. Hay tres versiones de EPOC:
EPOC-1 está diseñado para distribución de claves; EPOC-2 y EPOC-3 están diseñados tanto para la distribución de claves como para la transferencia de datos cifrados.