JP2005084568A - セキュリティ方法、セキュリティ装置及びセキュリティプログラム - Google Patents

セキュリティ方法、セキュリティ装置及びセキュリティプログラム Download PDF

Info

Publication number
JP2005084568A
JP2005084568A JP2003319251A JP2003319251A JP2005084568A JP 2005084568 A JP2005084568 A JP 2005084568A JP 2003319251 A JP2003319251 A JP 2003319251A JP 2003319251 A JP2003319251 A JP 2003319251A JP 2005084568 A JP2005084568 A JP 2005084568A
Authority
JP
Japan
Prior art keywords
security
ciphertext
security device
secret key
encryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003319251A
Other languages
English (en)
Inventor
Koji Senda
浩司 千田
Takashi Fujimura
考 藤村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2003319251A priority Critical patent/JP2005084568A/ja
Publication of JP2005084568A publication Critical patent/JP2005084568A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 任意の2つの暗号文を加算、乗算した値が、それら暗号文に対応する平文を加算、乗算した値の暗号文となり、かつ安全で実用的な暗号アルゴリズムを提供する。
【解決手段】 合成数Nと互いに素な0以上N未満の整数を秘密鍵rとし、自然数のパラメータdを決定する。そして、平分mに対し、m=Σi=0 d ai mod Nを満たすa(i=0,…,d)を選択し、C=fm,r(X)=Σi=1 d airiXi mod ZN[X]に従って暗号文Cを算出する。
その後、この暗号文Cにr-1を代入して(fm,r(r-1))復号を行う。
【選択図】 図4

Description

