(57)【要約】非侵襲性の暗号化を利用するセキュリティ性を有するリレーショナルデータベースシステムが提供される。リレーショナルデータベース管理システムによって保存または検索されるデータページは、マルチチャネルハードウェア暗号化エンジンに迂回されて処理される。各データページは複数のバッファに分割され、上記ハードウェア暗号化エンジンのチャネル相互間に同時処理されるように分散される。データページは、次いで再構築され、その対象とする宛先に進められる。【選択図】図２
2008538643.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶システムのリレーショナルデータベース管理システムによって保存されたデータページを暗号化する方法であって、該方法は、
保存するために指定されたデータページを複数のバッファに分割するステップと、
前記複数のバッファを、同時、並列的に暗号化するようにハードウェア暗号化エンジンに提示するステップと、
前記ハードウェア暗号化エンジンによる前記複数のバッファの暗号化の完了後に、前記データページをデータ記憶システムに保存するステップと、
を包含し、
前記ハードウェア暗号化エンジンは、前記データページを前記複数の暗号化されたバッファで再構築することを特徴とするデータ記憶システムのリレーショナルデータベース管理システムによって保存されたデータページを暗号化する方法。
【請求項２】
前記複数のバッファが均一のサイズに設定されることを特徴とする請求項１記載のデータページを暗号化する方法。
【請求項３】
前記ハードウェア暗号化エンジンが複数のチャネルを含み、前記複数のバッファの各々が前記複数のチャネルの各々に提示されることを特徴とする請求項１記載のデータページを暗号化する方法。
【請求項４】
バッファの数がチャネルの数に等しいことを特徴とする請求項３記載のデータページを暗号化する方法。
【請求項５】
前記分割するステップは、前記複数のバッファの各々に対してデータページ中におけるメモリアドレスを決定し、
前記提示するステップは、前記複数のバッファの各々のメモリアドレスに対するポインタを前記ハードウェア暗号化エンジンに供与することを特徴とする請求項１記載のデータページを暗号化する方法。
【請求項６】
前記複数のバッファを、ハードウェア圧縮エンジンに提示して同時、並列的に圧縮されるようにするステップをさらに含み、
前記データページは、前記ハードウェア圧縮エンジンによる前記複数のバッファの圧縮完了後に保存されることを特徴とする請求項１記載のデータページを暗号化する方法。
【請求項７】
リレーショナルデータベースのデータを暗号化された形式で保存するセキュリティ性を有するリレーショナルデータベースシステムであって、
プロセッサ、メモリ、データ記憶システムを有するコンピュータサーバと、
前記コンピュータサーバの前記プロセッサにより実行されて前記コンピュータサーバにおける前記プロセッサ，メモリ、データ記憶システムの管理を行なうオペレーティングシステムと、
ハードウェア暗号化エンジンと、
前記コンピュータサーバのプロセッサによる実行されて前記データ記憶システムに保存されているリレーショナルデータベースの管理を行なうリレーショナルデータベース管理システムと、
前記リレーショナルデータベース管理システムにより前記オペレーティングシステムに書き込まれて、前記データ記憶システムに保存されるデータページを前記ハードウェア暗号化エンジンへ迂回させ、前記データ記憶システムに該データページを保存する前に暗号化をする手段と、
前記リレーショナルデータベース管理システムにより前記データ記憶システムから読み込まれたデータページを前記ハードウェア暗号化エンジンへ迂回させ、前記リレーショナルデータベース管理システムが該データページを受け取る前に解読をする手段と、
を含んで構成されたことを特徴とするリレーショナルデータベースのデータを暗号化された形式で保存するセキュリティ性を有するリレーショナルデータベースシステム。
【請求項８】
前記リレーショナルデータベース管理システムにより書き込まれた前記データページを複数のバッファに分割し、該複数のバッファを、同時、並列的に暗号化するように前記ハードウェア暗号化エンジンに提示する手段をさらに含んで構成され、かつ
前記ハードウェア暗号化エンジンが、前記データページを複数の暗号化されたバッファで再構築することを特徴とする請求項７記載のセキュリティ性を有するリレーショナルデータベースシステム。
【請求項９】
前記複数のバッファが均一なサイズに設定されることを特徴とする請求項８記載のセキュリティ性を有するリレーショナルデータベースシステム。
【請求項１０】
前記ハードウェア暗号化エンジンが複数のチャネルを含み、
前記複数のバッファの各々が前記複数のチャネルの各々に提示されることを特徴とする請求項８記載のセキュリティ性を有するリレーショナルデータベースシステム。
【請求項１１】
バッファの数がチャネルの数に等しいことを特徴とする請求項１０記載のセキュリティ性を有するリレーショナルデータベースシステム。
【請求項１２】
前記データページを分割する手段は、前記複数のバッファの各々に対して前記データページ中におけるメモリアドレスを決定する手段を含み、
前記複数のバッファを前記ハードウェア暗号化エンジンに提示する手段は、前記複数のバッファの各メモリアドレスに対するポインタを前記ハードウェア暗号化エンジンに供与することを特徴とする請求項８記載のセキュリティ性を有するリレーショナルデータベースシステム。
【請求項１３】
ハードウェア圧縮エンジンと、
前記リレーショナルデータベース管理システムにより書き込まれた前記データページを前記ハードウェア圧縮エンジンへ迂回させ、該データページの前記データ記憶システムへの保存前に圧縮する手段と、
前記リレーショナルデータベース管理システムにより読み込まれた前記データページを前記ハードウェア圧縮エンジンに迂回させ、該データページの前記リレーショナルデータベース管理システムによる受取り前に解凍する手段と、
をさらに含んで構成されたことを特徴とする請求項７記載のセキュリティ性を有するリレーショナルデータベースシステム。
【請求項１４】
データを暗号化された形式でリレーショナルデータベースに保存するセキュリティ性を有するリレーショナルデータベースシステムであって、
プロセッサ、メモリ、データ記憶システムを有するコンピュータサーバと、
前記コンピュータサーバのプロセッサにより実行されて前記コンピュータサーバのプロセッサ，メモリ、データ記憶システムの管理を行なうオペレーティングシステムと、
ハードウェア暗号化エンジンと、
前記コンピュータサーバのプロセッサにより実行されて前記データ記憶システムに保存されたリレーショナルデータベースの管理を行なうリレーショナルデータベース管理システムと、を含んで構成され、
前記リレーショナルデータベース管理システムは、前記オペレーティングシステムの書き込み機能をコールしてデータページを前記データ記憶システムに保存する前に、データページを複数のバッファに分割し、該複数のバッファが同時、並列的に暗号化されるように前記ハードウェア暗号化エンジンに該複数のバッファを提示するように構成され、かつ
前記ハードウェア暗号化エンジンは、前記データページを前記複数の暗号化されたバッファで再構築することを特徴とするデータを暗号化された形式でリレーショナルデータベースに保存するセキュリティ性を有するリレーショナルデータベースシステム。
【請求項１５】
前記複数のバッファが均一なサイズに設定されることを特徴とする請求項１４記載のセキュリティ性を有するリレーショナルデータベースシステム。
【請求項１６】
前記ハードウェア暗号化エンジンが複数のチャネルを含み、
前記複数のバッファの各々が前記複数のチャネルの各々に提示されることを特徴とする請求項１４記載のセキュリティ性を有するリレーショナルデータベースシステム。
【請求項１７】
バッファの数がチャネルの数に等しいことを特徴とする請求項１６記載のセキュリティ性を有するリレーショナルデータベースシステム。
【請求項１８】
前記リレーショナルデータベース管理システムが、前記複数のバッファの各々に対してデータページ中におけるメモリアドレスを決定するように構成され、
前記リレーショナルデータベース管理システムが、前記複数のバッファの各々のメモリアドレスに対するポインタを前記ハードウェア暗号化エンジンに供与するように構成されたことを特徴とする請求項１４記載のセキュリティ性を有するリレーショナルデータベースシステム。
【請求項１９】
ハードウェア圧縮エンジンをさらに含んで構成され、
前記リレーショナルデータベース管理システムは、前記データページを前記データ記憶システムに保存するためのオペレーティングシステムの書き込み機能をコールする前に、前記複数のバッファを、同時、並列的に圧縮するように前記ハードウェア暗号化エンジンに提示するように構成されたことを特徴とする請求項１４記載のセキュリティ性を有するリレーショナルデータベースシステム。
【請求項２０】
コンピュータが読み取り可能な記録媒体に保存されコンピュータにより実行が可能なプログラムコードで、しかもリレーショナルデータベース管理システムによりデータ記憶システムに保存されたデータページを暗号化するコンピュータにより実行可能なプログラムコードであって、
保存するために指定されたデータページを複数のバッファに分割するコードと、
前記複数のバッファを、同時、並列的に暗号化するようにハードウェア暗号化エンジンに提示するコードと、
前記データページを、前記ハードウェア暗号化エンジンによる前記複数バッファの暗号化完了後に、データ記憶システムに保存するコードと、
を含んで構成され、
前記ハードウェア暗号化エンジンは、前記データページを複数の暗号化されたバッファで再構築することを特徴とするコンピュータが読み取り可能な記録媒体に保存されコンピュータにより実行可能なプログラムコードであり、しかもリレーショナルデータベース管理システムによりデータ記憶システムに保存されたデータページを暗号化するコンピュータにより実行可能なプログラムコード。
【請求項２１】
前記複数のバッファが均一なサイズに設定されることを特徴とする請求項２０記載のコンピュータにより実行可能なプログラムコード。
【請求項２２】
前記ハードウェア暗号化エンジンが複数のチャネルを含み、前記複数のバッファの各々が前記複数のチャネルの各々に提示されることを特徴とする請求項２０記載のコンピュータにより実行可能なプログラムコード。
【請求項２３】
バッファの数がチャネルの数に等しいことを特徴とする請求項２２記載のコンピュータにより実行可能なプログラムコード。
【請求項２４】
前記データページを分割するコードは、前記複数のバッファの各々に対して前記データページ中におけるメモリアドレスを決定し、
前記複数のバッファを提示するコードは、前記複数のバッファの各々のメモリアドレスに対するポインタを前記ハードウェア暗号化エンジンに供与することを特徴とする請求項２０記載のコンピュータにより実行可能なプログラムコード。
【請求項２５】
前記複数のバッファを、同時、並列的に圧縮するようにハードウェア圧縮エンジンに提示するコードをさらに含んで構成され、
前記データページは、前記ハードウェア圧縮エンジンによって前記複数のバッファの圧縮完了後に保存されることを特徴とする請求項２０記載のコンピュータにより実行可能なプログラムコード。
【発明の詳細な説明】
【技術分野】
【０００１】  本出願は２００５年３月２８日出願に係る米国仮出願第６０／６６５，３５７号の出願日遡及を主張するものであり、故に、その全開示を参照文献として本出願に組み入れるものとする。
本発明は、リレーショナルデータベースシステム、即ち、関係型データベースシステムに関し、特に、リレーショナルデータベースシステムで実行される非侵襲性（ｎｏｎ−ｉｎｖａｓｉｖｅ）のデータ暗号化に関する。
【背景技術】
【０００２】  リレーショナルデータベースは、大量のデータを編成し、保存し、検索する効率的なシステムを提供する。全ての形態のビジネスが、リレーショナルデータベースで保存されるデータのデータ量や形態を絶えず増加させている。加えて、ビジネスは絶えずそのデータの新たな便益点、用途を見出しつつある。そして、このことが、より高性能で容量を増加させたデータベースシステムに対する需要を駆り立てている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】  多くの産業において、蓄積されているデータは機密性があり、安全に保存されなければならない。例えば、金融機関は、遂行された取引（トランザクション）における、口座番号、口座残高、口座所有者などに関するデータを辿り（ｔｒａｃｋ）、保存する。同様に、健康管理産業では、個人の健康や治療履歴に関する個人情報を追跡し、保存する。これらの産業は、それらのデータベースシステムに安全性（セキュリティ）と性能（パフォーマンス）との両者を要求する。【０００４】  従って、システムの諸コンポーネントに対して広範な修正を加える必要なしに、かつ、リレーショナルデータベースシステムの全体的性能に大幅な害が及ぶことなく、保存されたデータを暗号化することができるリレーショナルデータベースシステムへの需要が有る。
【課題を解決するための手段】
【０００５】  このため、本発明は、上述した需要、懸念に対処せんとするものであり、リレーショナルデータベースに保存されたデータを暗号化する安全な、セキュリティ性の有るリレーショナルデータベースシステムを提供するものである。本発明は、システムの個々のコンポーネントに対する広範囲な修正を必要とすることなく、ハードウェア暗号化プロセスをシステムに挿入する。さらに、本発明は、マルチチャネル（ｍｕｌｔｉ−ｃｈａｎｎｅｌ）ハードウェア暗号化エンジンの機能を活用して、システム全体の性能（パフォーマンス）への影響を最小化するのである。【０００６】  本発明の一態様によれば、リレーショナルデータベース管理システムによって保存されたデータ記憶システムのデータページを暗号化する方法が提供される。記憶することを指定されたデータページは、複数のバッファ（多重バッファ）に分割される。同バッファは、同時に暗号化されるようにハードウェア暗号化エンジンに供与される。一旦ハードウェア暗号化エンジンがバッファの暗号化を完了すると、データページは暗号化されたバッファで再構築され、データ記憶システムに保存される。【０００７】  本発明の別の態様では、暗号化された形式（ｆｏｒｍ）でリレーショナルデータベースのデータを保存する安全なリレーショナルデータベースシステムが提供される。このシステムは、プロセッサ、メモリ及びデータ記憶システムを有するコンピュータサーバを含んで構成される。オペレーティングシステムは、コンピュータサーバのプロセッサによって実行されて、プロセッサ、メモリおよびデータ記憶システムを管理する。また、リレーショナルデータベース管理システムは、コンピュータサーバのプロセッサによって実行されて、データ記憶システムに保存されるリレーショナルデータベースを管理する。データページをデータ記憶システムに保存するオペレーティングシステムの書込み機能を呼び出す（コールする）前に、リレーショナルデータベース管理システムは、データページを複数のバッファに分割し、ハードウェア暗号化エンジンに該バッファを供与して同時に暗号化されるようにする。暗号化が完了されると、ハードウェア暗号化エンジンは、暗号化されたバッファでデータページを再構築する。【０００８】  前述した発明の概要は、本発明の性質を迅速に理解し得るように提供したものである。本発明の好ましい実施例に関するより詳細かつ完全な理解は、添付した図面と共に以下の発明の詳細な説明を参照することで得られる。
【発明を実施するための最良の形態】
【０００９】  本発明は、添付の図面を参照してより充分に説明されており、各参照数字は図面の全体にわたって各要素を示す。以下の説明は、当業者に実施の形態として本発明を説明するために提供される本発明の好ましい実施形態を包含している。【００１０】  図１は、リレーショナルデータベースシステム１０の諸コンポーネントを表すブロック図である。図１に示すように、リレーショナルデータベースシステム１０は、リレーショナルデータベース管理システム（ＲＤＢＭＳ）１１、オペレーティングシステム（ＯＳ）１２及びデータ記憶システム１３を含んで構成されている。ＲＤＢＭＳ１１は、コンピュータのアプリケーションまたはアプリケーションのグループであり、リレーショナルデータベース中のデータの編成、保存及び検索を管理する。そのリレーショナルデータベースはデータ記憶システム１３に保存され、リレーショナルデータベースを保存するように構成された単一のハードディスクドライブまたはハードディスクドライブの配列（ａｒｒａｙ）を含んでいる。ＯＳ１２は、データ記憶システム１３に対するアクセスを制御し、また、ＲＤＢＭＳ１１とデータ記憶システム１３と間のインタフェースを管理する。【００１１】  上述のように、ＲＤＢＭＳ１１はリレーショナルデータベースを管理するためのコンピュータアプリケーションである。本発明は、特定のリレーショナルデータベース管理システムに限られず、当業者には周知の多数のシステムのいずれかを使用して実施することができる。このようなシステムは、オラクル社、ＩＢＭ社及びマイクロソフト社によって提供されるものを含む。同様に、ＯＳ１２は特定のオペレーティングシステムに限られず、マイクロソフト社のウィンドウズ系のオペレーティングシステム、Ｕｎｉｘ／Ｌｉｎｕｘ系のオペレーティングシステムを含み、当業者には周知の多数のオペレーティングシステムのいずれかを使用して実施することができる。【００１２】  データ記憶システム１３は、単一のハードディスクドライブかハードディスクドライブの配列を含むものとして上述した。これらのドライブは、独立したボリュームとして、あるいは、独立した複数のディスクからなる冗長配列（″ＲＡＩＤ″と呼称される）であって、当業者に周知のＲＡＩＤ構成のいずれかを使用するものとして設ければ良い。当業者はまた、これらのドライブが、ハードディスクドライブ以外にも他の記憶装置を使用して実装し得ることは理解できるであろう。例えば、ハードディスクドライブの代わりにフラッシュメモリドライブまたは光学式ドライブ（ｏｐｔｉｃａｌ  ｄｒｉｖｅ）を使用することができる。【００１３】  ＲＤＢＭＳ１１はデータをデータページの形式でデータ記憶システム１３に保存するものであり、図１にはそれがデータページ１４によって表示されている。各データページは、リレーショナルデータベースからのデータの行を包含している。一般的に、データページは２ｋＢから６４ｋＢの大きさであるが、リレーショナルデータベースシステムを実現するのに用いるコンポーネントに従って変化する。【００１４】  データ記憶システム１３に保存されたリレーショナルデータベースにアクセスするため、ＲＤＢＭＳ１１は、ＯＳ１２と���ＤＢＭＳ１１との間でデータページ１４の転送を遂行することを要請する。具体的には、データをリレーショナルデータベースに保存するために、ＲＤＢＭＳ１１は、ＯＳ１２の書込みルーチンを呼び出し、保存を所望するデータを包含したデータページ１４をデータ記憶システム１３に保存する。次いでＯＳ１２は、データページ１４を、データ記憶システム１３における、ディスクセクタ１５ａ、１５ｂ、１５ｃで表示された一連のディスクセクタに保存する。なお、図１では、３つのディスクセクタだけが表示されているが、ディスクセクタの実際の数は、オペレーティングシステムの形式、データ記憶システムの形式、データページの大きさ等の多数の諸要因（ｆａｃｔｏｒ）に従って変化する。【００１５】  リレーショナルデータベースからデータを検索するために、ＲＤＢＭＳ１１は、データ記憶システム１３から所望するデータを含んだデータページ１４を検索するＯＳ１２の読込みルーチンを呼び出す。ＯＳ１２は、データ記憶システム１３から所望のデータを含んだディスクセクタ１５ａ、１５ｂ及び１５ｃを検索し、所望のデータを含んだデータページ１４をＲＤＢＭＳ１１へ返還する。なお、オペレーティングシステムによって使用される読出しおよび書込みルーチンは、当業者にとって周知であるため、本願明細書においてはこれ以上詳細に説明しないこととする。【００１６】  図２は、本発明の一実施例による安全な、つまりセキュリティ性の有るリレーショナルデータベースシステム２０のコンポーネントを表すブロック図である。図１に表示のシステムと同様に、セキュリティ性の有るリレーショナルデータベースシステム２０は、ＲＤＢＭＳ２１、ＯＳ２２及びデータ記憶システム２３を含む。また、前述のように、ＲＤＢＭＳ２１は、リレーショナルデータベースのデータの編成、保存および検索を管理するコンピュータのアプリケーションまたはアプリケーションのグループである。リレーショナルデータベースはデータ記憶システム２３に保存され、同システムはリレーショナルデータベースを保存するように構成された単一のハードディスクドライブまたはハードディスクドライブの配列（ａｒｒａｙ）を含んでいる。ＯＳ２２は、データ記憶システム２３に対するアクセスを制御し、ＲＤＢＭＳ２１、データ記憶システム２３間のインタフェースを管理する。なお、図１に表示のシステムと同様に、当業者にとって周知の多数のリレーショナルデータベース管理システム、オペレーティングシステム及び／またはデータ記憶システムのいずれかのものを、本発明の範囲内において使用できることができることは言うまでもない。【００１７】  セキュリティ性の有るリレーショナルデータベース２０は、図１に表示するシステムで使用されたものと同様の方法で、データを保存し、検索する。具体的には、ＲＤＢＭＳ２１は、所望のデータを含むデータページ２４を、ＯＳ２２に対して送信し、または、ＯＳ２２へ要求する。さらに、ＯＳ２２は、データ記憶システム２３の一連のディスクセクタ２５ａ、２５ｂ、２５ｃのデータページ２４に含まれるデータを書き出すか、あるいは、データ記憶システム２３の一連のディスクセクタ２５ａ、２５ｂ、２５ｃに保存された所望のデー���を検索する。しかしながら、図１に表示のシステムとは異なり、セキュリティ性の有るリレーショナルデータベースシステム２０は、ＲＤＢＭＳ２１及びＯＳ２２の間に暗号化エンジン２６を挿設し、データページを、ＲＤＢＭＳ２１及びＯＳ２２の間で転送が行われる前に暗号化エンジン２６を迂回させるように構成されている。そして、暗号化エンジン２６は、データページを、ＲＤＢＭＳ２１またはＯＳ２２に転送される前に暗号化又は解読する。例えば、図２は、データページ２４を暗号化エンジン２６へ迂回させることを表し、同暗号化エンジン２６は、暗号化データページ２７を作成するために、同ページに含まれたデータを暗号化する。そして、暗号化されたデータページ２７は、ＯＳ２２によりデータ記憶システム２３のディスクセクタ２５ａ、２５ｂ、２５ｃに保存される。以下に、セキュリティ性の有るリレーショナルデータベース２０の動作について更に詳細に説明する。【００１８】  従来のセキュリティ性の有るリレーショナルデータベースは、一般的にＲＤＢＭＳの中でまたはＲＤＢＭＳの前でデータを暗号化するため、ＲＤＢＭＳは暗号化されたデータに関して動作することが必要であった。このように暗号化されたデータに関して動作することは、機能性を制限し、ＲＤＢＭＳのパフォーマンスを低減させる。他方、本発明は、独立した暗号化エンジンを使用してＲＤＢＭＳから暗号化処理を切り離し、ＲＤＢＭＳとＯＳと間で暗号化処理を実行する。従って、ＲＤＢＭＳの内部動作は、ＲＤＢＭＳの外側で発生する暗号化処理を知る必要がない。このように、ＲＤＢＭＳは暗号化されていないデータに関して動作し、完全な性能によって機能することが可能である。【００１９】  本発明の一実施形態によれば、暗号化エンジン２６は、各々のチャネルが暗号化アルゴリズムを使用してデータを暗号化又は解読するように構成された、マルチチャネルハードウェア暗号化エンジンである。必要な処理の実行にシステムの中央処理装置に依存するソフトウェア暗号化エンジンとは異なり、ハードウェア暗号化エンジンはそれ自身の内部回路を使用して暗号化プロセスを実行する。従って、ハードウェア暗号化エンジンは、システム全体のプロセッサ資源を節約し、システムの全体的性能に対する影響を最小化する。【００２０】  マルチチャネルハードウェア暗号化エンジンは、複数のデータブロックが並列的に処理されるようにするために利用される。このハードウェア暗号化エンジンの最大限のスループット能力を用いたデータの同時処理によって、システムの全体的なパフォーマンスを向上させることができる。なお、別例として、本発明の範囲内において、単一チャネルのハードウェア暗号化エンジンを複数用いてもよい。【００２１】  ハードウェア暗号化エンジンの構成および内部動作は当業者にとって周知であるから、本願明細書ではこれ以上詳述しない。なお、本発明は、その範囲内において、多くの市販のハードウェア暗号化エンジンのいずれかを使用して実施することができる点に注意すべきである。さらに、本発明は、特定の暗号化アルゴリズムに限られず、当業者にとって周知の多数のアルゴリズムのいずれかを用いることができる。例えば、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ：次世代型高度暗号標準）またはＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ：データ暗号化規格）やトリプルＤＥＳ（Ｔｒｉｐｌｅ  ＤＥＳ：トリプルデータ暗号化規格）に基づくアルゴリズム等を使用することができる。【００２２】  本発明の一実施形態によれば、セキュリティ性の有るリレーショナルデータベースシステムは、コンピュータサーバシステムを使用して実現することができる。図３は、コンピュータサーバシステム３０の一例を表すブロック図である。コンピュータサーバシステム３０は、命令を実行し、情報を処理するためのプロセッサ３１を含む。ＲＡＭ（Ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）３２は、プロセッサ３１によって実行される情報、命令を一時的に保存する。ＲＯＭ（Ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）３３は、コンピュータサーバシステム３０の動作を開始するためにスタートアップでプロセッサ３１によって実行される公知のＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）などの静的命令シーケンス（ｓｔａｔｉｃ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｑｕｅｎｃｅｓ）を保存する不揮発性記憶装置である。記憶装置３４は、プロセッサ３１によって実行される情報および命令を保存する磁気ディスクまたは光ディスクなどの他の不揮発性メモリを表す。これらのコンポーネントの各々がバス３５に連結され、同バスが様々なコンポーネント間における情報および命令の転送を容易にする構成を備えている。【００２３】  さらに、ネットワークインタフェース３６、暗号化エンジン３７及びデータ記憶システム３８もまた、バス３５に結合されている。なお、暗号化エンジン３７及びデータ記憶システム３８については、この明細書の他の箇所で説明されている。ネットワークインタフェース３６は、コンピュータサーバシステム３０が１つまたは複数のネットワークを経て相互接続されて他のコンピューティング装置と通信することができるようにする任意選択性の性能手段である。なお、それが可能なネットワークとしては、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋｓ）及び公知のインターネットが含まれる。情報は、電気信号，電磁信号または光信号を使用して、これらのネットワーク全体に転送、伝達される。このようにして、コンピュータサーバシステム３０は、同じネットワークに接続している他の装置と資源を共有することと同様に、データ及びコードを受信及び／または送信することができる。【００２４】  また、他の装置が、バス３５を経てコンピュータサーバシステム３０に接続されてもよい。例えば、ＣＲＴまたは液晶モニタのようなディスプレイ装置を接続し、ユーザに対して情報を表示するようにしてもよい。加えて、ユーザがコンピュータサーバシステム３０で実行されるアプリケーションを制御できるように、キーボード及びカーソル制御装置のようなユーザ入力装置をコンピュータサーバシステム３０に接続してもよい。【００２５】  上述したコンピュータサーバシステム３０のコンポーネントの全ては、単一のコンピュータシステムの一部であると記載したが、当業者なら、本発明の別の実施例では、１つまたは複数のネットワークを経て相互接続される別々のコンピューティングシステムに、１つまたは複数のコンポーネントを分離することができることを認識することができるであろう。例えば、本発明の範囲内において、データ記憶システム３８は、他のシステムに配置されるか又はネットワークによって相互接続された複数のシステムにわたって分散されることができる。【００２６】  本発明において用いられるリレーショナルデータベース管理システム及びオペレーティングシステムは、ＲＡＭ３２に保存された１つまたは複数の命令のシーケンスを実行するプロセッサ３１によって提供される。これらの命令のシーケンス又はコンピュータコードは、プロセッサ３１により、記憶装置３４などのコンピュータ可読媒体からＲＡＭ３２へロードされる。なお、コンピュータ可読媒体の他の例として、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、その他の磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ、その他の光媒体、せん孔カードおよび紙テープのような物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ等を含むが、これらに限定されるものではない。あるいは、コンピュータコードは、同軸ケーブル、銅線または光ファイバなどの伝送媒体を介してコンピュータサーバシステム３０へ転送、送信することができる。本発明の動作の更に詳細な説明は、以下に記載する。【００２７】  図４は、本発明の一実施形態によるリレーショナルデータベース管理システムによって保存されたデータページを暗号化するための処理を例示するフローチャートである。前述したように、本発明では、記憶装置に対しＲＤＢＭＳによって転送されたデータページを、暗号化エンジンに迂回させる。図４において示される処理は、このような迂回に関連した処理を表示している。この処理は、ＲＤＢＭＳが、リレーショナルデータベースにおいてデータページを保存するために準備及び指定したときに開始される。一実施形態によれば、ＲＤＢＭＳは、オペレーティングシステムの書込み機能／ルーチンをコールするときに、図４に示される処理ステップを開始及び／または実行するために僅かに修正される。この処理は追加的なユーザ介入なしで実行されるため、本発明の動作をリレーショナルデータベースシステムのエンドユーザに対して透明（ｔｒａｎｓｐａｒｅｎｔ）にする。別の実施形態では、ソフトウェアプロキシルーチンが、データ記憶システムにデータを書き込むことに対して標準的なオペレーティングシステムコールを置換するために用いられる。ソフトウェアプロキシルーチンは、オペレーティングシステムの書込み機能／ルーチンに対するコールがなされるときはいつでも、図４に示す処理ステップを開始及び／または実行する。なお、ソフトウェアプロキシルーチンは、当業者にとって周知であるため、本願明細書においてこれ以上詳述しないこととする。【００２８】  ステップ４００（以下、Ｓ４００とする。図も同様）では、データページを複数のバッファに分割する。バッファの数及びサイズは、暗号化エンジンのチャネルの数に基づいて決定される。例えば、図５は暗号化エンジン５１を用いたデータページ５０の処理を表すブロック図である。図５に示すように、暗号化エンジン５１は８つのチャネル（チャネル１〜８）を含んでいる。従って、データページ５０は８つのバッファ（バッファ１〜８）に分けられる。ここで、好ましくはバッファの数を暗号化エンジンのチャネル数に等しく選択し、暗号化エンジンの処理容量を全て使用するようにする。また、好ましくは全てのバッファを等しいサイズに設定し、処理をするチャネルにデータを均一に分散する。例えば、６４ｋＢのデータページは、各々８ｋＢのデータを有する８つのバッファに分割される。【００２９】  一旦ＲＤＢＭＳが保存用のデータページを準備及び指定すると、そのデータページはコンピュータサーバシステムのメインメモリ（ＲＡＭ）内に存在する。本発明の１実施形態によれば、複数のバッファの各々に対応するデータページの部分について、メインメモリ内におけるメモリアドレスを決定することにより、データページが複数のバッファに分割される。従って、データページの分割は、実際のメモリバッファへのデータ転送を伴わない。しかしながら、本発明の別の実施形態では、データページを実際のメモリバッファに分割及び転送するようにしても良い。【００３０】  Ｓ４０１では、バッファが暗号化エンジンの各々のチャネルへ転送される。この転送は、２つのステップで実行される。第１に、全てのバッファが、チャネルによって処理される独立ジョブとして、暗号化エンジンに同時に提示される。バッファは、メインメモリの各々のバッファのメモリアドレスに対するポインタを供与することによって提示される。第２に、暗号化エンジンはそれらのバッファを各々のチャネルへ転送する。暗号化エンジンは、上記ポインタとバッファのサイズとを共に使用して、当業者には周知のダイレクトメモリアクセス（ＤＭＡ）方法を使用してそれらのバッファを各々のチャネルへ転送して処理を行う。この転送は、図５においては、バッファ１〜８からチャネル１〜８へと伸びた矢印のグループによって示してある。【００３１】  本発明の１実施形態によれば、データページをバッファに分割すること及び暗号化エンジンのチャネルにバッファを提示することが、ハードウェアとしての暗号化エンジンのソフトウェアドライバによって管理されるのである。ドライバは、データページが保存の準備を整えたときに、修正されたＲＤＢＭＳによってコールされる。あるいは、ＲＤＢＭＳは各チャネルに対してバッファの分割、提示を行うように改変しても良い。【００３２】  Ｓ４０２では、各々のバッファのデータは、暗号化アルゴリズムを使用して、暗号化エンジンの各々のチャネルによって暗号化される。ここで、各々のバッファが同時に暗号化エンジンに提示され、かつ、各々のバッファは均一なサイズに設定されるため、各々のバッファの暗号化は、略等しい時間で遂行され、従って、全てのバッファが同時に暗号化処理を完了する。暗号化エンジンの全てのチャネルを使用したバッファの同時処理により、１つのデータページを保存するという単一のデータベース処理に対して暗号化エンジンの最大処理能力を発揮させるということを達成できるのである。【００３３】  さて、バッファの暗号化が完了すると、Ｓ４０３では、暗号化されたデータを含んだバッファが、当業者に周知のＤＭＡ方法を使用して、暗号化エンジンによりメイ��メモリに転送される。暗号化されたバッファは、すでに暗号化エンジンに前に提示されたポインタと同じポインタを使用してメインメモリへ転送される。この転送は、図５においては、チャネル１〜８からバッファ１〜８へと伸びた矢印のグループによって示されている。従って、メインメモリに保存されたデータページのデータは、暗号化されたデータによって事実上上書きされ、データページは、暗号化されたデータページで置き換えられる。このように、暗号化エンジンは、暗号化されたデータを使用して、メインメモリのデータページを再構築する。一度暗号化エンジンが暗号化されたデータの転送完了を通知すると、Ｓ４０４では、オペレーティングシステム書込み機能が、暗号化されたデータページをデータ記憶システムに保存するために呼出し、コールされる。【００３４】  図６は、本発明の一実施形態による、リレーショナルデータベース管理システムによって要求された暗号化されたデータページを復号化する処理を例示するフローチャートである。この処理は、ＲＤＢＭＳが、データ記憶システムに検索すべきデータページを要求したときに開始される。図４に示した処理と同様に、ＲＤＢＭＳは、データ記憶システムに保存されたデータを検索するためにオペレーティングシステムの読込機能をコールするときに、図６に示す処理ステップを開始及び／または実行するように僅かに修正されている。また、別の実施の形態では、ソフトウェアプロキシルーチンが、データ記憶システムからデータを読出すことに対する標準的なシステムコールを置換するために使用される。ソフトウェアプロキシルーチンは、オペレーティングシステム読取り機能のコールがなされる都度、図６に示す処理ステップを開始及び／または実行する。なお、ソフトウェアプロキシルーチンは、当業者にとって周知であるため、これ以上は詳述しないこととする。【００３５】  Ｓ６００では、ＲＤＢＭＳが、オペレーティングシステム読取り機能を使用して、所望のデータページをデータ記憶システムに要求する。Ｓ６０１では、暗号化されたデータを含んだデータページが、ＯＳによりデータ記憶システムから検索され、コンピュータサーバシステムのメインメモリ（ＲＡＭ）に保存される。図４に関する上述の説明と同様に、暗号化されたデータページは、Ｓ６０２で複数のバッファに分割され、Ｓ６０３で各々のチャネルに転送される。そして、Ｓ６０４では、暗号化されたそれらのバッファが解読される。【００３６】  図４に記載されている処理と同様に、バッファが暗号化エンジンの各々のチャネルに同時に提示され、各々のバッファは均一なサイズに設定されている。従って、各々のバッファの解読は、略等しい時間で遂行され、全てのバッファの解読処理は同時に終了する。解読が完了すると、Ｓ６０５では、図４の説明と同様に、暗号化エンジンが解読データをメインメモリに転送する。この処理は、解読されたバッファを用い、メインメモリの暗号化されたバッファに上書きすることにより、データページを再構築する。最後に、Ｓ６０６では、解読されたデータを含んだ所望のデータページがＲＤＢＭＳに送信される。【００３７】  上述した本発明は、リレーショナルデータベースシステムに非侵襲性の暗号化を提供する。僅かにＲＤＢＭＳを改変するか又はソフトウェアプロキシルーチンを使用することにより、リレーショナルデータベースに保存されたデータの暗号化は、ユーザには透明な方法で達成される。リレーショナルデータベースシステムの全体的なパフォーマンスに対する影響は、複数のチャネルを有するハードウェア暗号化エンジンを用い、処理においてそれらのチャネルの全体にわたり各データページを分散することで最小化される。【００３８】  別の実施形態では、マルチチャネルハードウェア圧縮エンジンをハードウェア暗号化エンジンに追加し、データ記憶システムにおける保存前にデータページを圧縮し、データ記憶システムの検索後にデータページを解凍するように構成される。なお、本発明の範囲内において、多くの周知の圧縮アルゴリズムのいずれかを用い得ることは言うまでもない。また、データページに関するハードウェア圧縮エンジンの動作は、圧縮されたデータページを保存するために用いるデータ記憶システムのディスクセクタの数及び位置を追跡するためのユーティリティを含むことを追加すれば、ハードウェア暗号化エンジンについて記載されている上述の内容と同様である。かかる圧縮はデータ記憶システムの中で各々のデータページを保存するために要求されるセクタの数を一般的に変更し、それゆえに、データ記憶システム内のデータページの位置をも一般的に変更するため、このトラッキングは必要である。なお、この種のトラッキングユーティリティの実装、実施は当業者にとって明らかであるため、本願明細書において追加の詳述はしないこととする。【００３９】  上述の本発明は、記憶装置の全てのデータページまたはデータページの検索を処理するとして記載した。別の実施形態では、ハードウェア暗号化エンジンは、データページの中の暗号化／解読テキストフィールドに対してのみ構成される。ハードウェア暗号化エンジンは、また、データページの中の指定されたカラムだけを処理するように構成しても良い。このように、データページの中のデータの残りを暗号化されていない形式のままにしておくとき、暗号化システムは感知可能なデータだけを暗号化するために微調整するようにもできる。【００４０】  本発明の前述の説明は、データの迂回がリレーショナルデータベース管理システム及びオペレーティングシステムの間で発生するものとして記載している。本発明の別の実施形態では、システムは、オペレーティングシステムのキャッシュとファイルシステムとの間、ファイルシステムとディスクコントローラとの間、並びにページとＲＤＢＭＳ中の行との間、または、ＲＤＢＭＳ中で取り扱われる行と列との間でデータを迂回させるように構成することができる。なお、本発明における迂回を既述した諸位置（ｐｏｓｉｔｉｏｎ）へ如何にして移行させるかは、当業者であれば、容易に認識可能であろう。【００４１】  本発明の上述した説明記載は、本発明の好ましい実施例を例示して説明しているが、本願の記載に係る上述の教示及び／または技術ないし知識に相応して、本発明は、その発明の概念の範囲内において、他の様々な組み合わせ及び改変をして用いることができることを理解すべきである。また、前述の実施例は、本発明を実施す���ために最適な形態を説明したものであり、当業者がこのような或いは他の実施形態で、また、特定のアプリケーションまたは本発明の利用により要求される様々な変更を伴い、本発明を利用できるように意図するものである。従って、この説明は本発明の範囲を制限することを目的としない。そして、それは添付された請求の範囲によって解釈されなければならない。
【図面の簡単な説明】
【００４２】
【図１】リレーショナルデータベースシステムのコンポーネントを表すブロック図である。
【図２】本発明の一実施例におけるセキュリティ性のあるリレーショナルデータベースシステムのコンポーネントを表すブロック図である。
【図３】本発明の一実施例におけるコンピュータサーバシステムを表すブロック図である。
【図４】本発明の一実施例におけるリレーショナルデータベース管理システムにより保存されるデータページを暗号化するために実行される処理ステップを例示するフローチャートである。
【図５】本発明の一実施例における暗号化エンジンによりデータページを処理する順序（ｓｅｑｕｅｎｃｅ）を表すブロック図である。
【図６】本発明の一実施例におけるリレーショナルデータベース管理システムによって要求されるデータページを解読するために実行される処理ステップを例示するフローチャートである。
【符号の説明】
【００４３】１０    リレーショナルデータベースシステム
１１    リレーショナルデータベース管理システム（ＲＤＢＭＳ）
１２    オペレーティングシステム（ＯＳ）
１３    データ記憶システム
１４    データページ
１５    セクタ
２０    セキュリティ性の有るリレーショナルデータベースシステム
２１    リレーショナルデータベース管理システム（ＲＤＢＭＳ）
２２    オペレーティングシステム（ＯＳ）
２３    データ記憶システム
２４    データページ
２５    セクタ
２６    暗号化データページ
３０    コンピュータサーバシステム
３１    プロセッサ
３２    ＲＡＭ（Ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）
３３    ＲＯＭ（Ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）
３４    記憶装置
３５    バス
３６    ネットワークインタフェース
３７    暗号化エンジン
３８    データ記憶システム
５０    データページ
５１    暗号化エンジン
【図１】
2008538643.tif 000003
【図２】
2008538643.tif 000004
【図３】
2008538643.tif 000005
【図４】
2008538643.tif 000006
【図５】
2008538643.tif 000007
【図６】
2008538643.tif 000008
【国際調査報告】
2008538643.tif 000009