JP6232629B2 - 汎用秘匿関数計算システム、デ−タ処理装置、汎用秘匿関数計算方法、汎用秘匿関数計算プログラム、および、記録媒体 - Google Patents
汎用秘匿関数計算システム、デ−タ処理装置、汎用秘匿関数計算方法、汎用秘匿関数計算プログラム、および、記録媒体 Download PDFInfo
- Publication number
- JP6232629B2 JP6232629B2 JP2014003592A JP2014003592A JP6232629B2 JP 6232629 B2 JP6232629 B2 JP 6232629B2 JP 2014003592 A JP2014003592 A JP 2014003592A JP 2014003592 A JP2014003592 A JP 2014003592A JP 6232629 B2 JP6232629 B2 JP 6232629B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- disturbance
- addition
- result
- bit
- 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
Description
の暗号文を抜き出し、それらの第一項どうし、第二項どうしを乗算する。これにより(2M1+M2+...+Mlyr1+r2+…+rl、gr1+r2+…+rl)という暗号文Bを作成する。さらに、乱数Rを(2Ryrp2,grp2)によって暗号化し、暗号文Bと暗号文(2Ryrp2, grp2)と第1項どうし、第2項どうしを乗算することで、暗号文BR=(2M1+M2 +…+Ml+Ryr1+r2+...+rl+rp2, gr1+r2+...+rl+rp2)を作成する。この暗号文BRを機関P2は機関P1に送信し、機関P1は暗号文の第2項に秘密鍵SkeyP1を指数乗することよりExpC=2(M1+M2+...+Ml+R)yr1+r2+…+rl+rp2/(gr1+r2+...+rl+rp2)SkeyP1を計算し、C=log2ExpC=M1+M2+…+Ml+Rを得る。機関P1は値Cを得るだけであり、値Cがどのような成分の加算によって構成されたか、機関P2の1の数等の機関P2に関する情報を知ることはできない。
関数評価処理かビット列撹乱処理の一方を担当する2以上のデータ処理装置で構成される秘匿関数計算システムであって、
前記ビット列撹乱処理を担当する前記データ処理装置は、
撹乱データの一部である第1の撹乱部分データを他のデータ処理装置に送信し、前記第1の撹乱部分データと加算対象秘密データを組み合わせて撹乱後加算対象秘密データを作成し、段数変数に設定された段数での主暗号鍵で前記撹乱データの一部である第2の撹乱部分データを暗号化して暗号化撹乱データを作成し、該暗号化撹乱データを他のデータ処理装置に送信し、二重暗号化撹乱後加算対象秘密データを前記他のデータ処理装置から受信し、前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と前記撹乱後加算対象秘密データを暗号化したまま加算した結果を暗号化撹乱加算結果とし、前記暗号化撹乱加算結果を他のデータ処理装置へ送信する秘匿加算撹乱(加算)手段と、
最終交換データとなる撹乱データを、自らの最終交換データとして設定する最終交換データ設定(加算)手段と、
を有し、
前記関数評価処理を担当するデータ処理装置は、
他のデータ処理装置より前記第1の撹乱部分データと前記暗号化撹乱データを受信し、受信した前記第1の撹乱部分データと加算対象秘密データを組み合わせて加算対象データ変形を作成し、該加算対象データ変形と前記暗号化撹乱データを組み合わせて二重暗号化撹乱後加算対象秘密データを作成し、前記二重暗号化撹乱後加算対象秘密データを他のデータ処理装置に送信し、他のデータ処理装置より、前記暗号化撹乱加算結果を受信し、前記暗号化撹乱加算結果を前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵により復号し、撹乱加算結果を作成し、前記撹乱加算結果の二進数表現を加算結果ビット配列とする秘匿加算撹乱(結果取得)手段と、
前記加算結果ビット配列より、加算前の2つのビット列をあいまいに推測してあいまい推測ビット列1とあいまい推測ビット列2を導出する加算前ビット列あいまい推測手段と、
前記段数変数の値の段数にて適用すべき可換性論理演算を前記あいまい推測ビット列1の配列位置のビットと前記あいまい推測ビット列2の配列位置のビットに適用した演算結果を導出し、前記演算結果を論理演算結果ビット配列の前記配列位置に設定し、該論理演算結果ビット配列を出力秘密データとして記憶する論理演算適用手段と、
前記出力秘密データを、最終交換データとして設定する最終交換データ設定(結果取得)手段と、
を有し、
前記加算前ビット列あいまい推測手段は、2つの数である加算前入力1としての前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と加算前入力2としての前記撹乱後加算対象秘密データの加算結果の二進数表現が加算結果ビット配列に設定されているとき、あいまい推測後に前記あいまい推測ビット列1に設定されたビット列の任意のビット位置のビットと前記あいまい推測ビット列2に設定されたビット列の前記ビット位置のビットに対して任意の可換性二項論理演算を適用したときの結果が前記加算前入力1の二進数表現のビット列の前記ビット位置のビットと前記加算前入力2の二進数表現のビット列の前記ビット位置のビットに対して前記可換性二項論理演算を適用したときの結果と等しいということを満たす前記あいまい推測ビット列1と前記あいまい推測ビット列2を生成し、
前記データ処理装置はそれぞれ、
段数変数に初期値を初期化後、前記秘匿加算撹乱(結果取得)手段又は前記秘匿加算撹乱(結果取得)手段及び前記論理演算適用手段が、その段数での処理を行う度に、前記段数変数の値が指定段数に等しくなるまで前記段数変数の値を1だけ増加させる段数管理手段と、
該他のデータ処理装置の最終交換データを受信し、受信した値を受信最終交換データとし、前記自らの最終交換データと前記受信最終交換データとに基づいて、最終結果を算出する最終結果算出手段と、を有する、
ことを特徴とする
前記秘匿加算撹乱(結果取得)手段は、
前記段数変数の値の段数での主暗号鍵、秘密データの名前、撹乱データの名前を記憶手段からそれぞれ読み出し、読み出した暗号鍵と、読み出した前記秘密データ名に対応する秘密データと、読み出した撹乱データ名に対応する撹乱データとを用いて、その段数での処理を行い、
前記最終交換データ設定(加算)手段は、
前記段数変数の値の段数での撹乱データの名前をもつ前記撹乱データを、自らの前記最終交換データとして設定し、
前記関数評価処理を担当するデータ処理装置では、
前記秘匿加算撹乱(結果取得)手段は、
前記段数変数の値の段数での暗号鍵、秘密データの名前である加算対象秘密データ名をもつ秘密データを用いて処理を行い、
前記論理演算適用手段は、
前記段数変数の値が前記初期値から前記指定段数までの各段において、各配列位置で前記あいまい推測ビット配列1と前記あいまい推測ビット配列2の前記配列位置の2つのビットに適用する可換性論理演算の種類を列形式で記している指定論理演算型配列の各配列位置で指定されている型の可換性論理演算を行い、得られた前記論理演算結果ビット配列を、前記各段における加算対象秘密データ名をつけて記憶する、
ことを特徴としてもよい。
前記段数変数の値の段数で定められた繰り返し数分、その繰り返し回に対応する正順と逆順の加算対象秘密データと、暗号鍵と、撹乱データとを用いて処理を繰り返し行い、その都度、前記正順と逆順の暗号化撹乱加算結果を他のデータ処理装置に送信し、
前記秘匿加算撹乱(結果取得)手段は、
前記段数変数の値の段数で定められた繰り返し数分、その繰り返し回に対応する暗号鍵、正順と逆順との加算対象秘密データを用いて、処理を繰り返し行い、その都度、前記加算結果(正順)ビット配列と前記加算結果(逆順)ビット配列の二進数表現を求め、
前記加算前ビット列あいまい推測手段は、
前記加算結果(正順)ビット配列と前記加算結果(逆順)ビット配列より、加算前の2つのビット列をあいまいに推測し、あいまい推測ビット列1とあいまい推測ビット列2を導出し、
前記あいまい推測ビット列1と前記あいまいビット列2は、
2つの数である加算前入力1と加算前入力2の加算結果の二進数表現が加算結果(正順)ビット配列に設定され、加算前入力1、加算前入力2それぞれを二進数表現の最上位ビット位置から最下位ビット位置までのビットの並びを逆順序にしたときのビットの並びをそれぞれ加算前逆順ビット列1と加算前逆順ビット列2とし、前記加算前逆順ビット列1と前記加算前逆順ビット列2の加算結果の二進数表現が加算結果(逆順)ビット配列に設定されたとき、あいまい推測後に前記あいまい推測ビット配列1に設定されたビット列の任意のビット位置のビットと前記あいまい推測ビット配列2に設定されたビット列の前記ビット位置のビットに対して任意の可換性二項論理演算を適用したときの結果が前記加算前入力1の二進数表現のビット列の前記ビット位置のビットと前記加算前入力2の二進数表現のビット列の前記ビット位置のビットに対して前記可換性二項論理演算を適用したときの結果と等しいという性質を満たす、
ことを特徴としてもよい。
撹乱のために加算対象秘密データを切断して作成する切断ブロック数と、切断する配列位置を前記切断ブロック数並べたブロック切断点順列と、切断後にブロックを転置するために各ブロックに乗算したいブロックシフト係数順列と、前記ブロックシフト係数順列により挿入した空白ブロックの内容を指定する撹乱挿入加算値を含み、
前記秘匿加算撹乱(加算)手段は、
前記切断ブロック数と前記ブロック切断点順列を前記第1の撹乱部分データとして他のデータ処理装置へ送信し、前記加算対象秘密データを前記ブロック切断点順列に従って、前記切断ブロック数のブロックに切断して切断ブロック列を作成し、該切断ブロック列と前記ブロックシフト係数順列との内積を計算して切断ブロックシフト後秘密データを作成し、前記切断ブロックシフト後秘密データと前記撹乱挿入加算値を加算して撹乱後加算対象秘密データを作成し、スカラー定数変数に前記撹乱後加算対象秘密データを設定し、前記ブロックシフト係数順列の要素で1以下の値の要素がある場合には最も小さい値の要素を探して最小値要素とし、該最小値要素の値をスカラー除数変数に設定し、1以下の値の要素がない場合にはスカラー除数変数に1を設定し、前記ブロックシフト係数順列の各要素の値に前記スカラー除数変数の逆数を乗じることで計算できる順列を内積対象ベクトルに設定し、ベクトルサイズに前記切断ブロックの値を設定するブロックシフト係数設定小部分手段と、
前記内積対象ベクトルの各ベクトル位置で、副暗号鍵ベクトルの前記ベクトル位置の要素を暗号化して暗号化内積対象ベクトルを作成し、他のデータ処理装置に該暗号化内積対象ベクトルを送信し、他のデータ処理装置より、二重暗号化内積対象乗算結果ベクトルを受信し、前記二重暗号化内積対象乗算結果ベクトルの各ベクトル位置で、前記副暗号鍵ベクトルの前記ベクトル位置に設定されている暗号鍵、もしくは前記暗号鍵に対応する復号鍵により前記二重暗号化内積対象乗算結果ベクトルの前記ベクトル位置の要素を復号して暗号化内積対象乗算結果ベクトルを作成し、前記暗号化内積対象乗算結果ベクトルの全要素を加算して暗号化内積結果を作成し、前記暗号化内積結果を前記スカラー除数で除算した結果を前記暗号化秘匿ベクトル内積結果に設定し、前記暗号化秘匿ベクトル内積結果に設定されている暗号値を他のデータ処理装置へ送信する秘匿ベクトル内積計算(加算)小部分手段と、
を備え、
前記秘匿加算撹乱(結果取得)手段は、
他のデータ処理装置より前記他のデータ処理装置の前記切断ブロック数と前記ブロック切断点順列を受信し、前記加算対象秘密データを前記ブロック切断点順列に従って、前記切断ブロック数のブロックに分割し、前記ブロックをベクトル表現として並べて内積対象ベクトルを作成する切断ブロック作成小部分手段と、
他のデータ処理装置より他のデータ処理装置の前記暗号化内積対象ベクトルを受信し、前記内積対象ベクトルの各ベクトル位置において、前記ベクトル位置の前記暗号化内積対象ベクトルの要素と、前記内積対象ベクトルの前記ベクトル位置の要素を乗算した結果を、前記主暗号鍵で暗号化して前記ベクトル位置の要素とすることで二重暗号化内積対象乗算結果ベクトルを作成し、前記二重暗号化内積対象乗算結果ベクトルを前記他のデータ処理装置へ送信し、該データ処理装置より該他のデータ処理装置の前記暗号化秘匿ベクトル内積結果に設定されている暗号値を受信して、前記暗号化秘匿ベクトル内積結果に設定し、前記暗号化秘匿ベクトル内積結果に設定されている暗号値を前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵で復号して得られた結果をベクトル内積結果とし、結果秘密データ名をもつ秘密データとして前記ベクトル内積結果を記憶する秘匿ベクトル内積(結果取得)小部分手段と、
を備える、
ことを特徴としてもよい。
ことを特徴としてもよい。
2以上の前記データ処理装置は、それぞれ、
自己の保有する各変数に設定されたデータを前記データ記憶装置に保存し、
他のデータ処理装置が保存したデータを前記データ記憶装置から取得してもよい。
前記撹乱後加算対象秘密データは、2以上の他のデータ処理装置の前記主暗号鍵で順次暗号化されることによって生成されてもよい。
他のデータ処理装置と連携してデータを処理するデータ処理装置であって、
関数評価処理かビット列撹乱処理の一方を担当し、
前記ビット列撹乱処理を担当する場合に、
撹乱データの一部である第1の撹乱部分データを他のデータ処理装置に送信し、前記第1の撹乱部分データと加算対象秘密データを組み合わせて撹乱後加算対象秘密データを作成し、段数変数に設定された段数での主暗号鍵で前記撹乱データの一部である第2の撹乱部分データを暗号化して暗号化撹乱データを作成し、該暗号化撹乱データを他のデータ処理装置に送信し、二重暗号化撹乱後加算対象データを前記他のデータ処理装置から受信し、前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と前記撹乱後加算対象秘密データを暗号化したまま加算した結果を暗号化撹乱加算結果とし、前記暗号化撹乱加算結果を他のデータ処理装置へ送信する秘匿加算撹乱(加算)手段と、
最終交換データとなる撹乱データを、自らの最終交換データとして設定する最終交換データ設定(加算)手段と、
を有し、
前記関数評価処理を担当する場合に、
他のデータ処理装置より前記第1の撹乱部分データと前記暗号化撹乱データを受信し、受信した前記第1の撹乱部分データと加算対象秘密データを組み合わせて加算対象データ変形を作成し、該加算対象データ変形と前記暗号化撹乱データを組み合わせて二重暗号化撹乱後加算対象データを作成し、前記二重暗号化撹乱後加算対象データを他のデータ処理装置に送信し、他のデータ処理装置より、前記暗号化撹乱加算結果を受信し、前記暗号化撹乱加算結果を前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵により復号して撹乱加算結果を作成し、該撹乱加算結果の二進数表現を加算結果ビット配列とする秘匿加算撹乱(結果取得)手段と、
前記加算結果ビット配列より、加算前の2つのビット列をあいまいに推測してあいまい推測ビット列1とあいまい推測ビット列2を導出する加算前ビット列あいまい推測手段と、
前記段数変数の値の段数にて適用すべき可換性論理演算を前記あいまい推測ビット列1の配列位置のビットと前記あいまい推測ビット列2の配列位置のビットに適用した演算結果を導出し、前記演算結果を論理演算結果ビット配列の前記配列位置に設定し、該論理演算結果ビット配列を出力秘密データとして記憶する論理演算適用手段と、
前記出力秘密データを、最終交換データとして設定する最終交換データ設定(結果取得)手段と、
を有し、
前記加算前ビット列あいまい推測手段は、2つの数である加算前入力1としての前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と加算前入力2としての前記撹乱後加算対象秘密データの加算結果の二進数表現が加算結果ビット配列に設定されているとき、あいまい推測後に前記あいまい推測ビット列1に設定されたビット列の任意のビット位置のビットと前記あいまい推測ビット列2に設定されたビット列の前記ビット位置のビットに対して任意の可換性二項論理演算を適用したときの結果が前記加算前入力1の二進数表現のビット列の前記ビット位置のビットと前記加算前入力2の二進数表現のビット列の前記ビット位置のビットに対して前記可換性二項論理演算を適用したときの結果と等しいということを満たす前記あいまい推測ビット列1と前記あいまい推測ビット列2を生成し、
段数変数に初期値を初期化後、前記秘匿加算撹乱(結果取得)手段又は前記秘匿加算撹乱(結果取得)手段及び前記論理演算適用手段が、その段数での処理を行う度に、前記段数変数の値が指定段数に等しくなるまで前記段数変数の値を1だけ増加させる段数管理手段と、
該他のデータ処理装置の最終交換データを受信し、受信した値を受信最終交換データとし、前記自らの最終交換データと前記受信最終交換データとに基づいて、最終結果を算出する最終結果算出手段と、を有する、
ことを特徴とする。
関数評価処理かビット列撹乱処理の一方を担当する2以上のデータ処理装置を用いて行う秘匿関数計算方法であって、
前記ビット列撹乱処理を担当する前記データ処理装置が、
撹乱データの一部である第1の撹乱部分データを他のデータ処理装置に送信し、前記第1の撹乱部分データと加算対象秘密データを組み合わせて撹乱後加算対象秘密データを作成し、段数変数に設定された段数での主暗号鍵で前記撹乱データの一部である第2の撹乱部分データを暗号化して暗号化撹乱データを作成し、該暗号化撹乱データを他のデータ処理装置に送信し、二重暗号化撹乱後加算対象データを前記他のデータ処理装置から受信し、前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と前記撹乱後加算対象秘密データを暗号化したまま加算した結果を暗号化撹乱加算結果とし、前記暗号化撹乱加算結果を他のデータ処理装置へ送信する秘匿加算撹乱(加算)ステップと、
最終交換データとなる撹乱データを、自らの最終交換データとして設定する最終交換データ設定(加算)ステップと、
を含み、
前記関数評価処理を担当するデータ処理装置が、
他のデータ処理装置より前記第1の撹乱部分データと前記暗号化撹乱データを受信し、受信した前記第1の撹乱部分データと加算対象秘密データを組み合わせて加算対象データ変形を作成し、該加算対象データ変形と前記暗号化撹乱データを組み合わせて二重暗号化撹乱後加算対象データを作成し、前記二重暗号化撹乱後加算対象データを他のデータ処理装置に送信し、他のデータ処理装置より、前記暗号化撹乱加算結果を受信し、前記暗号化撹乱加算結果を前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵により復号して撹乱加算結果を作成し、該撹乱加算結果の二進数表現を加算結果ビット配列とする秘匿加算撹乱(結果取得)ステップと、
前記加算結果ビット配列より、加算前の2つのビット列をあいまいに推測してあいまい推測ビット列1とあいまい推測ビット列2を導出する加算前ビット列あいまい推測ステップと、
前記段数変数の値の段数にて適用すべき可換性論理演算を前記あいまい推測ビット列1の配列位置のビットと前記あいまい推測ビット列2の配列位置のビットに適用した演算結果を導出し、前記演算結果を論理演算結果ビット配列の前記配列位置に設定し、該論理演算結果ビット配列を出力秘密データとして記憶する論理演算適用ステップと、
前記出力秘密データを、最終交換データとして設定する最終交換データ設定(結果取得)ステップと、
を含み、
前記加算前ビット列あいまい推測ステップでは、2つの数である加算前入力1としての前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と加算前入力2としての前記撹乱後加算対象秘密データの加算結果の二進数表現が加算結果ビット配列に設定されているとき、あいまい推測後に前記あいまい推測ビット列1に設定されたビット列の任意のビット位置のビットと前記あいまい推測ビット列2に設定されたビット列の前記ビット位置のビットに対して任意の可換性二項論理演算を適用したときの結果が前記加算前入力1の二進数表現のビット列の前記ビット位置のビットと前記加算前入力2の二進数表現のビット列の前記ビット位置のビットに対して前記可換性二項論理演算を適用したときの結果と等しいということを満たす前記あいまい推測ビット列1と前記あいまい推測ビット列2を生成し、
前記データ処理装置それぞれが、
段数変数に初期値を初期化後、前記秘匿加算撹乱(結果取得)ステップ又は前記秘匿加算撹乱(結果取得)ステップ及び前記論理演算適用ステップにおいて、その段数での処理を行う度に、前記段数変数の値が指定段数に等しくなるまで前記段数変数の値を1だけ増加させる段数管理ステップと、
該他のデータ処理装置の最終交換データを受信し、受信した値を受信最終交換データとし、前記自らの最終交換データと前記受信最終交換データとに基づいて、最終結果を算出する最終結果算出ステップと、を含む
ことを特徴とする。
他のコンピュータと連携してデータを処理するコンピュータにより実行される秘匿関数計算プログラムであって、
前記ビット列撹乱処理を担当するコンピュータを、
撹乱データの一部である第1の撹乱部分データを他のデータ処理装置に送信し、前記第1の撹乱部分データと加算対象秘密データを組み合わせて撹乱後加算対象秘密データを作成し、段数変数に設定された段数での主暗号鍵で前記撹乱データの一部である第2の撹乱部分データを暗号化して暗号化撹乱データを作成し、該暗号化撹乱データを他のデータ処理装置に送信し、二重暗号化撹乱後加算対象データを前記他のデータ処理装置から受信し、前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と前記撹乱後加算対象秘密データを暗号化したまま加算した結果を暗号化撹乱加算結果とし、前記暗号化撹乱加算結果を他のデータ処理装置へ送信する秘匿加算撹乱(加算)手段、及び
最終交換データとなる撹乱データを、自らの最終交換データとして設定する最終交換データ設定(加算)手段、
として機能させ、
前記関数評価処理を担当するコンピュータを、
他のデータ処理装置より前記第1の撹乱部分データと前記暗号化撹乱データを受信し、受信した前記第1の撹乱部分データと加算対象秘密データを組み合わせて加算対象データ変形を作成し、該加算対象データ変形と前記暗号化撹乱データを組み合わせて二重暗号化撹乱後加算対象データを作成し、前記二重暗号化撹乱後加算対象データを他のデータ処理装置に送信し、他のデータ処理装置より、前記暗号化撹乱加算結果を受信し、前記暗号化撹乱加算結果を前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵により復号して撹乱加算結果を作成し、前記撹乱加算結果の二進数表現を加算結果ビット配列とする秘匿加算撹乱(結果取得)手段、
前記加算結果ビット配列より、加算前の2つのビット列をあいまいに推測してあいまい推測ビット列1とあいまい推測ビット列2を導出する加算前ビット列あいまい推測手段と、
前記段数変数の値の段数にて適用すべき可換性論理演算を前記あいまい推測ビット列1の配列位置のビットと前記あいまい推測ビット列2の配列位置のビットに適用した演算結果を導出し、前記演算結果を論理演算結果ビット配列の前記配列位置に設定し、該論理演算結果ビット配列を出力秘密データとして記憶する論理演算適用手段、及び
前記出力秘密データを、最終交換データとして設定する最終交換データ設定(結果取得)手段、
として機能させ、
前記加算前ビット列あいまい推測手段は、2つの数である加算前入力1としての前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と加算前入力2としての前記撹乱後加算対象秘密データの加算結果の二進数表現が加算結果ビット配列に設定されているとき、あいまい推測後に前記あいまい推測ビット列1に設定されたビット列の任意のビット位置のビットと前記あいまい推測ビット列2に設定されたビット列の前記ビット位置のビットに対して任意の可換性二項論理演算を適用したときの結果が前記加算前入力1の二進数表現のビット列の前記ビット位置のビットと前記加算前入力2の二進数表現のビット列の前記ビット位置のビットに対して前記可換性二項論理演算を適用したときの結果と等しいということを満たす前記あいまい推測ビット列1と前記あいまい推測ビット列2を生成し、
前記コンピュータをそれぞれ、
段数変数に初期値を初期化後、前記秘匿加算撹乱(結果取得)手段又は前記秘匿加算撹乱(結果取得)手段及び前記論理演算適用手段が、その段数での処理を行う度に、前記段数変数の値が指定段数に等しくなるまで前記段数変数の値を1だけ増加させる段数管理手段、及び
該他のデータ処理装置の最終交換データを受信し、受信した値を受信最終交換データとし、前記自らの最終交換データと前記受信最終交換データとに基づいて、最終結果を算出する最終結果算出手段、として機能させる、
ことを特徴とする。
秘匿関数計算プログラムが記録されていることを特徴とする。
本実地の形態の秘匿関数計算システム1は、機関P1もしくは機関P2のもつ入力に対して互いの入力を相手に知られることなく、関数を適用したときの解のみを互いに知るための秘匿関数計算システムである。以下、秘匿関数計算システム1について図面を参照しながら説明する。まず、図1を参照して秘匿関数計算システム1の構成について説明する。
スカラ-除数変数Kに乗数とベクトル次数変数nにNの値を設定するブロックシフト係数設定処理を実行する。
本実施の形態の秘匿関数計算システム1は図27に示すように、複数のデ-タ処理装置1000を備えるシステムである。複数のデ-タ処理装置1000はデ-タ記憶装置3000を介してデ-タを送受信することで、複数の機関での秘匿関数計算を可能にする。以下、秘匿関数計算システム1の構成について説明する。
1000 デ-タ処理装置
1100 制御部
1110 段数初期化部
1120 秘匿加算撹乱(結果取得)部
1121 繰り返し回数初期化部
1122 変数設定(結果取得)部
1123 切断ブロック作成部
1124 秘匿ベクトル内積計算(結果取得)部
1125 繰り返し回数判定部
1130 加算前ビット列あいまい推測部
1140 論理演算適用部
1150 段数判定部
1160 最終交換デ-タ作成部
1170 最終結果算出部
1180 秘匿加算撹乱(加算)部
1181 繰り返し回数初期化部
1182 変数設定(加算)部
1183 ブロックシフト係数作成部
1184 秘匿ベクトル内積計算(加算)部
1185 繰り返し回数判定部
1200 通信部
1300 記憶部
1400 操作部
1500 インタフェ-ス部
2000 通信部
3000 デ-タ記憶装置
Claims (11)
- 関数評価処理かビット列撹乱処理の一方を担当する2以上のデータ処理装置で構成される秘匿関数計算システムであって、
前記ビット列撹乱処理を担当する前記データ処理装置は、
撹乱データの一部である第1の撹乱部分データを他のデータ処理装置に送信し、前記第1の撹乱部分データと加算対象秘密データを組み合わせて撹乱後加算対象秘密データを作成し、段数変数に設定された段数での主暗号鍵で前記撹乱データの一部である第2の撹乱部分データを暗号化して暗号化撹乱データを作成し、該暗号化撹乱データを他のデータ処理装置に送信し、二重暗号化撹乱後加算対象秘密データを前記他のデータ処理装置から受信し、前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と前記撹乱後加算対象秘密データを暗号化したまま加算した結果を暗号化撹乱加算結果とし、前記暗号化撹乱加算結果を他のデータ処理装置へ送信する秘匿加算撹乱(加算)手段と、
最終交換データとなる撹乱データを、自らの最終交換データとして設定する最終交換データ設定(加算)手段と、
を有し、
前記関数評価処理を担当するデータ処理装置は、
他のデータ処理装置より前記第1の撹乱部分データと前記暗号化撹乱データを受信し、受信した前記第1の撹乱部分データと加算対象秘密データを組み合わせて加算対象データ変形を作成し、該加算対象データ変形と前記暗号化撹乱データを組み合わせて二重暗号化撹乱後加算対象秘密データを作成し、前記二重暗号化撹乱後加算対象秘密データを他のデータ処理装置に送信し、他のデータ処理装置より、前記暗号化撹乱加算結果を受信し、前記暗号化撹乱加算結果を前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵により復号し、撹乱加算結果を作成し、前記撹乱加算結果の二進数表現を加算結果ビット配列とする秘匿加算撹乱(結果取得)手段と、
前記加算結果ビット配列より、加算前の2つのビット列をあいまいに推測してあいまい推測ビット列1とあいまい推測ビット列2を導出する加算前ビット列あいまい推測手段と、
前記段数変数の値の段数にて適用すべき可換性論理演算を前記あいまい推測ビット列1の配列位置のビットと前記あいまい推測ビット列2の配列位置のビットに適用した演算結果を導出し、前記演算結果を論理演算結果ビット配列の前記配列位置に設定し、該論理演算結果ビット配列を出力秘密データとして記憶する論理演算適用手段と、
前記出力秘密データを、最終交換データとして設定する最終交換データ設定(結果取得)手段と、
を有し、
前記加算前ビット列あいまい推測手段は、2つの数である加算前入力1としての前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と加算前入力2としての前記撹乱後加算対象秘密データの加算結果の二進数表現が加算結果ビット配列に設定されているとき、あいまい推測後に前記あいまい推測ビット列1に設定されたビット列の任意のビット位置のビットと前記あいまい推測ビット列2に設定されたビット列の前記ビット位置のビットに対して任意の可換性二項論理演算を適用したときの結果が前記加算前入力1の二進数表現のビット列の前記ビット位置のビットと前記加算前入力2の二進数表現のビット列の前記ビット位置のビットに対して前記可換性二項論理演算を適用したときの結果と等しいということを満たす前記あいまい推測ビット列1と前記あいまい推測ビット列2を生成し、
前記データ処理装置はそれぞれ、
段数変数に初期値を初期化後、前記秘匿加算撹乱(結果取得)手段又は前記秘匿加算撹乱(結果取得)手段及び前記論理演算適用手段が、その段数での処理を行う度に、前記段数変数の値が指定段数に等しくなるまで前記段数変数の値を1だけ増加させる段数管理手段と、
該他のデータ処理装置の最終交換データを受信し、受信した値を受信最終交換データとし、前記自らの最終交換データと前記受信最終交換データとに基づいて、最終結果を算出する最終結果算出手段と、を有する、
ことを特徴とする秘匿関数計算システム。 - 前記ビット列撹乱処理を担当する前記データ処理装置では、
前記秘匿加算撹乱(結果取得)手段は、
前記段数変数の値の段数での主暗号鍵、秘密データの名前、撹乱データの名前を記憶手段からそれぞれ読み出し、読み出した暗号鍵と、読み出した前記秘密データ名に対応する秘密データと、読み出した撹乱データ名に対応する撹乱データとを用いて、その段数での処理を行い、
前記最終交換データ設定(加算)手段は、
前記段数変数の値の段数での撹乱データの名前をもつ前記撹乱データを、自らの前記最終交換データとして設定し、
前記関数評価処理を担当するデータ処理装置では、
前記秘匿加算撹乱(結果取得)手段は、
前記段数変数の値の段数での暗号鍵、秘密データの名前である加算対象秘密データ名をもつ秘密データを用いて処理を行い、
前記論理演算適用手段は、
前記段数変数の値が前記初期値から前記指定段数までの各段において、各配列位置で前記あいまい推測ビット配列1と前記あいまい推測ビット配列2の前記配列位置の2つのビットに適用する可換性論理演算の種類を列形式で記している指定論理演算型配列の各配列位置で指定されている型の可換性論理演算を行い、得られた前記論理演算結果ビット配列を、前記各段における加算対象秘密データ名をつけて記憶する、
ことを特徴とする請求項1に記載の秘匿関数計算システム。 - 前記秘匿加算撹乱(加算)手段は、
前記段数変数の値の段数で定められた繰り返し数分、その繰り返し回に対応する正順と逆順の加算対象秘密データと、暗号鍵と、撹乱データとを用いて処理を繰り返し行い、その都度、前記正順と逆順の暗号化撹乱加算結果を他のデータ処理装置に送信し、
前記秘匿加算撹乱(結果取得)手段は、
前記段数変数の値の段数で定められた繰り返し数分、その繰り返し回に対応する暗号鍵、正順と逆順との加算対象秘密データを用いて、処理を繰り返し行い、その都度、前記加算結果(正順)ビット配列と前記加算結果(逆順)ビット配列の二進数表現を求め、
前記加算前ビット列あいまい推測手段は、
前記加算結果(正順)ビット配列と前記加算結果(逆順)ビット配列より、加算前の2つのビット列をあいまいに推測し、あいまい推測ビット列1とあいまい推測ビット列2を導出し、
前記あいまい推測ビット列1と前記あいまいビット列2は、
2つの数である加算前入力1と加算前入力2の加算結果の二進数表現が加算結果(正順)ビット配列に設定され、加算前入力1、加算前入力2それぞれを二進数表現の最上位ビット位置から最下位ビット位置までのビットの並びを逆順序にしたときのビットの並びをそれぞれ加算前逆順ビット列1と加算前逆順ビット列2とし、前記加算前逆順ビット列1と前記加算前逆順ビット列2の加算結果の二進数表現が加算結果(逆順)ビット配列に設定されたとき、あいまい推測後に前記あいまい推測ビット配列1に設定されたビット列の任意のビット位置のビットと前記あいまい推測ビット配列2に設定されたビット列の前記ビット位置のビットに対して任意の可換性二項論理演算を適用したときの結果が前記加算前入力1の二進数表現のビット列の前記ビット位置のビットと前記加算前入力2の二進数表現のビット列の前記ビット位置のビットに対して前記可換性二項論理演算を適用したときの結果と等しいという性質を満たす、
ことを特徴する請求項2に記載の秘匿関数計算システム。 - 前記撹乱データは、
撹乱のために加算対象秘密データを切断して作成する切断ブロック数と、切断する配列位置を前記切断ブロック数並べたブロック切断点順列と、切断後にブロックを転置するために各ブロックに乗算したいブロックシフト係数順列と、前記ブロックシフト係数順列により挿入した空白ブロックの内容を指定する撹乱挿入加算値を含み、
前記秘匿加算撹乱(加算)手段は、
前記切断ブロック数と前記ブロック切断点順列を前記第1の撹乱部分データとして他のデータ処理装置へ送信し、前記加算対象秘密データを前記ブロック切断点順列に従って、前記切断ブロック数のブロックに切断して切断ブロック列を作成し、該切断ブロック列と前記ブロックシフト係数順列との内積を計算して切断ブロックシフト後秘密データを作成し、前記切断ブロックシフト後秘密データと前記撹乱挿入加算値を加算して撹乱後加算対象秘密データを作成し、スカラー定数変数に前記撹乱後加算対象秘密データを設定し、前記ブロックシフト係数順列の要素で1以下の値の要素がある場合には最も小さい値の要素を探して最小値要素とし、該最小値要素の値をスカラー除数変数に設定し、1以下の値の要素がない場合にはスカラー除数変数に1を設定し、前記ブロックシフト係数順列の各要素の値に前記スカラー除数変数の逆数を乗じることで計算できる順列を内積対象ベクトルに設定し、ベクトルサイズに前記切断ブロックの値を設定するブロックシフト係数設定小部分手段と、
前記内積対象ベクトルの各ベクトル位置で、副暗号鍵ベクトルの前記ベクトル位置の要素を暗号化して暗号化内積対象ベクトルを作成し、他のデータ処理装置に該暗号化内積対象ベクトルを送信し、他のデータ処理装置より、二重暗号化内積対象乗算結果ベクトルを受信し、前記二重暗号化内積対象乗算結果ベクトルの各ベクトル位置で、前記副暗号鍵ベクトルの前記ベクトル位置に設定されている暗号鍵、もしくは前記暗号鍵に対応する復号鍵により前記二重暗号化内積対象乗算結果ベクトルの前記ベクトル位置の要素を復号して暗号化内積対象乗算結果ベクトルを作成し、前記暗号化内積対象乗算結果ベクトルの全要素を加算して暗号化内積結果を作成し、前記暗号化内積結果を前記スカラー除数で除算した結果を前記暗号化秘匿ベクトル内積結果に設定し、前記暗号化秘匿ベクトル内積結果に設定されている暗号値を他のデータ処理装置へ送信する秘匿ベクトル内積計算(加算)小部分手段と、
を備え、
前記秘匿加算撹乱(結果取得)手段は、
他のデータ処理装置より前記他のデータ処理装置の前記切断ブロック数と前記ブロック切断点順列を受信し、前記加算対象秘密データを前記ブロック切断点順列に従って、前記切断ブロック数のブロックに分割し、前記ブロックをベクトル表現として並べて内積対象ベクトルを作成する切断ブロック作成小部分手段と、
他のデータ処理装置より他のデータ処理装置の前記暗号化内積対象ベクトルを受信し、前記内積対象ベクトルの各ベクトル位置において、前記ベクトル位置の前記暗号化内積対象ベクトルの要素と、前記内積対象ベクトルの前記ベクトル位置の要素を乗算した結果を、前記主暗号鍵で暗号化して前記ベクトル位置の要素とすることで二重暗号化内積対象乗算結果ベクトルを作成し、前記二重暗号化内積対象乗算結果ベクトルを前記他のデータ処理装置へ送信し、該データ処理装置より該他のデータ処理装置の前記暗号化秘匿ベクトル内積結果に設定されている暗号値を受信して、前記暗号化秘匿ベクトル内積結果に設定し、前記暗号化秘匿ベクトル内積結果に設定されている暗号値を前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵で復号して得られた結果をベクトル内積結果とし、結果秘密データ名をもつ秘密データとして前記ベクトル内積結果を記憶する秘匿ベクトル内積(結果取得)小部分手段と、
を備える、
ことを特徴とする請求項3に記載の秘匿関数計算システム。 - 前記ベクトル内積結果は、前記関数評価処理を担当するデータ処理装置がもつ前記内積対象ベクトルと、前記データ列撹乱処理を担当するデータ処理装置がもつ前記内積対象ベクトルの内積結果に、前記データ列撹乱処理を担当する前記データ処理装置がもつ前記スカラー除数変数に設定されている値を除算した結果に前記データ処理装置がもつ前記スカラー定数変数に設定されている値を加算した結果と等しい、
ことを特徴とする請求項4に記載の秘匿関数計算システム。 - 2以上の前記データ処理装置がアクセス可能なデータ記憶装置、をさらに有し、
2以上の前記データ処理装置は、それぞれ、
自己の保有する各変数に設定されたデータを前記データ記憶装置に保存し、
他のデータ処理装置が保存したデータを前記データ記憶装置から取得する、
ことを特徴とする請求項1及至5のいずれか1項に記載の秘匿関数計算システム。 - 3以上の前記データ処理装置で構成される前記秘匿関数計算システムであって、
前記撹乱後加算対象秘密データは、2以上の他のデータ処理装置の前記主暗号鍵で順次暗号化されることによって生成される、
ことを特徴とする請求項1及至6のいずれか1項に記載の秘匿関数計算システム。 - 他のデータ処理装置と連携してデータを処理するデータ処理装置であって、
関数評価処理かビット列撹乱処理の一方を担当し、
前記ビット列撹乱処理を担当する場合に、
撹乱データの一部である第1の撹乱部分データを他のデータ処理装置に送信し、前記第1の撹乱部分データと加算対象秘密データを組み合わせて撹乱後加算対象秘密データを作成し、段数変数に設定された段数での主暗号鍵で前記撹乱データの一部である第2の撹乱部分データを暗号化して暗号化撹乱データを作成し、該暗号化撹乱データを他のデータ処理装置に送信し、二重暗号化撹乱後加算対象データを前記他のデータ処理装置から受信し、前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と前記撹乱後加算対象秘密データを暗号化したまま加算した結果を暗号化撹乱加算結果とし、前記暗号化撹乱加算結果を他のデータ処理装置へ送信する秘匿加算撹乱(加算)手段と、
最終交換データとなる撹乱データを、自らの最終交換データとして設定する最終交換データ設定(加算)手段と、
を有し、
前記関数評価処理を担当する場合に、
他のデータ処理装置より前記第1の撹乱部分データと前記暗号化撹乱データを受信し、受信した前記第1の撹乱部分データと加算対象秘密データを組み合わせて加算対象データ変形を作成し、該加算対象データ変形と前記暗号化撹乱データを組み合わせて二重暗号化撹乱後加算対象データを作成し、前記二重暗号化撹乱後加算対象データを他のデータ処理装置に送信し、他のデータ処理装置より、前記暗号化撹乱加算結果を受信し、前記暗号化撹乱加算結果を前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵により復号して撹乱加算結果を作成し、該撹乱加算結果の二進数表現を加算結果ビット配列とする秘匿加算撹乱(結果取得)手段と、
前記加算結果ビット配列より、加算前の2つのビット列をあいまいに推測してあいまい推測ビット列1とあいまい推測ビット列2を導出する加算前ビット列あいまい推測手段と、
前記段数変数の値の段数にて適用すべき可換性論理演算を前記あいまい推測ビット列1の配列位置のビットと前記あいまい推測ビット列2の配列位置のビットに適用した演算結果を導出し、前記演算結果を論理演算結果ビット配列の前記配列位置に設定し、該論理演算結果ビット配列を出力秘密データとして記憶する論理演算適用手段と、
前記出力秘密データを、最終交換データとして設定する最終交換データ設定(結果取得)手段と、
を有し、
前記加算前ビット列あいまい推測手段は、2つの数である加算前入力1としての前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と加算前入力2としての前記撹乱後加算対象秘密データの加算結果の二進数表現が加算結果ビット配列に設定されているとき、あいまい推測後に前記あいまい推測ビット列1に設定されたビット列の任意のビット位置のビットと前記あいまい推測ビット列2に設定されたビット列の前記ビット位置のビットに対して任意の可換性二項論理演算を適用したときの結果が前記加算前入力1の二進数表現のビット列の前記ビット位置のビットと前記加算前入力2の二進数表現のビット列の前記ビット位置のビットに対して前記可換性二項論理演算を適用したときの結果と等しいということを満たす前記あいまい推測ビット列1と前記あいまい推測ビット列2を生成し、
段数変数に初期値を初期化後、前記秘匿加算撹乱(結果取得)手段又は前記秘匿加算撹乱(結果取得)手段及び前記論理演算適用手段が、その段数での処理を行う度に、前記段数変数の値が指定段数に等しくなるまで前記段数変数の値を1だけ増加させる段数管理手段と、
該他のデータ処理装置の最終交換データを受信し、受信した値を受信最終交換データとし、前記自らの最終交換データと前記受信最終交換データとに基づいて、最終結果を算出する最終結果算出手段と、を有する、
ことを特徴とするデータ処理装置。 - 関数評価処理かビット列撹乱処理の一方を担当する2以上のデータ処理装置を用いて行う秘匿関数計算方法であって、
前記ビット列撹乱処理を担当する前記データ処理装置が、
撹乱データの一部である第1の撹乱部分データを他のデータ処理装置に送信し、前記第1の撹乱部分データと加算対象秘密データを組み合わせて撹乱後加算対象秘密データを作成し、段数変数に設定された段数での主暗号鍵で前記撹乱データの一部である第2の撹乱部分データを暗号化して暗号化撹乱データを作成し、該暗号化撹乱データを他のデータ処理装置に送信し、二重暗号化撹乱後加算対象データを前記他のデータ処理装置から受信し、前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と前記撹乱後加算対象秘密データを暗号化したまま加算した結果を暗号化撹乱加算結果とし、前記暗号化撹乱加算結果を他のデータ処理装置へ送信する秘匿加算撹乱(加算)ステップと、
最終交換データとなる撹乱データを、自らの最終交換データとして設定する最終交換データ設定(加算)ステップと、
を含み、
前記関数評価処理を担当するデータ処理装置が、
他のデータ処理装置より前記第1の撹乱部分データと前記暗号化撹乱データを受信し、受信した前記第1の撹乱部分データと加算対象秘密データを組み合わせて加算対象データ変形を作成し、該加算対象データ変形と前記暗号化撹乱データを組み合わせて二重暗号化撹乱後加算対象データを作成し、前記二重暗号化撹乱後加算対象データを他のデータ処理装置に送信し、他のデータ処理装置より、前記暗号化撹乱加算結果を受信し、前記暗号化撹乱加算結果を前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵により復号して撹乱加算結果を作成し、該撹乱加算結果の二進数表現を加算結果ビット配列とする秘匿加算撹乱(結果取得)ステップと、
前記加算結果ビット配列より、加算前の2つのビット列をあいまいに推測してあいまい推測ビット列1とあいまい推測ビット列2を導出する加算前ビット列あいまい推測ステップと、
前記段数変数の値の段数にて適用すべき可換性論理演算を前記あいまい推測ビット列1の配列位置のビットと前記あいまい推測ビット列2の配列位置のビットに適用した演算結果を導出し、前記演算結果を論理演算結果ビット配列の前記配列位置に設定し、該論理演算結果ビット配列を出力秘密データとして記憶する論理演算適用ステップと、
前記出力秘密データを、最終交換データとして設定する最終交換データ設定(結果取得)ステップと、
を含み、
前記加算前ビット列あいまい推測ステップでは、2つの数である加算前入力1としての前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と加算前入力2としての前記撹乱後加算対象秘密データの加算結果の二進数表現が加算結果ビット配列に設定されているとき、あいまい推測後に前記あいまい推測ビット列1に設定されたビット列の任意のビット位置のビットと前記あいまい推測ビット列2に設定されたビット列の前記ビット位置のビットに対して任意の可換性二項論理演算を適用したときの結果が前記加算前入力1の二進数表現のビット列の前記ビット位置のビットと前記加算前入力2の二進数表現のビット列の前記ビット位置のビットに対して前記可換性二項論理演算を適用したときの結果と等しいということを満たす前記あいまい推測ビット列1と前記あいまい推測ビット列2を生成し、
前記データ処理装置それぞれが、
段数変数に初期値を初期化後、前記秘匿加算撹乱(結果取得)ステップ又は前記秘匿加算撹乱(結果取得)ステップ及び前記論理演算適用ステップにおいて、その段数での処理を行う度に、前記段数変数の値が指定段数に等しくなるまで前記段数変数の値を1だけ増加させる段数管理ステップと、
該他のデータ処理装置の最終交換データを受信し、受信した値を受信最終交換データとし、前記自らの最終交換データと前記受信最終交換データとに基づいて、最終結果を算出する最終結果算出ステップと、を含む、
ことを特徴とする秘匿関数計算方法。 - 他のコンピュータと連携してデータを処理するコンピュータにより実行される秘匿関数計算プログラムであって、
前記ビット列撹乱処理を担当するコンピュータを、
撹乱データの一部である第1の撹乱部分データを他のデータ処理装置に送信し、前記第1の撹乱部分データと加算対象秘密データを組み合わせて撹乱後加算対象秘密データを作成し、段数変数に設定された段数での主暗号鍵で前記撹乱データの一部である第2の撹乱部分データを暗号化して暗号化撹乱データを作成し、該暗号化撹乱データを他のデータ処理装置に送信し、二重暗号化撹乱後加算対象データを前記他のデータ処理装置から受信し、前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と前記撹乱後加算対象秘密データを暗号化したまま加算した結果を暗号化撹乱加算結果とし、前記暗号化撹乱加算結果を他のデータ処理装置へ送信する秘匿加算撹乱(加算)手段、及び
最終交換データとなる撹乱データを、自らの最終交換データとして設定する最終交換データ設定(加算)手段、
として機能させ、
前記関数評価処理を担当するコンピュータを、
他のデータ処理装置より前記第1の撹乱部分データと前記暗号化撹乱データを受信し、受信した前記第1の撹乱部分データと加算対象秘密データを組み合わせて加算対象データ変形を作成し、該加算対象データ変形と前記暗号化撹乱データを組み合わせて二重暗号化撹乱後加算対象データを作成し、前記二重暗号化撹乱後加算対象データを他のデータ処理装置に送信し、他のデータ処理装置より、前記暗号化撹乱加算結果を受信し、前記暗号化撹乱加算結果を前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵により復号して撹乱加算結果を作成し、前記撹乱加算結果の二進数表現を加算結果ビット配列とする秘匿加算撹乱(結果取得)手段、
前記加算結果ビット配列より、加算前の2つのビット列をあいまいに推測してあいまい推測ビット列1とあいまい推測ビット列2を導出する加算前ビット列あいまい推測手段と、
前記段数変数の値の段数にて適用すべき可換性論理演算を前記あいまい推測ビット列1の配列位置のビットと前記あいまい推測ビット列2の配列位置のビットに適用した演算結果を導出し、前記演算結果を論理演算結果ビット配列の前記配列位置に設定し、該論理演算結果ビット配列を出力秘密データとして記憶する論理演算適用手段、及び
前記出力秘密データを、最終交換データとして設定する最終交換データ設定(結果取得)手段、
として機能させ、
前記加算前ビット列あいまい推測手段は、2つの数である加算前入力1としての前記二重暗号化撹乱後加算対象秘密データを前記主暗号鍵、もしくは、前記暗号鍵に対応する復号鍵によって復号した結果と加算前入力2としての前記撹乱後加算対象秘密データの加算結果の二進数表現が加算結果ビット配列に設定されているとき、あいまい推測後に前記あいまい推測ビット列1に設定されたビット列の任意のビット位置のビットと前記あいまい推測ビット列2に設定されたビット列の前記ビット位置のビットに対して任意の可換性二項論理演算を適用したときの結果が前記加算前入力1の二進数表現のビット列の前記ビット位置のビットと前記加算前入力2の二進数表現のビット列の前記ビット位置のビットに対して前記可換性二項論理演算を適用したときの結果と等しいということを満たす前記あいまい推測ビット列1と前記あいまい推測ビット列2を生成し、
前記コンピュータをそれぞれ、
段数変数に初期値を初期化後、前記秘匿加算撹乱(結果取得)手段又は前記秘匿加算撹乱(結果取得)手段及び前記論理演算適用手段が、その段数での処理を行う度に、前記段数変数の値が指定段数に等しくなるまで前記段数変数の値を1だけ増加させる段数管理手段、及び
該他のデータ処理装置の最終交換データを受信し、受信した値を受信最終交換データとし、前記自らの最終交換データと前記受信最終交換データとに基づいて、最終結果を算出する最終結果算出手段、として機能させる、
ことを特徴とする秘匿関数計算プログラム。 - 請求項10に記載の秘匿関数計算プログラムが記録されていることを特徴とするコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014003592A JP6232629B2 (ja) | 2014-01-10 | 2014-01-10 | 汎用秘匿関数計算システム、デ−タ処理装置、汎用秘匿関数計算方法、汎用秘匿関数計算プログラム、および、記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014003592A JP6232629B2 (ja) | 2014-01-10 | 2014-01-10 | 汎用秘匿関数計算システム、デ−タ処理装置、汎用秘匿関数計算方法、汎用秘匿関数計算プログラム、および、記録媒体 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015132690A JP2015132690A (ja) | 2015-07-23 |
JP2015132690A5 JP2015132690A5 (ja) | 2017-02-16 |
JP6232629B2 true JP6232629B2 (ja) | 2017-11-22 |
Family
ID=53899937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014003592A Active JP6232629B2 (ja) | 2014-01-10 | 2014-01-10 | 汎用秘匿関数計算システム、デ−タ処理装置、汎用秘匿関数計算方法、汎用秘匿関数計算プログラム、および、記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6232629B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116312679B (zh) * | 2023-04-13 | 2023-12-12 | 深圳亘存科技有限责任公司 | Mram读出电路及其信号输出方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4979068B2 (ja) * | 2007-01-22 | 2012-07-18 | 日本電信電話株式会社 | 秘匿関数計算方法及び装置、並びにプログラム |
JP5297688B2 (ja) * | 2008-05-09 | 2013-09-25 | 株式会社日立製作所 | ベクトル秘匿型内積計算システム、ベクトル秘匿型内積計算方法及び暗号鍵共有システム |
-
2014
- 2014-01-10 JP JP2014003592A patent/JP6232629B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015132690A (ja) | 2015-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110337649B (zh) | 用于搜索模式未察觉的动态对称可搜索加密的方法和系统 | |
Smart et al. | Fully homomorphic SIMD operations | |
JP5985123B1 (ja) | 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム | |
JP4575283B2 (ja) | 暗号装置、復号装置、プログラム及び方法 | |
Cheng et al. | Secure similar sequence query on outsourced genomic data | |
CN111510281B (zh) | 一种同态加密方法及装置 | |
US7787623B2 (en) | Key generating apparatus, program, and method | |
Chen et al. | High-precision arithmetic in homomorphic encryption | |
KR20150123823A (ko) | 마스크들을 사용한 프라이버시-보존 리지 회귀 | |
Guo et al. | Introduction to security reduction | |
US11764943B2 (en) | Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology | |
JP2011147074A (ja) | 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体 | |
CN111865555B (zh) | 一种基于k-Lin假设的同态加密方法 | |
JP5732429B2 (ja) | 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム | |
Chung et al. | Encoding rational numbers for fhe-based applications | |
Wang et al. | Functional broadcast encryption with applications to data sharing for cloud storage | |
JP2021072593A (ja) | 暗号処理システム及び暗号処理方法 | |
JP6232629B2 (ja) | 汎用秘匿関数計算システム、デ−タ処理装置、汎用秘匿関数計算方法、汎用秘匿関数計算プログラム、および、記録媒体 | |
Nayak et al. | SEMKC: secure and efficient computation over outsourced data encrypted under multiple keys | |
Seo et al. | EMBLEM:(R) LWE-based key encapsulation with a new multi-bit encoding method | |
JP2007187908A (ja) | サイドチャネル攻撃に耐性を有するモジュラーべき乗算計算装置及びモジュラーべき乗算計算方法 | |
WO2022137447A1 (ja) | 秘匿情報処理システムおよび秘匿情報処理方法 | |
JP5799876B2 (ja) | プログラム、情報処理方法及び情報処理装置 | |
JP7384216B2 (ja) | 電子透かしシステム、電子透かし方法及びプログラム | |
JP2010186075A (ja) | 整数の暗号化及び復号化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170110 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170110 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20170110 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170915 |
|
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: 20170926 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170929 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6232629 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |