JP5078632B2 - 秘密計算システム、秘密計算方法、および秘密計算プログラム - Google Patents

秘密計算システム、秘密計算方法、および秘密計算プログラム Download PDF

Info

Publication number
JP5078632B2
JP5078632B2 JP2008010928A JP2008010928A JP5078632B2 JP 5078632 B2 JP5078632 B2 JP 5078632B2 JP 2008010928 A JP2008010928 A JP 2008010928A JP 2008010928 A JP2008010928 A JP 2008010928A JP 5078632 B2 JP5078632 B2 JP 5078632B2
Authority
JP
Japan
Prior art keywords
secret
data
fragment
logic circuit
circuit function
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
Application number
JP2008010928A
Other languages
English (en)
Other versions
JP2009175194A (ja
Inventor
浩司 千田
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 JP2008010928A priority Critical patent/JP5078632B2/ja
Priority to EP09703675.0A priority patent/EP2242032B1/en
Priority to US12/812,916 priority patent/US9300469B2/en
Priority to CN200980102192.4A priority patent/CN101911153B/zh
Priority to PCT/JP2009/050857 priority patent/WO2009093603A1/ja
Publication of JP2009175194A publication Critical patent/JP2009175194A/ja
Application granted granted Critical
Publication of JP5078632B2 publication Critical patent/JP5078632B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は暗号応用技術に関し、特に、入力値を秘匿したまま、その入力値に対する演算の結果を得る技術に関する。
非特許文献1には、入力値を秘匿したままで演算結果を得る技術が開示されている。図4は、非特許文献1に開示された技術を用いた秘密計算システムの構成を示すブロック図である。図4を参照すると、秘密計算システムは、秘密計算装置81Aと秘密計算装置81Bを有している。
秘密計算装置81Aは、論理回路関数f(x,y)と、xへの入力となるビット列mAとを保有している。秘密計算装置81Bは、同じく論理回路関数f(x,y)と、yへの入力となるビット列mBとを保有している。
秘密計算装置81Aと秘密計算装置81Bが互いに通信することにより、秘密計算装置81AがmBを容易に復元できるデータを得ることなく、秘密計算装置81BがmAを容易に復元できるデータを得ることなく、秘密計算装置81A,Bのいずれか一方または両方が論理回路関数f(x,y)の演算結果f(mA,mB)を得ることができる。
非特許文献1に開示された方法について概説する。以下に、一例として、秘密計算装置81Aがf(mA,mB)を得るための処理手順を挙げる。
(第1のステップ)
論理回路関数f(x,y)と、yへの入力となるビット列mBとを保有する秘密計算装置Bは、以下の(a)〜(d)を実行することにより、論理回路関数f(x,mB)を秘匿化する。そして、秘密計算装置81Bは、論理回路関数f(x,mB)を秘匿化したデータTgを秘密計算装置81Aに送る。
(a) 秘密計算装置81Bは、論理回路関数f(x,mB)の各ワイヤーiに対して、固定長の乱数
Figure 0005078632
を生成し、それぞれ0,1に対応させる。
(b) 次に、秘密計算装置81Bはランダムビットciを生成する。
(c) 更に、秘密計算装置81Bは、
Figure 0005078632
をワイヤーiに対応させる。ここで
Figure 0005078632
とする。
(d)次に、秘密計算装置81Bは、i,jを入力ワイヤー、kを出力ワイヤーとする論理ゲートgに対して、4つのラベル付きデータ
Figure 0005078632
を行単位でランダムな順番に並べたものをTgとする。このTgの集合は、fの秘匿化データとして秘密計算装置81Aに送信される。ここでコロンの左側をラベル、右側をデータとし、FW(x)はx,Wを入力として固定長の乱数を出力する関数であるとする。
(第2のステップ)
xへの入力となるビット列mAを保有する秘密計算装置81Aは、秘密計算装置81Bと1−out−of−2 Oblivious Transferプロトコルを実行する。これにより、秘密計算装置81Aは、mAのビットbを入力とするワイヤーに対応するデータ
Figure 0005078632
を得る。
(第3のステップ)
続いて、秘密計算装置81Aは、秘密計算装置81Bから受信したデータTgと、
Figure 0005078632
とを用いて、論理回路関数fの最終段のワイヤーの出力
Figure 0005078632
を算出する。
(第4のステップ)
更に、秘密計算装置81Aは、
Figure 0005078632
から、演算結果f(mA,mB)のビット
Figure 0005078632
を得る。
上記処理手順における第3のステップでは、秘密計算装置81Aは、入力ワイヤーi,j、出力ワイヤーkのゲートに対応するデータTgと、
Figure 0005078632
とが与えられたとき、先ずデータTgからラベル
Figure 0005078632
を持つデータ
Figure 0005078632
を取り出し、
Figure 0005078632
を計算する。これにより、出力ワイヤーに対応するデータ
Figure 0005078632
が得られる。他のゲートについても同様の処理を行えばよい。
また、第4のステップでは、秘密計算装置81Aは、例えばゲートgが論理回路関数fの最終段ゲートである場合に、ck=0とすることで
Figure 0005078632
から
Figure 0005078632
を得ることができる。
以上説明したように、非特許文献1の方法では、第2のステップにおいて秘密計算装置81Aと秘密計算装置81Bが1−out−of−2 Oblivious Transferプロトコルを実行する必要がある。1−out−of−2 Oblivious Transferプロトコルは、秘密計算装置81Aがデータd0,d1を保有し、秘密計算装置81Bがビットbを保有するとき、秘密計算装置81Bはdbを得ることができるが、
Figure 0005078632
を得ることはできず、かつ秘密計算装置81Aはbを得ることができないような特徴をもつプロトコルである。このプロトコルの詳細は、非特許文献2に説明がある。
非特許文献3には、入力値を秘匿したままで演算結果を得る他の技術が開示されている。図5は、非特許文献3に開示された技術を用いた秘密計算システムの構成を示すブロック図である。図5を参照すると、秘密計算システムは、複数の変換装置901〜90Nと秘密計算装置91A,91Bとを有している。2つの秘密計算装置91A,91Bによって秘密計算装置群91をなしている。
秘密計算装置91A,91Bからなる秘密計算装置群91は、各変換装置901〜90Nが保有するデータmi(1≦i≦N)を用いて、入力値miを容易に復元できるデータを得ることなく、論理回路関数fの演算結果f(m1,・・・,mN)を求める。
以下にその処理手順について概説する。
なお、これ以降の説明では、記号を簡略化するため、特に必要が無ければmiの添え字を省略することにする。
(第1のステップ)
まず、秘密計算装置91Bは、以下の(a)〜(d)を実行することにより、論理回路関数fを秘匿化する。そして、秘密計算装置91Bは、論理回路関数fを秘匿化したデータTgを、論理回路関数fの秘匿化データとして秘密計算装置91Aに送信する。
(a) 秘密計算装置91Bは論理回路関数fの各ワイヤーiに対して、固定長の乱数
Figure 0005078632
を生成し、それぞれ0,1に対応させる。
(b) 次に、秘密計算装置91Bは、ランダムビットciを生成する。
(c) 更に、秘密計算装置91Bは、
Figure 0005078632
をワイヤーiに対応させる。ここで
Figure 0005078632
とする。
(d) 更に、秘密計算装置91Bは、i,jを入力ワイヤー、kを出力ワイヤーとする論理ゲートgに対して、4つのラベル付きデータ
Figure 0005078632
を行単位でランダムな順番に並べたものをデータTgとする。このデータTgの集合が論理回路関数fの秘匿化データとして秘密計算装置91Aに送信される。ここでコロンの左側をラベル、右側をデータとし、FW(x)はx,Wを入力して固定長の乱数を出力する関数であるとする。
(第2のステップ)
各変換装置901〜90Nが、秘密計算装置91A,91Bとともに、proxy 1−out−of−2 Oblivious Transferを実行することにより、秘密計算装置91Aはmの各ビットbの入力ワイヤーiに対応するデータ
Figure 0005078632
を得る。
(第3のステップ)
更に、秘密計算装置91Aは、データTgと、
Figure 0005078632
とを用いて、論理回路関数fの最終段のワイヤーの出力
Figure 0005078632
を得る。
(第4のステップ)
更に、秘密計算装置91Aは、
Figure 0005078632
から、演算結果f(m1,・・・,mN)のビット
Figure 0005078632
を得る。
上記処理手順の第2のステップでは、proxy 1−out−of−2 Oblivious Transferが用いられている。このプロトコルは、1−out−of−2 Oblivious Transferを拡張したプロトコルである。このプロトコルによれば、変換装置901〜90Nが保有しているデータに関する情報bを秘密計算装置91Aに知られることなく、変換装置901〜90Nの代わりに秘密計算装置91Aが
Figure 0005078632
を算出することができる。
A.C.Yao, How to generate and exchange secrets,Proc. of FOCS ’86, pp.162−167,IEEE Press,1986. S.Even, O.Goldreich and A.Lempel,A randomized protocol for signing contracts, Communications of the ACM,Vol.28,No.6,pp.637−647,1985. M.Naor, B.Pinkas, and R.Sumner,Privacy preserving auctions and mechanism design,Proc. of ACM EC ’99,pp.129−139,ACM Press,1999.
上述したように、非特許文献1に開示された方法では、秘密計算装置81A,81Bが1−out−of−2 Oblivious Transferプロトコルを実行する必要がある。D.Malkhi, N.Nisan, B.Pinkas, and Y.Sella,Fairplay − a secure two−party computation system,Proc. of USENIX Security Symposium,pp.287−302,USENIX,2004.という文献によれば、実装上、1−out−of−2 Oblivious Transferプロトコルを実行するための計算量が秘密計算システム全体の計算量の大部分を占めると報告されている。したがって、実装上、その部分の処理を軽くすれば、秘密計算システムを構成する秘密計算装置の負荷を低減することができる。
また、1−out−of−2 Oblivious Transferプロトコルを拡張したproxy 1−out−of−2 Oblivious Transferを実行する際に必要となる計算量は、1−out−of−2 Oblivious Transferと同程度である。
本発明の目的は、秘密計算装置の負荷を低減した秘密計算システムを提供することである。
上記目的を達成するために、本発明の秘密計算システムは、第1の入力値mAを秘匿したままで、該第1の入力値mAに対する論理回路関数fの演算結果f(mA)を算出する秘密計算システムであって、
第1の秘密計算装置と、第3の秘密計算装置と、前記論理回路関数fを保有している第2の秘密計算装置と、を有し、
前記第3の秘密計算装置は、ランダムなデータW=(W0,W1)を生成し、前記第1の入力値mAが分割演算子*で2つに分割された一方の断片tから、前記断片tの各ビットbに対応したデータWb生成し、前記データWbを前記第1の秘密計算装置に送信し、前記データW=(W0,W1)を前記第2の秘密計算装置に送信し、
前記第2の秘密計算装置は、前記第1の入力値mAが分割された他方の断片s、前記論理回路関数f、および前記データWから、前記データWbを入力として前記演算結果f(mA)を求めることができる、前記断片sを埋め込んだ論理回路関数fを秘匿化したデータTを生成し、前記第1の秘密計算装置に送信し、
前記第1の秘密計算装置は、前記データTと前記データWbとを入力とし、前記演算結果f(mA)を算出する。
また、前記第1の秘密計算装置は、前記第1の入力値mAを保有しており、前記第1の入力値mAを分割演算子*で断片sと断片tの2つに分割し、前記断片sを前記第2の秘密計算装置に送信し、前記断片tを前記第3の秘密計算装置に送信するとしてもよい。
また、前記論理回路関数fは、2つの入力値を入力とする論理回路関数f(x,y)であり、第2の入力値mBを前記第2の秘密計算装置が保有しており、
前記第2の秘密計算装置は、前記断片s、前記論理回路関数f、および前記データWに加えて更に前記入力値mBを用いて、前記データWbを入力として前記演算結果f(mA,mB)を求めることができる、前記断片sを埋め込んだ論理回路関数f(x,mB)を秘匿化したデータTを生成し、前記第1の秘密計算装置に送信し、
前記第1の秘密計算装置は、前記データTと前記データWbとを入力とし、前記第1および第2の入力値mA,mBに対する論理回路関数f(x,y)の演算結果f(mA,mB)を算出するとしてもよい。
また、本発明の秘密計算システムは、前記第1の入力値mAを、mA=s*tを満たすように、前記断片s,tに分割し、前記断片tを前記第3の秘密計算装置に送信し、前記断片sを前記第2の秘密計算装置に送信する変換装置を更に有するとしてもよい。
本発明によれば、1−out−of−2 Oblivious Transferプロトコルを秘密計算装置のいずれも実行する必要がないので、秘密計算装置の負荷を大幅に低減することができる。
本発明を実施するための形態について図面を参照して詳細に説明する。
本実施形態の秘密計算システムは3つの秘密計算装置からなるシステムであり、入力値を秘匿したまま、その入力値に対する論理回路関数fの演算結果を算出する。この種の秘密計算システムは、例えば、プライバシーを保護しつつ個人的な情報を活用する様々なシステムに適用することができる。具体的な例として、秘密計算システムは、オークションを含む任意の情報集計システムであるとしてもよい。各ユーザーの情報を秘匿したまま、それらの情報に対する所定の演算の結果を得る。例えば、オークション結果や多数決による意思決定の結果などを演算結果として得ることが考えられる。また、他の例として、各ユーザーが保有するデータを他者に知られること無く集計し、それらのデータを元にした各種統計処理やマイニング処理を行うことも可能である。また、更に他の例として、秘密計算システムは、生体認証システムであるとしてもよい。各ユーザーの生体情報を秘匿したままで、生体情報が正当なものであるか否か判定することができる。
(第1の実施例)
図1は、第1の実施例による秘密計算システムの構成を示すブロック図である。図1を参照すると、秘密計算システムは、秘密計算装置11A,11B,11Cからなるシステムであり、入力値mA,mBを秘匿したまま、論理回路関数f(x,y)の演算結果f(mA,mB)を算出する。
秘密計算装置11Aが入力値mAを保持している。秘密計算装置11Bが入力値mBと論理回路関数f(x,y)とを保持している。
秘密計算装置11Aは、入力値mAを分割演算子*で断片sと断片tの2つに分割し、断片sを秘密計算装置11Bに送信し、断片tを秘密計算装置11Cに送信する。
秘密計算装置11Cは、秘密計算装置11Aから受信した断片tから、断片tの各ビットbに対応したデータWbと、各ビットbに対する(1−b)に対応したデータW(1−b)とを生成する。そして、秘密計算装置11Cは、データWbを秘密計算装置11Aに送信し、bおよび(1−b)との対応を特定せずにデータWbおよびデータW(1−b)を含むデータW=(W0,W1)を秘密計算装置11Bに送信する。
秘密計算装置11Bは、秘密計算装置11Aから受信した断片sと、保持している入力値mBおよび論理回路関数f(x,y)と、秘密計算装置11Cから受信したデータWとから、データWbを入力として演算結果f(mA,mB)を求めることができる、断片sを埋め込んだ論理回路関数f(x,mB)を秘匿化したデータTを生成する。そして、秘密計算装置11Bは、データTを秘密計算装置11Aに送信する。
秘密計算装置11Aは、秘密計算装置11Bから受信したデータTと、秘密計算装置11Cから受信したデータWbとを入力とし、演算結果f(mA,mB)を算出する。
以下、本実施例の秘密計算システムおよび各装置の動作について、より具体的に説明する。演算結果f(mA,mB)を求めるまでの手順は5つのステップからなる。
(第1のステップ)
論理回路関数f(x,y)のxへの入力となるビット列mAを保有する秘密計算装置11Aは、入力値mA
Figure 0005078632
となるs,tに分割する。そして、秘密計算装置11Aは、sを秘密計算装置11Bに、tを秘密計算装置11Cにそれぞれ送る。
(第2のステップ)
秘密計算装置11Cは、論理回路関数fにおける入力値mAの入力ワイヤーi毎に、ランダムビットci、および固定長の乱数とciの組
Figure 0005078632
を生成する。そして、秘密計算装置11Cは、Wiを秘密計算装置11Bに、
Figure 0005078632
を秘密計算装置11Aにそれぞれ送る。ここで
Figure 0005078632
であり、b′は、iへの入力を入力値mAの下位w番目のビットとしたとき、断片tの下位w番目のビットである。
(第3のステップ)
論理回路関数f(x,y)、yへの入力となるビット列mB、および秘密計算装置11Aから受け取った断片sを保有する秘密計算装置Bは、以下の(a)〜(d)を実行することにより、論理回路関数f(x,mB)を秘匿化する。
(a) f(x,mB)の各ワイヤーiに対して、固定長の乱数
Figure 0005078632
を生成し、それぞれ0,1に対応させる。ただし、mAの入力ワイヤーに対しては秘密計算装置11Cから受け取った
Figure 0005078632
を対応させる。
(b) 次に、秘密計算装置11Bはランダムビットciを生成する。ただし、mAの入力ワイヤーに対しては秘密計算装置11Cから受け取ったciを対応させる。
(c) 更に、秘密計算装置11Bは、
Figure 0005078632
をワイヤーiに対応させる。ただし、ワイヤーiがmAの下位w番目のビットを入力とする場合は、
Figure 0005078632
を用いる。ここで、bはsの下位w番目のビットであるとする。
(d) i,jを入力ワイヤー、kを出力ワイヤーとする論理ゲートgに対して、4つのラベル付きデータ
Figure 0005078632
をランダムな順番に並べたものをTgとする。このTgの集合が論理回路関数fを秘匿化したデータとなる。秘密計算装置11Bは、Tgの集合をfの秘匿化データとして秘密計算装置11Aに送信する。ここでコロンの左側をラベル、右側をデータとし、FW(x)はx,Wを入力として固定長の乱数を出力する関数であるとする。
(第4のステップ)
秘密計算装置11Aは、データTg
Figure 0005078632
を用いて、fの最終段のワイヤーの出力
Figure 0005078632
を得る。
(第5のステップ)
秘密計算装置11Aは、
Figure 0005078632
から、f(mA,mB)のビット
Figure 0005078632
を得る。
上記処理手順の第4のステップでは、入力ワイヤーi,j、出力ワイヤーkのゲートgに対応するTgと、
Figure 0005078632
とが与えられたとき、先ずTgからラベル
Figure 0005078632
を持つデータ
Figure 0005078632
を取り出し、
Figure 0005078632
を計算するとよい。これにより、上記出力ワイヤーに対応するデータ
Figure 0005078632
が得られる。他のゲートについても同様の処理を行えばよい。
また、第5のステップについては、例えばgがfの最終段ゲートである場合、ck=0とすることにより、
Figure 0005078632
から
Figure 0005078632
を得ることができる。
上述した本実施形態の秘密計算システムによる処理は各装置によって実行される。以下、装置間の信号の送受信を含む処理の流れについて概説する。図2は、本実施形態の秘密計算システムの動作を示すシーケンス図である。
図2を参照すると、まず、秘密計算装置11Aは、入力値mAをs,tに分割し(ステップ101)、sを秘密計算装置11Bに送信し(ステップ102)、tを秘密計算装置11Cに送信する(ステップ103)。このステップ101〜103が上記第1のステップに相当する。
次に、秘密計算装置11Cは、tに対応するデータを生成し(ステップ104)、そのときに生成したWiを秘密計算装置11Bに送信し(ステップ105)、
Figure 0005078632
を秘密計算装置11Aに送信する(ステップ106)。このステップ104〜106が上記第2のステップに相当する。
次に、秘密計算装置Bは、論理回路関数f(x,mB)を秘匿化し(ステップ107)、生成したTgの集合をfの秘匿化データとして秘密計算装置11Aに送信する(ステップ108)。このステップ107〜108が上記第3のステップに相当する。
次に、秘密計算装置11Aは、論理回路関数fの最終段のワイヤーの出力
Figure 0005078632
を得て、さらに演算結果f(mA,mB)を得る(ステップ109)。このステップ109が上記第4および第5のステップに相当する。
以上、説明したように、本実施例によれば、非特許文献1の技術を用いた秘密計算システムでは全体の計算量の大部分を占めていた1−out−of−2 Oblivious Transferプロトコルを秘密計算装置11A,11B,11Cのいずれも実行する必要がないので、秘密計算装置11A,11B,11Cの負荷を大幅に低減することができる。
なお、本実施例で追加された秘密計算装置11Cには入力値mAの断片tが与えられるだけなので、秘密計算装置11Cによって入力値mA,mBの秘匿性が損なわれることはない。
また、本実施例では、XORを分割演算子としてデータmAを2つの断片s,tに分割する例を示したが、本発明はこれに限定されるものではない。論理回路fに一方の断片(例えばs)を埋め込んでデータTgを生成し、他方の断片(例えばt)を入力として論理回路内でmAを復元しつつ、データTgから論理回路fの演算結果を得られればよいので、加減算、乗算、その他どのような演算子を分割演算子としてもよい。
(第2の実施例)
図3は、第2の実施例による秘密計算システムの構成を示すブロック図である。第2の実施例は、第1の実施例の入力値mAに相当する入力値mが複数である点で第1の実施例と異なる。また、第2の実施例では、第1の実施例の入力値mBに相当する入力値が無い。また、第2の実施例では、複数の変換装置がそれぞれに入力値mを保有しており、その入力値mを断片s,tに分割し、sとtを秘密計算装置に提供する点で第1の実施例と異なる。
図3を参照すると、秘密計算システムは、複数の変換装置201〜20Nと秘密計算装置21A,21B,21Cとを有している。秘密計算装置21A〜21Cで秘密計算装置群21をなしている。論理回路関数fは秘密計算装置21Cが保持している。
各変換装置201〜20Nはデータm1〜mNをそれぞれ保有している。各変換装置201〜20Nは、保有しているデータm1〜mNを秘匿した状態で秘密計算装置群21に送る。その際、例えば、変換装置201は、データm1を、分割演算子を用いて2つに分割し、一方の断片sを秘密計算装置21Bに送り、他方の断片tを秘密計算装置21Cに送る。他の変換装置202〜20Nの動作も変換装置201と同様である。
秘密計算装置21A,21B,21Cからなる秘密計算装置群21は、変換装置201〜20Nから受信したデータを用いて、データmi(1≦i≦N)を入力値とした論理回路fの演算結果f(m1,・・・,mN)を算出する。その際、秘密計算装置群11は、データmiを復元することなく、またデータmiを容易に復元できるデータを得ることなく、演算結果f(m1,・・・,mN)を得る。
秘密計算装置21Cは、変換装置201〜20Nから受信した断片tから、断片tの各ビットbに対応したデータWbと、各ビットbに対する(1−b)に対応したデータW(1−b)とを生成する。そして、秘密計算装置21Cは、データWbを秘密計算装置21Aに送信し、bおよび(1−b)との対応を特定せずにデータWbおよびデータW(1−b)を含むデータW=(W0,W1)を秘密計算装置21Bに送信する。
秘密計算装置21Bは、変換装置201〜20Nから受信した断片sと、保持している論理回路関数fと、秘密計算装置21Cから受信したデータWとから、データWbを入力として演算結果f(m1,・・・,mN)を求めることができる、断片sを埋め込んだ論理回路関数fを秘匿化したデータTを生成する。そして、秘密計算装置21Bは、データTを秘密計算装置21Aに送信する。
秘密計算装置21Aは、秘密計算装置21Bから受信したデータTと、秘密計算装置21Cから受信したデータWbとを入力とし、演算結果f(m1,・・・,mN)を算出する。
以下、本実施例の秘密計算システムおよび各装置の動作について、より具体的に説明する。演算結果f(m1,・・・,mN)を求めるまでの手順は5つのステップからなる。なお、記号を簡略化するため、ここでは特に必要が無ければmiの添え字を省略することにする。
(第1のステップ)
各変換装置201〜20Nは、保有しているデータmに対して、
Figure 0005078632
を満たす(s,t)をランダムに生成する。そして、変換装置201〜20Nは、sを秘密計算装置21Bに、tを秘密計算装置21Cにそれぞれ送る。
(第2のステップ)
秘密計算装置21Cは、論理回路関数fにおける入力ワイヤーi毎にランダムビットci、および固定長の乱数とciの組
Figure 0005078632
を生成する。そして、秘密計算装置21Cは、Wiを秘密計算装置21Bに、
Figure 0005078632
を秘密計算装置21Aにそれぞれ送る。ここで
Figure 0005078632
であり、b′は、iへの入力をmの下位w番目のビットとしたとき、tの下位w番目のビットであるとする。
(第3のステップ)
秘密計算装置21Bは、以下の(a)〜(d)を実行し、論理回路関数fを秘匿化する。
(a) 秘密計算装置21Bは論理回路関数fの各ワイヤーiに対して、固定長の乱数
Figure 0005078632
を生成し、それぞれ0,1に対応させる。ただし、mの入力ワイヤーに対しては秘密計算装置21Cから受け取った
Figure 0005078632
を対応させる。
(b) 次に、秘密計算装置21Bはランダムビットciを生成する。ただし、mAの入力ワイヤーに対しては秘密計算装置11Cから受け取ったciを対応させる。
(c) 更に、秘密計算装置21Bは、
Figure 0005078632
をワイヤーiに対応させる。ただし、ワイヤーiがmの下位w番目のビットを入力とする場合は、
Figure 0005078632
とする。ここでbはsの下位w番目のビットであるとする。
(d) 更に、秘密計算装置21Bは、i,jを入力ワイヤー、kを出力ワイヤーとする論理ゲートgに対して、4つのラベル付きデータ
Figure 0005078632
をランダムな順番に並べたものをTgとする。このTgの集合が論理回路関数fを秘匿化したデータとなる。秘密計算装置21Bは、Tgの集合を論理回路関数fの秘匿化データとして秘密計算装置21Aに送信する。ここでコロンの左側をラベル、右側をデータとし、FW(x)はx,Wを入力して固定長の乱数を出力する関数であるとする。
(第4のステップ)
秘密計算装置21Aは、データTgおよび
Figure 0005078632
を用いて、論理回路関数fの最終段のワイヤーの出力
Figure 0005078632
を得る。
(第5のステップ)
更に、秘密計算装置21Aは
Figure 0005078632
から、演算結果f(m1,・・・,mN)のビット
Figure 0005078632
を得る。
以上、説明したように、本実施例によれば、非特許文献3の技術を用いた秘密計算システムでは全体の計算量の大部分を占めていた、proxy 1−out−of−2 Oblivious Transferプロトコルを秘密計算装置21A,21B,21Cのいずれも実行する必要がないので、秘密計算装置21A,21B,21Cの負荷を大幅に低減することができる。
なお、本実施例で追加された秘密計算装置21Cには入力値mの断片tが与えられるだけなので、秘密計算装置21Cによって入力値mの秘匿性が損なわれることはない。
また、本実施例では、XORを分割演算子としてデータmを2つの断片s,tに分割する例を示したが、本発明はこれに限定されるものではない。論理回路fに一方の断片(例えばs)を埋め込んでデータTgを生成し、他方の断片(例えばt)を入力として、データTgから論理回路fの演算結果を得られればよいので、加減算、乗算、その他どのような演算子を分割演算子としてもよい。
また、第1および第2の実施例において、上述した各装置は、各部の動作の一部または全部を処理手順として規定したソフトウェアプログラムをコンピュータに実行させることにより実現することもできる。
第1の実施例による秘密計算システムの構成を示すブロック図である。 本実施形態の秘密計算システムの動作を示すシーケンス図である。 第2の実施例による秘密計算システムの構成を示すブロック図である。 非特許文献1に開示された技術を用いた秘密計算システムの構成を示すブロック図である。 非特許文献3に開示された技術を用いた秘密計算システムの構成を示すブロック図である。
符号の説明
11A,11B,11C,21A,21B,21C 秘密計算装置
201〜20N 変換装置

Claims (10)

  1. 第1の入力値mAを秘匿したままで、該第1の入力値mAに対する論理回路関数fの演算結果f(mA)を算出する秘密計算システムであって、
    第1の秘密計算装置と、第3の秘密計算装置と、前記論理回路関数fを保有している第2の秘密計算装置と、を有し、
    前記第3の秘密計算装置は、ランダムなデータW=(W0,W1)を生成し、前記第1の入力値mAが分割演算子*で2つに分割された一方の断片tから、前記断片tの各ビットbに対応したデータWb生成し、前記データWbを前記第1の秘密計算装置に送信し、前記データW=(W0,W1)を前記第2の秘密計算装置に送信し、
    前記第2の秘密計算装置は、前記第1の入力値mAが分割された他方の断片s、前記論理回路関数f、および前記データWから、前記データWbを入力として前記演算結果f(mA)を求めることができる、前記断片sを埋め込んだ論理回路関数fを秘匿化したデータTを生成し、前記第1の秘密計算装置に送信し、
    前記第1の秘密計算装置は、前記データTと前記データWbとを入力とし、前記演算結果f(mA)を算出する、秘密計算システム。
  2. 前記第1の秘密計算装置は、前記第1の入力値mAを保有しており、前記第1の入力値mAを分割演算子*で断片sと断片tの2つに分割し、前記断片sを前記第2の秘密計算装置に送信し、前記断片tを前記第3の秘密計算装置に送信する、請求項1に記載の秘密計算システム。
  3. 前記論理回路関数fは、2つの入力値を入力とする論理回路関数f(x,y)であり、第2の入力値mBを前記第2の秘密計算装置が保有しており、
    前記第2の秘密計算装置は、前記断片s、前記論理回路関数f、および前記データWに加えて更に前記入力値mBを用いて、前記データWbを入力として前記演算結果f(mA,mB)を求めることができる、前記断片sを埋め込んだ論理回路関数f(x,mB)を秘匿化したデータTを生成し、前記第1の秘密計算装置に送信し、
    前記第1の秘密計算装置は、前記データTと前記データWbとを入力とし、前記第1および第2の入力値mA,mBに対する論理回路関数f(x,y)の演算結果f(mA,mB)を算出する、請求項1または2に記載の秘密計算システム。
  4. 前記第1の入力値mAを、mA=s*tを満たすように、前記断片s,tに分割し、前記断片tを前記第3の秘密計算装置に送信し、前記断片sを前記第2の秘密計算装置に送信する変換装置を更に有する、請求項1に記載の秘密計算システム。
  5. 第1、第2、および第3の秘密計算装置により、第1の入力値mAを秘匿したままで、該第1の入力値mAに対する論理回路関数fの演算結果f(mA)を算出するための秘密計算方法であって、
    第2の秘密計算装置にて前記論理回路関数fを保持しておき、
    前記第3の秘密計算装置において、ランダムなデータW=(W0,W1)を生成し、前記第1の入力値mAが分割演算子*で2つに分割された一方の断片tから、前記断片tの各ビットbに対応したデータWb生成し、前記データWbを前記第1の秘密計算装置に送信し、前記データW=(W0,W1)を前記第2の秘密計算装置に送信し、
    前記第2の秘密計算装置において、前記第1の入力値mAが分割された他方の断片s、前記論理回路関数f、および前記データWから、前記データWbを入力として前記演算結果f(mA)を求めることができる、前記断片sを埋め込んだ論理回路関数fを秘匿化したデータTを生成し、前記第1の秘密計算装置に送信し、
    前記第1の秘密計算装置において、前記データTと前記データWbとを入力とし、前記演算結果f(mA)を算出する、秘密計算方法。
  6. 前記第1の秘密計算装置において、前記第1の入力値mAを保有しており、前記第1の入力値mAを分割演算子*で断片sと断片tの2つに分割し、前記断片sを前記第2の秘密計算装置に送信し、前記断片tを前記第3の秘密計算装置に送信する、請求項5に記載の秘密計算方法。
  7. 前記論理回路関数fは、2つの入力値を入力とする論理回路関数f(x,y)であり、第2の入力値mBを前記第2の秘密計算装置にて保有しており、
    前記第2の秘密計算装置において、前記断片s、前記論理回路関数f、および前記データWに加えて更に前記入力値mBを用いて、前記データWbを入力として前記演算結果f(mA,mB)を求めることができる、前記断片sを埋め込んだ論理回路関数f(x,mB)を秘匿化したデータTを生成し、前記第1の秘密計算装置に送信し、
    前記第1の秘密計算装置において、前記データTと前記データWbとを入力とし、前記第1および第2の入力値mA,mBに対する論理回路関数f(x,y)の演算結果f(mA,mB)を算出する、請求項5または6に記載の秘密計算方法。
  8. 3台のコンピュータをそれぞれ第1、第2、および第3の秘密計算装置として動作させ、第1の入力値mAを秘匿したままで、該第1の入力値mAに対する論理回路関数fの演算結果f(mA)を算出する秘密計算プログラムであって、
    前記第3の秘密計算装置が、ランダムなデータW=(W0,W1)を生成し、前記第1の入力値mAが分割演算子*で2つに分割された一方の断片tから、前記断片tの各ビットbに対応したデータWb生成し、前記データWbを前記第1の秘密計算装置に送信し、前記データW=(W0,W1)を前記第2の秘密計算装置に送信する手順と、
    前記論理回路関数fを保有している前記第2の秘密計算装置が、前記第1の入力値mAが分割された他方の断片s、前記論理回路関数f、および前記データWから、前記データWbを入力として前記演算結果f(mA)を求めることができる、前記断片sを埋め込んだ論理回路関数fを秘匿化したデータTを生成し、前記第1の秘密計算装置に送信する手順と、
    前記第1の秘密計算装置が、前記データTと前記データWbとを入力とし、前記演算結果f(mA)を算出する手順と、をそれぞれ第1、第2、および第3の秘密計算装置としてコンピュータに実行させるための秘密計算プログラム。
  9. 前記第1の秘密計算装置が、前記第1の入力値mAを保有しており、前記第1の入力値mAを分割演算子*で断片sと断片tの2つに分割し、前記断片sを前記第2の秘密計算装置に送信し、前記断片tを前記第3の秘密計算装置に送信する、請求項8に記載の秘密計算プログラム。
  10. 前記論理回路関数fは、2つの入力値を入力とする論理回路関数f(x,y)であり、第2の入力値mBを前記第2の秘密計算装置が保有しており、
    前記第2の秘密計算装置が、前記断片s、前記論理回路関数f、および前記データWに加えて更に前記入力値mBを用いて、前記データWbを入力として前記演算結果f(mA,mB)を求めることができる、前記断片sを埋め込んだ論理回路関数f(x,mB)を秘匿化したデータTを生成し、前記第1の秘密計算装置に送信し、
    前記第1の秘密計算装置が、前記データTと前記データWbとを入力とし、前記第1および第2の入力値mA,mBに対する論理回路関数f(x,y)の演算結果f(mA,mB)を算出する、請求項8または9に記載の秘密計算プログラム。
JP2008010928A 2008-01-21 2008-01-21 秘密計算システム、秘密計算方法、および秘密計算プログラム Active JP5078632B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2008010928A JP5078632B2 (ja) 2008-01-21 2008-01-21 秘密計算システム、秘密計算方法、および秘密計算プログラム
EP09703675.0A EP2242032B1 (en) 2008-01-21 2009-01-21 Secure computing system, secure computing method, secure computing apparatus and program therefor
US12/812,916 US9300469B2 (en) 2008-01-21 2009-01-21 Secure computing system, secure computing method, secure computing apparatus, and program therefor
CN200980102192.4A CN101911153B (zh) 2008-01-21 2009-01-21 秘密计算系统、秘密计算方法、秘密计算装置
PCT/JP2009/050857 WO2009093603A1 (ja) 2008-01-21 2009-01-21 秘密計算システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008010928A JP5078632B2 (ja) 2008-01-21 2008-01-21 秘密計算システム、秘密計算方法、および秘密計算プログラム

Publications (2)

Publication Number Publication Date
JP2009175194A JP2009175194A (ja) 2009-08-06
JP5078632B2 true JP5078632B2 (ja) 2012-11-21

Family

ID=41030402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008010928A Active JP5078632B2 (ja) 2008-01-21 2008-01-21 秘密計算システム、秘密計算方法、および秘密計算プログラム

Country Status (1)

Country Link
JP (1) JP5078632B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5047198B2 (ja) * 2008-01-21 2012-10-10 日本電信電話株式会社 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム
JP5337076B2 (ja) * 2010-02-24 2013-11-06 日本電信電話株式会社 秘密計算システム、秘密計算方法、不正使用防止方法

Also Published As

Publication number Publication date
JP2009175194A (ja) 2009-08-06

Similar Documents

Publication Publication Date Title
US11095428B2 (en) Hybrid system and method for secure collaboration using homomorphic encryption and trusted hardware
US10033708B2 (en) Secure computation using a server module
JP5047198B2 (ja) 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム
EP2901613A1 (en) Input consistency verification for two-party secure function evaluation
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
EP3447963A1 (en) Method for protecting data
KR20240005674A (ko) 사이퍼제닉스 기반 생태계 보안 플랫폼들
CN111783129A (zh) 一种保护隐私的数据处理方法及系统
WO2016050276A1 (en) Method and system for providing a secure update of code on a memory-constrained device
WO2009093603A1 (ja) 秘密計算システム
Folkerts et al. REDsec: Running encrypted discretized neural networks in seconds
JP5078632B2 (ja) 秘密計算システム、秘密計算方法、および秘密計算プログラム
US20060269055A1 (en) Method and apparatus for improving performance and security of DES-CBC encryption algorithm
Ajmal et al. Cloud computing platform: Performance analysis of prominent cryptographic algorithms
JP6844897B2 (ja) ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム
TWI488478B (zh) 執行對稱加密的技術
JP6053983B2 (ja) 暗号システム、署名システム、暗号プログラム及び署名プログラム
WO2015166701A1 (ja) 暗号化方法、プログラム、および、システム
Buell Modern symmetric ciphers—Des and Aes
WO2019111319A1 (ja) 秘密等号判定システム、秘密等号判定方法および秘密等号判定プログラム記録媒体
KR102019558B1 (ko) 내재적 인증서를 사용하는 전자서명에 대한 효율적인 서명 검증 방법
JP5103408B2 (ja) 秘密計算システム、秘密計算方法、秘密計算プログラム
US11095429B2 (en) Circuit concealing apparatus, calculation apparatus, and program
JP5578422B2 (ja) 暗号化通信システム、送信装置、受信装置、暗号化/復号化方法およびそれらのプログラム
CN113330712A (zh) 采用基于排列群的加密技术的加密系统及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120612

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120731

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: 20120821

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120828

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5078632

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350