JP2017129644A - 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体 - Google Patents

秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体 Download PDF

Info

Publication number
JP2017129644A
JP2017129644A JP2016007528A JP2016007528A JP2017129644A JP 2017129644 A JP2017129644 A JP 2017129644A JP 2016007528 A JP2016007528 A JP 2016007528A JP 2016007528 A JP2016007528 A JP 2016007528A JP 2017129644 A JP2017129644 A JP 2017129644A
Authority
JP
Japan
Prior art keywords
secret
ciphertext
fixed
data
fixed ciphertext
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.)
Pending
Application number
JP2016007528A
Other languages
English (en)
Inventor
陽子 上土井
Yoko Jodoi
陽子 上土井
真一 若林
Shinichi Wakabayashi
真一 若林
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.)
Hiroshima City University
Original Assignee
Hiroshima City University
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 Hiroshima City University filed Critical Hiroshima City University
Priority to JP2016007528A priority Critical patent/JP2017129644A/ja
Publication of JP2017129644A publication Critical patent/JP2017129644A/ja
Pending legal-status Critical Current

Links

Abstract

【課題】複数の機関が保持している秘密データを入力として演算を適用した結果を、暗号文の送受信を行うことなく、かつ、無関係な情報を他に知られることなく、秘匿に計算する秘匿計算情報交換システムを提供する。
【解決手段】秘匿計算情報交換システム1は2以上の機関にそれぞれ設置されたデータ処理装置100で構成される。データ処理装置100は秘密データと固定暗号文列を記憶する記憶部130と、固定暗号文列の一部を復号鍵で復号し固定暗号文復号結果を計算する固定暗号文復号部111と固定暗号文復号結果に演算を適用し最終結果を生成する最終結果算出部112とを有する。ここで秘密データとは各機関を利用した顧客の情報である顧客情報や、顧客情報を並び替え、双方の機関で共通の認識を得て整列された秘密ベクトルなどの非公開情報である。
【選択図】図6

Description

