JP6067890B2 - 要素複製装置、要素複製方法、およびプログラム - Google Patents
要素複製装置、要素複製方法、およびプログラム Download PDFInfo
- Publication number
- JP6067890B2 JP6067890B2 JP2015557727A JP2015557727A JP6067890B2 JP 6067890 B2 JP6067890 B2 JP 6067890B2 JP 2015557727 A JP2015557727 A JP 2015557727A JP 2015557727 A JP2015557727 A JP 2015557727A JP 6067890 B2 JP6067890 B2 JP 6067890B2
- Authority
- JP
- Japan
- Prior art keywords
- elements
- secret
- vector
- secret text
- text
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
- Storage Device Security (AREA)
Description
本発明は、集合に含まれた要素を効率よく複製する技術に関する。
秘匿化された数値を復元することなく特定の演算結果を得る方法として、秘密計算と呼ばれる方法がある(例えば、非特許文献1等参照)。非特許文献1の方法では、3つの秘密計算装置に数値の断片を分散させるという秘匿化を行い、3つの秘密計算装置が協調計算を行うことにより、数値を復元することなく、加減算,定数加算,乗算,定数倍,論理演算(否定,論理積,論理和,排他的論理和),データ形式変換(整数,二進数)等の演算結果を3つの秘密計算装置に分散された状態、すなわち秘匿化されたまま保持させることができる。
表に従ってそれらの要素を秘密計算上で写像する方法として、非特許文献2の方法がある。非特許文献2の方法では、秘匿化された表の要素(値)を同一の列内に複製する写像が秘密計算上で実現されている。
千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, "軽量検証可能3パーティ秘匿関数計算の再考," In CSS, 2010.
濱田浩気, 五十嵐大, 千田浩司, "秘匿計算上の一括写像アルゴリズム," 電子情報通信学会論文誌, A, 基礎・境界, Vol. 96, No. 4, pp. 157-165, apr 2013.
しかしながら、従来技術では、要素の複製が行われる列の大きさをNとすると、要素を同一の列内に複製するためにO(N)回,O(log N)段の乗算を要していた。このことは、秘匿化された表の要素を同一の列内に秘密計算上で複製する場合だけではなく、順序付けされたN個の要素を含む集合の要素を同一の集合内の要素として複製する場合であれば同様である。
本発明の課題は、順序付けされた要素を含む集合の要素を複製する場合の演算コストを低減することである。
上記の課題を解決するために、h=2,…,Mについて、第1集合に含まれる複製元の要素a(f(h))を要素a(f(h))−a(f(h−1))にし、第1集合に含まれる複製元以外の要素を零にして得られる、複数個の要素a5(1),…,a5(N)を含む集合である第2集合または第2集合の秘匿文を得、第2集合または第2集合の秘匿文を用い、1番目の要素b(1)=a5(1)とi=2,…,N番目の要素b(i)=b(i−1)+a5(i)とを含む集合である第3集合または第3集合の秘匿文を得る。
ただし、第1集合は、順序付けされた複数個の要素a(1),…,a(N)を含む集合である。複数個の要素a(1),…,a(N)からなる集合が複数個の複製元の要素a(f(1)),…,a(f(M))を含む。複製元の要素a(f(h))よりも順序が前であって複製元の要素a(f(h))に順序が最も近い複製元の要素a(f(h−1))の加法逆元が−a(f(h−1))である。第2集合の1番目の要素がa5(1)であり、第2集合のi=2,…,N番目の要素がa5(i)である。
本発明では、演算量が小さな加法演算で集合の要素を複製することができるため、順序付けされた要素を含む集合の要素を複製する場合の演算コストを低減させることができる。
以下、本発明の実施形態を説明する。
[概要]
まず、各実施形態の概要を説明する。
各実施形態では、h=2,…,Mについて、第1集合に含まれる複製元の要素a(f(h))を要素a(f(h))−a(f(h−1))にし、第1集合に含まれる複製元以外の要素を零にして得られる、複数個の要素a5(1),…,a5(N)を含む集合である第2集合または第2集合の秘匿文を得、第2集合または第2集合の秘匿文を用い、1番目の要素b(1)=a5(1)とi=2,…,N番目の要素b(i)=b(i−1)+a5(i)とを含む集合である第3集合または第3集合の秘匿文を得る。
[概要]
まず、各実施形態の概要を説明する。
各実施形態では、h=2,…,Mについて、第1集合に含まれる複製元の要素a(f(h))を要素a(f(h))−a(f(h−1))にし、第1集合に含まれる複製元以外の要素を零にして得られる、複数個の要素a5(1),…,a5(N)を含む集合である第2集合または第2集合の秘匿文を得、第2集合または第2集合の秘匿文を用い、1番目の要素b(1)=a5(1)とi=2,…,N番目の要素b(i)=b(i−1)+a5(i)とを含む集合である第3集合または第3集合の秘匿文を得る。
ここで、第3集合は、或る順序に従って、第1集合に含まれる「複製元の要素」を、その要素よりも順序が後であって次の複製元の要素よりも前までのすべての「複製元ではない要素」に複製し、「最後の複製元の要素」を、それよりも後のすべての「複製元ではない要素」に複製したものとなる。第1集合に含まれる複製元の要素a(f(h))を要素a(f(h))−a(f(h−1))にし、複製元以外の要素を零にして得られる第2集合またはその秘匿文を計算しておくことで、累積的な加法演算によって上述の第3集合またはその秘匿文を計算できる。加法演算の演算量は、従来技術で用いられる乗算等の乗法演算に比べて非常に小さい。そのため、順序付けされた要素を含む集合の要素を複製する場合の演算コストを従来よりも低減させることができる。
なお、「第1集合」とは、順序付けされた複数個の要素a(1),…,a(N)(ただし、Nは2以上の整数であり、例えば3以上の整数)を含む集合を意味する。第1集合は、N個の要素a(1),…,a(N)からなるN次元ベクトルであってもよいし、N+Λ次元ベクトル(ただし、Λは1以上の整数)に含まれるN個の要素a(1),…,a(N)からなる集合であってもよいし、N個以上の要素を持つ行列に含まれるN個の要素a(1),…,a(N)からなる集合であってもよいし、それら以外の集合であってもよい。複数個の要素a(1),…,a(N)の間には順序が定められている(すなわち、複数個の要素a(1),…,a(N)は順序付けされている)。この順序は予め定められたものであってもよいし、処理を行うたびに定められるものであってもよい。この順序の定め方には限定はなく、異なる要素に異なる順序が対応するのであれば、どのような順序が定められてもよい。例えば、第1集合が第1,…,N要素をそれぞれa(1),…,a(N)とするN次元のベクトル(a(1),…,a(N))である場合、要素a(n)にn番目(ただし、n∈{1,…,N})の順序が対応してもよいし、要素a(n)にN−n+1番目の順序が対応してもよい。
これらの複数個の要素a(1),…,a(N)からなる集合{a(1),…,a(N)}は、複数個の複製元の要素a(f(1)),…,a(f(M))を含む(ただし、2≦M≦N、例えばM<N)。「複製元の要素」とは、複製元となる要素、すなわち複製される要素を意味する。各要素a(n)(ただし、n∈{1,…,N})は、複製元の要素a(f(m))(ただし、m∈{1,…,M})であるか、または、複製元ではない要素である。言い換えると、{a(f(1)),…,a(f(M))}⊆{a(1),…,a(N)}であり、例えば、{a(f(1)),…,a(f(M))}⊂{a(1),…,a(N)}である。複製元の要素a(f(1)),…,a(f(M))は、要素a(1),…,a(N)の順序関係を維持する。すなわち、複製元の要素a(f(1)),…,a(f(M))には、要素a(1),…,a(N)の順序に従った順序が対応する。例えば、N=10,M=4であり、要素a(1),…,a(10)の順序がそれぞれ第1,…,10番目であり、複製元の要素がa(1),a(4),a(5),a(9)である場合、集合{a(1),a(4),a(5),a(9)}内での複製元の要素a(1),a(4),a(5),a(9)の順序はそれぞれ第1,2,3,4番目となる。また、複製元の要素a(f(h))(ただし、h∈{2,…,M})よりも順序が前であって複製元の要素a(f(h))に順序が最も近い複製元の要素をa(f(h−1))と表現する。言い換えると、複製元の要素のみからなる集合内における順序が、複製元の要素a(f(h))の直前である複製元の要素をa(f(h−1))と表現する。
各要素には少なくとも加法演算が定義されており、その加法演算を「+」と表現する。また、各要素には少なくとも加法逆元が定義されており、要素νの加法逆元を「−ν」と表現する。すなわち、上述のa(f(h))−a(f(h−1))は、要素a(f(h))と加法逆元−a(f(h−1))との加法演算を表し、b(i−1)+a5(i)は、要素b(i−1)と要素a5(i)との加法演算を表す。加法演算の例は、加算、排他的論理和、加算結果θに対する整数Pを法とした剰余演算θ mod P(ただし、Pは2以上の整数)などである。例えば、加法演算が加算である場合、a(f(h))−a(f(h−1))はa(f(h))からa(f(h−1))を減じた減算値であり、b(i−1)+a5(i)は、要素b(i−1)と要素a5(i)との加算値である。また、加法単位元を「零」または「0」と表現する。また、加法生成元を「1」と表現する。
本形態における「αの秘匿文」とは、秘密計算が可能な方法でαが秘匿化されて得られる情報を意味する。周知の秘密分散や暗号化などが秘匿化の例であり、そのうち、周知の線形秘密分散や準同型性暗号などが「秘密計算が可能な秘匿化方法」の例である。これらの方式では、例えば、α1とα2との間に二項演算○が定義されており、α1○α2=α3が成立する場合、α1の秘匿文E(α1)とα2の秘匿文E(α2)とを用いてα3の秘匿文E(α3)=E(α1)○E(α2)を計算することができる。同様に、例えば、α1に単項演算○が定義されており、○α1=α3が成立する場合、α1の秘匿文E(α1)を用いてα3の秘匿文E(α3)=○E(α1)を計算することができる。これらの計算のために秘匿文E(α1)やE(α2)を復元する必要はない。秘密計算による秘匿化,復元,加算,減算,乗算,論理演算には、例えば、非特許文献1や非特許文献2に開示された周知技術を用いることができる。秘密計算によるランダム置換には、例えば、非特許文献2や参考文献1(Sven Laur, Jan Willemson, and Bingsheng Zhang, “Round-efficient oblivious database manipulation,” In Xuejia Lai, Jianying Zhou, and Hui Li, editors, ISC, Vol. 7001 of LNCS, pp. 262-277. Springer, 2011.)等に開示された周知技術を用いることができる。秘密計算による安定ソートには、例えば、非特許文献2や参考文献2(濱田浩気, 五十嵐大, 千田浩司, 高橋克巳, “秘匿関数計算上の線形時間ソート,” In SCIS, pp. 1-7, 2011.)等に開示された周知技術を用いることができる。その他、例えば、参考文献3(千田浩司, 谷口展郎, 山本剛, 岡崎聖人, 塩野入理, 金井敦, “エルガマル暗号に基づく秘匿回路計算の実装と応用”, CSS2005, pp. 475 - 480, 2005.)等の技術も利用できる。
なお、複製元の要素a(f(1)),…,a(f(M))を含む集合である第5集合または第5集合の秘匿文から、事前に前述の要素a(f(h))−a(f(h−1))を含む集合である第4集合または第4集合の秘匿文が得られる場合には、第1演算部は、この第4集合または第4集合の秘匿文を用い、第2集合または第2集合の秘匿文を得てもよい(事前計算方式)。例えば、要素a(1),…,a(N)の順序に沿った順序付けがなされた複製元の要素a(f(1)),…,a(f(M))を含む第6集合に含まれる複製元の要素a(f(h))をa(f(h))−a(f(h−1))にした集合である第4集合または第4集合の秘匿文が事前に得られる場合には、第1演算部は、この第4集合または第4集合の秘匿文を用い、第2集合または第2集合の秘匿文を得てもよい。これにより、演算コストをさらに低減できる。この方式は、例えば、第1集合または第1集合の秘匿文が、第5集合もしくは第5集合の秘匿文、または第6集合もしくは第6集合の秘匿文(以下「第5集合等」)から得られる場合、すなわち、第1集合または第1集合の秘匿文よりも第5集合等が先に得られる場合(例えば、非特許文献2の方式)に適したものである。
そうでない場合、第1演算部が、第1集合または第1集合の秘匿文を用い、第2集合または第2集合の秘匿文を得てもよい(事後計算方式)。例えば、第1演算部は、第1集合または第1集合の秘匿文を用い、複製元であるか否かをソート条件として第1集合に含まれる要素a(1),…,a(N)の安定ソートを行って得られる、要素a(1),…,a(N)を含み、かつ、要素a(f(1)),…,a(f(M))の順序が連続した集合である第7集合または第7集合の秘匿文を得、第7集合または第7集合の秘匿文を用い、h=2,…,Mについて、第7集合に含まれる複製元の要素a(f(h))をa(f(h))−a(f(h−1))にした集合である第8集合または第8集合の秘匿文を得、第8集合または第8集合の秘匿文を用い、第8集合の要素をソートして複製元以外の要素を零にして得られる集合である第2集合、または第2集合の秘匿文を得てもよい。
この場合、第1演算部は、例えば、第1集合の秘匿文を用い、秘密計算によって第7集合の秘匿文を得、要素a(1),…,a(N)の安定ソートに応じて要素a(1),…,a(N)それぞれの順序を表す要素p(a(1)),…,p(a(N))をソートして得られる要素を含む集合である第9集合の秘匿文を得、第7集合の秘匿文を用い、秘密計算によって第8集合の秘匿文を得、第8集合の秘匿文および第9集合の秘匿文を用い、秘密計算によって、第8集合の要素と第9集合の要素との対応関係を維持しつつ、第8集合の要素の順序および第9集合の要素の順序をランダム置換して得られる、第8集合の要素の順序が並び替えられた集合である第10集合および第9集合の要素の順序が並び替えられた集合である第11集合にそれぞれ対応する、第10集合の秘匿文および第11集合の秘匿文を得、第11集合の秘匿文の復元結果および第10集合の秘匿文を用い、第10集合の要素をソートして複製元以外の要素を零にして得られる集合である第2集合の秘匿文を得てもよい。
ここで、第8集合の秘匿文は、各要素の内容は秘匿されているものの、複製元の要素に対応するa(f(h))−a(f(h−1)の秘匿文の順序が連続している。そのため、第9集合の秘匿文が復元され、複製元の要素に対応するa(f(h))−a(f(h−1)の秘匿文の順序を表す要素が復元されてしまうと、第1集合のいずれの要素が複製元の要素であったのかについての情報がある程度漏洩してしまう。これに対し、上述のように秘密計算でランダム置換を行ってから順序を表す要素を得ることにすれば、このような情報が漏洩することはない。
なお、各実施形態において「第2集合の秘匿文」および「第3集合の秘匿文」を得る場合、第1演算部は、秘密計算によって第2集合の秘匿文を得、第2演算部は、第2集合の秘匿文を用い、秘密計算によって第3集合の秘匿文を得る。
以下、図面を参照して各実施形態を詳細に説明する。
各実施形態では、ある情報αの秘匿文を[α]と表記する。例えば、秘密分散によって秘匿化された[α]は秘密分散の断片(シェア)であり、暗号化によって秘匿化された[α]は暗号文である。ベクトルβの第s要素をβ(s)と表記し、ベクトルβの各要素β(s)を秘匿化したベクトル全体を[β]と表記し、ベクトルβの秘匿文[β]と呼ぶ。
各実施形態では、ある情報αの秘匿文を[α]と表記する。例えば、秘密分散によって秘匿化された[α]は秘密分散の断片(シェア)であり、暗号化によって秘匿化された[α]は暗号文である。ベクトルβの第s要素をβ(s)と表記し、ベクトルβの各要素β(s)を秘匿化したベクトル全体を[β]と表記し、ベクトルβの秘匿文[β]と呼ぶ。
また、各実施形態では、要素a(1),…,a(N)を第1,…,N要素とするN次元のベクトルaを第1集合とし、要素a5(1),…,a5(N)を第1,…,N要素とするN次元のベクトルa5を第2集合とし、要素b(1),…,b(N)を第1,…,N要素とするN次元のベクトルbを第3集合とした例を説明する。これらのN次元のベクトルの各要素は、第1,…,N要素としてそれぞれ順序付けされている。以下にN=10、M=4の場合のベクトルa,a5,bを例示する。
ただし、ベクトルaの第1,第4,第5,第9要素であるw,x,y,zがそれぞれ複製元の要素であり、その他の要素*が複製元ではない要素である。なお「*」は任意の要素を表す。また、この例では2≦M<Nであるが、2≦M≦Nでも本実施形態の処理を行うことはできる。
ただし、ベクトルaの第1,第4,第5,第9要素であるw,x,y,zがそれぞれ複製元の要素であり、その他の要素*が複製元ではない要素である。なお「*」は任意の要素を表す。また、この例では2≦M<Nであるが、2≦M≦Nでも本実施形態の処理を行うことはできる。
[第1実施形態]
本形態では、前述した事前計算方式の具体例を説明する。
<構成>
図1に例示するように、本形態の秘密計算システム1は、1個以上の要素複製装置11−1〜Kを有する。ただし、秘密分散によって秘匿化を行う場合にはKは2以上の整数であり、暗号化によって秘匿計算を行う場合にはKは1以上の整数である。図2Aに例示するように、本形態の要素複製装置11−k(ただし、k∈{1,…,K})は、記憶部111−kと加法逆元演算部113−kと入力情報演算部114−k(第1演算部)と累積加法演算部115−k(第2演算部)と制御部116−kとを有する。図2Bに例示するように、本形態の入力情報演算部114−kは、複製元配置部1141−kと複製元情報生成部1142−kと乗法演算部1143−kとを有する。なお、要素複製装置11−kは、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)やRAM(random-access memory)・ROM(read-only memory)等のメモリ等を有する汎用または専用のコンピュータに所定のプログラムが読み込まれることで構成される装置であり、制御部116−kの制御のもとで各処理を実行する。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
本形態では、前述した事前計算方式の具体例を説明する。
<構成>
図1に例示するように、本形態の秘密計算システム1は、1個以上の要素複製装置11−1〜Kを有する。ただし、秘密分散によって秘匿化を行う場合にはKは2以上の整数であり、暗号化によって秘匿計算を行う場合にはKは1以上の整数である。図2Aに例示するように、本形態の要素複製装置11−k(ただし、k∈{1,…,K})は、記憶部111−kと加法逆元演算部113−kと入力情報演算部114−k(第1演算部)と累積加法演算部115−k(第2演算部)と制御部116−kとを有する。図2Bに例示するように、本形態の入力情報演算部114−kは、複製元配置部1141−kと複製元情報生成部1142−kと乗法演算部1143−kとを有する。なお、要素複製装置11−kは、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)やRAM(random-access memory)・ROM(read-only memory)等のメモリ等を有する汎用または専用のコンピュータに所定のプログラムが読み込まれることで構成される装置であり、制御部116−kの制御のもとで各処理を実行する。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
<事前計算>
本形態では、ベクトルa(第1集合)が要素複製装置11−kに入力されるのではなく、複製元の要素a(f(1)),…,a(f(M))のみからなるベクトルd1の秘匿文[d1](第5集合の秘匿文または第6集合の秘匿文)が要素複製装置11−kに入力され、記憶部111−kに格納されているものとする。なお、ベクトルd1の各要素a(f(1)),…,a(f(M))には、ベクトルaの要素a(1),…,a(N)の順序に沿った順序付けがなされている。本形態の例の場合、ベクトルd1の第j要素d1(j)はd1(j)=a(f(j))(ただし、j∈{1,…,M})である。なお、ベクトルaの大きさNおよび要素a(1),…,a(N)の順序は事前に定められている(本形態では、a(1),…,a(N)がN次元ベクトルの第1,…,N要素)。
本形態では、ベクトルa(第1集合)が要素複製装置11−kに入力されるのではなく、複製元の要素a(f(1)),…,a(f(M))のみからなるベクトルd1の秘匿文[d1](第5集合の秘匿文または第6集合の秘匿文)が要素複製装置11−kに入力され、記憶部111−kに格納されているものとする。なお、ベクトルd1の各要素a(f(1)),…,a(f(M))には、ベクトルaの要素a(1),…,a(N)の順序に沿った順序付けがなされている。本形態の例の場合、ベクトルd1の第j要素d1(j)はd1(j)=a(f(j))(ただし、j∈{1,…,M})である。なお、ベクトルaの大きさNおよび要素a(1),…,a(N)の順序は事前に定められている(本形態では、a(1),…,a(N)がN次元ベクトルの第1,…,N要素)。
図2Bに例示するように、加法逆元演算部113−k(図2A)は、記憶部111−kからベクトルd1の秘匿文[d1]を抽出し、秘密計算によって、ベクトルd1に含まれる複製元の要素a(f(h))をa(f(h))−a(f(h−1))(ただし、h∈{2,…,M})にし、複製元の要素a(f(1))をそのまま維持したベクトルd2(第4集合)の秘匿文[d2]を得る。すなわち、ベクトルd2の要素d2(h)(ただし、h∈{2,…,M})は、要素d2(h)=d1(h)−d1(h−1)であり、ベクトルd2の要素d2(1)は、d2(1)=d1(1)である(ステップS113)。加法逆元演算部113−kは、ベクトルd2の秘匿文[d2]を出力し、ベクトルd2の秘匿文[d2]は記憶部111−kに格納される(ステップS111)。なお、式(1)で例示したベクトルaの場合、ベクトルa,d1,d2の関係は以下のようになる。
<要素複製>
図2Cを用いて本形態の要素複製の処理を説明する。入力情報演算部114−kは、記憶部111−kからベクトルd2(第4集合)の秘匿文[d2]を抽出する。入力情報演算部114−kは、ベクトルd2の秘匿文[d2]を用い、秘密計算によって、h=2,…,Mについて、ベクトルaの複製元の要素a(f(h))を要素a(f(h))−a(f(h−1))にし、複製元以外の要素を零にして得られる、要素a5(1),…,a5(N)を第1,…,N要素とするN次元のベクトルであるベクトルa5(第2集合)の秘匿文[a5]を得る。本形態の例の場合、ベクトルaの要素a(1),…,a(N)の順序が予め定められており、各複製元の要素a(f(h))の順序(ベクトルaでの位置)も定められている。入力情報演算部114−kは、これに従ってベクトルaの各複製元の要素a(f(h))の位置に要素a(f(h))−a(f(h−1))を配置し、その他の位置に零を配置したN次元のベクトルであるベクトルa5の秘匿文[a5]を得て出力する(ステップS114)。
図2Cを用いて本形態の要素複製の処理を説明する。入力情報演算部114−kは、記憶部111−kからベクトルd2(第4集合)の秘匿文[d2]を抽出する。入力情報演算部114−kは、ベクトルd2の秘匿文[d2]を用い、秘密計算によって、h=2,…,Mについて、ベクトルaの複製元の要素a(f(h))を要素a(f(h))−a(f(h−1))にし、複製元以外の要素を零にして得られる、要素a5(1),…,a5(N)を第1,…,N要素とするN次元のベクトルであるベクトルa5(第2集合)の秘匿文[a5]を得る。本形態の例の場合、ベクトルaの要素a(1),…,a(N)の順序が予め定められており、各複製元の要素a(f(h))の順序(ベクトルaでの位置)も定められている。入力情報演算部114−kは、これに従ってベクトルaの各複製元の要素a(f(h))の位置に要素a(f(h))−a(f(h−1))を配置し、その他の位置に零を配置したN次元のベクトルであるベクトルa5の秘匿文[a5]を得て出力する(ステップS114)。
累積加法演算部115−kは、ベクトルa5(第2集合)の秘匿文[a5]を用い、秘密計算によって、第1要素がb(1)=a5(1)であり、第i=2,…,N要素がb(i)=b(i−1)+a5(i)であるN次元ベクトルであるベクトルb(第3集合)の秘匿文[b]を得て出力する(ステップS115)。累積加法演算部115−kは、例えば、まずb(1)=a5(1)の秘匿文[b(1)]を得る秘密計算を行い、その後、i=2からiを1ずつ増加させながら、各i=2,…,Nについてb(i)=b(i−1)+a5(i)の秘匿文[b(i)]を得る秘密計算を行って、ベクトルbの秘匿文[b]を得る。
[第1実施形態の変形例1]
第1実施形態では、ベクトルaの要素a(1),…,a(N)の順序に沿った順序付けがなされたベクトルd1の秘匿文[d1]が要素複製装置11−kに入力され、記憶部111−kに格納されている例を示した。本変形例では、複製元の要素a(f(1)),…,a(f(M))のみからなるが、これらがベクトルaの要素a(1),…,a(N)の順序に沿った順序となっていないベクトルdの秘匿文[d]が要素複製装置11−kに入力され、記憶部111−kに格納されている場合の処理を説明する。
第1実施形態では、ベクトルaの要素a(1),…,a(N)の順序に沿った順序付けがなされたベクトルd1の秘匿文[d1]が要素複製装置11−kに入力され、記憶部111−kに格納されている例を示した。本変形例では、複製元の要素a(f(1)),…,a(f(M))のみからなるが、これらがベクトルaの要素a(1),…,a(N)の順序に沿った順序となっていないベクトルdの秘匿文[d]が要素複製装置11−kに入力され、記憶部111−kに格納されている場合の処理を説明する。
本変形例の秘密計算システム1’の要素複製装置11’−kは、第1実施形態の要素複製装置11−kにソート部112’−kを加えたものである(図1および図2A)。ソート部112’−kは、記憶部111−kからベクトルdの秘匿文[d]を抽出し、秘密計算によってベクトルdの秘匿文[d]をソートし、ベクトルaの要素a(1),…,a(N)の順序に沿った順序付けがなされたベクトルd1の秘匿文[d1]を得て出力する(図2B/ステップS112’)。ベクトルd1の秘匿文[d1]は加法逆元演算部113−kに入力される。その他は第1実施形態で説明した通りである。例えば、式(1)に例示したベクトルaの場合、ベクトルa,d,d1,d2の関係は以下のようになる。
[第1実施形態の変形例2]
第1実施形態および第1実施形態の変形例1では、ベクトルの秘匿文を処理対象として秘密計算を行った。しかしながら、公開してよいベクトルについては、ベクトルの秘匿文を処理対象とすることに代えて平文であるベクトルを処理対象とし、秘密計算を行うことに代えて平文であるベクトルに対する演算を行ってもよい。例えば、ベクトルdを公開してよい場合には、ソート部112’−kがベクトルdをソートしてベクトルd1を得てもよい。例えば、ベクトルd1を公開してよい場合には、加法逆元演算部113−kがベクトルd2を用いてベクトルd1を計算し、入力情報演算部114−kがベクトルd2をそのまま用いてもよい。その他、例えば、加法逆元演算部113−kがベクトルd2を用いてベクトルa5を計算してもよいし、累積加法演算部115−kがベクトルa5を用いてベクトルbを計算してもよい。その他、演算結果のベクトルを秘匿化して出力してもよい。
第1実施形態および第1実施形態の変形例1では、ベクトルの秘匿文を処理対象として秘密計算を行った。しかしながら、公開してよいベクトルについては、ベクトルの秘匿文を処理対象とすることに代えて平文であるベクトルを処理対象とし、秘密計算を行うことに代えて平文であるベクトルに対する演算を行ってもよい。例えば、ベクトルdを公開してよい場合には、ソート部112’−kがベクトルdをソートしてベクトルd1を得てもよい。例えば、ベクトルd1を公開してよい場合には、加法逆元演算部113−kがベクトルd2を用いてベクトルd1を計算し、入力情報演算部114−kがベクトルd2をそのまま用いてもよい。その他、例えば、加法逆元演算部113−kがベクトルd2を用いてベクトルa5を計算してもよいし、累積加法演算部115−kがベクトルa5を用いてベクトルbを計算してもよい。その他、演算結果のベクトルを秘匿化して出力してもよい。
[第2実施形態]
本形態では、前述した事後計算方式の具体例を説明する。
<構成>
図1に例示するように、本形態の秘密計算システム2は、1個以上の要素複製装置12−1〜Kを有する。図3Aに例示するように、本形態の要素複製装置21−k(ただし、k∈{1,…,K})は、記憶部211−kと順序情報生成部212−kと入力情報演算部214−k(第1演算部)と累積加法演算部115−k(第2演算部)と制御部116−kとを有する。入力情報演算部214−kは、安定ソート部2141−kと加法逆元演算部2142−kとソート部2143−kと乗法演算部2144−kとを有する。図3Bに例示するように、ソート部2143−kは、ランダム置換部2143a−kと復元部2143b−kと順序復元部2143c−kとを有する。なお、累積加法演算部115−kは第1実施形態で説明したものと同じである。要素複製装置21−kは、例えば、汎用または専用のコンピュータに所定のプログラムが読み込まれることで構成される装置であり、制御部216−kの制御のもとで各処理を実行する。
本形態では、前述した事後計算方式の具体例を説明する。
<構成>
図1に例示するように、本形態の秘密計算システム2は、1個以上の要素複製装置12−1〜Kを有する。図3Aに例示するように、本形態の要素複製装置21−k(ただし、k∈{1,…,K})は、記憶部211−kと順序情報生成部212−kと入力情報演算部214−k(第1演算部)と累積加法演算部115−k(第2演算部)と制御部116−kとを有する。入力情報演算部214−kは、安定ソート部2141−kと加法逆元演算部2142−kとソート部2143−kと乗法演算部2144−kとを有する。図3Bに例示するように、ソート部2143−kは、ランダム置換部2143a−kと復元部2143b−kと順序復元部2143c−kとを有する。なお、累積加法演算部115−kは第1実施形態で説明したものと同じである。要素複製装置21−kは、例えば、汎用または専用のコンピュータに所定のプログラムが読み込まれることで構成される装置であり、制御部216−kの制御のもとで各処理を実行する。
<要素複製>
図4Aを用いて本形態の要素複製の処理を説明する。
前提として、ベクトルa(第1集合)の秘匿文[a]と、ベクトルaの要素a(1),…,a(N)が複製元の要素であるか否かを表すベクトルcの秘匿文[c]とが要素複製装置21−kに入力され、記憶部211−kに格納されているとする。なお、ベクトルcの第n要素はφ(a(n))である。ただし、a(n)が複製元の要素であるときφ(a(n))=1であり、φ(a(n))が複製元の要素でないときφ(a(n))=0である。例えば、式(1)に例示したベクトルaの場合、ベクトルa,cの関係は以下のようになる。
図4Aを用いて本形態の要素複製の処理を説明する。
前提として、ベクトルa(第1集合)の秘匿文[a]と、ベクトルaの要素a(1),…,a(N)が複製元の要素であるか否かを表すベクトルcの秘匿文[c]とが要素複製装置21−kに入力され、記憶部211−kに格納されているとする。なお、ベクトルcの第n要素はφ(a(n))である。ただし、a(n)が複製元の要素であるときφ(a(n))=1であり、φ(a(n))が複製元の要素でないときφ(a(n))=0である。例えば、式(1)に例示したベクトルaの場合、ベクトルa,cの関係は以下のようになる。
まず、順序情報生成部212−k(図3A)は、ベクトルaの各要素a(n)(ただし、n∈{1,…,N})の順序(位置)の目印となるベクトルpの秘匿文[p]を生成して出力する(ステップS212)。ベクトルpは、互いに異なるN個の要素p(a(n))(ただし、n∈{1,…,N})(例えば、予め定められた要素)からなるN次元のベクトルであればよく、例えば、p(a(n))=n−1(ただし、n∈{1,…,N})とすればよい。ベクトルpの秘匿文[p]は記憶部211−kに格納される。例えば、ベクトルaが式(1)に例示したものであり、p(a(n))=n−1である場合、ベクトルa,c,pの関係は以下のようになる。
入力情報演算部214−kは、記憶部211−kからベクトルa(第1集合)の秘匿文[a]とベクトルpの秘匿文[p]とベクトルcの秘匿文[c]を抽出し、秘密計算によってベクトルa5(第2集合)の秘匿文[a5]を得て出力する(ステップS214)。
《ステップS214の詳細》
図4Bを用いてステップS214の詳細を説明する。
本形態では、まず、安定ソート部2141−kが、記憶部211−kからベクトルaの秘匿文[a]とベクトルpの秘匿文[p]とを抽出する。安定ソート部2141−kは、抽出したベクトルaの秘匿文[a]とベクトルpの秘匿文[p]を用い、秘密計算によって、複製元であるか否かをソート条件としてベクトルaに含まれる要素a(1),…,a(N)の安定ソートを行って得られるベクトルa1(第7集合)の秘匿文[a1]と、この要素a(1),…,a(N)の安定ソートに応じてベクトルpの要素p(a(1)),…,p(a(N))をソートして得られる要素からなるベクトルp1(第9集合)の秘匿文[p1]とを得て出力する(ステップS2141)。ただし、ベクトルa1は、要素a(1),…,a(N)のみを含み、かつ、複製元の要素a(f(1)),…,a(f(M))の順序が連続したベクトルとなる。すなわち、ベクトルa1は要素a(1),…,a(N)のみを含み、かつ、ベクトルa1の第η,…,η+M−1要素が複製元の要素a(f(1)),…,a(f(M))であり、かつ、それ以外の要素が複製元ではない要素である。ただし、ηは1以上N+1−M以下の整数である。また、「第η要素」とはη番目の要素を意味する。例えば、ベクトルa1の第1,…,M要素が複製元の要素a(f(1)),…,a(f(M))であり、かつ、それ以外の要素が複製元ではない要素であってもよいし、ベクトルa1の第N−M+1,…,N要素が複製元の要素a(f(1)),…,a(f(M))であり、かつ、それ以外の要素が複製元ではない要素であってもよい。この安定ソートはベクトルaの要素a(n)とベクトルpの要素p(a(n))との対応を保ったまま行われる。言い換えると、要素a(n)と要素p(a(n))との対応関係が保持される。例えば、この安定ソートによって要素a(n)がベクトルa1のn’番目(ただし、nは1以上N以下の整数)の要素となる場合、要素a(n)に対応する要素p(a(n))はベクトルp1のn’番目の要素となる関係にある。ただし、これは平文での要素の順序であり、必ずしも秘匿化された要素がこの順序であるとは限らない。例えば、ベクトルaが式(1)に例示したものであり、p(a(n))=n−1であり、ベクトルa1の第1,…,M要素が複製元の要素a(f(1)),…,a(f(M))であり、かつ、それ以外の要素が複製元ではない要素である場合、ベクトルa1,p1の関係は以下のようになる。
図4Bを用いてステップS214の詳細を説明する。
本形態では、まず、安定ソート部2141−kが、記憶部211−kからベクトルaの秘匿文[a]とベクトルpの秘匿文[p]とを抽出する。安定ソート部2141−kは、抽出したベクトルaの秘匿文[a]とベクトルpの秘匿文[p]を用い、秘密計算によって、複製元であるか否かをソート条件としてベクトルaに含まれる要素a(1),…,a(N)の安定ソートを行って得られるベクトルa1(第7集合)の秘匿文[a1]と、この要素a(1),…,a(N)の安定ソートに応じてベクトルpの要素p(a(1)),…,p(a(N))をソートして得られる要素からなるベクトルp1(第9集合)の秘匿文[p1]とを得て出力する(ステップS2141)。ただし、ベクトルa1は、要素a(1),…,a(N)のみを含み、かつ、複製元の要素a(f(1)),…,a(f(M))の順序が連続したベクトルとなる。すなわち、ベクトルa1は要素a(1),…,a(N)のみを含み、かつ、ベクトルa1の第η,…,η+M−1要素が複製元の要素a(f(1)),…,a(f(M))であり、かつ、それ以外の要素が複製元ではない要素である。ただし、ηは1以上N+1−M以下の整数である。また、「第η要素」とはη番目の要素を意味する。例えば、ベクトルa1の第1,…,M要素が複製元の要素a(f(1)),…,a(f(M))であり、かつ、それ以外の要素が複製元ではない要素であってもよいし、ベクトルa1の第N−M+1,…,N要素が複製元の要素a(f(1)),…,a(f(M))であり、かつ、それ以外の要素が複製元ではない要素であってもよい。この安定ソートはベクトルaの要素a(n)とベクトルpの要素p(a(n))との対応を保ったまま行われる。言い換えると、要素a(n)と要素p(a(n))との対応関係が保持される。例えば、この安定ソートによって要素a(n)がベクトルa1のn’番目(ただし、nは1以上N以下の整数)の要素となる場合、要素a(n)に対応する要素p(a(n))はベクトルp1のn’番目の要素となる関係にある。ただし、これは平文での要素の順序であり、必ずしも秘匿化された要素がこの順序であるとは限らない。例えば、ベクトルaが式(1)に例示したものであり、p(a(n))=n−1であり、ベクトルa1の第1,…,M要素が複製元の要素a(f(1)),…,a(f(M))であり、かつ、それ以外の要素が複製元ではない要素である場合、ベクトルa1,p1の関係は以下のようになる。
加法逆元演算部2142−kは、ベクトルa1(第7集合)の秘匿文[a1]を用い、秘密計算によって、ベクトルa1に含まれる要素a1(1),a1(2),…,a1(N)を要素a2(1)=a1(1),a2(2)=a1(2)−a1(1),…,a2(N)=a1(N)−a1(N−1)にしたN次元のベクトルであるベクトルa2(第8集合)の秘匿文[a2]を得て出力する(ステップS2142)。例えば、式(2)に例示したベクトルa 1 の場合、ベクトルp1,a1,a2の関係は以下のようになる。
ソート部2143−kは、ベクトルa2(第8集合)の秘匿文[a2]およびベクトルp1(第9集合)の秘匿文[p1]を用い、秘密計算によって、ベクトルa2の要素をソートして得られるN次元のベクトルであるベクトルa4の秘匿文[a4]を得て出力する(ステップS2143)。ただし、ベクトルa4は、ベクトルa2の要素の順序を、ベクトルaの要素の順序に対応する元の順序に並び替えて得られるベクトルである。すなわち、ベクトルa4は、ベクトルa2の要素a(f(h))−a(f(h−1))をベクトルaの複製元の要素a(f(h))の順序にし、ベクトルa2の要素a(f(1))をベクトルaの複製元の要素a(f(1))の順序にし、ベクトルa2のその他の要素をそれに対応するベクトルaの元の順序に戻して得られるベクトルである。
《ステップS2143の詳細》
図4Cを用い、ステップS2143の詳細を説明する。
ソート部2143−kのランダム置換部2143a−kは、ベクトルa2(第8集合)の秘匿文[a2]およびベクトルp1(第9集合)の秘匿文[p1]を用い、秘密計算によって、ベクトルa2の要素a2(n)とベクトルp1の要素p1(n)との対応関係を維持しつつ(ただし、n∈{1,…,N})、ベクトルa2の要素a2(1),…,a2(N)の順序およびベクトルp1の要素p1(1),…,p1(N)の順序をランダム置換して得られる、N次元のベクトルa3(第10集合)およびN次元のベクトルp3(第11集合)にそれぞれ対応する、ベクトルa3の秘匿文[a3]およびベクトルp3の秘匿文[p3]を得て出力する(ステップS2143a)。ただし、ベクトルa3はベクトルa2の要素a2(1),…,a2(N)の順序が並び替えられたものであり、ベクトルp3はベクトルp1の要素p1(1),…,p1(N)の順序が並び替えられたものである。言い換えると、ランダム置換部2143a−kは、ベクトルa2(第8集合)の秘匿文[a2]およびベクトルp1(第9集合)の秘匿文[p1]を用い、秘密計算によって、ベクトルa3の秘匿文[a3]およびベクトルp3の秘匿文[p3]を得て出力する。ベクトルa3はベクトルa2の要素a2(1),…,a2(N)の順序をランダム置換して得られるものであり、ベクトルp3はベクトルp1の要素p1(1),…,p1(N)の順序をランダム置換して得られるものである。この処理では要素a2(n)と要素p1(n)との対応関係が維持される。例えば、このランダム置換によって要素a2(n)がベクトルa3のn’番目の要素となる場合、要素p1(n)はベクトルp3のn’番目の要素となる関係にある。ただし、これは平文での要素の順序であり、必ずしも秘匿化された要素がこの順序であるとは限らない。式(3)に例示したベクトルp1,a2の場合、ベクトルp3,a3の関係は、例えば以下のようになる。
図4Cを用い、ステップS2143の詳細を説明する。
ソート部2143−kのランダム置換部2143a−kは、ベクトルa2(第8集合)の秘匿文[a2]およびベクトルp1(第9集合)の秘匿文[p1]を用い、秘密計算によって、ベクトルa2の要素a2(n)とベクトルp1の要素p1(n)との対応関係を維持しつつ(ただし、n∈{1,…,N})、ベクトルa2の要素a2(1),…,a2(N)の順序およびベクトルp1の要素p1(1),…,p1(N)の順序をランダム置換して得られる、N次元のベクトルa3(第10集合)およびN次元のベクトルp3(第11集合)にそれぞれ対応する、ベクトルa3の秘匿文[a3]およびベクトルp3の秘匿文[p3]を得て出力する(ステップS2143a)。ただし、ベクトルa3はベクトルa2の要素a2(1),…,a2(N)の順序が並び替えられたものであり、ベクトルp3はベクトルp1の要素p1(1),…,p1(N)の順序が並び替えられたものである。言い換えると、ランダム置換部2143a−kは、ベクトルa2(第8集合)の秘匿文[a2]およびベクトルp1(第9集合)の秘匿文[p1]を用い、秘密計算によって、ベクトルa3の秘匿文[a3]およびベクトルp3の秘匿文[p3]を得て出力する。ベクトルa3はベクトルa2の要素a2(1),…,a2(N)の順序をランダム置換して得られるものであり、ベクトルp3はベクトルp1の要素p1(1),…,p1(N)の順序をランダム置換して得られるものである。この処理では要素a2(n)と要素p1(n)との対応関係が維持される。例えば、このランダム置換によって要素a2(n)がベクトルa3のn’番目の要素となる場合、要素p1(n)はベクトルp3のn’番目の要素となる関係にある。ただし、これは平文での要素の順序であり、必ずしも秘匿化された要素がこの順序であるとは限らない。式(3)に例示したベクトルp1,a2の場合、ベクトルp3,a3の関係は、例えば以下のようになる。
復元部2143b−kは、ベクトルp3の秘匿文[p3]からベクトルp3を復元して出力する(ステップS2143b)。
順序復元部2143c−kは、ベクトルa3の秘匿文[a3]を用い、秘密計算によって、ベクトルa3の要素をベクトルp3に従ってソートして得られるN次元のベクトルであるベクトルa4の秘匿文[a4]を得て出力する(ステップS2143c)。ベクトルa4は、ベクトルa3の要素をベクトルaの要素の順序に対応する元の順序に並び替えて得られるベクトルである。この順序はベクトルp3の要素から判断できる(式(4)参照)。すなわち、ベクトルp3の要素の順序をベクトルpの要素の順序に並び替えるソートによって、ベクトルa3の要素を並び替えて得られるN次元のベクトルがベクトルa4である。式(4)に例示したベクトルp3,a3の場合、ベクトルa4は、例えば以下のようになる(《ステップS2143の詳細》の説明終わり)。
乗法演算部2144−kが、ベクトルa4の秘匿文[a4]およびベクトルcの秘匿文[c]を用い、秘密計算によって、ベクトルa4の要素a4(n)とベクトルcの要素c(n)との乗法演算結果(例えば、乗算結果や乗算結果の剰余)を要素a5(n)(ただし、n∈{1,…,N})として得られるベクトルa5(第2集合)の秘匿文[a5]を得て出力する(ステップS2144)。なお、要素a4(n)はベクトルa4のn番目の要素であり、要素c(n)はベクトルcのn番目の要素であり、要素a5(n)はベクトルa5のn番目の要素である。この処理は、ベクトルa4の複製元ではない要素を零にしたベクトルa5の秘匿文[a5]を得る処理である。例えば、式(1)に例示したベクトルaに対応するベクトルc、および式(5)に例示したベクトルa4の場合、ベクトルa4,c,a5の関係は以下のようになる(《ステップS214の詳細》の説明終わり)。
ベクトルa5の秘匿文[a5]は、累積加法演算部115−kに入力され、第1実施形態で説明した処理が実行され、ベクトルbの秘匿文[b]が得られる。例えば、式(6)のベクトルa5の場合、ベクトルa5,bの関係は以下のようになる。
[第2実施形態の変形例1]
第2実施形態では、ソート部2143−kが、秘密計算によってランダム置換を含むソートを行った。本変形例では、これに代えて、秘密計算によってランダム置換を含まないソートを行う。その他は、第2実施形態と同じである。
第2実施形態では、ソート部2143−kが、秘密計算によってランダム置換を含むソートを行った。本変形例では、これに代えて、秘密計算によってランダム置換を含まないソートを行う。その他は、第2実施形態と同じである。
本変形例の秘密計算システム2’の要素複製装置21’−kの入力情報演算部214−kは、第2実施形態のソート部2143−kに代えて、ソート部2143’−kを備えるものである(図3A)。ソート部2143’−kは、ベクトルa2(第8集合)の秘匿文[a2]およびベクトルp1(第9集合)の秘匿文[p1]を用い、秘密計算によって、ベクトルa2の要素をソートして得られるN次元のベクトルであるベクトルa4の秘匿文[a4]を得て出力する(ステップS2143’)。ただし、ステップS2143と異なり、ソート部2143’−kは、前述のステップS2143a,S2143bを実行せずに、ベクトルp1の秘匿文[p1]を用い、ベクトルa4の秘匿文[a4]を得て出力する。ソート部2143’−kは、ベクトルp1の秘匿文[p1]から復元したベクトルp1を用い、秘密計算によってベクトルa4の秘匿文[a4]を得てもよいし、ベクトルp1の秘匿文[p1]を復元することなく、秘密計算によってベクトルa4の秘匿文[a4]を得てもよい。
[第2実施形態の変形例2]
第2実施形態および第2実施形態の変形例1では、ベクトルの秘匿文を処理対象として秘密計算を行った。しかしながら、公開してよいベクトルについては、ベクトルの秘匿文を処理対象とすることに代えて平文であるベクトルを処理対象とし、秘密計算を行うことに代えて平文であるベクトルに対する演算を行ってもよい。例えば、順序情報生成部212−kがベクトルpを出力してもよいし、安定ソート部2141−kがベクトルa,pの安定ソートを行ってベクトルa1,p1を得て出力してもよいし、加法逆元演算部2142−kがベクトルa1からベクトルa2を得て出力してもよいし、ソート部2143−kや2143’−kがベクトルa2,p1を用いてベクトルa4を得て出力してもよいし、乗法演算部2144−kがベクトルa4,cを用いてベクトルa5を得て出力してもよい。
第2実施形態および第2実施形態の変形例1では、ベクトルの秘匿文を処理対象として秘密計算を行った。しかしながら、公開してよいベクトルについては、ベクトルの秘匿文を処理対象とすることに代えて平文であるベクトルを処理対象とし、秘密計算を行うことに代えて平文であるベクトルに対する演算を行ってもよい。例えば、順序情報生成部212−kがベクトルpを出力してもよいし、安定ソート部2141−kがベクトルa,pの安定ソートを行ってベクトルa1,p1を得て出力してもよいし、加法逆元演算部2142−kがベクトルa1からベクトルa2を得て出力してもよいし、ソート部2143−kや2143’−kがベクトルa2,p1を用いてベクトルa4を得て出力してもよいし、乗法演算部2144−kがベクトルa4,cを用いてベクトルa5を得て出力してもよい。
[特徴]
以上のように、複製元の要素を、当該複製元の要素とその一つ前の複製元の要素の加法逆元との加法演算結果(例えば減算結果)に置き換えておくことで、複製の処理を多くの処理を非常に軽い演算である加法演算(例えば加算)で実現できる。その結果、従来よりも演算コストを低減させることができる。なお、ベクトルa4または秘匿文[a4]からベクトルa5または秘匿文[a5]を得るためには乗算等の乗算演算が1段必要であるが、その段数はNに依存しない。特に、第1実施形態のように複製元の要素に対して事前処理が行える場合には、要素複製時の複製に要する計算はO(N)回の加算演算のみとなる。
以上のように、複製元の要素を、当該複製元の要素とその一つ前の複製元の要素の加法逆元との加法演算結果(例えば減算結果)に置き換えておくことで、複製の処理を多くの処理を非常に軽い演算である加法演算(例えば加算)で実現できる。その結果、従来よりも演算コストを低減させることができる。なお、ベクトルa4または秘匿文[a4]からベクトルa5または秘匿文[a5]を得るためには乗算等の乗算演算が1段必要であるが、その段数はNに依存しない。特に、第1実施形態のように複製元の要素に対して事前処理が行える場合には、要素複製時の複製に要する計算はO(N)回の加算演算のみとなる。
[変形例等]
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
本発明は、例えば、表計算分野等に利用でき、特に、秘匿化された表の一部の要素を秘匿化したままで複製する計算を行うソフトウェア分野(暗号技術分野)等に利用できる。例えば、暗号技術分野で利用される集合の要素複製処理(表計算処理等)に本発明を利用できる。
秘密計算システム 1,1’,2,2’
要素複製装置 11−k,11’−k,21−k,21’−k
要素複製装置 11−k,11’−k,21−k,21’−k
Claims (8)
- 第1集合が、順序付けされた複数個の要素a(1),…,a(N)を含む集合であり、前記複数個の要素a(1),…,a(N)からなる集合が複数個の複製元の要素a(f(1)),…,a(f(M))を含み、複製元の要素a(f(h))よりも順序が前であって前記複製元の要素a(f(h))に順序が最も近い複製元の要素a(f(h−1))の加法逆元が−a(f(h−1))であり、h=2,…,Mについて、前記第1集合に含まれる前記複製元の要素a(f(h))を要素a(f(h))−a(f(h−1))にし、前記第1集合に含まれる複製元以外の要素を零にして得られる、複数個の要素a5(1),…,a5(N)を含む集合である第2集合または前記第2集合の秘匿文を得る第1演算部と、
前記第2集合の1番目の要素がa5(1)であり、前記第2集合のi=2,…,N番目の要素がa5(i)であり、前記第2集合を用い、1番目の要素b(1)=a5(1)とi=2,…,N番目の要素b(i)=b(i−1)+a5(i)とを含む集合である第3集合もしくは前記第3集合の秘匿文を得るか、または、前記第2集合の秘匿文を用い、前記第3集合の秘匿文を得る第2演算部と、
を有する要素複製装置。 - 請求項1の要素複製装置であって、
前記複製元の要素a(f(1)),…,a(f(M))を含む集合である第5集合から、事前に前記要素a(f(h))−a(f(h−1))を含む集合である第4集合もしくは前記第4集合の秘匿文が得られているか、または、前記第5集合の秘匿文から、前記第4集合の秘匿文が得られており、かつ、前記第1演算部が、前記第4集合を用い、前記第2集合もしくは前記第2集合の秘匿文を得るか、または、前記第1演算部が、前記第4集合の秘匿文を用い、前記第2集合の秘匿文を得るか、または、
前記第1演算部が、前記第1集合を用い、前記第2集合もしくは前記第2集合の秘匿文を得るか、または、前記第1演算部が、前記第1集合の秘匿文を用い、前記第2集合の秘匿文を得る要素複製装置。 - 請求項1または2の要素複製装置であって、
前記要素a(1),…,a(N)の順序に沿った順序付けがなされた前記複製元の要素a(f(1)),…,a(f(M))を含む第6集合に含まれる前記複製元の要素a(f(h))をa(f(h))−a(f(h−1))にした集合である第4集合または前記第4集合の秘匿文が事前に得られており、
前記第1演算部は、前記第4集合を用い、前記第2集合もしくは前記第2集合の秘匿文を得るか、または、前記第4集合の秘匿文を用い、前記第2集合の秘匿文を得る要素複製装置。 - 請求項1または2の要素複製装置であって、
前記第1演算部は、
前記第1集合を用い、複製元であるか否かをソート条件として前記第1集合に含まれる前記要素a(1),…,a(N)の安定ソートを行って得られる、前記要素a(1),…,a(N)を含み、かつ、前記要素a(f(1)),…,a(f(M))の順序が連続した集合である第7集合もしくは前記第7集合の秘匿文を得るか、または、前記第1集合の秘匿文を用い、前記第7集合の秘匿文を得、
前記第7集合を用い、h=2,…,Mについて、前記第7集合に含まれる要素a1(1),a1(2),…,a1(N)を要素a2(1)=a1(1),a2(2)=a1(2)−a1(1),…,a2(N)=a1(N)−a1(N−1)にした集合である第8集合もしくは前記第8集合の秘匿文を得るか、または、前記第7集合の秘匿文を用い、前記第8集合の秘匿文を得、
前記第8集合を用い、前記第8集合の要素をソートして複製元以外の要素を零にして得られる集合である前記第2集合もしくは前記第2集合の秘匿文を得るか、または、前記第8集合の秘匿文を用い、前記第2集合の秘匿文を得る、要素複製装置。 - 請求項4の要素複製装置であって、
前記第1演算部は、
前記第1集合の秘匿文を用い、秘密計算によって前記第7集合の秘匿文を得、
前記要素a(1),…,a(N)の安定ソートに応じて前記要素a(1),…,a(N)それぞれの順序を表す要素p(a(1)),…,p(a(N))をソートして得られる要素を含む集合である第9集合の秘匿文を得、
前記第7集合の秘匿文を用い、秘密計算によって前記第8集合の秘匿文を得、
前記第8集合の秘匿文および前記第9集合の秘匿文を用い、秘密計算によって、前記第8集合の要素と前記第9集合の要素との対応関係を維持しつつ、前記第8集合の要素の順序および前記第9集合の要素の順序をランダム置換して得られる、前記第8集合の要素の順序が並び替えられた集合である第10集合および前記第9集合の要素の順序が並び替えられた集合である第11集合にそれぞれ対応する、第10集合の秘匿文および第11集合の秘匿文を得、
前記第11集合の秘匿文の復元結果および前記第10集合の秘匿文を用い、前記第10集合の要素をソートして複製元以外の要素を零にして得られる集合である前記第2集合の秘匿文を得る、要素複製装置。 - 請求項1の要素複製装置であって、
前記第1演算部は、秘密計算によって前記第2集合の秘匿文を得、
前記第2演算部は、前記第2集合の秘匿文を用い、秘密計算によって前記第3集合の秘匿文を得る、要素複製装置。 - 第1集合が、順序付けされた複数個の要素a(1),…,a(N)を含む集合であり、前記複数個の要素a(1),…,a(N)からなる集合が複数個の複製元の要素a(f(1)),…,a(f(M))を含み、複製元の要素a(f(h))よりも順序が前であって前記複製元の要素a(f(h))に順序が最も近い複製元の要素a(f(h−1))の加法逆元が−a(f(h−1))であり、第1演算部で、h=2,…,Mについて、前記第1集合に含まれる前記複製元の要素a(f(h))を要素a(f(h))−a(f(h−1))にし、前記第1集合に含まれる複製元以外の要素を零にして得られる、複数個の要素a5(1),…,a5(N)を含む集合である第2集合または前記第2集合の秘匿文を得る第1ステップと、
前記第2集合の1番目の要素がa5(1)であり、前記第2集合のi=2,…,N番目の要素がa5(i)であり、第2演算部で、前記第2集合を用い、1番目の要素b(1)=a5(1)とi=2,…,N番目の要素b(i)=b(i−1)+a5(i)とを含む集合である第3集合もしくは前記第3集合の秘匿文を得るか、または、前記第2集合の秘匿文を用い、前記第3集合の秘匿文を得る第2ステップと、
を有する要素複製方法。 - 請求項1の要素複製装置としてコンピュータを機能させるためのプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014006618 | 2014-01-17 | ||
JP2014006618 | 2014-01-17 | ||
PCT/JP2014/081546 WO2015107780A1 (ja) | 2014-01-17 | 2014-11-28 | 要素複製装置、要素複製方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6067890B2 true JP6067890B2 (ja) | 2017-01-25 |
JPWO2015107780A1 JPWO2015107780A1 (ja) | 2017-03-23 |
Family
ID=53542684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015557727A Active JP6067890B2 (ja) | 2014-01-17 | 2014-11-28 | 要素複製装置、要素複製方法、およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US10050775B2 (ja) |
EP (1) | EP3096308B1 (ja) |
JP (1) | JP6067890B2 (ja) |
CN (1) | CN105917400B (ja) |
WO (1) | WO2015107780A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111886642A (zh) * | 2018-03-12 | 2020-11-03 | 日本电信电话株式会社 | 秘密表参照系统、方法、秘密计算装置以及程序 |
JP6989006B2 (ja) | 2018-05-25 | 2022-01-05 | 日本電信電話株式会社 | 秘密集約関数計算システム、秘密計算装置、秘密集約関数計算方法、およびプログラム |
CN112395623B (zh) * | 2019-08-19 | 2023-09-29 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5731090A (en) * | 1980-07-31 | 1982-02-19 | Matsushita Electric Ind Co Ltd | Pattern distance calculation devices |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8650634B2 (en) * | 2009-01-14 | 2014-02-11 | International Business Machines Corporation | Enabling access to a subset of data |
US20130230168A1 (en) * | 2010-11-15 | 2013-09-05 | Nec Corporation | Information processing device, information processing method, and computer readable medium |
CN102426690B (zh) * | 2011-07-30 | 2013-08-07 | 成都信息工程学院 | 一种数字图像秘密分享及恢复方法 |
-
2014
- 2014-11-28 US US15/109,584 patent/US10050775B2/en active Active
- 2014-11-28 WO PCT/JP2014/081546 patent/WO2015107780A1/ja active Application Filing
- 2014-11-28 JP JP2015557727A patent/JP6067890B2/ja active Active
- 2014-11-28 CN CN201480073234.7A patent/CN105917400B/zh active Active
- 2014-11-28 EP EP14878779.9A patent/EP3096308B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5731090A (en) * | 1980-07-31 | 1982-02-19 | Matsushita Electric Ind Co Ltd | Pattern distance calculation devices |
Non-Patent Citations (1)
Title |
---|
JPN6014055207; 濱田浩気, 他: '秘匿計算上の一括写像アルゴリズム' 電子情報通信学会論文誌 Vol. J96-A, No. 4, 20130401, pp. 157-165, 電子情報通信学会 * |
Also Published As
Publication number | Publication date |
---|---|
US10050775B2 (en) | 2018-08-14 |
JPWO2015107780A1 (ja) | 2017-03-23 |
EP3096308A4 (en) | 2018-01-10 |
CN105917400B (zh) | 2019-03-15 |
WO2015107780A1 (ja) | 2015-07-23 |
CN105917400A (zh) | 2016-08-31 |
EP3096308A1 (en) | 2016-11-23 |
EP3096308B1 (en) | 2019-09-25 |
US20160330016A1 (en) | 2016-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Al Badawi et al. | Multi-GPU design and performance evaluation of homomorphic encryption on GPU clusters | |
US11164484B2 (en) | Secure computation system, secure computation device, secure computation method, and program | |
WO2016208437A1 (ja) | 秘密計算装置、秘密計算方法、およびプログラム | |
JP6583970B2 (ja) | 秘密乱数合成装置、秘密乱数合成方法、およびプログラム | |
JP6534778B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
JP6067890B2 (ja) | 要素複製装置、要素複製方法、およびプログラム | |
JPWO2018135566A1 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム | |
JP2016146530A (ja) | 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム | |
EP4016506B1 (en) | Softmax function secret calculation system, softmax function secret calculation device, softmax function secret calculation method, neural network secret calculation system, neural network secret learning system, and program | |
JP6585846B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
JP6367959B2 (ja) | 部分文字列位置検出装置、部分文字列位置検出方法及びプログラム | |
JP5961571B2 (ja) | 秘密表除算装置及び方法 | |
JP6977882B2 (ja) | 秘密一括近似システム、秘密計算装置、秘密一括近似方法、およびプログラム | |
Ganesan et al. | Efficient ml models for practical secure inference | |
JP6981473B2 (ja) | 秘密読み書き装置、秘密読み書き方法、およびプログラム | |
JP6825119B2 (ja) | 秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム | |
JP7205623B2 (ja) | 秘密共役勾配法計算システム、秘密計算装置、共役勾配法計算装置、秘密共役勾配法計算方法、共役勾配法計算方法、およびプログラム | |
Wang et al. | Towards Bootstrapping-free Homomorphic Encryption based GRU Network for Text Classification | |
Wijayanto et al. | Reduce Rounding Off Errors in Information Dispersal Algorithm | |
CN116894254A (zh) | 使用同态加密运算的装置和方法 | |
JPWO2019176520A1 (ja) | 秘密計算装置、秘密計算方法、プログラム、および記録媒体 | |
Sun | A Novel Matrix-Encoding Method for Privacy-Preserving Neural Networks (Inference) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161116 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161221 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6067890 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |