(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-27
(54)【発明の名称】暗号化の使用を伴わないデータベース、データ伝送、及びファイルの保護
(51)【国際特許分類】
G06F 21/60 20130101AFI20240219BHJP
G06F 16/28 20190101ALI20240219BHJP
【FI】
G06F21/60
G06F16/28
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023575691
(86)(22)【出願日】2022-02-24
(85)【翻訳文提出日】2023-10-03
(86)【国際出願番号】 US2022017783
(87)【国際公開番号】W WO2022182924
(87)【国際公開日】2022-09-01
(32)【優先日】2021-02-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】523320803
【氏名又は名称】サイバーアジャスト, エルエルシー
【氏名又は名称原語表記】CyberAdjust, LLC
(74)【代理人】
【識別番号】100107456
【氏名又は名称】池田 成人
(74)【代理人】
【識別番号】100162352
【氏名又は名称】酒巻 順一郎
(74)【代理人】
【識別番号】100123995
【氏名又は名称】野田 雅一
(72)【発明者】
【氏名】ハースタッド, ロナルド, エム.
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175BA01
5B175CA07
5B175FB04
(57)【要約】
データベース又は他のファイルタイプの1つ又は複数の特定フィールドのセルに対して、モジュラー演算を使用する並べ替えアルゴリズムが適用される。この並べ替えは、如何なる個々のセルのコンテンツの変更も伴わずに、(1つ又は複数の)特定フィールドのセルの順序を変えることによって、(1つ又は複数の)並べ替えフィールドのセルと関連するレコードのその他の情報との間の関係を隠す。並べ替えアルゴリズムは、モジュラー加算及びモジュラー減算をいずれかの順序で使用するようにしてもよい。異なる並べ替えアルゴリズムでは、使用するパラメータの数が異なっていてもよい。特定セルを並べ替えフィールドにおいて位置特定するため、モジュラー演算においては、並べ替えからの(1つ又は複数の)パラメータと、セルと関連付けられた特定レコードの識別情報と、特定の並べ替えフィールドの識別情報と、が適用される。逆モジュラー演算によって、並べ替えフィールド中の特定セルが関連付けられる特定レコードが取得されるようになっていてもよい。
【選択図】
図2
【特許請求の範囲】
【請求項1】
データベースの機密コンテンツと関連するデータベースレコードの他のフィールドとの間の関係を隠すことにより、前記機密コンテンツを不正アクセスから保護する方法であって、
モジュラー演算を使用する並べ替えアルゴリズムを前記データベースの特定フィールドのセルに適用することによって、前記特定フィールドの前記セルを並べ替えるステップであり、前記並べ替えが、如何なる個々のセルのコンテンツの変更も伴わずに、前記特定フィールドの前記セルの順序を変える、ステップを含み、
並べ替えられた前記フィールドが依然として、並べ替えられた順序にて元のセルをすべて含むことにより、並べ替えられた前記フィールドのセルと関連するデータベースレコードとの間の関係を隠す、方法。
【請求項2】
前記データベースが、フィールドを列に、レコードを行に格納し、
前記データベースの前記特定フィールドのセルを並べ替えるステップが、モジュラー演算を使用する前記並べ替えアルゴリズムを前記データベースの特定列の前記セルに適用することであり、前記特定列が、前記特定フィールドのセルを含む、適用することをさらに含む、請求項1に記載の方法。
【請求項3】
前記データベースが、フィールドを行に、レコードを列に格納し、
前記データベースの前記特定フィールドのセルを並べ替えるステップが、モジュラー演算を使用する前記並べ替えアルゴリズムを前記データベースの特定行の前記セルに適用することであり、前記特定行が、前記特定フィールドのセルを含む、適用することをさらに含む、請求項1に記載の方法。
【請求項4】
モジュラー演算を使用する前記並べ替えアルゴリズムを前記データベースの複数の特定フィールドそれぞれのセルに適用することによって、前記複数の特定フィールドの前記セルを並べ替えるステップであり、前記並べ替えが、如何なる個々のセルのコンテンツの変更も伴わずに、各特定フィールドの前記セルの順序を変える、ステップをさらに含み、
各並べ替えられたフィールドが依然として、並べ替えられた順序にて前記元のセルをすべて含むことにより、各並べ替えられたフィールドのセルと関連するデータベースレコードとの間の関係を隠す、請求項1に記載の方法。
【請求項5】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
モジュラー演算を使用する全単射関数の適用によって、前記データベースの前記特定フィールドの前記セルを並べ替えることをさらに含む、請求項1に記載の方法。
【請求項6】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
モジュラー加算及びモジュラー減算をいずれかの順序で使用する並べ替えアルゴリズムを適用することをさらに含む、請求項1に記載の方法。
【請求項7】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
複数のパラメータを伴うモジュラー演算を使用する並べ替えアルゴリズムを適用することをさらに含む、請求項1に記載の方法。
【請求項8】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
単一のパラメータを伴うモジュラー演算を使用する並べ替えアルゴリズムを適用することをさらに含む、請求項1に記載の方法。
【請求項9】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
射影場を介して並べ替えられたフィールドのセルを満たすモジュラー演算を使用する並べ替えアルゴリズムを適用することをさらに含む、請求項1に記載の方法。
【請求項10】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
少なくとも1つの疑似ランダム選択パラメータを伴うモジュラー演算を使用する並べ替えアルゴリズムを適用することをさらに含む、請求項1に記載の方法。
【請求項11】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
少なくとも1つの意図的選択パラメータを伴うモジュラー演算を使用する並べ替えアルゴリズムを適用することをさらに含む、請求項1に記載の方法。
【請求項12】
前記並べ替えアルゴリズムを適用する前記ステップにおいて用いられる1つ又は複数のパラメータをモジュラー演算において適用することにより、特定レコードと関連付けられるものの、前記特定レコード内には配置されていない特定セルを並べ替えられたフィールドにおいて位置特定するステップをさらに含む、請求項1に記載の方法。
【請求項13】
前記並べ替えアルゴリズムを適用する前記ステップにおいて用いられる1つ又は複数のパラメータをモジュラー演算において適用することにより、特定セルを並べ替えられたフィールドにおいて位置特定するステップが、
前記1つ又は複数のパラメータと、並べ替えられた前記フィールドの前記特定セルが関連付けられる前記特定レコードの識別情報と、前記特定の並べ替えられたフィールドの識別情報と、を前記モジュラー演算において適用することにより、前記特定セルを並べ替えられた前記フィールドにおいて位置特定することをさらに含む、請求項12に記載の方法。
【請求項14】
前記並べ替えアルゴリズムを適用する前記ステップにおいて用いられる1つ又は複数のパラメータをモジュラー演算において適用することにより、並べ替えられたフィールド中の特定セルが関連付けられる特定レコードを位置特定するステップであり、前記特定セルが、関連付けられる前記特定レコードには配置されていない、ステップをさらに含む、請求項1に記載の方法。
【請求項15】
前記並べ替えアルゴリズムを適用する前記ステップにおいて用いられる1つ又は複数のパラメータをモジュラー演算において適用することにより、並べ替えられたフィールド中の特定セルが関連付けられる特定レコードを位置特定するステップが、
前記1つ又は複数のパラメータと、並べ替えられた前記フィールドの前記特定セルが配置されるものの、関連付けられてはいない前記特定レコードの識別情報と、前記特定の並べ替えられたフィールドの識別情報と、を前記モジュラー演算において適用することにより、並べ替えられた前記フィールド中の前記特定セルが関連付けられる前記特定レコードを位置特定することをさらに含む、請求項14に記載の方法。
【請求項16】
並べ替える前記ステップに先立って、複数のプレースホルダーレコードを前記データベースに追加するステップと、
並べ替える前記ステップに先立って、ステータスフィールドを前記データベースの各レコードに追加するステップであり、所与のレコードの前記ステータスフィールドが、前記所与のレコードがプレースホルダーレコードであるかを示すコンテンツを含む、ステップと、
並べ替える前記ステップの後に、前記データベースの並べ戻しも再並べ替えもなく、並べ替えられたプレースホルダーレコードを位置特定し、並べ替えられた前記プレースホルダーレコードのフィールドのコンテンツを新たなレコードのフィールドのコンテンツで置き換え、プレースホルダーレコードではない旨を示すように前記新たなレコードの前記ステータスフィールドを更新することによって、前記新たなレコードを前記データベースに追加するステップと、
をさらに含む、請求項1に記載の方法。
【請求項17】
並べ替える前記ステップに先立って、ステータスフィールドを前記データベースの各レコードに追加するステップであり、所与のレコードの前記ステータスフィールドが、前記所与のレコードがプレースホルダーレコードであるかを示すコンテンツを含む、ステップと、
並べ替える前記ステップの後に、前記データベースの並べ戻しも再並べ替えもなく、前記データベースの既存の並べ替えられたレコードを位置特定し、前記既存の並べ替えられたレコードのフィールドのコンテンツをプレースホルダーコンテンツで置き換え、プレースホルダーレコードである旨を示すように前記既存のレコードの前記ステータスフィールドを更新することによって、前記既存の並べ替えられたレコードを消去するステップと、
をさらに含む、請求項1に記載の方法。
【請求項18】
並べ替える前記ステップに先立って、複数のプレースホルダーフィールドを前記データベースの各レコードに追加するステップと、
並べ替える前記ステップの後に、前記データベースの並べ戻しも再並べ替えもなく、新たなフィールドのコンテンツを前記データベースの各レコードのプレースホルダーフィールドに追加することによって、前記新たなフィールドを前記データベースに追加するステップと、
をさらに含む、請求項1に記載の方法。
【請求項19】
特定種類のファイルのコンテンツの単位間の関係を隠すことにより、前記ファイルのコンテンツを不正アクセスから保護する方法であって、
前記特定種類の前記ファイルの1つ又は複数のセグメントサイズを決定するステップと、
前記ファイルを前記1つ又は複数の決定したサイズのセグメントの線形構成として分割するステップと、
前記線形構成を一連の行及び列として処理するステップであり、前記セグメントが、前記行の前記列のセルを満たす、ステップと、
モジュラー演算を使用する並べ替えアルゴリズムを特定列又は特定行のセルに適用することによって、前記特定列又は前記特定行の前記セルを並べ替えるステップであり、前記並べ替えが、如何なる個々のセルのコンテンツの変更も伴わずに、前記セルの順序を変える、ステップと、
を含み、
並べ替えられた前記列又は並べ替えられた前記行が依然として、並べ替えられた順序にて元のセルをすべて含むことにより、並べ替えられた前記列又は並べ替えられた前記行の前記セルと前記ファイルのその他のセルとの間の関係を隠す、方法。
【請求項20】
モジュラー演算を使用する前記並べ替えアルゴリズムを前記ファイルの複数の特定列又は特定行それぞれのセルに適用することによって、前記複数の特定列又は特定行の前記セルを並べ替えるステップであり、前記並べ替えが、如何なる個々のセルのコンテンツの変更も伴わずに、各特定列又は特定行の前記セルの順序を変える、ステップをさらに含み、
各並べ替えられた列又は並べ替えられた行が依然として、並べ替えられた順序にて前記元のセルをすべて含むことにより、各並べ替えられた列又は並べ替えられた行のセルと前記ファイルの他のコンテンツとの間の関係を隠す、請求項19に記載の方法。
【請求項21】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
モジュラー演算を使用する全単射関数の適用によって、前記ファイルの前記特定列又は特定行の前記セルを並べ替えることをさらに含む、請求項19に記載の方法。
【請求項22】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
モジュラー加算及びモジュラー減算をいずれかの順序で使用する並べ替えアルゴリズムを適用することをさらに含む、請求項19に記載の方法。
【請求項23】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
複数のパラメータを伴うモジュラー演算を使用する並べ替えアルゴリズムを適用することをさらに含む、請求項19に記載の方法。
【請求項24】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
単一のパラメータを伴うモジュラー演算を使用する並べ替えアルゴリズムを適用することをさらに含む、請求項19に記載の方法。
【請求項25】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
射影場を介して並べ替えられた列又は並べ替えられた行のセルを満たすモジュラー演算を使用する並べ替えアルゴリズムを適用することをさらに含む、請求項19に記載の方法。
【請求項26】
前記1つ又は複数のセグメントサイズが、
異なる列のセルとなるセグメントの異なるサイズをさらに含む、請求項19に記載の方法。
【請求項27】
コンテンツの単位間の関係を隠すことにより、第1のコンピュータ機器から第2のコンピュータ機器に送信されるコンテンツを不正アクセスから保護する方法であって、
前記第1のコンピュータ機器により、第2のコンピュータ機器に送信されるデータレコードを取得するステップであり、前記データレコードが、複数のフィールドを含む、ステップと、
前記送信されるデータレコードと同じ種類の特定数の付加的なデータレコードを取得するステップであり、前記付加的なレコードが、前記送信されるレコードに過剰なデータを含む、ステップと、
複数のレコードを含むデータグリッドとして、前記送信されるレコード及び前記付加的なレコードを処理するステップであり、前記データグリッドの各レコードが、複数のフィールドを含む、ステップと、
モジュラー演算を使用する並べ替えアルゴリズムを前記データグリッドの少なくとも1つのフィールドのセルに適用することによって、前記少なくとも1つのフィールドの前記セルを並べ替えるステップであり、前記並べ替えが、如何なる個々のセルのコンテンツの変更も伴わずに、前記セルの順序を変える、ステップと、
並べ替えられた前記データグリッドを前記第2のコンピュータ機器に送信するステップと、
を含み、
前記少なくとも1つの並べ替えられたフィールドが依然として、並べ替えられた順序にて元のセルをすべて含むことにより、並べ替えられた前記フィールドの前記セルと前記データグリッドの他のセルとの間の関係を隠す、方法。
【請求項28】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
モジュラー演算を使用する全単射関数の適用によって、前記データグリッドの前記特定フィールドの前記セルを並べ替えることをさらに含む、請求項27に記載の方法。
【請求項29】
モジュラー演算を使用する並べ替えアルゴリズムを適用するステップが、
モジュラー加算及びモジュラー減算をいずれかの順序で使用する並べ替えアルゴリズムを適用することをさらに含む、請求項27に記載の方法。
【請求項30】
第2のコンピュータ機器に送信される前記データレコードが、
クレジットカード取引を認証するために送信されるクレジットカード番号及び関連するデータをさらに含む、請求項27に記載の方法。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
[001]本願は、米国特許法第119条(e)の下、2021年2月24日に出願された、「Protection of Databases,Data Transmissions and Files without Encryption」と題する米国仮特許出願第63/153,352号の利益を主張するものであり、そのすべての開示内容を参照により本明細書に援用する。
【技術分野】
【0002】
[002]本開示は、一般的にはコンピュータデータセキュリティに関し、より詳細には、コンテンツの暗号化もデータベース中の個々のデータの変更も伴うことなく、モジュラー演算を使用して列又は行内のフィールドを並べ替えることにより、データベース及び他種のコンピュータファイルを保護することに関する。
【背景】
【0003】
[003]ハッカー等の悪意者によるアクセスからコンピュータデータを保護することは、最も重要なことである。世界のデータは、ますます多くがオンライン(例えば、企業、政府、大学、及び他の組織のデータベースのほか、様々なクラウドベースのストレージサービス上の企業及び個人のアカウント)に格納されるようになっている。データの暗号化並びに様々な有効度の他の従来のセキュリティプロトコル(ファイアウォール及び二重認証等)の使用にも関わらず、オンラインに格納されたデータに対するハッキングが成功となってしまうことが多い。プライベート情報並びに高機密性であることが多い政府、企業、及び個人の情報は、諜報、ランサムウェア、恐喝、金融詐欺、及び他の犯罪行為等、不正目的で不法にアクセス、盗難、販売、及び/又は使用されることが多い。
【0004】
[004]オンラインに格納されたデータは通常、暗号化により保護される。暗号化は、情報を符号化するプロセスである。暗号化では、平文と称する元のデータを暗号文と称する理解不可能な形態に変換する。暗号化は通常、疑似ランダム暗号鍵を使用して平文を暗号文に暗号化することに基づく。暗号文は、権限者に与えられた復号鍵の使用により復号化して平文に戻すことができる。暗号化には、多くの異なる技術が存在する。現代の暗号化では通常、公開鍵(非対称)又は対称鍵方式を利用する。
【0005】
[005]ハッカーは、復号鍵を有することなく、暗号文を復号化するために様々な技術を使用する。これらの技術には通常、相当な演算能力を必要とするが、強力な演算リソースは容易に入手可能であり、現代の商用グレードの暗号化の解読に必要なレベルであっても、法外に高価なものではない。ハッカー及びコンピュータセキュリティの専門家は常に、「いたちごっこ」を繰り広げている。ハッカーは、セキュリティ専門家の一歩先を行こうとし、セキュリティ専門家は、ハッカーに追い付くため、又は、願わくはハッカーの先を行くため、「技術の向上」を図っている。
【0006】
[006]暗号化の特性として、暗号文の復号化に成功すると、その成果が直ちに明らかとなる点がある。暗号文が支離滅裂である一方、平文は、はっきりと読むことができる。ハッカーが暗号文の復号化を試みる際には、いつ成功したかが直ちにはっきりする。
【0007】
[007]これらの問題に対処することが望ましいと考えられる。
【概要】
【0008】
[008]データベース又は他種のファイル中の個人情報又は財務情報等の機密コンテンツは、当該機密コンテンツと他の関連データとの間の関係を隠すことによって、不正アクセスから保護される。例えば、データベースの場合は、保護される情報を含むフィールドとそれぞれの関連するデータベースレコードとの間の関係が隠される。そのために、データベースの1つ又は複数の特定フィールドのセルに対して、モジュラー演算を使用する並べ替えアルゴリズム(permutation algorithm、パーミュテーション アルゴリズム)が適用される。この並べ替えは、如何なる個々のセルのコンテンツの変更も伴わずに、(1つ又は複数の)特定フィールドのセルの順序を変える。並べ替えフィールドは依然として、並べ替え順序にて、元のセルをすべて含むため、(1つ又は複数の)並べ替えフィールドのセルと関連するレコードのその他の情報との間の関係を隠す。通常、データベースは、フィールドを列に、レコードを行に格納しており、この場合、データベースの特定フィールドのセルの並べ替えは、当該フィールドを含む列のセルに対する並べ替えアルゴリズムの適用の形態である。データベースがフィールドを行に、レコードを列に格納する一実施態様において、フィールドの並べ替えは、対応する行の並べ替えの形態である。
【0009】
[009]並べ替えアルゴリズムは、例えばモジュラー加算及びモジュラー減算をいずれかの順序で使用することによりモジュラー演算を使用する全単射関数の形態であってもよい。異なる実施態様においては、単一のパラメータ又は異なる数の複数のパラメータを使用する別の並べ替えアルゴリズムが適用されるようになっていてもよい。使用するパラメータが増えるとセキュリティのレベルが高くなるが、一般的にはその犠牲として、より多くの演算リソースを利用することになる。異なる実施態様では、異なるシナリオにおいて、セキュリティと演算リソース利用との間の異なるトレードオフを必要に応じて適用し得る。
【0010】
[010]並べ替えアルゴリズムを適用するステップにおいて用いられる1つ又は複数のパラメータをモジュラー演算において適用することにより、特定セルが並べ替えフィールドにおいて位置特定されるようになっていてもよい。位置特定対象の特定セルは、並べ替えの結果として、特定レコードと関連付けられるものの、特定レコード内には配置されていないことが了解されるものとする。セルを位置特定するため、1つ又は複数のパラメータと、並べ替えフィールドの特定セルが関連付けられる特定レコードの識別情報と、特定の並べ替えフィールドの識別情報と、がモジュラー演算において適用され、これにより、並べ替えフィールドにおいて特定セルが位置特定される。
【0011】
[011]逆モジュラー演算によって、並べ替えフィールド中の特定セルが関連付けられるものの、特定セルが配置されてはいない特定レコードが取得されるようになっていてもよい。より具体的には、並べ替えアルゴリズムを適用するステップにおいて用いられる1つ又は複数のパラメータを介して、並べ替えフィールドの特定セルが配置される特定レコードの識別情報と、特定の並べ替えフィールドの識別情報と、がモジュラー演算において適用され、これにより、並べ替えフィールド中の特定セルが関連付けられる特定レコードが位置特定される。
【0012】
[012]いくつかの実施態様においては、データベース以外の特定種類のファイルのコンテンツの単位間の関係を隠すことにより、ファイル中のコンテンツが不正アクセスから保護される。そのために、特定種類のファイルの1つ又は複数のセグメントサイズが決定されるようになっていてもよい。そして、ファイルは、(1つ又は複数の)決定サイズのセグメントの線形構成として分割される。線形構成は、一連の行及び列として処理されるようになっていてもよく、セグメントは、行の列のセルを満たす。異なる列のセルとなる異なるセグメントは、異なるサイズを有していてもよい。特定列又は特定行(或いは、複数の列又は行)のセルは、上述のモジュラー演算を使用する並べ替えアルゴリズムを特定列又は特定行のセルに適用することにより並べ替えられるようになっていてもよく、この並べ替えは、如何なる個々のセルのコンテンツの変更も伴わずに、セルの順序を変える。(1つ若しくは複数の)並べ替え列又は(1つ若しくは複数の)並べ替え行は依然として、並べ替え順序にて元のセルをすべて含むため、(1つ若しくは複数の)並べ替え列又は(1つ若しくは複数の)並べ替え行のセルとファイルのその他のセルとの間の関係を隠す。
【0013】
[013]本明細書に記載の並べ替え機能によっても、保護状態のデータベース(又は、他種のファイル)は、非保護(「クリア」)データベース中の如何なるセルのコンテンツをも変更していない。このため、あるセルが特定の顧客による商品の購入数、誰かの誕生日、又は医師の予後記述を記録している場合、これらの値はそれぞれ、保護中も変化しない。誕生日がその背景(誰の誕生日であるか)と結び付けられない限り、それ自体では、悪人の手に渡った場合でも損害を与える可能性のあるデータにはなり得ない。保護は、このセルのコンテンツの位置を変更することにより行われるため、名前又は他の背景情報とはもはや結び付けられ得ない。誕生日を「診断」列に移動させても何も得られないため、任意所与のセルのコンテンツの位置は、列内で変更される。保護が一旦なされると、「誕生日」列には誕生日だけ、「施術者」列には施術者名だけ、「クレジット限度額」列にはクレジット限度額だけしか含まれなくなる。このように列内の位置を変更することで、[a]行数が維持され、[b](大抵は元の位置と異なる)特定の位置がセルに割り当てられ、[c]各移動先位置が一意となる(例えば、{行4、列17}のコンテンツ及び{行27、列17}のコンテンツをいずれも{行62、列17}に配置することはできない)。これらの特徴は、列内のセルデータの移動が並べ替え(順序集合の順序変え)である場合に満たされる。実際、[a]、[b]、及び[c]を満たす列内のセルのコンテンツの移動方法はいずれも、並べ替えである。
【0014】
[014]列内のセルのコンテンツの体系的な並べ替えにはモジュラー演算を必要とするが、これは、セルのコンテンツが非保護データベースの行集合の外側の行に移動しないように演算が構成されることを意味する。行数が10,000の場合の並べ替えでは、如何なるセルのコンテンツも、少なくとも0の番号が付された行(最上行)、最大でも9,999の番号が付された行(最下行)へと移動する必要がある。セルのコンテンツの下方又は上方移動の範囲がランダムである場合は、上記[c]が満たされるようにランダム化が制御される。
【0015】
[015]この手法では、保護状態のデータベースから直接、クエリ(例えば、「X医師の患者のうち、Y医師も受診したことがあるのは誰か?」又は「郵便番号90084の顧客からの先週の冷凍食品総売上は?」)への応答に必要なデータを取得可能となる。これは、保護されたデータベースにおいて、{行27、列17}の郵便番号が{行27、列43}の冷凍食品売上に関係するのではなく、例えば{行196、列43}の冷凍食品売上に関係する、という事実に基づく(ここで、196は、データベースの保護に用いられるモジュラー演算によって27から求められたものである)。
【0016】
[016]ただし、ファイルの保護が望ましい理由として、それが組織による高頻度且つセキュアな照会が求められるデータベースではなく、むしろ、将来の考え得る使用のためにデジタル保存され、高機密性の極秘情報又は専有情報を含むある種のファイルである点を仮定する。極秘契約書、所有者がある日付の時点で所有していたことを証明し得る画像の日付ファイル、通話の記録等、デジタル保管を要する一方でセキュアに保護される必要のある任意の種類のファイルが考えられる。本明細書に記載の並べ替え機能は、任意の種類のファイルの保護に利用可能であって、保護状態のファイルを暗号化よりもセキュアなものとする。
【0017】
[017]画像ファイル、音声ファイル、テキストファイル等、如何なる種類のファイルであっても、本明細書に記載の通り、保護可能である。コンピュータ機器には、ファイルが場合により非常に長い単一行の16進数の文字として見える。当該行をセグメント(おそらく各4バイト(又は、別の選定長さ))に分割した後、これらのセグメントを矩形(おそらく各2,400列にわたる1,000行)に変換可能であって、{行R、列C}の各「セル」は、例えば4バイトから成る。ここで、モジュラー演算を使って列を並べ替えると、暗号化による保護の場合よりも保護解除がはるかに困難な(又は、例えば通話記録であることを認識することさえ困難な)保護状態のファイルが生成される。
【0018】
[018]本概要及び以下の詳細な説明に記載の特徴及び利点は、すべてを網羅するものではなく、特に、本明細書の図面、明細書、及び特許請求の範囲に照らして、関連技術の当業者には、多くの付加的な特徴及び利点が明らかとなり得る。さらに、本明細書に使用の表現は、主として読みやすさ及び教示目的で選択されたものであって、本発明に係る主題の規定又は制限のために選択されたものではない場合があり、このような本発明に係る主題の決定には、特許請求の範囲に依拠する必要があることに留意されたい。
【図面の簡単な説明】
【0019】
【
図1】[019]
図1は、いくつかの実施態様に係る、並べ替えベースのデータ保護システムが実装され得る例示的なネットワークアーキテクチャのブロック図である。
【0020】
【
図2】[020]
図2は、いくつかの実施態様に係る、データベース保護の背景における並べ替えベースのデータ保護システムの動作のブロック図である。
【0021】
【
図3】[021]
図3は、いくつかの実施態様に係る、非データベースフォーマットのファイル保護の背景における並べ替えベースのデータ保護システムの動作のステップを示したフローチャートである。
【0022】
【
図4】[022]
図4は、いくつかの実施態様に係る、並べ替えベースのデータ保護システムの実装に適したコンピュータシステムのブロック図である。
【詳細な説明】
【0023】
[023]上記図面は、種々実施態様を示すが、例示を目的としているに過ぎない。当業者であれば、以下の議論により、本明細書に記載の原理から逸脱することなく、本明細書に示す構造及び方法の他の実施態様を採用可能であることが容易に認識されよう。
【0024】
[024]
図1は、並べ替えベースのデータ保護システム101が実装され得る例示的なネットワークアーキテクチャ100を示した高レベルブロック図である。以下により詳しく説明する通り、並べ替えベースのデータ保護システム101は、如何なる個々のデータの変更も伴わずにデータベース113(及び、他のフォーマットのコンピュータファイル)を保護するとともに、如何なる要求データの変更も伴わずに、無関係のデータを追加することによってデータ伝送を保護するのに利用され得る。データベース113の個々のデータは通常、それ自体では意味をなさず、代わりに、結び付くその他のデータとの関連においてのみ有用である。このため、ハッカーがデータベース113からデータの個々のセルを取得しても、損害を与えることはできない。例えば、背景情報を一切伴わない個々のクレジットカード番号を取得しても、ハッカーには役に立たない。保護が望ましいのは、データポイント間の結び付きであって、当該特定のクレジットカード番号と関連付けられた人物の名前、関連する3桁のコード(CVV)、当該人物の郵便番号、請求先住所等である。別の例として、特定の患者(例えば、データベース113の単一のセル)又は患者群(例えば、1つの列全体)に対して実行された所与の医学的検査の測定結果は、生の測定データと他のデータとの結び付き方(例えば、検査の実施タイミング、施術者、それらの結果と同じ患者の最新の測定結果との比較の様子等)を把握しなければ役に立たない。
【0025】
[025]データベース113は通常、データの種類(例えば、名前、クレジットカード番号、住所等)が列(データベースのフィールドと称する場合もある)に格納され、所与のエンティティに結び付けられたデータ(例えば、特定の人物の名前、クレジットカード番号、住所等)が行(レコードと称する場合もある)に格納されるテーブルにデータを編成することにより、データに構造を付与する。言い換えると、レコードは、データベース中の所与のエントリのデータのフィールドをすべて含む。このため、所与のクレジットカード番号が所与の名前、CVV、及び郵便番号と関連付けられているという事実は、当該所与の人物の全レコードへのアクセスによってのみ把握される。クレジットカード列の個々のセル(或いは、列全体)へのアクセスによっても、クレジットカードと人物との関連付け等をハッカーが把握できるわけではない。従来、レコードを行として、フィールドを列として格納しているが、これは任意であって、レコードを列に、フィールドを行に格納することも可能である。さらに、共通のフィールドによって、複数のテーブルを互いに関連付けることも可能である。例えば、患者名、住所、及びクレジットカード情報を含むテーブルと、病歴データを含むテーブルと、を両テーブルに共通の「患者ID」フィールドによって関連付けることができる。
【0026】
[026]並べ替えベースのデータ保護システム101は、データベース113又はファイルの1つ又は複数のフィールド(例えば、列)のデータを並べ替え、所与のレコードのデータの異なるフィールド間の関係を隠すことによって、レコード内のフィールド間の関係を保護することによりハッカーによる損傷を防止する。これにより、例えば、測定結果が患者名から切り離され、供給業者名が供給業者の銀行口座情報から切り離される。
【0027】
[027]並べ替えは、集合の要素の順序変えである。データベースの列の個々のセルを集合とすると、当該集合の考え得る順列(permutation、パーミュテーション)は、列のコンテンツを順序付け可能なすべての場合である。説明を目的として、正の整数1、2、及び3を含む3行だけの列を(自明な)例として用いると、集合は{1,2,3}であり、考え得る順列は(1,2,3)、(1,3,2)、(2,1,3)、(2,3,1)、(3,1,2)、(3,2,1)である。n個の要素から成る集合の順列の数は、nの階乗(n!)である。このため、集合の考え得る順列の数は、集合のサイズが大きくなるにつれて階乗的に増加する。3つの要素から成る例示的な集合は、3!(6)の順列を有する。ただし、要素を1つ追加するだけで順列の数は4!(24)に増え、2つの要素の追加で5!(120)に増え、以下同様である。
【0028】
[028]なお、データベースのセルのデータを並べ替えても、データは変化せず、データの順序が変わるだけである。したがって、並べ替えベースのデータ保護システム101は、データベース113のセルのデータを変える代わりに、列内(又は、フィールドが列ベースでレコードが行に格納されるより典型的な構成ではなく、フィールドが行ベースのデータベースの場合は、行内)でデータを並べ替える。並べ替えベースのデータ保護システム101により保護(secure,セキュア化)されたデータベース113は依然として、データベース113のように見える。言い換えると、暗号化されていない列データが依然として列に現れ、暗号化されていない行データが依然として行に現れる。さらに、並べ戻しの試行、すなわち、おそらくはランダムに選定された列の順列について、データを元の非保護順序に戻すことで結び付きを復元しようとしても、依然として有効なデータベース113に見える結果が生成される。したがって、並べ替えベースのデータ保護システム101により並べ替えられたデータベース113の保護解除に成功しても、成功及び失敗の両結果が有効なデータベース113に見えるため、失敗とは識別不可能である。これに対して、暗号文を復号化しようとする試みに成功した場合、これは明らかである。結果としての平文を人間が読める一方、暗号文は読めないためである。
【0029】
[029]このように、並べ替えベースのデータ保護システム101は、「見た目のまま隠す(hiding it in plain sight)」によって、データポイント(例えば、データベース113又は構成データテーブル中のセル)のコンテンツだけを残し、並べ替えによってそれらの間の結び付きを除去することによりデータを保護する。これは、データの暗号化よりも大幅に安全であるのみならず、原理上は、演算効率がより高くなる。単一の並べ替え演算の実行は、商用グレードの暗号化の実行よりも演算量が少なくて済むためである。ただし、並べ替えデータベース113の保護解除の成功を失敗から識別することはできないため、並べ替えベースのデータ保護システム101により保護されたデータは、ハッカーが利用できる演算能力が大幅に増加しても、事実上の影響を受けない。上述の通り、n行から成る列について考え得る並べ替えを試行するには、n!の順列を実行する必要がある。わずか25行のデータベース(現実世界での通常の展開よりも桁違いに小さい)であれば、単一の列に対する1025通りを超える並べ替えのうち、いずれか1つが唯一の正しい並べ替えになる可能性もある(比較として、1兆は1012である)。これはすでに、アマゾンAWSが使用する最長の暗号鍵により保護された1000万行のデータベースよりもハッカーのタスクを困難にしている。このレベルのセキュリティは、暗号化ベースの方式と比較して、相対的な永続性を暗示する。スキル及び忍耐以上に、ハッカーが利用し得る演算能力が高まっていることから、現在は多くの企業がハッカーの一歩先を行くため、莫大な資金を費やして「技術の向上」を繰り返している。本明細書に記載の通り、並べ替えベースのデータ保護システム101によりデータが保護されていれば、このような繰り返しの高価な努力は不要となる。
【0030】
[030]
図1を参照して、図示のネットワークアーキテクチャ100は、複数のクライアント103A、103B、及び103N(「クライアント103」と総称する場合もある)のほか、複数のサーバ105A及び105N(「サーバ105」と総称する場合もある)を備える。
図1においては、並べ替えベースのデータ保護システム101がサーバ105Aに存在し、データベース管理システム111及び対応するデータベース113がサーバ105Nに存在し、クライアントエージェント109が各クライアント103A~103N上で動作するものとして示されている。これは一例に過ぎないことが了解されるものとする。種々実施態様においては、並べ替えベースのデータ保護システム101の様々な機能をサーバ105、クライアント103上でインスタンス化することも可能であるし、複数のサーバ105及び/又はクライアント103間に分散させることも可能である。また、データベース管理システム111を単一のサーバ105B上に存在するものとして示しているが、データベース管理システム111及び/又はデータベース113は、複数のコンピュータ機器及び/又は記憶装置間に分散させ得ることが了解されるものとする。
図3と併せて以下により詳しく論じる通り、いくつかの実施態様においては、データベース管理システム111が利用されず、その代替(又は、追加)として、並べ替えベースのデータ保護システム101がデータベース管理システム111以外のファイルフォーマットのデータと連携して動作する。
【0031】
[031]クライアント103は、データベース管理システム111のユーザ(又は、他の形態/種類のデータにアクセスするユーザ)が操作するコンピュータ機器の形態も可能である。クライアントエージェント109は、並べ替えベースのデータ保護システム101及び/又はデータベースシステム101の利用及び/又はこれらとの相互作用のためのエンドポイントレベルの機能を含むアプリケーションの形態であってもよい。いくつかの実施態様においては、クライアントエージェント109が利用されず、並べ替えベースのデータ保護システム101及び/又はデータベースシステム101の機能は、他の方法(例えば、ブラウザ経由(図示せず))でアクセスされる。
【0032】
[032]クライアント103及びサーバ105は、
図4に示すとともに後述するようなコンピュータシステム610を用いて実現可能である。クライアント103及びサーバ105は、例えば
図4と併せて後述するようなネットワークインターフェース248を介して、ネットワーク107に通信結合されている。クライアント103は、例えばウェブブラウザ又はクライアントエージェント109等の他のクライアントソフトウェアを用いて、サーバ105上のアプリケーション及び/又はデータにアクセスすることができる。クライアント103は、ラップトップ、デスクトップ、及び/又はネットワーク107に接続してアプリケーションを実行可能な携帯型コンピュータシステムを備えるモバイルコンピュータ機器を含む他種のコンピュータ/コンピュータ機器の形態であってもよい(例えば、スマートフォン、タブレットコンピュータ、ウェアラブルコンピュータ機器等)。サーバ105は、例えばデータセンタに配置されたラックマウント型コンピュータ機器等の形態が可能である。
【0033】
[033]
図1は、一例として3つのクライアント103及び2つのサーバ105を示しているが、実際には、展開するクライアント103及び/又はサーバ105の数を増やす(又は、減らす)ことも可能である。一実施態様において、ネットワーク107は、インターネットの形態である。他の実施態様においては、他のネットワーク107又はネットワークベースの環境を使用可能である。
【0034】
[034]
図2は、いくつかの実施態様に係る、サーバ105上で動作するとともに複数のクライアントエージェント109と通信する並べ替えベースのデータ保護システム101の動作を示している。上述の通り、並べ替えベースのデータ保護システム101の機能は、サーバ105又は他の特定のコンピュータ610上に存在することも可能であるし、或いは、複数のコンピュータシステム610間に分散させることも可能であり、並べ替えベースのデータ保護システム101の機能がネットワーク107上のクラウドベースのサービスとして提供されるクラウドベースのコンピュータ環境が挙げられる。並べ替えベースのデータ保護システム101は、
図2においては単一のエンティティとして示されているが、並べ替えベースのデータ保護システム101は、必要により単一のモジュール又は複数のモジュールとしてインスタンス化可能な機能の集合を表すことが了解されるものとする。いくつかの実施態様においては、並べ替えベースのデータ保護システム101の異なるモジュールが必要に応じて、異なるコンピュータ機器610上に存在し得る。各クライアントエージェント109は、Windows(登録商標)、OS X、Linux(登録商標)等のオペレーティングシステムの下で動作するように構成されたアプリケーション又は所与のモバイルオペレーティングシステム(例えば、Android[登録商標]、iOS、Windows10等)用のアプリとしてインスタンス化可能であり、異なるエンドユーザが利用する異なる種類の動作環境に対しては、異なるクライアントエージェント109が明確に実装される。
【0035】
[035]並べ替えベースのデータ保護システム101の構成要素及びモジュールは、コンピュータシステム610のプロセッサ614がモジュールを処理した場合にコンピュータシステム610が関連する機能を実行するように、任意のコンピュータシステム610のシステムメモリ617(例えば、RAM、ROM、フラッシュメモリ)内で(例えば、オブジェクトコード又は実行可能イメージとして)インスタンス化可能であることが了解されるものとする。本明細書における使用の場合、用語「コンピュータシステム(computer system)」、「コンピュータ(computer)」、「クライアント(client)」、「クライアントコンピュータ(client computer)」、「サーバ(server)」、「サーバコンピュータ(server computer)」、及び「コンピュータ機器(computing device)」は、上述の機能を実行するように構成及び/又はプログラムされた1つ又は複数のコンピュータを意味する。また、並べ替えベースのデータ保護システム101の機能を実現するプログラムコードは、コンピュータ可読記憶媒体に格納可能である。この背景においては、磁気、光学、フラッシュ、及び/若しくは半導体記憶媒体、又はその他任意の種類の媒体等、任意の形態の有形コンピュータ可読記憶媒体を使用可能である。本明細書における使用の場合、用語「コンピュータ可読記憶媒体(computer-readable storage medium)」は、基礎となる物理的媒体とは別の電気信号を意味することはない。
【0036】
[036]
図2に示すように、一実施態様において、この「見た目のまま隠す」は、データベース113の所与の列内のセルの並べ替えによって実現される。
図3と併せて以下により詳しく説明する通り、他の実施態様においては、他のフォーマットのファイルの背景において、類似の機能が利用される。
図2のデータベース113のインスタンス化において、並べ替え列のセル中のデータは依然として、並べ替え前と同じ種類であり、同じ種類のオブジェクト(例えば、最初の訪問日、社会保障番号等)を表すが、順序は異なっていて、もはやその他の列(すなわち、非並べ替え列(本明細書においては、「クリアである」と称する))とは一致しない。したがって、所与の列が並べ替えられると、当該列のセルはもはや、当該所与の行においてその他の列とは結び付けられず、これは、所与の患者、クライアント、顧客、供給業者、カード保有者、メンバー、従業員等、すべてデータベース113の特定のエントリに関する異なるデータポイントを表す。例えば、病院の患者に関するレコードがデータベース113の行に格納され、患者の社会保障番号が格納されているデータベース113の列が並べ替えられた場合、所与の患者の社会保障番号はもはや、当該所与の患者に関連するデータベース113の所与の行に配置されず、データベース113へのアクセスを取得した悪意者による識別は不可能となる。
【0037】
[037]並べ替えベースのデータ保護システム101は、複数の列を並べ替えることにより、データベース113内の単位間の関係をさらに隠すようにしてもよいことが了解されるものとする。上記説明の通り、これらの並べ替え列は依然として、特定の患者との関係が識別できないことから、それ自体では如何なる専有情報も高機密の極秘情報も含まない点を除いて、非保護データベース113CLEARと同じ種類のコンテンツ(例えば、患者の社会保障番号又は特定の医学的検査結果)を含む。
【0038】
[038]列のセルを並べ替えるため、並べ替えベースのデータ保護システム101は、モジュラー演算を使用する並べ替えアルゴリズムを適用する。以下により詳しく説明する通り、異なる実施態様において、並べ替えベースのデータ保護システム101は、保護される(1つ又は複数の)列に対して、パラメータの数及び/又は順序が異なるモジュラー演算ベースの異なる並べ替えアルゴリズムを適用するようにしてもよい。より具体的に、並べ替えベースのデータ保護システム101は、例えばモジュラー減算及びモジュラー加算をいずれかの順序で含むモジュラー演算を使用する全単射関数を適用するようにしてもよい。全単射関数は、2つの集合の要素間の数学的関数であり、第1の集合の各要素が第2の集合の厳密に1つの要素とペアにされ、その逆もまた同様であって、ペアになっていない要素は存在しない。並べ替えベースのデータ保護システム101の場合は、ある集合からそれ自体への全単射関数が適用され、これが並べ替えである。この背景において、集合からそれ自体への全単射関数が意味するのは、クリアの列の要素の集合から並べ替え列の要素の同じ集合への並べ替えである。モジュラー演算は、は、モジュラスと称する所与の値に達した時点で、剰余を残して数値が「最低値に戻る」整数演算の体系である。その典型的な例が12時間時計であって、12がモジュラスである。時間が12を超えると最低値に戻って、剰余が新たな時間となる。例えば、12時間時計において、9+5=2である。
【0039】
[039]上述の通り、列のセルの並べ替えに適用される数学的全単射関数で使用する特定のパラメータ数は、可変となる設計上の選択である。使用するパラメータが増えるとセキュリティのレベルが高くなる一方、必要な処理リソースも多くなる。異なるシナリオにおいて、人物が異なれば、これらの因子間でも必要に応じて異なるバランスを選定することになる。
【0040】
[040]データベース113(又は、他の形態のデータテーブル)の1つ又は複数の列のセルの並べ替えでは、並べ替えられるクリアのデータベース113CLEAR及びクリアの列を変換することにより、セルが並べ替えられた1つ又は複数の列を有する保護データベース113PROTECTEDを得ることが了解されるものとする。クリアのデータベース113CLEARのコンテンツは、データベース113CLEARにアクセスする如何なる人物によっても容易に理解可能であるのに対して、保護データベース113PROTECTEDの並べ替え列のコンテンツは、本明細書に記載の通り、並べ替え列のセルと関連するデータベースレコードとの間の関係が隠されるため、データベース113PROTECTEDにアクセスし得る人物には意味がない。このように、暗号化を用いず、並べ替えベースのデータ保護システム101によってデータベースをセキュアなコンテンツへと変換することは、コンピュータセキュリティの分野における大きな改善である。
【0041】
[041]ここで一例として、極秘ファイルの所有者がセキュリティを重視するあまり、性能コストが問題にならないようなインスタンス化について論じる。これは、理論的なシナリオであって、実際の例ではセキュリティと処理コストとの間のトレードオフになる可能性が高いことが了解されるものとする。いずれにせよ、この仮説例では、R行C列から成るデータベース113の所望の列の並べ替えのため、以下のようなパラメータを多用する手順が選定され得る。クリアのデータベース113は、R行C列の矩形アレイU(非保護アレイ)と考えられる。本例においては、列0が並べ替えられないものと仮定する(例えば、列0の並べ戻しデータそれ自体にセキュリティのリスクはない)。その他の列1~C-1が並べ替えられることになる。このため、保護アレイPは、以下のステップにより生成される。それぞれR+1行C-1列の3つの2次元アレイS、FC、及びFRを生成し、FC及びFRを最初はすべて0で満たし、Sの各列を整数0、1、2、・・・、Rで満たしながら行を下っていく(例えば、行3がすべて3から成るようにする)。ここで、列c=1を保護する。Sから左端の列を除去して1次元アレイTcとするが、これは{0,1,2,・・・,R}から成る。まず、r=0のステップcrでは、列c=1において、セルr=0のコンテンツを移動させる場所を決定する。この際、集合Z={0,1,・・・,R-r}から乱数Xrcを取り出す。TcからXrcを除去し、アレイの要素を1つ減らす(例えば、Xrc=4の場合は、Tcが{0,1,2,3,5,6,・・・,R}となる)。ここで、FC0cを集合Zの要素Xrc
thに等しく設定し、FRのXrc=0として、UrcのコンテンツをPの要素Xrcに入れる。このように列を下っていくと、Uの各セルは、Pの同じ列の(当該列の依然として空のセルから)ランダムに選定されたセルに入る。さらに右側のPの各列についても、新たなランダム化によって同様に決定される。
【0042】
[042]本明細書に記載の例示的なインスタンス化におけるパラメータ選択においてはランダム化を使用しているが、使用するランダム性は、偶発的な選定に過ぎないことが了解されるものとする。例えば、パラメータがランダムではなく、意図的に選定される仮説例において、選定されるパラメータは、例えば5又は0で終わる数字を一切又はほとんど使用しない可能性がある(例えば、それらを避けたいというある種の選好による)。この場合、5又は0で終わるパラメータの希少性が何らかの形でハッカーにより推測されるならば、階乗の問題は少し小さくなる。100万行の場合、0及び5が一切使用されなければ、順列の数は565万桁から200万桁まで減少することになり、使用されるものの1~4及び6~9よりは不釣り合いなほどに少ないのであれば、520万桁まで減少することになる。言い換えると、ランダムなパラメータ選択がなくても、保護のレベルは依然として非常に高いものとなる。
【0043】
[043]並べ替えベースのデータ保護システム101が提供する2つのサブルーチンの使用により、保護データベース113PROTECTEDへの照会によって、特定の所望のコンテンツを取得するようにしてもよい。本明細書においては、これら2つのサブルーチンをFindCell201及びFindRecord203と称する。上述の並べ替えの例において、アレイFCは、FindCell201のR*(C-1)個のパラメータを提供し、同じ次元のアレイFRは、FindRecord203のR*(C-1)個のパラメータを提供する。FindCell201及びFindRecord203の演算については、以下により詳しく論じる。
【0044】
[044]以下、並べ替えベースのデータ保護システム101による異なる例示的アルゴリズムの適用について説明するが、これは他の理論的極限に近く、性能コストが割高であるため、1パラメータアルゴリズムの適用によって性能コストを最小に抑え、提供されるセキュリティの堅牢性の低下を犠牲にする。並べ替えベースのデータ保護システム101が1パラメータアルゴリズムを適用する一実施態様の具体例では、同じくN行で、例えば11とN-12との間のランダムな整数Aを取り出す。ここで、モジュラー演算を使って、行r列cにあったデータポイントを列cのままで行r’=mod(r+c*A,N)に置く。行r列cのデータポイントがクエリを満たし、行0の対応するデータポイントが必要な場合、当該データポイントは、列0の行
r=mоd(r+N-c*A,N)
にある(先行関数の逆関数)。なお、本明細書において、*は、乗算を示す。
【0045】
[045]この例示的なアルゴリズムの適用において、保護データテーブルは、数学用語である射影場の集合によって満たされる。定義によれば、所与の集合Sの分割である2つの集合A及びBは、Aの任意の要素がBの要素をすべて横切り、Bの任意の要素がAの要素をすべて横切る場合に、射影場を構成する。このため、行及び列が射影場である。ここで、Aは、左端の列のセル及び式mod(r+c*A,N)を適用して得られる他の各列のセルによりそれぞれ規定される要素から成り、Bは、データテーブルの列の集合から成り得る。この背景においては、必要に応じて他のパラメータ数を伴う並べ替えアルゴリズムの他のインスタンス化において、射影場を使用可能である。
【0046】
[046]ここで、2パラメータアルゴリズムを適用する並べ替えベースのデータ保護システム101の例をパラメータ(x,y)にて提供する。ここでは、以下のステップを実行することにより、非保護データベース113の任意の列cを保護する。cが奇数の場合は、行rのデータポイントを行
r=mоd(r+x,N)
に置き、cが偶数の場合は、行rのデータポイントを行
【数1】
に置く。逆関数は、前の例と同じように、モジュラー減算によって得られる。
【0047】
[047]他の例においては、必要に応じて他のパラメータ数を使用可能である。C列の4パラメータの例では、[0.25C,0.6C]からランダムな整数Dを取り出す。Dを取り出したら、[D+1,0.9C]からランダムな整数
D
を取り出す。Dの左側の列には、1パラメータの例と同様に、ランダムな整数Aを使用し、列D及びその右側で、
D
の左側の列には、同じ式で別個にランダム化したBを使用する。列
D
及びその右側の列には、同じ式で別個にランダム化したGを使用する。
【0048】
[048]C列の3パラメータの例では、[0.3C,0.8C]からランダムな整数Dを取り出す。2パラメータの例と同様に、Dの左側の列について、cが奇数の場合は、行rのデータポイントを行
r=mоd(r+x,N)
に置き、cが偶数の場合は、行rのデータポイントを行
【数2】
に置く。列D及びその右側の列については、同じ式を使用するが、cが奇数の場合はyを、cが偶数の場合はxを使用する。
【0049】
[049]上述の通り、データベース113の特定列の並べ替えに用いられる全単射関数で使用する特定のパラメータ数は、可変となる設計上の選択であって、パラメータが増えるとセキュリティも高くなるが、より多くの処理能力を使用することになる。さらに、適用する特定のモジュラー演算及びその適用順序は、実施態様ごとに異なり得ることが了解されるものとする。また、データベース113でどの列をいくつ並べ替えるかは可変であり、関連するレコードから切り離すべき機密情報を含むデータベース113のフィールドに基づく。
【0050】
[050]このため、上述の通り、並べ替えは、一群の数学的関数のうちの1つを実装したアルゴリズムの適用によって制御される。これは、2つの意味でランダムな並べ替えと表現するのが適当と考えられ得る。すなわち、(a)保護データベース113を取得したものの、アルゴリズムも関数のパラメータも取得できなかった悪人は、ランダムと識別できないデータテーブルの全列又はほとんどの列の並べ替えを観察する。(b)実際には、(セルの切り離しに使用される特定の関数の)パラメータ自体をランダムに選択させることが(必要ではないが)可能であり、結果としてランダムな順列が得られる。データベース113PERMUTEDが並べ替えられると、後述の通り、そこから所望のデータを照会してアクセスすることができるため、並べ替えていないデータベース113CLEARを保持する必要がないことが了解されるものとする。ただし、必要に応じて、例えばオフラインでハッカーがアクセスできない場所に、並べ替えていないデータベース113CLEARのコピーを維持することが可能である。
【0051】
[051]以下、いくつかの実施態様に係る、並べ替えデータベース113からの所望のコンテンツの取得について説明する。本明細書に記載の機能を使用することによって、データベース113PERMUTEDの保護を解除したり、クエリを満たすことに関係し得る任意の特定列又は各特定列の保護を解除したりすることなく、並べ替えデータベースに対するクエリを処理して、要求されたデータを取得することができる。データベース113PERMUTEDが保護されている場合、データ自体は変更されず、並べ替えられるだけであるため、データは依然として、保護データベース113PERMUTEDに存在しており、クエリの処理に利用可能である。データは、非保護データベース113CLEARと同じ場所にはない。このため、保護された状態とは対照的に、並べ替えデータベース113PERMUTED中の特定のデータの位置特定及び取得と関連付けられる性能コストはわずかである。ただし、性能オーバヘッドは、復号化と比較して最小である。より具体的には、クエリへの応答として送信されるデータを読み出すため、モジュラー演算の予備ステップの利用によって、照会された列の正しい行を見つける。このようなモジュラー演算ステップは、クエリを処理するすべての態様について合計すると、当該復号化がデータベース113ENCRYPTED全体であるか、フィールドごとに別個に行われる(すなわち、「構造保持暗号化」が使用される場合)かに関わらず、暗号化データベース113ENCRYPTEDの復号化よりも性能コストは大幅に小さくなる。なお、並べ替えデータベース113PERMUTEDの照会は、並べ替えデータベース全体又はその任意の並べ替え列全体の並べ戻しを伴わない。
【0052】
[052]クエリに応答するデータが見つかった後の照会コンピュータ(例えば、データベース管理システム111と相互作用するクライアント103)への送信は、本質的に上述と同じロジックにより保護されていてもよい。例えば、特定の供給業者に対する特定のデータのクエリでは、8つのフィールドを含む1つのレコードが得られるものとする。そして、データ伝送を保護するために、実際のデータに対する無関係なデータの比が採用されるようになっていてもよい。使用する比は、可変となる設計上の特徴であり、例えば、データベースのライセンシ、データベース管理者、並べ替えベースのデータ保護システム101の発行者等により選定され得る。この比が4:1である例示的なシナリオにおいては、無関係なデータ(又は、まったく架空のデータ)が4レコード集められ、これら4つのレコードそれぞれが実際のレコードと同じ数及び種類のフィールドを含む(例えば、本例では、1レコード当たり8フィールド)。ここで、それぞれが8つのフィールドから成る5つのレコードの結果グリッドには、時間依存のパラメータを使用する同じ並べ替えアルゴリズムが適用されるようになっていてもよい。このため、クエリに対応する応答を含む単一のレコードが4つの無関係なレコードと並べ替えられる。並べ替えの後、この5レコードのグリッドは、照会コンピュータに送られる。クエリの実際の結果が他の4つのレコードと並べ替えられているため、伝送は保護されている。そして、照会コンピュータは、同じパラメータを使用して、逆モジュラー演算により5つのレコードの保護を解除するとともに、1つの要求レコードを選択することができ、その後、これが必要に応じて、要求側の機器に表示されるようになっていてもよいし、或いは、使用されるようになっていてもよい。
【0053】
[053]いくつかの実施態様においては、通常、矩形構造である(例えば、データベース113のデータテーブル)か、又は、(例えば、
図3と併せて後述する通り、ファイルの各バイトをデータベース113の単一のデータであるかのように扱うことによって)矩形構造に適合されている如何なる種類のファイルの保護又は保護解除についても、2つの基本サブルーチンを繰り返し使用することによって実現され得る。データの発見、変更、追加、及び除去はすべて、同じ2つのサブルーチンに依拠していてもよい。サブルーチンは、上述の通り、対応する適用並べ替えアルゴリズムで使用される様々なパラメータによって決まる結果を提供するが、これらは通常、状況に固有となる。本明細書においては、これら2つのサブルーチンをFindCell201及びFindRecord203と称するが、この命名は重要ではなく、他の実施態様においては、サブルーチンが異なる名前を有してもよい(並びに/又は、より多くのサブルーチン若しくは異なるサブルーチンが用いられるようになっていてもよい)ことが了解されるものとする。
【0054】
[054]サブルーチンFindCell201は、並べ替えフィールドにおいて、特定レコードと関連付けられた特定セルを位置特定する。フィールドが並べ替えられていることから、特定セルは、関連する特定レコード内には配置されていない。フィールドが列に、レコードが行に格納された一実施態様において、FindCell201は、所与の行と関連付けられた並べ替え列において特定セルを位置特定するが、並べ替えのため、当該行においては配置されていない。より具体的に、FindCell201は、モジュラー演算を実行して、並べ替えアルゴリズムの適用に用いられる1つ又は複数のパラメータと、並べ替えフィールドの特定セルが配置される特定レコードの識別子と、特定の並べ替えフィールドの識別子と、を適用することにより、並べ替えフィールドにおいて特定セルを位置特定する。
【0055】
[055]矩形構造(例えば、データベース又は他のファイルタイプ)は(通例)、「主フィールド」を有することになる(ただし、必ずしも有するわけではない)。いくつかの実施態様においては、(フィールドが列に格納されるインスタンス化において)これが左端の列となる。サブルーチンFindCell201は、データベース113の並べ替えに用いられた(1つ又は複数の)パラメータのアレイ(異なる実施態様においては、異なる構成となる)、主列の行番号(若しくは、並べ替えフィールドの特定セルが関連付けられるレコードの他の形態の識別子)、並びに、例えば列番号若しくは列ヘッダ(又は、所望のフィールドの他の形態の識別子)として表現される所望の列を入力とする。サブルーチンFindCell201は、(1つ又は複数の)パラメータを適用し、1つのモジュラー演算を実行して、所望の列の対応する行を出力する。例えば、先月の様々な顧客への出荷数量が「Qm-1」列にあり、当該データが顧客1234に要求されたとする。ここで、1234は、主列の行567に現れる。そして、サブルーチンFindCell201は、(1つ又は複数の)関連パラメータ(1パラメータの例では、8910とする)を取り、567+8910=9477と加算して9477を出力するが、これは、この顧客の先月の出荷が見つかる「Qm-1」列の所望の行である。例えば矩形構造の行数が7000行でしかない場合、所望の行は、9477-7000=2477となり、モジュロ7000を加算することで自動的に求められる。
【0056】
[056]サブルーチンFindRecord203は、並べ替えフィールド中の特定セルが関連付けられる特定レコードを位置特定する。フィールドが並べ替えられていることから、特定セルは、関連する特定レコード内に配置されていない。フィールドが列に、レコードが行に格納された一実施態様において、FindRecord203は、並べ替え列の特定セルと関連付けられた行を位置特定する。特定セルは、特定行と関連付けられるが、並べ替えのため、そこには配置されていない。より具体的に、FindRecord203は、モジュラー演算を実行して、並べ替えアルゴリズムの適用に用いられる1つ又は複数のパラメータと、並べ替えフィールドの特定セルが配置されるものの、関連付けられてはいない特定レコードの識別情報と、特定の並べ替えフィールドの識別情報と、を適用することにより、並べ替えフィールドが関連付けられる特定レコードを位置特定する。
【0057】
[057]要求されたデータとして、先月に100~200単位を出荷したすべての顧客の顧客番号及び出荷工場所在地からの距離を仮定する。さらに、列「Qm-1」の行9477のセルのコンテンツが当該範囲内に収まるものとする。この種のシナリオにおいては、サブルーチンFindRecord203が使用されるが、これは本質的に、サブルーチンFindCell201の逆関数である。FindRecord203は、(1つ又は複数の)パラメータの同じアレイ、列「Qm-1」、及び範囲に適合する出荷数量が見つかった行9477を入力とする。1パラメータの例では、FindRecord203が同じパラメータを取り、9477-8910の減算によって567を出力するが、これは、この顧客の顧客番号1234が見つかった主列の行である。この例の場合、出荷された距離は、顧客が識別されない限り、極秘情報とは考えられないため、当該データは、列「距離」の行9477にあり、当該列のパラメータが列「Qm-1」のパラメータと一致することによって示される。
【0058】
[058]ほぼすべてのデータベース113で最も高頻度に使われるのは、情報の照会である。上述のような並べ替えベースのデータ保護システム101を使用することにより、データベース113の保護を解除することなくクエリに対応可能である一方、従来の暗号化ベースのシステムでは、照会のため、暗号化データベース113の暗号化を解除する必要がある。暗号化データベース113を照会可能な非保護状態へと復号化する必要がないため、性能コストが大幅に削減される。通常はデータベース113への照会よりも低頻度であるものの、依然として定期的にサポートされているのは、既存のレコードのコンテンツの更新である(すなわち、所与の人物による購読の更新の有無、所与の顧客による特定金額の支払い等の情報を示すため、所与のレコードの1つ又は複数の特定フィールドを更新する)。
【0059】
[059]比較的まれではあるが、サポートされている別のデータベース操作として、新規レコードの追加があり、これは、例えば新たな顧客が銀行で口座を開設した場合に実行される。既存のレコードを消去することも、比較的まれにサポートされる別の操作であって、例えば患者が所与の施設以外の異なる医師に診療を依頼することを決定し、新たな医師に情報を提供した後、消去を依頼する場合に実行される。例えば新製品が市場に投入された場合、新たなフランチャイジーが追加された場合等には、1つ又は複数の新たなフィールドを追加することによって、データベース113の既存のスキーマを編集することも可能である。いくつかの実施態様において、並べ替えベースのデータ保護システム101の背景における既存のデータベース113に対するこれらの追加及び消去のサポートは、データベース113が最初に並べ替えられる場合に行われる。
【0060】
[060]より具体的に、並べ替えの前には、複数の付加的なフィールドをデータベース113に追加することができる。1つは、後述の通り、システム使用のためであり、その他は、データベース113を並べ戻してから再並べ替えすることなく、後で新たなフィールドを追加可能にするためである。如何なるデータも、将来の使用のため、導入されたフィールドに最初に格納可能である。一実施態様においては、既存のフィールドを複製又は模倣したデータを格納することで、権限のない人物による解釈をより困難にすることができる。将来の使用のために追加する特定のフィールド数は、可変となる設計上の選択である。また、最初の並べ替えの前に、多くの未使用レコードをデータベースに追加することも可能である。これは、レコードが追加されるたびにデータベース113の並べ戻し及び再並べ替えを行うことなく、後で新たなレコードを追加できるようにするためである。未使用フィールドと同様に、追加する未使用レコードの数及びそこに格納するコンテンツは、可変となる設計上の選択であるが、セキュリティを高めるため、既存のレコードが未使用レコードにおいて複製されるようになっていてもよい。前述のシステム使用のための新たなフィールドは、レコードが実データを含んでいるか、又は新たなレコードを追加するためのプレースホルダーに過ぎないか、を符号化するために用いられるようになっていてもよい。プレースホルダーレコードは、データベース113の実際のデータレコードとともに並べ替えられるが、これらはすべて、プレースホルダーフィールドを含む。
【0061】
[061]新たなレコードが追加された場合は、当該レコードの実際のデータがプレースホルダーレコードの架空のプレースホルダーデータに置き換えられ、架空のデータを示すコード化セルが実データを示すコード化に切り替えられる。実レコードの除去の場合は、逆の操作が行われる(すなわち、実データが架空のデータに置き換えられ、符号化フィールドがそれに応じて更新される)。他のレコードと同様に、付加的な操作で新たなレコードとの置き換えが見つかったプレースホルダーレコード、又は、消去操作で架空のデータとの置き換えが見つかった実レコードは、レコードが並べ替えられており、データベース113の行全体で真っすぐに格納されていないことから、上述のようにモジュラー演算を使用して位置特定される。
【0062】
[062]
図3に示すように、いくつかの実施態様において、並べ替えベースのデータ保護システム101は、データベース113以外のフォーマットのファイルの保護に利用されるようになっていてもよい。このような実施態様においては、本明細書に記載の対応する機能を適用することによって、専有情報又は極秘情報を含む任意種類の任意のファイルも保護され得る。この機能は、文書ファイル、テキストファイル、若しくは英数字コンテンツ(例えば、単語、省略形、空白、数字等)を含むその他任意のファイル、画像ファイル、音声ファイル、アニメーション、映画、若しくは他の形態のビデオファイル、広範な使用若しくは狭小な使用がなされる様々なフォーマットのいずれか1つの任意のファイルタイプ(例えば、.docx、.txt、.html、.xls、.pdf、.gif、.jpg、.mp3、.alac、.wav、.flac、.mp4、.mov、.avi等)の保護に使用可能である。また、本明細書に記載の機能の適用によって、一連の2進数及び/又は16進数が後続するヘッダとして表現可能な任意のファイル(本質的には、あらゆるファイルタイプ)が保護され得る。なお、データベース113を保護する上述の例示的な実施態様とは異なり、他のフォーマットの保護ファイルでは、保護解除に成功すると、ハッカーが視覚的に識別可能となる。データの並べ戻しに失敗した試みがすべて支離滅裂である一方、正しいパラメータを使用して成功した試みは、特定のタイプのファイルに見えるコンテンツとなるためである。それでも、このような特定の利点がないにも関わらず、結果としての保護は依然として、暗号化と比較して非常に強力であり、演算オーバヘッドも依然として低い。
【0063】
[063]任意の種類のファイルを並べ替えるため、並べ替えベースのデータ保護システム101は、所与の種類の特定のファイルの「セルサイズ」を決定するようにしてもよい(301)。セルサイズとしては、例えば文書中の1文字、1文字(表音文字)、数字、句読点、スペース、段落終了指示、16進数の1文字、1バイト、連続するnバイトから成る1群、n×nピクセルの1グリッド、0.2秒相当の音声若しくはアニメーション、又は他のサイズ指定も可能である。並べ替えベースのデータ保護システム101は、それぞれがステップ301において決定されたサイズのセルの線形構成としてファイルを分割するようにしてもよい(303)。その後、並べ替えベースのデータ保護システム101は、線形構成を矩形状に配置し、最初に最上行を満たした後、次行を満たし、ファイル中のすべてのデータについてこれを繰り返す(305)。その後、並べ替えベースのデータ保護システム101は、必要に応じて、すべての列、ほぼすべての列、又は所与の部分集合の列について、特定の数学的全単射関数を適用して所与の列内のセルを並べ替える(307)ことにより、行内の隣り合うセル間の結び付きを除去して、この構造を保護するようにしてもよい。データベースではないファイルを列ベースのフィールド及び行ベースのレコードに編成することを説明したが、他の実施態様においては、行ベースのフィールド及び列ベースのレコードを使用可能であることが了解されるものとする。いずれにせよ、サブルーチンFindCell201及びFindRecord203は、データベースの実施態様の背景において上述した通り、データベースではないファイルタイプの背景において使用可能である。
【0064】
[064]ここで、並べ替えベースのデータ保護システム101を使用して最も高頻度な種類のデータ伝送を保護することによりセキュリティを向上させる特定の一例として、クレジットカード番号が認証目的で送信されるデジタル取引を説明する。より具体的に、購入者がクレジットカード取引を行う場合は、クレジットカード番号、カード保有者に関する他の識別情報(例えば、購入者の名前、3桁のカード検証値(CVV)、有効期限)、及び取引に関する情報がカード発行会社又は第三者認証サービスに送信され、これらが取引を承認又は拒否する。従来、このような伝送におけるクレジットカード番号及びCCVはハッシュ化されているに過ぎず、これはあまりセキュアとは言えない。ハッシュ化された複数のクレジットカード番号にアクセスすることで、使用されているハッシュアルゴリズムを特定して、実際の情報にアクセスすることができるためである(結局のところ、クレジットカードは10進数で16桁しかなく、CVVは3桁しかない)。
【0065】
[065]本明細書に記載の並べ替えベースのデータ保護システム101システムは、認証のために送信される情報をレコードとして扱い、データに無関係なレコードを追加し、関心のある実際のレコードを無関係なレコードと並べ替えることによって、はるかに高いセキュリティを得ることができる。単純な一例として、クレジットカード認証のために送信されるデータのフォーマットには、名前、ドル-セント金額、16桁のカード番号、CVVコード、及びおそらくはカードの有効期限(月/年)(実際のフォーマットは異なる可能性がある)を含むものとする。比の例として4:1を用いると、認証されるべき取引に関する情報を含む実際のレコードに対して、同じフォーマットの4つの無関係なレコードが追加され、合計5つのレコードの各フィールドが並べ替えられ得る。無関係なレコードを追加しても、クレジットカード認証のために送信されるデータはそれほど多くないため、追加となる性能コストは非常に小さい。ただし、取引を傍受しようとするハッカー又は他の悪意者がデータの保護を解除し、購入者のクレジットカード情報にアクセスすることははるかに困難である。そして、認証サービスでは、上述の通り、受信データを並べ戻すことが可能である。
【0066】
[066]データベース113及び他種のファイルの両者を保護するための本明細書に記載の手法は、侵害に対して非常に堅牢なレベルの保護を実現する。ハッカーにとって、本明細書に記載の通り並べ替えられたデータベース又はファイルの保護を解除することの難しさは、暗号鍵がかなり長い場合でさえ、その暗号化をはるかに超えている。ハッキングタスクは、暗号鍵の長さに比例する。より大きなファイルは、考え得る暗号鍵を絞り込むためのより多くの手がかりとなる。本明細書に記載の機能の保護解除タスクは、任意のファイルタイプの矩形表現における行数の階乗である。行数が25行と少ない場合は、単一の列に対して、1025通りを超える順列のいずれか1つが唯一の正しい順列となり得る(比較のため、1兆は1012)。これはすでに、アマゾンAWSが使用する最長の暗号鍵により保護された1000万行のデータベース113よりもハッカーのタスクを困難にしている。50行では(これでも依然として、非常に小さなファイルである)、1064通りを超える順列、100行では、10157通りを超える順列が存在する。この保護方法を中程度のサイズのデータベース113、高解像度の大きな画像、又は数分のビデオクリップに適用すると、容易に100万行に達するが、これに対して8.26*105,565,708を超える順列が存在する(これはおよそ{宇宙に存在すると推定される水素原子の数}50,000であり、抽象的な整数論以外の目的で計算される最大の整数と思われる)。このレベルのセキュリティは、暗号化を用いても到達不可能であるため、悪意者による不正アクセスに対して、本明細書に記載の並べ替えベースの機能を適用することにより、データベース113及び/又は他のフォーマットのファイルに格納されたコンテンツをセキュア化することは、コンピュータセキュリティの分野における大きな改善であるほか、サーバファーム、データセンタ、及び一般的にセキュアなストレージ技術の運用の改善でもある。
【0067】
[067]
図4は、並べ替えベースのデータ保護システム101の実装に適した例示的なコンピュータシステム610のブロック図である。クライアント103及びサーバ105はいずれも、このようなコンピュータシステム610の形態で実装可能である。図示のように、コンピュータシステム610の構成要素として、バス612がある。バス612は、少なくとも1つのプロセッサ614、システムメモリ617(例えば、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、フラッシュメモリ)、入出力(I/O)コントローラ618、スピーカ620等のオーディオ出力装置に通信結合されたオーディオ出力インターフェース622、ディスプレイスクリーン624等のビデオ出力装置に通信結合されたディスプレイアダプタ626、ユニバーサルシリアルバス(USB)レセプタクル628、シリアルポート630、パラレルポート(図示せず)等の1つ若しくは複数のインターフェース、キーボード632に通信結合されたキーボードコントローラ633、1つ若しくは複数のハードディスク644(又は、(1つ若しくは複数の)他の形態の記憶媒体)に通信結合されたストレージインターフェース634、ファイバチャネル(FC)ネットワーク690と接続されるように構成されたホストバスアダプタ(HBA)インターフェースカード635A、SCSIバス639に接続されるように構成されたHBAインターフェースカード635B、光ディスク642を受容するように構成された光ディスクドライブ640、例えばUSBレセプタクル628を介してバス612に結合されたマウス646(又は、他のポインティングデバイス)、例えばシリアルポート630を介してバス612に結合されたモデム647、並びに、例えばバス612に直接結合された1つ若しくは複数の有線及び/若しくは無線ネットワークインターフェース648等、コンピュータシステム610の他の構成要素を通信結合する。
【0068】
[068]他の構成要素(図示せず)(例えば、文書スキャナ、デジタルカメラ、プリンタ等)が同様に接続されていてもよい。逆に、
図4に示す構成要素がすべて存在する必要もない(例えば、スマートフォン及びタブレットは通常、光ディスクドライブ640も、外部キーボード632も、外部ポインティングデバイス646も有さないが、例えばUSBレセプタクル628を介して、様々な外部コンポーネントをモバイルコンピュータ機器に結合することができる)。また、
図4に示すのとは異なる方法で、様々なコンポーネントを相互接続することもできる。
【0069】
[069]バス612は、プロセッサ614と、上述の通りROM及び/又はフラッシュメモリのほか、RAMを含み得るシステムメモリ617との間のデータ通信を可能にする。RAMは通常、オペレーティングシステム650及びアプリケーションプログラムがロードされるメインメモリである。ROM及び/又はフラッシュメモリは、数あるコードの中でも、特定の基本ハードウェア動作を制御するBIOS(Basic Input-Output System)を含み得る。アプリケーションプログラムは、ローカルのコンピュータ可読媒体(例えば、ハードディスク644、光ディスク642)に格納するとともに、システムメモリ617にロードしてプロセッサ614により実行することができる。また、アプリケーションプログラムは、離れた場所(すなわち、リモートに配置されたコンピュータシステム610)から、例えばネットワークインターフェース648又はモデム647を介して、システムメモリ617にロードすることも可能である。
図4においては、並べ替えベースのデータ保護システム101がシステムメモリ617に存在するものとして示しているが、いくつかの実施形態においては、例えばハードディスク644又は他のストレージ機構上の他の場所にシステム101の一部が配置されていてもよい。
【0070】
[070]ストレージインターフェース634は、1つ若しくは複数のハードディスク644(及び/又は、他の標準記憶媒体)に結合されている。(1つ又は複数の)ハードディスク644は、コンピュータシステム610の一部であってもよいし、物理的に分離され、他のインターフェースシステムを通じてアクセスされるようになっていてもよい。
【0071】
[071]ネットワークインターフェース648及び/又はモデム647は、インターネット等のネットワーク107に直接又は間接的に通信結合可能である。このような結合は、有線も可能であるし、無線も可能である。
【0072】
[072]当業者による理解の通り、本明細書に記載の主題は、その思想からも全体特性からも逸脱することなく、他の特定の形態で実施されるようになっていてもよい。同様に、部分、モジュール、エージェント、マネージャ、コンポーネント、機能、手順、動作、レイヤ、特徴、属性、方法、データ構造、及び他の態様の特定の命名及び区分は、必須でも重要でもなく、本明細書に記載の主題の実施に用いられるエンティティは、異なる命名、区分、及び/又はフォーマットを有していてもよい。説明を目的とした以上の記述は、特定の実施態様を参照して記載している。ただし、上記の例示的な議論は、何ら網羅的でもなければ、開示の詳細な形態への限定の意図もない。上記教示内容に鑑みて、多くの改良及び変形が可能である。上記実施態様は、関連する原理及びそれぞれの実際の用途を最もよく説明することにより、考えられる特定の使用に適し得る種々改良の有無を問わず、当業他者が種々実施態様を最もよく利用可能となるように選定して記載したものである。
【0073】
[073]場合により、本明細書においては、コンピュータメモリ内のデータバイト上の演算のアルゴリズム及び記号表現に関して、種々実施態様が提示され得る。アルゴリズムはここで、一般的には所望の結果に至る自己矛盾のない一組の演算と考えられる。演算は、物理量の物理的操作を要するものである。通例、これらの量は、必須ではないものの、格納、変換、組み合わせ、比較、或いは操作が可能な電気信号又は磁気信号の形態である。これらの信号は、主として共通使用の理由から、ビット、バイト、値、要素、記号、文字、用語、数字等で表すのが便利な場合もあることが分かっている。
【0074】
[074]ただし、これらの用語及び類似する用語がすべて、適当な物理量と関連付けられ、これらの量に適用される便利なラベルに過ぎないことを念頭に置くべきである。以下の議論から明らかとなるような別段の具体的な記載のない限り、当然のことながら、本開示の全体を通して、「処理する(processing)」、「演算する(computing)」、「計算する(calculating)」、「構成する(configuring)」、「決定する(determining)」、「表示する(displaying)」等を含む用語を利用した議論は、コンピュータシステムのレジスタ及びメモリ内で物理(電子)量として表されるデータを操作して、コンピュータシステムのメモリ若しくはレジスタ、又は他のこのような情報記憶、伝送、若しくは表示装置内で同様に物理量として表される他のデータに変換するコンピュータシステム又は類似の電子装置の動作及びプロセスを表す。
【0075】
[075]最後に、本明細書に提示の構造、アルゴリズム、及び/又はインターフェースは本質的に、如何なる特定のコンピュータ等の装置にも関係しない。本明細書の教示内容に係るプログラムと併せて、様々な汎用システムが用いられるようになっていてもよいし、又は、方法ブロックを実行するためのより特別な装置を構成することが便利であることも分かっている。これらの多様なシステムに対する構造は、上記説明から明らかとなるであろう。また、本明細の記述には、如何なる特定のプログラミング言語も参照していない。当然のことながら、本明細書に記載のような教示内容の実現には、多様なプログラミング言語を使用可能である。
【0076】
[076]以上から、本開示は例示に過ぎず、何ら限定する意図はない。
【国際調査報告】