JP2009099151A - 暗号化されたカラムを含むデータベースにおけるクエリーの暗号化変調による使用者クエリー処理装置及び方法 - Google Patents

暗号化されたカラムを含むデータベースにおけるクエリーの暗号化変調による使用者クエリー処理装置及び方法 Download PDF

Info

Publication number
JP2009099151A
JP2009099151A JP2008267495A JP2008267495A JP2009099151A JP 2009099151 A JP2009099151 A JP 2009099151A JP 2008267495 A JP2008267495 A JP 2008267495A JP 2008267495 A JP2008267495 A JP 2008267495A JP 2009099151 A JP2009099151 A JP 2009099151A
Authority
JP
Japan
Prior art keywords
query
name
encryption
encrypted
modulation
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.)
Granted
Application number
JP2008267495A
Other languages
English (en)
Other versions
JP4972067B2 (ja
Inventor
Deok Soo Kim
ドクス キム
Jin-Hyuk Jung
ジンヒョク ジョン
Eui-Seok Kim
ウィソク キム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Penta Security Systems Inc
Original Assignee
Penta Security Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Penta Security Systems Inc filed Critical Penta Security Systems Inc
Publication of JP2009099151A publication Critical patent/JP2009099151A/ja
Application granted granted Critical
Publication of JP4972067B2 publication Critical patent/JP4972067B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6227Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】一部カラムを暗号化したデータベースに対する暗号化クエリーの処理性能を改善する。
【解決手段】一部カラムを暗号化したデータベースを管理するデータベース管理システム(DBMS)に対し要請する使用者の暗号化前のデータベース構造に基盤したクエリーを暗号化したデータベース構造のクエリーに変調し、DBMSにおいて処理させることにより、DBMSは、クエリーが暗号化に関連した項目が含まれているか否かに関係なく一貫してクエリーを処理することができ、暗号化クエリーの処理性能を画期的に改善したクエリー変調によるクエリー処理装置及び方法。
【選択図】図4

Description

本発明は、一部カラムを暗号化したデータベースのDBMS(データベース管理システム)に対し要請する使用者の暗号化前のデータベース構造に基盤したクエリーを、暗号化したデータベース構造のクエリーに変調し、暗号化クエリーの処理性能を画期的に改善した、クエリー変調によるクエリー処理装置及び方法に関する。
図1は、一部カラムを暗号化することができる従来のデータベース管理システム(DBMS)の構成図である。図1に示されたように、データベースの一部カラムを暗号化することができるデータベース管理システム(DBMS)100は、データベース110と、クエリー処理部120と、ビュー130と、暗号化モジュール150とを含んでいる。クエリー処理部120は、使用者160からのデータベースに対するクエリー要請があった場合、クエリーに該当するデータベースのテーブルを参照してその結果を抽出し使用者160に該結果値を伝送する役割を果たす(使用者に対し結果を見せるための仮想テーブルや生成されたテーブルをDBに格納してから該テーブルを返還したりすることもある。)。これは、一般的なDBMSの機能である。若し、要請されたクエリー内に暗号化されているカラムがあるテーブルや該カラムのフィールド値を参照する場合は、暗号化されたテーブルの処理にあたるため、それはビュー130において処理させる。ビュー130は、一部カラムが暗号化されたテーブルを主に取り扱うためのものであって、使用者をして暗号化されたテーブルの構成が分かるように暗号化前のテーブルの構造を見ることができるようにし、この構造に基盤して使用者がクエリーを作成して要請すれば、該クエリーを解釈し処理する機能を担う。すなわち、暗号化されたテーブルに対して暗号化前のテーブル形態で見せる一種のウィンドウのようなものである。ビューは、暗号化されたフィールド値の暗号化と復号化のために暗号化モジュール150を利用する。従来のデータベース管理システム100は、その内部に基本的な暗号化方法に関する暗号化モジュール150が組み込まれているものもあるが、その他、外部の暗号化モジュール155を参照して呼び出す場合も少なくない。この種の暗号化モジュール155の外部参照は、システムの複雑化や速度低下を引き起こす要因にもなる。
図2は、ビューを介してデータベースのカラム暗号化を行なう時におけるテーブルの生成過程を示す例示図である。
データベースのカラム暗号化は、テーブルにおいて暗号化の必要性のある一部のカラムのみを暗号化する。すなわち、0個以上乃至カラム全体を暗号化することができる。先ず、カラム暗号化のために暗号化前のテーブル210と同じテーブルを生成し、該生成されたテーブルに暗号化したいカラムに該当する暗号化されたカラム226を追加する。
該テーブルが、すなわち暗号化されたテーブル220となる。暗号化されたテーブル220の名称は、一定した命名規則に基づいて暗号化の前テーブル210の名前と関連付けられて決められ、両名称は1:1にマッピングされ、命名規則さえ知っていれば、一方の名称が分かるだけで他方の名称が分かる。新たに追加された暗号化されたカラム222に該当する暗号化されたフィールド名226は、暗号化前のテーブル210のフィールド名216によって決められ、一定の1:1マッピングの命名規則に基づいて生成されることで一方の名称が分かるだけで他方の名称が分かる。上記テーブル名とフィールド名は、暗号化前の名称と暗号化された名称を暗号化関連名称テーブル140に格納して管理する。したがって、上記名称テーブル140に名称が存在するか否かによって暗号化関連有無が分かり、マッピングから対応する他方の名称が分かる。
暗号化されたカラム226が作られれば、暗号化前のカラム216にあるすべてのフィールド値218を暗号化して暗号化されたカラム226に入力する。そして、暗号化されたテーブル220の暗号化前のフィールド名に該当するフィールド名のフィールド値をすべてゼロ(null)で処理する。フィールド値の暗号化は、1:1マッピング暗号化/復号化方法(アルゴリズム)によって暗号化する。1:1マッピングによる暗号化/復号化方法であるため、暗号化されたフィールド値228だけで復号化することで元のレコードフィールド値218への復元が可能である。
図2の例示を更に詳しく説明することにする。図2aは暗号化前のテーブルを示しており、図2bは暗号化された以後のテーブルを示している。暗号化前のテーブルであるinfoから同じテーブルである暗号化されたテーブルinfo_encryptを生成し、暗号化対象となるカラムであるoc_codeに該当する暗号化されたカラムであるoc_code_secを作成する。そして、フィールド名がoc_codeであるフィールド値をすべて暗号化してカラムoc_code_secに入れる。そして、暗号化対象となるカラムであるoc_codeにはすべてゼロで処理する。また、暗号化関連名称テーブル140には、暗号化に係わって新たに作られたテーブル名infoと、暗号化カラムのフィールド名であるageとoc_codeに対してそれぞれ暗号化前の名称と暗号化後の名称とを組として格納する。
また、一部カラムが暗号化されたテーブルが作られれば、該テーブルに関連した暗号化/復号化トリガーがレコード毎に作られる。一般的なDBMSにおけるトリガーは、テーブルにレコードアップデートや挿入をする時に自動で実行される手順であるが、暗号化/復号化トリガーは、当該フィールド値に対する暗号化/復号化を自動で行なうために作られたトリガーである。従来のビューを利用した技術では、上記のように、フィールド値の暗号化/復号化をトリガーを介して行なうため、一括して処理する作業の際に暗号化/復号化を遂行しすぎるようにするという原因を提供する。
図3は、従来のビューを利用した暗号化に関連したクエリーを処理する方法を示すフローチャートである。使用者は、ビュー130から提供する暗号化前のテーブル構造を見て、該構造に基礎してクエリーを作成するようになる。すなわち、使用者は、暗号化前のテーブル構造にて必要なクエリーを要請するようになる(S310)。使用者が要請したクエリー内に暗号化に関連したフィールド名やテーブルがあるか否かを判断する(S320)。具体的に、暗号化関連名称マッピングテーブル140を参照して該テーブルに名称が存在すれば、「ある」と判断する。なお、クエリー内に暗号化されたテーブルを参照しない場合は、一般的なデータベースのクエリー処理と同様にテーブルにアクセスしてクエリーを処理し(S331)、その結果を生成して使用者に結果テーブルを見せる(S340)。使用者のクエリー内に暗号化されたテーブルを参照する場合は、先ず、クエリー内に示された暗号化前のテーブルの名前から名称マッピングテーブル140を参照して暗号化されたテーブル名前を探し出す(S321)。探し出した暗号化されたテーブルの暗号化されたカラムのすべてのフィールド値を復号化してクエリーを処理する(S323)。例えば、暗号化されたフィールド値に対する所定の条件を満足する場合(これは、通常、クエリーの条件を表示するWHERE節に表示するようになる)に該当するレコードだけを含むテーブルを抽出したいならば、すべてのレコードの暗号化されたフィールド値を復号化し該値が上記条件に満足するか否かを検査する。特に、条件式が「<」や「>」などの比較を示す場合は、暗号化された値では比較することができないため、すべて復号化して調査するしかない。条件を満足するレコードだけを追加して結果値を生成する(S324)。生成されたクエリーの結果値を使用者に伝送し、該結果値を見ることができるようにする(S340)。ビュー130は、通常、テーブルを選択(SELECT)して結果値を見る時、上記のように暗号化/復号化してその結果値を仮想テーブルとして見せることにより、使用者は、暗号化/復号化が分からなくても暗号化前のテーブルとして見て、その処理された結果値も暗号化前の値として見るようになる。結果値は、仮想テーブル形態で見せるか、または生成された結果値に対するテーブルをDBに格納し該テーブルを返還したりすることもある。上記のようにすべてのレコードに対する復号化を行なう作業は、一般のクエリー処理に比べて、暗号化されたフィールド値を含んだクエリーの処理性能を低下させる要因になる。しかし、テーブルにおけるレコードの挿入や更新は、上記のようにその結果値を敢えて返還しなくても良いため、ビューにおいてトリガーによって実行される。すなわち、前述したように、レコードを挿入や更新する時に、該トリガーが作動して暗号化/復号化過程を経て処理される。
上記した従来のシステムの問題点は、暗号化モジュールの参照に起因する性能低下と暗号化に関連したテーブルのすべてのレコードの復号化に起因する性能低下とに大別することができる。前でも簡単に言及したように、暗号化モジュールはシステム内部にも存在するが、外部にも存在するため、これらを一律に管理することが難しく、好適な暗号化モジュールを探し出すにも多くの時間がかかる。また、外部の暗号化モジュールを利用するためには、内部の暗号化モジュールに比べて多くの費用がかかる。暗号化モジュールを一度実行するのにかかる時間は極めて小さいが、レコードの数が膨大である場合、すべてのレコード数に対して暗号化されたカラムのフィールド値をすべて暗号化/復号化しなければならないため、レバレッジ効果が発生して全体として大きな速度低下が発生し得る。例えば、暗号化されたフィールド値のフィールド名が 3個であり(すなわち、フィールド名に該当するすべてのフィールド値であるカラムが3個)、レコードが100,000個である場合、該フィールド値の条件をすべて検査するためには、3×100,000回を復号化しなければならない。すなわち、暗号化されたフィールド値のフィールド名の数が多いほど、レコードが多いほど条件検査のためのシステムの負荷が非常に大きくなる。
本発明は、上記のような暗号化されたフィールド値を有するすべてのレコードを復号化する過程から発生するシステムの性能低下によるクエリー処理時間が遅延されるという問題点を解決するためになされたものであって、その目的は、従来の暗号化データベース管理システム(DBMS)の前端から使用者クエリーを受け取って暗号化データベース構造のクエリーに変調し、データベース管理システムに伝達することにより、暗号化クエリーの処理性能を画期的に改善する使用者クエリー処理装置及び方法を提供することである。
また、他の目的は、上記のようにデーベース管理システムの内・外部に設けられている暗号化モジュールを管理し参照することから発生するクエリー処理の性能低下を克服するために、暗号化モジュールを統合的で且つ一律的に内部において管理することができる使用者クエリー処理装置及び方法を提供することである。
また、従来のデータベース管理システムは、通常、商用化製品であって、かかる構成を内部に一体で具現しているため、使用者とデータベース管理システムとの間に使用者クエリー処理装置を介装することにより、従来のデータベース管理システムをそのまま利用し、これにより改善費用を最小化する使用者クエリー処理装置及び方法を提供することである。
また、従来のビューを利用した暗号化処理及び方法では、暗号化前のテーブルを基礎にしたクエリー結果が暗号化されたテーブルを基礎にしたクエリー結果と完全に対応するように互換性(Transparency)を提供している。しかしながら、特殊な場合、従来の技術は互換性を提供することができないことがある。例えば、DBMSはテーブルの大きさが膨大である場合、多数のパーティションに分け、これらパーティションをリンクで管理する場合がある。ビューによって処理される仮想テーブルは、パーティションに対するリンク管理がまともにできないことから互換性を完全に保障することができない。本発明は、完全な互換性が提供できる使用者クエリー処理装置及び方法を提供することを目的とする。
上記目的を達成するための本発明は、一部カラムを暗号化したデータベースを管理するデータベース管理システム(DBMS)100に対し使用者160が暗号化前のDB構造に基盤したクエリーを要請すれば、上記クエリーを処理するための、クエリー変調によるクエリー処理処置400に関し、上記DBMS100の暗号化関連テーブルにおいて暗号化するカラムに該当するフィールド名と上記カラムを含むテーブル名に対して、暗号化前の名称と暗号化された名称とを組として格納する名称マッピングテーブル440と、使用者160がDBMS100に対し要請するクエリーをキャプチャー(Snapping)しDBMSに変調されたクエリーを伝送し、DBMSからクエリーが処理された結果値を受け取るパケット処理部410と、上記パケット処理部410においてキャプチャーしたクエリーを分析して暗号化に関連した項目を名称マッピングテーブル440を利用して変換するか、または暗号化処理部450において暗号化することで暗号化されたデータベースを参照することができるクエリーに変調するクエリー変調部420と、DBMS100において変調されたクエリーで処理された結果値から暗号化に関連した項目を名称マッピングテーブル440を利用して変換するか、または暗号化処理部450において復号化することで暗号化前のデータベースに対応する結果値に変調する結果値変調部430、及び上記クエリー変調部420の呼び出しによって暗号化に関連した項目を暗号化し、結果値変調部430の呼び出しによって暗号化に関連した項目を復号化する暗号化処理部450と、を含むことを特徴とする。
また、本発明は、クエリー変調によるクエリー処理処置において、クエリーにおける項目がテーブル名611とフィールド名612であり且つ上記名称マッピングテーブル440にあるか、または定数値613であり且つ上記項目を含む関係式の変数が上記名称マッピングテーブル440にあるフィールド名612であれば、暗号化に関連した項目であり、結果値における項目がテーブル名711とフィールド名712であり且つ上記名称マッピングテーブル440にあるか、または定数値713であり且つ上記項目を含む関係式の変数が上記名称マッピングテーブル440にあるフィールド名712であれば、暗号化に関連した項目であることを特徴とする。
また、本発明は、クエリー変調によるクエリー処理処置において、上記クエリー変調部420は、上記テーブル名611と上記フィールド名612を上記名称マッピングテーブル440に組として格納された名称に変換し、上記定数値613を上記暗号化処理部450によって暗号化した値に差し替えることにより、暗号化されたデータベースを参照することができるクエリーに変調し、上記結果値変調部430は、上記テーブル名711と上記フィールド名712を上記名称マッピングテーブル440に組として格納された名称に変換し、上記フィールド値713を上記暗号化処理部450によって復号化した値に差し替えることにより、結果値を暗号化前のデータベースに対応する結果値に変調することを特徴とする。
また、本発明は、クエリー変調によるクエリー処理処置において、上記パケット処理部410は、キャプチャーしたクエリー内に暗号化に関連した項目があるか否かを判断し、上記項目があると判断されれば、上記クエリー変調部420を呼び出してクエリー変調を行なうようにし、上記項目がないと判断されれば、直ちにDBMS100にパケットを伝送することを特徴とする。
また、本発明は、クエリー変調によるクエリー処理処置において、暗号化処理部450には、暗号化/復号化に必要なモジュールが組み込まれていることを特徴とする。
また、本発明は、一部カラムを暗号化したデータベースを管理するDBMS100に対し使用者160が暗号化前のDB構造に基盤したクエリーを要請すれば、上記クエリーを処理するための、クエリー変調によるクエリー処理方法に関し、上記DBMS100が暗号化関連テーブルを生成する時、暗号化するカラムに該当するフィールド名と上記カラムを含むテーブル名に対し暗号化の前名称と暗号化された名称とを組として格納する名称マッピングテーブル440を作成するマッピングテーブル生成ステップS510と、使用者がDBMSに対し要請するクエリーをキャプチャーするパケットキャプチャーステップS520と、キャプチャーしたクエリーを分析して暗号化に関連した項目を名称マッピングテーブル440を利用して変換するか、または暗号化することで暗号化されたデータベースを参照することができるクエリーに変調するクエリー変調ステップS530と、変調されたクエリーにてDBMSに対しクエリーを要請し、処理された結果値を受け取るクエリー要請ステップS540と、DBMS100において変調されたクエリーで処理された結果値から暗号化に関連した項目を名称マッピングテーブル440を利用して変換するか、または復号化することで暗号化前のデータベースに対応する結果値に変調する結果値変調ステップS550、及び変調された結果値を使用者に見せる結果伝送ステップS560と、を含むことを特徴とする。
また、本発明は、クエリー変調によるクエリー処理方法において、上記クエリー変調ステップS530は、クエリー内の項目を順に読み込むステップS531と、読み込んだ項目がテーブル名611であるかフィールド名612であり且つ暗号化と関連があれば、上記名称マッピングテーブル440を利用して変換するステップS532と、読み込んだ項目が定数値613であり且つ上記定数値613が含まれる関係式の変数が暗号化と関連があるフィールド名612であれば、上記定数値613を暗号化した値に差し替えるステップS534と、クエリー内に更に読み込むべき項目があるか否かを判断し、更にあると判断されれば、当該項目を読み込むステップS531を再び行い、ないと判断されれば、上記クエリー要請ステップS540に移行するステップと、を含み、上記結果値変調ステップS550は、上記結果値として受け取ったテーブル名711が暗号化と関連があれば、上記名称マッピングテーブル440を利用して変換するステップS552と、上記結果値として受け取ったテーブルのフィールド名712が暗号化と関連があれば、上記名称マッピングテーブル440を利用して変換し、上記フィールド名に該当するすべてのフィールド値を復号化して差し替えるステップS554と、を含むことを特徴とする。
また、本発明は、クエリー変調によるクエリー処理方法において、上記S532ステップは、読み込んだクエリー内の項目がテーブル名611であるかフィールド名612であり且つ名称マッピングテーブル440にあれば、上記名称マッピングテーブル440において上記項目に対して組として格納された値に変換し、上記S552ステップまたはS553ステップは、結果値として受け取ったテーブル名711またはフィールド名712が名称マッピングテーブル440にあれば、上記名称マッピングテーブル440において上記テーブル名711またはフィールド名712に対し組として格納された値に変換することを特徴とする。
上述したように、ビューを使用する従来の暗号化項目が含まれたクエリーの処理処置及び方法では、クエリー処理時に暗号化モジュールを内部で一律的に管理することができずに外部の暗号化モジュールを参照することにより全体的な性能低下をもたらしていたが、本発明によるクエリー変調によるクエリー処理装置及び方法では、暗号化モジュールを一律的に自己管理し直接呼び出し、データベース管理システム(DBMS)の資源共有なしに自己資源を使用することにより、効率的な速度を出すことができる。特に、一つのフィールド値を暗号化/復号化する過程における、従来の技術に比べてのその速度差は僅かであるが、暗号化/復号化処理回数が増える度にその差は相当に大きく広がる。暗号化/復号化に関連したクエリーを処理する場合には、条件を満足するか否かを比較するためにカラムの各値を復号化しなければならないため、テーブルの大きさが何十万、何百万となる場合、すべてのレコードの復号化のため処理速度の差は非常に大きく広がるようになる。
また、ビューを使用する従来の暗号化クエリーの処理方法では、トリガーなどのレコードにアクセスした時、暗号化/復号化するプログラムが自動実行される構造となっているため、不要な暗号化/復号化を遂行する場合がある。しかしながら、本発明では、クエリー自体に対する暗号化/復号化手続きを通じて一般のクエリーを処理する方式を採っているため、ビュー方式に比べて少なくとも同じか、またはそれより少ない数の暗号化/復号化過程を発生させる。この処理回数において最も大きな差を示す時は、クエリー命令であるUDATEを行う時である。例えば、暗号化されたカラム全体を同じ値で埋めようとする場合、従来の方法では、更新するためにカラムの各フィールドにアクセスすると余儀なく条件トリガーが発生して暗号化/復号化が処理され、全体としてレコード数の略2倍の暗号化/復号化が起こる。これに対し、本発明では、クエリー変調時に一度だけ暗号化が実行される。通常、更新クエリーは、「ある条件を満足する場合、所定の値に更新する」形態も多いため、多くのレコードを一度に更新する場合が茶飯事である。
したがって、本発明は、暗号化/復号化関数の単一処理速度の改善と暗号化処理回数の改善により、レコードの数が多くなるほど従来の技術に比べて画期的な性能改善効果を奏する。より具体的に、従来技術と本発明との性能の差を図8に示している。図8は、従来技術と本発明を実際にテストし、該テストから発生した性能結果を示している。図8aは、暗号化された3個のフィールド名に対して100、1,000、10,000個のレコードを処理した時の性能比較を示し、図8bは、暗号化された 1個のフィールド名のフィールド値に対して最大10万個のレコードを処理した結果を示している。図8において、一番目のグラフ棒は暗号化をしなかった場合の処理速度を示し、二番目のグラフ棒は従来技術によるクエリー処理を行った場合の処理速度を示し、最後のグラフ棒は本発明による処理速度を示している。
また、本発明は、従来のビューを利用したクエリー処理方法と同じか、またはそれ以上の互換性を提供する。従来のビューを利用した暗号化に関連したクエリー処理は、特殊な場合、例えば、多数のパーティションに分け、これらパーティションをリンクで管理する場合などには、互換性を提供することができない場合が発生する。しかしながら、本発明では、変調されたクエリーにより暗号化されたテーブルを一般のテーブルのような方式でアクセスするため、100%の互換性を提供している。
以下、本発明のクエリー変調によるクエリー処理処置及び方法を添付図面を参照して詳しく説明することにする。
図4は、本発明のクエリー変調によるクエリー処理処置の好適な一実施の形態の構成を示す図である。
図4に示すように、本発明のクエリー変調によるクエリー処理処置は、パケット処理部410と、クエリー変調部420と、結果値変調部430と、名称マッピングテーブル440、及び暗号化処理部450とで構成されている。
上記名称マッピングテーブル440は、DBMS100から暗号化されたテーブル220に関連したテーブル名とフィールド名に対して変換前の名称と変換された名称とを組として格納する暗号化関連名称テーブル140を読み込んで同一の値を格納するテーブルである。より詳しくは、前の従来技術において述べたように、暗号化されたテーブル220を生成する時に、暗号化するカラムのテーブル名と該カラムを含むテーブル名を命名規則に基づいて新しく作る。このとき、暗号化前の名称と命名規則に基づいて作られた名称とを暗号化関連名称テーブル140に組として格納して管理し、上記名称テーブル140に名称が存在するか否かによって暗号化と関連があるか否かが分かり、マッピングによって対応する他方の名称が分かる。名称マッピングテーブル440を用いて名称を変えることを「変換」と称し、これは、データの暗号化/復号化方法による暗号化や復号化とは異なる。すなわち、変換とは名称マッピングテーブル440に格納されている組に差し替えることを意味し、暗号化/復号化とは暗号化/復号化方法によって変更されることを意味する。
上記パケット処理部410は、使用者160がDBMS100に対し要請するクエリーをキャプチャーしDBMSに変調されたクエリーを伝送し、またDBMSからクエリーが処理された結果値を受け取る。通常、使用者160とDBMS100とは、ネットワークを介して接続されて送受信を行なうため、パケット形態で伝送され、パケット処理部410は、事実上パケットをキャプチャーするようになる。キャプチャーされたパケットを分析し、使用者が要請したクエリー内に暗号化に関連した項目が存在する場合には、クエリー変調部420を呼び出してクエリーを変調させる。また、パケット処理部410は、変調しなければならない場合は変調されたクエリーを、そうでない場合は元のクエリーをDBMS100に伝送することによりDBMS100がクエリーを処理するようにする。また、パケット処理部410は、DBMS100から処理されたクエリーの結果を受け取り、該結果値に暗号化に関連した項目が存在すれば、暗号化前のテーブルに変調するために結果値変調部430を呼び出して処理するようにする。そして、パケット処理部410は、結果を使用者160に伝送し、該結果を使用者が見ることができるようにする。
パケット処理部410におけるクエリー内の項目が暗号化に関連があるか否かの判断は、クエリー内の項目が上記名称マッピングテーブル440に存在するか否かによって行なうことができる。これは、後述するクエリー変調部において説明される方法と類似している。なお、暗号化に関連した項目を変換しないということだけが異なる。
パケット処理部410は、クエリー内の項目が暗号化に関連があるか否かの判断を省いて直ちにクエリー変調部420を呼び出して上記クエリーを処理させるようにすることもできる。暗号化に関連があるか否かを判断するためには、クエリー内の項目を順に読み込んで判断しなければならないが、この過程は、後述するクエリー変調部420でも全く同様に処理される作業である。したがって、クエリー変調部420において一括して処理することができ、若し、暗号化に関連した項目がなければ、クエリー変調部420において使用者が要請した元のクエリーと同じクエリーを返還するはずである。特に、暗号化に関連した項目がない場合、パケット処理部410においてそれを判断するためにはクエリーのすべての項目を読み込まなければならないため、クエリー変調部420において処理される分の処理費用がかかる。したがって、パケット処理部410における暗号化に関連があるか否かの判断は、不要な作業であるともいえる。
クエリー変調部420は、クエリー内に暗号化に関連した項目が含まれている項目が存在する場合、該項目を変換または暗号化してクエリーを変調する。変調されたクエリー620は、パケット処理部410を介してDBMS100において処理されるようにする。
クエリーの変調に関する詳細について、図6を参照して説明することにする。図6は、クエリーの最も一般的な命令語であるSELECT文の一例に関する変調を示している。図6aは使用者が要請するクエリーを示し、図6bは上記クエリーを変調したクエリーを示している。使用者が要請したクエリー610は、SELECT、FROM、WHEREなどのクエリー命令語と、テーブル名611と、フィールド名612と、定数値613の使用者項目に分けられる。クエリーの変調では、クエリー命令語はそのままにしておき、暗号化に関連した使用者項目のみを変調する。使用者項目においても暗号化と関連がない項目はそのままにしておく。暗号化と関連があるか否かの判断は使用者項目の種類によって異なる。
クエリー内の項目がテーブル名611やフィールド名612である場合には、上記名称マッピングテーブル440に存在するか否かによって判断する。すなわち、上記名称マッピングテーブル440に存在すれば、暗号化と関連があると判断し、上記名称マッピングテーブル440に組として存在する名称が暗号化されたデータベースに対応する名称である。したがって、組として存在する名称に変換してクエリーを変調する。例えば、図6に示すように、テーブル名infoは、名称マッピングテーブル440に存在するはずであり、その対応する暗号化された名称は組となっている名称であるinfo_encryptであるため、この値に変換する。フィールド名ageも同様な理由から、組となっている名称であるage_secに変換される。
また、クエリー内の項目が定数値613である場合をみてみる。暗号化に関連した定数値613とは、暗号化に関連したフィールド名と関係する式での定数値のことをいう。クエリー内の条件などは、フィールド名とフィールド名、フィールド名と定数値などの関係を表す方式にて示される単位関係式である(括弧を用いて単位関係式を含んで複雑にする関係式もある)。このとき、フィールド名と定数値によって示される関係式のうちのフィールド名が暗号化に関連したフィールド名である場合、該関係式における定数値が暗号化に関連した定数値である。フィールド名が暗号化と関連がある否かの判断は、前述したように、名称マッピングテーブル440に上記フィールド名が存在するか否かによって判断する。
図6の例をみれば、WHERE節にoc_code=‘A230'の関係式があるが、フィールド名であるoc_codeが暗号化に関連したフィールド名であるため、定数値613である‘A230'は暗号化に関連した定数値になるのである。また、暗号化に関連した定数値の暗号化は、該定数値が含まれた関係式のフィールド名のフィールド値を暗号化する暗号化方法と同じ方法にて暗号化する。前述した図6の例をみれば、フィールド名であるoc_codeに該当するフィールド値を暗号化する方法にて定数値613‘A230'を暗号化する。定数値を暗号化する方法は、フィールド値を暗号化する方法と同じ方法を用いればよく、前述した従来技術と同様に、1:1マッピングが可能な暗号化方法を用いる。
結論的に、変調されたクエリー620は、使用者クエリー610において暗号化に関連したフィールド名612と、テーブル名611、定数値613を暗号化されたテーブルに相応する暗号化されたテーブル名621、フィールド名622、定数値623に変換または暗号化したクエリーのことをいう。変調されたクエリー620は、暗号化に関連した使用者項目だけが変更されたため、一般のクエリーと同じ形態である。また、暗号化されたテーブルとフィールド名も、その名称が元の名称と異なるだけで、一般のテーブルやフィールド名と同じ形態である。すなわち、DBMSに対し一般のクエリーを要請するようにクエリーの要請が可能であり、DBMSにおいても一般のクエリーを処理するような形で処理する。したがって、従来の暗号化DBMSにおいて暗号化に関連してその処理を主に担っていたビューを利用しなくても良い。
前述したパケット処理部410におけるクエリー内に暗号化に関連した項目が含まれているか否かの判断についてより詳しく説明することにする。クエリー内に暗号化されたカラムの暗号化前のフィールド名612があるか、または暗号化前のカラムを含むテーブル名611が含まれている場合が、クエリー内に暗号化に関連した項目が含まれている場合である。
再び図4を参照して、結果値変調部430について説明することにする。結果値変調部430は、変調されたクエリーによって生成された結果値から暗号化に関連した項目を変換または復号化して暗号化前のデータベースに相応する結果値に変調する。変調された結果値は、使用者160に送られて該結果を見ることができるようにする。
結果値の変調に関する詳細については、図7を参照して説明することにする。図7は、結果値を暗号化前のデータベースに対応する結果値に変調したことを示す例示図である。結果値710において暗号化に関連した項目は、テーブル名711と、フィールド名712と、フィールド値713とに分けられる。テーブル名711は、結果値がテーブル形態で返還され、該テーブル名称が上記名称マッピングテーブル440に存在すれば、暗号化に関連した項目となる。この場合には、上記マッピングテーブル440に組となる値に変換する。フィールド名712は、結果値がテーブル形態で返還され、該テーブルのフィールド名をすべて調査し、上記名称マッピングテーブル440に存在すれば、暗号化に関連した項目を探し出すことができる。この場合、テーブル名と同様に、上記マッピングテーブル440に組となる値に変換する。フィールド値713は、上記フィールド名712が暗号化と関連があれば、すなわち、上記マッピングテーブル440に存在すれば、該フィールド名に該当するすべてのフィールド値713がすべて暗号化と関連がある。したがって、すべてのフィールド値713に対して復号化を行い、その値に差し替える。クエリー変調と同様に、暗号化と関連のない項目は変調しない。上記のようにして作られたテーブルが暗号化前のデータベースに対応する結果値になる。
例えば、図7の例示を見れば、図2bに示す暗号化テーブル220に対して図6bに示す変調されたクエリー620をDBMSに要請すれば、図7aに示すテーブル形態の結果値710を受け取るようになる。このとき、テーブル名711は、info_encryptであるため、名称マッピングテーブル440に存在し、これと組をなすinfo721に変換される。そして、フィールド名712age_secが名称マッピングテーブル440に存在するため、これと組をなすageに変換される。そして、フィールド名ageに該当する‘AS28'、‘AS28'をそれぞれ65、65に復号化して差し替えることにより、暗号化前のデータベースに対応する結果値720に変調されるのである。
上記暗号化処理部450は、フィールド値に対し暗号化方法によって暗号化と復号化を行なう。暗号化方法は、前の従来技術で説明したように、1:1マッピング暗号化アルゴリズムを用いて、暗号化されたフィールド値を復号化して暗号化前のフィールド値を抽出することができる。暗号化処理部450は、クエリー変調部420の呼び出しによってフィールド値を暗号化し、結果値変調部430の呼び出しによって復号化する。また、クエリー変調部420は、すべての暗号化モジュールを一括して内部において管理する。したがって、従来、データベース管理システムの暗号化モジュールをシステムの内外において管理することにより生じていた煩わしさと速度低下を解消することができる。
本発明に係るクエリーの暗号化変調による使用者クエリー処理装置及び方法では、クエリーの変調により一般的なクエリーを要請するような形で従来のデータベース管理システム100に対し要請をするが、従来のシステムのビュー403の機能を全く使用しないものではない。すなわち、暗号化テーブルを作成する過程でビューの機能が利用され、このとき、作成される暗号化関連名称テーブル140の値をもってきて名称マッピングテーブル440を作成する。
図5は、本発明に係るクエリー変調によるクエリー処理方法の好適な一実施の形態を示すフローチャートである。
本発明に係るクエリー変調によるクエリー処理方法は、名称マッピングテーブル440を作成するマッピングテーブル生成ステップS510と、使用者がDBMSに対し要請するクエリーをキャプチャーするパケットキャプチャーステップS520と、キャプチャーしたクエリーを変調するクエリー変調ステップS530と、変調されたクエリーにてDBMSに対しクエリーを要請し処理された結果値を受け取るクエリー要請ステップS540と、DBMS100において変調されたクエリーで処理された結果値を変調する結果値変調ステップS550と、変調された結果値を使用者に見せる結果伝送ステップS560とで構成される。
上記マッピングテーブル生成ステップS510は、上記DBMS100の暗号化関連名称テーブル140を参照して同じ内容を有する名称マッピングテーブル440を作成する。上記名称マッピングテーブル440は、DBMS100から暗号化されたテーブル220に関連したテーブル名とフィールド名に対して暗号化前の名称と変換された名称とを組として格納する暗号化関連名称テーブル140を読み込んで同じ値を格納するテーブルである。一つの項目が上記名称マッピングテーブル440にその名称が存在するか否かによって暗号化と関連があるか否かが分かり、マッピングから対応する他方の名称が分かる。
パケットキャプチャーステップS520は、使用者がDBMSに対しクエリー要請をする時のクエリーをキャプチャーする。通常、使用者とDBMSとはネットワークを介して接続され、クエリーがパケット形態で伝送されるため、パケットをキャプチャーするが、他の形態で通信する場合には、その通信形態のクエリーをキャプチャーする形での適用が可能である。使用者がビューなどを介して暗号化前のデータベースに対応するテーブル構造を見てクエリーを作成する。したがって、使用者のクエリーは、暗号化前のデータベース構造に基盤したクエリーである。
上記パケットキャプチャーステップS520においてクエリー内に暗号化に関連した項目があるか否かを判断し、上記クエリー変調部420に対し選択的に呼び出してクエリー変調を行なうようにすることもできる。すなわち、上記パケットキャプチャーステップS520は、パケットをキャプチャーした後、キャプチャーしたクエリー内に暗号化に関連した項目があるか否かを判断するステップを更に含み、上記クエリー変調ステップS530は上記項目がある場合に遂行し、上記クエリー処理方法は、上記項目がない場合には、直ちにDBMS100に対しクエリーを要請し、その結果値を使用者に伝送するステップを更に含むことができる。クエリー内の項目としては、前述したように、クエリー命令語とテーブル名611、フィールド名612、定数値613の使用者項目がある。このとき、クエリー内のテーブル名611やフィールド名612が上記名称マッピングテーブル440に存在する場合が、暗号化に関連した項目が存在する場合にあたる。すなわち、これら項目は、暗号化されたデータベースには存在しない項目であるため、暗号化されたデータベースに対応する暗号化項目に変換しなければならないのである。
また、上記パケットキャプチャーステップS520におけるクエリー内の項目が暗号化に関連があるか否かの判断を省いて、パケットをクエリー変調するクエリー変調ステップS530に移行することもできる。暗号化に関連があるか否かを判断するためには、クエリー内の項目を順に読み込んで判断しなければならないが、この過程は、後述するクエリー変調ステップS530でも同様に処理される作業である。したがって、パケットキャプチャーステップS520における暗号化に関連があるか否かの判断は、不要な作業であるともいえる。
上記クエリー変調ステップS530は、クエリー内に暗号化に関連した項目が含まれている項目が存在する場合、その項目を変換または暗号化してクエリーを変調する。クエリー内の項目としては、前述したように、クエリー命令語とテーブル名611、フィールド名612、定数値613の使用者項目があり、クエリーの変調は、クエリー命令語はそのままにしておき、暗号化に関連した使用者項目のみを変調する。クエリー内の項目がテーブル名611やフィールド名612である場合には、上記名称マッピングテーブル440に存在するか否かによって判断する。すなわち、上記名称マッピングテーブル440に存在すれば、暗号化と関連があるとみなし、上記名称マッピングテーブル440に組をなしている名称が暗号化されたデータベースに対応する名称である。したがって、組をなす名称に変換してクエリーを変調する。また、クエリー内の項目が定数値613である場合をみてみる。暗号化に関連した定数値613とは、暗号化に関連したフィールド名に関係する式における定数値のことをいう。クエリー内の条件などは、フィールド名とフィールド名、フィールド名と定数値などの関係を表す方式にて示される単位関係式である。このとき、フィールド名と定数値によって示される関係式のうちのフィールド名が暗号化に関連したフィールド名である場合、該関係式における定数値が暗号化に関連した定数値である。フィールド名が暗号化と関連があるか否かの判断は、前述したように、名称マッピングテーブル440に上記フィールド名が存在するか否かによって判断する。
より詳しくは、上記クエリー変調ステップS530は、クエリー内の項目を順に読み込むステップS531と、読み込んだ項目がテーブル名611であるかフィールド名612である場合、上記項目が暗号化と関連があれば暗号化に対応する項目値に変換するステップS532と、読み込んだ項目が定数値613である場合、上記定数値613が含まれる関係式において変数がフィールド名612であり且つ上記フィールド名612が暗号化と関連があれば、上記定数値613を上記暗号化/復号化方法によって暗号化した値に差し替えるステップS534と、クエリー内に更に読み込むべき項目があるか否かを判断し、更にあると判断されれば、上記項目を読み込むステップS531を再び行い、ないと判断されれば、上記クエリー要請ステップS540に移行するステップと、を含むことができる。
クエリー要請ステップS540は、変調されたクエリーにてDBMSに対しクエリーを要請し処理された結果値を受け取る。変調されたクエリーは、既に暗号化されたテーブル名、フィールド名、フィールド値に対応する名称に変換されているか、または定数値に暗号化されているため、データベース管理システム(DBMS)は、一般的なクエリーの処理と同様にクエリーを処理することができる。すなわち、DBMSは、暗号化と関連があるか否かに関係なく要請されたクエリーを一律的に処理する。
結果値変調ステップS550は、DBMS100において変調されたクエリーで処理された結果値から暗号化に関連した項目を変換または復号化して暗号化前のデータベースに対応する結果値に変調する。結果値710において暗号化に関連した項目は、テーブル名711、フィールド名712、フィールド値713に分けられた。テーブル名711は、結果値がテーブル形態で返還され、該テーブル名称が上記名称マッピングテーブル440に存在すれば、暗号化に関連した項目になる。この場合には、上記マッピングテーブル440に対し組となる値に変換する。フィールド名712は、結果値がテーブル形態で返還され、該テーブルのフィールド名をすべて調査して上記名称マッピングテーブル440に存在すれば、暗号化に関連した項目を探し出すことができる。この場合、テーブル名と同様に上記マッピングテーブル440に対し組となる値に変換する。フィールド値713は、上記フィールド名712が暗号化と関連があれば、すなわち、上記マッピングテーブル440に存在すれば、該フィールド名に該当するすべてのフィールド値713がすべて暗号化と関連がある。したがって、すべてのフィールド値713に対して復号化してその値に差し替える。クエリー変調と同様に、暗号化と関連のない項目は変調しない。上記のようにして作られたテーブルが暗号化前のデータベースに対応する結果値になる。
より詳しくは、上記結果値変調ステップS550は、上記結果値として受け取ったテーブル名711が暗号化と関連があれば、暗号化に対応するテーブル名に変換するステップS532と、上記結果値として受け取ったテーブルのフィールド名712が暗号化と関連があるか否かを判断するステップS553と、上記フィールド名712が暗号化と関連があれば、暗号化に対応するフィールド名に変換するステップS554と、上記フィールド名に該当するすべてのフィールド値を復号化して差し替えるステップS555と、上記結果値として受け取ったテーブルのそれぞれのフィールド名712に対して暗号化と関連があるか否かを判断するステップS553を繰り返し行うステップと、を含む。
結果伝送ステップS560は、変調された結果値を使用者に見せるステップである。使用者は、暗号化前のテーブル構造に基づいてクエリーを要請し、該結果も暗号化前のテーブル構造に基づいて結果を受け取ることにより、全く暗号化過程を認知することができない。すなわち、互換性が提供される。
前述したように、上記パケットキャプチャーステップS520においてクエリー内の暗号化に関連した項目を判断し、選択的にクエリー変調を行う場合、上記クエリー変調ステップS530から結果値変調ステップS550まではクエリー内に暗号化に関した項目が含まれた場合のステップである。若し、クエリー内に暗号化に関連した項目がない場合には、このステップを実行しない。その代わりに、DBMSに対しクエリーを要請し、その結果を受け取る。一般的なDBMSのクエリー要請手続きと同一である。DBMSから受け取ったその結果を使用者に見せる(S560)。
一部カラムを暗号化することができる従来のデータベース管理システムDBMSの構成図である。 ビューからデータベースのカラム暗号化を行なう時にテーブルを生成する過程を示す例示図である。 ビューからデータベースのカラム暗号化を行なう時にテーブルを生成する過程を示す例示図である。 従来の暗号化に関連したクエリーを処理する方法に関するフローチャートである。 本発明に係る使用者クエリー処理装置の好適な一実施の形態を示す構成図である。 クエリーの暗号化変調による使用者クエリー処理方法の好適な一実施の形態を示すフローチャートである。 クエリー変調の一実施の形態を示す図である。 クエリー変調の一実施の形態を示す図である。 結果テーブルの変調の一実施の形態を示す図である。 結果テーブルの変調の一実施の形態を示す図である。 暗号化された3個のカラムに対して100、1000、10000個のレコードを処理した場合における性能差を示す比較図である。 暗号化された1個のカラムに対して最大10万個のレコードを処理した場合における性能差を示す比較図である。
符号の説明
100:データベース
120:クエリー処理部
130:ビュー
140:名称テーブル
400:クエリー処理装置
410:パケット処理部
420:クエリー変調部
430:結果値変調部
440:名称マッピングテーブル
450:暗号化処理部

Claims (8)

  1. 一部カラムを暗号化したデータベースを管理するデータベース管理システム(DBMS)100に対し使用者160が暗号化前のDB構造に基盤したクエリーを要請すれば、前記クエリーを処理するための、クエリー変調によるクエリー処理処置400において、
    前記DBMS100の暗号化関連テーブルにおいて暗号化するカラムに該当するフィールド名と前記カラムを含むテーブル名に対して、暗号化前の名称と暗号化された名称とを組として格納する名称マッピングテーブル440と、
    使用者160がDBMS100に対し要請するクエリーをキャプチャー(Snapping)しDBMSに変調されたクエリーを伝送し、DBMSからクエリーが処理された結果値を受け取るパケット処理部410と、
    前記パケット処理部410においてキャプチャーしたクエリーを分析して暗号化に関連した項目を名称マッピングテーブル440を利用して変換するか、または暗号化処理部450において暗号化することで暗号化されたデータベースを参照することができるクエリーに変調するクエリー変調部420と、
    DBMS100において変調されたクエリーで処理された結果値から暗号化に関連した項目を名称マッピングテーブル440を利用して変換するか、または暗号化処理部450において復号化することで暗号化前のデータベースに対応する結果値に変調する結果値変調部430、及び
    前記クエリー変調部420の呼び出しによって暗号化に関連した項目を暗号化し、結果値変調部430の呼び出しによって暗号化に関連した項目を復号化する暗号化処理部450と、
    を含むことを特徴とするクエリー変調によるクエリー処理処置。
  2. クエリーにおける項目がテーブル名611とフィールド名612であり且つ前記名称マッピングテーブル440にあるか、または定数値613であり且つ前記クエリーにおける項目を含む関係式の変数が前記名称マッピングテーブル440にあるフィールド名612であれば、暗号化に関連した項目であり、
    結果値における項目がテーブル名711とフィールド名712であり且つ前記名称マッピングテーブル440にあるか、または定数値713であり且つ前記結果値における項目を含む関係式の変数が前記名称マッピングテーブル440にあるフィールド名712であれば、暗号化に関連した項目であることを特徴とする請求項1に記載のクエリー変調によるクエリー処理処置。
  3. 前記クエリー変調部420は、前記テーブル名611と前記フィールド名612とを前記名称マッピングテーブル440に組として格納された名称に変換し、前記定数値613を前記暗号化処理部450によって暗号化した値に差し替えることにより、暗号化されたデータベースを参照することができるクエリーに変調し、
    前記結果値変調部430は、前記テーブル名711と前記フィールド名712とを前記名称マッピングテーブル440に組として格納された名称に変換し、前記定数値713を前記暗号化処理部450によって復号化した値に差し替えることにより、結果値を暗号化前のデータベースに対応する結果値に変調することを特徴とする請求項2に記載のクエリー変調によるクエリー処理処置。
  4. 前記パケット処理部410は、キャプチャーしたクエリー内に暗号化に関連した項目があるか否かを判断し、前記項目があると判断されれば、前記クエリー変調部420を呼び出してクエリー変調を行なうようにし、前記項目がないと判断されれば、直ちにDBMS100にパケットを伝送することを特徴とする請求項1に記載のクエリー変調によるクエリー処理処置。
  5. 前記暗号化処理部450には、暗号化/復号化に必要なモジュールが組み込まれていることを特徴とする請求項1に記載のクエリー変調によるクエリー処理処置。
  6. 一部カラムを暗号化したデータベースを管理するDBMS100に対し使用者160が暗号化前のDB構造に基盤したクエリーを要請すれば、前記クエリーを処理するための、クエリー変調によるクエリー処理方法において、
    前記DBMS100が暗号化関連テーブルを生成する時、暗号化するカラムに該当するフィールド名と前記カラムを含むテーブル名に対し暗号化前の名称と暗号化された名称とを組として格納する名称マッピングテーブル440を作成するマッピングテーブル生成ステップS510と、
    使用者がDBMSに対し要請するクエリーをキャプチャーするパケットキャプチャーステップS520と、
    キャプチャーしたクエリーを分析して暗号化に関連した項目を名称マッピングテーブル440を利用して変換するか、または暗号化処理部において暗号化することで暗号化されたデータベースを参照することができるクエリーに変調するクエリー変調ステップS530と、
    変調されたクエリーにてDBMSに対しクエリーを要請し、処理された結果値を受け取るクエリー要請ステップS540と、
    DBMS100において変調されたクエリーで処理された結果値から暗号化に関連した項目を名称マッピングテーブル440を利用して変換するか、または暗号化処理部において復号化することで暗号化前のデータベースに対応する結果値に変調する結果値変調ステップS550、及び
    変調された結果値を使用者に見せる結果伝送ステップS560と、
    を含むことを特徴とするクエリー変調によるクエリー処理方法
  7. 前記クエリー変調ステップS530は、
    クエリー内の項目を順に読み込むステップS531と、
    読み込んだ項目がテーブル名611であるかフィールド名612であり且つ暗号化と関連があれば、前記名称マッピングテーブル440を利用して変換するステップS532と、
    読み込んだ項目が定数値613であり且つ前記定数値613が含まれる関係式の変数が暗号化と関連があるフィールド名612であれば、前記定数値613を暗号化した値に差し替えるステップS534と、
    クエリー内に更に読み込むべき項目があるか否かを判断し、更にあると判断されれば、当該項目を読み込むステップS531を再び行ない、ないと判断されれば、前記クエリー要請ステップS540に移行するステップと、を含み、
    前記結果値変調ステップS550は、
    前記結果値として受け取ったテーブル名711が暗号化と関連があれば、前記名称マッピングテーブル440を利用して変換するステップS552と、
    前記結果値として受け取ったテーブルのフィールド名712が暗号化と関連があれば、前記名称マッピングテーブル440を利用して変換し、前記フィールド名に該当するすべてのフィールド値を復号化して差し替えるステップS554と、を含むことを特徴とする請求項6に記載のクエリー変調によるクエリー処理方法。
  8. 前記S532ステップは、読み込んだクエリー内の項目がテーブル名611であるかフィールド名612であり且つ名称マッピングテーブル440にあれば、前記名称マッピングテーブル440において前記読み込んだクエリー内の項目に対して組として格納された値に変換し、
    前記S552ステップまたはS553ステップは、結果値として受け取ったテーブル名711またはフィールド名712が名称マッピングテーブル440にあれば、前記名称マッピングテーブル440において前記結果値として受け取ったテーブル名711またはフィールド名712に対して組として格納された値に変換することを特徴とする請求項7に記載のクエリー変調によるクエリー処理方法。
JP2008267495A 2007-10-16 2008-10-16 暗号化されたカラムを含むデータベースにおけるクエリーの暗号化変調による使用者クエリー処理装置及び方法 Active JP4972067B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2007-0104005 2007-10-16
KR1020070104005A KR100859162B1 (ko) 2007-10-16 2007-10-16 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
JP2009099151A true JP2009099151A (ja) 2009-05-07
JP4972067B2 JP4972067B2 (ja) 2012-07-11

Family

ID=40023327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008267495A Active JP4972067B2 (ja) 2007-10-16 2008-10-16 暗号化されたカラムを含むデータベースにおけるクエリーの暗号化変調による使用者クエリー処理装置及び方法

Country Status (4)

Country Link
US (1) US8055678B2 (ja)
EP (1) EP2051183B1 (ja)
JP (1) JP4972067B2 (ja)
KR (1) KR100859162B1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013069776A1 (ja) * 2011-11-11 2013-05-16 日本電気株式会社 データベース暗号化システムと方法及びプログラム
JP2013097797A (ja) * 2011-11-03 2013-05-20 Penta Security Systems Inc データベースエンジンを利用したデータセキュリティ方法
JP2016519808A (ja) * 2013-03-15 2016-07-07 インフォマティカ エルエルシー データのトークン化方法および装置、並びにデータのトークン化のためのコンピュータ可読媒体

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070079119A1 (en) * 2000-11-16 2007-04-05 Ulf Mattsson Encryption key rotation
US20100262836A1 (en) * 2009-04-13 2010-10-14 Eric Peukert Privacy and confidentiality preserving mapping repository for mapping reuse
KR101302135B1 (ko) * 2009-11-30 2013-09-16 한국전자통신연구원 위탁 서비스를 위한 데이터의 부분 암복호화 방법 및 그 장치
WO2011074559A1 (ja) * 2009-12-17 2011-06-23 日本電気株式会社 ネットワークシステム、ネットワーク制御装置、及び制御方法
US10275518B2 (en) * 2011-04-30 2019-04-30 Tibco Software Inc. Integrated phonetic matching methods and systems
US9256762B1 (en) 2011-12-20 2016-02-09 Amazon Technologies, Inc. Securing a remote database
US9152811B2 (en) 2012-03-12 2015-10-06 International Business Machines Corporation Transparent real-time access to encrypted non-relational data
US9223807B2 (en) 2012-09-13 2015-12-29 International Business Machines Corporation Role-oriented database record field security model
US10162858B2 (en) 2013-07-31 2018-12-25 Sap Se Local versus remote optimization in encrypted query processing
US9553867B2 (en) 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US10122714B2 (en) 2013-08-01 2018-11-06 Bitglass, Inc. Secure user credential access system
US9552492B2 (en) * 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US9875370B2 (en) * 2015-03-26 2018-01-23 Microsoft Technology Licensing, Llc Database server and client for query processing on encrypted data
US10482263B2 (en) 2015-04-01 2019-11-19 Microsoft Technology Licensing, Llc Computing on encrypted data using deferred evaluation
KR101663632B1 (ko) * 2015-04-08 2016-10-07 숭실대학교산학협력단 데이터베이스 암호화를 지원하는 스토리지 서비스 제공 서버 및 방법
US10210266B2 (en) * 2016-05-25 2019-02-19 Microsoft Technology Licensing, Llc Database query processing on encrypted data
JP6381861B2 (ja) * 2016-05-27 2018-08-29 三菱電機株式会社 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム
US10977383B2 (en) 2016-10-05 2021-04-13 Snowflake Inc. Systems, methods, and devices for encrypting database data
CN108319862B (zh) * 2017-01-16 2022-05-17 阿里云计算有限公司 一种数据文件处理的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010836A (ja) * 1998-06-22 2000-01-14 Hitachi Information Systems Ltd クライアント・サーバ型アプリケーションのテスト方法及びこの方法を実現するためのプログラムを記録した記録媒体
JP2001101055A (ja) * 1999-09-30 2001-04-13 Casio Comput Co Ltd データベース管理装置、データベースシステム、暗号化装置及び記録媒体
JP2003186725A (ja) * 2001-12-17 2003-07-04 Kanet:Kk リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法
JP2003345821A (ja) * 2002-05-30 2003-12-05 Nippon Telegr & Teleph Corp <Ntt> 情報検索システムおよび情報検索方法、情報検索プログラム並びにそのプログラムを記録した記録媒体

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956400A (en) * 1996-07-19 1999-09-21 Digicash Incorporated Partitioned information storage systems with controlled retrieval
US7093137B1 (en) * 1999-09-30 2006-08-15 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system
JP2002169808A (ja) * 2000-11-30 2002-06-14 Hitachi Ltd セキュアマルチデータベースシステム
US7228416B2 (en) * 2001-01-26 2007-06-05 Hitachi, Ltd. Database access method and system capable of concealing the contents of query
US7266699B2 (en) * 2001-08-30 2007-09-04 Application Security, Inc. Cryptographic infrastructure for encrypting a database
JP4357815B2 (ja) * 2002-09-11 2009-11-04 株式会社東芝 暗号演算回路
US10339336B2 (en) * 2003-06-11 2019-07-02 Oracle International Corporation Method and apparatus for encrypting database columns
JP3940714B2 (ja) * 2003-09-25 2007-07-04 株式会社東芝 演算装置、および、暗号・復号演算装置
US7395437B2 (en) * 2004-01-05 2008-07-01 International Business Machines Corporation System and method for fast querying of encrypted databases
US7558970B2 (en) * 2004-01-23 2009-07-07 At&T Corp. Privacy-enhanced searches using encryption
US7136851B2 (en) * 2004-05-14 2006-11-14 Microsoft Corporation Method and system for indexing and searching databases
US7743069B2 (en) * 2004-09-03 2010-06-22 Sybase, Inc. Database system providing SQL extensions for automated encryption and decryption of column data
US7797342B2 (en) * 2004-09-03 2010-09-14 Sybase, Inc. Database system providing encrypted column support for applications
KR100670798B1 (ko) * 2004-12-17 2007-01-17 한국전자통신연구원 데이터베이스 캐시 시스템
TWI268081B (en) * 2005-06-24 2006-12-01 Hitrust Com Inc Data-encrypting/decrypting method, data-saving media using the method, and data-encrypting/decrypting module
JP2009027472A (ja) * 2007-07-19 2009-02-05 Toshiba Corp 暗号演算装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010836A (ja) * 1998-06-22 2000-01-14 Hitachi Information Systems Ltd クライアント・サーバ型アプリケーションのテスト方法及びこの方法を実現するためのプログラムを記録した記録媒体
JP2001101055A (ja) * 1999-09-30 2001-04-13 Casio Comput Co Ltd データベース管理装置、データベースシステム、暗号化装置及び記録媒体
JP2003186725A (ja) * 2001-12-17 2003-07-04 Kanet:Kk リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法
JP2003345821A (ja) * 2002-05-30 2003-12-05 Nippon Telegr & Teleph Corp <Ntt> 情報検索システムおよび情報検索方法、情報検索プログラム並びにそのプログラムを記録した記録媒体

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097797A (ja) * 2011-11-03 2013-05-20 Penta Security Systems Inc データベースエンジンを利用したデータセキュリティ方法
WO2013069776A1 (ja) * 2011-11-11 2013-05-16 日本電気株式会社 データベース暗号化システムと方法及びプログラム
JP5344109B1 (ja) * 2011-11-11 2013-11-20 日本電気株式会社 データベース暗号化システムと方法及びプログラム
US8812877B2 (en) 2011-11-11 2014-08-19 Nec Corporation Database encryption system, method, and program
US9349023B2 (en) 2011-11-11 2016-05-24 Nec Corporation Database encryption system, method, and program
JP2016519808A (ja) * 2013-03-15 2016-07-07 インフォマティカ エルエルシー データのトークン化方法および装置、並びにデータのトークン化のためのコンピュータ可読媒体

Also Published As

Publication number Publication date
KR100859162B1 (ko) 2008-09-19
EP2051183B1 (en) 2016-05-11
JP4972067B2 (ja) 2012-07-11
US8055678B2 (en) 2011-11-08
EP2051183A1 (en) 2009-04-22
US20090100033A1 (en) 2009-04-16

Similar Documents

Publication Publication Date Title
JP4972067B2 (ja) 暗号化されたカラムを含むデータベースにおけるクエリーの暗号化変調による使用者クエリー処理装置及び方法
CN110689349B (zh) 一种区块链中的交易哈希值存储和搜索方法及装置
JP4685782B2 (ja) データベースのカラムを暗号化するための方法および装置
US9600677B2 (en) Database apparatus, method, and program
US11397820B2 (en) Method and apparatus for processing data, computer device and storage medium
US10664610B2 (en) Method and system for range search on encrypted data
US8874932B2 (en) Method for order invariant correlated encrypting of data and SQL queries for maintaining data privacy and securely resolving customer defects
US8644513B2 (en) Database processing on externally encrypted data
US8769302B2 (en) Encrypting data and characterization data that describes valid contents of a column
US9762384B2 (en) Generation and verification of alternate data having specific format
CN106231346B (zh) 一种针对离线视频的分布式加密方法
CN113157778B (zh) 分布式数据仓库的可代理查询方法、系统、设备及介质
CN112100639B (zh) 一种基于元数据业务信息的数据加密传输的方法、系统
US20220209945A1 (en) Method and device for storing encrypted data
CN108734023B (zh) 一种密文数据库系统的访问与集成系统及方法
CN112016104B (zh) 一种金融敏感数据的加密方法、装置和系统
CN116015767A (zh) 一种数据处理方法、装置、设备及介质
EP3809300A1 (en) Method and apparatus for data encryption, method and apparatus for data decryption
US20070263876A1 (en) In-memory compression and encryption
CN116821056A (zh) 一种基于可信第三方的隐匿查询方法、系统、装置及存储介质
CN114629644A (zh) 数据加密方法、存储介质、计算机程序产品和电子设备
US10277565B2 (en) Enterprise service bus logging
KR102673882B1 (ko) 데이터 암호화 방법 및 장치, 데이터 복호화 방법 및 장치
CN117171276A (zh) 电力计量数据处理方法、装置、存储介质及电子设备
JP2013097797A (ja) データベースエンジンを利用したデータセキュリティ方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090724

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110913

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120327

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120406

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4972067

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250