この発明は、情報セキュリティ技術の基盤となる暗号アルゴリズム、及びそれを用いた暗号応用プロトコルに関する。
現在、RSA暗号(例えば、非特許文献1参照。)、Paillier暗号(例えば、非特許文献2参照。)、Domingo-Ferrer暗号(例えば、非特許文献3参照。)等のさまざまな暗号アルゴリズムが提唱されている。
ここでRSA暗号は、E(a)E(b)=E(ab)が成り立つ公開鍵暗号である。また、Paillier暗号は、E(a)E(b)=E(a+b)が成り立つ公開鍵暗号である。一方、Domingo-Ferrer暗号は、E(a)+E(b)=E(a+b)かつE(a)E(b)=E(ab)が成り立つ共通鍵暗号である。なおa,bは任意の平文、Eは暗号関数である。即ちE(a),E(b)は、それぞれa,bの暗号文を意味するものとする。
R. L. Rivest, A. Shamir, and L. Adleman, "A method for obtaining digital signatures and public-key cryptosystems," Communications of the ACM, Vol. 21, No. 2, pp. 120--126, Feb. 1978. P. Paillier, ‘’Public-key cryptosystems based on composite degree residuosity classes," J. Stern (Ed.), EUROCRYPT '99, LNCS 1592, Springer-Verlag, pp. 223--238, 1999. J. Domingo-Ferrer, "A provably secure additive and multiplicative privacy homomorphism," A. H. Chan and V. Gligor (Eds.), 5th Information Security Conference 2002 (ISC2002), LNCS 2433, Springer-Verlag, pp. 471--483, 2002. D. Wagner, "Cryptanalysis of an algebraic privacy homomorphism," In Proc. of 6th Information Security Conference (ISC '03), Oct. 2003. (Available at http://www.cs.berkeley.edu/~daw/papers/)
しかし、従来、a,bを知る事無く、E(a),E(b)からE(a+b)とE(ab)を実用的な時間内に求めることができ、なおかつ安全性が高い暗号アルゴリズムは存在していなかった。
例えば、RSA暗号に関し、E(a),E(b)からa,bを知る事無くE(a+b)を求める方法は知られていない。またPaillier暗号については、E(a),E(b)からa,bを知る事無くE(ab)を求める方法は知られていない。RSA或いはPaillier 暗号同様の性質を持つ公開鍵暗号方式は他にも幾つか知られているが、それらについてもやはりE(a),E(b)からa,bを知る事無くE(a+b)とE(ab)の両方を求める方法は知られていない。
一方、共通鍵暗号であるDomingo-Ferrer 暗号は、E(a)+E(b)=E(a+b)かつE(a)E(b)=E(ab)が成り立つが、Wagnerによって、安全性に関する問題点が指摘される(例えば、非特許文献4参照。)等、安全性の面で十分でない。
本発明は、このような点に鑑みてなされたものであり、a,bを知る事無く、E(a),E(b)からE(a+b)とE(ab)を実用的な時間内に求めることができ、なおかつ安全性が高い暗号アルゴリズムを提供することを目的とする。
この発明では上記課題を解決するために、第1のセキュリティ装置において、合成数Nを抽出し、Nと互いに素な0以上N未満の整数である秘密鍵rを抽出し、暗号化対象mを特定する。そして、自然数のパラメータdを決定し、
Figure 2005084568
に従って算出する。
その後、暗号文Cを、
Figure 2005084568
に従って算出する。なお、Z[X]は、Nを法とした剰余類を係数とする変数Xの多項式を意味する。
また、第2のセキュリティ装置において、この暗号文Cにr-1を代入し(fm,r(r-1))、その復号を行う。
ここで、例えば、平文m,mから上述の暗号処理によって得られた暗号文をそれぞれC1=fm1,r(X) mod ZN[X]、C2=fm2,r(X) mod ZN[X]とすると、これらの暗号文の和はC1+C2=fm1,r(X)+fm2,r(X) mod ZN[X]となり、積はC1C2=fm1,r(X)fm2,r(X) mod ZN[X]となる。そして、後述のように、暗号文の和C1+C2、及び積C1C2の復号結果は、それぞれm1+m2 mod N、m1m2mod Nとなる。
また、上述のNは合成数であり、本発明の安全性は、その素因数分解の困難性に基づいている(詳細は後述)。これは現在多くの暗号方式の安全性の根拠となっているものである。
本発明では、平文a、bの暗号文E(a)、E(b)の和E(a)+E(b)、及び積E(a)E(b)の復号結果が、それぞれa+b mod N、ab mod Nとなる。つまり、E(a)+E(b)=E(a+b)、E(a)E(b)=E(ab)が成立する。よって、a,bを知る事無く、E(a)、E(b)からE(a+b)とE(ab)の両方を求めることができる。
また、本発明の暗号アルゴリズムの安全性は、素因数分解問題に基づいており、十分な安全性を有しているといえる。
以下、この発明の最良の実施の形態を説明する。
〔アルゴリズム〕
最初に、この形態の共通鍵暗号アルゴリズムについて説明する。なお、この説明では、暗号装置(「第1のセキュリティ装置」に相当)において平文mを暗号化し、その暗号文Cをインターネット等の安全でないネットワークを通じて復号装置に送信し、この復号装置(「第2のセキュリティ装置」に相当)で復号を行う場合を例にとる。
まず、p,qを相異なる大きな素数、NをN=pqなる合成数とし、0以上N未満の整数の中から平文mを選ぶ。ここで、Nは公開として良く、少なくとも平文mの取得を目的とする復号装置はNを知ることができるようにする。
そして、暗号装置は、0以上N未満でかつNと互いに素な整数の中から秘密鍵rを選び、この秘密鍵rは、オフライン或いは公開鍵暗号を用いた方式等により、予め暗号装置、復号装置間で他に知られること無く安全に共有される。
そして、暗号装置は、平文mを復号装置だけが取得できるように、以下の操作によって
平文mの暗号文Cを作成する。
1. 自然数のパラメータdを決定する。
2. 0以上N未満の整数の中からd個の適当な値a(i=1,…,d)を選ぶ(「加算項」に相当)。
3. 上述の式(1)を計算し、a0(「加算項」に相当)を求める。
4. 上述の式(2)を計算し、暗号文Cを求める。
そして、この多項式表現された平文mの暗号文Cを復号装置に送信する。なお、パラメータdは自然数であり、dが大きい程処理量が増すが、その分安全性も向上していくため、dの大きさは用途に合わせて適切に選ぶ必要がある。
一方、復号装置は、受信した暗号文C=fm,r(X)に対し、秘密鍵rを用いて復号処理fm,r(r-1)modN=mを行う。これにより復号装置は平文mを取得でき、平文mは暗号装置から復号装置へと安全に送信されたことになる。
〔本アルゴリズムの特徴〕
次に、この形態の共通鍵暗号アルゴリズムが備える特徴について説明する。
今、2つの平文m,mから、この暗号処理により得られる2つの暗号文C,Cを、C1=fm1,r(X)=a0,1+a1,1rX+a2,1r2X2mod ZN[X]、C2=fm2,r(X)=a0,2+a1,2rX+a2,2r2X2mod ZN[X]とする。即ち暗号文のパラメータdは共にd=2である。なお、添字の「m1」「m2」は、それぞれ「m」「m」を示す。
ここで、2つの暗号文C,Cの和が、C1+C2=fm1,r(X)+fm2,r(X)=(a0,1+a0,2)+(a1,1+a1,2)rX+(a2,1+a2,2)r2X2mod ZN[X]=fm1+m2,r(X)となることは明らかである。これは、暗号文C,Cから、平文m,mを知る事無く、その和m1+m2の暗号文fm1+m2,r(X)を求めることができることを意味している。
また、2つの暗号文C,Cの積は、C1C2=fm1,r(X)fm2,r(X)=(a0,1+a1,1rX+a2,1r2X2)(a0,2+a1,2rX+a2,2r2X2) mod ZN[X]となり、復号結果の積は、fm1,r(r-1)fm2,r(r-1)=(a0,1+a1,1rr-1+a2,1r2r-2)(a0,2+a1,2rr-1+a2,2r2r-2) mod ZN[r-1]=(a0,1+a1,1+a2,1)(a0,2+a1,2+a2,2) mod Nとなる。ここで、この例のようにd=2の場合、上述の式(1)から、m1=a0,1+a1,1+a2,1、m2= a0,2+a1,2+a2,2となり、fm1,r(r-1)fm2,r(r-1)=m1m2mod N=fm1m2,r(r-1)が成立していることが分かる。これにより、C1C2=fm1,r(X)fm2,r(X)=fm1m2,r(X)が成立していることも分かり、暗号文C,Cから、平文m,mを知る事無く、その積m1m2の暗号文fm1m2,r(X)を求めることができることが分かる。
以上の特徴は、2つの暗号文C,Cの次数が異なる場合についても同様である。例えば、C1=fm1,r(X)=a0,1+a1,1rX mod ZN[X](d=1に相当)、C2=fm2,r(X)=a0,2+a1,2rX+a2,2r2X2mod ZN[X](d=2に相当)の場合、C1+C2=fm1,r(X)+fm2,r(X)=(a0,1+a0,2)+(a1,1+a1,2)rX+a2,2r2X2mod ZN[X]=fm1+m2,r(X)となる。また、C1C2=fm1,r(X)fm2,r(X)=(a0,1+a1,1rX)(a0,2+a1,2rX+a2,2r2X2) mod ZN[X]となり、復号結果の積は、fm1,r(r-1)fm2,r(r-1)=(a0,1+a1,1rr-1)(a0,2+a1,2rr-1+a2,2r2r-2) mod ZN[r-1]=(a0,1+a1,1)(a0,2+a1,2+a2,2) mod Nとなる。ここで、上述の式(1)から、m1=a0,1+a1,1(d=1)、m2= a0,2+a1,2+a2,2(d=2)となり、fm1,r(r-1)fm2,r(r-1)=m1m2mod N=fm1m2,r(r-1)が成立していることが分かる。これにより、C1C2=fm1,r(X)fm2,r(X)=fm1m2,r(X)が成立していることが分かる。
さらに、暗号文Cから、平文mを知る事無く、任意のα∈Z(0以上N未満の整数の元)に対する平文α+mやαmの暗号文を求めることもできる。即ち、例えば、C=fm,r(X)=a0+a1rX+a2r2X2mod ZN[X]とするとα+C=α+fm,r(X)=α+a0+a1rX+a2r2X2mod ZN[X]=fα+m,r(X)となり、αC=αfm,r(X)=αa0+αa1rX+αa2r2X2mod ZN[X]= fαm,r(X)となることは明らかである。
〔安全性〕
次に本形態の共通鍵暗号アルゴリズムの安全性について述べる。
まず、Nを素因数分解困難な合成数とする理由は以下による。
今、一組の平文・暗号文の組(m,C)が与えられたとする。すると以下の関係を満たすp(i=0,1,…,d)が得られる。
Figure 2005084568
つまり、暗号文Cが与えられた場合、上述の式(2)より、暗号文Cの定数項aを知ることができる。さらに平文mが与えられた場合、上述の式(1)に、この平文mと暗号文Cの定数項aを代入することにより、上述の式(3)を得ることができる。また、暗号文Cが与えられた場合、上述の式(2)より、各係数を知ることができ、上述の式(4)を得ることができる。
ここで、上述の式(4)から、
ai=pi/ri mod N・・・(5)
が成り立つ。
また、上述の式(3)(5)から、
p0=p1/r + p2/r2 + … +pd/rdmod N
p0rd=p1rd-1 + p2rd-2 + … +pdmod N
Figure 2005084568
が得られる。
次に、d−1組の平文・暗号文の組(m,C)が与えられたとする。
この場合、p(i=0,1,…,d)の組が異なる式(6)がd−1個得られる。そして、このd−1個の式(6)にガウスの消去法を適用すると、rについての2次式αr2+βr+γ mod N=0を得ることができる。ここで、もしNが素数であれば、この2次式を容易に解くことができることが知られている。また、Nが合成数であっても、その素因数が分かれば中国人剰余定理より容易にrを求めることができる。しかし、一般に合成数の素因数分解は困難であり、このような合成数Nであれば、rを求める方法は自明ではなく、効率的な解法は知られていない。そのため、秘密鍵rが攻撃者に知られないことを期待でき、この共通鍵暗号アルゴリズムの安全性も期待できる。
一方、d組の平文・暗号文の組(m,C)が攻撃者に知られた場合、この攻撃者は、p(i=0,1,…,d)の組が異なるd個の式(6)を得ることができる。この場合、これらの式にガウスの消去法を適用すると、rについての1次式を求めることができ、攻撃者は、Nの素因数を知ることなく、容易にrを求めることができる。よって、上述の自然数のパラメータdは、安全でない暗号通信を行うと予想される回数よりも大きな値とすることが望ましい。これにより、d組以上の平文・暗号文の組(m,C)が攻撃者に知られ、安全性が低下してしまうことを防止できるからである。また、dが小さい程、暗号装置の計算処理量も小さく、処理の高速化等が期待できるため、dは安全でない暗号通信を行うと予想される回数+1であることがより望ましく、現実的には、暗号装置が決定したパラメータdに対し、暗号装置が秘密鍵rを用いて高々d−1回の暗号通信しか行わないことが望ましい。この場合、この形態の暗号アルゴリズムの安全性は、素因数分解問題に基づいており、十分な安全性を有しているといえる。
また、別のパラメータdの設定方法として、安全でない暗号通信を行った回数に、自然数を加算した値をパラメータdとすることとしてもよい。この際、パラメータdは、例えば、暗号通信ごとに再設定されるものとする。さらに、暗号装置の計算処理量等を考慮し、安全でない暗号通信を行った回数+1をパラメータdとし、暗号通信ごとにパラメータdを再設定することとしてもよい。
〔第1の実施の形態〕
次に、本発明における第1の実施の形態について説明する。
この形態は、暗号装置と復号装置が、インターネット等の安全でないネットワーク上で平文mを暗号通信する例である。
図1は、この形態のセキュリティシステム1の全体構成を例示した図である。また、図2は暗号装置20の機能構成を、図3の(a)は外部機関装置10の機能構成を、図3の(b)は復号装置30の機能構成を、それぞれ例示した図である。なお、外部機関装置10、暗号装置20及び復号装置30は、CPU(Central Processing Unit)、メモリ、バス等からなる公知のコンピュータに、所定のプログラムを実行させることによって構成されるものである。また、暗号装置20、復号装置30は、それぞれ、第1のセキュリティ装置、第2のセキュリティ装置に相当する。また、図4は、この形態におけるセキュリティ方法の処理手順を説明するためのフローチャートである。
以下、これらの図を用いて、この形態の構成及び処理の説明を行う。
外部機関装置10はまず以下の処理を行う。
<ステップS1>
素数生成部11で、フェルマーテスト等を用いて相異なる大きな素数p,qを生成し、合成数生成部12に送る。
<ステップS2>
合成数生成部12で、合成数N=pqを計算し、合成数記憶部13に送り、そこに記憶させる。
なお、3つの相異なる素数p,p,pの積N=p等によって、合成数Nを生成することとしてもよく、適当に選んだN’が容易に素因数分解できず、かつ素数判定テストにより合成数であることが分かった場合に、このN’を合成数Nとすることとしてもよい。要は、合成数Nは、想定される攻撃者が素因数分解困難となるような値であれば良い(以下同様)。
<ステップS3>
合成数Nを公開する。ここで合成数Nを公開情報とするために、例えば外部機関装置10が管理する誰でも閲覧可能なWebページにNをアップロードしておけば良い。具体的には、例えば、合成数記憶部13に記憶した合成数Nを、通信部14からネットワーク40を通じて送信できるようにしておく。
なお、合成数Nを暗号装置20や復号装置30以外の外部機関装置10において生成することにより、暗号装置20或いは復号装置30が素因数分解容易な合成数Nを故意に作成するという不正を防止することができる。
次に、暗号装置20は鍵生成処理として以下の処理を行う。
<ステップS4>
外部機関装置10から公開された合成数Nを取得(抽出)する。具体的には、例えば、通信部21(「合成数抽出手段」に相当)及びネットワーク40を通じ、外部機関装置10の通信部14から出力された合成数Nを受信する。
<ステップS5>
秘密鍵生成部22(「秘密鍵抽出手段」に相当)において、通信部21から合成数Nを受け取り、0以上N未満でかつNと互いに素な整数の中から、秘密鍵としてrを適当に選ぶ(抽出する)。生成された秘密鍵rは秘密鍵記憶部23に安全に記憶される。
なお、合成数Nと互いに素な整数rを選ぶという操作は、基本的には0以上N未満の整数を適当に選べば良い。その理由は、暗号装置20は、Nの素因数p,qを知らないため、意図的にNと互いに素な整数を選ぶことができず、また、0以上N未満の整数の中から適当に選んだrがNの約数となる確率は、p,qが非常に大きいため、無視できる程小さいからである。
<ステップS6>
秘密鍵rを復号装置30と共有する。つまり、暗号装置20が生成した秘密鍵rは、他に漏れる事無く、復号装置30内の秘密鍵記憶部31にも安全に格納される。これは、暗
号装置20から復号装置30へ秘密鍵rをオフラインで受け渡す、あるいは公開鍵暗号を利用してネットワーク上で送信する(産業図書「現代暗号」岡本龍明、山本博資著 P200〜202記載のDiffile-Hellman鍵配送方式等)等で実現できる。
続いて、平文mの暗号処理として、暗号装置20は以下の処理を行う。
<ステップS7>
平文選択部24(「暗号化対象特定手段」に相当)において、通信部21から合成数Nを受け取り、0以上N未満の整数の中から平文m(「暗号化対象」に相当)を選ぶ。
なお、平文のビットサイズがN以上である場合は、例えば合成数Nから1を引いたものを1ブロックサイズとして、複数の平文mにブロック分割すれば良い。
<ステップS8>
パラメータ決定部25において、自然数のパラメータdを決定する。
なお、パラメータdの決定は、例えば、同一の秘密鍵rを用い、盗聴者や第三者に対して平文を無視出来ない確率で推定されてしまう(例えばmは0か1のどちらかである等)ような暗号通信を行った回数dmaxに依存し、d>dmaxとなるようなdが選ばれる。
但しdを大きくする程、暗号処理量、復号処理量、通信量が増大していくことは明らかなので、rを用いて暗号通信を行う回数を予め想定しておき、その上で適切なdを選ぶのが好ましい。例えば、dmaxを予め想定してd=dmax+1とする。
<ステップS9>
整数選択部26(「加算項選択手段」に相当)において、パラメータ決定部25からパラメータdを受け取り、通信部21から合成数Nを受け取り、0以上N未満の整数の中からd個の適当な値(「加算項」に相当)ai(i=1,…,d)を選ぶ。
<ステップS10>
加減算部27(「加算項選択手段」に相当)において、平文選択部24から平文mを、通信部21から合成数Nを、パラメータ決定部25からパラメータdを、整数選択部26から加算項aiを、それぞれ受け取り、上述の式(1)に従い加算項aを算出する。
<ステップS11>
暗号化部28において、秘密鍵記憶部23から秘密鍵rを抽出し、加減算部27から加算項aを受け取り、整数選択部26から加算項aiを受け取り、パラメータ決定部25からパラメータdを受け取り、通信部21から合成数Nを受け取り、上述の式(2)に従い、暗号文Cを算出する。
<ステップS12>
上記で得られた暗号文Cは通信部21に送られ、そこからネットワーク40を介し、復号装置30に送信(出力)される。
続いて、暗号文Cの復号処理として、暗号装置30は以下の処理を行う。
<ステップS13>
送信された暗号文C=fm,r(X)は、復号装置30の通信部32(「暗号文入力手段」に相当)で受信され(入力を受け付け)、復号部33に送られる。
<ステップS14>
また、通信部32(「合成数抽出手段」に相当)は、ネットワーク40を介し、外部機関装置10の通信部14から送信された合成数Nも受信(抽出)し、復号部33に送る。復号部33(「秘密鍵抽出手段」に相当)は、さらに秘密鍵記憶部31から秘密鍵rを抽出し、fm,r(r-1) mod N=mを計算する(暗号文にr-1を代入する)ことで、暗号文Cの復号結果mを得る。これにより、復号装置30は平文mを取得することができた。
〔第2の実施の形態〕
次に、本発明における第2の実施の形態について説明する。
この形態は、秘密の値を保有する依頼装置が、代理演算装置にその秘密の値を知られること無く代理演算させ、更にその演算結果も代理演算装置に知られないような秘匿性の高い依頼計算方法を実現するものである。
図5は、この形態のセキュリティシステム100の全体構成を例示した図である。また
、図6は、公知のコンピュータ上で、所定のプログラムを実行させることによって構成される依頼装置110(「第1のセキュリティ装置」に相当)の機能構成を、図7は代理演算装置130(「第2のセキュリティ装置」に相当)の機能構成を、それぞれ例示した図である。また、図8は、この形態におけるセキュリティ方法の処理手順を説明するためのフローチャートである。
以下、これらの図を用いて、この形態の構成及び処理の説明を行う。
この形態では、任意な多項式関数(「代理演算関数」に相当)gを保有する代理演算装置130と、k個の秘密の値m(i=1,…,k)を持ち、g(m1,…,mk)の取得を目的とする依頼装置110が存在し、依頼装置110は、k個の値mとそれを入力とした演算結果g(m1,…,mk)を代理演算装置130に知られたくないものとする。
なお、gは依頼装置110に知られたくないような秘密の多項式関数、又は依頼装置110の計算資源等の理由から依頼装置110が外部の装置に演算を依頼する必要のある多項式関数であるとする。ここで例えばgが署名関数であれば、これはブラインド署名と呼ばれる技術に他ならない(例えば、産業図書「現代暗号」岡本龍明、山本博資著 P184〜186参照。)。
依頼装置110は、m(i=1,…,k)を暗号化するため、まず以下の処理を行う。
<ステップS20>
素数生成部111において、相異なる大きな素数p,qを生成し、合成数生成部112に送る。
<ステップS21>
合成数生成部112において、合成数N=pqを計算する。
<ステップS22>
秘密鍵生成部113(「秘密鍵抽出手段」に相当)において、合成数生成部112から合成数Nを抽出し、0以上N未満でかつNと互いに素な整数の中から、秘密鍵としてrを適当に選ぶ(抽出する)。秘密鍵rは秘密鍵記憶部114に送られ、そこで記憶される。
<ステップS23>
平文選択部115(「暗号化対象特定手段」に相当)において、合成数生成部112から合成数Nを抽出し、0以上N未満の整数の中から平文m(i=1,…,k)(「暗号化対象」に相当)を選ぶ。
<ステップS24>
パラメータ決定部116において、自然数のパラメータdを決定する。
ここで、代理演算装置130がk個の値mのうちk’個までの値を無視出来ない確率で推定可能である場合、秘密鍵rを秘匿するため、第1の実施の形態で説明した通り、パラメータdをd=k'+1とすることが望ましい。なお、以下ではk'=k、即ち代理演算装置130が、k次ベクトル(m1,…,mk)の値を無視出来ない確率で推定可能であるとする(d=k+1)。
<ステップS25>
制御部122において、iに1を代入する。
<ステップS26>
整数選択部117において、パラメータ決定部116からパラメータdを受け取り、合成数生成部112から合成数Nを抽出し、0以上N未満の整数の中からd個の適当な値ai,j(j=1,…,d)を選ぶ。
<ステップS27>
加減算部118において、平文選択部115から平文mを、合成数生成部112から合成数Nを、パラメータ決定部116からパラメータdを、整数選択部117から加算項ai,jを、それぞれ受け取り、
Figure 2005084568
に従い加算項ai,0を算出する。
<ステップS28>
暗号化部119において、秘密鍵記憶部114から秘密鍵rを抽出し、加減算部118から加算項ai,0を受け取り、整数選択部117から加算項ai、jを受け取り、パラメータ決定部116からパラメータdを受け取り、合成数生成部112から合成数Nを受け取り、
Figure 2005084568
に従い、暗号文Cを算出する。
<ステップS29>
制御部122において、i=kであるか否かを判断し、i=kであればステップS31に進み、i=kでなければステップS30に進む。
<ステップS30>
制御部122において、iにi+1を代入し、ステップS26に戻る。
<ステップS31>
上記で得られたmの暗号文C=fmi,r(X)(i=1,…,k)は通信部120に送られ、そこからネットワーク140を介し、代理演算装置130に送信される(添え字の「mi」は「m」を意味する。)。
続いて、代理演算処理として、代理演算装置130は以下の処理を行う。
<ステップS32>
通信部131において、暗号文C=fmi,r(X)(i=1,…,k)を受信し(入力を受け付け)、受信した暗号文Cを関数演算部132に送る。
<ステップS33>
関数演算部132において、代入結果G(X)=g(C1,…,Ck)を計算(暗号文Cを代理演算関数に代入)し、通信部131に送る。ここで、代理演算装置130は、平文mの暗号文Cしか受け取っていないため、暗号文Cを復号出来なければ、平文mは代理演算装置130に知られないことになる。
<ステップS34>
通信部131において、ネットワーク140を通じ、代入結果G(X)を依頼装置110に返信(出力)する。
<ステップS35>
続いて、復号処理として、依頼装置110は、通信部120において、代入結果G(X)を受信し(入力を受け付け)、復号部121に送る。そして復号部121において、秘密鍵記憶部114から秘密鍵rを抽出し、代入結果G(X)の復号結果G(r-1)=g(m1,…,mk)を算出する。
ここで、G(r-1)=g(m1,…,mk)が成り立つことは、前述の〔本アルゴリズムの特徴〕で示した本形態の暗号アルゴリズムの性質から明らかである。
また、多項式関数gは、h次k変数多項式
Figure 2005084568
として一般化できる。この場合、多項式関数gには、最大で(h+k)!/(h!k!)個の係数αq1,…,qkが存在することになる。
これに対し、d=k+1の場合、代入結果G(X)は高々h(k+1)次の多項式となり、高々h(k+1)+1個の係数しか持たない。従って、k,hが大きければ、代入結果G(X)のデータサイズは、元々の多項式関数g(Y1,…,Yk)のデータサイズよりも非常に小さくなる。つまり、本形態で示した方法は、依頼装置110のメモリが非常に限られている場合等に特に有効であるといえる。
次に、上記の例に対し更にデータサイズを抑える方法を述べる。
代入結果G(X)は、
Figure 2005084568
と書ける。
そして、G(r-1)=g(m1,…,mk) mod Nであるから、
Figure 2005084568
が成り立つ。
このことから、代理演算装置130はG(X)を計算後、まずG(X)の定数項bを依頼装置110に送信し、それを受信した依頼装置110は、A←bとしてAを保存する。次に、代理演算装置130はG(X)の1次の項の係数brを依頼装置110に送信し、それを受信した依頼装置110は、b1r/r=b1を計算し、A←A+b1modNとしてAを保存する。この操作を繰り返していき、最終的に代理演算装置130は、G(X)のu次の項の係数bを依頼装置110に送信し、それを受信した依頼装置110は、buru/ru=buを計算し、A←A+bumodNとすれば、
Figure 2005084568
を得ることができる。この手法により、明らかに依頼装置110の必要とするメモリを削減することができる。
〔第3の実施の形態〕
次に、本発明における第3の実施の形態について説明する。
この形態は、ある秘密の平文を保有する依頼装置が、その平文の暗号処理を代理暗号装置に依頼し、この平文を代理暗号装置に知られること無く、暗号文を取得するものである。
前述の〔本アルゴリズムの特徴〕で述べたように、a,bを任意の平文、Eを本形態の暗号関数とした場合、E(a)+E(b)=E(a+b),E(a)E(b)=E(ab)となるためにはa,bの暗号処理に用いる秘密鍵(すなわちr)が同一でなければならない。例えば、a,b,cがそれぞれ依頼装置A,依頼装置B,依頼装置Cの保有する平文であり、自身の平文は知られたくないがabc+a+b+cは全依頼装置が知りたいとしたとき、本形態の暗号アルゴリズムを用いれば、E(a),E(b),E(c)からE(a)E(b)E(c)+E(a)+E(b)+E(c)=E(abc+a+b+c)を計算することができる。しかし、この場合、暗号処理するための秘密鍵は同一でなければならず、少なくとも秘密鍵を保有する装置に対してはa,b,cを秘匿とすることはできない。
この問題を解決するために、本実施の形態では、依頼装置が代理暗号装置に平文を与え
る事無く暗号処理を依頼する。この場合、各依頼装置が取得する暗号文は、全て代理暗号装置の秘密鍵で暗号化したものとなる。これにより、依頼装置A,依頼装置B,依頼装置Cは、秘密鍵の内容を知ることなく、それぞれE(a),E(b),E(c)を取得でき、それらE(a),E(b),E(c)からE(a)E(b)E(c)+E(a)+E(b)+E(c)=E(abc+a+b+c)を計算することが可能となる。
この単純な方法として、(a)依頼装置が自身の平文mを選択し、0以上N未満の整数の中から適当な値αを選び、α+m mod Nを計算してそれを代理暗号装置に送信し、(b)代理暗号装置が、この平文α+mに対して、秘密鍵rを用いて上述の式(1)により暗号文fα+m,r(X)を計算し、それを依頼装置に返信し、(c)依頼装置が、fα+m,r(X)-αを計算してmの暗号文fm,r(X)を得る、という方法も採れる。
しかし、fα+m,r(X)とfm,r(X)は定数項を除き等しい。そのため、代理暗号装置は、これら2つの暗号文が対応しており、定数項の差がαであることが高い確率で分かる。そして、代理暗号装置は、α+mとfα+m,r(X)が対応していることを知ってしまえば、fα+m,r(X)-αにより容易にmを求めることができる。
また、(a)依頼装置が自身の平文mを選択し、0以上N未満の整数の中から適当な値αを選び、αm mod Nを計算してそれを代理暗号装置に送信し、(b)代理暗号装置が、この平文αmに対して、秘密鍵rを用いて上述の式(1)により暗号文fαm,r(X)を計算し、それを依頼装置に返信し、(c)依頼装置が、fαm,r(X)×α-1を計算してmの暗号文fm,r(X)を得る、という方法も採れる。
しかしこの場合は、fαm,r(X)とfm,r(X)が定数倍の関係を持っている。そのため、代理暗号装置は、これら2つの暗号文が対応しており、これらがα倍の関係にあることが高い確率で分かる。そして、代理暗号装置は、αmとfαm,r(X)が対応していることを知ってしまえば、fαm,r(X)×α-1により、やはり容易にmを求めることができる。
以降本形態では、代理暗号装置に対してもmを秘匿とすることを目的とした別の方法を与える。
図9は、この形態のセキュリティシステム200の全体構成を例示した図である。また、図10は、公知のコンピュータ上で、所定のプログラムを実行させることによって構成される依頼装置220(「第1のセキュリティ装置」に相当)の機能構成を、図11は代理暗号装置230(「第2のセキュリティ装置」に相当)の機能構成を、それぞれ例示した図である。また、図12〜14は、この形態におけるセキュリティ方法の処理手順を説明するためのフローチャートである。なお、外部機関装置210の構成・処理は、第1の実施の形態と同様である(図3の(a))。
以下、これらの図を用いて、この形態の構成及び処理の説明を行う。
外部機関装置210はまず以下の処理を行う。
<ステップS40>
相異なる大きな素数p,qを生成する。
<ステップS41>
合成数N=pqを計算する。
<ステップS42>
合成数Nを公開する。
次に代理暗号装置230は以下の処理を行う。
<ステップS43>
通信部231において、Nを受信する。
<ステップS44>
素数生成部232において、相異なる大きな素数p',q'を生成する。
<ステップS45>
合成数生成部233において、N'=p'q'を計算する。
<ステップS46>
合成数生成部234において、合成数生成部233からN'を受け取り、通信部231からNを受け取り、合成数N’’=NN'を計算する。この合成数N’’は合成数記憶部235に記憶される。
<ステップS47>
秘密鍵生成部236において、合成数記憶部235から合成数N’’を抽出し、0以上N’’未満でかつN’’と互いに素な整数の中から、秘密鍵としてtを適当に選ぶ。
<ステップS48>
N’’を公開する。即ち、合成数記憶部235に記憶された合成数N’’を、通信部231及びネットワーク250を通じて送信可能とする。
なお、上記のように合成数をN’’=NN'としたのは、外部機関装置210に対しても代理暗号装置230に対しても合成数に対する素因数分解を困難とするためである。即ちこの合成数を、複数の装置でそれぞれ生成された合成数の積とすることにより、各装置が素因数分解容易な合成数を故意に作成するといった不正を防止することができる。
次に依頼装置220は以下の処理を行う。
<ステップS49>
通信部221において、代理暗号装置230から送信された合成数N’’を受信する。
<ステップS50>
秘密鍵生成部222において、通信部221から合成数N’’を受け取り、0以上N’’未満でかつN’’と互いに素な整数の中から、秘密鍵としてrを適当に選ぶ。選択された秘密鍵rは、秘密鍵記憶部223に送られ、そこで記憶される。
<ステップS51>
平文選択部224において、通信部221から合成数N’’を受け取り、0以上N’’未満の整数の中から平文mを選ぶ。
<ステップS52>
パラメータ決定部225において、自然数のパラメータdを決定する。
<ステップS53>
整数選択部226において、通信部221から合成数N’’を受け取り、0以上N’’未満の整数の中からd個の適当な値ai(i=1,…,d)を選ぶ。
<ステップS54>
加減算部227において、平文選択部224から平文mを、通信部221から合成数N’’を、パラメータ決定部225からパラメータdを、整数選択部226から加算項aiを、それぞれ受け取り、
Figure 2005084568
に従い加算項aを算出する。
<ステップS55>
暗号化部228において、秘密鍵記憶部223から秘密鍵rを抽出し、加減算部227から加算項aを受け取り、整数選択部226から加算項aiを受け取り、パラメータ決定部225からパラメータdを受け取り、通信部221から合成数N’’を受け取り、
Figure 2005084568
に従い、暗号文Cを算出する。
<ステップS56>
算出された暗号文Cは、通信部221に送られ、ネットワーク250を通じ、代理暗号装置230に送信される。
依頼装置220から暗号文Cが送られた代理暗号装置230は、以下の処理を行う。
<ステップS57>
通信部231において、暗号文C=fm,r(X)を受信する(入力を受け付ける)。
<ステップS58>
パラメータ決定部238において、パラメータd’を決定する。
<ステップS59>
多項式選択部239(「加算項選択手段」に相当)において、パラメータ決定部238からパラメータd’を受け取り、合成数記憶部235から合成数N’’を抽出し、0以上N’’未満の整数を各項の係数とする一変数d’次多項式の中から、d’個の適当な多項式b(X)(i=1,…,d’)(「加算項」に相当)を選ぶ。
<ステップS60>
加減算部240(「加算項選択手段」に相当)において、通信部231から暗号文Cを、合成数記憶部235から合成数N’’を、パラメータ決定部238からパラメータd’を、多項式選択部239から加算項b(X)を、それぞれ受け取り、
Figure 2005084568
に従って加算項b(X)を算出する。
<ステップS61>
暗号化部241において、秘密鍵記憶部237から秘密鍵tを抽出し、加減算部240から加算項b(X)を受け取り、多項式選択部239から加算項b(X)を受け取り、パラメータ決定部238からパラメータd’を受け取り、合成数記憶部235から合成数N’’を受け取り、
Figure 2005084568
に従い、暗号文C’を算出する。
<ステップS62>
算出された暗号文C’は通信部231に送られ、そこからネットワーク250を通じて、依頼装置に返信(出力)される。
次に、依頼装置220は、以下の処理を行う。
<ステップS63>
通信部221において、暗号文C’を受信する(入力を受け付ける)。
<ステップS64>
復号部229において、通信部221から暗号文C’を受け取り、秘密鍵記憶部223から秘密鍵rを抽出し、暗号文C’の秘密鍵rを用いた復号処理F(Y)=fC,t(r-1,Y)を行い、復号結果F(Y)を得る。するとF(Y)は、平文mを、代理暗号装置230の秘密鍵tで暗号処理した暗号文fm,t(Y)とみることができる。
ここで、代理暗号装置230が、F(Y)を復号せずにC’とF(Y)の対応関係を判定することは容易でない。よって、代理暗号装置230が暗号文C’からF(Y)を特定し、その復号によって平文mを取得することは困難である。
最後に、F(Y)が平文mを秘密鍵tで暗号処理した暗号文であること、即ち、F(t-1)=m
mod N’’となることを確認しておく。
まず、F(Y)=fC,t(r-1,Y)について、上述の式(9)より、
Figure 2005084568
が成り立つ。
また、上述の式(8)より、
Figure 2005084568
であり、上述の式(7)より、暗号文CのXにr-1を代入した復号結果はfm,r(r-1)=m mod N’’である。よって、式(11)より、
Figure 2005084568
も成り立つ。
よって、上述の式(10)(12)より、
Figure 2005084568
が成り立つことが分かる。
〔第4の実施の形態〕
次に、本発明における第4の実施の形態について説明する。
この形態は、代理暗号装置の秘密鍵で暗号処理された暗号文を保有する依頼装置が、代理復号装置にその復号処理を依頼し、その代理復号装置に平文を知られること無く、この依頼装置が平文を取得するものである。
図15は、この形態のセキュリティシステム300の全体構成を例示した図である。また、図16は、公知のコンピュータ上で、所定のプログラムを実行させることによって構成される依頼装置310(「第1のセキュリティ装置」に相当)の機能構成を、図17は代理復号装置330(「第2のセキュリティ装置」に相当)の機能構成を、それぞれ例示した図である。また、図18及び19は、この形態におけるセキュリティ方法の処理手順を説明するためのフローチャートである。なお、代理暗号装置350の構成・処理は、第3の実施の形態の代理暗号装置230と同様である(図11)。
以下、これらの図を用いて、この形態の構成及び処理の説明を行う。
依頼装置310は、例えば第3の実施の形態で取得した暗号文F(Y)=fm,t(Y)を暗号文記憶部311内に保有しており、代理復号装置330は秘密鍵記憶部331内に秘密鍵tを保有している。
まず依頼装置310は以下の処理を行う。
<ステップS70>
まず、通信部312、ネットワーク340を通じ、代理暗号装置350から公開・送信された合成数N’’を受信(抽出)する。次に、秘密鍵生成部313において、この合成数N’’を受け取り、0以上N’’未満でかつN’’と互いに素な整数の中から、秘密鍵としてrを適当に選ぶ(抽出する)。秘密鍵rは秘密鍵記憶部314に送られ、そこに記憶される。
<ステップS71>
パラメータ決定部315において、自然数のパラメータd’’を決定する。
<ステップS72>
多項式選択部316において、パラメータ決定部315からパラメータd’’を受け取り、通信部312から合成数N’’を抽出し、0以上N’’未満の整数を各項の係数とする一変数d’’次多項式の中から、d’’個の適当な多項式b’(Y)(i=1,…,d’’)を
選ぶ。
<ステップS73>
加減算部317において、暗号文記憶部311から暗号文F(Y)を、通信部312から合成数N’’を、パラメータ決定部315からパラメータd’’を、多項式選択部316から加算項b’(Y)を、それぞれ受け取り、
Figure 2005084568
に従って加算項b’0(Y)を算出する。
<ステップS74>
暗号化部318において、秘密鍵記憶部314から秘密鍵rを抽出し、加減算部317から加算項b’(Y)を受け取り、多項式選択部316から加算項b’(Y)を受け取り、パラメータ決定部315からパラメータd’’を受け取り、通信部312から合成数N’’を受け取り、
Figure 2005084568
に従い、暗号文C’’を算出する。
<ステップS75>
算出された暗号文C’’は、通信部312に送られ、ネットワーク340を通じ、代理復号装置330に送信(出力)される。
依頼装置310から暗号文C’’が送られた代理復号装置330は、以下の処理を行う。
<ステップS76>
通信部332において暗号文C’’を受信する(入力を受け付ける)。
<ステップS77>
復号部33において、通信部332から暗号文C’’を受け取り、秘密鍵記憶部331から秘密鍵tを抽出し、
Figure 2005084568
を計算する。
<ステップS78>
算出された復号結果F’(Z)は、通信部332及びネットワーク340を通じ、依頼装置310に返信(出力)される。
次に、依頼装置310は、以下の処理を行う。
<ステップS79>
通信部312において、復号結果F’(Z)を受信し(入力を受け付け)、復号部320に送る。
<ステップS80>
復号部320において、秘密鍵記憶部314から秘密鍵rを抽出し、暗号文F’(Z)に対し、秘密鍵rを用いた復号処理F’(r-1)=mを行い、平文mを得る。なお、F’(r-1)=mが成り立つことは第3の実施の形態と同様の手法で示すことができるため、ここでは説明を省略する。
〔第5の実施の形態〕
次に、本発明における第5の実施の形態について説明する。
本形態は、ある秘密の平文を保有する依頼装置が、複数の代理暗号機関装置に暗号処理を依頼し、多重暗号文を生成するものである。
図20は、この形態のセキュリティシステム400の全体構成を例示した図である。また、図21は、公知のコンピュータ上で、所定のプログラムを実行させることによって構成される代理暗号装置410(「第2のセキュリティ装置」に相当)の機能構成を、図2
2は代理暗号装置430(「第2のセキュリティ装置」に相当)の機能構成を、図23及び図24は依頼装置450(「第1のセキュリティ装置」に相当)の機能構成を、それぞれ例示した図である。また、図25〜29は、この形態におけるセキュリティ方法の処理手順を説明するためのフローチャートである。
以下、これらの図を用いて、この形態の構成及び処理の説明を行う。
今、2つの代理暗号装置410、430があるものとする。これらは依頼装置450からの依頼により暗号処理を行う。
代理暗号装置410はまず以下の処理を行う。
<ステップS90>
素数生成部411において、相異なる大きな素数p,qを生成し、合成数生成部412に送る。
<ステップS91>
合成数生成部412において、合成数NA=pqを計算し、合成数記憶部413に送り、そこで記憶させる。
<ステップS92>
NAを公開する。即ち、合成数記憶部413に格納された合成数Nを、通信部414及びネットワーク470を通じて送信可能とする。
同様に代理暗号装置430はまず以下の処理を行う。
<ステップS100>
素数生成部431において、相異なる大きな素数p’,q’を生成し、合成数生成部432に送る。
<ステップS101>
合成数生成部432において、合成数NB=p’q’を計算し、合成数記憶部433に送り、そこに記憶させる。
<ステップS102>
Nを公開する。即ち、合成数記憶部433に格納された合成数Nを、通信部434及びネットワーク470を通じて送信可能とする。
次に代理暗号装置410は以下の処理を行う。
<ステップS93>
通信部414において、代理暗号装置430より公開・送信された合成数NBを取得する。
<ステップS94>
合成数生成部415において、合成数記憶部413から合成数Nを抽出し、通信部414から合成数Nを受け取り、合成数N=NANBを計算する。生成した合成数Nは、合成数記憶部416に送られ、そこに記憶される。
<ステップS95>
Nを公開する。即ち、合成数記憶部416に格納された合成数Nを、通信部414及びネットワーク470を通じて送信可能とする。
<ステップS96>
秘密鍵生成部417において、合成数記憶部416から合成数Nを抽出し、0以上N未満でかつNと互いに素な整数の中から、秘密鍵としてrを適当に選ぶ。秘密鍵rは秘密鍵記憶部418に記憶される。
同様に代理暗号装置430は以下の処理を行う。
<ステップS103>
通信部434において、代理暗号装置410より公開・送信された合成数Nを取得する。
<ステップS104>
合成数生成部435において、合成数記憶部433から合成数Nを抽出し、通信部434から合成数Nを受け取り、合成数N=NANBを計算する。生成した合成数Nは、合成数記憶部436に送られ、そこに記憶される。
<ステップS105>
Nを公開する。即ち、合成数記憶部436に格納された合成数Nを、通信部434及びネットワーク470を通じて送信可能とする。
<ステップS106>
秘密鍵生成部437において、合成数記憶部436から合成数Nを抽出し、0以上N未満でかつNと互いに素な整数の中から、秘密鍵としてsを適当に選ぶ。秘密鍵sは秘密鍵記憶部438に記憶される。
次に依頼装置450は以下の処理を行う。
<ステップS110>
通信部451において、代理暗号装置410又は420より公開・送信された合成数Nを受信する。
<ステップS111>
秘密鍵生成部452において、通信部451から合成数Nを取得し、0以上N未満でかつNと互いに素な整数の中から、秘密鍵としてtを適当に選ぶ。秘密鍵tは秘密鍵記憶部453に送られ、そこに記憶される。
<ステップS112>
平文選択部454において、通信部451から合成数Nを取得し、0以上N未満の整数の中から平文mを選ぶ。
<ステップS113>
パラメータ決定部455において、自然数のパラメータdを決定する。
<ステップS114>
整数選択部456において、通信部451から合成数Nを受け取り、パラメータ決定部455からパラメータdを受け取り、0以上N未満の整数の中からd個の適当な値a(i=1,…,d)を選ぶ。
<ステップS115>
加減算部457において、平文選択部454から平文mを、通信部451から合成数Nを、パラメータ決定部455からパラメータdを、整数選択部456から加算項aiを、それぞれ受け取り、上述の式(1)に従い加算項aを算出する。
<ステップS116>
暗号化部458において、秘密鍵記憶部453から秘密鍵tを抽出し、加減算部457から加算項aを受け取り、整数選択部456から加算項aiを受け取り、パラメータ決定部455からパラメータdを受け取り、通信部451から合成数Nを受け取り、
Figure 2005084568
に従い、暗号文Cを算出する。
<ステップS117>
通信部451及びネットワーク470を通じ、算出された暗号文Cを代理暗号装置410に送信する。
次に代理暗号装置410は以下の処理を行う。
<ステップS118>
通信部414において、暗号文Cを受信し、加減算部421に送る。
<ステップS119>
第3の実施の形態で述べた方法(パラメータ決定部419、多項式選択部420、加減算部421及び暗号化部422におけるステップS58〜S61と同様な処理)により、暗号文Cに対し、秘密鍵記憶部418の秘密鍵rを用いて暗号処理を行い、暗号文C’=fC,r(X,Y)を生成する。
<ステップS120>
通信部414及びネットワーク470を通じ、生成された暗号文C’を依頼装置450に返信する。
次に依頼装置450は以下の処理を行う。
<ステップS121>
通信部451において、暗号文C’を受信する。
<ステップS122>
復号部459において、通信部451から暗号文C’を受け取り、秘密鍵記憶部453から秘密鍵tを抽出し、復号処理F(Y)=fC,r(t-1,Y)を行いF(Y)を得る。第3の実施の形態同様、F(Y)は平文mを秘密鍵rで暗号処理した暗号文
Figure 2005084568
とみることができる。これにより依頼装置450は代理暗号装置410の秘密鍵rを用いて暗号処理した暗号文を得ることができた。
次に依頼装置450は以下の処理を行う。
<ステップS123>
秘密鍵生成部460において、通信部451から合成数Nを受け取り、0以上N未満でかつNと互いに素な整数の中から、秘密鍵としてt'を適当に選ぶ。秘密鍵t’は秘密鍵記憶部461に送られ、そこで記憶される。
<ステップS124>
パラメータ決定部462において、パラメータd’’を決定する。
<ステップS125>
多項式選択部463において、パラメータ決定部462からパラメータd’’を受け取り、通信部451から合成数Nを受け取って、0以上N未満の整数を各項の係数とする一変数d’’次多項式の中から、d’’個の適当な多項式(「加算項」に相当)c(Y)(i=1,…,d’’)を選ぶ。
<ステップS126>
加減算部464において、復号部459から暗号文F(Y)を暗号化対象として受け取り、通信部451から合成数Nを受け取り、パラメータ決定部462からパラメータd’’を受け取り、多項式選択部463から加算項cを受け取って、
Figure 2005084568
に従い、加算項c0(Y)を算出する。
<ステップS127>
暗号化部465において、秘密鍵記憶部461から秘密鍵t’を抽出し、加減算部464から加算項c0(Y)を受け取り、多項式選択部463から加算項c(Y)を受け取り、パラメータ決定部462からパラメータd’’を受け取り、通信部451から合成数Nを受け取り、
Figure 2005084568
に従い、暗号文C’’を算出する。
<ステップS128>
算出された暗号文C’’は、通信部451及びネットワーク470を通じ、代理暗号装置430に送信される。
次に代理暗号装置430は、以下の処理を行う。
<ステップS129>
通信部434において、暗号文C’’を受信する。
<ステップS130>
パラメータ決定部439において、パラメータd’’’を決定する。
<ステップS131>
多項式選択部440において、パラメータ決定部439からパラメータd’’’を受け取り、合成数記憶部436から合成数Nを抽出し、0以上N未満の整数を各項の係数とする二変数d’’’次多項式の中から、d’’’個の適当な多項式(「加算項」に相当)e(X,Y)(i=1,…,d’’’)を選ぶ。
<ステップS132>
加減算部441において、通信部434から暗号文C’’を受け取り、合成数記憶部436から合成数Nを抽出し、パラメータ決定部439からパラメータd’’’を受け取り、多項式選択部440から加算項e(X,Y)を受け取って、
Figure 2005084568
に従い、加算項e(X,Y)を算出する。
<ステップS133>
暗号化部442において、秘密鍵記憶部438から秘密鍵sを抽出し、加減算部441から加算項e(X,Y)を受け取り、多項式選択部440から加算項e(X,Y)を受け取り、パラメータ決定部439からパラメータd’’’を受け取り、合成数記憶部436から合成数Nを抽出し、
Figure 2005084568
に従い、暗号文C’’’を算出する。
<ステップS134>
算出された暗号文C’’’は、通信部434及びネットワーク470を通じ、依頼装置450に返信される。
次に、依頼装置450は以下の処理を行う。
<ステップS135>
通信部451において、暗号文C’’’を受信する。
<ステップS136>
復号部466において、通信部451から、暗号文C’’’を受け取り、秘密鍵記憶部461から秘密鍵t’を抽出し、復号処理F’(Y,Z)=fC’’,s(t-1,Y,Z)を行い、復号結果F’(Y,Z)を得る。この復号結果F’(Y,Z)は、平文mを秘密鍵rで暗号処理した暗号文を、更に秘密鍵sで暗号処理した暗号文fm,(r,s)(Y,Z) mod ZN[Y,Z]とみることができる。
このように、本形態では、代理暗号装置を複数設け、秘密鍵、パラメータ及び加算項を、代理暗号装置ごとに独立して設定した。そして、代理暗号装置から依頼装置450に送信された暗号文の復号結果を、依頼装置450の暗号化対象とし、その暗号文の出力先となる代理暗号装置を変更しつつ、第3の実施の形態の処理を繰り返すこととした。これにより依頼装置450は、代理暗号装置410の秘密鍵rと代理暗号装置430の秘密鍵sを用いて暗号処理した多重暗号文を得ることができた。そして、この多重暗号文が代理暗号装置410、430の何れかに知られたとしても、各代理暗号装置410、430単独では、この代理暗号文から平文mを復号することはできない。これにより、安全性がより向上した。
なお、この例では代理暗号装置410、430が2つの場合を例に挙げたが、3つ以上の代理暗号装置がある場合でも、本質的に同じ手続きを繰り返すことで、多重に暗号化さ
れた暗号文を生成できる。
またF’(Y,Z)に対する復号処理は代理復号装置が行うことになるが、その順序は暗号処理の順序とは関係なく、どちらから行っても最終的にmを得ることができる。
更に復号処理の際に第4の実施の形態を組み合わせることで、代理復号装置に平文を知られないようにすることができる。即ち、代理復号装置(「第2のセキュリティ装置」に相当)を複数設け、代理復号装置から依頼装置(「第1のセキュリティ装置」に相当)に送信された暗号文を復号した結果を、この依頼装置の暗号化対象とし、その暗号文の出力先となる代理復号装置を変更しつつ、第4の実施の形態の処理を繰り返すことにより、この効果を得ることができる。
〔第6の実施の形態〕
次に、本発明における第6の実施の形態について説明する。
本形態は、それぞれ秘密値を保有する複数の依頼装置が、自身の秘密値を他の依頼装置に明かす事無く、それら秘密値の調和平均を取得するものである。
図30は、本形態のセキュリティシステム500の全体構成を例示した図であり、図31は、本形態のセキュリティ方法を説明するためのフローチャートである。
以下、これらの図を用いて、この形態の構成及び処理の説明を行う。なお、依頼装置511(「第2のセキュリティ装置」に相当)、代理暗号装置520(「第1のセキュリティ装置」に相当)、代理復号装置530(「第3のセキュリティ装置」に相当)が行う暗号処理や復号処理及び機能構成は、上述の実施の形態で説明したものと本質的に同様である。よって、本形態では、依頼装置511、代理暗号装置520、代理復号装置530の機能構成、処理の詳細については説明を省略する。
今、依頼装置511がV個(複数)あり、それぞれが秘密値(「提供値」に相当)m(i=1,…,V)を保有しているものとする。
このときmの調和平均Hは、
Figure 2005084568
が格納されているものとする。
以下、本形態における処理を説明する。
<ステップS140>
まず各依頼装置511は、ネットワーク540を通じ、秘密値mを代理暗号装置520に送信(出力)する。
<ステップS141>
代理暗号装置520において、各依頼装置511から送信された秘密値mを受信する(入力を受け付ける)。
<ステップS142>
次に代理暗号装置520は、受信した各秘密値mを暗号化対象として特定し、例えば、第1の実施の形態と同様な方法により、各秘密値mに対応する複数の暗号文Ci=fm,r(X) mod ZN[X]を算出する。なお、暗号処理の手順については既に説明しているものと同様であるため、説明を省略する。
<ステップS143>
算出された全ての暗号文Cは、ネットワーク540を通じ、各依頼装置511に返信(出力)される。
<ステップS144>
各依頼装置511は、全ての暗号文Cを受信し(入力を受け付け)、全暗号文Cを共有する。その後、各依頼装置511は、それぞれのメモリに格納されている上述の式(13)(14)で示される関数を抽出し、これらに暗号文Cを代入する。即ち、
Figure 2005084568
を計算する。
<ステップS145>
この算出結果M(C1,…,CV)及びM’(C1,…,CV)(「代入値」に相当)は、ネットワーク540を通じ、代理復号装置530に送信(出力)される。
<ステップS146>
代理復号装置530は、この算出結果M(C1,…,CV)及びM’(C1,…,CV)を受信し(入力を受け付け)、例えば、第1の実施の形態と同様な方法により、算出結果M(C1,…,CV)及びM’(C1,…,CV)を復号し(秘密鍵rを抽出し、算出結果M(C1,…,CV)及びM’(C1,…,CV)にr-1を代入し)、調和平均を特定する値である平文M(m1,…,mV) mod N及びM’(m1,…,mV) mod Nを算出する。なお、復号処理の手順については既に説明しているものと同様であるため、説明を省略する。
<ステップS147>
代理復号装置530は、平文M(m1,…,mV) mod N及びM’(m1,…,mV) mod Nを、ネットワーク540を通じ、依頼装置511に返信(出力)する。
<ステップS148>
依頼装置511において、平文M(m1,…,mV) mod N及びM’(m1,…,mV) mod Nを受信し(入力を受け付け)、最終的にVM(m1,…,mV)/M’(m1,…,mV)=Hを計算することで調和平均を
得ることができる。
なお、この例では依頼装置511が、秘密値mをそのまま代理暗号装置520に送ることとしたが、例えば第1の実施の形態と同様な方法により、依頼装置511が、秘密値mを暗号化し、その暗号文を代理暗号装置520に送信することとしてもよい。これにより、依頼装置511は、代理暗号装置520に対しても秘密値mを秘匿できる。
〔第7の実施の形態〕
次に、本発明における第7の実施の形態について説明する。
この形態は、関数の処理を秘匿とするものである。
図32は、この形態におけるセキュリティシステム600の全体構成を例示した図であり、図33は、公知のコンピュータに所定のプログラムを実行させることにより構成される暗号装置610(「第1のセキュリティ装置」に相当)の機能構成を、図34は多項式演算装置620(「第2のセキュリティ装置」に相当)の機能構成を、それぞれ例示した図である。また、図35は、この形態におけるセキュリティ方法を説明するためのフローチャートである。なお、暗号装置610における暗号処理や、復号装置630(「第3のセキュリティ装置」に相当)における復号処理は、第1の実施の形態等で説明したものと同様であるため、ここではその詳細を省略する。
今g(x,y)=axy+bx+cy+dを、0又は1を入力としたとき0又は1を返すような関数とする。このとき例えば(a,b,c,d)=(1,0,0,0)であれば、g(x,y)はANDゲートを表す関数であり、(1,-1,-1,1)、(-2,1,1,0)であれば、それぞれNORゲート、XORゲートを表す関数である。即ち、本形態の暗号アルゴリズムを用いてg(x,y)の各項の係数を暗号化することで、関数の処理を秘匿とすることができる。
ここでは具体的に関数
Figure 2005084568
を知ること無しに、関数gの処理を実行する方法について説明する。
暗号装置610は以下の処理を行う。
<ステップS150>
論理ゲート入力部611において、上述の式(15)の入力(「論理ゲートを特定する情報」の入力)を受け付ける。
<ステップS151>
まず、暗号化部612において、論理ゲート入力部611から、論理ゲート(x1∩x2)を特定する情報を受け取る。次に、この論理ゲートを多項式表現した場合の各係数を暗号化対象として特定し、例えば第1の実施の形態と同様な方法により、これら各係数の暗号文f1,r(X)、f0,r(X)、f0,r(X)、f0,r(X)を算出する。そして、これら各暗号文を係数とした多項式関数x5=g1(X,x1,x2)=f1,r(X)x1x2+f0,r(X)x1+f0,r(X)x2+f0,r(X) mod ZN[X,x1,x2]を生成する。
<ステップS152>
続いて、暗号化部612において、論理ゲート入力部611から、論理ゲート
Figure 2005084568
を特定する情報を受け取る。次に、この論理ゲートを多項式表現した場合の各係数を暗号化対象として特定し、例えば第1の実施の形態と同様な方法により、これら各係数の暗号文f2,r(X)、f-1,r(X)、f-1,r(X)、f1,r(X)を算出する。そして、これら各暗号文を係数とした多項式関数x6=g2(X,x3,x4)=f2,r(X)x3x4+f-1,r(X)x3+f-1,r(X)x4+f1,r(X) mod ZN[X,
x3,x4]を生成する。
<ステップS153>
さらに、暗号化部614において、論理ゲート入力部611から論理ゲート∩を特定する情報を受け取り、暗号化部612、613から、それぞれ多項式関数x5,x6を受け取る。次に、論理ゲートx5∩x6を多項式表現した場合の各係数を暗号化対象として特定し、例えば第1の実施の形態と同様な方法により、これら各係数の暗号文f-1,r(X)、f1,r(X)、f1,r(X)、f0,r(X)を算出する。そして、これら各暗号文を係数とした多項式関数g3(X,x5,x6)=f-1,r(X)x5x6+f1,r(X)x5+f1,r(X)x6+f0,r(X) mod ZN[X,x5,x6]を生成する。
なお上述のfα,β(x)は、第1の実施の形態同様、本発明の暗号アルゴリズムにより、平文αを秘密鍵βで暗号処理した暗号文である。また、この例では12個の暗号文が生成・公開されるため、安全性を考慮し、パラメータdをd=12+1=13としておく。また、暗号装置610では、例えばf0,r(x)が複数生成されているが、同じ平文(この場合平文は0)であっても暗号文は確率的であり一般に異なる(上述の式(1)参照。加算項の取り方によって暗号文が異なるため。)。
<ステップS154>
暗号化部612、613、614で算出された多項式関数g1(X,x1,x2),g2(X,x3,x4),g3(X,x5,x6)は、例えばその処理コード(多項式関数の演算プログラム)と共に、それぞれ通信部615及びネットワーク640を通じ、多項式演算装置620に送信(出力)される。
次に、多項式演算装置620は以下の処理を行う。なお、この例では、関数g(x1,x2,x3,x4)への代入値を(x1,x2,x3,x4)=(0,1,1,1)とする場合を例に採って説明する。
<ステップS155>
通信部621において、多項式関数g1(X,x1,x2),g2(X,x3,x4),g3(X,x5,x6)、及びその処理コードを受信する(入力を受け付ける)。
<ステップS156>
代入値入力部622において、代入値(x1,x2,x3,x4)=(0,1,1,1)の入力を受け付ける。
<ステップS157>
まず、受け取った処理コードに従い、代入演算部623において、通信部621から多項式関数g1(X,x1,x2)を受け取り、代入値入力部622から代入値(x1,x2)=(0,1)を受け取り、G1=g1(X,0,1)=f0,r(X)+f0,r(X) mod ZN[X]を計算する(多項式関数g1(X,x1,x2)の演算)。
<ステップS158>
次に、代入演算部624において、通信部621から多項式関数g2(X,x3,x4)を受け取り、代入値入力部622から代入値(x3,x4)=(1,1)を受け取り、G2=g2(X,1,1)=f2,r(X)+f-1,r(X)+f-1,r(X)+f1,r(X) mod ZN[X]を計算する(多項式関数g2(X,x3,x4)の演算)。
<ステップS159>
続いて、代入演算部625において、通信部621から多項式関数g3(X,x5,x6)を受け取り、代入演算部623、624から、それぞれ演算結果G1及びG2を受け取り、G3(X)=g3(X,G1,G2)=f-1,r(X)G1G2+f1,r(X)G1+f1,r(X)G2+f0,r(X) mod ZN[X]を計算する(多項式関数g3(X,x5,x6)の演算)。
<ステップS160>
算出された演算結果Gは、通信部621及びネットワーク640を通じ、復号装置630に送信(出力)される。なお、この演算結果G3(X)は、g(0,1,1,1)を秘密鍵rで暗号処理した39次多項式からなる暗号文となっている。
次に復号装置630は以下の処理を行う。
<ステップS161>
演算結果G3(X)を受信する(入力を受け付ける)。
<ステップS162>
入力された演算結果G3(X)に、例えば第1の実施の形態と同様な手順により、秘密鍵rの逆数r-1を代入する。即ち、秘密鍵rを用いてG3(X)を復号する。これにより、g(0,1,1
,1)を得ることができる。
なお、本実施の形態で示した方法の応用として、例えば、暗号装置610において、関数gの実行結果の一部に意図的な値が含まれるよう操作し、復号装置630が、復号結果に対してその意図的な値が含まれているかどうかチェックすることで、多項式演算装置620による改ざんを防止することができる。
〔第8の実施の形態〕
この形態は、暗号処理を行う代理暗号装置の処理正当性を検証するものである。なお、ここでの「処理正当性の検証」とは、適切な秘密鍵で処理を行っている旨の検証を意味する。
図36は、本形態のセキュリティシステム700の全体構成を例示した図である。また、図37の(a)は、公知のコンピュータに所定のプログラムを実行させることにより実現される復号装置710(「第2のセキュリティ装置」に相当)の機能構成を、(b)は検証装置740の機能構成を、それぞれ例示した図である。また、図38は、この形態のセキュリティ方法を説明するためのフローチャートである。なお、暗号装置730(「第1のセキュリティ装置」に相当)の暗号処理や、復号装置710の復号処理は、例えば第1の実施の形態と同様であるため、その詳細は省略する。
以下、これらの図を用い、本形態における機能構成及び処理について説明を行う。
まず復号装置710は以下の処理を行う。
<ステップS170>
素数生成部718において、相異なる大きな素数p,qを生成し、合成数生成部719に送る。合成数生成部719は、合成数N=pq,N2=p2q2を算出し、合成数記憶部720に記憶させる。
<ステップS171>
初期値決定部713において、合成数記憶部720から合成数N,N2を抽出し、Z 2の元で位数がNとなる初期値g0を決定する。なお、「Z 2」の添え字はNを意味している。
<ステップS172>
次に、指数演算部714において、パラメータ記憶部722から自然数のパラメータdを抽出し、秘密鍵記憶部712から秘密鍵rを抽出し、i=1,…,dについて、公開値gi
Figure 2005084568
に従って算出する。算出された公開値giは、公開値記憶部715に送られ、そこで記憶される。
<ステップS173>
公開値giを公開する。即ち、公開値記憶部715に記憶された公開値giを、通信部711及びネットワーク750を通じ、検証装置740に送信とする(出力する)。
<ステップS174>
ゼロ知識証明部716において、乱数生成部721で生成された乱数を受け取り、合成数記憶部720から合成数N,N2を抽出し、公開値記憶部715から公開値giを抽出し、秘密鍵記憶部712から秘密鍵rを抽出し、通信部711及びネットワーク750を通じ、秘密鍵rを知っていることのゼロ知識証明を行う(ゼロ知識証明情報(レスポンス等)を出力する)。なお、ゼロ知識証明については、例えば、「D. Chaum and T. P. Pedersen, “Wallet databases with observers,” E. Brickell (Ed.), Advanes in Cryptology-CRYPTO ’92, LNCS 740, Springer-Verlag, pp. 89-105,1993.」に詳しいため、ここでは説明を省略する。
次に暗号装置730は以下の処理を行う。
<ステップS175>
例えば、第1の形態と同様な手順により、暗号文fm,r(X)を計算する。
<ステップS176>
暗号文fm,r(X)を公開する。即ち、暗号文fm,r(X)を、ネットワーク750を通じ、復号装置710及び検証装置740に送信(出力)可能とする。
次に復号装置710は以下の処理を行う。
<ステップS177>
通信部711において、暗号文fm,r(X)を受信する。
<ステップS178>
復号部717において、通信部711から暗号文fm,r(X)を受け取り、秘密鍵記憶部712から秘密鍵rを抽出し、第1の実施の形態と同様な手順によりfm,r(r-1)=mを計算する。
<ステップS179>
次に、このm(「暗号化対象」に相当)を、通信部711及びネットワーク750を通じて検証装置740に送信(出力)する。
次に検証装置740は以下の処理を行う。
<ステップS180>
通信部741において、公開値gi(i=1,…,d)、暗号文fm,r(X)及び暗号化対象mを受信する(入力を受け付ける)。
<ステップS181>
次に、検証部742において、通信部741から公開値gi(i=1,…,d)、暗号文fm,r(X)及び暗号化対象mを受け取り、暗号文fm,r(X)の各係数をc0,…,cdとした場合における、
Figure 2005084568
が成立しているか否かを判断し、成立していれば処理が正当であると判断する。これにより、暗号装置730が正当な秘密鍵r以外の秘密鍵で暗号処理を行った事実を検知することができる。即ち、適切な秘密鍵rが使用された場合、暗号文はfm,r(X)=adrdXd+ad-1rd-1Xd-1+…+a1rX+a0mod ZN[X]となり、(c0,c1,…,cd-1,cd)=(a0,a1r,…,ad-1rd-1,adrd)となる。そのため、上述の式(17)の右辺は、
Figure 2005084568
となる。これは、秘密鍵r以外の秘密鍵を用いて暗号化された場合には、一般に成立しない関係である。
この形態の変形例として、図37の(a)の機能構成を暗号装置730に設け、ステップS170〜174の処理を暗号装置730に行わせることとしてもよい。この場合、復号装置710が正当な秘密鍵r以外の秘密鍵で復号処理を行った事実を検知することができる。
なお、この発明は上述の各実施の形態に限定されるものではない。例えば、上述の各実
施の形態では、何れかの装置が素数を生成し、その積によって合成数を生成することとしたが、全装置が協力し、素因数が未知の合成数を生成することとしてもよい。この具体的手法については、例えば、「D. Boneh and M. Franklin, “Efficient generation of shared RSA keys,” B. S. Kaliski Jr. (Ed.), Advces in Cryptology-CRYPTO ’97, LNCS
1233, Springer-Verlag, pp. 425-439, 1997.」や、その改良である「I. Damgard and M. Koprowski, “Practical threshold RSA signatures without a trusted dealer,” B.
Pfitzmann (Ed.), Advanced in Cryptology-EUROCRYPT ’01, LNCS 2045, Springer-Verlag, pp. 152-165, 2001.」に詳しい。
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。さらに、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
さらに、上述の各実施の形態ではコンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述した本発明のセキュリティ装置をコンピュータによって実現する場合、その装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能が実現される。
また、この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
なお、上記のプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)をも含むものとする。
本発明の産業上の利用分野としては、上述の実施の形態で説明したものの他、例えば、
MA(Mobile Agent)の分野を挙げることができる。MAとは、通常、あるホストから別のホストへ自律的に移動して情報取得、判断、実行等の各種処理を行うプログラムのことを指す。このMAの普及を妨げる最も深刻な問題として、MAへの不正解析や実行結果の改ざんが挙げられる。しかし、本発明の技術により、MAの内容や、処理結果を秘匿できるため、このMAのセキュリティ問題を効果的に解決することができる。
第1の実施の形態のセキュリティシステムの全体構成を例示した図。 暗号装置の機能構成を例示した図。 (a)は外部機関装置の機能構成を、(b)は復号装置の機能構成を、それぞれ例示した図。 第1の実施の形態におけるセキュリティ方法の処理手順を説明するためのフローチャート。 第2の実施の形態のセキュリティシステムの全体構成を例示した図。 依頼装置の機能構成を例示した図。 代理演算装置の機能構成を、それぞれ例示した図。 第2の実施の形態におけるセキュリティ方法の処理手順を説明するためのフローチャート。 第3の実施の形態のセキュリティシステムの全体構成を例示した図。 依頼装置の機能構成を例示した図。 代理暗号装置の機能構成を例示した図。 第3の実施の形態におけるセキュリティ方法の処理手順を説明するためのフローチャート。 第3の実施の形態におけるセキュリティ方法の処理手順を説明するためのフローチャート。 第3の実施の形態におけるセキュリティ方法の処理手順を説明するためのフローチャート。 第4の実施の形態のセキュリティシステムの全体構成を例示した図。 依頼装置の機能構成を例示した図。 代理復号装置の機能構成を例示した図。 第4の実施の形態におけるセキュリティ方法の処理手順を説明するためのフローチャート。 第4の実施の形態におけるセキュリティ方法の処理手順を説明するためのフローチャート。 第5の実施の形態のセキュリティシステムの全体構成を例示した図。 代理暗号装置の機能構成を例示した図。 代理暗号装置の機能構成を例示した図。 依頼装置の機能構成を例示した図。 依頼装置の機能構成を例示した図。 第5の実施の形態におけるセキュリティ方法の処理手順を説明するためのフローチャート。 第5の実施の形態におけるセキュリティ方法の処理手順を説明するためのフローチャート。 第5の実施の形態におけるセキュリティ方法の処理手順を説明するためのフローチャート。 第5の実施の形態におけるセキュリティ方法の処理手順を説明するためのフローチャート。 第5の実施の形態におけるセキュリティ方法の処理手順を説明するためのフローチャート。 第6の実施の形態のセキュリティシステムの全体構成を例示した図。 第6の実施の形態のセキュリティ方法を説明するためのフローチャート。 第7の実施の形態におけるセキュリティシステムの全体構成を例示した図。 暗号装置の機能構成を例示した図。 多項式演算装置の機能構成を例示した図。 第7の実施の形態におけるセキュリティ方法を説明するためのフローチャート。 第8の実施の形態のセキュリティシステムの全体構成を例示した図。 (a)は、復号装置の機能構成を、(b)は検証装置の機能構成を、それぞれ例示した図。 第8の実施の形態のセキュリティ方法を説明するためのフローチャート。
符号の説明
1、100〜700 セキュリティシステム
10、210 外部機関装置
20、610、730 暗号装置
30、630、710 復号装置
110、220、310、450、511 依頼装置
130 代理演算装置
230、350、410、430、520、530 代理暗号装置
330 代理復号装置
620 多項式演算装置
740 検証装置

