JP2003186725A - リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法 - Google Patents

リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法

Info

Publication number
JP2003186725A
JP2003186725A JP2001383739A JP2001383739A JP2003186725A JP 2003186725 A JP2003186725 A JP 2003186725A JP 2001383739 A JP2001383739 A JP 2001383739A JP 2001383739 A JP2001383739 A JP 2001383739A JP 2003186725 A JP2003186725 A JP 2003186725A
Authority
JP
Japan
Prior art keywords
item
value
search
record
encryption
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
JP2001383739A
Other languages
English (en)
Other versions
JP4050050B2 (ja
Inventor
Kyoshoku Jinno
京植 神農
Shuichi Fujiwara
修一 藤原
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.)
KANET KK
Original Assignee
KANET KK
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 KANET KK filed Critical KANET KK
Priority to JP2001383739A priority Critical patent/JP4050050B2/ja
Publication of JP2003186725A publication Critical patent/JP2003186725A/ja
Application granted granted Critical
Publication of JP4050050B2 publication Critical patent/JP4050050B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【課題】ハッカー等による不正行為の試みがあったとし
ても、データベースファイルの秘密が保持され、しかも
正当利用者によるデータベースファイルの検索に要する
時間が、さして増大することのない、リレーショナルデ
ータベースの提供。 【解決手段】暗号化テーブル及びインデックステーブル
でリレーショナルデータベースを構成する。暗号化テー
ブルは、平文テーブルを項目毎に暗号化したものであ
る。インデックステーブルは、平文テーブルにおける各
項目をソートし、各項目の順位を生成し、該順位を対応
の項目の項目値としたテーブルである。インデックステ
ーブルの各項目は暗号化テーブルの各項目に対応してい
る。本リレーショナルデータベースの範囲検索をする際
には、暗号化テーブル全体の解読による平文テーブルを
作成することなく、インデックステーブルの参照により
項目の順位を取得できるので、2分検索が迅速に行え
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データベースに関
し、特にデータを暗号化して格納するリレーショナルデ
ータベースに関する。
【0002】
【従来の技術】インターネットやLANが広く普及した
現在では、データベースはインターネットやLANとい
った通信網を介してアクセスされることが多い。図15
は、インターネットを介してデータベース(図ではDBと
略記。他の図においても同じ)のファイルにデータベー
スクライアント(図ではDB Clientと略記。他の図にお
いても同じ)がアクセスしているときに、ハッカー等の
不正な利用者がそのデータベースファイルにアクセスし
ている状態を模式的に示す図である。正当な利用者であ
るデータベースクライアントが1つのデータベースアク
セスチャンネルを介し、DBサーバプロセスを経てデータ
ベースファイルにアクセスしている。DBサーバプロセス
は、リレーショナルデータベースマネージメントシステ
ム(RDBMS)の一部分である。他方、ハッカーはデータ
ベース・サーバのセキュリティホールを見つけ、不正に
データベースファイルにアクセスし、データベースファ
イルの窃盗や改竄を行っている。また、図において成り
すましと記したように、不正な利用者は、データベース
クライアントがデータベースアクセスチャンネルを介し
てデータベースファイルにアクセスしているとき、その
データベースアクセスチャンネルにおける通信を傍受し
ている。インターネットやLANといった通信網を介し
てアクセスされるデータベースファイルは、このような
窃盗や改竄、或いは成りすましといった行為により、デ
ータの安全が常に脅かされている。更に、データベース
ファイル自体が物理的に盗まれるということもある。
【0003】平文で記録されたデータベースファイルは
このような脅威に晒されるので、データベースファイル
を暗号化することによりその脅威を軽減し、データベー
スファイルの安全性を向上しようという試みもある。現
在広く利用されているデータベースはリレーショナルデ
ータベースである。データの暗号化に留意した従来のリ
レーショナルデータベースとして、特表平11−509
349「SQLリレーショナルデータベース用エミュレ
ータ」に記載された技術がある。特表平11−5093
49には、その請求項3に、「秘密を保持するためにデ
ータファイルがアルゴリズムに従って暗号化され、デー
タへのアクセスが暗号化/復号モジュール(M3)によ
って処理される」と記載され、また発明の詳細な説明の
欄には、「必要に応じて、暗号化/復号モジュールを使
用してデータファイルにアクセスすることによって、ユ
ーザデータのセキュリティを保証できるので有利であ
る」等と記載されている。
【0004】
【発明が解決しようとする課題】前掲の特表平11−5
09349の記載は具体性に欠け、どのような手段や方
法によりユーザデータのセキュリティを保証できるのか
不明であり、この従来の技術によっては、窃盗や改竄、
或いは成りすましといった不正行為、又はデータベース
ファイル自体の物理的盗難があったとき、データフィル
の安全性を保全できない。また、単にデータベースファ
イルを暗号化するだけでは、正当利用者によるデータベ
ースファイルの検索に要する手間と時間が著しく増大
し、実用に供し得るデータベースを構成することはでき
ない。
【0005】そこで、本発明の目的は、例えデータベー
スファイルに対し窃盗や改竄、或いは成りすましといっ
た不正行為あり、又はデータベースファイル自体の物理
的盗難があったとしても、そのデータベースファイルの
秘密が保持され、しかも、正当利用者によるデータベー
スファイルの検索に要する手間と時間が、著しく増大す
ることのない(データベースファイルが平文であるとき
に比べ)、リレーショナルデータベース及びそのリレー
ショナルデータベースにおけるインデックステーブルの
作成方法の提供にある。
【0006】
【課題を解決するための手段】前述の課題を解決するた
めに本発明は次の手段を提供する。
【0007】[1]レコードが項目単位で暗号化されて
いる暗号化テーブルと、該暗号化テーブルに対応する平
文テーブルの各項目における項目値の順位を記録したイ
ンデックステーブルとを有することを特徴とするリレー
ショナルデータベース。
【0008】[2]前記暗号化テーブルでは、少なくと
も1つの項目が暗号化されていることを特徴とする前記
[1]に記載のリレーショナルデータベース。
【0009】[3]前記暗号化テーブルでは、少なくと
も一意な値の項目が平文であることを特徴とする前記
[1]又は[2]に記載のリレーショナルデータベー
ス。
【0010】[4]前記暗号化テーブルでは、一意な値
の項目が暗号化されていることを特徴とする前記[1]
又は[2]に記載のリレーショナルデータベース。
【0011】[5]前記暗号化テーブルでは、一意な値
の項目だけが平文であり、一意な値の項目以外の項目は
暗号化されていることを特徴とする前記[1]乃至
[3]に記載のリレーショナルデータベース。
【0012】[6]前記暗号化テーブルでは、全ての項
目が暗号化されていることを特徴とする前記[1],
[2]又は[4]に記載のリレーショナルデータベー
ス。
【0013】[7]前記インデックステーブルにおける
各項目名は、前記平文テーブルにおける各項目名と対を
成し、該両テーブルにおける該対をなす両項目名は同じ
であることを特徴とする前記[1]乃至[6]に記載の
リレーショナルデータベース。
【0014】[8]前記インデックステーブルにおける
各項目名は、前記平文テーブルにおける各項目名と対を
成し、該両テーブルにおける該対をなす両項目名は互い
に相違することを特徴とする前記[1]乃至[6]に記
載のリレーショナルデータベース。
【0015】[9]前記順位は、昇順又は降順のうちの
どちらか一方の順位付け方式による順位であることを特
徴とする前記[1]乃至[8]に記載のリレーショナル
データベース。
【0016】[10]レコードが項目単位で暗号化され
ている暗号化テーブルと、該暗号化テーブルに対応する
平文テーブルの各項目における項目値の順位を記録した
インデックステーブルとを有するリレーショナルデータ
ベースにおける該インデックステーブルの作成方法にお
いて、ポインター値iを1に設定する第1のステップ
と、前記平文テーブルを参照することにより、該平文テ
ーブルにおける第1の暗号化対象項目に関しソート処理
を行い、該ソート処理により得た順位の順に一意な値の
項目の項目値A()を取得し、該一意な値の項目の項目
値A()を該順位に対応付けて配列する第2のステップ
と、前記ポインター値iに対応する前記一意な値の項目
の項目値A(i)と、該ポインター値iとを前記インデ
ックステーブルに記録する第3のステップと、前記iを
i+1に替える第4のステップと、前記第3のステップ
乃至第4のステップを前記平文テーブルの全レコード数
分繰り返す第5のステップと、前記第1のステップ乃至
第5のステップを前記平文テーブルにおける第1の暗号
化対象項目以外の暗号化対象項目について順次に行う第
6のステップとからなることを特徴とするインデックス
テーブルの作成方法。
【0017】[11]レコードが項目単位で暗号化され
ている暗号化テーブルと、該暗号化テーブルに対応する
平文テーブルの各項目における項目値の順位を記録した
インデックステーブルとを有するリレーショナルデータ
ベースにおける所定項目の範囲検索のための検索であっ
て、該範囲検索の下限値および上限値を検索値とし、該
下限値以上であり、かつ最も小さい値の該インデックス
テーブルにおける該所定項目の項目値を第1の順位と
し、該上限値以下であり、かつ最も大きい値の該インデ
ックステーブルにおける該所定項目の項目値を第2の順
位とするとき、該第1および第2の順位を検索する方法
において、前記インデックステーブルにおける所定項目
の最大項目値を検索し、該最大項目値を基に該インデッ
クステーブルにおけるレコード数を仮定し、該仮定レコ
ード数を変数MAXとする第1のステップと、変数MINを1
に、変数MAX/2の整数部を変数Pに、前記下限値を検
査するときは該下限値を検索値とするともに、前記上限
値を検索するときは該上限値を検索値とし、該検索値を
変数Sに、検索条件Wを“以上”に、該範囲検索におけ
る上限値を検索するときは該検索条件Wを“以下”に、
それぞれ設定する第2のステップと、ループを開始する
第3のステップと、前記暗号化テーブル及びインデック
ステーブルを検索し、該インデックステーブルにおける
前記所定項目の項目値が変数Pと同じであるレコードに
おける一意な値の項目の項目値を取得し、該暗号化テー
ブルにおける該一意な値の項目の項目値が属するレコー
ドの該所定項目の項目値を取得し、取得した該項目値の
復号により平文の項目値を生成し、変数Aを該平文の項
目値とする第4のステップ、検索値Sと変数Aとを比較
し、S=Aであるとき、前記第4のステップでインデッ
クステーブルから取得した前記一意な値の項目が属する
該インデックステーブルにおけるレコードの前記所定項
目の項目値を前記第1または第2の順位として取得し、
S<Aのとき、変数MAXを変数Pとし、変数Pを(P−M
IN)/2+MINに変更するとともに、S>Aのとき、変
数MIN を変数Pとし、変数Pを(MAX−P)/2+Pに
変更する第5のステップと、前記第5のステップの結果
がP=MAX又はP=MINに至ったとき、ループを終了する
第6のステップと、前記暗号化テーブル及びインデック
ステーブルを検索し、該インデックステーブルにおける
前記所定項目の項目値が変数MINからMAXまでの範囲にあ
るレコードの一意な値の項目を選択し、該暗号化テーブ
ルにおいて該一意は値の項目を同じくするレコードの該
所定項目の項目値を取得し、復号する第7のステップ
と、前記検索条件Wが“以上”であるとき、前記第7の
ステップで復号した項目値のうちで検索値S以上であ
り、かつ最小である項目値が属するレコードの一意な値
の項目の項目値を取得し、前記検索条件Wが“以下”で
あるとき、前記第7のステップで復号した項目値のうち
で検索値S以下であり、かつ最大である項目値が属する
レコードの一意な値の項目の項目値を取得する第8のス
テップと、前記第8のステップで取得した前記一意な値
の項目と同じ項目が属する前記インデックステーブルに
おけるレコードの前記所定項目の項目値を前記第1また
は第2の順位とする第9のステップとからなり、前記第
2のステップにおいて検索条件を“以上”に設定したと
きは、第5および第9のステップでは、前記所定項目の
項目値を前記第1の順位として取得し、前記第2のステ
ップにおいて検索条件を“以下”に設定したときは、第
5および第9のステップでは、前記所定項目の項目値を
前記第2の順位として取得することを特徴とするリレー
ショナルデータベースにおける所定項目の範囲検索のた
めの順位検索方法。
【0018】[12]レコードが項目単位で暗号化され
ている暗号化テーブルと、該暗号化テーブルに対応する
平文テーブルの各項目における項目値の順位を記録した
インデックステーブルとを有するリレーショナルデータ
ベースにおける範囲検索の方法において、所定の項目に
関する第1の順位をキーとして前記インデックステーブ
ルを検索し、該所定の項目における項目値が該第1の順
位以上または以下であるレコードの一意な値の項目の項
目値を取得し、前記インデックステーブルの検索で取得
された前記一意な値の項目の項目値をキーとして前記暗
号化テーブルを検索することにより、前記所定の項目に
関する順位が前記第1の順位以上または以下であるレコ
ードの暗号化項目値を取得することを特徴とする範囲検
索の方法。
【0019】[13]レコードが項目単位で暗号化され
ている暗号化テーブルと、該暗号化テーブルに対応する
平文テーブルの各項目における項目値の順位を記録した
インデックステーブルとを有するリレーショナルデータ
ベースにおける範囲検索の方法において、所定の項目に
関する第1及び第2の順位をキーとして前記インデック
ステーブルを検索し、該所定の項目における項目値が該
第1の順位以上であり、かつ該第2の順位以下であるレ
コードの一意な値の項目の項目値を取得し、前記インデ
ックステーブルの検索で取得された前記一意な値の項目
の項目値をキーとして前記暗号化テーブルを検索するこ
とにより、前記所定の項目に関する順位が前記第1の順
位以上であり、かつ前記第2の順位以下であるレコード
の暗号化項目値を取得することを特徴とする範囲検索の
方法。
【0020】[14] 前記第1の順位が前記[11]
の方法で検索された前記第1の順位である前記[12]
に記載の範囲検索の方法。
【0021】[15] 前記第1および第2の順位が前
記[11]の方法で検索された前記第1および第2の順
位である前記[13]に記載の範囲検索の方法。
【0022】[16]取得した前記暗号化項目値を平文
に復号することを特徴とする前記[12]乃至[15]に
記載の範囲検索の方法。
【0023】
【発明の実施の形態】次に図面を参照し、本発明の実施
の形態を説明する。図1は、本発明の一実施の形態のリ
レーショナルデータベースにおけるテーブルの構成例を
示す図である。図2は、本実施の形態におけるインデッ
クステーブルの作成方法を模式的に示す図である。図3
は、本実施の形態における暗号化テーブルの一例を示す
図である。図4は、本実施の形態において、暗号化テー
ブルに格納した1つのレコード内のデータをキーワード
で検索する方法を示す概念図である。図5及び図6は、
本実施の形態において、暗号化テーブルに格納した多数
のレコード内からある範囲を指定し、その範囲内のレコ
ードを検索する方法を示す概念図である。図7及び図8
は、本実施の形態において、新規にレコードを暗号化テ
ーブルに格納する方法を示す概念図である。図9は、本
実施の形態において、暗号化テーブルからレコードを削
除する方法を示す概念図である。図10は、本実施の形
態において、暗号化テーブルに格納されているレコード
を修正する方法を示す概念図である。図11は、本実施
の形態におけるインデックステーブルの一括更新の方法
を示す概念図である。図12は、本実施の形態における
インデックステーブルの作成方法を示す流れ図である。
図13及び図14は、本実施の形態に2分検索法を適用
し、データの検索をする方法を示す流れ図である。
【0024】本実施の形態のリレーショナルデータベー
スにおけるデータベースファイルは、暗号化テーブル及
びインデックステールで構成される。暗号化テーブル
は、平文テーブルにおける各項目を暗号化することによ
り生成できる。また、暗号化テーブルは、未だレコード
が格納されてない新規のテーブルに、各項目が暗号化さ
れたレコードを順次に格納することによっても作成でき
る。図1は、平文テーブルが既に生成されているとき
に、平文テーブルから暗号化テーブル及びインデックス
テーブルを作成する様子を概念的に示している。平文テ
ーブルにおける項目名は、「NO」、「会員番号」、
「氏名」、「住所」である。暗号化テーブルでは暗号化
される項目のデータ属性はすべて文字型である。例え
ば、平文テーブルにおける会員番号のデーア属性は数値
型であるが、暗号化テーブルにおける会員番号のデータ
属性は文字列型である。
【0025】この「NO」項目は、前述の一意な値の項
目の例であり、オラクル(登録商標)などのリレーショ
ナルデータベースで主キーとか、プライマリーキーとか
称されている項目に相当する。「NO」項目の項目値を
特定することにより、レコードが一意に特定さるので、
本願では「NO」項目の項目値をレコードNO又は単に
NOと称することにする。また、「NO」項目の項目名
を「レコードNO」と記すこととする。いわゆるユーザ
データは、項目名「会員番号」、「氏名」、および「住
所」における項目値であり、暗号化テーブルでは暗号化
されて格納されている。ここでは、項目名「会員番
号」、「氏名」、および「住所」における項目値は、そ
れぞれ会員番号、氏名、および住所と記す。そして、こ
れら項目値を具体的なデータとして示すときは、該項目
値を“”で囲んで表記することとする。例えば、暗号化
テーブルにおける”3mfj4340snswlw”は平文テーブルに
おける“田中一郎”を本実施の形態のリレーショナルデ
ータベースにおける暗号アルゴリズムで暗号化したデー
タである。
【0026】図のテーブルにおいて紙面(背景)をグレ
ーに変換した領域は、暗号化項目が格納される項目であ
る。暗号化テーブルにおいてもレコードNOは平文のま
まである。レコードNOを暗号化しても本発明は実現で
きるが、この実施の形態ではレコードNOは平文のまま
とし、検索処理の簡単化および高速化を図っている。各
レコードNOには唯一のNOが付与されている。そこ
で、レコードNOはレコードを一意に特定する機能を有
し、NOを指定することによりレコードを一意に指定で
きる。各レコードは1行のデータから構成されており、
レコードNOとして“1”を指定することにより、図1
における平文テーブルでは、レコードNO=“1”、会
員番号=“001”、氏名=“鈴木 太郎”、住所=
“東京都品川区”で構成されるレコードが指定される。
同様に、暗号化テーブルでは、レコードNOとして
“1”を指定することにより、レコードNO=“1”、
会員番号=”gtxUcA”、氏名=”iLFeC0P8o0Yf”、住所
=”zksi3m4394”でなるレコードが指定される。実際の
暗号化テーブルは、図1と同様に項目名が「NO」、
「会員番号」、「氏名」および「住所」でなる会員テー
ブルでも、図3に例示するように、多数のレコードでも
って構成されるのが一般的である。
【0027】インデックステーブルは本発明に特徴的な
テーブルであり、各暗号化テーブルにはそれぞれ1つづ
つのインデックステーブルが対応している。インデック
ステーブルでは、各項目は平文である。インデックステ
ーブルにおける項目名は平文テーブルにおける項目名と
同じである。したがって、インデックステーブルにおけ
る各項目は平文テーブルにおける各項目に1対1に対応
している。インデックステーブルにおける各項目値は、
平文テーブルにおける該対応項目の順位値である。図1
の平文テーブルでは、項目名「会員番号」では、項目名
「NO」が“1”の順位は1位、項目名「NO」が
“2”の順位は2、項目名「NO」が“3”の順位は3
である。また、図1の平文テーブルにおける、項目名
「氏名」では、アルファベット順に順位をつけることと
し、レコードNOが“1”の順位は1位、レコードNO
が“2”の順位は3、レコードNOが“3”の順位は2
である。
【0028】図2を参照し、インデックステーブルの作
成方法を説明する。図2では、説明の簡潔化のために、
平文テーブルのデータを図1の平文テーブルのものより
一層簡単なものとしてある。「項目1」の順位は数字の
昇順、「項目2」の順位はアルファベット順、また「項
目3」の順位はアイウエオ順である。
【0029】インデックステーブルを作成するために、
まず平文テーブルの項目名=「項目1」についてソート
処理を行う。このソート処理により、順位1位、2位及
び3位にはレコードNOがそれぞれ“3”,“1”及び
“2”の項目が選ばれ、レコードNOがこの順
(“3”,“1”,“2”の順)に並び替えられる。図
2の例では、レコードNOが“1”のレコードでは、
「項目1」の項目値は2となる。レコードNOが“1”
のレコードにおける「項目2」及び「項目3」の項目値
は、この段階では決められていないので、空欄である。
また、レコードNOが“2”のレコードでは、「項目
1」の項目値は3となる。レコードNOが“2”のレコ
ードにおける「項目2」及び「項目3」の項目値は、こ
の段階では決められていないので、空欄である。また、
レコードNOが“3”のレコードでは、「項目1」の項
目値は1となる。レコードNOが“3”のレコードにお
ける「項目2」及び「項目3」の項目値は、この段階で
は決められていないので、空欄である。
【0030】同様に、「項目2」についてソート処理を
行う。「項目2」のソート処理により、順位1位、2位
及び3位にはレコードNOがそれぞれ“1”,“2”及
び“3”の項目が選ばれ、レコードNOがこの順
(“1”,“2”,“3”の順)に並び替えられる(こ
の例では、並び替えられた結果のレコードNOの順は元
の平文テーブルにおける順と同じになる)。図2の例で
は、レコードNOが“1”のレコードでは、「項目2」
の項目値は1となる。レコードNOが“1”のレコード
における「項目3」の項目値は、この段階では決められ
ていないので、空欄である。また、レコードNOが
“2”のレコードでは、「項目2」の項目値は2とな
る。レコードNOが“2”のレコードにおける「項目
3」の項目値は、この段階では決められていないので、
空欄である。また、レコードNOが“3”のレコードで
は、「項目2」の項目値は3となる。レコードNOが
“3”のレコードにおける「項目3」の項目値は、この
段階では決められていないので、空欄である。
【0031】同様に、「項目3」についてソート処理を
行う。「項目3」のソート処理により、順位1位、2位
及び3位にはレコードNOがそれぞれ“3”,“2”及
び“1”の項目が選ばれ、NO項目がこの順(“3”,
“2”,“1”の順)に並び替えられる。図2の例で
は、レコードNOが“1”のレコードでは、「項目3」
の項目値は3となる。レコードNOが“1”のレコード
における「項目1」、「項目2」及び「項目3」の項目
値は、この段階で全て決められ、それぞれ2,1,3で
ある。また、レコードNOが“2”のレコードでは、
「項目3」の項目値は2となる。レコードNOが“2”
のレコードにおける「項目1」,「項目2」及び「項目
3」の項目値は、この段階では全て決められ、それぞれ
3,2,2である。また、レコードNOが“3”のレコ
ードでは、「項目3」の項目値は1となる。レコードN
Oが“3”のレコードにおける「項目1」,「項目2」
及び「項目3」の項目値は、この段階で全て決められ、
それぞれ“1”,“3”,“1”である。かくして図2
のインデックステーブルが作成された。
【0032】次に、図4を参照し、図1の如くに暗号化
テーブルとインデックステーブルとを有する本実施の形
態のリレーショナルデータベースにおいて、キーワード
によりレコードの検索を行う例を説明する。図4の暗号
化会員テーブルは、図1に示すように、項目名が「N
O」、「会員番号」、「氏名」および「住所」でなる会
員テーブルであるとする。暗号化会員テーブルは、デー
タベース・サーバに格納され、同じデータベース・サー
バに格納されているリレーショナルデータベースマネー
ジメントシステム(RDBMS)により制御されている。い
ま、クライアントは、検索キーワード“田中一郎”で暗
号化会員テーブルにおける住所を検索するものとする。
このとき、クライアント側の暗号データベースプログラ
ムにより“田中一郎”を暗号化し、“田中一郎”を”3m
fj340snswlw”なる暗号データに変換する。クライアン
ト側の暗号データベースプログラムは、例えばオラクル
(登録商標)のSQL*PLUSに暗号・復号機能を付加したデ
ータベースプログラムであり、SQL言語によりサーバ
ー側のRDBMSと交信し、データの検索・追加・修正・削
除、テーブルの更新などを行うとともに、暗号・復号用
のアルゴリズムにより、レコードの項目毎にデータの暗
号・復号を行う。
【0033】“田中一郎”の暗号”3mfj340snswlw”な
るキーワードで暗号化会員テーブルを検索し、田中一郎
の住所を取得するためには、クライアント側の暗号デー
タベースプログラムは、Select住所from会員テーブルwh
ere氏名=” 3mfj340snswlw”なるいわゆるSelect文で暗
号化会員テーブルに問合せをする。すると、平文の会員
テーブルを検索するときと同様に、田中一郎の住所のデ
ータが暗号化会員テーブルから返信される。しかし、こ
のときに得られる返信データは、その住所を暗号化した
データ”kdsnw948nwkwnw”である。クライアント側の暗
号データベースプログラムは、その暗号データを暗号ア
ルゴリズムで復号し、“東京都港区”なる住所を取得す
る。
【0034】次に図5及び図6を参照して、本実施の形
態のリレーショナルデータベースによる範囲検索の例を
説明する。いま、本実施の形態のリレーショナルデータ
ベースは、前述のところと同様に、項目名が「NO」、
「会員番号」、「氏名」および「住所」でなる暗号化会
員テーブルとそのインデックステーブルを格納している
ものとする(後に説明する図7乃至図11においても同
様とする)。本実施の形態において範囲検索を行うとき
は、インデックステーブルを参照し、開始レコードと終
了レコードのレコードナンバーを取得し、取得したレコ
ードナンバーをキーとして、暗号化テーブルを検索し、
該当するレコードを取得する。ここで挙げる範囲検索の
例は、暗号化会員テーブルにおける会員番号が50から
60のレコードを取得することである。図5及び図6に
おける乃至はその範囲検索における処理のステップ
を示す。これら各ステップでは、その範囲検索のための
SQL文及びその検索で取得される結果が示してある。図
5及び図6では、図の左側にはクライアント側の暗号デ
ータベースプログラムで行う処理および検索結果を図示
し、図の右側には実施の形態のリレーショナルデータベ
ースにおける暗号化会員テーブル又はこの暗号化会員テ
ーブルに対応するインデックステーブルを示す(後に説
明する図7乃至図14においても同様である)。
【0035】ステップでは、2分検索法によるインデ
ックステーブルの検索の開始を示す。2分検索法は、既
に周知の検索法であるが、本実施の形態に適用するのに
適した具体的な2分検索法が図13及び図14に詳しい
流れ図で示してある。Select文において、“レコード数
÷2”の部分にアンダーラインを入れてある。このアン
ダーラインは、“レコード数÷2”なる記述そのものが
この位置に入力されるのではないことを示すために付し
てある。
【0036】そのSelect文の発行に先立って、インデッ
クステーブルをまず検索し、対象項目(今の例では、
「会員番号」の項目)における最大インデックス値を取
得する。インデックステーブルでは、各項目には順位が
格納されている。そこで、インデックス値は、図11を参
照して後述するインデックステーブルの一括更新をする
と、最小順位から最大順位まで欠番の無い整数になる。
しかしながら、インデックステーブルの一括更新の前で
は、図8のステップを参照して後述するように、イン
デックス値は小数点を含むことが有り、また図9のレコ
ード削除などによりインデックス値に欠番が生じること
もある。そこで、その最大インデックス値は必ずしもレ
コード数と一致しない。しかし、最大インデックス値は
概ねレコード数に近似するので、図5のステップで
は、インデックステーブルの対象項目(ここでは、「会
員番号」項目)における最大インデックス値を検索し、
その最大インデックス値に1を加えた値をレコード数と
している。最大インデックス値が少数点のときも、その
最大インデックス値のレコードが検索対象から除かれる
ことを防ぐために、最大インデックス値に1を加えた値
をレコード数としているのである。
【0037】そのSelect文において、レコード数÷2な
る式による具体的な計算結果の数字をこのアンダーライ
ンの位置に入力する。“レコード数÷2”の部分のアン
ダーラインはこのこと(別途に検索し、計算して得た値
を入れるということ)を示している。の検索により、
インデックステーブルにおける「会員番号」項目の項目
値(順位)が中間値であるレコードNOが取得される。
なお、他の図面におけるSelect文におけるアンダーライ
ンも同様な目的で付されている。
【0038】ステップでは、取得したレコードNOを
キーとして、暗号化会員テーブルを検索する。この検索
により、そのレコードNOの会員番号(暗号化された会
員番号)が取得される。この会員番号をクライアント側
の暗号データベースプログラムで解読し、平文の会員番
号を生成する。ステップのSelect文における「検索す
るNO」のアンダーラインは、ステップ1おけるアンダ
ーラインと同様な趣旨で付されており、「検索するN
O」なる文字が入力されるのではなく、ステップで得
られたレコードNOがこの位置に入力されることを示し
ている。
【0039】ステップでは、検索したい“会員番号”
とステップで取得し、復号した“会員番号”とを比較
する。検索したい“会員番号”は、範囲検索における範
囲の下限値(=50)と上限値(=60)である。比較
した両者が一致し、会員番号の下限値または上限値が判
明したときは、他方の限界値を検索したい“会員番号”
とし、再びステップとステップ間の検索を繰り返
し、他方の限界値を取得する。比較した両者が不一致で
あり、会員番号の下限値または上限値が判明しないとき
は、下限値または上限値の一方の限界値にステップの
復号化会員番号が一致するまで再びステップとステッ
プ間の検索を繰り返し、更にステップからステップ
までの検索により他方の限界値の検索をし、取得す
る。下限値の会員番号を検索開始の会員番号と称し、上
限値の会員番号を検索終了の会員番号と称し、検索開始
の会員番号が存するレコードにおけるレコードNOを開
始レコードNOと称し、検索終了の会員番号が存するレ
コードにおけるレコードNOを終了レコードNOと称す
ることにする。ステップからステップは、前述の
「リレーショナルデータベースにおける所定項目の範囲
検索のための順位検索方法」における第1乃至第8のス
テップに相当する。ステップからステップで行う2
分検索法の一層詳しい処理の手順は、図13及び図14
に示してある。
【0040】ステップでは、前述の「リレーショナル
データベースにおける所定項目の範囲検索のための順位
検索方法」における第9のステップに相当し、開始レコ
ードNO及び終了レコードNOをキーとして、インデッ
クステーブルを検索し、それぞれのレコードNOのレコ
ードにおける会員番号の順位を取得する。インデックス
テーブルでは、会員番号項目には,会員番号の順位が格
納されているので、ステップの検索により、開始会員
番号の順位(開始順位)及び終了会員番号の順位(終了
順位)が取得される。
【0041】ステップでは、会員番号の開始順位およ
び終了順位でインデックステーブルを検索し、それら開
始順位と終了順位との間(開始順位と終了順位を含む)
のレコードNOを所得する。
【0042】ステップでは、ステップで取得したレ
コードNOをキーとして、暗号化会員テーブルを検索
し、それらレコードNOのレコードを取得する。かくし
て、ステップからステップの検索により、会員番号
が50から60の間(50及び60を含む)にある全て
の会員のレコードが取得できた。
【0043】図5および図6を参照して説明した範囲検
索の例で明らかなように、本実施の形態では、暗号化テ
ーブルと、この暗号化テーブルに対応するインデックス
テーブルとを備えるので、範囲検索が高速に行える。も
し、データベースの安全性を向上するために、平文テー
ブルを単純に暗号化した暗号化テーブルだけを備えるリ
レーショナルデータベースを構築したとすると、範囲検
索の度に暗号化テーブルにおける全てのレコードを復号
しなければならない。なぜなら、範囲検索では項目の順
位を生成しなければならないのであるが、暗号データの
ままでは順位を知ることができないからである。範囲検
索の度に全てのレコードを平文に復号すると、検索時間
が非常に長くなるのは避けられない。これに対し、本実
施の形態のリレーショナルデータベースでは、平文のと
きの項目の順位をインデックステーブルに予め格納して
おくので、範囲検索においては、項目の順位をそのイン
デックステーブルの検索で取得でき、暗号化テーブルの
復号を要しない。したがって、本実施の形態では、レコ
ードの復号範囲および順位データ取得のための比較処理
が大幅に減少し、処理を高速に行うことができる。ま
た、このインデックステーブルを利用することにより、
レコードの並び替えが高速にできるから、レコードを並
び替えたテーブルを高速に取得(出力)できる。
【0044】次に、図7及び図8を参照し、本実施の形
態のリレーショナルデータベースに新規にレコードを追
加する処理を説明する。既存の暗号化テーブルに新規の
レコードを追加するには、インデックステーブルを参照
し、新規レコードの順位を求め、インデックス値を作成
し、インデックステーブル及び暗号化テーブルにレコー
ドを挿入する。ここで挙げるレコード追加の例は、会員
番号が“100”、氏名が“山田 太郎”、住所が“東
京都品川区”である新規レコードを暗号化会員テーブル
に追加することである。図7及び図8における乃至
はそのレコード追加における処理のステップを示す。こ
れら各ステップでは、そのレコード追加のためのSQL文
及びその検索で取得される結果が示してある。
【0045】図7におけるステップ,及びは、図
5におけるステップ,及びにそれぞれ相当する。
図7のステップ及びは図5のステップ及びと同
じ処理を行う。図7のステップは、図5のステップ
とほぼ同じ処理を行う。ただし、図5のステップで
は、復号した“会員番号”と比較される検索対象は、範
囲検索の開始会員番号と終了会員番号との2つであった
が、これに対し、図7のステップでは、復号した“会
員番号”と比較される検索対象は、追加したいレコード
の会員番号という1つの会員番号だけである点で、両図
におけるステップは相違している。この図7の処理で
は、ステップからの処理を繰り返し、会員番号の値
が“100”より小さく、その中で最も大きい会員番号
の値を持つレコードNOを暗号化会員テーブルから取得
する。
【0046】図8のステップは、図6のステップと
ほぼ同じ処理を行う。但し、図6のステップでは開始
レコードNO及び終了レコードNOの2つのレコードN
Oで検索したのに対し、図8のステップでは1つの検
索レコードNOだけで検索する点で、図8のステップ
は図6のステップと相違している。
【0047】ステップでは、ステップで取得した
“会員番号”の“順位”に小数点以下の数値を付加し、
新規のインデックス値、すなわち順位を作成する。例え
ば、ステップで取得した“会員番号”の“順位”が
“95”であれば、95+0.001=95.001を
追加会員番号用レコードにおける会員番号のインデック
ス値、すなわち順位とする。95.001なる順位の既
存のレコードがあり、追加用の順位と既存順位が重複す
るときは、順位95と96との間に既にあるレコード及
び追加レコードにつき、ソート処理を施し、各レコード
の順位を付け直す処理をして、レコードの順位を更新す
る。
【0048】また、別の方法として、95.001なる
順位の既存のレコードがインデックステーブルに既にあ
るときは、既にある順位95.001に0.001を加
えた95.002を既存のレコードの順位とする。すな
わち、既存のレコードの順位を更新する。もし、95.
001なる順位の既存のレコード及び95.002なる
順位の既存のレコードがインデックステーブルに既にあ
るときは、既にある順位95.001及び95.002
にそれぞれ0.001を加えた95.002及び95.
003を既存のレコードの順位とする。順位95と96
との間に既に3つ以上の既存のレコードが存在するとき
は、前記と同様に既存のレコードの順位を更新する。
【0049】ステップでは、クライアント側の暗号デ
ータベースプログラムで新規レコードを暗号化し、暗号
化会員テーブルに追加する。ステップでは、ステップ
で作成したインデックス値を基にに、新規レコードを
インデックステーブルに追加する。かくして、ステップ
からステップ7の処理により、新規レコードが暗号化
テーブル及びインデックステーブルに追加された。
【0050】次に、図9を参照して、本実施の形態のリ
レーショナルデータベースにおけるレコードを削除する
処理を説明する。図9における及びはそのレコード
削除における処理のステップを示す。これら各ステップ
では、そのレコード削除のためのSQL文及びその検索で
取得される結果が示してある。ステップでは、暗号化
会員テーブルにおける削除対象レコードのレコードNO
を負の値に変更する。ステップでは、インデックステ
ーブルにおける削除対象レコードのレコードNOを負の
値に変更する。このように負の値に変更されたレコード
NOのレコードは、通常の検索処理では検索されないよ
うに、クライアント側の暗号データベースプログラムを
設定しておく。但し、このリレーショナルデータベース
の管理者は必要に応じて、レコードNOが負の値のレコ
ードにもアクセスできるようにその暗号データベースプ
ログラムを設定しておく。
【0051】次に、図10を参照して、本実施の形態の
リレーショナルデータベースにおけるレコードを修正す
る処理を説明する。図10における及びはそのレコ
ードの修正における処理のステップを示す。ステップ
では、暗号化テーブル及びインデックステーブルにおけ
る対象レコードの削除処理を図9の方法で行う。ステッ
プでは、暗号化テーブル及びインデックステーブルに
おける対象レコードの追加処理を図7及び図8の方法で
行う。このステップ及びの処理により、レコードの
修正が行われる。
【0052】次に、図11を参照して、本実施の形態の
リレーショナルデータベースにおけるインデックステー
ブルを一括更新する処理を説明する。図11における
,及びはインデックステーブルの一括更新処理の
ステップを示す。ステップでは、レコードNOが負数
であるレコードを削除する。ステップでは、インデッ
クステーブルにおける「会員番号」の項目値、すなわち
順位の順番にレコードNOを取得する。ステップで
は、ステップで取得したレコードNOの順番をシーケ
ンス番号として、各レコードNOのレコードの“会員番
号”をこのシーケンス番号に更新する。「住所」及び
「氏名」についてもステップ及びステップの処理を
行い、インデックステーブルの一括更新を完了する。
【0053】図12は、本実施の形態におけるインデッ
クステーブルの作成方法を示す流れ図である。本実施の
形態におけるインデックステーブルの作成方法について
は図2を参照して前に説明したが、図12はその作成方
法を流れ図で示している。このインデックステーブルの
作成方法は、レコードが項目単位で暗号化されている暗
号化テーブルと、該暗号化テーブルに対応する平文テー
ブルの各項目における項目値の順位を記録したインデッ
クステーブルとを有するリレーショナルデータベースに
おける該インデックステーブルの作成方法である。
【0054】ステップP1では、ポインター値iを1に
設定する。ステップP2では、平文テーブルを参照する
ことにより、該平文テーブルにおける第1の暗号化対象
項目に関しソート処理を行い、該ソート処理により得た
順位の順に項目名「レコードNO」の項目値A()を取
得し〔項目値A()は前述のレコードNOに相当す
る〕、該項目値A()を該順位に対応付けて配列する。
ステップP3では、ループ処理に入る。ステップP4で
は、ポインター値iに対応する項目値A(i)と、該ポ
インター値iとをインデックステーブルに記録する。ス
テップP5では、ポインター値iをi+1に替える。ス
テップP6では、第3のステップ乃至第5のステップを
平文テーブルの全レコード数分繰り返す。ステップP1
乃至P6は、平文テーブルにおける第1の暗号化対象項
目以外の暗号化対象項目について行う。前述の会員テー
ブルの例では、第1の暗号化対象項目を「会員番号」、
第2の暗号化対象項目を「氏名」、第3の暗号化対象項
目を「住所」とすることにより、平文テーブルにおける
「レコードNO」(一意な値の項目)以外の全ての項目
に関するインデックステーブルが作成される。
【0055】図13及び図14は本実施の形態に適用す
る2分検索法を示す流れ図である。2分検索法は、図5
(範囲検索)のステップから及び図7(レコードの
追加)のステップからにおいて利用した。図13及
び図14は、図5のステップからに適用するときの
2分検索法の手順を詳しく示している。2分検索法のプ
ログラムはクライアント側の暗号データベースプログラ
ムに組み込まれている。本実施の形態のリレーショナル
データベースでは、暗号化テーブルだけではなく、暗号
化テーブルに対応した平文のインデックステーブルを備
え、図5のステップからを参照して説明したよう
に、インデックステーブルの参照により各項目名ごとに
項目の順位を取得できるので、暗号化したデータを2分
検索法により効率よく検索できる。暗号化テーブルにつ
き範囲検索を行うには、図5及び図6を参照して説明し
たように、その範囲の下限値(図5の例では会員番号=
50)及び上限値(図5の例では会員番号=60)を暗
号化テーブルにおいて検索することが必要である。暗号
化テーブルには、下限値または上限値に一致する項目値
(図5の例では会員番号)が無いことがあり得る。この
ようなときには、2分検索法では、下限値以上であって
最も小さい値(以下、下限検索値という)および上限値
以下であって最も大きい値(以下、上限検索値という)
を検索する。範囲検索においては、その下限検索値から
上限検索値までの項目値のレコードを検索する。
【0056】図13及び図14におけるQ1からQ12
までのステップにより、まず下限値を検索し、次にQ1
からQ13までのステップを再度実行して上限値を検索
する。下限値の検索ではステップQ2における検索条件
を“以上”とし、上限値の検索ではステップQ2におけ
る検索条件を“以下”とする。その他のステップにおけ
る処理は下限値の検索と上限値の検索とで差はないの
で、以下では下限値の検索を主として説明する。以下の
説明においては、理解を容易にするために具体例を挙げ
る。その具体例として、本実施の形態のリレーショナル
データベースは、前述のところと同様に、項目名が「N
O」、「会員番号」、「氏名」および「住所」でなる暗
号化会員テーブルとそのインデックステーブルを格納し
ているものとする。本実施の形態において範囲検索を行
うときは、インデックステーブルを参照し、開始レコー
ド及び終了レコードのレコードNO並びに両レコードN
Oの間の順位のレコードNOを取得し、取得したレコー
ドNOをキーとして、暗号化テーブルを検索し、該当す
るレコードを取得する。ここで挙げる範囲検索の例で
は、暗号化会員テーブルにおける会員番号が50から6
0の範囲(50及び60を含む)にあるレコードを取得
することとする。したがって、下限値の検索では検索値
は50であり、上限値の検索では検索値は60である。
【0057】暗号化会員テーブルにおける会員番号が下
限値50又は50以上であって最も小さい値(下限検索
値)であるレコードを2分検索法で検索する手順をまず
説明する。ステップQ1では、インデックステーブルを
検索し、対象項目の最大インデックス値を取得し、この
最大インデックス値に1を加えた値を生成する。2分検
索法プログラムにおける変数MAXを最大インデックス値
に1を加えた値とする。従って、仮にインデックステー
ブルにおける最大インデックス値が79.1であったと
すると、小数点以下は切れ捨て、MAXは80となる。こ
の処理により得た最大インデックス値に1を加えた値
(小数点以下切れ捨て)を、暗号化テーブル及びインデ
ックステーブルのレコード数と仮定して以下のステップ
において2分検索法を行うこととなる。以下では、ステ
ップQ1においてレコード数が80と仮定され、ひいて
はステップQ1でMAXが80に設定された場合を例に説
明する。
【0058】インデックステーブルにおけるレコード数
を取得する際に、最大インデックス値に1を加えた値を
レコード数(小数点以下切り捨て)と仮定し、最大イン
デックス値をレコード数としない理由は次のとおりであ
る。インデックステーブルでは、各項目には順位が格納
されている。そこで、インデックス値は、図11を参照し
て説明したインデックステーブルの一括更新をすると、
最小順位(1位)から最大順位まで欠番の無い整数にな
る。しかしながら、インデックステーブルの一括更新の
前では、図8のステップを参照して説明したように、
インデックス値は小数点を含むことが有り、また図9の
レコード削除などによりインデックス値に欠番が生じる
こともある。そこで、その最大インデックス値は必ずし
もレコード数と一致しない。もっとも、小数点や欠番の
インデックス値は整数のインデックス値に比べ圧倒的に
少ないのが通常であるから、レコード数は最大インデッ
クス値に概ね近似すると仮定しても、実用上差し支えな
い。但し、ステップQ1からステップQ13に関する以
下の説明で明らかなように、2分検索ではレコード数を
インデックス値(順位)の最大値(図13及び図14の
例ではMAX)とみなし、この最大値を検索の最大範囲と
するので、レコード数を順位の最大値、すなわち最大イ
ンデックス値、より小さく仮定すると、その仮定レコー
ド数を越えたインデックス値のレコードは検索対象から
漏れる。例えば、最大インデックス値が、79.1であ
ったとき、小数点以下を切り捨て、レコード数を79と
するならば、インデックス値が79.1であるレコード
は範囲検索の対象外となる。範囲検索における検索対象
は暗号化テーブルの全レコードであるから、検索対象外
となるレコードが生ずれば、範囲検索における検索の範
囲に誤りが生じる。そこで、本実施の形態では、検索さ
れた最大インデックス値が小数点であったとき、その最
大インデックス値のレコードが検索範囲から外されるの
を防ぐために、最大インデックス値+1(小数点切り捨
て)をレコード数と仮定して、2分検索を行うようにし
たのである。最大インデックス値+1であって、小数点
以下を切り捨てた値は、最大インデックス値の小数点以
下を切り上げた値に等しい。
【0059】ステップQ2では、2分検索法プログラム
における変数MINを“1”に、変数Pを“MAX/2”に、
変数Sを“検索値”(=“50”)に、変数Wを下限値
検索用の“以上”にそれぞれ設定する。両テーブルのレ
コード数が80のとき、P=80/2=MAX/2=40
となる。ステップQ2により、インデックステーブルで
第1回目(ステップQ3からステップQ9でなるループ
のにおける1回目のループ)に検索する対象の順位P
は、レコード数(=80)の2分値(MAX/2=40)
に指定される。第2回目以降のインデックステーブルの
検索は、ステップQ7又はステップQ8で設定されたP
の順位について行われる。ステップQ3では、ループに
入る。
【0060】ステップQ4では、図示のSelect文を発行
し、インデックステーブルにおいて項目名「会員番号」
の項目値(「会員番号」項目における順位)がP(=4
0)であるレコードNOを取得し、暗号化テーブルの該
レコードNOにおける項目名「会員番号」の項目値を取
得し、その項目値を復号し、変数Aを復号した項目値と
する。
【0061】ステップQ5では、変数SとAとを比較す
る。ここで、S=Aであれば、検索値Sが復号値Aであ
ったこととなり、下限値が検索できたことになるので、
2分検索法の処理は終了する。ステップQ2では、イン
デックステーブルで第1回目に検索する対象の順位Pを
レコード数(=80)の2分値(MAX/2=40)に指
定しておいたので、ステップQ5では、順位がPである
項目の項目値(会員番号)が検索値Sに一致するか否か
を判定する。変数SとAとが不一致であり、S<A又は
S>Aであれば、ステップQ6へ進む。ステップQ6で
は、変数SとAとを再び比較する。S<Aならステップ
Q7へ進み、S>AならステップQ8へ進む。
【0062】ステップQ7では、まず変数MAX(=8
0)を変数Pとする。いま、ここではPはMAX/2(=
40)であるから、MAXは80から40へ変更される。
次にPを(P−MIN)/2+MINとする。いま、PはMAX/2
(=40)、MINは1であるから、Pが(MAX/2−1)
/2+1となる。(MAX/2−1)/2+1は、ここで
は20.5となるが、小数点以下は切り捨て、Pは20
となる。ステップQ7は、直前のステップQ4で取得し
たレコード数(=80)の2分値(MAX/2=40)の
順位より下方(小さい方の側)の範囲にインデックステ
ーブルの項目値(順位)があるレコードを、次回のステ
ップQ4で検索するように、変数Pを変更するステップ
である。
【0063】ステップQ8では、まず変数MINを変数P
にする。いま、ここではPはMAX/2(=40)である
から、MINは1から40へ変更される。次にPを(MAX−P)
/2+Pとする。いま、MAXは80、PはMAX/2(=4
0)であるから、Pが(MAX−40)/2+40とな
る。(MAX−40)/2+40は、ここでは60とな
る。このステップQ8は、直前のステップQ4で取得し
たレコード数(=80)の2分値(=40)の順位より
上方の範囲にインデックステーブルの項目値(順位)が
あるレコードを、次回のステップQ4で検索するよう
に、変数Pを変更するステップである。
【0064】ステップQ9では、P=MAX又はP=MINで
あれば次のステップQ10へ進み、そうでなければステ
ップQ3へ戻る。したがって、ステップQ9でP=MAX
又はP=MIN になるまで上記Q3からQ9のステップが
繰り返される。上述の例ではステップQ7の終了時にP
=20,MAX=40,MIN=1である。また、ステップQ
8の終了時にP=60,MAX=80,MIN=40である。
従って、ステップQ3からステップQ9までの第1回目
のループでは、ステップQ7又はステップQ8のいずれ
の径路を通ったとしても、ステップQ3へ戻る(但し、
ステップQ5でS=Aとなればループは終了する)。ス
テップQ3からステップQ9までのループを繰り返すこ
とにより、必ずP=MAX又はP=MINとなる。いま、レコ
ード数が80であり、会員番号1〜80までであり、欠
番が無く、しかも56.001といった小数点が無ければ、ス
テップQ3からステップQ9のループを繰り返すことに
より、ステップQ5においてS=Aとなり、検索値は検
索される。しかし、レコード数は同じく80であって
も、会員番号に欠番があったり、小数点があったりする
と、ステップQ3からステップQ9のループを繰り返し
ても、ステップQ5においてS=Aとはならないことが
ある。このようなときに、ステップQ9で、P=MAX又
はP=MINとなる。MAXとMINとは、整数値であり、違い
が1とかの近接した値となる。
【0065】ステップQ10では、ステップQ9でP=
MAX又はP=MINとなったときに、対象項目のインデック
ス値がMINからMAXまでの項目値Aを全て取得し、復号す
る。ステップQ1からステップQ10までの処理が図5
におけるステップ及びの処理に相当する。
【0066】ステップQ11では、検索条件Wを判定
し、Wが“以上”であればステップQ12へ進み、Wが
“以下”であればステップQ13へ進む。ステップQ1
2では、ステップQ10で復号した項目値の中からS以
上であり、しかも最も小さい項目値のレコードNOを取
得する。この項目値が範囲検索の下限値である。かくし
て、2分検索法における検索値Sが取得されたことにな
り、2分検索の処理はここで終了となる。範囲検索にお
いては、その検索値が範囲の下限値であるので、引き続
き上限値の検索に移行するため、ステップQ1に戻る。
上限値の検索ではステップQ2において検索条件を“以
下”とし、変数Wに“以下”を設定するので、ステップ
Q11における検索条件Wの判定を受け、ステップQ1
3へ進む。
【0067】ステップQ13では、ステップQ10で復
号した項目値の中からS以下であり、しかも最も大きい
項目値のレコードNOを取得する。この項目値が上限値
である。かくして、範囲検索における上限値が取得でき
たことになるので、2分検索の処理は終了する。以上の
ステップQ11からステップQ13までの処理が図5に
おけるステップの処理に相当する。ステップQ1乃至
Q13の処理は前述の「リレーショナルデータベースに
おける所定項目の範囲検索のための順位検索方法」にお
ける第1乃至第8のステップに相当する。
【0068】図16乃至図18は本発明の効果を示す概
念図である。図16では、本発明のリレーショナルデー
タベースは、ハッカー等の不正利用者によりアクセスさ
れたとしても安全であることが示してある。暗号化テー
ブルでは、秘密を要する項目のデータは暗号化されてい
るので、窃盗、通信傍受、成りすまし等によりデータを
入手した不正利用者は、入手した暗号データを解読でき
ない。データベースファイル自体の物理的盗難があった
としても、暗号データが解読されることはない。また、
不正なアクセスにより暗号化テーブルのデータを改竄し
ようとしても、暗号アルゴリズムを知らない不正アクセ
ス者には、意図した改竄はできない。このように、本発
明のリレーショナルデータベースは、平文のデータベー
スに比べ、不正な第三者の攻撃に対する防御能力におい
て極めて優れてた、安全性の高いデータベースである。
【0069】図17には、本発明のリレーショナルデー
タベースは、稼動中でもデータの加入、修正、削除が可
能であることを概念図で示してある。図7乃至図10を
参照して説明したように、本実施の形態のリレーショナ
ルデータベースでは、暗号化テーブルにおける暗号化が
項目単位で行われているので、データの追加、削除、修
正などがレコード単位で行える。即ち、この実施の形態
のリレーショナルデータベースにおいて、データの追
加、削除、修正の必要が生じたときに、ファイル全体を
変更するのではなく、レコード単位で変更が可能にな
り、リレーショナルデータベースを稼動させたままで、
データの追加、削除、修正などの変更ができる。
【0070】図18には、本発明のリレーショナルデー
タベースにネットワークを介してアクセスするとき、ネ
ットワークには暗号化されたデータが伝送されることが
概念図で示してある。データの暗号化及び複合化は、ク
ライアント側の暗号データベースプログラムで行われ
る。そこで、平文は、クライアントのパーソナルコンピ
ュータのメモリに一時的に存在するだけであり、そのク
ライアントのパーソナルコンピュータから出力されるデ
ータは暗号化されており、ネットワークを伝送するデー
タがたとえ傍受されたとしても、そのデータが解読され
ることはない。SQL言語により会員テーブルに問合せ
をし、例えば会員番号001の会員の氏名を検索する場
合、平文の会員テーブルに送るSelect文は、 Select 氏名from 会員テーブルwhere 会員番号=“00
1” となり、取得結果は、 カラム名“氏名”:値“鈴木太郎” となる。これに対し、本実施の形態のリレーショナルデ
ータベースに問合せをするときは、暗号化した会員テー
ブルに送るSelect文は、 Select 氏名from 会員テーブルwhere 会員番号=“ngai
83b” となり、取得結果は、 カラム名“氏名”:値“94nf8jamwn” なる。“ngai83b” は“001”の暗号化データであり、
“94nf8jamwn”は“鈴木太郎”の暗号化データである。
従って、ネットワークで第三者が通信を傍受したとして
も、秘密にするべきユーザデータがその第三者に知られ
ることはない。
【0071】以上に実施の形態を挙げ、本発明を具体的
に説明した。しかし、これらの実施の形態が本発明の範
囲を限定するものでないことはもちろんである。例え
ば、例示された各処理の手順は必ずしもその通りでなく
ても実施できる場合が多い。本発明を適用するネットワ
ークの例としてインターネットを示したが、ネットワー
クはLANでも差し支えない。
【0072】実施の形態では、一意な項目であるレコー
ドNOは暗号化テーブルでも平文のままとしたが、これ
を暗号化しても本発明は実施できる。暗号化テーブルに
おいてもレコードNOが暗号化されておれば、例えば、
図5のステップや図6のステップにおいて、レコー
ドNOをキーとして暗号化テーブルを検索する際に、そ
のレコードNOをまず暗号化し、暗号化レコードNOで
暗号化テーブルを検索すればよい。このとき、暗号化テ
ーブルから取得された暗号化レコードNOはクライアン
ト側の暗号データベースプログラムで復号すれば、その
復号したレコードNOをキーとしてインデックステーブ
ルを検索できる(例えば図6のステップ)。
【0073】また、実施の形態では、インデックステー
ブルにおける項目名は平文テーブルの項目名と同じにし
たが、インデックステーブルにおける項目名は平文テー
ブルの項目名とは相違しても差し支えない。クライアン
ト側の暗号データベースプログラムに変換テーブル備
え、インデックステーブルを検索するときは、項目名を
その変換テーブルでインデックステーブル用の項目名に
変換し、またインデックステーブルからその項目名を取
得したときは、その変換テーブルで平文の項目名に変換
するようにすれば、前述の実施の形態は同様に実施でき
る。
【0074】
【発明の効果】以上に実施の形態を挙げ、詳しく説明し
たように、本発明によれば、データベースファイルの窃
盗や改竄、或いは成りすましといった不正行為、又はデ
ータベースファイル自体の物理的盗難があったとして
も、そのデータベースファイルの秘密が保持され、しか
も、正当利用者によるデータベースファイルの検索に要
する手間と時間が、さして増大することのない、リレー
ショナルデータベース及びそのリレーショナルデータベ
ースにおけるインデックステーブルの作成方法が提供で
きる。
【図面の簡単な説明】
【図1】本発明の一実施の形態のリレーショナルデータ
ベースにおけるテーブルの構成例を示す図である。
【図2】図1の実施の形態におけるインデックステーブ
ルの作成方法を模式的に示す図である。
【図3】図1の実施の形態における暗号化テーブルの一
例を示す図である。
【図4】図1の実施の形態において、暗号化テーブルに
格納した1つのレコード内のデータをキーワードで検索
する方法を示す概念図である。
【図5】図1の実施の形態において、暗号化テーブルに
格納した多数のレコード内からある範囲を指定し、その
範囲内のレコードを検索する方法を示す概念図(前半
部)である。
【図6】図1の実施の形態において、暗号化テーブルに
格納した多数のレコード内からある範囲を指定し、その
範囲内のレコードを検索する方法を示す概念図(後半
部)である。
【図7】図1の実施の形態において、暗号化テーブルに
新規レコードを追加する方法を示す概念図(前半部)で
ある。
【図8】図1の実施の形態において、暗号化テーブルに
新規レコードを追加する方法を示す概念図(後半部)で
ある。
【図9】本実施の形態において、暗号化テーブルからレ
コードを削除する方法を示す概念図である。
【図10】図1の実施の形態において、暗号化テーブル
に格納されているレコードを修正する方法を示す概念図
である。
【図11】図1の実施の形態におけるインデックステー
ブルの一括更新の方法を示す概念図である。
【図12】図1の実施の形態におけるインデックステー
ブルの作成方法を示す流れ図である。
【図13】図1の実施の形態に2分検索法を適用し、デ
ータの検索をする方法を示す流れ図(前半部)である。
【図14】図1の実施の形態に2分検索法を適用し、デ
ータの検索をする方法を示す流れ図(後半部)である。
【図15】インターネットを介してデータベースのファ
イルにデータベースクライアントがアクセスしていると
きに、ハッカー等の不正な利用者がそのデータベースフ
ァイルにアクセスしている状態を模式的に示す図であ
る。
【図16】本発明のリレーショナルデータベースは、ハ
ッカー等の不正利用者によりアクセスされたとしても安
全であることを示す概念図である。
【図17】本発明のリレーショナルデータベースは、稼
動中でもデータの加入、修正、削除が可能であることを
示す概念図である。
【図18】本発明のリレーショナルデータベースにネッ
トワークを介してアクセスするとき、ネットワークには
暗号化されたデータが伝送されることを示す概念図であ
る。
───────────────────────────────────────────────────── フロントページの続き (54)【発明の名称】 リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブ ルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索 のための順位検索方法

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】レコードが項目単位で暗号化されている暗
    号化テーブルと、該暗号化テーブルに対応する平文テー
    ブルの各項目における項目値の順位を記録したインデッ
    クステーブルとを有することを特徴とするリレーショナ
    ルデータベース。
  2. 【請求項2】前記暗号化テーブルでは、少なくとも1つ
    の項目が暗号化されていることを特徴とする請求項1に
    記載のリレーショナルデータベース。
  3. 【請求項3】前記暗号化テーブルでは、少なくとも一意
    な値の項目が平文であることを特徴とする請求項1又は
    2に記載のリレーショナルデータベース。
  4. 【請求項4】前記暗号化テーブルでは、一意な値の項目
    が暗号化されていることを特徴とする請求項1又は2に
    記載のリレーショナルデータベース。
  5. 【請求項5】前記暗号化テーブルでは、一意な値の項目
    だけが平文であり、一意な値の項目以外の項目は暗号化
    されていることを特徴とする請求項1乃至3に記載のリ
    レーショナルデータベース。
  6. 【請求項6】前記暗号化テーブルでは、全ての項目が暗
    号化されていることを特徴とする請求項1,2又は4に
    記載のリレーショナルデータベース。
  7. 【請求項7】前記インデックステーブルにおける各項目
    名は、前記平文テーブルにおける各項目名と対を成し、
    該両テーブルにおける該対をなす両項目名は同じである
    ことを特徴とする請求項1乃至6に記載のリレーショナ
    ルデータベース。
  8. 【請求項8】前記インデックステーブルにおける各項目
    名は、前記平文テーブルにおける各項目名と対を成し、
    該両テーブルにおける該対をなす両項目名は互いに相違
    することを特徴とする請求項1乃至6に記載のリレーシ
    ョナルデータベース。
  9. 【請求項9】前記順位は、昇順又は降順のうちのどちら
    か一方の順位付け方式による順位であることを特徴とす
    る請求項1乃至8に記載のリレーショナルデータベー
    ス。
  10. 【請求項10】レコードが項目単位で暗号化されている
    暗号化テーブルと、該暗号化テーブルに対応する平文テ
    ーブルの各項目における項目値の順位を記録したインデ
    ックステーブルとを有するリレーショナルデータベース
    における該インデックステーブルの作成方法において、 ポインター値iを1に設定する第1のステップと、 前記平文テーブルを参照することにより、該平文テーブ
    ルにおける第1の暗号化対象項目に関しソート処理を行
    い、該ソート処理により得た順位の順に一意な値の項目
    の項目値A()を取得し、該一意な値の項目の項目値A
    ()を該順位に対応付けて配列する第2のステップと、 前記ポインター値iに対応する前記一意な値の項目の項
    目値A(i)と、該ポインター値iとを前記インデック
    ステーブルに記録する第3のステップと、 前記iをi+1に替える第4のステップと、 前記第3のステップ乃至第4のステップを前記平文テー
    ブルの全レコード数分繰り返す第5のステップと、 前記第1のステップ乃至第5のステップを前記平文テー
    ブルにおける第1の暗号化対象項目以外の暗号化対象項
    目について順次に行う第6のステップとからなることを
    特徴とするインデックステーブルの作成方法。
  11. 【請求項11】レコードが項目単位で暗号化されている
    暗号化テーブルと、該暗号化テーブルに対応する平文テ
    ーブルの各項目における項目値の順位を記録したインデ
    ックステーブルとを有するリレーショナルデータベース
    における所定項目の範囲検索のための検索であって、該
    範囲検索の下限値および上限値を検索値とし、該下限値
    以上であり、かつ最も小さい値の該インデックステーブ
    ルにおける該所定項目の項目値を第1の順位とし、該上
    限値以下であり、かつ最も大きい値の該インデックステ
    ーブルにおける該所定項目の項目値を第2の順位とする
    とき、該第1および第2の順位を検索する方法におい
    て、 前記インデックステーブルにおける所定項目の最大項目
    値を検索し、該最大項目値を基に該インデックステーブ
    ルにおけるレコード数を仮定し、該仮定レコード数を変
    数MAXとする第1のステップと、 変数MINを1に、変数MAX/2の整数部を変数Pに、前記
    下限値を検査するときは該下限値を検索値とするとも
    に、前記上限値を検索するときは該上限値を検索値と
    し、該検索値を変数Sに、検索条件Wを“以上”に、該
    範囲検索における上限値を検索するときは該検索条件W
    を“以下”に、それぞれ設定する第2のステップと、 ループを開始する第3のステップと、 前記暗号化テーブル及びインデックステーブルを検索
    し、該インデックステーブルにおける前記所定項目の項
    目値が変数Pと同じであるレコードにおける一意な値の
    項目の項目値を取得し、該暗号化テーブルにおける該一
    意な値の項目の項目値が属するレコードの該所定項目の
    項目値を取得し、取得した該項目値の復号により平文の
    項目値を生成し、変数Aを該平文の項目値とする第4の
    ステップ、 検索値Sと変数Aとを比較し、S=Aであるとき、前記
    第4のステップでインデックステーブルから取得した前
    記一意な値の項目が属する該インデックステーブルにお
    けるレコードの前記所定項目の項目値を前記第1または
    第2の順位として取得し、S<Aのとき、変数MAXを変
    数Pとし、変数Pを(P−MIN)/2+MINに変更すると
    ともに、S>Aのとき、変数MIN を変数Pとし、変数P
    を(MAX−P)/2+Pに変更する第5のステップと、 前記第5のステップの結果がP=MAX又はP=MINに至っ
    たとき、ループを終了する第6のステップと、 前記暗号化テーブル及びインデックステーブルを検索
    し、該インデックステーブルにおける前記所定項目の項
    目値が変数MINからMAXまでの範囲にあるレコードの一意
    な値の項目を選択し、該暗号化テーブルにおいて該一意
    は値の項目を同じくするレコードの該所定項目の項目値
    を取得し、復号する第7のステップと、 前記検索条件Wが“以上”であるとき、前記第7のステ
    ップで復号した項目値のうちで検索値S以上であり、か
    つ最小である項目値が属するレコードの一意な値の項目
    の項目値を取得し、前記検索条件Wが“以下”であると
    き、前記第7のステップで復号した項目値のうちで検索
    値S以下であり、かつ最大である項目値が属するレコー
    ドの一意な値の項目の項目値を取得する第8のステップ
    と、 前記第8のステップで取得した前記一意な値の項目と同
    じ項目が属する前記インデックステーブルにおけるレコ
    ードの前記所定項目の項目値を前記第1または第2の順
    位とする第9のステップとからなり、 前記第2のステップにおいて検索条件を“以上”に設定
    したときは、第5および第9のステップでは、前記所定
    項目の項目値を前記第1の順位として取得し、前記第2
    のステップにおいて検索条件を“以下”に設定したとき
    は、第5および第9のステップでは、前記所定項目の項
    目値を前記第2の順位として取得することを特徴とする
    リレーショナルデータベースにおける所定項目の範囲検
    索のための順位検索方法。
  12. 【請求項12】レコードが項目単位で暗号化されている
    暗号化テーブルと、該暗号化テーブルに対応する平文テ
    ーブルの各項目における項目値の順位を記録したインデ
    ックステーブルとを有するリレーショナルデータベース
    における範囲検索の方法において、 所定の項目に関する第1の順位をキーとして前記インデ
    ックステーブルを検索し、該所定の項目における項目値
    が該第1の順位以上または以下であるレコードの一意な
    値の項目の項目値を取得し、 前記インデックステーブルの検索で取得された前記一意
    な値の項目の項目値をキーとして前記暗号化テーブルを
    検索することにより、前記所定の項目に関する順位が前
    記第1の順位以上または以下であるレコードの暗号化項
    目値を取得することを特徴とする範囲検索の方法。
  13. 【請求項13】レコードが項目単位で暗号化されている
    暗号化テーブルと、該暗号化テーブルに対応する平文テ
    ーブルの各項目における項目値の順位を記録したインデ
    ックステーブルとを有するリレーショナルデータベース
    における範囲検索の方法において、 所定の項目に関する第1及び第2の順位をキーとして前
    記インデックステーブルを検索し、該所定の項目におけ
    る項目値が該第1の順位以上であり、かつ該第2の順位
    以下であるレコードの一意な値の項目の項目値を取得
    し、 前記インデックステーブルの検索で取得された前記一意
    な値の項目の項目値をキーとして前記暗号化テーブルを
    検索することにより、前記所定の項目に関する順位が前
    記第1の順位以上であり、かつ前記第2の順位以下であ
    るレコードの暗号化項目値を取得することを特徴とする
    範囲検索の方法。
  14. 【請求項14】前記第1の順位が請求項11の方法で検
    索された前記第1の順位である請求項12に記載の範囲
    検索の方法。
  15. 【請求項15】前記第1および第2の順位が請求項11
    の方法で検索された前記第1および第2の順位である請
    求項13に記載の範囲検索の方法。
  16. 【請求項16】取得した前記暗号化項目値を平文に復号
    することを特徴とする請求項12乃至15に記載の範囲
    検索の方法。
