(57)【要約】  データ集計分析システムは、秘密鍵生成部、表形式データのセルを暗号化する暗号化表形式データ暗号化表形式データ生成部、分析対象のアイテム名を、秘密鍵を用いて、暗号化分析クエリを生成する暗号化分析クエリ生成部、および、暗号化表形式データなどを送信する送信部を有するユーザ端末、並びに、暗号化表形式データなどを格納する格納部、暗号化分析クエリの受信に応答して、暗号化分析クエリと暗号化表形式データを入力として検索可能暗号マッチング関数を用いて検索処理を実行し、ヒットした暗号化表形式データのセルを任意の文字列にトークン化して部分トークン化済み暗号化表形式データを生成するトークン化部、部分トークン化済み暗号化表形式データを入力としてデータ分析結果を生成するデータ分析処理部、および、データ分析結果をユーザ端末へ送信する送信部を有するデータベースサーバを含む。
2016120975.tif 000002
【特許請求の範囲】
【請求項１】
予め設定された共通鍵もしくは公開鍵検索可能暗号アルゴリズムの鍵生成関数を用いて、秘密鍵もしくは暗号化鍵と復号化鍵のペアを生成する鍵生成部、
前記検索可能暗号アルゴリズムの暗号化関数を用いて、表形式データのセルを暗号化して、暗号化表形式データを生成する暗号化表形式データ生成部、
前記表形式データの分析対象のアイテム名を、前記秘密鍵もしくは前記暗号化鍵を用いて、前記検索可能暗号アルゴリズムの検索可能暗号クエリ関数で暗号化して暗号化分析クエリを生成する暗号化分析クエリ生成部、および、
前記暗号化表形式データ、前記検索可能暗号アルゴリズムの検索可能暗号マッチング関数、および前記暗号化分析クエリを送信する第１の送信部を有するユーザ端末、並びに、
前記ユーザ端末から受信した、前記暗号化表形式データおよび前記検索可能暗号マッチング関数を格納する格納部、
前記ユーザ端末からの前記暗号化分析クエリの受信に応答して、前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、検索処理でヒットした前記暗号化表形式データのセルを任意の文字列にトークン化して部分トークン化済み暗号化表形式データを生成するトークン化部、
前記部分トークン化済み暗号化表形式データを入力として予め設定されたデータ分析処理を実行し、データ分析結果を生成するデータ分析処理部、および、
前記データ分析結果を前記ユーザ端末へ送信する第２の送信部を有するデータベースサーバ
を含むことを特徴とするデータ集計分析システム。
【請求項２】
前記ユーザ端末の前記暗号化分析クエリ生成部は、分析対象の複数の前記アイテム名を前記検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、前記第１の送信部は、生成した複数の前記暗号化分析クエリを前記データベースサーバへ送信し、
前記データベースサーバの前記トークン化部は、複数の前記暗号化分析クエリの受信に応答して、複数の前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、複数の前記暗号化分析クエリの各々に対して検索処理でヒットした前記暗号化表形式データのセルを、前記暗号化クエリの各々に対応した任意の文字列にトークン化して前記部分トークン化済み暗号化表形式データを生成する
ことを特徴とする請求項１に記載のデータ集計分析システム。
【請求項３】
前記ユーザ端末は、前記表形式データの各セルに記載されている前記アイテム名に特定の全順序構造を与え、前記表形式データの各行の各セルに記載されている前記アイテム名を前記全順序構造でソートするソート部をさらに有し、
前記ユーザ端末の前記暗号化分析クエリ生成部は、前記表形式データの分析対象の複数の前記アイテム名を、前記ソート部によりソートされた順番に従って、前記検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、
前記ユーザ端末の前記第１の送信部は、前記ソート部によりソートされた前記順番に従って、複数の前記暗号化分析クエリを前記データベースサーバへ送信する
ことを特徴とする請求項２に記載のデータ集計分析システム。
【請求項４】
予め設定された共通鍵もしくは公開鍵検索可能暗号アルゴリズムの鍵生成関数を用いて秘密鍵もしくは暗号化鍵と復号化鍵のペアを生成し、予め設定された共通鍵もしくは公開鍵加法的準同型暗号アルゴリズムの鍵生成関数を用いて秘密鍵もしくは暗号化鍵と復号化鍵のペアを生成する鍵生成部、
ダミー行およびフラグ列を挿入した表形式データの行が前記ダミー行であれば当該行の前記フラグ列のセルの値を０、前記ダミー行でなければ当該行の前記フラグ列のセルの値を1とするダミー入り表形式データを、前記検索可能暗号アルゴリズムの暗号化関数を用いて前記ダミー入り表形式データの前記フラグ列を除いたセルを暗号化して前記検索可能暗号の暗号文とし、前記加法的準同型暗号の暗号化関数を用いて前記ダミー入り表形式データの前記フラグ列のセルを暗号化して前記加法的準同型暗号の暗号文とした、暗号化表形式データを生成する暗号化表形式データ生成部、
前記表形式データの分析対象のアイテム名を、前記検索可能暗号アルゴリズムの秘密鍵もしくは暗号化鍵を用いて、前記検索可能暗号アルゴリズムの検索可能暗号クエリ関数で暗号化して暗号化分析クエリを生成する暗号化分析クエリ生成部、
受信するデータ分析結果と前記加法的準同型暗号アルゴリズムの秘密鍵もしくは復号化鍵とを入力として、復号化処理を実行する復号化部、および、
前記暗号化表形式データ、前記検索可能暗号アルゴリズムの検索可能暗号マッチング関数、前記加法的準同型暗号アルゴリズムの暗号化鍵および前記暗号化分析クエリを送信する第１の送信部を有するユーザ端末、並びに、
前記ユーザ端末から受信した、前記暗号化表形式データ、前記検索可能暗号マッチング関数、および前記加法的準同型暗号アルゴリズムの暗号化鍵を格納する格納部、
前記ユーザ端末からの前記暗号化分析クエリの受信に応答して、前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、検索処理でヒットした前記暗号化表形式データのセルを任意の文字列にトークン化して部分トークン化済み暗号化表形式データを生成するトークン化部、
前記部分トークン化済み暗号化表形式データを入力として、前記加法的準同型暗号アルゴリズムの暗号化鍵を用いて、予め設定されたデータ分析処理を実行し、データ分析結果を生成するデータ分析処理部、および、
前記データ分析結果を前記ユーザ端末へ送信する第２の送信部を有するデータベースサーバを含む
ことを特徴とするデータ集計分析システム。
【請求項５】
前記ユーザ端末の前記第１の送信部は、さらに前記データベースサーバが前記データ分析処理を実行する前に、前記加法的準同型暗号アルゴリズムの加法関数を送信し、
前記データベースサーバの格納部は、前記ユーザ端末から受信した前記加法的準同型暗号アルゴリズムの前記加法関数を格納し、
前記データ分析処理部は、トークン化された前記部分トークン化済み暗号化表形式データのアイテムのセルの総数を数え上げる際に、前記フラグ列の前記加法的準同型暗号の暗号文を入力とし、前記加法関数を用いて加法演算した暗号文を、数え上げの値とする
ことを特徴とする請求項４に記載のデータ集計分析システム。
【請求項６】
前記ユーザ端末の前記暗号化分析クエリ生成部は、分析対象の複数の前記アイテム名を前記検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、
前記データベースサーバの前記トークン化部は、複数の前記暗号化分析クエリの受信に応答して、複数の前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、前記暗号化分析クエリの各々に対して検索処理でヒットした前記暗号化表形式データのセルを、前記暗号化クエリの各々に対応した任意の文字列にトークン化して前記部分トークン化済み暗号化表形式データを生成する
ことを特徴とする請求項５に記載のデータ集計分析システム。
【請求項７】
前記ユーザ端末は、前記表形式データの各セルに記載されている前記アイテム名に特定の全順序構造を与え、前記表形式データの各行の各セルに記載されている前記アイテム名を前記全順序構造でソートするソート部をさらに有し、
前記ユーザ端末の前記暗号化分析クエリ生成部は、前記表形式データの分析対象の複数の前記アイテム名を、前記ソート部によりソートされた順番に従って、前検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、
前記ユーザ端末の前記第１の送信部は、前記ソート部によりソートされた順番に従って、複数の前記暗号化分析クエリを前記データベースサーバへ送信する
ことを特徴とする請求項６に記載のデータ集計分析システム。
【請求項８】
ユーザ端末とデータベースサーバとを接続したデータ集計分析システムにおけるデータ集計分析方法であって、
前記ユーザ端末が、予め設定された共通鍵もしくは公開鍵検索可能暗号アルゴリズムの鍵生成関数を用いて秘密鍵もしくは暗号化鍵と復号化鍵のペアを生成し、
前記検索可能暗号アルゴリズムの暗号化関数を用いて、表形式データのセルを暗号化して暗号化表形式データを生成し
生成した前記暗号化表形式データを前記データベースサーバに送信し、
前記検索可能暗号アルゴリズムの検索可能暗号マッチング関数を前記データベースサーバへ送信し、
前記データベースサーバが、前記ユーザ端末から受信した、前記暗号化表形式データと前記検索可能暗号マッチング関数を格納し、
前記ユーザ端末が、前記表形式データの分析対象のアイテム名を、前記秘密鍵もしくは前記暗号化鍵を用いて、前記検索可能暗号アルゴリズムの検索可能暗号クエリ関数で暗号化して暗号化分析クエリを生成し、生成した前記暗号化分析クエリを前記データベースサーバへ送信し、
前記データベースサーバが、前記暗号化分析クエリの受信に応答して、前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、検索処理でヒットした前記暗号化表形式データのセルを任意の文字列にトークン化して部分トークン化済み暗号化表形式データを生成し、
前記部分トークン化済み暗号化表形式データを入力として予め設定されたデータ分析処理を実行し、データ分析結果を生成し、
前記データ分析結果を前記ユーザ端末へ送信する
ことを特徴とするデータ集計分析方法。
【請求項９】
前記ユーザ端末が、分析対象の複数の前記アイテム名を前記検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、
生成した複数の前記暗号化分析クエリを前記データベースサーバへ送信し、
前記データベースサーバは、複数の前記暗号化分析クエリの受信に応答して、複数の前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、
複数の前記暗号化分析クエリの各々に対して検索処理でヒットした前記暗号化表形式データのセルを、前記暗号化クエリの各々に対応した任意の文字列にトークン化して前記部分トークン化済み暗号化表形式データを生成する
ことを特徴とする請求項８に記載のデータ集計分析方法。
【請求項１０】
前記ユーザ端末が、前記表形式データの各セルに記載されている前記アイテム名に特定の全順序構造を与え、前記表形式データの各行の各セルに記載されている前記アイテム名を前記全順序構造でソートし、
前記表形式データの分析対象の複数の前記アイテム名を、ソートされた順番に従って、前記検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、ソートされた前記順番に従って、複数の前記暗号化分析クエリを前記データベースサーバへ送信する
ことを特徴とする請求項９に記載のデータ集計分析方法。
【請求項１１】
前記表形式データが、ダミー行およびフラグ列を有し、
前記ユーザ端末が、前記表形式データの行がダミー行であれば当該行の前記フラグ列のセルの値を0、前記ダミー行でなければ当該行の前記フラグ列のセルの値を1とするダミー入り表形式データを生成し、
予め設定された共通鍵もしくは公開鍵加法的準同型暗号アルゴリズムの鍵生成関数を用いて秘密鍵もしくは暗号化鍵と復号化鍵のペアを生成し、
前記検索可能暗号アルゴリズムの暗号化関数を用いて前記ダミー入り表形式データの前記フラグ列を除いたセルを暗号化して前記検索可能暗号の暗号文とし、前記加法的準同型暗号の暗号化関数を用いて前記ダミー入り表形式データの前記フラグ列のセルを暗号化して前記加法的準同型暗号の暗号文とした、前記暗号化表形式データを生成し、
前記検索可能暗号アルゴリズムの前記検索可能暗号マッチング関数とともに前記加法的準同型暗号アルゴリズムの暗号化鍵を前記データベースサーバへ送信し、
前記データベースサーバが、前記ユーザ端末から受信した、前記暗号化表形式データおよび前記検索可能暗号マッチング関数とともに前記加法的準同型暗号アルゴリズムの暗号化鍵を格納し、
前記部分トークン化済み暗号化表形式データを入力として、前記加法的準同型暗号アルゴリズムの暗号化鍵を用いて、予め設定されたデータ分析処理を実行し、前記データ分析結果を生成し、
前記ユーザ端末が、前記データ分析結果と前記復号化鍵とを入力として、復号化処理を実行する
ことを特徴とする請求項８に記載のデータ集計分析方法。
【請求項１２】
前記ユーザ端末が、さらに前記データベースサーバが前記データ分析処理を実行する前に、前記加法的準同型暗号アルゴリズムの加法関数を送信し、
前記データベースサーバが、前記ユーザ端末から受信した前記加法的準同型暗号アルゴリズムの前記加法関数を格納し、
トークン化された前記部分トークン化済み暗号化表形式データのアイテムのセルの総数を数え上げる際に、前記フラグ列の前記加法的準同型暗号の暗号文を入力とし、前記加法的準同型暗号の前記加法関数を用いて加法演算した暗号文を、数え上げの値とする
ことを特徴とする請求項１１に記載のデータ集計分析方法。
【請求項１３】
前記ユーザ端末が、分析対象の複数の前記アイテム名を前記検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、
生成した前記暗号化分析クエリを前記データベースサーバへ送信し、
前記データベースサーバは、複数の前記暗号化分析クエリの受信に応答して、複数の前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、
前記暗号化分析クエリの各々に対して検索処理でヒットした前記暗号化表形式データのセルを、前記暗号化クエリの各々に対応した任意の文字列にトークン化して前記部分トークン化済み暗号化表形式データを生成する
ことを特徴とする請求項１２に記載のデータ集計分析方法。
【請求項１４】
前記ユーザ端末が、前記表形式データの各セルに記載されている前記アイテム名に特定の全順序構造を与え、前記表形式データの各行の各セルに記載されている前記アイテム名を前記全順序構造でソートし、
前記全順序構造でソートした順番に従って、複数の前記検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、
前記全順序構造でソートした順番に従って、複数の前記暗号化分析クエリを前記データベースサーバへ送信する
ことを特徴とする請求項１３に記載のデータ集計暗号化分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各セルが暗号化された表形式のデータに対して、暗号化データを復号することなく、集計などの分析実行するデータ集計分析システム及びその方法に関する。
【背景技術】
【０００２】
近年、大量のデータを収集して分析し、価値のある知識を抽出するビックデータビジネスが普及をみせている。大量データの分析を実行する際、大容量のストレージや高速なCPUおよびこれらを分散統制するシステムを必要とするため、クラウドなどの外部リソースに分析を依頼することがある。しかし、データを外部にアウトソースする場合、プライバシー上の問題が発生する。そのため、暗号化やその他、プライバシー保護技術を施した後にデータをアウトソースし、分析する秘匿分析技術が注目を集めている。【０００３】
このようなデータ分析時に発生するプライバシー上の課題に対して、非特許文献１は、共通鍵検索可能暗号を利用して、データを暗号化したまま集計分析や相関ルール分析を行う方法を記載している。また、特許文献１は、検索可能暗号方式について記載している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2012−123614号公報
【非特許文献】
【０００５】
【非特許文献１】長沼、他「検索可能暗号を用いた秘匿分析手法」、SCIS 2014 The 31st Symposium on Cryptography and Information Security, Kagoshima Japan, Jun. 21-24, 2014, The Institute of Electronics, Information and Communication Engineers
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１における共通鍵検索可能暗号とは、通常の確率的暗号化、復号化を行う共通鍵暗号機能に加えて暗号化したまま（復号することなく）一致判定（マッチング処理）ができる暗号方式の総称である。暗号化、復号化、および検索の際に利用する暗号化検索クエリ生成は、秘密鍵を持つ復号権利者のみが実行可能である。一方、暗号文と暗号化クエリのマッチング処理は、秘密鍵を持たない分析処理実行者や分析サーバでも可能である。【０００７】
非特許文献１では、この共通鍵検索可能暗号のマッチング処理機能を用いて、暗号化状態で特定の暗号文の出現数を数え上げ、その出現数情報を用いて、集計分析や相関ルール分析を行う方法が述べられている。このように検索可能暗号を用いて暗号文の出現数を数え上げるので、処理効率が問題になる。
【課題を解決するための手段】
【０００８】
開示するデータ集計分析システムは、秘密鍵を生成する秘密鍵生成部、表形式データのセルを暗号化して、暗号化表形式データを生成する暗号化表形式データ生成部、表形式データの分析対象のアイテム名を、秘密鍵を用いて、暗号化分析クエリを生成する暗号化分析クエリ生成部、および、暗号化表形式データ、検索可能暗号アルゴリズムの検索可能暗号マッチング関数、および暗号化分析クエリを送信する送信部を有するユーザ端末、並びに、暗号化表形式データおよび検索可能暗号マッチング関数を格納する格納部、
暗号化分析クエリの受信に応答して、暗号化分析クエリと暗号化表形式データを入力として検索可能暗号マッチング関数を用いて検索処理を実行し、検索処理でヒットした暗号化表形式データのセルを任意の文字列にトークン化して部分トークン化済み暗号化表形式データを生成するトークン化部、部分トークン化済み暗号化表形式データを入力として予め設定されたデータ分析処理を実行し、データ分析結果を生成するデータ分析処理部、および、データ分析結果をユーザ端末へ送信する送信部を有するデータベースサーバを含む。
【発明の効果】
【０００９】
開示するデータ集計分析システムによれば、暗号化により情報提供者のプライバシーを保護しつつ、分析の処理効率を向上できる。
【図面の簡単な説明】
【００１０】
【図１】実施例１のデータ集計分析システムの概略図である。
【図２】第一の実施形態におけるユーザ端末のハードウェア概略図である。
【図３】平文データのデータフォーマット例である。
【図４】暗号化データのデータフォーマット例である。
【図５】実施例１の暗号化データの事前保存処理のフローチャートである。
【図６】分析クエリのデータフォーマット例である。
【図７】暗号化分析クエリのデータフォーマット例である。
【図８】実施例１の分析処理結果のデータフォーマット例である。
【図９】実施例１の暗号化集計分析処理のフローチャートである。
【図１０】トークン化処理のフローチャートである。
【図１１】暗号化データのトークン化例である。
【図１２】実施例１の集計分析処理のフローチャートである。
【図１３】ダミーレコード入り平文データのデータフォーマット例である。
【図１４】ダミーレコード入り暗号化データのデータフォーマット例である。
【図１５】実施例２の暗号化データの事前保存処理のフローチャートである。
【図１６】第二の実施形態における実施例２の暗号化集計分析処理の処理フローである。
【図１７】第二の実施形態における実施例２の集計分析処理のフローチャートである。
【図１８】実施例２の集計分析処理を示す図である。
【図１９】実施例２の分析処理結果のデータフォーマット例である。
【発明を実施するための形態】
【００１１】
具体的な実施例の説明の前に、本実施形態の考え方を、例を用いて説明する。
【００１２】
図３は平文データであり、図４は、図３の平文データを検索可能暗号で暗号化した暗号化データである。この暗号化データを持つサーバが、「男」の暗号化クエリQuery(男)と「商品1」の暗号化クエリQuery(商品1)を用いて、性別カラムが「男」であるレコードの個数と、購入商品カラムが「商品1」であるレコードの個数と、性別カラムが「男」かつ購入商品カラムが「商品1」であるレコードの個数を数え上げる処理を例にする。
【００１３】
サーバは、性別カラムの各セルにある暗号文(全部で10個)とQuery(男)を検索可能暗号のマッチング処理機能を用いてマッチング処理を実行し、ヒットしたデータの数、この場合は8個をQuery(男)の出現数として記録する。次に、サーバは購入商品カラムの各セルにある暗号文(全部で10個)とQuery(商品1)を検索可能暗号のマッチング処理機能を用いてマッチング処理を実行し、ヒットしたデータの数、この場合は4個をQuery(商品1)の出現数として記録する。最後にサーバは、性別カラムが「男」かつ購入商品カラムが「商品1」であるレコードの個数を数え上げるために、性別カラムの各セルにある暗号文(全部で10個)とQuery(男)を検索可能暗号のマッチング処理機能を用いてマッチング処理を実行し、ヒットした8個のレコードに対して更に、購入商品カラムの各セルにある暗号文(8個)とQuery(商品1)を検索可能暗号のマッチング処理機能を用いてマッチング処理を実行し、ヒットしたデータの数、この場合3個を記録して処理を終える。
【００１４】
以上の処理で、サーバは検索可能暗号のマッチング処理を10＋10＋10＋8＝38回実行する。一般に検索可能暗号のマッチング処理は、通常の平文に対するマッチング処理、つまりバイナリの一致判定に比べ処理効率が悪い。たとえば、非特許文献１にある検索可能暗号処理システムのマッチング処理では、処理中にハッシュ関数などの暗号関数を呼び出すために、集計分析などのデータ分析において、マッチング処理が分析処理全体のボトルネックとなる。特に、同一のデータに対して複数回マッチング処理を行う相関ルール分析においては、検索可能暗号のマッチング処理を複数回実行するので、処理効率が大幅に低下する。
【００１５】
以上のように、検索可能暗号で暗号化されたデータを対象に、同一のデータに対して複数回マッチング処理を伴う分析を実行する際、検索可能暗号のマッチング処理を複数回実行し、処理効率が大幅に低下する。これに対して、トークン化(ラベル付けとも呼ばれる)を行う方法がある。トークン化とは、通常、特定のデータを特定の意味のない文字列または数列に変換する方法をである。
【００１６】
図１１は、図４の暗号化データをトークン化した例である。データの集計分析の際、図４の暗号化データに対して、図１１のように、性別カラムの各セルをQuery(男)で検索可能暗号のマッチング処理機能を用いてマッチング処理(マッチング処理のの呼び出し10回)を実行した際に、マッチングにヒットしたセルを文字「A」＝Query(男)でトークン化(ラベル付け)し、購入商品カラムの各セルをQuery(商品1)で検索可能暗号のマッチング処理機能を用いてマッチング処理(マッチング処理の呼び出し10回)を行った際に、マッチングにヒットしたセルを文字「B」＝Query(商品1)でトークン化(ラベル付け)することで、以降の分析処理では検索可能暗号マッチング処理関数を呼ばずに、Query(男)の検索は文字「A」の通常のバイナリ一致によりマッチング処理を実行することで処理効率を向上できる。実際、上述の集計分析の例ではQuery(男)を文字「A」、Query(商品1)を文字「B」でトークン化することで、合計10＋10＝20回の検索可能暗号のマッチング処理を実行した後は、検索可能暗号のマッチング処理を実行しないので、18回の検索可能暗号のマッチング処理の実行を削減できる。
【実施例１】
【００１７】
本実施例では、集計分析の対象となるデータとして、前述の性別カラム、購入商品カラム、金額カラムから構成される購買履歴データを例にするが、購買履歴データに限定されるものではなく、より一般の表形式のデータであってもよい。【００１８】
図１は、データ集計分析システムの概略図である。図示するように、本システムは、ユーザ端末100とデータベースサーバ200とがネットワーク300を介して相互に情報を送受信できるように構成されている。【００１９】
図２は、ユーザ端末100のハードウェア概略図である。図示するように、ユーザ端末100は、CPU101、補助記憶装置102、メモリ103、表示装置105、入出力インターフェース106、及び通信装置107が内部信号線104で接続された構成である。補助記憶装置102は、プログラムコードを格納している。プログラムコードは、メモリ103にロードされCPU101によって実行される。データベースサーバ200も同様のハードウェア構成を具備する。このように、ユーザ端末100も、データベースサーバ200も、いわゆる計算機である。【００２０】
以下の説明に使用する検索可能暗号方式の用語を定義する。【００２１】
共通鍵検索可能暗号アルゴリズム（以下、検索可能暗号と称する）とは、通常の確率的暗号化および復号化を行う共通鍵暗号機能に加えて暗号化したまま、復号することなく、平文の一致判定（以下、マッチング処理）ができる暗号方式の総称である。暗号化、復号化、および検索の際に利用する暗号化検索クエリを、秘密鍵を持つエンティティ（本実施例ではユーザ端末100）が生成可能であり、秘密鍵を持たないエンティティ（たとえば、データベースサーバ200）は生成できない。また、暗号文と暗号化クエリのマッチング処理は秘密鍵を持たないエンティティ（本実施例ではデータベースサーバ200）も可能である。より具体的には検索可能暗号アルゴリズムとは、以下の4つの関数の組[検索可能暗号秘密鍵生成関数、検索可能暗号暗号化関数、検索可能暗号クエリ関数、検索可能暗号マッチング関数]を含み構成される。【００２２】
（１）検索可能暗号秘密鍵生成関数
検索可能暗号アルゴリズムで規定されている秘密鍵生成アルゴリズムを指す。以後、簡単に秘密鍵生成処理と呼ぶ。セキュリティパラメータと鍵シードを関数入力とし、以下の(２)、(３)で関数入力とする秘密鍵に相当する特定のビット長のバイナリ列を出力とする。【００２３】
（２）検索可能暗号暗号化関数
検索可能暗号アルゴリズムで規定されている暗号化アルゴリズムを指す。平文と秘密鍵を関数入力とし、暗号文を出力する。【００２４】
（３）検索可能暗号クエリ関数
検索可能暗号アルゴリズムで規定されているクエリ生成アルゴリズムを指す。平文クエリと秘密鍵を関数入力とし、暗号化クエリを出力する。【００２５】
（４）検索可能暗号マッチング関数
検索可能暗号アルゴリズムで規定されている暗号文と暗号化クエリのマッチングアルゴリズムを指す。暗号文引数と暗号化クエリ引数を関数入力とし、暗号文に対する平文と、暗号化クエリに関する平文が一致した場合に結果として[平文一致]を出力し、そうでない場合、結果として[平文不一致]を出力する。【００２６】
本実施例では、検索可能暗号アルゴリズム、つまり検索可能暗号秘密鍵生成関数、検索可能暗号暗号化関数、検索可能暗号クエリ関数、検索可能暗号マッチング関数を説明する。なお、具体的な検索可能暗号方式としては特許文献１にあるような既存方式を用いてもよい。【００２７】
図３は、ユーザ端末100が保持する平分データ(D100)のデータフォーマット例である。図示するように、平文データは、ID、性別、購入商品、および金額をカラムとする表形式データである。【００２８】
図４は、図３の平文データ(D100)を暗号化した暗号化データ(D200)のデータフォーマット例である。図示するように、平文データ(D100)の性別、購入商品、および金額のカラムの各セルが検索可能暗号暗号化関数で暗号化されている。【００２９】
図５は、ユーザ端末100とデータベースサーバ200の暗号化データ事前保存処理のフローチャートである。ユーザ端末100は、検索可能暗号秘密鍵生成関数を用いて、検索可能暗号暗号化関数および検索可能暗号クエリ関数の入力として使用する秘密鍵を生成する(S100)。ユーザ端末100は、自身が保持している平文データを、図４に示したデータフォーマットに従って、検索可能暗号暗号化関数を用いて暗号化し、暗号化データ(D200)を生成する(S200)。ユーザ端末100は暗号化データ(D200)をデータベースサーバ200に送信し、データベースサーバ200が受信した暗号化データ(D200)を格納することで、事前保存処理を終了する。【００３０】
なお、表形式データの各セルに記載されているアイテム名（ID、性別、購入商品、および金額）の並び順が、レコード（行）によって異なる場合がある。このような場合に、ユーザ端末100は、アイテム名の並び順に特定の全順序構造を与え、アイテム名の並び順が行によって異なる表形式データの各行の各セルに記載されているアイテム名を全順序構造でソートし、たとえば図３に示すように、各行のアイテム名の並び順を揃える。【００３１】
図６は、ユーザ端末100がデータベースサーバ200に集計分析を依頼する際の分析クエリ(D300)のデータフォーマット例である。本実施例ではユーザ端末100は、前述の事前保存処理でデータベースサーバ200に保存した暗号化データ(D200)中にある、性別カラムの値が「男」であるレコードの数と、購入商品カラムが「商品1」であるレコードの数と、性別カラムの値が「男」かつ購入商品カラムが「商品1」であるレコードの数の3つの値の集計依頼をする。このとき図６に示すように、分析クエリ(D300)が集計分析を依頼する3つの値それぞれに対して、カラムを生成し、その値（レコードの数）を入力する領域（レコード数カラム）をブランクデータとする。【００３２】
図７は、分析クエリ(D300)を暗号化した暗号化分析クエリ(D400)のデータフォーマット例である。図示するように、分析クエリ(D300)の平文部分である第一カラムの「男」が「ffce44」に、第二カラムの「商品1」が「c73fb5」に検索可能暗号クエリ関数で暗号化され、さらに、第三カラムの「男」および「商品1」が検索可能暗号クエリ関数で暗号化されている。このように、ここでは暗号化分析クエリ(D400)は複数の暗号化分析クエリを含んでいる。【００３３】
図８は、暗号化分析クエリ(D400)を用いて、データベースサーバ200が暗号化データ(D200)を対象に、集計分析を実行した分析処理結果(D500)のデータフォーマット例である。図示するように、この分析処理結果は、性別カラム中のデータで「ffce44」に検索可能暗号マッチング関数でヒットしたレコード数が8、購入商品カラム中のデータで「c73fb5」に検索可能暗号マッチング関数でヒットしたレコード数が4、性別カラム中のデータで「ffce44」に検索可能暗号マッチング関数でヒットし、かつ購入商品カラム中のデータが「c73fb5」に検索可能暗号マッチング関数でヒットしたレコード数が3であることを示している。【００３４】
図９は、ユーザ端末100とデータベースサーバ200の暗号化集計分析処理のフローチャートである。ユーザ端末100は、前述の事前保存処理でデータベースサーバ200に保存した暗号化データ(D200)中にある、性別カラムの値が「男」であるレコードの数と、購入商品カラムが「商品1」であるレコードの数と、性別カラムの値が「男」かつ購入商品カラムが「商品1」であるレコードの数の3つの値の集計分析を依頼する際、ユーザ端末100は分析クエリ生成処理を実行し、図６に示した分析クエリ(D300)を生成する(S300)。分析クエリ生成処理(S300)で生成した分析クエリ(D300)の平文データ部分にあるアイテム名である、第一カラムの「男」、第二カラムの「商品1」、並びに、第三カラムの「男」および「商品1」を、それぞれを平文として、図５の検索可能暗号秘密鍵生成(S100)で生成した秘密鍵を用いて、検索可能暗号クエリ関数で暗号化し、暗号化分析クエリ(D400)を生成する(S400)。ユーザ端末100は、分析クエリ暗号化処理(S400)で生成した暗号化分析クエリ(D400)および検索可能暗号マッチング関数をデータベースサーバ200に送信する。【００３５】
データベースサーバ200は受信した暗号化分析クエリ(D400)と保存している暗号化データ(D200)に対して、トークン化処理を実行し、トークン化した暗号化データ(D600)を出力する(S500)。トークン化処理およびトークン化した暗号化データ(D600)に関しては後述する。次に、データベースサーバ200はトークン化した暗号化データ(D600)に対して集計分析処理を実行し、図８に示した分析処理結果(D500)を生成し、ユーザ端末100に分析処理結果(D500)を送信する(S600)。以上で、暗号化集計分析処理を終了する。【００３６】
図１０は、図９中のトークン化処理(S500)のフローチャートである。データベースサーバ200は、受信した暗号化分析クエリ(D400)の暗号化クエリ「ffce44」を文字Aでトークン化し(S501)、暗号化分析クエリ(D400)の暗号化クエリ「c73fb5」を文字Bでトークン化する(S502)。データベースサーバ200は、暗号化データ(D200)の性別カラムの各セルに対して、暗号化分析クエリ(D400)の暗号化クエリ「ffce44」と検索可能暗号マッチング関数を用いて平文の一致判定を行い、[平文一致]となったセルを文字Aでトークン化する(S503)し、同様に、暗号化データ(D200)の購入商品カラムの各セルに対して、暗号化分析クエリ(D400)の暗号化クエリ「 c73fb5 」と検索可能暗号マッチング関数を用いて平文の一致判定を行い、[平文一致]となったセルを文字Bでトークン化する(S504)。データベースサーバ200は、トークン化した暗号化データ(D600)を出力して(S505)、処理を終了する。【００３７】
図１１は、暗号化データ(D200)をトークン化したトークン化データ(D600)である。図示するように、平文データ(D100)において、性別カラムの平文が「男」であるセルは、トークン化処理(S500)で文字「A」にトークン化されている。同様に、平文データ(D100)において、購入商品カラムの平文が「商品1」であるセルは、トークン化処理(S500)で文字「B」にトークン化されている。【００３８】
図１２は、図９中の集計分析処理(S600)のフローチャートである。データベースサーバ200は、トークン化処理(S500)で生成したトークン化データ(D600)に対して、性別カラムが文字「A」であるセルの個数を数え上げ、その値を分析処理結果(D500)の「性別＝ffce44」のレコード数カラムに入力する(S601)。同様に、購入商品カラムが文字「B」であるセルの個数を数え上げ、その値を分析処理結果(D500)の「購入商品＝c73fb5」のレコード数カラムに入力する(S602)。同様に性別カラムが文字「A」かつ購入商品カラムが文字「B」であるレコードの数を数え上げ、その値を分析処理結果(D500)の「性別＝ffce44」かつ「購入商品＝c73fb5」のレコード数カラムに入力する(S603)。分析処理結果(D500)を出力して(S604)、処理を終了する。【００３９】
本実施例によれば、トークン化することで、検索可能暗号のマッチング処理の実行を削減できるので、暗号化により情報提供者のプライバシーを保護しつつ、高速に分析が実行可能となり、分析の処理効率を向上できる。
【実施例２】
【００４０】
実施例１では、データベースサーバ200が暗号化データのトークン化を実行した際に、平文の出現頻度がデータベースサーバ200に把握される可能性がある。たとえば、図１１のトークン化データ(D600)では性別カラムの値が「男」であるセルが文字「A」でトークン化されているが、データベースサーバ200が性別には「男」「女」の2値しかなく、この平文データでは「男」の出現頻度が「女」の出現頻度より高い、といった背景知識を持っている場合、文字「A」に対応する平文は「男」であると推測可能である。このトークン化による出現頻度が把握されることについて、本実施例では、前述の方法に加えて、ダミーレコード、フラグ、および加法的準同型暗号を用いて、「男」「女」の出現頻度情報を秘匿する。【００４１】
以下、本実施例では、実施例１と同様に、暗号化しデータベース200に保管した暗号化データに対して、ユーザ端末100が、性別カラムの値が「男」であるレコードの数と、購入商品カラムが「商品1」であるレコードの数と、性別カラムの値が「男」かつ購入商品カラムが「商品1」であるレコードの数の3つの値の集計分析を依頼する例を示す。特に断りのない場合は、実施例と同じシステム構成、データフォーマット、処理フローチャートを用いるものとする。【００４２】
本実施例で使用する加法的準同型暗号アルゴリズムを定義する。加法的準同型暗号アルゴリズム(以下、加法的準同型暗号と称する)とは、例えば、P. Paillier, Public-Key Cryptosystems Based on Composite Degree Residuosity Classes.（Proc. of EURO-CRYPT'99, LNCS 1592, pp.223-238, 1999）にあるような、通常の公開鍵暗号アルゴリズムにおける暗号化、復号化に対する非対称性に加え、加法的準同型暗号アルゴリズムの加法関数は暗号文同士の加法性を有する方式である。つまり、２つの暗号文Enc(a)、Enc(b)に対して、その和a+bの暗号文Enc(a+b)を公開情報のみを用いて計算することが可能な方式である。【００４３】
本実施例は、図３に示した平文データ(D100)のデータフォーマットと、図１２の集計分析処理の処理内容を、実施例１と異にする。【００４４】
図１３は、本実施例におけるユーザ端末100が保持するダミーレコード入り平分データ(D700)のデータフォーマット例である。図３との差異は、性別カラムの値「男」「女」の出現頻度を同じにするため、図３の平文データID１〜１０にダミーレコードID１１〜１６を加えている点である。ダミーレコードの性別カラムの値が「女」であるため、性別カラム全体で、値「男」が８レコード、「女」が８レコードあり、値「男」「女」の出現頻度に偏りがない。さらに集計分析の際にダミーレコードが集計の結果に影響しないためにダミーレコードのフラグを0、ダミーでないレコードのフラグを1としている。【００４５】
図１４は、図１３のダミーレコード入り平文データ(D700)を暗号化したダミーレコード入り暗号化データ(D800)のデータフォーマット例である。図示するように、ダミーレコード入り平文データ(D700)の性別、購入商品、および金額のカラムの各セルが検索可能暗号暗号化関数で暗号化されており、フラグカラムの各セルが加法的準同型暗号アルゴリズムの暗号化関数で暗号化されている。以下、図１４に示すように、区別のために、検索可能暗号による暗号文を「cfec6e」などの乱数文字列で表記し、加法的準同型暗号による平文0,1,…nに対応する暗号文をそれぞれEnc(0),Enc(1)…Enc(n)で表記する。【００４６】
図１５は、本実施例におけるユーザ端末100とデータベースサーバ200の暗号化データ事前保存処理のフローチャートである。図１５の図５との差異は、ユーザ端末100の処理に、加法的準同型暗号の公開鍵、秘密鍵の生成処理(S700)が加えられている点と、暗号化データの生成処理において、図１４のダミーレコード入り暗号化データ(D800)を生成し(S200)、データベースサーバ200にダミーレコード入り暗号化データ(D800)と公開鍵、秘密鍵の生成処理(S700)で生成した公開鍵を送信している点である。【００４７】
なお、表形式データの各セルに記載されているアイテム名の並び順が、レコード（行）によって異なる場合のソートに関しては、実施例１と同様である。【００４８】
図１６は、本実施例におけるユーザ端末100とデータベースサーバ200の暗号化集計分析処理のフローチャートである。実施例１の図９との差異は、図１７を用いて後述する集計分析処理(S610)の処理内容と分析処理結果(D500)の復号化処理(S800)が加えられている点である。【００４９】
図１７は、本実施例における図１６中の集計分析処理(S610)の処理フローチャートである。データベースサーバ200は、トークン化処理(図１６のS500)でトークン化したデータを対象に、性別カラムが文字「A」であるレコードのフラグカラムの値である加法的準同型暗号文に対して、加法的準同型暗号文の公開鍵を用いて性別カラムが文字「A」である暗号文の総和の暗号文Enc(8)を算出し、算出結果を分析処理結果(D500)の「性別＝ffce44」のレコード数カラムに入力する(S611)。同様に、データベースサーバ200は、購入商品カラムが文字「B」であるレコードのフラグカラムの値である加法的準同型暗号文に対して、加法的準同型暗号文の公開鍵を用いて購入商品カラムが文字「B」である暗号文の総和の暗号文Enc(4)を算出し、算出結果を分析処理結果(D500)の「購入商品＝c73fb5」のレコード数カラムに入力する(S612)。同様に、データベースサーバ200は、性別カラムが文字「A」かつ購入商品カラムが文字「B」であるレコードに対して、各レコードのフラグカラムの値である加法的準同型暗号文に対して、加法的準同型暗号文の公開鍵を用いて、暗号文の総和の暗号文Enc(3)を算出し、算出結果を分析処理結果(D500)の「性別＝ffce44」かつ「購入商品＝c73fb5」のレコード数カラムに入力する(S613)。データベースサーバ200は、分析処理結果(D500)を出力し(S614)、処理を終了する。【００５０】
図１８は、図１７中の集計分析処理(S612)の購入商品カラムが文字「B」であるレコードのフラグカラムの値である加法的準同型暗号文に対して、加法的準同型暗号文の公開鍵を用いて性別カラムが文字「B」である暗号文の総和の暗号文Enc(4)を算出する処理を図示している。図示するように、ダミーレコードのフラグカラムの加法的準同型暗号文は、Enc(0)のため、集計の結果に影響を与えない。【００５１】
図１９は、本実施例における分析処理結果(D500)のデータフォーマット例である。図示するように、図８に示した実施例１における分析処理結果(D500)と違い、分析処理の結果は加法的準同型の暗号文として出力される。ユーザ端末100は、図１５に示した事前保存処理の加法的準同型暗号公開/秘密鍵生成(S700)で生成した秘密鍵を用いて加法的準同型の暗号文を復号化し(図１６のS800)、処理結果を得る。【００５２】
本実施例において、ユーザ端末100はダミーレコードをID１１〜１６に挿入したが、必ずしも平文データのレコードの行下にダミーレコードを挿入する必要はなく、任意の行に各ダミーレコードを挿入してよい。また、ダミーレコードを挿入したダミーレコード入り平文データ(D700)の各レコード同士で任意の置換を行ってもよい。【００５３】
本実施例によれば、検索可能暗号のマッチング処理の実行の削減に加えて、ダミーレコード、フラグ、および加法的準同型暗号を用いることにより、暗号化により情報提供者のプライバシーを保護に係る出現頻度情報を秘匿しつつ、高速に分析が実行可能となる。【００５４】
本発明は，上述の実施形態に限定されるものではなく、その要旨の範囲内で様々な変形が可能である。たとえば、実施例１および２では、表形式データとして「性別」「購入商品」「金額」の３つのカラムからなる表に対する分析結果を例示しているが、カラムの数は３である必要はなく、１以上の任意の数でよい。【００５５】
また、実施例１および２では、検索可能暗号アルゴリズムとして共通鍵検索可能暗号アルゴリズムを用いたが、必ずしも共通鍵方式の検索可能暗号を用いる必要は無く、たとえば、特定の公開鍵検索可能暗号アルゴリズムで定められた検索可能暗号暗号化関数、検索可能暗号クエリ関数、検索可能暗号マッチング関数を、それぞれ実施例中の共通鍵検索可能暗号アルゴリズムの検索可能暗号暗号化関数、検索可能暗号クエリ関数、検索可能暗号マッチング関数の代わりに用いてもよい。【００５６】
また、実施例２では、加法的準同型アルゴリズムとして公開鍵加法的準同型アルゴリズムを用いたが、必ずしも公開鍵方式の加法的準同型暗号を用いる必要は無く、たとえば、特定の共通鍵加法的準同型暗号アルゴリズムで定められた暗号化関数、復号化関数、加法関数を、それぞれ実施例中の公開鍵準同型暗号アルゴリズムの暗号化関数、復号化関数、加法関数の代わりに用いてもよい。
【符号の説明】
【００５７】
100：ユーザ端末、101：ＣＰＵ、102：補助記憶装置（記憶装置）、103：メモリ、104：内部信号線、105：表示装置、106：入出力インターフェース、107：通信装置、200：データベースサーバ、300：ネットワーク。
【図１】
2016120975.tif 000003
【図２】
2016120975.tif 000004
【図３】
2016120975.tif 000005
【図４】
2016120975.tif 000006
【図５】
2016120975.tif 000007
【図６】
2016120975.tif 000008
【図７】
2016120975.tif 000009
【図８】
2016120975.tif 000010
【図９】
2016120975.tif 000011
【図１０】
2016120975.tif 000012
【図１１】
2016120975.tif 000013
【図１２】
2016120975.tif 000014
【図１３】
2016120975.tif 000015
【図１４】
2016120975.tif 000016
【図１５】
2016120975.tif 000017
【図１６】
2016120975.tif 000018
【図１７】
2016120975.tif 000019
【図１８】
2016120975.tif 000020
【図１９】
2016120975.tif 000021
【手続補正書】
【提出日】平成29年2月2日(2017.2.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
予め設定された検索可能暗号アルゴリズムの秘密鍵生成関数を用いて、秘密鍵を生成する秘密鍵生成部、
前記検索可能暗号アルゴリズムの暗号化関数を用いて、表形式データのセルを暗号化して、暗号化表形式データを生成する暗号化表形式データ生成部、
前記表形式データの分析対象のアイテム名を、前記秘密鍵を用いて、前記検索可能暗号アルゴリズムの検索可能暗号クエリ関数で暗号化して暗号化分析クエリを生成する暗号化分析クエリ生成部、および、
前記暗号化表形式データ、前記検索可能暗号アルゴリズムの検索可能暗号マッチング関数、および前記暗号化分析クエリを送信する第１の送信部を有するユーザ端末、並びに、
前記ユーザ端末から受信した、前記暗号化表形式データおよび前記検索可能暗号マッチング関数を格納する格納部、
前記ユーザ端末からの前記暗号化分析クエリの受信に応答して、前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、検索処理でヒットした前記暗号化表形式データのセルを任意の文字列にトークン化して部分トークン化済み暗号化表形式データを生成するトークン化部、
前記部分トークン化済み暗号化表形式データを入力として予め設定されたデータ分析処理を実行し、データ分析結果を生成するデータ分析処理部、および、
前記データ分析結果を前記ユーザ端末へ送信する第２の送信部を有するデータベースサーバ
を含むことを特徴とするデータ集計分析システム。
【請求項２】
前記ユーザ端末の前記暗号化分析クエリ生成部は、分析対象の複数の前記アイテム名を前記検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、前記第１の送信部は、生成した複数の前記暗号化分析クエリを前記データベースサーバへ送信し、
前記データベースサーバの前記トークン化部は、複数の前記暗号化分析クエリの受信に応答して、複数の前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、複数の前記暗号化分析クエリの各々に対して検索処理でヒットした前記暗号化表形式データのセルを、前記暗号化分析クエリの各々に対応した任意の文字列にトークン化して前記部分トークン化済み暗号化表形式データを生成する
ことを特徴とする請求項１に記載のデータ集計分析システム。
【請求項３】
前記ユーザ端末は、前記表形式データの各セルに記載されている前記アイテム名に特定の全順序構造を与え、前記表形式データの各行の各セルに記載されている前記アイテム名を前記全順序構造でソートするソート部をさらに有し、
前記ユーザ端末の前記暗号化分析クエリ生成部は、前記表形式データの分析対象の複数の前記アイテム名を、前記ソート部によりソートされた順番に従って、前検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、
前記ユーザ端末の前記第１の送信部は、前記ソート部によりソートされた前記順番に従って、複数の前記暗号化分析クエリを前記データベースサーバへ送信する
ことを特徴とする請求項２に記載のデータ集計分析システム。
【請求項４】
予め設定された検索可能暗号アルゴリズムの秘密鍵生成関数を用いて秘密鍵を生成し、予め設定された加法的準同型暗号アルゴリズムの暗号化関数を用いて公開鍵と復号鍵のペアを生成する鍵生成部、
ダミー行およびフラグ列を挿入した表形式データの行が前記ダミー行であれば当該行の前記フラグ列のセルの値を０、前記ダミー行でなければ当該行の前記フラグ列のセルの値を１とするダミー入り表形式データを、前記検索可能暗号アルゴリズムの暗号化関数を用いて前記ダミー入り表形式データの前記フラグ列を除いたセルを暗号化して検索可能暗号の暗号文とし、加法的準同型暗号の暗号化関数を用いて前記ダミー入り表形式データの前記フラグ列のセルを暗号化して前記加法的準同型暗号の暗号文とした、暗号化表形式データを生成する暗号化表形式データ生成部、
前記表形式データの分析対象のアイテム名を、前記秘密鍵を用いて、前記検索可能暗号アルゴリズムの検索可能暗号クエリ関数で暗号化して暗号化分析クエリを生成する暗号化分析クエリ生成部、
受信するデータ分析結果と前記復号鍵とを入力として、復号化処理を実行する復号化部、および、
前記暗号化表形式データ、前記検索可能暗号アルゴリズムの検索可能暗号マッチング関数、前記公開鍵および前記暗号化分析クエリを送信する第１の送信部を有するユーザ端末、並びに、
前記ユーザ端末から受信した、前記暗号化表形式データ、前記検索可能暗号マッチング関数、および前記公開鍵を格納する格納部、
前記ユーザ端末からの前記暗号化分析クエリの受信に応答して、前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、検索処理でヒットした前記暗号化表形式データのセルを任意の文字列にトークン化して部分トークン化済み暗号化表形式データを生成するトークン化部、
前記部分トークン化済み暗号化表形式データを入力として、前記公開鍵を用いて、予め設定されたデータ分析処理を実行し、データ分析結果を生成するデータ分析処理部、および、
前記データ分析結果を前記ユーザ端末へ送信する第２の送信部を有するデータベースサーバを含む
ことを特徴とするデータ集計分析システム。
【請求項５】
前記ユーザ端末の前記第１の送信部は、さらに前記加法的準同型暗号アルゴリズムの加法関数を送信し、
前記データベースサーバの格納部は、前記ユーザ端末から受信した前記加法的準同型暗号アルゴリズムの前記加法関数を格納し、
前記データ分析処理部は、トークン化された前記部分トークン化済み暗号化表形式データのアイテムのセルの総数を数え上げる際に、前記フラグ列の前記加法的準同型暗号の暗号文を入力とし、前記加法関数を用いて加法演算した暗号文を、数え上げの値とする
ことを特徴とする請求項４に記載のデータ集計分析システム。
【請求項６】
前記ユーザ端末の前記暗号化分析クエリ生成部は、分析対象の複数の前記アイテム名を前記検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、
前記データベースサーバの前記トークン化部は、複数の前記暗号化分析クエリの受信に応答して、複数の前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、前記暗号化分析クエリの各々に対して検索処理でヒットした前記暗号化表形式データのセルを、前記暗号化分析クエリの各々に対応した任意の文字列にトークン化して前記部分トークン化済み暗号化表形式データを生成する
ことを特徴とする請求項５に記載のデータ集計分析システム。
【請求項７】
前記ユーザ端末は、前記表形式データの各セルに記載されている前記アイテム名に特定の全順序構造を与え、前記表形式データの各行の各セルに記載されている前記アイテム名を前記全順序構造でソートするソート部をさらに有し、
前記ユーザ端末の前記暗号化分析クエリ生成部は、前記表形式データの分析対象の複数の前記アイテム名を、前記ソート部によりソートされた順番に従って、前検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、
前記ユーザ端末の前記第１の送信部は、前記ソート部によりソートされた順番に従って、複数の前記暗号化分析クエリを前記データベースサーバへ送信する
ことを特徴とする請求項６に記載のデータ集計分析システム。
【請求項８】
ユーザ端末とデータベースサーバとを接続したデータ集計分析システムにおけるデータ集計分析方法であって、
前記ユーザ端末が、予め設定された検索可能暗号アルゴリズムの秘密鍵生成関数を用いて秘密鍵を生成し、
前記検索可能暗号アルゴリズムの暗号化関数を用いて、表形式データのセルを暗号化して暗号化表形式データを生成し
生成した前記暗号化表形式データを前記データベースサーバに送信し、
前記検索可能暗号アルゴリズムの検索可能暗号マッチング関数を前記データベースサーバへ送信し、
前記データベースサーバが、前記ユーザ端末から受信した、前記暗号化表形式データと前記検索可能暗号マッチング関数を格納し、
前記ユーザ端末が、前記表形式データの分析対象のアイテム名を、前記秘密鍵を用いて、前記検索可能暗号アルゴリズムの検索可能暗号クエリ関数で暗号化して暗号化分析クエリを生成し、生成した前記暗号化分析クエリを前記データベースサーバへ送信し、
前記データベースサーバが、前記暗号化分析クエリの受信に応答して、前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、検索処理でヒットした前記暗号化表形式データのセルを任意の文字列にトークン化して部分トークン化済み暗号化表形式データを生成し、
前記部分トークン化済み暗号化表形式データを入力として予め設定されたデータ分析処理を実行し、データ分析結果を生成し、
前記データ分析結果を前記ユーザ端末へ送信する
ことを特徴とするデータ集計分析方法。
【請求項９】
前記ユーザ端末が、分析対象の複数の前記アイテム名を前記検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、
生成した複数の前記暗号化分析クエリを前記データベースサーバへ送信し、
前記データベースサーバは、複数の前記暗号化分析クエリの受信に応答して、複数の前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、
複数の前記暗号化分析クエリの各々に対して検索処理でヒットした前記暗号化表形式データのセルを、前記暗号化分析クエリの各々に対応した任意の文字列にトークン化して前記部分トークン化済み暗号化表形式データを生成する
ことを特徴とする請求項８に記載のデータ集計分析方法。
【請求項１０】
前記ユーザ端末が、前記表形式データの各セルに記載されている前記アイテム名に特定の全順序構造を与え、前記表形式データの各行の各セルに記載されている前記アイテム名を前記全順序構造でソートし、
前記表形式データの分析対象の複数の前記アイテム名を、ソートされた順番に従って、前記検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、ソートされた前記順番に従って、複数の前記暗号化分析クエリを前記データベースサーバへ送信する
ことを特徴とする請求項９に記載のデータ集計分析方法。
【請求項１１】
前記表形式データが、ダミー行およびフラグ列を有し、
前記ユーザ端末が、前記表形式データの行がダミー行であれば当該行の前記フラグ列のセルの値を０、前記ダミー行でなければ当該行の前記フラグ列のセルの値を１とするダミー入り表形式データを生成し、
予め設定された加法的準同型暗号アルゴリズムの暗号化関数を用いて公開鍵と復号鍵のペアを生成し、
前記検索可能暗号アルゴリズムの暗号化関数を用いて前記ダミー入り表形式データの前記フラグ列を除いたセルを暗号化して検索可能暗号の暗号文とし、加法的準同型暗号の暗号化関数を用いて前記ダミー入り表形式データの前記フラグ列のセルを暗号化して前記加法的準同型暗号の暗号文とした、前記暗号化表形式データを生成し、
前記検索可能暗号アルゴリズムの前記検索可能暗号マッチング関数とともに前記公開鍵を前記データベースサーバへ送信し、
前記データベースサーバが、前記ユーザ端末から受信した、前記暗号化表形式データおよび前記検索可能暗号マッチング関数とともに前記公開鍵を格納し、
前記部分トークン化済み暗号化表形式データを入力として、前記公開鍵を用いて、予め設定されたデータ分析処理を実行し、前記データ分析結果を生成し、
前記ユーザ端末が、前記データ分析結果と前記復号鍵とを入力として、復号化処理を実行する
ことを特徴とする請求項８に記載のデータ集計分析方法。
【請求項１２】
前記ユーザ端末が、さらに前記加法的準同型暗号アルゴリズムの加法関数を送信し、
前記データベースサーバが、前記ユーザ端末から受信した前記加法的準同型暗号アルゴリズムの前記加法関数を格納し、
トークン化された前記部分トークン化済み暗号化表形式データのアイテムのセルの総数を数え上げる際に、前記フラグ列の前記加法的準同型暗号の暗号文を入力とし、前記加法的準同型暗号の前記加法関数を用いて加法演算した暗号文を、数え上げの値とする
ことを特徴とする請求項１１に記載のデータ集計分析方法。
【請求項１３】
前記ユーザ端末が、分析対象の複数の前記アイテム名を前記検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、
生成した前記暗号化分析クエリを前記データベースサーバへ送信し、
前記データベースサーバは、複数の前記暗号化分析クエリの受信に応答して、複数の前記暗号化分析クエリと前記暗号化表形式データを入力として前記検索可能暗号マッチング関数を用いて検索処理を実行し、
前記暗号化分析クエリの各々に対して検索処理でヒットした前記暗号化表形式データのセルを、前記暗号化分析クエリの各々に対応した任意の文字列にトークン化して前記部分トークン化済み暗号化表形式データを生成する
ことを特徴とする請求項１２に記載のデータ集計分析方法。
【請求項１４】
前記ユーザ端末が、前記表形式データの各セルに記載されている前記アイテム名に特定の全順序構造を与え、前記表形式データの各行の各セルに記載されている前記アイテム名を前記全順序構造でソートし、
前記全順序構造でソートした順番に従って、複数の前記検索可能暗号クエリ関数で暗号化して、複数の前記アイテム名に対応した複数の前記暗号化分析クエリを生成し、
前記全順序構造でソートした順番に従って、複数の前記暗号化分析クエリを前記データベースサーバへ送信する
ことを特徴とする請求項１３に記載のデータ集計分析方法。
【国際調査報告】
2016120975.tif 000022
2016120975.tif 000023
2016120975.tif 000024
2016120975.tif 000025