Claims (17)

  1. 暗号処理を行うセキュリティ方法であって、
    第1のセキュリティ装置において、
    合成数Nを抽出し、
    Nと互いに素な0以上N未満の整数である第1の秘密鍵rを抽出し、
    暗号化対象mを特定し、
    自然数の第1のパラメータdを決定し、
    Figure 2005084568
    を満たす加算項a(i=0,…,d)を選択し、
    第1の暗号文Cを、
    Figure 2005084568
    に従って算出する、
    ことを特徴とするセキュリティ方法。
  2. 請求項1記載のセキュリティ方法であって、
    第2のセキュリティ装置において、
    上記第1の暗号文C=fm,r(X)の入力を受け付け、
    上記第1の秘密鍵rを抽出し、
    上記第1の暗号文Cの復号結果fm,r(r-1) mod Nを算出する、
    ことを特徴とするセキュリティ方法。
  3. 請求項1記載のセキュリティ方法であって、
    第2のセキュリティ装置において、
    上記第1の暗号文C=fm,r(X)の入力を受け付け、
    上記第1の暗号文Cを任意な多項式関数である代理演算関数に代入し、
    その代入結果G(X)を上記第1のセキュリティ装置に対して出力し、
    上記第1のセキュリティ装置において、
    上記代入結果G(X)の入力を受け付け、
    上記第1の秘密鍵rを抽出し、
    上記代入結果G(X)の復号結果G(r-1)を算出する、
    ことを特徴とするセキュリティ方法。
  4. 請求項1記載のセキュリティ方法であって、
    第2のセキュリティ装置において、
    上記第1の暗号文C=fm,r(X)の入力を受け付け、
    上記合成数Nを抽出し、
    Nと互いに素な0以上N未満の整数である第2の秘密鍵tを抽出し、
    自然数の第2のパラメータd’を決定し、
    Figure 2005084568
    を満たす加算項b(X)(i=0,…,d’)を選択し、
    第2の暗号文C’を、
    Figure 2005084568
    に従って算出し、
    上記第2の暗号文C’を上記第1のセキュリティ装置に対して出力し、
    上記第1のセキュリティ装置において、
    上記第2の暗号文C’の入力を受け付け、
    上記秘密鍵rを抽出し、
    上記第2の暗号文C’の復号結果fC,t(r-1,Y)を算出する、
    ことを特徴とするセキュリティ方法。
  5. 復号処理を行うセキュリティ方法であって、
    第1のセキュリティ装置において、
    合成数Nを抽出し、
    Nと互いに素な0以上N未満の整数である第1の秘密鍵rを抽出し、
    自然数のパラメータdを決定し、
    第1の暗号文F(Y)を抽出し、
    Figure 2005084568
    を満たす加算項b(Y)(i=0,…,d)を選択し、
    第2の暗号文Cを、
    Figure 2005084568
    に従って算出し、
    上記第2の暗号文Cを第2のセキュリティ装置に対して出力し、
    上記第2のセキュリティ装置において、
    上記第2の暗号文Cの入力を受け付け、
    Nと互いに素な0以上N未満の整数である第2の秘密鍵tを抽出し、
    第1の復号結果F’(Z)=fF(Y),r(t-1,Z)を算出し、
    上記第1の復号結果F’(Z)を上記第1のセキュリティ装置に対して出力し、
    上記第1のセキュリティ装置において、
    上記第1の復号結果F’(Z)の入力を受け付け、
    上記第1の秘密鍵rを抽出し、
    第2の復号結果F’(r-1)を算出する、
    ことを特徴とするセキュリティ方法。
  6. 請求項4記載のセキュリティ方法であって、
    上記第2のセキュリティ装置は複数であり、
    上記第2の秘密鍵、上記第2のパラメータ、及び上記加算項は、上記第2のセキュリティ装置ごとに独立して設定され、
    上記復号結果を、上記第1のセキュリティ装置の暗号化対象とし、
    その暗号文の出力先となる上記第2のセキュリティ装置を変更しつつ、請求項4記載の処理を繰り返す、
    ことを特徴とするセキュリティ方法。
  7. 請求項5記載のセキュリティ方法であって、
    上記第2のセキュリティ装置は複数であり、
    上記第2の復号結果を、上記第1のセキュリティ装置の暗号化対象とし、
    その暗号文の出力先となる上記第2のセキュリティ装置を変更しつつ、請求項5記載の処理を繰り返す、
    ことを特徴とするセキュリティ方法。
  8. 請求項1記載のセキュリティ方法であって、
    複数の第2のセキュリティ装置において、
    それぞれの提供値を上記第1のセキュリティ装置に対して出力し、
    上記第1のセキュリティ装置において、
    上記提供値の入力を受け付け、
    入力された上記提供値を上記暗号化対象mとして特定し、
    それぞれの上記暗号化対象mに対応する複数の上記暗号文Cを算出し、
    算出した全ての上記暗号文Cを上記第2のセキュリティ装置に対して出力し、
    上記第2のセキュリティ装置において、
    全ての上記暗号文Cの入力を受け付け、
    上記暗号文Cを、上記提供値の調和平均を算出するための関数に代入し、
    その代入値を第3のセキュリティ装置に対して出力し、
    上記第3のセキュリティ装置において、
    上記代入値の入力を受け付け、
    上記秘密鍵rを抽出し、
    上記代入値にr−1を代入して調和平均を特定する値を算出し、
    上記調和平均を特定する値を上記第2のセキュリティ装置に対して出力し、
    上記第2のセキュリティ装置において、
    上記調和平均を特定する値の入力を受け付け、
    この調和平均を特定する値を用いて調和平均を算出する、
    ことを特徴とするセキュリティ方法。
  9. 請求項1記載のセキュリティ方法であって、
    上記第1のセキュリティ装置において、
    論理ゲートを特定する情報の入力を受け付け、
    この論理ゲートを多項式表現した場合の各係数を上記暗号化対象mとして特定し、
    これら各係数の上記暗号文Cを算出し、
    各暗号文Cを係数とした多項式関数を生成し、
    生成した上記多項式関数を第2のセキュリティ装置に対して出力し、
    上記第2のセキュリティ装置において、
    上記多項式関数の入力を受け付け、
    上記多項式関数の演算を行い、
    この演算結果を第3のセキュリティ装置に対して出力し、
    上記第3のセキュリティ装置において、
    この演算結果の入力を受け付け、
    入力された演算結果にr−1を代入する、
    ことを特徴とするセキュリティ方法。
  10. 請求項2記載のセキュリティ方法であって、
    上記第1のセキュリティ装置或いは上記第2のセキュリティ装置の何れか一方において、
    合成数N,Nを抽出し、
    0以上N未満であって位数がNとなるg0を決定し、
    上記自然数のパラメータdを抽出し、
    上記秘密鍵rを抽出し、
    i=1,…,dについて、
    Figure 2005084568
    に従って公開値giを算出し、
    公開値gi(i=1,…,d)を検証装置に対して出力し、
    上記秘密鍵rを知っていることのゼロ知識証明情報を出力し、
    上記第1のセキュリティ装置において、
    算出した上記暗号文Cを上記検証装置に対して出力し、
    上記第2のセキュリティ装置において、
    算出した上記暗号化対象mを上記検証装置に対して出力し、
    上記検証装置において、
    上記公開値gi(i=1,…,d)、上記暗号文C及び上記暗号化対象mの入力を受け付け、
    上記暗号文Cの各係数をc0,…,cdとした場合における、
    Figure 2005084568
    が成立しているか否かを判断し、成立していれば処理が正当であると判断する、
    ことを特徴とするセキュリティ方法。
  11. 請求項1から10の何れかに記載のセキュリティ方法であって、
    上記自然数のパラメータは、
    安全でない暗号通信を行うと予想される回数よりも大きな値である、
    ことを特徴とするセキュリティ方法。
  12. 請求項1から11の何れかに記載のセキュリティ方法であって、
    上記自然数のパラメータは、
    安全でない暗号通信を行った回数に自然数を加算した値である、
    ことを特徴とするセキュリティ方法。
  13. 請求項1から12の何れかに記載のセキュリティ方法であって、
    上記合成数Nは、
    上記セキュリティ装置以外の外部機関装置において生成される、
    ことを特徴とするセキュリティ方法。
  14. 請求項1から13の何れかに記載のセキュリティ方法であって、
    上記合成数Nは、
    複数の装置でそれぞれ生成された合成数の積である、
    ことを特徴とするセキュリティ方法。
  15. 暗号化処理を行うセキュリティ装置であって、
    合成数Nを抽出する合成数抽出手段と、
    Nと互いに素な0以上N未満の整数である秘密鍵rを抽出する秘密鍵抽出手段と、
    暗号化対象mを特定する暗号化対象特定手段と、
    自然数のパラメータdを決定するパラメータ決定手段と、
    Figure 2005084568
    を満たす加算項a(i=0,…,d)を選択する加算項選択手段と、
    暗号文Cを、
    Figure 2005084568
    に従って算出する暗号化手段と、
    を有することを特徴とするセキュリティ装置。
  16. 復号処理を行うセキュリティ装置であって、
    暗号文の入力を受け付ける暗号文入力手段と、
    秘密鍵rを抽出する秘密鍵抽出手段と、
    上記暗号文にr-1を代入する復号手段と、
    を有することを特徴とするセキュリティ装置。
  17. コンピュータに、請求項1から14の何れかに記載されたセキュリティ方法の手順を実行させるためのセキュリティプログラム。
JP2003319251A 2003-09-11 2003-09-11 セキュリティ方法、セキュリティ装置及びセキュリティプログラム Pending JP2005084568A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003319251A JP2005084568A (ja) 2003-09-11 2003-09-11 セキュリティ方法、セキュリティ装置及びセキュリティプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003319251A JP2005084568A (ja) 2003-09-11 2003-09-11 セキュリティ方法、セキュリティ装置及びセキュリティプログラム

Publications (1)

Publication Number Publication Date
JP2005084568A true JP2005084568A (ja) 2005-03-31

Family

ID=34418239

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003319251A Pending JP2005084568A (ja) 2003-09-11 2003-09-11 セキュリティ方法、セキュリティ装置及びセキュリティプログラム

Country Status (1)

Country Link
JP (1) JP2005084568A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008177966A (ja) * 2007-01-22 2008-07-31 Mitsubishi Electric Corp 情報処理装置及び演算方法
JP2011227193A (ja) * 2010-04-16 2011-11-10 Nippon Telegr & Teleph Corp <Ntt> 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体
WO2012057134A1 (ja) * 2010-10-26 2012-05-03 日本電信電話株式会社 代理計算システム、計算装置、能力提供装置、代理計算方法、能力提供方法、プログラム、及び記録媒体
WO2013046320A1 (ja) * 2011-09-27 2013-04-04 株式会社 日立製作所 秘匿計算システム、秘匿計算方法、および秘匿計算プログラム
JP2014232150A (ja) * 2013-05-28 2014-12-11 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
CN114245917A (zh) * 2019-08-14 2022-03-25 日本电信电话株式会社 秘密归一化指数函数计算系统、秘密归一化指数函数计算装置、秘密归一化指数函数计算方法、秘密神经网络计算系统、秘密神经网络学习系统、程序

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008177966A (ja) * 2007-01-22 2008-07-31 Mitsubishi Electric Corp 情報処理装置及び演算方法
JP2011227193A (ja) * 2010-04-16 2011-11-10 Nippon Telegr & Teleph Corp <Ntt> 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体
WO2012057134A1 (ja) * 2010-10-26 2012-05-03 日本電信電話株式会社 代理計算システム、計算装置、能力提供装置、代理計算方法、能力提供方法、プログラム、及び記録媒体
CN103221988A (zh) * 2010-10-26 2013-07-24 日本电信电话株式会社 代理计算系统、计算装置、能力提供装置、代理计算方法、能力提供方法、程序和记录介质
WO2013046320A1 (ja) * 2011-09-27 2013-04-04 株式会社 日立製作所 秘匿計算システム、秘匿計算方法、および秘匿計算プログラム
JP5657128B2 (ja) * 2011-09-27 2015-01-21 株式会社日立製作所 秘匿計算システム、秘匿計算方法、および秘匿計算プログラム
US9276734B2 (en) 2011-09-27 2016-03-01 Hitachi, Ltd. Confidential computation system, confidential computation method, and confidential computation program
JP2014232150A (ja) * 2013-05-28 2014-12-11 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
CN114245917A (zh) * 2019-08-14 2022-03-25 日本电信电话株式会社 秘密归一化指数函数计算系统、秘密归一化指数函数计算装置、秘密归一化指数函数计算方法、秘密神经网络计算系统、秘密神经网络学习系统、程序
CN114245917B (zh) * 2019-08-14 2023-12-05 日本电信电话株式会社 秘密归一化指数函数计算系统、装置、方法以及记录介质

