EPOC (暗号)

提供: testwiki
ナビゲーションに移動 検索に移動

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

暗号方式

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

鍵生成

  1. 同じサイズの2つの素数 pq を秘密鍵とする。
  2. 合成数 n=p2q正整数 gn互いに素剰余類群 (/n)* の元)を公開鍵とする。

暗号化

  • 平文を m(0<m<p)、乱数を r(0<r<n) とする時、暗号文を C=gm+nrmodn とする。

復号

  • Cp=Cp1modp2、同様に gp=gp1modp2 とし、フェルマー商を求める関数を L(x)=x1p とする時、暗号文Cm=L(Cp)L(gp)modp によって復号する。

安全性

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

バージョン

EPOCには3つのバージョンがある。

  1. EPOC-1は、一方向のトラップドア関数とランダム関数(ハッシュ関数)を使用。
  2. EPOC-2は、一方向のトラップドア関数、2つのランダム関数(ハッシュ関数)、および対称キー暗号化(たとえば、ワンタイムパディングとブロック暗号)を使用。
  3. EPOC-3は、岡本内山一方向トラップドア関数と2つのランダム関数(ハッシュ関数)、およびワンタイムパッドなどの対称暗号化方式、または従来のブロック暗号を使用。

EPOC-1はキー配布のために、EPOC-2およびEPOC-3はキー配布と暗号化されたデータ転送の両方のために、設計されている。

参考文献

テンプレート:Cryptography navbox