(57)【要約】【課題】検索可能暗号において集約処理を実行する場合に処理性能を向上させ得る暗号データ処理システム及び暗号データ処理方法を提案する。【解決手段】クライアントは、複数の暗号データに対して指標で実行すべき集約処理を含む処理要求から指標を指定したグループ化処理要求に変換する処理要求変換部と、グループ化処理要求をサーバに対して発行する処理要求発行部とを備え、サーバは、複数の暗号データを管理する暗号データテーブルと、複数の暗号データをグループ化するための少なくとも１つの指標を管理する暗号グループ化指標管理テーブルと、集約処理の実行によってグループ化した暗号データを生成しクライアントに送信する暗号データ送信部とを備え、クライアントは、受信したグループ化暗号データを平文のグループ化データに復号する復号部と、平文のグループ化データに対して集約処理を実行するグループ化結果集約部とを備えるようにした。【選択図】図１
2018063638.tif 000002
【特許請求の範囲】
【請求項１】
複数の暗号データを提供しうるサーバと、前記サーバに対して処理要求を発行することにより所望の暗号データを取得するクライアントとを備える暗号データ処理システムにおいて、
前記クライアントは、
前記複数の暗号データに対して所望の指標で実行すべき集約処理を含む処理要求から前記所望の指標を指定したグループ化処理要求に変換する処理要求変換部と、
前記グループ化処理要求を前記サーバに対して発行する処理要求発行部と
を備え、
前記サーバは、
前記複数の暗号データを管理する暗号データテーブルと、
前記複数の暗号データをグループ化するための少なくとも１つの指標を管理する暗号グループ化指標管理テーブルと、
前記クライアントによって発行された前記グループ化処理要求にて前記所望の指標が指定されている場合、前記暗号データテーブルにおいて管理されている前記複数の暗号データについて前記所望の指標に応じた前記集約処理を事前に実行し、前記集約処理の実行によってグループ化した暗号データを生成し前記クライアントに送信する暗号データ送信部と
を備え、
前記クライアントは、
受信したグループ化暗号データを平文のグループ化データに復号する復号部と、
前記平文のグループ化データに対して前記集約処理を実行するグループ化結果集約部と
を備えることを特徴とする暗号データ処理システム。
【請求項２】
前記クライアントは、
前記サーバで前記複数の暗号データをグループ化するための少なくとも１つの指標を管理するグループ化指標管理テーブルを作成するグループ化指標管理テーブル作成部と、
前記グループ化指標管理テーブルを暗号化した暗号グループ化指標管理テーブルを送信する暗号グループ化指標管理テーブル送信部と
を備えることを特徴とする請求項１に記載の暗号データ処理システム。
【請求項３】
前記クライアントは、
前記処理要求を前記グループ化処理要求に変換するための処理要求変換テーブルを作成する処理要求変換テーブル作成部を備え、
前記処理要求変換部は、指標の具体的なグループ名称を抽象的な名称に変換する、前記処理要求変換テーブルを使用する
ことを特徴とする請求項１に記載の暗号データ処理システム。
【請求項４】
前記処理要求変換部は、
前記処理要求に前記集約処理が含まれる場合、
前記集約処理を、暗号化された前記指標と前記複数の暗号データのうちの１つの暗号データとを結合するための結合処理及び前記複数の暗号データを整列するための整列処理に変換する
ことを特徴とする請求項１に記載の暗号データ処理システム。
【請求項５】
前記処理要求変換部は、
前記処理要求がＳＱＬ文であり、
前記処理要求にＧＲＯＵＰ  ＢＹ句が含まれる場合、
前記ＧＲＯＵＰ  ＢＹ句をＪＯＩＮ及びＯＲＤＥＲ  ＢＹ句で代用する
ことを特徴とする請求項１に記載の暗号データ処理システム。
【請求項６】
前記グループ化指標管理テーブル作成部は、前記サーバにおいて前記指標の数を認識させないためのダミーデータを作成する
ことを特徴とする請求項２に記載の暗号データ処理システム。
【請求項７】
複数の暗号データを提供しうるサーバと、前記サーバに対して処理要求を発行することにより所望の暗号データを取得するクライアントとを備える暗号データ処理システムにおける暗号データ処理方法において、
前記クライアントが、前記複数の暗号データに対して所望の指標で実行すべき集約処理を含む処理要求から前記所望の指標を指定したグループ化処理要求に変換する第１のステップと、
前記クライアントが、前記グループ化処理要求を前記サーバに対して発行する第２のステップと、
前記サーバが、前記クライアントによって発行された前記グループ化処理要求にて前記所望の指標が指定されている場合、前記複数の暗号データについて前記所望の指標に応じた前記集約処理を事前に実行する第３のステップと、
前記サーバが、前記集約処理の実行によってグループ化した暗号データを生成し前記クライアントに送信する第４のステップと、
前記クライアントが、受信したグループ化暗号データを平文のグループ化データに復号する第５のステップと、
前記平文のグループ化データに対して前記集約処理を実行する第６のステップと
を備えることを特徴とする暗号データ処理方法。
【請求項８】
前記クライアントが、前記第１のステップを実行する前に、前記サーバで前記複数の暗号データをグループ化するための少なくとも１つの指標を管理するグループ化指標管理テーブルを作成する第７のステップと、
前記グループ化指標管理テーブルを暗号化した暗号グループ化指標管理テーブルを送信する第８のステップと
を備えることを特徴とする請求項７に記載の暗号データ処理方法。
【請求項９】
前記クライアントが、前記第１のステップを実行する前に、
指標の具体的なグループ名称を抽象的な名称に変換する、処理要求変換テーブルを作成する第９のステップを備える
ことを特徴とする請求項７に記載の暗号データ処理方法。
【請求項１０】
前記クライアントが、前記第１のステップにおいて、前記処理要求に前記集約処理が含まれる場合、
前記集約処理を、暗号化された前記指標と前記複数の暗号データのうちの１つとを結合するための結合処理及び前記暗号データを整列するための整列処理に変換する
ことを特徴とする請求項７に記載の暗号データ処理方法。
【請求項１１】
前記クライアントが、前記第１のステップにおいて、前記処理要求にＧＲＯＵＰ  ＢＹ句が含まれる場合、
前記ＧＲＯＵＰ  ＢＹ句をＪＯＩＮ及びＯＲＤＥＲ  ＢＹ句で代用する
ことを特徴とする請求項７に記載の暗号データ処理方法。
【請求項１２】
前記クライアントが、前記第７のステップにおいて、前記サーバにおいて前記指標の数を認識させないためのダミーデータを作成する
ことを特徴とする請求項８に記載の暗号データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号データ処理システム及び暗号データ処理方法に関し、例えば、クライアント及びサーバ間で処理を分担する暗号データ処理システムに適用して好適なものである。
【背景技術】
【０００２】
クライアント及びサーバ間で処理を分割する暗号データ処理システムでは、クライアントのユーザが外部のサーバにユーザの保有するデータの管理を委託する場合、データを安全に取り扱うために検索可能暗号を利用することが考えられる。
【０００３】
検索可能暗号では、同一の平文から暗号化されたデータである暗号データ及び暗号化された検索キーワードなどの指標（以下、クエリとする）である暗号クエリを用いることで、データ及びクエリを復号することなくデータとクエリの一致判定が可能である。検索可能暗号は完全一致検索のみを可能とするため、データの検索を行う場合は、全てのデータに対して検索を行う必要がある。このため、システムの処理時間が増大する。
【０００４】
このような処理時間の増大を抑制する技術として、従来、特許文献１及び２に開示された発明が知られている。
【０００５】
特許文献１には、暗号データ及び暗号クエリに対して索引用タグを付与することで、検索するデータの範囲を削減し、サーバの処理負荷を削減することでシステムの高速化を可能とする発明が開示されている。
【０００６】
また特許文献２には、データベース管理システムにおいて、計算負荷の大きい処理を分割して、複数台の計算機に分散処理させる発明が開示されている。具体的には、サーバ側に複数台存在するデータノードに処理を分担させ、データノードの処理結果を集約するフロントデータベースサーバを設けることで、処理負荷の分散及び通信量の削減を実現し、システムの処理性能を向上させる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２０１３／１１１２８４号
【特許文献２】特開２０１２−１０８６３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、検索可能暗号において集約処理を実行する場合は、必要なデータをサーバから全てクライアントに送信し、クライアントは取得した１件のデータごとに、復号、ハッシュテーブルとの比較、シノニム判定、集約処理の実行が必要となる問題がある。なお、集約処理とは、合計を求める処理、平均を求める処理、最大値を求める処理、最小値を求める処理、個数をカウントする処理などを示す。
【０００９】
このため、クライアントの計算負荷が増大し、システム全体の処理性能が低下する。特許文献１及び２の技術を利用しても、集約処理を実行する場合は、上記のように必要なデータ全てをサーバからクライアントに送信し、クライアントがデータを復号してから集約するという処理手順は変わらないため、集約処理の高速化は実現できない。
【００１０】
本発明は以上の点を考慮してなされたもので、検索可能暗号において集約処理を実行する場合に処理性能を向上させ得る暗号データ処理システム及び暗号データ処理方法を提案しようとするものである。
【課題を解決するための手段】
【００１１】
かかる課題を解決するため本発明においては、複数の暗号データを提供しうるサーバと、サーバに対して処理要求を発行することにより所望の暗号データを取得するクライアントとを備える暗号データ処理システムにおいて、クライアントは、複数の暗号データに対して所望の指標で実行すべき集約処理を含む処理要求から所望の指標を指定したグループ化処理要求に変換する処理要求変換部と、グループ化処理要求をサーバに対して発行する処理要求発行部とを備え、サーバは、複数の暗号データを管理する暗号データテーブルと、複数の暗号データをグループ化するための少なくとも１つの指標を管理する暗号グループ化指標管理テーブルと、クライアントによって発行されたグループ化処理要求にて所望の指標が指定されている場合、暗号データテーブルにおいて管理されている複数の暗号データについて所望の指標に応じた集約処理を事前に実行し、集約処理の実行によってグループ化した暗号データを生成しクライアントに送信する暗号データ送信部とを備え、クライアントは、受信したグループ化暗号データを平文のグループ化データに復号する復号部と、平文のグループ化データに対して集約処理を実行するグループ化結果集約部とを備えるようにした。
【００１２】
また本発明においては、複数の暗号データを提供しうるサーバと、サーバに対して処理要求を発行することにより所望の暗号データを取得するクライアントとを備える暗号データ処理システムにおける暗号データ処理方法において、クライアントが、複数の暗号データに対して所望の指標で実行すべき集約処理を含む処理要求から所望の指標を指定したグループ化処理要求に変換する第１のステップと、クライアントが、グループ化処理要求をサーバに対して発行する第２のステップと、サーバが、クライアントによって発行されたグループ化処理要求にて所望の指標が指定されている場合、複数の暗号データについて所望の指標に応じた集約処理を事前に実行する第３のステップと、サーバが、集約処理の実行によってグループ化した暗号データを生成しクライアントに送信する第４のステップと、クライアントが、受信したグループ化暗号データを平文のグループ化データに復号する第５のステップと、平文のグループ化データに対して集約処理を実行する第６のステップとを備えるようにした。
【発明の効果】
【００１３】
本発明によれば、検索可能暗号を使用した場合においても集約処理の高速化ができ、かくして処理性能を向上させ得る暗号データ処理システム及び暗号データ処理方法を実現できる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態による暗号データ処理システムの構成を示すブロック図である。
【図２】本実施の形態による集約テーブルの構成を示す概念図である。
【図３】本実施の形態によるグループ化ＳＱＬ文変換テーブルの構成を示す概念図である。
【図４】本実施の形態による暗号グループ化キーテーブルの構成を示す概念図である。
【図５】本実施の形態による暗号データテーブルの構成を示す概念図である。
【図６】本実施の形態によるデータ登録処理の流れを示すシーケンス図である。
【図７】本実施の形態による検索処理及び集約処理の流れを示すシーケンス図である。
【図８】本実施の形態による処理を想定しているＳＱＬ文の構成及びグループ化ＳＱＬ文変換処理後のＳＱＬ文の構成を示す概念図である。
【図９】本実施の形態による暗号グループ化ＳＱＬ文による処理結果の構成を示す概念図である。
【図１０】本実施の形態による登録処理の処理手順を示すフローチャートである。
【図１１】本実施の形態による検索処理の処理手順を示すフローチャートである。
【図１２】本実施の形態によるグループ化ＳＱＬ文変換処理の処理手順を示すフローチャートである。
【図１３】本実施の形態による集約処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下図面について、本発明の一実施の形態を詳述する。
【００１６】
（１）本実施の形態による暗号データ処理システムの構成
図１において、１は全体として本実施の形態による暗号データ処理システムを示す。暗号データ処理システム１は、データ及びクエリ（以下、グループ化キーとする）を暗号化したままデータを検索するコンピュータシステムである。なお、ここで暗号化に使用する暗号には検索可能暗号を含むものとする。
【００１７】
暗号データ処理システム１は、ユーザからの処理を受け付けるクライアント１０及びクライアント１０からの処理要求に応じて処理を行うサーバ２０を備え、クライアント１０及びサーバ２０は、ネットワーク３０を介して相互に通信可能な構成となっている。
【００１８】
クライアント１０は、メモリなどの主記憶装置１１、ＨＤＤなどの外部記憶装置１２、ＣＰＵなどの演算装置１３並びにディスプレイ、キーボード及びマウスなどの入出力装置１４を備える。演算装置１３は主記憶装置１１の各プログラムによって、各処理の機能を実現する。
【００１９】
主記憶装置１１は、データ及びグループ化キーを暗号化しサーバ２０へ送付する暗号化部１１１、サーバ２０から受信する暗号データを復号する復号部１１２及び暗号データを復号した平文のデータを集約テーブル１２１に格納するグループ化結果集約部１１３の各プログラムを備える。
【００２０】
また主記憶装置１１は、処理要求変換部（以下、グループ化ＳＱＬ文変換部１１４とする）を備える。グループ化ＳＱＬ文変換部１１４は、入出力装置１４を介して入力されたＳＱＬ文などの処理要求を暗号化した状態でもグループ化処理が行えるグループ化ＳＱＬ文などのグループ化処理要求に変換するプログラムである。つまり、グループ化ＳＱＬ文変換部１１４は、処理要求中の集約処理を削除し、代わりにグループ化キーを追加することでグループ化処理要求に変換する。
【００２１】
また主記憶装置１１は、グループ化指標管理テーブル作成部（以下、グループ化キーテーブル作成部１１５とする）及び処理要求変換テーブル作成部（以下、グループ化ＳＱＬ文変換テーブル作成部１１６とする）の各プログラムを備える。グループ化キーテーブル作成部１１５は、暗号データをグループ化するためのカテゴリを記述したグループ化指標管理テーブル（以下、グループ化キーテーブル１１５Ａとする）（図４参照）を作成する。グループ化ＳＱＬ文変換テーブル作成部１１６は、ＳＱＬ文をグループ化ＳＱＬ文に変換するためのテーブルである処理要求変換テーブル（以下、グループ化ＳＱＬ文変換テーブル１２２とする）を作成する。
【００２２】
グループ化キーテーブル１１５Ａ（図４参照）は暗号化部１１１の暗号グループ化指標管理テーブル送信部によって、暗号化され、暗号グループ化指標管理テーブル（以下、暗号グループ化キーテーブル２２１とする）としてサーバ２０に送信される。なお集約テーブル１２１及びグループ化ＳＱＬ文変換テーブル１２２は、外部記憶装置１２に格納される。
【００２３】
サーバ２０は、メモリなどの主記憶装置２１、ＨＤＤなどの外部記憶装置２２、ＣＰＵなどの演算装置２３を備える。演算装置２３は主記憶装置２１のプログラムによって、処理の機能を実現する。
【００２４】
主記憶装置２１は、暗号データを検索するプログラムである後述の暗号データ検索部２１１を備える。外部記憶装置２２は暗号グループ化キーテーブル２２１、及びクライアント１０から受信した暗号データを格納する暗号データテーブル２２２を格納する。
【００２５】
（２）本実施の形態によるテーブル構成
図２は、集約テーブル１２１の構成例を示す。集約テーブル１２１は平文のデータで構成され、店舗名を格納する店舗名列１２１Ａ及び売値を格納する売値列１２１Ｂを備える。売値列１２１Ｂの値は、店舗Ａは１１１０円、店舗Ｂは８４０円といったように、店舗名列１２１Ａの各店舗の売値の合計値となっている。
【００２６】
図３は、グループ化ＳＱＬ文変換テーブル１２２の構成例を示す。グループ化ＳＱＬ文変換テーブル１２２は平文のデータで構成され、グループ化カラム名を格納するグループ化カラム名列１２２Ａ及びグループ化キーテーブル名を格納するグループ化キーテーブル名列１２２Ｂを備える。グループ化カラム名とグループ化キーテーブル名は、店舗名が第１のグループ、商品名が第２のグループ、日付が第３のグループといったように対応している。グループ化ＳＱＬ文変換テーブル１２２は、具体的なグループ名称であるグループ化カラム名の各名称を、抽象的な名称であるグループ化キーテーブル名の各名称に変換することで、サーバ２０の管理者にグループ化の基準を漏らさないようにすることができる。
【００２７】
図４にグループ化キーテーブル１１５Ａの構成例を示す。グループ化キーテーブル１１５Ａは平文のデータで構成される。また図４に、暗号グループ化キーテーブル２２１の構成例を示す。暗号グループ化キーテーブル２２１は暗号化されたデータで構成される。
【００２８】
暗号グループ化キーテーブルの要素は暗号化されているため、サーバ２０の管理者は内容を閲覧することができないが、どの程度の数を作成したかが実データ２２１Ａによってわかってしまう。このため、任意の個数のダミーデータ２２１Ｂを挿入することで、実データ２２１Ａの個数をサーバ２０の管理者にもわからなくすることができる。
【００２９】
また、テーブル名である第１のグループやカラム名であるグループ化キーはユーザがどのような基準でグループ化したかわからないような抽象的な名前を付けることで、サーバ２０の管理者にグループ化の基準を漏らさないようにすることができる。
【００３０】
なお、店舗Ａに対してはｑｕｅｒｙ（店舗Ａ）、店舗Ｂに対してはｑｕｅｒｙ（店舗Ｂ）といったように、暗号グループ化キーを店舗名に対して１つのみとすることで、暗号化されたデータをグループ化することができている。
【００３１】
図５は、暗号データテーブル２２２の構成を示す。暗号データテーブル２２２は暗号化されたデータで構成され、暗号化された店舗名を格納する店舗名列２２２Ａ、暗号化された商品名を格納する商品名列２２２Ｂ、暗号化された売値を格納する売値列２２２Ｃ及び暗号化された日付を格納する日付２２２Ｄを備える。
【００３２】
店舗名列２２２Ａには、店舗名である店舗Ｂや店舗Ｄが暗号化されて格納されている。商品名列２２２Ｂには、商品名であるＢ１やＤ５が暗号化されて格納されている。売値列２２２Ｃには、売値である３２０円や１００円が暗号化されて格納されている。日付列２２２Ｄには、日付である２０１６／４／２８などが暗号化されて格納されている。店舗名、商品名、売値及び日付は関連付けられており、どの店舗でどの商品がどんな売値でどの日付に売れたかがわかるようになっている。
【００３３】
（３）本実施の形態による登録処理、検索処理及び集約処理
図６は、クライアント１０からの暗号データをサーバ２０が受信して登録する登録処理の流れを示す。
【００３４】
暗号化部１１１は、ユーザによって入出力装置１４より入力された平文のデータを取得する（ＳＰ１０１）。暗号化部１１１の処理要求発行部は取得したデータを暗号化して暗号データにし、暗号データを外部記憶装置２２へ登録する（ＳＰ１０２）。
【００３５】
暗号化部１１１は、外部記憶装置２２から登録に対する肯定応答を取得する（ＳＰ１０３）。入出力装置１４は、暗号化部１１１から入力に対する肯定応答を取得する（ＳＰ１０４）。
【００３６】
次に、グループ化キーテーブル作成部１１５は、入出力装置１４からの平文のデータより、グループ化キーを取得する（ＳＰ１０５）。グループ化キーテーブル作成部１１５は入出力装置１４から取得したグループ化キーを基にグループ化キーテーブル１１５Ａを作成する。
【００３７】
暗号化部１１１は、グループ化キーテーブル作成部１１５より、グループ化キーテーブル１１５Ａを取得する（ＳＰ１０６）。暗号化部１１１は取得したグループ化キーテーブル１１５Ａを暗号化して暗号グループ化キーテーブル２２１にし、暗号グループ化キーテーブル２２１を外部記憶装置２２へ登録する（ＳＰ１０７）。
【００３８】
暗号化部１１１は、外部記憶装置２２から登録に対する肯定応答を取得する（ＳＰ１０８）。グループ化キーテーブル作成部１１５は、暗号化部１１１からグループ化キーテーブル作成に対する肯定応答を取得する（ＳＰ１０９）。入出力装置１４は、グループ化キーテーブル作成部１１５から入力に対する肯定応答を取得する（ＳＰ１１０）。
【００３９】
次に、グループ化ＳＱＬ文変換テーブル作成部１１６は、入出力装置１４からの平文のデータより、グループ化カラム名を取得する（ＳＰ１１１）。グループ化ＳＱＬ文変換テーブル作成部１１６は入出力装置１４から取得したグループ化カラム名を基にグループ化ＳＱＬ文変換テーブルを作成する。
【００４０】
グループ化ＳＱＬ文変換テーブル作成部１１６は作成したグループ化ＳＱＬ文変換テーブル１２２を外部記憶装置１２へ登録する（ＳＰ１１２）。グループ化ＳＱＬ文変換テーブル作成部１１６は外部記憶装置２２から登録に対する肯定応答を取得する（ＳＰ１１３）。入出力装置１４は、グループ化ＳＱＬ文変換テーブル作成部１１６から入力に対する肯定応答を取得する（ＳＰ１１４）。
【００４１】
図７は、サーバ２０が暗号データを検索する検索処理及びサーバ２０から暗号データを受信したクライアント１０が暗号データを復号し復号した暗号データを集約する集約処理の流れを示す。
【００４２】
グループ化ＳＱＬ文変換部１１４は、ユーザによって入出力装置１４より入力されたＳＱＬ文３０２Ａ（図８参照）を取得する（ＳＰ２０１）。グループ化ＳＱＬ文変換部１１４は、ＳＱＬ文３０２Ａを、集約処理を含まないグループ化ＳＱＬ文３０２Ｂ（図８参照）に変換する。グループ化ＳＱＬ文変換部１１４は、図８に示すように、合計を求めるｓｕｍやＧＲＯＵＰ  ＢＹ句などのデータの集約を行う集約処理をデータ同士の結合を行うＪＯＩＮ及びＯＲＤＥＲ  ＢＹ句などのデータの整列を行う整列処理に変換する。
【００４３】
暗号化部１１１は、グループ化ＳＱＬ文３０２Ｂをグループ化ＳＱＬ文変換部１１４から取得する（ＳＰ２０２）。グループ化ＳＱＬ文３０２Ｂを取得すると、暗号化部１１１は、グループ化ＳＱＬ文３０２Ｂを変換し、暗号データ及び暗号グループ化キーを含む暗号グループ化ＳＱＬ文とする。暗号化部１１１は、暗号グループ化ＳＱＬ文を暗号データ検索部２１１へ送信する（ＳＰ２０３）。
【００４４】
暗号グループ化ＳＱＬ文を受信すると、暗号データ検索部２１１は、暗号グループ化キーテーブル２２１及び暗号データテーブル２２２を用いて、暗号グループ化ＳＱＬ文の処理を行う。暗号データ検索部２１１による暗号グループ化ＳＱＬ文の処理結果は図９に示す処理結果テーブル４００のようになる。
【００４５】
つまりＯＲＤＥＲ  ＢＹ句によって、グループ化キー列４０３の値の昇順に整列され、クライアント１０が集約処理を行う際に、１件ずつ取得し逐次集約処理ができるようになっている。
【００４６】
なお図９に示すように処理結果テーブル４００は、暗号化された店舗名が格納される暗号店舗名列４０１、暗号化された売値が格納される売値列４０２及び暗号グループ化キーが格納されるグループ化キー列４０３を備える。暗号化された店舗名、暗号化された売値及び暗号グループ化キーは対応付けられている。
【００４７】
復号部１１２は、暗号データ検索部２１１の暗号データ送信部より暗号データ及び暗号グループ化キーを１件ずつ取得する（ＳＰ２０４）。復号部１１２は、取得した暗号データを復号する。グループ化結果集約部１１３は、復号部１１２から復号した暗号データを取得し（ＳＰ２０５）、集約処理を行い、集約処理の結果を集約テーブル１２１に格納する。入出力装置１４は、集約処理の結果を取得し出力する（ＳＰ２０６）。
【００４８】
図１０は、クライアント１０からデータをサーバ２０に登録する登録処理の流れを示す。クライアント１０では、暗号化部１１１が平文のデータを暗号化し、暗号データに変換する（ＳＰ３０１）。暗号データに変換すると、暗号化部１１１は、暗号データを、外部記憶装置２２へ送信する（ＳＰ３０２）。
【００４９】
次にグループ化キーテーブル作成部１１５は、平文のデータからグループ化キーを取得し、取得したグループ化キーを基に、グループ化キーテーブル１１５Ａを作成する（ＳＰ３０３）。暗号化部１１１は、グループ化キーテーブル１１５Ａを暗号化し、暗号グループ化キーテーブル２２１に変換する（ＳＰ３０４）。暗号化部１１１は、変換した暗号グループ化キーテーブル２２１を外部記憶装置２２へ送信する（ＳＰ３０５）。
【００５０】
次にグループ化ＳＱＬ文変換テーブル作成部１１６は、平文のデータからグループ化カラム名を取得し、取得したグループ化カラム名を基に、グループ化ＳＱＬ文変換テーブル１２２を作成する（ＳＰ３０６）。外部記憶装置１２は、グループ化ＳＱＬ文変換テーブル１２２を格納する（ＳＰ３０７）。
【００５１】
図１１は、クライアント１０からサーバ２０のデータを検索する際の検索処理の流れを示す。グループ化ＳＱＬ文変換部１１４は、ユーザによって入出力装置１４より入力されたＳＱＬ文３０２Ａ（図８参照）を取得する（ＳＰ４０１）。グループ化ＳＱＬ文変換部１１４は、ＳＱＬ文３０２Ａを、集約処理を含まないグループ化ＳＱＬ文３０２Ｂ（図８参照）に変換するグループ化ＳＱＬ文変換処理を行う（ＳＰ５００）。
【００５２】
図１２は、グループ化ＳＱＬ文変換部１１４でのグループ化ＳＱＬ文変換処理の詳細な流れを示す。グループ化ＳＱＬ文変換部１１４は、ＳＱＬ文３０２Ａを読み込む（ＳＰ５０１）。グループ化ＳＱＬ文変換部１１４は、ＳＱＬ文３０２Ａが集約処理を含むか否かを判断する（ＳＰ５０２）。この判断で否定結果を得るとグループ化ＳＱＬ文変換部１１４はグループ化ＳＱＬ文変換処理を終了する。
【００５３】
これに対して、グループ化ＳＱＬ文変換部１１４は、ステップＳＰ５０２の判断で肯定結果を得ると、集約処理の内容及び集約処理の対象（ＳＱＬ文３０２Ａ中の売値）を、グループ化ＳＱＬ文変換部１１４に格納する（ＳＰ５０３）。
【００５４】
グループ化ＳＱＬ文変換部１１４は、集約処理（３０２Ａ中のｓｕｍ）を削除し（ＳＰ５０４）、ＧＲＯＵＰ  ＢＹ句の対象（ＳＱＬ文３０２Ａ中の店舗名）を取得する（ＳＰ５０５）。グループ化ＳＱＬ文変換部１１４は、グループ化ＳＱＬ文変換テーブル１２２を参照し、グループ化カラム名である取得した対象に対応するグループ化キーテーブル名を取得する（ＳＰ５０６）。
【００５５】
グループ化ＳＱＬ文変換部１１４は、ＧＲＯＵＰ  ＢＹ句（ＳＱＬ文３０２Ａ中）を削除し（ＳＰ５０７）、ＪＯＩＮ及びＯＲＤＥＲ  ＢＹ句（ＳＱＬ文３０２Ｂ中）を追加する（ＳＰ５０８）。
【００５６】
暗号化部１１１は、グループ化ＳＱＬ文３０２Ｂをグループ化ＳＱＬ文変換部１１４から取得する。グループ化ＳＱＬ文３０２Ｂを取得すると、暗号化部１１１は、グループ化ＳＱＬ文３０２Ｂを変換し、暗号データ及び暗号グループ化キーを含む暗号グループ化ＳＱＬ文とする。暗号化部１１１は、暗号グループ化ＳＱＬ文を暗号データ検索部２１１へ送信する（ＳＰ４０２）。
【００５７】
暗号グループ化ＳＱＬ文を受信すると、暗号データ検索部２１１は、暗号グループ化キーテーブル２２１及び暗号データテーブル２２２を用いて、暗号グループ化ＳＱＬ文の処理を行う。
【００５８】
暗号データ検索部２１１で暗号グループ化ＳＱＬ文の処理が行われると、復号部１１２及びグループ化結果集約部１１３は、集約処理を行う（ＳＰ６００）。入出力装置１４は、集約処理の処理結果を取得し、取得した集約処理の処理結果を出力する（ＳＰ４０３）。
【００５９】
図１３は、復号部１１２及びグループ化結果集約部１１３での集約処理の詳細な流れを示す。復号部１１２は、暗号データ検索部２１１から処理結果を１件受信し（ＳＰ６０１）、受信した１件の処理結果を復号する（ＳＰ６０２）。グループ化結果集約部１１３は、グループ化結果集約部１１３にグループが１件でも格納されているか否かを判断する（ＳＰ６０３）。グループ化結果集約部１１３は、この判断で否定結果を得るとステップＳＰ６０５へ進む。
【００６０】
これに対して、グループ化結果集約部１１３は、ステップＳＰ６０３の判断で肯定結果を得ると、格納されたグループと復号したデータのグループとが異なるか否かを判断する（ＳＰ６０４）。グループ化結果集約部１１３は、この判断で否定結果を得るとステップＳＰ６０７へ進む。
【００６１】
これに対して、グループ化結果集約部１１３は、ステップＳＰ６０４の判断で肯定結果を得ると、復号データのグループを、新しいグループとしてグループ化結果集約部１１３に格納し（ＳＰ６０５）、グループ化結果集約部１１３は集約テーブル１２１に新しいグループを追加する（ＳＰ６０６）。
【００６２】
グループ化結果集約部１１３はグループ化ＳＱＬ文変換部１１４が格納している集約処理の内容及び集約処理の対象を基に集約処理を行い、集約テーブル１２１を更新する（ＳＰ６０７）。
【００６３】
グループ化結果集約部１１３が集約テーブル１２１を更新すると、復号部１１２は、暗号データ検索部２１１から処理結果を全て取得したか否かを判断する（ＳＰ６０８）。この判断で肯定結果を得ると、復号部１１２及びグループ化結果集約部１１３は、集約処理を終了する。
【００６４】
これに対して、復号部１１２は、ステップＳＰ６０８の判断で否定結果を得るとステップＳＰ６０１へ戻り、ステップＳＰ６０８で肯定結果を得るまでステップＳＰ６０１〜ステップ６０７の処理を繰り返す。
【００６５】
（４）本実施の形態の効果
以上のように本実施の形態の暗号データ処理システム１では、サーバ２０で管理されている暗号化された暗号データをグループ化し、サーバ２０が暗号グループ化キーの昇順などの一定の順で暗号データをクライアント１０に送信することで、クライアント１０でのソート処理などが不要となり、クライアント１０での集約処理を高速化する。
【００６６】
従って、本暗号データ処理システム１によれば、検索可能暗号を使用した場合においても集約処理の高速化ができ、かくして処理性能を向上させ得る暗号データ処理システム及び暗号データ処理方法を実現できる。
【符号の説明】
【００６７】
１……暗号データ処理システム、１０……クライアント、１１、２１……主記憶装置、１２、２２……外部記憶装置、１３、２３……演算装置、１４……入出力装置、２０……サーバ、３０……ネットワーク、１１１……暗号化部、１１２……復号部、１１３……グループ化結果集約部、１１４……グループ化ＳＱＬ文変換部、１１５……グループ化キーテーブル作成部、１１６……グループ化ＳＱＬ文変換テーブル作成部、１２１……集約テーブル、１２２……グループ化ＳＱＬ文変換テーブル、２１１……暗号データ検索部、２２１……暗号グループ化キーテーブル、２２２……暗号データテーブル。
【図１】
2018063638.tif 000003
【図２】
2018063638.tif 000004
【図３】
2018063638.tif 000005
【図４】
2018063638.tif 000006
【図５】
2018063638.tif 000007
【図６】
2018063638.tif 000008
【図７】
2018063638.tif 000009
【図８】
2018063638.tif 000010
【図９】
2018063638.tif 000011
【図１０】
2018063638.tif 000012
【図１１】
2018063638.tif 000013
【図１２】
2018063638.tif 000014
【図１３】
2018063638.tif 000015