本発明は、複数の機関でそれぞれがもつデータを入力として演算を適用した結果をデータの内容を秘匿したまま計算するための秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体に関する。
複数の機関がもつデータを入力として演算を適用し得られる結果をデータの内容を秘匿したまま計算し、結果を利用する方法が示されている。各機関がもつデータを複数のデータブロックからなるデータベクトルとし、適用する演算を内積計算とした場合の秘匿ベクトル内積計算を用いた相関ルールを導出する方法が非特許文献1に示されている。
ここで、内積演算とは2つの同じ長さのベクトルを入力として、同じベクトル位置のベクトル要素2つを乗算し乗算結果を算出し、全てのベクトル位置の乗算結果の総和を求める演算とする。内積演算の入力ベクトルをX、Yとするとき内積演算結果をX・Yと表す。
以下、オンラインショップP1とオンラインショップP2が顧客の物品購入の相関関係を顧客とのプライバシー同意契約に違反することなく導出する例を図1の概略図を参照して説明する。
最初に、オンラインショップP1とP2は図2、図3に示すような「クレジットカード番号表」を用意し、同じクレジット番号の顧客の利用金額を同じ位置に記録する2つのベクトル、「ベクトルX」、「ベクトルY」を用意する。
上記のベクトルXとベクトルYを入力として内積演算を適用し結果がある閾値より大きい場合にはオンラインショップP1とオンラインショップP2の顧客の購買行動には正の相関関係があると判断することができ、顧客の嗜好性が似ていることから、共同で商品開発することで、より顧客のニーズにあう商品を開発できる可能性があることがわかる。
このとき、多くの人数の購買情報からなる「ベクトルX」、「ベクトルY」を作成した上で、「ベクトルX」、「ベクトルY」の内容を明らかにせず、内積演算の結果のみを計算できれば、顧客と企業間にあるプライバシー合意契約に抵触しない。以降では、ベクトルX、Yの長さはnであるとし、また、その長さをベクトル次数と呼ぶ。
上記の秘匿計算を実行する手法が非特許文献1にて開示されている。まず、オンラインショップ1では、ベクトルXの各要素にオンラインショップ1がランダムに定めたn個の乱数によりベクトルXを秘匿した形に変形したベクトルX’をオンラインショップ2へ渡す。オンラインショップ2では、ベクトルX‘と自身のもつベクトルYの内積を計算する。CTYなるn次のベクトルに同じ値がn/r個ずつ連続するn次元のベクトル<R1’,R1’,…,R1’, R2’,…,R2’, Rr’,…Rr’>を加算して作成したベクトルVをオンラインショップ1に送信する。オンラインショップ1は自己の乱数ベクトルRと受信したベクトルVの内積を計算し、Jとする。次に機関P1は自己の乱数ベクトルをn/r個ずつ加算し、r次元のベクトルQ=<R1+R2+…+Rn/r, Rn/r+1+…+R2n/r,…,R(n-n/r+1)+…+Rn>を計算し、オンラインショップ2へ送信する。オンラインショップ2は先に計算した内積値から自己のもつr次のベクトルT=(R1’,R2’,…,Rr’)とオンラインショップ1より受信したr次ベクトルQとの内積の値を減算することで値Kを計算する。機関P1と機関P2は値JとKを交換することで内積結果X・Yを計算することができる。
上記の手法では複数の秘匿データの加算後の結果のみを知らせることで加算前の値を復元できない状態に保ち、各ベクトルの値の安全性を保証できるように見える。
しかしながら、この方法には問題がある。オンラインショップ1は、ベクトルYの非零要素数が少ない場合、ベクトルYの半分の係数を明らかにできてしまう。また、同じベクトルXをオンラインショップ1が繰り返し用いた場合、相手が変数を指定し、ベクトルXに関する情報を引き出すことができるという安全上の問題がある。また、n/r回のn次元のベクトルの送受信を必要としており、安全性を向上させようとすると大量のベクトル情報を送受信することとなる効率上の問題もある。
上記の問題を解決するため、非特許文献2では公開鍵暗号方式を用いた秘匿計算プロトコルが提案されている。この方法では1つの平文を複数の異なる暗号文に暗号可能な確率暗号で、かつ、暗号文に対し演算を実施することで平文に対する演算も実行できる準同型性をもつ確率公開鍵暗号方式を用いる。
ここで、公開鍵暗号方式とは暗号化するときに使う鍵と復号するときに使う鍵が異なるため、暗号化に利用する鍵を公開することで、誰でも暗号文を作成できるが、復号は復号するための鍵(秘密鍵)を知っている人以外には困難である非対称な暗号方式である。また、確率暗号とは、同一の平文を同一の鍵で暗号化すると必ず同一の暗号文を生成するRSA暗号方式のような確定暗号とは異なり、暗号化に毎回異なる乱数を利用可能なため、同じ平文であっても鍵の種類と同程度の数の暗号文に変換可能な暗号方式である。上記の性質を満たす公開鍵暗号方式の1つにElGamal暗号方式がある。確率公開鍵暗号方式を使った秘匿ベクトル内積方法では、暗号文に対して、演算を適用することで平文に演算を施せるという準同型性を利用し、かつ、確率的に暗号文を変化させることで、暗号文に対してどのような演算が適用されたのかを特定することを困難にしながら、平文に対して演算を施して、秘匿ベクトルの内積を計算する。
以下、先の例と同じように機関P1とP2は図2、図3に示すような各顧客の利用金額を把握しているオンラインショップP1とオンラインショップP2とする。各機関は各顧客の利用金額を秘密データとして保持すると仮定する。
最初に、機関P1とP2は図4、図5に示すような秘密ベクトルXとYを用意する。ここで、機関P1は各顧客の利用金額、機関P2は各顧客の利用金額をベクトルの要素としてもつこととする。以降では、顧客を1からnで番号付け、ベクトルの大きさをnとし、各ベクトルの要素をXi、Yiと表す(ここでiは1以上n以下の整数とする)。
次に、機関P1は自分の公開鍵K=g S (mod P) (ここgは原子元、Pは素数、Sは秘密鍵とする。以降暗号の計算では(mod P)を省略する)を公開した上で、各顧客の利用金額Xiの暗号値(2XiKri, gri)(ここで、riは乱数)からなる暗号文ベクトルを作成し、機関P2に送信する。
機関P1より暗号文ベクトルを受け取った機関P2は暗号文の1項目、2項目ともにパラメータYiを指数乗したのち、各暗号文の1項目の要素をすべて乗算し、2項目の要素同士をすべて乗算した1つの暗号文(2X1Y1+X2Y2+…+XnYn Kr1Y1+r2Y2+…+rnYn, gr1Y1+r2Y2+…+rnYn)を作成し、最後に乱数Rで撹乱した暗号文(2X1Y1+X2Y2+…+XnYn Kr1Y1+r2Y2+…+rnYn+R, gr1Y1+r2Y2+…+rnYn+R)に変換し、変換後の暗号文を機関P2へ送信する。
暗号文を受け取った機関P1は暗号文2項組を復号することにより値E=Σ1≦i≦n XiYi+Rを得る。値Eと値Rを機関P1、P2で交換することにより、互いに内積結果を計算することができる。
Jaideep Vaidya and Chris Clifton, "Privacy preserving association rule mining in vertically partitioned data," Proceeding of the 8th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD2002), pp.639-644, 2002. Bart Goethals, Sven Laur, Helger Lipmann ad Taneli Mielikainen, "On privacy scalar product computation for privacy-preserving data mining," Priceeding of the 7th Annual Information Security and Cryptology (ICISC2004), pp.104-120, 2004.
しかしながら、非特許文献2の方法にも問題がある。機関P1はベクトル情報ごとにデータを暗号化する必要があり、その暗号化は指数乗の計算のような大きな計算コストを必要とするという問題である。また、機関P2もベクトル次数個の自己のもつ情報を指数乗の大きな計算コストを費やし機関P2の公開鍵で暗号化した後、機関p1より受信したベクトル次数個の暗号文と乗算しなければならず、大きな計算コストを必要とする。
さらに、非特許文献2の方法のような公開鍵暗号方式を用いる方法は相対的な機密性の保証しか持っていない。非特許文献2で提案されている方法に用いられる可能性が高いElGamal暗号方式はDiffie-Hellman問題と呼ばれる難しいと思われている問題が効率的に解けない限り安全だと証明されているが、Diffie-Hellman問題が本当に効率的に解くことができないかは、現在まで証明されていない。また、Diffie-Hellman問題よりも難しい問題である可能性の高い問題として離散対数問題が知られており、ElGamal暗号方式に依る暗号プロトコルは相対的にみても弱い機密性しか備えていない可能性がある。
本発明はこれらの問題を鑑みてなされたものであり、指数乗計算のような大きな計算コストを必要とせず、かつ、暗号文を通信しないことにより、情報を相手に漏らすこと無く演算結果を計算することができる秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、該秘匿計算情報交換プログラムを記録した記録媒体を提供することを目的とする。
上記の目的を達成するため、本発明の第1の観点にかかる秘匿計算情報交換システムは、
2以上のデータ処理装置で構成される秘匿計算情報交換システムであって、
前記データ処理装置はそれぞれ、
秘密データを記憶する秘密データ記憶手段と、
暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶手段と、
自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号手段と、
を有し、
前記複数のデータ処理装置が記憶する前記固定暗号文列は同一である、
ことを特徴とする。
前記データ処理装置は、
他のデータ処理装置が生成する固定暗号文復号結果を取得し、自己のもつ固定暗号文復号結果と統合し最終結果を算出する最終結果算出手段と、
を有してもよい。
前記データ処理装置は、さらに、
前記秘密データとは独立に決定される秘密パラメータと前記固定暗号文復号結果を入力として部分結果を算出し、前記部分結果を他のデータ処理装置に送信する部分結果算出手段と、
を有してもよい。
前記固定暗号文復号手段は、
前記秘密データ記憶手段により記憶される可能性のある全ての秘密データに対して、
前記固定暗号文列と前記秘密データを入力として前記復号鍵となる値と前記固定暗号文復号結果となる値を計算可能である、
ことを特徴としてもよい。
前記秘密データは、
複数のデータブロックで構成されるベクトルデータである、
ことを特徴としてもよい。
上記目的を達成するため、本発明の第2の観点にかかるデータ処理装置は、
他のデータ処理装置と連携してデータを処理するデータ処理装置であって、
秘密データを記憶する秘密データ記憶手段と、
暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶手段と、
自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号手段と、
を有し、
前記複数のデータ処理装置が記憶する前記固定暗号文列は同一である、
ことを特徴とする。
上記目的を達成するため、本発明の第3の観点にかかる秘匿計算情報交換方法は、
秘密データを記憶する秘密データ記憶ステップと、
暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶ステップと、
自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号ステップと、
を有し、
前記複数のデータ処理装置が記憶する前記固定暗号文列は同一である、
ことを特徴とする。
上記目的を達成するため、本発明の第4の観点にかかる秘匿計算情報交換プログラムは、
秘密データを記憶する秘密データ記憶ステップと、
暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶ステップと、
自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号ステップと、
を有し、
前記複数のデータ処理装置が記憶する前記固定暗号文列は同一である、
ことを特徴とする。
上記目的を達成するため、本発明の第5の観点にかかる記録媒体は、
上記秘匿計算情報交換プログラムが記録されていることを特徴とする。
本発明によれば、暗号文の送受信を一切行うことなく、かつ、無関係な情報を他に知られることなく、秘匿に計算を行うことができる。
本発明の実施の形態1にかかる秘匿計算情報交換システムの構成例を示すブロック図である。 複数の機関による事前の取り決めに基づいて決定されている顧客のカード番号の順序付けにより、機関P1がもつ顧客ごとの利用金額を列状に並べた表である。 複数の機関による事前の取り決めに基づいて決定されている顧客のカード番号の順序付けにより、機関P2がもつ顧客ごとの利用金額を列状に並べた表である。 図2に示した表を要約し作成された機関P1がもつ秘密ベクトルXである。 図3に示した表を要約し作成された機関P2がもつ秘密ベクトルYである。 図1に示す制御部によって実現される機能を示す機能ブロック図である。 本発明の実施の形態1にかかる「情報交換処理」の概要を説明するための処理概要図である。 本発明の実施の形態1にかかる「情報交換処理」を説明するためのフローチャートである。 図8に示す「情報交換処理」で実行される「固定暗号文復号処理」を説明するためのフローチャートである。 図8に示す「情報交換処理」で実行される「最終結果算出処理」を説明するためのフローチャートである。 本発明の実施の形態2にかかる秘匿計算情報交換システムの構成例を示すブロック図である。 本発明の実施の形態2にかかる「情報交換処理」の概要を説明するための処理概要図である。 本発明の実施の形態2にかかる「情報交換処理」を説明するためのフローチャートである。 本発明の実施の形態2にかかる「固定暗号文復号処理」を説明するためのフローチャートである。 本発明の実施の形態2にかかる「最終結果算出処理」を説明するためのフローチャートである。
(実施の形態1)
本実施の形態の秘匿計算情報交換システム1は、機関P1もしくは機関P2のもつ秘密データX、Yにおいて第三者機関の助けなしに、かつ、暗号文の送受信を一切行うことなくXとYを入力として関数を適用した結果を秘匿に計算するための情報交換システムである。以下、秘匿計算情報交換システム1について図面を参照しながら説明する。まず、図6を参照して秘匿計算情報交換システム1の構成について説明する。
秘匿計算情報交換システム1は、図6に示すように、機関P1と機関P2それぞれに設置された2台のデータ処理装置100で構成される。
データ処理装置100は、例えば、PCサーバやメインフレームなどで構成され、顧客情報等の秘密データを格納している。データ処理装置100は図1に示すように、制御部110、記憶部130、操作部140、インタフェース部150から構成される。
制御部110は、CPU (Central Processing Unit) などで構成され、データ処理装置100の各部を制御する。また、制御部110は操作部140から「情報交換処理開始通知」を受信すると、後述の「情報交換処理」を実行する。「情報交換処理」は2台のデータ処理装置どちらかそれぞれで実行される。
記憶部130は、ハードディスクやRAM (Random Access Memory) などの記憶装置から構成され、データ処理装置100の動作に必要なデータ(例えば「秘密データ」や「固定暗号文列」)などを記憶する。
ここで「秘密データ」とは、「顧客情報」や「秘密ベクトル」などの非公開の情報のことをいう。また、「顧客情報」とは各機関を利用した顧客の情報であり、「秘密ベクトル」とは、複数の機関が共通してしっているIDによって顧客ごとの情報を並び替え、ある機関が持っている秘密ベクトルの各ベクトル位置の情報を提供顧客と別の機関が持っている秘密ベクトルの同じベクトル位置の情報を提供した顧客が同じであるようなベクトル位置ごとに格納されている情報に関して、双方の機関で共通した認識を得て整列された情報とする。
また「固定暗号文列」とは秘匿計算を行う上でそれぞれのデータ処理装置100が相手に送信する情報を計算するために用いる数値の列であり、「情報交換処理」を開始する以前に双方のデータ処理装置100が共通の数値の列を「固定暗号文列」として記憶部130に格納している。「固定暗号文列」はいくつかの条件を満たすよう選択される(詳細は後述する)。
操作部140はデータ処理装置100の外面上に構成されている各種ボタンなどによって構成される。ユーザにより所定のボタンが押されると、制御部110に対し「情報交換処理開始通知」を送信する。情報交換処理開始通知は、秘匿計算情報交換処理を開始するためのトリガーとなるデータである。
インタフェース部150は、例えばUSB (Universal Serial Bus) コネクタやビデオ出力端子などから構成され、外部の装置(例えばPCやモニタなど)へ処理結果を送信する。
以上、秘匿計算情報交換システム1の構成について説明したが、次に、制御部110の備える機能について、図6の機能ブロック図、および、図7の処理概要図を参照しながら説明する。
制御部110は複数の機関で秘匿計算を実行するため「秘匿計算情報交換処理」を実行する。秘匿計算情報交換処理は操作部140からの「情報交換処理開始通知」により開始される。以下に説明する各機能は秘匿計算情報交換処理を実現するための機能である。まず、情報交換処理を実現する機能を機関P1での処理を例に説明する。
固定暗号文復号部111はあらかじめ知っている固定暗号文列の一部であるEΨを復号するために、残りの固定暗号文列と自己の保有する秘密ベクトルxを用いて復号鍵ベクトルKΦを用いて固定暗号文列の一部EΨを復号し、固定暗号文復号値FΦを生成する。また、計算パラメータ列γを計算する。
最終結果算出部112は、自己のパラメータ列γと固定暗号文復号値FΦと復号鍵ベクトルKΦに演算を施すことにより最終結果Φを算出し、インタフェース部150を通じて外部の装置へ最終結果を送信する。
以上、制御部110の機能について説明したが、次に、データ処理装置100で実行される「秘匿計算情報交換処理」について説明する。秘匿計算情報交換処理は「情報交換処理」により構成される。機関P1に設置されたデータ処理装置100、機関P2に設置されたデータ処理装置100それぞれが「情報交換処理」を実行することで、秘匿データに関する情報を一切相手に知られることなく、かつ、暗号文の送受信を行うことなく秘匿計算を実行し、機関P1は望まれる関数を機関P1の秘密ベクトル、機関P2の秘密ベクトルに適用したときに得られるであろう同じ値を得る。
制御部110は操作部140から「情報交換処理開始通知」を受信すると図8に示す「情報交換処理」を開始する。この「情報交換処理」は大きく2つのステップで構成される。以下、図7の処理概要図を参照しながら「情報交換処理」の概要について説明する。なお、以下に説明する各ステップは2台のデータ処理装置100の双方で(説明では機関P1を考える)で実行される。
最初にステップS100の固定暗号文復号処理について説明する。制御部110は自己の秘密データであり、「秘密ベクトルx」と予め公知である暗号文列(CΦi, DΦi, EΦi, CΨi, DΨi, EΨi)(1≦i≦n)を入力とする。ここで、nはベクトルの長さであるベクトル次数である(例ではn=2)。制御部110は上記を入力として、パラメータ列γi (1≦i≦n)と復号鍵ベクトルKΦi(1≦i≦n)を計算する。そして,暗号文列EΨiを復号鍵ベクトルKΦiで復号することにより,固定暗号文復号値ベクトルFΦを得る.
ここで1つ疑問が生じる。暗号文列(CΦi, DΦi, EΦi, CΨi, DΨi, EΨi,)(1≦i≦n)とパラメータ列γiと復号鍵ベクトルKΦiをどのように関連づけるかという疑問である。本実施の形態ではあたかも固定暗号文列を2つの機関が送受信したかのようにみなし、それらの暗号文列を得る暗号鍵等の秘密パラメータを計算する。その具体的方法は後に詳しく述べる。
また,復号鍵ベクトルKΦiは以前に機関P1にて記憶されていないし、固定暗号文列の一部であるEΨiを暗号化した鍵に対応する復号鍵である保証もないので、固定暗号文列を復号鍵KΦiにて復号することに意味はないのでないかという疑問である。しかしながら、本実施の形態では、完全な機密性を備える暗号プロトコルを基本とすることにより、現在の秘密ベクトルxに応じた固定暗号文列と同じ暗号文列を生じる復号鍵KΦiを計算することができる。その具体的方法は後に詳しく述べる。
次にステップS200の最終結果算出処理について説明する。制御部110は計算したパラメータ列γiを固定暗号文復号値ベクトルFΦに演算を施した値である最終結果Φを算出する。
以上の処理(ステップS100とS200)により、情報交換処理は完了する。
以上、秘匿計算情報交換処理の概要について説明したが、次に、秘匿計算情報交換処理を構成する情報交換処理について詳細に説明する。最初に、情報交換処理のステップS100の「固定暗号文復号処理」、最後に情報交換処理のステップS200の「最終結果算出処理」について説明する。
ステップS100は図8の「送信パラメータ列計算処理」に対応している。以下、図9のフローチャートおよび図7の処理概要図を参照して「固定暗号文復号処理」について説明する。なお、固定暗号文復号処理は固定暗号文復号処理部111で実行される。
固定暗号文復号部111は秘密ベクトルxを記憶部130から読み出す(ステップS101)。
次に、固定暗号文復号部111は秘密ベクトルxと固定暗号文の一部を入力として残りの固定暗号文列を復号するための復号鍵KΦiを計算する(ステップS102)。
秘密ベクトルxと固定暗号文列の一部を入力として復号鍵KΦiを計算するために、基本となっている暗号プロトコルにより規定されているパラメータ群(図7(e))との関係を、暗号文列を定数値のベクトル、秘密ベクトルxを定数値のベクトル、暗号鍵KΦiおよびパラメータベクトルγiを変数としたときの連立一次方程式とみなし、連立一次方程式の解より復号鍵KΦi(例の場合は暗号鍵に対応する復号鍵は暗号鍵と同じである)と計算パラメータ列γiを計算する。
ここでも基本となっている暗号プロトコルが完全な機密性を提供し、どのような秘密ベクトルYに対しても、決められた暗号文列を生成するような暗号鍵を設定可能とするなら、暗号文を固定として公知とすることにより、暗号文列を相手機関と送受信したときに得られる暗号文復号結果と同じ復号結果を得る暗号鍵に対応する復号鍵KΦiを、暗号文列を送受信することなく逆算することができる。
固定暗号文復号部111は計算した復号鍵KΦiにより固定暗号文列の一部である暗号文EΨiを復号し、固定暗号文復号値FΦを計算し(S103)、固定暗号文復号値FΦと計算パラメータ列γiを記憶部130に記録する(S104)。固定暗号文の復号が完了すると制御部110は図9のフローに戻り、ステップS200の最終結果算出処理を開始する。最終結果算出処理は最終結果算出部112によって実行される。以下、図11のフローチャートおよび図7の処理概要図を参照して「最終結果算出処理」について説明する。
最終結果算出部112は自己が計算したパラメータ列γiと復号鍵ベクトルKΦi,,固定暗号値復号結果ベクトルFΦに演算を施し最終結果Φを計算する(S201)。
以上の処理により最終結果の算出が完了すると、次に、制御部110は図8のフローに戻り、最終結果をインタフェース部150を通じて外部の装置へ出力する(ステッップS200)。
本実施の形態によれば、一切の暗号文の送受信を行うことなく、あたかも暗号文の送受信を行ったと同じ暗号文復号値を取得することが可能になる。また、最終結果を算出するのに適切な部分解を2つの機関で固定暗号文列を仲介情報として生成することができる。
このように本実施の形態の方法は、従来手法における機密性における弱点と機密性向上により送受信にかかる通信量、計算量の増大という弱点の双方を克服した完全な機密性を提供する極めて少ない通信量で秘匿計算を実行する情報交換方法となっている。よって、本実施の形態の情報交換方法を使用すれば、高い機密性のもと高速な秘匿計算を実行することが可能となる。
(実施の形態2)
本実施の形態の秘匿計算情報交換システム1は図12に示すように2台のデータ処理装置100を備えるシステムである。また、2台のデータ処理装置100の双方が計算結果を得る。以下、秘匿計算情報交換システム1について図面を参照しながら説明する。まず、図12を参照して秘匿計算情報交換システム1の構成について説明する。
秘匿計算情報交換システム1は図12に示すように、機関P1と機関P2それぞれに設置された2台のデータ処理装置100と、それらを接続する通信線200とで構成される。2台のデータ処理装置100は、通信線200を通じて互いにデータを送受信することで連携して1つの処理を実行する。データ処理装置100の構成、および制御部110を除くブロックが備える機能は実施の形態1のデータ処理の構成、ブロックの備える機能と同一であるので説明を省略する。
また、秘匿計算情報交換方法は実施の形態1と同様に「情報交換処理」により実行される。
制御部110の備える機能について、図12の機能ブロック図を参照しながら説明する。制御部110は複数の機関で秘匿計算を実行するため「秘匿計算情報交換処理」を実行する。秘匿計算情報交換処理は操作部140からの「情報交換処理開始通知」により開始される。以下に説明する各機能は秘匿計算情報交換処理を実現するための機能である。秘匿計算情報交換処理は情報交換処理から成る。以下に機関P1の情報交換処理を実現する機能を説明する。
固定暗号値復号部111は他機関のデータ処理装置100と連携して、自己の秘密ベクトルXと自己の秘密パラメータΦを利用して自己の暗号鍵ベクトルKAiを実施の形態1と同様の方法にて計算する。さらに秘密パラメータΦを導入することによって、暗号文EAを作成し相手機関に送信する。
最終結果算出部112は他機関のデータ処理装置100と連携して、自己のもつ部分結果FAと、相手機関より取得した部分結果FBに演算を施すことにより最終結果NEW_XYを算出し、インタフェース部150を通じて外部の装置へ最終結果を送信する。
以上、制御部110の機能について説明したが、次に、データ処理装置100で実行される「秘匿計算情報交換処理」について説明する。秘匿計算情報交換処理は「情報交換処理」により構成される。機関P1、機関P2に設置されたデータ処理装置100が協調して「情報交換処理」を実行し、秘匿データに関する情報を一切相手に知られることなく、かつ、暗号文の送受信を行うことなく秘匿計算を実行し、機関P1、機関P2ともに望まれる関数を機関P1の秘密ベクトル、機関P2の秘密ベクトルに適用したときに得られるであろう同じ値を得る。
制御部110は操作部140から「情報交換処理開始通知」を受信すると図13に示す「情報交換処」を開始する。この「情報交換処理A」は大きく2つのステップで構成される。以下、図13のフローチャートを参照しながら「情報交換処理」の概要について説明する。なお、以下に説明する各ステップは2台のデータ処理装置100の一方で実行される。
最初にステップS100の送信パラメータ列計算処理について説明する。制御部110は自己の秘密データであり、「秘密ベクトルX」と予め公知である暗号文列(CAi, DAi, CBi DBi)(1≦i≦n)を入力とする。ここで、nはベクトルの長さであるベクトル次数である。制御部110は上記を入力として、暗号文列EAiを計算し、相手機関に送信する。また、固定暗号文値復号ベクトルを計算し、記憶部130に記憶する(図14)。
次にステップS500の最終結果算出処理は他機関のデータ処理装置100と連携して、自己のもつ固定暗号値復号結果FAを相手機関に送信し、相手機関より固定暗号値復号結果FBを得ることにより計算した部分結果GAと、相手機関より取得した部分結果GBに演算を施すことにより最終結果NEW_XYを算出し、インタフェース部150を通じて外部の装置へ最終結果を送信する(図15)。
以上の処理(ステップS100とS200)により、情報交換処理は完了する。
ここで、情報交換処理を担当するデータ処理装置100が相手機関に送信する情報を利用して他機関が勝手に秘匿計算を行うことができるという危険が存在しないかという疑問が生じる。しかしながら、本実施の形態では、外部に送信する情報、固定暗号文列を制約することにより、上記の危険を排除する。双方の機関において、外部に送信した情報を利用して、秘匿計算を実行できないものとする仕組みを以下に説明する。
例えば、図7の処理概略図の例の場合、暗号文列を作成するときに秘密ベクトルXだけでなく秘密ベクトルとは独立に決定された秘密パラメータを用いることにより、1つの秘密ベクトルに対して確率的に暗号文列を変化させることができ、秘密ベクトルXを推測することを困難にする。さらに、各機関においては段階的に暗号値を送信することにより、他の秘匿計算に勝手に情報が利用されることを防ぐ。また、機関P2においても、固定暗号文列として利用できる暗号文列を条件付けて制約することにより部分解である第2結果を他の秘匿計算に勝手に情報が利用されないようにする。
本実施の形態によれば、各機関が1つずつの暗号鍵を使って作成した暗号文の送受信のみで、双方の機関が安全に計算結果を得ることができる。また、最終結果を算出するのに適切な部分解を2つの機関で固定暗号文列を仲介情報として生成することができる。
実施の形態1および2では、複数のデータブロックで構成されるベクトルを対象に本方法を適用したが、本方法はデータブロック単体を対象に適用してもよい。この場合、データ処理装置100は、データブロック同士の乗算結果を計算するが、最終的な内積結果を算出すると相手のデータブロックの値が判明してしまうので、最終結果以前の値を別の計算に利用するか内積結果に機関P2の秘密データを加算する。また、一方の機関のデータブロックを単位ブロック(例えば値1)に設定し、他の機関のデータブロックを秘密データブロックとするベクトルを対象に本方法を適用した場合、データ処理装置100は秘匿加算計算を実行することができる。
本システムの適用はオンラインショップでの相関関係判定の秘匿ベクトル計算に限られない。研究機関間、会社間、部署間等、さまざまな組織間の秘匿計算に適用可能である。また、個人間の秘匿計算にも適用可能である。
データ処理装置100は、専用のシステムによらず、通常のコンピュータシステムを用いても実現可能である。例えば、上述の動作を実行するためのプログラムをコンピュータ読み取り可能な記憶媒体に格納して配布し、該プログラムをコンピュータにインストールして、上述の処理を実行することによってデータ処理装置100を構成してもよい。また、インターネット等のネットワーク状のサーバ装置が備えるディスク装置に格納しておき、例えばコンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、OSとアプリケーションソフトの共同より実現してもよい。また、コンピュータにダウンロード等してもよい。
上記のプログラムを記録する記録媒体としては、USBメモリ、CD、DVD、MO、SDカード、その他、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ、磁気デープ等のコンピュータ読取り可能な記録媒体を使用することができる。また、HDD(ハードディスク)やSSD(ソリッドステートドライブ)等、通常、システム又は装置に固定して使用する記録媒体を使用することもできる。
1 秘匿計算情報交換システム
100 データ処理装置
110 制御部
111 送信パラメータ列計算部
112 最終結果算出部
113 固定暗号文復号部
114 部分結果算出部
120 通信部
130 記憶部
140 操作部
150 インタフェース部
200 通信線

