(57)【要約】検索要求にしたがって秘匿化されている検索対象データに類似する被検索対象データを検索する類似性秘匿検索システムであって、ユーザ端末は、質的データまたは量的データを含む検索対象データの入力を受け付ける入力部と、検索対象データに含まれる質的データを、一致不一致の判定が可能な暗号化方式で暗号化する暗号化処理部と、検索対象データに含まれる量的データと被検索対象データに含まれる量的データとに基づいて、両者が一定以上の類似性を有するための条件を算出する類似性判定処理部と、暗号化された質的データと条件とを、被検索対象データを検索するための類似検索サーバに送信する通信部と、を備え、類似検索サーバは、ユーザ端末から質的データと条件とを受信し、または検索対象データに類似すると判定された被検索対象データをユーザ端末に送信するサーバ通信部と、ユーザ端末から受信した質的データと、あらかじめ記憶部に記憶された被検索対象データに含まれる質的データとに基づいて両者が類似しているか否かを判定し、両者が類似していると判定した場合、類似していると判定した被検索対象データの中から条件を満たす量的データを含む被検索対象データを検索対象データに類似するデータとして出力する類似性判定計算処理部と、を備える。
2016203555.tif 000002
【特許請求の範囲】
【請求項１】
検索要求にしたがって秘匿化されている検索対象データに類似する被検索対象データを検索する類似性秘匿検索システムであって、
ユーザ端末は、
質的データまたは量的データを含む前記検索対象データの入力を受け付ける入力部と、
前記検索対象データに含まれる前記質的データを、一致不一致の判定が可能な暗号化方式で暗号化する暗号化処理部と、
前記検索対象データに含まれる前記量的データと前記被検索対象データに含まれる前記量的データとに基づいて、両者が一定以上の類似性を有するための条件を算出する類似性判定処理部と、
暗号化された前記質的データと前記条件とを、前記被検索対象データを検索するための類似検索サーバに送信する通信部と、を備え、
前記類似検索サーバは、
前記ユーザ端末から前記質的データと前記条件とを受信し、または前記検索対象データに類似すると判定された前記被検索対象データを前記ユーザ端末に送信するサーバ通信部と、
前記ユーザ端末から受信した質的データと、あらかじめ記憶部に記憶された前記被検索対象データに含まれる質的データとに基づいて両者が類似しているか否かを判定し、両者が類似していると判定した場合、類似していると判定した前記被検索対象データの中から前記条件を満たす量的データを含む被検索対象データを前記検索対象データに類似するデータとして出力する類似性判定計算処理部と、
を備えることを特徴とする類似性秘匿検索システム。
【請求項２】
請求項１に記載の類似性秘匿検索システムであって、
前記ユーザ端末の前記類似性判定処理部は、前記量的データをベクトルとみなして当該ベクトルを構成する１または複数の基底ベクトルとスカラー値との組を生成し、生成した前記基底ベクトルと、前記検索対象データと前記被検索対象データとが類似していると判定するために前記基底ベクトルが満たすべき内積値を前記条件として算出し、
前記類似検索サーバの前記類似性判定計算処理部は、質的データに基づいて類似していると判定した前記被検索対象データのうち前記内積値を満たす前記量的データを含む被検索対象データを前記データとして出力する、
ことを特徴とする類似性秘匿検索システム。
【請求項３】
請求項２に記載の類似性秘匿検索システムであって、
前記ユーザ端末の前記類似性判定処理部は、前記検索対象データに含まれる前記量的データをベクトルとみなして当該ベクトルに対して直交変換およびアフィン変換し、前記各変換後のベクトルと、前記検索対象データと前記被検索対象データとが類似していると判定するために前記変換後のベクトルが満たすべき内積値を前記条件として算出し、
前記類似検索サーバの前記類似性判定計算処理部は、質的データに基づいて類似していると判定した前記被検索対象データのうち前記内積値を満たす前記量的データを含む被検索対象データを前記データとして出力する、
ことを特徴とする類似性秘匿検索システム。
【請求項４】
請求項１に記載の類似性秘匿検索システムであって、
前記入力部は、秘匿化されていない平文を含む前記質的データまたは前記量的データの入力を受け付け、
前記暗号化処理部は、前記質的データが前記平文である場合には処理を実行せず、
前記類似性判定処理部は、前記検索対象データに含まれる前記平文の前記量的データと前記被検索対象データに含まれる前記量的データとに基づいて、両者が一定以上の類似性を有するための条件を算出する、
ことを特徴とする類似性秘匿検索システム。
【請求項５】
検索要求にしたがって秘匿化されている検索対象データに類似する被検索対象データを検索する類似性秘匿検索方法であって、
ユーザ端末から質的データまたは量的データを含む前記検索対象データの入力を受け付ける入力ステップと、
前記検索対象データに含まれる前記質的データを、一致不一致の判定が可能な暗号化方式で暗号化する暗号化処理ステップと、
前記検索対象データに含まれる前記量的データと前記被検索対象データに含まれる前記量的データとに基づいて、両者が一定以上の類似性を有するための条件を算出する類似性判定処理ステップと、
暗号化された前記質的データと前記条件とを、前記被検索対象データを検索するための類似検索サーバに送信する送信ステップと、
前記ユーザ端末から前記質的データと前記条件とを受信する受信ステップと、
前記ユーザ端末から受信した質的データと、あらかじめ記憶部に記憶された前記被検索対象データに含まれる質的データとに基づいて両者が類似しているか否かを判定する判定ステップと、
両者が類似していると判定した場合、類似していると判定した前記被検索対象データの中から前記条件を満たす量的データを含む被検索対象データを前記検索対象データに類似するデータとして出力する類似性判定計算処理ステップと、
前記検索対象データに類似すると判定された前記被検索対象データを前記ユーザ端末に送信するサーバ送信ステップと、
を含むことを特徴とする類似性秘匿検索方法。
【請求項６】
請求項５に記載の類似性秘匿検索方法であって、
前記類似性判定処理ステップでは、前記量的データをベクトルとみなして当該ベクトルを構成する１または複数の基底ベクトルとスカラー値との組を生成し、生成した前記基底ベクトルと、前記検索対象データと前記被検索対象データとが類似していると判定するために前記基底ベクトルが満たすべき内積値を前記条件として算出し、
前記類似性判定計算処理ステップでは、質的データに基づいて類似していると判定した前記被検索対象データのうち前記内積値を満たす前記量的データを含む被検索対象データを前記データとして出力する、
ことを特徴とする類似性秘匿検索方法。
【請求項７】
請求項６に記載の類似性秘匿検索方法であって、
前記類似性判定処理ステップでは、前記検索対象データに含まれる前記量的データをベクトルとみなして当該ベクトルに対して直交変換およびアフィン変換し、前記各変換後のベクトルと、前記検索対象データと前記被検索対象データとが類似していると判定するために前記変換後のベクトルが満たすべき内積値を前記条件として算出し、
前記類似性判定計算処理ステップでは、質的データに基づいて類似していると判定した前記被検索対象データのうち前記内積値を満たす前記量的データを含む被検索対象データを前記データとして出力する、
ことを特徴とする類似性秘匿検索方法。
【請求項８】
請求項５に記載の類似性秘匿検索方法であって、
前記入力ステップでは、秘匿化されていない平文を含む前記質的データまたは前記量的データの入力を受け付け、
前記暗号化処理ステップでは、前記質的データが前記平文である場合には処理を実行せず、
前記類似性判定処理ステップでは、前記検索対象データに含まれる前記平文の前記量的データと前記被検索対象データに含まれる前記量的データとに基づいて、両者が一定以上の類似性を有するための条件を算出する、
ことを特徴とする類似性秘匿検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバが保管する平文、あるいは暗号化されたデータのうち、自身が保有するデータと類似したデータを検索する類似性秘匿検索システム、類似性秘匿検索方法に関する。
【背景技術】
【０００２】
近年膨大なデータから未知の、かつ有効な知識を引き出すビッグデータ分析が注目を集めている。また、企業では自社保有のデータはもとより、社外のデータも収集し、マーケティングや業務効率化に活用するなど情報の種々の分析はますます重要な活動として認識されるようになっている。一方でそのようなデータの管理に不備があり、顧客の個人情報を含む情報が大量に漏えいする事件・事故が多発しており、社会問題となっている。【０００３】
このような漏えい事故は漏えいさせた企業は多額の補償金を負担することになり、場合によっては企業の存亡に関わる事態となる。また、無関係の企業にとっても情報保有者である個人などが情報提供時に躊躇、結果、情報を収集しにくくなり、有効な分析結果を得られなくなるなど、悪影響が出ることが懸念される。【０００４】
これらの状況に対し、正しく情報を収集、利活用するための法整備が進んでいる。また、各業界において取り扱う情報、特に個人情報について機微性、プライバシ性が異なるため、各業界におけるガイドラインも整備されつつある。しかし、これらはあくまでも法律面の整備であり、情報漏えいに対しての抑止には効果があるものの、情報漏えい対策そのものではない。【０００５】
情報漏えいやそれが引き起こすプライバシ侵害を防ぐ技術としては、従来から、情報にアクセスする人を制限するアクセスコントロールや、機材の盗難などで効果的な暗号化などが考えられてきた。しかし、昨今の情報漏えい事件では、計算機リソースの管理を任された外部委託業者の権限悪用によるものが少なくない。このような外部委託業者が情報を管理するために、データベースなどにアクセスする正当な権限を渡されるため、管理業務に不必要な情報まで閲覧可能となり、それが悪用されてしまう。これに対しては、従来のアクセスコントロールは無力であり、また、暗号化はストレージ暗号のように記録媒体からデータを取り出して、利用する際には復号化する運用のものである場合には、やはり管理者は正当な手続きのもと、復号されたデータを閲覧できるため無力である。【０００６】
外部委託者、あるいはその傍には復号鍵を置かず、社内の限られた正当なユーザのみが復号鍵を持っていて、利用時には手元に暗号文を引き戻して復号する運用も可能である。しかし、従来の暗号技術ではデータベースに保管した場合、暗号化状態では何も処理できず、例えば、基本的な操作である検索や、数値データの場合の集計等も諦めなければならない。これでは単なる暗号文保管庫でしかなく、データベース機能を無駄にしてしまう。【０００７】
そこで昨今、安全性の高い暗号化技術を用いながら、復号化することなく何等かの処理を可能にする技術の研究に注目が集まっている。例えば、復号化することなく平文の一致不一致が判定できる検索可能暗号の研究が盛んに行われている。これは、平文が文字列(氏名、住所など)の場合を対象としたもので、数値データに対する大小比較など、順序関係を判定することは難しい。  数値データの比較、特にある尺度の下で類似しているか否かなどの判定は、あらゆる分析はもとより、通常業務においても頻出する重要な演算機能である。その際、複数の項目からなる数値データをベクトルとみなした場合、多くの場合で「尺度」はベクトル空間の通常の距離(ユークリッド距離)、従ってベクトルの内積で表現される。よって、そのデータ(ベクトル)を秘匿したままである「尺度」に沿った類似性を判定する場合、例えば、非特許文献１に開示された技術を用いて、ベクトルを秘匿化したままで内積計算を実行する方式が必要である。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Kana Shimizu, "Privacy preserving search for chemical compound libraries", JSBi-55, CBI/JSBi2011(2011).
【発明の概要】
【発明が解決しようとする課題】
【０００９】
非特許文献１では、準同型暗号を利用して秘匿化したままで内積計算することは可能である。しかし、準同型暗号の処理速度が遅いことにより、大量のデータを処理することは困難である。また、一方のベクトル(A)と、他方の大量のベクトル(B)との内積計算を考えた場合、ベクトル（B）がその内積計算結果を得ることができると、内積の性質から、ベクトル（B）はベクトル（A）を復元可能となり、秘匿性を保つことができない。従って、ベクトル（B）には内積値そのものは開示せず、内積値の暗号文を計算させる必要がある。【００１０】
しかし、ベクトル（B）が保有する大量のベクトル全てに対応した暗号文をベクトル（A）に送付する方式では、通信量の増大や、ベクトル（B）側のみならずベクトル（A）側の処理も膨大になるために非現実的である。従って、ベクトル（B）をある程度まで絞り込んだ上で、データの送受信や復号処理を行うことが必要となる。【００１１】
すなわち、ユーザが持つ数値データを秘匿しつつ、外部ストレージ等に保管された大量の数値データの中から類似したデータを検索して引き出す際、データの類似性を判定するために内積を用いることが多く、非特許文献１のような秘匿内積計算プロトコルが必要となる。しかし、大量のデータとの間で類似性を判定するためには、膨大な量の通信と、ユーザおよび外部装置側双方に膨大な計算処理が必要となるとともに効率が悪くなってしまうという問題があった。【００１２】
本発明は、上記に鑑みてなされたものであって、従来技術に比べて処理負荷をかけずに、秘匿性を維持しつつ、効率よくデータの類似性を判定することが可能な類似性秘匿検索システム、類似性秘匿検索方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、本発明にかかる類似性秘匿検索システムは、検索要求にしたがって秘匿化されている検索対象データに類似する被検索対象データを検索する類似性秘匿検索システムであって、ユーザ端末は、質的データまたは量的データを含む前記検索対象データの入力を受け付ける入力部と、前記検索対象データに含まれる前記質的データを、一致不一致の判定が可能な暗号化方式で暗号化する暗号化処理部と、前記検索対象データに含まれる前記量的データと前記被検索対象データに含まれる前記量的データとに基づいて、両者が一定以上の類似性を有するための条件を算出する類似性判定処理部と、暗号化された前記質的データと前記条件とを、前記被検索対象データを検索するための類似検索サーバに送信する通信部と、を備え、前記類似検索サーバは、前記ユーザ端末から前記質的データと前記条件とを受信し、または前記検索対象データに類似すると判定された前記被検索対象データを前記ユーザ端末に送信するサーバ通信部と、前記ユーザ端末から受信した質的データと、あらかじめ記憶部に記憶された前記被検索対象データに含まれる質的データとに基づいて両者が類似しているか否かを判定し、両者が類似していると判定した場合、類似していると判定した前記被検索対象データの中から前記条件を満たす量的データを含む被検索対象データを前記検索対象データに類似するデータとして出力する類似性判定計算処理部と、を備えることを特徴とする類似性秘匿検索システムとして構成される。【００１４】
また、本発明は、上記類似性秘匿検索システムで行われる類似性秘匿検索方法としても把握される。
【発明の効果】
【００１５】
本発明によれば、従来技術に比べて処理負荷をかけずに、秘匿性を維持しつつ、効率よくデータの類似性を判定することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係る類似性秘匿検索方式の構成例を示す図である。
【図２】第一実施形態に係るデータ保管・類似検索サーバの構成例を示す図である。
【図３】第一実施形態に係るユーザ端末の構成例を示す図である。
【図４】第一実施形態に係るデータの分類を表す表である。
【図５】第一実施形態に係る各ユーザの処理とデータ保管・類似検索サーバの処理を示すフローチャートである。
【図６】第一実施形態に係るユーザの類似性判定に用いるデータ生成手順を示すフローチャートである。
【図７】第二実施形態に係るユーザのデータ暗号化とその送付、データ保管・類似検索サーバによるデータ保管の手順を示すフローチャートである。
【図８】第二実施形態に係るユーザのデータ暗号化と判定条件生成とその送付、データ保管・類似検索サーバによる類似データの絞込み手順を示すフローチャートである。
【発明を実施するための形態】
【００１７】
次に、本発明を実施するための形態（「実施形態」という）について、適宜図面を参照しながら詳細に説明する。なお、以下に示す実施形態において、同一の構成要素には原則として同一の符号を付け、繰り返しの説明は省略する。
【００１８】
《システム構成》
図１は、本発明にかかる類似性秘匿検索システム、および類似性秘匿検索方法を適用した類似性秘匿検索システム１０００の構成例を示す図である。図１に示すように、類似性秘匿検索システム１０００は、複数のユーザ端末３００〜５００と、類似検索サーバ２００とがネットワーク１００を介して互いに接続された構成となっている。例えば、あるサービス提供形態では、類似検索サーバ２００はクラウド事業者に設置され、一般的なコンピュータであるサーバ装置から構成される。また、クラウド事業者のサービスを利用するユーザが操作するユーザ端末３００は、ＰＣや携帯電話、スマートフォン等の一般的なコンピュータである情報処理装置から構成される。なお、図１では、本システムがユーザ端末３００〜５００の３台を含む構成として記載されているが、その台数は任意である。
【００１９】
《第一実施形態》
次に、図２〜図８を参照して、類似性秘匿検索システム１０００の第一実施形態を説明する。
【００２０】
（類似検索サーバ）
図２は、第一実施形態に係る類似検索サーバ２００の構成例を示す図である。図示するように、類似検索サーバ２００は、データを処理する制御部２１０と、データを記憶する記憶部２２０と、情報の入力を受け付ける入力部２０１と、情報を出力する出力部２０２と、外部装置とのデータの送受信を行う通信部２０３とを備える。制御部２１０は、例えば、ＣＰＵ（Central Processing Unit）等の演算装置から構成され、入力部２１０は、キーボード等の入力装置から構成され、出力部２０２は、ＬＣＤ（Liquid Crystal Display）等の表示装置から構成され、通信部２０３は、ＮＩＣ（Network Interface Controller）等の通信装置から構成される。  制御部２１０は、全体処理部２１１と、類似性判定計算処理部２１２と、を備える。
【００２１】
全体処理部２１１は、類似検索サーバ２００における処理を統括制御したり、入力部２０１を介して受け付けた情報を記憶部２２０に格納したり、ユーザ端末３００〜５００との間で行われる情報の送受信を制御する。また、全体処理部２１１は、データを出力部２０２に表示する処理を行ったり、記憶部２２０に格納されているデータを読み込み、通信部２０３を介して、ユーザ端末３００〜５００に送信する。
【００２２】
類似性判定計算処理部２１２は、ユーザ端末３００〜５００から受信した検索用データと、あらかじめ類似検索サーバ２００内に記憶されている被検索対象データとの類似性を判定し、ある閾値以上となるデータを被検索対象データの中から抽出して出力する。具体的には、類似性判定計算処理部２１２は、検索用データに含まれる質的データを示す項目と、上記被検索対象データに含まれる質的データを示す項目との類似性を判定する。例えば、検索用データに含まれる質的データを示す項目と上記被検索対象データに含まれる質的データを示す項目が７０％以上一致している場合、両者は類似していると判定する。この類似性の判定は、質的データを示す項目を暗号化するための暗号化鍵により暗号化されたまま行われる。
【００２３】
さらに、類似性判定計算処理部２１２は、類似していると判定した被検索対象データを絞り込み、絞り込まれた被検索対象データに含まれる量的データを示す項目と、上記検索用データに含まれ量的データを暗号化するための暗号化鍵により暗号化された量的データを示す項目との内積値を計算し、絞り込まれた被検索対象データの中から、その内積値がある閾値以上となるデータを抽出する。例えば、検索用データに含まれる量的データを示す項目と上記絞り込まれた被検索対象データに含まれる量的データを示す項目との内積値が０．７以上となる場合、そのデータを絞り込まれた被検索対象データの中から抽出する。この類似性の判定は、量的データを暗号化するための暗号化鍵により暗号化されたまま行われる。抽出された上記データは、全体処理部２１１により、通信部２０３を介して検索結果データ３３０３として送信される。
【００２４】
記憶部２２０のデータ記憶部２３０には、類似性判定計算処理部２１２が被検索対象データの中から抽出した上記データ２３１が格納されている。一時情報記憶部２４０は、制御部２１０が実行する処理で一時的に必要となる情報が格納される。類似検索サーバ２００の各部が行う処理については、フローチャートを用いて後述する。
【００２５】
（ユーザ端末）
図３は、第一実施形態に係るユーザ端末３００の構成例を示す図である。なお、各ユーザ端末の構成は同様の構成であるため、以下では、ユーザ端末３００の構成例について示している。また、これらのユーザ端末は、暗号化を行わない場合には、暗号化処理部３１２と、復号化処理部３１３と、暗復号化鍵記憶部３４０、類似性判定処理部３１４、暗復号化鍵記憶部３４０等、暗復号化に必要な各部を備えなくてもよい。
【００２６】
図示するように、ユーザ端末３００は、データを処理する制御部３１０と、データを記憶する記憶部３２０と、情報の入力を受け付ける入力部３０１と、情報を出力する出力部３０２と、外部装置とのデータの送受信を行う通信部３０３とを備える。上記各部は、類似検索サーバ２００と同様の機能を備えた装置から構成される。
【００２７】
制御部３１０は、全体処理部３１１と、暗号化処理部３１２と、復号化処理部３１３と、類似性判定処理部３１４とを備える。
【００２８】
全体処理部３１１は、ユーザ端末３００における処理を統括制御したり、入力部３０１を介して、受け付けた情報を記憶部３２０に格納したり、類似検索サーバ２００との間で行われる情報の送受信を制御する。また、全体処理部３１１は、データを出力部３０３に表示する処理を行ったり、記憶部３２０に格納されているデータを読み込み、それぞれ、暗号化処理部３１２にデータの暗号化をさせたり、復号化処理部３１３に暗号化データの復号化をさせる。また、全体処理部３１１は、入力部３０１が受け付けた情報に基づいて、あらかじめユーザにより選定された検索対象データに類似するデータを被検索対象データの中から検索するための検索用データとして生成する。この検索用データが暗号化前データ３３０１となる。また、全体処理部３１１は、暗号化処理部３１２により暗号化前データ３３０１が暗号化された後の暗号化後データ３３０２を、通信部３０３を介して、類似検索サーバ２００に送信する。
【００２９】
暗号化処理部３１２は、上記暗号化前データ３３０１のうち、質的データを示す項目を暗号化するための暗号化鍵３４１により質的データを示す項目を暗号化し、暗号化後データ３３０２を生成する。また、暗号化処理部３１２は、類似性判定処理部３１４により求められた、量的データを示す項目をベクトル化した対象ベクトルと被検索対象データに含まれる量的データを示す項目をベクトル化した被対象ベクトルとの内積値が一定値以上であると判定するための閾値を満たす対象ベクトルを構成する基底ベクトルの組とを、量的データを示す項目を暗号化するための暗号化鍵３４１により暗号化する。この閾値を満たすことが、両者が一定以上の類似性を有するための条件となる。
【００３０】
復号化処理部３１３は、類似検索サーバ２００から受信した検索結果データ３３０３の質的データを示す項目および量的データを示す項目を、復号化鍵３４２により復号化し、復号化データ３３０４を生成する。
【００３１】
類似性判定処理部３１４は、上記閾値を満たす対象ベクトルを構成する基底ベクトルの組を求めるための処理である線形分解処理を実行し、基底ベクトルの組と、上記基底ベクトルの係数であるスカラー値の組とを出力する。
【００３２】
記憶部３２０は、データ記憶部３３０と、暗復号化鍵記憶部３４０と、一時情報記憶部３５０とを有している。データ記憶部３３０は、上記暗号化前データ３３０１と、上記暗号化後データ３３０２と、類似検索サーバ２００によって検索された暗号化前データ３３０１に類似するデータである検索結果データ３３０３と、検索結果データ３３０３が復号化鍵３４２により復号化された復号化データ３３０４とを記憶する。
【００３３】
また、暗復号化鍵記憶部３４０は、暗号化前データ３３０１を暗号化するための暗号化鍵と、検索結果データ３３０３を復号化するための復号化鍵３４２とを記憶する。暗号化鍵は、質的データを暗号化するための暗号化鍵と、量的データを暗号化するための暗号化鍵とを記憶してもよいし、同じ暗号化鍵を記憶してもよい。復号化鍵についても暗号化鍵と同様、質的データおよび量的データごとに記憶してもよいし、同じ復号化鍵を記憶してもよい。なお、一時情報記憶部３５０には、類似検索サーバ２００の場合と同様に、制御部３１０が実行する処理で一時的に必要となる情報が格納される。
【００３４】
以下では、ユーザ端末３００〜５００は、類似検索サーバ２００に対して、あらかじめ上記被検索対象データを送信し、類似検索サーバ２００は、データ記憶部２３０に、その被検索対象データをデータ２３１として記憶しているものとする。また、第一実施形態ではデータ２３１は、質的データは平文または暗号文として、量的データは平文として記録されている前提で説明する。
【００３５】
（データの分類）
図４は、ユーザ端末３００が被検索対象データの中から検索する検索対象データを分類した表である。本システムで取り扱う検索対象データには、質的データを示す項目と量的データを示す項目とが含まれるため、以下、両者の分類について説明する。質的データとは、例えば、性別、住所、職種等、分類や種類を区別するためだけのデータであって、数値で演算できないデータである。また、量的データとは、例えば、病院での検査結果の数値データ、枚数、金額等、数値の大小に意味があり、数値で演算可能なデータである。
【００３６】
本システムでは、図４に示すように、検索対象データに含まれる質的データを示す項目および量的データを示す項目のいずれの場合も、これらのデータが他者（例えば、治療を受ける患者や家族以外の者）に開示可能である場合には、暗号化せずにそのまま被検索対象データを絞り込むための検索用データとして利用する（Ｓ４０１、Ｓ４０２）。
【００３７】
一方、これらのデータが他者に開示可能でない場合、質的データを示す項目については、両者の一致不一致の判定が可能な暗号化方式を用いて暗号化し、検索用データとして利用する（Ｓ４０３）。このような暗号化方式としては、例えば、検索可能暗号技術（特許第５４１２４１４号）を用いることができる。量的データを示す項目については、秘匿したまま両者の類似性を判定することが可能な暗号化方式を用いて暗号化し、検索用データとして利用する（Ｓ４０４）。このような暗号化方式としては、例えば、従来から知られている様々な準同型暗号技術を用いることができる。  なお、検索用データに含まれる各項目が開示可能であるか否かは、例えば、患者やその家族の同意が得られない場合、研究のためにそれ自体秘匿性が高い場合等の開示基準により判定することができる。
【００３８】
（絞込み例）
図５は、ユーザ端末３００が、検索対象データにより、あらかじめ記憶されている被検索対象データの中から類似するデータを検索し、類似検索サーバ２００が絞込みを行う処理の処理手順を示すフローチャートである。以下では、検索対象データを用いて被検索対象データの中から類似するデータを絞り込んで検索する例として、ある患者の検査データを検索対象データとし、その患者に類似する患者の検査データを被検索対象データとしている。また、検査対象データおよび被検索対象データは、１または複数の質的データを示す項目（例えば、患者の氏名、住所、性別、病名等）と、１または複数の量的データを示す項目（例えば、患者の年齢、検査値等）とを含んでいる。
【００３９】
まず、ユーザ端末３００では、全体処理部３１１は、検索対象データの中から質的データや量的データを示す項目を抽出して上記検索用データを生成し、生成した検索用データを暗号化前データ３３０１として記憶する（Ｓ５０１）。このとき、抽出した項目を暗号化する必要がない場合にはＳ５０５に進む。
【００４０】
続いて、暗号化処理部３１２は、暗号化前データ３３０１のうち、上記暗号化鍵３４１により質的データを示す項目を暗号化し、暗号化後データ３３０２を生成する（Ｓ５０２）。このとき、検索用データに量的データを示す項目が含まれない場合にはＳ５０５に進む。
【００４１】
続いて、類似性判定処理部３１４は、上記線形分解処理を実行し、基底ベクトルの組と、基底ベクトルの係数であるスカラー値の組とを出力する（Ｓ５０３）。線形分解処理の具体的な処理については図６を用いて後述する。
【００４２】
暗号化処理部３１２は、上記線形分解処理を実行して出力された基底ベクトルの組およびスカラー値の組を、暗号化鍵３４１により暗号化する（Ｓ５０４）。
【００４３】
全体処理部３１１は、上記Ｓ５０１〜Ｓ５０４で生成されたデータを、類似検索サーバ２００に送信する（Ｓ５０５）。なお、上記Ｓ５０１〜Ｓ５０４の各ステップは、必ずしもすべて実行される必要はなく、検索用データが平文のみである場合、質的データを示す項目のみを含む場合、量的データを示す項目のみを含む場合には、上述したように取捨選択して実行することができる。また、Ｓ５０２、Ｓ５０３はどちらが先に処理されてもよい。
【００４４】
類似検索サーバ２００では、類似性判定計算処理部２１２が、ユーザ端末３００から受信した上記データをキーとして被検索対象データを絞り込む（Ｓ５０６）。例えば、ユーザ端末３００から受信した上記データが質的データを示す項目を含む場合には、その項目と、上記被検索対象データに含まれる質的データを示す項目とが７０％以上一致している場合には両者は類似していると判定し、被検索対象データを絞り込む。上記絞り込みにおいては、例えば、文字列データであれば完全一致や部分一致、あるいは類義語などにより絞込みを行う。この場合、あらかじめ類似検索サーバ２００に類義語を検索するための辞書を記憶しておき、その辞書と上記データとの一致度、およびその辞書と上記被検索対象データとの一致度が同程度の場合に、両者が類似すると判定してもよい。
【００４５】
類似性判定計算処理部２１２は、Ｓ５０６で絞り込んだ被検索対象データに含まれる量的データを示す項目と、上記データに含まれる量的データを示す項目との内積値を計算し、絞り込まれた被検索対象データの中から、その内積値がある閾値以上となるデータを抽出する（Ｓ５０７）。例えば、両者の内積値が閾値０．７以上となる全てのデータを、絞り込まれた被検索対象データの中から抽出する。
【００４６】
そして、全体処理部２１１は、上記抽出したデータを、通信部２０３を介して検索結果データ３３０３として送信する（Ｓ５０８）。
【００４７】
ユーザ端末３００の復号化処理部３１３は、類似検索サーバ２００から受信した検索結果データ３３０３の質的データを示す項目および量的データを示す項目を、復号化鍵３４２により復号化し、復号化データ３３０４を生成する（Ｓ５０９）。その後、ユーザ端末３００の全体制御部３１１は、生成された復号化データ３３０４を出力部３０２に出力し、ユーザによりその結果が評価される（Ｓ５１０）。
【００４８】
（線形分解処理）
図６は、図５に示したＳ５０３における線形分解処理の処理手順を示すフローチャートである。ユーザ端末３００では、秘匿したい量的データ（Ｓ４０４）としてベクトルＸを有している。ユーザ端末３００の類似性判定処理部３１４は、まず、自然数ｍとｔとを決定し（Ｓ６０１）、ベクトルＸを構成する、ｍ個の基底ベクトルによるt種類の線形分解をランダムに生成する（Ｓ６０２）。ここでいくつかのスカラーａｉｊは０でもよい。
【００４９】
続いて、類似性判定処理部３１４は、上記ベクトルＸとの内積値が満たすべき閾値から導かれる各ベクトルＸを構成する基底ベクトルＧｉｊとスカラー値、すなわち上記閾値を満たす内積値の条件を算出する（Ｓ６０３）。
【００５０】
類似性判定処理部３１４は、Ｓ６０２で生成したベクトルの集合｛Ｇｉｊ｝と、Ｓ６０３で導かれたスカラー値とを、図５に示したＳ５０３で出力するデータとするとともに、各スカラー値｛ａｉｊ｝は、他者に開示することなく秘密の状態で暗復号化鍵記憶部３４０に記憶する（Ｓ６０４）。Ｓ６０４の処理が終了すると、線形分解処理が終了する。
【００５１】
（第一実施形態のまとめ）
第一実施形態によれば、類似性判定するデータに含まれる質的データと、類似性判定されるデータに含まれる質的データとを暗号化したまま類似性判定し、所定の閾値以上のデータを抽出し、さらに、抽出されたデータに含まれる量的データと、類似性判定するデータに含まれる量的データとの内積値が所定の閾値以上のデータを絞り込み、その結果をクライアントに返す。したがって、ユーザ(複数でも可)が平文のままあるいは暗号化したデータを類似検索サーバに預託し、あるユーザ(ユーザ端末３００)が自身の持つデータのうち一部を開示、残りを秘匿したまま効率的に類似検索することができる。すなわち、クラウドなど第三者に預託されている大量データに対し、ユーザ自身の持つデータを秘匿しつつ、効率的に類似のデータを検索することが可能になる。
【００５２】
また、平文で開示可能な部分はそのまま従来の類似性判定を実施して絞込みを行い、また開示不可な部分は、質的データに対しては暗号化したまま一致不一致判定できる暗号方式を適用して絞込みを行い、また量的データに対しては類似性判定に必要な付加的データを送付することで絞込みを実施する。第一実施形態ではその付加的データとして、秘匿したいデータのランダムな線形分割を利用した方法を記述したが、他の手法を用いてもよい。
【００５３】
《第二実施形態》
次に、図７と図８を参照して、類似性秘匿検索システム１０００の第二実施形態を説明する。
【００５４】
第二実施形態では、第一実施形態に対し、ユーザ端末３００(ユーザ端末４００、５００を含んでもよい。以下同じ。)が、事前に預託するデータのうち秘匿したい量的データ部分の暗号化の手順と、類似検索対象のデータであるベクトルＸを暗号化して送付し、類似検索サーバ２００が類似検索処理を実行する手順を加えたものである。
【００５５】
ユーザ端末３００は、類似性判定処理部３１４が、類似検索サーバ２００に預託する複数の量的データに対し、直交変換Ｔをランダムに生成し（Ｓ７０１）、スカラーｒをランダムに生成し（Ｓ７０２）、さらにベクトルＷをランダムに生成する（Ｓ７０３）。これらの生成の順番は入れ替えてもよい。またＷは０ベクトルでもよい。
【００５６】
次に、類似性判定処理部３１４は、預託対象となる検索対象データの秘匿したい量的データ部分｛Ｙｉ｝をベクトルとみなし、そのベクトルに対してアフィン変換Ｙ’ｉ＝ｒＴＹｉ＋Ｗを施し、｛Ｙ’ｉ｝を他のデータをともに預託するため、これらのデータを類似検索サーバ２００に送信する（Ｓ７０５）。類似検索サーバ２００の類似性判定計算処理部２１２は、ユーザ端末３００から受信した上記データを記憶部２２０に記憶する（Ｓ７０６）。
【００５７】
そして、ユーザ端末３００が類似検索される被検索対象データの秘匿したい量的データを秘匿化してベクトルＸとする場合、第二実施形態では、まず、ユーザ端末３００の類似性判定処理部３１４は、スカラーsをランダムに生成し（Ｓ８０１）、直交変換およびアフィン変換を施してＸ’＝ｓＴＸを計算し（Ｓ８０２）、ベクトルＸとの内積値が満たすべき閾値から導かれる各Ｙ’ｉとスカラー値、すなわち上記閾値を満たす内積値の条件を算出する（Ｓ８０３）。ユーザ端末３００は上記Ｘ’とＳ８０３で求めた条件を類似検索サーバ２００に送信する（Ｓ８０４）。すなわち、ユーザ端末３００の類似性判定処理部３１４は、検索対象データに含まれる量的データをベクトルとみなして当該ベクトルに対して、Ｓ８０２のように直交変換およびアフィン変換し、これらの変換後のベクトルと、検索対象データと被検索対象データとが類似していると判定するために変換後のベクトルが満たすべき内積値を条件として算出する。
【００５８】
そして、後述するように、類似検索サーバ２００の類似性判定計算処理部２１２は、質的データに基づいて類似していると判定した被検索対象データのうち上記内積値を満たす量的データを含む被検索対象データを前記データとして出力する。
【００５９】
類似検索サーバ２００の類似性判定計算処理部２１２は、記録されている｛Ｙ’ｉ｝とＸ’との内積を計算し、Ｓ８０３で算出された条件に合致するものを抽出して被検索対象データを絞込み、そのリストを生成する（Ｓ８０５）。その後、類似性判定計算処理部２１２は、図５に示したＳ５０７以降の処理と同様の処理を実行し、抽出したデータを送信する（Ｓ８０６、図５のＳ５０７、Ｓ５０８）。
【００６０】
（第二実施形態のまとめ）
第二実施形態によれば、ユーザは量的データのうち秘匿したい部分についても事前の暗号化預託と、秘匿化したままでの絞込み手順を実施することで、絞込みを実施可能で、効率的な類似検索が可能となる。
【符号の説明】
【００６１】
１００：ネットワーク
２００：類似検索サーバ
２０１：入力部
２０２：出力部
２０３：通信部
２１０：制御部
２１１：全体処理部
２１２：類似性判定計算処理部
２２０：記憶部
２３０：データ記憶部
２３１：データ
２４０：一時情報記憶部
３００、４００、５００：ユーザ端末
３０１：入力部
３０２：出力部
３０３：通信部
３１０：制御部
３１１：全体処理部
３１２：暗号化処理部
３１３：復号化処理部
３１４：類似性判定処理部
３２０：記憶部
３３０：データ記憶部
３４０：暗復号化鍵記憶部
３４１：暗号化鍵
３４２：復号化鍵
３５０：一時情報記憶部。
【図１】
2016203555.tif 000003
【図２】
2016203555.tif 000004
【図３】
2016203555.tif 000005
【図４】
2016203555.tif 000006
【図５】
2016203555.tif 000007
【図６】
2016203555.tif 000008
【図７】
2016203555.tif 000009
【図８】
2016203555.tif 000010
【国際調査報告】
2016203555.tif 000011
2016203555.tif 000012
2016203555.tif 000013
2016203555.tif 000014