(57)【要約】高速かつ効率的なベクトル間の相関性判定処理を実行する。セキュアデータを要素とするｋ本のベクトルを有する第１の情報処理装置と、セキュアデータを要素とするｍ本のベクトルを有する第２の情報処理装置を有する情報処理システムであり、第１の情報処理装置は、第２の情報処理装置から、ｍ本のベクトルから選択されたベクトルＹに関するベクトル情報を暗号化データとして受信し、第１の情報処理装置のデータ処理部は、第１の情報処理装置の保持するｋ本のベクトルから選択された１つのベクトルＸと、ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する。
2017122437.tif 000002
【特許請求の範囲】
【請求項１】
ｋ本のベクトルから選択された１つのベクトルＸと、
ｍ本のベクトルから選択された１つのベクトルＹとの相関性を判定するデータ処理部を有し、
前記データ処理部は、
前記ベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理装置。
【請求項２】
前記ベクトルＸは、標本対応の要素の値が１または０の２値データからなるｎ要素のｋ本のベクトルから選択された１つのベクトルであり、
前記ベクトルＹは、標本対応の要素の値が１または０の２値データからなるｎ要素のｍ本のベクトルから選択された１つのベクトルであり、
前記データ処理部は、
前記ベクトルＸと前記ベクトルＹの要素間の内積算出処理として、
前記ベクトルＸの要素中、値が１となる要素対応の標本識別子、および、
前記ベクトルＹの要素中、値が１となる要素対応の標本識別子とから共通する標本識別子の数を抽出する処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数のベクトルＹ各々について、値が１となる共通する要素対応の標本識別子を連続的に抽出する処理を実行する請求項１に記載の情報処理装置。
【請求項３】
前記データ処理部は、
前記ベクトルＸ、または前記ベクトルＹのいずれか一方のベクトル情報を異なる情報処理装置から暗号化データとして受信してデータ処理を実行する請求項１に記載の情報処理装置。
【請求項４】
前記データ処理部は、
前記セキュア計算として、前記ベクトルＸ、または前記ベクトルＹの少なくともいずれか一方の要素対応の標本識別子の変換データを用いた計算処理を実行する請求項１に記載の情報処理装置。
【請求項５】
前記データ処理部は、
前記セキュア計算として、前記ベクトルＸ、または前記ベクトルＹの少なくともいずれか一方の要素対応の標本識別子のランダム置換データを用いた計算処理を実行する請求項１に記載の情報処理装置。
【請求項６】
前記データ処理部は、
前記ベクトルＸの要素中、値が１となる要素対応の標本識別子、および、
前記ベクトルＹの要素中、値が１となる要素対応の標本識別子とから共通する標本識別子の数を算出し、算出数を、前記ベクトルＸと前記ベクトルＹの要素間の内積値とし、該内積値の値が大きいほど、前記ベクトルＸと、前記ベクトルＹとの相関が高いと判定する請求項１に記載の情報処理装置。
【請求項７】
前記データ処理部は、
前記内積値を適用して、ジャッカード（Ｊａｃｃａｒｄ）係数を算出し、ジャッカード（Ｊａｃｃａｒｄ）係数の値が大きいほど、前記ベクトルＸと、前記ベクトルＹとの相関が高いと判定する請求項６に記載の情報処理装置。
【請求項８】
セキュアデータを要素とするｋ本のベクトルを有する第１の情報処理装置と、
セキュアデータを要素とするｍ本のベクトルを有する第２の情報処理装置を有する情報処理システムであり、
前記第１の情報処理装置は、
前記第２の情報処理装置から、前記ｍ本のベクトルから選択されたベクトルＹに関するベクトル情報を暗号化データとして受信し、
前記第１の情報処理装置のデータ処理部は、
前記第１の情報処理装置の保持するｋ本のベクトルから選択された１つのベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理システム。
【請求項９】
前記ベクトルＸは、標本対応の要素の値が１または０の２値データからなるｎ要素のｋ本のベクトルから選択された１つのベクトルであり、
前記ベクトルＹは、標本対応の要素の値が１または０の２値データからなるｎ要素のｍ本のベクトルから選択された１つのベクトルであり、
前記データ処理部は、
前記ベクトルＸと前記ベクトルＹの要素間の内積算出処理として、
前記ベクトルＸの要素中、値が１となる要素対応の標本識別子、および、
前記ベクトルＹの要素中、値が１となる要素対応の標本識別子とから共通する標本識別子の数を抽出する処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数のベクトルＹ各々について、値が１となる共通する要素対応の標本識別子を連続的に抽出する処理を実行する請求項８に記載の情報処理システム。
【請求項１０】
前記データ処理部は、
前記セキュア計算として、前記ベクトルＸ、または前記ベクトルＹの少なくともいずれか一方の要素対応の標本識別子の変換データを用いた計算処理を実行する請求項８に記載の情報処理システム。
【請求項１１】
前記データ処理部は、
前記セキュア計算として、前記ベクトルＸ、または前記ベクトルＹの少なくともいずれか一方の要素対応の標本識別子のランダム置換データを用いた計算処理を実行する請求項８に記載の情報処理システム。
【請求項１２】
前記データ処理部は、
前記ベクトルＸの要素中、値が１となる要素対応の標本識別子、および、
前記ベクトルＹの要素中、値が１となる要素対応の標本識別子とから共通する標本識別子の数を算出し、算出数を、前記ベクトルＸと前記ベクトルＹの要素間の内積値とし、該内積値の値が大きいほど、前記ベクトルＸと、前記ベクトルＹとの相関が高いと判定する請求項８に記載の情報処理システム。
【請求項１３】
前記データ処理部は、
前記内積値を適用して、ジャッカード（Ｊａｃｃａｒｄ）係数を算出し、ジャッカード（Ｊａｃｃａｒｄ）係数の値が大きいほど、前記ベクトルＸと、前記ベクトルＹとの相関が高いと判定する請求項１２に記載の情報処理システム。
【請求項１４】
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
ｋ本のベクトルから選択された１つのベクトルＸと、
ｍ本のベクトルから選択された１つのベクトルＹとの相関性を判定するデータ処理部を有し、
前記データ処理部は、
前記ベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法。
【請求項１５】
セキュアデータを要素とするｋ本のベクトルを有する第１の情報処理装置と、
セキュアデータを要素とするｍ本のベクトルを有する第２の情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
前記第１の情報処理装置は、
前記第２の情報処理装置から、前記ｍ本のベクトルから選択されたベクトルＹに関するベクトル情報を暗号化データとして受信し、
前記第１の情報処理装置のデータ処理部は、
前記第１の情報処理装置の保持するｋ本のベクトルから選択された１つのベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法。
【請求項１６】
情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
ｋ本のベクトルから選択された１つのベクトルＸと、
ｍ本のベクトルから選択された１つのベクトルＹとの相関性を判定するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
前記ベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行させ、
さらに、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理システム、および情報処理方法、並びにプログラムに関する。さらに詳細には、公開が制限された異なる複数のセキュアデータを相互に開示することなく、複数のセキュアデータ間の相関や類似性等、データの関連性を推定する情報処理装置、情報処理システム、および情報処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、インターネット等のネットワークを介した商品販売が盛んに行われており、多くのユーザが、スマホやＰＣを利用して様々な商品を購入している。
一方、ネット販売業者は、どのようなユーザがどのような商品を購入したかの商品購入履歴データを集積している。
ネット販売業者は、この集積データに基づいて、特定ユーザに特定商品の推薦メールや広告を提供して、商品の購入促進を行うといった処理が可能となる。【０００３】
ネット販売業者は、例えば商品を購入したユーザの識別情報であるユーザＩＤと、そのユーザが購入した商品の識別情報（商品ＩＤ）を対応付けたデータを保持することになる。さらに、ユーザの性別、年齢、居住地等のユーザプロファイルデータも取得して分析する処理が行われる場合もある。
しかし、このようなユーザの商品購入履歴データは、各ユーザの個人情報であり、公開することは好ましくない。すなわち、公開が制限されたセキュアデータであり、一般的に各ユーザの承諾なしに他者に提供することは許容されないデータである。【０００４】
しかし、多くの異なるネット販売業者は、それぞれ個別に集積した異なるセキュアデータを保持しており、これらのデータを、例えばユーザＩＤや商品ＩＤを連携させて、異なる企業間で活用しようとする動きも出てきている。
すなわち、各企業が個別に集積した顧客プロファイルや購買履歴などを統合して解析し、解析データをユーザターゲット広告等の商品販売促進に利用する動きである。【０００５】
各企業が保有する個別のデータベースを統合して解析を行うことで、より効果的な商品販売や広告提供が可能となる。
さらに、ユーザの商品購入履歴情報のみならず、様々な広告の閲覧履歴情報、番組視聴履歴情報等も統合して、各ユーザ向けの最適な広告や情報を提供しようとする試みも行われている。【０００６】
しかし、上述したように、多くの場合、各企業が保持するデータは、ユーザの商品購入履歴情報等、公開が制限されるセキュアデータであり、各企業が保持するセキュアデータを相互に提供して解析することは許容し難いという問題がある。【０００７】
近年、この問題を解決する技術として、セキュアデータを相互に開示することなく、セキュアデータ間の相関や類似性等、データ間の関連性を解析する技術について、様々な検討がなされている。
例えば、セキュアデータの暗号化データや、変換データ等の秘匿化データを利用して、セキュアデータ間の関連性を解析する手法である。
なお、セキュアデータの暗号化データや、変換データ等、元データの秘匿化データを利用して行われる計算処理を、秘密計算、あるいはセキュア計算と呼ぶ。【０００８】
例えば、特許文献１（特表２００８−５２１０２５号公報）は、２つのデータ間の類似性の指標を、セキュア計算によって求める構成を開示している。具体的には、２つのデータの内積をセキュア計算で求めて、２つのデータ間のハミング距離を類似性指標値として算出する構成を開示している。【０００９】
本文献では、セキュア計算による具体的な内積算出方法として、入力データに対して準同型暗号を適用して暗号化し、暗号化したデータについて準同型加算や乗算を行う方法を開示している。
しかし、公開鍵暗号である準同型暗号は、データ暗号化に時間がかかるため、莫大な量のデータを扱う場合、計算量が大きくなり、計算装置の負荷や処理時間が増大してしまうという問題がある。また、暗号文自体のサイズも大きいため通信量も大きくなるという問題がある。【００１０】
さらに、特許文献２（特開２０１４−２０６６９６号公報）も、複数の組織が、各組織内で秘匿すべき異なる２つのセキュアデータを保持している場合、これら２つのセキュアデータの内積を、少ない計算量で算出する構成を開示している。
この特許文献２の開示構成は、データ秘匿化処理や、秘匿化データを適用した内積計算の時間の短縮を実現している。
しかし、この開示手法は、セキュア計算を実行する独立な計算機を３つ必要とする構成であり、計算機リソースの大型化や、コスト高が避けられないという問題点がある。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特表２００８−５２１０２５号公報
【特許文献２】特開２０１４−２０６６９６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本開示は、例えば上述の問題点に鑑みてなされたものであり、開示が許容されない複数の異なるセキュアデータを相互に開示することなく、セキュアデータ間の相関等の関係性を算出可能とした情報処理装置、情報処理システム、および情報処理方法、並びにプログラムを提供することを目的とする。【００１３】
さらに、本開示の一実施態様では、異なる複数のセキュアデータを開示することなく、セキュアデータ間の内積を算出可能とした情報処理装置、情報処理システム、および情報処理方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本開示の第１の側面は、
ｋ本のベクトルから選択された１つのベクトルＸと、
ｍ本のベクトルから選択された１つのベクトルＹとの相関性を判定するデータ処理部を有し、
前記データ処理部は、
前記ベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理装置にある。【００１５】
さらに、本開示の第２の側面は、
セキュアデータを要素とするｋ本のベクトルを有する第１の情報処理装置と、
セキュアデータを要素とするｍ本のベクトルを有する第２の情報処理装置を有する情報処理システムであり、
前記第１の情報処理装置は、
前記第２の情報処理装置から、前記ｍ本のベクトルから選択されたベクトルＹに関するベクトル情報を暗号化データとして受信し、
前記第１の情報処理装置のデータ処理部は、
前記第１の情報処理装置の保持するｋ本のベクトルから選択された１つのベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理システムにある。【００１６】
さらに、本開示の第３の側面は、
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
ｋ本のベクトルから選択された１つのベクトルＸと、
ｍ本のベクトルから選択された１つのベクトルＹとの相関性を判定するデータ処理部を有し、
前記データ処理部は、
前記ベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法にある。【００１７】
さらに、本開示の第４の側面は、
セキュアデータを要素とするｋ本のベクトルを有する第１の情報処理装置と、
セキュアデータを要素とするｍ本のベクトルを有する第２の情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
前記第１の情報処理装置は、
前記第２の情報処理装置から、前記ｍ本のベクトルから選択されたベクトルＹに関するベクトル情報を暗号化データとして受信し、
前記第１の情報処理装置のデータ処理部は、
前記第１の情報処理装置の保持するｋ本のベクトルから選択された１つのベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法にある。【００１８】
さらに、本開示の第５の側面は、
情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
ｋ本のベクトルから選択された１つのベクトルＸと、
ｍ本のベクトルから選択された１つのベクトルＹとの相関性を判定するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
前記ベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行させ、
さらに、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行させるプログラムにある。【００１９】
なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して例えば記憶媒体によって提供されるプログラムである。このようなプログラムを情報処理装置やコンピュータ・システム上のプログラム実行部で実行することでプログラムに応じた処理が実現される。【００２０】
本開示のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００２１】
本開示の一実施例の構成によれば、高速かつ効率的なベクトル間の相関性判定処理が実現される。
具体的には、セキュアデータを要素とするｋ本のベクトルを有する第１の情報処理装置と、セキュアデータを要素とするｍ本のベクトルを有する第２の情報処理装置を有する情報処理システムであり、第１の情報処理装置は、第２の情報処理装置から、ｍ本のベクトルから選択されたベクトルＹに関するベクトル情報を暗号化データとして受信し、第１の情報処理装置のデータ処理部は、第１の情報処理装置の保持するｋ本のベクトルから選択された１つのベクトルＸと、ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する。
本構成により、高速かつ効率的なベクトル間の相関性判定処理が実現される。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
【図面の簡単な説明】
【００２２】
【図１】企業が集積し、データベースとして記憶部に保持するユーザ対応の商品購入履歴データの例を示す図である。
【図２】企業１と、企業２がそれぞれ個別に集積したユーザ対応商品購入履歴データを示す図である。
【図３】企業３と、企業４がそれぞれ個別に集積したユーザ対応データを示す図である。
【図４】企業が集積し、データベースとして記憶部に保持するユーザ対応の商品購入履歴データの例を示す図である。
【図５】セキュア計算によるセキュアデータの加算結果算出処理例について説明する図である。
【図６】セキュア計算によるセキュアデータの乗算結果算出処理例について説明する図である。
【図７】本開示の処理を実行する１つの情報処理システム構成例を示す図である。
【図８】２つの情報処理装置Ａ，１１０、情報処理装置Ｂ，１２０の各々が記憶部に保持するセキュアデータの一例を示す図である。
【図９】２つの情報処理装置Ａ，１１０と、情報処理装置Ｂ，１２０の保有するセキュアデータ間の関連性を示す１つの指標値であるジャッカード（Ｊａｃｃａｒｄ）係数の対応表を示す図である。
【図１０】情報処理装置Ａ，１１０、情報処理装置Ｂ，１２０の保持するｎ人のユーザ対応のデータを示す図である。
【図１１】セキュアデータを保持する情報処理装置Ａ，１１０と、情報処理装置Ｂ，１２０の構成の一部を示す図である。
【図１２】セキュアデータ間の関係性算出処理のシーケンスを説明するフローチャートを示す図である。
【図１３】図１２に示すフローに従って実行する処理における各情報処理装置Ａ，Ｂの入力値と、出力値を示す図である。
【図１４】一括型ＰＳＩ−ＣＡによるセキュアデータ間の関係性推定処理の概要について説明する図である。
【図１５】セキュアデータ間の関係性算出処理のシーケンスを説明するフローチャートを示す図である。
【図１６】セキュアデータ間の関係性算出処理のシーケンスを説明するフローチャートを示す図である。
【図１７】図１５、図１６に示すフローに従って実行する処理における各情報処理装置Ａ，Ｂの入力値と、出力値を示す図である。
【図１８】情報処理装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照しながら本開示に係る情報処理装置、情報処理システム、および情報処理方法、並びにプログラムの詳細について説明する。説明は、以下の項目に従って行う。
１．本開示の処理が適用可能なシステムの一構成例について
２．ジャッカード（Ｊａｃｃａｒｄ）係数について
３．セキュア計算の概要について
４．計算量を削減したセキュア計算によるセキュアデータ間の関係性を推定する処理について
４−ａ．本開示の処理を行なう前提となる設定例について
４−ｂ．計算の高速化を実現する処理の概要について
４−ｃ．計算量を削減したセキュア計算によるセキュアデータ間の関係性算出処理例について
５．ＰＳＩ−ＣＡ（Ｐｒｉｖａｔｅ  ｓｅｔ  ｉｎｔｅｒｓｅｃｔｉｏｎ  ｃａｒｄｉｎａｌｉｔｙ）プロトコルを適用した一括型計算処理について
５−１．（説明１）情報処理装置Ａ，１１０の実行する処理（ステップＳ２１１〜Ｓ２１３）
５−２．（説明２）情報処理装置Ｂ，１２０の実行する処理（ステップＳ２２１〜Ｓ２２５）
５−３．（説明３）情報処理装置Ａ，１１０の実行する処理（ステップＳ２１４〜Ｓ２１６）
５−４．（説明４）図１６に示す情報処理装置Ｂ，１２０の実行する処理（ステップＳ２２６）
６．情報処理装置のハードウェア構成例について
７．本開示の構成のまとめ
【００２４】
［１．本開示の処理が適用可能なシステムの一構成例について］
まず、本開示の処理が適用可能なシステムの一構成例について説明する。
前述したように、近年、インターネット等のネットワークを介した商品販売が盛んに行われており、多くのユーザが、スマホやＰＣを利用して様々な商品を購入している。
【００２５】
一方、ネット販売業者等の企業は、どのようなユーザがどのような商品を購入したかの商品購入履歴データを集積し、データベースとして記憶部に保持している。
企業は、この集積データに基づいて、特定ユーザに特定商品の推薦メールや広告を提供して、商品の購入促進を行うといった処理が可能となる。
【００２６】
図１は、企業が集積し、データベースとして記憶部に保持するユーザ対応の商品購入履歴データの例を示す図である。
図１に示すデータは、ユーザＩＤに対応する標本識別子（ｔ）（＝ユーザ１〜ｎ）各々が、ｋ個の商品１〜ｋ（ｉｔｅｍ：Ｉ＿１〜Ｉ＿ｋ）中の、どの商品を購入したかを示すデータである。
なお、本明細書では、下付き文字をアンダーバー（  ＿  ）の後に示す。
例えば、Ｉ＿１はＩ１を示し、Ｉ＿ｋはＩｋを意味する。
【００２７】
図１に示すデータでは、
商品購入履歴ありの場合は、［１］、
商品購入履歴なしの場合は、［０］
これらの商品購入履歴識別情報を設定している。
【００２８】
このように、ネット販売業者等の企業は、ユーザＩＤと、そのユーザが購入した商品の識別情報（商品ＩＤ）を対応付けたデータを保持する。
なお、図１に示すデータは一例であり、さらに、ユーザの性別、年齢、居住地等のユーザプロファイルデータ等の取得が行われる場合もある。
【００２９】
図１に示すようなユーザの商品購入履歴データは、各ユーザの個人情報であり、公開することは好ましくない。すなわち、開示の制限されたセキュアデータであり、一般的に各ユーザの承諾なしに他者に提供することは許容されないデータである。
【００３０】
しかし、多くの異なるネット販売業者は、それぞれ個別に集積した異なるセキュアデータを保持しており、これらのデータを、例えばユーザＩＤや商品ＩＤを連携させて、異なる企業間で活用しようとする動きも出てきている。
すなわち、各企業が個別に集積した顧客プロファイルや購買履歴などを統合して解析し、さらなる販売促進に利用しようとする動きである。
【００３１】
図２には、２つの異なる企業、例えば２つの異なるネット販売業者である企業１と、企業２がそれぞれ個別に集積したユーザ対応商品購入履歴データを示している。
【００３２】
図２（１）に示すデータは、企業１が集積したユーザ対応商品購入履歴データであり、ユーザ１〜ｎ各々が、企業１の提供する商品１，１〜１，ｋ（ｉｔｅｍ：Ｉ＿（１，１）〜Ｉ＿（１，ｋ））中の、どの商品を購入したかを示すデータである。
図２（２）に示すデータは、企業２が集積したユーザ対応商品購入履歴データであり、ユーザ１〜ｎ各々が、企業２の提供する商品２，１〜２，ｍ（ｉｔｅｍ：Ｉ＿（２，１）〜Ｉ＿（２，ｍ））中の、どの商品を購入したかを示すデータである。
【００３３】
図２に示すデータは、図１と同様、
商品購入履歴ありの場合は、［１］、
商品購入履歴なしの場合は、［０］
これらの商品購入履歴識別情報を設定している。
【００３４】
図２（１），（２）とも、同一のユーザ数：１〜ｎに対する商品購入履歴情報を示している。
図２（１）に示す商品１，１〜１，ｋ（ｉｔｅｍ：Ｉ＿（１，１）〜Ｉ＿（１，ｋ））のＩ＿（ｘ，ｙ）に示すｘ（ｘ＝１）は、セキュアデータを保持する企業や情報処理装置の識別子であり、ｙ（ｙ＝１〜ｋ）は商品識別子である。
同様に、図２（２）に示す商品２，１〜２，ｍ（ｉｔｅｍ：Ｉ＿（２，１）〜Ｉ＿（２，ｍ））のＩ＿（ｘ，ｙ）に示すｘ（ｘ＝２）は、セキュアデータを保持する企業や情報処理装置の識別子であり、ｙ（ｙ＝１〜ｍ）は商品識別子である。
図２（１）に示す企業１は、ｎ人のユーザに対するｋ種類の商品の購入履歴情報を保持し、図２（２）に示す企業２は、ｎ人のユーザに対するｍ種類の商品の購入履歴情報を保持していることを示している。
【００３５】
図２には、２つの異なる企業、例えば２つの異なるネット販売業者である企業１と、企業２がそれぞれ個別に集積したユーザ対応商品購入履歴データを示しているが、これら各企業が保有する個別のデータベースを統合して解析を行うことで、より効果的な商品販売や広告提供が可能となる。
【００３６】
さらに、ユーザの商品購入履歴情報のみならず、様々な広告の閲覧履歴情報、番組視聴履歴情報等も統合して、各ユーザ向けの最適な広告や情報を提供しようとする試みも行われている。
図３は、放送局等、番組提供企業３と、ネット販売業者である企業４がそれぞれ個別に集積したデータを示している。
【００３７】
図３（１）に示すデータは、放送局等の企業３が集積したユーザ対応番組視聴履歴データであり、ユーザ１〜ｎ各々が、企業３の放送する番組３，１〜３，ｋ（ｉｔｅｍ：Ｉ＿（３，１）〜Ｉ＿（３，ｋ））中の、どの番組を視聴したかを示すデータである。
図３（２）に示すデータは、企業４が集積したユーザ対応商品購入履歴データであり、ユーザ１〜ｎ各々が、企業４の提供する商品４，１〜４，ｍ（ｉｔｅｍ：Ｉ＿（４，１）〜Ｉ＿（４，ｍ））中の、どの商品を購入したかを示すデータである。
【００３８】
図３に示すデータは、
番組視聴履歴あり、または商品購入履歴ありの場合は、［１］、
番組視聴履歴なし、または商品購入履歴なしの場合は、［０］
これらの履歴識別情報を設定している。
【００３９】
図３（１），（２）とも、同一のユーザ数：１〜ｎに対する番組視聴履歴、または商品購入履歴情報を示している。
図３（１）に示す番組３，１〜３，ｋ（ｉｔｅｍ：Ｉ＿（３，１）〜Ｉ＿（３，ｋ））のＩ＿（ｘ，ｙ）に示すｘ（ｘ＝３）は、セキュアデータを保持する企業や情報処理装置の識別子であり、ｙ（ｙ＝１〜ｋ）は番組識別子である。
同様に、図３（２）に示す商品４，１〜４，ｍ（ｉｔｅｍ：Ｉ＿（４，１）〜Ｉ＿（４，ｍ））のＩ＿（ｘ，ｙ）に示すｘ（ｘ＝４）は、セキュアデータを保持する企業や情報処理装置の識別子であり、ｙ（ｙ＝１〜ｍ）は商品識別子である。
図３（１）に示す企業３は、ｎ人のユーザに対するｋ種類の番組の視聴履歴情報を保持し、図３（２）に示す企業４は、ｎ人のユーザに対するｍ種類の商品の購入履歴情報を保持していることを示している。
【００４０】
このように、商品販売業者同士の商品購入履歴情報のみならず、様々な広告の閲覧履歴情報、番組視聴履歴情報等も統合することで、各ユーザ向けの最適な広告や情報を提供することが可能となる。
【００４１】
しかし、多くの場合、各企業が保持するデータは、ユーザの商品購入履歴情報等、公開が制限されるセキュアデータであり、各企業が保持するセキュアデータを相互に提供して解析することは許容し難いという問題がある。
【００４２】
［２．ジャッカード（Ｊａｃｃａｒｄ）係数について］
例えば、ある特定の商品を買う傾向が高いと推定されるユーザが特定できれば、そのユーザに対して、その商品の商品情報や広告を提供することで、より高い広告効果や、販売促進効果を得ることができる。
【００４３】
具体的には、例えば、
（１）ある商品Ａを購入したユーザが、別の商品Ｂを購入する傾向が高いか低いか、
あるいは、
（２）ある番組Ｃを視聴したユーザが、商品Ｄを購する傾向が高いか低いか。
このような分析データは、特定の商品を購入する意欲の高いユーザを選別するための有効なデータとなる。
【００４４】
このような推定処理に適用する指標値として、ジャッカード（Ｊａｃｃａｒｄ）係数が知られている。
以下、ジャッカード（Ｊａｃｃａｒｄ）係数の算出処理例について説明する。
【００４５】
図４は、図１と同様のデータであり、例えばネット販売業者等の企業が、ネット販売実績データに基づいて集積したユーザ対応の商品購入履歴データの例である。
図４に示すデータは、ｎ人のユーザ（ユーザ１〜ｎ）各々が、ｋ個の商品１〜ｋ（ｉｔｅｍ：Ｉ＿１〜Ｉ＿ｋ）中の、どの商品を購入したかを示すデータである。
【００４６】
図４に示すデータにおいて、
商品購入履歴ありの場合は、［１］、
商品購入履歴なしの場合は、［０］、
これらの商品購入履歴識別情報が設定されている。
【００４７】
ジャッカード（Ｊａｃｃａｒｄ）係数は、例えばある商品を購入したユーザが、異なる商品に対する購入意欲が高いか否か等を判定する際等に利用可能なデータである。
また、例えばある番組を視聴したユーザが、ある特定の商品に対する購入意欲が高いか否か等を判定する際等にも利用可能である。
【００４８】
具体的には、例えば、図４に示すデータ中の商品Ｉ＿ｐを購入したユーザが、図４に示すデータ中の異なる商品Ｉ＿ｑを購入する可能性を推定する処理等に利用される。
図４に示すデータにおいて、図４に示すデータ中の商品Ｉ＿ｐを購入したユーザを表すベクトルと、図４に示すデータ中の商品Ｉ＿ｑを購入したユーザを表すベクトルを、それぞれ生成し、これらのベクトル間の類似度（相関量）を算出する。
【００４９】
これらのベクトル間の類似度（相関量）が高ければ、商品Ｉ＿ｐを購入したユーザが、異なる商品Ｉ＿ｑを購入する可能性が高いと推定することができる。
一方、これらのベクトル間の類似度（相関量）が低い場合は、商品Ｉ＿ｐを購入したユーザが、異なる商品Ｉ＿ｑを購入する可能性が低いと推定することができる。
【００５０】
具体的なジャッカード（Ｊａｃｃａｒｄ）係数の算出処理例について説明する。
例えば、図４に示すデータ中の商品Ｉ＿１を購入したユーザを表すユーザ数ｎに相当するｎ次元のベクトル（１，１，１，０，１，・・・，１）と、図４に示すデータ中の商品Ｉ＿２を購入したユーザを表すユーザ数ｎに相当するｎ次元のベクトル（１，０，０，１，０，・・・，１）を、それぞれ生成し、これらのベクトル間の類似度（相関量）を算出する。
これらのベクトル間の類似度（相関量）が高ければ、商品Ｉ＿１を購入したユーザが、異なる商品Ｉ＿２を購入する可能性が高いと推定することができる。
一方、これらのベクトル間の類似度（相関量）が低い場合は、商品Ｉ＿１を購入したユーザが、異なる商品Ｉ＿２を購入する可能性が低いと推定することができる。
【００５１】
商品Ｉ＿ｉを購入したユーザを表すユーザ数ｎに相当するｎ次元のベクトルを商品Ｉ＿ｉの購入ベクトルと呼ぶ。
商品Ｉ＿ｉの購入ベクトルは、以下の（式１）として示すことができる。
【００５２】
【数１】
2017122437.tif 000003
【００５３】
上記（式１）において、
行列：ｘＴ＿ｉは、行列：ｘ＿ｉの転置行列を示している。
行列：ｘＴ＿ｉの要素として示すｘｉ＿ｔは、ユーザＩＤ＝ｔのユーザによるアイテム（商品）Ｉ＿ｉの購入の有無を示す。
【００５４】
このとき、アイテム（商品）Ｉ＿ｉと、アイテム（商品）Ｉ＿ｊとの間のアイテム間相関量を示すジャッカード（Ｊａｃｃａｒｄ）係数Ｊ＿ｉｊは、以下の（式２）のように定義される。
【００５５】
【数２】
2017122437.tif 000004
【００５６】
なお、上記（式２）中のｘ＿ｉ、ｘＴ＿ｉは、以下の（式３ａ）、（式３ｂ）に示す行列（ｎ次元ベクトル）である。
【００５７】
【数３】
2017122437.tif 000005
【００５８】
上記（式２）で定義されるジャッカード（Ｊａｃｃａｒｄ）係数は、異なるアイテム間の相関量や類似度を示し、アイテム間協調フィルタリングで用いる相関量の一つである。
【００５９】
上記（式２）で定義されるジャッカード（Ｊａｃｃａｒｄ）係数：Ｊ＿ｉｊの値が大きければ、アイテム（商品）Ｉ＿ｉと、アイテム（商品）Ｉ＿ｊとの間のアイテム間相関量が大きいと判断される。すなわち、例えば、アイテム（商品）Ｉ＿ｉを購入したユーザは、アイテム（商品）Ｉ＿ｊを購入する可能性が高いと推定することができる。
【００６０】
一方、上記（式２）で定義されるジャッカード（Ｊａｃｃａｒｄ）係数：Ｊ＿ｉｊの値が小さければ、アイテム（商品）Ｉ＿ｉと、アイテム（商品）Ｉ＿ｊとの間のアイテム間相関量が小さいと判断される。すなわち、例えば、アイテム（商品）Ｉ＿ｉを購入したユーザが、アイテム（商品）Ｉ＿ｊを購入する可能性が高いとは言えないと推定することができる。
【００６１】
このように、ジャッカード（Ｊａｃｃａｒｄ）係数は、ある１つの商品等、１つのアイテムに関する情報（ユーザ対応商品購入情報等）と、別のアイテムの情報（ユーザ対応商品購入情報等）との相関を判定するための指標値として利用される。
【００６２】
なお、上記（式２）で示されるジャッカード（Ｊａｃｃａｒｄ）係数は、（式２ａ）で示すように、アイテム（商品）Ｉ＿ｉの購入有無データ（ｘｉ＿ｔ）と、アイテム（商品）Ｉ＿ｊの購入有無データ（ｘｊ＿ｔ）との内積、すなわち購入ベクトル間の内積に依存する値となる。
すなわち、アイテム（商品）Ｉ＿ｉの購入有無データ（ｘｉ＿ｔ）と、アイテム（商品）Ｉ＿ｊの購入有無データ（ｘｊ＿ｔ）との内積（購入ベクトル間の内積）を算出し、この内積を各アイテム間の相関（類似性）指標値として利用することも可能である。
【００６３】
［３．セキュア計算の概要について］
上述したジャッカード（Ｊａｃｃａｒｄ）係数算出処理例は、相関関係の算出対象となる２つの商品、各々のユーザ購入有無情報が得られている場合の係数算出処理例である。
すなわち、図４に示すアイテム（商品）Ｉ＿ｉの購入ベクトルと、アイテム（商品）Ｉ＿ｊの購入ベクトルの２つのベクトルが得られている場合には、上記（式２）を用いてジャッカード（Ｊａｃｃａｒｄ）係数を算出することができる。
【００６４】
例えば、図４に示す商品購入履歴情報を取得している１つの企業が、図４に示す商品購入履歴情報を用いてジャッカード（Ｊａｃｃａｒｄ）係数を算出することで、複数の商品間の購入有無の相関関係を得ることができる。
しかし、このような限られたデータを利用して得られる情報には限界がある。
【００６５】
多くの企業は、それぞれ個別に集積した異なる商品購入履歴情報や、番組視聴履歴情報等を保持している。
これら、各企業が保有する個別のデータベースを統合して解析を行うことで、より効果的な商品販売や広告提供が可能となる。
【００６６】
しかし、前述したように、多くの場合、各企業が保持する商品購入履歴情報等は、公開が制限される個人データや機微データ等のセキュアデータであり、各企業が保持するセキュアデータを相互に提供して解析することは許容し難いという問題がある。
また、企業にとっては、これらのデータは経済的価値がある資産であり、他社に渡したくないという事情がある。
その一方で、異なる企業間でデータを組み合わせて解析を行い、さらなる商品販売促進のための広告提供などを行いたいといったニーズがある。
【００６７】
しかし、公開が制限される個人データや機微データ等のセキュアデータを相互に提供することは許容されない。
例えば、先に図２を参照して説明したように、２つの異なる企業１，２が、個別の商品購入履歴情報を保持している場合、企業１は、企業２のデータ、すなわち、図２（２）に示すデータを取得することができない。同様に、企業２は、企業１のデータ、すなわち、図２（２）に示すデータを取得することができない。
【００６８】
しかしながら、例えば、図２（２）に示すデータを保持している企業２が、企業１の商品１，１（Ｉ＿（１，１））を購入したユーザが、企業２の商品２，１（Ｉ＿（２，１））を購入しやすい傾向にあるか否かの推定情報を得たいという場合も少なくない。
【００６９】
以下では、２つの企業が個別に保有するセキュアデータ、すなわち、商品購入履歴情報や、番組視聴履歴情報等、開示が許容されないセキュアデータを保持している場合に、これらのセキュアデータを相互に開示することなく、各セキュアデータ間の相関や類似性を示す指標値を算出する構成について説明する。
【００７０】
なお、、各セキュアデータ間の相関や類似性を示す指標値としては、例えば前述したジャッカード（Ｊａｃｃａｒｄ）係数や、購入ベクトル間の内積等がある。
【００７１】
各企業が保持する商品購入履歴情報等は、公開が制限される個人データや機微データ等のセキュアデータである。
このような、公開の制限されたセキュアデータを開示することなくセキュアデータ間の演算結果、例えば、購入ベクトル間の内積等を算出するための処理としてセキュア計算が知られている。
【００７２】
セキュア計算とは、公開が許容されないセキュアデータを直接利用することなく、セキュアデータに基づいて生成される変換データを用いた演算により、セキュアデータの演算結果、例えばセキュアデータの加算結果、乗算結果等、様々なセキュアデータの演算結果を取得可能とした計算処理である。
このように、セキュアデータの変換データを用いた計算処理をセキュア計算と呼ぶ。
【００７３】
セキュア計算の計算処理には、セキュアデータ自体は利用されず、セキュアデータの変換データが利用される。変換データとは、例えばセキュアデータの暗号化データや、分割データ等、元のセキュアデータとは異なる様々なタイプのデータである。
【００７４】
セキュア計算の一例として、例えば非特許文献１（Ｏ．Ｇｏｌｄｒｅｉｃｈ，Ｓ．Ｍｉｃａｌｉ  ａｎｄ  Ａ．Ｗｉｇｄｅｒｓｏｎ．Ｈｏｗ  ｔｏ  ｐｌａｙ  ａｎｙ  ｍｅｎｔａｌ  ｇａｍｅ．ＳＴＯＣ'８７，ｐｐ．２１８−２２９，１９８７．）に記載のＧＭＷ方式がある。
【００７５】
ＧＭＷ方式に従ったセキュア計算処理の概要について、図５、図６を参照して説明する。
図５は、セキュアデータの加算値を、ＧＭＷ方式に従ったセキュア計算によって算出する処理例を示す図である。
装置Ａ，２１０は、セキュアデータＸ（例えば説明変数（ｘ））を保持している。
また、装置Ｂ，２２０は、セキュアデータＹ（例えば結果変数（ｙ））を保持している。
これらのセキュアデータＸ，Ｙは、公開することが好ましくない個人データ等のセキュアデータである。
【００７６】
装置Ａ，２１０は、セキュアデータＸを、以下のように、２つのデータに分割する。なお、Ｘを、予め規定した数値ｍの剰余データ：ｍｏｄ  ｍとして設定する。
Ｘ＝（（ｘ＿１）＋（ｘ＿２））ｍｏｄ＿ｍ
上記式において、（ｘ＿１）は、０〜（ｍ−１）から一様にランダムに選択し、
（ｘ＿２）は、
（ｘ＿２）＝（Ｘ−（ｘ＿１））ｍｏｄ  ｍ
上記式を満たすように定める。
このように、２つの分割データ（ｘ＿１），（ｘ＿２）を生成する。
【００７７】
なお、ここで分割対象となるデータは、例えば、図１に示すセキュアデータである、ある標本（ユーザ）の性別の値（１）であり、ｍ＝１００としたとき、値（１）を（３０）と（７１）に分割する、あるいは（４５）と（５６）等、様々な異なる態様の分割データを設定することができる。
性別の値（０）の場合は、分割値は（４０）と（６０）に分割する等の処理が可能である。
年齢（５４）は（１０）と（４４）に分割する等の処理が可能であり、その他の様々な分割処理が可能である。
【００７８】
重要なことは、単独の変換データ（ここでは１つの分割データ）から元のセキュアデータ（説明変数）が特定できないことが重要である。
例えば、分割データはセットで公開されず、例えば、一方の分割データのみが公開、すなわち、他の装置に提供される。
【００７９】
一方、装置Ｂ，２２０も、セキュアデータＹを、以下のように、２つのデータに分割する。
Ｙ＝（（ｙ＿１）＋（ｙ＿２））ｍｏｄ＿ｍ
上記式において、（ｙ＿１）は、０〜（ｍ−１）から一様にランダムに選択し、
（ｙ＿２）は、
（ｙ＿２）＝（Ｙ−（ｙ＿１））ｍｏｄ  ｍ
上記式を満たすように定める。
このように、２つの分割データ（ｙ＿１），（ｙ＿２）を生成する。
【００８０】
図５に示すように、装置Ａ，２１０と、装置Ｂ，２２０は、ステップＳ２０において、上記の分割データの一部を相互に提供する。
装置Ａ，２１０は、装置Ｂ，２２０に分割データ（ｘ＿１）を提供する。
一方、装置Ｂ，２２０は、装置Ａ，２１０に、分割データ（ｙ＿２）を提供する。
【００８１】
Ｘ，Ｙの各々はセキュアデータであり、外部に流出させることはできない。
しかし、Ｘの分割データである（ｘ＿１）、（ｘ＿２）の一方のデータのみを取得しても、セキュアデータＸを特定することはできない。
同様に、Ｙの分割データである（ｙ＿１）、（ｙ＿２）の一方のデータのみを取得しても、セキュアデータＹを特定することはできない。
従って、セキュアデータの分割データの一部のみのデータは、セキュアデータを特定できないデータであり、外部に出力することが許容される。
【００８２】
このように、装置Ａ，２１０は、分割データ（ｘ＿１）を、装置Ｂ，２２０の計算処理実行部に出力する。
一方、装置Ｂ，２２０は、分割データ（ｙ＿２）を、装置Ａ，２１０の計算処理実行部に出力する。
【００８３】
（ステップＳ２１ａ）
装置Ａ，２１０の計算処理実行部は、ステップＳ２１ａにおいて、分割データを利用して、以下の分割データ同士の加算処理を実行する。
（（ｘ＿２）＋（ｙ＿２））ｍｏｄ  ｍ
装置Ａ，２１０は、この加算結果を装置Ｂ，２２０の計算処理実行部に出力する。
【００８４】
（ステップＳ２１ｂ）
一方、装置Ｂ，２２０の計算処理実行部は、ステップＳ２１ｂにおいて、分割データを利用して、以下の分割データ同士の加算処理を実行する。
（（ｘ＿１）＋（ｙ＿１））ｍｏｄ  ｍ
装置Ｂ，２２０は、この加算結果を装置Ａ，２１０の計算処理実行部に出力する。
【００８５】
（ステップＳ２２ａ）
次に、装置Ａ，２１０の計算処理実行部は、ステップＳ２２ａにおいて、以下の処理を実行する。
（１）ステップＳ２１ａにおいて算出した分割データの加算結果、（ｘ＿２）＋（ｙ＿２）、
（２）装置Ｂ，２２０から入力した分割データの加算結果、（ｘ＿１）＋（ｙ＿１）、
これらの２つの加算結果を、さらに加算する。すなわち、以下の計算を実行する。
（（ｘ＿１）＋（ｙ＿１）＋（ｘ＿２）＋（ｙ＿２））ｍｏｄ  ｍ
【００８６】
この分割データの総加算値は、元のセキュアデータＸとＹの加算値に等しい。
すなわち、
（（ｘ＿１）＋（ｙ＿１）＋（ｘ＿２）＋（ｙ＿２））ｍｏｄ  ｍ
＝Ｘ＋Ｙ
となる。
【００８７】
（ステップＳ２２ｂ）
一方、装置Ｂ，２２０の計算処理実行部は、ステップＳ２２ｂにおいて、以下の処理を実行する。
（１）ステップＳ２１ｂにおいて算出した分割データの加算結果、（ｘ＿１）＋（ｙ＿１）、
（２）装置Ａ，２１０から入力した、分割データの加算結果、（ｘ＿２）＋（ｙ＿２）、
これらの２つの加算結果を、さらに加算する。すなわち、以下の計算を実行する。
（（ｘ＿１）＋（ｙ＿１）＋（ｘ＿２）＋（ｙ＿２））ｍｏｄ  ｍ
【００８８】
この分割データの総加算値は、元のセキュアデータＸとＹの加算値に等しい。
すなわち、
（（ｘ＿１）＋（ｙ＿１）＋（ｘ＿２）＋（ｙ＿２））ｍｏｄ  ｍ
＝Ｘ＋Ｙ
となる。
【００８９】
このように、装置Ａ，装置Ｂは、いずれの装置も、それぞれのセキュアデータＸ，Ｙを外部に出力することなく、セキュアデータＸ，Ｙの加算値、すなわち、Ｘ＋Ｙを算出することができる。
この図５に示す処理が、ＧＭＷ方式に従ったセキュア計算を適用したセキュアデータの加算値算出処理例である。
【００９０】
なお、図５を参照して説明した上記の処理は、セキュアデータＸ，Ｙの加算値算出処理の概要を簡略化して説明したものであり、実際のセキュアデータの加算処理や乗算処理を行なう場合、一般的には、１回のセキュア計算によって得られた計算結果を次のセキュア計算の入力値として適用する等、セキュア計算を繰り返し実行することが必要である。
【００９１】
図６は、セキュアデータの乗算値を、ＧＭＷ方式に従ったセキュア計算によって算出する処理例を示す図である。
装置Ａ，２１０は、セキュアデータＸを保持している。
また、装置Ｂ，２２０は、セキュアデータＹを保持している。
これらのセキュアデータＸ，Ｙは、公開することが好ましくないセキュアデータである。
【００９２】
装置Ａ，２１０は、セキュアデータＸを２つのデータに分割する。
Ｘ＝（（ｘ＿１）＋（ｘ＿２））ｍｏｄ  ｍ
このように、セキュアデータＸをランダムに分割して２つの分割データ（ｘ＿１），（ｘ＿２）を生成する。
【００９３】
一方、装置Ｂ，２２０も、セキュアデータＹを２つのデータに分割する。
Ｙ＝（（ｙ＿１）＋（ｙ＿２））ｍｏｄ  ｍ
このように、セキュアデータＹをランダムに分割して２つの分割データ（ｙ＿１），（ｙ＿２）を生成する。
【００９４】
図６に示すステップＳ３０において、装置Ａ，２１０は、装置Ｂ，２２０の計算処理実行部に、分割データ（ｘ＿１）を提供する。
一方、装置Ｂ，２２０は、装置Ａ，２１０の計算処理実行部に、分割データ（ｙ＿２）を提供する。
Ｘ，Ｙはセキュアデータであり、外部に流出させることはできない。
【００９５】
しかし、Ｘの分割データである（ｘ＿１）、（ｘ＿２）の一方のデータのみを取得しても、セキュアデータＸを特定することはできない。
同様に、Ｙの分割データである（ｙ＿１）、（ｙ＿２）の一方のデータのみを取得しても、セキュアデータＹを特定することはできない。
従って、セキュアデータの分割データの一部のみのデータは、セキュアデータを特定できないデータであり、外部に出力することが許容される。
【００９６】
このように、装置Ａ，２１０は、分割データ（ｘ＿１）を、装置Ｂ，２２０の計算処理実行部に出力する。
一方、装置Ｂ，２２０は、分割データ（ｙ＿２）を、装置Ａ，２１０の計算処理実行部に出力する。
【００９７】
装置Ａ，２１０の計算処理実行部の処理について説明する。
装置Ａ，２１０は、Ｘの分割データである（ｘ＿１）、（ｘ＿２）と、装置Ｂ，２２０から受信したＹの分割データ（ｙ＿１）を保持している。
処理は、以下の手順で実行される。
（ステップＳ３１ａ）
入力値を、ｘ＿２、
出力値Ｍ（ｘ＿２）を、Ｍ＿（ｘ＿２）＝（ｘ＿２）×（ｙ＿１）＋ｒ、
上記の入出力値設定とした［１−ｏｕｔ−ｏｆ−ｍ  ＯＴ］を、装置Ｂ，２２０と実行する。
【００９８】
なお、［１−ｏｕｔ−ｏｆ−ｍ  ＯＴ  （Ｏｂｌｉｖｉｏｕｓ  Ｔｒａｎｓｆｅｒ）］は、以下の処理を実行する演算プロトコルである。
送信者と選択者という２つのエンティティが存在する。
送信者はｍ個の要素からなる入力値（Ｍ＿０，Ｍ＿１，・・・，Ｍ＿（ｍ−１））を持つ。
選択者はσ∈｛０，１，...，ｍ−１｝という入力値を持つ。
【００９９】
選択者は、ｍ個の要素を持つ送信者に１つの要素の送信を要求し、選択者は、１つの要素Ｍ＿σの値のみを得ることができる。その他の（ｍ−１）個の要素：Ｍ＿ｉ（ｉ≠σ）は入手できない。
一方、送信者は選択者の入力値σを知ることができない．
このように、［１−ｏｕｔ−ｏｆ−ｍ  ＯＴ］プロトコルは、ｍ個の要素から１要素のみを送受信して演算処理を進めるプロトコルであり、ｍ個の要素のどの要素が送受信されたかについては、要素受信側は特定できない設定としたプロトコルである。
【０１００】
（ステップＳ３２ａ）
入力値を、ｙ＿２、
出力値Ｍ＿（ｙ＿２）'を、Ｍ＿（ｙ＿２）'＝（ｘ＿１）×（ｙ＿２）＋ｒ'、
上記の入出力値設定とした［１−ｏｕｔ−ｏｆ−ｍ  ＯＴ］を、装置Ｂ，２２０と実行する。
【０１０１】
（ステップＳ３３ａ）
装置Ａ，２１０の出力値として、出力値：Ｍ＿（ｘ＿２）＋Ｍ＿（ｙ＿２）を以下の式に従って計算する。
Ｍ＿（ｘ＿２）＋Ｍ＿（ｙ＿２）
＝（（ｘ＿２）×（ｙ＿２）＋（ｘ＿２）×（ｙ＿１）＋ｒ＋（ｘ＿１）×（ｙ＿２）＋ｒ'）ｍｏｄ  ｍ
【０１０２】
一方の、装置Ｂ，２２０の計算処理実行部の処理について説明する。
装置Ｂ，２２０は、Ｙの分割データである（ｙ＿１）、（ｙ＿２）と、装置Ａ，２１０から受信したＸの分割データ（ｘ＿１）を保持している。
【０１０３】
処理は、以下の手順で実行される。
（ステップＳ３１ｂ）
乱数ｒ∈｛０，...，ｍ−１｝を選び、セキュアデータＹの分割値ｙ＿１に基づいて、［１−ｏｕｔ−ｏｆ−ｍ  ＯＴ］で用いる入力値列、
ｉ×（ｙ＿１）＋ｒ
ただし、ｉ＝０，１，・・・，（ｍ−１）
上記の入力値列を生成する。
【０１０４】
具体的には、以下の入力値列：Ｍ＿０〜Ｍ＿（ｍ−１）を生成する。
Ｍ＿０＝０×（ｙ＿１）＋ｒ，
Ｍ＿１＝１×（ｙ＿１）＋ｒ，
...，
Ｍ＿（ｍ−１）＝（ｍ−１）×（ｙ＿１）＋ｒ、
これらの入力値列を生成する。
さらに、前述したステップＳ３１ａの設定に従った［１−ｏｕｔ−ｏｆ−ｍ  ＯＴ］を、装置Ａ，２１０と実行する。
【０１０５】
（ステップＳ３２ｂ）
乱数ｒ'∈｛０，...，ｍ−１｝を選び、分割値ｙ＿１に基づいて、［１−ｏｕｔ−ｏｆ−ｍ  ＯＴ］で用いる入力値列、
ｉ×（ｘ＿１）＋ｒ'
ただし、ｉ＝０，１，・・・，（ｍ−１）
上記の入力値列を生成する。
【０１０６】
具体的には、以下の入力値列：Ｍ'＿０〜Ｍ'＿（ｍ−１）を生成する。
Ｍ'＿０＝０×（ｘ＿１）＋ｒ'，
Ｍ'＿１＝１×（ｘ＿１）＋ｒ'
...，
Ｍ'＿（ｍ−１）＝（ｍ−１）×（ｘ＿１）＋ｒ'
これらの入力値列を生成する。
さらに、前述したステップＳ３２ａの設定に従った［１−ｏｕｔ−ｏｆ−ｍ  ＯＴ］を、装置Ａ，２１０と実行する。
【０１０７】
（ステップＳ３３ｂ）
装置Ｂ，２２０の出力値として、以下の出力値を計算する。
（（ｘ＿１）×（ｙ＿１）−ｒ−ｒ'）ｍｏｄ  ｍ
上記の値を、装置Ｂ，２２０の出力値として計算する．
【０１０８】
ステップＳ３３ａにおいて装置Ａ，２１０が算出した出力値と、ステップＳ３３ｂにおいて装置Ｂ，２２０が算出した出力値を用いた以下の計算処理によって、セキュアデータＸ，Ｙの乗算値Ｘ×Ｙが算出できる。
（（（ｘ＿２）×（ｙ＿２）＋（ｘ＿２）×（ｙ＿１）＋ｒ＋（ｘ＿１）×（ｙ＿２）＋ｒ'）＋（（ｘ＿１）×（ｙ＿１）−ｒ−ｒ'）
＝（（ｘ＿１）＋（ｘ＿２））×（（ｙ＿１）＋（ｙ＿２））
＝Ｘ×Ｙ
装置Ａ，２１０と、装置Ｂ，２２０間で、ステップＳ３３ａ、ステップＳ３３ｂの算出結果を相互に提供することで、上記のセキュアデータＸ，Ｙの乗算値Ｘ×Ｙが算出できる。
【０１０９】
このように、装置Ａ，装置Ｂは、いずれの装置も、それぞれのセキュアデータＸ，Ｙを外部に出力することなく、セキュアデータＸ，Ｙの乗算値、すなわち、ＸＹを算出することができる。
この図６に示す処理が、ＧＭＷ方式に従ったセキュア計算を適用したセキュアデータの乗算値算出処理例である。
【０１１０】
なお、図６を参照して説明した上記の処理は、セキュアデータＸ，Ｙの乗算値算出処理の概要を簡略化して説明したものであり、実際のセキュアデータの加算処理や乗算処理を行なう場合、一般的には、１回のセキュア計算によって得られた計算結果を次のセキュア計算の入力値として適用する等、セキュア計算を繰り返し実行することが必要である。
また、図５、図６に示すセキュア計算処理例は、セキュア計算の一例であり、セキュア計算態様には、その他、様々な異なる計算処理が可能である。
【０１１１】
しかし、セキュア計算は、変換データの生成、変換データの装置間の送受信、変換データを適用した計算処理、これらの処理が計算に適用するセキュアデータのデータ量に応じて増大することになる。具体的には、例えば、セキュア計算による乗算処理では、計算量が大きいＯｂｌｉｖｉｏｕｓ  Ｔｒａｎｓｆｅｒ（紛失通信）プロトコルを実行する必要がある。この紛失通信プロトコルは極めて計算量が大きい。この理由は、公開鍵暗号で用いるような多倍長整数のべき乗演算が必要となることなどが理由である。
【０１１２】
例えば、ｎ要素からなるｋ本のベクトルとｎ要素からなるｍ本のベクトルの全組合せで内積を求める場合、合計でｋｍｎ回のセキュア乗算が必要となる。
これを図５、図６を参照して説明したような一般的なセキュア計算を用いて算出しようとすると、計算量、通信料が膨大となり、必要となる計算リソースや計算時間が大きくなり、実用的なレベルを超えてしまうという問題がある。
【０１１３】
［４．計算量を削減したセキュア計算によるセキュアデータ間の関係性を推定する処理について］
以下、上述の問題点を解決する構成、すなわち、セキュアデータ間の関係性、例えば相関性や類似性を、計算量を削減したセキュア計算を適用して算出する処理について説明する。
【０１１４】
図７は、本開示の処理を実行する１つの情報処理システム構成例を示す図である。
図７に示すように、２つの情報処理装置Ａ，１１０、１２０が存在する。
【０１１５】
これらの情報処理装置Ａ，１１０と情報処理装置Ｂ，１２０は、２つの異なる企業、例えば２つの異なるネット販売業者である企業１と、企業２の情報処理装置である。
企業１は、情報処理装置Ａ，１１０を有し、情報処理装置Ａ，１１０の記憶部に例えば、図１〜図４を参照して説明したと同様のユーザ対応の商品購入履歴データ等を保持している。
企業２は、情報処理装置Ｂ，１２０を有し、情報処理装置Ｂ，１２０の記憶部に例えば、図１〜図４を参照して説明したと同様のユーザ対応の商品購入履歴データ等を保持している。
【０１１６】
２つの情報処理装置Ａ，１１０、情報処理装置Ｂ，１２０の各々が記憶部に保持するセキュアデータの一例を図８に示す。
【０１１７】
図８（１）に示すデータは、企業１が集積し、企業１の所有する情報処理装置Ａ，１１０の記憶部に格納されたユーザ対応商品購入履歴データであり、ユーザ１〜ｎ各々が、企業１の提供する商品１，１〜１，ｋ（ｉｔｅｍ：Ｉ＿（１，１）〜Ｉ＿（１，ｋ））中の、どの商品を購入したかを示すデータである。
図８（２）に示すデータは、企業２が集積し、企業２の所有する情報処理装置Ｂ，１２０の記憶部に格納されたユーザ対応商品購入履歴データであり、ユーザ１〜ｎ各々が、企業２の提供する商品２，１〜２，ｍ（ｉｔｅｍ：Ｉ＿（２，１）〜Ｉ＿（２，ｍ））中の、どの商品を購入したかを示すデータである。
【０１１８】
図８に示すデータには、図１他を参照して説明したと同様、
商品購入履歴ありの場合は、［１］、
商品購入履歴なしの場合は、［０］
これらの商品購入履歴識別情報が設定されている。
【０１１９】
図８（１），（２）とも、同一のユーザ数：１〜ｎに対する商品購入履歴情報を示している。
図８（１）に示す商品１，１〜１，ｋ（ｉｔｅｍ：Ｉ＿（１，１）〜Ｉ＿（１，ｋ））のＩ＿（ｘ，ｙ）に示すｘ（ｘ＝１）は、セキュアデータを保持する企業や情報処理装置の識別子であり、ｙ（ｙ＝１〜ｋ）は商品識別子である。
同様に、図８（２）に示す商品２，１〜２，ｍ（ｉｔｅｍ：Ｉ＿（２，１）〜Ｉ＿（２，ｍ））のＩ＿（ｘ，ｙ）に示すｘ（ｘ＝２）は、セキュアデータを保持する企業や情報処理装置の識別子であり、ｙ（ｙ＝１〜ｍ）は商品識別子である。
図８（１）に示す企業１は、ｎ人のユーザに対するｋ種類の商品の購入履歴情報を保持し、図８（２）に示す企業２は、ｎ人のユーザに対するｍ種類の商品の購入履歴情報を保持していることを示している。
【０１２０】
図８には、２つの異なる企業、例えば２つの異なるネット販売業者である企業１と、企業２がそれぞれ個別に集積したユーザ対応商品購入履歴データを示しているが、これら各企業が保有する個別のデータベースを統合して解析を行うことで、より効果的な商品販売や広告提供が可能となる。
【０１２１】
しかし、これらの各データは公開が制限されるセキュアデータである。
従って、各企業の情報処理装置Ａ，１１０と、情報処理装置Ｂ，１２０に格納されたこれらのセキュアデータは、各情報処理装置間で、そのまま送受信することは許容されない。
【０１２２】
以下に説明する本開示の処理を行なうことで、各情報処理装置間でセキュアデータを送受信することなく、２つの情報処理装置Ａ，１１０と、情報処理装置Ｂ，１２０の保有するセキュアデータ間の関連性を示す指標値、例えば先に説明した購入ベクトル間のジャッカード（Ｊａｃｃａｒｄ）係数や、内積を、より効率的に算出することが可能となる。
【０１２３】
図９に、２つの情報処理装置Ａ，１１０と、情報処理装置Ｂ，１２０の保有するセキュアデータ間の関連性を示す１つの指標値であるジャッカード（Ｊａｃｃａｒｄ）係数の対応表を示す。
ジャッカード（Ｊａｃｃａｒｄ）係数は、先に（式２）を参照して説明したように、ある商品ａを購入したユーザを表すユーザ数ｎ対応のｎ次元ベクトルである商品ａの購入ベクトルと、商品ｂの購入ユーザを表すユーザ数ｎ対応のｎ次元ベクトルである商品ｂの購入ベクトルとのベクトル間類似度を示す値として算出される。
【０１２４】
図９には、
情報処理装置Ａ，１１０を保持する企業１の提供商品１，１〜１，ｋ（ｉｔｅｍ：Ｉ＿（１，１）〜Ｉ＿（１，ｋ））、および、
情報処理装置Ｂ，１２０を保持する企業２の提供商品２，１〜２，ｍ（ｉｔｅｍ：Ｉ＿（２，１）〜Ｉ＿（２，ｍ））、
これらｋ＋ｍ個の商品識別子を横軸、縦軸に設定した表（マトリックス）を示している。
【０１２５】
ジャッカード（Ｊａｃｃａｒｄ）係数は、例えば、異なる２つの商品間の購入ベクトルの類似度を示す値として算出される。
図９のように、商品種類がｋ＋ｍ個ある場合、図９に示すマトリックス中の（１），（２），（３）の各領域に、異なる商品（商品ｉと商品ｊ）間のジャッカード（Ｊａｃｃａｒｄ）係数を算出することができる。
【０１２６】
領域（１）は、情報処理装置Ａ，１１０を保持する企業１の提供商品１，１〜１，ｋ（ｉｔｅｍ：Ｉ＿（１，１）〜Ｉ＿（１，ｋ））間のジャッカード（Ｊａｃｃａｒｄ）係数算出領域である。
領域（２）は、情報処理装置Ａ，１１０を保持する企業１の提供商品１，１〜１，ｋ（ｉｔｅｍ：Ｉ＿（１，１）〜Ｉ＿（１，ｋ））と、情報処理装置Ｂ，１２０を保持する企業２の提供商品２，１〜２，ｍ（ｉｔｅｍ：Ｉ＿（２，１）〜Ｉ＿（２，ｍ））との間のジャッカード（Ｊａｃｃａｒｄ）係数算出領域である。
領域（３）は、情報処理装置Ｂ，１２０を保持する企業２の提供商品２，１〜２，ｍ（ｉｔｅｍ：Ｉ＿（２，１）〜Ｉ＿（２，ｍ））間のジャッカード（Ｊａｃｃａｒｄ）係数算出領域である。
【０１２７】
これらの各領域において算出されるジャッカード（Ｊａｃｃａｒｄ）係数は、以下の（式４ａ）〜（式４ｃ）として示される。
【０１２８】
【数４】
2017122437.tif 000006
【０１２９】
（式４ａ）は、領域（１）におけるジャッカード（Ｊａｃｃａｒｄ）係数算出式である。
（式４ｂ）は、領域（２）におけるジャッカード（Ｊａｃｃａｒｄ）係数算出式である。
（式４ｃ）は、領域（３）におけるジャッカード（Ｊａｃｃａｒｄ）係数算出式である。
【０１３０】
ジャッカード（Ｊａｃｃａｒｄ）係数Ｊ＿ｉｊは、アイテム（商品）Ｉ＿ｉと、アイテム（商品）Ｉ＿ｊとの間のアイテム間相関量を示す。
【０１３１】
領域（１）におけるジャッカード（Ｊａｃｃａｒｄ）係数算出式である上記の（式４ａ）は、先に説明した（式２）と同様の式である。
ｘ＿ｉ、ｘ＿ｊは、いずれも、情報処理装置Ａ，１１０を保持する企業１の提供商品１，１〜１，ｋ（ｉｔｅｍ：Ｉ＿（１，１）〜Ｉ＿（１，ｋ））のいずれかの商品に関するｎ人のユーザ（ユーザ１〜ｎ）の商品購入有無（有り：１、無し：０）情報からなる行列である。
先に説明した（式３ａ）で表現される行列（ｎ次元ベクトル）である。
また、ｘＴ＿ｉは、ｘ＿ｉの転置行列であり、先に説明した（式３ｂ）で表現される行列（ｎ次元ベクトル）である。
【０１３２】
従って、図９に示す領域（１）のジャッカード（Ｊａｃｃａｒｄ）係数は、企業１の情報処理装置Ａ，１１０に格納されたデータ（セキュアデータ）のみを利用して情報処理装置Ａ，１１０内部で算出することができる。
【０１３３】
また、領域（３）におけるジャッカード（Ｊａｃｃａｒｄ）係数算出式である（式４ｃ）中の、ｙ＿ｉ、ｙ＿ｊは、いずれも、情報処理装置Ｂ，１２０を保持する企業２の提供商品２，１〜２，ｍ（ｉｔｅｍ：Ｉ＿（２，１）〜Ｉ＿（２，ｍ））のいずれかの商品に関するｎ人のユーザ（ユーザ１〜ｎ）の商品購入有無（有り：１、無し：０）情報からなる行列である。
【０１３４】
従って、図９に示す領域（３）のジャッカード（Ｊａｃｃａｒｄ）係数は、企業２の情報処理装置Ｂ，１２０に格納されたデータ（セキュアデータ）のみを利用して情報処理装置Ｂ，１２０内部で算出することができる。
【０１３５】
これに対して、領域（２）におけるジャッカード（Ｊａｃｃａｒｄ）係数算出式である（式４ｂ）は、
情報処理装置Ａ，１１０を保持する企業１の提供商品１，１〜１，ｋ（ｉｔｅｍ：Ｉ＿（１，１）〜Ｉ＿（１，ｋ））のいずれかの商品に関するｎ人のユーザ（ユーザ１〜ｎ）の商品購入有無（有り：１、無し：０）情報からなる行列：ｘ＿ｉと、
情報処理装置Ｂ，１２０を保持する企業２の提供商品２，１〜２，ｍ（ｉｔｅｍ：Ｉ＿（２，１）〜Ｉ＿（２，ｍ））のいずれかの商品に関するｎ人のユーザ（ユーザ１〜ｎ）の商品購入有無（有り：１、無し：０）情報からなる行列：ｙ＿ｉが含まれる。
【０１３６】
従って、図９に示す領域（２）のジャッカード（Ｊａｃｃａｒｄ）係数は、企業１の情報処理装置Ａ，１１０に格納されたデータ（セキュアデータ）と、企業２の情報処理装置Ｂ，１２０に格納されたデータ（セキュアデータ）の両者を利用しなければ算出することができない。
すなわち、この領域（２）のジャッカード（Ｊａｃｃａｒｄ）係数を算出するためには、先に図５、図６を参照して説明したセキュア計算を行うことが必要となる。
【０１３７】
例えば情報処理装置Ａ，１１０の記憶部内に格納されたセキュアデータを変換して、情報処理装置Ｂ，１２０に提供し、同様に、情報処理装置Ｂ，１２０の記憶部内に格納されたセキュアデータを変換して、情報処理装置Ａ，１１０に提供し、これらの変換データを適用したセキュア計算により算出することが必要となる。すなわち、例えば、先に図５、図６を参照して説明したセキュア計算を行うことが必要となる。
図５、図６を参照して説明したように、セキュア計算では、変換データの生成、送受信、変換データを用いた計算、これらの処理コストが増大してしまうという問題がある。
【０１３８】
以下に説明する本開示の処理においては、このセキュア計算を効率的に実行する。すなわち、各情報処理装置間でセキュアデータを送受信することなく、２つの情報処理装置Ａ，１１０と、情報処理装置Ｂ，１２０の保有するセキュアデータ間の関連性を示す指標値、例えば先に説明した購入ベクトル間のジャッカード（Ｊａｃｃａｒｄ）係数や、内積を、より効率的に算出することを可能としている。
以下、具体的な処理について説明する。
【０１３９】
なお、（式４ａ）〜（式４ｃ）で示されるジャッカード（Ｊａｃｃａｒｄ）係数は、先に説明した（式２ａ）で示すように、アイテム（商品）Ｉ＿ｉの購入有無データ（ｘｉ＿ｔ）と、アイテム（商品）Ｉ＿ｊの購入有無データ（ｘｊ＿ｔ）との内積、すなわち購入ベクトル間の内積に依存する値となる。
すなわち、アイテム（商品）Ｉ＿ｉの購入有無データ（ｘｉ＿ｔ）と、アイテム（商品）Ｉ＿ｊの購入有無データ（ｘｊ＿ｔ）との内積（購入ベクトル間の内積）を算出し、この内積を各アイテム間の相関（類似性）指標値として利用することも可能である。
以下では、具体的な処理例として、購入ベクトル間の内積を効率的に算出する処理について説明する。
なお、先に説明した（式２）、（式２ａ）の関係から理解されるように、算出した内積を適用して、ジャッカード（Ｊａｃｃａｒｄ）係数を算出することも可能となる。
【０１４０】
［４−ａ．本開示の処理を行なう前提となる設定例について］
まず、本開示の処理を行なう前提となる設定例について説明する。
図７に示すように、２つの情報処理装置Ａ，１１０、１２０が存在する。
これらの情報処理装置Ａ，１１０と情報処理装置Ｂ，１２０は、２つの異なる企業、例えば２つの異なるネット販売業者である企業１と、企業２の情報処理装置である。
企業１は、情報処理装置Ａ，１１０を有し、情報処理装置Ａ，１１０の記憶部に例えば、図１〜図４を参照して説明したと同様のユーザ対応の商品購入履歴データ等を保持している。
企業２は、情報処理装置Ｂ，１２０を有し、情報処理装置Ｂ，１２０の記憶部に例えば、図１〜図４を参照して説明したと同様のユーザ対応の商品購入履歴データ等を保持している。
【０１４１】
具体的には、例えば、先に説明した図８に示すようなデータである。
図８に示すデータには、図１他を参照して説明したと同様、
商品購入履歴ありの場合は、［１］、
商品購入履歴なしの場合は、［０］
これらの商品購入履歴識別情報が設定されている。
【０１４２】
以下のセキュアデータ間の相関算出処理の説明においては、図８に示す商品購入履歴有無のデータ（１，０）は、図１０に示すようなデータとして表現して説明する。
図１０に示すように、情報処理装置Ａ，１１０、情報処理装置Ｂ，１２０とも、ｎ人の同じユーザ対応の商品購入履歴データを有している。
【０１４３】
ｘｉ＿ｔは、企業１の情報処理装置Ａ，１１０に格納されたユーザ対応の商品購入履歴情報であり、ユーザＩＤ＝ｔのユーザによるアイテム（商品）Ｉ＿ｉの購入の有無を示す。
ｙｊ＿ｔは、企業２の情報処理装置Ｂ，１２０に格納されたユーザ対応の商品購入履歴情報であり、ユーザＩＤ＝ｔのユーザによるアイテム（商品）Ｉ＿ｊの購入の有無を示す。
なお、これらのデータは、いずれもセキュアデータであり、公開や、外部流出が許容されないデータである。
【０１４４】
図１０に示すように、情報処理装置Ａ，１１０は、ｎ人のユーザ（ユーザ１〜ｎ）各々が、ｋ個の商品１〜ｋ（ｉｔｅｍ：Ｉ＿１〜Ｉ＿ｋ）各々の商品購入履歴情報として、以下のデータ、すなわち、
ｘｉ＿ｔ  （ｉ＝１〜ｋ，ｔ＝１〜ｎ）
上記のセキュアデータを記憶部に格納している。
【０１４５】
一方、情報処理装置Ｂ，１２０は、ｎ人のユーザ（ユーザ１〜ｎ）各々が、ｍ個の商品１〜ｍ（ｉｔｅｍ：Ｊ＿１〜Ｊ＿ｍ）各々の商品購入履歴情報として、以下のデータ、すなわち、
ｙｊ＿ｔ  （ｊ＝１〜ｍ，ｔ＝１〜ｎ）
上記のセキュアデータを記憶部に格納している。
【０１４６】
以下に説明する処理の目的は、
情報処理装置Ａ，１１０の保持するセキュアデータである商品購入履歴情報、すなわち、ｘｉ＿ｔ  （ｉ＝１〜ｋ，ｔ＝１〜ｎ）
上記のデータと、
情報処理装置Ｂ，１２０の保持するセキュアデータである商品購入履歴情報、すなわち、ｙｊ＿ｔ  （ｊ＝１〜ｍ，ｔ＝１〜ｎ）
上記のデータとの相関を求めることである。
相関指標値は、例えば、前述したジャッカード（Ｊａｃｃａｒｄ）係数や、内積（購入ベクトルの内積）である。
【０１４７】
情報処理装置Ａ，１１０の保持するセキュアデータである商品購入履歴情報をデータＤ１とし、情報処理装置Ｂ，１２０の保持するセキュアデータである商品購入履歴情報をデータＤ２とする。
【０１４８】
データＤ１、データＤ２は以下のデータによって構成される。
（データＤ１）
ｎ要素（＝ユーザ数）からなるｋ本（＝商品数）のベクトル：ｘ＿ｉ、
ｘ＿ｉ＝（ｘｉ＿１，ｘｉ＿２，・・・，ｘｉ＿ｎ）Ｔ
（１≦ｉ≦ｋ）、ｘｉ＿ｔ∈｛０，１｝
【０１４９】
（データＤ２）
ｎ要素（＝ユーザ数）からなるｍ本（＝商品数）のベクトル：ｙ＿ｊ、
ｙ＿ｊ＝（ｙｊ＿１，ｙｊ＿２，・・・，ｙｊ＿ｎ）Ｔ
（１≦ｊ≦ｍ）、ｙｊ＿ｔ∈｛０，１｝
【０１５０】
これらの２つのセキュアデータＤ１とＤ２から、セキュア計算を用いて互いのデータを共有することなく、例えば、データＤ１に含まれるベクトルとデータＤ２に含まれるベクトル間の相関指標値（ジャッカード（Ｊａｃｃａｒｄ）係数や、ベクトル要素間の内積）を算出する。
【０１５１】
なお、データＤ１には、企業１が提供する商品数ｋに対応したｋ本のベクトルが含まれる。
一方、データＤ２には、企業２が提供する商品数ｍに対応したｍ本のベクトルが含まれる。
例えば、企業１が提供する商品数ｋに対応したｋ本のベクトル中の１つのベクトルＶ１と、企業２が提供する商品数ｍに対応したｍ本のベクトル中の１つのベクトルＶ２との相関が高いと判定されれば、ベクトルＶ１に対応する商品を購入したユーザは、ベクトルＶ２に対応する商品を購入する可能性が高いと判定される。
【０１５２】
具体的には、例えば、図１０（１）に示すデータ中の商品Ｉ＿１を購入したユーザを表すユーザ数ｎに相当するｎ次元のベクトル（１，１，１，０，１，・・・１）と、図１０（２）に示すデータ中の商品Ｊ＿１を購入したユーザを表すユーザ数ｎに相当するｎ次元のベクトル（０，１，０，０，１，・・・０）を、それぞれ生成し、これらのベクトル間の類似度（相関量）を算出する。
これらのベクトル間の類似度（相関量）が高ければ、商品Ｉ＿１を購入したユーザが、異なる商品Ｊ＿１を購入する可能性が高いと推定することができる。
一方、これらのベクトル間の類似度（相関量）が低い場合は、商品Ｉ＿１を購入したユーザが、異なる商品Ｊ＿１を購入する可能性が低いと推定することができる。
【０１５３】
以下では、まず、ベクトル間の類似性を示す相関指標値として、以下の（式５）によって示されるｋｍ個の内積：ＩＰ＿ｉｊを算出する処理について説明する。
【０１５４】
【数５】
2017122437.tif 000007
【０１５５】
上記（式５）に従った内積の計算には、２つの異なる情報処理装置に個別に格納されたセキュアデータ相互の計算が必要となる。
ｘｉ＿ｔは、情報処理装置Ａ，１１０に格納されたセキュアデータであり、ユーザｔが、商品ｉを購入したか否かを示すデータ（１または０）である。
一方、ｙｊ＿ｔは、情報処理装置Ｂ，１２０に格納されたセキュアデータであり、ユーザｔが、商品ｊを購入したか否かを示すデータ（１または０）である。
これらは、いずれもセキュアデータであるため、情報処理装置Ａ，１１０と、情報処理装置Ｂ，１２０間で、このまま送受信することは許容されない。
【０１５６】
［４−ｂ．計算の高速化を実現する処理の概要について］
上記の（式５）に従った内積の計算では、ｎ要素（＝ユーザ数）からなるｋ本（＝企業１の提供商品数）のベクトルと、ｎ要素からなるｍ本（＝企業２の提供商品数）のベクトルの全組合せの乗算を用いて内積を求めることになる。
この場合、合計でｋｍｎ回のセキュア乗算が必要となる。
これらの計算を、例えば、先に図６を参照して説明したセキュア計算に従って実行すると、変換データの生成、変換データの送受信、ヘンカンデータを用いた計算処理、これらの処理が膨大なものとなってしまう。
【０１５７】
以下に説明する本開示の処理においては、各ユーザの購入履歴を示す１，０データ、すなわち、１（＝購入履歴あり）、０（＝購入履歴なし）、これらの１，０データそのものから構成されるベクトルではなく、１（＝購入履歴あり）の値を持つ標本ＩＤ（ユーザＩＤ：ｔ）を利用して計算処理を行なう。
【０１５８】
すなわち、先に説明した情報処理装置Ａ，１１０の保持するセキュアデータである商品購入履歴情報：データＤ１と、情報処理装置Ｂ，１２０の保持するセキュアデータである商品購入履歴情報データ：Ｄ２を、以下のように変換する。
【０１５９】
情報処理装置Ａ，１１０の保持するセキュアデータである商品購入履歴情報：データＤ１は以下のように変換する。
（データＤ１）
ｎ要素（＝ユーザ数）からなるｋ本（＝商品数）のベクトル：ｘ＿ｉ、
ｘ＿ｉ＝（ｘｉ＿１，ｘｉ＿２，・・・，ｘｉ＿ｎ）Ｔ
（１≦ｉ≦ｋ）、ｘｉ＿ｔ∈｛０，１｝
【０１６０】
このデータＤ１に基づいて、各商品（ｉ＝１〜ｋ）各々について、購入履歴ありのユーザのユーザＩＤ（ｔ）から構成されるｋ組の標本ＩＤ（ユーザＩＤ）の集合：Ｃ＿ｉを生成する。
集合：Ｃ＿ｉは以下の（式６）によって示される。
【０１６１】
【数６】
2017122437.tif 000008
【０１６２】
なお、上記（式６）において、ｖ＿ｉは、ｘ＿ｉの中で１を取るＩＤの個数とする。
ベクトル：ｘ＿ｉの中で、ｘｉ＿ｔ＝１を満たすユーザＩＤ＝ｔが、上記（式６）で示す集合：Ｃ＿ｉの要素として含まれる。
なお、本例では、ＩＤとして、ユーザＩＤ＝１，２，・・・，ｎを利用しているが、他の識別できる数値の組合せを用いることも可能である。
【０１６３】
また、情報処理装置Ｂ，１２０の保持するセキュアデータである商品購入履歴情報：データＤ２は以下のように変換する。
（データＤ２）
ｎ要素（＝ユーザ数）からなるｍ本（＝商品数）のベクトル：ｙ＿ｊ、
ｙ＿ｊ＝（ｙｊ＿１，ｙｊ＿２，・・・，ｙｊ＿ｎ）Ｔ
（１≦ｊ≦ｍ）、ｙｊ＿ｔ∈｛０，１｝
【０１６４】
このデータＤ２に基づいて、各商品（ｊ＝１〜ｍ）各々について、購入履歴ありのユーザのユーザＩＤ（ｔ）から構成されるｍ組の標本ＩＤ（ユーザＩＤ）の集合：Ｓ＿ｉを生成する。
集合：Ｓ＿ｉは以下の（式７）によって示される。
【０１６５】
【数７】
2017122437.tif 000009
【０１６６】
なお、上記（式７）において、ｗ＿ｉは、ｙ＿ｉの中で１を取るＩＤの個数とする。
ベクトル：ｙ＿ｊの中で、ｙｊ＿ｔ＝１を満たすユーザＩＤ＝ｔが、上記（式７）で示す集合：Ｓ＿ｊの要素として含まれる。
なお、本例では、ＩＤとして、ユーザＩＤ＝１，２，・・・，ｎを利用しているが、他の識別できる数値の組合せを用いることも可能である。
【０１６７】
このような変換を行うことで、入力値の個数を減らすことができる。
例えば、ＩＤ数（ユーザ数ｎ）が１００万の場合において、設定値＝１（ユーザの購入履歴あり）の個数の割合である密度が１％のとき、
データＤ１、データＤ２として示すベクトル、すなわち、
ｎ要素（＝ユーザ数）からなるｋ本（＝商品数）のベクトル：ｘ＿ｉ、
ｘ＿ｉ＝（ｘｉ＿１，ｘｉ＿２，・・・，ｘｉ＿ｎ）Ｔ
ｎ要素（＝ユーザ数）からなるｍ本（＝商品数）のベクトル：ｙ＿ｊ、
ｙ＿ｊ＝（ｙｊ＿１，ｙｊ＿２，・・・，ｙｊ＿ｎ）Ｔ
これらのベクトル表現とした場合、１００万次元の入力値となる。
しかし、上述した集合：Ｃ＿ｉ、Ｓ＿ｊ、すなわち（式６）、（式７）で示す集合：Ｃ＿ｉ、Ｓ＿ｊを用いて表現することで、１万個オーダの入力値に減少させることができる。
【０１６８】
以下に説明する本開示の処理は、上記の２組の集合を比較し、重複するＩＤの個数を求めることで、重複するＩＤの個数に基づく内積を求める。
例えば、
Ｃ＝｛１，２，３｝、
Ｓ＝｛２，３，４｝
このとき、｛２、３｝が重複する。
重複するＩＤの個数は２であり、出力（内積）は２となる。
【０１６９】
出力値は、重複するＩＤの個数に相当し、重複するＩＤの個数が多い場合は、より大きな値となり、重複するＩＤの個数が少ない場合は小さい値となる。
すなわち、出力値が大きいほど、重複するＩＤの個数が多く、２つの集合には同じユーザＩＤが多く含まれることを示す。
すなわち、この内積の値は、先に説明したジャッカード（Ｊａｃｃａｒｄ）係数と同様、２つの商品の購入ユーザの類似度を示す値となる。
【０１７０】
なお、この演算をセキュア計算と同等の安全性を維持して実行するためのプロトコル（計算方式）として、例えば、ＰＳＩ−ＣＡ（Ｐｒｉｖａｔｅ  ｓｅｔ  ｉｎｔｅｒｓｅｃｔｉｏｎ  ｃａｒｄｉｎａｌｉｔｙ）プロトコルが利用可能である。
なお、このＰＳＩ−ＣＡプロトコルの詳細については、例えば、文献［Ｅ．Ｄ．Ｃｒｉｓｔｏｆａｒｏ，  Ｐ．Ｇａｓｔｉ  ａｎｄ  Ｇ．Ｔｓｕｄｉｋ，Ｆａｓｔ  ａｎｄ  Ｐｒｉｖａｔｅ  Ｃｏｍｐｕｔａｔｉｏｎ  ｏｆ  Ｃａｒｄｉｎａｌｉｔｙ  ｏｆ  Ｓｅｔ  Ｉｎｔｅｒｓｅｃｔｉｏｎ  ａｎｄ  Ｕｎｉｏｎ，Ｃｒｙｐｔｏｌｏｇｙ  ａｎｄ  Ｎｅｔｗｏｒｋ  Ｓｅｃｕｒｉｔｙ，ｐｐ．２１８−２３１，２０１２］に記載がある。
ＰＳＩ−ＣＡプロトコルを適用した計算処理の詳細については、後述する。
【０１７１】
［４−ｃ．計算量を削減したセキュア計算によるセキュアデータ間の関係性算出処理例について］
次に、計算量を削減したセキュア計算によるセキュアデータ間の関係性算出処理の例について説明する。
図１１は、各々が商品購入履歴情報等のセキュアデータを保持する情報処理装置Ａ，１１０と、情報処理装置Ｂ，１２０の構成の一部を示す図である。
【０１７２】
情報処理装置Ａ，１１０は、入力部１１１、乱数生成部１１２、ハッシュ計算部１１３、算術演算部１１４、要素比較部１１５、データ送受信部１１６、出力部１１７を有する。
情報処理装置Ｂ，１２０は、入力部１２１、乱数生成部１２２、ハッシュ計算部１２３、算術演算部１２４、ランダム置換部１２５、データ送受信部１２６、出力部１２７を有する。
【０１７３】
図１２に示すフローチャートは、図１１に示す装置を利用したセキュアデータ間の関係性算出処理のシーケンスを説明するフローチャートである。
フローに示す処理は、例えば図１０に示す２つの異なる情報処理装置の保持するセキュアデータである商品購入履歴データ中の設定値＝１（ユーザの購入履歴あり）のユーザＩＤからなる集合Ｃ＿ｉとＳ＿ｊの内積算出処理である。
前述したように、この内積の値が大きいほど、商品ｉと商品ｊの購入ユーザの相関（類似度）が高いと判定することができる。
【０１７４】
以下、図１１に示すブロック図と、図１２に示すフローチャートを参照して、内積算出シーケンスについて説明する。
なお、図１２に示すフローに従って実行する処理における各情報処理装置Ａ，Ｂの入力値と、出力値を図１３に示している。
【０１７５】
（ステップＳ１０１ａ，Ｓ１０１ｂ）
図１２に示すフローのステップＳ１０１ａ、およびステップＳ１０１ｂの処理は、図１１に示す情報処理装置Ａ，１１０の入力部１１１、および情報処理装置Ｂ，１２０の入力部において実行する処理である。
【０１７６】
情報処理装置Ａ，１１０の入力部１１１は、ステップＳ１０１ａにおいて、情報処理装置Ａ，１１０の記憶部に保持されたデータ、例えば、図１０（１）に示すユーザ対応商品購入履歴データから生成される集合Ｃ＿ｉを入力する。
一方、情報処理装置Ｂ，１２０の入力部１２１は、ステップＳ１０１ｂにおいて、情報処理装置Ｂ，１２０の記憶部に保持されたデータ、例えば、図１０（２）に示すユーザ対応商品購入履歴データから生成される集合Ｓ＿ｊを入力する。
【０１７７】
各入力部１１１，１２１の入力データＣ＿ｉ，Ｓ＿ｊは、以下の（式８ａ，式８ｂ）に示すデータである。
【０１７８】
【数８】
2017122437.tif 000010
【０１７９】
（ステップＳ１０２）
次のステップＳ１０２の処理は、先に説明したＰＳＩ−ＣＡプロトコルを利用した内積算出処理である。
この内積算出処理は、図１１に示す情報処理装置Ａ，１１０の乱数生成部１１２、ハッシュ計算部１１３、算術演算部１１４、ランダム置換部１１５、データ送受信部１１６、および情報処理装置Ｂ，１２０の乱数生成部１２２、ハッシュ計算部１２３、算術演算部１２４、ランダム置換部１２５、データ送受信部１２６を利用して実行される。
【０１８０】
このステップＳ１０２の処理は、例えば図１０に示す２つの異なる情報処理装置の保持するセキュアデータである商品購入履歴データ中の設定値＝１（ユーザの購入履歴あり）のユーザＩＤからなる集合Ｃ＿ｉとＳ＿ｊの内積算出処理である。
【０１８１】
すべてのｉ（１≦ｉ≦ｋ）について、上記（式８ａ，式８ｂ）で示す集合Ｃ＿ｉとＳ＿ｊを入力値とする一括型ＰＳＩ−ＣＡを実行し、各ｉについて、以下の（式９）で示す内積を算出する。
【０１８２】
【数９】
2017122437.tif 000011
【０１８３】
ｎ＿（ｉ，ｊ）＝｜｛ｃｉ＿１，・・・，ｃｉ＿（ｖ＿ｉ）｝∩｛ｓｊ＿１，・・・，ｓｊ＿（ｗ＿ｊ）｝｜
ただし、（１≦ｊ≦ｍ）
を出力する。
【０１８４】
このステップＳ１０２において実行する一括型ＰＳＩ−ＣＡについての詳細処理については後述する。
【０１８５】
（ステップＳ１０３ａ、Ｓ１０３ｂ）
このステップＳ１０３の処理は、出力部における結果出力処理である。
図１１に示す情報処理装置Ａ，１１０の出力部１１７、および情報処理装置Ｂ，１２０の出力部１２７において実行される。
【０１８６】
図１１に示す情報処理装置Ａ，１１０の出力部１１７、および情報処理装置Ｂ，１２０の出力部１２７は、ステップＳ１０２において算出した内積、すなわち、集合Ｃ＿ｉとＳ＿ｊの内積である以下の（式１０）を出力する。
【０１８７】
【数１０】
2017122437.tif 000012
【０１８８】
なお、上記（式１０）に示す内積の値は、例えば、情報処理装置Ａ，１１０、および情報処理装置Ｂ，１２０のデータ処理部に出力される。
【０１８９】
各情報処理装置のデータ処理部は、入力した内積の値を用いて、各商品の購入ユーザの相関を判定することができる。
前述したように、内積：ｎ＿（ｉ，ｊ）の値が大きいほど、商品ｉと商品ｊの購入ユーザの相関（類似度）が高いと判定することができる。
なお、算出した内積と、ジャッカード（Ｊａｃｃａｒｄ）係数とは、先に説明した（式２ａ）と（式２）の関係にあり、算出した内積を用いてジャッカード（Ｊａｃｃａｒｄ）係数を算出することができる。
【０１９０】
［５．ＰＳＩ−ＣＡ（Ｐｒｉｖａｔｅ  ｓｅｔ  ｉｎｔｅｒｓｅｃｔｉｏｎ  ｃａｒｄｉｎａｌｉｔｙ）プロトコルを適用した一括型計算処理について］
次に、図１２に示すフローチャートのステップＳ１０２の処理として実行するＰＳＩ−ＣＡ（Ｐｒｉｖａｔｅ  ｓｅｔ  ｉｎｔｅｒｓｅｃｔｉｏｎ  ｃａｒｄｉｎａｌｉｔｙ）プロトコルを適用した一括型計算処理について説明する。
【０１９１】
先にＰＳＩ−ＣＡプロトコルの開示文献として文献［Ｅ．Ｄ．Ｃｒｉｓｔｏｆａｒｏ，  Ｐ．Ｇａｓｔｉ  ａｎｄ  Ｇ．Ｔｓｕｄｉｋ，Ｆａｓｔ  ａｎｄ  Ｐｒｉｖａｔｅ  Ｃｏｍｐｕｔａｔｉｏｎ  ｏｆ  Ｃａｒｄｉｎａｌｉｔｙ  ｏｆ  Ｓｅｔ  Ｉｎｔｅｒｓｅｃｔｉｏｎ  ａｎｄ  Ｕｎｉｏｎ，Ｃｒｙｐｔｏｌｏｇｙ  ａｎｄ  Ｎｅｔｗｏｒｋ  Ｓｅｃｕｒｉｔｙ，ｐｐ．２１８−２３１，２０１２］を紹介した。
【０１９２】
しかし、この文献に記載されているのは、１つの集合と１つの集合同士で共通要素数を求めるプロトコルに過ぎない。
これに対して、本開示の処理は、１つの集合と複数の集合同士で共通要素数を求める構成こととしている。
【０１９３】
例えば、本処理例において、
集合：Ｃ＿ｉは、企業１の提供する商品ｉを購入したユーザＩＤ（ｔ＝１〜ｎ）を要素とした集合である。
また、集合：Ｓ＿ｊは、企業２の提供する商品ｊを購入したユーザＩＤ（ｔ＝１〜ｎ）を要素とした集合である。
【０１９４】
本開示の処理では、
企業１の提供する１つの商品ｉを購入したユーザＩＤ（ｔ＝１〜ｎ）を要素とした集合である１つの集合：Ｃ＿ｉに対して、
企業２の提供する商品ｊを購入したユーザＩＤ（ｔ＝１〜ｎ）を要素としたｍ個の集合：Ｓ＿ｊ（ｊ＝１〜ｍ）各々との相関を示すｍ個の内積を一括して算出することができる。
【０１９５】
具体的には、例えば図１４に示すように、企業１の提供する１つの商品Ｉ＿１を購入したユーザＩＤ（ｔ＝１〜ｎ）を要素とした集合である１つの集合：Ｃ＿１に対して、
企業２の提供する商品ｊを購入したユーザＩＤ（ｔ＝１〜ｎ）を要素としたｍ個の集合：Ｓ＿ｊ（ｊ＝１〜ｍ）各々との相関を示すｍ個の内積を一括して算出することができる。
以下、このＰＳＩ−ＣＡプロトコルを適用した一括型計算処理について説明する。
【０１９６】
図１５、図１６に示すフローチャートは、図１２に示すフローのステップＳ１０２のＰＳＩ−ＣＡプロトコルを適用した一括型計算処理の詳細シーケンスを説明するフローチャートである。
【０１９７】
フローチャートの説明の前に、以下の説明において用いるパラメータについて説明する。
ｐ，ｑ：共通で入力される２つの素数（ｑは（ｐ−１）を割り切る）。特に記載がない場合は、全ての演算はＺ＿ｐ上で計算する。
ｇ：サイズがｑである部分群の生成元。
Ｈ：｛０，１｝＊→Ｚ＊＿ｐ：ハッシュ関数。
Ｈ'：｛０，１｝＊→｛０，１｝κ：ハッシュ関数。κはセキュリティパラメータ。
【０１９８】
以下、このフローチャートの各ステップの処理の詳細について、順次、説明する。
なお、以下において、各処理ステップの説明順は以下の設定とする。
（説明１）図１５に示す情報処理装置Ａ，１１０の実行する処理（ステップＳ２１１〜Ｓ２１３）
（説明２）図１５〜図１６に示す情報処理装置Ｂ，１２０の実行する処理（ステップＳ２２１〜Ｓ２２５）
（説明３）図１６に示す情報処理装置Ａ，１１０の実行する処理（ステップＳ２１４〜Ｓ２１６）
（説明４）図１６に示す情報処理装置Ｂ，１２０の実行する処理（ステップＳ２２６）
なお、図１５、図１６に示すフローに従って実行する処理における各情報処理装置Ａ，Ｂの入力値と、出力値を図１７に示している。
【０１９９】
［５−１．（説明１）情報処理装置Ａ，１１０の実行する処理（ステップＳ２１１〜Ｓ２１３）］
まず、図１５に示すフローチャートを参照して、情報処理装置Ａ，１１０の実行する処理（ステップＳ２１１〜Ｓ２１３）について、説明する。
【０２００】
（ステップＳ２１１）
図１５に示すフローのステップＳ２１１の処理は、図１１に示す情報処理装置Ａ，１１０の入力部１１１において実行する処理である。
情報処理装置Ａ，１１０の入力部１１１は、ステップＳ２１１において、情報処理装置Ａ，１１０の記憶部に保持されたデータ、例えば、図１０（１）に示すユーザ対応商品購入履歴データから生成される集合：Ｃを入力する。
集合Ｃは、以下の集合である。
Ｃ＝｛Ｃ＿１，Ｃ＿２，・・・，Ｃ＿（ｖ＿ｉ）｝
【０２０１】
集合：Ｃの要素であるＣ＿ｉは、情報処理装置Ａ，１１０を持つ企業１の提供する１つの商品ｉを購入したユーザＩＤ（ｔ＝１〜ｎ）を要素とした１つの商品対応の集合であり、以下の（式１１）に示す集合である。
【０２０２】
【数１１】
2017122437.tif 000013
【０２０３】
（ステップＳ２１２）
ステップＳ２１２の処理は、図１１に示す情報処理装置Ａ，１１０の乱数生成部１１２と、算術演算部１１４の実行する処理である。
乱数生成部１１２は、乱数Ｒ＿Ｃ、Ｒ'＿Ｃを生成する。
算術演算部１１４は、これらの乱数に基づいて、共有情報Ｘを計算する。
これらの計算は、以下の（式１２）に示す手順に従って実行される。
【０２０４】
【数１２】
2017122437.tif 000014
【０２０５】
（ステップＳ２１３）
ステップＳ２１３の処理は、図１１に示す情報処理装置Ａ，１１０のハッシュ計算部１１３と、算術演算部１１４の実行する処理である。
ハッシュ計算部１１３は、入力値（Ｃ＿ｔ）のハッシュ値を求め、
さらに算術演算部１１４は、ハッシュ計算部１１３において算出されたハッシュ値に対して、乱数Ｒ'＿Ｃでべき乗する処理を行なう。
具体的には、以下の（式１３）に示す演算を実行する。
【０２０６】
【数１３】
2017122437.tif 000015
【０２０７】
さらに、図１１に示す情報処理装置Ａ，１１０のデータ送受信部１１６は、以下の各データを情報処理装置Ｂ，１２０に送信する。
共有情報：Ｘ＝ｇＲｃ
集合：｛ａ＿１，・・・，ａ＿ｖ｝、
【０２０８】
［５−２．（説明２）情報処理装置Ｂ，１２０の実行する処理（ステップＳ２２１〜Ｓ２２５）］
次に、図１５、図１６に示すフローチャートを参照して、情報処理装置Ｂ，１２０の実行する処理（ステップＳ２２１〜Ｓ２２５）について、説明する。
【０２０９】
（ステップＳ２２１）
図１５に示すフローのステップＳ２２１の処理は、図１１に示す情報処理装置Ｂ，１２０の入力部１２１において実行する処理である。
情報処理装置Ｂ，１２０の入力部１２１は、ステップＳ２２１において、情報処理装置Ｂ，１２０の記憶部に保持されたデータ、例えば、図１０（２）に示すユーザ対応商品購入履歴データから生成される集合：Ｓ＿ｊを入力する。
集合：Ｓ＿ｊは、情報処理装置Ｂ，１２０を持つ企業２の提供する１つの商品ｊを購入したユーザＩＤ（ｔ＝１〜ｎ）を要素とした１つの商品対応の集合であり、以下の（式１４）に示す集合である。
【０２１０】
【数１４】
2017122437.tif 000016
【０２１１】
（ステップＳ２２２）
図１５に示すフローのステップＳ２２２の処理は、図１１に示す情報処理装置Ｂ，１２０のランダム置換部１２５と、ハッシュ計算部１２３において実行する処理である。
情報処理装置Ｂ，１２０のランダム置換部１２５は、ステップＳ２２２において、ステップＳ２２１における入力値：Ｓ＿ｊをランダム置換し、ランダム置換データをハッシュ計算部１２３に出力する。
ハッシュ計算部１２３は、ランダム置換部１２５において生成された入力値：Ｓ＿ｊのランダム置換データのハッシュ値を算出する。
具体的な計算は、以下の（式１５ａ）（式１５ｂ）に従って実行される。
【０２１２】
【数１５】
2017122437.tif 000017
【０２１３】
上記式中、（式１５ａ）が、ランダム置換部１２５による入力値：Ｓ＿ｊのランダム置換処理である。
（式１５ｂ）が、ハッシュ計算部１２３による、ランダム置換データのハッシュ値算出処理である。
【０２１４】
（ステップＳ２２３）
ステップＳ２２３の処理は、図１１に示す情報処理装置Ｂ，１２０のデータ送受信部１２６と、乱数生成部１２２と、算術演算部１２４において実行する処理である。
【０２１５】
データ送受信部１２６は、情報処理装置Ａにおける処理ステップであるステップＳ２１２〜Ｓ２１３において生成された以下のデータを受信する。
共有情報：Ｘ＝ｇＲｃ
集合：｛ａ＿１，・・・，ａ＿ｖ｝、
【０２１６】
次に、乱数生成部１２２は、乱数Ｒ＿Ｓ、Ｒ'＿Ｓを生成し、算術演算部１２４が共有情報：Ｙ＝ｇＲｓを計算する。
これらの計算は、以下に示す（式１６）に従って実行される。
【０２１７】
【数１６】
2017122437.tif 000018
【０２１８】
（ステップＳ２２４）
ステップＳ２２４の処理は、図１１に示す情報処理装置Ｂ，１２０の算術演算部１２４と、ランダム置換部１２５において実行する処理である。
【０２１９】
算術演算部１２４は、情報処理装置Ａ，１１０からの入力データ、
｛ａ＿１，・・・，ａ＿ｖ｝を、
乱数Ｒ'＿Ｓでべき乗し、このべき乗データをランダム置換部１２５に出力する。
ランダム置換部１２５は、入力したべき乗データのランダム置換処理を実行する。
具体的には、以下に示す（式１７ａ）、（式１７ｂ）に従った処理を実行する。
【０２２０】
【数１７】
2017122437.tif 000019
【０２２１】
上記式中、（式１７ａ）が、算術演算部１２４における入力データ｛ａ＿１，・・・，ａ＿ｖ｝に対する乱数Ｒ'＿Ｓによるべき乗処理である。
（式１７ｂ）が、ランダム置換部１２５によるべき乗データのランダム置換処理である。
【０２２２】
（ステップＳ２２５）
ステップＳ２２５の処理は、図１１に示す情報処理装置Ｂ，１２０の算術演算部１２４と、ハッシュ計算部１２３、データ送受信部１２６において実行する処理である。
【０２２３】
算術演算部１２４は、ステップＳ２２２で生成した入力値のランダム置換後のハッシュ値に対して、さらに、乱数Ｒ'＿Ｓでべき乗し、
さらに、情報処理装置Ａ，１１０からの入力値である、
共有情報：Ｘ＝ｇＲｃ
上記Ｘを乗算し、乗算値をハッシユ計算部１２３に出力する。
ハッシュ計算部１２３が、この乗算値に対するハッシュ値を算出する。
具体的には、以下の（式１８ａ）、（式１８ｂ）に従った計算を実行する。
【０２２４】
【数１８】
2017122437.tif 000020
【０２２５】
上記式中、（式１８ａ）が、算術演算部１２４における入力値のランダム置換後のハッシュ値に対する乱数Ｒ'＿Ｓによるべき乗処理と、共有情報：Ｘ＝ｇＲｃの乗算処理である。
（式１８ｂ）が、ハッシュ計算部１２３による、乗算値に対するハッシュ値算出処理である。
【０２２６】
情報処理装置Ｂ，１２０のデータ送受信部１２６は、ステップＳ２２３で生成した、
共有情報：Ｙ＝ｇＲｓ、
さらに、ステップＳ２２４，Ｓ２２５において生成したデータを情報処理装置Ａ，１１０に送信する。
情報処理装置Ｂ，１２０から、情報処理装置Ａ，１１０に送信されるデータは、以下の（式１９）に示す各データである。
【０２２７】
【数１９】
2017122437.tif 000021
【０２２８】
［５−３．（説明３）情報処理装置Ａ，１１０の実行する処理（ステップＳ２１４〜Ｓ２１６）］
次に、図１６に示すフローチャートを参照して、情報処理装置Ａ，１１０の実行する処理（ステップＳ２１４〜Ｓ２１６）について、説明する。
【０２２９】
上述した処理中、情報処理装置Ａ，１１０の実行するステップＳ２１２〜Ｓ２１３の処理、および、情報処理装置Ｂ，１２０の実行するステップＳ２２２〜Ｓ２２５の処理は、各情報処理装置Ａ，Ｂの保持するセキュアデータの変換処理として行われる処理である。
具体的にはベクトル構成要素の暗号化、ハッシュ算出、ランダム置換等の処理により、セキュアデータを変換して、漏えいさせないための処理である。
以下に説明するステップＳ２４１〜Ｓ２１５の処理は、これらのセキュアデータを利用して実行されるベクトル間の相関判定処理となる。
【０２３０】
（ステップＳ２１４）
ステップＳ２１４の処理は、情報処理装置Ａ，１１０のデータ送受信部１１６と、算術演算部１１４、ハッシュ計算部１１３の実行する処理である。
情報処理装置Ａ，１１０のデータ送受信部１１６は、情報処理装置Ｂ，１２０から、共有情報：Ｙ＝ｇＲｓ等、上記の（式１９）に示す各データを受信する。
【０２３１】
情報処理装置Ａ，１１０の算術演算部１１４は、情報処理装置Ｂ，１２０からの入力データに対して、乱数Ｒ'＿ｃの逆数でべき乗し、さらに、ＹＲｃを乗算し、この計算結果をハッシュ計算部１１３に出力する。
ハッシュ計算部１１３は、算術演算部１１４からの入力に対するハッシュ値を算出する。
具体的には、以下の（式２０ａ）、（式２０ｂ）に従った計算を実行する。
【０２３２】
【数２０】
2017122437.tif 000022
【０２３３】
上記式中、（式２０ａ）が、算術演算部１１４における計算処理であり、（式２０ｂ）が、ハッシュ計算部１１３によるハッシュ値算出処理である。
【０２３４】
（ステップＳ２１５）
ステップＳ２１５の処理は、情報処理装置Ａ，１１０の要素比較部１１５の実行する処理である。
情報処理装置Ａ，１１０の要素比較部１１５は、情報処理装置Ｂ，１２０を持つ企業２の提供するｍ個の商品ｊ（ｊ＝１〜ｍ）の各々について、情報処理装置Ａ，１１０を持つ企業１の提供する１つの商品ｉ（ｉ＝１〜ｋ）との共通要素数を計算する。
【０２３５】
具体的には、例えば、企業２の提供するｍ個の商品ｊと、企業１の提供する１つの商品ｉを共通に購入したユーザ数（要素数）を計算する。
この共通要素数計算処理は、以下の（式２１）に従った処理である。
【０２３６】
【数２１】
2017122437.tif 000023
【０２３７】
上記の（式２１）に従った共通要素数の算出を実行する。
上記（式２１）に従った要素数比較は、情報処理装置Ｂ，１２０を持つ企業２の提供するｍ個の商品ｊ（ｊ＝１〜ｍ）の各々について実行される。
この処理により、情報処理装置Ａ，１１０を持つ企業１の提供する１つの商品ｉに対する、企業２の提供するｍ個の商品ｊ（ｊ＝１〜ｍ）の各々について、ｍ個の共通要素数データ、すなわち、
ｎ＿ｊ
ただし、（ｊ＝１〜ｍ）
このｍ個の共通要素数データが連続して得られることになる。
【０２３８】
情報処理装置Ａ，１１０のデータ送受信部１１６は、このｍ個の共通要素数データ：ｎ＿ｊを情報処理装置Ｂ，１２０に送信する。
【０２３９】
（ステップＳ２１６）
ステップＳ２１６の処理は、情報処理装置Ａ，１１０の出力部１１７の実行する処理である。
情報処理装置Ａ，１１０の出力部１１７は、ステップＳ２１５で算出したｍ個の共通要素数データ：ｎ＿ｊを情報処理装置Ａ，１１０のデータ処理部に出力する。
【０２４０】
情報処理装置Ａ，１１０のデータ処理部は、入力したｍ個の共通要素数データ：ｎ＿ｊを用いて、各商品の購入ユーザの相関を判定することができる。
すなわち、情報処理装置Ｂ，１２０を持つ企業２の提供するｍ個の商品ｊ（ｊ＝１〜ｍ）の各々について、情報処理装置Ａ，１１０を持つ企業１の１つの提供商品ｉも購入した共通購入ユーザ数を確認することが可能となる。この共通ユーザ数が多いほど、商品購入ユーザ相関が高いと判定することができる。
【０２４１】
なお、上記の（式２１）に従って算出される共通要素数は、先に説明した（式２ａ）の購入ベクトル間の内積に等しい、
また、この内積と、ジャッカード（Ｊａｃｃａｒｄ）係数とは、先に説明した（式２ａ）と（式２）の関係にあり、算出した内積を用いてジャッカード（Ｊａｃｃａｒｄ）係数を算出することができる。
【０２４２】
［５−４．（説明４）図１６に示す情報処理装置Ｂ，１２０の実行する処理（ステップＳ２２６）］
最後に、図１６に示すフローチャートを参照して、情報処理装置Ｂ，１２０の実行する処理（ステップＳ２２６）について、説明する。
【０２４３】
（ステップＳ２２６）
ステップＳ２２６は、情報処理装置Ｂ，１２０のデータ送受信部１２６と出力部１２７の実行する処理である。
【０２４４】
情報処理装置Ｂ，１２０のデータ送受信部１２６は、情報処理装置Ａ，１１０の実行ステップＳ２１５で算出されたｍ個の共通要素数データ：ｎ＿ｊを情報処理装置Ａ，１１０から受信し、出力部１２７に提供する。
【０２４５】
情報処理装置Ｂ，１２０の出力部１２７は、ｍ個の共通要素数データ：ｎ＿ｊを情報処理装置Ｂ，１２０のデータ処理部に出力する。
情報処理装置Ｂ，１２０のデータ処理部は、入力したｍ個の共通要素数データ：ｎ＿ｊを用いて、各商品の購入ユーザの相関を判定することができる。
すなわち、情報処理装置Ｂ，１２０を持つ企業２の提供するｍ個の商品ｊ（ｊ＝１〜ｍ）の各々について、情報処理装置Ａ，１１０を持つ企業１の１つの提供商品ｉも購入した共通購入ユーザ数を認することが可能となる。この共通ユーザ数が多いほど、商品購入ユーザ相関が高いと判定することができる。
【０２４６】
このように、本開示の処理では、図１５、図１６を参照して説明したフローチャートに従った１回の処理シーケンスに従った処理によって、情報処理装置Ａ，１１０を持つ企業１の提供する１つの商品ｉに対する、企業２の提供するｍ個の商品ｊ（ｊ＝１〜ｍ）の各々について、ｍ個の共通要素数データ、すなわち、
ｎ＿ｊ
ただし、（ｊ＝１〜ｍ）
このｍ個の共通要素数データを連続して取得することが可能となる。
【０２４７】
図１５、図１６を参照して説明した処理をまとめると、以下のようになる。
情報処理装置Ａ，１１０は、セキュアデータを要素とするｋ本のベクトルを有する。
一方、情報処理装置Ｂ，１２０は、セキュアデータを要素とするｍ本のベクトルを有する第２の情報処理装置を有する、
情報処理装置Ａ，１１０は、情報処理装置Ｂ，１２０から、ｍ本のベクトルから選択されたベクトルＹに関するベクトル情報を暗号化データとして受信する。
情報処理装置Ａ，１１０のデータ処理部は、情報処理装置Ａ，１１０の保持するｋ本のベクトルから選択された１つのベクトルＸと、情報処理装置Ｂ，１２０から受信したベクトルＹから、特定の共通値、すなわち（１）を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行する。
【０２４８】
この処理において、情報処理装置Ａ，１１０のデータ処理部は、１つのベクトルＸに対して、ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する。
【０２４９】
この処理によって、情報処理装置Ａ，１１０を持つ企業１の提供する１つの商品ｉに対する、企業２の提供するｍ個の商品ｊ（ｊ＝１〜ｍ）の各々について、ｍ個の共通要素数データ、すなわち、
ｎ＿ｊ
ただし、（ｊ＝１〜ｍ）
このｍ個の共通要素数データを連続して取得することが可能となる。
【０２５０】
［６．情報処理装置のハードウェア構成例について］
最後に、上述した実施例に従った処理を実行する情報処理装置のハードウェア構成例について、図１８を参照して説明する。
【０２５１】
図１８は、情報処理装置のハードウェア構成例を示す図である。
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）４０２、または記憶部４０８に記憶されているプログラムに従って各種の処理を実行する制御部やデータ処理部として機能する。例えば、上述した実施例において説明したシーケンスに従った処理を実行する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４０３には、ＣＰＵ４０１が実行するプログラムやデータなどが記憶される。これらのＣＰＵ４０１、ＲＯＭ４０２、およびＲＡＭ４０３は、バス４０４により相互に接続されている。
【０２５２】
ＣＰＵ４０１はバス４０４を介して入出力インタフェース４０５に接続され、入出力インタフェース４０５には、各種スイッチ、キーボード、マウス、マイクロホンなどよりなる入力部４０６、ディスプレイ、スピーカなどよりなる出力部４０７が接続されている。ＣＰＵ４０１は、入力部４０６から入力される指令に対応して各種の処理を実行し、処理結果を例えば出力部４０７に出力する。
【０２５３】
入出力インタフェース４０５に接続されている記憶部４０８は、例えばハードディスク等からなり、ＣＰＵ４０１が実行するプログラムや各種のデータを記憶する。通信部４０９は、インターネットやローカルエリアネットワークなどのネットワークを介したデータ通信の送受信部として機能し、外部の装置と通信する。
【０２５４】
入出力インタフェース４０５に接続されているドライブ４１０は、磁気ディスク、光ディスク、光磁気ディスク、あるいはメモリカード等の半導体メモリなどのリムーバブルメディア４１１を駆動し、データの記録あるいは読み取りを実行する。
【０２５５】
［７．本開示の構成のまとめ］
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【０２５６】
なお、本明細書において開示した技術は、以下のような構成をとることができる。
（１）  ｋ本のベクトルから選択された１つのベクトルＸと、
ｍ本のベクトルから選択された１つのベクトルＹとの相関性を判定するデータ処理部を有し、
前記データ処理部は、
前記ベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理装置。
【０２５７】
（２）  前記ベクトルＸは、標本対応の要素の値が１または０の２値データからなるｎ要素のｋ本のベクトルから選択された１つのベクトルであり、
前記ベクトルＹは、標本対応の要素の値が１または０の２値データからなるｎ要素のｍ本のベクトルから選択された１つのベクトルであり、
前記データ処理部は、
前記ベクトルＸと前記ベクトルＹの要素間の内積算出処理として、
前記ベクトルＸの要素中、値が１となる要素対応の標本識別子、および、
前記ベクトルＹの要素中、値が１となる要素対応の標本識別子とから共通する標本識別子の数を抽出する処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数のベクトルＹ各々について、値が１となる共通する要素対応の標本識別子を連続的に抽出する処理を実行する（１）に記載の情報処理装置。
【０２５８】
（３）  前記データ処理部は、
前記ベクトルＸ、または前記ベクトルＹのいずれか一方のベクトル情報を異なる情報処理装置から暗号化データとして受信してデータ処理を実行する（１）または（２）に記載の情報処理装置。
【０２５９】
（４）  前記データ処理部は、
前記セキュア計算として、前記ベクトルＸ、または前記ベクトルＹの少なくともいずれか一方の要素対応の標本識別子の変換データを用いた計算処理を実行する（１）〜（３）いずれかに記載の情報処理装置。
【０２６０】
（５）  前記データ処理部は、
前記セキュア計算として、前記ベクトルＸ、または前記ベクトルＹの少なくともいずれか一方の要素対応の標本識別子のランダム置換データを用いた計算処理を実行する（１）〜（４）いずれかに記載の情報処理装置。
【０２６１】
（６）  前記データ処理部は、
前記ベクトルＸの要素中、値が１となる要素対応の標本識別子、および、
前記ベクトルＹの要素中、値が１となる要素対応の標本識別子とから共通する標本識別子の数を算出し、算出数を、前記ベクトルＸと前記ベクトルＹの要素間の内積値とし、該内積値の値が大きいほど、前記ベクトルＸと、前記ベクトルＹとの相関が高いと判定する（１）〜（５）いずれかに記載の情報処理装置。
【０２６２】
（７）  前記データ処理部は、
前記内積値を適用して、ジャッカード（Ｊａｃｃａｒｄ）係数を算出し、ジャッカード（Ｊａｃｃａｒｄ）係数の値が大きいほど、前記ベクトルＸと、前記ベクトルＹとの相関が高いと判定する（６）に記載の情報処理装置。
【０２６３】
（８）  セキュアデータを要素とするｋ本のベクトルを有する第１の情報処理装置と、
セキュアデータを要素とするｍ本のベクトルを有する第２の情報処理装置を有する情報処理システムであり、
前記第１の情報処理装置は、
前記第２の情報処理装置から、前記ｍ本のベクトルから選択されたベクトルＹに関するベクトル情報を暗号化データとして受信し、
前記第１の情報処理装置のデータ処理部は、
前記第１の情報処理装置の保持するｋ本のベクトルから選択された１つのベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理システム。
【０２６４】
（９）  前記ベクトルＸは、標本対応の要素の値が１または０の２値データからなるｎ要素のｋ本のベクトルから選択された１つのベクトルであり、
前記ベクトルＹは、標本対応の要素の値が１または０の２値データからなるｎ要素のｍ本のベクトルから選択された１つのベクトルであり、
前記データ処理部は、
前記ベクトルＸと前記ベクトルＹの要素間の内積算出処理として、
前記ベクトルＸの要素中、値が１となる要素対応の標本識別子、および、
前記ベクトルＹの要素中、値が１となる要素対応の標本識別子とから共通する標本識別子の数を抽出する処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数のベクトルＹ各々について、値が１となる共通する要素対応の標本識別子を連続的に抽出する処理を実行する（８）に記載の情報処理システム。
【０２６５】
（１０）  前記データ処理部は、
前記セキュア計算として、前記ベクトルＸ、または前記ベクトルＹの少なくともいずれか一方の要素対応の標本識別子の変換データを用いた計算処理を実行する（８）または（９）に記載の情報処理システム。
【０２６６】
（１１）  前記データ処理部は、
前記セキュア計算として、前記ベクトルＸ、または前記ベクトルＹの少なくともいずれか一方の要素対応の標本識別子のランダム置換データを用いた計算処理を実行する（８）〜（１０）いずれかに記載の情報処理システム。
【０２６７】
（１２）  前記データ処理部は、
前記ベクトルＸの要素中、値が１となる要素対応の標本識別子、および、
前記ベクトルＹの要素中、値が１となる要素対応の標本識別子とから共通する標本識別子の数を算出し、算出数を、前記ベクトルＸと前記ベクトルＹの要素間の内積値とし、該内積値の値が大きいほど、前記ベクトルＸと、前記ベクトルＹとの相関が高いと判定する）８）〜（１１）いずれかに記載の情報処理システム。
【０２６８】
（１３）  前記データ処理部は、
前記内積値を適用して、ジャッカード（Ｊａｃｃａｒｄ）係数を算出し、ジャッカード（Ｊａｃｃａｒｄ）係数の値が大きいほど、前記ベクトルＸと、前記ベクトルＹとの相関が高いと判定する（１２）に記載の情報処理システム。
【０２６９】
（１４）  情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
ｋ本のベクトルから選択された１つのベクトルＸと、
ｍ本のベクトルから選択された１つのベクトルＹとの相関性を判定するデータ処理部を有し、
前記データ処理部は、
前記ベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法。
【０２７０】
（１５）  セキュアデータを要素とするｋ本のベクトルを有する第１の情報処理装置と、
セキュアデータを要素とするｍ本のベクトルを有する第２の情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
前記第１の情報処理装置は、
前記第２の情報処理装置から、前記ｍ本のベクトルから選択されたベクトルＹに関するベクトル情報を暗号化データとして受信し、
前記第１の情報処理装置のデータ処理部は、
前記第１の情報処理装置の保持するｋ本のベクトルから選択された１つのベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法。
【０２７１】
（１６）  情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
ｋ本のベクトルから選択された１つのベクトルＸと、
ｍ本のベクトルから選択された１つのベクトルＹとの相関性を判定するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
前記ベクトルＸと、前記ベクトルＹから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行させ、
さらに、
１つのベクトルＸに対して、前記ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行させるプログラム。
【０２７２】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０２７３】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０２７４】
上述したように、本開示の一実施例の構成によれば、高速かつ効率的なベクトル間の相関性判定処理が実現される。
具体的には、セキュアデータを要素とするｋ本のベクトルを有する第１の情報処理装置と、セキュアデータを要素とするｍ本のベクトルを有する第２の情報処理装置を有する情報処理システムであり、第１の情報処理装置は、第２の情報処理装置から、ｍ本のベクトルから選択されたベクトルＹに関するベクトル情報を暗号化データとして受信し、第１の情報処理装置のデータ処理部は、第１の情報処理装置の保持するｋ本のベクトルから選択された１つのベクトルＸと、ｍ本のベクトルから選択される複数の異なるベクトルＹ各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する。
本構成により、高速かつ効率的なベクトル間の相関性判定処理が実現される。
【符号の説明】
【０２７５】
１１０  情報処理装置Ａ
１１１  入力部
１１２  乱数生成部
１１３  ハッシュ計算部
１１４  算術演算部
１１５  要素比較部
１１６  データ送受信
１１７  出力部
１２０  情報処理装置Ｂ
１２１  入力部
１２２  乱数生成部
１２３  ハッシュ計算部
１２４  算術演算部
１２５  ランダム置換部
１２６  データ送受信部
１２７  出力部
４０１  ＣＰＵ
４０２  ＲＯＭ
４０３  ＲＡＭ
４０４  バス
４０５  入出力インタフェース
４０６  入力部
４０７  出力部
４０８  記憶部
４０９  通信部
４１０  ドライブ
４１１  リムーバブルメディア
【図１】
2017122437.tif 000024
【図２】
2017122437.tif 000025
【図３】
2017122437.tif 000026
【図４】
2017122437.tif 000027
【図５】
2017122437.tif 000028
【図６】
2017122437.tif 000029
【図７】
2017122437.tif 000030
【図８】
2017122437.tif 000031
【図９】
2017122437.tif 000032
【図１０】
2017122437.tif 000033
【図１１】
2017122437.tif 000034
【図１２】
2017122437.tif 000035
【図１３】
2017122437.tif 000036
【図１４】
2017122437.tif 000037
【図１５】
2017122437.tif 000038
【図１６】
2017122437.tif 000039
【図１７】
2017122437.tif 000040
【図１８】
2017122437.tif 000041
【国際調査報告】
2017122437.tif 000042
2017122437.tif 000043
2017122437.tif 000044
2017122437.tif 000045