(57)【要約】  プライバシー情報を含むデータに対する分析処理を外部リソースに依頼する際、プライバシー上の問題が発生する。プライバシー情報を含むデータを検索可能暗号で暗号化し、外部リソースに預託し、分析を行う際には、分析クエリを検索可能暗号クエリ関数で暗号化し暗号化クエリを外部リソースに渡し暗号化状態を復号することなく分析を実行する。クエリの条件文に対する出現数よりも否定条件文に対応する出現数が少ない場合、否定条件文に対応する暗号化検索に基づいて、入力された暗号化クエリに対応するデータの出現数を求める
2015063905.tif 000002
【特許請求の範囲】
【請求項１】
表形式のデータに対して、表内の各データ単位が表内に出現した数を分析結果として分析処理を行うデータ分析システムにおいて、
前記データ単位は、共通鍵もしくは公開鍵検索可能暗号方式の暗号文生成関数で暗号化された暗号文であり、該表形式データの各データ単位は暗号化状態でデータベースに保管され、
分析を行う際には、共通鍵もしくは公開鍵検索可能暗号方式の秘密鍵をもつユーザが検索可能暗号クエリ生成関数を用いて生成した1つの暗号化クエリと、前記暗号化された表データの各データ単位を、検索可能暗号マッチング関数を用いて平文情報の一致判定を行い、
一致判定の結果が一致となった該暗号化されたデータ単位の数を該暗号化クエリの出現数とし、該出現数を分析結果として分析処理を実行する
ことを特徴とするデータ分析システム。
【請求項２】
請求項１に記載のデータ分析システムにおいて、
前記方法で暗号化クエリに対する出現数を求め、該出現数を前記検索可能暗号マッチング関数で平文情報の一致もしくは不一致の判定を行ったデータ単位の総数で割ることで、該暗号化クエリの出現確率を算出し、該出現確率を分析結果として分析処理を実行する
ことを特徴とするデータ分析システム。
【請求項３】
請求項１に記載のデータ分析システムにおいて、
分析を行う際には、共通鍵もしくは公開鍵検索可能暗号方式の秘密鍵をもつユーザが検索可能暗号クエリ生成関数を用いて生成した複数の暗号化クエリに対して、該各暗号化クエリについて、前記暗号化された表形式データの各行に対して、該行内の特定の列のデータ単位に対して、前記方法で暗号化クエリと暗号化されたデータ単位に対する平文情報の一致判定を行い、平文情報が一致した行の集合、平文情報が一致しなかった行の集合をそれぞれ算出し、該行集合を要素とする論理演算あるいはブール演算の演算結果の集合に含まれる行の数を、該複数の暗号化クエリとそれに対する論理演算あるいはブール演算の分析結果として分析処理を実行することを特徴とするデータ分析システム。
【請求項４】
請求項２に記載のデータ分析システムにおいて、
分析を行う際には、共通鍵もしくは公開鍵検索可能暗号方式の秘密鍵をもつユーザが検索可能暗号クエリ生成関数を用いて生成した複数の暗号化クエリに対して、該各暗号化クエリについて、前記暗号化された表形式データの各行に対して、該行内の特定の列のデータ単位に対して、前記方法で暗号化クエリと暗号化されたデータ単位に対する平文情報の一致判定を行い、平文情報が一致した行の総数を算出し、該行の総数を前記方法で平文情報の一致もしくは不一致の判定を行ったデータ単位の総数で割ることで、該行と該暗号化クエリ対する出現確率を全ての暗号化クエリに対して算出し、該出現確率を引数とする特定の分析関数の出力値を分析結果として分析処理を実行することを特徴とする分析システム。
【請求項５】
請求項１に記載のデータ分析システムにおいて、
前記暗号化された表データの各データ単位を、前記暗号化クエリと検索可能暗号マッチング関数を用いて平文情報の一致判定を行い、一致判定の結果が一致となった該暗号化されたデータ単位全体からなる集合を分析結果として分析処理を実行することを特徴とするデータ分析システム。
【請求項６】
請求項１に記載のデータ分析システムにおいて、
前記方法で暗号化クエリの条件文に対する出現数よりも前記クエリの否定条件文に対応する出現数が少ない場合、前記否定条件文に対応する暗号化クエリを生成して暗号化検索を行い、前記暗号化検索の結果求めた出現数に基づいて、入力された暗号化クエリに対応するデータの出現数を求めることを特徴とするデータ分析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各セルが暗号化された表形式のデータに対して。暗号化データを復号することなく、相関値などの統計値を集計するシステムに関する。
【背景技術】
【０００２】
近年、大量のデータを収集し分析を行い、価値のある知識を抽出するビックデータビジネスが普及をみせている。大量データの分析を実行する際、大容量のストレージや高速なCPUおよびこれらを分散統制するシステムを必要とするため、クラウドなどの外部リソースに分析を依頼する事が考えられる。しかし、データを外部にアウトソースする場合、プライバシー上の問題が発生する。そのため、暗号化やその他、プライバシー保護技術を施した後にデータをアウトソースし分析を行う秘匿分析技術が注目を集めている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１０８４８８号公報
【特許文献２】特開２０１２−１２３６１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述のデータ分析時に発生するプライバシー上の課題に対して、例えば、特許文献１では、データを秘匿したままクロス集計を省メモリリソースで行う方法が提案されている。特許文献１に記載された方式ではクロス集計のみに特化しており、例えば数値データに対する平均値算出や分散値算出などの分析機能はない、また大きな課題として、属性値がとる値が方式運用前に規定されているため、事前に属性値の取る値が分かっていないデータセットには適用が出来ないなどの運用の柔軟性に問題がある、さらに該文献中の維持確率や乱数生成パラメータなどの設定において、分析精度と安全性のトレードオフが存在するため、データを秘匿せずに分析した際と同じ分析精度を確保するためには、安全性を落とす必要が生じる。一般に、分析対象のデータを乱数で撹乱する際、撹乱後のデータの秘匿性と分析精度の間にトレードオフが存在する事が知られている。一方、乱数ではなく、秘密鍵を持つ暗号方式を利用した秘匿データ分析技術においては、復号処理を実行する秘密鍵を持つ復号権利者以外は、暗号化データに対する情報を得ることが困難なため、暗号化状態で分析を行えば、データのプライバシーを損なうことなく精度の高い分析結果を得ることが出来る。
【課題を解決するための手段】
【０００５】
上述の課題、すなわち暗号化データに対する分析処理をどう実現するか、を解決するため、検索可能暗号を利用する方法が考えられる。検索可能暗号とは、通常の確率的暗号化、復号化を行う共通鍵暗号機能に加えて暗号化したまま（復号することなく）一致判定（マッチング処理）ができる暗号方式の総称である。暗号化、復号化、および検索の際に利用する暗号化検索クエリ生成は、秘密鍵を持つ復号権利者のみが実行可能である。一方、暗号文と暗号化クエリのマッチング処理は誰でも、特に秘密鍵を持たない分析処理実行者も可能である。検索可能暗号方式の既存方式については、例えば特許文献２参照。このように検索可能暗号を用いれば、分析実行者は暗号化データを復号することなく、復号権利者が生成した暗号化クエリに対してマッチングにヒットした暗号化データの個数を数え上げる事が出来きる。そのヒットした数を復号権利者に渡す事で、復号権利者は、暗号化データ中に存在する各データの出現頻度を得ることが可能となる。さらに、復号権利者は複数の暗号化クエリを分析実行者に渡す事で、それらクエリ間の出現頻度の差や支持度、信頼度、リフト値などの統計情報を算出することが出来る。また、暗号化された数値データに関しては、取りうる値全ての暗号化クエリを分析実行者に渡す事で、各値の出現頻度が分かり、結果として合計値、平均値、分散値などの統計量が取得できる。このとき、分析実行者は暗号化データと暗号化クエリに対してマッチングにヒットしたか、もしくはしていないかの情報しか得られていないこと、データやクエリの平文に関する情報は暗号化されているためデータのプライバシーが保護できる。
【発明の効果】
【０００６】
本発明を実施したデータ分析システムにおいては、情報提供者のプライバシーを保護しつつ、各データの出現頻度、出現確率、支持度、信頼度、リフト値などの統計情報を算出することが出来る。
【図面の簡単な説明】
【０００７】
【図１】本実施形態におけるデータ分析システムの構成例を示す図である。
【図２】本実施形態における情報提供者端末と、データ収集者端末と、分析実行者端末と、情報利用者端末の構成例を示す図である。
【図３】平文データ1,2,…,Nのデータフォーマット例を示す図である。
【図４】本実施形態における情報提供者とデータ収集者端末と分析実行者端末と情報利用者端末間のデータ送受信および、プログラムの処理フローを示す図である。
【図５】暗号化データと平文クエリセットと暗号化クエリセットと暗号化分析クエリデータのデータフォーマット例を示す図である。
【図６】暗号化分析クエリデータと分析結果のデータフォーマット例を示す図である。
【図７】暗号化分析処理においてマッチングしたデータを数え上げる分析例を示す図である。
【図８】暗号化分析処理においてマッチングしたデータとマッチングしなかったデータに分割する分析例を示す図である。
【図９】本実施形態におけるデータ分析システムの処理概要を示す図である。
【発明を実施するための形態】
【実施例１】
【０００８】
以下、本発明の一実施形態を図面に基づいて詳細に説明する。なお、本実施例では、分析の対象となるデータとして性別カラム、購入商品カラム、金額カラムから構成される購買履歴データを取り扱うが、本発明の適用は購買履歴データに限定されるものではなく、より一般の表形式のデータに対する分析に適用可能である。また、本実施例では、表形式データに対する分析の一例として、支持度、信頼度、リフト値を算出するアソシエーション分析の方法を説明する。【０００９】
以下、図１と図２を用いて、本実施例のシステム構成を示す。【００１０】
図１は、本発明の実施の形態であるデータ分析システムの概略図である。図示するように、本システムは、情報適用者端末100-1から情報適用者端末100-NまでのN個の端末と、データ収集者端末200と、分析実行者端末300と、情報利用者端末400とがネットワーク500を介して相互に情報を送受信できるように設計されている。【００１１】
図２は、情報提供者端末100-1のハードウェア概略図である。図示するように、情報提供者端末100-1は、CPU101と、補助記憶装置102と、メモリ103と、表示装置105と、入出力インターフェース106と、通信装置107と、が内部信号線104で連結し、構成される。また、補助記憶装置102には、プログラムコードが格納されている。プログラムコードは、メモリ103にロードされCPU101によって実行される。また、情報提供者端末100-2から情報提供者端末100-N、およびデータ収集者端末200と、分析実行者端末300と、情報利用者端末400も同様のハードウェア構成を具備する。【００１２】
以下、図３から図７を用いて本データ分析システムの分析処理手順を示す。【００１３】
本実施例で使用する検索可能暗号方式の用語を定義する。本実施例では、利用する検索可能暗号方式を１つ固定して実施の形態を説明する。なお、具体的な検索可能暗号方式としては特許文献２にあるような既存方式を用いてもよい。【００１４】
（１）検索可能暗号アルゴリズム
検索可能暗号とは、通常の確率的暗号化および、復号化を行う共通鍵、もしくは公開鍵暗号機能に加えて暗号化したまま、復号することなく、一致判定（通称マッチング処理）ができる暗号方式の総称である。暗号化、復号化、および検索の際に利用する暗号化検索クエリ生成は、秘密鍵を持つユーザのみが実行可能である。ただし、公開鍵検索可能暗号方式では、公開鍵を用いて暗号化は秘密鍵を持たないユーザでも可能である。一方、暗号文と暗号化クエリのマッチング処理は公開情報を用いて誰でも（秘密鍵を持たないデータベース管理者）可能である。以後、本実施例では、検索可能暗号アルゴリズム（つまり、秘密鍵生成アルゴリズム、暗号化アルゴリズム、復号アルゴリズム、クエリ生成アルゴリズム、暗号文マッチングアルゴリズム）を一つ固定する。【００１５】
（２）検索可能暗号秘密鍵生成アルゴリズム
上述した検索可能暗号アルゴリズムで規定されている秘密鍵生成アルゴリズムを指す。以後、簡単に秘密鍵生成処理と呼ぶ。セキュリティパラメータと鍵シードをコマンド入力とし、特定のビット長のバイナリを出力とする。また、公開鍵検索可能暗号方式の際は、生成した秘密鍵に対応する公開鍵も同時に生成を行う。【００１６】
（３）検索可能暗号の暗号化関数
上述した検索可能暗号アルゴリズムで規定されている暗号化アルゴリズムを指す。平文と秘密鍵をコマンド入力とし暗号文を出力する。【００１７】
（４）検索可能暗号クエリ関数
上述した検索可能暗号アルゴリズムで規定されているクエリ生成アルゴリズムを指す。平文クエリと秘密鍵をコマンド入力とし、暗号化クエリを出力する。【００１８】
（５）検索可能暗号マッチング関数
上述した検索可能暗号アルゴリズムで規定されている暗号文と暗号化クエリのマッチングアルゴリズムを指す。暗号文と暗号化クエリをコマンド入力とし、暗号文に対する平文と、暗号化クエリに関する平文が一致した場合に結果として[平文一致]を出力し、そうでない場合、結果として[平文不一致]を出力する。【００１９】
図３は、各情報提供者100が持つ平分データのデータフォーマット例である。情報提供者端末100-1は平文データ1を, 情報提供者端末100-2は平文データ2を,…, 情報提供者端末100-Nは、平文データNをそれぞれが保持する。。図が示すように、各平文データは性別、購入商品、金額をカラムとする表データとなっている。また、各平文データのレコード数は同じである必要はなく、例えば、平文データ1は３つのレコードを含み、平文データ2は４つのレコードを含む。【００２０】
図４は、情報提供者端末100-1から情報提供者端末100-N、およびデータ収集者端末200と、分析実行者端末300と、情報利用者端末400間のデータ送受信およびプログラムの処理フローである。【００２１】
まず、データ収集者200は検索可能暗号秘密鍵生成アルゴリズムを用いて検索可能暗号の暗号化、復号化、クエリ生成に用いる検索可能暗号秘密鍵を生成する(S100)。次に情報提供者端末100-1は平文データ1を, 情報提供者端末100-2は平文データ2を,…, 情報提供者端末100-Nは、平文データNを、それぞれデータ収集者200に送信する(D100)。N個の平文データを受信したデータ収集者200は、N個のデータを性別、購入商品、金額ごとに結合し、1つの平文データからなる表を作成する。次に、データ収集者200は、S100で生成した検索可能暗号秘密鍵と検索可能暗号暗号化関数を用いて、結合した表の各セルを平文とする暗号化された表を生成し、それを暗号化データ(D200)として分析実行者に送信する(S200)。暗号化データ(D200)を受信した分析実行者300を受信した暗号化データ(D200)を保存し、分析事前処理を終える。【００２２】
分析処理を行う際には、情報利用者端末400が平文クエリセット(D300)を生成し、データ収集者端末200に送信し、平文クエリセット(D300)を受信したデータ収集者端末200は、S100で生成した検索可能暗号秘密鍵と検索可能暗号クエリ関数を用いて、平文クエリセット(D300)の各クエリから暗号化クエリを作成する。次に、データ収集者端末200は、生成した各暗号化クエリを暗号化クエリセット(D400)として、情報利用者端末400に送信する。暗号化クエリセット(D400)を受信した情報利用者400は暗号化クエリの中から、任意の1つの暗号化クエリとカラムの値をアソシエーション分析の条件とし、任意の1つの暗号化クエリとカラムの値をアソシエーション分析の結論として選択する分析クエリ生成処理(S400)を実行し、条件と結論にS400で選択した暗号化クエリとカラムを成分とする暗号化分析クエリデータ(D500)を生成し、分析実行者300に送信する。次に、暗号化分析クエリデータ(D500)を受信した分析実行者300は暗号化分析クエリデータ(D500)の条件にある暗号化クエリとカラムの値に対して、該カラムの各セルを該暗号化クエリに対して検索検索可能暗号マッチング関数でマッチング処理を行い、結果が「平文一致」であるセルの数を数え上げる。この数をXとする。次に、分析実行者300は暗号化分析クエリデータ(D500)の結論にある暗号化クエリとカラムの値に対して、該カラムの各セルを該暗号化クエリに対して検索検索可能暗号マッチング関数でマッチング処理を行い、結果が「平文一致」であるセルの数を数え上げる。この数をYとする。次に、分析実行者300は上述の２つのマッチング処理において、両方のマッチングの結果が「平文一致」である行の数を数え上げる、すなわち条件の暗号化クエリと結論の暗号化クエリに対するand検索にヒットしたデータの総数である。この数をMとする。さらに、全データの総数をTとする。次に、分析実行者300は支持度M/T、信頼度M/X、リフト値(M/X)÷(Y/T)を算出する暗号化分析処理(S500)を実行し、算出した支持度、信頼度、リフト値を暗号化分析クエリデータ(D500)の支持度、信頼度、リフト値に出力し、分析結果(D600)として情報利用者端末400に送信する。情報利用者端末400は、受信した分析結果(D600)を保存して処理を終了する。【００２３】
図５は、暗号化データ(D200)のデータフォーマット例と平文クエリセット(D300)のデータフォーマット例と暗号化クエリセット(D400)のデータフォーマット例である。暗号化データ(D200)は、各情報提供者100-1から100-Nから受信したN個の平文の表データを結合した1つの表データの各セルを検索可能暗号で暗号化した表データである。平文クエリセット(D300)は、情報利用者がアソシエーション分析において、相関を調べたい平文の集合を含み構成され、図５では、「男」と「商品A」を要素として持つ例を示している。暗号化クエリセット(D400)は、上述の平文クエリセット(D300)の各平文に対して検索可能暗号クエリ関数を用いて暗号化した、暗号化クエリを含み構成され、図５では、平文「男」に対する暗号化クエリとして「c194f5a1」、平文「商品A」に対する暗号化クエリとして、「2b90a8f2」がそれぞれ対応している事を図示している。【００２４】
図６は、暗号化分析クエリデータ(D500)のデータフォーマット例と、分析結果(D600)のデータフォーマット例である。暗号化分析クエリデータ(D500)および分析結果(D600)は、アソシエーション分析の「条件」「結論」「支持度」「信頼度」「リフト値」の5つの属性を持つ。暗号化分析クエリデータ(D500)の「条件」には、暗号化クエリセット(D400)に含まれる暗号化クエリとそのクエリに対応するカラムが入り、図６では暗号化クエリとして「c194f5a1」(男に対応する暗号化クエリ)そのカラムとして性別が例示されている。暗号化分析クエリデータ(D500)の「結論」には、暗号化クエリセット(D400)に含まれる暗号化クエリとそのクエリに対応するカラムが入り、図６では暗号化クエリとして「2b90a8f2」(商品Aに対応する暗号化クエリ)そのカラムとして購入商品が例示されている。【００２５】
また、暗号化分析クエリデータ(D500)の属性「支持度」「信頼度」「リフト値」はブランクとなっており、分析結果(D600) の属性「支持度」「信頼度」「リフト値」はそれぞれ分析実行者端末300が暗号化分析処理(S500)で算出した「支持度」「信頼度」「リフト値」が入る。
（本実施形態における処理概要）
図９を用いて、図１に示したデータ分析システムにおける処理の概要を説明する。【００２６】
まず始めに、複数の情報提供端末１００−１〜１００−Ｎから提供される複数のデータがデータ収集者端末（２００）に送られ、暗号鍵を用いて入力されたデータ（平文）が暗号化され、分析実行者端末（３００、以下サーバと略記）が保持する暗号化データ（Ｄ２００）に暗号化されたデータが格納される。
（１）クエリの入力
一方、情報利用者端末（４００、以下クライアントと略記）は、利用者から、検索の問い合わせ内容であるクエリを受け付ける。図９に示したクエリの例は、「金額ｘがａ＝＜ｘ＝＜ｂの商品の個数の合計Ｍと、金額の平均値<ｘ>を求める。」というものである。
（２）検索条件の生成
クエリに含まれるデータの範囲を、所定のデータ間隔で、各値に分解し、各値に対する、平文の検索条件を生成する。本実施例では、各商品の種類ごとに金額ｘが決まっており、クエリに含まれるデータの範囲に該当する商品はｎ種類あり、それぞれの金額ｘはａｋ（ｋ＝１〜ｎ）とする。各商品には、金額ｘの他に他の属性と組み合わされたデータが検索対象のデータとして存在する。従って、金額ｘが同一であっても、他の属性の異なる商品が少なくとも一つ存在する場合もあり、金額ａｋに該当する商品がない場合もある。本実施例のクエリでは、他の属性を無視し、金額ｘに着目した検索を行って、同じ金額の商品が何個存在するかを調べるものである。【００２７】
図９に示したクエリにおける商品の金額の範囲を示すａが１０００円で、ｂが５０００円であり、金額が５０円間隔で付けられているとすると、各値に対する検索条件として、「ｘが１０００円の商品を検索」、「ｘが１０５０円の商品を検索」、・・・・、「ｘが４９５０円の商品を検索」、「ｘが５０００円の商品を検索」といった、（５０００−１０００）／５０＋１＝８１個の検索条件が生成される。
（３）検索条件の暗号化検索
上記の（２）で生成された多数の検索条件のそれぞれにおける金額を、データ収集者端末（２００）に送付して、暗号鍵を用いて暗号化し、各値を暗号化した検索条件を生成する（クエリの暗号化）。即ち、上記（２）で分解された各値ａｋを暗号化した値であるＡｋを含む、暗号化されたクエリを生成する。この暗号鍵は、データ収集者端末（２００）から送られたデータを暗号化した時に用いたものと同一である。
（暗号化検索）
各値に対する、暗号化されたクエリをサーバ（３００）に送信し、サーバ（３００）は、暗号化データ（Ｄ２００）に対して暗号化検索を行い、暗号化した値である、それぞれのＡｋ（暗号化された金額）に適合する商品の個数を商品ごとにカウントして、所定の記憶領域に、その個数を記憶する。【００２８】
暗号化された各金額（Ａｋ）と暗号化検索によって得られた商品の個数とを対応させた情報をクライアント（４００）に送付する。
（統計処理）
クライアント（４００）は、サーバ（３００）から受け取った情報に含まれる暗号化された金額（Ａｋ）を、データ収集者端末（２００）に送付し、データ収集者端末（２００）が保持する暗号鍵を用いてそれぞれの商品の金額（ａｋ）に復号し（暗号化前の値との対応付け）、復号された金額（ａｋ）とそれぞれの金額に対応する商品の個数のデータをクライアント（４００）に送付し、クライアントは、受け取った情報に基づいて、それぞれの商品の金額（ａｋ）と商品の個数との対応を示す情報を生成する。【００２９】
クライアント（４００）は、更に、最初に、利用者が入力したクエリのように、生成した情報に基づいて、金額ｘがａ＝＜ｘ＝＜ｂの商品の個数の合計Ｍと、金額の平均値<ｘ>を求める。【００３０】
上記のように求めた商品の個数の合計Ｍと、金額の平均値<ｘ>を、クライアント（４００）の画面に出力する。【００３１】
図７は、図６の暗号化分析クエリデータ(D500)に対する暗号化分析処理(S500)において、「条件」に平文が一致するデータの数Xの個数を算出する処理を例示している。分析実行者端末300は暗号化分析クエリデータ(D500)の属性「条件」の暗号化クエリ「c194f5a1」と性別カラムの各暗号化データとを検索可能暗号マッチング関数を用いてマッチングし、「平文一致」したセルの個数を数え上げており、その総数をXとしている。【００３２】
なお，本発明は，上述の実施形態に限定されるものではなく、その要旨の範囲内で様々な変形が可能である。【００３３】
例えば、本実施例では、表形式データとして「性別」「購入商品」「金額」の３つのカラムからなる表に対する分析結果を例示しているが、カラムの数は３である必要はなく、１以上の任意の数でよい。【００３４】
また、本実施例ではアソシエーション分析における分析結果(D600)として支持度、信頼度、リフト値の算出を例示したが、その他の分析を行い、それを分析結果としてもよい、例えば、上述の暗号化分析処理(S500)において、算出した値、X、Y、M、Tを分析結果(D600)としてもよい、また、複数の暗号化クエリに対するのand検索にヒットしたデータの総数やor検索にヒットしたデータの総数を分析結果としてもよい、より一般に、複数の暗号化クエリに対して、各暗号化クエリにヒットしたデータの集合とヒットしなかったデータの集合を元にしたブール論理演算結果として得られる集合に属するデータの総数を分析結果に含めてもよい、また、該ブール論理演算結果として得られる集合に属するデータの総数を全体のデータの総数で割った値、すなわち上述の信頼度を一例とするような条件付確率を分析結果としてもよい、またそれら条件付確率に対して算術演算を行った値、すなわち上述のリフト値を一例とするような分析値を分析結果としてもよい。【００３５】
また、実施例ではアソシエーション分析における分析結果(D600)として支持度、信頼度、リフト値の算出を例示したが、金額のカラムのような各セルに数値データが入力されているカラムについて、例えば情報利用者端末500は平文クエリ「500」に対応する暗号化クエリを用いて金額＝500となるデータの総数を分析結果として取得してもよい、さらに数値カラムが取りうる全ての値に対して、各値のデータの総数を取得した後、情報利用者端末500はそのカラムの合計値を算出してもよい、さらに全データの総数で該合計値を割ることでそのカラムの平均値を算出してもよい、より一般に、数値の出現頻度から算出可能な統計値である分散値、標準偏差、尖度、歪度、最大値、最小値、中央値などを算出してもよい。【００３６】
また、本実施例では、暗号化データ(D200)と暗号化クエリセット(D400)に対して、検索可能暗号マッチング関数を用いて、上述の通りヒットしたセルの個数を入力として暗号化分析処理(S500)を行い、分析結果(S600)を算出しているが、必ずしも暗号化分析処理(S500)は検索可能暗号マッチング関数がヒットしたセルの個数を入力とする必要は無く、暗号化クエリセット(D400)にヒットしたセル、ヒットしなかったセルに暗号化データ(D200)を分割する処理そのものを暗号化分析処理(S500)としてもよい、例えば図８にあるようなIDと購入商品からなる購買履歴の暗号化データ(D200−2)において、ただし、この例では、IDのみを検索可能暗号で暗号化しており、購入商品は平文としている、ID：100の購買履歴データを抽出し、それを分析結果(D600)する場合、平文クエリセット(D300−2)をID：100とし、それに対応する暗号化クエリセット(D400−2)ID：100の暗号化クエリ：a193ea1を用いる事で、暗号化データ(D200−2)のIDカラムを検索可能暗号マッチング関数と暗号化クエリセット(D400−2)内の暗号化クエリ：a193ea1でマッチングを行う事で、暗号化データ(D200−2)内からID：100のデータだけを抽出する事が出来る。また、この例ではマッチングにヒットしたデータを分析結果としたが、必ずしもマッチングにヒットしたデータを分析結果とする必要は無く、ID：100が商品Aを何回購入したか（リピート率算出）などのID：100の購入履歴を元に行う分析を行った結果を分析結果(D600)としてもよい。
また、この例では購入商品カラムは平文としているが、購入商品カラムを検索可能暗号で暗号化し、ID：100のデータとそれ以外に分割した後、購入商品カラムに対して図１から７で説明した分析を行い、その結果を分析結果(D600)としてもよい。
【実施例２】
【００３７】
以下の実施例２では、クエリの範囲を各値に分解して、各値に対する検索条件を生成する際に、生成する検索条件の数を削減する方法をいくつか説明する。検索条件の数を削減することによって、各値を暗号化した検索条件の生成、及び暗号化した検索条件による暗号化検索に要する時間が短縮される。なお、以下の方法では、検索によって得られたデータの個数の値を用いた計算処理が必要である。【００３８】
以下では、Ｍは集合(データ)全体の数、ｎ(Ａ)は条件Ａを満たすデータの数、「¬Ａ」は条件Ａの否定を表し、ｎ(¬Ａ)＝Ｍ−ｎ(Ａ)の関係がある。また、論理演算において、「．ＯＲ．」は論理和、「．ＡＮＤ．」は論理積を表す。  
（１）検索結果の再利用その１：
既にａ＝＜ｘ＝＜ｂについて検索済みの時、ａ＝＜ｘ＝＜ｃ（ｂ＜ｃ）の検索の際に、ａ＝＜ｘ＝＜ｂについて検索済みの結果を再利用し、ｂ＜ｘ＝＜ｃについて検索を行う。【００３９】
なお、データの定義域がｐ＝＜ｘ＝＜ｑであって、検索条件Ａのデータの範囲がａ＝＜ｘ＝＜ｂ（但し、ｐ＜ａ、ｂ＜ｑ）となってデータの定義域に含まれる場合、検索条件Ａの否定、¬Ａは、ｐ＝＜ｘ＜ａ、またはｂ＜ｘ＝＜ｑである。
（２）検索結果の再利用その２：
ｎ(Ａ．ＯＲ．Ｂ)＝ｎ(Ａ)＋ｎ(Ｂ)−ｎ(Ａ．ＡＮＤ．Ｂ)より、既知のｎ(Ａ)、ｎ(Ｂ)及びｎ(Ａ．ＡＮＤ．Ｂ)から、データの数が多いｎ(Ａ．ＯＲ．Ｂ)が得られる。
（３）否定のデータを用いた、検索条件の数の削減その１：
ｎ(Ａ)＞ｎ(¬Ａ)、ｎ(Ｂ)＞ｎ(¬Ｂ)の時、即ち、肯定よりも否定の場合データの数が少ない場合、検索の条件に、肯定の条件を使うよりも否定の条件を使った方が、クエリの範囲を分解して生成する検索条件の数が少なくなるので、検索に要する時間が短縮される。【００４０】
上記のように、検索条件に２つの条件が含まれる場合も同様である。検索条件が２つの条件を満たすことを示している場合、このデータの数を示すｎ(Ａ．ＡＮＤ．Ｂ)は、ｎ(Ａ．ＡＮＤ．Ｂ)＝Ｍ−ｎ(¬(Ａ．ＡＮＤ．Ｂ))＝Ｍ−(ｎ(¬Ａ)＋ｎ(¬Ｂ)―ｎ(¬Ａ．ＡＮＤ．¬Ｂ))＝ｎ(¬Ａ．ＡＮＤ．¬Ｂ))＋Ｍ−(ｎ(¬Ａ)＋ｎ(¬Ｂ))より、肯定の条件を含む当初の検索条件が、否定の条件を含む式に変換され、この変換された式を用いて否定の場合のデータを検索した結果を用いたほうが検索条件の数が少なくなる。【００４１】
また、検索条件が２つの条件の少なくとも一方を満たすデータの数を示すｎ(Ａ．ＯＲ．Ｂ)の場合も、ｎ(Ａ．ＯＲ．Ｂ)＝Ｍ−(¬(Ａ．ＯＲ．Ｂ))）＝Ｍ−(¬Ａ．ＡＮＤ．¬Ｂ))より、同様に、否定の場合のデータを検索した結果を用いたほうが検索条件の数が少なくなる。
（４）否定のデータを用いた、検索条件の数の削減その２：
上記の（３）では、２つの条件の何れも、肯定のデータの数よりも否定の場合のデータの数が少ない場合を説明した。以下では、２つの条件Ａ及びＢのうち、条件Ａに適合するデータの数が多く、条件Ｂに適合するデータの数が少ない場合について検索条件の数の削減について説明する。即ち、ｎ(Ａ)＞ｎ(¬Ａ)、ｎ(¬Ｂ)＞ｎ(Ｂ)であるため、検索条件に２つの条件が含まれる場合、これらの条件に適合するデータの数を、データの数が少ないｎ(¬Ａ)及びｎ(Ｂ)を用いて表す式を以下に示す。【００４２】
検索の条件がＡ．ＡＮＤ．Ｂの場合：ｎ(Ａ．ＡＮＤ．Ｂ)＝ｎ(Ｂ)−ｎ(¬Ａ．ＡＮＤ．Ｂ)
検索の条件がＡ．ＯＲ．Ｂの場合：ｎ(Ａ．ＯＲ．Ｂ)＝ｎ(Ａ)＋ｎ(Ｂ)―ｎ(Ａ．ＡＮＤ．Ｂ)＝Ｍ−ｎ(¬Ａ)＋ｎ(¬Ａ∩Ｂ)
（ここで、ｎ(Ｂ)＞ｎ(¬Ａ．ＡＮＤ．Ｂ)、ｎ(¬Ａ)＞ｎ(¬Ａ．ＡＮＤ．Ｂ)である。）
【符号の説明】
【００４３】
１００−１，１００−２，…，１００−Ｎ：情報提供者端末、１０１：ＣＰＵ、１０２：補助記憶装置（記憶装置）、１０３：メモリ、１０４：内部信号線、１０５：表示装置、１０６：入出力インターフェース、１０７：通信装置、２００：データ収集者端末、３００：分析実行者端末、４００：情報利用者端末、５００：ネットワーク
【図１】
2015063905.tif 000003
【図２】
2015063905.tif 000004
【図３】
2015063905.tif 000005
【図４】
2015063905.tif 000006
【図５】
2015063905.tif 000007
【図６】
2015063905.tif 000008
【図７】
2015063905.tif 000009
【図８】
2015063905.tif 000010
【図９】
2015063905.tif 000011
【国際調査報告】
2015063905.tif 000012
2015063905.tif 000013
2015063905.tif 000014
2015063905.tif 000015