EPOC (暗号)

EPOC（Efficient Probabilistic Public Key Encryption）とは、1998年4月にNTT情報通信研究所の岡本龍明と内山成憲によって発表された公開鍵暗号方式であり、同一の平文について異なる暗号文を生成できる確率的暗号である。

暗号方式 
鍵生成、暗号化、復号の3つのアルゴリズムで定義される。

鍵生成 
 同じサイズの２つの素数  と  を秘密鍵とする。
 合成数  と正整数  （  と互いに素な剰余類群  の元）を公開鍵とする。

暗号化 
 平文を 、乱数を  とする時、暗号文を  とする。

復号 
 、同様に  とし、フェルマー商を求める関数を  とする時、暗号文 を  によって復号する。

安全性 

EPOCはランダムオラクルモデルに基づいている。このモデルの中で、真にランダムなハッシュ関数を用いることで、EPOCの根幹を成す関数が安全な暗号化の体系となる。結果として生じるその体系は選択暗号文攻撃に対して意味的に安全である。
EPOCの根幹を成すものはOU（岡本・内山）関数であり、OU関数を反転することは、公開鍵を素因数分解するのと同じくらい難しいことが証明されている。

バージョン 
EPOCには3つのバージョンがある。
 EPOC-1は、一方向のトラップドア関数とランダム関数（ハッシュ関数）を使用。
 EPOC-2は、一方向のトラップドア関数、2つのランダム関数（ハッシュ関数）、および対称キー暗号化（たとえば、ワンタイムパディングとブロック暗号）を使用。
 EPOC-3は、岡本内山一方向トラップドア関数と2つのランダム関数（ハッシュ関数）、およびワンタイムパッドなどの対称暗号化方式、または従来のブロック暗号を使用。
EPOC-1はキー配布のために、EPOC-2およびEPOC-3はキー配布と暗号化されたデータ転送の両方のために、設計されている。

参考文献 
 

暗号