(57)【要約】  本明細書で説明される主題の実施によれば、データセットのセキュリティ管理のためのソリューションが提案される。このソリューションでは、少なくとも１つのレコードを備えるデータセットが取得され、少なくとも１つのレコードのレコードは、少なくとも、レコードを識別するためのキーワードと、キーワードに対応する値とを備える。その後、少なくとも１つのレコードのそれぞれのキーワードに基づいて、信頼できる実行環境において、キーワードインデックスが生成される。ここで、キーワードインデックスは、少なくとも１つのレコードのキーワードのセットを記述する。このソリューションによって、信頼できる実行環境のデータセット内のレコードに対して、キーワードインデックスが生成され得、キーワードインデックスに基づいて、データセット内で発生する可能性のある異常を検出するために、データセットは、より安全で信頼性の高い手法で管理され得る。
2021523483.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
なくとも１つのレコードを備えるデータセットを取得するステップであって、該データセットの少なくとも１つのレコードは、少なくとも、
当該レコードを識別するためのキーワードと、
前記キーワードに対応する値と
を備える、ステップと、
前記少なくとも１つのレコードのそれぞれのキーワードに基づいて、信頼できる実行環境においてキーワードインデックスを生成するステップであって、前記キーワードインデックスは、前記少なくとも１つのレコードのキーワードのセットを記述する、ステップと
を備えるコンピュータで実施される方法。
【請求項２】
請求項１に記載の方法であって、
前記データセットに新しいレコードを追加する要求を受信することに応じて、前記新しいレコードのキーワードに基づいて前記キーワードインデックスを更新するステップと、
前記新しいレコードを前記データセットに追加するステップと
をさらに備える方法。
【請求項３】
請求項１に記載の方法であって、
前記データセット内のレコードを読み取る要求を受信することに応じて、前記要求に関連するターゲットキーワードを決定するステップと、
前記ターゲットキーワードを備えるターゲットレコードが前記データセットに発見されないことに応じて、前記ターゲットキーワードを前記キーワードインデックスと比較するステップと、
前記ターゲットキーワードが前記キーワードインデックスに一致することに応じて、前記データセットに異常が発生したことを示すインジケーションを提供するステップと
をさらに備える方法。
【請求項４】
請求項３に記載の方法であって、
前記ターゲットキーワードが前記キーワードインデックスに一致しないことに応じて、前記要求に関連するレコードを前記データセットが備えていないことを示すインジケーションを提供するステップ
をさらに備える方法。
【請求項５】
請求項１に記載の方法であって、
前記データセット内のレコードを読み取る要求を受信することに応じて、前記要求に関連するターゲットキーワードを決定するステップと、
前記ターゲットキーワードを備えるターゲットレコードが前記データセット内で発見されたことに応じて、前記ターゲットキーワードを前記キーワードインデックスと比較するステップと、
前記ターゲットキーワードが前記キーワードインデックスに一致することに応じて、前記要求に関連するターゲットレコードを前記データセットが備えていることを示すインジケーションを提供するステップと
をさらに備える方法。
【請求項６】
請求項５に記載の方法であって、
前記ターゲットキーワードが前記キーワードインデックスに一致しないことに応じて、前記データセットに異常が発生したことを示すインジケーションを提供するステップ
をさらに備える方法。
【請求項７】
請求項１に記載の方法であって、前記データセットは、ブロックチェーンベースのデータベースのデータセットであり、前記データセット内の少なくとも１つのレコードのレコードは、前記ブロックチェーン内のノードのキーワードおよび値を記述する、方法。
【請求項８】
請求項１に記載の方法であって、前記データセットは、信頼できない実行環境において格納される、方法。
【請求項９】
請求項１に記載の方法であって、
前記データセットにアクセスするためのアクセス要求を受信することに応じて、前記アクセス要求に関連するレコードを、前記信頼できる実行環境におけるキャッシュに追加するステップ
をさらに備える方法。
【請求項１０】
請求項１に記載の方法であって、前記信頼できる実行環境において実行される方法。
【請求項１１】
装置であって、
処理ユニットと、
前記処理ユニットに結合され、格納された命令を備えるメモリと
を備え、前記命令は、前記処理ユニットによって実行された場合、前記装置に動作を実行させ、該動作は、
なくとも１つのレコードを備えるデータセットを取得する動作であって、該データセットの少なくとも１つのレコードは、少なくとも、
当該レコードを識別するためのキーワードと、
前記キーワードに対応する値と
を備える、動作と、
前記少なくとも１つのレコードのそれぞれのキーワードに基づいて、信頼できる実行環境においてキーワードインデックスを生成する動作であって、前記キーワードインデックスは、前記少なくとも１つのレコードのキーワードのセットを記述する、動作と
を含む、装置。
【請求項１２】
請求項１１に記載の装置であって、前記動作は、
前記データセットに新しいレコードを追加する要求を受信することに応じて、前記新しいレコードのキーワードに基づいて前記キーワードインデックスを更新する動作と、
前記新しいレコードを前記データセットに追加する動作と
をさらに備える、装置。
【請求項１３】
請求項１１に記載の装置であって、前記動作は、
前記データセット内のレコードを読み取る要求を受信することに応じて、前記要求に関連するターゲットキーワードを決定する動作と、
前記ターゲットキーワードを備えるターゲットレコードが前記データセットに発見されないことに応じて、前記ターゲットキーワードを前記キーワードインデックスと比較する動作と、
前記ターゲットキーワードが前記キーワードインデックスに一致することに応じて、前記データセットに異常が発生したことを示すインジケーションを提供する動作と
をさらに備える、装置。
【請求項１４】
請求項１３に記載の装置であって、前記動作は、
前記ターゲットキーワードが前記キーワードインデックスに一致しないことに応じて、前記要求に関連するレコードを前記データセットが備えていないことを示すインジケーションを提供する動作
をさらに備える、装置。
【請求項１５】
コンピュータプログラムが格納されたコンピュータ可読記憶媒体であって、前記プログラムは、プロセッサによって実行された場合、請求項１から１０のいずれか一項に記載の方法を実施する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]データストレージ技術およびデータセキュリティ技術の開発に伴い、データストレージのセキュリティを改善するために、暗号−解読技術に基づくデータストレージソリューションが開発された。しかしながら、格納されたデータは、ウィルスなどのマルウェアによる脅威や、他の多くのリスクに直面することが多いため、より安全で信頼性の高いデータストレージ環境を開発することが望まれる。特に、金融機関や、政府機関などの組織では、データ管理のセキュリティをさらに向上させる必要がある。これまで、より高いセキュリティレベルを有するデータセキュリティ技術が提案された。たとえば、ハードウェアおよび／またはソフトウェアベースの信頼できる実行環境（ＴＥＥと略記される）は、外部からの脅威を効果的に隔離し、アプリケーションのために、安全で保護された実行環境を提供し得る。
【０００２】
[0002]それにも関わらず、一方で、ＴＥＥは通常高価であり、ＴＥＥによって提供されるコンピューティングリソースおよびストレージリソースはかなり制限される。一方、既存のデータストレージベースのアプリケーションを、ＴＥＥに移植する場合は、既存のアプリケーションと、データストレージとの両方を、ＴＥＥに適応するように変更する必要があるが、既存のアプリケーションおよびデータストレージを変更すると、余分なオーバヘッドを確実に生成する。したがって、アプリケーション、特にデータストレージベースのアプリケーションのセキュリティを、より便利で信頼性の高い手法で改善するための技術的ソリューションを提供することが望ましい。
【発明の概要】
【０００３】
[0003]本明細書で説明される主題の実施に従って、データセットのセキュリティ管理のためのソリューションが提供される。このソリューションでは、少なくとも１つのレコードを備えるデータセットが取得され、少なくとも１つのレコードのレコードは、少なくとも、レコードを識別するためのキーワードと、キーワードに対応する値とを備え、少なくとも１つのレコードのそれぞれのキーワードに基づいて、信頼できる実行環境において、キーワードインデックスが生成され、キーワードインデックスは、少なくとも１つのレコードのキーワードのセットを記述する。
【０００４】
[0004]この概要は、以下の詳細な説明でさらに説明される概念の選択を簡略形式で紹介するために提供される。この概要は、請求された主題の主要な特徴または本質的な特徴を特定することを意図しておらず、請求された主題の範囲を限定するために使用されることも意図されていない。
【図面の簡単な説明】
【０００５】
【図１】[0005]本明細書で説明される主題の複数の実施が実施され得るコンピューティング環境のブロック図である。
【図２】[0006]本明細書で説明される主題の１つの実施によるデータセットのセキュリティ管理のためのソリューションの一般的なブロック図である。
【図３】[0007]本明細書で説明される主題の１つの実施によるデータセットのセキュリティ管理のための方法のフローチャートである。
【図４】[0008]本明細書で説明される主題の１つの実施により、データセットに新しいレコードを追加するための方法のフローチャートである。
【図５】[0009]本明細書で説明される主題の１つの実施によるデータセットのセキュリティ管理のための詳細なブロック図である。
【図６Ａ】[0010]本明細書で説明される主題の実施により、データセット内の異常を検出するためのブロック図である。
【図６Ｂ】本明細書で説明される主題の実施により、データセット内の異常を検出するためのブロック図である。
【図７】[0011]本明細書で説明される主題の１つの実施により、ブロックチェーンベースのデータベースを管理するためのブロック図である。
【図８】[0012]本明細書で説明される主題の１つの実施により、リレーショナルデータベースを管理するためのブロック図である。
【発明を実施するための形態】
【０００６】
[0013]図面全体を通して、同一または同様の参照記号は、同一または同様の要素を指す。
[0014]本明細書で説明される主題は、いくつかの例示的な実施を参照してここで議論される。これらの実施は、主題の範囲に対するいかなる限定も示唆するものではなく、当業者が本明細書で説明される主題をよりよく理解し、実施できるようにする目的でのみ議論されることを理解されたい。
【０００７】
[0015]本明細書で使用される場合、「備える」という用語およびその変形は、「備えるが、これに限定されない」を意味するオープンな用語として読まれるべきである。「〜に基づく」という用語は、「少なくとも部分的に〜に基づく」と解釈されるべきである。「１つの実施」および「実施」という用語は、「少なくとも１つの実施」と解釈されるべきである。「別の実施」という用語は、「少なくとも１つの他の実施」と解釈されるべきである。「第１」、「第２」などの用語は、異なるまたは同じオブジェクトを指すことができる。明示的および暗黙的な他の定義が、以下に含まれ得る。
【０００８】
[0016]いくつかの企業が、各それぞれのＴＥＥを開発した。たとえば、Ｉｎｔｅｌ（Ｒ）社は、Ｓｏｆｔｗａｒｅ  Ｇｕａｒｄ  Ｅｘｔｅｎｓｉｏｎｓ（ＳＧＸと略記される）と呼ばれる技術を開発した。ＳＧＸは、アプリケーションと、対応するデータストレージ（たとえば、データベース）が開示または変更されないように保護できる。これは、アプリケーションおよびデータベースを、メモリ内の保護された実行領域に展開するエンクレーブ技術によって可能になる。ＳＧＸ技術に基づいて、より高いセキュリティ保証を得ることを望むアプリケーションは、エンクレーブに移され得る。エンクレーブ内で実行するアプリケーションは、マルウェアの攻撃を阻止され、オペレーティングシステムおよび／またはハイパバイザでさえ、エンクレーブ内のアプリケーションやデータベースに影響を与えることはできない。このようにして、ハードウェアベースの信頼できる実行環境が提供され得る。
【０００９】
[0017]さらに、ソフトウェアベースのＴＥＥ技術的ソリューションが提案された。たとえば、Ｍｉｃｒｏｓｏｆｔ（Ｒ）社によって開発されたＷｉｎｄｏｗｓ  Ｖｉｒｔｕａｌ  Ｓｅｃｕｒｅ  Ｍｏｄｅ（ＶＳＭと略記される）は、ソフトウェアベースのＴＥＥの一例である。ＶＳＭ技術に基づいて、追加の専門的なソフトウェアを購入することなく、アプリケーションおよびデータに、高いセキュリティ保証が提供され得る。
【００１０】
[0018]ＳＧＸおよびＶＳＭは、本明細書で説明される主題の文脈全体にわたってＴＥＥの特定の例として示されているが、当業者は、技術的な進歩とともにより多くのＴＥＥが開発され得ることを認識できることが理解されよう。さらに、本明細書で説明される主題において説明されるＴＥＥは、開発された、または将来開発されるであろう他の実行環境であり得る。
【００１１】
[0019]これまで、既存のアプリケーションおよびデータベースを、ＴＥＥに移植するための技術的なソリューションが開発された。１つの技術的なソリューションでは、データベースと、データベースにアクセスするためのすべてのアプリケーションとが、ＴＥＥに移植され得る。しかしながら、これには莫大な人的資源と時間のオーバヘッドがかかり、ＴＥＥの様々なリソース（たとえば、コンピューティングリソースやストレージリソース）に厳しい要件を課す。したがって、この技術的ソリューションは、特に大量のデータを含むアプリケーションへの適用のように、高価な用途にはほとんど使えない。
【００１２】
[0020]別の技術的ソリューションでは、アプリケーションや、アクセスされたデータベースに関連するアプリケーション内のインターフェース部分は、ＴＥＥに移植され得る。確かに、この技術的ソリューションは、移植に伴う様々なオーバヘッドをある程度減らすことができるが、この技術的ソリューションは、データベースインターフェース部分のコードを書き直すために、多数の技術者を必要とし、技術者のスキルレベルに高い要件を課す。
【００１３】
[0021]したがって、便利で効果的な手法でアプリケーションおよびデータストレージのセキュリティを改善するための技術的ソリューションを提供することが望ましい。さらに、この技術的ソリューションは、既存のデータストレージシステムと互換性があり、既存のデータストレージシステムのハードウェア構成を可能な限り変更することなく、より安全なデータストレージを実現できることが望まれる。
【００１４】
例示的な環境
[0022]ここで、本明細書で説明される主題の基本原理および様々な例示的な実施が、図面を参照して説明される。図１は、本明細書で説明される主題の実施が実施され得るコンピューティング環境１００のブロック図を示す。図１に示されるように、コンピューティング環境１００は、異なるセキュリティレベルを有する実行環境を備え得る。たとえば、上記のＳＧＸまたはＶＳＭに基づいて、コンピューティングデバイス１９０は、より高いセキュリティレベルを有するＴＥＥ１７０を備え、ＴＥＥ１７０内でアプリケーション１７２を実行することができる。さらに、コンピューティングデバイス１９０は、より低いセキュリティレベルを有する外部の信頼できない実行環境１８０と通信することができる。たとえば、ＴＥＥ１７０内のアプリケーション１７２は、信頼できない実行環境１８０内のデータセット１８２にアクセスすることができる。
【００１５】
[0023]この例示的な環境では、ＴＥＥ１７０は、Ｉｎｔｅｌ（Ｒ）社によって開発されたＳＧＸ技術のソリューション、またはＭｉｃｒｏｓｏｆｔ（Ｒ）社によって開発されたＶＳＭ技術のソリューションであり得る。ここで、信頼できない実行環境１８０は、従来のコンピューティング環境、言い換えれば、ＳＧＸ技術またはＶＳＭ技術を利用しない従来のコンピューティング環境であり得る。本明細書で説明される主題において、ＳＧＸ技術およびＶＳＭ技術のみが、ＴＥＥ１７０の特定の例として使用され、より多くのデータセキュリティ技術が出現するが、本明細書においてＴＥＥ１７０は、現在知られているか、または将来開発される任意のＴＥＥであり得ることが理解されよう。
【００１６】
[0024]図１で説明されるコンピューティングデバイス１９０は、単に例示のためであり、本明細書で説明される主題の機能および実施の範囲をいかなる方式でも限定しないことが理解されよう。図１に示すように、コンピューティングデバイス１９０は、一般的なコンピュータデバイスの形態のコンピューティングデバイス１９０を含む。コンピューティングデバイス１９０の構成要素には、１つまたは複数のプロセッサまたは処理ユニット１１０、メモリ１２０、ストレージデバイス１３０、１つまたは複数の通信ユニット１４０、１つまたは複数の入力デバイス１５０、および１つまたは複数の出力デバイス１６０を含むが、これらに限定されない。
【００１７】
[0025]いくつかの実施では、コンピューティングデバイス１９０は、様々なユーザ端末またはサービス端末として実施され得る。サービス端末は、様々なサービスプロバイダなどによって提供される大規模なコンピューティングデバイスおよびサーバであり得る。ユーザ端末は、たとえば、モバイル電話、ステーション、セル、デバイス、マルチメディアコンピュータ、マルチメディアタブレット、インターネットノード、コミュニケータ、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、タブレットコンピュータ、パーソナル通信システム（ＰＣＳ）デバイス、パーソナルナビゲーションデバイス、パーソナルデジタルアシスタント（ＰＤＡ）、オーディオ／ビデオプレーヤ、デジタルカメラ／ビデオカメラ、測位デバイス、ＴＶ受信機、無線放送受信機、電子ブックデバイス、ゲームデバイスを含む任意のタイプのモバイル端末、固定端末、またはポータブル端末、または、それらデバイスまたはその任意の組合せのアクセサリおよび周辺機器を含むそれらの任意の組合せであり得る。コンピューティングデバイス１００は、ユーザに対して（「ウェアラブル」回路などのような）任意のタイプのインターフェースをサポートできることがさらに予想され得る。
【００１８】
[0026]処理ユニット１１０は、物理プロセッサまたは仮想プロセッサであり得、メモリ１２０に格納されたプログラムに基づいて様々なプロセスを実行することができる。マルチプロセッサシステムでは、複数の処理ユニットが、コンピュータ実行可能命令を並列に実行して、コンピューティングデバイス１９０の並列処理能力を向上させる。処理ユニット１１０はまた、中央処理装置（ＣＰＵ）、マイクロプロセッサ、コントローラ、またはマイクロコントローラと称され得る。
【００１９】
[0027]コンピューティングデバイス１９０は、通常、複数のコンピュータ記憶媒体を含み、これは、揮発性および不揮発性の媒体、ならびにリムーバブルまたは非リムーバブルな媒体を含むがこれらに限定されない、コンピューティングデバイス１００によってアクセス可能な任意の利用可能な媒体であり得る。メモリ１２０は、揮発性メモリ（たとえば、レジスタ、キャッシュ、ランダムアクセスメモリ（ＲＡＭ））、不揮発性メモリ（たとえば、読取専用メモリ（ＲＯＭ）、電気的に消去可能なプログラム可能な読取専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ）、またはそれらの任意の組合せであり得る。メモリ１２０は、共有のデータベースシステムを管理するためのデータベース管理システム１２２を実施するために、１つまたは複数のプログラム製品を含む。管理エンジンは、本明細書で説明される様々な実施の機能を実行するように構成されたプログラムモジュールの１つまたは複数のセットを有する。ストレージデバイス１３０は、任意のリムーバブルまたは非リムーバブルな媒体であり得、コンピューティングデバイス１９０において情報および／またはデータを記憶し、アクセスされるために使用される、メモリ、フラッシュドライブ、ディスク、および他の任意の媒体などのマシン可読媒体を含み得る。
【００２０】
[0028]コンピューティングデバイス１９０はさらに、追加のリムーバブル／非リムーバブル、揮発性／不揮発性のメモリ媒体を含み得る。図１には示されていないが、リムーバブルな不揮発性ディスク（ｄｉｓｋ）の読取および書込のためのディスク（ｄｉｓｋ）ドライブが提供され、リムーバブルな不揮発性ディスク（ｄｉｓｃ）の読取および書込のためのディスク（ｄｉｓｃ）ドライブが提供される。このような場合、各ドライブは、１つまたは複数のデータメディアインターフェースを介してバス（図示せず）に接続される。
【００２１】
[0029]通信ユニット１４０は、通信媒体を介してさらなるコンピューティングデバイスと通信する。さらに、コンピューティングデバイス１００内のコンポーネントの機能は、通信のために通信可能に接続された単一のコンピューティングクラスタまたは複数のコンピューティングマシンによって実施され得る。したがって、コンピューティングデバイス１９０は、１つまたは複数の他のサーバ、ネットワークパーソナルコンピュータ（ＰＣ）、または別の一般的なネットワークノードとの論理的リンクを使用して、ネットワーキング環境で動作され得る。
【００２２】
[0030]入力デバイス１５０は、マウス、キーボード、トラッキングボール、音声入力デバイスなどの１つまたは複数の入力デバイスを含むことができる。出力デバイス１６０は、ディスプレイ、ラウドスピーカ、プリンタなどのような１つまたは複数の出力デバイスを含むことができる。必要に応じて、コンピューティングデバイス１９０はまた、通信ユニット１４０を介して、ストレージデバイス、ディスプレイデバイスのような１つまたは複数の外部デバイス（図示せず）、ユーザがコンピューティングデバイス１９０と対話することを可能にする１つまたは複数のデバイス、または、コンピューティングデバイス１９０が１つまたは複数の他のコンピューティングデバイス（たとえば、ネットワークカード、モデムなど）と通信することを可能にする任意のデバイスと通信することができる。そのような通信は、入力／出力（Ｉ／Ｏ）インターフェース（図示せず）を介して実行される。
【００２３】
[0031]データセットのセキュリティ管理のための方法は、図１に示されるように、コンピューティングデバイス１９０において実施され得る。本明細書で説明される主題の方法により、ＴＥＥ１７０内のアプリケーション１７２が、より安全で信頼できる手法で、信頼できない実行環境１８０のデータセット１８２にアクセスできることが保証され得る。一般に、通信インターフェースは、データセット１８２のセキュリティを改善するために、ＴＥＥ１７０と、信頼できない実行環境１８０との間に構築され得る。
【００２４】
動作原理
[0032]本明細書で説明される主題のソリューションの動作原理は、添付の図面を参照して詳細に説明される。本明細書で説明される主題の実施によれば、データセットのセキュリティ管理のためのソリューションが提供される。最初に図２を参照して、ソリューションの概要が提示される。図２は、本明細書で説明される主題の１つの実施によるデータセットのセキュリティ管理のための一般的なブロック図２００を概略的に示す。図示するように、セキュリティ管理モジュール２１０は、アプリケーション１７２とデータセット１８２との間のインターフェースとして、ＴＥＥ１７０内のアプリケーション１７２と、信頼できない実行環境１８０内のデータセット１８２との間に提供され得る。セキュリティ管理モジュール２１０は、アプリケーション１７２から要求を受信し、その要求に基づいてデータセット１８２にアクセスする。その後、セキュリティ管理モジュール２１０は、データセット１８２からの結果をアプリケーション１７２に返す。
【００２５】
[0033]この実施では、データセット１８２は、複数のレコード２３０、２３２などを含むことができ、各レコードは、レコードを識別するためのキーワード２２０と、キーワード２２０に対応する値２２２とを備えることができる。たとえば、銀行口座に関するデータは、データセット１８２に格納され得、その時点で、キーワード２２０は、たとえば、口座名を表すことができ、値２２２は、たとえば、口座残高を表すことができる。図２は、２つのフィールドのみ、すなわちキーワードおよび値を備えるデータセット１８２を示すが、他の実施では、データセット１８２は、さらに多くのフィールドを備え得ることが理解されよう。たとえば、データセット１８２は、性別、職業などの他の口座属性をさらに備え得る。
【００２６】
[0034]データセット１８２は、信頼できない実行環境１８０において展開され、ウィルスなどのマルウェアの攻撃に対して脆弱であることが理解されよう。マルウェアは、たとえば、存在しない口座のレコードを挿入するなど、データセット１８２に新しいレコードを追加する可能性がある。または、マルウェアが、データセット１８２から通常の口座のレコードをさらに削除する可能性がある。この時点で、アプリケーション１７２が安全で信頼できるＴＥＥ１７０で実行されたとしても、信頼できない実行環境１８０におけるデータセット１８２内のデータセキュリティが破壊されているので、アプリケーション１７２は、誤った結果を得るであろう。
【００２７】
[0035]図２に示されるように、データセット１８２のセキュリティを改善するために、本明細書で説明される主題の実施は、セキュリティ管理モジュール２１０およびキーワードインデックス２１２を提供する。具体的には、少なくとも１つのレコードを備えるデータセット１８２が取得され得る。次に、データセット１８２内の少なくとも１つのレコードのそれぞれのキーワード２２０に基づいて、キーワードインデックス２１２が、ＴＥＥ１７０内に生成される。ここで、キーワードインデックス２１２は、少なくとも１つのレコードのキーワードのセットを記述することができ、データセット１８２は、より高いセキュリティレベルで管理され得る。
【００２８】
[0036]本明細書で説明される主題の実施において、キーワードインデックス２１２は、データセット１８２内のキーワードのセットを、正常状態で取得されたものとして記録する。後にデータセット１８２に異常が生じた場合（たとえば、マルウェアによって新しい口座情報が追加された場合）、データセット１８２内のキーワードを、正しいデータセットに基づいて生成されたキーワードインデックス２１２と比較することによって、データセット１８２に異常があるか否かが判定され得る。このようにして、データセット１８２のセキュリティが改善され得、さらに、ＴＥＥ１７０におけるアプリケーション１７２の信頼性が保証され得る。
【００２９】
例示的なプロセス
[0037]図３を参照して、本明細書で説明される主題の方法の詳細な動作フローの詳細な説明が以下に提示される。図３は、本明細書で説明される主題の１つの実施によるデータセットのセキュリティ管理のための方法のフローチャート３００を示す。図３に示されるように、少なくとも１つのレコードを備えるデータセット１８２が取得され得る（３１０）。この実施では、少なくとも１つのレコードの各レコードは、少なくとも、レコードを識別するためのキーワード２００と、キーワードに対応する値２２２とを備える。データセット１８２は、異なる手法で取得され得ることが理解されよう。たとえば、アプリケーション１７２は、ＴＥＥ１７０で実行されるので、アプリケーション１７２からのデータは、真正のデータであると見なされ得る。それにより、アプリケーション１７２が、データセット１８２にレコードを追加する場合、データセット１８２が取得され得る。別の例では、データセット１８２内のレコードは、データセット１８２が正常であると確認された任意の時点でさらに取得され得る。この時点で、データセット１８２内のレコードは正しく、マルウェアによる攻撃を受けていないので、データセット１８２内で取得されたレコードに基づいて生成されたキーワードインデックス２１２は、安全で信頼され、データセット１８２のその後の管理のための基礎として機能し得る。
【００３０】
[0038]次に、キーワードインデックス２１２は、データセット１８２を管理するために、少なくとも１つのレコードのそれぞれのキーワード２２０に基づいて、ＴＥＥ１７０において生成され得る（３２０）。ここで、キーワードインデックス２１２は、少なくとも１つのレコードのキーワードのセットを記述する。キーワードインデックス２１２は、様々な手法で生成され得ることが理解されよう。たとえば、単純化された実施では、リストが構築され得、データセット１８２内のすべてのレコードのキーワードがリストに追加されて、キーワードインデックス２１２を形成する。別の例として、セットがさらに構築され得、データセット１８２内のすべてのレコードのキーワードがセットに追加されて、キーワードインデックス２１２を形成する。
【００３１】
[0039]データセット１８２が多数のレコードを含む場合、上記のリストまたはセットによってキーワードインデックス２１２を生成すると、大量のストレージ空間を占有し、後でデータセット１８２を管理する場合、検索効率が低下する可能性があることが理解されよう。したがって、キーワードインデックス２１２は、ハッシュ関数に基づいてさらに生成され得る。具体的には、データセット１８２内の各キーワード２２０は、ハッシュ関数によってビットマップ内の１つのビットにマッピングされ得る。キーワードインデックス２１２が特定のキーワードを含むか否かを判定する必要がある場合、特定のキーワードに対応するビットの値が、ビットマップにおいて探索され得る。この原理に基づいて、当業者は、異なるハッシュ関数を使用して、キーワードインデックス２１２を生成することができる。具体的には、ブルームフィルタは、ストレージ空間および探索時間の観点で非常に有利であるため、キーワードインデックス２１２は、ブルームフィルタに基づいて実施され得る。
【００３２】
[0040]アプリケーション１７２が実行されている間、アプリケーション１７２は、データセット１８２に新しいレコードを追加できることが理解されよう。たとえば、銀行口座データベースの前述の例では、ユーザが銀行に新しい口座を開いた場合、新しい口座レコードがデータセット１８２に追加され得る。この場合、データセット１８２におけるレコードを更新することに加えて、キーワードインデックス２１２のコンテンツを更新する必要がある。
【００３３】
[0041]具体的に、図４は、本明細書で説明される主題の１つの実施により、データセット１８２に新しいレコードを追加するための方法のフローチャート４００を概略的に示す。図示するように、データセット１８２に新しいレコードを追加する要求が受信されると（４１０）、キーワードインデックス２１２は、新しく記録されたキーワードに基づいて更新され得（４２０）、新しいレコードがデータセット１８２に追加され得る。キーワードインデックス２１２を更新し、データセット１８２に新しいレコードを追加する動作は、図４に連続的に示されているが、他の実施では、これらの動作は、並列して、または逆の順序で実行され得ることが理解されよう。
【００３４】
[0042]アプリケーション１７２が実行されている間、アプリケーション１７２は、データセット１８２から既存のレコードを削除し得ることが理解されよう。たとえば、銀行口座データベースの前述の例では、ユーザが銀行口座を閉鎖した場合、既存の口座レコードがデータセット１８２から削除され得る。この時点で、データセット１８２内のレコードを更新することに加えて、キーワードインデックス２１２のコンテンツを更新する必要がある。
【００３５】
[0043]本明細書で説明される主題は、新しいレコードがデータセット１８２に追加され、既存のレコードがデータセット１８２から削除される場合を説明するが、場合によっては、新しいレコードのみを、データセット１８２に追加することが許可される一方、既存のレコードを、そこから削除することは許可されないことが理解されよう。たとえば、アプリケーション１７２が、コンピューティングデバイス１９０の実行状態を監視するアプリケーションであると仮定すると、コンピューティングデバイス１９０が実行されているとき、アプリケーション１７２は、事前定義された時間間隔でデータセット１８２に新しいログデータを挿入する。この時点で、既存のログをデータセット１８２から削除することは許可されない。
【００３６】
信頼できる実行環境における実施例
[0044]本明細書で説明される主題の１つの例示的な実施によれば、データセット１８２をより安全で信頼できる手法で管理するために、キーワードインデックス２１２が、ＴＥＥ１７０に生成され得る。図５を参照して、ＴＥＥ１７０におけるより具体的な実施についての詳細な説明が以下に提示される。図５は、本明細書で説明される主題の１つの実施による、データセット１８２のセキュリティ管理のための詳細なブロック図５００を概略的に示す。図示するように、本明細書で説明される主題によるセキュリティ管理モジュール２１０は、ＴＥＥ１７０において展開され得る。
【００３７】
[0045]ＴＥＥ１７０は、信頼できない実行環境１８０よりもはるかに高いセキュリティレベルを提供するので、キーワードインデックス２１２自体が安全で、ウィルスのようなマルウェアの添付から保護されることを保証するために、キーワードインデックス２１２が生成され、ＴＥＥ１７０に格納され得ることが理解されよう。この時点で、キーワードインデックス２１２は信頼されており、データセット１８２内の様々なキーワードとのその後の比較の基礎として機能できる。このようにして、データセット１８２のセキュリティがさらに改善され得る。
【００３８】
[0046]本明細書で説明される主題の１つの例示的な実施では、セキュリティ管理モジュール２１０はさらに、キャッシュ５１０を備え得る。この時点で、データセット１８２へのアクセスを求めるアクセス要求が受信された場合、アクセス要求に関連するレコードは、ＴＥＥ１７０の（図５の破線のボックスに示されるような）キャッシュ５１０に追加され得る。ＴＥＥ１７０に含まれる様々なリソースの数は制限されていることが理解されよう。いくつかの実施では、キャッシュ５１０のサイズは、ＴＥＥ１７０の特定の構成や、データアクセス効率に関するアプリケーション１７２の要件のような要因に応じて設定され得る。キャッシュ５１０は、たとえば、最近最も使用されていないポリシーに従って更新され得る。この実施では、キャッシュ５１０は、ＴＥＥ１７０内に存在するので、一方では、より高いセキュリティが提供され得、他方では、より速い応答速度がアプリケーション１７２に提供され得る。
【００３９】
[0047]本明細書で説明される主題の１つの例示的な実施において、本明細書で説明される主題による方法は、ＴＥＥ１７０において実行され得る。たとえば、図５に示されるような（たとえば、コンピュータプログラムとして実施される）セキュリティ管理モジュール２１０が展開され得、セキュリティ管理モジュール２１０は、ＴＥＥ１７０にロードされ得る。この実施では、データセット１８２に対してセキュリティ管理を実行するためのキャッシュ５１０、キーワードインデックス２１２、およびセキュリティ管理モジュール２１０はすべて、ＴＥＥ１７０に展開される。このようにして、セキュリティ管理に関連する各要因が安全であることが保証され得る。したがって、図５に示すように、ＴＥＥ１７０において実行されるすべての動作は安全であると見なされ得る。
【００４０】
データセットの状態検出
[0048]本明細書で説明される主題の１つの例示的な実施では、データセット１８２が異常を含むか否かは、データセット１８２内のキーワードが、キーワードインデックス２１２内のキーワードに一致するか否かに応じて判定され得る。バック口座情報を記憶する上記のデータセット１８２の例では、信頼できない実行環境１８０におけるデータセット１８２が攻撃され、新しい口座レコードが、データセット１８２に追加されると仮定する。この時点で、データセット１８２内のキーワードを、キーワードインデックス２１２と比較することにより、新しい口座レコードが、キーワードインデックス２１２に存在しないことが分かり、さらに、データセット１８２が異常を含んでいるか否かが判定され得る。
【００４１】
[0049]キーワードインデックス２１２が、異なる手法で実施される場合、「一致」／「不一致」を判断するためのアプローチは、異なる可能性があることが理解されよう。たとえば、キーワードインデックス２１２が、上記のリスト／セットを使用して実施される場合、リスト／セットが、特定のキーワードを備えているのであれば、その特定のキーワードは、キーワードインデックス２１２に一致すると見なされ、それ以外の場合は、不一致と結論付けられる。別の例として、キーワードインデックス２１２が、上記のハッシュ関数を使用して実施される場合、特定のキーワードに対応するキーワードインデックス２１２のビットの値をチェックすることによって、「一致」／「不一致」の結果が取得され得る。１つの例では、特定のキーワードに対応するビットの値が「１」（または、他の事前定義された値）である場合、判断結果は「一致」であり、そうではない場合、判断結果は「不一致」である。
【００４２】
[0050]本明細書で説明される主題の１つの例示的な実施では、比較演算が定期的に実行され得る。あるいは、データセット１８２へのアクセス要求が受信された場合、比較演算がさらに実行され得る。具体的には、データセット１８２に異常が発生するか否かは、「一致」／「不一致」の判断結果に応じて判定され得る。
【００４３】
[0051]本明細書で説明される主題の１つの例示的な実施では、受信された要求に関連するターゲットキーワードは、要求に基づいて受信され得る。ここで、ターゲットキーワードとは、要求が定義するようにアクセスされるレコードのキーワードを指す。たとえば、ＡＬＩＣＥのレコードへのアクセスを希望する要求の場合、ターゲットキーワードは「ＡＬＩＣＥ」である。たとえば、キーワードインデックス２１２が、ＡＬＩＣＥおよびＢＯＢを備えていると仮定する。キーワードがＡＬＩＣＥであるレコードを読み取る要求を受信した場合、最初に、キーワードがＡＬＩＣＥであるレコードが存在するか否かが、データセット１８２において探索され得る。存在する場合、発見されたレコードは、暗号化された方式で、ＴＥＥ１７０に返される。ＴＥＥ１７０において解読が成功した場合、キーワードがＡＬＩＣＥであるレコードは、マルウェアによって追加されたレコード以外に、データセット１８２に存在していたレコードであると判定される。この時点で、データセット１８２は正常状態にあると判定され得、発見されたターゲットレコードが返される。あるいは、キーワードがＡＬＩＣＥであるレコードが、データセット１８２において発見された場合、最初に、キーワードＡＬＩＣＥが、キーワードインデックス２１２に存在するか否かが判定され得、存在する場合、これは、データセット１８２が正常であり、その後、解読が実行され得ることを意味する。このようにして、暗号化されたレコードが信頼されているか否かが事前に判断され得、その後、解読は、暗号化されたレコードが信頼されている場合にのみ実行される。
【００４４】
[0052]本明細書で説明される主題の１つの例示的な実施では、キーワードインデックス２１２がＡＬＩＣＥおよびＢＯＢを備えていると仮定する。キーワードがＴＯＭであるレコードを読み取る要求を受信した場合、キーワードＴＯＭを備えるターゲットレコードが存在するか否かが、データセット１８２において探索され得る。キーワードＴＯＭを備えるターゲットレコードが、データセット１８２に発見されない場合、キーワードＴＯＭが、キーワードインデックス２１２に存在するか否かがさらに判定され得る。存在しない場合、キーワードがＴＯＭであるレコードをデータセット１８２が備えていないことを示すインジケーションが返され得る。この時点で、データセット１８２は正常状態にある。
【００４５】
[0053]データセット１８２が正常状態にある場合が、上記で紹介された。図６Ａおよび図６Ｂを参照して、データセット１８２内の異常を検出する方法についての詳細な説明が以下に提示される。図６Ａは、本明細書で説明される主題の１つの実施による、データセット１８２内の異常を検出するためのブロック図６００Ａを概略的に示す。図６Ａには、本明細書で説明される主題の実施によって生成されるキーワードインデックス６２０Ａが示されており、その時点において、キーワードインデックス６２０Ａは、２つのキーワード、すなわち、ＡＬＩＣＥおよびＢＯＢを備えている。キーワードインデックス６２０Ａが生成され、ＴＥＥ１７０に格納されるので、キーワードインデックス６２０Ａは、安全で信頼できると見なされ得ることに留意されたい。
【００４６】
[0054]信頼できない実行環境１８０におけるデータセット６１０Ａは攻撃され、新しい口座ＴＯＭにレコードが追加されたと仮定する。この時点で、口座ＴＯＭに関する情報をデータセット６１０Ａから読み取るための読取要求６３０Ａが受信された場合、暗号化されたレコード６４０Ａ（口座ＴＯＭが３０００元の残高を有することを読み取るレコード）が、データセット６１０Ａから返され得る。ＴＥＥ１７０における解読が失敗した場合、これは、キーワードＴＯＭが、キーワードインデックス６２０Ａに存在しないことを意味する。したがって、データセット６１０Ａにおける口座ＴＯＭのレコードが、マルウェアによって追加され、さらに、データセット６１０Ａが異常を含んでいると判定され得る。あるいは、解読は実行されない場合があるが、最初に、キーワードＴＯＭが、キーワードインデックス６２０Ａに存在するか否かが判定され、存在しない場合、データセット６１０Ａが異常であると直接判定され得る。このようにして、既存の暗号−解読ベースのデータセキュリティ管理に加えて、追加のデータセキュリティ管理ソリューションがさらに提供され得る。
【００４７】
[0055]図６Ｂは、本明細書で説明される主題の１つの実施により、データセット１８２内の異常を検出するためのブロック図６００Ｂを概略的に示す。図６Ｂには、本明細書で説明される主題の実施によって生成されるキーワードインデックス６２０Ｂが示されており、その時点では、キーワードインデックス６２０Ｂは、３つのキーワード、すなわち、ＡＬＩＣＥ、ＢＯＢ、およびＴＯＭを備えている。キーワードインデックス６２０Ｂが生成され、ＴＥＥ１７０に格納されるので、キーワードインデックス６２０Ｂは、安全で信頼できると見なされ得ることに留意されたい。
【００４８】
[0056]信頼できない実行環境１８０におけるデータセット６１０Ｂが攻撃され、新しい口座ＴＯＭのレコードが削除されたと仮定する。この時点で、口座ＴＯＭに関する情報をデータセット６１０Ｂから読み取る読取要求６３０Ｂが受信された場合、クエリ結果はヌルになる。この時点で、キーワードインデックス６２０ＢはキーワードＴＯＭを備えているが、クエリ結果がヌルであるため、データセット６１０Ｂの口座ＴＯＭにおけるレコードがマルウェアによって削除され、データセット６１０Ｂが異常を含んでいると判定され得る。
【００４９】
[0057]前述の実施では、データセット１８２が異常を含むか否かは、データセット１８２内のキーワードを、キーワードインデックス２１２と比較して、それらが互いに一致するか否かを確認することによって簡単に判定され得る。このようにして、データセット１８２の状態は、大量の計算をすることなく、より簡単でより効果的な手法で検出され得る。
【００５０】
[0058]マルウェアがデータセット１８２に新しいレコードを追加し、データセット１８２から既存のレコードを削除する場合を上記したが、データセットが、ログレコードを格納するためのものである場合、新しいレコードがデータセット１８２に追加されたか否かのみが検出され得る。
【００５１】
データセットの例
[0059]データセット１８２のセキュリティ管理のための特定のプロセスが、例として、口座名および口座残高を備える単純なデータセット１８２を取り上げることによって説明された。以下、データセット１８２のより具体的な例が説明される。本明細書で説明される主題の文脈全体を通して、データセット１８２内の各レコードによって含まれるフィールドの数を制限することを意図していないことに留意されたい。他の実施では、データセットは、より多くのフィールドを備える場合がある。たとえば、銀行口座データを格納するためのデータセット１８２は、性別、職業などの他の属性をさらに備え得る。
【００５２】
[0060]本明細書で説明される主題の１つの例示的な実施では、データセット１８２は、ブロックチェーンベースのデータベースのデータセットであり得、データセット１８２内の少なくとも１つのレコードのレコードは、ブロックチェーンにおけるキーワードと、ノードの値とを説明する。ブロックチェーンは、データブロックが時間順に順番に接続されているリンクされたデータ構造であり、ブロックチェーンのデータ構造は、追跡可能で検証可能な整合性のプロパティを備えていることが理解されよう。ブロックチェーン内の様々なノードのデータは変更され得ないが、新しく追加されたノードは、ブロックチェーンの最後に追加され得る。ブロックチェーン技術は、データの改ざんを効果的に防止し、格納されたデータの操作履歴を、より信頼性の高い手法で記録できるため、ブロックチェーン技術は広く使用されている。
【００５３】
[0061]図７を参照して、ブロックチェーンベースのデータベースに本明細書に説明されている主題の方法を適用することのさらなる詳細に対する詳細な説明が以下に提示される。図７は、本明細書で説明される主題の１つの実施に従って、ブロックチェーンベースのデータベースのデータセットを管理するためのブロック図７００を概略的に示す。図７の上部は、ブロックチェーンベースのデータベースの論理図を例示する。この論理図では、ブロック１（ノード７１０として示される）およびブロック２（ノード７２０として示される）は、ともにリンクされ、背後のノード７２０は、ノード７１０よりも後の時点で発生するイベントを記録する。
【００５４】
[0062]ブロックチェーンは、マークルツリーに基づいて生成され得る。マークルは、二分木または多分木であり得るツリー構造であることが理解されよう。マークルツリーのリーフノードは、値（保存されるコンテンツに関連するデータを含む）を有し得、非リーフノードの値は、すべての下位リーフノードの値から計算される。たとえば、マークルハッシュツリーでは、リーフノードは、保存されるデータ（たとえば、口座名および口座残高を備える上記の口座情報）を格納することができ、非リーフノードは、非リーフノードの子ノードコンテンツのハッシュ値を格納する。
【００５５】
[0063]図７に示すようなマークルツリーでは、ノード７１０は、第１の瞬間において口座情報を記録することができ、ノード７１０の子ノード７１２は、口座ＡＬＩＣＥが１０００元の残高を有することを記録し得る。第２の瞬間に、５００元が口座ＡＬＩＣＥから、口座ＢＯＢに送金され、その後、この時点において、口座ＡＬＩＣＥと口座ＢＯＢとの両方の残高が変化すると仮定する。ノード７２０は、第２の瞬間において、様々な口座情報を記録することができる。たとえば、リーフノード７２８、７３０は、第２の瞬間において、口座ＡＬＩＣＥおよび口座ＢＯＢの残高が、それぞれ５００元および５００元であることを記録することができる。リーフノード７２４は、口座ＡＬＩＣＥから口座ＢＯＢへの送金動作を記録することができる。他の中間ノードにおけるデータは、マークルの原理によって判定され得る。
【００５６】
[0064]図７の下部分は、ブロックチェーンベースのデータベースを格納するための物理図を示す。この物理図では、様々なノードにおけるデータが、「キーワード値」方式で格納される。たとえば、レコード７４０は、ブロック１に関する情報を格納し、「キーワード」フィールドは、ブロック１のハッシュ値を格納し、「値」フィールドは、ブロック１のデータを格納する。論理図中の他のノードにおけるデータも同様に記憶される場合があるが、ここでは無視される。図７は、第１の瞬間および第２の瞬間において口座情報が格納される概略的なブロックチェーンを単に示すに過ぎないことが理解されよう。他の実施では、ブロックチェーンベースのデータベースは、より多くの瞬間において口座情報をさらに備え得るか、または預金、引き出し、送金などのより複雑な動作をさらに備え得る。
【００５７】
[0065]上記の原理から分かるように、物理ストレージは、ブロックチェーンベースのデータベースの論理図が何であれ、図７に示されるように、物理図のデータセットを備える。したがって、主題に説明されている方法は、ブロックチェーン物理ストレージに関して適用され得る。本明細書で説明される主題の１つの例示的な実施では、上記の信頼できない実行環境１８０内のデータセット１８２は、ブロックチェーン物理ストレージであり得る。具体的には、先ず、ブロックチェーン物理ストレージに備えられる様々なレコードが取得され得、次に、様々なレコード内の対応するキーワードに基づいてキーワードインデックス２１２が構築され得、ブロックチェーンデータベースの動作中、より高いセキュリティレベルで、ブロックチェーンデータベースを管理するために使用され得る。この実施では、ブロックチェーン物理ストレージは、上記の信頼できない実行環境１８０において展開され得、ブロックチェーンデータベースにアクセスするためのアプリケーション１７２（たとえば、銀行口座管理アプリケーション）は、ＴＥＥ１７０において展開され得る。
【００５８】
[0066]このようにして、一方では、ブロックチェーンベースのデータベースは、ブロックチェーン技術のセキュリティ保護から利益を得ることができ、他方では、ブロックチェーンベースのデータベースは、本明細書で説明される主題によって提供されるように、異常がブロックチェーン物理ストレージにおいて発生するか否かを、ＴＥＥ１７０において監視する追加のセーフガードからさらに利益を得ることができる。マルウェアが、ＴＥＥ１８０内のデータセット１８２にレコードを追加したり、ＴＥＥ１８０内のデータセット１８２からレコードを削除する可能性がある場合が上記されたが、ブロックチェーンベースのデータベースでは、ブロックチェーンベースの物理ストレージ内のレコードは追加されて不変であるため、レコードがデータセットに追加されているか否かを検出する場合のみが含まれることが理解されよう。
【００５９】
[0067]本明細書で説明される主題の１つの例示的な実施では、上記の信頼できない実行環境１８０におけるデータセット１８２は、リレーショナルデータベース内のデータテーブルであり得る。図８は、本明細書で説明される主題の１つの実施により、リレーショナルデータベースを管理するためのブロック図８００を概略的に示す。具体的には、図８は、オペレーティングシステムのログを記録するためのデータテーブルの概略図を示し、キーワードフィールドは、タイムスタンプデータを格納することができ、値フィールドは、オペレーティングシステムの検出された状態を格納し得る。たとえば、レコード８１０は、ＣＰＵ使用率は５０％、メモリ使用率は２０％という２０１８年１月１日の００：００におけるオペレーティングシステムの状態を表すことができる。この実施では、ログレコードが追加されて不変であるため、レコードがデータセットに追加されたか否かを検出する場合のみが含まれる。本明細書で説明される主題の１つの例示的な実施では、データセット１８２が、他の形式のデータテーブル（たとえば、上記の銀行口座データベース）である場合、マルウェアが、データセット１８２に新しいレコードを追加した、またはデータセット１８２から既存のデータを削除したという異常が、さらに検出され得る。
【００６０】
[0068]このようにして、一方では、図８に示されるようなデータベースは、データベース自体の暗号−解読ベースの技術のセキュリティ保護から利益を得ることができ、他方では、データベースは、本明細書で説明される主題によって提供されるように、ＴＥＥ１７０におけるデータベースに異常が発生するか否かを監視するための追加のセーフガードからさらに利益を得ることができる。
【００６１】
例示的な実施
[0069]本明細書で説明される主題のいくつかの例示的な実施が、以下にリストされる。
[0070]１つの態様では、コンピュータで実施される方法が提供される。この方法は、レコードを識別するためのキーワードと、キーワードに対応する値とを少なくとも備えるレコードの、少なくとも１つのレコードを備えるデータセットを取得することと、少なくとも１つのレコードのそれぞれのキーワードに基づいて、信頼できる実行環境においてキーワードインデックスを生成することとを備え、キーワードインデックスは、少なくとも１つのレコードのキーワードのセットを記述する。
【００６２】
[0071]いくつかの実施では、方法は、データセットに新しいレコードを追加する要求を受信することに応じて、新しいレコードのキーワードに基づいてキーワードインデックスを更新することと、新しいレコードをデータセットに追加することとをさらに備える。
【００６３】
[0072]いくつかの実施では、方法は、データセット内のレコードを読み取る要求を受信することに応じて、要求に関連するターゲットキーワードを決定することと、ターゲットキーワードを備えるターゲットレコードが、データセットに発見されないことに応じて、ターゲットキーワードをキーワードインデックスと比較することと、ターゲットキーワードがキーワードインデックスに一致することに応じて、データセットに異常が発生したことを示すインジケーションを提供することとをさらに備える。
【００６４】
[0073]いくつかの実施では、方法は、ターゲットキーワードがキーワードインデックスに一致しないことに応じて、要求に関連するレコードをデータセットが備えていないことを示すインジケーションを提供することをさらに備える。
【００６５】
[0074]いくつかの実施では、方法は、データセット内のレコードを読み取る要求を受信することに応じて、要求に関連するターゲットキーワードを決定することと、ターゲットキーワードを備えるターゲットレコードが、データセット内で発見されたことに応じて、ターゲットキーワードをキーワードインデックスと比較することと、ターゲットキーワードがキーワードインデックスに一致することに応じて、要求に関連するターゲットレコードを、データセットが備えていることを示すインジケーションを提供することとをさらに備える。
【００６６】
[0075]いくつかの実施では、方法は、ターゲットキーワードがキーワードインデックスに一致しないことに応じて、データセットに異常が発生したことを示すインジケーションを提供することをさらに備える。
【００６７】
[0076]いくつかの実施では、データセットは、ブロックチェーンベースのデータベースのデータセットであり、データセット内の少なくとも１つのレコードのレコードは、ブロックチェーン内のノードのキーワードおよび値を記述する。
【００６８】
[0077]いくつかの実施では、データセットは、信頼できない実行環境において格納される。
[0078]いくつかの実施では、この方法は、データセットにアクセスするためのアクセス要求を受信することに応じて、アクセス要求に関連するレコードを、信頼できる実行環境におけるキャッシュに追加することをさらに備える。
【００６９】
[0079]いくつかの実施では、方法は、信頼できる実行環境において実行される。
[0080]別の態様では、コンピュータで実施される装置が提供される。装置は、処理ユニットと、処理ユニットに結合され、格納された命令を含むメモリであって、命令は、処理ユニットによって実行された場合、装置に対して動作を実行させる、メモリとを備える。動作は、レコードを識別するためのキーワードと、キーワードに対応する値とを少なくとも備えるレコードの、少なくとも１つのレコードを備えるデータセットを取得することと、少なくとも１つのレコードのそれぞれのキーワードに基づいて、信頼できる実行環境においてキーワードインデックスを生成することとを備え、キーワードインデックスは、少なくとも１つのレコードのキーワードのセットを記述する。
【００７０】
[0081]いくつかの実施では、動作は、データセットに新しいレコードを追加する要求を受信することに応じて、新しいレコードのキーワードに基づいてキーワードインデックスを更新することと、新しいレコードをデータセットに追加することとをさらに備える。
【００７１】
[0082]いくつかの実施では、動作は、データセット内のレコードを読み取る要求を受信することに応じて、要求に関連するターゲットキーワードを決定することと、ターゲットキーワードを備えるターゲットレコードが、データセットに発見されないことに応じて、ターゲットキーワードをキーワードインデックスと比較することと、ターゲットキーワードがキーワードインデックスに一致することに応じて、データセットに異常が発生したことを示すインジケーションを提供することとをさらに備える。
【００７２】
[0083]いくつかの実施では、動作は、ターゲットキーワードがキーワードインデックスに一致しないことに応じて、要求に関連するレコードを、データセットが備えていないことを示すインジケーションを提供することをさらに備える。
【００７３】
[0084]いくつかの実施では、動作は、データセット内のレコードを読み取る要求を受信することに応じて、要求に関連するターゲットキーワードを決定することと、ターゲットキーワードを備えるターゲットレコードが、データセットに発見されないことに応じて、ターゲットキーワードをキーワードインデックスと比較することと、ターゲットキーワードがキーワードインデックスに一致することに応じて、要求に関連するターゲットレコードを、データセットが備えていることを示すインジケーションを提供することとをさらに備える。
【００７４】
[0085]いくつかの実施では、動作は、ターゲットキーワードがキーワードインデックスに一致しないことに応じて、データセットに異常が発生したことを示すインジケーションを提供することをさらに備える。
【００７５】
[0086]いくつかの実施では、データセットは、ブロックチェーンベースのデータベースのデータセットであり、データセット内の少なくとも１つのレコードのレコードは、ブロックチェーン内のノードのキーワードおよび値を記述する。
【００７６】
[0087]いくつかの実施では、データセットは、信頼できない実行環境において格納される。
[0088]いくつかの実施では、動作は、データセットにアクセスするためのアクセス要求を受信することに応じて、アクセス要求に関連するレコードを、信頼できる実行環境におけるキャッシュに追加することをさらに備える。
【００７７】
[0089]いくつかの実施では、方法は、信頼できる実行環境において実行される。
[0090]さらなる態様では、デバイスによって実行された場合、デバイスに対して、上記の態様のいずれかで方法を実行させるマシン実行可能命令を備えた、非一時的なコンピュータ記憶媒体が提供される。
【００７８】
[0091]さらに別の態様では、非一時的なコンピュータ記憶媒体に有体的に格納され、デバイスによって実行された場合、デバイスに対して、上記態様のいずれかの方法を実行させるマシン実行可能命令を備えたコンピュータプログラム製品が提供される。
【００７９】
[0092]本明細書で説明される機能は、少なくとも部分的に、１つまたは複数のハードウェア論理構成要素によって実行され得る。たとえば、限定することなく、使用され得るハードウェア論理構成要素の例示的なタイプは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、特定用途向け標準製品（ＡＳＳＰ）、システムオンチップシステム（ＳＯＣ）、コンプレックスプログラマブル論理デバイス（ＣＰＬＤ）などを含む。
【００８０】
[0093]本明細書で説明される主題の方法を実行するためのプログラムコードは、１つまたは複数のプログラミング言語の任意の組合せで記述され得る。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサまたはコントローラに提供され得、その結果、プログラムコードは、プロセッサまたはコントローラによって実行された場合、フローチャートおよび／またはブロック図において指定された機能／動作を実行させる。プログラムコードは、完全にマシン上で、部分的にマシン上で、スタンドアロンソフトウェアパッケージとして、一部がマシン上で一部がリモートマシン上で、または完全にリモートマシンまたはサーバ上で実行できる。
【００８１】
[0094]本明細書で説明される主題の文脈において、マシン可読媒体は、命令実行システム、装置、またはデバイスによって、またはそれに関連して使用するためのプログラムを含む、または格納することができる任意の有体的な媒体であり得る。マシン可読媒体は、マシン可読信号媒体またはマシン可読記憶媒体であり得る。マシン可読媒体には、電子、磁気、光学、電磁気、赤外線、または半導体システム、装置、またはデバイス、あるいは前述の任意の適切な組合せを含み得るが、これらに限定されない。マシン可読記憶媒体のより具体的な例は、１つまたは複数のワイヤを有する電気接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、消去可能なプログラム可能な読取専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、光ファイバ、ポータブルコンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）、光ストレージデバイス、磁気ストレージデバイス、または前述の任意の適切な組合せを含むであろう。
【００８２】
[0095]さらに、動作は特定の順序で示されているが、これは、望ましい結果を達成するために、そのような動作が、示される特定の順序、または連続した順序で実行されること、または図示されるすべての動作が実行されることを要求することとして理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利な場合がある。同様に、いくつかの特定の実施の詳細が、上記の議論に含まれているが、これらは、ここに説明する主題の範囲の限定としてではなく、特定の実施に固有であり得る機能の説明として解釈されるべきである。個別の実施のコンテキストで説明されている特定の機能は、単一の実施で、組合せで実施され得る。逆に、単一の実施のコンテキストで説明される様々な機能はまた、複数の実施で個別に、または任意の適切な部分的な組合せで実施され得る。
【００８３】
[0096]主題は、構造的特徴および／または方法論的動作に固有の言語で説明されたが、添付の特許請求の範囲で指定される主題は、必ずしも上記の特定の特徴または動作に限定されないことを理解されたい。むしろ、上記の特定の特徴および動作は、特許請求の範囲を実施する例示的な形態として開示される。
【図１】
2021523483.tif 000003
【図２】
2021523483.tif 000004
【図３】
2021523483.tif 000005
【図４】
2021523483.tif 000006
【図５】
2021523483.tif 000007
【図６Ａ】
2021523483.tif 000008
【図６Ｂ】
2021523483.tif 000009
【図７】
2021523483.tif 000010
【図８】
2021523483.tif 000011
【国際調査報告】
2021523483.tif 000012
2021523483.tif 000013
2021523483.tif 000014