JP5047198B2 - 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム - Google Patents

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

Info

Publication number
JP5047198B2
JP5047198B2 JP2009008967A JP2009008967A JP5047198B2 JP 5047198 B2 JP5047198 B2 JP 5047198B2 JP 2009008967 A JP2009008967 A JP 2009008967A JP 2009008967 A JP2009008967 A JP 2009008967A JP 5047198 B2 JP5047198 B2 JP 5047198B2
Authority
JP
Japan
Prior art keywords
secret
fragment
data
logic circuit
calculation
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
JP2009008967A
Other languages
English (en)
Other versions
JP2009199068A (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 JP2009008967A priority Critical patent/JP5047198B2/ja
Publication of JP2009199068A publication Critical patent/JP2009199068A/ja
Application granted granted Critical
Publication of JP5047198B2 publication Critical patent/JP5047198B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は暗号応用技術に関し、特に、入力値を秘匿したまま、その入力値に対する演算の結果を得る技術に関する。
非特許文献1には、入力値を秘匿したままで演算結果を得る技術が開示されている。図8は、非特許文献1に開示された技術を用いた秘密計算システムの構成を示すブロック図である。図8を参照すると、秘密計算システムは、複数の変換装置901〜90Nと秘密計算装置91A,91Bとを有している。2つの秘密計算装置91A,91Bによって秘密計算装置群91をなしている。
各変換装置901〜90Nはデータm1〜mNをそれぞれ保有している。各変換装置901〜90Nは、保有しているデータm1〜mNを秘匿した状態で秘密計算装置群91に送る。
秘密計算装置91A,91Bからなる秘密計算装置群91は、変換装置901〜90Nから受信したデータを用いて、データmi(1≦i≦N)を入力値とした論理回路fの演算結果f(m1,・・・,mN)を算出する。その際、秘密計算装置群91は、データmiを復元することなく、またデータmiを容易に復元できるデータを得ることなく、演算結果f(m1,・・・,mN)を得る。
また、非特許文献1では、非特許文献2に示されている技術の応用として、データm1〜mNを秘匿し、秘匿したままのデータm1〜mNを用いて演算結果f(m1,・・・,mN)を算出するまでの一連の処理が開示されている。以下、演算結果f(m1,・・・,mN)を求める手順の概要を説明する。手順は7つのステップからなる。手順の説明には、図8に示した秘密計算システムの構成を用いる。なお、記号を簡略化するため、ここでは特に必要が無ければmiの添え字を省略することにする。
(第1のステップ)
まず、秘密計算装置91Aと秘密計算装置91Bは協力して素数pを生成し、hq≡1(mod p)を満たす2以上p未満の整数hおよび最小の自然数qを求める。また別に2以上p未満の整数zを選ぶ。
(第2のステップ)
秘密計算装置91Bは、以下の(a)〜(d)を実行し、論理回路fを秘匿化する。
(a) fの各ワイヤーiに対して固定長の乱数
Figure 0005047198
を生成し、それぞれ0,1に対応させる。
(b) ランダムビットciを生成する。
(c)
Figure 0005047198
をワイヤーiに対応させる。ここで
Figure 0005047198
とする。
(d) i,jを入力ワイヤー、kを出力ワイヤーとする論理ゲートgに対して、4つのラベル付きデータ
Figure 0005047198
を行単位でランダムな順番に並べたものをTgとする。このTgの集合が論理回路fの秘匿化データとなる。ここでコロンの左側をラベルとし、右側をデータとし、FW(x)はx,Wを入力して固定長の乱数を出力する関数であるものとする。
秘密計算装置91Bは、このTgの集合を論理回路fの秘匿化データとして秘密計算装置91Aに送信する。
(第3のステップ)
各変換装置901〜90Nはp,q,h,zを入力し、以下の(a)〜(d)をmの各ビットbに対して実行する。これによって、秘密計算装置91Aがmの各ビットbの入力ワイヤーiに対応するデータ
Figure 0005047198
を得られるようになる。
(a) q未満の自然数uをランダムに選ぶ。
(b) PKb=humod pを計算する。
(c) b=1であれば
Figure 0005047198
を計算する。
(d) 各変換装置901〜90NはPK0を秘密計算装置91Bに送り、uを秘密計算装置91Aに送る。
(第4のステップ)
秘密計算装置91Bは、PK1=z/PK0mod pを計算した後、
Figure 0005047198
を計算し、得られた暗号文Z0,Z1を秘密計算装置91Aに送る。ここでEPK(x)は平文xの公開鍵PKを用いた暗号化関数であるとし、その暗号文は復号鍵uにより復号できるものとする。またCは平文が正しく復元できたか識別可能な関数であるとする。
(第5のステップ)
秘密計算装置91Aは復号鍵uを用いてZ0,Z1を復号し、正しく復元されているとCにより識別される復号結果
Figure 0005047198
を得る。
(第6のステップ)
秘密計算装置91Aは、Tgおよび
Figure 0005047198
を用いて、fの最終段のワイヤーの出力
Figure 0005047198
を得る。
(第7のステップ)
続いて、秘密計算装置91Aは、
Figure 0005047198
から、演算結果f(m1,・・・,mN)のビット
Figure 0005047198
を得る。
以上の手順の中で第3のステップにおいて各変換装置901〜90Nの選択したuが秘密計算装置91A以外に知られると、bの秘匿性が損なわれる場合がある。そのため、各変換装置901〜90Nと秘密計算装置91Aとの間の伝送路では別途、暗号化等の対策を講じることが望ましい。
また、第6のステップでは、入力ワイヤーi,j、出力ワイヤーkのゲートに対応するTgと、
Figure 0005047198
とが与えられたとき、先ずTgからラベル
Figure 0005047198
を持つデータ
Figure 0005047198
を取り出し、
Figure 0005047198
を計算するとよい。これにより、上記出力ワイヤーに対応するデータ
Figure 0005047198
が得られる。他のゲートについても同様の処理を行えばよい。
また、第7のステップについては、例えばgがfの最終段ゲートである場合、ck=0とすることにより、
Figure 0005047198
から
Figure 0005047198
を得ることができる。
M.Naor, B.Pinkas, and R.Sumner,"Privacy preserving auctions and mechanism design",Proc. of ACM EC’99, pp.129−139,ACM Press,1999. A.C.Yao,"How to generate and exchange secrets",Proc. of FOCS’86, pp.162−167,IEEE Press,1986. Koji Chida and Katsumi Takahashi,"Privacy Preserving Comutations Without Public Key Criptographic Operation", SCIS 2008, Jan. 22−25, 2008
上述した方法では、保有しているデータを提供する各変換装置901〜90Nは、保有データmiに対して、1ビット毎にべき乗剰余演算を行い、ビット毎の暗号文を生成する必要がある。そのため、miのサイズが大きい場合、変換装置901〜90Nにおける計算時間が実用上の問題となりうる。また、変換装置901〜90Nに高性能のものを用いることができない場合にも同様の問題が起こりうる。また同様に、変換装置901〜90Nから秘密計算装置91A,91Bに送るデータ量も実用上の問題となりうる。
本発明の目的は、データを提供する装置の負荷を低減した秘密計算システムを提供することである。
上記目的を達成するために、本発明の秘密計算システムは、
入力値mを秘匿したままで、該入力値mに対する論理回路f(x)の演算結果f(m)を算出する秘密計算システムであって、
前記入力値mが2つに分割された一方の断片Bを入力とし、前記論理回路f(x)と前記断片Bとから、他方の断片Aを入力として前記演算結果f(m)を求めることのできる、論理回路f(x)が秘匿化されたデータTを生成する第1の秘密計算装置と、
前記断片Aと前記データTとを入力とし、前記演算結果f(m)を算出する第2の秘密計算装置と、を有している。
また、前記断片A、Bは、前記入力値mを分割演算子*で2つに分割した断片s、tであり、
前記第1の秘密計算装置は、前記論理回路f(x)と前記断片tとから、前記断片sを入力として前記演算結果f(m)を求めることのできる、論理回路f(x*t)が秘匿化されたデータTを生成し、
前記第2の秘密計算装置は、前記断片sと前記データTとを入力とし、前記演算結果f(m)を算出することにしてもよい。
また、前記第1の秘密計算装置は、前記断片tを前記論理回路f(x)に埋め込んだ前記論理回路f(x*t)を秘匿化したデータTを生成し、
前記第2の秘密計算装置は、前記断片sを入力として、論理演算において前記入力値mを実際に復元することなく、前記データTから演算結果f(m)を算出することにしてもよい。
また、前記第2の秘密計算装置は、前記第1の秘密計算装置との間で1−out−of−2 Oblivious Transferプロトコルを実行することにより取得した、秘匿された前記入力値mに関するデータを、前記演算結果f(m)の算出に用いることにしてもよい。
また、前記入力値mを、m=s*tを満たすように、前記断片s,tに分割し、前記断片tを前記第1の秘密計算装置に送信し、前記断片sを前記第2の秘密計算装置に送信する変換装置を更に有することにしてもよい。
また、前記断片Aは前記入力値mの各ビットbに対応したデータWbであり、前記断片Bは、前記データWbと前記各ビットbに対する(1−b)に対応したデータW(1−b)とを、bおよび(1−b)との対応を特定せずに含むデータW=(W0,W1)であり、
前記第1の秘密計算装置は、前記データWを用いて、前記データWbを入力として前記演算結果f(m)を求めることのできる、論理回路関数fを秘匿化したデータTを生成し、
前記第2の秘密計算装置は、前記データTと前記データWbとを入力とし、前記演算結果f(m)を算出することにしてもよい。
本発明によれば、入力値であるデータを秘匿したまま、その入力値に対する演算の結果を得る秘密計算システムに対して、保有しているデータを変換して提供する装置は、保有しているデータmをAとBに分割し、Aを第2の秘密計算装置に送り、Bを第1の秘密計算装置に送るだけなので、負荷が低減される。
本実施形態による秘密計算システムの構成を示すブロック図である。 本実施形態の秘密計算システムの動作を示すシーケンス図である。 本実施形態の秘密計算装置11Bの構成を示すブロック図である。 第2の実施形態の秘密計算システムの動作を示すシーケンス図である。 第3の実施形態による秘密計算システムの構成を示すブロック図である。 第3の実施形態の秘密計算システムの動作を示すシーケンス図である。 第3の実施形態における検証装置の構成を示すブロック図である。 非特許文献1に開示された技術を用いた秘密計算システムの構成を示すブロック図である。
本発明を実施するための形態について図面を参照して詳細に説明する。
(第1の実施形態)
図1は、第1の実施形態による秘密計算システムの構成を示すブロック図である。図1を参照すると、秘密計算システムは、複数の変換装置101〜10Nと秘密計算装置11A,11Bとを有している。秘密計算装置11Aと秘密計算装置11Bとで秘密計算装置群11をなしている。
各変換装置101〜10Nはデータm1〜mNをそれぞれ保有している。各変換装置101〜10Nは、保有しているデータm1〜mNを秘匿した状態で秘密計算装置群11に送る。その際、例えば、変換装置101は、データm1を、分割演算子を用いて2つに分割し、一方の断片sを秘密計算装置11Aに送り、他方の断片tを秘密計算装置11Bに送る。他の変換装置102〜10Nの動作も変換装置101と同様である。
秘密計算装置11A,11Bからなる秘密計算装置群11は、変換装置101〜10Nから受信したデータを用いて、データmi(1≦i≦N)を入力値とした論理回路fの演算結果f(m1,・・・,mN)を算出する。その際、秘密計算装置群11は、データmiを復元することなく、またデータmiを容易に復元できるデータを得ることなく、演算結果f(m1,・・・,mN)を得る。
その際、秘密計算装置11Bは、入力値mが分割された一方の断片であるtを入力とし、論理回路fと断片tとから、他方の断片であるsを入力として演算結果f(m1,・・・,mN)を求めることのできる、論理回路fが秘匿化されたデータTgを生成する。データTgでは論理回路fにtが埋め込まれている。
秘密計算装置11Aは、sとデータTgとを入力とし、演算結果f(m1,・・・,mN)を算出する。より具体的には、秘密計算装置11Aは、sを入力として、論理演算において入力値mを実際に復元することなく、データTgから演算結果f(m1,・・・,mN)を算出する。
本実施形態の秘密計算システムは、例えば、プライバシーを保護しつつ個人的な情報を活用する様々なシステムに適用することができる。具体的な例として、秘密計算システムは、オークションを含む任意の情報集計システムであるとしてもよい。各ユーザーは、変換装置101〜10Nを用いて各自の情報を秘匿して秘密計算装置群11に送信する。秘密計算装置群11は、各ユーザーからの情報を復元することなく、それらの情報に対する所定の演算の結果を得る。例えば、オークション結果や多数決による意思決定の結果などを演算結果として得ることが考えられる。また、他の例として、各ユーザーが保有するデータを他者に知られること無く集計し、それらのデータを元にした各種統計処理やマイニング処理を行うことも可能である。
また、更に他の例として、秘密計算システムは、生体認証システムであるとしてもよい。各ユーザーは、変換装置101〜10Nを用いて自身の生体情報miを秘匿して秘密計算装置群11に送信する。秘密計算装置群11は、その生体情報を復元することなく、生体情報が正当なものであるか否かf(mi)により判定する。
本実施形態の秘密計算システムの基本的な構成は非特許文献1に開示されたものと同様である。ただし、本実施形態の秘密計算システムは、各装置の機能や動作が非特許文献1に開示されたものとは異なっている。
以下、本実施形態の秘密計算システムおよび各装置の動作について説明する。本実施形態の秘密計算システムは、一連の処理によって演算結果f(m1,・・・,mN)を求める。演算結果f(m1,・・・,mN)を求めるまでの手順は5つのステップからなる。なお、記号を簡略化するため、ここでは特に必要が無ければmiの添え字を省略することにする。
(第1のステップ)
まず、各変換装置101〜10Nは、保有データmに対して、
Figure 0005047198
を満たす(s,t)をランダムに生成し、sを秘密計算装置11Aに、tを秘密計算装置11Bにそれぞれ送る。
(第2のステップ)
秘密計算装置11Bは、以下の(a)〜(d)を実行することにより、論理回路fを変換する。
(a) fの各ワイヤーiに対して固定長の乱数
Figure 0005047198
を生成し、それぞれ0,1に対応させる。
(b) ランダムビットciを生成する。
(c)
Figure 0005047198
をワイヤーiに対応させる。ここで
Figure 0005047198
とする。ただし、ワイヤーiがmの下位w番目のビットmwを入力とする場合は、
Figure 0005047198
とする。ここでtwはtの下位w番目のビットとする。
(d) i,jを入力ワイヤー、kを出力ワイヤーとする論理ゲートgに対して、4つのラベル付きデータ
Figure 0005047198
を行単位でランダムな順番に並べたものをTgとする。このTgの集合が論理回路fの変換データとなる。ここでコロンの左側をラベルとし、右側をデータとし、FW(x)はx,Wを入力して固定長の乱数を出力する関数であるものとする。
秘密計算装置11Bは、このTgの集合を論理回路の変換データとして秘密計算装置11Aに送信する。
(第3のステップ)
秘密計算装置11Aは、sを用いて、
Figure 0005047198
を求める。その際、秘密計算装置11Aは、秘密計算装置11Bと1−out−of−2 Oblivious Transferプロトコルを実行し、sの下位w番目のビットswを入力とするワイヤーに対応するデータ
Figure 0005047198
を得る。
(第4のステップ)
秘密計算装置11Aは、Tgおよび
Figure 0005047198
を用いて、論理回路fの最終段のワイヤーの出力
Figure 0005047198
を得る。ここでb=mwとする。
(第5のステップ)
秘密計算装置11Aは、
Figure 0005047198
から、演算結果f(m1,・・・,mN)のビットb′を得る。
上記手順の第3のステップでは1−out−of−2 Oblivious Transferプロトコルが用いられている。このプロトコルは、秘密計算装置10Bがデータd0,d1を保有し、秘密計算装置10Aがビットbを保有するとき、秘密計算装置10Aはdbを得ることができるが、
Figure 0005047198
を得ることはできず、かつ秘密計算装置10Bはbを得ることができないような特徴を持つものである。このプロトコルの詳細は、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.という文献に説明がある。
また、第4のステップでは、入力ワイヤーi,j、出力ワイヤーkのゲートに対応するTgと、
Figure 0005047198
とが与えられたとき、先ずTgからラベル
Figure 0005047198
を持つデータ
Figure 0005047198
を取り出し、
Figure 0005047198
を計算するとよい。これにより、上記出力ワイヤーに対応するデータ
Figure 0005047198
が得られる。他のゲートについても同様の処理を行えばよい。
また、第5のステップについては、例えばgがfの最終段ゲートである場合、ck=0とすることにより、
Figure 0005047198
から
Figure 0005047198
を得ることができる。
上述した本実施形態の秘密計算システムによる処理は各装置によって実行される。以下、装置間の信号の送受信を含む処理の流れについて概説する。図2は、第1の実施形態の秘密計算システムの動作を示すシーケンス図である。
図2を参照すると、まず、データmを保有している各変換装置101〜10Nが(s,t)を生成し(ステップ101)、sを秘密計算装置11Aに送信し(ステップ102)、tを秘密計算装置11Bに送信する(ステップ103)。このステップ101〜103が上記第1のステップに相当する。
次に、変換装置101〜10Nからtを受信した秘密計算装置11Bが論理回路fを変換し(ステップ104)、論理回路fの変換データを秘密計算装置11Aに送信する(ステップ105)。このステップ104〜105が上記第2のステップに相当する。
次に、秘密計算装置11Aは、秘密計算装置11Bとの間で1−out−of−2 Oblivious Transferプロトコルを実行し、sの下位w番目のビットswを入力とするワイヤーに対応するデータを得る(ステップ106)。このステップ106が上記第3のステップに相当する。
続いて、秘密計算装置11Aは、論理回路fのワイヤーの出力を得て、更に演算結果f(m1,・・・,mN)を得る(ステップ107)。このステップ107が上記第4および第5のステップに相当する。
図3は、第1の実施形態の秘密計算装置11Bの構成を示すブロック図である。図3を参照すると、秘密計算装置11Bは、入力部21、秘匿化部22、出力部23、および1−out−of−2 OT(Oblivious Transfer)実行部24を有している。
入力部21は、変換装置101〜10Nから受信したデータmの断片tを秘匿化部22に入力する。また分割演算子が予め定められていない場合、入力部21は、更に、変換装置101〜10Nで用いられた分割演算子を秘匿化部22に入力する。また論理回路fが予め定められていない場合、入力部21は、更に、論理回路fを秘匿化部22に入力する。
秘匿化部22は、断片tと論理回路fとから、断片sを入力として断片tを秘匿したままで演算結果f(m)を得ることが可能なデータTgを算出する。
出力部23は、秘匿化部22で算出されたデータTgを秘密計算装置11Aに送信する。
1−out−of−2 OT実行部24は、秘密計算装置11Aとの間で1−out−of−2 Oblivious Transferプロトコルを実行する。この処理は、上記第3のステップにおいて、sの下位w番目のビットswを入力とするワイヤーに対応するデータを得る処理である。
以上説明したように本実施形態では、変換装置101〜10Nは、データmをsとtに分割し、sを秘密計算装置11Aに送り、tを秘密計算装置11Bに送る。秘密計算装置11Bは、sを入力としてf(m)を求めることのできる、論理回路fが秘匿化されたデータTgを、論理回路fとtとから算出し、秘密計算装置11Aに送信する。秘密計算装置11Aは、データTgとsを用いてf(m)を算出する。したがって、本実施形態によれば、変換装置101〜10Nは、保有しているデータmをsとtに分割し、sを秘密計算装置11Aに送り、tを秘密計算装置11Bに送るだけなので、非特許文献1および2に開示された方法に比べて、変換装置101〜10Nの負荷が低減される。
なお、本実施形態では、XORを分割演算子としてデータmを2つの断片s,tに分割する例を示したが、本発明はこれに限定されるものではない。論理回路fに一方の断片(例えばt)を埋め込んでデータTgを生成し、他方の断片(例えばs)を入力として論理回路内でmを復元しつつ、データTgから論理回路fの演算結果を得られればよいので、加減算、乗算、その他どのような演算子を分割演算子としてもよい。
また、本実施形態では、秘密計算装置11Aが秘密計算装置11Bと1−out−of−2 Oblivious Transferプロトコルを実行することにより、sの下位w番目のビットswを入力とするワイヤーに対応するデータを得る例を示した。しかし、本発明は、これに限定されるものではない。他の例として、1−out−of−2 Oblivious Transferプロトコルを用いない方法について説明する。
本例では、変換装置101〜10Nは、入力値mの各ビットbに対応したデータWbと、各ビットbに対する(1−b)に対応したデータW(1−b)とを生成する。そして、変換装置101〜10Nは、入力値mを分割した一方の断片としてデータWbを秘密計算装置11Aに送る。また、変換装置101〜10Nは、bおよび(1−b)との対応を特定せずにデータWbおよびデータW(1−b)を含むデータW=(W0,W1)を他方の断片として秘密計算装置11Bに送る。
秘密計算装置11Bは、データWを用いて、データWbを入力として演算結果f(m)を求めることのできる、論理回路関数fを秘匿化したデータTを生成して、秘密計算装置11Aに送る。秘密計算装置11Aは、データTとデータWbとを入力とし、演算結果f(m)を算出する。
この方法では、上述した第1のステップ〜第3のステップの処理動作が以下に示す、第1′のステップ〜第3′のステップに変更される。
(第1′のステップ)
各変換装置101〜10Nは、mのビットmw(mの下位w番目のビット)が入力となるワイヤーiに対して、ランダムビットciおよび固定長の乱数
Figure 0005047198
を生成する。そして、各変換装置101〜10Nは、
Figure 0005047198
を秘密計算装置11Aに送信し、
Figure 0005047198
を秘密計算装置11Bに送信する。
(第2′のステップ)
秘密計算装置11Bは、上述した第2のステップと同様に、(a)〜(d)を実行することにより、論理回路fを変換する。ただし、ここでは(c)において、ワイヤーiがmのビットを入力とする場合は、
Figure 0005047198
として、変換装置10から受信した値を用いる。
(第3′のステップ)
秘密計算装置11Aは、上述した第2のステップと同様に、sを用いて、
Figure 0005047198
を求める。ただし、ここでは、秘密計算装置11Aは、1−out−of−2 Oblivious Transferプロトコルを実行せず、sの下位w番目のビットswを入力とするワイヤーに対応するデータとして、変換装置10から受信した
Figure 0005047198
を用いる。
この例によれば、1−out−of−2 Oblivious Transferプロトコルを実行する必要が無いので、上述した例と比べて、秘密計算装置11A,11Bの処理が軽減される。
秘匿性について、各変換装置10から秘密計算装置11Bに送られる
Figure 0005047198
には、mに関する情報が含まれていない。また、各変換装置10から秘密計算装置11Aに送られる
Figure 0005047198
においては、mwがランダムビットciでマスクされているため、mに関する有意な情報とはならない。したがって、秘密計算装置11A,11Bは自身の受信した情報からだけでは、mに関する有意な情報を得ることができず、秘匿性が確保される。
(第2の実施形態)
暗号応用技術では処理の正当性を検証できることが好ましい。第2の実施形態では、秘密計算装置による処理の正当性の検証を可能とした秘密計算システムを例示する。
第2の実施形態による秘密計算システムの基本的な構成は図1に示した第1の実施形態と同様である。
本実施形態の秘密計算システムは、変換装置101〜11Nの保有するデータを基に、秘密計算装置11A、11Bが連携動作することにより一連の処理を実行し、演算結果f(m1,...,mN)を求める。演算結果f(m1,...,mN)を求めるまでの手順は4つのステップからなる。なお記号を簡略化するため、ここではmの添え字を省略する。
(第1のステップ)
まず各変換装置101〜11Nは、セキュリティパラメータp及び秘密計算装置11Aの暗号化鍵PKを保有しており、保有データmに対して
Figure 0005047198
(u=1,...,p)を満たすsu,tuをランダムに生成する。さらに、各変換装置101〜11Nは、PKを用いてsuの暗号文E(su)を計算し、E(su),tu(u=1,...,p)を秘密計算装置11Bに送信する。
(第2のステップ)
秘密計算装置11Bは、u=1,...,pについて以下の(a)〜(e)を実行することにより論理回路fを変換し、さらにそれらのコミットメントを生成する。
(a) fのワイヤーiに対して固定長の乱数
Figure 0005047198
を生成し、それぞれ0,1に対応させる。
(b) ランダムビットciを生成する。
(c)
Figure 0005047198
をワイヤーiに対応させる。ここで
Figure 0005047198
とする。ただし、ワイヤーiがmの下位w番目のビットmwを入力とする場合は、
Figure 0005047198
とする。ここで(tuwはtuの下位w番目のビットとする。
(d) i,jを入力ワイヤー、kを出力ワイヤーとする論理ゲートgに対して、4つのラベル付きデータ
Figure 0005047198
を行単位でランダムな順番に並べたものをTgとする。このTgの集合が論理回路fの変換データf´uとなる。ここでコロンの左側をラベルとし、右側をデータとし、FW(x)はx,Wを入力して固定長の乱数を出力する関数であるものとする。
(e) 各TgについてコミットメントCommit=Hash(Tg)を計算し、秘密計算装置11Aに送信する。ここでHash(・)はハッシュ関数である。
秘密計算装置11Bは、このTgの集合を論理回路の変換データとし、Commitを各Tgのコミットメントとする。
データ自体は明かさず変更不可能な状態にしておき、そのデータが変更されていないかを後に検証する手法をコミットメント方式と呼ぶ。コミットメントは、このコミットメント方式の処理に利用される。
上記のように単純にはハッシュ関数を利用する手法は、コミットメント方式の一例である。この手法では、ハッシュ関数Hash(・)で求めたCommit=Hash(Tg)のみを検証装置に送信しておき、その後、検証装置はTgを受信し、CommitがTgのハッシュ値であるかどうか検証すればよい。それにより、変換データTgが変更されたものであるか否かを確認できる。本実施形態では、秘密計算装置11Aが検証装置として機能する。
(第3のステップ)
秘密計算装置11Aは以下の(f)〜(i)を実行することにより、変換後の論理回路f´u={Tg}の正当性を確認する。
(f) 1以上p以下の整数aをランダムに選び秘密計算装置11Bに送信する。
(g) その秘密計算装置11Bから、u≠aについて、
f´u
Figure 0005047198
、およびtuを受信する。
(h) f´uが変更されていないことを、Commitを用いて確認する。
(i) さらに、f´uが論理回路fを正しく変換した論理回路であることを、(W0,W1),tuを用いて確認する。
その際、秘密計算装置11Aは、(W0,W1),tuを用いて、i,jを入力ワイヤー、kを出力ワイヤーとする論理ゲートgに対して、4つのラベル付きデータ
Figure 0005047198
を算出し、これを、秘密計算装置11Bから取得したf´u={Tg}に含まれているものと比較する。Tgにおいて4つのラベル付きデータはランダムな順番に並んでいるので、これらについての比較においてデータの並んでいる順番は異なっていてもよい。
上記検証処理において、Commitまたはf´uが不正であると判断された場合、秘密計算装置11Bはそれ以降の処理を中止する。
f´u(u≠a)の少なくとも1つが不正なものであった場合、秘密計算装置11Aは、不正な変換があったことを検知する。ここで、aはf´uがコミットメントされた後、すなわちCommitが計算された後に生成された乱数であるため、秘密計算装置11Aは、(p−1)/p以上の確率で不正な変換を検知できる。
(第4のステップ)
秘密計算装置11Aは、以下の(j)〜(n)を実行することにより演算結果f(m1,...,mN)を得る。
(j) f´a及びE(sa)を秘密計算装置11Bから受信する。
(k) E(sa)からsaを復号する。
(l) saを用いて、
Figure 0005047198
を求める。その際、秘密計算装置11Aは、秘密計算装置11Bとの間で1−out−of−2 Oblivious Transferプロトコルを実行し、sの下位w番目のビットswを入力とするワイヤーに対応するデータ
Figure 0005047198
を得る。
(m) f´a及び
Figure 0005047198
を用いて、論理回路fの最終段のワイヤーの出力
Figure 0005047198
を得る。ここでb=mwとする。
(n)
Figure 0005047198
から演算結果f(m1,...,mN)のビットb′を得る。その際、b´を得るために、回路出力
Figure 0005047198
においてck=0とする。
図4は、第2の実施形態の秘密計算システムの動作を示すシーケンス図である。
図4を参照すると、まず、データmを保有している各変換装置101〜10Nがsu,tuを生成し(ステップ201)、さらにsuの暗号文E(su)を計算し(ステップ202)、E(su)とtuとを秘密計算装置11Bに送信する(ステップ203)。このステップ101〜103が上記第1のステップに相当する。
次に、変換装置101〜10NからE(su)とtuを受信した秘密計算装置11Bが論理回路fを変換し(ステップ204)、さらにコミットメントCommitを生成し(ステップ205)、コミットメントCommitを秘密計算装置11Aに送信する(ステップ206)。このステップ204〜106が上記第2のステップに相当する。
次に、秘密計算装置11Aがランダムに選択した1以上P以下の整数aを秘密計算装置11Bに通知する(ステップ207)。その後、u(u≠a)の各データに基づいて、秘密計算装置11Aが秘密計算装置11Bによる論理回路fの変換の正当性を検証する(ステップ208)。このステップ207〜208が上記第3のステップに相当する。
正当性が確認されたら、次に、秘密計算装置11Aは、E(sa)からsaを復号し(ステップ209)、u(u=a)のデータに基づき、秘密計算装置11Bとの間で1−out−of−2 Oblivious Transferプロトコルを実行し、sの下位w番目のビットswを入力とするワイヤーに対応するデータを得る(ステップ210)。続いて、秘密計算装置11Aは、論理回路fのワイヤーの出力を得て、更に演算結果f(m1,・・・,mN)を得る(ステップ211)。このステップ209〜211が上記第4のステップに相当する。
以上説明したように、本実施形態では、秘密計算装置11Aが、秘密計算装置11Bから、f´uと、tuと、ランダムに選択したaについてu≠aである
Figure 0005047198
とを取得し、
Figure 0005047198
と、tuとを用いて、f´uが正しく変換された論理回路であるか否か検証する。それ故、本実施形態によれば、秘密計算装置11Bによる論理回路fの変換が正しく行われていないことを秘密計算装置11Aによって検知することができる。また、tuが正しい値であることを検証できるようにするために、変換装置101〜10Nは、tuに電子署名を付与し、秘密計算装置11Bは、当該電子署名をCommitに含め、秘密計算装置11Aはtuが改ざんされていないか検証できるようにしてもよい。
以上、秘密計算装置11Bによる論理回路fの変換の正当性を秘密計算装置11Aが検証する構成について説明したが、また、秘密計算装置11Aによる演算結果f(m1,...,mN)を秘密計算装置11Bが検証することにしてもよい。
秘密計算装置11Aが本来の演算結果f(m1,...,mN)とは異なる結果を返したとき、秘密計算装置11Bは、以下のようにしてその不正を検知すればよい。
・秘密計算装置11Bは、論理回路fの変換データとして、本来の演算結果f(m1,...,mN)とともにσ=uf(m1,...,mN)+vが出力されるようなTgを生成する。ここでu,vは適当な乱数とする。
・秘密計算装置11Aは、f(m1,...,mN)とともにσを、秘密計算装置11Bに返す。
・秘密計算装置11Bは、秘密計算装置11Aから返されたf(m1,...,mN)とσを用い、σ=uf(m1,...,mN)+vであるか否か確認する。もし、σ=uf(m1,...,mN)+vでなければ、秘密計算装置11Aからの演算結果が不正なものであったと判断できる。
秘密計算装置11Aは、演算結果f(m1,...,mN)を算出する際の一度しか論理回路fを実行できないため、fに対する二つの異なる演算結果を得ることができない。そのため、σ=uf(m1,...,mN)+vという関数のu,vを得ることができない。したがって、秘密計算装置11Aは、本来とは異なる演算結果Rを出力する場合の正しいσ′=uR+vを算出できず、秘密計算装置11Bによって、演算結果Rが本来のものとは異なることが検知される。
また、秘密計算装置11Aが正しくsuを用いたかどうか検証するために、複数の装置に同様の処理を行わせ、結果が一致するかどうか確認してもよい。
なお、秘密計算装置11Aによる演算結果f(m1,...,mN)を検証するためのσとして、σ=uf(m1,...,mN)+vを用いたが、本発明はこれに限定されるものではない。他の例として、秘密計算装置11Aは、演算結果f(m1,...,mN)にσとして電子署名を付加することにしてもよい。これによれば、秘密計算装置11Bでなくても演算結果f(m1,...,mN)の正当性を検証することができる。
(第3の実施形態)
第2の実施形態では、秘密計算装置11Bによる論理回路fの変換の正当性を秘密計算装置11Aが検証する例を示したが、本発明はそれに限定されるものではない。他の例として、秘密計算装置11Aとは別に検証装置を設け、その検証装置が正当性を確認することにしてもよい。
図5は、第3の実施形態による秘密計算システムの構成を示すブロック図である。図5を参照すると、秘密計算システムは、複数の変換装置101〜10Nと秘密計算装置11A,11Bに加え、検証装置12を有している。第1の実施形態と同様に秘密計算装置11Aと秘密計算装置11Bとで秘密計算装置群11をなしている。
本実施形態は、秘密計算装置11Bによる変換結果の論理回路f´uの正当性を、確認を秘密計算装置Aとは異なる検証装置12が検証する点で第1の実施形態と異なる。
以下、本実施形態の秘密計算システムおよび各装置の動作について説明する。本実施形態の秘密計算システムは、一連の処理によって演算結果f(m1,・・・,mN)を求める。演算結果f(m1,・・・,mN)を求めるまでの手順は以下の第1〜4のステップからなる。なお、記号を簡略化するため、ここでは特に必要が無ければmiの添え字を省略することにする。
(第1のステップ)
まず各変換装置101〜11Nは、保有データmに対して、
Figure 0005047198
を満たす、s,tをランダムに生成し、sを秘密計算装置11Aに、tを秘密計算装置11Bにそれぞれ送信する。
(第2のステップ)
秘密計算装置11Bは、u=1,...,pについて、以下の(a)〜(e)を実行することにより論理回路fを変換する。
(a) fの各ワイヤーiに対して固定長の乱数
Figure 0005047198
を生成し、それぞれ0,1に対応させる。
(b) ランダムビットciを生成する。
(c)
Figure 0005047198
をワイヤーiに対応させる。ここで
Figure 0005047198
とする。ただし、ワイヤーiがmの下位w番目のビットmwを入力とする場合は、
Figure 0005047198
とする。ここでtwはtの下位w番目のビットとする。
(d) i,jを入力ワイヤー、kを出力ワイヤーとする論理ゲートgに対して、4つのラベル付きデータ
Figure 0005047198
を行単位でランダムな順番に並べたものをTgとする。このTgの集合が論理回路fの変換データf´uとなる。ここでコロンの左側をラベルとし、右側をデータとし、FW(x)はx,Wを入力して固定長の乱数を出力する関数であるものとする。
(e) t及び各Tgを検証装置12に送信する。
また、秘密計算装置11Bは、このTgの集合を論理回路fの変換データとして保持する。
(第3のステップ)
検証装置12は、以下の(f)〜(i)を実行することにより、変換後の論理回路f´u={Tg}の正当性を確認する。
(f) 1以上p以下の整数aをランダムに選び秘密計算装置11Bに送信する。
(g) 秘密計算装置11Bから、u≠aについて、
Figure 0005047198
を受信する。
(h) u≠aについて、(W0,W1),tを用いて、f´uが正しくfを変換した論理回路であることを確認する。
上記処理において、f´uが不正であると判断した場合、検証装置12は以降の処理を中止する。検証装置12は、f´u(u≠a)の少なくとも1つが不正なものであった場合、不正な変換があったことを検知する。ここで、aは、検証装置12がf´uを受信した後に生成した乱数であるため、(p−1)/p以上の確率で不正な変換を検知できる。
(i) f´uが正当なものであることが確認されたら、秘密計算装置11Bから秘密計算装置11Aにf´aを送信する。
(第4のステップ)
秘密計算装置11Aは、以下の(j)〜(m)を実行することにより演算結果f(m1,...,mN)を得る。
(j) f´aを秘密計算装置11Bから受信する。
(k) sを用いて
Figure 0005047198
を求める。その際、秘密計算装置11Bとの間で1−out−of−2 Oblivious Transferプロトコルを実行し、sの下位w番目のビットswを入力とするワイヤーに対応するデータ
Figure 0005047198
を得る。
(l) f´a及び
Figure 0005047198
を用いて、論理回路fの最終段のワイヤーの出力
Figure 0005047198
を得る。ここでb=mwとする。
(m)
Figure 0005047198
から演算結果f(m1,...,mN)のビットb′を得る。
図6は、第3の実施形態の秘密計算システムの動作を示すシーケンス図である。
図6を参照すると、まず、データmを保有している各変換装置101〜10Nがs,tを生成し(ステップ301)、sを秘密計算装置11Aに送信し(ステップ302)、tを秘密計算装置11Bに送信する(ステップ303)。このステップ301〜303が上記第1のステップに相当する。
次に、変換装置101〜10Nからtを受信した秘密計算装置11Bが論理回路fを変換する(ステップ304)。このステップ304が上記第2のステップに相当する。
次に、検証装置12がランダムに選択した1以上P以下の整数aを秘密計算装置11Bに通知する(ステップ305)。その後、u(u≠a)の各データに基づいて、検証装置12が秘密計算装置11Bによる論理回路fの変換の正当性を検証する(ステップ306)。このステップ305〜306が上記第3のステップに相当する。
正当性が確認されたら、秘密計算装置11Bがf´aを秘密計算装置11Aに送り(ステップ307)、秘密計算装置11Aは、u(u=a)のデータに基づき、秘密計算装置11Bとの間で1−out−of−2 Oblivious Transferプロトコルを実行し、sの下位w番目のビットswを入力とするワイヤーに対応するデータを得る(ステップ308)。続いて、秘密計算装置11Aは、論理回路fのワイヤーの出力を得て、更に演算結果f(m1,・・・,mN)を得る(ステップ309)。このステップ307〜309が上記第4のステップに相当する。
図7は、第3の実施形態における検証装置の構成を示すブロック図である。図7を参照すると、検証装置12は検証情報取得部31と検証部32を有している。
検証情報取得部31は、1以上P以下の整数aをランダムに選択して秘密計算装置11Bに送り、秘密計算装置11Bから、u(u≠a)について、
Figure 0005047198
を取得する。
検証部32は、u(u≠a)について、(W0,W1),tを用いて、f´uが正しくfを変換した論理回路であるか否か確認する。
以上説明したように、本実施形態では、検証装置12を設けることで、秘密計算装置11Aの処理を低減している。しかし、秘密計算装置11Bが検証装置12の機能をも備える構成であってもよい。
また、上述した各実施形態における各装置は、各部の動作を処理手順として規定したソフトウェアプログラムをコンピュータに実行させることにより実現することもできる。例えば、図3に示した秘密計算装置11Bは、入力部21、秘匿化部22、出力部23、および1−out−of−2 OT実行部24の処理手順を規定したプログラムをコンピュータに実行させることにより実現することができる。
以上、本発明の各実施形態について述べてきたが、本発明は、これらの実施形態だけに限定されるものではなく、本発明の技術思想の範囲内において、これらの実施形態を組み合わせて使用したり、一部の構成を変更したりしてもよい。
101〜10N 変換装置
11 秘密計算装置群
11A,11B 秘密計算装置
12 検証装置
21 入力部
22 秘匿化部
23 出力部
24 1−out−of−2 OT実行部
31 検証情報取得部
32 検証部

Claims (17)

  1. 入力値mを秘匿したままで、該入力値mに対する論理回路f(x)の演算結果f(m)を算出する秘密計算システムであって、
    前記入力値mが2つに分割された一方の断片Bを入力とし、前記論理回路f(x)と前記断片Bとから、他方の断片Aを入力として前記演算結果f(m)を求めることのできる、論理回路f(x)が秘匿化されたデータTを生成する第1の秘密計算装置と、
    前記断片Aと前記データTとを入力とし、前記演算結果f(m)を算出する第2の秘密計算装置と、を有する秘密計算システム。
  2. 前記断片A、Bは、前記入力値mを分割演算子*で2つに分割した断片s、tであり、
    前記第1の秘密計算装置は、前記論理回路f(x)と前記断片tとから、前記断片sを入力として前記演算結果f(m)を求めることのできる、論理回路f(x*t)が秘匿化されたデータTを生成し、
    前記第2の秘密計算装置は、前記断片sと前記データTとを入力とし、前記演算結果f(m)を算出する、請求項1に記載の秘密計算システム。
  3. 前記第1の秘密計算装置は、前記断片tを前記論理回路f(x)に埋め込んだ前記論理回路f(x*t)を秘匿化したデータTを生成し、
    前記第2の秘密計算装置は、前記断片sを入力として、論理演算において前記入力値mを実際に復元することなく、前記データTから演算結果f(m)を算出する、請求項2に記載の秘密計算システム。
  4. 前記第2の秘密計算装置は、前記第1の秘密計算装置との間で1−out−of−2 Oblivious Transferプロトコルを実行することにより取得した、秘匿された前記入力値mに関するデータを、前記演算結果f(m)の算出に用いる、請求項2または3に記載の秘密計算システム。
  5. 前記入力値mを、m=s*tを満たすように、前記断片s,tに分割し、前記断片tを前記第1の秘密計算装置に送信し、前記断片sを前記第2の秘密計算装置に送信する変換装置を更に有する、請求項2から4のいずれか1項に記載の秘密計算システム。
  6. 前記断片Aは前記入力値mの各ビットbに対応したデータWbであり、前記断片Bは、前記データWbと前記各ビットbに対する(1−b)に対応したデータW(1−b)とを、bおよび(1−b)との対応を特定せずに含むデータW=(W0,W1)であり、
    前記第1の秘密計算装置は、前記データWを用いて、前記データWbを入力として前記演算結果f(m)を求めることのできる、論理回路関数fを秘匿化したデータTを生成し、
    前記第2の秘密計算装置は、前記データTと前記データWbとを入力とし、前記演算結果f(m)を算出する、請求項1に記載の秘密計算システム。
  7. 不正な処理を検知するための検証装置を更に有し、
    前記入力値mからは、断片Aと断片Bとからなる複数の断片対が生成され、
    前記第1の秘密計算装置は、複数の断片対の断片Bを入力とし、各断片Bに対して前記データTを生成し、該データTの集合を前記論理回路f(x)を変換した論理回路とし、
    前記検証装置は、前記論理回路f(x)を変換した論理回路と、複数の前記断片対のうち任意に選択されたもの以外の断片対の断片Bおよびそれに対応するデータTと、該データTの正当性を検証することが可能な検証情報とを前記第1の秘密計算装置から取得し、該データTと該検証情報を用いて、前記論理回路f(x)を変換した論理回路の正当性を検証し、
    前記第2の秘密計算装置は、前記検証装置によって前記正当性が確認されたら、複数の前記断片対のうち任意に選択された前記断片対に対応するデータTと、該断片対の断片Aとを入力とし、前記演算結果f(m)を算出する、
    請求項1から6のいずれか1項に記載の秘密計算システム。
  8. 前記検証情報は、検証の対象である前記データTを生成するときに前記第1の秘密計算装置が用いた入力値であり、
    前記検証装置は、該データTと該入力値を用いて、前記論理回路f(x)を変換した論理回路の正当性を検証する、請求項7に記載の秘密計算システム。
  9. 前記検証情報は、検証の対象である前記データTのハッシュ値であり、
    前記検証装置は、該ハッシュ値を用いて、前記論理回路f(x)を変換した論理回路の正当性を検証する、請求項6または7に記載の秘密計算システム。
  10. 前記検証装置は、前記第1の秘密計算装置または前記第2の秘密計算装置のいずれかに組み込まれている、請求項7から9のいずれか1項に記載の秘密計算システム。
  11. 前記第1の秘密計算装置は、前記論理回路f(x)の演算結果f(m)とともに、該演算結果f(m)と2つ以上の定数値とから算出される付加情報が出力されるように前記データTを生成し、
    前記第2の秘密計算装置は、前記演算結果f(m)とともに付加情報を生成して前記第1の秘密計算装置に返し、
    前記第1の秘密計算装置は、前記第2の秘密計算装置から返された前記付加情報と前記定数値とを用いて、前記第2の秘密計算装置から返された前記演算結果f(m)を検証する、請求項7から10のいずれか1項に記載の秘密計算システム。
  12. 第1の秘密計算装置と第2の秘密計算装置により、入力値mを秘匿したままで、該入力値mに対する論理回路f(x)の演算結果f(m)を算出するための秘密計算方法であって、
    前記入力値mを2つに分割した一方の断片Bを前記第1の秘密計算装置に与え、他方の断片Aを前記第2の秘密計算装置に与え、
    前記第1の秘密計算装置において、前記断片Bを入力とし、前記論理回路f(x)と前記断片Bとから、他方の断片Aを入力として前記演算結果f(m)を求めることのできる、論理回路f(x)が秘匿化されたデータTを生成し、
    前記第1の秘密計算装置から前記第2の秘密計算装置に前記データTを送信し、
    前記第2の秘密計算装置において、前記断片Aと前記データTとを入力とし、前記演算結果f(m)を算出する、秘密計算方法。
  13. 前記第1の秘密計算装置および前記第2の秘密計算装置とは別に、あるいは前記第1の秘密計算装置または前記第2の秘密計算装置に備えられた検証装置があり、
    前記入力値mからは、断片Aと断片Bとからなる複数の断片対が生成され、
    前記第1の秘密計算装置は、複数の断片対の断片Bを入力とし、各断片Bに対して前記データTを生成し、該データTの集合を前記論理回路f(x)を変換した論理回路とし、
    前記検証装置は、前記論理回路f(x)を変換した論理回路と、複数の前記断片対のうち任意に選択されたもの以外の断片対の断片Bおよびそれに対応するデータTと、該データTの正当性を検証することが可能な検証情報とを前記第1の秘密計算装置から取得し、該データTと該検証情報を用いて、前記論理回路f(x)を変換した論理回路の正当性を検証し、
    前記第2の秘密計算装置は、前記検証装置によって前記正当性が確認されたら、複数の前記断片対のうち任意に選択された前記断片対に対応するデータTと、該断片対の断片Aとを入力とし、前記演算結果f(m)を算出する、
    請求項12に記載の秘密計算方法。
  14. 入力値mを秘匿したままで、該入力値mに対する論理回路f(x)の演算結果f(m)を算出する秘密計算システムを構成する秘密計算装置であって、
    前記入力値mを保持している変換装置から、前記入力値を2つに分割した一方の断片Bを受信する入力手段と、
    前記入力手段から入力された前記断片Bと前記論理回路f(x)とから、他方の断片Aを入力として前記演算結果f(m)を求めることのできる、論理回路f(x)が秘匿化されたデータTを生成する秘匿化手段と、
    前記秘匿化手段で生成された前記データを、前記断片Aを持った他の秘密計算装置に送る出力手段と、を有する秘密計算装置。
  15. 入力値mを秘匿したままで、該入力値mに対する論理回路f(x)の演算結果f(m)を算出する第1および第2の秘密計算装置を有する秘密計算システムにおける処理を検証する検証装置であって、
    断片Aと断片Bとからなる複数の断片対の断片Bを入力として、各断片Bに対して生成されたデータTの集合である、前記論理回路f(x)を変換した論理回路と、前記複数の断片対のうち任意に選択されたもの以外の断片対の断片Bおよびそれに対応するデータTと、該データTの正当性を検証することが可能な検証情報とを前記第1の秘密計算装置から取得する検証情報取得手段と、
    検証情報取得手段で取得された前記データTと前記検証情報を用いて、前記論理回路f(x)を変換した論理回路の正当性を検証する検証手段と、を有する検証装置。
  16. コンピュータを、入力値mを秘匿したままで、該入力値mに対する論理回路f(x)の演算結果f(m)を算出する秘密計算システムを構成する秘密計算装置として動作させるためのプログラムであって、
    前記入力値mを保持している変換装置から、前記入力値を2つに分割した一方の断片Bを受信する手順と、
    入力された前記断片Bと前記論理回路f(x)とから、他方の断片Aを入力として前記演算結果f(m)を求めることのできる、論理回路f(x)が秘匿化されたデータTを生成する手順と、
    生成した前記データを、前記断片Aを持った他の秘密計算装置に送る手順と、をコンピュータに実行させるためのプログラム。
  17. コンピュータを、入力値mを秘匿したままで、該入力値mに対する論理回路f(x)の演算結果f(m)を算出する第1および第2の秘密計算装置を有する秘密計算システムにおける処理を検証する検証装置として動作させるためのプログラムであって、
    断片Aと断片Bとからなる複数の断片対の断片Bを入力として、各断片Bに対して生成されたデータTの集合である、前記論理回路f(x)を変換した論理回路と、前記複数の断片対のうち任意に選択されたもの以外の断片対の断片Bおよびそれに対応するデータTと、該データTの正当性を検証することが可能な検証情報とを前記第1の秘密計算装置から取得する手順と、
    取得された前記データTと前記検証情報を用いて、前記論理回路f(x)を変換した論理回路の正当性を検証する手順と、をコンピュータに実行させるためのプログラム。
JP2009008967A 2008-01-21 2009-01-19 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム Active JP5047198B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009008967A JP5047198B2 (ja) 2008-01-21 2009-01-19 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008010929 2008-01-21
JP2008010929 2008-01-21
JP2009008967A JP5047198B2 (ja) 2008-01-21 2009-01-19 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム

Publications (2)

Publication Number Publication Date
JP2009199068A JP2009199068A (ja) 2009-09-03
JP5047198B2 true JP5047198B2 (ja) 2012-10-10

Family

ID=41142550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009008967A Active JP5047198B2 (ja) 2008-01-21 2009-01-19 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム

Country Status (1)

Country Link
JP (1) JP5047198B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7440039B2 (ja) 2020-09-24 2024-02-28 芦森工業株式会社 避難用シュート
JP7440040B2 (ja) 2020-09-24 2024-02-28 芦森工業株式会社 避難用シュート

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5337076B2 (ja) * 2010-02-24 2013-11-06 日本電信電話株式会社 秘密計算システム、秘密計算方法、不正使用防止方法
JP5351852B2 (ja) * 2010-08-02 2013-11-27 日本電信電話株式会社 横断統計システム、発言端末、横断統計方法
JP5438650B2 (ja) * 2010-09-30 2014-03-12 日本電信電話株式会社 不正検知方法、秘密計算システム、計算装置、計算プログラム
US9607158B2 (en) * 2010-10-26 2017-03-28 Nippon Telegraph And Telephone Corporation Proxy computing system, computing apparatus, capability providing apparatus, proxy computing method, capability providing method, program, and recording medium
US20180366227A1 (en) 2016-01-07 2018-12-20 Sony Corporation Information processing device, information processing system, and information processing method, and program
JP6933290B2 (ja) * 2018-02-20 2021-09-08 日本電信電話株式会社 秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2242032B1 (en) * 2008-01-21 2013-10-02 Nippon Telegraph and Telephone Corporation Secure computing system, secure computing method, secure computing apparatus and program therefor
JP5078632B2 (ja) * 2008-01-21 2012-11-21 日本電信電話株式会社 秘密計算システム、秘密計算方法、および秘密計算プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7440039B2 (ja) 2020-09-24 2024-02-28 芦森工業株式会社 避難用シュート
JP7440040B2 (ja) 2020-09-24 2024-02-28 芦森工業株式会社 避難用シュート

Also Published As

Publication number Publication date
JP2009199068A (ja) 2009-09-03

Similar Documents

Publication Publication Date Title
JP5047198B2 (ja) 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム
US9497021B2 (en) Device for generating a message authentication code for authenticating a message
JP6740902B2 (ja) 認証暗号化方法、認証復号方法および情報処理装置
US8121294B2 (en) System and method for a derivation function for key per page
TWI489847B (zh) 資料加密方法、資料驗證方法及電子裝置
JP5855696B2 (ja) 完全性検証を含むブロック暗号化方法およびブロック復号化方法
Saarinen Ring-LWE ciphertext compression and error correction: Tools for lightweight post-quantum cryptography
Kiktenko et al. Lightweight authentication for quantum key distribution
CN111066077B (zh) 加密装置、加密方法、解密装置以及解密方法
JP6738062B2 (ja) 暗号文照合システム、方法、および記録媒体
WO2017056150A1 (ja) メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
EP3167569A1 (en) Method and system for providing a secure update of code on a memory-constrained device
JP6738061B2 (ja) 暗号文照合システム、方法、および記録媒体
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
Dobraunig et al. Ascon v1
US10200356B2 (en) Information processing system, information processing apparatus, information processing method, and recording medium
JP5431191B2 (ja) 認証付きストリーム暗号の暗号化装置、認証付きストリーム暗号の復号化装置、暗号化方法、復号化方法およびプログラム
US20230141210A1 (en) Neural networks
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
Agrawal et al. White-box Cryptography with Device Binding from Token-based Obfuscation and more.
JP5078632B2 (ja) 秘密計算システム、秘密計算方法、および秘密計算プログラム
JP5103407B2 (ja) 暗号化数値二進変換システム、暗号化数値二進変換方法、暗号化数値二進変換プログラム
CN113330712A (zh) 采用基于排列群的加密技术的加密系统及方法
JP5431190B2 (ja) 認証付きストリーム暗号の暗号化装置、認証付きストリーム暗号の復号化装置、暗号化方法、復号化方法およびプログラム
TWI242966B (en) Security transmitting method and system of digital medical information

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110208

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110614

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

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

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

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5047198

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