JP2018128602A - 暗号化データベース管理装置、暗号化データベース管理方法、暗号化データベース管理プログラムおよび暗号化データベース管理システム - Google Patents
暗号化データベース管理装置、暗号化データベース管理方法、暗号化データベース管理プログラムおよび暗号化データベース管理システム Download PDFInfo
- Publication number
- JP2018128602A JP2018128602A JP2017022247A JP2017022247A JP2018128602A JP 2018128602 A JP2018128602 A JP 2018128602A JP 2017022247 A JP2017022247 A JP 2017022247A JP 2017022247 A JP2017022247 A JP 2017022247A JP 2018128602 A JP2018128602 A JP 2018128602A
- Authority
- JP
- Japan
- Prior art keywords
- encryption method
- query
- encryption
- data
- database management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】暗号化データベースに対して発行されたクエリを適切な暗号化方式で暗号化できる暗号化データベース管理システムを提供する。【解決手段】暗号化データベース管理システム40は、暗号化データベース管理装置50と、暗号化データを記憶する暗号化データベースを有する記憶装置60とを含む暗号化データベース管理システムであって、暗号化データベース管理装置50は、クエリの暗号化に用いられる暗号化方式をクエリと所定のモデルとに基づいて判定する判定部51と、判定された暗号化方式を用いてクエリを暗号化する暗号化部52とを有する。【選択図】図11
Description
本発明は、暗号化データベース管理装置、暗号化データベース管理方法、暗号化データベース管理プログラムおよび暗号化データベース管理システムに関する。
IoT(Internet of Things)の技術の普及により、大量データの分析結果がビジネスや社会で有効に活用されることが期待されている。同時に、過失や悪意により個人情報や秘密情報が大量に漏洩する危険性も高まっている。
機密性の高い情報を管理している組織からの内部犯行による情報漏洩を防止する技術として、データを暗号化された状態のまま保存し、暗号化データに対して検索、大小比較、計算等が行われるクエリ処理を実行する「秘匿データベースシステム」が知られている。秘匿データベースシステムは、大量データを効率的に分析したり活用したりする観点からも有用なシステムである。
例えば、特許文献1には、暗号化方式による処理制約に関わらず暗号化されたデータに対する処理そのものをセキュリティが担保された環境で処理できるようにアプリケーションの処理を変更する秘匿データ処理システムが記載されている。
一般的な秘匿データベースシステムは、1つ以上の「クライアント」と、1つ以上の「センタ」とで構成される。図12は、一般的な秘匿データベースシステムの構成例を示すブロック図である。
図12に示すように、秘匿データベースシステム11は、クライアント100〜クライアント10n(nは1以上の整数)と、センタ200とを含む。図12に示す秘匿データベースシステム11は、センタを1つだけ含む。すなわち、秘匿データベースシステム11は、合計n個のクライアントと、1つのセンタ200とを含む。
センタ200は、クライアント100〜クライアント10nとそれぞれ通信可能に接続されている。センタ200、およびクライアント100〜クライアント10nは、それぞれデータ送受信機能を有する。
クライアントは、例えばスマートフォンのような単体の装置である。また、クライアントは、コンピュータとマウスやモニタ等のI/O端末との組合せでもよいし、セットトップボックスと温湿度センサや照度センサ等の各種センサまたはカメラとの組合せでもよい。また、クライアントは、通信ネットワークに通信可能に接続し、取得データを送信する電化製品、自動車、またはロボットでもよい。
また、図12に示す外部システム20は、秘匿データベースシステム11に対して、外部から所定のクエリを発行することによってデータの登録、データの更新、データの削除等の「登録等の処理」を行う。
また、外部システム20は、外部から所定のクエリを発行することによって登録されたデータに対する算術演算、大小比較、検索等の「データ利用の処理」を行う。「データ利用の処理」が実行された後、外部システム20は、データの利用結果を受け取ることができる。
図12に示すように、クライアント100は、外部インタフェース部110と、クエリ実行部120と、暗号化/復号処理部130とを有する。クライアント101〜クライアント10nの各構成も、クライアント100の構成と同様である。
外部インタフェース部110は、外部と接続するインタフェースとしての機能を有する。また、外部インタフェース部110は、クエリ実行部120、および暗号化/復号処理部130とそれぞれ疎通する。また、図12に示す外部インタフェース部110に入力されるデータは、秘匿データベース220に登録される情報自体を表す。
クエリ実行部120は、外部システム20から発行されたクエリを実行する機能を有する。クエリを実行することによって、クエリ実行部120は、秘匿データベース220に対して登録等の処理、およびデータ利用の処理を行う。また、クエリ実行部120は、暗号化/復号処理部130と疎通する。
暗号化/復号処理部130は、受け取ったクエリの内容を解釈する機能を有する。また、暗号化/復号処理部130は、暗号化方式テーブルを有する。暗号化/復号処理部130は、暗号化方式テーブルに設定されている情報を基に、クエリ処理の対象データ等の暗号化および復号を行う機能を有する。
具体的には、暗号化/復号処理部130は、テーブル内の特定のデータ領域ごとに暗号化方式がそれぞれ設定された暗号化方式テーブルを用いて、設定された暗号化方式で暗号化および復号を行う。なお、ユーザには、暗号化方式を暗号化方式テーブルに予め設定することが求められる。また、暗号化/復号処理部130は、センタ200と疎通する。
暗号化方式テーブルは、クエリの実行対象のデータベースに格納されているテーブル内の特定のデータ領域に対応する暗号化方式を示す情報を有する。特定のデータ領域は、例えばテーブルのカラムである。
暗号化方式テーブルに設定されている暗号化方式は、例えば、性別のような少ないデータパタンでのセキュリティを保つ検索に向く「検索可能確率的暗号化方式」や、大小比較に向く「順序比較暗号化方式」や、算術演算に向く「準同型暗号化方式」である。
図13は、暗号化方式テーブルの例を示す説明図である。図13に示す暗号化方式テーブルには、テーブルのカラムごとに現在の暗号化方式の設定値がそれぞれ保持されている。
例えば、図13に示すように暗号化方式テーブルには、第1テーブルの第1カラムに関して第1暗号化方式が現在設定されているという情報が保持されている。第1暗号化方式は、例えば検索可能確率的暗号化方式である。
同様に、暗号化方式テーブルには、図13に示すように第1テーブルの第2カラムに関して第2暗号化方式が、第2テーブルの第1カラムに関して第3暗号化方式がそれぞれ現在設定されているという情報が保持されている。
第2暗号化方式は、例えば順序比較暗号化方式である。また、第3暗号化方式は、例えば準同型暗号化方式である。暗号化方式テーブルには、上記のように各テーブルの各カラムに関して現在の暗号化方式の設定値が保持される。
暗号化/復号処理部130は、クエリが暗号化方式テーブルに設定されている暗号化方式で暗号化された場合にクエリ処理が実行可能であるか否かを示す情報を含むエラー結果を「クエリ文・エラー結果」として、センタ200のクエリ実行部210に向けて送信する。
図12に示すように、センタ200は、クエリ実行部210と、秘匿データベース220とを有する。
クエリ実行部210は、外部システム20から発行されたクエリを実行する機能を有する。クエリを実行することによって、クエリ実行部210は、秘匿データベース220に対して登録等の処理、およびデータ利用の処理を行う。
クエリ実行部210は、n個のクライアントの各暗号化/復号処理部とそれぞれ疎通する。また、クエリ実行部210は、秘匿データベース220と疎通する。秘匿データベース220には、データ等が暗号化された状態で保存される。
クライアント100に入力されたデータは、暗号化方式テーブルに設定されている暗号化方式で暗号化/復号処理部130により暗号化される。暗号化されたデータは、センタ200に送信される。センタ200は、各クライアントから送信された暗号化データを秘匿データベース220に暗号化された状態のまま格納する。
以下、図12に示す秘匿データベースシステム11のデータを登録する動作を図14を参照して説明する。図14は、一般的な秘匿データベースシステムによるデータ登録処理の動作を示すフローチャートである。
外部インタフェース部110に対して、外部システム20からデータを登録するクエリが発行される(ステップS001)。外部インタフェース部110は、発行されたクエリを暗号化/復号処理部130に入力する(ステップS002)。
次いで、暗号化/復号処理部130は、受け取ったクエリに”INSERT”文が記載されていることを確認する。すなわち、暗号化/復号処理部130は、クエリ処理がデータの登録処理であると識別する(ステップS003)。
次いで、暗号化/復号処理部130は、暗号化方式テーブルを参照して、クエリ処理の対象のテーブルのカラムに関して設定されている暗号化方式を確認する。暗号化/復号処理部130は、確認された暗号化方式で入力されたクエリを暗号化する(ステップS004)。
次いで、暗号化/復号処理部130は、暗号化クエリをセンタ200に送信する。センタ200のクエリ実行部210は、送信された暗号化クエリを受信する(ステップS005)。
次いで、クエリ実行部210は、受信された暗号化クエリの内容に従って、秘匿データベース220に対してクエリ処理を実行する(ステップS006)。本例では、クエリ実行部210は、秘匿データベース220に格納されているテーブルにデータを挿入する。クエリ処理を実行した後、秘匿データベースシステム11は、データ登録処理を終了する。
上記のように、ステップS004以降、登録対象のデータは暗号化された状態のままである。すなわち、センタ200において、登録対象のデータは常に暗号化された状態である。なお、データ登録処理以外の「登録等の処理」も、図14に示す動作と同様の動作で実行される。
次に、図12に示す秘匿データベースシステム11の登録済のデータに対する「データ利用の処理」を行う動作を図15を参照して説明する。図15は、一般的な秘匿データベースシステムによるデータ利用処理の動作を示すフローチャートである。
外部インタフェース部110に対して、外部システム20から「データ利用の処理」を行うためのクエリが発行される(ステップS011)。外部インタフェース部110は、発行されたクエリを暗号化/復号処理部130に入力する(ステップS012)。
次いで、暗号化/復号処理部130は、受け取ったクエリを基にクエリ処理の内容を識別する(ステップS013)。
次いで、暗号化/復号処理部130は、暗号化方式テーブルを参照して、クエリ処理の対象のテーブルのカラムに関して設定されている暗号化方式を確認する。暗号化/復号処理部130は、確認された暗号化方式で暗号化されたクエリの実行が可能であるか否かを示す情報を含むエラー結果を生成する(ステップS014)。
次いで、暗号化/復号処理部130は、暗号化方式テーブルを参照して、クエリ処理の対象のテーブルのカラムに関して設定されている暗号化方式でクエリを暗号化する(ステップS015)。
暗号化した後、暗号化/復号処理部130は、暗号化クエリおよび生成されたエラー結果をクエリ文・エラー結果として、センタ200に送信する。センタ200のクエリ実行部210は、送信されたクエリ文・エラー結果を受信する(ステップS016)。
次いで、クエリ実行部210は、受信されたクエリ文・エラー結果を参照して、センタ200で暗号化クエリの実行が可能であるか否かを確認する(ステップS017)。
センタ200で暗号化クエリが実行可能である場合(ステップS017におけるYes)、クエリ実行部210は、秘匿データベース220に対して暗号化クエリを実行する(ステップS018)。なお、暗号化クエリの処理結果も、暗号化クエリと同じ暗号化方式で暗号化されている。
暗号化クエリを実行した後、クエリ実行部210は、クエリ文・エラー結果を送信したクライアントの暗号化/復号処理部130に向けて処理結果を送信する。暗号化/復号処理部130は、送信された処理結果を受信する(ステップS019)。
次いで、暗号化/復号処理部130は、暗号化方式テーブルを参照して、受信された処理結果に対応する対象テーブルのカラムに関して設定されている暗号化方式を確認する。暗号化/復号処理部130は、確認された暗号化方式で受信された処理結果を復号する(ステップS020)。
次いで、暗号化/復号処理部130は、復号された処理結果を外部インタフェース部110に入力する。外部インタフェース部110は、外部システム20に対して、復号された処理結果を返却する(ステップS021)。処理結果を返却した後、秘匿データベースシステム11は、データ利用処理を終了する。
センタ200で暗号化クエリが実行不可能である場合(ステップS017におけるNo)、クエリ実行部210は、秘匿データベース220に格納されている暗号化クエリの処理対象のデータを全て取得する(ステップS022)。
例えば、クエリに所定のカラム全体に渡る一致検索が含まれる場合、クエリ実行部210は、所定のカラムのデータを全て取得する。また、センタ200で一致検索処理が可能なカラムに対応する別のカラムの値の合計を求める算術演算がクエリに含まれる場合、クエリ実行部210は、別のカラムの該当する全てのデータ(値)を取得する。
次いで、クエリ実行部210は、ステップS022で取得された処理対象のデータを暗号化された状態のまま、クエリ文・エラー結果を送信したクライアントの暗号化/復号処理部130に向けて送信する。暗号化/復号処理部130は、送信された処理対象のデータを受信する(ステップS023)。
次いで、暗号化/復号処理部130は、暗号化方式テーブルを参照して、受信された処理対象のデータが格納されていた対象テーブルのカラムに関して設定されている暗号化方式を確認する。暗号化/復号処理部130は、確認された暗号化方式で受信された処理対象のデータを復号する(ステップS024)。
次いで、暗号化/復号処理部130は、復号された処理対象のデータをクエリ実行部120に入力する。クエリ実行部120は、入力された処理対象のデータに対して、外部システム20から発行されたクエリを実行する(ステップS025)。
クエリを実行した後、クエリ実行部120は、外部システム20に対してクエリの処理結果を返却する(ステップS026)。処理結果を返却した後、秘匿データベースシステム11は、データ利用処理を終了する。
なお、センタ200での実行不可能な処理がクエリ処理の一部である場合、実行不可能な処理のみがクライアント100のクエリ実行部120で実行されてもよい。次いで、暗号化/復号処理部130が処理結果を暗号化してセンタ200に送信し、センタ200のクエリ実行部210が実行可能な残りのクエリ処理を継続して実行してもよい。
一般的な秘匿データベースシステムにおいて専門的な知識や技術を持たないユーザにより多数のデータ領域に関して暗号化方式が手動で設定される。よって、データが不適切な暗号化方式で暗号化されることが多い。
上記のデータが不適切な暗号化方式で暗号化されるケースには、暗号化方式がデータ等の利用用途に適合しないケースがある。例えば、性別のような少ないパタンでの検索が行われず順序比較や算術演算も行われない場合、暗号化方式として「確定的暗号化方式」が適切であるが、「検索可能確率的暗号化方式」が設定されている第1のケースが上記のケースに該当する。「検索可能確率的暗号化方式」は、上述したように性別のような少ないパタンでの検索が行われる場合に適切な暗号化方式である。
また、大小比較が行われる場合、暗号化方式として「順序比較暗号化方式」が適切であるが、「準同型暗号化方式」が設定されている第2のケースが上記のケースに該当する。「準同型暗号化方式」は、上述したように算術演算が行われる場合に適切な暗号化方式である。
不適切な暗号化方式でクエリが暗号化される場合であっても、クエリが暗号化されたままクエリ処理は実行される。しかし、例えば第1のケースでは、クエリ処理の実行により多くの時間が掛かるという問題がある。また、第2のケースでは、暗号化クエリが一旦復号された後でクライアントがクエリ処理を実行するため、処理全体により多くの時間が掛かるという問題がある。
すなわち、第1のケースは、センタ200でクエリ処理が実行可能であるか否かに関わらず、不適切な暗号化方式が暗号化方式テーブルに設定されている場合に相当する。第1のケースの場合、クライアント100のクエリ実行部120、またはセンタ200のクエリ実行部210は、登録済のデータおよびクエリが適切な暗号化方式で暗号化されている場合に比べて、より多くの時間をクエリ処理の実行に要する。
また、第2のケースは、センタ200でクエリ処理が実行不可能である場合に相当する。第2のケースの場合、センタ200が、秘匿データベース220に格納されているクエリ処理の対象の全てのデータをクエリ処理の実行の要求元のクライアントに送信する。多くのクライアントの処理性能はセンタ200の処理性能よりも劣るため、各クライアントは、クエリ処理の実行にセンタ200よりも多くの時間を要する。
[発明の目的]
そこで、本発明は、上述した課題を解決する、暗号化データベースに対して発行されたクエリを適切な暗号化方式で暗号化できる暗号化データベース管理装置、暗号化データベース管理方法、暗号化データベース管理プログラムおよび暗号化データベース管理システムを提供することを目的とする。
そこで、本発明は、上述した課題を解決する、暗号化データベースに対して発行されたクエリを適切な暗号化方式で暗号化できる暗号化データベース管理装置、暗号化データベース管理方法、暗号化データベース管理プログラムおよび暗号化データベース管理システムを提供することを目的とする。
本発明による暗号化データベース管理装置は、クエリの暗号化に用いられる暗号化方式をクエリと所定のモデルとに基づいて判定する判定部と、判定された暗号化方式を用いてクエリを暗号化する暗号化部とを備えることを特徴とする。
本発明による暗号化データベース管理方法は、クエリの暗号化に用いられる暗号化方式をクエリと所定のモデルとに基づいて判定し、判定された暗号化方式を用いてクエリを暗号化することを特徴とする。
本発明による暗号化データベース管理プログラムは、コンピュータに、クエリの暗号化に用いられる暗号化方式をクエリと所定のモデルとに基づいて判定する判定処理、および判定された暗号化方式を用いてクエリを暗号化する暗号化処理を実行させることを特徴とする。
本発明による暗号化データベース管理システムは、暗号化データベース管理装置と、暗号化データを記憶する暗号化データベースを有する記憶装置とを含む暗号化データベース管理システムであって、暗号化データベース管理装置は、クエリの暗号化に用いられる暗号化方式をクエリと所定のモデルとに基づいて判定する判定部と、判定された暗号化方式を用いてクエリを暗号化する暗号化部とを有することを特徴とする。
本発明によれば、暗号化データベースに対して発行されたクエリを適切な暗号化方式で暗号化できる。
以下、本発明の実施形態を、図面を参照して説明する。
本発明による暗号化データベース管理装置は、「データ類」を基に機械学習で生成される学習モデル、または所定のアルゴリズムを用いて、例えば秘匿データベースに格納されているテーブルのカラムごとに適切な暗号化方式を判断し、設定することを特徴とする。
なお、各実施形態における「データ類」は、「データ」および「メタデータ」、または「統計データ」のいずれかを意味する。各用語の定義は、それぞれ以下の通りである。
・データ:秘匿データベースに登録される情報自体
・メタデータ:「データ」に付随する情報(例えば、テーブル名やカラム名)
・統計データ:秘匿データベースに対して発行されるクエリの内容と「エラー結果」とが蓄積された情報
・メタデータ:「データ」に付随する情報(例えば、テーブル名やカラム名)
・統計データ:秘匿データベースに対して発行されるクエリの内容と「エラー結果」とが蓄積された情報
なお、秘匿データベースに対して発行されるクエリの内容は、例えば、算術演算子(‘+’、‘−’、‘*’、‘/’)等を含むSELECT句である。第1の実施形態の「データ類」は「統計データ」である。また、第2の実施形態の「データ類」は、「データ」および「メタデータ」である。
[第1の実施形態]
[構成の説明]
図1は、本発明による秘匿データベースシステム10の第1の実施形態の構成例を示すブロック図である。上述したように、本実施形態の「データ類」は「統計データ」である。
[構成の説明]
図1は、本発明による秘匿データベースシステム10の第1の実施形態の構成例を示すブロック図である。上述したように、本実施形態の「データ類」は「統計データ」である。
本実施形態の秘匿データベースシステム10は、統計データを基に、機械学習で生成される学習モデル、または所定のアルゴリズムを用いてより適切な暗号化方式を判断および設定するシステムである。
また、本実施形態のセンタは、複数のクライアント間でより適切な暗号化方式の設定が共有されるために使用される構成要素であるクライアント同期部を有する。センタがクライアント同期部を有する場合、秘匿データベースシステム全体に渡ってより適切な暗号化方式が選択および設定されるため、クエリ処理の実行時間の合計がより短縮される。
図1に示す秘匿データベースシステム10は、図12に示す秘匿データベースシステム11と同様に、クライアント100〜クライアント10nと、センタ200とを含む。
センタ200は、クライアント100〜クライアント10nとそれぞれ通信可能に接続されている。センタ200、およびクライアント100〜クライアント10nは、それぞれデータ送受信機能を有する。
また、図1に示すように、本実施形態のクライアント100は、外部インタフェース部110と、クエリ実行部120と、暗号化/復号処理部130と、暗号化方式判定部140とを有する。クライアント101〜クライアント10nの各構成も、クライアント100の構成と同様である。
また、図1に示すように、本実施形態のセンタ200は、クエリ実行部210と、秘匿データベース220と、クライアント同期部230とを有する。
図1に示す外部インタフェース部110、クエリ実行部120、暗号化/復号処理部130、クエリ実行部210、および秘匿データベース220の各構成要素は、図12に示す各構成要素とそれぞれ同様の機能を有する。すなわち、暗号化方式判定部140およびクライアント同期部230以外の第1の実施形態の構成は、図12に示す構成と同様である。
本実施形態のクライアントは、暗号化方式判定部140を有する。暗号化方式判定部140は、所定のアルゴリズムを基に生成されたモデル(以下、単に所定のアルゴリズムという。)、または機械学習の機能(以下、単に機械学習という。)を有する。機械学習を有する場合、暗号化方式判定部140は、さらに学習モデルを有する。
所定のアルゴリズムは、秘匿データベースシステム10の提供者が理論や経験に基づいて予め定めた固定的なアルゴリズムである。また、機械学習は、秘匿データベースシステム10が学習を行うことによって規則性を見出し、見出された規則性を用いて有用に予測する機能である。
暗号化/復号処理部130は、暗号化方式判定部140と疎通する。暗号化/復号処理部130は、暗号化方式テーブルに設定されている暗号化方式で暗号化されたクエリが実行されるとエラーが発生するか否かを示す情報を含むエラー結果とクエリ文自体を「クエリ文・エラー結果」として暗号化方式判定部140に入力する。
暗号化方式判定部140は、所定のアルゴリズムまたは機械学習と、統計データとを有する。上述したように、暗号化方式判定部140は、所定のアルゴリズムと機械学習のうちのいずれかを有する。
統計データは、暗号化/復号処理部130から入力されたクエリ文・エラー結果が蓄積されたデータである。図2は、暗号化方式判定部140が有する統計データの例を示す説明図である。図2に示すように、統計データは、「テーブル−カラム」と、「クエリ実行回数」と、「エラーカウンタ」と、各条件での実行回数とで構成されている。
「テーブル−カラム」は、クエリ処理の対象であるテーブルおよびカラムと、暗号化に使用された暗号化方式とを示す。「クエリ実行回数」は、クエリ処理の実行回数を示す。「エラーカウンタ」は、実行されたうちエラーが発生したクエリ処理の実行回数を示す。
また、各条件での実行回数は、実行されたうち指定された各条件でクエリ処理が実行された回数を示す。指定される条件は、図2における下部に示されている。
図2に示す統計データでは、各条件が、1つの暗号化方式に依存すると考えられる文字列の種類を含む条件ごとにまとめられている。しかし、統計データにおいて各条件は、まとめられなくてもよい。
例えば、‘+’を含む条件Aと‘−’を含む条件Bが、統計データにおいて‘+−’を含む条件Cとして1つにまとめられてもよいし、まとめられなくてもよい。条件Cには、‘+’または‘−’のうちの少なくとも1つを含むクエリが当てはまる。また、他の方法で複数の条件がまとめられてもよい。
以下、暗号化方式判定部140が機械学習を有する場合を説明する。機械学習を有する場合、暗号化方式判定部140は、学習モデルを有する。本実施形態の学習モデルは、統計データを基に暗号化方式判定部140が推定した各暗号化方式が適用される境界を示すモデルである。
図3は、暗号化方式判定部140が推定した学習モデルの例を示す説明図である。図3に示す各グラフでは、第1条件の実行割合がx軸に、第2条件の実行割合がy軸にそれぞれとられている。
第1条件の実行割合は、(第1条件でのクエリ実行回数/クエリ実行回数)で算出される。また、第2条件の実行割合は、(第2条件でのクエリ実行回数/クエリ実行回数)で算出される。なお、第1条件および第2条件は、図2に示す条件に対応する。
すなわち、図3に示す各グラフは、クエリの暗号化方式として第1暗号化方式と第2暗号化方式のどちらが適切か区別されるように統計データがプロットされたグラフである。暗号化方式判定部140は、グラフにおける第1暗号化方式と第2暗号化方式の境界を示す関数y=f(x)を導出する。本実施形態の学習モデルは、xとyとの組合せが第1暗号化方式と第2暗号化方式のいずれが適当かを推定する、上述したように導出された数式、または数式の組を指す。
また、図3に示す右のグラフでは、左に示すグラフから破線の矩形で表された1つのプロットが除去されている。プロットの除去に伴い、第1暗号化方式と第2暗号化方式の境界を示す関数はy=g(x)に更新される。すなわち、暗号化方式判定部140は、学習モデルをy=f(x)からy=g(x)に更新する。学習モデルが更新された後、対象のテーブルのカラムに関して、例えば第2暗号化方式が新たに選択される。
なお、図3には、簡単のために第1条件と第2条件だけに対応する2次元のグラフが示されているが、第1条件から第m条件(mは1以上の整数)に対応するm次元のグラフが使用されてもよい。すなわち、暗号化方式の境界を示す関数は、図3に示す2個の条件に対応する関数y=f(x)の代わりに、m個の条件に対応する関数でもよい。
また、2つの暗号化方式の場合に対応する図3には、2つの暗号化方式の境界を示す関数y=f(x)だけが示されている。図3には簡単のために第1暗号化方式と第2暗号化方式の2つの暗号化方式の境界だけが示されているが、3つ以上の暗号化方式の各境界が示されてもよい。
例えば、図3に示すグラフにm個の関数y=f1(x)〜y=fm(x)が表示され、各暗号化方式が適用される条件が「第1暗号化方式:y<f1(x)、第2暗号化方式:f1(x)≦y<f2(x)、・・・、第m暗号化方式:fm-1(x)≦y<fm(x)」と設定されてもよい。また、上記の形式以外の形式で条件が設定されてもよい。
以上のように暗号化方式判定部140が行う機械学習の例を説明したが、暗号化方式判定部140が行う機械学習は他の方式による機械学習でもよい。
以下、暗号化方式判定部140が所定のアルゴリズムを有する場合を説明する。図4は、暗号化方式判定部140が有する所定のアルゴリズムの例を示す説明図である。
暗号化方式判定部140は、例えば図4に示すアルゴリズムに従って、暗号化方式の変更の試行を開始する。暗号化方式判定部140は、各第i暗号化方式(i=1~k)に関して、評価関数E_iをそれぞれ算出する(ステップS101)。
次いで、暗号化方式判定部140は、算出された評価関数の値が現在設定されている暗号化方式に関する評価関数の値よりも大きい暗号化方式が、暗号化方式テーブルに少なくとも1つ存在するか否かを確認する(ステップS102)。
現在設定されている暗号化方式に関する評価関数の値よりも評価関数の値が大きい暗号化方式が存在しない場合(ステップS102におけるNo)、暗号化方式判定部140は、暗号化方式を変更しない(ステップS108)。暗号化方式を変更しないまま、暗号化方式判定部140は、暗号化方式の変更の試行を終了する。
現在設定されている暗号化方式に関する評価関数の値よりも評価関数の値が大きい暗号化方式が少なくとも1つ存在する場合(ステップS102におけるYes)、暗号化方式判定部140は、評価関数の値が大きい方の暗号化方式を評価対象として取り出す。すなわち、選択ループに入る(ステップS103)。
暗号化方式判定部140は、評価対象のうち最も評価関数の値が大きい暗号化方式のエラー率が所定値以下であるか否かを確認する(ステップS104)。エラー率は、例えば(エラーカウント/クエリ実行回数)で算出される。
エラー率が所定値より大きい場合(ステップS104におけるNo)、暗号化方式判定部140は、エラー率が所定値より大きい暗号化方式を評価対象から除外する(ステップS105)。除外した後、暗号化方式判定部140は、再度ステップS104の処理を行う。
エラー率が所定値以下である場合(ステップS104におけるYes)、暗号化方式判定部140は、エラー率が所定値以下の暗号化方式を選択する(ステップS106)。選択した後、暗号化方式判定部140は、暗号化方式の変更の試行を終了する。
暗号化方式判定部140は、暗号化方式が選択されておらず、かつ評価対象に未だ検討されていない暗号化方式が残っている間、ステップS104〜ステップS105の処理を繰り返し実行する。ステップS104〜ステップS105の処理は暗号化方式ごとに繰り返し実行される。
評価対象の全ての暗号化方式が検討された時、暗号化方式判定部140は、選択ループを抜ける(ステップS107)。選択ループを抜けた後、暗号化方式判定部140は、暗号化方式を変更しない(ステップS108)。暗号化方式を変更しないまま、暗号化方式判定部140は、暗号化方式の変更の試行を終了する。
図4に示す所定のアルゴリズムで検討される第i暗号化方式の評価関数E_iは、例えば、以下のように表される。
E_i(クエリ実行回数,エラーカウント,第1条件での実行回数,第2条件での実行回数,・・・,第m条件での実行回数,第1条件の関連度,第2条件の関連度,・・・,第m条件の関連度)
なお、iは1以上k以下の整数であり、kは2以上の整数である。第i暗号化方式の評価関数E_iにおける第1条件の関連度、第2条件の関連度、・・・、第m条件の関連度として、例えば関連度テーブルの値が使用される。図5は、条件と暗号化方式との関連度が保持された関連度テーブルの例を示す説明図である。
図5に示すように、関連度テーブルには、第1暗号化方式、第2暗号化方式、第3暗号化方式、・・・、第i暗号化方式、・・・、第k暗号化方式と各条件との関連度がそれぞれ保持されている。
関連度は、例えば0から1の間の数値で表される。0から1の間の数値で表される場合、関連度は、数値が大きい程対象の条件に対して暗号化方式が向いていることを意味する。
以上のように暗号化方式判定部140が有する所定のアルゴリズムの例を説明したが、暗号化方式判定部140が有する所定のアルゴリズムは他のアルゴリズムでもよい。
図1に示すように、センタ200は、クライアント同期部230と、暗号化方式テーブル(マスタ)とを有する。クライアント同期部230は、n個のクライアントの各暗号化方式判定部とそれぞれ疎通する。クライアント同期部230は、暗号化方式テーブル(マスタ)を参照したり更新したりする。
また、クライアント同期部230は、統計データ(マスタ)を有する。統計データ(マスタ)の形態は、暗号化方式判定部140が有する統計データの形態と同様である。
また、クライアントが機械学習を有する場合、クライアント同期部230は、さらに学習モデル(マスタ)を有する。学習モデル(マスタ)の形態は、暗号化方式判定部140が有する学習モデルの形態と同様である。
[動作の説明]
以下、図1に示す秘匿データベースシステム10の動作を図6〜図7を参照して説明する。なお、図1に示す秘匿データベースシステム10による「登録等の処理」の動作は、図14に示すデータ登録処理の動作と同様である。
以下、図1に示す秘匿データベースシステム10の動作を図6〜図7を参照して説明する。なお、図1に示す秘匿データベースシステム10による「登録等の処理」の動作は、図14に示すデータ登録処理の動作と同様である。
最初に、図1に示す秘匿データベースシステム10の登録済のデータに対する「データ利用の処理」を行う動作を図6を参照して説明する。図6は、第1の実施形態の秘匿データベースシステム10によるデータ利用処理の動作を示すフローチャートである。
外部インタフェース部110に対して、外部システム20から「データ利用の処理」を行うためのクエリが発行される(ステップS111)。外部インタフェース部110は、発行されたクエリを暗号化/復号処理部130に入力する(ステップS112)。
次いで、暗号化/復号処理部130は、受け取ったクエリを基にクエリ処理の内容を識別する(ステップS113)。
次いで、暗号化/復号処理部130は、暗号化方式テーブルを参照して、クエリ処理の対象のテーブルのカラムに関して設定されている暗号化方式を確認する。暗号化/復号処理部130は、確認された暗号化方式で暗号化されたクエリの実行が可能であるか否かを示す情報を含むエラー結果を生成する(ステップS114)。
次いで、暗号化/復号処理部130は、クエリ自体および生成されたエラー結果の情報を含むクエリ文・エラー結果を、暗号化方式判定部140に入力する。暗号化方式判定部140は、クエリ文・エラー結果を受け取る(ステップS115)。
暗号化方式判定部140が機械学習を有する場合(ステップS116における「機械学習」)、暗号化方式判定部140は、受け取ったクエリ文・エラー結果を統計データに反映させる(ステップS117)。
次いで、暗号化方式判定部140は、機械学習を実行することによって、クエリ文・エラー結果が反映された後の統計データを学習モデルに反映させる(ステップS118)。
例えば、統計データにおけるエラー率(=エラーカウンタ/クエリ実行回数)が所定の値を超えた場合やクエリ実行回数が所定の値を超えた場合、暗号化方式判定部140は、所定の値を超えた統計データを除外し、学習モデルを更新する。
学習モデルを更新した後、暗号化方式判定部140は、更新された学習モデルに基づいて暗号化方式を変更するか否かを判断する(ステップS119)。
暗号化方式判定部140が所定のアルゴリズムを有する場合(ステップS116における「所定のアルゴリズム」)、暗号化方式判定部140は、所定のアルゴリズムに従って暗号化方式の変更を図4に示す動作のように試行する。
なお、暗号化方式判定部140は、暗号化方式の変更を試行する間に、受け取ったクエリ文・エラー結果を参照して、エラー率が所定の値を超えるか否か、またはクエリ実行回数が所定の値を超えるか否かを確認してもよい。暗号化方式の変更を試行することによって、暗号化方式判定部140は、暗号化方式を変更するか否かを判断する(ステップS120)。
暗号化方式が変更される場合(ステップS121におけるYes)、暗号化方式判定部140は、変更された暗号化方式を暗号化方式テーブルに設定する(ステップS122)。
ステップS123〜ステップS135の処理は、図15に示すステップS014〜ステップS026の処理と同様である。
次に、図1に示す秘匿データベースシステム10の複数のクライアントが有する暗号化方式テーブル、統計データ、および学習モデルに対して同期をとる動作を図7を参照して説明する。図7は、第1の実施形態の秘匿データベースシステム10によるデータ同期処理の動作を示すフローチャートである。
なお、本例では暗号化方式判定部140が所定のアルゴリズムと機械学習のうち機械学習を有する場合が想定されている。また、本例ではデータ同期処理をクライアント100が実行する場合が想定されているが、他のクライアントも図7に示す処理と同様にデータ同期処理を実行する。
クライアント100が、所定の契機に応じてセンタ200との同期処理を開始する(ステップS141)。所定の契機は、例えば、クライアント100が有する暗号化方式テーブルの更新である。
次いで、暗号化方式判定部140は、センタ200のクライアント同期部230に向けて同期のリクエストを発行する。クライアント同期部230は、同期のリクエストを受信する(ステップS142)。
次いで、クライアント同期部230は、暗号化方式テーブル(マスタ)、統計データ(マスタ)、および学習モデル(マスタ)を、リクエスト元のクライアント100に向けて送信する(ステップS143)。
次いで、クライアント100は、受信された暗号化方式テーブル(マスタ)、統計データ(マスタ)、および学習モデル(マスタ)の各データに対して、クライアント100が有する暗号化方式テーブル、統計データ、および学習モデルをそれぞれ反映させる(ステップS144)。
例えば暗号化方式テーブルの場合、クライアント100は、暗号化方式テーブルに設定されている暗号化方式を、受信された暗号化方式テーブル(マスタ)に設定する。
また、統計データの場合、クライアント100は、統計データの各値を受信された統計データ(マスタ)に加算することによって、統計データ(マスタ)を更新する。
また、学習モデルの場合、クライアント100は、学習モデルの生成元であるプロットデータを受信された学習モデル(マスタ)に追加することによって、学習モデル(マスタ)を更新する。
次いで、クライアント100は、自身のデータが反映された後の暗号化方式テーブル(マスタ)、統計データ(マスタ)、および学習モデル(マスタ)の各データを、センタ200のクライアント同期部230に向けて送信する(ステップS145)。
なお、セキュリティを保つため、クライアント100は、統計データ(マスタ)および学習モデル(マスタ)の各データを送信前に予め暗号化し、暗号化された各データをセンタ200に送信してもよい。センタ200は、暗号化された状態のマスタデータを常に保持できる。
次いで、クライアント同期部230は、受信された暗号化方式テーブル(マスタ)、統計データ(マスタ)、および学習モデル(マスタ)の各データを用いて、自身が有する暗号化方式テーブル(マスタ)、統計データ(マスタ)、および学習モデル(マスタ)をそれぞれ更新する(ステップS146)。
センタ200は、所定の契機に応じて、クライアント100以外の1つ以上のクライアントとの同期処理を開始する(ステップS147)。本例では、センタ200がクライアント101との同期処理を開始する。なお、所定の契機は、例えば、暗号化方式テーブル(マスタ)、統計データ(マスタ)、または学習モデル(マスタ)のうちのいずれかの更新である。
クライアントとの同期処理を開始した後、センタ200は、クライアント101の暗号化方式判定部140に向けて、暗号化方式テーブル(マスタ)、統計データ(マスタ)、および学習モデル(マスタ)のうちの更新されたデータを送信する(ステップS148)。
次いで、クライアント101の暗号化方式判定部140は、暗号化方式テーブル(マスタ)、統計データ(マスタ)、および学習モデル(マスタ)のうちの受信されたデータを用いて、クライアント101が有する暗号化方式テーブル、統計データ、または学習モデルを更新する(ステップS149)。
暗号化方式判定部140は、例えばステップS144の処理と同様に各データを更新する。更新した後、秘匿データベースシステム10は、データ同期処理を終了する。
以上の処理により、センタ200のクライアント同期部230は、クライアント100で更新された暗号化方式テーブル、統計データ、および学習モデルの各データと、他のクライアントが有する各データの同期をとることができる。
なお、暗号化方式判定部140が所定のアルゴリズムと機械学習のうち所定のアルゴリズムを有する場合、上記のデータ同期処理の動作のうち学習モデルに対する動作が除かれる。また、図7に示すデータ同期処理は、図6に示すデータ利用処理と並列に実行されてもよい。また、所定のアルゴリズムが、データ同期処理の対象でもよい。
なお、センタ200が有する統計データ(マスタ)、学習モデル(マスタ)と同期をとるために、クライアント100の暗号化方式判定部140がクエリ文のヒストリを保持してもよい。暗号化方式判定部140は、クエリ文のヒストリを用いて、センタ200が有する統計データ(マスタ)および学習モデル(マスタ)をそれぞれ更新してもよい。
クエリ文のヒストリは、実行されたクエリのクエリ文自体と、実行されたクエリのシーケンシャルIDやタイムスタンプ等の実行順を示す情報とを少なくとも含む情報である。クエリ文のヒストリは、例えばSQL(Structured Query Language)の実行ログである。
クエリ文のヒストリは、上記の統計データや学習モデルのようにセンタが有するデータと各クライアントが有するデータとを単純に合算することによって更新することが困難な学習データの更新に用いられる。具体的には、クエリ文のヒストリを他の学習データに学習させることによって、2つの学習データを反映させることが可能になる。
例えば、ディープラーニングにおける学習データのように、機械学習で生成された学習データAと別の機械学習で生成された学習データBに関して、学習データAと学習データBの2つのデータが反映された学習データの生成は、通常困難である。しかし、学習データBに対して学習データAに対して行われた機械学習と同様の機械学習が行われると、両方のデータが反映された学習データが生成される。
また、上記のデータ同期処理ではセンタ200が統計データ(マスタ)、学習モデル(マスタ)、および暗号化方式テーブル(マスタ)をクライアントに送信したが、センタ200にクライアントが統計データ、学習モデル、および暗号化方式テーブルを送信してもよい。センタ200は、送信された統計データ、学習モデル、および暗号化方式テーブルをそれぞれ更新する。
[効果の説明]
「データ類」が「統計データ」である場合、暗号化方式判定部140は、統計データを有する。クエリが発行された場合、暗号化/復号処理部130は、クエリ文および暗号化方式テーブルに設定されている暗号化方式で暗号化されたクエリが実行されるとエラーが発生するか否かを示すクエリ文・エラー結果を、暗号化方式判定部140に入力する。
「データ類」が「統計データ」である場合、暗号化方式判定部140は、統計データを有する。クエリが発行された場合、暗号化/復号処理部130は、クエリ文および暗号化方式テーブルに設定されている暗号化方式で暗号化されたクエリが実行されるとエラーが発生するか否かを示すクエリ文・エラー結果を、暗号化方式判定部140に入力する。
暗号化方式判定部140は、入力されたクエリ文・エラー結果を基に統計データを更新する。暗号化方式判定部140は、更新された統計データを用いて、機械学習で生成された学習モデルまたは所定のアルゴリズムに従って、特定のデータ領域ごとにより適切な暗号化方式を選択する。選択された暗号化方式は、暗号化方式テーブルに設定される。
暗号化/復号処理部130は、暗号化方式テーブルに設定された暗号化方式を用いて、データの暗号化処理を実行する。すなわち、暗号化方式判定部140がより適切な暗号化方式を選択することによって、センタ200のクエリ実行部210でクエリが実行されない可能性が低減する。処理性能がクライアントよりも高いセンタ200のクエリ実行部210でクエリが実行される割合が増加するため、クエリ処理の実行時間の合計が短縮される。
また、「データ類」が「統計データ」である場合、センタ200のクライアント同期部230は、統計データ(マスタ)を有する。また、暗号化方式テーブルの場合と同様に、クライアントの暗号化方式判定部140は、所定の契機に応じてセンタ200のクライアント同期部230を介して統計データ(マスタ)を更新する。
また、センタ200のクライアント同期部230は、所定の契機に応じて、統計データ(マスタ)を基に他のクライアントの各暗号化方式判定部を介してそれぞれの統計データを更新する。上記の同期処理により適切な暗号化方式の設定データが各クライアントに配信されるため、1つのクライアントだけでなく秘匿データベースシステム10全体で、クエリ処理の実行時間が短縮される。
[第2の実施形態]
[構成の説明]
次に、本発明の第2の実施形態を、図面を参照して説明する。図8は、本発明による秘匿データベースシステム10の第2の実施形態の構成例を示すブロック図である。上述したように、本実施形態の「データ類」は「データ」および「メタデータ」である。
[構成の説明]
次に、本発明の第2の実施形態を、図面を参照して説明する。図8は、本発明による秘匿データベースシステム10の第2の実施形態の構成例を示すブロック図である。上述したように、本実施形態の「データ類」は「データ」および「メタデータ」である。
本実施形態の秘匿データベースシステム10の構成は、暗号化方式判定部140が統計データを有していない点、およびクライアント同期部230が統計データ(マスタ)を有していない点以外、第1の実施形態の秘匿データベースシステム10の構成と同様である。
本実施形態の暗号化/復号処理部130は、入力されたクエリが示すクエリ文を暗号化方式判定部140に入力する機能を有する。第1の実施形態のクエリ文・エラー結果と異なり、クエリ文にはエラー結果を示す情報が含まれなくてよい。
暗号化方式判定部140が所定のアルゴリズムと機械学習のうち機械学習を有する場合、暗号化方式判定部140は、学習モデルを有する。暗号化方式判定部140に入力されるクエリ文に記載されたデータ類(データおよびメタデータ)と暗号化方式テーブルに設定されている暗号化方式とに基づいて、暗号化方式判定部140は、学習モデルを生成、および更新する。
本実施形態の学習モデルは、データ類と暗号化方式との対応関係が学習されたモデルである。例えば、多くのデータが「男性」、「女性」、またはNullのいずれかであったり、メタデータ(例えば、ラベル名)が「性別」であったりする場合、データ類に対する適切な暗号化方式は、「検索可能確率的暗号化方式」である可能性が高い。
また、多くのデータが数字、またはNullのいずれかであったり、メタデータ(例えば、ラベル名)が「得点」であったりする場合、データ類に対する適切な暗号化方式は、「準同型暗号化方式」である可能性が高い。
なお、多数のデータ類を基に既に設定されている設定値(本実施形態の暗号化方式)とデータとの対応関係を機械的に学習する方法として、様々な方法が知られている。
暗号化方式判定部140が所定のアルゴリズムと機械学習のうち所定のアルゴリズムを有する場合、暗号化方式判定部140は、予め定められた所定のアルゴリズムに従って適切な暗号化方式を選択する。
具体的には、暗号化方式判定部140は、暗号化方式判定部140に入力されるクエリ文に記載されたデータ類(データおよびメタデータ)を基に所定のアルゴリズムに従って選択された適切な暗号化方式を、暗号化/復号処理部130が有する暗号化方式テーブルに設定する。
所定のアルゴリズムは、例えば特許文献2に記載されているような経験則に基づいて予め定められたアルゴリズムである。
[動作の説明]
以下、図8に示す秘匿データベースシステム10の動作を図9を参照して説明する。なお、図8に示す秘匿データベースシステム10による「登録等の処理」の動作は、図14に示すデータ登録処理の動作と同様である。
以下、図8に示す秘匿データベースシステム10の動作を図9を参照して説明する。なお、図8に示す秘匿データベースシステム10による「登録等の処理」の動作は、図14に示すデータ登録処理の動作と同様である。
最初に、図8に示す秘匿データベースシステム10の登録済のデータに対する「データ利用の処理」を行う動作を図9を参照して説明する。図9は、第2の実施形態の秘匿データベースシステム10によるデータ利用処理の動作を示すフローチャートである。
外部インタフェース部110に対して、外部システム20から「データ利用の処理」を行うためのクエリが発行される(ステップS211)。外部インタフェース部110は、発行されたクエリを暗号化/復号処理部130に入力する(ステップS212)。
次いで、暗号化/復号処理部130は、受け取ったクエリを基にクエリ処理の内容を識別する(ステップS213)。
次いで、暗号化/復号処理部130は、暗号化方式テーブルを参照して、クエリ処理の対象のテーブルのカラムに関して設定されている暗号化方式を確認する。暗号化/復号処理部130は、確認された暗号化方式で暗号化されたクエリの実行が可能であるか否かを示す情報を含むエラー結果を生成する(ステップS214)。
次いで、暗号化/復号処理部130は、入力されたクエリが示すクエリ文を暗号化方式判定部140に入力する。クエリ文には、クエリ自体の情報が含まれる。暗号化方式判定部140は、入力されたクエリ文を受け取る(ステップS215)。
暗号化方式判定部140が機械学習を有する場合(ステップS216における「機械学習」)、暗号化方式判定部140は、機械学習を実行することによって、受け取ったクエリ文を学習モデルに反映させる(ステップS217)。
次いで、暗号化方式判定部140は、クエリ文が反映された後の学習モデルに基づいて適切な暗号化方式を判定する(ステップS218)。すなわち、暗号化方式判定部140は、暗号化方式を変更するか否かを判断する。
暗号化方式判定部140が所定のアルゴリズムを有する場合(ステップS216における「所定のアルゴリズム」)、暗号化方式判定部140は、所定のアルゴリズムに従って、受け取ったクエリ文を基に適切な暗号化方式を判定する(ステップS219)。すなわち、暗号化方式判定部140は、暗号化方式を変更するか否かを判断する。
暗号化方式が変更される場合(ステップS220におけるYes)、暗号化方式判定部140は、変更された暗号化方式を暗号化方式テーブルに設定する(ステップS221)。
ステップS222〜ステップS234の処理は、図15に示すステップS014〜ステップS026の処理と同様である。
なお、本実施形態の秘匿データベースシステム10も、第1の実施形態の秘匿データベースシステム10と同様に、図7に示すデータ同期処理を実行可能である。すなわち、クライアントの暗号化方式判定部140は、所定の契機に応じてセンタ200のクライアント同期部230を介して、暗号化方式テーブル(マスタ)を更新する。所定の契機は、例えばクライアントが有する暗号化方式テーブルの更新である。
また、センタ200のクライアント同期部230は、所定の契機に応じて暗号化方式テーブル(マスタ)を基に、他のクライアントの各暗号化方式判定部を介してそれぞれの暗号化方式テーブルを更新する。所定の契機は、例えばセンタ200が有する暗号化方式テーブル(マスタ)の更新である。上記の同期処理が実行されることによって、1つのクライアントだけでなく秘匿データベースシステム10全体で、クエリ処理の実行時間が短縮される。
[効果の説明]
「データ類」が「データ」および「メタデータ」である場合、暗号化方式判定部140は、入力される「データ類」を基に、機械学習で生成された学習モデルまたは所定のアルゴリズムに従って、特定のデータ領域ごとにより適切な暗号化方式を選択する。選択された暗号化方式は、暗号化方式テーブルに設定される。
「データ類」が「データ」および「メタデータ」である場合、暗号化方式判定部140は、入力される「データ類」を基に、機械学習で生成された学習モデルまたは所定のアルゴリズムに従って、特定のデータ領域ごとにより適切な暗号化方式を選択する。選択された暗号化方式は、暗号化方式テーブルに設定される。
暗号化/復号処理部130は、暗号化方式テーブルに設定された暗号化方式を用いてデータの暗号化処理を実行する。すなわち、暗号化方式判定部140がより適切な暗号化方式を選択する場合、クエリが暗号化されたまま実行される割合が増えるため、クエリ処理の実行時間の合計が短縮される。
なお、各実施形態の秘匿データベースシステム10にはセンタが1つだけ含まれているが、秘匿データベースシステム10にはセンタが2つ以上含まれてもよい。センタが2つ以上含まれる場合、例えば、1つのセンタが各実施形態のセンタ200と同様に動作し、他のセンタがバックアップの用途や災害発生時に復旧を行うディザスタリカバリの用途で使用されてもよい。
また、2つ以上のセンタにデータが分散されて保存されてもよい。また、各センタが他のセンタと同期をとりながらデータを保存してもよい。各センタが他のセンタと同期をとりながらデータを保存する場合、2つ以上のセンタの各クエリ実行部が、秘匿データベースへの「登録等の処理」の完了を示す情報を他のセンタへ通知する。また、他のセンタにおいても「登録等の処理」が完了した場合、各クエリ実行部に完了を示す情報が通知される。
各センタが他のセンタと同期をとりながらデータを保存する場合、例えば、秘匿データベースに格納されているテーブルのカラムそれぞれが有効ビットを有してもよい。有効ビットが存在する場合、各センタで「登録等の処理」が完了した後に、有効ビットが無効を示す値から有効を示す値に変更される。すなわち、有効ビットが有効を示すカラムは、同期がとられているカラムである。
また、各実施形態では暗号化方式が判定された後に判定された暗号化方式が暗号化方式テーブルに設定され、設定された後にクエリが暗号化されてクエリ処理が実行されている。しかし、暗号化方式の判定と暗号化されたクエリの実行は、並列に行われてもよい。2つの処理が並列に行われる場合、クエリ処理の対象のテーブルのカラムに関して、次回以降のクエリ処理の実行の際に、変更された暗号化方式が使用される。
また、各実施形態のセンタは、センタでクエリ処理が実行不可能である場合、クエリ処理の対象のデータを全て取得し、処理の要求元のクライアントの暗号化/復号処理部にデータを暗号化されたまま送信した。送信されるデータには、クエリ処理の対象のデータ以外のデータが含まれてもよい。
例えば、上述したようにセンタが一致検索できるデータに関して別のカラムの値の合計が求められる場合、別のカラムの該当する全てのデータ(値)が送信の対象になる。しかし、一致検索されるカラムの全てのデータおよび別のカラムの全てのデータが、送信の対象でもよい。なお、全てのデータが送信の対象になる場合、データ転送量が増加する。
また、各実施形態では特定のデータ領域の単位がテーブルのカラムであるが、特定のデータ領域の単位は、テーブルのロウでもよいし、テーブル内の他の領域でもよい。また、特定のデータ領域の単位は、一意な番号と排他的な領域との組合せを示すテーブルが活用されて指定されてもよい。
また、各実施形態では、テーブルのカラムに関して設定される暗号化方式は、更新されてから同期がとられるまでの間の差異を除けば、1つの暗号化方式である。しかし、クライアントごとに異なる暗号化方式が、テーブルの1つのカラムに関して設定されてもよい。クライアントごとに異なる暗号化方式が設定される場合、例えば、テーブルの1つのカラムに2つ以上の暗号化方式テーブルのカラムが使用される。
なお、各実施形態のクライアント100〜クライアント10n、およびセンタ200は、例えば、ROM(Read Only Memory)やハードディスク等の非一時的な記憶媒体に格納されているプログラムに従って処理を実行するCPU(Central Processing Unit)によって実現される。すなわち外部インタフェース部110、クエリ実行部120、暗号化/復号処理部130、暗号化方式判定部140、クエリ実行部210、およびクライアント同期部230は、例えば、プログラム制御に従って処理を実行するCPUによって実現される。
また、秘匿データベース220は、例えばRAM(Random Access Memory)で実現される。
また、各実施形態のクライアント100〜クライアント10nにおける各部、およびセンタ200における各部は、ハードウェア回路によって実現されてもよい。一例として、外部インタフェース部110、クエリ実行部120、暗号化/復号処理部130、暗号化方式判定部140、クエリ実行部210、秘匿データベース220、およびクライアント同期部230が、それぞれLSI(Large Scale Integration)で実現される。また、それらが1つのLSIで実現されていてもよい。
次に、本発明の概要を説明する。図10は、本発明による暗号化データベース管理装置の概要を示すブロック図である。本発明による暗号化データベース管理装置30は、クエリの暗号化に用いられる暗号化方式をクエリと所定のモデルとに基づいて判定する判定部31(例えば、暗号化方式判定部140)と、判定された暗号化方式を用いてクエリを暗号化する暗号化部32(例えば、暗号化/復号処理部130)とを備える。
そのような構成により、暗号化データベース管理装置は、暗号化データベースに対して発行されたクエリを適切な暗号化方式で暗号化できる。
また、所定のモデルは、機械学習が実行されることによって生成された学習モデルでもよい。
そのような構成により、暗号化データベース管理装置は、学習モデルを用いて適切な暗号化方式を判定できる。
また、判定部31は、暗号化されたクエリが実行された結果が蓄積されたデータである統計データを有し、統計データを用いて機械学習を実行することによって学習モデルを生成してもよい。
また、統計データには、暗号化データベースに対するクエリ処理の内容、およびクエリ処理の実行エラー結果が含まれてもよい。また、統計データには、暗号化データベースに格納されているデータの情報、およびそのメタデータの情報が含まれてもよい。
そのような構成により、暗号化データベース管理装置は、過去のクエリ処理の実行結果が反映された学習モデルを用いて適切な暗号化方式を判定できる。
また、判定部31は、暗号化データベースに格納されているデータの情報、およびそのメタデータの情報を用いて機械学習を実行することによって学習モデルを生成してもよい。
また、所定のモデルは、所定のアルゴリズムを基に生成されたモデルでもよい。
また、所定のアルゴリズムは、暗号化データベースに対するクエリ処理の内容を基に生成されたアルゴリズムでもよい。また、所定のアルゴリズムは、暗号化データベースに格納されているデータおよびそのメタデータを基に生成されたアルゴリズムでもよい。
そのような構成により、暗号化データベース管理装置は、予め固定的に定められたアルゴリズムを用いて適切な暗号化方式を判定できる。
また、図11は、本発明による暗号化データベース管理システムの概要を示すブロック図である。本発明による暗号化データベース管理システム40は、暗号化データベース管理装置50と、暗号化データを記憶する暗号化データベース(例えば、秘匿データベース220)を有する記憶装置60とを含む暗号化データベース管理システムであって、暗号化データベース管理装置50は、クエリの暗号化に用いられる暗号化方式をクエリと所定のモデルとに基づいて判定する判定部51(例えば、暗号化方式判定部140)と、判定された暗号化方式を用いてクエリを暗号化する暗号化部52(例えば、暗号化/復号処理部130)とを有する。
そのような構成により、暗号化データベース管理システムは、暗号化データベースに対して発行されたクエリを適切な暗号化方式で暗号化できる。
なお、記憶装置60は、暗号化データベースに対するクエリ処理が実行される際、暗号化されたクエリを復号しない。
また、所定のモデルは、機械学習が実行されることによって生成された学習モデルでもよい。
そのような構成により、暗号化データベース管理システムは、学習モデルを用いて適切な暗号化方式を判定できる。
また、暗号化データベース管理システム40は、複数の暗号化データベース管理装置を含み、記憶装置60は、同期部(例えば、クライアント同期部230)を有し、暗号化データベース管理装置50の判定部51は、判定された暗号化方式を同期部に通知し、同期部は、通知された暗号化方式を暗号化データベース管理装置50以外の暗号化データベース管理装置に通知してもよい。
そのような構成により、暗号化データベース管理システムは、クエリ処理の実行時間をシステム全体に渡って削減できる。
また、暗号化データベース管理装置50の判定部51は、判定に使用された所定のモデルを同期部に通知し、同期部は、通知された所定のモデルを暗号化データベース管理装置50以外の暗号化データベース管理装置に通知してもよい。
そのような構成により、暗号化データベース管理システムは、暗号化に使用される暗号化方式をシステム全体に渡って統一できる。
10、11 秘匿データベースシステム
20 外部システム
30、50 暗号化データベース管理装置
31、51 判定部
32、52 暗号化部
40 暗号化データベース管理システム
60 記憶装置
100〜10n クライアント
110 外部インタフェース部
120 クエリ実行部
130 暗号化/復号処理部
140 暗号化方式判定部
200 センタ
210 クエリ実行部
220 秘匿データベース
230 クライアント同期部
20 外部システム
30、50 暗号化データベース管理装置
31、51 判定部
32、52 暗号化部
40 暗号化データベース管理システム
60 記憶装置
100〜10n クライアント
110 外部インタフェース部
120 クエリ実行部
130 暗号化/復号処理部
140 暗号化方式判定部
200 センタ
210 クエリ実行部
220 秘匿データベース
230 クライアント同期部
Claims (10)
- クエリの暗号化に用いられる暗号化方式を前記クエリと所定のモデルとに基づいて判定する判定部と、
判定された暗号化方式を用いて前記クエリを暗号化する暗号化部とを備える
ことを特徴とする暗号化データベース管理装置。 - 所定のモデルは、機械学習が実行されることによって生成された学習モデルである
請求項1記載の暗号化データベース管理装置。 - 判定部は、
暗号化されたクエリが実行された結果が蓄積されたデータである統計データを有し、
前記統計データを用いて機械学習を実行することによって学習モデルを生成する
請求項2記載の暗号化データベース管理装置。 - 所定のモデルは、所定のアルゴリズムを基に生成されたモデルである
請求項1記載の暗号化データベース管理装置。 - クエリの暗号化に用いられる暗号化方式を前記クエリと所定のモデルとに基づいて判定し、
判定された暗号化方式を用いて前記クエリを暗号化する
ことを特徴とする暗号化データベース管理方法。 - コンピュータに、
クエリの暗号化に用いられる暗号化方式を前記クエリと所定のモデルとに基づいて判定する判定処理、および
判定された暗号化方式を用いて前記クエリを暗号化する暗号化処理
を実行させるための暗号化データベース管理プログラム。 - 暗号化データベース管理装置と、暗号化データを記憶する暗号化データベースを有する記憶装置とを含む暗号化データベース管理システムであって、
前記暗号化データベース管理装置は、
クエリの暗号化に用いられる暗号化方式を前記クエリと所定のモデルとに基づいて判定する判定部と、
判定された暗号化方式を用いて前記クエリを暗号化する暗号化部とを有する
ことを特徴とする暗号化データベース管理システム。 - 所定のモデルは、機械学習が実行されることによって生成された学習モデルである
請求項7記載の暗号化データベース管理システム。 - 複数の暗号化データベース管理装置を含み、
記憶装置は、同期部を有し、
所定の暗号化データベース管理装置の判定部は、判定された暗号化方式を前記同期部に通知し、
前記同期部は、通知された暗号化方式を前記所定の暗号化データベース管理装置以外の暗号化データベース管理装置に通知する
請求項7または請求項8記載の暗号化データベース管理システム。 - 所定の暗号化データベース管理装置の判定部は、判定に使用された所定のモデルを同期部に通知し、
前記同期部は、通知された所定のモデルを前記所定の暗号化データベース管理装置以外の暗号化データベース管理装置に通知する
請求項9記載の暗号化データベース管理システム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017022247A JP2018128602A (ja) | 2017-02-09 | 2017-02-09 | 暗号化データベース管理装置、暗号化データベース管理方法、暗号化データベース管理プログラムおよび暗号化データベース管理システム |
| US15/888,325 US20180225475A1 (en) | 2017-02-09 | 2018-02-05 | Encrypted database management device, encrypted database management method, encrypted database management program, and encrypted database management system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017022247A JP2018128602A (ja) | 2017-02-09 | 2017-02-09 | 暗号化データベース管理装置、暗号化データベース管理方法、暗号化データベース管理プログラムおよび暗号化データベース管理システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2018128602A true JP2018128602A (ja) | 2018-08-16 |
Family
ID=63037205
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017022247A Pending JP2018128602A (ja) | 2017-02-09 | 2017-02-09 | 暗号化データベース管理装置、暗号化データベース管理方法、暗号化データベース管理プログラムおよび暗号化データベース管理システム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20180225475A1 (ja) |
| JP (1) | JP2018128602A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2023534263A (ja) * | 2020-07-16 | 2023-08-08 | 中興通訊股▲ふん▼有限公司 | データアクセス方法、装置、記憶媒体及び電子装置 |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11475020B2 (en) | 2019-06-06 | 2022-10-18 | International Business Machines Corporation | Encryption scheme recommendation |
| US11663179B2 (en) * | 2020-12-21 | 2023-05-30 | International Business Machines Corporation | Data simulation for regression analysis |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014013582A (ja) * | 2011-11-11 | 2014-01-23 | Nec Corp | データベース暗号化システムと方法及びプログラム |
| US9118631B1 (en) * | 2013-08-16 | 2015-08-25 | Google Inc. | Mixing secure and insecure data and operations at server database |
| US20160132692A1 (en) * | 2014-11-06 | 2016-05-12 | Florian Kerschbaum | Searchable encryption for infrequent queries in adjustable encrypted databases |
| JP2016177400A (ja) * | 2015-03-19 | 2016-10-06 | 株式会社日立製作所 | 秘匿データ処理システム |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5963642A (en) * | 1996-12-30 | 1999-10-05 | Goldstein; Benjamin D. | Method and apparatus for secure storage of data |
| US7127740B2 (en) * | 2001-10-29 | 2006-10-24 | Pitney Bowes Inc. | Monitoring system for a corporate network |
| EP1757006A2 (en) * | 2004-06-01 | 2007-02-28 | Ben-Gurion University of the Negev Research and Development Authority | Structure preserving database encryption method and system |
| JP2007142591A (ja) * | 2005-11-15 | 2007-06-07 | Matsushita Electric Ind Co Ltd | 暗号管理方法 |
| US8284944B2 (en) * | 2008-03-13 | 2012-10-09 | International Business Machines Corporation | Unified and persistent system and method for automatic configuration of encryption |
| EP2778952B1 (en) * | 2011-11-11 | 2017-06-28 | NEC Corporation | Database device, method and program |
| US9087212B2 (en) * | 2012-01-25 | 2015-07-21 | Massachusetts Institute Of Technology | Methods and apparatus for securing a database |
| US9449183B2 (en) * | 2012-01-28 | 2016-09-20 | Jianqing Wu | Secure file drawer and safe |
| US8849757B2 (en) * | 2012-03-29 | 2014-09-30 | Empire Technology Development Llc | Determining user key-value storage needs from example queries |
| US10169447B2 (en) * | 2014-02-24 | 2019-01-01 | Entefy Inc. | System and method of message threading for a multi-format, multi-protocol communication system |
| US9619667B2 (en) * | 2014-06-13 | 2017-04-11 | BicDroid Inc. | Methods, systems and computer program product for providing encryption on a plurality of devices |
| KR102329333B1 (ko) * | 2014-11-12 | 2021-11-23 | 삼성전자주식회사 | 질의를 처리하는 장치 및 방법 |
| US10404669B2 (en) * | 2015-06-09 | 2019-09-03 | Skyhigh Networks, Llc | Wildcard search in encrypted text |
| US9633219B2 (en) * | 2015-08-26 | 2017-04-25 | International Business Machines Corporation | Providing secure indexes for searching encrypted data |
| US10210266B2 (en) * | 2016-05-25 | 2019-02-19 | Microsoft Technology Licensing, Llc | Database query processing on encrypted data |
| US10740418B2 (en) * | 2016-11-03 | 2020-08-11 | International Business Machines Corporation | System and method for monitoring user searches to obfuscate web searches by using emulated user profiles |
-
2017
- 2017-02-09 JP JP2017022247A patent/JP2018128602A/ja active Pending
-
2018
- 2018-02-05 US US15/888,325 patent/US20180225475A1/en not_active Abandoned
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014013582A (ja) * | 2011-11-11 | 2014-01-23 | Nec Corp | データベース暗号化システムと方法及びプログラム |
| US9118631B1 (en) * | 2013-08-16 | 2015-08-25 | Google Inc. | Mixing secure and insecure data and operations at server database |
| US20160132692A1 (en) * | 2014-11-06 | 2016-05-12 | Florian Kerschbaum | Searchable encryption for infrequent queries in adjustable encrypted databases |
| JP2016177400A (ja) * | 2015-03-19 | 2016-10-06 | 株式会社日立製作所 | 秘匿データ処理システム |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2023534263A (ja) * | 2020-07-16 | 2023-08-08 | 中興通訊股▲ふん▼有限公司 | データアクセス方法、装置、記憶媒体及び電子装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20180225475A1 (en) | 2018-08-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN107800787B (zh) | 一种分布式大数据实时交换共享的计算机网络系统 | |
| Dong et al. | Novel privacy-preserving algorithm based on frequent path for trajectory data publishing | |
| US20190386817A1 (en) | Dynamic blockchain system and method for providing efficient and secure distributed data access, data storage and data transport | |
| CN112800088A (zh) | 基于双向安全索引的数据库密文检索系统及方法 | |
| JP4722620B2 (ja) | 暗号化文書検索方法および暗号化文書検索システム | |
| CN117834109B (zh) | 一种基于混淆模分量的密文数据库系统及其应用方法 | |
| Peng et al. | LS-RQ: A lightweight and forward-secure range query on geographically encrypted data | |
| US20220100884A1 (en) | Term-Based Encrypted Retrieval Privacy | |
| Zhao | Frag: Toward federated vector database management for collaborative and secure retrieval-augmented generation | |
| Yuan et al. | Towards privacy-preserving and practical image-centric social discovery | |
| JP2018128602A (ja) | 暗号化データベース管理装置、暗号化データベース管理方法、暗号化データベース管理プログラムおよび暗号化データベース管理システム | |
| Cui et al. | Secure boolean spatial keyword query with lightweight access control in cloud environments | |
| Song et al. | Uniwalk: Unidirectional random walk based scalable simrank computation over large graph | |
| Yuan et al. | Enabling encrypted boolean queries in geographically distributed databases | |
| Zhu et al. | A verifiable and efficient symmetric searchable encryption scheme for dynamic dataset with forward and backward privacy | |
| Sun et al. | Helios: Efficient distributed dynamic graph sampling for online gnn inference | |
| Joshua et al. | Efficient data search and retrieval in cloud assisted IoT environment | |
| CN120449212B (zh) | 基于Transformer的超图关联隐私保护方法 | |
| Kai et al. | Localized differential location privacy protection scheme in mobile environment | |
| Eltarjaman et al. | Private retrieval of POI details in top-K queries | |
| Cheng et al. | Enabling secure and efficient kNN query processing over encrypted spatial data in the cloud | |
| HRP20230116T1 (hr) | Pretraživo šifriranje | |
| Li et al. | An efficient two-server ranked dynamic searchable encryption scheme | |
| CN112632063B (zh) | 受限最短距离查询方法、电子设备和可读存储介质 | |
| Sahu et al. | Mining negative association rules in distributed environment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200109 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201030 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201201 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20210601 |