Similar Documents

Publication Publication Date Title
EP1710952B1 (en) Cryptographic Applications of the Cartier Pairing
JP2007139895A (ja) 暗号装置、復号装置、プログラム及び方法
Chen Cryptography standards in quantum time: new wine in old wineskin?
Del Pino et al. The whole is less than the sum of its parts: Constructing more efficient lattice-based AKEs
JP4869824B2 (ja) 受信者装置及び送信者装置及び暗号通信システム及びプログラム
Iavich et al. Hybrid encryption model of AES and ElGamal cryptosystems for flight control systems
US6111952A (en) Asymmetrical cryptographic communication method and portable object therefore
WO2018043049A1 (ja) 暗号システム、暗号方法及び暗号プログラム
Kumar et al. An enhanced and secured RSA public key cryptosystem algorithm using Chinese remainder theorem
Dolev et al. Efficient private multi-party computations of trust in the presence of curious and malicious users
Kute et al. A software comparison of RSA and ECC
Hariss et al. Design and realization of a fully homomorphic encryption algorithm for cloud applications
Anane et al. RSA based encryption decryption of medical images
JP2005084568A (ja) セキュリティ方法、セキュリティ装置及びセキュリティプログラム
JP2010160235A (ja) 検索システム、端末装置、データベース装置、検索方法及びプログラム
US20210226791A1 (en) Encryption system, encryption apparatus, decryption apparatus, encryption method, decryption method, and program
JP2009128792A (ja) 公開鍵暗号システム、公開鍵暗号方法、暗号化装置、復号化装置、暗号化プログラム及び復号化プログラム
Thangavel et al. Improved secure RSA cryptosystem for data confidentiality in cloud
Adebayo et al. Data Privacy System Using Steganography and Cryptography
JP5038866B2 (ja) 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム
Nagaty A public key cryptosystem and signature scheme based on numerical series
Luma et al. Using elliptic curve encryption and decryption for securing audio messages
Roy A homomorphism based zero knowledge proof of authentication for chinese remainder theorem based secret sharing
Doegar et al. On-demand digital signature schemes using Multivariate Polynomial systems
Rebeiro et al. Modern cryptography