【発明の詳細な説明】
データを安全に格納する方法及び装置
[0001]産業上の利用分野
この発明はデータの安全な格納方法に関するものである。より具体的には、こ
の発明はデータの平文化の作業を必要としない方法で、有意的に暗号化されたデ
ータを、安全に格納することに関するものである。
[0002]本発明の背景
データベースシステムは、様々なデータ集合の信頼性や秘匿性を保つことが要
求されており、従って承認された個々の利用者や利用者のグループのみが、デー
タにアクセスしたり操作することを許される。この要求は一般に利用者の認証コ
ントロールを通して扱われる。オーディト トレール(Audit trail)も同時に保
存され、少なくとも理論的には、ある利用者がどの情報にアクセスしたか、その
アクセスはいつ行なわれたかなどの経過が記録される。その他の目的の中で、オ
ーディト トレールは、データベースシステム上のデータに対してアクセスし、
操作する責任を明確にすることを意図している。それによって、システム上のデ
ータへ不適切なアクセスや操作
がなされることを妨げることに役立っている。
アクセス制御とオーディト トレールは、データベースシステムの秘密保持を
支援するのに有用であり、用心深い機構であるが、これらの方法を使ったデータ
ベースシステムは、依然として秘密性の破壊を受け易い。破壊を受け易い状態で
残っている基本的な領域として、システムを管理している人によるものが挙げら
れる。システムを管理する権限を持った人は、オーディト トレールの記録を採
らないようにしたり、消したり、書き換えたりすることができる。システムを管
理している人は、効果的に仕事をすることが求められているために、現在の技術
に制限を加え、データベースの情報にアクセスする特別な権限をもっている。そ
の制限の主なものは、現在のデータベースシステムには効果的かつ効率的なデー
タの暗号化によるセキュリティーが存在しないことによる。さらには、たとえば
コンピュータハッカーによりアクセスコントロールを無効化されてしまったとき
、データベースの暗号化による防御がなされていないことにより、データの機密
が危険にさらされる。
[0003]現在の手法による問題点
現在存在する暗号の技術をデータベースのセキュリティーを向上するために利
用した場合、それはデータベースのパフォーマンスに影響することが広く知られ
ている。
強力な暗号化手法はデータベースにおけるデータ構造を変化させてしまうため、
多くの種類のクエリー操作(query operation)と、その他のDML(database manipu
lation language)(データベース操作言語)は激しく影響を受ける。なぜならデー
タベースを操作するために、まずデータを平文化するという作業が必要となるた
めである。さらには、現在存在する暗号化の手法によりデータの平文化を行なう
ことは、情報を平文の状態でさらけ出すことにもなる。
[0004]
データベースの暗号化には、コミュニケーションの暗号化との間に多くの異な
る特徴がある。データベースの暗号化とコミュニケーションの暗号化の違いにつ
いては以下のものを含むいくつもの場所で論じられてきている。[Gudes,E."Th
e Application of Cryptography to Data Base Security."Ph.D.Dissertation
,Ohio State University,1976]。[Gudes,E.,H.S.Koch,and F.A.Stahl."T
he Applications of Cryptography for Data Base Securityo."In Prceedings o
f the National Computer Conference,AFIPS Press,1976,pp.97-107],[Seb
erry J.And J.Pieprzyk."Cryptography:An Introduction to Computer Securi
ty."New York:Prentice-Hall,1989,pp.233-259]。これらの参考文献は本発明
の背景としてここに挿入し、出願の一部とした。データ
ベースは、複数の利用者が、共有して格納されているデータにアクセスし、クエ
リー(query)を発し操作できるように作成されている。それらの利用者は典型的
には様々な種類の格納された情報に対して異なった権限を持つ。ここで強調した
いのは、様々なアクセス権限を伴っている共有して格納されたデータは、単純な
通信について存在する一般の問題とは全く異なった問題がある。単純な通信では
、通信の当事者は、共通の共有している格納データに操作を加えることを通常は
問題にしないからである。
[0005]
データーベースは、それに属する記録が選択的にかつ予想できないように転換
されることを許している。この特質は、メッセージの操作が問題ではなく、むし
ろ単純である通信に適用される特質と較べて、データベースへ効果的に加え得る
暗号化の種類にさらなる制限を加えることになる。データベースの暗号化につい
ての要求に答えることは、ファイルの暗号化における直接的な要求と比較して明
らかに難しい。
[0006]
ほとんどすべてのデータベースにおいて、クエリー要求に対して適切なパフォ
ーマンスを得るためには、インデックスの作成を行なうことが不可欠である。デ
ータベースの情報にアクセスする際に、インデックスは暗号化
された状態のままで、それを効果的に利用する一般的な手法は知られていない。
それゆえ、インデックスが活用されるためには、それは暗号化されていない状態
でなければならない。
[0007]データベースの暗号化の概要
Gudes[Gudes,E."The Application of Cryptography to Data Base Security
."Ph.D.Dissertation,Ohio State University,1976]と、Gudes,Koch and St
ahl[Gudes,E.,H.S.Koch,and F.A.Stahl."The Application of Cryptogr
aphy for Data Base Security."In Proceedings of the National Computer Con
ference,AFIPS Press,1976,pp.97-107]は、データベースの暗号化が、コミ
ュニケーションの暗号化と区別される3つの根本的な制約を指摘した。これらの
制約は、データベースに効果的に適用することができる暗号化の種類に厳しい制
限をはめる事になる。まず第1に、その方法は選択的にそして効率的にデータを
取り出すことが出来なければならない。なぜならデータベースの中のデータはこ
れらの操作を容易にするように配置されていて、個々のレコードの暗号化と平文
化は他のレコードを同時に含まないことが望ましい。第2に、データはデータベ
ースの中に長期にわたり含まれることが通常である。もしデータが暗号化されて
いるとした時に、暗号鍵の変更が要求
されたとしたら、新しい鍵をつかってのデータの再暗号化をする必要が生じる。
第3に、"取扱い上の問題"が存在する。もしデータベースの操作が、暗号化され
たデータに対して直接行なうことが出来たとしたら、すなわち平文のデータと同
じ方法で暗号化されたデータを扱うことが出来るとしたら、それはとても都合の
良いことである。これは平文の暗号化と、暗号の平文化に含まれるオーバーヘッ
ドをなくすだけでなく、曝されることがあるデータ操作サイクルのいかなる場所
においても、平文のままでデータが存在することがないことを意味し、結果とし
てデータの安全性を高めることにもなる。
[0008]
GudesとGudes、KochとStahlには、マルチレベル形式がデータベースの暗号化
の課題に対処するための、もっとも適切なモデルであると指摘されている。デー
タベースは複数のレベルをもつと認識される。すなわち、データは、複数のデー
タ構造の形式で存在するし、この方式にしたがって参照でき、複数のレベルの間
にマッピングが存在するものとして管理される。このマッピングは、実際には、
データの変形を定義するが、これらのデータの変形はデータベース設計における
当たり前の機能であるから、それらは暗号によるセキュリティー機能を使えるよ
うに利用し、拡張することが可能である。彼らの分析は、複数レベルのデータベ
ース構造の隣り合うレベル間
で、利用可能な様々なタイプの暗号化手法を検証した。Gudesらは独自に物理的
にも論理的にもいくつかのレベルを持つデータベース構造を定義した。彼らの複
数レベルデータベース構造は、データベースの異なるレベル間における暗号化の
可能性を目立たせるために使われる。データベースにおいては、データがシステ
ムの様々な物理メディア(ディスク、メモリー、ディスプレイ)上に異なった形態
で存在し、それゆえデータは様々な物理レベルをもち、そのそれぞれは対応する
絶対的な(論理的な)意味あいを持つ、という事実を彼らは強調している。様々
なタイプの暗号による変形はこの構造における様々なレベルの間で実行可能であ
る。論理レベルはデータベースレコードの形式を様々なレベルにおいて適当であ
るように定義する一方、物理レベルは論理レコードにより定義される形式による
具体的なデータから構成される。典型的には、任意の数の物理レコードが、すべ
ての定義済みの論理レコードのために存在する。Gudes及び、Gudes、KochとStah
lによる成果は1976年に発表されているが,それにもかかわず彼らのモデルは分散
コンピュータ構造のことも考慮している、というのも複数レベルデータベース構
造における様々なレベルは物理的に分離した場所に置くことも可能であると暗に
理解されるからである。
[0009]
Gudesらはデータベース構造における5つの論理的な段
階を定義した。
1)ユーザ論理レベル
2)システム論理レベル
3)アクセス論理レベル
4)格納レベル(又は、組織化された格納レベル)
5)組織化されていない格納レベル
1つ若しくはそれ以上の物理レベルは、物理媒体の数に応じてそれぞれの論理レ
ベルに割り当てることが可能である。論理レベルと物理レベルとの対応があるか
どうかは、実装の詳細さにも依存する。
[0010]
Gudesらは、データベースアーキテクチャの隣接するレベル間で写像する過程
で、適用される所定タイプの暗号化変換を詳述している。Seberry、Peiprzykは
、Gudes、Koch、Stahlによるコンピュータセキュリティーに関する文献の最新の
要約と分析とを示した。[Seberry J.And J.Pieprzyk."Cryptography:An Int
roduction to Computer Security."New York:Prentice-Hall,1989,pp.233-25
9]
[0011]
Gudesらの複数レベルのデータベース構造によって達成された暗号法は、コン
ピュータシステムにおいて保管されているままの状態の暗号を参照する。複数レ
ベルにわたる暗号化は、暗号化されたデータはどのように操作さ
れるべきかという問題を実際には出さない。Gudesらによる複数レベルの暗号化
は、暗号化されたデータ要素を直接操作することをすべての場合については可能
とはしない。暗号化されたデータは、ある項目がアクセスされる前に、先ず平文
化される必要があるものである。
[0012]
データベースの暗号化が直面する根本的な制約は、データを保管する際には
、操作をする上で便利な状態でなければならないという要求である。データベー
スにおける隣り合うレベルに暗号カギを利用する場合の暗号化の強度は、この条
件により制限される。究極的には、容易に取り出せるように低いレベルでデータ
を格納することが必要である。もしこれが出来ないのであれば、クエリーを受け
付けることができる形式にデータを再構成しなければならないため、追加の作業
を行なう必要がある。
[0013]
異なった形式の暗号化の変換を組み合わせれば非常に強力な暗号となりうる。
その一方で、自然と形式化された複数レベルデータベース構造においては、本質
的に利用可能であるデータベースのレベル数が制限されていることが、暗号化に
よるセキュリティへのクエリーに厳しい制約を加えることになる。暗号化による
セキュリティは、データベースに大きな変化を加えて、悪化させる様なパフォー
マンスを行なうことなく、暗号を使ってデー
タベースから究極的に獲得するものである。
[0014]
複数レベルデータベース構造の概念は良く知られている。様々な複数レベルデ
ータベース構造と関連した用語が定義されている。"ANSI/SPARC"複数レベルデー
タベース構造は、複数レベルデータベース構造の中で最も広く認識されているモ
デルである。DateによるANSI/SPARC構造についての説明である[Date,C.J."An
Introduction to Database Systems."5th ed.New York:Addison-Wesley,1990
,Vol.I.,Chapter 2,pp.31-54]を、ここで本発明の背景として出願の一部と
する。
[0015]暗号/Qコード
暗号には大きく2つの主流の分野がある。暗号カギとqコード化である。それ
ぞれの分野は異なった種類の暗号化を扱う。すなわちそれぞれ暗号カギとqコー
ドである。暗号はアルファベットにおける個々の記号や、記号のグループの変換
を含む。ここでいう記号には、例えば、大文字、小文字、数字そして句読点など
も含む。暗号化の変換は、意味的な単位を取り扱う特別なルールを使うことなく
、完全に一般的な方法でそれぞれの記号や、記号のグループに対して当てはめら
れる。任意のそして意味のない記号による文章は、暗号化したのと同様に、容易
に意味のある文章にできる。暗号化が実行される文章構
成上の1単位は、偶然により意味を持つ内容となる。Qコードは、それとは逆に
、文章構成上の単位、例えば単語や、文節や、場合によっては明確に意味を持つ
内容を持つ文全体を変化させることを含む。どんな些細なqコードでも大きなコ
ード表を使う必要がある。例をしめすことでこの理由は明確になる:英語の文章
を変換することができる単純なqコードは、固有名詞も含むすべての英語の単語
を含むのと等価なコード表を必要とする。qコードで用いられるコード表は、コ
ードにおけるキーを構成する。コード表の中のエントリーは、それ自身をカギと
みなすこともできる。
[0016]
暗号解析をおこなう手法は、本質的には平文の領域における統計的特徴に基づ
く。原文が例えばある特定の自然言語でのメッセージであると推測される暗号を
解析しようと試みる時には、暗号解析者は推測される言語の平文におけるそれぞ
れの文字や、文字の組み合わせの出現頻度について検討する。例えばqコードに
おいては、個々の単語と単語の組み合わせの頻度について検討される。
[0017]
SPARCOM概略
SPARCOMというのは"疎関連接続行列(Sparse Associative Relational Connect
ion Matrix)"の頭字語である。
これはAshany氏により提案され研究されている手法であって、データベースシス
テムにおいて、データを動的に構築し、早い反応時間と高いスループットを、多
くの種類の応用に用いられる。このアプローチにおいては、離散的な値をとるデ
ータを大規模な疎行列(sparse matrix)に変換し、データベース操作を行なうた
めに広範囲な疎行列技術を用いて、データベース操作することを可能にする。SP
ARCOMのアプローチでは、その疎行列を圧縮された状態において格納や操作を行
ない、それにより大きな格納スペースと実行時間を節約する。SPARCOMに固有の
正規化過程は、任意の属性について複数の値をもつ実体により、屡々生じさせら
れるデータの冗長性を減少させる。データベースの操作は、内部レベルでデータ
ベースがもっている構造化された情報を含む疎行列構造に対して、算術的な操作
により実行される。
[0018]
SPARCOMは、離散的な値を取るデータに対して、その内容を呼び出す方法を提
供する。すなわち、データの要素はその内容の関数として呼び出され、取り出さ
れる。内容を呼び出すためにSPARCOMは与えられた実体と属性との関係を、それ
に対応する実体と特性との関係に変換する。実体と属性との関係は、ある特定し
た関係で目的が設定されると、どんな属性を有しているかを示している。対応す
る実体と特徴との関係は、設定されたオブジェクト
が、設定された属性の特性として取りうる値のすべての値に対応するだけの様々
な特性を持っているかどうかを示す。実体と特徴との関係は行列として表現され
る。その行列は通常はきわめて疎である。
これまでの関係付けデータベースの理論においては、任意の属性に対して、複数
の値を持つオブジェクトの為にいくつもの関係を作る必要がある。(すなわち、
テーブルの中に複数の組を生成する)のに対し、SPARCOMでは、それが実体と特
性の関係を基本として構築されているため、このような関係を作る作業の必要は
ない。
[0019]
アシャニィ氏は、Binary Property MatrixがSPARCOMにおける基本的なデータ
構造であり、それが実体と属性との関係に対応すると記述している。[Ashany,pp
.62-63]:A1,A2,...,Anという属性をもつn次元の属性空間があり、それは基
底d1,d2,...,dnのそれぞれ別々の成分D1,D2,...,Dnからなる領域を持つ
が、それらはN次元の特性空間に以下の式に従い変換することができる。
この独立した特性P1,P2,...,Pnの数は、n次元の属性空間における点から
、N次元の特性空間へとあらゆる点を写像する。明らかにNはnよりも大きい、
そして高次元のユークリッド空間における点として表現するために、さらに多く
の軸が必要となる。それゆえに大きなベクトルとなる。特性空間においては、し
かしながら、それぞれの軸において2つの区別され得る点しかない;0もしくは1
;そしてそれぞれの成分の軸はある特性を表わす。
[0020]
nの単一値の属性によって、属性空間に表現される実体、すなわち;n桁
の数によって、n個の1とN−n個の0の値からなるN桁の特性空間により表現さ
れる。1という値は当該の属性をあらわす場所に挿入される。性別をあらわすた
めの属性の基本的な種類数は(男,女)の2つであり、目の色をあらわす属性の
基本的な種類は5つ(黒,青,茶,緑,赤褐色)であるため、(男,青)という特性
をもつ実体、すなわち性別が男で目の色が青であるという実体は7桁の数E(1,0,0
,1,0,0,0)で表現される。2要素の組は、0でない2つの要素を含む7桁の数に変
換される。単一の値をもつ属性がそれぞれ基本的な数(cardinal number)をもち
、例えば、d1=10で、d2=12であるような時、属性空間における2要素の
組は特性空間における22桁のものに変換される。再び言うと、2つの0でない値
と、20の0の値を持つバイナリベクトルである。これらの特性空間におけるベ
クト
ルは、Extended Binary Vectors(EBV)(拡大バイナリベクトル)と呼ばれ、通常そ
のベクトルは疎大である。
[0021]
m個の実体の集合は、m×nのBinary Connection Matrix(BCM)(バイナリ
連結行列)と呼ばれる0,1からなる(バイナリー)行列により表現される。なぜなら
その0でない要素はそれぞれの実体と、そのそれぞれが対応する特性との間に存
在する関係を示すことになるからである。
この行列はより具体的にはバイナリー特徴行列(Binary Property Matrix:BP
M)と呼ばれる。EBVの重要な特徴の1つに、値が1つしかない属性と複数の値を採
りうる属性は、冗長問題を解く上では、1つのそして同じベクトルとして表現さ
れる。
[0022]
バイナリー特徴行列の作りかたから生じる特徴として、それぞれ、そしてすべ
ての各特性がインデックスされていることから、それ自身が完全に反転したファ
イル(inverted files)でもある(さらには直接ファイルでもある)という重要な特
徴を持つ事実があり、それゆえバイナリ特徴行列は本質的に、特徴を取り出す作
業をするために特に適している。領域の問い合わせ(range query)も、SPARCOMの
アプローチによって、古典的なデータベース構造と比較して非常に容易に実行す
ることが出来る。とい
うのもその問い合わせの回答を得るためには、BPMに対して1つだけのクエリーベ
クトルをかけるだけでいいからである。これとは対称的に、属性を基本とするデ
ータベースでは、領域の問い合せについての回答を得るには、一般的に検索操作
を複数回反復する必要がある。
[0023]
Binary Property Matricesがベースとしている関係は、SPARCOM標準形式(SNF'
s)とよばれる固有の標準形式であり、それは関係のある他のデータベースの標準
形式とは、属性を基本とするというよりむしろ、特性を基本とするという点にお
いて区別される。そしてもっとも顕著なのは、複数の値を持つ関係をどのように
取り扱うかという点における違いである。Coddにより定義された1NF標準化方法
は、複数の値を持つ属性が存在した時、複数の値を持つ属性により生成される冗
長性を複数の関係に分解する方法により小さくする。このような分解は、SPARCO
Mの手法によると不必要であり、かつ不適切である。SPARCOMでは、属性をベース
とするのではなく、特性をベースにして関係が組織化されるから、上記の点はそ
の通りである。事実上、1NFの目的は、通常ならば1NFに関連している分解に頼
らないで、SPARCOMの下で自動的に達成される。
[0024]
図1Aにおけるコンサルタントの例における関係は1NF
には含まれない。ここでコンサルタント関係における属性のために存在する機能
上の依存関係は次のようなものである。
名前→時給,名前→技量,名前→曜日
これは前提のようなものであるが、他の依存関係があってもよい。技量と曜日と
いう属性は、ここでは複数の値を持つ属性として与えられている。説明するため
の図1Aにおいては、複数の値を持つ属性である技量と翌日は、二つの異なる目的
で扱われている。技量におけるそれぞれの特定のコンサルタントの複数の例は複
数のレコードに分解されている。一方、コンサルタントを利用できる曜日につい
ての複数の例では、その個々のレコードの範囲内で繰返しグループが生成される
。これらの複数の値を持つ属性を表現するための手法は、どちらも好ましいもの
ではない。
[0025]
一方では、複数の値を持つ属性の各事例に関する複数のレコードを1NFの中に
ではなく、ある関係の中に持つことは、内在する所定の機能上の依存関係の無い
他の属性を、不必要にも複製してしまう。(この例では、時給と曜日の属性は、
名前が技量である機能上の依存関係には関係していないが、しかしながらそのデ
ータは複製されることになる。)それに対して、繰り返されるグループは分子の
如く分解した値ではなく、それゆえ繰り返される
グループをもつレコードに対する操作には、更なる操作が必要となる。さらには
繰り返されるグループの関係のレコードは、同じ長さではないか、もしくは空値
を含み、このどちらの場合も好ましいものとはいえない。
[0026]
コンサルタントの関係(名前、時給、技量、曜日)を分解し、1NFに要求され
ている如く、複数の値を持つ属性を取り除くと、3つの独立した関係であるCRat
e(名前,時給)やCSkills(名前,技量)やCDays(名前,曜日)が得られる。図1Bは、図
1Aのデータに対応するデータを分解して得られた1NFの関係を示す。図1Bの関係
は、3NFやBCNF(Boyce-Codd Normal Form)においても同様に発生する。
[0027]
分解は通常は、全体の冗長性を縮小するが、その過程で小さな冗長性を生成し
てしまっている。それは図1Bにおける事例では、「名前」が何れの関係にもその
一部として見い出すことが出来る。この冗長性は必要であって、そこですべての
関係は、保存され、そして分解の過程から導き出された複数の関係中に存在する
属性に対して、普通の連結を実行することで元の関係を再構築することに役立つ
。
[0028]
図1Aで用いているコンサルタントの関係をSNFのバージョンにしたものが図1C
である。SPARCOMデータベースにお
いては1NFに分解する必要がないという事実のため,データのより効果的な方法を
提供することにより、この過程において冗長性が生成されることを防止出来る。
これはまさに、これまでの属性を基に考えるデータベースモデルに対するSPACOM
モデルの優位性である。
[0029]
Ashany氏はSPARCOMの手法による主たるパフォーマンスの優位性の1つを次の
ように説明している。[Ashany,184頁]
疎行列を扱っている多くのアルゴリズムは、ひとつの共通の特徴を持っている。
即ち0でない要素のみが行列に格納されることである。目標はこれらの行列を、
格納するスペースを節約するために,そして特にアクセスと実行時間を短縮する
ために、行列の全体が存在しないかの如き状態において操作することにある。な
ぜなら0の要素は表現したり操作したりする必要はないからである。
[0030]
SPARCOM手法が、他のデータベース手法を越えて有する別の主なパフォーマン
ス上の利点は、データに対する内容アドレス能力にある。他のデータベースシス
テムは様々なタイプのクエリーに対して高速に答えるために、複数のインデック
スが保持されていることが求められることが多い。SPARCOM以外のデータベース
システムにおいて
は、特定したクエリーをサポートするインデックスが作成されていない時には、
そのクエリーに対する回答速度は非常に遅いものとなる。というのもインデック
スがないときには徹底的にデータ要素の検索を行なう必要があるからである。SP
ARCOMは複数のインデックスを必要とはしない。なぜならそれはすべてのデータ
をインデックスしているからである。SPARCOMに用いられているBPMを圧縮するた
めの様々な手法は、実はそれ自身インデックスを行なう手法であるからである。
[0031]疎行列の概念
これまでに述べたようにSPARCOMは、特徴を基にしたデータベースにおいて、
建築レンガの如く内部レベルのデータ構造を作るために、バイナリー疎行列を用
いる。SPARCOM中の持続性データはBPMによって構成されているが、クエリー
の結果は、それ自身は疎であったり、或いはそうではない、非バイナリー行列の
形式となる。Ashany氏は行列のインデックスを作る3つの手法について議論した
。Ashany氏が調査した方法は、Bitmap法(BMS)と、"Single Index"法(SIS)と、"D
ouble Index"法(DIS)による圧縮方法である。これらの手法はいずれも著しい圧
縮を疎な行列に対して行なう。そしてバイナリー疎行列に対しては、より高い圧
縮を行なう。データベース操作が、これらの3つの手法の各々にしたがってイン
デックス化
されたBPMに対して行われた。インデックス手法や、データセットや、データベ
ース操作においてそのどれを選択したかによって、良かったり悪かったりの結果
が得られたが、それぞれにおいてすばらしいパフォーマンスを示す結果が、様々
な圧縮方法において得られた。
図2は、以下に詳細を示すBMS,SIS,DISの各圧縮方法によって行列がどのように
圧縮されるかの例である。
[0032]"Bit Map" 法
bitmap法においては、m×nの行列A(mは行、nは列)は3つの要素に分解され
る。
1)2要素のDim(m,n)、但しm,nは行列Aにおける行と列。
2)m×nのディメンジョンのバイナリ行列B。但し、Aの0でない値は、Bのそ
れに置き換える。
3)ベクトルv、但しそれの要素はAの0でない値であって、ある順序で輪郭が
たどられている。
バイナリー行列Bの要素のビットは、その行列の行(もしくは列)を繋ぐことに
より、形成されたビット列SBとして格納される。SBを格納するために必要なバ
イト数は、以下の簡単な公式により計算できる。
SB=[(m×n)/S]
但しSは1バイト中のビットの数である。
vの要素の配列順序は、それが行1からmまで、又は列1
からnまで順番にスキャンしたときに出現する様に、配列される。他の配列順序
ももちろん可能である。
[0033]
bitmap法は、バイナリ行列要素Bを1つのビットとして、それぞれの要素を格納
することにより著しい圧縮を達成する。bitmap法においては、複数のバイナリ要
素は、バイトサイズに依存する実際のビット数をもつ単一のバイトに、周知な方
法によって格納される。この圧縮の手法は、この特徴のための使用をサポートす
る言語を使って効率の良いビット操作を実行できるハードウェアーにより、もっ
とも効率良く達成されることは明白である。BPM Aのビットマップ表現には、ベ
クトル要素vを必要としないことは、2要素組のDim(m,n)と、ビットマップ
要素Bが、BPM Aを完全に定義するには十分であることからも明らかである。
[0034]単一インデックス付け体系
ビット写像体系と対照的に、単一インデックス付け体系は、マトリックスのゼ
ロでない要素だけをメモリーする。単一インデックス付け体系は、次の3つの構
成要素を用いて2進でないマトリックスAを表現している。1)2個組のDim
(m,n),但しmはAの行の番号、nはAの列の番号である。2)要素はA内のゼ
ロでない要素の位置をリストしている位置ベクトルv1。3)要素は
Aのゼロでない値であるベクトルv2。二つのベクトルv1及びv2の要素は、v2
の要素biが、v1の要素aiによって特定された位置に、マトリックスA内で見
つけられた要素の値を保持するようにインデックス付けされる。
[0035]
Aの要素(i,j)の位置kは、線状のマッピング機能によって決定される。
k=f(i,j)=j÷(i−1)×n
前記式において、i及びjはそれぞれ、要素の行と列であり、nはA内の列の番
号である。この数式は、単にマトリックスの要素の配列を決めるだけであって、
これはマトリックスの要素を順次、1行が済めば次の行を走査することを、1行
目からm行目まで行なうことによって、決定される。
[0036]
BPMのマトリックスのような2進マトリックスは、単一インデックス付け体
系を用いて同様な方法で表されるが、ここでは二つの構成要素、即ち上記に定義
した1)2個組のDim(m,n)及び、2)位置ベクトルv1だけが必要とされる
。すべてのゼロでない値は、2進マトリックスの値であるので、ゼロでない値を
特定する二番目のベクトルv2の必要がないことは明らかである。
[0037]二重のインデックス付け体系
二重のインデックス付け体系には3つの構成要素があって、構成要素自体の2
番目は二つの部分から成り立っている。1)マトリックスの行及び列の数を決定
する2個組のDim(m,n)、2)マトリックスの要素の位置をインデックス付
けするための二つのベクトルv1及びv2及び、3)要素がAのゼロでない値であ
るベクトルv3である。構成要素1及び3は、ビット写像と既述の単一インデッ
クス付け体系の両方と同一の対応を有しているから、検討は全く必要でない。他
の圧縮体系と同様に、ベクトルv3は、(この場合、マトリックスのゼロでない要
素の値を保持している)2進マトリックスには必要とされていない。
[0038]
Dim(m,n)を有するマトリックスAに於ける1からm行目までの各行のた
めに、ベクトルv1は順次にA内のゼロでない値を有する要素の列番号をリスト
する。v1の最後の要素は、区別できる(distinguished)記号を保持しなければな
らない。1からnの範囲の整数以外の記号が保持されるであろう。(Ashanyは、
記号「Δ」を使用している)。ベクトルv1における要素の数は、Aにおけるゼロ
でない要素の数より1多い数に等しい。
[0039]
ベクトルv2の要素は、マトリックスAの各行中でゼロでない1番目の要素を
含んでいるv1における要素の位置
を特定する。ベクトルv2の要素は、v2の要素iが、マトリックスAの行iに第
1のゼロでない要素を含んでいるv1のインデックスの数を特定するように、該
要素自体がインデックス付けされる。ベクトルv2は、m+1個の要素を含んで
いる。v2の最後の要素は、v1の最後の要素を特定し、これは区別される記号で
ある。
[0040]その他のインデックス付け体系
スパースマトリックスを圧縮するその他の技術は多く存在する。頻繁に引用さ
れ、プログラムすることが容易な簡単な技術としては、行又は列のいずれかによ
ってリンクされたリストの使用を含んでいるものがある。行又は列のいずれかに
よってデータが容易に回復できる二重にリンクされたリストも、その他の方法と
同様に使用されることが可能であり、これは、(SIS及びDIS圧縮技術の様
な)配列中又は更に複雑なデータ構造におけるゼロでないスパースマトリックス
値をインデックス付けする。
[0041]
トレードオフ(tradeoffs)は、様々なスパースマトリックス圧縮体系の選択と
共に存在する。例えば、ビット写像、上記した単一インデックス及び二重インデ
ックス圧縮体系を比較すると、リンクされた及び二重にリンクされたリストを具
体化することは、リンクされたリストを
保持するために要求される増加したオーバーヘッドが原因で、同じ様な圧縮を提
供しない。これは、リストの各ノードが、要素の値と連結アドレスの情報の両方
を含んでいるからである。肯定的な面に関して、リンクされたリスト構造は、上
記記載の体系を、新たなゼロでない要素をスパースマトリックスへ挿入すること
において具体化するという明白な方法より、優れたパフォーマンスをもたらす傾
向にある。上記のスパースマトリックス圧縮体系にて用いられたベクトルが十分
に稠密である単純な配列を使って具体化される場合は、次に新たなスパースマト
リックス圧縮体系を挿入するには、新たな配列が構成される必要である。せいぜ
い、これは、左のサブベクトルをメモリーにて逆方向に桁送りすること若しくは
、右のサブベクトルをメモリーにて順方向に桁送りすることを含む。これには、
これらの桁送り操作に先じて、予め適当なメモリーが付与されていることを仮定
している。
[0042]クエリー(queries)
SPARCOMにおいて、単純なクエリーが、BPMをクエリーベクトルの変
換で行列乗算することによって実行される。クエリーベクトルは行ベクトルであ
って、問い合わせするBPM中の列数と同数の要素を備えるように構成されなけ
ればならない。クエリーベクトルは、2進である即ち、1或いはゼロだけを含ん
でいる。クエ
リーベクトルの1は、求められているプロパティを表示する。
[0043]
SPARCOMにおいて、単純なクエリーの結果は、一般的に2進でない列ベ
クトル(又は応答マトリックス)である。このような列ベクトルの次元は、それを
ある程度導いているBPM内の行数と対応する。単純なクエリーにおいて獲得さ
れた列ベクトルのi番目の要素の値は、クエリーベクトル及びクエリーのための
BPMを共通に持つプロパティ数を示す。クエリーベクトルの程度は、ベクトル
中の1の数である。単純なクエリーの場合、BPMの行iがクエリーから獲得さ
れたクエリーベクトルに「一致する」のは、(2進でないことが多い)列ベクトル
のi番目の要素がクエリーベクトルの程度と等しいときである。このことを別の
表現で示すならば、単純なクエリーには、応答マトリックスの要素のしきい値は
、クエリーベクトルの程度と等しい。図3は、単純なクエリーの実施例を示して
いる。
[0044]
多くの型の更に複雑なクエリーは、問合せ範囲及びブール操作を必要とするク
エリーを含んでいるSPARCOMアプローチを用いて、容易に実行され得る。
問合せ範囲において、値(プロパティ)の倍数は、何かの属性のために特定される
。クエリー範囲は、特定された特性の
任意の1つを有する記録を送り返す。仮に我々が顧客情報の提供業に関係してい
る場合、Cust(顧客)(名前、通り、市、州、郵便番号)、州についてのクエリ
ー範囲を特定したこの関係についてのSQLステートメントは、以下の様に与え
られることが出来るであろう。
選択*Custから
州は?="NY"又は州="NJ"又は州="CT"
[0045]
このSQLステートメントは、問合せ範囲が「又は」の操作−多重の「又は」
の操作であることが多い−を必要とする事実を強調する。属性に重点を置くデー
タベースにおいて、「又は」の各操作は、クエリーに要する検索時間を増加する
。SPARCOMアプローチに従って、単一値属性の問合せ範囲は、特定された
範囲内のすべての値を含むクエリーベクトルを有するBPMの普通の行列乗算を
実行することによって達成出来る。一致している行を獲得するために、この場合
に行われることが必要な唯一の調整は、応答マトリックスの要素のしきい値がク
エリーベクトルではなく問合せされた属性の数に等しくなるように行われなけれ
ばならない。従って、SPARCOMでは、単一値属性に関するクエリー範囲に
は、余分な検索時間は不要である。図4は、SPARCOMのクエリー範囲がど
の様に上記に示したCust関係のSQLステートメントを実行するかを例示し
ている。
[0046]
特定の技術、例えばSISやDIS圧縮技術を使って圧縮されたスパースマト
リックスにおける行列乗算は、スパースマトリックスのゼロでない要素を因子と
する処置だけが必要であり、結果として、スパースマトリックスにおける行列乗
算のために優れたパフォーマンスを得ることが出来る。
[0047]
データベースの操作を実行することに対するSPARCOMアプローチに関し
た上述の概観は、導入としてのみ役立つ。更に詳細な説明は、Ashany氏の博士論
文に示されており、本発明の背景として本願の一部とする。[Ashany,R."SPAR
COM:A Sparse Matrix Associative Relational Approach to Dynamic Structuri
ng and Data Retrieval."Ph.D.Dissertationn,Polytechnic institute of New
York,June 1976]
[0048]発明の要旨
本発明は、データを安全に格納する装置に関する。装置は、有意的に暗号化さ
れたデータの記憶を有するデータベースを具えている。装置は、データの解読を
必要とせずに有意的に暗号化されたデータを含んでいる有意味のデータベース操
作を実行するためのデータベース機構を具えている。データベース機構は、デー
タベースへ接
続されている。該装置は、データベース機構からデータを獲得するためにデータ
ベース機構へ接続されているアクセス機構も具えている。
[0049]
本発明は、データを格納する装置に関する。装置は、有意的に表されたデータ
を有するデータベースを具えている。装置は、データベースの操作を有意的に表
されたデータで実行するためのデータベース機構を具えている。データベース機
構は、データベースへ接続されている。装置は、データベース機構からデータを
獲得するためにデータベース機構へ接続されたアクセス機構を具えており、該ア
クセス機構は、有意的に暗号化されたデータによって異なった標識を持った、種
々のユーザを含んでいる。
[0050]
本発明は、データを安全に格納する方法に関する。方法は、有意的に暗号化さ
れたデータをメモリー内に蓄積する工程を含む。次に、データの暗号化を必要と
せずに、メモリーからの有意的に暗号化されたデータを用いて、データベース操
作を実行する工程がある。更に、メモリーからデータを獲得する工程がある。
[0051]図面の簡単な説明
添付の図面において、本発明の望ましい実施例及び本
発明を実行する望ましい方法が示されている。
図1Aは、背景的情報のために、INF(第1正規形)でない関係を示している
。
図1Bは、背景的情報のために、図1Aが3NF(第3正規形)へ変換された後
の図1Aの関係を示している。
図1Cは、背景的情報のために、図1AがSNF(SPARCOM正規形)へ変
換された後の図1Aの関係を示している。
図2は、BMS(ビット写像体系)、SIS(単一インデックス付け体系)及びD
IS(二重インデックス付け体系)圧力方法を用いてマトリックスがどの様に圧縮
されるかについての例を、背景的情報のために示している。
図3は、背景的情報のために、クエリーを実行するSPARCOMの方法を用
いている単純なクエリーの例を示している。
図4は、背景的情報のために、クエリー範囲を実行するSPARCOMの方法
を用いているクエリー範囲の例を示している。
図5は、本発明の基本的な要素をブロック図にて示している。
図6Aは、本発明の望ましい実施例のネットワークアーキテクチャを示してい
る。
図6Bは、本発明の望ましい実施例の他のネットワークアーキテクチャを示し
ている。
図7Aは、「Sales Rep」関係を例としてBPM(2進プロパティマトリックス
)を示している。
図7Bは、図7Aにて示されているものと同一の「Sales Rep」関係のBPM
を表している。BPMは変更されて、BPMの列の数及び列の特性内容は、結合
されるであろう"Cust"関係のBPMの列の数及び列の特性内容に対応してい
る。
図7Cは、「州」を表わすものに関する列だけ選択し、その他の関係は「きれ
いにする(sanitize)」投影を行なった後、図7BのBPMから得たBPMを図示
している。
図7Dは、転換された後の図7CのBPMを示している。
図8は、図2にて示されているものと同一の「Cust」関係のBPMを表し
ている。BPMは、BPMのための列の特性内容及び列の数が、結合されるであ
ろうものとの「Sales Rep」関係のBPMの特性内容及び列の数と合うように変
更されている。
図9は、図8×図7Dのマトリックスの行列乗算によって獲得される応答マト
リックスを示している。該応答マトリックスは、結合されるであろう原型のBP
Mの(図8及び図7Bにて得られる)マトリックスの行を特定する。
図10Aは、本発明の望ましい実施例の他のネットワークアーキテクチャを示
している。
図10Bは、本発明の望ましい実施例の他のネットワ
ークアーキテクチャを示している。
図11は、単一インデックス付け圧縮体系(SIS)に基づいて5×8のマトリ
ックスの座標を配列することを示しており、SIS表現(representation)の例に
加えてマトリックスの例を示している。このマトリックスのSIS表現の次元情
報だけを暗号化することは、実質上パフォーマンスを犠牲にすることなく、符号
化されたマトリックスによって暗号手法のセキュリティを更に高めるということ
に気づかれるであろう。
[0052]望ましい実施例の説明
図中、参照番号は同様な又は同一の部分を示している図面及び更に詳細には各
図を参照して、データを安全に格納する装置が示されている。装置は、有意的に
暗号化されたデータの格納装置を有するデータベースを含んでいる。装置は、デ
ータの解読を必要とせずに有意的に暗号化されたデータを含んでいる有意味のデ
ータベース操作を実行するためのデータベース機構を具えている。データベース
機構は、データベースへ接続されている。該装置は、データベース機構からデー
タを獲得するためにデータベース機構へ接続されているアクセス機構も具えてい
る。
[0053]
アクセス機構は、暗号化/解読の機構を含んでいるこ
とが望ましく、これはデータベース機構へ接続されていて、解読されたデータを
受信し、データを暗号化して、これをデータベースへ供給する。また、データベ
ース機構から解読されたデータを受信して、これを解読する。望ましくは、アク
セス機構は、ユーザCPUとワークステーションメモリーを有しているエンドユ
ーザワークステーションを含んでいて、そこで暗号化/解読機構は、メモリーに
蓄積されたコードブック及び、コードブックへのアクセスと更新をするメモリー
内にあるソフトウェアプログラムを含んでいる。
[0054]
有意的に暗号化されたデータは、プロパティに重点を置く定位置のQコードで
あることが望ましい。プロパティに重点を置く定位置のQコードは、スパース2
進マトリックスを含むことが望ましい。プロパティに重点を置く定位置のQコー
ドは、仮の列、仮の行、列の分割、列のオフセット、BPM列の順列の情報の寸
法を示す圧縮されたスパースマトリックスの暗号化を使用して、各プロパティに
重点を置く定位置のQコードのセキュリティを高める。
[0055]
装置は、データベース機構及び、データベースを有しているデータベースサー
バコンピュータを含むことが望ましい。データベース機構は、サーバCPU及び
サーバ
CPUへ接続されたサーバを具えていることが望ましい。サーバメモリーはデー
タベースを有している。望ましくは、サーバメモリーは、データベースコマンド
格納バッファ装置及びデータベース応答格納バッファ装置を具えている。サーバ
コンピュータは、サーバメモリーとサーバCPUへ接続されたワークステーショ
ン通信ポートを含むことが望ましい。望ましくは、ワークステーションは、サー
バ通信ポート及び、ワークステーシヨンCPUとワークステーションメモリーへ
接続されたワークステーション通信ポートと、入力ポートと、出力ポートとを設
けており、両ポートは、ワークステーションメモリー、ワークステーションCP
U及びワークステーション通信ポートへ接続されている。
[0056]
本発明は、データの格納装置を保護する装置に関する。装置は、十分なインデ
ックス付きデータを有しているデータベース機構を具えている。装置は、インデ
ックス情報を有している十分なインデックス付きデータの、又は該データで操作
を実行するための、データベース機構も具えていて、インデックス情報は、十分
なインデックス付きデータへのアクセス及び翻訳を許容する。装置は、データベ
ース機構からデータを得るためにデータベース機構へ接続されたアクセス機構を
具えている。
[0057]
本発明は、データを格納する装置に関する。装置は、有意的に表されたデータ
の格納装置を有しているデータベースを具えている。装置は、有意的に表された
データを使用してデータベースの操作を実行するためのデータベース機構を具え
ている。データベース機構は、データベースと接続されている。装置は、アクセ
ス機構が、有意的に暗号化されたデータの様々な表現を持った種々のユーザを含
むように、データベース機構からデータを獲得するためにデータベース機構へ接
続されたアクセス機構を具備している。
[0058]
アクセス機構は、有意的に表されたデータの様々な自然言語翻訳を種々のユー
ザへ提供する。或いは、アクセス機構は、有意的に表されたデータの音声表現を
視覚損傷者へ提供する。
[0059]
本発明は、データの格納装置を保護する方法に関する。方法は、有意的に暗号
化されたデータをメモリー内に蓄積する工程を含む。次に、データの暗号化を必
要とせずに、メモリーから有意的に暗号化されたデータでデータベース操作を実
行する工程がある。更に、メモリーからデータを獲得する工程がある。
[0060]
本発明の主要なアイデアは、図5で示されているとお
り、基本的にはデータベースの暗号化機構及び方法であって、データベース情報
を編成及び分散することにより、qコード情報の形式をした内部レベルのデータ
が1以上のデータベースサーバ上に保持されつつ、、外部レベル(ユーザレベル)
及び/又は概念レベル(一般レベル)のスキーマ情報が、エンドユーザ顧客のワー
クステーションに設置されることである。外部レベル又は概念レベルのスキーマ
情報に加えて、任意に採ったエンドユーザ顧客のワークステーション上にも存在
しているデータベース情報は、対の値のリストを含むコードブックである。各対
の1要素(member)は、プロパティを特定する。もう片方の値は、所与のプロパテ
ィのために一組の等値のqコードを特定する。従って、コードブックは、プロパ
ティのインデックスを設けると考えられることが可能で、任意に採ったエンドユ
ーザ顧客のワークステーションは、そのための暗号を使用したキーを有している
。望ましい実施例において、任意に採ったデータベースサーバ上にも存在するデ
ータベース情報(データ内容)はSPARCOMデータベースである。即ち、該情
報は、一組の圧縮されたBPMのデータベースで構成されていて、夫々は特定の
プロパティ−エンティティ関係の例示である。データベースサーバは、この内部
レベルの圧縮されたBPMデータを翻訳するために必要とされるインデックス情
報を保持しない。望ましい実施例のネットワークアーキ
テクチャは、図6Aにて示されている。
[0061]
図5を参照して、上記記載の如く、エンドユーザ顧客のワークステーション(1
)において、アルゴリズム1A(15)は、ユーザ入力を入力ポート(2)に受入れ、入
力情報を分析して、コードブックの検索を実行して入力情報中の特定されたプロ
パティと等価の暗号化された物を発見し、暗号化されたデータベースコマンドを
公式化して、これらをデータベースサーバに提示して、発せられたコマンドにつ
いての情報を内容格納バッファ装置(13)へ蓄積する。アルゴリズム1B(19)は、
暗号応答がデータベースサーバコンピュータ(30)の通信ポート(32)から送信され
、(5)にて受信されるまで待ち、暗号を読み取り、これを一時的にデータベース
応答格納バッファ装置(17)にて蓄積する。アルゴリズム1B(19)は次に、内容格
納バッファ装置(13)を検査して、受信された暗号応答のコマンドが何と関係して
いるかを決定して、コードブックの検索を行なうことによって暗号を解読し、受
信された暗号の要素に等価な普通文を決定して、(1)上のユーザによって指示さ
れた通りに普通文の結果を処理する即ち、出力情報を(4)へ導く或いは(23)へ導
くか、又はこの両方へ導いて処理する。アルゴリズム1A及び1Bの中心のデー
タ構造は、コードブック(11)である。エンドユーザ顧客のワークステーション(1
)上のコードブック(11)は、特
定のテーブルのための具体的なプロパティのリスティングを有しており、単独の
ワークステーション(1)には、そこへのアクセスが与えられている。コードブッ
クのリスティングは、1セットの(プロパティ、列)の2個組(2-tuples)で構成さ
れるであろう。
[0062]
このセット自体は、別個の部分集合の(プロパティ、列)の2個組に完全に分割
されてもよく、各セットは、データベースサーバ(12)上の異なったテーブルの画
面(view)である。画面は、特定のユーザへ指定されたアクセスの特権に依って、
所定のテーブル内のすべての列をリストし、又はリストしないかもしれない。一
般的に、テーブルの特定の画面から除外されているかもしれない列はそれら自体
、テーブル内の特定の属性に関している列の群で構成されるであろう。しかしな
がら、ユーザは、特定の属性に関する列の一部分のみへのアクセスを容易に得る
ことが出来るので、容易に、細かなレベルに細分化することが可能である。
[0063]
コードブックは、2フィールドを有しているレコードの簡単なリストとして実
行されることが可能であり、該リストは、線状に蓄積される又は、メモリー(6)
内のリンクされた或いは二重にリンクされたリストへ蓄積される。当該分野の専
門家によく知られている多くの他のアルゴ
リズムは利用可能であって、これらは、順方向及び逆方向に検索することが可能
であり、対の関連項目にて効果的に実行される。敏速なコードブック検索は、本
発明には重要であるのは、発明を利用する単純でないデータベースが多くのプロ
パティを有しているからである。
[0064]
望ましい一実施例において、異なったデータベースに関係するコードブック(1
1)の2個組の別個、単独した部分集合(subset)は、それぞれ収集されて、敏速な
検索のために二つの別個の関連配列のようにプログラムされる。即ち、各テーブ
ルに二つの関連配列であり、一方の配列はプロパティから列数へ順方向に検索さ
せるものであり、二つ目の配列は列数からプロパティへ逆方向に検索させるもの
である。代わりの望ましい実施例において、一つのセットとして共に利用される
コードブックについてのすべての(プロパティ、列)の2個組は、二つの関連配列
(順方向の検索用の配列及び逆方向の検索用の配列)を使用して、敏速な検索のた
めにプログラムされ、ここで各プロパティフィールドは、整列された対(テーブ
ルネーム、プロパティ1)で構成される記号列のように構成されている。ここでは
、プロパティ1は多重のテーブルに現れるプロパティ(即ち、整列された属性−値
の対)を意味している。それゆえに、(プロパティ、列)の2個組は、次のフォー
マット(テーブルネーム、プロパティ1、列)を有する
コードブックエントリーとして現れるであろう。異なったユーザによって所有さ
れているいくつかのテーブルは、まったく同じに名付けられるかもしれないので
、テーブルネームのフィールドはそれ自体、テーブルネーム=(所有者、テーブ
ルネーム1)を有する複合構成要素であるかもしれないことに気づかれるべきであ
る。更に、図6Bにおいて示されるように、多重のデータベースサーバは、ネッ
トワーク上に存在することが出来る。従って、プロパティの値は実質的に、更に
拡張された階層構造、例えば住所.データベース.所有者.テーブルネーム1.プロ
パティ1.にあってもよい。各コードブック自体が、簡単で、特別な目的の単一使
用者のデータベースを事実上、構成することが判るであろう。
[0065]
アルゴリズム1A(15)は、平文のプロパティ情報を、定位置のqコード列情報
へ変換する。(15)は、このことを、エンドユーザ顧客のワークステーションコー
ドブック(11)において「順方向の検索」を行なうことによって達成する。アルゴ
リズム1B(19)は、定位置のqコード列情報を、平文プロパティ情報に変換する
。(19)は、このことを、コードブック(11)において「逆方向の検索」を行なうこ
とによって達成する。
[0066]
クエリー及びその他のデータベース操作は、上記に明
示したように、エンドユーザ顧客のワークステーション(1)の定位置のqコード
を含んでいるSPARCOMデータベースコマンドに組み立てられる。エンドユ
ーザ顧客のワークステーションでこのように公式化されたデータベースコマンド
は、データベースサーバ(30)へのネットワークへ送り出される。目標のデータベ
ースサーバ(30)へ送られたデータベースコマンドがこのように暗号であるのは、
定位置のqコードを含んでいるからである。エンドユーザ顧客のワークステーシ
ョン(1)の通信ポート(5)からデータベースサーバ(30)の通信ポート(32)へ送られ
たデータベースコマンドを含むネットワークトラフィックは、データベースコマ
ンドの暗号を含んでいるので、これ自体が暗号化されることが明らかである。(
このネットワークトラフィックは勿論、DES又はRSAのような、その他の形
式の暗号化技術を使って付加的に暗号化されることが出来る。)
[0067]
図5を参照して、望ましい実施例において、アルゴリズム2(39)は、通信ポー
ト(32)で受信されたデータベースコマンドを分解する。該コマンドは、定位置の
qコードを含んでいて、それゆえ、これは暗号である。次に、アルゴリズム2(3
9)は、データベースコマンド格納バッファ装置(37)内にデータベースコマンドを
蓄積して、定位置のqコードデータベース(35)上のコマンド内で特定
された操作を実行しながら、バッファ装置(37)内で見つけられたコマンドを実行
する。クエリー及びその他の内部レベルのデータベース操作は、背景情報におい
て説明されたSPARCOMアプローチを使ってデータベースサーバコンピュー
タ(30)に保持されたBPMデータに実行される。このことは、データベースサー
バコンピュータ(30)のメモリー(33)内に含まれるqコードデータベース(35)内で
見つけられた圧縮された2進プロパティマトリックスにおける実行操作を意味し
ている。実行されたデータベース操作は、データベースサーバコンピュータ(30)
に蓄積されている暗号化されたデータへ、その普通テキスト形式のデータをどん
なときでも見せずに、このように直接実行される。定位置のqコードデータベー
ス(35)上のコマンドを実行することによって生成された出力情報は、圧縮された
BPM及び操作状況情報、例えば「トランザクションID番号」、「成功」、「
失敗」、を含んでおり、データベース応答格納バッファ装置(41)内で一時的に蓄
積される。(操作状況情報は、本発明を基本的に機能させることには不可欠では
ないが、むしろこれは該システムに設けられることが可能な標準的なデータベー
スプログラム情報である。「トランザクションID番号」の使用によって、複雑
なネットワークシステム内で個々のトランザクションを見失わないようにするこ
とを補助する。その他の方法は、同様に、本システムの必要
条件を処理する。「トランザクションID番号」の使用は単に、この必要性に焦
点をあてる一方法として示されているだけである。)アルゴリズム2(39)によっ
て行われる最後の工程は、データベースコマンドの実行によって生成された出力
情報を、コマンドを起動するエンドユーザ顧客のワークステーション(1)へ送り
返すことである。
[0068]
ネットワークトラフィックは、通信ポート(32)からエンドユーザ顧客のワーク
ステーション(1)の通信ポート(5)へ送られたデータベースサーバ(30)においてデ
ータベースコマンドを実行することによって生成された出力情報を含んでいて、
ネットワークトラフィック自体が暗号化されていることが明白であるのは、少な
くともデータが送り返されるケース内の定位置のqコード暗号である圧縮された
BPMを含んでいるからである。(その他の方向にネットワークトラフィックを
有する時、このネットワークトラフィックは勿論、DES又はRSAのようなそ
の他の形式の暗号化技術を用いて付加的に暗号化されることが出来る。)
[0069]
代わりの実施例において、エンドユーザ顧客のワークステーション自体は、デ
ータベースサーバコンピュータに配置されたBPMにおいてデータベース操作を
直接的に行なう。この場合、データベースサーバは単に、デー
タベースのファイルサーバとして作動する。すべてのSPARCOMのデータベ
ース操作(例えば、行列乗算を伴うクエリー)は、エンドユーザ顧客のワークステ
ーションによって、それら自身のCPU及びメモリーキャッシュを使って実行さ
れる。通例のトレードオフは、二つのアプローチの間に存在する。データの中央
処理は、中央ホストマシンに、一層多くを求めるであろう。ネットワークされた
ワークステーションにおけるデータの遠隔処理は、中央ホストコンピュータの負
担を軽減して、デスクトップの処理電力を利用するであろう。しかし、これは、
更にネットワークトラフィックを生じるかもしれないし、データベースサーバコ
ンピュータ上でデータを同時に変更しようとしている多数のエンドユーザ顧客の
ワークステーションに関して更に困難な点を引き起こすかもしれない。
[0070]例1
以下の注釈付けられた例は、前述の背景の欄で記述されたSPARCOM範囲
クエリー例が、本発明の好ましい実施例により如何に扱われるかの具体例を説明
する。"Cust"関係式に対する非圧縮データ表示(BPM)は図4に示される。
1)ユーザは末端ユーザワークステーション(1)の入
力ポート(2)に高レベルデータベース範囲のクエリーコマンドを発する。
州が(‘NY’、‘NJ’、‘CT’)であれば、Custから*を選択する。
2a)アルゴリズム1A(15)はこの入力を読み、解析する。
2b)アルゴリズム1A(15)は、コードブック(11)上で順方向探索を行い、範囲
クエリーにて特定された特質への列番号を決定する。
[0071]
Custテーブルに適したコードブック(11)上のエントリーは以下の通りである。
名前.Lynn 1
名前.Mark 2
名前.Bill 3
名前.Sam 4
名前.Liza 5
名前.Carl 6
通り.5 Oak 7
通り.6 Gunn 8
通り.2 Pine 9
通り.8 Main 10
通り.4 Main 11
市.Nyack 12
市.Union 13
市.Derby 14
市.Reno 15
市.Butte 16
州.NY 17
州.NJ 18
州.CT 19
州.NV 20
州.MT 21
2c)アルゴリズム1A(15)は特定された特質に基づいたコードブック探索によ
り得られた手法情報に基づき、クエリーベクトルを構築する。アルゴリズムが構
築したクエリーベクトルは、2進ベクトルであり、配列要素内に1'sを持ち、配
列要素のインデックスはコードブック探索で見つけられた列番号に対応する。他
の全ての配列要素は0'sである。故にアルゴリズム1A(15)は、NY、NJ、CT
と同等の列番号を含む適切なクエリーベクトルを構築する。クエリーベクトルQ
Vは非圧縮形式で以下のように表される。
QV=(000000000000000011100)
しかし、BPMに関し、クエリーベクトルQVを直接圧縮形式で生成することは
勿論可能であるし、望ましい。
[0072]
このクエリーベクトルを圧縮形式で生成する好ましい方法は、サイズに等しい
長さを有する配列をクエリーベ
クトルの非ゼロ要素(1's)の番号に割り当てる。非ゼロクエリーベクトル要素の
インデックス(即ち、列番号)は、ベクトルの圧縮表示に順次入力される。(クエ
リーベクトルを圧縮する代わりの方法は、勿論可能である。例えば、ベクトルは
非ゼロ列番号のインデックスのリストにリンクするものとして表される。)故に
、クエリーベクトルQVは以下のように表される。
QV=(17、18、19)
[0073]
範囲クエリーはこのとき構築され、”しきい値”は末端ユーザワークステーシ
ョン(1)上のアルゴリズム1A(15)によって特定される。(しきい値、このケース
では”1”は、クエリーによって生成された応答マトリックスのどのエントリー
が、クエリーされたBPMの対応する行が選択標準に合うことを示しているかを
決定する為に用いられる。)クエリーは、4つの領域から構成される。1)OPコー
ド(オペレーションコード)2)テーブル識別番号(即ち、BPM)3)クエリーベクト
ルQV 及び4)特異処理識別番号である。
データベースサーバーコンピュータ(30)は”1”に指定されるとすれば(多数
のデータベースサーバーがあることに注意)、ユーザ”6”は識別番号”38”
を有するCUSTテーブルの所有者であり、クライエント4(末端ユーザワーク
ステーションは範囲クエリーを処理(formula
te)する)は特異処理ID”client4.id185”を生成し、このときクエリーは以下の
データを含む。
Op-code="Range Query,Threshold value=1",Table ID=1.6.38,Que
ry Vector=(17,18,19),
Transaction ID=client4.id185
[0074]
より簡潔なOPコードの表示、即ちこのケースにて”Range Query,Threshold
value=1”として”RQ1”を用いて、クエリーアルゴリズム1A(15)が構築するベク
トルは以下のようになる。
RQ1 1.6.38(17、18、19) client4.id185
ここでスペースは領域の境界を定める為に用いられる。明らかに、他のデリミッ
ターは同様に働き、領域の順序は単に都合の便宜上のものである。更にテーブル
識別番号を一般化し、多数のデータベースが存するケースを同じデータベースサ
ーバーコンピュータに含めることはまた容易なことである。例えば1.3.6.38はデ
ータベースオペレーションがデータベースサーバーコンピュータ”1”、データ
ベース”3”(即ち、データベースサーバーコンピュータ”1”における3番目
のデータベース)、ユーザ”6”及びテーブル”38”を示す為に用いられる。
[0075]
2d)末端ユーザワークステーション(1)上のアルゴリズム1A(15)はこのとき
上記範囲クエリーを通信ポート
(5)から”1”に指定されたデータベースサーバーコンピュータ(30)に送る。ア
ルゴリズムはまた他の関係あるコンテキスト情報、例えばクエリーに対する応答
出力をどこへ送るべきかに関する情報と一緒に送られてきたクエリーをコンテキ
スト格納バッファ(13)へ格納する。
3a)”1”に指定されたデータベースサーバーコンピュータ(30)のメモリ(3
3)内のアルゴリズム2(39)は、このとき命令(前ステップのアルゴリズム1A(15)
により送られた)をデータベースサーバーコンピュータ(30)上の通信ポート(32)
上で受ける。
[0076]
3b)アルゴリズム2(39)は命令を解析し、特定されたコマンドを実行する。
このケースのOPコードは”RQ1”であり、”範囲クエリー,
しきい値=1”、命令参照テーブル38を意味し、命令はクエリーベクトルQV=
(17、18、19)を提供する。故にアルゴリズム2(39)はこの行列掛け算を実行する
。
RM=BPM38X(17、18、19)T
RMは応答マトリックスである。Table 38=BPM38及び(17、18、19)Tは、クエ
リーベクトルQV=(17、18、19)の置換である。背景の項で述べられた注釈図4
は、このマトリックス掛け算の圧縮されない表示を示す。
[0077]
本発明の好ましい実施例の1つに於いて、テーブル38(即ちBPM38)は背景部
に於いて記載された単一のインデックス圧縮手法を用いて、圧縮されたBPMと
して実行される。このゆえにテーブル38(即ち、BPM38)はその次元とともに単
一のベクトルとして次のように示される。
(1,7,12,17,25,32,34,41,44,52,56,61,68,71,79,84,87,93,99,102,111,11
2,117,122)
Dim(6,21)
同様に応答マトリックスRMは、その次元とともにベクトルとして次のように示
される。
(1,3,5,6)
Dim(6,1)
(このケースに於いて応答マトリクス内の非ゼロエントリーの値を格納する必要
はない。なぜならクエリーの性質に従って、それらは全て1に等しいからである
。)
[0078]
応答マトリクスRMは、このときテーブル(38)から選択標準を満たす行を選択
するために用いられる。(これは応答マトリクスRMが実際には積極的に格納さ
れる必要がないように、実際には"処理中(on the fly)"と成される)。OPコー
ドは"RQ1"、即ちしきい値1の範囲クエリー動作を示し、しきい値1の応答マト
リクス内のエントリーの行の数は、BPM38内の対応する行は範囲クエリ
ーを満たすことを示している。それ故に、図4に示すように、行1、3、5及び
6は範囲クエリーに合うように選択される。(背景の項に述べられているように
、異なるクエリーは異なるしきい値を有する)。アルゴリズム2(39)は範囲クエ
リーを満たす4つのBPM38の行から成る新たなマトリックスBPMRESPONSEを
生成する。これを表す非圧縮のBPMは以下に与えられる。
しかし、BPMRESPONSEは圧縮形式で生成され、単一のインデックス圧縮手法
の使用は、以下に表示される。
(1,7,12,17,23,31,35,40,45,51,57,60,69,70,75,80)
Dim(4,21)
BPMRESPONEは一時的にデータベース応答格納バッファ(41)に格納される。
[0079]
3c)アルゴリズム2(39)は次にデータベースサーバーコンピュータ(30)(こ
のケースにてデータベースコサーバーンピュータ”1”として指定された)から
通信ポート(32)を介して末端ユーザワークステーション(1)の通信
ポート(5)に暗号を送り、ワークステーションは丁度処理された命令をこのケー
スでは即ち客4に送る。暗号応答は4つの領域から成る。1)BPMRESPONSEの
単一のインデックス圧縮手法からのベクトル、2)BPMRESPONSEの次元を与え
る順序付けられたペア、3)最初は範囲クエリーとともに単に識別する為に送ら
れる処理ID"client4.id185"、4)特定されたRQ1動作の好結果の終了を示す動
作ステータスコード。領域1)と2)はデータベース応答格納バッファ(41)から
取られ、領域3)はデータベース命令格納バッファ(37)から取られ、一方領域4
)はアルゴリズム2(39)により直接生成される。”RQ1AA”が適切なステータス
コードを表すとすると、暗号応答は以下のようになる。
(1,7,12,17,23,31,35,40,45,51,57,60,69,70,75,80)(4.21)client4.id185RQ
1AA
ここでスペースは前記の如く領域の境界を定める為に用いられる。
[0080]
4a)末端ユーザワークステーション(1)、このケースでは客4、上のアルゴ
リズム1B(19)はデータベースサーバーコンピュータ(30)(このケースにてデータ
ベースコサーバーンピュータ”1”として指定された)の通信ポート(32)から送
られる上記暗号応答を処理する。アルゴリズムは通信ポート(5)上にて受信され
た暗号応答を読み、
一時的にデータベース応答格納バッファ(17)に格納する。アルゴリズム1B(19)は
このとき受信された暗号応答を以下のステップを用いて解読する。
1) 動作ステータスコードをチェックし、RQ1AAが好結果を示したから
続行する。
2) 処理IDをチェックする。処理IDはこの処理の為に特定されたコ
ンテキスト情報をコンテキスト格納バッファ(13)内に置くために用いられ、コン
テキスト格納バッファはこの処理が”Cust”関係式に適していることを示す。
3) コードブック(11)を逆探索することによりBPMRESPONSE(これは
、暗号応答の最初の2つの領域内にある単一インデックス手法圧縮形式にて与え
られる。)を解読し、BPMRESPONSEの各行に存在する特質を決定する。逆探索
は”Cust”関係式に適するコードブックのエントリー上にて成され、BPMRESP ONSE
によって特定された列番号に対して(平文)特質同等物を見出す。
[0081]
4b)アルゴリズム1B(19)はコンテキスト格納バッファ(13)内にてこの処理の
為に特定されたコンテキスト情報をチェックし、上記ステップ4aにて生成され
た解読データがいかに導かれフォーマットされるかを決定する。コンテキスト情
報は送られた出力が直接に出力ポート(4)に送られるべきか、補助ユーザ格納エ
リア(23)に送
られるべきかを特定し、またコンテキスト情報は出力ポート(4)と補助ユーザ格
納エリア(23)の両方に送ることを特定できる。代わりにコンテキスト情報は、出
力は末端ユーザワークステーション(1)のメモリ(6)内に存する他の処理又は応
用を経るべきかを特定する。
データのフォーマットが通常のタイプとすれば、アルゴリズム1B(15)により生
成される出力は以下のようになる。
Lynn 5 Oak Street Nyack,NY
Mark 8 Main Street Derby,CT
Bill 2 Pine Street Reno,NJ
Carl 5 Oak Street Nyack,NY
[0082]
動作の挿入、更新、削除は、本発明を用いて、範囲クエリーに対する上記例(
例1)に類似し、データはデータベースサーバーコンピュータ(30)のメモリ(33)
内でQコードデータベース(35)に変えられる明白な違いを有する方法にて遂行さ
れる。SPARCOM方法を用いて動作の挿入、更新を行うことに関し、新たな
特質が特定されたときに、データベーステーブル(BPM)に列の追加供給が成さ
れなければならない。これは我々の知る限り、従来技術にはない。この問題を取
り扱う好ましい方法は、任意のテーブルの創造子(creator)に対し基本的なBP
Mが持つ列番号を特定することである。新たな特質には、
このときBPMの列次元を再び作る必要なしにテーブル(BPM)内に導入される
ように列番号が割り当てられる。割り当てられた特質がない列番号は、”利用で
きる列格納プール”内に置かれ、必要な基礎上にて順序を割り当てられて(連続
的に又はランダムに)、”利用できる列格納プール”から取り除かれる。列の欠
落した番号は、テーブルの創造子により値が供給されないときには、DBMSに
よって供給される。
[0083]
たとえBPM内に非ゼロ値のみが格納されていても、BPM内の列番号はBP
Mの圧縮表示のサイズに影響を与えることは明白である。圧縮されたBPMのサ
イズは列番号を表示するのに要求されるビットの数に大凡比例し、例えば655
36(216)の列を有するBPMは、夫々多くの基礎的なコンピュータハードウエ
ア構造上で16ビットにて表されることができる。
[0084]
新たな特質が導入される前に(挿入又は更新動作のいずれかにより)BPM内に
列番号をプリセットすることは、特に単一インデックス圧縮手法が利用されると
きに、SPARCOMデータベース内の挿入又は更新動作の遂行を容易にする。
例えば、図4のBPMの単一インデックス手法表示を考える。
(1,7,12,17,25,32,34,41,44,52,56,61,68,71,79,84,87,
93,99,102,111,112,117,122)
Dim(6,21),
このBPMに、BPMに新たな特質情報(Ann,6 Gulf Road,Tampa,FL)の新たな
列を挿入することは、4つの新たな特質列の追加が必要とされる。修正された非
圧縮BPMはこのとき以下のように示される。
但し、新たな列が挿入された箇所は修正されたBPMの最後の列であり、新た
な4つの特質列は列22−25である。修正されたBPMの単一インデックス手
法表示は、以下のように示される。
(1,7,12,17,29,36,38,52,60,64,69,80,83,91,96,103,109,115,118,131,132,13
7,142,172,173,174,175)
Dim(7,25).
[0085]
明らかに本例に於いて、新たな特質の追加によりBPMの列の数が変わるから
、BPM内の非ゼロ(”1’s
”)エントリーのインデックス値は、BPMの単一インデックス手法表示につい
て再計算されなければならない。
BPMにデータを挿入する前に列番号を大きな番号にプリセットすることは、
単一インデックス圧縮手法の下でBPMの非ゼロ(”1’s”)エントリーのイン
デックスを再計算しなければならない問題を解消する。
[0086]
結合
結合は、関係するデータベースシステムに於いて、特に重要な動作である。当
業者はSPARCOM DBMS(即ち、データベース情報を構築し、掛け算す
るSPARCOM方法を用いるDBMSに於いて)に於いて結合動作を実行でき
、これゆえにシステム上にて本発明が利用できる。それにもかかわらず、自然結
合(また等価結合として知られる)の構築を容易にするSPARCOMデータベー
スに於ける列を数える2つの有用で自明でないシステム及び方法が以下に示され
る。
[0087]
SPARCOMデータベースを実行する好ましい方法及びシステムは、データ
ベースの全ての関係式を結合して、単一の”データベース2進特質マトリックス
”又は”DBPM”にする。DBPMはデータベース(好ましくはSPARCO
Mの通常形式)の関係式内に存する全ての特質(即ち列)を結合し、同じ特質に適
用するこれらの
列を併合し、DBPMに組み入れられる各関係式に列を追加する。これゆえに、
データベースの各列は、特定のデータベース関係式(好ましくはSPARCOM
の通常形式)に適し、行が適する関係式は特別な関係式で関連づけられた列内の
”1”の存在により示される。SPARCOMデータベースシステムを実行する
為の第2の好ましい方法(及びシステム)は、DBPMの実質上実行を伴う。これ
は、第1の実施例を用いて得られる同じ列番号手法を利用するが、(SPARC
OM方法のアシャニー氏(Ashany's)の元の形式化を用いて)各関係式について分
離したBPMを維持する。本発明の第2の好ましい実施例のケースに於いて、勿
論圧縮形式にて非ゼロ(即ち”1”列)が格納され、及び/又は掛け算されるけれ
ども、全てのBPMは同じ列総番号を持っていることは特筆されるべきである。
また、2番目の方法に於いて、与えられたBPM内の全ての行は、個々の関係式
に明らかに関係しているから、個々の行が関係する特別な関係式を表す為に列を
維持する必要はない。
[0088]
SPARCOM DBMSは、この単一の計数システムに従って、SPARC
OMデータベースの列を数えることを簡単に援助できる。DBMSはカウンタを
維持し、データベースに追加された新たな特質に、カウンタの増分値に等しい新
たな列番号を単に割り当てる。また、S
PARCOMデータベース内にて、一意的な列番号を割り当てる方法をより複雑
にプログラミングすることも、更により容易にプログラミングすることも明らか
に使用可能である。DBPMの為に列番号をプリセットし、全ての列番号をデー
タベース創造時に”利用できる列番号プール”に入れることは、”利用できる列
番号プール”内の利用可能な番号の範囲から列番号を”ランダムに”選択する為
に、乱数生成器の使用を許す。本発明に於いて、異なる関係式内にて識別列番号
を識別特質に割り当てることは、特質が既に存在しているか、上記に定義された
ように特質が属性値ペアをどこに示しているかを決定する為にコードブック(11)
をチェックすることにより、末端ユーザワークステーション(1)上にて達成でき
る。
[0089]
関係式の非ゼロ属性を含む自然結合は、SPARCOMデータベース上にて達
成され、該データベースの列は自然結合内に含まれるBPMの2つの関係式を掛
けることにより上記手法に従って順序付けられる。掛け算の前に、関係式の1つ
に基づき、投影が最初に遂行され、結合内に含まれない全ての属性を排出すべき
である。掛け算はこのとき”消去関係式”を用いて遂行される。
[0090]
ここで特定されたユニバーサル計数手法を用いることにより、データベース内
の全てのBPMは同じ列番号を
持ち、それにより、あるマトリックス又は他のマトリックスが取り換えられた後
に、互いの掛け算に準拠した全ての関係式に関連づけられるBPMを作る。また
、特定されたユニバーサル計数手法を用いることにより、異なる関係式間の識別
属性は同じ列番号を分かち合う事実は、マトリックスが掛けられたときに応答マ
トリクス内の非ゼロ(”1’s”)の位置が、マトリックス掛け算に含まれるB
PMのどの行が結合されるべきかを示すようにする。マトリックス掛け算から得
られる応答マトリックスはこのように、互いに結合されるようにマトリックス掛
け算の2つの元のBPMの行を選択する為に用いられる。結合の為のマトリック
ス掛け算を遂行する前に自然結合に含まれていない共通の属性を排出することは
、(即ち、以前に「きれいにする」と表現したとおり)応答マトリックス内にて”
誤正数”が得られることを防ぐ。しかし、応答マトリックスは、どの行又は元の
BPMが結合されるべきか、即ち関係式のBPMが結合されるべきことを示すこ
とに注意する。
[0091]
明らかに、SPARCOMデータベース内で列を数えるためにこの手法を用い
ることは、非圧縮形式内で採用されるBPMのサイズを著しく増大する。BPM
は勿論圧縮形式で格納されているから、もう一度繰り返すが、格納されたデータ
のサイズに基づく実際のインパクトは
非常に小さい。
次の例は、列番号がここでの記載に従って割り当てられたときに、自然結合が
SPARCOM構築データ上でどのように遂行されるかを説明する。用いられる
データセットは、目的を説明するには非常に僅かである。
[0092]例2
図4で”Cust”関係式に対して与えられるBPM、及び図7で”Sale
s Rep”関係式に対して与えられるBPMを考える。これら2つのBPMは
、同じ列番号を有し、2つの関係式が共通に持つ全ての特質が同じ列番号を利用
するように修正されることができる。”Cust”及び”Sales Rep”
に対する2つの修正されたBPMは夫々図8及び図7Bに示される。”state(州
)”属性上でこれら2つの関係式を結合するSQLステートメントは以下に与え
られる。
Select * from Cust c、Salesreps
where c.state=s.state;
[0093]
関係"”の”state(州)"特質のみを選択すべく投影して、図7cのBPMを得
る。このBPMを取り換えて図7DのBPMを得る。”Cust”関係式(図8)
のBPMと”Sales Rep”関係式(図7D)の取り換えられたBPMとの
マトリックス掛け算を実行して、図9の
応答マトリックスBPM9を得る。BPM9は3つの非ゼロ(”1’s”)エントリ
ー、(1、1)(1、3)(2、2)を持つ。これらのエントリーは結合されるべき元
のBPM(図8及び図7Bにより示される)の行:結合されるべきBPM6の行1
とBPM7Bの行1、BPM8の行2とBPM7Bの行2、及びBPM8の行6とBP
M7Bの行1を特定する。
[0094]
鍵の交換
本発明では、各末端ユーザのクライアントワークステーションは、コードブッ
ク情報を持っているので、データベースのサーバコンピュータ上のBPMデータ
を解釈することができるだけである。逆に言うと、末端ユーザのクライアントワ
ークステーションは、コードブックエントリーを持っていなければ、それらの列
の意味を解釈することはできない。BPMデータベース情報を、2又はそれ以上
の末端ユーザのクライアントワークステーションでアクセスできるようにするた
めに、これらの末端ユーザのクライアントワークステーショのコードブックには
、アクセスを共有するプロパティ用のエントリーを含んでいなければならない。
つまり、本発明では、コードブック情報(全文又は状況により部分的なものの何
れか)を安全に配布するために、ある種の機構又は方法が利用されることを必要
としており、その結果、データベー
ス情報を共有することができる。新たなプロパティを、末端ユーザのクライアン
トワークステーションからテーブルに加えると、この情報へアクセスを許可され
た他の末端ユーザのクライアントワークステーションは、新たなプロパティ用の
エントリーで更新されたコードブックを持たなければならない。コードブックエ
ントリーの交換は、明らかに鍵交換の問題となる。コードブックエントリーは暗
号鍵である。それ故、コードブックエントリーについての詳細な情報の移動は、
暗号鍵の交換である。
[0095]
暗号鍵を安全に交換する方法についての問題は、周知の問題であり、多くのプ
ロトコルと方法によって、うまくアドレスされている。
コードブックの更新情報は、直接的(ピアツーピア)に配布されるか、又は委託
された仲介者を通じて配布されるかの何れかである。
[0096]
公開鍵暗号技術(例えば、RSA)を利用したピアツーピア手法を用いて、コー
ドブックエントリーの交換を処理すると、末端ユーザのクライアントワークステ
ーション(以下のステップでは「送信局」という)の鍵共有機構(又はアルゴリズ
ム)は、以下のステップによって、コードブック更新版を、他の末端ユーザのク
ライアントワークステーションに送信する。
ステップ1)どの末端ユーザのクライアントワークステーションが、配布され
るコードブックエントリーに結合したデータベース情報にアクセスする権利を与
えられているかを決めるための照合を行なう。本発明の望ましい実施例として、
この情報は、ローカルに維持される。他の望ましい実施例として、この情報は、
委託された第三者機関のコンピュータにリモートに保持される。
ステップ2)コードブックエントリーは、送信局の非公開鍵(private key)を
用いて電子署名(暗号化)される。
ステップ3)次に、電子署名された(つまり暗号化されている)コードブックエ
ントリーは、コードブック更新版を受信する権限を与えられた末端ユーザのクラ
イアントワークステーションの公開鍵を用いて暗号化される。
ステップ4)適当なコードブック更新版は、送信局から、更新版を受信する権
限を与えられた他の末端ユーザのクライアントワークステーションに送信される
。
[0097]
暗号化されたコードブック更新版を受信する末端ユーザのクライアントワーク
ステーション(以下のステップでは「受信局」」という)は、以下のステップによ
り、送信局からのコードブック更新版を受信する。
ステップ1)公開鍵で暗号化されたコードブック更新版を受信する。送信局が
、更新版を供給する権限を有しているかどうかを照合する。権限を有しておれば
、次の
ステップに進み、そうでなければ、セキュリティの侵害が発生したことを通知す
る。
ステップ2)受信したコードブック更新版を非公開鍵(即ち受信局の非公開鍵)
を用いて解読する。これによって、送信局の非公開鍵で暗号化されたコードブッ
ク更新版から構成される別の暗号化されたメッセージが(おそらく)生み出される
。
ステップ3)前のステップで獲得された暗号文を、送信局の公開鍵を用いて解
読し、受信したコードブック更新版の出所が正しいことを確認する。受信した更
新版が真正(即ち、送信局が、特定された個々のリレーションに対して、コード
ブックの更新版の提供を許可されている)であれば、受信局は、次のステップに
進み、そうでなければ、セキュリティの侵害が発生したことを通知する。
ステップ4)受信局のコードブックは、受信された情報によって更新される。
[0098]
鍵を安全に交換する低度技術の方法であるが、末端ユーザのクライアントワー
クステーションのユーザが、転送されるqコード列情報にアクセスする権限を持
つ他のユーザへ、適当なコードブック更新版の入ったディスケットを個人的に運
ぶことが、迅速性には欠けるけれども、それにも拘わらず効果的な方法である。
さらに安全にするには、各ディスケットの内容を、所望の受取人の公開
鍵を用いて夫々暗号化して、所望の受取人のみが、データを使用できるようにす
ればよい。
[0099]
「委託された鍵サーバ」は、コードブック情報を配布するためにも用いること
ができる。この場合、更新版は、最初に委託された鍵サーバに送信され、委託さ
れた鍵サーバは、その許可データベース(authorization database)を確認し、暗
号化されたコードブック更新版を情報を持つ権限のある末端ユーザのクライアン
トワークステーションに送る。図10Aは、本発明の構成を示しており、委託さ
れた鍵サーバを含んでいる。注目すべきことは、委託された鍵サーバには、「完
全なる委託」を具えている必要はないことである。例えば、ネットワーク上のど
のデータベースサーバコンピュータにもアクセスを認められている必要はなく、
また、鍵を配布する導管(conduit)を一つも必要としない。それ故、DBA(デー
タベース管理者)は、委託された鍵サーバを管理し、データベーステーブルを定
義するにもかかわらず、データへのアクセス権を持っていなくてもよい。多数の
委託された鍵サーバを、同様に利用することもできる。図10Bは、本発明の構
成を示しており、多数のデータベースサーバコンピュータだけでなく、多数の委
託された鍵サーバを含んでいる。
[0100]
暗号の拡張
定位置Qコードの長さの拡張
この発明に使用される方法であって、データベースサーバコンピュータ上で、
プロパティの見かけの統計上頻度(apparent statistical frequencies)を変える
いくつかの方法について、以下で具体的に説明する。これらの方法を用いること
によって、データベースサーバコンピュータ上にあるデータ(即ち、BPM)の暗
号化を、より困難にする。
[0101]
1)ダミー列
BPMには、意味のない列を付け加えることができ、「1」と「0」を、どの
ようなやり方でも、例えばランダムに、又は現在の行にいくつかの「1」と相関
する機能として付け加えることができる。
末端ユーザのクライアントワークステーションには、その情報にアクセスを継
続するために、コードブック更新版を提供する必要はなく、導入されたデータは
、BPMの暗号化をより困難にすることにのみ有用である。それでもやはり、「
ダミー列を含むコードブック更新版」を送出することは十分に有用であり、他人
が、BPM更新版の「真」と「偽」を区別するのを阻害する。
[0102]
2)ダミー行
意味のない(又は間違った)行の情報を、データベースに付加することができる
。末端ユーザのクライアントワークステーションは、ダミーの存在を認識し、デ
ータベース操作を行なう際に、それらを無視できる必要がある。ダミー行を処理
する望ましい方法は、「ダミー行マーカー列」を用いて、ダミー行をもつBPM
を提供することである。すべてのダミー行は、また、少なくとも一つの「ダミー
マーカー列」に「1」を有する。ダミー行を含むBPMにアクセスする権限を有
する末端ユーザのクライアントワークステーションは、BPM中で、ダミー列マ
ーカーのコードブック情報の提供を受ける。データベースの演算は、まず、特定
の行が、ダミー列マーカーを含んでいるかどうかを確認し、ダミー列マーカーを
含んでいる場合、その行を無視する。
[0103]
3)列分割
この方法を用いて、プロパティ頻度が均一化される。例えば、すべての兵士の
80%が男性であるということが知られているならば、4つの列は、プロパティ
「男性」を記録するために用いられ、4列毎の1列には、プロパティ「女性」を
記録するのに用いられる。所与の特性に対して、種々のプロパティの頻度に変動
がない場合でも、複数の列が、プロパティのために用いられ、現実の統計上頻度
をスキューし、又は、プロパティと列との
関係を単にわかりにくくする。
[0104]
列分割の最も極端なフォームの一つとして、各列が、プロパティ発生の一つの
例にのみ用いられることがある。
プロパティの第2の例を、BPMに付加する必要があれば、新しい列が、それに
付加されなければならない。例として、次の4つの記録について考える。
マーサ、 女性、青い目、 5'6"、120ポンド
ジョージ、男性、青い目、 6'1"、190ポンド
ジョージ、男性、茶色の目、5'6"、190ポンド
リサ、 女性、茶色の目、5'6"、120ポンド
[0105]
これらの記録は、次のBPM(又はこのBPMの中で、いくつかを列方向に並
べたもの)で表わされ、列の意味を明白にするために注釈を付けておいた。
情報の理論的な観点から、この方法で構成されたBPMは、驚くほど秘密性の
高いものとなる。クエリーの操
作は、依然として、このBPM上で行なわれていることに注目すべきである。
[0106]
委託された鍵サーバは、様々な特性を具える種々のプロパティの頻度を監視す
るためにアクセスを許容されており、ある閾値が限界を超えたときには、列の分
割を指示する。又は、列の分割は、末端ユーザのクライアントワークステーショ
ンに基づいて並べ直されるので、末端ユーザのクライアントワークステーション
は、勿論、アクセスを許可されたプロパティについての頻度を演算することがで
きる。
[0107]
4)列オフセット
圧縮して表わされたBPM中のすべての指数には、実際の値からオフセットを
行なう。異なるBPMには、異なるオフセットが行なわれる。ランダムな(そう
でなければ意味のない)データを作り出し、所与のBPMに適用されたオフセッ
トよりも小さいインデックス値を持つ列を埋める。オフセットは、元の値を容易
に演算できる如何なる数式によっても行なうことができ、元のインデックス値は
、データベース操作で用いることができる。とても簡単な例として、もう一度図
4を参照すると、+5のオフセットが、一つのインデックス圧縮系で表わされた
BPMに適用されると、BPMは、次のように表わされ
る。
(6,12,17,22,30,37,39,46,49,57,61,66,73,76,84,89,92,98,104,107,116,117,12
2,127)
Dim(11,26)
[0108]
オフセットを有する所与のBPMにアクセスする権限を有する末端ユーザのク
ライアントワークステーションは、そのBPM用のオフセット情報が安全に配布
されなければならない。BPMを含む演算は、また、BPMのオフセットを考慮
して適合化され、オフセットよりも小さいインデックス値を持つ列のデータをは
っきりと廃棄し又は無視しなければならない。一又はそれ以上の委託された鍵サ
ーバを用いた構成が、この発明で用いられる場合、所与のBPMについてのオフ
セット情報は、そのBPMについてのコードブック更新版を配布するのに用いら
れた同じ委託された鍵サーバを介して送信される必要はない。オフセット情報は
、異なる委託された鍵サーバから、又は、直接末端ユーザのクライアントワーク
ステーション間の何れかで配信することができる。末端ユーザのクライアントワ
ークステーションからデータベースサーバに発行されるデータベースの命令には
、また、列オフセット情報を含んでいる。
[0109]
圧縮スパースマトリックスの次元情報の暗号化
この発明で用いられる圧縮BPMの次元を暗号化することにより、追加の安全
性を容易にすることが提供できる。ビットマップを用いたスパースマトリックス
の圧縮や、単一インデックス又はダブルインデックス圧縮系はすべて、マトリッ
クスの次元が特定されていることを必要とする。他のスパースマトリックス圧縮
系にも、マトリックスの次元が、マトリックスを圧縮するために特定されている
必要がある。圧縮スパースマトリックスの次元を特定するデータをただ暗号化す
るだけで、殆んど実施コストなしで、コード化されたマトリックスの暗号化によ
る安全性が高められる。
[0110]
例えば、単一のインデックス圧縮系では、BPM Aは、ちょうど2つの成分
からなり、それは、1)BPMの次元を特定する2要素の組と、2)BPM中の
ゼロでない要素の位置を特定するベクトルvである。単一のインデックス化され
た方法では、Aの要素は、順次、一次元に並べられる。それ故、A中の列の数を
知ることが、ベクトルvの各要素であるAの列と行が表しているものを解釈する
ために極めて重要となる。SPARCOMデータベースのBPMは、一般的に非
常に大きいので、図示するために、図11では、5×8マトリックス中で、要素
の位置をまっすぐに並べたものを示しており、例示した
BPMの同じ次元の単一インデックス系を表している。
[0111]
図11の例中、マトリックスの次元がDim(5,8)(特に、列数が8に等しいとき)
であることを知らなければ、例えば、13の値を有するベクトルvの4番目の要
素は、BPM Aが、座標(2,5)にて「1」を有しているということを意味してい
ることを知ることができないことがわかる。同様に、37の値を有するベクトル
vの10番目の要素が、座標(5,5)でAが「1」を有していることを意味してい
ることを知ることはできない。勿論、座標(2,5)と(5,5)の両方が、Aで「1」で
あることを知らなければ、BPM Aの2番目と5番目の両方のレコードは、B
PMの五番目の列がどのようなプロパティを表していたとしても、プロパティの
点で同じであることがわからないことを意味する。
どのような暗号化系(望ましくは強力な系)でも、データベース記憶装置に保持
された圧縮スパースマトリックスの次元の暗号化に用いることができる。
[0112]
6)BPM列の並べ替え
BPMの列を並べ替えることは、情報にアクセスするのに必要な鍵を変える方
法である。列並べ替えは、多くの方法によって成し遂げることができる。これを
成し遂げるための望ましい方法は、テーブルの持ち主が、次の
ステップにより、自分の末端ユーザのクライアントワークステーションで、この
タスクを行なうことである。
ステップ1) 自分の末端ユーザのクライアントワークステーションにテーブ
ル(BPM)をダウンロードする。
ステップ2) 列をランダムに並べ替える。(擬似ランダム数発生器を用いた
プログラムが、列の順序づけの選択を補助するために用いられ、或いは、列の順
序づけの選択を補助する物理的なソースの乱数で結合したプログラムが用いられ
る。)
ステップ3) データベースサーバコンピュータから元のBPMを削除する。
ステップ4) 元のBPMに変えて、新たに並べ替えたBPMをデータベース
サーバコンピュータにアップロードする。
この方法でBPM Aを並べ替えた後、勿論、BPM Aのデータにアクセスす
る権限を有する利用者にコードブック更新版を提供する必要がある。
[0113]
自然結合操作(natural join operations)を手助けするために、上述の特定さ
れた列に対して、汎用数体系手法(universal numbering scheme)を用いるならば
、BPM Aと同じように、プロパティを有する他のBPMは、BPM Aのプロ
パティ列数の割り当てと同じやり方で並べ替えられた列を有していなければなら
ない。連鎖BPM
の並べ替えは、データベースのBPMに存在する共通のプロパティのウェブによ
って、プロパティ列数を、一貫して維持するために必要であることは明らかであ
る。
[0114]
本発明の配布型データベース構築についての変形
この発明の最初に述べた配布型データベース構築について、図6Aに示してい
る。他の配布型データベース構築を特定する図を、図6B、図10A及び図10
Bに示している。この発明の配布型データベース構築の構成要素を配布する方法
は、その他にも多くあるが、それらはここに記された発明と矛盾しないことは明
らかである。注目すべき付加的な形態は、ネットワーク上に位置し、利用可能な
SPARCOMデータのいくつか又はすべての個々の末端ユーザのワークステー
ションのハウスポーション(house portions)を有するということである。この計
画の下では、末端ユーザのワークステーションは、1又は2以上の異なったデー
タベースのみのSPARCOMサーバの代わりに、他の末端ユーザのワークステ
ーション上に位置するSPARCOMデータベース情報にアクセスするであろう
。
[0115]
データベースのプロパティ独立性
本発明の実用的な利点は、データベースに対して、プロパティの独立性を提供
できる点にある。この発明で用
いられる圧縮BPMは、プロパティが存在しているか、存在していないかという
ことのみを記録し、実際に末端ユーザのクライアントワークステーションが、ア
クセス権を持つ各プロパティの内容を特定する。異なる末端ユーザのクライアン
トワークステーション上で、所与のプロパティ(即ち、「列の分割」が用いられ
た場合は、BPM列数、又は1セットの列数)に対するコードブックのエントリ
ーには、所与のプロパティについての異なる解釈が含まれる。例えば、所与のB
PMで同じ列について言及した2つの異なるコードブックは、異なる自然言語、
例えば、英語と日本語で、同じ意味をもつエントリーを含むことができる。属性
適用データベース(attribute oriented databases)と比較すると、この発明で用
いられる圧縮BPMデータは、完全に自然言語の偏りがない。この発明によって
提供されるプロパティの独立性は、イメージや、ビデオ、音だけでなく、これら
のタイプの対象を示すもののような、より複雑なデータ対象についても適用でき
る。例えば、一方のコードブックは、所与のプロパティに対してテキスト値を特
定しており、他方のコードブックは、同じBPM列数に対してオーディオ又はイ
メージファイルで特定するものであるように、同じBPMに対して言及する2つ
の異なるコードブックには、同じプロパティに対して異なるデータタイプを有し
ているエントリーさえも含めることができる。
[0116]
本発明は、例示を目的とした上述の実施例で詳細に説明されているが、これら
説明は、単にその目的のためのものであり、次の請求の範囲の記載された事項を
除いて、本発明の精神と範囲から離れることなく、当業者が変形を加え得ること
は理解されるべきである。DETAILED DESCRIPTION OF THE INVENTION
Method and apparatus for securely storing data
[0001]Industrial applications
The present invention relates to a method for securely storing data. More specifically, this
The invention of the present invention does not require the work of plaintexting of data, and in a manner that does not require significant encryption.
Data is stored securely.
[0002]Background of the invention
Database systems must maintain the reliability and confidentiality of various data sets.
Only the individual users or groups of users who have been
Are allowed to access and operate the data. This request is generally a user authentication code.
Is handled through the control. Audit trail is also kept at the same time.
And, at least in theory, what information a user accessed
The progress such as when the access was performed is recorded. Among other purposes, o
Audit Trail accesses data on the database system,
It is intended to clarify the responsibility for operating. As a result, the data on the system
Improper access or operation to data
Has been helped to prevent
Access control and audit trails keep database systems confidential.
Useful and cautious mechanism to assist, but data using these methods
The base system is still susceptible to secrecy. In a state susceptible to destruction
One of the remaining basic areas is that of the person who manages the system.
It is. Anyone with the authority to administer the system should keep an audit trail record.
Can be turned off, erased, or rewritten. Tube system
People need to work effectively.
And have special rights to access information in the database. So
One of the main limitations is that effective and efficient data
Due to the lack of security through data encryption. Furthermore, for example,
Access control has been disabled by a computer hacker
The lack of protection by database encryption
Is at risk.
[0003]Problems with current methods
Use existing cryptographic techniques to improve database security.
If used, it is widely known that it affects database performance.
ing.
Because strong encryption changes the data structure in the database,
Many types of query operations and other DMLs (database manipu
The lation language (database manipulation language) is severely affected. Because day
To operate the database, it was necessary to first clear the data.
It is. In addition, data is encrypted using existing encryption methods.
That also exposes the information in plaintext.
[0004]
There are many distinctions between database encryption and communication encryption.
Features. What is the difference between database encryption and communication encryption?
Has been discussed in several places, including: [Gudes, E .; "Th
e Application of Cryptography to Data Base Security. "Ph.D. Dissertation
Ohio State University, 1976]. [Gudes, E., H.S.Koch, and F.A. Stahl. "T
he Applications of Cryptography for Data Base Securityo. "In Prceedings o
f the National Computer Conference, AFIPS Press, 1976, pp. 97-107], [Seb
erry J. And J. Pieprzyk. "Cryptography: An Introduction to Computer Securi
ty. "New York: Prentice-Hall, 1989, pp. 233-259].
As a part of the application. data
The base is used by multiple users to access data stored and shared
It is designed to be able to issue and operate queries. Those users are typical
Has different rights to various types of stored information. Emphasized here
What is different is that data stored and shared with various access rights is simple
There is a completely different problem from the general problem that exists with communication. In simple communication
, The parties involved in the communication usually act on the common shared stored data
Because it doesn't matter.
[0005]
Databases are turned selectively and unpredictably into records belonging to them
Is allowed to be. This is because message handling is not a problem,
Can be effectively added to the database compared to the qualities applied to simple communications
This places additional restrictions on the type of encryption. About database encryption
Answering all requests is clear compared to direct requests in encrypting files.
It is difficult.
[0006]
Almost all databases have adequate performance for query requests.
It is essential to create an index in order to gain the performance. De
Index is encrypted when accessing database information
There is no known general method for effectively using the state as it is.
Therefore, in order for the index to be exploited, it must be unencrypted
Must.
[0007]Overview of database encryption
Gudes [Gudes, E. "The Application of Cryptography to Data Base Security
. "Ph.D. Dissertation, Ohio State University, 1976] and Gudes, Koch and St.
ahl [Gudes, E., H .; S. Koch, and F.S. A. Stahl. "The Application of Cryptogr
aphy for Data Base Security. "In Proceedings of the National Computer Con
ference, AFIPS Press, 1976, pp. 97-107] is that database encryption
He pointed out three fundamental constraints that are distinguished from communication encryption. these
Restrictions place strict restrictions on the types of encryption that can be effectively applied to the database.
Will be limited. First of all, the method selectively and efficiently data
It must be able to be taken out. Because the data in the database is
Arranged to facilitate these operations, encryption and cleartext of individual records
It is desirable that the transformation does not include other records at the same time. Second, the data is
It is usually included in the source for a long time. If the data is encrypted
Request to change encryption key
If so, it would be necessary to re-encrypt the data using a new key.
Third, there is a "handling problem". If the database operation is encrypted,
Could be performed directly on the data that was
If you can handle encrypted data in the same way, it is very convenient
That is good. This is the encryption of plaintext and the overhead that is included in the plaintext of cryptography.
Not only eliminate data loss, but also anywhere in the data manipulation cycle that may be exposed
Also means that there is no data in plaintext,
Data security.
[0008]
Gudes and Gudes, Koch and Stahl have a multi-level format for database encryption
It is pointed out that this is the most appropriate model for addressing the issue. Day
The database is recognized as having multiple levels. That is, data is
Exist in the form of data structures, can be referenced according to this scheme,
Is managed as if a mapping exists. This mapping is actually
Defining data transformations, these data transformations are used in database design.
Because they are natural functions, they can use cryptographic security functions.
It can be used and extended. Their analysis is a multi-level database.
Between adjacent levels in the source structure
Examined the various types of encryption available. Gudes et al. Physical on their own
We defined a database structure with several levels, both logical and logical. Their duplication
Several level database structures provide encryption between different levels of the database.
Used to highlight possibilities. In a database, data is
Different formats on different physical media (disk, memory, display)
And therefore the data has different physical levels, each of which corresponds
They emphasize the fact that they have absolute (logical) meaning. various
Various types of cryptographic variants are feasible between the various levels of this structure.
You. The logical level is appropriate for the format of the database record at various levels.
While the physical level depends on the format defined by the logical record.
It consists of specific data. Typically, any number of physical records
Exists for all defined logical records. Gudes, Gudes, Koch and Stah
l's work was published in 1976, but nonetheless their model was decentralized.
It also considers the computer structure, because it has a multi-level database structure.
It is implied that various levels of construction can be placed in physically separate locations.
Because it is understood.
[0009]
Gudes et al. Five logical steps in the database structure
Defined floor.
1) User logic level
2) System logic level
3) Access logical level
4) Storage level (or organized storage level)
5) Unorganized storage levels
One or more physical levels may have different logical levels depending on the number of physical media.
It is possible to assign to a bell. Is there a correspondence between logical and physical levels?
Whether it depends on the details of the implementation.
[0010]
Gudes et al., The process of mapping between adjacent levels of the database architecture.
Details the predetermined type of encryption conversion to be applied. Seberry, Peiprzyk
Latest in Computer Security Literature, by Gudes, Koch, Stahl
A summary and analysis are given. [Seberry J. And J. Pieprzyk. "Cryptography: An Int
roduction to Computer Security. "New York: Prentice-Hall, 1989, pp. 233-25
9]
[0011]
The cryptography achieved by Gudes et al.'S multi-level database structure
Refers to the cipher as stored in the computer system. Multiple records
Bell-wide encryption is how encrypted data is manipulated
It doesn't really raise the question of whether to be. Multi-level encryption by Gudes et al.
Is possible in all cases to work directly with encrypted data elements
And not. Encrypted data is first stored in plaintext before an item is accessed.
Need to be transformed.
[0012]
A fundamental limitation faced by database encryption is that when storing data,
, It must be in a state that is convenient for operation. Database
If encryption keys are used at adjacent levels in the
Limited by case. Ultimately, data at a low level for easy retrieval
Need to be stored. If this is not possible, query
Additional work because data must be reconstructed into a format that can be attached
Need to be done.
[0013]
Combining different forms of encryption transformation can result in very strong encryption.
On the other hand, in a naturally formalized multi-level database structure,
The limited number of database levels that can be used
This imposes severe restrictions on security queries. By encryption
Security is a performance change that can make and change databases significantly.
Data without encryption
Ultimately obtained from the database.
[0014]
The concept of a multi-level database structure is well known. Various multi-level data
Terms related to the database structure are defined. "ANSI / SPARC" multi-level data
The database structure is the most widely recognized model of a multi-level database structure.
Dell. Explanation of ANSI / SPARC structure by Date [Date, C.I. J. "An
Introduction to Database Systems. "5th ed. New York: Addison-Wesley, 1990
, Vol. I., Chapter 2, pp. 31-54], hereby incorporated by reference as part of the application as background to the present invention.
I do.
[0015]Encryption / Q code
There are two mainstreams in cryptography. The key to encryption and q-coding. It
Each field deals with a different kind of encryption. That is, the encryption key and q code
Is. Cryptography is the conversion of individual symbols or groups of symbols in the alphabet
including. Symbols here include, for example, uppercase letters, lowercase letters, numbers, and punctuation.
Including. Conversion of encryption can be done without using special rules for handling semantic units.
Fit to each symbol or group of symbols in a completely general way
It is. Text with arbitrary and meaningless symbols is as easy to encrypt as
Can be a meaningful sentence. The sentence structure in which the encryption is performed
One unit of success is meaningful by chance. The Q code, on the contrary,
, Textual units, such as words, phrases, and sometimes clear meaning
Includes changing the entire sentence with content. Any trivial q-code is big
You need to use a code table. The example clarifies this reason: English text
A simple q-code that can convert all English words, including proper nouns
Requires a code table equivalent to containing The code table used in the q code is
Configure the keys in the code. Entries in the code table are key to themselves
Can also be considered.
[0016]
Cryptanalysis techniques are essentially based on statistical features in the plaintext domain.
Good. The cipher whose original text is assumed to be, for example, a message in a certain natural language
When attempting to parse, the cryptanalyst will be able to
Consider the appearance frequency of these characters and character combinations. For example, in q code
In this case, the frequency of individual words and combinations of words is examined.
[0017]
SPARCOMOutline
SPARCOM stands for "Sparse Associative Relational Connect
ion Matrix) ".
This is a method proposed and studied by Ashany,
System that dynamically builds data to provide fast response times and high throughput.
Used for many types of applications. In this approach, discrete-valued data
Data into large sparse matrices and perform database operations.
Database manipulation using a wide range of sparse matrix techniques. SP
In the ARCOM approach, the sparse matrix is stored and operated in a compressed state.
No, thereby saving large storage space and execution time. SPARCOM specific
The normalization process is often caused by entities that have multiple values for any attribute.
Reduce data redundancy. Database operations are performed at the internal level
Arithmetic operations on sparse matrix structures that contain structured information that the base has
Is executed by
[0018]
SPARCOM provides a method for retrieving the contents of data that takes discrete values.
Offer. That is, the data element is called as a function of its contents and
It is. In order to invoke the content, SPARCOM determines the relationship between the given entity and the attribute,
Is converted into the relationship between the entity corresponding to and the characteristic. The relationship between an entity and its attributes is
When the purpose is set based on the relationship, it indicates what attribute it has. Corresponding
The relationship between the entity and the feature
But only correspond to all possible values of the property of the set attribute.
Indicates whether or not it has the proper characteristics. The relationship between an entity and a feature is represented as a matrix
You. The matrix is usually very sparse.
In the relational database theory up to now, for any attribute,
We need to make a number of relationships for objects with values of. (That is,
On the other hand, in SPARCOM, it is an entity and a feature.
Since it is built on sexual relations, there is no need to create such a relation
Absent.
[0019]
Ashany states that the Binary Property Matrix is the basic data at SPARCOM.
It describes that it corresponds to the relationship between the entity and the attribute. [Ashany, pp
.62-63]: A1, ATwo, ..., AnThere is an n-dimensional attribute space with the attribute
Bottom d1, DTwo, ..., dnEach separate component D1, DTwo, ..., DnHas an area consisting of
However, they can be transformed into an N-dimensional characteristic space according to the following equation:
This independent property P1, PTwo, ..., PnIs the number of points in the n-dimensional attribute space
, Map every point into an N-dimensional characteristic space. Obviously N is greater than n,
And more to represent as points in a higher dimensional Euclidean space
Axis is required. Hence a large vector. In the characteristic space,
However, there are only two distinguishable points on each axis; 0 or 1
And each component axis represents a characteristic.
[0020]
entity represented in attribute space by n single-valued attributes, ie, n digits
Is represented by an N-digit characteristic space consisting of n 1 and N−n 0 values.
It is. A value of 1 is inserted at the location representing the attribute. Gender
There are two basic types of attributes (male, female).
Since there are five basic types (black, blue, brown, green, reddish brown), the characteristic of (male, blue)
, I.e., an entity with a male gender and blue eyes is a seven-digit number E (1,0,0
, 1,0,0,0). A two-element set is converted to a seven-digit number that includes two nonzero elements.
Is replaced. Each attribute with a single value has a cardinal number.
, For example, d1= 10 and dTwo= 12, the two elements in the attribute space
The tuple is converted to 22 digits in the property space. Again, two non-zero values
And a binary vector with 20 zero values. The base in these characteristic spaces
Kuto
Files are called Extended Binary Vectors (EBV) and are usually
Is sparse.
[0021]
A set of m entities is an m × n Binary Connection Matrix (BCM) (binary
It is represented by a (binary) matrix consisting of 0 and 1 called a connection matrix. Because
The non-zero elements exist between each entity and each of its corresponding properties.
This is because it indicates the existing relationship.
This matrix is more specifically a binary feature matrix (BP).
M). One of the important features of EBV is that it has attributes with only one value and multiple values.
Possible attributes are represented as one and the same vector in solving the redundancy problem.
It is.
[0022]
Each and every feature arising from the construction of the binary feature matrix
Because each characteristic is indexed, the file itself is completely inverted.
Important feature that it is also an inverted file (or even a direct file).
There is a fact that the binary feature matrix is essentially a feature extraction feature.
Especially suitable for doing business. SPARCOM's range query
The approach is very easy to perform compared to classic database structures
Rukoto can. To
In order to get the answer to the query, only one query
You just need to put a coutle. In contrast, attribute-based data
In a database, a search operation is generally used to get an answer
Must be repeated multiple times.
[0023]
Binary Property Matrices is based on the SPARCOM standard format (SNF '
s), a proprietary standard format that is relevant to other database standards
Format is based on characteristics rather than attributes.
Are distinguished. And most notably, how to define a relationship with multiple values
It is a difference in the point of handling. 1NF standardization method defined by Codd
Is an attribute generated by an attribute with multiple values when there is an attribute with multiple values.
The length is reduced by a method of decomposing into a plurality of relations. Such decomposition is known as SPARCO
Unnecessary and inappropriate according to M's method. In SPARCOM, attribute-based
This is not the case because relationships are organized based on characteristics rather than
It is as follows. In effect, the purpose of 1NF relies on the decomposition normally associated with 1NF.
Not automatically achieved under SPARCOM.
[0024]
The relationship in the consultant example in Figure 1A is 1NF
Is not included. Features that exist here for attributes in consultant relationships
The above dependencies are as follows:
Name → hourly wage, name → skill, name → day of the week
This is a premise, but there may be other dependencies. Skills and days of the week
Is given here as an attribute having a plurality of values. To explain
In Figure 1A, the skill, which is an attribute with multiple values, and the next day have two different purposes
Is treated in. Multiple examples of each particular consultant in the skills
Has been broken down into a number of records. On the other hand, on days when consultants are available
In all of the examples, a repeating group is created within that individual record
. Both of these techniques for representing attributes with multiple values are preferred
is not.
[0025]
On the other hand, multiple records for each case of attribute with multiple values are stored in 1NF.
Rather, having in a relationship has no inherent functional dependencies
Unnecessarily duplicate other attributes. (In this example, the hourly and weekday attributes are
It is not related to functional dependencies where the name is a skill, but
Data will be duplicated. On the other hand, the repeated group is
Not as decomposed value, and therefore repeated
Operations on records with groups require additional operations. Moreover
Records in repeated group relationships are not the same length or are null
And neither of these cases is preferable.
[0026]
Break down consultant relationships (name, hourly rate, workmanship, day of the week), required by 1NF
As we can see, removing attributes with multiple values removes the three independent relationships CRat
You can get e (name, hourly), CSkills (name, skill) and CDays (name, day of the week). FIG.
The relationship of 1NF obtained by decomposing data corresponding to 1A data is shown. Figure 1B relationship
Also occurs in 3NF and BCNF (Boyce-Codd Normal Form).
[0027]
Decomposition usually reduces overall redundancy, but in the process creates smaller
I have. That is, in the example in Figure 1B, the "name"
Can be found as part. This redundancy is necessary, where all
Relationships are preserved and exist in multiple relationships derived from the decomposition process
Performing normal concatenation on attributes helps reconstruct the original relationship
.
[0028]
Figure 1C shows the SNF version of the relationship between consultants used in Figure 1A.
It is. SPARCOM database
The need to decompose the data into 1NF
The provision can prevent the generation of redundancy in this process.
This is exactly the SPACOM for the database model that thinks based on the existing attributes
The superiority of the model.
[0029]
Ashany notes that one of the key performance advantages of the SPARCOM approach is:
It is explained as follows. [Ashany, 184 pages]
Many algorithms that deal with sparse matrices have one common feature.
That is, only non-zero elements are stored in the matrix. The goal is to use these matrices,
To save storage space, and especially to reduce access and execution time
Therefore, it is necessary to operate in a state where the entire matrix does not exist. What
This is because there is no need to represent or manipulate the zero element.
[0030]
Another key performance that the SPARCOM approach has over other database approaches
An advantage in terms of data resides in the content addressability of the data. Other database systems
The system uses multiple indexes to answer various types of queries quickly.
Is often required to be maintained. Database other than SPARCOM
In the system
Will not be indexed to support the specified query.
The answer speed for the query will be very slow. Because the index
When there are no resources, it is necessary to perform a thorough search for data elements. SP
ARCOM does not require multiple indexes. Because it is all data
Is indexed. To compress the BPM used in SPARCOM
This is because various methods for indexing are actually methods for performing the index itself.
[0031]Sparse matrix concept
As mentioned above, SPARCOM is a database based on features,
Use binary sparse matrices to create internal-level data structures, such as building bricks
I have. The persistence data in SPARCOM is composed of BPM,
Results in a non-binary matrix that is itself sparse or not.
Format. Ashany discussed three approaches to indexing matrices
. Ashany investigated the methods of Bitmap (BMS), "Single Index" (SIS), and "D
ouble Index "(DIS) compression method.
Perform reduction on sparse matrices. And for binary sparse matrices, higher pressure
Perform shrinkage. Database operations are implemented according to each of these three approaches.
Dexification
Made against BPM. Index methods, datasets, and databases
Good or bad results depending on which one you select in the source operation
, But the results that show excellent performance in each are various
Obtained in various compression methods.
Fig. 2 shows how the matrix depends on each of the BMS, SIS, and DIS compression methods detailed below.
This is an example of whether compression is performed.
[0032]"Bit Map" Law
In the bitmap method, an m × n matrix A (m is rows, n is columns) is decomposed into three elements.
You.
1) Two-element Dim (m, n), where m and n are rows and columns in matrix A.
2) A binary matrix B of dimensions m × n. However, the non-zero value of A is
Replace it with
3) a vector v, whose elements are non-zero values of A and whose contours are
Is being traced.
The bits of the elements of the binary matrix B are used to connect the rows (or columns) of the matrix.
Thus, the formed bit string SBIs stored as SBRequired to store the
The number of units can be calculated by the following simple formula:
SB= [(Mxn) / S]
Here, S is the number of bits in one byte.
The order of the elements in v is either row 1 to m or column 1
Are arranged so that they appear when scanning from n to n in order. Other array orders
Of course, it is possible.
[0033]
Bitmap method stores each element of binary matrix element B as one bit
To achieve significant compression. In the bitmap method, multiple binary
The element is a well-known single byte with the actual number of bits depending on the byte size.
Stored by the law. This compression technique supports the use for this feature.
Hardware that can perform efficient bit operations using different languages
It is clear that both are achieved efficiently. The bitmap representation of BPM A
The fact that the vector element v is not required is that the two-element set Dim (m, n) and the bitmap
It is clear that element B is enough to completely define BPM A.
[0034]Single indexing scheme
In contrast to the bit mapping scheme, the single indexing scheme is
Remember only non-b elements. The single indexing scheme consists of three structures:
A non-binary matrix A is expressed using components. 1) Two-piece Dim
(m, n), where m is the row number of A and n is the row number of A. 2) The element is z in A
Position vector v listing the positions of non-b elements1. 3) Elements are
A vector v which is the non-zero value of ATwo. Two vectors v1And vTwoElement of vTwo
Element biIs v1Element aiIn matrix A at the location specified by
Indexed to hold the value of the element being indexed.
[0035]
The position k of the element (i, j) of A is determined by the linear mapping function.
k = f (i, j) = j ÷ (i−1) × n
In the above formula, i and j are the row and column of the element, respectively, and n is the number of the column in A.
No. This formula simply determines the arrangement of the elements of the matrix,
This means that the elements of the matrix are scanned one row at a time and the next row is scanned.
It is determined by performing from the eyes to the m-th line.
[0036]
Binary matrices, such as BPM matrices, are single indexed
Represented in a similar way using the system, but here it has two components, defined above.
1) Dim (m, n) of 2 sets and 2) position vector v1Only needed
. All non-zero values are binary matrix values, so
The second vector to identify vTwoObviously there is no need for.
[0037]Double indexing scheme
The dual indexing scheme has three components, two of the components themselves.
The second is composed of two parts. 1) Determine the number of rows and columns in the matrix
2) Dim (m, n), 2) Index the position of the elements of the matrix
Two vectors v1And vTwoAnd 3) the element is a non-zero value of A
Vector vThreeIt is. Components 1 and 3 consist of a bit map and the single index described above.
No consideration is needed at all, as it has the same correspondence as both of the indexing systems. other
Vector v,ThreeIs (in this case, the nonzero element of the matrix
Not required for binary matrices (which hold prime values).
[0038]
Each row from row 1 to row m in matrix A having Dim (m, n)
In order, the vector v1Sequentially lists the column numbers of the elements with non-zero values in A
I do. v1The last element of a must hold a distinguished symbol.
No. Non-integer symbols in the range 1 to n will be retained. (Ashany,
The symbol “Δ” is used). Vector v1The number of elements in is zero in A
Equal to one more than the number of non-elements.
[0039]
Vector vTwoIs the first non-zero element in each row of matrix A.
V1The position of the element in
To identify. Vector vTwoElement of vTwoElement i of the matrix A
V containing a nonzero element of 11To determine the number of indexes
The elements themselves are indexed. Vector vTwoContains m + 1 elements
I have. vTwoIs the last element of v1Identifies the last element of, which is a distinguished symbol
is there.
[0040]Other indexing schemes
There are many other techniques for compressing sparse matrices. Frequently quoted
Simple techniques that are easy to program and program can be either rows or columns.
Some include the use of linked lists. Either in rows or columns
So doubly linked lists where data can be easily recovered,
It can be used as well, which is similar to (SIS and DIS compression techniques).
Non-zero sparse matrix in arrays or in more complex data structures
Index values.
[0041]
Tradeoffs depend on the choice of various sparse matrix compression schemes.
Coexist. For example, bit mapping, single index and double index
When comparing the compression schemes, you will find linked and doubly linked lists.
Embodying a linked list
Provide similar compression due to the increased overhead required to maintain
Do not offer. This means that each node in the list contains both the element value and the linked address information.
Is included. On the positive side, the linked list structure is
Insert the new non-zero element into the sparse matrix
Tend to provide better performance than the obvious way of
In the direction. Enough vectors used in the sparse matrix compression scheme above
If it is embodied with a simple array that is denser then the new sparse
In order to insert a Rix compression scheme, a new array needs to be constructed. Cause
This can be done by shifting the left subvector backward in memory or
, Right in the memory in the forward direction. This includes
Prior to these shift operations, it is assumed that appropriate memory has been allocated in advance.
are doing.
[0042]Queries
In SPARCOM, a simple query converts BPM into a query vector transformation.
This is performed by matrix multiplication. The query vector is a row vector
Therefore, it must be configured to have the same number of elements as the number of columns in the BPM to be queried.
I have to. Query vector is binary, ie contains only 1 or zero
In. Que
A Lie vector of 1 indicates the property that is being sought.
[0043]
In SPARCOM, the result of a simple query is typically a non-binary column
Vector (or response matrix). The dimension of such a column vector is
Corresponds to the number of lines in the BPM that have been derived to some extent. Obtained in simple queries
The value of the ith element of the filtered column vector is
Shows the number of properties that have BPM in common. The degree of the query vector is the vector
It is the number of 1 in. For a simple query, row i of BPM is obtained from the query.
"Matches" the selected query vector is the column vector (often not binary)
Is equal to the degree of the query vector. This is another
Expressed as a simple query, the threshold of the response matrix element is
, Equal to the magnitude of the query vector. FIG. 3 shows an example of a simple query
I have.
[0044]
Many types of more complex queries require queries that require query scope and Boolean operations.
It can be easily implemented using the SPARCOM approach involving Erie.
In the query range, multiples of the value (property) are specified for some attribute
. The query scope is based on the identified characteristics
Send back the record with any one. If we are involved in providing customer information
Query about the customer (name, street, city, state, postal code), state
-The SQL statement for this relationship with the scope specified is given below:
Could be done.
Select from * Cust
State? = "NY" or state = "NJ" or state = "CT"
[0045]
This SQL statement is an operation with a query range of "or"-multiple "or"
Highlight the fact that this is often the case. Data that focuses on attributes
In the database, each operation of "or" increases the search time required for a query
. According to the SPARCOM approach, the query scope of a single valued attribute is specified
Perform a normal matrix multiplication of BPM with a query vector containing all the values in the range
It can be achieved by executing. In this case, to get the matching row
The only adjustment that needs to be made is that the thresholds of the elements in the response matrix are cleared.
Must be equal to the number of attributes queried, not the Erie vector
Must. Therefore, in SPARCOM, the query range for single-valued attributes is
Does not require extra search time. Figure 4 shows the query range of SPARCOM.
Example of whether to execute the Cust-related SQL statement shown above like
ing.
[0046]
Sparse mats compressed using a specific technology, such as SIS or DIS compression technology
Matrix multiplication in Rix uses nonzero elements of a sparse matrix as a factor.
Requires only the action of
Excellent performance can be obtained for the calculation.
[0047]
Regarding the SPARCOM approach to performing database operations
The above overview also serves only as an introduction. For a more detailed explanation, see Ashany's doctoral dissertation.
And is incorporated in the present application by way of background. [Ashany, R .; "SPAR
COM: A Sparse Matrix Associative Relational Approach to Dynamic Structuri
ng and Data Retrieval. "Ph.D. Dissertationn, Polytechnic institute of New
York, June 1976]
[0048]Summary of the Invention
The present invention relates to a device for securely storing data. The device is significantly encrypted
A database having a storage of the retrieved data. The device decrypts the data
Meaningful database operations that contain significant encrypted data without the need
It has a database mechanism to perform the work. The database mechanism
Connect to database
Has been continued. The device is used to obtain data from a database facility.
There is also an access mechanism connected to the base mechanism.
[0049]
The present invention relates to an apparatus for storing data. The device has significantly represented data
With a database having The device significantly represents the operation of the database
It has a database mechanism for executing on the data obtained. Database machine
The structure is connected to a database. The device receives data from the database facility
Providing an access mechanism connected to the database mechanism to obtain
Access mechanisms have identified species that differ significantly depending on the data that was significantly encrypted.
Includes various users.
[0050]
The present invention relates to a method for securely storing data. The method is significantly encrypted
Storing the acquired data in a memory. Next, you need data encryption
Database operations using significantly encrypted data from memory
There is a process to execute the crop. Further, there is the step of obtaining data from memory.
[0051]BRIEF DESCRIPTION OF THE FIGURES
In the accompanying drawings, a preferred embodiment of the present invention and
A preferred method of practicing the invention is shown.
FIG. 1A shows a non-INF (first normal form) relationship due to background information.
.
FIG. 1B shows after FIG. 1A has been converted to 3NF (third normal form) for background information.
1A shows the relationship of FIG.
FIG. 1C shows FIG. 1A converted to SNF (SPARCOM normal form) for background information.
FIG. 1A shows the relationship after the conversion.
FIG. 2 shows BMS (Bit Mapping Scheme), SIS (Single Indexing Scheme) and D
How the matrix is compressed using the IS (Double Indexing System) pressure method
An example of what is done is provided for background information.
FIG. 3 uses the SPARCOM method of executing a query for background information.
Here is an example of a simple query:
FIG. 4 shows a SPARCOM method of executing a query range for background information.
The example of the query range which uses is shown.
FIG. 5 shows the basic elements of the invention in a block diagram.
FIG. 6A illustrates a network architecture of a preferred embodiment of the present invention.
You.
FIG. 6B shows another network architecture of the preferred embodiment of the present invention.
ing.
FIG. 7A shows a BPM (binary property matrix) using the “Sales Rep” relationship as an example.
).
FIG. 7B shows the same “Sales Rep” BPM shown in FIG. 7A.
Is represented. The BPM is changed so that the number of columns of the BPM and the characteristics of the columns are combined.
Corresponding to the number of columns of the "Cust" -related BPM and the characteristics of the columns.
You.
FIG. 7C selects only the column for those representing "state" and the other
BPM obtained from the BPM of FIG. 7B after performing "sanitize" projection
are doing.
FIG. 7D shows the BPM of FIG. 7C after being converted.
FIG. 8 shows the same “Cust” relationship BPM as shown in FIG.
ing. The BPM is a combination of the column content and the number of columns for the BPM.
Change to match the content of the BPM and the number of columns in the “Sales Rep” relationship with the deaf.
Has been updated.
FIG. 9 shows the response matrices obtained by matrix multiplication of the matrix of FIG.
Rix shows. The response matrix is the original BP to be bound
Identify the rows of the matrix of M (obtained in FIGS. 8 and 7B).
FIG. 10A shows another network architecture of the preferred embodiment of the present invention.
are doing.
FIG. 10B shows another network according to the preferred embodiment of the present invention.
3 shows a work architecture.
FIG. 11 shows a 5 × 8 matrix based on the Single Indexing Compression Scheme (SIS).
This indicates that the coordinates of the boxes are arranged, and in the example of SIS representation (representation),
In addition, an example of a matrix is shown. Dimensional information of SIS expression of this matrix
Encrypting only the information, without substantially sacrificing performance,
That the security of the cryptographic method is further enhanced by the simplified matrix
Will be noticed.
[0052]Description of the preferred embodiment
In the drawings, reference numbers indicate similar or identical parts, and more particularly,
Referring to the figures, an apparatus for securely storing data is shown. The device is significantly
A database having a storage for the encrypted data. The device is
Meaningful data containing data that is significantly encrypted without the need to decrypt the data
It has a database mechanism for performing database operations. Database
The mechanism is connected to a database. The device receives data from the database facility.
It also has an access mechanism connected to the database mechanism to obtain data
You.
[0053]
Access mechanisms should include encryption / decryption mechanisms.
Preferably, this is connected to a database mechanism, and decrypts the decrypted data.
Upon receipt, the data is encrypted and supplied to the database. Also, the database
Receiving the decrypted data from the source mechanism and decrypting it. Preferably,
The access mechanism has an end unit having a user CPU and a workstation memory.
User workstation, where the encryption / decryption mechanism is stored in memory
Stored codebooks and memory for accessing and updating codebooks
Includes software programs located within.
[0054]
Significantly encrypted data is a positional Q code that focuses on properties
Desirably. Positional Q-codes that focus on properties are sparse 2
It is desirable to include a hexadecimal matrix. Positional Q-course focusing on properties
Is the size of the information of the temporary column, temporary row, column division, column offset, and permutation of BPM column.
Use compressed sparse matrix encryption to indicate the
Improve the security of Q-codes where the emphasis is placed
[0055]
The device comprises a database mechanism and a database server having a database.
It is desirable to include a computer. The database mechanism includes a server CPU and
server
It is desirable to have a server connected to the CPU. Server memory is
It has a database. Preferably, the server memory is a database command
A storage buffer device and a database response storage buffer device. server
The computer has a server memory and a workstation connected to the server CPU.
It is desirable to include a communication port. Preferably, the workstation is
To communication port, workstation CPU and workstation memory
Set the connected workstation communication port, input port, and output port.
And both ports are workstation memory, workstation CP
U and workstation communication ports.
[0056]
The present invention relates to a device for protecting a data storage device. The device must have sufficient
It has a database mechanism that has data with boxes. The device is
Of or with sufficient indexed data with index information
It also has a database mechanism to perform
Allows access to and translation of highly indexed data. The device is
An access mechanism connected to the database mechanism to obtain data from the source mechanism
I have it.
[0057]
The present invention relates to an apparatus for storing data. The device has significantly represented data
A database having a storage device. Equipment was significantly represented
Providing a database mechanism for performing database operations using data
ing. The database mechanism is connected to the database. The device is
Mechanisms include various users with various representations of the data that are significantly encrypted.
Connected to the database facility to obtain data from the database facility.
It has a continuous access mechanism.
[0058]
The access mechanism provides various natural language translations of the significantly represented data to various users.
Offer to the. Alternatively, the access mechanism may provide an audio representation of the significantly represented data.
Provide to the visually impaired.
[0059]
The present invention relates to a method for protecting a data storage device. The method is significantly cryptographic
Storing the converted data in the memory. Next, you need to encrypt your data.
Perform database operations on significantly encrypted data from memory without need
There is a step to perform. Further, there is the step of obtaining data from memory.
[0060]
The main idea of the present invention is shown in FIG.
Basically, it is a database encryption mechanism and method.
Internal level data in the form of q-code information by organizing and distributing
Is maintained on one or more database servers, while at the external level (user level)
And / or schema information at the conceptual level (general level)
Station. External or conceptual level schema
In addition to information, also present on workstations of voluntary end-user customers
The database information is a codebook containing a list of pairs of values. Each pair
One element (member) specifies a property. The other value is the given property
Identify a set of equivalent q-codes for the Therefore, the codebook is
Can be thought of as having an index of
The customer's workstation has a key with the encryption for it
. In the preferred embodiment, data that also resides on an
The database information (data contents) is a SPARCOM database. That is,
The report consists of a set of compressed BPM databases, each of which contains a specific
It is an illustration of a property-entity relationship. The database server
Index information needed to translate the level compressed BPM data
Information is not kept. Network arch of preferred embodiment
The architecture is shown in FIG. 6A.
[0061]
Referring to FIG. 5, as described above, the end user customer's workstation (1
)), The algorithm 1A (15) receives the user input into the input port (2),
Analyze the input information and perform a codebook search to identify the identified
Find an encrypted equivalent of Patty and use the encrypted database command
Formalize, present these to the database server, and summarize the commands issued
Is stored in the content storage buffer device (13). Algorithm 1B (19)
An encrypted response is sent from the communication port (32) of the database server computer (30).
, Wait until received in (5), read the encryption, and temporarily store it in the database
The response is stored in the response storage buffer device (17). Algorithm 1B (19) is next
Inspect the storage buffer device (13) and check that the received
And decrypt the code by searching the codebook.
Determine the plaintext equivalent to the element of the cipher that was received and indicate it by the user on (1).
Process the result of the ordinary sentence as specified, i.e. direct the output information to (4) or to (23).
Or both. Data at the center of algorithms 1A and 1B
The data structure is a code book (11). End user customer workstation (1
The codebook (11) above
Has a specific property listing for a given table, and
The workstation (1) has been given access to it. Code book
Query listings consist of a set of (property, column) tuples (2-tuples).
Will be.
[0062]
The set itself is completely split into two distinct subsets (properties, columns)
Each set may be represented by a different table on the database server (12).
It is a view. The screen will appear depending on the access privileges specified for the particular user.
All columns in a given table may or may not be listed. one
In general, columns that may be excluded from a particular screen in a table are themselves
, A group of columns relating to a particular attribute in the table. But
Meanwhile, the user can easily gain access to only a part of the column for a particular attribute.
As a result, it is possible to easily divide the data into smaller levels.
[0063]
Codebooks are implemented as simple lists of records with two fields.
The list can be stored linearly or in a memory (6).
Stored in a linked or doubly linked list within. Specialized in the field
Many other algos well known to the gate family
Rhythms are available, these can be searched forward and backward
And is effectively executed on the related items of the pair. Prompt Codebook Search Book
It is important to the invention that non-trivial databases that utilize the invention are often used by many professionals.
This is because they have patties.
[0064]
In a preferred embodiment, the codebooks (1
The two distinct and singular subsets of 1) are each collected and promptly
Programmed as two separate related sequences for search. That is, each tape
Are two related arrays, one of which is searched forward from the property to the number of columns.
The second array is used to search backward from the number of columns to the property
It is. In an alternative preferred embodiment, used together as one set
Every (property, column) duplicate for a codebook has two associated arrays
(Forward search sequence and reverse search sequence).
Where each property field is an ordered pair (table
Name, property1). here
, Properties1Is a property that appears in multiple tables (ie, sorted attribute-value
Means pair). Therefore, the (property, column) pair is
Mat (table name, property1, Column)
Will appear as a codebook entry. Owned by different users
Some tables may be named exactly the same,
, The table name field is itself table name = (owner, table
Rename1It should be noted that it may be a composite component with
You. Further, as shown in FIG. 6B, multiple database servers
Network. Therefore, the value of the property is effectively
Extended hierarchical structure, e.g. address; database; owner; table name1.Professional
Patty1. Each codebook itself is a simple, special-purpose, single-use
It will be seen that the user database is effectively structured.
[0065]
Algorithm 1A (15) converts the plaintext property information to the q-code
Convert to (15) describes this in the workstation code of the end user customer.
This is achieved by performing "forward search" in the book (11). Argo
The rhythm 1B (19) converts the q-code sequence information at the fixed position into plaintext property information.
. (19) explains this by performing a "reverse search" in the codebook (11).
And achieve by.
[0066]
Queries and other database operations are described above.
As shown, the q code of the end-user customer's workstation (1) in place
Is assembled into a SPARCOM database command containing Endo
Database commands formulated on the user's client workstation in this way
Is sent out to the network to the database server (30). Target database
The database command sent to the source server (30) is thus encrypted
This is because the q code at the fixed position is included. End user customer workstation
From the communication port (5) of the application (1) to the communication port (32) of the database server (30).
Network traffic, including database commands,
It is clear that it itself is encrypted because it includes the encryption of the command. (
This network traffic can, of course, be in any other form, such as DES or RSA.
It can be additionally encrypted using a formal encryption technique. )
[0067]
Referring to FIG. 5, in the preferred embodiment, algorithm 2 (39)
Decompose the database command received in step (32). The command is
contains the q-code, so this is cryptographic. Next, algorithm 2 (3
9) stores the database command in the database command storage buffer device (37).
Stored and specified in the command on the fixed position q code database (35)
Execute the command found in the buffer device (37) while performing the specified operation
I do. Queries and other internal-level database operations can
Database server computer using the SPARCOM approach described in
This is performed on the BPM data held in the data (30). This means that the database server
In the q-code database (35) contained in the memory (33) of the computer (30)
Means the operation to be performed on the found compressed binary property matrix
ing. The executed database operation is performed on the database server computer (30).
The plaintext data to the encrypted data stored in the
In this way, it is executed directly without showing. Q-code database
The output information generated by executing the command on
BPM and operation status information such as “transaction ID number”, “success”, “
Failed), and temporarily stored in the database response storage buffer device (41).
Be stacked. (Operation status information is not essential for the basic functioning of the present invention.
No, but rather this is a standard database that can be provided in the system.
Program information. Complex by using "transaction ID number"
To keep track of individual transactions in complex network systems.
And assist. Other methods are also required for this system
Handle the condition. The use of a “transaction ID number” simply focuses on this need.
It is only shown as a way to spot. ) Algorithm 2 (39)
The final step taken is the output generated by executing the database command
Sends the information to the end-user customer workstation (1) that invokes the command
Is to return.
[0068]
Network traffic is routed through communication port (32) to end-user
The data is sent to the database server (30) sent to the communication port (5) of the station (1).
Contains output information generated by executing database commands,
It is obvious that network traffic itself is encrypted
At least compressed q-code encryption in place in the case where data is sent back
This is because it contains BPM. (Network traffic in the other direction
When having this network traffic, of course, such as DES or RSA
Can be additionally encrypted using other types of encryption techniques. )
[0069]
In an alternative embodiment, the end-user customer's workstation itself is
Database operation in BPM located on the database server computer
Do it directly. In this case, the database server simply
Acts as a database file server. All SPARCOM databases
Operations (e.g., queries involving matrix multiplication)
Depending on the application, they can be executed using their own CPU and memory cache.
It is. The usual trade-off exists between the two approaches. Center of data
The process will require more from the central host machine. Networked
The remote processing of data at the workstation is burdened by the central host computer.
It will ease the burden and utilize the processing power of the desktop. But this is
It may cause more network traffic and the database server
Of many end-user customers trying to change data on a computer at the same time.
This may cause further difficulties with workstations.
[0070]Example 1
The following annotated example is the SPARCOM range described in the Background section above.
Illustrates specific examples of how query examples are handled by the preferred embodiment of the present invention
I do. The uncompressed data representation (BPM) for the "Cust" relation is shown in FIG.
1) The user enters the end user workstation (1).
Issue a high level database range query command to the input port (2).
If the state is ('NY', 'NJ', 'CT'), select * from Cust.
2a) Algorithm 1A (15) reads and analyzes this input.
2b) Algorithm 1A (15) performs a forward search on codebook (11) and returns
Determine the column number for the attribute identified in the query.
[0071]
A suitable entry on the codebook (11) for the Cust table is:
name. Lynn 1
name. Mark 2
name. Bill 3
name. Sam 4
name. Liza 5
name. Carl 6
Street 5 Oak 7
Street 6 Gunn 8
Street 2 Pine 9
Street. 8 Main 10
Street. 4 Main 11
City.Nyack 12
City.Union 13
City.Derby 14
City.Reno 15
City.Butte 16
State.NY 17
State.NJ 18
State.CT 19
State.NV 20
State.MT 21
2c) Algorithm 1A (15) uses a codebook search based on the identified characteristics.
A query vector is constructed based on the obtained technique information. Algorithm is configurable
The constructed query vector is a binary vector, has 1's in the array element,
The column element index corresponds to the column number found in the codebook search. other
Are all 0's. Therefore, algorithm 1A (15) is used for NY, NJ, CT
Construct an appropriate query vector containing column numbers equivalent to. Query vector Q
V is represented in the uncompressed form as follows:
QV = (000000000000000011100)
However, for BPM, generating the query vector QV in direct compression form is
Of course it is possible and desirable.
[0072]
The preferred way to generate this query vector in compressed form is equal to size
Query length array
Assign to the number of the non-zero element (1's) of the vector. For non-zero query vector elements
The indices (ie, column numbers) are sequentially input to the compressed representation of the vector. (Kue
Alternative methods of compressing the Lie vector are of course possible. For example, the vector is
Represented as linking to a list of non-zero column number indices. Therefore
, Query vector QV is expressed as follows.
QV = (17,18,19)
[0073]
A range query is now constructed, and the "threshold" is the end-user workstation.
This is specified by the algorithm 1A (15) on the section (1). (Threshold, in this case
Where "1" is any entry in the response matrix generated by the query
Indicates that the corresponding row of the queried BPM meets the selection criteria
Used to determine. ) The query is composed of four areas. 1) OP Co
(Operation code) 2) Table identification number (that is, BPM) 3) Query vector
QV and 4) unique process identification number.
If the database server computer (30) is designated as "1" (many
Note that there is a database server of ")", user "6" has identification number "38".
Is the owner of the CUST table with
Station processes range queries (formula
te))) generates a unique processing ID “client4.id185”, and the query is
Including data.
Op-code = "Range Query, Threshold value = 1", Table ID = 1.6.38, Que
ry Vector = (17,18,19),
Transaction ID = client4.id185
[0074]
A more concise OP code display, in this case "Range Query, Threshold
The vector constructed by the query algorithm 1A (15) using “RQ1” as “value = 1”
The toll looks like this:
RQ1 1.6.38 (17, 18, 19) client4.id185
Here, the space is used to define the boundary of the area. Obviously, other delimiters
The zones work in the same way, and the order of the regions is merely for convenience. More tables
Generalize identification numbers and use cases with multiple databases in the same database
It is also easy to include in a computer. For example, 1.3.6.38 is
Database operation is database server computer "1", data
Base "3" (that is, the third in database server computer "1")
Database), user "6" and table "38".
[0075]
2d) Algorithm 1A (15) on the end user workstation (1)
Communication port for the above range query
From (5), send to the database server computer (30) designated as "1". A
Algorithms also contain other relevant contextual information, such as responses to queries.
Context queries sent with information about where to send the output
The data is stored in the buffer (13).
3a) The memory (3) of the database server computer (30) designated as "1"
At this time, the algorithm 2 (39) in (3) uses the instruction (algorithm 1A (15) in the previous step).
Communication port (32) on the database server computer (30)
Receive on.
[0076]
3b) Algorithm 2 (39) analyzes the instruction and executes the specified command.
The OP code in this case is “RQ1”, and the “range query,
Threshold = 1 ”, meaning the instruction lookup table 38, where the instruction is a query vector QV =
(17,18,19). Hence Algorithm 2 (39) performs this matrix multiplication
.
RM = BPM38X (17, 18, 19)T
RM is a response matrix. Table 38 = BPM38And (17,18,19)TThe que
This is a permutation of the Lie vector QV = (17, 18, 19). Figure 4 described in the background section
Indicates an uncompressed representation of this matrix multiplication.
[0077]
In one preferred embodiment of the present invention, table 38 (ie, BPM38) Is the background part
BPM compressed using the single index compression technique described in
And executed. Therefore, table 38 (ie, BPM38) Is simply with its dimension
This is expressed as a vector as follows.
(1,7,12,17,25,32,34,41,44,52,56,61,68,71,79,84,87,93,99,102,111,11
(2,117,122)
Dim (6,21)
Similarly, the response matrix RM is represented as a vector with its dimensions as follows:
Is done.
(1,3,5,6)
Dim (6,1)
(In this case it is necessary to store the value of the non-zero entry in the response matrix
There is no. Because they are all equal to 1 according to the nature of the query
. )
[0078]
At this time, the response matrix RM selects a row satisfying the selection standard from the table (38).
Used to (This is because the response matrix RM is actually actively stored.
Is actually done "on the fly" so that it does not need to be done). OP Co
The command indicates "RQ1", that is, a threshold 1 range query operation, and a threshold 1 response matrix.
The number of rows of entries in the Rix is BPM38The corresponding rows in are range queries
Satisfies the following conditions. Therefore, as shown in FIG.
6 is selected to match the range query. (As mentioned in the background section
, Different queries have different thresholds). Algorithm 2 (39) is a range query
4 BPMs that meet Lee38New matrix BPM consisting of rows ofRESPONSETo
Generate. The uncompressed BPM representing this is given below.
But BPMRESPONSEIs generated in a compressed format and uses a single index compression technique
The use of is shown below.
(1,7,12,17,23,31,35,40,45,51,57,60,69,70,75,80)
Dim (4,21)
BPMRESPONEAre temporarily stored in the database response storage buffer (41).
[0079]
3c) Algorithm 2 (39) then goes to the database server computer (30) (this
From the database coserver computer "1" in the case of
Communication of end user workstation (1) via communication port (32)
Sends the encryption to port (5), and the workstation sends the just processed instruction to this
In other words, it sends to customer 4. The cryptographic response consists of four fields. 1) BPMRESPONSEof
Vector from a single index compression technique, 2) BPMRESPONSEGives the dimension of
3) the first sent simply for identification with the range query
Process ID "client4.id185", 4) An operation indicating the successful end of the specified RQ1 operation
Operation status code. Areas 1) and 2) are from the database response storage buffer (41)
Area 3) is taken from the database instruction storage buffer 37, while area 4 is taken.
) Are generated directly by Algorithm 2 (39). "RQ1AA" is the appropriate status
Assuming the code, the cryptographic response looks like this:
(1,7,12,17,23,31,35,40,45,51,57,60,69,70,75,80) (4.21) client4.id185RQ
1AA
Here, the space is used to determine the boundary of the area as described above.
[0080]
4a) the algo on the end user workstation (1), in this case the customer 4,
Rhythm 1B (19) is a database server computer (30) (data
From the communication port (32) of the base co-server computer (designated as "1")
Process the encrypted response. The algorithm is received on the communication port (5)
Read the encrypted response
It is temporarily stored in the database response storage buffer (17). Algorithm 1B (19)
At this time, the received cryptographic response is decrypted using the following steps.
1) Check the operation status code and RQ1AA showed good results
continue.
2) Check the processing ID. The process ID is the ID specified for this process.
Used to place context information in the context storage buffer (13).
The text storage buffer indicates that this process is suitable for the "Cust" relation.
3) BPM by back searching codebook (11)RESPONSE(this is
, Given in a compressed form with a single index technique in the first two fields of the cryptographic response
Can be ) And BPMRESPONSEDetermine the attributes that exist in each row of. Reverse search
Is made on a codebook entry suitable for the "Cust" relation, and BPMRESP ONSE
Find the (plaintext) attribute equivalent for the column number specified by.
[0081]
4b) Algorithm 1B (19) performs this processing in the context storage buffer (13).
Check the context information specified for the
Determine how the decrypted data is derived and formatted. Contextual information
The report indicates whether the output sent should be sent directly to the output port (4) or not.
Send to rear (23)
And the context information includes the output port (4) and the auxiliary user
It can be specified to send to both the delivery area (23). Instead, the context information
The force is applied to other processes or responses existing in the memory (6) of the end user workstation (1).
Identify if it should be used.
If the data format is a normal type, it will be generated by algorithm 1B (15).
The output produced is as follows:
Lynn 5 Oak Street Nyack, NY
Mark 8 Main Street Derby, CT
Bill 2 Pine Street Reno, NJ
Carl 5 Oak Street Nyack, NY
[0082]
Inserting, updating, and deleting actions are performed using the present invention using the above example (
Similar to Example 1), the data is stored in the memory (33) of the database server computer (30).
Performed in a manner that has obvious differences that can be turned into a Q-code database (35) within
It is. With respect to inserting and updating operations using the SPARCOM method, a new
When attributes are identified, additional columns are provided in the database table (BPM).
Must be done. This, to our knowledge, is not in the prior art. Take this issue
The preferred method of handling is to create a basic BP for any table creator.
This is to specify the column number of M. New attributes include:
At this time, it is introduced into the table (BPM) without having to recreate the column dimensions of BPM.
Column numbers are assigned as follows. Column numbers that do not have an assigned attribute
Column storage pool, and are assigned an order on the required basis (continuous
(Randomly or randomly) removed from the "available column storage pool". Missing columns
The dropped number is sent to the DBMS when no value is supplied by the creator of the table.
Is supplied.
[0083]
Even if only non-zero values are stored in the BPM, the column number in the BPM is BP
Obviously, this affects the size of the M compressed representation. Compressed BPM
The size is roughly proportional to the number of bits required to represent the column number, eg, 655
36 (216), Each of which has a lot of basic computer hardware.
A can be represented by 16 bits on the structure.
[0084]
Before a new attribute is introduced (either by an insert or an update operation)
Presetting column numbers is especially useful when single index compression techniques are used.
Facilitates performing insert or update operations in the SPARCOM database.
For example, consider the single index approach display of BPM in FIG.
(1,7,12,17,25,32,34,41,44,52,56,61,68,71,79,84,87,
93,99,102,111,112,117,122)
Dim (6,21),
In this BPM, a new characteristic information (Ann, 6 Gulf Road, Tampa, FL)
Inserting a column requires the addition of four new attribute columns. Modified non
The compressed BPM is then shown as:
However, the place where the new column is inserted is the last column of the corrected BPM,
The four characteristic columns are columns 22-25. Modified BPM single index hand
The modal indication is shown as follows.
(1,7,12,17,29,36,38,52,60,64,69,80,83,91,96,103,109,115,118,131,132,13
7,142,172,173,174,175)
Dim (7, 25).
[0085]
Obviously, in this example, the number of columns in the BPM changes with the addition of new attributes.
, BPM non-zero ("1's
") The index value of the entry will be
Must be recalculated.
Presetting the column number to a large number before inserting data into BPM,
BPM non-zero ("1's") entry entry under single index compression scheme
Eliminates the need to recalculate dex.
[0086]
Join
Joining is a particularly important operation in the database system concerned. This
Merchants build SPARCOM DBMS (ie, build and multiply database information)
(In a DBMS using the SPARCOM method).
Therefore, the present invention can be used on a system. Nevertheless, spontaneous
SPARCOM database that facilitates the construction of joins (also known as equivalent joins)
Two useful and non-obvious systems and methods for counting columns in a program are shown below.
You.
[0087]
A preferred method and system for implementing a SPARCOM database comprises a data
Combining all relations in the base into a single "database binary property matrix"
"Or" DBPM ". DBPM is a database (preferably SPARCO
Combine all attributes (i.e., columns) that exist in the relation (of the normal form of M) and apply them to the same attribute.
Use these
Merge the columns and add a column to each relational expression that is included in DBPM. Therefore,
Each column of the database contains a specific database relation (preferably SPARCOM).
And the row is suitable for a relation in a column associated with a special relation.
Indicated by the presence of "1". Run the SPARCOM database system
A second preferred method (and system) for performing involves substantially implementing DBPM. this
Utilizes the same column numbering scheme obtained using the first embodiment, but (SPARC
For each relation (using Ashany's original formalization of the OM method)
Maintain the released BPM. In the case of the second preferred embodiment of the invention, of course,
Non-zeros (ie "1" columns) are stored and / or multiplied in a compressed form
It should be noted, however, that all BPMs have the same column total number.
Also, in the second method, all rows in a given BPM are represented by individual relations
Columns are used to represent the special relations in which the individual rows relate to
No need to maintain.
[0088]
SPARCCOM DBMS, according to this single counting system, SPARC
It can easily assist in counting the columns of the OM database. DBMS has counter
Maintain and add new attributes equal to counter increments to new attributes added to the database.
Simply assign a column number. Also, S
More complex way to assign unique column numbers in PARCOM database
It is clear that programming is easier than programming
It can be used for Column numbers are preset for DBPM and all column numbers are
When creating a database, putting in the "Available column number pool"
To "randomly" select column numbers from the range of available numbers in the "number pool"
Allows the use of a random number generator. In the present invention, identification column numbers in different relational expressions
Assigning an attribute to an identifying attribute means that the attribute already exists or is defined above.
Codebook (11) to determine where attributes represent attribute-value pairs
Can be achieved on the end user workstation (1) by checking
You.
[0089]
Natural joins involving non-zero attributes in relational expressions are reached on the SPARCOM database
And the database columns are multiplied by the two relational expressions of BPM contained in the natural join.
The ordering is performed according to the above method. Before multiplication, one of the relational expressions
Projections are performed first, and all attributes not included in the join should be ejected based on
It is. The multiplication is then performed using an "erasure relation".
[0090]
By using the universal counting method specified here,
All BPMs have the same column number
After which one matrix or another matrix is replaced
Then, a BPM associated with all the relational expressions based on the multiplication is created. Also
, Distinguish between different relational expressions by using the specified universal counting method
The fact that attributes share the same column number is the response matrix when the matrix is multiplied.
The position of a non-zero ("1's") in the Trix is the B value included in the matrix multiplication.
Indicate which rows of PM should be combined. Obtained from matrix multiplication
The response matrices thus obtained are
Used to select the two original BPM rows of the calculation. Matrix for binding
Ejecting common attributes not included in natural joins before performing the multiplication
, In the response matrix (ie, as previously described as "clean")
To avoid false positives. However, the response matrix will
Indicates that the BPM should be combined, that is, the BPM of the relation should be combined.
And be careful.
[0091]
Obviously, using this technique to count columns in the SPARCOM database
This significantly increases the size of the BPM employed within the uncompressed format. BPM
Of course, since it is stored in a compressed format, repeat once again,
The actual impact based on the size of
Very small.
The following example shows that when column numbers are assigned as described here,
How it is performed on SPARCOM construction data will be described. Used
The data set is very small to explain the purpose.
[0092]Example 2
The BPM given for the “Cust” relation in FIG. 4 and “Sale” in FIG.
Consider the BPM given for the s Rep "relation. These two BPMs are
, Have the same column number, and all attributes that the two relations have in common use the same column number
Can be modified to "Cust" and "Sales Rep"
The two modified BPMs for are shown in FIGS. 8 and 7B, respectively. ”State (state
The SQL statement that joins these two relations on the ")" attribute is given below.
Can be
Select * from Cust c, Salesreps
where c.state = s.state;
[0093]
Projecting to select only the "state" trait of the relationship "" yields the BPM of FIG.
You. This BPM is replaced to obtain the BPM of FIG. 7D. "Cust" relational expression (Fig. 8)
And the replaced BPM in the “Sales Rep” relational expression (FIG. 7D).
Perform a matrix multiplication to obtain
Response matrix BPM9Get. BPM9Is three non-zero ("1's") entries
-, (1, 1) (1, 3) (2, 2). These entries should be combined
Row of BPM (indicated by FIGS. 8 and 7B): BPM to be combined6Row 1
And BPM7BRow 1, BPM8Row 2 and BPM7BRow 2 of the BPM8Row 6 and BP
M7BLine 1 is specified.
[0094]
Key exchange
In the present invention, each end user's client workstation
BPM data on the server computer in the database
Can only be interpreted. Conversely, the end user's client
If the workstation does not have a codebook entry, those
Cannot be interpreted. 2 or more BPM database information
To be accessible on the end user's client workstation
For example, these end-user client workstation codebooks
Must contain entries for properties that share access.
In other words, in the present invention, the code book information (whether the whole text or partial
Need to use some mechanism or method to safely distribute
As a result, the database
Information can be shared. Add new properties to the end-user client
When added to the table from a workstation, access to this information is granted.
Other end-user client workstations are
You must have the codebook updated with the entry. Codebook d
The exchange of entries is obviously a key exchange problem. Codebook entry is dark
Key. Therefore, the transfer of detailed information about codebook entries is
This is the exchange of encryption keys.
[0095]
The problem of how to securely exchange cryptographic keys is a well-known issue, and many
It is well addressed by protocols and methods.
Codebook updates are distributed directly (peer-to-peer) or commissioned
Distributed through a designated mediator.
[0096]
Using a peer-to-peer method using public key cryptography (for example, RSA),
Processing a book entry exchange will result in an end-user client workstation
Key sharing mechanism (or algorithm in the following steps).
The following steps will ensure that the updated version of the codebook is
Send to client workstation.
Step 1) Which end-user client workstations are distributed
The right to access database information linked to the codebook entry
Check to determine if they are available. As a preferred embodiment of the present invention,
This information is maintained locally. In another preferred embodiment, this information is
Maintained remotely on a contracted third-party computer.
Step 2) The codebook entry contains the transmitting station's private key.
Digital signature (encryption) is performed.
Step 3) Next, the digitally signed (that is, encrypted) codebook
The tree of end users is authorized to receive codebook updates.
It is encrypted using the public key of the client workstation.
Step 4) The appropriate codebook update is the right to receive the update from the transmitting station.
To other end-user client workstations
.
[0097]
End-user client work receiving encrypted codebook updates
The station (hereafter referred to as the `` receiving station '') performs the following steps:
And receives the updated codebook from the transmitting station.
Step 1) Receive the updated codebook version encrypted with the public key. The transmitting station
, Check if you have the authority to supply updates. If you have the authority
,next
Proceed to step, otherwise notify that a security breach has occurred
You.
Step 2) Update the received codebook to a private key (that is, the receiving station's private key).
Decrypt using. As a result, the code book encrypted with the private key of the transmitting station is
Another encrypted message (probably) consisting of updated version
.
Step 3) decrypt the ciphertext obtained in the previous step using the public key of the transmitting station.
Read and confirm that the source of the received codebook update is correct. Update received
If the new version is authentic (i.e., the transmitting station
If the receiving station is authorized to provide an updated version of the book), the receiving station may proceed to the next step.
Proceed, otherwise notify that a security breach has occurred.
Step 4) The code book of the receiving station is updated with the received information.
[0098]
A low-tech technique for securely exchanging keys, but the client
Station has the right to access the transmitted q-code string information.
Personally ship the diskette with the appropriate codebook update to another user.
This is a less efficient but nevertheless effective method.
For added security, the contents of each diskette should be published to the desired recipient.
Each is encrypted with a key so that only the intended recipient can use the data.
Just do it.
[0099]
"Entrusted key server" should also be used to distribute codebook information
Can be. In this case, the updated version is sent to the first commissioned key server and
The authorized key server checks its authorization database and
The end-user's client who has the information to
To the workstation. FIG. 10A shows the configuration of the present invention,
Included key servers. It should be noted that the entrusted key server has a "complete
It is not necessary to have "all commission". For example, on a network
You do not need to be granted access to any of the database server computers,
Also, no single conduit for key distribution is required. Therefore, DBA
Database administrator) manages the entrusted key server and defines the database tables.
You don't have to have access to the data, though you do. Many
The entrusted key server can be used similarly. FIG. 10B shows the structure of the present invention.
Configuration, and not only a large number of database server computers, but also a large number of
Includes a trusted key server.
[0100]
Cryptographic extensions
Extension of fixed position Q code length
A method used in the present invention, comprising:
Change the apparent statistical frequencies of a property
Several methods are specifically described below. Using these methods
Allows the encryption of data (ie, BPM) on the database server computer.
Makes the encryption more difficult.
[0101]
1) Dummy column
BPM can have extra columns, meaning "1" and "0"
In such a way, for example, randomly or correlate with some "1" in the current row
It can be added as a function to do.
The end user's client workstation has access to that information.
You do not need to provide a codebook update to continue, and the data
, Only useful in making BPM encryption more difficult. Still,
Sending an updated codebook with dummy columns "is useful enough and
Prevents the BPM update from distinguishing between “true” and “false”.
[0102]
2) Dummy row
Meaningless (or wrong) rows of information can be added to the database
. The end user's client workstation recognizes the presence of the dummy and
They must be negligible when performing database operations. Process dummy rows
The preferred method is to use a "dummy row marker column" to create a BPM with a dummy row.
It is to provide. Every dummy row also has at least one "dummy"
Marker column "has" 1 ". Authorized to access BPM including dummy rows
The end user's client workstation in dummy BPM
Receive the codebook information of the manufacturer. First, the calculation of the database
Check if the row contains a dummy column marker,
If so, ignore the line.
[0103]
3) Column division
Using this method, property frequencies are equalized. For example, for all soldiers
If it is known that 80% are male, the four columns will be the property
Used to record “male”, one out of every four columns contains the property “female”
Used to record. Varying frequency of various properties for a given property
Multiple columns are used for properties, even if there is no real statistical frequency
Or skew the property or column
Simply obscure the relationship.
[0104]
As one of the most extreme forms of column splitting, each column has one
May only be used for examples.
If the second example of a property needs to be added to the BPM, a new column
Must be added. As an example, consider the following four records.
Martha, woman, blue eyes, 5'6 ", 120 lbs.
George, male, blue eyes, 6'1 ", £ 190
George, male, brown eyes, 5'6 ", 190 lbs.
Lisa, female, brown eyes, 5'6 ", 120 lbs
[0105]
These records show the next BPM (or some of this BPM in a row).
) And annotated to clarify the meaning of the columns.
From a theoretical point of view of information, BPM constructed in this way is surprisingly confidential.
It will be expensive. Manipulating queries
It should be noted that the work is still being done on this BPM.
[0106]
The entrusted key server monitors the frequency of different properties with different characteristics.
Access is allowed, and when a certain threshold is exceeded,
Instruct the percentage. Alternatively, splitting the columns can be done at the end user's client workstation.
End-user client workstations
Can, of course, calculate the frequency for the property to which access has been granted.
Wear.
[0107]
4) Column offset
All exponents in the compressed BPM are offset from the actual values.
Do. Different BPMs have different offsets. Random (yes
(Otherwise meaningless) data and the offset applied to a given BPM
Fill columns with index values less than Offset facilitates the original value
It can be done by any formula that can be calculated as
, Can be used in database operations. As a very simple example, once again
Referring to FIG. 4, an offset of +5 was represented by one index compression system.
When applied to BPM, BPM is expressed as
You.
(6,12,17,22,30,37,39,46,49,57,61,66,73,76,84,89,92,98,104,107,116,117,12
2,127)
Dim (11,26)
[0108]
The end user who has the right to access the given BPM with the offset
Client workstations securely distribute offset information for their BPM
It must be. Operations involving BPM also take into account BPM offsets
Column data with an index value less than the offset
Must be discarded or neglected. One or more key contractors
When a configuration using a server is used in the present invention, the off-state for a given BPM is used.
Set information is used to distribute updated codebooks for the BPM.
It does not need to be sent via the same commissioned key server. The offset information is
From a different commissioned key server or directly to the end user's client work
It can be delivered anywhere between stations. Client of end user
The database instructions issued from the workstation to the database server include
, And also contains column offset information.
[0109]
Encryption of dimension information of compressed sparse matrix
By encrypting the dimensions of the compressed BPM used in the present invention, additional security is provided.
Can be provided to facilitate sex. Sparse matrix using bitmap
Compression and single index or double index compression systems are all
Requires that the dimensions of the box be specified. Other sparse matrix compression
In the system, the dimensions of the matrix are also specified to compress the matrix
There is a need. Just encrypt the data specifying the dimensions of the compressed sparse matrix
With just the cost of implementation, encryption of the coded matrix
Safety is improved.
[0110]
For example, in a single index compression system, BPM A has exactly two components
Which consist of 1) a set of two elements that specify the dimensions of the BPM, and 2)
A vector v specifying the position of a non-zero element. Single indexed
In this method, the elements of A are sequentially arranged one-dimensionally. Therefore, the number of columns in A
Knowing interprets what the columns and rows of A represent, each element of the vector v
It is extremely important for. The BPM of the SPARCOM database is generally non-
Since they are always large, for the sake of illustration, FIG.
Are shown in a straight line,
Fig. 4 illustrates a single index system of the same dimension of BPM.
[0111]
In the example of FIG. 11, the dimension of the matrix is Dim (5,8) (particularly when the number of columns is equal to 8)
Is not known, for example, the fourth element of a vector v having a value of 13
Element means that BPM A has “1” at coordinates (2,5).
It turns out that you can not know that. Similarly, a vector with a value of 37
The tenth element of v means that A has "1" at coordinates (5,5).
You cannot know that. Of course, the coordinates (2,5) and (5,5) are both A and "1".
If you don't know that, both BPM A's second and fifth records
No matter what property the fifth column of PM represents,
Means that they are not the same in terms.
Keep any encryption system (preferably strong) in database storage
Can be used to encrypt the dimensions of the compressed sparse matrix.
[0112]
6) Rearrangement of BPM column
Reordering BPM columns is a way to change the keys needed to access information
Is the law. Column reordering can be accomplished in a number of ways. this
The preferred way to accomplish this is if the table owner:
This step allows this end user's client workstation to
To do the task.
Step 1) Tap into your end user's client workstation
Download (BPM).
Step 2) Rearrange the columns randomly. (Using a pseudo-random number generator
A program is used to assist in the selection of column ordering, or
A program linked with random numbers from a physical source is used to assist in the selection
You. )
Step 3) Delete the original BPM from the database server computer.
Step 4) Replace the original BPM with the newly sorted BPM in the database
Upload to server computer.
After rearranging BPM A in this way, of course, access the data of BPM A.
It is necessary to provide updated codebooks to users who have authority to do so.
[0113]
To help with natural join operations, the above specified
If you use a universal numbering scheme for
Other BPMs with properties, like BPM A,
Must have columns sorted in the same way as the Patty column number assignment
Absent. Chain BPM
Is sorted by the web of common properties that exist in the BPM of the database.
Therefore, it is clear that the number of property columns is necessary to maintain
You.
[0114]
Variations on the construction of a distributed database according to the present invention
FIG. 6A shows the construction of the distributed database described at the beginning of the present invention.
You. FIGS. 6B, 10A, and 10 show diagrams that identify other distributed database constructions.
B. Method for Distributing Components of Distributed Database Construction of the Present Invention
Although there are many others, it is clear that they are not inconsistent with the invention described herein.
It is easy. Notable additional forms are located on the network and available
Workstations of some or all individual end users of SPARCOM data
It has the house portions of the house. This meter
Below the screen, the end user's workstation will have one or more different data
Instead of a database-only SPARCOM server,
Will access SPARCOM database information located on the application
.
[0115]
Database property independence
A practical advantage of the present invention is that it provides property independence for the database
It is possible. For use in this invention
The compressed BPM to be used depends on whether the property exists or not.
Records only that the end user's client workstation
Identify the content of each property that you have access to. Clients of different end users
On the workstation, the given property (i.e.
The number of BPM columns or the number of columns in one set)
Includes different interpretations for a given property. For example, given B
Two different codebooks that mention the same column in PM are different natural languages,
For example, entries having the same meaning in English and Japanese can be included. attribute
Compared to applicable databases (attribute oriented databases),
The compressed BPM data used is completely free of natural language bias. By this invention
The property independence offered is not only for images, videos and sounds
It can be applied to more complex data objects, such as those that
You. For example, one codebook specifies text values for a given property.
The other codebook has audio or audio for the same number of BPM columns.
Two that refer to the same BPM, as specified in the image file
Different codebooks have different data types for the same property
You can even include entries that have
[0116]
The present invention has been described in detail in the foregoing examples for illustrative purposes.
The description is merely for that purpose and may refer to the statements in the following claims.
Except for departures may be made by those skilled in the art without departing from the spirit and scope of the invention.
Should be understood.
─────────────────────────────────────────────────────
フロントページの続き
(51)Int.Cl.7 識別記号 FI テーマコート゛(参考)
G09C 1/00 660 G06F 15/40 320B ──────────────────────────────────────────────────続 き Continued on the front page (51) Int.Cl. 7 Identification symbol FI Theme coat ゛ (Reference) G09C 1/00 660 G06F 15/40 320B