Claims (9)

  1. 2以上のデータ処理装置で構成される秘匿計算情報交換システムであって、
    前記データ処理装置はそれぞれ、
    秘密データを記憶する秘密データ記憶手段と、
    暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶手段と、
    自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号手段と、
    を有し、
    前記複数のデータ処理装置が記憶する前記固定暗号文列は同一である、
    ことを特徴とする秘匿計算情報交換システム。
  2. 前記データ処理装置は、
    他のデータ処理装置が生成する固定暗号文復号結果を取得し、自己のもつ固定暗号文復号結果と統合し最終結果を算出する最終結果算出手段と、
    を有する、
    ことを特徴とする請求項1に記載の秘匿計算情報交換システム。
  3. 前記データ処理装置は、さらに、
    前記秘密データとは独立に決定される秘密パラメータと前記固定暗号文復号結果を入力として部分結果を算出し、前記部分結果を他のデータ処理装置に送信する部分結果算出手段と、
    を有することを特徴とする請求項1または2に記載の秘匿計算情報交換システム。
  4. 前記固定暗号文復号手段は、
    前記秘密データ記憶手段により記憶される可能性のある全ての秘密データに対して、
    前記固定暗号文列と前記秘密データを入力として前記復号鍵となる値と前記固定暗号文復号結果となる値を計算可能である、
    ことを特徴とする請求項乃至3のいずれか1項に記載の秘匿計算情報交換システム。
  5. 前記秘密データは、
    複数のデータブロックで構成されるベクトルデータである、
    ことを特徴とする請求項1乃至4のいずれか1項に記載の秘匿計算情報交換システム。
  6. 他のデータ処理装置と連携してデータを処理するデータ処理装置であって、
    秘密データを記憶する秘密データ記憶手段と、
    暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶手段と、
    自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号手段と、
    を有し、
    前記複数のデータ処理装置が記憶する前記固定暗号文列は同一である、
    ことを特徴とするデータ処理装置。
  7. 他のデータ処理装置と連携してデータを処理するデータ処理装置によって使用される秘匿計算情報交換方法であって、
    秘密データを記憶する秘密データ記憶ステップと、
    暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶ステップと、
    自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号ステップと、
    を有し、
    前記複数のデータ処理装置が記憶する前記固定暗号文列は同一である、
    ことを特徴とする秘匿計算情報交換方法。
  8. 他のコンピュータと連携してデータを処理するコンピュータによって実行される秘匿計算情報交換プログラムであって、
    秘密データを記憶する秘密データ記憶ステップと、
    暗号文の列とみなせる固定暗号文列を記憶する固定暗号文列記憶ステップと、
    自己の保有する前記秘密データと前記固定暗号文列より固定暗号文列を復号鍵で復号し固定暗号文復号結果を生成する固定暗号文復号ステップと、
    前記複数のデータ処理装置が記憶する前記固定暗号文列は同一である、
    ことを特徴とする秘匿計算情報交換プログラム。
  9. 請求項8に記載の情報交換プログラムが記録されていることを特徴とするコンピュータ読み取り可能な記録媒体。
