準同型暗号

準同型暗号(じゅんどうけいあんごう)(: Homomorphic Encryption, HE)は、準同型性を有するような暗号方式である。RSA暗号ElGamal暗号など整数論をベースとした多くの公開鍵暗号は、この特徴を有しており、電子投票電子マネーなどの暗号プロトコルにおいて利用される。

性質

二つの暗号文 E n c ( m 1 ) , E n c ( m 2 ) {\displaystyle {\rm {Enc}}(m_{1}),{\rm {Enc}}(m_{2})} が与えられた時に、平文や秘密鍵なしで E n c ( m 1 m 2 ) {\displaystyle {\rm {Enc}}(m_{1}\circ m_{2})} を計算できる。 ここで {\displaystyle \circ } は、加法 + {\displaystyle +} 乗法 × {\displaystyle \times } のような二項演算子とする。直感的に言うと、もし E n c {\displaystyle {\rm {Enc}}} が加法に関して準同型性を有するものであれば、 E n c ( 3 ) {\displaystyle {\rm {Enc}}(3)} E n c ( 2 ) {\displaystyle {\rm {Enc}}(2)} から E n c ( 5 ) {\displaystyle {\rm {Enc}}(5)} を計算できる。 加法、乗法の両方の演算が可能な完全準同型性暗号は長らく見つかっていなかったが、2009年にGentryらにより発表された[1]。準同型性は暗号プロトコルを構成する上で非常に有用な性質ではあるが、暗号文のみから、平文の操作を可能としてしまうため、通常利用には適していない。

準同型性を有する公開鍵暗号の例

RSA暗号

RSA暗号の公開鍵を ( e , n ) {\displaystyle (e,n)} 、秘密鍵を ( d , n ) {\displaystyle (d,n)} とする。 ここで n {\displaystyle n} は合成数とする。 この暗号方式では、平文 m 1 , m 2 Z n {\displaystyle m_{1},m_{2}\in \mathbb {Z} _{n}^{*}} の暗号文は、それぞれ m 1 e mod n , m 2 e mod n {\displaystyle m_{1}^{e}{\bmod {n}},m_{2}^{e}{\bmod {n}}} となる。この二つの暗号文から m 1 × m 2 {\displaystyle m_{1}\times m_{2}} の 暗号文を構成するためには、二つの暗号文の乗算をすればよい。これは、 ( m 1 × m 2 ) e mod n {\displaystyle (m_{1}\times m_{2})^{e}{\bmod {n}}} となることからも確かめられる。

ElGamal暗号

位数が素数 q {\displaystyle q} であるような群 G = g {\displaystyle G=\langle g\rangle } 上のElGamal暗号を考える。公開鍵を ( g , y = g x ) {\displaystyle (g,y=g^{x})} 、秘密鍵を x {\displaystyle x} とする。平文 m 1 , m 2 G {\displaystyle m_{1},m_{2}\in G} の暗号文は、 ( g r 1 , y r 1 m 1 ) {\displaystyle (g^{r_{1}},y^{r_{1}}\cdot m_{1})} ( g r 2 , y r 2 m 2 ) {\displaystyle (g^{r_{2}},y^{r_{2}}\cdot m_{2})} となる。 この二つの暗号文を掛け合わせれば、 ( g r 1 + r 2 , y r 1 + r 2 ( m 1 m 2 ) ) {\displaystyle (g^{r_{1}+r_{2}},y^{r_{1}+r_{2}}\cdot (m_{1}m_{2}))} となり、 m 1 m 2 {\displaystyle m_{1}m_{2}} の暗号文となる。

modified-ElGamal暗号

ElGamal暗号に若干の修正を加えれば、加法に関して準同型性を有する公開鍵暗号を構成できる。上と同じように、位数が素数 q {\displaystyle q} であるような群 G = g = h {\displaystyle G=\langle g\rangle =\langle h\rangle } 上のElGamal暗号を考える。公開鍵を ( g , h , y = g x ) {\displaystyle (g,h,y=g^{x})} 、秘密鍵を x {\displaystyle x} とする。平文 m 1 , m 2 Z q {\displaystyle m_{1},m_{2}\in \mathbb {Z} _{q}} の暗号文は、 ( g r 1 , y r 1 h m 1 ) {\displaystyle (g^{r_{1}},y^{r_{1}}\cdot h^{m_{1}})} ( g r 2 , y r 2 h m 2 ) {\displaystyle (g^{r_{2}},y^{r_{2}}\cdot h^{m_{2}})} となる。 この二つの暗号文を掛け合わせれば、 ( g r 1 + r 2 , y r 1 + r 2 h m 1 + m 2 ) {\displaystyle (g^{r_{1}+r_{2}},y^{r_{1}+r_{2}}\cdot h^{m_{1}+m_{2}})} となり、 m 1 + m 2 {\displaystyle m_{1}+m_{2}} の暗号文となる。

Paillier暗号

平文 m Z n {\displaystyle m\in \mathbb {Z} _{n}} に対するPaillier暗号(en:Paillier cryptosystem)の暗号文は、 g m r n mod n 2 {\displaystyle g^{m}\cdot r^{n}{\bmod {n^{2}}}} である。ここで g Z n 2 {\displaystyle g\in \mathbb {Z} _{n^{2}}^{*}} r Z n {\displaystyle r\in \mathbb {Z} _{n}^{*}} である。この公開鍵暗号は加法に関して、準同型性を有する。すなわち、 m 1 , m 2 {\displaystyle m_{1},m_{2}} の暗号文 g m 1 r 1 n , g m 2 r 2 n mod n 2 {\displaystyle g^{m_{1}}\cdot {r_{1}}^{n},g^{m_{2}}\cdot {r_{2}}^{n}{\bmod {n^{2}}}} から m 1 + m 2 {\displaystyle m_{1}+m_{2}} の暗号文を計算することは容易である。 すなわち、 g m 1 r 1 n × g m 2 r 2 n mod n 2 = g m 1 + m 2 ( r 1 r 2 ) n mod n {\displaystyle g^{m_{1}}\cdot {r_{1}}^{n}\times g^{m_{2}}\cdot {r_{2}}^{n}{\bmod {n^{2}}}=g^{m_{1}+m_{2}}\cdot (r_{1}r_{2})^{n}{\bmod {n}}} とできる。

modified-ElGamalとPaillier暗号のその他の有用な性質

準同型の性質により、これらの暗号方式においては、 k {\displaystyle k} E n c ( m ) {\displaystyle {\rm {Enc}}(m)} から E n c ( k m ) {\displaystyle {\rm {Enc}}(km)} を計算できる。 例えば、Paillier暗号ならば、 k {\displaystyle k} g m r n mod n 2 {\displaystyle g^{m}\cdot r^{n}{\bmod {n^{2}}}} から、 ( g m r n ) k = g k m ( r k ) n {\displaystyle (g^{m}\cdot r^{n})^{k}=g^{km}\cdot (r^{k})^{n}} とすることにより、 k m {\displaystyle km} の暗号文を得ることができる。

準同型暗号を利用したアプリケーション

準同型性暗号には、その性質から数多くのアプリケーションがある。その代表的なものとしては、電子マネー電子投票などがある。また、暗号プロトコルの設計において多く利用される紛失通信(en:Oblivious transfer)プロトコルといったものもある。

脚注

[脚注の使い方]
  1. ^ https://www.cs.cmu.edu/~odonnell/hits09/gentry-homomorphic-encryption.pdf

外部リンク

  • 公開鍵暗号型の高機能暗号の研究動向: [1]
  • 量子コンピュータの脅威を考慮した高機能暗号:格子問題に基づく準同型暗号とその応用: [2]