JP2001507837A - Method and apparatus for securely storing data - Google Patents

Method and apparatus for securely storing data

Info

Publication number
JP2001507837A
JP2001507837A JP53026198A JP53026198A JP2001507837A JP 2001507837 A JP2001507837 A JP 2001507837A JP 53026198 A JP53026198 A JP 53026198A JP 53026198 A JP53026198 A JP 53026198A JP 2001507837 A JP2001507837 A JP 2001507837A
Authority
JP
Japan
Prior art keywords
database
data
bpm
workstation
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP53026198A
Other languages
Japanese (ja)
Inventor
ディ. ゴールドスタイン,ベンジャミン
Original Assignee
ディ. ゴールドスタイン,ベンジャミン
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25110198&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2001507837(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by ディ. ゴールドスタイン,ベンジャミン filed Critical ディ. ゴールドスタイン,ベンジャミン
Publication of JP2001507837A publication Critical patent/JP2001507837A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 末端ユーザのクライアントワークステーション(1)は、データベースサーバコンピュータ(30)と通信する。末端ユーザのクライアントワークステーション(1)には、コードブック(11)と、2つのアルゴリズム(15,19)を含むメモリー(6)がある。データベースサーバコンピュータ(30)には、CPU(31)、通信ポート(32)及びメモリー(33)がある。メモリー(33)は、q−コードデータベース(35)と、アルゴリズム(39)を含んでいる。末端ユーザのクライアントワークステーション(1)は、さらに、データベースサーバコンピュータ(30)と通信するための通信ポート(5)を有する。 (57) [Summary] The end user's client workstation (1) communicates with the database server computer (30). The end user's client workstation (1) has a codebook (11) and a memory (6) containing two algorithms (15,19). The database server computer (30) has a CPU (31), a communication port (32), and a memory (33). The memory (33) contains a q-code database (35) and an algorithm (39). The end user's client workstation (1) further has a communication port (5) for communicating with the database server computer (30).

Description

【発明の詳細な説明】 データを安全に格納する方法及び装置 [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

Claims (1)

【特許請求の範囲】 1.データを安全に格納するための装置であって、 意味的に暗号化されたデータを格納するデータベースと、 データの解読を必要とすることなしに、意味的に暗号化されたデータで、有 意味なデータベース操作を行なうためのデータベース機構であって、前記データ ベースに接続されたデータベース機構、及び 前記データベースに接続され、データベース機構からデータを獲得するアク セス機構と、 を具える。 2.請求項1に記載の装置であって、アクセス機構は、暗号化/解読機構を含ん でおり、該暗号化/解読機構は、データベース機構へ接続され、暗号化されたデ ータを受信し、データを解読し、解読されたデータをデータベースに提供し、及 び、データベース機構から暗号化されたデータを受信し、暗号化されたデータを 解読する。 3.請求項2に記載の装置であって、意味的に暗号化されたデータは、プロパテ ィに基づく定位置Qコードである。 4.請求項3に記載の装置であって、プロパティ用の定位置Q−コードは、疎二 進マトリックスを含んでいる。 5.請求項4に記載の装置であって、アクセス機構は、末端ユーザのワークステ ーションを含んでおり、該末端ユーザのワークステーションは、利用者のCPU と、該CPUに接続されたワークステーションメモリを有しており、暗号化/解 読機構は、メモリーに格納されたコードブックと、メモリーの中に、コードブッ クにアクセスし、コードブックを更新するソフトウェアプログラムとを含んでい る。 6.請求項5に記載の装置であって、データベース機構とデータベースとを有す るデータベースサーバコンピュータを含んでいる。 7.請求項6に記載の装置であって、データベース機構は、サーバCPUと、該 サーバCPUに接続されたサーバメモリを含んでおり、サーバメモリーは、デー タベースを有している。 8.請求項7に記載の装置であって、サーバメモリは、データベースの命令格納 バッファーと、データベースの応答格納バッファーを含んでいる。 9.請求項8に記載の装置であって、サーバコンピュータは、サーバメモリとサ ーバCPUに接続されたサーバ通信ポートを含んでいる。 10.請求項9に記載の装置であって、ワークステーションは、ワークステーショ ン通信ポート、入力ポート及び出力ポートを含んでおり、ワークステーション通 信 ポートは、サーバ通信ポート及び、ワークステーションCPUとワークステーシ ョンメモリに接続され、入力ポートと出力ポートは、ワークステーションメモリ ーとワークステーションCPU及びワークステーション通信ポートに接続される 。 11.データを安全に格納するための装置であって、 完全にインデックス化されたデータを有するデータベース機構と、 完全にインデックス化されたデータへのアクセス及び、解釈することが許容 されたインデックス情報を持った完全にインデックス化されたデータについて、 又は該データを用いて、操作を行なうためのデータベース機構であって、前記デ ータベースに接続されたデータベース機構と、 データベース機構に接続され、データベース機構からデータを獲得するため のアクセス機構と、 を具えている。 12.請求項4に記載の装置であって、プロパティ用の定位置Qコードは、該プロ パティ用の定位置Qコードの安全性を高めるために、ダミー列、ダミー行、列分 割、列オフセット、圧縮疎行列の次元情報の暗号化、又は、BPM列の並べ替え を用いる。 13.データを格納するための装置であって、 意味的に表わされたデータを格納するデータベース と、 意味的に表わされたデータを用いて、データベースの操作を行なうデータベ ース機構であって、前記データベースに接続されたデータベース機構と、 データベース機構からデータを獲得するためにデータベース機構に接続され たアクセス機構であって、異なるユーザに、意味的に暗号化されたデータの異な る表現を提供するアクセス機構と、 を具える。 14.請求項13に記載の装置であって、アクセス機構は、異なる利用者に、意味 的に表現されたデータを異なる自然言語で翻訳して提供する。 15.請求項13に記載の装置であって、アクセス機構は、視覚を損じた人に、意 味的に表わされたデータを音声表現で提供する。 16.データを安全に格納する方法であって、 メモリーに意味的に暗号化されたデータを格納するステップと、 データの解読を必要とすることなしに、メモリーからの意味的に暗号化され たデータを用いて、データベースを操作するステップ、及び、 メモリーからデータを獲得するステップと、 を含んでいる。[Claims] 1. A device for securely storing data,     A database for storing semantically encrypted data,     Semantically encrypted data that does not require decryption A database mechanism for performing meaningful database operations, wherein the data A database mechanism connected to the base, and     An action connected to the database to obtain data from the database mechanism Seth mechanism, Equipped. 2. The apparatus of claim 1, wherein the access mechanism includes an encryption / decryption mechanism. The encryption / decryption mechanism is connected to a database mechanism, and the encrypted data is decrypted. Receiving the data, decrypting the data, providing the decrypted data to a database, and Receiving encrypted data from the database mechanism and transmitting the encrypted data. Decrypt. 3. 3. The apparatus according to claim 2, wherein the semantically encrypted data is a property. It is a fixed position Q code based on the 4. 4. The apparatus according to claim 3, wherein the fixed-position Q-code for the property is sparse. Contains the hexadecimal matrix. 5. 5. The apparatus of claim 4, wherein the access mechanism comprises an end user workstation. The end user's workstation contains the user's CPU. And a workstation memory connected to the CPU for encrypting / decrypting. The reading mechanism consists of a code book stored in memory and a code book stored in memory. Software program to access and update codebooks You. 6. The apparatus according to claim 5, comprising a database mechanism and a database. Database server computer. 7. 7. The apparatus according to claim 6, wherein the database mechanism comprises: a server CPU; The server memory includes a server memory connected to the server CPU. It has a database. 8. 8. The apparatus according to claim 7, wherein the server memory stores an instruction in a database. It contains a buffer and a database response storage buffer. 9. 9. The apparatus according to claim 8, wherein the server computer has a server memory and a server. Server communication port connected to the server CPU. Ten. 10. The apparatus of claim 9, wherein the workstation is a workstation. Communication port, input port, and output port. Faith The ports are the server communication port and the workstation CPU and workstation. Input and output ports are connected to the workstation memory Connected to the workstation CPU and workstation communication port . 11. A device for securely storing data,     A database mechanism with fully indexed data;     Allows access and interpretation of fully indexed data For fully indexed data with indexed information, Or a database mechanism for performing an operation using the data, Database mechanism connected to the database,     Connected to a database facility to get data from the database facility Access mechanism and It has. 12. 5. The apparatus according to claim 4, wherein the positional Q code for the property is To improve the security of the putty Q-position, the dummy column, dummy row, and column Division, column offset, encryption of dimension information of compressed sparse matrix, or rearrangement of BPM column Is used. 13. A device for storing data,     A database that stores semantically represented data When,     A database that performs database operations using semantically represented data A database mechanism connected to the database;     Connected to the database facility to get data from the database facility Access mechanism to provide different users with different semantically encrypted data. An access mechanism that provides an expression Equipped. 14. 14. The apparatus according to claim 13, wherein the access mechanism provides different users with meaning. And provide the translated data in different natural languages. 15. 14. The apparatus according to claim 13, wherein the access mechanism is provided to a person who has lost vision. Tastefully represented data is provided in audio representation. 16. A method for securely storing data,     Storing semantically encrypted data in memory;     Semantically encrypted from memory without the need to decrypt the data Operating the database using the data, and     Obtaining data from memory; Contains.
JP53026198A 1996-12-30 1997-12-29 Method and apparatus for securely storing data Pending JP2001507837A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/777,414 US5963642A (en) 1996-12-30 1996-12-30 Method and apparatus for secure storage of data
US08/777,414 1996-12-30
PCT/US1997/024025 WO1998029981A1 (en) 1996-12-30 1997-12-29 Method and apparatus for secure storage of data

Publications (1)

Publication Number Publication Date
JP2001507837A true JP2001507837A (en) 2001-06-12

Family

ID=25110198

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53026198A Pending JP2001507837A (en) 1996-12-30 1997-12-29 Method and apparatus for securely storing data

Country Status (6)

Country Link
US (1) US5963642A (en)
EP (1) EP1013030A4 (en)
JP (1) JP2001507837A (en)
AU (1) AU5723198A (en)
CA (1) CA2276036C (en)
WO (1) WO1998029981A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012115031A1 (en) * 2011-02-22 2012-08-30 三菱電機株式会社 Search system, search method for search system, information processing device, search program, corresponding keyword management device and corresponding keyword management system
JP2016081526A (en) * 2014-10-10 2016-05-16 富士通株式会社 Table reconstruction device and method

Families Citing this family (171)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE506853C2 (en) 1996-06-20 1998-02-16 Anonymity Prot In Sweden Ab Method of data processing
JP3607107B2 (en) * 1998-03-13 2005-01-05 株式会社東芝 Data management device
US6574733B1 (en) * 1999-01-25 2003-06-03 Entrust Technologies Limited Centralized secure backup system and method
US6502134B1 (en) * 1999-05-05 2002-12-31 Nextpage, Inc. Tuple-based information space for data exchange between applications
US6865576B1 (en) * 1999-05-21 2005-03-08 International Business Machines Corporation Efficient schema for storing multi-value attributes in a directory service backing store
US6643648B1 (en) 1999-06-30 2003-11-04 Raf Technology, Inc. Secure, limited-access database system and method
US6981007B1 (en) * 1999-07-09 2005-12-27 Whitmyer Jr Wesley W Onsite backup for internet-based data processing
US6424969B1 (en) * 1999-07-20 2002-07-23 Inmentia, Inc. System and method for organizing data
US7093137B1 (en) * 1999-09-30 2006-08-15 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system
SE9904094D0 (en) * 1999-11-12 1999-11-12 Protegrity Research & Dev Method for reencryption of a database
US7788222B2 (en) * 1999-12-20 2010-08-31 Planetid, Inc. Information exchange engine providing a critical infrastructure layer and methods of use thereof
JP4617533B2 (en) * 2000-03-14 2011-01-26 ソニー株式会社 Information providing apparatus and method, information processing apparatus and method, and program storage medium
US7069591B1 (en) 2000-03-22 2006-06-27 Neil Weicher System for encrypting data files of application programs
US6564204B1 (en) * 2000-04-14 2003-05-13 International Business Machines Corporation Generating join queries using tensor representations
US20020066038A1 (en) * 2000-11-29 2002-05-30 Ulf Mattsson Method and a system for preventing impersonation of a database user
JP2002169808A (en) 2000-11-30 2002-06-14 Hitachi Ltd Secure multi-database system
KR100706503B1 (en) * 2000-12-19 2007-04-10 엘지전자 주식회사 Method of Memory Field Using
US7757278B2 (en) * 2001-01-04 2010-07-13 Safenet, Inc. Method and apparatus for transparent encryption
US7228416B2 (en) 2001-01-26 2007-06-05 Hitachi, Ltd. Database access method and system capable of concealing the contents of query
US6631453B1 (en) 2001-02-14 2003-10-07 Zecurity Secure data storage device
US6944619B2 (en) * 2001-04-12 2005-09-13 Primentia, Inc. System and method for organizing data
US7904454B2 (en) 2001-07-16 2011-03-08 International Business Machines Corporation Database access security
FR2828607B1 (en) * 2001-08-07 2004-01-30 Centre Nat Rech Scient METHOD FOR SECURING DATABASES
US6886016B2 (en) * 2001-09-12 2005-04-26 International Business Machines Corporation Method and system for supporting multivalue attributes in a database system
US7003111B2 (en) * 2001-10-11 2006-02-21 International Business Machines Corporation Method, system, and program, for encoding and decoding input data
US7865440B2 (en) * 2001-10-11 2011-01-04 International Business Machines Corporation Method, system, and program for securely providing keys to encode and decode data in a storage cartridge
WO2003058879A1 (en) 2002-01-08 2003-07-17 Seven Networks, Inc. Secure transport for mobile communication network
AU2003262857A1 (en) * 2002-08-24 2004-03-11 Ingrian Networks, Inc. Selective feature activation
US7240046B2 (en) * 2002-09-04 2007-07-03 International Business Machines Corporation Row-level security in a relational database management system
SG136793A1 (en) * 2002-10-22 2007-11-29 Sql View Pte Ltd E-archiving system (eas), methodology and process
US7917468B2 (en) 2005-08-01 2011-03-29 Seven Networks, Inc. Linking of personal information management data
US7853563B2 (en) 2005-08-01 2010-12-14 Seven Networks, Inc. Universal data aggregation
US8468126B2 (en) 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
US20040158561A1 (en) * 2003-02-04 2004-08-12 Gruenwald Bjorn J. System and method for translating languages using an intermediate content space
US7500111B2 (en) * 2003-05-30 2009-03-03 International Business Machines Corporation Querying encrypted data in a relational database system
US7685437B2 (en) * 2003-05-30 2010-03-23 International Business Machines Corporation Query optimization in encrypted database systems
US7290150B2 (en) * 2003-06-09 2007-10-30 International Business Machines Corporation Information integration across autonomous enterprises
US10339336B2 (en) * 2003-06-11 2019-07-02 Oracle International Corporation Method and apparatus for encrypting database columns
US7305404B2 (en) * 2003-10-21 2007-12-04 United Parcel Service Of America, Inc. Data structure and management system for a superset of relational databases
US7434256B2 (en) * 2003-12-18 2008-10-07 Intel Corporation Security management for wireless clients
US7395437B2 (en) * 2004-01-05 2008-07-01 International Business Machines Corporation System and method for fast querying of encrypted databases
US20050251774A1 (en) * 2004-05-07 2005-11-10 Shah Gaurav R Circuit design property storage and manipulation
US7519835B2 (en) * 2004-05-20 2009-04-14 Safenet, Inc. Encrypted table indexes and searching encrypted tables
JP4612461B2 (en) * 2004-06-24 2011-01-12 株式会社東芝 Microprocessor
US7672966B2 (en) * 2004-06-30 2010-03-02 Microsoft Corporation Adding extrinsic data columns to an existing database schema using a temporary column pool
US7577845B2 (en) * 2004-08-17 2009-08-18 Hengli Ma Information matrix cryptogram
WO2006045102A2 (en) 2004-10-20 2006-04-27 Seven Networks, Inc. Method and apparatus for intercepting events in a communication system
US8010082B2 (en) 2004-10-20 2011-08-30 Seven Networks, Inc. Flexible billing architecture
US7571490B2 (en) * 2004-11-01 2009-08-04 Oracle International Corporation Method and apparatus for protecting data from unauthorized modification
US7512814B2 (en) * 2004-11-09 2009-03-31 Fortiva Inc. Secure and searchable storage system and method
US7706781B2 (en) 2004-11-22 2010-04-27 Seven Networks International Oy Data security in a mobile e-mail service
FI117152B (en) 2004-12-03 2006-06-30 Seven Networks Internat Oy E-mail service provisioning method for mobile terminal, involves using domain part and further parameters to generate new parameter set in list of setting parameter sets, if provisioning of e-mail service is successful
CA2593851A1 (en) * 2005-01-28 2006-08-10 Duane Anderson Registration and maintenance of address data for each service point in a territory
US20070174271A1 (en) * 2005-02-18 2007-07-26 Ulf Mattsson Database system with second preprocessor and method for accessing a database
US7877703B1 (en) 2005-03-14 2011-01-25 Seven Networks, Inc. Intelligent rendering of information in a limited display environment
US7796742B1 (en) 2005-04-21 2010-09-14 Seven Networks, Inc. Systems and methods for simplified provisioning
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
JP4121134B2 (en) * 2005-05-31 2008-07-23 インターナショナル・ビジネス・マシーンズ・コーポレーション Program, classification method and system
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US8069166B2 (en) 2005-08-01 2011-11-29 Seven Networks, Inc. Managing user-to-user contact with inferred presence information
US7970788B2 (en) 2005-08-02 2011-06-28 International Business Machines Corporation Selective local database access restriction
US20070079140A1 (en) * 2005-09-26 2007-04-05 Brian Metzger Data migration
US20070079386A1 (en) * 2005-09-26 2007-04-05 Brian Metzger Transparent encryption using secure encryption device
US7933923B2 (en) 2005-11-04 2011-04-26 International Business Machines Corporation Tracking and reconciling database commands
US20070180275A1 (en) * 2006-01-27 2007-08-02 Brian Metzger Transparent encryption using secure JDBC/ODBC wrappers
US7618214B2 (en) * 2006-02-03 2009-11-17 Maritime International, Inc. Containment boom guide system and method
US8386768B2 (en) * 2006-02-08 2013-02-26 Safenet, Inc. High performance data encryption server and method for transparently encrypting/decrypting data
US7958091B2 (en) 2006-02-16 2011-06-07 Ingrian Networks, Inc. Method for fast bulk loading data into a database while bypassing exit routines
US7769395B2 (en) 2006-06-20 2010-08-03 Seven Networks, Inc. Location-based operations and messaging
US8214394B2 (en) 2006-03-01 2012-07-03 Oracle International Corporation Propagating user identities in a secure federated search system
US9177124B2 (en) 2006-03-01 2015-11-03 Oracle International Corporation Flexible authentication framework
US8332430B2 (en) 2006-03-01 2012-12-11 Oracle International Corporation Secure search performance improvement
US8868540B2 (en) 2006-03-01 2014-10-21 Oracle International Corporation Method for suggesting web links and alternate terms for matching search queries
US8875249B2 (en) 2006-03-01 2014-10-28 Oracle International Corporation Minimum lifespan credentials for crawling data repositories
US20070226695A1 (en) * 2006-03-01 2007-09-27 Oracle International Corporation Crawler based auditing framework
US8707451B2 (en) 2006-03-01 2014-04-22 Oracle International Corporation Search hit URL modification for secure application integration
US7593940B2 (en) * 2006-05-26 2009-09-22 International Business Machines Corporation System and method for creation, representation, and delivery of document corpus entity co-occurrence information
US7587407B2 (en) * 2006-05-26 2009-09-08 International Business Machines Corporation System and method for creation, representation, and delivery of document corpus entity co-occurrence information
US8379865B2 (en) 2006-10-27 2013-02-19 Safenet, Inc. Multikey support for multiple office system
US7707493B2 (en) * 2006-11-16 2010-04-27 Xerox Corporation Method for generating presentation oriented XML schemas through a graphical user interface
US8141100B2 (en) 2006-12-20 2012-03-20 International Business Machines Corporation Identifying attribute propagation for multi-tier processing
US7730106B2 (en) * 2006-12-28 2010-06-01 Teradata Us, Inc. Compression of encrypted data in database management systems
US7689567B2 (en) * 2006-12-28 2010-03-30 Sap Ag Error handling for intermittently connected mobile applications
US20080168043A1 (en) * 2007-01-09 2008-07-10 Dettinger Richard D System and method for optimizing query results in an abstract data environment
US8495367B2 (en) 2007-02-22 2013-07-23 International Business Machines Corporation Nondestructive interception of secure data in transit
GB2447494A (en) * 2007-03-15 2008-09-17 Linear Algebra Technologies Lt A method and circuit for compressing data using a bitmap to identify the location of data values
US8411868B2 (en) * 2007-03-30 2013-04-02 Intel Corporation Intruder traceability for shared security associations
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US20100031321A1 (en) 2007-06-11 2010-02-04 Protegrity Corporation Method and system for preventing impersonation of computer system user
US7913764B2 (en) * 2007-08-02 2011-03-29 Agr Subsea, Inc. Return line mounted pump for riserless mud return system
US20090132804A1 (en) * 2007-11-21 2009-05-21 Prabir Paul Secured live software migration
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8793305B2 (en) 2007-12-13 2014-07-29 Seven Networks, Inc. Content delivery to a mobile device from a content service
US9047342B2 (en) * 2007-12-28 2015-06-02 Sybase, Inc. Method for accelerating queries containing local range conditions using subtraction of cumulative bitmaps
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US20090319772A1 (en) * 2008-04-25 2009-12-24 Netapp, Inc. In-line content based security for data at rest in a network storage system
US8261326B2 (en) 2008-04-25 2012-09-04 International Business Machines Corporation Network intrusion blocking security overlay
US9395929B2 (en) * 2008-04-25 2016-07-19 Netapp, Inc. Network storage server with integrated encryption, compression and deduplication capability
US8117464B1 (en) 2008-04-30 2012-02-14 Netapp, Inc. Sub-volume level security for deduplicated data
US8589697B2 (en) 2008-04-30 2013-11-19 Netapp, Inc. Discarding sensitive data from persistent point-in-time image
WO2009139650A1 (en) * 2008-05-12 2009-11-19 Business Intelligence Solutions Safe B.V. A data obfuscation system, method, and computer implementation of data obfuscation for secret databases
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US8332655B2 (en) * 2009-01-30 2012-12-11 International Business Machines Corporation Method for order invariant correlated encrypting of data and SQL queries for maintaining data privacy and securely resolving customer defects
JP5858432B2 (en) * 2009-06-02 2016-02-10 サフロン・テクノロジー,インコーポレイテッド Method, system, and computer program product for providing a distributed associative memory base
US9477947B2 (en) 2009-08-24 2016-10-25 International Business Machines Corporation Retrospective changing of previously sent messages
US9043731B2 (en) 2010-03-30 2015-05-26 Seven Networks, Inc. 3D mobile user interface with configurable workspace management
US8626749B1 (en) * 2010-04-21 2014-01-07 Stan Trepetin System and method of analyzing encrypted data in a database in near real-time
US9946810B1 (en) 2010-04-21 2018-04-17 Stan Trepetin Mathematical method for performing homomorphic operations
WO2012018556A2 (en) 2010-07-26 2012-02-09 Ari Backholm Mobile application traffic optimization
JP5620578B2 (en) 2010-07-26 2014-11-05 セブン ネットワークス インコーポレイテッド Mobile network traffic regulation across multiple applications
GB2495877B (en) 2010-07-26 2013-10-02 Seven Networks Inc Distributed implementation of dynamic wireless traffic policy
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US8533489B2 (en) * 2010-09-29 2013-09-10 Microsoft Corporation Searchable symmetric encryption with dynamic updating
WO2012061430A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
US8903954B2 (en) 2010-11-22 2014-12-02 Seven Networks, Inc. Optimization of resource polling intervals to satisfy mobile device requests
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
CN103620576B (en) 2010-11-01 2016-11-09 七网络公司 It is applicable to the caching of mobile applications behavior and network condition
WO2012061437A1 (en) 2010-11-01 2012-05-10 Michael Luna Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8166164B1 (en) 2010-11-01 2012-04-24 Seven Networks, Inc. Application and network-based long poll request detection and cacheability assessment therefor
CA2798523C (en) 2010-11-22 2015-02-24 Seven Networks, Inc. Aligning data transfer to optimize connections established for transmission over a wireless network
CN102004799B (en) * 2010-12-28 2012-10-03 天津神舟通用数据技术有限公司 Consistency check method for redundant data of database
EP2661697B1 (en) 2011-01-07 2018-11-21 Seven Networks, LLC System and method for reduction of mobile network traffic used for domain name system (dns) queries
WO2012145541A2 (en) 2011-04-19 2012-10-26 Seven Networks, Inc. Social caching for device resource sharing and management
EP2556441B8 (en) 2011-04-27 2015-11-25 Seven Networks, LLC System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
EP2702500B1 (en) 2011-04-27 2017-07-19 Seven Networks, LLC Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US8400335B2 (en) 2011-07-21 2013-03-19 International Business Machines Corporation Using variable length code tables to compress an input data stream to a compressed output data stream
US8669889B2 (en) 2011-07-21 2014-03-11 International Business Machines Corporation Using variable length code tables to compress an input data stream to a compressed output data stream
US9239800B2 (en) 2011-07-27 2016-01-19 Seven Networks, Llc Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network
EP2789138B1 (en) 2011-12-06 2016-09-14 Seven Networks, LLC A mobile device and method to utilize the failover mechanisms for fault tolerance provided for mobile traffic management and network/device resource conservation
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
EP2788889A4 (en) 2011-12-07 2015-08-12 Seven Networks Inc Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US8861354B2 (en) 2011-12-14 2014-10-14 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US9832095B2 (en) 2011-12-14 2017-11-28 Seven Networks, Llc Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
EP2792188B1 (en) 2011-12-14 2019-03-20 Seven Networks, LLC Mobile network reporting and usage analytics system and method using aggregation of data in a distributed traffic optimization system
US8692696B2 (en) * 2012-01-03 2014-04-08 International Business Machines Corporation Generating a code alphabet of symbols to generate codewords for words used with a program
WO2013103988A1 (en) 2012-01-05 2013-07-11 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching
WO2013116856A1 (en) 2012-02-02 2013-08-08 Seven Networks, Inc. Dynamic categorization of applications for network access in a mobile network
WO2013116852A1 (en) 2012-02-03 2013-08-08 Seven Networks, Inc. User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US8832427B2 (en) 2012-03-30 2014-09-09 Microsoft Corporation Range-based queries for searchable symmetric encryption
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
WO2013155208A1 (en) 2012-04-10 2013-10-17 Seven Networks, Inc. Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network
WO2014011216A1 (en) 2012-07-13 2014-01-16 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
FR2999750A1 (en) * 2012-12-18 2014-06-20 France Telecom METHOD OF PROCESSING DATA IN A DISTRIBUTED STORAGE SYSTEM
US9307493B2 (en) 2012-12-20 2016-04-05 Seven Networks, Llc Systems and methods for application management of mobile device radio state promotion and demotion
US9241314B2 (en) 2013-01-23 2016-01-19 Seven Networks, Llc Mobile device with application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8943068B2 (en) * 2013-02-26 2015-01-27 Cray Inc Dynamic graph system for a semantic database
US8750123B1 (en) 2013-03-11 2014-06-10 Seven Networks, Inc. Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US9390115B2 (en) * 2013-10-11 2016-07-12 Oracle International Corporation Tables with unlimited number of sparse columns and techniques for an efficient implementation
US10460704B2 (en) 2016-04-01 2019-10-29 Movidius Limited Systems and methods for head-mounted display adapted to human visual mechanism
US11256746B2 (en) 2016-04-25 2022-02-22 Oracle International Corporation Hash-based efficient secondary indexing for graph data stored in non-relational data stores
US10977383B2 (en) 2016-10-05 2021-04-13 Snowflake Inc. Systems, methods, and devices for encrypting database data
JP2018128602A (en) * 2017-02-09 2018-08-16 日本電気株式会社 Encrypted database management device, encrypted database management method, encrypted database management program, and encrypted database management system
US10496631B2 (en) 2017-03-10 2019-12-03 Symphony Communication Services Holdings Llc Secure information retrieval and update
US11073828B2 (en) * 2017-12-08 2021-07-27 Samsung Electronics Co., Ltd. Compression of semantic information for task and motion planning
US10949947B2 (en) 2017-12-29 2021-03-16 Intel Corporation Foveated image rendering for head-mounted display devices
CN109302391B (en) * 2018-09-21 2021-03-02 深圳市九洲电器有限公司 Security data uploading method and device and client
US20210295224A1 (en) * 2020-03-23 2021-09-23 Lyft, Inc. Utilizing a requestor device forecasting model with forward and backward looking queue filters to pre-dispatch provider devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5050213A (en) * 1986-10-14 1991-09-17 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US4974191A (en) * 1987-07-31 1990-11-27 Syntellect Software Inc. Adaptive natural language computer interface system
US5191611A (en) * 1989-04-03 1993-03-02 Lang Gerald S Method and apparatus for protecting material on storage media and for transferring material on storage media to various recipients
US5065429A (en) * 1989-04-03 1991-11-12 Lang Gerald S Method and apparatus for protecting material on storage media
US5367573A (en) * 1993-07-02 1994-11-22 Digital Equipment Corporation Signature data object
US5659614A (en) * 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012115031A1 (en) * 2011-02-22 2012-08-30 三菱電機株式会社 Search system, search method for search system, information processing device, search program, corresponding keyword management device and corresponding keyword management system
CN103384980A (en) * 2011-02-22 2013-11-06 三菱电机株式会社 Search system, search method for search system, information processing device, search program, corresponding keyword management device and corresponding keyword management system
US9418238B2 (en) 2011-02-22 2016-08-16 Mitsubishi Electric Corporation Search system, search method of search system, and information processing device
JP2016081526A (en) * 2014-10-10 2016-05-16 富士通株式会社 Table reconstruction device and method

Also Published As

Publication number Publication date
CA2276036A1 (en) 1998-07-09
WO1998029981A1 (en) 1998-07-09
CA2276036C (en) 2008-10-21
AU5723198A (en) 1998-07-31
US5963642A (en) 1999-10-05
EP1013030A1 (en) 2000-06-28
EP1013030A4 (en) 2005-03-30

Similar Documents

Publication Publication Date Title
JP2001507837A (en) Method and apparatus for securely storing data
US11615202B2 (en) Mathematical method for performing homomorphic operations
CN106815350B (en) Dynamic ciphertext multi-keyword fuzzy search method in cloud environment
US10467420B2 (en) Systems for embedding information in data strings
US10664610B2 (en) Method and system for range search on encrypted data
US8533489B2 (en) Searchable symmetric encryption with dynamic updating
CA2887191C (en) Secure linkage of databases
US10985902B2 (en) Dynamic symmetric searchable encryption
US8626749B1 (en) System and method of analyzing encrypted data in a database in near real-time
US8949625B2 (en) Systems for structured encryption using embedded information in data strings
EP1193585A2 (en) Encrypted file system, encrypted file retrieval method, and computer-readable medium
CN103119594A (en) Searchable encryption processing system
Emekci et al. Dividing secrets to secure data outsourcing
US20100262836A1 (en) Privacy and confidentiality preserving mapping repository for mapping reuse
Esponda et al. Protecting data privacy through hard-to-reverse negative databases
CN112583809B (en) Data encryption and decryption method of non-immersion multiple encryption algorithms
KR101476039B1 (en) Method for encrypting database and method for real-time search thereof
Almakdi et al. Secure and efficient query processing technique for encrypted databases in cloud
US20080317251A1 (en) Methods and systems for storing and retrieving encrypted data
JP2006189925A (en) Private information management system, private information management program, and private information protection method
KR100910303B1 (en) Data encryption and decryption apparatus using variable code table and method thereof
Mu et al. Encrypted data retrieval scheme based on bloom filter
US11977657B1 (en) Method and system for confidential repository searching and retrieval
Kumar Securing Data at rest using Hill Cipher and XOR based operations
Roisum et al. Completeness integrity protection for outsourced databases using semantic fake data