JP2016007528A 2016-01-19 2016-01-19 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体 Pending JP2017129644A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016007528A JP2017129644A (ja) 2016-01-19 2016-01-19 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016007528A JP2017129644A (ja) 2016-01-19 2016-01-19 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体

Publications (1)

Publication Number Publication Date
JP2017129644A true JP2017129644A (ja) 2017-07-27

Family

ID=59395657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016007528A Pending JP2017129644A (ja) 2016-01-19 2016-01-19 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体

Country Status (1)

Country Link
JP (1) JP2017129644A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020016739A (ja) * 2018-07-25 2020-01-30 公立大学法人広島市立大学 秘匿演算変換システム、秘匿演算変換方法、および、秘匿演算変換プログラム
CN112866254A (zh) * 2021-01-21 2021-05-28 中国工商银行股份有限公司 一种共同客户的获取方法、终端及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020016739A (ja) * 2018-07-25 2020-01-30 公立大学法人広島市立大学 秘匿演算変換システム、秘匿演算変換方法、および、秘匿演算変換プログラム
JP7219437B2 (ja) 2018-07-25 2023-02-08 公立大学法人広島市立大学 秘匿演算変換システム、秘匿演算変換方法、および、秘匿演算変換プログラム
CN112866254A (zh) * 2021-01-21 2021-05-28 中国工商银行股份有限公司 一种共同客户的获取方法、终端及系统

