JP3921892B2 - Database management apparatus, database system, and recording medium - Google Patents
Database management apparatus, database system, and recording medium Download PDFInfo
- Publication number
- JP3921892B2 JP3921892B2 JP27920899A JP27920899A JP3921892B2 JP 3921892 B2 JP3921892 B2 JP 3921892B2 JP 27920899 A JP27920899 A JP 27920899A JP 27920899 A JP27920899 A JP 27920899A JP 3921892 B2 JP3921892 B2 JP 3921892B2
- Authority
- JP
- Japan
- Prior art keywords
- database
- search
- data
- key
- item
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、データベースを暗号化して管理するデータベース管理装置と、暗号化データベースを有する検索装置をネットワーク上に配置したデータベースシステム及び記録媒体に関する。
【0002】
【従来の技術】
データベース管理装置では、データベースのセキュリティを確保するため、管理対象として保有しているデータベースを暗号化して保存しておくことが求められる。
【0003】
ここでセキュリティを高めるためには、より複雑な暗号処理を施すことで実現することができるが、複雑な暗号処理は演算に要する時間も大きくなることは避けられない。
【0004】
データベースは膨大なデータを有し、データ検索は、それらのデータの中からある項目について条件に合致するものを選び出し、条件に合う項目データを含むレコード(行データ)を出力するという処理になる。従って、大量のデータを取り扱うデータ検索システムにおいては演算時間の増加は処理効率を悪化させる原因となる。
【0005】
【発明が解決しようとする課題】
上述したように、機密性の高いデータを記憶しているデータベースにはセキュリティの要求があり、セキュリティを高めるための暗号化処理はデータベースの利用性を妨げるという問題がある。
【0006】
本発明は前記のような課題を解決するためになされたもので、データベースのセキュリティを確保すると共に、データの高速検索を可能にしたデータベース管理装置、データベースシステム及び記録媒体を提供することを目的とする。
【0007】
【課題を解決するための手段】
本発明に係るデータベース管理装置は、1つのレコードが検索に利用される所定の検索対象項目とその他の項目からなるデータベースを記憶するデータベース記憶手段と、データベースの暗号化に用いる鍵であって、各項目に対応する列鍵と、各行に対応する行鍵とを生成する鍵生成手段と、前記データベース記憶手段のデータベースの各レコードについて、前記検索対象項目のデータは当該項目に対応する列鍵を用いて共通に暗号化し、前記その他の項目のデータについては当該項目に対応する列鍵と各行に対応する行鍵とを組み合わせた鍵を用いて暗号化する暗号化手段と、前記検索対象項目を検索する場合に、検索用として入力されたデータを当該項目に対応する列鍵を用いて暗号化し、その暗号化された検索用データと前記記憶手段に記憶された暗号化データベースのデータとを比較して検索処理を行うデータベース検索手段とを具備したことを特徴とする。
【0008】
本発明に係るデータベースシステムは、データベースを有する第1の情報端末と、この第1の情報端末にデータベースの検索を依頼する第2の情報端末とを有し、これらをネットワークを介して接続してなるデータベースシステムにおいて、前記第1の情報端末は、1つのレコードが検索に利用される所定の検索対象項目とその他の項目からなるデータベースを記憶するデータベース記憶手段と、データベースの暗号化に用いる鍵であって、各項目に対応する列鍵と、各行に対応する行鍵とを生成する鍵生成手段と、前記データベース記憶手段のデータベースの各レコードについて、前記検索対象項目のデータは当該項目に対応する列鍵を用いて共通に暗号化し、前記その他の項目のデータについては当該項目に対応する列鍵と各行に対応する行鍵とを組み合わせた鍵を用いて暗号化する暗号化手段とを有し、前記第2の情報端末は、前記所定の検索対象項目についてデータベースの検索を依頼する際に、検索用として入力されたデータを当該項目に対応する列鍵を用いて暗号化して、その暗号化された検索用データを前記ネットワークを介して前記第1の情報端末に送る検索依頼手段を有し、前記第1の情報端末は、前記検索用データに基づいて前記暗号化データベースの検索処理を行い、その検索結果として得られたデータを暗号化された状態で前記ネットワークを介して前記第2の情報端末に返信することを特徴とする。
【0013】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
【0014】
(第1の実施形態)
図1は本発明の第1の実施形態に係るデータベース管理装置の構成を示す図である。本装置は、行と列からなるマトリクス形式のデータベースを有し、そのデータベースを暗号化して管理する機能と共に、入力された検索用データを暗号化して、その暗号化された検索用データに基づいてデータベースを検索する機能を備えたものであって、例えば磁気ディスク等の記録媒体に記録されたプログラムを読み込み、このプログラムによって動作が制御されるコンピュータによって実現される。
【0015】
図1に示すように、本装置には、CPU11、表示装置12、入力装置13、プログラム記憶装置14、鍵記憶装置15、データ記憶装置16が設けられている。
【0016】
CPU11は、本装置全体の制御を行うものであり、プログラム記憶装置14に記憶されたプログラムを読み込み、そのプログラムに従って各種処理を実行する。本実施形態において、CPU11は図2に示すようなデータベースの暗号化処理や、図3および図4に示すようなデータベースの検索処理を実行する。
【0017】
表示装置12は、データを表示するためのデバイスであり、例えばLCD(Liquid Crystal Display)やCRT(Cathode-ray tube)等が用いられる。入力装置13は、データを入力するためのデバイスであり、例えばキーボード、マウス等が用いられる。
【0018】
プログラム記憶装置14は、例えばROMあるいはRAMなどで構成され、本装置に必要なプログラムを記憶する。本装置に必要なプログラムとしては、データベース管理プログラムや暗号化プログラム等がある。
【0019】
なお、プログラム記憶装置14は半導体メモリの他に磁気的、光学的記録媒体で構成することができる。この記録媒体はCD-ROM等の可搬型の媒体やハードディスク等の固定的な媒体を含む。また、この記録媒体に格納するプログラムは、その一部若しくは全部をサーバやクライアントからネットワーク回線などの伝送媒体を介して伝送制御部から受信する構成にしてもよく、更に、前記記録媒体はネットワーク上に構築されたサーバの記録媒体であってもよい。更に、前記プログラムをネットワーク回線などの伝送媒体を介してサーバーやクライアントへ伝送してこれらの機器にインストールするように構成してもよい。
【0020】
鍵記憶装置15は、例えばRAMなどで構成され、データベースの暗号化に用いられる鍵(行鍵と列鍵)を記憶する。
【0021】
データ記憶装置16は、本装置に必要な各種のデータを記憶するためのデバイスであり、例えばRAMあるいは磁気ディスク装置等の外部記憶装置で構成される。このデータ記憶装置16には、データベースを格納しておくためのデータベース格納エリア16a、データベースを暗号化する際にオペレータにより設定された情報(検索対象項目、非暗号化項目等)を格納しておくための暗号化設定情報格納エリア16b、データベースを検索する際にオペレータにより設定された情報(対象列項目、検索文字列等)を格納しておくための検索設定情報格納エリア16c、データベース検索時の比較文字列を格納しておくための比較文字列格納エリア16dなどが設けられている。
【0022】
ここで、本装置の動作を説明する前に、本装置によって実現されるデータベースの暗号化方法について説明しておく。
【0023】
データベースを暗号化する場合に、各行毎(レコード毎)に異なる鍵を用いて暗号化すると、鍵の解読は困難となり、セキュリティ性を高めることができる。しかし、データベースを検索する際に、暗号化されているデータを各行毎の鍵で復号化するか、または、検索用として入力されたデータ(キーワード)を各行毎の鍵で暗号化しなければならいため、検索結果を得るのに時間がかかることになる。一方、各列毎に異なる鍵を用いてデータベースを暗号化すると、検索対象となる列項目に対応した鍵のみを用いて検索用データを暗号化すれば良いのでデータベース検索を高速に行うことができる。しかし、同じ列の中で同一のデータがあると、暗号化結果も同じになってしまうため、そこから鍵を解読される可能性が高くなる。
【0024】
そこで、本発明では、データベースを暗号化する際に、検索に頻繁に利用される列項目のデータについては列共通鍵で暗号化し、その他の列項目のデータについては各行毎に異なる鍵を与えて暗号化することを特徴とする。つまり、各行毎に鍵を異ならせることで、セキュリティを高めると共に、検索時には検索に利用される項目に入力されたデータを列鍵で暗号化してデータベース上の暗号化データと比較することで高速検索を可能とするものである。
【0025】
図5は第1の実施形態におけるデータベースの構成を説明するための図であり、図5(a)は暗号化前の状態、同図(b)は暗号化後の状態、同図(c)は復号化後の状態を示している。また、図6は第1の実施形態における列鍵と行鍵の構成を示す図である。
【0026】
図5(a)に示すように、本装置では、行と列からなるマトリクス形式のデータベースを備えている。ここでは、個人データをデータベース化した場合を示している。このデータベースは、1レコードが「number」,「name」,「state」,「weight」,「height」,「age」,「phone」の各項目で構成するようにしている。
【0027】
このようなデータベースに対し、列鍵と行鍵を用いて暗号化を行う。すなわち、検索に頻繁に利用される列項目を「name」,「state」,「age」とした場合に、これらの列項目の各行のデータについては、図6に示すように、「apple」,「orange」,「lemon」といった各列項目に共通の列鍵を用いて暗号化し、その他の列項目「weight」,「height」,「phone」の各行のデータについては、各行毎に固有の鍵を用いて暗号化する。
【0028】
なお、「number」の列は暗号化を行わないものとする。行鍵としては、「tiger」,「dog」,「cat」,「mouse」,「elephant」,「cow」,「pig」,「rabbit」,「lion」といった鍵が用いられる。これらの鍵は所定の関数を用いて各列または各行毎に数学的に発生させることができる。
【0029】
図5(a)のデータベースを列鍵と行鍵を用いて暗号化した結果を図5(b)に示す。データ記憶装置16のデータベース格納エリア16aには、図5(b)に示すような状態でデータベースが保存されることになる。
【0030】
データベースを検索する場合には、検索に利用される列項目に対応した列鍵を用いて検索用データを暗号化してから検索処理を行う。例えば、「state」の中の「Florida」といったデータを検索する場合には、まず、検索用データとして入力された「Florida」を「state」の列鍵「apple」で暗号化して、「h*/fDD」を得る。この「h*/fDD」といったデータを「state」の列の各行から検索する。これにより、「number2」と「number8」に該当するデータが存在することがわかる。
【0031】
また、暗号化されたデータベースを元に戻す場合には、暗号化の時と同じ列鍵と行鍵を用いる。図5(b)のデータベースを暗号化の時と同じ列鍵と行鍵を用いて復号化すると、図5(c)に示すように元のデータを得ることができる。
【0032】
以下に、本装置の動作について説明する。
【0033】
ここでは、(a)データベースを暗号化する場合の処理と、(b)データベースを検索する場合の処理に分けて説明する。なお、このフローチャートで示す各機能を実現するプログラムはCPUが読み取り可能なプログラムコードの形態で前記プログラム記憶装置14の記録媒体に格納されている。また、このプログラムはプログラムコードの形態でネットワーク回線などの伝送媒体を介して伝送することもできる。
【0034】
(a)データベースを暗号化する場合
図2は本装置にて実行されるデータベース暗号化処理の動作を示すフローチャートである。今、データベースが暗号化されていない状態でデータ記憶装置16のデータベース格納エリア16aに記憶されているものとする。この状態が図5(a)である。
【0035】
まず、図示せぬデータベース暗号化設定画面にて、暗号化対象となるデータベースを指定する(ステップA11)。
【0036】
次に、そのデータベースに設けられた各列項目の中で検索に利用する列項目と、暗号化を必要としない列項目をそれぞれ設定する(ステップA12)。図5(a)の例では、検索に利用する列項目は「name」,「state」,「age」であり、暗号化を必要としない列項目は「number」である。ここでの設定情報はデータ記憶装置16の暗号化設定情報格納エリア16bに記憶される。
【0037】
次に、当該データベースの暗号化に用いる行鍵と列鍵を決定する(ステップA13)。ここで決定された行鍵と列鍵の情報は鍵記憶装置15に記憶される。
【0038】
このような設定操作の後、データベースの中の各列項目を順次指定していくと(ステップA14)、その指定された列項目に対する暗号化方式が前記設定情報に基づいて判断される(ステップA15)。この場合、データベースの中の「number」の列項目については非暗号化項目として設定されているので、何もしない。つまり、「number」の項目は元データのままである。
【0039】
また、指定された列項目が検索に利用する列項目として設定されている場合には、鍵記憶装置15に記憶された当該列項目に共通の列鍵が読み出され(ステップA15→A16)、当該列項目の各行のデータがその列鍵により暗号化される(ステップA17)。すなわち、データベースの「name」,「state」,「age」の項目の各行のデータは、図6に示すように、「apple」,「orange」,「lemon」といった各列に固有の鍵を用いて暗号化されることになる。
【0040】
また、指定された列項目が検索に利用する列項目として設定されていない場合、つまり、他の列項目であった場合には、鍵記憶装置15に記憶された各行に対応した行鍵が読み出され(ステップA15→A18)、当該列項目の各行のデータがそれぞれに固有の行鍵により暗号化される(ステップA19,A20)。すなわち、データベースの中の「state」,「weight」,「height」の各項目のデータに関しては、図6に示すように、1行目のデータは「tiger」,2行目のデータは「dog」,3行目のデータは「cat」,4行目のデータは「mouse」,5行目のデータは「elephant」,6行目のデータは「cow」,7行目のデータは「pig」,8行目のデータは「rabbit」,9行目のデータは「lion」といったように、各行に対応した行鍵を用いて暗号化される。
【0041】
このような暗号化処理がデータベースの各列項目について繰り返し行なわれる。すべての列項目の各行のデータの暗号化が終了すると、その暗号化データベースがデータ記憶装置16のデータベース格納エリア16aに上書き保存される(ステップA22)。この状態が図5(b)である。
【0042】
(b)データベースを検索する場合
図3は本装置にて実行されるデータベース検索処理の動作を示すフローチャートである。今、前記(a)で説明した暗号化処理にて、データベースが暗号化されてデータ記憶装置16に保存されているものとする。
【0043】
まず、図3(a)のフローチャートに示すように、図示せぬデータベース検索用設定画面にて、検索情報の入力を行う(ステップB11)。検索情報の入力とは、検索対象となる列項目と、検索用の文字列(キーワード)を入力することである。これらの入力情報はデータ記憶装置16の検索設定情報格納エリア16cに格納される。入力装置13を通じて検索情報が入力されると、検索前処理が実行される(ステップB12)。
【0044】
この検索前処理では、図3(b)のフローチャートに示すように、検索対象として入力された列項目が所定の列項目であるか否かが判断され(ステップC11)、所定の列項目であることが判明した場合には(ステップC11のYes)、その列項目に共通の列鍵で検索用の文字列が暗号化される(ステップC12)。
【0045】
所定の列項目とは、前記データベースの暗号化時に設定された検索対象項目(検索に利用される項目)であり、具体的には「name」,「state」,「age」の各項目が該当する。この検索対象項目に関する情報はデータ記憶装置16の暗号化設定情報格納エリア16bに格納されている。したがって、前記ステップC11では、この暗号化設定情報格納エリア16bを参照して所定の列項目であるか否かの判断を行うことになる。また、列項目に共通の列鍵は鍵記憶装置15に格納されている。したがって、前記ステップC12では、この鍵記憶装置15から当該列項目に対応した列鍵を読み出して検索用の文字列を暗号化することになる。例えば、指定項目が「state」であれば、「orang」といった列鍵を用いて検索用の文字列を暗号化することになる。
【0046】
また、検索対象として入力された列項目が所定の列項目でなかった場合には(ステップC11のNo)、前記のような検索用文字列の暗号化は行われない。
【0047】
このような検索前処理の後、データベースの検索処理(図4参照)が行われ(ステップB13)、その検索結果として得られたデータが表示装置12に表示される(ステップB14)。図4にデータベースの検索処理を示す。
【0048】
図4は前記ステップB13の検索処理の動作を具体的に示すフローチャートである。
【0049】
まず、図4(a)のフローチャートに示すように、検索用文字列がデータベースとの比較文字列としてデータ記憶装置16の比較文字列格納エリア16dにセットされる(ステップD11)。この場合、上述したように検索対象として入力された列項目が所定の列項目(「name」,「state」,「age」)であった場合には、前記検索前処理によって、当該検索用文字列がその列項目に対応した列鍵にて暗号化されて比較文字列格納エリア16dにセットされる。その他の列項目の場合には、暗号化されることなく、そのままの状態で比較文字列格納エリア16dにセットされる。
【0050】
次に、データ記憶装置16のデータベース格納エリア16aに格納された暗号化データベースの列番号による暗号化方式が判断される(ステップD12)。これにより、検索対象が列鍵で暗号化された所定の列項目に該当する場合には、その対象列の各行にあるデータが順次走査され(ステップD12→D13)、指定された行に含まれた対象項目のデータの文字列と前記比較文字列格納エリア16dにセットされた検索用文字列(暗号化された文字列)との比較処理が行われる(ステップD14)。
【0051】
この比較処理では、図4(b)のフローチャートに示すように、データベースから取り出された対象項目のデータの暗号化文字列と検索用の暗号化文字列とを比較して、両者が一致するか否かを判断する(ステップE11)。両者が一致した場合には(ステップE11のYes)、その一致した項目を含むレコードデータをデータベース検索結果として抽出する(ステップE12)。
【0052】
この処理を暗号化データベースの終端まで繰り返して、該当するデータを順次抽出し(ステップD15)、この抽出したデータを検索結果として出力する(ステップD20)。
【0053】
具体的に説明すると、図5(b)の暗号化データベースの例で、例えば「state」の項目の中の「Florida」といったデータを検索することが指定された場合には、まず、検索用データとして入力された「Florida」を「state」の列鍵「apple」で暗号化して、「h*/fDD」を得る。この「h*/fDD」といったデータを「state」の列から検索する。これにより、「number2」と「number8」に該当するデータが存在することがわかる。
【0054】
一方、検索対象が行鍵で暗号化されたその他の列項目に該当する場合には、その対象列の各行にあるデータが順次走査され(ステップD12→D16)、指定された行に含まれた対象項目のデータが各行に固有の行鍵によって復号化された後(ステップD17)、前記比較文字列格納エリア16dにセットされた検索用文字列(非暗号化文字列)との比較処理が行われる(ステップD18)。
【0055】
この比較処理では、図4(b)のフローチャートに示すように、データベースから取り出された対象列のデータの復号化文字列と検索用の非暗号化文字列との比較により、両者が一致するか否かを判断する(ステップE11)。両者が一致した場合には(ステップE11のYes)、その一致した項目を含むレコードデータをデータベース検索結果として抽出する(ステップE12)。
【0056】
この処理を暗号化データベースの終端まで繰り返して、該当するデータを順次抽出し(ステップD19)、この抽出したデータを検索結果として出力する(ステップD20)。
【0057】
具体的に説明すると、図5(b)の暗号化データベースの例で、例えば「weight」の項目の中の「163」といったデータを検索することが指定されたとした場合に、まず、「weight」の1行目のデータを「tiger」といった行鍵で復号化する。同様にして、2行目のデータを「dog」,3行目のデータを「cat」,4行目のデータを「mouse」,5行目のデータを「elephant」,6行目のデータを「cow」,7行目のデータを「pig」,8行目のデータを「rabbit」,9行目のデータを「lion」といったように、各行に対応した行鍵を用いて、それぞれ復号化した後に、検索用データとして入力された「163」に基づいて「state」の列から該当するデータを検索する。これにより、「number3」と「number9」に該当するデータが存在することがわかる。
【0058】
このように、データベースを暗号化する際に、検索に利用される所定の列項目については列共通鍵で暗号化し、検索時には、検索用データをその列共通鍵で暗号化してデータベース上の暗号化データと比較することで高速検索を実現できる。また、所定の列項目以外の列項目については各行毎に異なる鍵を与えて暗号化することでセキュリティを高める。この場合、検索時には各行毎の鍵を用いた復号化を必要とするため、前記所定の列項目に対する検索に比べて時間はかかるものの、検索に頻繁に利用される項目ではないので問題にはならない。
【0059】
(第2の実施形態)
前記第1の実施形態では、所定の列項目以外の列項目のデータについては、各行毎に固有の行鍵を用いて暗号化するようにしたが、第2の実施形態では、さらにセキュリティを高めるため、各行毎に固有の行鍵と当該列項目に共通の列鍵とを複合的に用いて暗号化することを特徴とする。
【0060】
図7は第2の実施形態におけるデータベースの構成を示す図であり、図7(a)は暗号化前の状態、同図(b)は暗号化後の状態、同図(c)は復号化後の状態を示している。また、図8は第2の実施形態における合成鍵の構成を示す図である。
【0061】
図7(a)に示すように、本装置では、行と列からなるマトリクス形式のデータベースを備えている。ここでは、個人データをデータベース化した場合を示している。このデータベースは、1レコードが「number」,「name」,「state」,「weight」,「height」,「age」,「phone」の各項目で構成するようにしている。
【0062】
このようなデータベースに対し、合成鍵を用いて暗号化を行う。すなわち、検索に頻繁に利用される列項目を「name」,「state」,「age」とした場合に、これらの列項目の各行のデータについては、図8に示すように、「apple」,「orange」,「lemon」といった各列項目に共通の列鍵を用いて暗号化し、その他の列項目「weight」,「height」,「phone」の各行のデータについては、「banana+行鍵」,「lychee+行鍵」,「apricot+行鍵」といったように、列鍵と行鍵とを組み合わせて暗号化する。
【0063】
なお、「number」の列は暗号化を行わないものとする。行鍵としては、「tiger」,「dog」,「cat」,「mouse」,「elephant」,「cow」,「pig」,「rabbit」,「lion」といった鍵が用いられる。これらの鍵は所定の関数を用いて各列または各行毎に数学的に発生させることができる。
【0064】
図7(a)のデータベースを合成鍵を用いて暗号化した結果を図7(b)に示す。データ記憶装置16のデータベース格納エリア16aには、図7(b)に示すような状態でデータベースが保存されることになる。
【0065】
データベースを検索する場合に、前記第1の実施形態と同様に、検索に利用される列項目に共通の列鍵を用いて検索用データを暗号化してから検索処理を行えば良い。例えば、「state」の中の「Florida」といったデータを検索する場合には、まず、検索用データとして入力された「Florida」を「state」の列鍵「apple」で暗号化して、「h*/fDD」を得る。この「h*/fDD」といったデータを「state」の列の各行から検索する。これにより、「number2」と「number8」に該当するデータが存在することがわかる。
【0066】
また、暗号化されたデータベースを元に戻す場合には、暗号化の時と同じ合成鍵を用いる。図7(b)のデータベースを暗号化の時と同じ合成鍵を用いて復号化すると、図7(c)に示すように元のデータを得ることができる。
【0067】
なお、データベースを暗号化する場合の処理や、暗号化されたデータベースを検索する場合の処理については、所定の列項目以外の列項目の各行のデータに対して列鍵と行鍵を組み合わせて暗号化する点を除いては前記第1の実施形態の処理(図2〜図4)と同様であるため、ここでは、その説明を省略するものとする。
【0068】
このように、検索に頻繁に利用される列項目については、その列項目に共通の列鍵を用いて暗号化することで、前記第1の実施形態と同様に高速検索を実現できるものであり、また、他の列項目については、列鍵と行鍵とを複合的に用いて暗号化することで、さらにセキュリティを強化することができる。
【0069】
(第3の実施形態)
前記第1または第2の実施形態では、本発明を装置単体で構成したが、データベースの保管場所を離間させておき、別の情報端末からネットワークを介して検索を依頼するようなデータベースシステムを構築することも可能である。
【0070】
以下に、このようなデータベースシステムについて説明する。
【0071】
図9は本発明の第3の実施形態に係るデータベースシステムの構成を示すブロック図である。本システムは、第1の端末装置20と第2の端末装置30とを有する。第1の端末装置20と第2の端末装置30とはネットワーク40を介して接続されている。
【0072】
第1の端末装置20は、データベースサービスを行うサーバコンピュータとして用いられるものであって、データベースの検索処理を行う検索装置21と、データベースを保存しておくためのデータ記憶装置22とで構成される。第2の端末装置30は、データベースの検索を第1の端末装置20に依頼し、その結果を第1の端末装置20から受け取るクライアントコンピュータとして用いられるものであって、検索依頼装置31と復号化装置32とで構成される。
【0073】
このようなデータベースシステムにあっては、第1の端末装置20において、図2で説明したように、データベースの所定の列項目の各行のデータを当該列項目に共通の列鍵を用いて暗号化し、その他の列項目の各行のデータについては各行毎に固有の行鍵を用いて暗号化してデータ記憶装置22に保存しておくものとする。
【0074】
ここで、第2の端末装置30から第1の端末装置20に対してデータベースの検索を依頼する際に、図3の検索前処理までを第2の端末装置30側で実行する。すなわち、第2の端末装置30の検索依頼装置31によって、検索対象として入力された列項目が所定の列項目であるか否かを判断し、所定の列項目である場合に、検索用の文字列(キーワード)を当該列項目に共通の列鍵を用いて暗号化する。その他の列項目が検索対象である場合には、このような暗号化は不要である。
【0075】
検索前処理の後、第2の端末装置30から検索用文字列をネットワーク40を介して第1の端末装置20に送る。第1の端末装置20側では、この検索用文字列を受けることにより、図4で説明したような検索処理を実行する。
【0076】
すなわち、第1の端末装置20の検索装置21により、検索対象が所定の列項目か否かを判断し、所定の列項目であれば、第2の端末装置30から取得した検索用文字列(暗号化文字列)とデータ記憶装置22内の暗号化データベースの当該列項目の各行のデータとを比較して、該当するデータを抽出するといった処理を行う。また、検索対象が所定の列項目以外の列項目であれば、データ記憶装置22内の暗号化データベースの当該列項目のデータを各行毎の鍵で復号化してから、第2の端末装置30から取得した検索用文字列(非暗号化文字列)とその復号化された各行のデータとを比較して、該当するデータを抽出するといった処理を行う。
【0077】
このようにして検索結果が得られると、第1の端末装置20はその検索結果として得られたデータを暗号化の状態のままでネットワーク40を介して第2の端末装置30に返信する。第2の端末装置30は、第1の端末装置20と共通の暗号鍵を持っている。したがって、第1の端末装置20から検索結果を受信すると、内部の復号化装置32にて、そのデータを暗号鍵を用いて復号化することができる。この場合、第1の端末装置20と第2の端末装置30との間で、常に暗号化された状態でデータがやり取りされるので、データベースのセキュリティを確保することができる。
【0078】
このように、第1の端末装置20側にデータベースを持たせて、第2の端末装置30からのアクセスによってデータベース検索を行うようにしたデータベースシステムであっても、検索に頻繁に使う列項目のデータを当該列項目に共通の列鍵を用いて暗号化し、その他の列項目のデータについては各行毎に固有の行鍵を用いて暗号化しておくことで、セキュリティを高めると共に高速検索を実現することができる。
【0079】
なお、前記所定の列項目以外の列項目のデータについては、前記第2の実施形態で説明したように、各行毎に固有の行鍵と当該列項目に共通の列鍵とを複合的に用いて暗号化することでも良く、このようにすれば、さらにセキュリティを強化することができる。
【0080】
(暗号化方式)
次に、本発明に適用されるデータベースの暗号化方式について説明する。
【0081】
本発明では、データベースの暗号化アルゴリズムとして多次元空間回転方式(多次元空間ベクトル方式)を用いる。この多次元空間回転方式は、所定の関数に基づいて多次元空間に逐次ベクトルを発生させ、これらのベクトル成分を暗号のキーストリームとするものである。この多次元空間回転方式では、演算能力の低い情報処理装置でも計算できるので、携帯型の端末に適用するのに相応しい。つまり、本発明のデータベースを外部からアクセスするような環境において、データの機密性を保持して処理するためには、このような暗号化方式を採用することが望ましい。
【0082】
以下に、図10および図11を参照して、多次元空間回転方式を用いた暗号化と復号化の処理を示す。
【0083】
図10(a)は多次元空間回転方式を用いた場合での暗号化の処理動作を示すフローチャートである。
【0084】
暗号化の対象となる原データをMとする(ステップF11)。このデータMは、バイナリデータである。まず、このデータMに対してbit単位でスクランブル1をかける(ステップF12)。こうして得られたデータをM´とする(ステップF13)。
【0085】
ここで、このデータM´に数学的に順次生成される乱数をXOR(排他的論理和)して暗号化を行う(ステップF14)。このとき、乱数の発生の関数に多次元ベクトルrを用いることが多次元空間回転方式の特徴である。この場合、多次元ベクトルrを発生させる関数、あるいは、その関数に用いられる定数は暗号化キー(秘密・公開キー)で決定される。
【0086】
すなわち、暗号化に際し、秘密キー(P1 ,P2 )および公開キー(P3 ,P4 )を定数として用いた関数に従って多次元ベクトルrを生成し、M´XOR rといった論理演算を行ってデータM´を暗号化する。こうして得られた暗号データをCとする(ステップF15)。
【0087】
具体的に説明すると、例えば図11に示すように、rが3次元ベクトル(x,y,z)であり、そのベクトル成分x,y,zの計算精度が16bitであるとする。この3次元ベクトルr(x,y,z)を後述する式(1)に従ってr0 ,r1 ,r2 ,r3 …といったように順次発生する。
【0088】
今、データMが8bitデータの並びとして、m0 m1 m2 m3 m4 m5 m6 …と与えられたとき、Mは前記計算精度(16bit)に基づいて、その要素の2つ(8bit)ずつに分解される。そして、3次元ベクトルがr0 である場合には、データMとr0 (x0 ,y0 ,z0 )とのXOR(排他的論理和)により、(x XOR m0 m1 )(y XOR m2 m3 )(z XOR m4 m5 )…といった計算が行われ、この計算結果として、C0 C1 C2 C3 C4 C5 …といった暗号データCが得られる。
【0089】
このようにして得られたデータCに対して、さらにbit単位でスクランブル2をかける(ステップF16)。こうして得られたデータをC´とし、最終的な暗号データとして出力する(ステップF17)。
【0090】
なお、前記の処理で、C´を改めてM´と見なして前記同様の暗号化を繰り返すことによって、復号化の困難さのレベルを上げることができる。また、このときの多次元ベクトルrを生成する関数の形を変えれば、復号化の困難さはさらに増すことになる。
【0091】
次に、復号化の処理動作について説明する。
【0092】
図6(b)は復号化の処理動作を示すフローチャートである。
【0093】
復号化は、基本的には前記暗号化処理の逆の処理を行えば良い。
【0094】
すなわち、暗号データをC´とすると(ステップG11)、まず、このデータCに対してbit単位で前記暗号化時に行ったスクランブル2とは逆のスクランブル2をかける(ステップG12)。これにより、スクランブル2をかける前のデータCが得られる(ステップG13)。
【0095】
次に、C XOR rといった計算を行ってデータCを復号化する(ステップG14)。これにより、暗号化を行う前のデータM´が得られる(ステップG15)。
【0096】
そして、このデータM´に対してもbit単位で前記暗号化時に行ったスクランブル1とは逆のスクランブル1をかける(ステップG12)。これにより、スクランブル1をかける前のデータつまり原データMが得られる(ステップG17)。
【0097】
なお、暗号化の処理で、C´を改めてM´と見なして暗号化を繰り返したり、多次元ベクトルrを生成する関数の形を変えたりする処理が加わっていれば、その処理に対応させて復号化の処理を行うものとする。
【0098】
ところで、多次元ベクトルrを用いた暗号化において、多次元ベクトルrを扱う関数を決定するパラメータ(定数)の集合Pを2つの部分に分けて、
P={Ps ,Pp }
と表わす。ここで、Ps は秘密パラメータであり、暗号化キー(秘密キーP1 ,P2 )に相当する。Pp は公開パラメータであり、暗号化キー(公開キーP3 ,P4 )に相当する。
【0099】
次に、多次元空間回転方式について、さらに詳しく説明する。
【0100】
n(n≧1)次元の空間を張るベクトルをrとし、その初期値r0 から逐次的に新しいベクトルri (i=0,1,2,3…)を発生する関数をRとする。このとき、ri は以下のような式(1)で表わされる。
【0101】
ri =A・R(P,ri-1 )ri-1 +c …(1)
ここで、Aは適当な定数係数である。Pは関数に使用される定数の集合であり、秘密キーP1 ,P2と、公開キーP3 ,P4 が使用される。cはベクトルを並進移動する定数ベクトルである。
【0102】
前記式(1)において、係数Aは関数Rに適当な制約(例えば|R|≦1)を設けたときに、各ベクトルが多次元空間の閉空間領域内に存在するための条件を与える。定数ベクトルcはベクトルri が収斂するとき、「トリビアル」な点 (例えばr=0のような無意味な点)にならないことを保証する(勿論c=0も許される)。
【0103】
n次元空間では、ベクトルrはn個の要素を持つ。r=(x1 ,x2 …xn )。計算機上では、数値データ一般に、コンパイラが定義するビット長(m)の精度(例えば8バイト又は64ビット)で表現されている。したがって、ベクトルの逐次生成法のある瞬間にn×mのデータの精度でベクトルrを再現できないと、それに続くベクトルrは正確には再現できない(あるいはそうなるような関数Rを定義する)。これは、ベクトルrの初期値r0 についても同様で、初期値r0 をn×mのデータの精度で再現したときにのみ、それに続くベクトルr1 ,r2 ,r3 …の再現性が保証される。
【0104】
前記式(1)を用いて得られたベクトルrの成分を、そのデータ定義長に応じて1個乃至複数個並べて、その総ビット長に対応した文字列(1文字あたり8ビットが普通)とビット毎の排他論理演算(XOR)を行う。これを第1暗号化とする。これについては、前記図11で述べた通りある。
【0105】
この手続きは暗号解読への対策となる。この場合、再度式(1)、関数Rを変えてて新しいベクトルを発生させ、第1暗号化と同じ手法により暗号化を行っても良い。これを第2暗号化とする。
【0106】
具体的な例として、n=2の場合を考える。
【0107】
まず、ri-1 をこの平面に立てた法線の周りにθだけが回転する演算として、Rを定義すれば、Rは2×2のマトリックスとなり、次のように表わされる。
【0108】
【数1】
【0109】
この場合、θは一種の媒介変数となっている。すなわち、媒介変数がri-1 の関数として与えられ、
θ(r)=f(P,r) …(3)
で表わされるとき、前記式(2)で表わされる変換は、形式的に前記式(1)で表わされる。
【0110】
なお、前記式(3)において、Pは関数fに使われる定数の集合として定義されるものであり、秘密キーP1 ,P2と、公開キーP3 ,P4 が使用される。
【0111】
このように、逐次的に発生させた多次元空間を張るベクトルrを暗号化に使うことで、RSAのような暗号化に比べ、計算機の処理精度や処理能力に依存しない暗号化を実現できる。
【0112】
さて、このような多次元空間回転方式を本発明のデータベースの暗号化に適用する場合には、行鍵と列鍵を
r′=A・R(P,r)r +c …(4)
の関数RのPとして利用する。前記式(4)のPは関数Rに使用される定数の集合である。本発明の場合には、「apple」,「orange」,「lemon」等を秘密キーとして用いる。すなわち、前記の説明では、秘密キーとしてP1 ,P2と定めているので、例えば「apple」を秘密キーとする場合には、P1を「ap」、P2を「ple」とする。なお、これは一例であり、鍵の設定の仕方はこれに限らず、いろいろな組み合わせが考えられる。
【0113】
このように、多次元空間回転方式を本発明のデータベースの暗号化に適用する場合には、行鍵と列鍵を多次元空間回転方式の所定の関数の定数成分として用いる。これにより、高精度の演算能力を必要とせずに、解読困難な暗号結果を得ることができる。
【0114】
なお、多次元空間回転方式では、次元数が大きくなると、回転行列R(関数)の要素も多くなり、暗号化/復号化時の演算負荷が大きくなる問題がある。このような問題を解消する方法として、多次元空間回転方式を用いた暗号化方式における多次元空間回転行列を次数の少ない疑似空間回転行列に置き換えて計算する方法がある。
【0115】
具体的に説明すると、例えば、6次元空間における回転行列Rの要素は、式(5)のようになり、計算量が膨大に増える。
【0116】
【数2】
【0117】
そこで、このような回転行列Rを疑似回転行列Qに置き換えて計算する。疑似回転行列Qは、次数の少ない空間回転行列の要素を対角に配置し、残りの要素を0とした擬似的な行列である。例えば、6次元空間の場合には、式(6)のような疑似回転行列Qを用いる。
【0118】
【数3】
【0119】
なお、式(6)において、A,Bは3次元回転行列である。
【0120】
この疑似回転行列Qと前記回転行列Rの要素を比較して見ると、Qの要素には0が多く、計算量が少なくて済む。しかも、暗号化としての機能も十分に果たす。一般的には、式(7)のように、多次元空間回転行列Qを設定すれば良い。
【0121】
【数4】
【0122】
このように、多次元空間回転方式における回転行列を次元数の少ない複数の回転行列の要素を対角に配置し、残りを0要素とした疑似回転行列に置き換えて計算することで、計算量を大幅に減らして速やかに暗号化または復号化の処理を実行することができる。
【0123】
また、別の方法として、
P=S・Q・ST …(8)
として得られるPを新たな疑似空間回転行列として用いても良い。
【0124】
式(8)において、Qは前記疑似回転行列である。Sは置換行列であり、式(9)のように、各行各列に1の要素が1つ含まれた正方行列である。
【0125】
【数5】
【0126】
例えば、疑似回転行列Qが前記式(6)で表現される場合(6次元の場合)には、疑似空間回転行列Pは、式(10)のように表せる。
【0127】
【数6】
【0128】
これは、置換行列Sが式(11)のような場合である。
【0129】
【数7】
【0130】
このように、多次元空間回転方式における回転行列を次元数の少ない複数の回転行列の要素を対角に配置し、残りを0要素とした疑似回転行列に置換行列を組み合わせてできる新たな疑似回転行列に置き換えて計算すれば、計算の行程が複雑化するため、暗号の解読をさらに困難なものにできる。
【0131】
【発明の効果】
以上詳記したように本発明によれば、データベースを暗号化する際に、検索に利用される列項目のデータについては当該列項目に対応する列鍵を用いて各レコード共通に暗号化し、その他のデータについては項目に対応する列鍵と各行に対応する行鍵とを組み合わせた鍵を用いて暗号化するようにしたため、セキュリティを高めることができ、検索時には、検索用として入力されたデータを前記所定の列項目の列鍵を用いて暗号化し、その暗号化された検索用データと暗号化データベースとを比較することで高速検索を実現することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るデータベース管理装置の構成を示す図。
【図2】前記データベース管理装置にて実行されるデータベース暗号化処理の動作を示すフローチャート。
【図3】前記データベース管理装置にて実行されるデータベース検索処理の動作を示すフローチャート。
【図4】前記図3のステップB13の検索処理の動作を具体的に示すフローチャート。
【図5】第1の実施形態におけるデータベースの構成を説明するための図であり、図5(a)は暗号化前の状態、同図(b)は暗号化後の状態、同図(c)は復号化後の状態を示す図。
【図6】第1の実施形態における列鍵と行鍵の構成を示す図。
【図7】本発明の第2の実施形態におけるデータベースの構成を示す図であり、図7(a)は暗号化前の状態、同図(b)は暗号化後の状態、同図(c)は復号化後の状態を示す図。
【図8】第2の実施形態における合成鍵の構成を示す図。
【図9】本発明の第3の実施形態に係るデータベースシステムの構成を示すブロック図。
【図10】多次元空間回転方式を用いた場合での暗号化処理と復号化処理の動作を示すフローチャート。
【図11】多次元空間回転方式を用いた場合での暗号化の演算方法を説明するための図。
【符号の説明】
11…CPU
12…表示装置
13…入力装置
14…プログラム記憶装置
15…鍵記憶装置
16…データ記憶装置
16a…データベース格納エリア
16b…暗号化設定情報格納エリア
16c…検索設定情報格納エリア
16d…比較文字列格納エリア
20…第1の端末装置
21…検索装置
22…データ記憶装置
30…第2の端末装置
31…検索依頼装置
32…復号化装置[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a database system in which a database management device for encrypting and managing a database and a search device having an encrypted database are arranged on a network.as well asThe present invention relates to a recording medium.
[0002]
[Prior art]
A database management apparatus is required to encrypt and store a database held as a management target in order to ensure the security of the database.
[0003]
Here, in order to increase security, it can be realized by performing more complicated encryption processing, but complicated encryption processing inevitably increases the time required for calculation.
[0004]
The database has an enormous amount of data, and the data search is a process of selecting items that meet a condition for a certain item from those data and outputting a record (row data) including item data that meets the condition. Therefore, in a data search system that handles a large amount of data, an increase in calculation time causes deterioration in processing efficiency.
[0005]
[Problems to be solved by the invention]
As described above, there is a security requirement for a database storing highly confidential data, and there is a problem that the encryption processing for increasing security hinders the usability of the database.
[0006]
The present invention has been made in order to solve the above-described problems. A database management apparatus and a database system that ensure database security and enable high-speed data retrieval.as well asAn object is to provide a recording medium.
[0007]
[Means for Solving the Problems]
The database management apparatus according to the present invention has one record.Predetermined search target items used for search and other itemsDatabase storage means for storing a database of items, a key used for database encryption, a column key corresponding to each item, and each rowCorresponding toKey generation means for generating a row key, and each record in the database of the database storage means,SaidThe data of the search target item is encrypted in common using the column key corresponding to the item,SaidFor other item data, column key and each row corresponding to the itemCorresponding toAn encryption means for encrypting using a key combined with a row key; andSearch for items to searchData entered for searchIn the item concernedAnd database search means for performing a search process by encrypting using the corresponding column key and comparing the encrypted search data with the data of the encrypted database stored in the storage means. And
[0008]
The database system according to the present invention includes a first information terminal having a database and a second information terminal that requests the first information terminal to search the database, and connects these via a network. In the database system, the first information terminal has one record.Predetermined search target items used for search and other itemsDatabase storage means for storing a database of items, a key used for database encryption, a column key corresponding to each item, and each rowCorresponding toKey generation means for generating a row key, and each record in the database of the database storage means,SaidThe data of the search target item is encrypted in common using the column key corresponding to the item,SaidFor other item data, column key and each row corresponding to the itemCorresponding toEncryption means for encrypting using a key combined with a row key, and the second information terminal comprises:About the predetermined search target itemWhen requesting a database search, data input for search is encrypted using a column key corresponding to the item, and the encrypted search data is sent to the first information via the network. Search request means for sending to the terminal, wherein the first information terminal performs a search process of the encrypted database based on the search data, and the data obtained as a result of the search is encrypted. A reply is made to the second information terminal via the network.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0014]
(First embodiment)
FIG. 1 is a diagram showing a configuration of a database management apparatus according to the first embodiment of the present invention. This device has a matrix-format database consisting of rows and columns, and has a function of encrypting and managing the database, encrypting the input search data, and based on the encrypted search data The computer has a function of searching a database, and is realized by a computer that reads a program recorded on a recording medium such as a magnetic disk and whose operation is controlled by the program.
[0015]
As shown in FIG. 1, this apparatus includes a
[0016]
The
[0017]
The
[0018]
The
[0019]
Note that the
[0020]
The
[0021]
The
[0022]
Here, before describing the operation of the present apparatus, a database encryption method realized by the present apparatus will be described.
[0023]
If the database is encrypted using a different key for each row (each record), it becomes difficult to decrypt the key and security can be improved. However, when searching the database, the encrypted data must be decrypted with the key for each row, or the data (keyword) input for retrieval must be encrypted with the key for each row. , It will take time to get search results. On the other hand, if the database is encrypted using a different key for each column, it is only necessary to encrypt the search data using only the key corresponding to the column item to be searched, so that the database search can be performed at high speed. . However, if there is the same data in the same column, the encryption result will be the same, so there is a high possibility that the key will be decrypted from there.
[0024]
Therefore, in the present invention, when encrypting a database, column item data frequently used for retrieval is encrypted with a column common key, and other column item data is assigned a different key for each row. It is characterized by encryption. In other words, different keys are used for each row to increase security, and at the time of searching, the data entered in the items used for searching is encrypted with the column key and compared with the encrypted data in the database. Is possible.
[0025]
FIG. 5 is a diagram for explaining the configuration of the database according to the first embodiment. FIG. 5A is a state before encryption, FIG. 5B is a state after encryption, and FIG. Indicates the state after decryption. FIG. 6 is a diagram showing the configuration of the column key and row key in the first embodiment.
[0026]
As shown in FIG. 5 (a), the present apparatus includes a matrix database composed of rows and columns. Here, a case where personal data is made into a database is shown. In this database, one record is composed of items “number”, “name”, “state”, “weight”, “height”, “age”, and “phone”.
[0027]
Such a database is encrypted using a column key and a row key. That is, when column items frequently used for retrieval are “name”, “state”, and “age”, the data of each row of these column items is “apple”, Encryption is performed using a common column key for each column item such as “orange” and “lemon”, and the data in each row of the other column items “weight”, “height”, and “phone” is a unique key for each row. Encrypt using.
[0028]
It is assumed that the “number” column is not encrypted. As the row key, keys such as “tiger”, “dog”, “cat”, “mouse”, “elephant”, “cow”, “pig”, “rabbit”, “lion” are used. These keys can be generated mathematically for each column or row using a predetermined function.
[0029]
FIG. 5B shows the result of encrypting the database of FIG. 5A using the column key and the row key. The database is stored in the
[0030]
When searching the database, the search processing is performed after the search data is encrypted using the column key corresponding to the column item used for the search. For example, when searching for data such as “Florida” in “state”, first, “Florida” input as search data is encrypted with the column key “apple” of “state” and “h *” / FDD ". Data such as “h * / fDD” is searched from each row of the “state” column. As a result, it can be seen that there is data corresponding to “number2” and “number8”.
[0031]
Also, when restoring the encrypted database, the same column key and row key as in the encryption are used. When the database in FIG. 5B is decrypted using the same column key and row key as in the encryption, the original data can be obtained as shown in FIG.
[0032]
The operation of this apparatus will be described below.
[0033]
Here, (a) the process for encrypting the database and (b) the process for searching the database will be described separately. A program for realizing each function shown in this flowchart is stored in a recording medium of the
[0034]
(A) When encrypting a database
FIG. 2 is a flowchart showing the operation of the database encryption processing executed in this apparatus. Assume that the database is stored in the
[0035]
First, a database to be encrypted is specified on a database encryption setting screen (not shown) (step A11).
[0036]
Next, among the column items provided in the database, a column item used for search and a column item that does not require encryption are set (step A12). In the example of FIG. 5A, the column items used for the search are “name”, “state”, and “age”, and the column item that does not require encryption is “number”. The setting information here is stored in the encryption setting
[0037]
Next, a row key and a column key used for encryption of the database are determined (step A13). The row key and column key information determined here is stored in the
[0038]
After such setting operation, when each column item in the database is sequentially designated (step A14), the encryption method for the designated column item is determined based on the setting information (step A15). ). In this case, the column item “number” in the database is set as an unencrypted item, so nothing is done. That is, the item “number” remains as the original data.
[0039]
If the designated column item is set as a column item used for the search, a column key common to the column item stored in the
[0040]
If the designated column item is not set as a column item to be used for the search, that is, if it is another column item, the row key corresponding to each row stored in the
[0041]
Such encryption processing is repeated for each column item in the database. When the encryption of the data in each row of all the column items is completed, the encrypted database is overwritten and saved in the
[0042]
(B) When searching the database
FIG. 3 is a flowchart showing the operation of the database search process executed by this apparatus. Now, it is assumed that the database is encrypted and stored in the
[0043]
First, as shown in the flowchart of FIG. 3A, search information is input on a database search setting screen (not shown) (step B11). The input of search information means inputting a column item to be searched and a character string (keyword) for search. These pieces of input information are stored in the search setting
[0044]
In this search pre-processing, as shown in the flowchart of FIG. 3B, it is determined whether or not the column item input as a search target is a predetermined column item (step C11), and is a predetermined column item. If it is found (Yes in step C11), the search character string is encrypted with a common column key for the column item (step C12).
[0045]
The predetermined column item is a search target item (item used for search) set at the time of encrypting the database. Specifically, each item of “name”, “state”, and “age” is applicable. To do. Information about the search target item is stored in the encryption setting
[0046]
If the column item input as the search target is not a predetermined column item (No in step C11), the search character string is not encrypted as described above.
[0047]
After such pre-search processing, database search processing (see FIG. 4) is performed (step B13), and data obtained as a result of the search is displayed on the display device 12 (step B14). FIG. 4 shows a database search process.
[0048]
FIG. 4 is a flowchart specifically showing the search processing operation of step B13.
[0049]
First, as shown in the flowchart of FIG. 4A, the search character string is set in the comparison character
[0050]
Next, the encryption method based on the column number of the encrypted database stored in the
[0051]
In this comparison process, as shown in the flowchart of FIG. 4B, the encrypted character string of the data of the target item retrieved from the database is compared with the encrypted character string for search, and the two match. It is determined whether or not (step E11). If they match (Yes in step E11), record data including the matched item is extracted as a database search result (step E12).
[0052]
This process is repeated until the end of the encrypted database, and the corresponding data is sequentially extracted (step D15), and the extracted data is output as a search result (step D20).
[0053]
More specifically, in the example of the encrypted database in FIG. 5B, when it is specified to search for data such as “Florida” in the “state” item, first, the search data The “Florida” input as is encrypted with the “state” column key “apple” to obtain “h * / fDD”. Data such as “h * / fDD” is searched from the column “state”. As a result, it can be seen that there is data corresponding to “number2” and “number8”.
[0054]
On the other hand, when the search target corresponds to another column item encrypted with the row key, the data in each row of the target column is sequentially scanned (step D12 → D16) and included in the designated row. After the data of the target item is decrypted with the row key unique to each row (step D17), the comparison processing with the search character string (unencrypted character string) set in the comparison character
[0055]
In this comparison process, as shown in the flowchart of FIG. 4B, whether the two match by comparing the decrypted character string of the data in the target column retrieved from the database with the unencrypted character string for search. It is determined whether or not (step E11). If they match (Yes in step E11), record data including the matched item is extracted as a database search result (step E12).
[0056]
This process is repeated until the end of the encrypted database, and the corresponding data is sequentially extracted (step D19), and the extracted data is output as a search result (step D20).
[0057]
More specifically, in the example of the encrypted database in FIG. 5B, when it is designated to search for data such as “163” in the item “weight”, first, “weight” The first row of data is decrypted with a row key such as “tiger”. Similarly, the data on the second line is “dog”, the data on the third line is “cat”, the data on the fourth line is “mouse”, the data on the fifth line is “elephant”, and the data on the sixth line is Decrypt using the row key corresponding to each row, such as “cow”, the seventh row data “pig”, the eighth row data “rabit”, and the ninth row data “lion”. After that, the corresponding data is searched from the “state” column based on “163” input as the search data. As a result, it is understood that data corresponding to “number3” and “number9” exists.
[0058]
In this way, when encrypting the database, the predetermined column items used for the search are encrypted with the column common key, and during the search, the search data is encrypted with the column common key and encrypted on the database. High-speed search can be realized by comparing with data. In addition, column items other than the predetermined column items are encrypted by giving a different key for each row to enhance security. In this case, since the decryption using the key for each row is required at the time of retrieval, it takes time compared with the retrieval for the predetermined column item, but it is not a problem because it is not an item frequently used for the retrieval. .
[0059]
(Second Embodiment)
In the first embodiment, the data of column items other than the predetermined column item is encrypted using a unique row key for each row. However, in the second embodiment, security is further improved. Therefore, encryption is performed using a composite row key unique to each row and a column key common to the column item.
[0060]
FIG. 7 is a diagram showing the structure of the database in the second embodiment. FIG. 7A shows a state before encryption, FIG. 7B shows a state after encryption, and FIG. 7C shows decryption. The later state is shown. FIG. 8 is a diagram showing the composition of the composite key in the second embodiment.
[0061]
As shown in FIG. 7 (a), this apparatus includes a matrix database composed of rows and columns. Here, a case where personal data is made into a database is shown. In this database, one record is composed of items “number”, “name”, “state”, “weight”, “height”, “age”, and “phone”.
[0062]
Such a database is encrypted using a composite key. That is, when column items frequently used for retrieval are “name”, “state”, and “age”, the data of each row of these column items is “apple”, The column items such as “orange” and “lemon” are encrypted using a common column key, and the data of each row of the other column items “weight”, “height”, “phone” is “banana + row key”, Encryption is performed by combining a column key and a row key, such as “lychee + row key” and “apricot + row key”.
[0063]
It is assumed that the “number” column is not encrypted. As the row key, keys such as “tiger”, “dog”, “cat”, “mouse”, “elephant”, “cow”, “pig”, “rabbit”, “lion” are used. These keys can be generated mathematically for each column or row using a predetermined function.
[0064]
FIG. 7B shows the result of encrypting the database of FIG. 7A using the synthetic key. The database is stored in the
[0065]
When searching the database, as in the first embodiment, the search processing may be performed after the search data is encrypted using a common column key for the column items used for the search. For example, when searching for data such as “Florida” in “state”, first, “Florida” input as search data is encrypted with the column key “apple” of “state” and “h *” / FDD ". Data such as “h * / fDD” is searched from each row of the “state” column. As a result, it can be seen that there is data corresponding to “number2” and “number8”.
[0066]
Further, when restoring the encrypted database, the same composite key as that used for encryption is used. When the database shown in FIG. 7B is decrypted using the same synthetic key as that used for encryption, the original data can be obtained as shown in FIG. 7C.
[0067]
As for the process for encrypting the database and the process for searching the encrypted database, the column key and the row key are combined for the data of each row of the column items other than the predetermined column item. Since the processing is the same as the processing of the first embodiment (FIGS. 2 to 4) except for the points to be changed, the description thereof is omitted here.
[0068]
As described above, the column item frequently used for the search can be encrypted by using a common column key for the column item, so that the high-speed search can be realized as in the first embodiment. In addition, the other column items can be further strengthened by encrypting them using the column key and the row key in combination.
[0069]
(Third embodiment)
In the first or second embodiment, the present invention is configured as a single device, but a database system is constructed in which a database storage location is separated and a search is requested from another information terminal via a network. It is also possible to do.
[0070]
Hereinafter, such a database system will be described.
[0071]
FIG. 9 is a block diagram showing a configuration of a database system according to the third embodiment of the present invention. The system includes a first
[0072]
The first
[0073]
In such a database system, as described with reference to FIG. 2, the first
[0074]
Here, when the second
[0075]
After the pre-search process, the search character string is sent from the second
[0076]
That is, the
[0077]
When the search result is obtained in this way, the first
[0078]
Thus, even in a database system in which a database is provided on the first
[0079]
For data of column items other than the predetermined column item, a unique row key for each row and a column key common to the column item are used in combination as described in the second embodiment. This can be encrypted, and in this way, security can be further enhanced.
[0080]
(Encryption method)
Next, a database encryption method applied to the present invention will be described.
[0081]
In the present invention, a multidimensional space rotation method (multidimensional space vector method) is used as an encryption algorithm for a database. In this multidimensional space rotation method, vectors are sequentially generated in a multidimensional space based on a predetermined function, and these vector components are used as encryption key streams. This multi-dimensional space rotation method can be calculated even by an information processing device with low calculation capability, and is suitable for application to a portable terminal. In other words, it is desirable to employ such an encryption method in order to maintain and process data confidentiality in an environment where the database of the present invention is accessed from the outside.
[0082]
Hereinafter, with reference to FIGS. 10 and 11, encryption and decryption processing using the multidimensional spatial rotation method will be described.
[0083]
FIG. 10A is a flowchart showing an encryption processing operation when the multidimensional spatial rotation method is used.
[0084]
The original data to be encrypted is set to M (step F11). This data M is binary data. First,
[0085]
Here, the data M ′ is encrypted by XOR (exclusive OR) random numbers generated mathematically sequentially (step F14). At this time, the feature of the multidimensional spatial rotation method is that the multidimensional vector r is used as a random number generation function. In this case, the function for generating the multidimensional vector r or the constant used for the function is determined by the encryption key (secret / public key).
[0086]
In other words, the secret key (P1, P2) And public key (PThree, PFour) As a constant, a multidimensional vector r is generated, and a logical operation such as M′XOR r is performed to encrypt data M ′. The encrypted data thus obtained is set as C (step F15).
[0087]
Specifically, for example, as shown in FIG. 11, it is assumed that r is a three-dimensional vector (x, y, z) and the calculation accuracy of the vector components x, y, z is 16 bits. This three-dimensional vector r (x, y, z) is expressed as r according to the equation (1) described later.0, R1, R2, RThree... and so on.
[0088]
Now, if the data M is an array of 8-bit data, m0m1m2mThreemFourmFivem6... is given, M is decomposed into two (8 bits) of its elements based on the calculation accuracy (16 bits). And the three-dimensional vector is r0The data M and r0(X0, Y0, Z0) And XOR (exclusive OR) with (x XOR m0m1) (Y XOR m2mThree) (Z XOR mFourmFive) ... and the result of this calculation is C0C1C2CThreeCFourCFiveEncryption data C such as... Is obtained.
[0089]
The data C obtained in this way is further scrambled 2 in bit units (step F16). The data thus obtained is set as C ′ and output as final encrypted data (step F17).
[0090]
In the above process, it is possible to raise the level of difficulty of decryption by reiterating the same encryption as above by regarding C ′ as M ′. If the form of the function that generates the multidimensional vector r at this time is changed, the difficulty of decoding will further increase.
[0091]
Next, the decoding processing operation will be described.
[0092]
FIG. 6B is a flowchart showing the decoding processing operation.
[0093]
For the decryption, basically, the reverse process of the encryption process may be performed.
[0094]
That is, assuming that the encrypted data is C ′ (step G11), first,
[0095]
Next, a calculation such as C XOR r is performed to decode the data C (step G14). Thereby, the data M ′ before encryption is obtained (step G15).
[0096]
The data M ′ is also scrambled 1 in units of bits opposite to the
[0097]
In addition, in the encryption process, if C ′ is re-recognized as M ′ and encryption is repeated, or if the process of changing the shape of the function for generating the multidimensional vector r is added, it is made to correspond to that process. It is assumed that decryption processing is performed.
[0098]
By the way, in the encryption using the multidimensional vector r, the set P of parameters (constants) for determining the function that handles the multidimensional vector r is divided into two parts.
P = {Ps, Pp}
It expresses. Where PsIs a secret parameter and the encryption key (secret key P1, P2). PpIs a public parameter and the encryption key (public key PThree, PFour).
[0099]
Next, the multidimensional space rotation method will be described in more detail.
[0100]
Let r be a vector spanning a space of n (n ≧ 1) dimensions, and its initial value r0New vector r sequentially fromiLet R be a function that generates (i = 0, 1, 2, 3,...). At this time, riIs represented by the following formula (1).
[0101]
ri= AR (P, ri-1) Ri-1+ C (1)
Here, A is an appropriate constant coefficient. P is a set of constants used for the function and the secret key P1, P2And public key PThree, PFourIs used. c is a constant vector that translates the vector.
[0102]
In the equation (1), the coefficient A gives a condition for each vector to exist in the closed space region of the multidimensional space when an appropriate constraint (for example, | R | ≦ 1) is provided for the function R. The constant vector c is the vector riEnsures that it does not become a “trivial” point (eg, a pointless point such as r = 0) (of course c = 0 is also allowed).
[0103]
In the n-dimensional space, the vector r has n elements. r = (x1, X2... xn). On a computer, numerical data is generally expressed with a precision (for example, 8 bytes or 64 bits) of a bit length (m) defined by a compiler. Therefore, if the vector r cannot be reproduced with the accuracy of n × m data at a certain moment in the vector sequential generation method, the subsequent vector r cannot be accurately reproduced (or a function R is defined so). This is the initial value r of the vector r0The same applies to the initial value r.0Followed by the vector r only when it is reproduced with the accuracy of n × m data1, R2, RThreeReproducibility of ... is guaranteed.
[0104]
One or a plurality of components of the vector r obtained by using the equation (1) are arranged according to the data definition length, and a character string corresponding to the total bit length (usually 8 bits per character) and A bitwise exclusive logic operation (XOR) is performed. This is the first encryption. This is as described in FIG.
[0105]
This procedure is a countermeasure against decryption. In this case, the expression (1) and the function R may be changed again to generate a new vector, and encryption may be performed by the same method as the first encryption. This is the second encryption.
[0106]
As a specific example, consider the case of n = 2.
[0107]
First, ri-1If R is defined as an operation in which only θ is rotated around a normal line standing on this plane, R becomes a 2 × 2 matrix and is expressed as follows.
[0108]
[Expression 1]
[0109]
In this case, θ is a kind of parameter. That is, the parameter is ri-1Given as a function of
θ (r) = f (P, r) (3)
The transformation represented by the formula (2) is formally represented by the formula (1).
[0110]
In Equation (3), P is defined as a set of constants used for the function f, and the secret key P1, P2And public key PThree, PFourIs used.
[0111]
In this way, by using the vector r extending the sequentially generated multidimensional space for encryption, encryption independent of the processing accuracy and processing capacity of the computer can be realized as compared with encryption such as RSA.
[0112]
Now, when such a multidimensional space rotation method is applied to the encryption of the database of the present invention, the row key and the column key are
r ′ = A · R (P, r) r + C (4)
Is used as P of the function R. P in the equation (4) is a set of constants used for the function R. In the present invention, “apple”, “orange”, “lemon”, etc. are used as the secret key. That is, in the above description, P is used as the secret key.1, P2For example, when “apple” is used as a secret key, P1"Ap", P2Is “ple”. This is an example, and the method of setting the key is not limited to this, and various combinations are conceivable.
[0113]
As described above, when the multidimensional space rotation method is applied to the encryption of the database of the present invention, the row key and the column key are used as constant components of a predetermined function of the multidimensional space rotation method. As a result, it is possible to obtain a cryptographic result that is difficult to decipher without requiring high-precision computing capability.
[0114]
In the multidimensional space rotation method, when the number of dimensions increases, the number of elements of the rotation matrix R (function) increases, and there is a problem that the calculation load during encryption / decryption increases. As a method for solving such a problem, there is a method of calculating by replacing the multidimensional spatial rotation matrix in the encryption system using the multidimensional spatial rotation system with a pseudo-space rotation matrix having a low degree.
[0115]
More specifically, for example, the elements of the rotation matrix R in the 6-dimensional space are as shown in Expression (5), and the amount of calculation increases enormously.
[0116]
[Expression 2]
[0117]
Therefore, such a rotation matrix R is replaced with a pseudo rotation matrix Q for calculation. The pseudo rotation matrix Q is a pseudo matrix in which elements of a spatial rotation matrix with a low degree are arranged diagonally and the remaining elements are set to zero. For example, in the case of a 6-dimensional space, a pseudo rotation matrix Q as shown in Expression (6) is used.
[0118]
[Equation 3]
[0119]
In Equation (6), A and B are three-dimensional rotation matrices.
[0120]
Comparing the elements of the pseudo rotation matrix Q and the rotation matrix R, the element of Q has a large number of 0, and the amount of calculation is small. In addition, the function as an encryption is sufficiently fulfilled. In general, a multidimensional spatial rotation matrix Q may be set as shown in Expression (7).
[0121]
[Expression 4]
[0122]
In this way, by calculating the rotation matrix in the multi-dimensional spatial rotation method by replacing the elements of a plurality of rotation matrices with a small number of dimensions diagonally and replacing them with a pseudo rotation matrix with the remaining 0 elements, the amount of calculation is reduced. Encryption or decryption processing can be executed promptly with a significant reduction.
[0123]
Alternatively,
P = S ・ Q ・ ST ... (8)
P obtained as follows may be used as a new pseudo-space rotation matrix.
[0124]
In Equation (8), Q is the pseudo rotation matrix. S is a permutation matrix, and is a square matrix in which one element is included in each row and column, as in Equation (9).
[0125]
[Equation 5]
[0126]
For example, when the pseudo rotation matrix Q is expressed by the above equation (6) (in the case of 6 dimensions), the pseudo space rotation matrix P can be expressed by the following equation (10).
[0127]
[Formula 6]
[0128]
This is the case where the permutation matrix S is as in equation (11).
[0129]
[Expression 7]
[0130]
In this way, a new pseudo-rotation can be created by combining the rotation matrix in the multi-dimensional spatial rotation method with multiple rotation matrix elements with a small number of dimensions diagonally and combining the permutation matrix with a pseudo-rotation matrix with the rest as 0 elements. If the calculation is performed by replacing with a matrix, the calculation process becomes complicated, so that the decryption of the code can be made more difficult.
[0131]
【The invention's effect】
As described above in detail, according to the present invention, when encrypting a database, the column item data used for the search is encrypted in common with each record using the column key corresponding to the column item. Corresponds to the item forEncryption is performed using a key that combines the column key and the row key corresponding to each row.Security can be enhanced, and at the time of search, data input for search is encrypted using the column key of the predetermined column item, and the encrypted search data is compared with the encrypted database. High-speed search can be realized.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of a database management apparatus according to a first embodiment of the present invention.
FIG. 2 is a flowchart showing an operation of database encryption processing executed by the database management apparatus.
FIG. 3 is a flowchart showing an operation of a database search process executed by the database management apparatus.
FIG. 4 is a flowchart specifically showing the search processing operation in step B13 of FIG. 3;
5A and 5B are diagrams for explaining the configuration of a database according to the first embodiment. FIG. 5A is a state before encryption, FIG. 5B is a state after encryption, and FIG. ) Is a diagram showing a state after decoding.
FIG. 6 is a diagram showing a configuration of column keys and row keys in the first embodiment.
7A and 7B are diagrams showing the configuration of a database according to the second embodiment of the present invention. FIG. 7A shows a state before encryption, FIG. 7B shows a state after encryption, and FIG. ) Is a diagram showing a state after decoding.
FIG. 8 is a diagram showing a composition of a composite key in the second embodiment.
FIG. 9 is a block diagram showing a configuration of a database system according to a third embodiment of the present invention.
FIG. 10 is a flowchart showing operations of encryption processing and decryption processing when a multidimensional spatial rotation method is used.
FIG. 11 is a diagram for explaining an encryption calculation method when a multidimensional space rotation method is used.
[Explanation of symbols]
11 ... CPU
12 ... Display device
13 ... Input device
14 ... Program storage device
15 ... Key storage device
16: Data storage device
16a ... Database storage area
16b ... Encryption setting information storage area
16c ... Search setting information storage area
16d: Comparison character string storage area
20 ... 1st terminal device
21 ... Search device
22 Data storage device
30: Second terminal device
31 ... Search request device
32. Decoding device
Claims (3)
データベースの暗号化に用いる鍵であって、各項目に対応する列鍵と、各行に対応する行鍵とを生成する鍵生成手段と、
前記データベース記憶手段のデータベースの各レコードについて、前記検索対象項目のデータは当該項目に対応する列鍵を用いて共通に暗号化し、前記その他の項目のデータについては当該項目に対応する列鍵と各行に対応する行鍵とを組み合わせた鍵を用いて暗号化する暗号化手段と、
前記検索対象項目を検索する場合に、検索用として入力されたデータを当該項目に対応する列鍵を用いて暗号化し、その暗号化された検索用データと前記記憶手段に記憶された暗号化データベースのデータとを比較して検索処理を行うデータベース検索手段と
を具備したことを特徴とするデータベース管理装置。Database storage means for storing a database consisting of a predetermined search target item and other items in which one record is used for search ;
A key used to encrypt the database, a column key corresponding to each item, and the key generation means for generating a Gyokagi for each row,
For each record in the database of the database storage means, the retrieval data of the target item is encrypted in common with columns key corresponding to the item, the column key and each row corresponding to the item for other items of data Encryption means for encryption using a key combined with a row key corresponding to
When searching for the search target item, the data input for search is encrypted using a column key corresponding to the item , the encrypted search data and the encrypted database stored in the storage means A database management device comprising: database search means for performing a search process by comparing with the data.
前記第1の情報端末は、
1つのレコードが検索に利用される所定の検索対象項目とその他の項目からなるデータベースを記憶するデータベース記憶手段と、
データベースの暗号化に用いる鍵であって、各項目に対応する列鍵と、各行に対応する行鍵とを生成する鍵生成手段と、
前記データベース記憶手段のデータベースの各レコードについて、前記検索対象項目のデータは当該項目に対応する列鍵を用いて共通に暗号化し、前記その他の項目のデータについては当該項目に対応する列鍵と各行に対応する行鍵とを組み合わせた鍵を用いて暗号化する暗号化手段とを有し、
前記第2の情報端末は、
前記所定の検索対象項目についてデータベースの検索を依頼する際に、検索用として入力されたデータを当該項目に対応する列鍵を用いて暗号化して、その暗号化された検索用データを前記ネットワークを介して前記第1の情報端末に送る検索依頼手段を有し、
前記第1の情報端末は、前記検索用データに基づいて前記暗号化データベースの検索処理を行い、その検索結果として得られたデータを暗号化された状態で前記ネットワークを介して前記第2の情報端末に返信することを特徴とするデータベースシステム。In a database system having a first information terminal having a database and a second information terminal requesting the first information terminal to search the database, and connecting them via a network,
The first information terminal is
Database storage means for storing a database consisting of a predetermined search target item and other items in which one record is used for search ;
A key used to encrypt the database, a column key corresponding to each item, and the key generation means for generating a Gyokagi for each row,
For each record in the database of the database storage means, the retrieval data of the target item is encrypted in common with columns key corresponding to the item, the column key and each row corresponding to the item for other items of data Encrypting means using a key combined with a row key corresponding to
The second information terminal is
When requesting a database search for the predetermined search target item, data input for search is encrypted using a column key corresponding to the item, and the encrypted search data is stored in the network. Search request means for sending to the first information terminal via
The first information terminal performs a search process of the encrypted database based on the search data, and the second information is transmitted via the network in a state where the data obtained as a result of the search is encrypted. A database system characterized by replying to a terminal.
1つのレコードが検索に利用される所定の検索対象項目とその他の項目からなるデータベースを記憶するデータベース記憶手段、
データベースの暗号化に用いる鍵であって、各項目に対応する列鍵と、各行に対応する行鍵とを生成する鍵生成手段、
前記データベース記憶手段のデータベースの各レコードについて、前記検索対象項目のデータは当該項目に対応する列鍵を用いて共通に暗号化し、前記その他の項目のデータについては当該項目に対応する列鍵と各行に対応する行鍵とを組み合わせた鍵を用いて暗号化する暗号化手段、
前記所定の検索対象項目を検索する場合に、検索用として入力されたデータを当該項目に対応する列鍵を用いて暗号化し、その暗号化された検索用データと前記記憶手段に記憶された暗号化データベースのデータとを比較して検索処理を行うデータベース検索手段
として機能させるためのプログラムが記録されたコンピュータ読み取り可能な記録媒体。Computer used for database management device
Database storage means for storing a database consisting of a predetermined search target item used for searching and other items;
A key used to encrypt the database, a column key corresponding to each item, key generating means for generating a Gyokagi for each row,
For each record in the database of the database storage means, the retrieval data of the target item is encrypted in common with columns key corresponding to the item, the column key and each row corresponding to the item for other items of data Encryption means for encryption using a key combined with a row key corresponding to
When searching for the predetermined search target item, the data input for search is encrypted using a column key corresponding to the item, and the encrypted search data and the encryption stored in the storage means A computer-readable recording medium having recorded thereon a program for functioning as database search means for performing search processing by comparing with data in a computerized database.
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27920899A JP3921892B2 (en) | 1999-09-30 | 1999-09-30 | Database management apparatus, database system, and recording medium |
US09/670,424 US7093137B1 (en) | 1999-09-30 | 2000-09-26 | Database management apparatus and encrypting/decrypting system |
EP00121136.6A EP1089194B1 (en) | 1999-09-30 | 2000-09-28 | Database management apparatus and encrypting/decrypting system |
KR10-2000-0057347A KR100401225B1 (en) | 1999-09-30 | 2000-09-29 | Database management apparatus |
CNB00134899XA CN1327379C (en) | 1999-09-30 | 2000-09-30 | Data bank management device and encryption/deciphering system |
HK01109010A HK1038806A1 (en) | 1999-09-30 | 2001-12-22 | Database management apparatus and encrypting/ decrypting system |
KR10-2003-0033587A KR100398319B1 (en) | 1999-09-30 | 2003-05-27 | Encrypting/decrypting system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27920899A JP3921892B2 (en) | 1999-09-30 | 1999-09-30 | Database management apparatus, database system, and recording medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001101055A JP2001101055A (en) | 2001-04-13 |
JP3921892B2 true JP3921892B2 (en) | 2007-05-30 |
Family
ID=17607950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27920899A Expired - Fee Related JP3921892B2 (en) | 1999-09-30 | 1999-09-30 | Database management apparatus, database system, and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3921892B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001117805A (en) * | 1999-10-19 | 2001-04-27 | Casio Comput Co Ltd | Database managing device, database system, and recording medium |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4003203B2 (en) * | 2000-08-10 | 2007-11-07 | サイファーゲート株式会社 | RECORDING MEDIUM RECORDING ENCRYPTION PROGRAM AND RECORDING MEDIUM RECORDING DECRYPTION PROGRAM |
US10339336B2 (en) * | 2003-06-11 | 2019-07-02 | Oracle International Corporation | Method and apparatus for encrypting database columns |
US7519835B2 (en) * | 2004-05-20 | 2009-04-14 | Safenet, Inc. | Encrypted table indexes and searching encrypted tables |
JP2008501175A (en) * | 2004-05-28 | 2008-01-17 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Method and apparatus for querying protected structured data |
WO2007122726A1 (en) * | 2006-04-21 | 2007-11-01 | Mitsubishi Denki Kabushiki Kaisha | Authenticating server device, terminal device, authenticating system and authenticating method |
KR100859162B1 (en) * | 2007-10-16 | 2008-09-19 | 펜타시큐리티시스템 주식회사 | Query processing system and methods for a database with encrypted columns by query encryption transformation |
US9147079B2 (en) | 2010-09-28 | 2015-09-29 | Nec Corporation | Encrypted database system, client terminal, encrypted database server, natural joining method, and program |
WO2012081450A1 (en) * | 2010-12-13 | 2012-06-21 | 日本電気株式会社 | Encoded database management system, client and server, natural joining method and program |
JP5255154B1 (en) * | 2012-12-26 | 2013-08-07 | 株式会社エアー | Crypto system capable of partial match search |
JP6592301B2 (en) * | 2015-08-10 | 2019-10-16 | Kddi株式会社 | Anonymization device, search device, method and program |
CN112235258A (en) * | 2020-09-24 | 2021-01-15 | 黄杰 | Encryption/decryption method, encryption/decryption system, and encryption/decryption device for information transmission |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09233067A (en) * | 1990-07-31 | 1997-09-05 | Hiroichi Okano | Method and device for processing intelligence information |
JP3773226B2 (en) * | 1997-10-06 | 2006-05-10 | カシオ計算機株式会社 | Encryption device |
JPH11143780A (en) * | 1997-11-05 | 1999-05-28 | Hitachi Ltd | Method and device for managing secret information in database |
-
1999
- 1999-09-30 JP JP27920899A patent/JP3921892B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001117805A (en) * | 1999-10-19 | 2001-04-27 | Casio Comput Co Ltd | Database managing device, database system, and recording medium |
Also Published As
Publication number | Publication date |
---|---|
JP2001101055A (en) | 2001-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7093137B1 (en) | Database management apparatus and encrypting/decrypting system | |
US5963642A (en) | Method and apparatus for secure storage of data | |
JP4810611B2 (en) | Search for encrypted data | |
US8930691B2 (en) | Dynamic symmetric searchable encryption | |
Salam et al. | Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage | |
CN101587479B (en) | Database management system kernel oriented data encryption/decryption system and method thereof | |
JP3921892B2 (en) | Database management apparatus, database system, and recording medium | |
US20030138105A1 (en) | Storing keys in a cryptology device | |
US7809142B2 (en) | Data scrambling and encryption of database tables | |
US8694798B2 (en) | Generating and securing multiple archive keys | |
US20020095604A1 (en) | Encryption system and method | |
CN112685753A (en) | Method and equipment for storing encrypted data | |
JP2002009757A (en) | Data encryption device and data decoder | |
CN114297274A (en) | Big data extraction method and device, computer equipment and storage medium | |
JP7126635B2 (en) | Re-encryption device, encryption system, re-encryption method and re-encryption program | |
JP2003296331A (en) | Data retrieval method and system, retrieval keyword generation device and its computer program | |
JP4081940B2 (en) | Database management apparatus and recording medium | |
Mlgheit et al. | Efficient privacy preserving of multi-keyword ranked search model over encrypted cloud computing | |
Harvan et al. | Processing encrypted and compressed time series data | |
Nithya et al. | A Survey on Private Keyword Sorting and Searching Homomorphic Encryption | |
Boucenna et al. | Access Pattern Hiding in Searchable Encryption | |
JP4640410B2 (en) | Database management apparatus and recording medium | |
JP2005346006A (en) | System, device, and method for managing access right, program for terminal, and access right managing program | |
Chen et al. | Efficient Secure Storage with Version Control and Key Rotation | |
Zhang | A thumbnail preserving encryption scheme based on bit plane scrambling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060821 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060912 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061019 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061114 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061226 |
|
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: 20070130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070212 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3921892 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110302 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120302 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130302 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130302 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140302 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |