(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023013496
(43)【公開日】2023-01-26
(54)【発明の名称】秘匿演算変換システム、秘匿演算変換方法、および、秘匿演算変換プログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20230119BHJP
【FI】
G09C1/00 650Z
G09C1/00 620Z
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021117720
(22)【出願日】2021-07-16
(71)【出願人】
【識別番号】510108951
【氏名又は名称】公立大学法人広島市立大学
(74)【代理人】
【識別番号】100163186
【弁理士】
【氏名又は名称】松永 裕吉
(72)【発明者】
【氏名】上土井 陽子
(72)【発明者】
【氏名】若林 真一
(57)【要約】
【課題】複数の機関間で情報理論的安全性が保証されたプロトコルに従って交渉秘密情報を作成する。
【解決手段】各機関のデータ処理装置100間で各機関の秘密情報および公開情報を暗号化してやり取りして、各機関の秘密データに演算Aを施した結果と同じ結果が得られる別の演算Bの被演算情報を生成する秘匿演算変換システム1であって、各データ処理装置100は、情報を記憶する記憶部130と、自己の秘密情報の暗号文を相手機関のデータ処理装置とやり取りして、双方の機関の秘密情報が混合された暗号文秘匿化情報を生成する第1の処理、尾よび自己の秘密情報を暗号文秘匿化情報で暗号化した暗号文を相手機関のデータ処理装置とやり取りして被演算情報を生成する第2の処理を実行する秘匿演算変換処理手段161と、自己の秘密データと生成された被演算情報を対応づけた交渉秘密情報を記憶部に格納する交渉秘密情報取得処理手段162とを有する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
第1の機関のデータ処理装置と、第2の機関のデータ処理装置とを備え、前記データ処理装置間で各機関の秘密情報および公開情報を暗号化してやり取りして、各機関の秘密データに演算Aを施した結果と同じ結果が得られる別の演算Bの被演算情報を生成する秘匿演算変換システムであって、
前記各データ処理装置は、
情報を記憶する記憶部と、
自己の秘密情報の暗号文を相手機関のデータ処理装置とやり取りして、双方の機関の秘密情報が混合された暗号文秘匿化情報を生成する第1の処理、および自己の秘密情報を前記暗号文秘匿化情報で暗号化した暗号文を相手機関のデータ処理装置とやり取りして前記被演算情報を生成する第2の処理を実行する秘匿演算変換処理手段と、
自己の秘密データと前記生成された被演算情報を対応づけた交渉秘密情報を前記記憶部に格納する交渉秘密情報取得処理手段とを有する
ことを特徴とする秘匿演算変換システム。
【請求項2】
前記演算Aが乗算であり、前記演算Bが加算である、請求項1に記載の秘匿演算変換システム。
【請求項3】
前記第1の処理が指数計算を含む処理であり、前記第2の処理が四則演算のみからなる処理である、請求項1または2に記載の秘匿演算変換システム。
【請求項4】
前記秘匿演算変換処理手段が、自己の新たな秘密データについて前記第2の処理を実行して新たな被演算情報を生成し、
前記交渉秘密情報取得処理手段が、前記新たな秘密データと前記生成された新たな被演算情報を対応づけた新たな交渉秘密情報を前記記憶部に格納して、それまで格納されていた交渉秘密情報を更新する、請求項1~3のいずれか一項に記載の秘匿演算変換システム。
【請求項5】
第1の機関のデータ処理装置および第2の機関のデータ処理装置間で各機関の秘密情報および公開情報を暗号化してやり取りして、各機関の秘密データに演算Aを施した結果と同じ結果が得られる別の演算Bの被演算情報を生成する秘匿演算変換方法であって、
各機関のデータ処理装置が、自己の秘密情報の暗号文を相手機関のデータ処理装置とやり取りして、双方の機関の秘密情報が混合された暗号文秘匿化情報を生成する第1のステップと、
各機関のデータ処理装置が、自己の秘密情報を前記暗号文秘匿化情報で暗号化した暗号文を相手機関のデータ処理装置とやり取りして前記被演算情報を生成する第2のステップと、
各機関のデータ処理装置が、自己の秘密データと前記生成された被演算情報を対応づけた交渉秘密情報を記憶部に格納する第3のステップと、を備えた
ことを特徴とする秘匿演算変換方法。
【請求項6】
前記演算Aが乗算であり、前記演算Bが加算である、請求項5に記載の秘匿演算変換方法。
【請求項7】
前記第1のステップが指数計算を含む処理であり、前記第2のステップが四則演算のみからなる処理である、請求項5または6に記載の秘匿演算変換方法。
【請求項8】
各機関のデータ処理装置が、自己の新たな秘密データについて前記第2のステップを実行して新たな被演算情報を生成する第4のステップと、
各機関のデータ処理装置が、前記新たな秘密データと前記生成された新たな被演算情報を対応づけた新たな交渉秘密情報を前記記憶部に格納して、それまで格納されていた交渉秘密情報を更新する第5のステップとを備えた、請求項5~7のいずれか一項に記載の秘匿演算変換方法。
【請求項9】
第1の機関のデータ処理装置および第2の機関のデータ処理装置間で各機関の秘密情報および公開情報を暗号化してやり取りして、各機関の秘密データに演算Aを施した結果と同じ結果が得られる別の演算Bの被演算情報を生成するシステムにおける前記データ処理装置としてコンピューターを機能させる秘匿演算変換プログラムであって、
自己の秘密情報の暗号文を相手機関のデータ処理装置とやり取りして、双方の機関の秘密情報が混合された暗号文秘匿化情報を生成する第1の処理、および自己の秘密情報を前記暗号文秘匿化情報で暗号化した暗号文を相手機関のデータ処理装置とやり取りして前記被演算情報を生成する第2の処理を実行する秘匿演算変換処理手段、
自己の秘密データと前記生成された被演算情報を対応づけた交渉秘密情報を記憶部に格納する交渉秘密情報取得処理手段として、コンピューターを機能させる
ことを特徴とする秘匿演算変換プログラム。
【請求項10】
前記演算Aが乗算であり、前記演算Bが加算である、請求項9に記載の秘匿演算変換プログラム。
【請求項11】
前記第1の処理が指数計算を含む処理であり、前記第2の処理が四則演算のみからなる処理である、請求項9または10に記載の秘匿演算変換プログラム。
【請求項12】
前記秘匿演算変換処理手段が、自己の新たな秘密データについて前記第2の処理を実行して新たな被演算情報を生成し、
前記交渉秘密情報取得処理手段が、前記新たな秘密データと前記生成された新たな被演算情報を対応づけた新たな交渉秘密情報を前記記憶部に格納して、それまで格納されていた交渉秘密情報を更新する、請求項9~11のいずれか一項に記載の秘匿演算変換プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は複数の機関がそれぞれ保持している秘密データを入力として演算Aを行ったときの結果と同じ結果を得ることができる別の演算Bに対する複数の入力を秘匿に計算し、各々の機関に秘密出力として返す秘匿演算変換システム、秘匿演算変換方法、および、秘匿演算変換プログラムに関する。
【背景技術】
【0002】
例えば、オンラインショップP1(以下、機関P1と略記することがある。)とオンラインショップP2(以下、機関P2と略記することがある。)が顧客の物品購入の相関関係を顧客とのプライバシー同意契約に違反することなく導出したい場面がよくある。それを実現する方法として、最初に機関P1と機関P2は同じクレジット番号の顧客の利用金額を同じ位置に記録する2つのベクトル、「ベクトルX」と「ベクトルY」を用意する。上記のベクトルXとベクトルYを入力とした内積値がある閾値より大きい場合には機関P1と機関P2の顧客の購買行動には正の相関関係があると判断することができ、顧客の嗜好性が似ている可能性が高く、共同で商品開発することで、より顧客のニーズにあう商品を開発できる可能性がある。このとき、機関P1と機関P2がそれぞれ、多くの人数の購買情報からなるベクトルX、ベクトルYを作成した上で、ベクトルX、ベクトルYの内容を相互に明らかにせず、各々が内積値のみを計算できれば顧客と機関間にあるプライバシー同意契約に抵触しない。
【0003】
本願発明者は、上記のような機関P1、P2がベクトルX、ベクトルYの内容を相互に明らかにせずに各々が内積値のみを計算可能にする技術として、従来の準同型性公開鍵暗号を利用した秘匿計算とは機密性の根拠が異なり、ある秘匿演算を別の秘匿演算に変換することにより、双方が同意した意味のある秘密情報(以下、交渉秘密情報と記すことがある。)を公平に得て、さらには当該得られた交渉秘密情報の機密性を根拠として、秘密データの機密性を完全に守りながら、交渉秘密情報と秘密データを用いた安価なコストの計算により秘匿計算を行うことができる秘匿演算変換システムおよび秘匿演算変換方法を発明して特許出願(特許文献1)をした。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1には、交渉秘密情報を作成する方法として、Paillier暗号方式を利用する方法とElGamal暗号方式を利用する方法が開示されている。Paillier暗号方式は、離散対数問題と合成数剰余判定が困難であることをその安全性の根拠としている。また、Paillier暗号方式は、楕円曲線暗号との対応付けが困難であり高速化が難しいという問題がある。一方、ElGamal暗号方式は、演算結果の対数を演算するなどの高負荷の計算が必要であり、また、値域が限定されるという問題がある。そもそも上記の両暗号方式とも離散対数問題等に関連した問題の解決が多項式時間に収まらないと仮定し、その仮定を計算量的安全性と呼び、安全性の根拠にしているが、将来的には量子コンピューターによる計算で計算量的安全性が破られるおそれがある。
【0006】
本発明は係る問題に鑑みてなされたものであり、複数の機関間で情報理論的安全性が保証されたプロトコルに従って交渉秘密情報を作成することができる秘匿演算変換システムおよび秘匿演算変換方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一局面によると、第1の機関のデータ処理装置と、第2の機関のデータ処理装置とを備え、前記データ処理装置間で各機関の秘密情報および公開情報を暗号化してやり取りして、各機関の秘密データに演算Aを施した結果と同じ結果が得られる別の演算Bの被演算情報を生成する秘匿演算変換システムであって、前記各データ処理装置は、情報を記憶する記憶部と、自己の秘密情報の暗号文を相手機関のデータ処理装置とやり取りして、双方の機関の秘密情報が混合された暗号文秘匿化情報を生成する第1の処理、および自己の秘密情報を前記暗号文秘匿化情報で暗号化した暗号文を相手機関のデータ処理装置とやり取りして前記被演算情報を生成する第2の処理を実行する秘匿演算変換処理手段と、自己の秘密データと前記生成された被演算情報を対応づけた交渉秘密情報を前記記憶部に格納する交渉秘密情報取得処理手段とを有することを特徴とする。
【0008】
本発明の別の局面によると、第1の機関のデータ処理装置および第2の機関のデータ処理装置間で各機関の秘密情報および公開情報を暗号化してやり取りして、各機関の秘密データに演算Aを施した結果と同じ結果が得られる別の演算Bの被演算情報を生成する秘匿演算変換方法であって、各機関のデータ処理装置が、自己の秘密情報の暗号文を相手機関のデータ処理装置とやり取りして、双方の機関の秘密情報が混合された暗号文秘匿化情報を生成する第1のステップと、各機関のデータ処理装置が、自己の秘密情報を前記暗号文秘匿化情報で暗号化した暗号文を相手機関のデータ処理装置とやり取りして前記被演算情報を生成する第2のステップと、各機関のデータ処理装置が、自己の秘密データと前記生成された被演算情報を対応づけた交渉秘密情報を記憶部に格納する第3のステップと、を備えたことを特徴とする。
【0009】
本発明のさらに別の局面によると、第1の機関のデータ処理装置および第2の機関のデータ処理装置間で各機関の秘密情報および公開情報を暗号化してやり取りして、各機関の秘密データに演算Aを施した結果と同じ結果が得られる別の演算Bの被演算情報を生成するシステムにおける前記データ処理装置としてコンピューターを機能させる秘匿演算変換プログラムであって、自己の秘密情報の暗号文を相手機関のデータ処理装置とやり取りして、双方の機関の秘密情報が混合された暗号文秘匿化情報を生成する第1の処理、および自己の秘密情報を前記暗号文秘匿化情報で暗号化した暗号文を相手機関のデータ処理装置とやり取りして前記被演算情報を生成する第2の処理を実行する秘匿演算変換処理手段、自己の秘密データと前記生成された被演算情報を対応づけた交渉秘密情報を記憶部に格納する交渉秘密情報取得処理手段として、コンピューターを機能させることを特徴とする。
【発明の効果】
【0010】
本発明によれば、各機関が双方の機関の秘密情報が混合された暗号文秘匿化情報で自己の秘密情報を暗号化して相手機関とやり取りすることで、受信側が送信側の秘密情報が一体何であるかわからないのはもちろん、送信側も受信側が一体どのような暗号文を受信したのかわからないようにして複数の機関間で交渉秘密情報を作成することができる。これにより、複数の機関間で情報理論的安全性が保証されたプロトコルに従って交渉秘密情報を作成することができる。
【図面の簡単な説明】
【0011】
【
図1】本発明の秘匿演算変換システムの構成を示すブロック図である。
【
図2】本発明の秘匿演算変換システムの構成要素の機能を示す機能ブロック図である。
【
図3】完全秘匿演算変換プロトコルに従った演算変換処理の第1の前処理の手順の概要を説明するための処理概要図である。
【
図4】完全秘匿演算変換プロトコルに従った演算変換処理の第2の前処理の手順の概要を説明するための処理概要図である。
【
図5】完全秘匿演算変換プロトコルに従った理論上の演算変換処理の手順の概要を説明するための処理概要図である。
【
図6】完全秘匿演算変換プロトコルに従った実際の演算変換処理の手順の概要を説明するための処理概要図である。
【
図7】
図3に示した演算変換処理の第1の前処理において機関P1において離散対数問題が解けた場合の機関P2の秘密情報解析の概要を説明するための処理概要図である。
【
図8】
図4に示した演算変換処理の第2の前処理において機関P1において離散対数問題が解けた場合の機関P2の秘密情報解析の概要を説明するための処理概要図である。
【発明を実施するための形態】
【0012】
(本発明の構成)
本発明の秘匿演算変換システムは、機関P1もしくは機関P2のもつ秘密データX、秘密データYについて、第三者の助けなしにある演算Aを秘密データXと秘密データYに対して適用したときと同じ結果を得ることができる別の演算Bに対する入力の組合せOutputX、OutputYを、情報理論的安全性が保証された完全秘密演算変換プロトコルに従って秘匿に計算することで、機関P1、機関P2の双方が同意した意味のある秘匿情報を公平に得るための情報交換システムである。以下、秘匿演算変換システムの基本構成について図面を参照しながら説明する。
【0013】
図1に示すように、本発明の秘匿演算変換システム1は、機関P1と機関P2それぞれに設置された2台のデータ処理装置100と、それらを接続する通信線200とで構成される。2台のデータ処理装置100は通信線200を通じて互いにデータを送受信することで連携して秘匿演算変換処理を実行する。
【0014】
データ処理装置100は、例えばPCサーバやメインフレームなどの中に構築され、制御部110、通信部120、記憶部130、操作部140、インタフェース部150、演算処理部160から構成される。
【0015】
制御部110はCPU(Central Processing Unit)などで構成され、データ処理装置100の各部を制御・統制する。すなわち、操作部140からの「秘匿演算変換処理開始信号」を受けて、前記演算Aと前記演算Bに対応して規定されている演算変換方式型(以下、Typeと略記することがある。)を指定し、記憶部130に予め格納されている演算処理に必要な情報を読み出して演算処理部160での演算処理を実行させ、必要に応じて演算処理部160での演算処理結果を記憶部130に格納する、秘匿演算変換に必要な情報を通信部120を介して相手機関に送出する、演算処理部160での演算結果をI/F部150を介して表示・出力する等の機能を担う。
【0016】
通信部120はLANコネクタや送受信処理用のプロセッサなどから構成され、制御部110からの制御によって、通信線200を通じて相手機関のデータ処理装置100との通信を行う。
【0017】
記憶部130はハードディスクやRAM(Random Access Memory)などの記憶装置から構成され、演算処理部160での演算処理に必要な、自己の秘密データ、演算変換処理方式データ等のデータが予め格納されており、必要に応じて演算処理部160での演算結果等も交渉秘密情報として格納する。
【0018】
ここで「秘密データ」とは「顧客情報」や「秘密ベクトル」などの非公開の情報をいう。また、「顧客情報」とは各機関を利用した顧客の情報であり、「秘密ベクトル」とは、複数の機関が共通して知っているIDによって、顧客情報を並び替え、ある機関が持っている秘密ベクトルの各ベクトル位置の情報を提供顧客と別の機関が持っている秘密ベクトルの同じベクトル位置の情報を提供した顧客が同一となるように、双方の機関で共通した認識を得て整列された情報とする。
【0019】
ここで「演算変換処理方式データ」とは、演算処理部160で実行される各種の秘匿演算処理方式を決定するためのデータであり、演算変換方式型Typeを指定する情報や交渉秘密情報利用有無を指定する情報等がある。
【0020】
また、「交渉秘密情報」とは演算処理部160で演算処理を行うことにより得られた、双方が同意して作成された秘密情報であり、機関P1、機関P2が秘密データX(後述するΦA),秘密データY(後述するΦB)と出力データOutputX(後述するΨA)、OutputY(後述するΨB)を含む情報を、機関P1,機関P2双方が同じ索引Idを付けてそれぞれ記憶部130に記憶する秘密データSecretX[Id]、SecretY[Id]をいう。「秘匿演算変換処理」では、記憶部130に記憶されている以前に作成された交渉秘密情報を利用して演算変換処理を行う場合もあるが、詳細は特許文献1に記載されているのでそちらを参照されたい。本明細書では交渉秘密情報を情報理論的安全性が保証されたプロトコルに従って完全秘匿に新たに作り出す手法について説明する。
【0021】
操作部140はデータ処理装置100の外面上に構成されている各種ボタンなどによって構成される。ユーザにより所定のボタンが押されると、制御部110に対し「秘匿演算変換処理開始通知」を送信する。秘匿演算変換処理開始通知は、秘匿演算変換処理を開始するためのトリガーとなる信号である。
【0022】
I/F部150は例えばUSB(Universal Serial Bus)コネクタやビデオ出力端子などから構成され、外部の装置(例えばPCやモニタなど)へ処理結果を送信する。
【0023】
以上、秘匿演算変換システム1の構成と各部の機能について説明したが、次に、
図2を用いて、演算処理部160での「秘匿演算変換処理」と「交渉秘密情報取得処理」の概要について説明する。
なお、簡略化の為、
図2では制御部110を割愛したが、各構成要素間の情報の授受、機関P1、機関P2間の送受信は、制御部110によって制御・統制されていることは勿論である。
【0024】
演算処理部160での「秘匿演算変換処理」は操作部140からの「秘匿演算変換処理開始通知」により開始される。
機関P1及び機関P2の秘匿演算変換処理部161は秘匿演算処理を実行する。具体的には、機関P1及び機関P2の秘匿演算変換処理部161は連携して、自己の秘密データと相手機関の秘密データ(後述するΦA、ΦB)に演算Aを適用して得られる結果と同じ結果を得られるような演算Bの入力の組OutputX、OutputY(後述するΨA、ΨB)をそれぞれ秘匿に計算し、機関P1は自己の出力データOutputX(後述するΨA)のみを、機関P2は自己の秘密データ出力OutputY(後述するΨB)のみを取得する。
【0025】
本発明に係る完全秘匿演算変換プロトコルの基本的な考えは、機関P1、P2が、双方が協力しないと作成することができず、かつ、双方とも推測することが困難な情報(以下、暗号文秘匿化情報と記すことがある。)を利用して相手と秘密情報の暗号文をやり取りして交渉秘密情報を生成するというものである。暗号文秘匿化情報は、機関P1、P2双方の複数の秘密情報が混合された情報である。
【0026】
暗号文秘匿化情報は、機関P1、P2は相手の公開情報に自己の秘密情報に基づく所定の演算を施して得られた情報を交換し合い、その交換し合った情報に自己の秘密情報に基づく所定の演算を施して得られた情報をさらに交換し合う過程で生成される。暗号文秘匿化情報が生成されると、機関P1、P2は自己の秘密情報を暗号文秘匿化情報で暗号化して暗号文を交換し合うことで交渉秘密情報を生成する。ここで、暗号文秘匿化情報で秘密情報を暗号化することで、受信側が送信側の秘密情報が一体何であるかわからないのはもちろん、送信側も受信側が一体どのような暗号文を受信したのかわからないようになっている。これにより、秘密情報を逆算により特定することを不可能にしている。
【0027】
以下、本発明に係る完全秘匿演算変換プロトコルの具体例について
図3ないし
図6を参照しながら説明する。
図3および
図4は完全秘匿演算変換プロトコルに従った演算変換処理の前処理(暗号文秘匿化情報を生成する処理)の手順の概要を説明するための処理概要図である。
図5および
図6は完全秘匿演算変換プロトコルに従った理論上および実際の演算変換処理(暗号文秘匿化情報を利用して秘密情報の暗号文をやり取りして交渉秘密情報を生成する処理)の手順の概要を説明するための処理概要図である。以下、これら図を参照して、本発明に係る、情報理論的安全性が保証された完全秘匿演算変換プロトコルについて説明する。
【0028】
完全秘匿演算変換プロトコルの前提として、機関P1は秘密情報として値EA1、a1、a2、a3、γA、δA、λA、μA、πA、ΠA、μA1、μA2、ρA、σA、τA、νAを自己の記憶部130に格納しており、機関P2は秘密情報として値DB1、EB1、b1、b2、b3、γB、δB、λB、μB、χB、αB、βB、πB、ΠB、δB1、δB2、ρB、σB、τB、νBを自己の記憶部130にそれぞれ格納しているものとする。これら秘密情報のいくつかは相互依存関係があるが、それ以外の独立に値を決めることができるものについては任意の値、すなわち乱数でよい。また、機関P1は公開情報としてQA1=(a1)1/λA、QA2=(a2)1/δA、QA3=(a3)1/ρAを機関P2に開示し、機関P2は公開情報としてQB1=(b1)1/γB、QB2=(b2)1/μB、QB3=(b3)1/σB、DB2を機関P1に開示しているものとする。
【0029】
まず、
図3を参照して、完全秘匿演算変換プロトコルに従った演算変換処理の第1の前処理について説明する。
(Step1) 機関P1の秘匿演算変換処理部161は、機関P2の公開情報Q
B1に対して、(式1)で示される、記憶部130に格納された自己の秘密情報δ
A、γ
Aを含んだ値J
Aを計算して記憶部130に格納する。uは原始元である。
J
A=Q
B1
1/δAu
γA/δA (1)
機関P2の秘匿演算変換処理部161は、機関P1の公開情報Q
A1に対して、(式2)で示される、記憶部130に格納された自己の秘密情報μ
B、λ
Bを含んだ値J
Bを計算して記憶部130に格納する。
J
B=Q
A1
1/μBu
λB/μB (2)
機関P1の秘匿演算変換処理部161は計算したJ
Aを機関P2に送信し、機関P2の秘匿演算変換処理部161は計算したJ
Bを機関P1に送信して、機関P1、P2間でこれら値を交換し合う。
【0030】
(Step2) 機関P1の秘匿演算変換処理部161は、機関P2からのJBを受信して、(式3)で示される、記憶部130に格納された自己の秘密情報λA、μA、δA、ΠA、μA1を含んだ値LA1、LA2を計算して記憶部130に格納する。
(LA1,LA2)=(JB
λAuμA,QB2
1/δA(JB/ΠA)λA/δAuμA1/δA) (3)
ここで、ΠA=uπA=uλB1/μB、JB/ΠA=QA1
1/μBu(λB/μB)-πA=QA1
1/μBuλB2/μBとする。
つまり、λB1=πAμB、λB2=λB-λB1である。
機関P2の秘匿演算変換処理部161は、機関P1からのJAを受信して、(式4)で示される、記憶部130に格納された自己の秘密情報γB、δB、μB、ΠB、δB1を含んだ値LB1、LB2を計算して記憶部130に格納する。
(LB1,LB2)=(JA
γBuδB,QA2
1/μB(JA/ΠB)γB/μBuδB1/μB) (4)
ここで、ΠB=uπB=uγA1/δA、JA/ΠB=QB1
1/δAu(γA/δA)-πB=QB1
1/δAuγA2/δAとする。
つまり、γA1=πBδA、γA2=γA-γA1である。
機関P1の秘匿演算変換処理部161は計算した(LA1,LA2)を機関P2に送信し、機関P2の秘匿演算変換処理部161は計算した(LB1,LB2)を機関P1に送信して、機関P1、P2間でこれら値を交換し合う。
【0031】
(Step3) 機関P1の秘匿演算変換処理部161は、機関P2からのLB1を受信して、LB1を、記憶部130に格納された自己の秘密情報δAでべき乗した値MA1を計算して記憶部130に格納する。MA1は(式5)のように展開できる。
MA1=LB1
δA=QB1
γBuγAγBuδAδB=b1R1 (5)
ここで、QB1
γB=b1であり、u^(γAγB+δAδB)=R1とする。R1は暗号文秘匿化情報の一つである。なお、式中の「^」はべき乗演算を表す。
また、機関P1の秘匿演算変換処理部161は、機関P2からのLB2を受信して、(式6)で示される、記憶部130に格納された自己の秘密情報δA、ΠA、λA、μA2を含んだ値MA2を計算して記憶部130に格納する。
MA2=LB2
δAΠA
λAuμA2 (6)
機関P2の秘匿演算変換処理部161は、機関P1からのLA1を受信して、LA1を、記憶部130に格納された自己の秘密情報μBでべき乗した値MB1を計算して記憶部130に格納する。MB1は(式7)のように展開できる。
MB1=LA1
μB=QA1
λAuλAλBuμAμB=a1R2 (7)
ここで、QA1
λA=a1であり、u^(λAλB+μAμB)=R2とする。R2は暗号文秘匿化情報の一つである。
また、機関P2の秘匿演算変換処理部161は、機関P1からのLA2を受信して、(式8)で示される、記憶部130に格納された自己の秘密情報μB、ΠB、γB、δB2を含んだ値MB2を計算して記憶部130に格納する。
MB2=LA2
μBΠB
γBuδB2 (8)
機関P1の秘匿演算変換処理部161は計算したMA2を機関P2に送信し、機関P2の秘匿演算変換処理部161は計算したMB2を機関P1に送信して、機関P1、P2間でこれら値を交換し合う。
【0032】
(Step4) 機関P1の秘匿演算変換処理部161は、機関P2からのMB2を受信して、MB2を、記憶部130に格納された自己の秘密情報δAでべき乗して秘密情報a1で除した値NAを計算して記憶部130に格納する。NAは(式9)のように展開できる。
NA=MB2
δA/a1
=QB2
μB((QA1
λAuλAλBuμAμB)/(a1ΠA
δAμB))ΠB
δAγBuμA1μBuδAδB2
=(QA1
λAQB2
μBuλAλB2uμA1μBuγA1γBuδAδB2)/a1
=b2R4 (9)
ここで、QA1
λA=a1、QB2
μB=b2であり、u^(λAλB2+μA1μB+γA1γB+δAδB2)=R4とする。R4は暗号文秘匿化情報の一つである。
機関P2の秘匿演算変換処理部161は、機関P1からのMA2を受信して、MA2を、記憶部130に格納された自己の秘密情報μBでべき乗して秘密情報b1で除した値NBを計算して記憶部130に格納する。NBは(式10)のように展開できる。
NB=MA2
μB/b1
=QA2
δA((QB1
γBuγAγBuδAδB)/(b1ΠB
δAγB))ΠA
λAμBuμA2μBuδAδB1
=(QB1
γBQA2
δAuγA2γBuδAδB1uλAλB1uμA2μB)/b1
=a2R3 (10)
ここで、QB1
γB=b1、QA2
λA=a2であり、u^(γA2γB+δAδB1+λAλB1+μA2μB)=R3とする。R3は暗号文秘匿化情報の一つである。
以上で完全秘匿演算変換プロトコルに従った演算変換処理の第1の前処理は終了である。
【0033】
次に、
図4を参照して、完全秘匿演算変換プロトコルに従った演算変換処理の第2の前処理について説明する。
(Step1) 機関P1の秘匿演算変換処理部161は、機関P2の公開情報Q
B3に対して、(式11)で示される、記憶部130に格納された自己の秘密情報τ
A、σ
Aを含んだ値S
Aを計算して記憶部130に格納する。
S
A=Q
B3
1/τAu
σA/τA (11)
機関P2の秘匿演算変換処理部161は、機関P1の公開情報Q
A3に対して、(式12)で示される、記憶部130に格納された自己の秘密情報ν
B、ρ
Bを含んだ値S
Bを計算して記憶部130に格納する。
S
B=Q
A3
1/νBu
ρB/νB (12)
機関P1の秘匿演算変換処理部161は計算したS
Aを機関P2に送信し、機関P2の秘匿演算変換処理部161は計算したS
Bを機関P1に送信して、機関P1、P2間でこれら値を交換し合う。
【0034】
(Step2) 機関P1の秘匿演算変換処理部161は、機関P2からのSBを受信して、(式13)で示される、記憶部130に格納された自己の秘密情報ρA、νAを含んだ値TAを計算して記憶部130に格納する。
TA=SB
ρAuνA (13)
機関P2の秘匿演算変換処理部161は、機関P1からのSAを受信して、(式14)で示される、記憶部130に格納された自己の秘密情報σB、τBを含んだ値TBを計算して記憶部130に格納する。
TB=SA
σBuτB (14)
機関P1の秘匿演算変換処理部161は計算したTAを機関P2に送信し、機関P2の秘匿演算変換処理部161は計算したTBを機関P1に送信して、機関P1、P2間でこれら値を交換し合う。
【0035】
(Step3) 機関P1の秘匿演算変換処理部161は、機関P2からのTBを受信して、TBを、記憶部130に格納された自己の秘密情報τAでべき乗した値UAを計算して記憶部130に格納する。UAは(式15)のように展開できる。
UA=TB
τA=QB3
σBuσAσBuτAτB=b3R5 (15)
ここで、QB3
σB=b3であり、uσAσBuτAτB=R5とする。R5は暗号文秘匿化情報の一つである。
機関P2の秘匿演算変換処理部161は、機関P1からのTAを受信して、TAを、記憶部130に格納された自己の秘密情報νBでべき乗した値UBを計算して記憶部130に格納する。UBは(式16)のように展開できる。
UB=TA
νB=QA3
ρAuρAρBuνAμB=a3R6 (16)
ここで、QA3
ρA=a3であり、uρAρBuνAμB=R6とする。R6は暗号文秘匿化情報の一つである。
【0036】
上記の第1の前処理および第2の前処理により、機関P1、P2間で相手から受け取った値に対して自己の秘密情報に基づく所定の演算(これら演算は指数計算を主とする高負荷演算である。)を施して新たな値を生成して相手に返すことを繰り返して、機関P1、P2の双方が協力しないと作成することができず、かつ、双方とも推測することが困難な暗号文秘匿化情報R1、R2、R3、R4、R5、R6が生成される。厳密に言うと、これら暗号文秘匿化情報R1、R2、R3、R4、R5、R6はプロトコルの途中の数式において適宜定義したパラメーターであって、これらパラメーターの値が個別に直接的に計算されるわけではない。すなわち、R1、R4、R5は機関P1において生成されるものの、機関P1はこれらの値を知ることができない。なぜなら、機関P1において計算されるのはb1R1、b2R4、b3R5のように機関P2の秘密情報b1、b2、b3が乗算された値であり、機関P2はb1、b2、b3を知るすべがないためR1、R4、R5を特定することはできない。同じく、R2、R3、R6は機関P2において生成されるものの、機関P2はこれらの値を知ることができない。なぜなら、機関P2において計算されるのはa1R2、a2R3、a3R6のように機関P1の秘密情報a1、a2、a3が乗算された値であり、機関P2はa1、a2、a3を知るすべがないためR2、R3、R6を特定することはできない。後述するように、機関P1、P2で離散対数問題が解けたとしてもR1、R2、R3、R4、R5、R6は確率的にしか特定することができず、この点において本発明に係る完全秘匿演算変換プロトコルは情報理論的安全性が保証されている。
【0037】
次に、
図5および
図6を参照して、機関P1、P2間で暗号文秘匿化情報R
3、R
4、R
5、R
6を利用して秘密情報の暗号文をやり取りして交渉秘密情報を生成する処理について説明する。
(Step0) 事前準備として、機関P2の秘匿演算変換処理部161は、暗号文秘匿化情報R
5/R
6を取得して記憶部130に格納する。ここで、機関P2の秘密情報DB
1および公開情報DB
2はそれぞれ(式17)、(式18)のように展開できる。
DB
1=1/(χ
Bα
B) (17)
DB
2=(α
B(R
5/R
6)-β
B)/(χ
Bα
B)(R
5/R
6) (18)
すなわち、秘密情報DB
1は機関P2の秘密情報χ
B、α
Bを用いて表され得る値であり、公開情報DB
2は機関P2の秘密情報χ
B、α
Bおよび暗号文秘匿化情報R
5/R
6を用いて表され得る値である。理論的には、機関P2の秘匿演算変換処理部161は、予め秘密情報χ
B、α
B、β
Bを決めておいてそれら値から(式17)に基づいて秘密情報DB
1を計算し、さらに暗号文秘匿化情報R
5/R
6を取得して(式18)に基づいて公開情報DB
2を計算する。しかし、実際には、先に秘密情報DB
1および公開情報DB
2を適当な値に決めて記憶部130に格納しておいて、機関P2の秘匿演算変換処理部161は、予め決めているDB
1、DB
2および取得したR
5/R
6からχ
B、α
B、β
Bを求めて記憶部130に格納する。
【0038】
理論的には、機関P2は暗号文秘匿化情報R5/R6を取得すればよいわけであるが、上述したように暗号文秘匿化情報R5、R6の値は個別に計算できないためR5/R6を直接的に計算することはできない。しかし、実際には、R5/R6は、(式15)に示したR5を含む値であるUAおよび(式16)に示したR6を含む値であるUBに基づいて間接的に計算することができる。ここで、UBは機関P2で計算される値であるから、機関P2は機関P1からUAを含む値を取得することでR5/R6を計算することができる。具体的には、(式19)に示すように、機関P2の秘匿演算変換処理部161は、機関P1から、UAに機関P1の秘密情報a3を乗算したUAa3を取得し、その値を、UBおよび記憶部130に格納された自己の秘密情報b3で除することでR5/R6を計算することができる。
(UAa3)/(UBb3)=(b3R5a3)/(a3R6b3)=R5/R6 (19)
【0039】
(Step1) 機関P1の秘匿演算変換処理部161は、機関P2から、機関P2の秘密情報DB1を暗号文秘匿化情報R3/R5で暗号化した暗号文DB1′と機関P2の公開情報DB2を受信する。理論的には、暗号文DB1′は機関P2の秘密情報DB1に暗号文秘匿化情報R3/R5を乗じて生成すればよいわけであるが、上述したように暗号文秘匿化情報R3、R5の値は個別に計算できないためR3/R5を直接的に計算することができない。しかし、R3/R5は、(式10)に示したR3を含む値であるNBおよび(式15)に示したR5を含む値であるUAに基づいて間接的に計算することができる。したがって、実際には、暗号文DB1′は、(式20)に示すように、機関P2の秘匿演算変換処理部161が記憶部130に格納された機関P2の秘密情報DB1にNBとb3を乗じた仮暗号文DB1(b3NB)を機関P1に送信し、機関P1の秘匿演算変換処理部161が機関P2から送出された仮暗号文DB1(b3NB)を受信して、DB1(b3NB)を、記憶部130に格納された機関P1の秘密情報UAとa2で除することで計算することができる。
DB1′=DB1(b3NB)/(a2UA)=DB1(b3a2R3)/(a2b3R5)
=DB1(R3/R5)=(1/(χBαB))(R3/R5) (20)
このように機関P2の秘密情報DB1を暗号文秘匿化情報R3/R5で暗号化することより、機関P1は機関P2の秘密情報DB1が何かわからず、また、機関P2は機関P1が受信した暗号文DB1′が何かわからないようになっている。
なお、機関P1が受信するDB1′は機関P2の秘密情報DB1に暗号文秘匿化情報R3/R5を乗じて一意に決まる値であり、また、DB2は機関P2の公開情報であることから、機関P1が受信するこれら値に関して機関P2に変更の自由度はない。したがって、機関P1は機関P2からこれら値を一方的に受信するだけでよい。
【0040】
機関P1の秘匿演算変換処理部161は、機関P2から受信した暗号文DB1′と機関P2の公開情報DB2を使って、DB1′から1を引いてDB2を足した値の秘密情報EA1を計算して記憶部130に格納する。(式17)、(式18)、(式20)から、EA1は(式21)のように展開できる。
EA1=(DB1′-1)+DB2
=(1/(χBαB)(R3/R5)-1)+1/(χBαB)(αB(R5/R6)-βB)(R6/R5)
=(R3-χBαBR5+αBR5-βBR6)(1/(χBαBR5))
=(R3-(χB-1)αBR5-βBR6)(1/(χBαBR5)) (21)
このように、EA1は与えられたDB1′、DB2に対して四則演算を施すことで機関P1において簡単に計算することができるが、その実体は、機関P1が知り得ない機関P2の秘密情報χB、αB、βBおよび暗号文秘匿化情報R3、R5、R6を用いて表され得る値である。
【0041】
機関P2の秘匿演算変換処理部161は、記憶部130に格納された暗号文秘匿化情報R5/R6および自己の秘密情報DB1、公開情報DB2を使って、(式22)で示される秘密情報EB1を計算して記憶部130に格納する。
EB1=(1-DB2(R5/R6))DB1
-1=((χB-1)αBR5/R6+βB) (22)
このように、EB1は自己が保有するDB1、DB2および取得したR5/R6に対して四則演算を施すことで機関P2において簡単に計算することができる。
【0042】
(Step2) 機関P1の秘匿演算変換処理部161は、機関P2から、機関P2の秘密情報EB1を暗号文秘匿化情報R6R4で暗号化した暗号文EB1′を受信する。理論的には、暗号文EB1′は機関P2の秘密情報EB1に暗号文秘匿化情報R6R4を乗じて生成すればよいわけであるが、上述したように暗号文秘匿化情報R6、R4の値は個別に計算できないためR6R4を直接的に計算することができない。しかし、R6R4は、(式16)に示したR6を含む値であるUBおよび(式9)に示したR4を含む値であるNAに基づいて間接的に計算することができる。したがって、実際には、暗号文EB1′は、(式23)に示すように、機関P2の秘匿演算変換処理部161が記憶部130に格納された機関P2の秘密情報EB1にUBを乗じてb2で除した仮暗号文EB1(UB/b2)を機関P1に送信し、機関P1の秘匿演算変換処理部161が機関P2から送出された仮暗号文EB1(UB/b2)を受信して、EB1(UB/b2)に、記憶部130に格納された機関P1の秘密情報NAを乗じてa3で除することで計算することができる。
EB1′=EB1(NA/a3)/(UB/b2)=EB1(b2R4/a3)/(a3R6/b2)
=EB1(R6R4)=((χB-1)αB(R5/R6)+βB)(R6R4) (23)
このように機関P2の秘密情報EB1を暗号文秘匿化情報R6R4で暗号化することより、機関P1は機関P2の秘密情報EB1が何かわからず、また、機関P2は機関P1が受信した暗号文EB1′が何かわからないようになっている。
【0043】
機関P1の秘匿演算変換処理部161は、機関P2の秘密情報EB1を暗号文秘匿化情報R6R4で暗号化した暗号文EB1′をそのまま出力データFA1として記憶部130に格納する。(式22)、(式23)から、FA1は(式24)のように展開できる。
FA1=EB1′=((χB-1)αBR5+βBR6)R4 (24)
このように、FA1は与えられたEB1′そのものであり、機関P1において何ら計算することなく得ることができるが、その実体は、機関P1が知り得ない機関P2の秘密情報χB、αB、βBおよび暗号文秘匿化情報R4、R5を用いて表され得る値である。
【0044】
機関P2の秘匿演算変換処理部161は、機関P1から、機関P2の秘密情報EA1を暗号文秘匿化情報R5R4で暗号化した暗号文EA1′を受信する。理論的には、暗号文EA1′は機関P1の秘密情報EA1に暗号文秘匿化情報R5R4を乗じて生成すればよいわけであるが、上述したように暗号文秘匿化情報R5、R4の値は個別に計算できないためR5R4を直接的に計算することができない。しかし、R5R4は、(式15)に示したR5を含む値であるUAおよび(式9)に示したR4を含む値であるNAに基づいて間接的に計算することができる。したがって、実際には、暗号文EA1′は、(式25)に示すように、機関P1の秘匿演算変換処理部161が記憶部130に格納された機関P1の秘密情報EA1にNAとUAを乗じた仮暗号文EA1(NAUA)を機関P2に送信し、機関P2の秘匿演算変換処理部161が機関P1から送出された仮暗号文EA1(NAUA)を受信して、EA1(NAUA)を、記憶部130に格納された機関P2の秘密情報b2とb3で除することで計算することができる。
EA1′=EA1(NAUA)/(b2b3)=EA1(b2R4b3R5)/(b2b3)
=EA1(R5R4)=(R3-(χB-1)αBR5-βBR6)(R5R4)/(χBαBR5) (25)
このように機関P1の秘密情報EA1を暗号文秘匿化情報R5R4で暗号化することより、機関P2は機関P1の秘密情報EA1が何かわからず、また、機関P1は機関P2が受信した暗号文EA1′が何かわからないようになっている。
【0045】
機関P2の秘匿演算変換処理部161は、機関P1から受信した暗号文EA1′と記憶部130に格納された自己の秘密情報DB1を使って、EA1′にDB1
-1を乗じて出力データFB1を計算して記憶部130に格納する。(式17)、(式25)から、FB1は(式26)のように展開できる。
FB1=EA1′DB1
-1
=(R3-(χB-1)αBR5-βBR6)R4 (26)
このように、FB1は与えられたEA1′および自己が保有するDB1に対して四則演算を施すことで機関P2において簡単に計算することができる。
【0046】
次に、上記の手順で機関P1、P2において最終的に生成されたFA1、FB1と前処理で生成されたMA1、MB1の間に成り立つ関係について説明する。機関P1が計算したMA1を機関P1の秘密情報a1で除した値MA1/a1と機関P2が計算したMB1を機関P2の秘密情報b1で除した値MB1/b1について、(式5)、(式7)から、(式27)が成り立つ。
(MA1/a1)(MB1/b1)=(b1R1/a1)(a1R2/b1)=R1R2 (27)
また、(式5)、(式7)、(式10)、(式9)において
R1=u^(γAγB+δAδB)
R2=u^(λAλB+μAμB)
R3=u^(γA2γB+δAδB1+λAλB1+μA2μB)
R4=u^(λAλB2+μA1μB+γA1γB+δAδB2)
としたことから(式28)が成り立つ。
R1R2=u^(γAγB+δAδB)u^(λAλB+μAμB)
=u^((γA1+γA2)γB)u^(δA(δB1+δB2))u^(λA(λB1+λB2))u^((μA1+μA2)μB)
=u^(γA2γB+δAδB1+λAλB1+μA2μB)u^(λAλB2+μA1μB+γA1γB+δAδB2)
=R3R4 (28)
ここで、γA=γA1+γA2、δB=δB1+δB2、λB=λB1+λB2、μA=μA1+μA2とする。
さらに、FA1とFB1との和FA1+FB1について、(式24)、(式26)から、(式29)が成り立つ。
FA1+FB1=((χB-1)αBR5+βBR6)R4+(R3-(χB-1)αBR5-βBR6)R4=R3R4 (29)
したがって、(式27)、(式28)、(式29)から(式30)が成り立つ。
(MA1/a1)(MB1/b1)=R1R2=R3R4=FA1+FB1 (30)
ここで、機関P1のみが知り得る情報MA1/a1、FA1をそれぞれ機関P1の秘密データΦA、出力データΨAとし、機関P2のみが知り得る情報MB1/b1、FB1をそれぞれ機関P2の秘密データΦB、出力データΨBとすると、(式30)から(式31)が成り立つ。
ΦAΦB=ΨA+ΨB (31)
この(式31)で表される情報こそ求めるべき交渉秘密情報である。この(式31)が意味するところは、機関P1の秘密データΦAと機関P2の秘密データΦBの積ΦAΦBは、機関P1の出力データΨAと機関P2の出力データΨBの和ΨA+ΨBに変換可能ということである。
【0047】
機関P1及び機関P2の交渉秘密情報取得処理部162は交渉秘密情報取得処理を実行する。具体的には、機関P1の交渉秘密情報取得処理部162は、秘匿演算変換処理部161で取得した出力データΨA、秘密データΦA,演算変換方式型Typeを明記する情報(上記手順では乗算から加算への変換を示す情報)をObjectXとしてまとめる。同様に、機関P2の交渉秘密情報取得処理部162も出力データΨB、秘密データΦB、演算変換方式型TypeをObjectYとしてまとめる。さらに、機関P1及び機関P2は連携して、ObjectXとObjectYに付ける、両機関で同一の索引Idを決定し、交渉秘密情報SecretX[Id]、SecretY[Id]として、それぞれの記憶部130に格納する。
【0048】
こうして機関P1、P2のそれぞれの記憶部130に完全秘匿に作成された交渉秘密情報が格納されると、以降はその交渉秘密情報を用いることで、特許文献1に開示された「交渉秘密情報有乗算加算変換処理」あるいは「交渉秘密情報有加算乗算換算処理」のような四則演算のみの計算負荷の小さい演算で機関P1、P2間で新たな秘密情報に基づく新たな秘匿演算変換処理を極めて安全に行うことができる。さらに当該新たな秘匿演算変換処理により新たな交渉秘密情報が得られる。機関P1及び機関P2の交渉秘密情報取得処理部162は記憶部130に当該新たな交渉秘密情報を格納してそれまで格納されていた交渉秘密情報を更新する。以降、上記と同様に当該新たな交渉秘密情報を用いて、「交渉秘密情報有乗算加算変換処理」あるいは「交渉秘密情報有加算乗算換算処理」のような四則演算のみの計算負荷の小さい演算で機関P1、P2間で新たな秘密情報に基づく新たな秘匿演算変換処理を極めて安全に行うことができる。
【0049】
次に、本発明に係る完全秘匿演算変換プロトコルが情報理論的安全性を保証したものであることについて説明する。説明の便宜上、完全秘匿演算演算プロトコルに従った演算変換処理の前処理において機関P1において離散対数問題が解けたとする。
【0050】
図7は、
図3に示した演算変換処理の第1の前処理において機関P1において離散対数問題が解けた場合の機関P2の秘密情報解析の概要を説明するための処理概要図である。機関P1において離散対数問題が解けたとすると、
図7に示したように、(Step1)において機関P1がQ
B1を受信したときq
B1′が求まり、(Step2)において機関P1がJ
Bを受信したときj
B′が求まり、(Step3)において機関P1がL
B1、L
B2を受信したときl
B1′、l
B2′が求まり、(Step4)において機関P1がM
B2を受信したときm
B2′が求まる。このように求めることができた情報から(式32)、(式33)に示した関係が判明する。
j
B′=(q
A1+λ
B)/μ
B → μ
B=(q
A1+λ
B)/j
B′ (32)
l
B′=j
Aγ
B+δ
B → δ
B=l
B′-j
Aγ
B (33)
ここで、機関P1にとってγ
B、δ
B、λ
B、μ
Bは未知、その他の値は既知である。また、δ
Bはγ
Bの関数として、μ
Bはλ
Bの関数としてそれぞれ表現できる。このことからR
1、R
2は(式34)、(式35)のように表される。
R
1=u^(γ
Aγ
B+δ
A(l
B1′-j
Aγ
B)) (34)
R
2=u^(λ
Aλ
B+μ
A(q
A1+λ
B)/j
B′) (35)
(式34)、(式35)においてγ
B、λ
Bを正確に予測できる確率は候補に対して全て同じであり、γ
B、λ
Bの候補に対して、R
1、R
2の候補がそれぞれ存在する。したがって、R
1、R
2は一意に特定することができず確率的にしか特定できない。
【0051】
また、離散対数問題が解けて求めることができた情報から(式36)、(式37)、(式38)に示した関係が判明する。
lB2′=(qA2+(jA-πB)γB+δB1)/μB → δB1=μBlB2′-qA2-(jA-πB)γB (36)
mB2′=lA2μB+πBγB+δB2 → δB2=mB2′-lA2μB-πBγB (37)
δB=δB1+δB2 → δB=μBlB2′+mB2′-qA2-jAγB-lA2μB (38)
ここで、上述したようにδBはγBの関数として、μBはλBの関数としてそれぞれ表現できる。また、lA2として(式39)を代入することができる。
lA2=(qB2′+(jB′-πA)λA+μA1)/δA (39)
このことからR4、R3は(式40)、(式41)のように表される。なお、便宜のため、数式展開の途中経過は省略する。
R4=u^(-qB2((λB+qA1)/jB′-λAqA1+δAmB2′)) (40)
R3=u^(γAγB+μAμB+δAδB+λAλB+qB2′((λB+qA1)/jB′)+λAqA1-δAmB2′) (41)
このようにR3はγB、λBの関数として、R4はλBの関数としてそれぞれ表される。(式40)、(式41)においてγB、λBを正確に予測できる確率は候補に対して全て同じであり、γB、λBの候補に対して、R3、R4の候補がそれぞれ存在する。したがって、R3、R4もまた一意に特定することができず確率的にしか特定できない。
【0052】
図8は、
図4に示した演算変換処理の第2の前処理において機関P1において離散対数問題が解けた場合の機関P2の秘密情報解析の概要を説明するための処理概要図である。機関P1において離散対数問題が解けたとすると、
図8に示したように、(Step1)において機関P1がQ
B3を受信したときq
B3′が求まり、(Step2)において機関P1がS
Bを受信したときs
B′が求まり、(Step3)において機関P1がT
Bを受信したときt
B′が求まる。このように求めることができた情報から(式42)、(式43)に示した関係が判明する。
s
B′=(q
A3+ρ
B)/ν
B → ν
B=(q
A3+ρ
B)/s
B′ (42)
t
B′=((q
B3′/τ
A)+(σ
A/τ
A))σ
B+τ
B
→ τ
B=t
B′-((q
B3′/τ
A)+(σ
A/τ
A))σ
B (43)
ここで、機関P1にとってν
B、ρ
B、σ
B、τ
Bは未知、その他の値は既知である。また、ν
Bはρ
Bの関数として、τ
Bはσ
Bの関数としてそれぞれ表現できる。このことからR
5、R
6は(式44)、(式45)のように表される。
R
5=u^(σ
Aσ
B+τ
A(t
B′-((q
B3′/τ
A)+(σ
A/τ
A)σ
B) (44)
R
2=u^(ρ
Aρ
B+ν
A(q
A3+ρ
B)/s
B′) (45)
(式44)、(式45)においてρ
B、σ
Bを正確に予測できる確率は候補に対して全て同じであり、ρ
B、σ
Bの候補に対して、R
5、R
6の候補がそれぞれ存在する。したがって、R
5、R
6もまた一意に特定することができず確率的にしか特定できない。
【0053】
次に、(式34)、(式35)、(式40)、(式41)から、R1/R2、R3/R4、R3/R1、R3/R2、R4/R1、R4/R2はそれぞれ(式46)、(式47)、(式48)、(式49)、(式50)、(式51)のように表される。なお、便宜のため、数式展開の途中経過は省略する。
R1/R2=u^(γAγB+δA(lB1′-jAγB)-λAλB-μA(qA1+λB)/jB′) (46)
R3/R4=u^(γAγB+μAμB+δAδB+λAλB+2qB2′(λB+qA1)/jB′+2λAqA1-2δAmB2′) (47)
R3/R1=u^(λAλB+(μA+qB2′)(λB+qA1)/jB′+λAqA1-δAmB2′) (48)
R3/R2=u^(γAγB+δA(lB1′-jAγB)+qB2′(λB+qA1)/jB′+λAqA1-δAmB2′) (49)
R4/R1=u^(-qB2(λB+qA1)/jB′-λAqA1+δAmB2′-γAγB-δA(lB1′-jAγB)) (50)
R4/R2=u^(-(qB2+jB′λA+μA)(qA1+λB)/jB′+δAmB2′) (51)
【0054】
ここで、機関P1だけでR1、R2のそれぞれとR3、R4のそれぞれの比を推測するのは困難であり、γB、λBの候補に対してR1/R2、R3/R4、R3/R1、R3/R2、R4/R1、R4/R2の値の候補がそれぞれ存在する。よって、γB、λBの具体的な候補値を使わないと機関P1がΦA、ΦB、ΨA、ΨB間の互いの比を求めることは困難である。また、変数の組み合わせ(γB,λB)に対する各候補組み合わせ(γB′,λB′)において、R1、R2、R3、R4のそれぞれに対する候補R1′、R2′、R3′、R4′が存在し、どの組み合わせにおいても
R1′R2′=R3′R4′
が成り立つ。本発明に係る完全秘匿演算変換プロトコルを介して機関P1が得たΨA=FA1を用いても
FA1=R4′((χB′-1)αB′R5′+βB′R6′)
としか推測できない。ここで、χB′、αB′、βB′、R5′、R6′は各変数の推測値とする。情報FB1の推測値FB1′は
FB1′=R3′R4′-R4′((χB′-1)αB′R5′+βB′R6′)
を満たすことにより、機関P1は機関P2のもつ情報FB1の推測値として
FB1′=R3′R4′-FA1
としか推測できない。このとき、
R1′R2′=FA1+FB1′
となり、矛盾は生じない。よって,全ての(γB,λB)に対する各候補組み合わせ(γB′,λB′)に対して、情報FB1の候補FB1′が必ず存在する。
【0055】
機関P2から見た機関P1の情報も上記の議論と同様にR1、R2それぞれとR3、R4それぞれの比を機関P2だけでは推測困難であり、γA、λAの候補に対してR1/R2、R3/R4、R3/R1、R3/R2、R4/R1、R4/R2の値の候補がそれぞれ存在する。よって、γA、λAの具体的な候補値を使わないと機関P1がΦA、ΦB、ΨA、ΨB間の互いの比を求めることは困難である。また、変数の組み合わせ(γA,λA)に対する各候補組み合わせ(γA′,λA′)において、R1、R2、R3、R4のそれぞれに対する候補R1′、R2′、R3′、R4′が存在し、どの組み合わせにおいても
R1′R2′=R3′R4′
が成り立つ。本発明に係る完全秘匿演算変換プロトコルを介して機関P2が得たΨAB=FB1を用いて
FB1=R3′R4′-R4′((χB-1)αBR5′+βBR6′)
=R3′R4′-R4′((χB-1)αBR5′+βB(R6/R5)R5′)
と推測できる。ここで、R5′、R6′は各変数の推測値とする。情報FA1の推測値FA1′は
FA1′=R4′((χB-1)αBR5′+βBR6′)
を満たすことより、機関P2は機関P1のもつ情報FA1の推測値として
FA1′=R3′R4′-FB1
としか推測できない。このとき、
R1′R2′=FA1′+FB1
となり、矛盾は生じない。よって、全ての(γA,λA)に対する各候補組み合わせ(γA′,λA′)に対して、情報FA1の候補FA1′が必ず存在する。
【0056】
以上説明したように、本実施形態によると、機関P1、P2のそれぞれが双方の機関の秘密情報が混合された暗号文秘匿化情報で自己の秘密情報を暗号化して相手機関とやり取りすることで、受信側が送信側の秘密情報が一体何であるかわからないのはもちろん、送信側も受信側が一体どのような暗号文を受信したのかわからないようにして複数の機関間で交渉秘密情報を作成することができる。これにより、複数の機関間で情報理論的安全性が保証されたプロトコルに従って交渉秘密情報を作成することができる。
【符号の説明】
【0057】
1 秘匿演算変換システム、100 データ処理装置、110 制御部、120 通信部、
130 記憶部、140 操作部、150 インタフェース部、160 演算処理部、
161 秘匿演算変換処理部、162 交渉秘密情報取得処理部、200 通信線