Similar Documents

Publication Publication Date Title
US9252942B2 (en) Method and system for secure multiparty cloud computation
Naveed et al. Controlled functional encryption
WO2012067214A1 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP4849541B2 (ja) 個別情報を秘匿するクロス集計処理方法およびクロス集計装置、並びにプログラム
JP5846577B2 (ja) クライアントの状態が予め定められた状態に一致するかを検出するシステム
JP2016512611A (ja) プライバシー保護リッジ回帰
US20040165728A1 (en) Limiting service provision to group members
US11323255B2 (en) Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes
US11764943B2 (en) Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology
JP2021523620A (ja) 秘密を通信する方法及びシステム
KR102143525B1 (ko) 교집합 연산을 지원하는 함수 암호를 위한 방법 및 이를 이용한 장치
WO2018016330A1 (ja) 通信端末、サーバ装置、プログラム
US20180294951A1 (en) Methods and systems for enhanced data-centric scalar multiplicative homomorphic encryption systems using geometric algebra
US8117456B2 (en) Network system, server and information terminal for list matching
CN116830523A (zh) 阈值密钥交换
Carminati et al. Secure web service composition with untrusted broker
JP2017129644A (ja) 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体
WO2023241142A1 (zh) 一种数据处理方法及装置、存储介质及电子设备
JP2016027391A (ja) 秘匿ベクトル内積計算システム、データ処理装置、秘匿ベクトル内積計算方法、秘匿ベクトル内積プログラム、および、記録媒体
EP3364397B1 (en) Secret authentication code adding device, secret authentification code adding method, and program
JP2016109891A (ja) 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体
Dhanaraj et al. Introduction to Homomorphic Encryption for Financial Cryptography
CN113141249B (zh) 一种门限解密方法、系统及可读存储介质
US20160232553A1 (en) Apparatus and method for secure digital coupon verification
EP3975472A1 (en) Private set intersection protocol based on commutative deterministic encryption