JP2001383739A 2001-12-17 2001-12-17 リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法 Expired - Fee Related JP4050050B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001383739A JP4050050B2 (ja) 2001-12-17 2001-12-17 リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001383739A JP4050050B2 (ja) 2001-12-17 2001-12-17 リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法

Publications (2)

Publication Number Publication Date
JP2003186725A true JP2003186725A (ja) 2003-07-04
JP4050050B2 JP4050050B2 (ja) 2008-02-20

Family

ID=27593697

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001383739A Expired - Fee Related JP4050050B2 (ja) 2001-12-17 2001-12-17 リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法

Country Status (1)

Country Link
JP (1) JP4050050B2 (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060058546A (ko) * 2004-11-25 2006-05-30 펜타시큐리티시스템 주식회사 데이터베이스 암호화 및 접근 제어 방법 및 장치
JP2007272539A (ja) * 2006-03-31 2007-10-18 Ns Solutions Corp セキュリティ装置およびアプリケーションサーバシステム
JP2007334616A (ja) * 2006-06-14 2007-12-27 Nec Corp データ入出力装置、データ入出力方法、データ入出力プログラム
JP2008517354A (ja) * 2004-05-20 2008-05-22 イングリアン ネットワークス インコーポレーテッド データベーステーブル探索用の暗号化されたデータベースインデックスを構築する方法を導入されたコンピュータ
JP2009099151A (ja) * 2007-10-16 2009-05-07 Penta Security Systems Inc 暗号化されたカラムを含むデータベースにおけるクエリーの暗号化変調による使用者クエリー処理装置及び方法
JP2010507172A (ja) * 2006-10-20 2010-03-04 マイクロソフト コーポレーション レンジド・ルックアップ
KR100995123B1 (ko) * 2008-01-16 2010-11-18 재단법인서울대학교산학협력재단 암호화 방법, 클라이언트의 데이터 처리 방법
JP4827969B2 (ja) * 2006-10-04 2011-11-30 イーグローバル システムズ カンパニー 暗号化されたコラムのインデックス構築方法
WO2013069776A1 (ja) * 2011-11-11 2013-05-16 日本電気株式会社 データベース暗号化システムと方法及びプログラム
CN102023985B (zh) * 2009-09-17 2014-05-28 日电(中国)有限公司 盲化混合倒排索引表产生方法和设备、联合关键字搜索方法和设备
US9189647B2 (en) 2012-04-24 2015-11-17 Nec Corporation Encrypted database system, linking method, and medium
JP2018061171A (ja) * 2016-10-06 2018-04-12 富士通株式会社 暗号化システム、暗号化方法、暗号化装置および暗号化プログラム
CN108319862A (zh) * 2017-01-16 2018-07-24 阿里巴巴集团控股有限公司 一种数据文件处理的方法和装置
US11233629B2 (en) 2018-01-17 2022-01-25 Mitsubishi Electric Corporation Registration apparatus, search operation apparatus, data management apparatus

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008517354A (ja) * 2004-05-20 2008-05-22 イングリアン ネットワークス インコーポレーテッド データベーステーブル探索用の暗号化されたデータベースインデックスを構築する方法を導入されたコンピュータ
KR20060058546A (ko) * 2004-11-25 2006-05-30 펜타시큐리티시스템 주식회사 데이터베이스 암호화 및 접근 제어 방법 및 장치
JP2007272539A (ja) * 2006-03-31 2007-10-18 Ns Solutions Corp セキュリティ装置およびアプリケーションサーバシステム
JP2007334616A (ja) * 2006-06-14 2007-12-27 Nec Corp データ入出力装置、データ入出力方法、データ入出力プログラム
JP4697451B2 (ja) * 2006-06-14 2011-06-08 日本電気株式会社 データ入出力装置、データ入出力方法、データ入出力プログラム
JP4827969B2 (ja) * 2006-10-04 2011-11-30 イーグローバル システムズ カンパニー 暗号化されたコラムのインデックス構築方法
JP2010507172A (ja) * 2006-10-20 2010-03-04 マイクロソフト コーポレーション レンジド・ルックアップ
JP2009099151A (ja) * 2007-10-16 2009-05-07 Penta Security Systems Inc 暗号化されたカラムを含むデータベースにおけるクエリーの暗号化変調による使用者クエリー処理装置及び方法
KR100995123B1 (ko) * 2008-01-16 2010-11-18 재단법인서울대학교산학협력재단 암호화 방법, 클라이언트의 데이터 처리 방법
CN102023985B (zh) * 2009-09-17 2014-05-28 日电(中国)有限公司 盲化混合倒排索引表产生方法和设备、联合关键字搜索方法和设备
CN103392178A (zh) * 2011-11-11 2013-11-13 日本电气株式会社 数据库加密系统、方法和程序
JP5344109B1 (ja) * 2011-11-11 2013-11-20 日本電気株式会社 データベース暗号化システムと方法及びプログラム
JP2014013582A (ja) * 2011-11-11 2014-01-23 Nec Corp データベース暗号化システムと方法及びプログラム
KR101388724B1 (ko) 2011-11-11 2014-04-25 닛본 덴끼 가부시끼가이샤 데이터베이스 암호화 시스템과 방법 및 컴퓨터 판독가능 기록 매체
WO2013069776A1 (ja) * 2011-11-11 2013-05-16 日本電気株式会社 データベース暗号化システムと方法及びプログラム
US8812877B2 (en) 2011-11-11 2014-08-19 Nec Corporation Database encryption system, method, and program
CN103392178B (zh) * 2011-11-11 2015-08-26 日本电气株式会社 数据库加密系统、方法和程序
US9349023B2 (en) 2011-11-11 2016-05-24 Nec Corporation Database encryption system, method, and program
US9189647B2 (en) 2012-04-24 2015-11-17 Nec Corporation Encrypted database system, linking method, and medium
JP2018061171A (ja) * 2016-10-06 2018-04-12 富士通株式会社 暗号化システム、暗号化方法、暗号化装置および暗号化プログラム
CN108319862A (zh) * 2017-01-16 2018-07-24 阿里巴巴集团控股有限公司 一种数据文件处理的方法和装置
US11233629B2 (en) 2018-01-17 2022-01-25 Mitsubishi Electric Corporation Registration apparatus, search operation apparatus, data management apparatus

Also Published As

Publication number Publication date
JP4050050B2 (ja) 2008-02-20

Similar Documents

Publication Publication Date Title
Chen et al. An efficient privacy-preserving ranked keyword search method
US10664610B2 (en) Method and system for range search on encrypted data
CN109493017B (zh) 基于区块链的可信外包存储方法
KR100839220B1 (ko) 암호화된 데이터베이스 검색 방법 및 그 시스템
US20080097954A1 (en) Ranged lookups
CN112800088A (zh) 基于双向安全索引的数据库密文检索系统及方法
EP1763796A2 (en) Encrypted table indexes and searching encrypted tables
Zhu et al. A novel verifiable and dynamic fuzzy keyword search scheme over encrypted data in cloud computing
CN106934301B (zh) 一种支持密文数据操作的关系型数据库安全外包数据处理方法
JP2003186725A (ja) リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法
Wang et al. Towards secure and effective utilization over encrypted cloud data
US20090022321A1 (en) Personal information management system, personal information management program, and personal information protecting method
Wodi et al. Fast privacy-preserving keyword search on encrypted outsourced data
Hacigümüş et al. Ensuring the integrity of encrypted databases in the database-as-a-service model
CN114531220A (zh) 一种基于前向和后向隐私的高效容错动态短语搜索方法
CN114826703A (zh) 基于区块链的数据搜索细粒度访问控制方法及系统
CN105897419B (zh) 一种多用户动态关键词可搜索加密方法
Wang et al. Bucket‐based authentication for outsourced databases
Zhang et al. Towards efficient and privacy-preserving user-defined skyline query over single cloud
CN114579998A (zh) 一种区块链辅助的医疗大数据搜索机制与隐私保护方法
WO2018080857A1 (en) Systems and methods for creating, storing, and analyzing secure data
KR100910303B1 (ko) 가변코드 테이블을 이용한 데이터 암복호화 장치 및 그 방법
Cuzzocrea et al. An effective and efficient technique for supporting privacy-preserving keyword-based search over encrypted data in clouds
Venugopal et al. A novel approach for preserving numerical ordering in encrypted data
Balpande et al. Data integrity and confidentiality in outsourced database

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041125

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20060403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071017

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: 20071120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071128

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees