(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-08
(45)【発行日】2024-10-17
(54)【発明の名称】暗号化されたオブジェクトの作成者の識別
(51)【国際特許分類】
H04L 9/08 20060101AFI20241009BHJP
H04L 9/32 20060101ALI20241009BHJP
G06F 21/60 20130101ALI20241009BHJP
【FI】
H04L9/08 C
H04L9/32 200A
H04L9/08 E
G06F21/60 320
(21)【出願番号】P 2022569571
(86)(22)【出願日】2021-03-24
(86)【国際出願番号】 CN2021082667
(87)【国際公開番号】W WO2021232934
(87)【国際公開日】2021-11-25
【審査請求日】2023-08-10
(32)【優先日】2020-05-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ソフィア、アンソニー、トーマス
(72)【発明者】
【氏名】デロバティス、クリストファー、ブイ
(72)【発明者】
【氏名】カトニカ、ジェーソン、ジー
【審査官】金沢 史明
(56)【参考文献】
【文献】米国特許出願公開第2019/0356468(US,A1)
【文献】特開2017-076964(JP,A)
【文献】特開平11-039262(JP,A)
【文献】特開2018-006852(JP,A)
【文献】米国特許出願公開第2013/0042112(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/06
H04L 9/08
H04L 9/32
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
プロセッサによって、プレーンテキストおよび前記プレーンテキストを記述するメタデータを含む、暗号化されていないオブジェクトを受信すること、
プロセッサによって、ユーザからの要求に応答して、前記暗号化されていないオブジェクトのデータ暗号化鍵(DEK)およびノンス鍵を取得することであって、前記ノンス鍵は、ユーザに対して一意である、取得すること、
プロセッサによって、前記暗号化されていないオブジェクトを暗号化することであって、
前記プレーンテキストおよび前記ノンス鍵に少なくとも部分的に基づいて、ノンスを生成すること、および、
暗号文と、前記メタデータのシグネチャを含むメタデータ認証タグとを生成することであって、前記プレーンテキスト、前記メタデータ、前記DEKおよび前記ノンスに少なくとも部分的に基づく前記生成すること、を含む、前記暗号化すること、ならびに、
プロセッサによって、前記暗
号文、前記メタデータ、および前記メタデータ認証タグを含む暗号化されたオブジェクトを作成すること、
を含む、暗号化したオブジェクトの作成者が識別できるようにオブジェクトを暗号化する方法。
【請求項2】
前記ノンスは一回生成され、前記暗号化されたオブジェクトが生成されたことに応答して、前記ノンスは、前記暗号化されたオブジェクト内の前記ノンスへのポインタを介して、前記暗号化されたオブジェクトにリンクされ、または、前記暗号化されたオブジェクト内の前記ノンスの包含を介して、前記暗号化されたオブジェクトにリンクされる、請求項1に記載の方法。
【請求項3】
前記ノンスを前記生成することは、前記プレーンテキストおよび前記ノンス鍵を入力として受け取り、前記ノンスを出力する、ノンス暗号化アルゴリズムを実行することを含む、請求項1に記載の方法。
【請求項4】
前記ノンス暗号化アルゴリズムが、暗号ベース・メッセージ認証コードを有する高度暗号化標準(AES-CMAC)暗号化アルゴリズムである、請求項3に記載の方法。
【請求項5】
複数のノンス鍵がDEKに対応し、前記ノンス鍵は、前記複数のノンス鍵に含まれる、請求項1に記載の方法。
【請求項6】
前記暗号化されていないオブジェクトを前記暗号化することは、ガロア/カウンター・モードの高度暗号化標準(AES-GCM)暗号化アルゴリズムを使用して実行される、請求項1に記載の方法。
【請求項7】
プロセッサによって、第2の暗号化されたオブジェクトであって、前記DEKおよび第2のノンスに少なくとも部分的に基づいて第2のオブジェクトを暗号化することによって、前もって生成された前記第2の暗号化されたオブジェクトを受信すること、
前記DEKに対応する複数のノンス鍵を取得することであって、前記複数のノンス鍵のそれぞれは、特定のユーザに対応する、取得すること、
前記第2の暗号化されたオブジェクトに対応する第2の暗号化されていないオブジェクトのコピーを取得すること、
複数のノンスのそれぞれが、前記複数のノンス鍵の1つを使用して作成される、前記複数のノンスを作成すること、
前記第2のノンスと一致する、前記複数のノンスの1つを識別すること、および、
前記複数のノンスの1つを生成するのに使用されたノンス鍵に関連付けられた前記特定のユーザを、前記第2の暗号化されたオブジェクトの作成者として識別すること、
をさらに含む、請求項1に記載の方法。
【請求項8】
前記第2の暗号化されていないオブジェクトのコピーを取得することは、前記DEKおよび前記第2のノンスを使用して、前記第2の暗号化されたオブジェクトを復号することを含む、請求項7に記載の方法。
【請求項9】
コンピュータ可読命令を実行するための1つまたは複数のプロセッサを含み、前記コンピュータ可読命令は、前記1つまたは複数のプロセッサを制御して、
プレーンテキストおよび前記プレーンテキストを記述するメタデータを含む、暗号化されていないオブジェクトを受信すること、
ユーザからの要求に応答して、前記暗号化されていないオブジェクトのデータ暗号化鍵(DEK)およびノンス鍵であって、ユーザに対して一意であるノンス鍵を取得すること、
前記暗号化されていないオブジェクトを暗号化することであって、
前記プレーンテキストおよび前記ノンス鍵に少なくとも部分的に基づいて、ノンスを生成すること、および、
暗号文と、前記メタデータのシグネチャを含むメタデータ認証タグとを生成することであって、前記プレーンテキスト、前記メタデータ、前記DEKおよび前記ノンスに少な
くとも部分的に基づく前記生成すること、を含む、前記暗号化すること、ならびに、
前記暗
号文、前記メタデータ、および前記メタデータ認証タグを含む暗号化されたオブジェクトを作成すること、
を含む動作を実行する、システム。
【請求項10】
前記ノンスは一回生成され、前記暗号化されたオブジェクトが生成されたことに応答して、前記ノンスは、前記暗号化されたオブジェクト内の前記ノンスへのポインタを介して、前記暗号化されたオブジェクトにリンクされ、または、前記暗号化されたオブジェクト内の前記ノンスの包含を介して、前記暗号化されたオブジェクトにリンクされる、請求項9に記載のシステム。
【請求項11】
前記ノンスを前記生成することは、前記プレーンテキストおよび前記ノンス鍵を入力として受け取り、前記ノンスを出力する、ノンス暗号化アルゴリズムを実行することを含む、請求項9に記載のシステム。
【請求項12】
前記ノンス暗号化アルゴリズムが、暗号ベース・メッセージ認証コードを有する高度暗号化標準(AES-CMAC)暗号化アルゴリズムである、請求項11に記載のシステム。
【請求項13】
複数のノンス鍵がDEKに対応し、前記ノンス鍵は、前記複数のノンス鍵に含まれる、請求項9に記載のシステム。
【請求項14】
前記暗号化されていないオブジェクトを前記暗号化することは、ガロア/カウンター・モードの高度暗号化標準(AES-GCM)暗号化アルゴリズムを使用して実行される、請求項9に記載のシステム。
【請求項15】
第2の暗号化されたオブジェクトであって、前記DEKおよび第2のノンスに少なくとも部分的に基づいて第2のオブジェクトを暗号化することによって、前もって生成された前記第2の暗号化されたオブジェクトを受信すること、
前記DEKに対応する複数のノンス鍵を取得することであって、前記複数のノンス鍵のそれぞれは、特定のユーザに対応する、取得すること、
前記第2の暗号化されたオブジェクトに対応する第2の暗号化されていないオブジェクトのコピーを取得すること、
複数のノンスのそれぞれが、前記複数のノンス鍵の1つを使用して作成される、前記複数のノンスを作成すること、
前記第2のノンスと一致する、前記複数のノンスの1つを識別すること、および、
前記複数のノンスの1つを生成するのに使用されたノンス鍵に関連付けられた前記特定のユーザを、前記第2の暗号化されたオブジェクトの作成者として識別すること、
をさらに含む、請求項9に記載のシステム。
【請求項16】
前記第2の暗号化されていないオブジェクトのコピーを取得することは、前記DEKおよび前記第2のノンスを使用して、前記第2の暗号化されたオブジェクトを復号することを含む、請求項15に記載のシステム。
【請求項17】
コンピュータが実行するコンピュータ・プログラムであって、前記コンピュータに、
プレーンテキストおよび前記プレーンテキストを記述するメタデータを含む、暗号化されていないオブジェクトを受信すること、
ユーザからの要求に応答して、前記暗号化されていないオブジェクトのデータ暗号化鍵(DEK)およびノンス鍵であって、ユーザに対して一意であるノンス鍵を取得すること、
前記暗号化されていないオブジェクトを暗号化することであって、
前記プレーンテキストおよび前記ノンス鍵に少なくとも部分的に基づいて、ノンスを生成すること、および、
暗号文と、前記メタデータのシグネチャを含むメタデータ認証タグとを生成することであって、前記プレーンテキスト、前記メタデータ、前記DEKおよび前記ノンスに少なくとも部分的に基づく前記生成すること、を含む、前記暗号化すること、ならびに、
前記暗
号文、前記メタデータ、および前記メタデータ認証タグを含む暗号化されたオブジェクトを作成すること、
を実行させる、コンピュータ・プログラム。
【請求項18】
前記ノンスは一回生成され、前記暗号化されたオブジェクトが生成されたことに応答して、前記ノンスは、前記暗号化されたオブジェクト内の前記ノンスへのポインタを介して、前記暗号化されたオブジェクトにリンクされ、または、前記暗号化されたオブジェクト内の前記ノンスの包含を介して、前記暗号化されたオブジェクトにリンクされる、請求項17に記載のコンピュータ・プログラム。
【請求項19】
前記ノンスを前記生成することは、前記プレーンテキストおよび前記ノンス鍵を入力として受け取り、前記ノンスを出力する、ノンス暗号化アルゴリズムを実行することを含む、請求項17に記載のコンピュータ・プログラム。
【請求項20】
前記ノンス暗号化アルゴリズムが、暗号ベース・メッセージ認証コードを有する高度暗号化標準(AES-CMAC)暗号化アルゴリズムである、請求項19に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、データを暗号化することに関し、特に、暗号化されたオブジェクトの作成者を識別できるように、データ暗号化鍵(DEK)を使用してデータを暗号化することに関する。
【0002】
高度暗号化標準(AES)は、電子データを保護するために用いられることができる暗号アルゴリズムを指定する。AESアルゴリズムは、情報を暗号化(encrypt、encipher)および復号(decrypt、decipher)できる対称ブロック暗号である。暗号化は、データを、暗号文として参照される判読不能な形式のデータに変換し、暗号文を復号することは、データを、プレーンテキストとして参照される元の形式に変換する。AESアルゴリズムは、128ビット、192ビットおよび256ビットの暗号鍵を使用して、128ビットのブロック内のデータを暗号化および復号することができる。
【0003】
ガロア/カウンター・モードのAES(AES-GCM)は、認証付き暗号化(秘密性および認証)と、平文で送られる(すなわち、暗号化なしの)追加の認証済みデータ(AAD)の完全性および認証をチェックする機能の両方を提供する。AES-CGM暗号化には、鍵(例えば、AES鍵またはDEK)、初期化ベクトル(IV)(「ノンス」とも参照される)、プレーンテキスト、およびオプションのAADの4つの入力がある。ノンスおよびAADは、平文で渡され、すなわち、AES-GCMに入力されたのと同じ形式で、AES-GCM暗号化から出力される。AES-GCMからの2つの追加の出力、プレーンテキストと同じ長さの暗号テキスト、および、AADが暗号化に入力される場合、AADを認証するために用いられる認証タグがある。
【0004】
AES-GCMは、ストリーム暗号であり、そのため、DEKを用いて暗号化されたストリームごとに、異なるIVを使用する必要がある。したがって、同じプレーンテキスト値が、同じDEKでAES-GDMを使用して暗号化されるたびに、異なる暗号文値をもたらす。
【発明の概要】
【0005】
本発明の実施形態は、暗号化されたオブジェクトの作成者が識別できるように、オブジェクトを暗号化することを対象とする。非限定的な例のコンピュータ実装方法は、プロセッサによって、プレーンテキストおよびプレーンテキストを記述するメタデータを含む、暗号化されていないオブジェクトを受信すること、および、プロセッサによって、ユーザからの要求に応答して、暗号化されていないオブジェクトに対するデータ暗号化鍵(DEK)およびノンス鍵を取得することであって、ノンス鍵は、ユーザに対して一意である、取得することを含む。方法は、プロセッサによって、暗号化されていないオブジェクトを暗号化することも含む。暗号化することは、プレーンテキストおよびノンス鍵に少なくとも部分的に基づいて、ノンスを生成すること、および、暗号文およびメタデータのシグネチャを含むメタデータ認証タグを生成することを含み、生成することは、プレーンテキスト、メタデータ、DEKおよびノンスに少なくとも部分的に基づく。方法は、さらに、暗号化文、メタデータ、およびメタデータ認証タグを含む暗号化されたオブジェクトを作成することを含む。
【0006】
本発明の他の実施形態は、上述した方法の特徴をコンピュータ・システムおよびコンピュータ・プログラム製品に実装する。
【0007】
追加の技術的な特徴および利点は、本発明の技術を通じて実現される。本発明の実施形態および態様は、本明細書に詳細に記載され、請求される主題の一部と見なされる。よりよい理解のために、詳細な説明および図面を参照する。
【0008】
本明細書で説明される排他的権利の詳細は、明細書末尾の特許請求の範囲で特に指摘され、明確に請求される。本発明の実施形態の上記およびその他の特徴および利点は、添付図面と併せて、以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0009】
【
図1】本発明の1つまたは複数の実施形態による、暗号化エンジンのブロック図を示す。
【
図2】本発明の1つまたは複数の実施形態による、復号エンジンのブロック図を示す。
【
図3】本発明の1つまたは複数の実施形態による、ノンス生成エンジンのブロック図を示す。
【
図4】本発明の1つまたは複数の実施形態による、暗号化されたオブジェクトの作成者が識別できるようにオブジェクトを暗号化する方法のフロー図を示す。
【
図5】本発明の1つまたは複数の実施形態による、オブジェクトを暗号化し、送信し、復号する分散システム環境を示す。
【
図6】本発明の1つまたは複数の実施形態による、暗号化されたオブジェクトの作成者を識別するための方法のフロー図を示す。
【
図7】本発明の1つまたは複数の実施形態による、クラウド・コンピューティング環境を示す。
【
図8】本発明の1つまたは複数の実施形態による、抽象化モデル層を示す。
【
図9】本発明の1つまたは複数の実施形態による、暗号化されたオブジェクトの作成者が識別できるようにオブジェクトを暗号化するシステムを示す。
【発明を実施するための形態】
【0010】
本明細書に示される図面は、例示である。本発明の精神から逸脱することなく、図面または図面に記載された動作には多くの変形があり得る。例えば、動作は、異なる順序で実行されてよく、または、動作が、追加され、削除され、もしくは修正されてもよい。また、用語「結合された(coupled)」およびその派生語は、2つの要素間の通信経路を有することを記述し、要素間に介在する要素/接続のない、要素間の直接接続を意味しない。これらの変形のすべては、明細書の一部とみなされる。
【0011】
本発明の1つまたは複数の実施形態は、暗号化されたオブジェクトの作成者を識別できるように、オブジェクトを暗号化する機能を提供する。本発明の1つまたは複数の実施形態によれば、認証タグを有するガロア/カウンター・モードの高度暗号化標準(AES-GCM)が、暗号化されたオブジェクトの作成者が決定できるように、実装される。これは、AES-GCMアルゴリズムによって生成される暗号文の強度を損なうことなく実行される。
【0012】
認証タグを有するAES-GCMアルゴリズムは、平文の(暗号化されていない)メタデータを、暗号文に結合するのに用いることができる。当技術分野で知られているように、所与のDEKに対する各AES-GCM動作または暗号化は、DEKおよび暗号化されるプレーンテキストとともに、暗号化操作への入力として、一意のノンスを必要とする。すなわち、任意のDEKで使用されるノンス値のセットは、いかなる重複値も含んではならない。同じDEKで暗号化された2つの異なるメッセージについて同じノンスを使用することは、AES-GCM暗号化のセキュリティ特性に影響する。したがって、同じプレーンテキスト値がAES-GCMを使用して暗号化されるたびに、同じDEKが使用される場合でも、異なる暗号文値をもたらす。暗号化を実行するのに使用されるノンスは、暗号化文をプレーンテキストに復号するために、復号アルゴリズムによって知られていることも必要である。各ユーザに一意のノンス鍵を有することは、本明細書で説明される1つまたは複数の実施形態によって提供されるように、暗号化されたオブジェクトの作成者を決定することを可能にする。例えば、単一のDEKが、それぞれが互いに異なり、それぞれが異なるユーザに関連付けられた、複数の異なるノンス鍵とリンクされ得る。いくつかの実施形態では、単一のノンス鍵が、2以上の異なるDEKにリンクされることが禁止される。
【0013】
本明細書で使用されるように、「オブジェクト」は、プレーンテキスト(または、オブジェクトが暗号化されている場合は、暗号化文)およびプレーンテキストを記述するメタデータを含む。メタデータの例は、限定されないが、プレーンテキスト・データの名前もしくはラベル(例えば、「住所」、「部門番号」、「名前」など)、もしくはプレーンテキストの特性(例えば、整数、文字列など)またはその両方を含む。
【0014】
本発明の1つまたは複数の実施形態によれば、DEKが定義されると、本明細書で「ノンス鍵」として参照される、パートナー鍵も作成される。本発明の1つまたは複数の実施形態によれば、オブジェクトは、DEK、1つまたは複数のノンス鍵、ならびにオブジェクトに含まれるノンス鍵およびプレーンテキストに基づいて生成されるノンスを含むか、または、これらにリンクされる。本発明の1つまたは複数の実施形態によれば、オブジェクトは、DEKにリンクされ、DEKは、ノンス鍵にリンクされる。オブジェクト、よってノンスを作成しているシステムのみが、ノンス鍵へのアクセスを必要とするように、復号を実行するためにノンス鍵へのアクセスを必要とはしない。本発明の1つまたは複数の実施形態によれば、プレーンテキストのビット数は、暗号文のビット数と等しい。AES-GCM暗号アルゴリズムが適用される実施形態では、96ビットを有するノンスが生成されることを必要とし、暗号ベースのメッセージ認証コードのAES(AES-CMAC)暗号化アルゴリズムを使用して実行できる。AES-CMACアルゴリズムは、プレーンテキストおよびノンス鍵を入力として受け取り、ノンスを出力する。他の暗号化アルゴリズムを、ノンスを生成するために使用することもでき、使用される暗号化アルゴリズムは、例えば、ノンスのビット数に基づいて変更することができる。
【0015】
本発明の1つまたは複数の実施形態によれば、生成されたノンスは、DEK、関連付けられたメタデータおよびノンスが生成されるフェーズの間に使用された同じプレーンテキストとともに、AES-GCMアルゴリズムに入力される。AES-GCMアルゴリズムから出力される最終的なメッセージまたは暗号化されたオブジェクトは、暗号文およびタグと、(入力されたメタデータから変更されていない)関連付けられたメタデータおよび生成されたノンスである。
【0016】
このように、DEKがノンス生成処理の一部として再利用されないようにして、最終的なパッケージが生成され、単一のAES-GCM動作に固有のその使用を維持する。本明細書で記載されるノンス導出の使用は、(AES-GCMアルゴリズムの完全性を損なわせるであろう)ノンスが異なるプレーンテキスト・メッセージにわたって再利用されないことを提供する。加えて、復号および検証フェーズは、単一の動作である。AES-GCMアルゴリズムは、暗号化から出力されるオブジェクトまたはメッセージのすべての部分である、暗号文、タグ、ノンスおよび関連するメタデータ(平文)を用いて再実行される。
【0017】
本発明の1つまたは複数の実施形態は、オブジェクトまたはメッセージが生成されるときに、ノンス生成が1回のみ実行されるという追加の技術的な利点を提供する。何度もオブジェクトが暗号化され(例えば格納され)、復号される用途の場合、オブジェクトが暗号化されるたびにノンス生成を実行される必要がないという性能およびリソース使用の利益を提供する。実施例が、AES-GCM暗号アルゴリズムに関して本明細書で説明されるが、実施形態は、AES-GCMに限定されず、一意のノンスを要求する他の暗号アルゴリズムに適用することができる。
【0018】
ここで
図1を参照すると、本発明の1つまたは複数の実施形態による、暗号化エンジンのブロック
図100が概して示されている。
図1に示されるように、プレーンテキスト108およびプレーンテキスト108を記述するメタデータ104が、ノンス106およびDEK110とともに、AES-GCM暗号化エンジン102に入力される。AES-GCM暗号化エンジン102は、例えば、本明細書でさらに説明されるように、
図9のコンピュータ901に配置されるプロセッサ905上、または、
図7のクラウド・コンピューティング・ノード10に配置されるプロセッサ上で実行され得る。
【0019】
本発明の1つまたは複数の実施形態によれば、プレーンテキスト108およびメタデータ104は、暗号化されていないオブジェクトに含まれる。加えて、ノンス106およびDEK110は、オブジェクトが暗号化または復号されたときに、リンクされたノンス106およびリンクされたDEK110が暗号化アルゴリズムおよび復号アルゴリズムに入力されるように、オブジェクトにリンクされる。本発明の1つまたは複数の実施形態によれば、リンクされたノンス106もしくはリンクされたDEK110またはその両方は、(例えば、オブジェクト内のポインタを介して、または、オブジェクト内に格納されることによって)オブジェクト内に含まれる。ノンス106は、
図3を参照して後述されるように、AES-GCM暗号化エンジン102によって暗号化が実行される前に、生成される。
【0020】
図1の実施形態に示すように、AES-GCM暗号化エンジン102から、暗号文112およびタグ114(本明細書で「メタデータ認証タグ」としても参照される)を含む暗号化されたオブジェクトが出力される。タグ114は、暗号化プロセスに入力されたメタデータ104のシグネチャを含み、メタデータ104が、暗号化プロセスに入力された後に改ざんされていないことを検証するために、復号プロセスによって使用される。入力されたときから変わっていない、メタデータ104およびノンス106もAES-GCM暗号化エンジン102から出力される。実施形態では、AES-GCM暗号化エンジンは、メタデータ104もしくはノンス106またはその両方を出力せず、代わりに、オブジェクトへの包含またはリンクを介して、1つまたは両方がアクセス可能である。
【0021】
ここで
図2を参照すると、本発明の1つまたは複数の実施形態による、復号エンジンのブロック
図200が概して示されている。
図2に示されるように、
図1のAES-GCM暗号化エンジン102によって生成された暗号文112およびタグ114を含む、暗号化されたオブジェクトは、AES-GCM復号エンジン202に入力される。AES-GCM復号エンジン202への入力も、DEK110、ノンス106およびメタデータ104である。AES-GCM復号エンジン202は、例えば、
図9のコンピュータ901に配置されるプロセッサ905上、または、
図7のクラウド・コンピューティング・ノード10に配置されるプロセッサ上で実行され得る。
【0022】
本発明の1つまたは複数の実施形態によれば、AES-GCM暗号化エンジン102によって生成された暗号文112は、復号アルゴリズムに入力するために、(例えば、オブジェクト内のポインタを介して、または、オブジェクト内に格納されることによって)暗号化されたオブジェクト内に含まれる。
図2の実施形態に示されるように、AES-GCM復号エンジン202からの出力は、プレーンテキスト108、メタデータ有効性インジケータ204、およびメタデータを含む、暗号化されていないオブジェクトを含む。メタデータ有効性インジケータ204は、メタデータ104が変更されていないか、すなわち、復号プロセスから出力されたメタデータ104が、暗号化プロセスに入力されたメタデータと一致するかを検証するために使用される。メタデータが変更されているか否かは、メタデータ有効性インジケータ204の値に反映される。実施形態では、AES-GCM復号エンジン202は、メタデータ104を出力せず、代わりに、メタデータ104が、オブジェクトへの包含またはリンクを介して、アクセス可能である。
【0023】
ここで
図3を参照すると、本発明の1つまたは複数の実施形態による、ノンス生成エンジン300が概して示されている。
図3に示されるように、ノンス鍵304およびプレーンテキスト108は、AES-GCM暗号化エンジン302に入力され、プレーンテキスト108に対するノンス106が生成される。AES-GCM暗号化エンジン302は、例えば、
図9のコンピュータ901に配置されるプロセッサ905上、または、
図7のクラウド・コンピューティング・ノード10に配置されるプロセッサ上で実行され得る。前述のように、ノンス生成エンジンの実施形態は、
図3に示されるようなAES-CMACに限定されず、プレーンテキストを暗号化および復号するために使用される特定の暗号化アルゴリズムによって必要な長さのノンスを生成する、任意の暗号化アルゴリズムとして実装され得る。
図3に示される実施形態の例では、AES-GCM-96暗号化アルゴリズムは、96ビットの長さを有するプレーンテキストを暗号化するために、96ビットの長さを有するノンスを提供するのに使用され得る。
【0024】
前述のように、(1つまたは複数の)オブジェクトに対する複数のノンス鍵304は、(1つまたは複数の)オブジェクトに対するDEK110とペアリングされ得る。複数のノンス鍵304のそれぞれは、特定のユーザに割り当てられ、または、特定のユーザに対応する。本発明の一実施形態では、複数のノンス鍵304は、DEK110が作成されたことに応答して作成される。本発明の1つまたは複数の実施形態によれば、ノンス鍵304は、どれも同じ値を有することができず、ノンス鍵は、どれもDEK110と同じ値を有することができない。
【0025】
図1のブロック
図100、
図2のブロック
図200もしくは
図3のブロック
図300またはそれらの組み合わせに関する本明細書で説明される実施形態は、任意の適切なロジックで実装され得、ここで、ロジックは、本明細書で参照され得るように、様々な実施形態において、任意の適切なハードウェア(例えば、とりわけプロセッサ、組込みコントローラまたは特定用途向け集積回路)、ソフトウェア(例えば、とりわけアプリケーション)、ファームウェア、または、ハードウェア、ソフトウェアおよびファームウェアの任意の適切な組み合わせを含むことができる。
【0026】
ここで
図4を参照すると、本発明の1つまたは複数の実施形態による、暗号化されたオブジェクトの作成者が識別できるようにオブジェクトを暗号化する方法400のフロー図が概して示されている。
図4に示される処理の全部または一部は、例えば、
図9のコンピュータ901に配置されるプロセッサ905によって、または、
図7のクラウド・コンピューティング・ノード10に配置されるプロセッサ上で実行され得る。
【0027】
ブロック402において、プレーンテキストおよびメタデータを含む暗号化されていないオブジェクトは、
図1のAES-GCM暗号化エンジン102のような暗号化エンジンによって受信される。次に、ブロック404で示されるように、オブジェクトに対するDEKおよびノンスが、暗号化エンジンによって取得される。本発明の1つまたは複数の実施形態によれば、ノンスは、
図3のAES-GCM暗号化エンジン302のようなノンス生成エンジンによって、プレーンテキストおよび暗号化を実行するユーザに関連付けられたノンス鍵に基づいて前もって生成される。本発明の1つまたは複数の実施形態によれば、オブジェクトに対するノンス鍵およびDEKは、異なる値を有し、互いの内容または値とは独立して導出される。
【0028】
本発明の実施形態の例では、複数のノンス鍵は、DEKが作成され、オブジェクトにリンクされたことを検出したことに基づいて、作成され、異なるユーザにリンクされ、オブジェクトにリンクされる。いくつかの実施形態では、オブジェクトに対するノンスは、オブジェクトが作成されたことに応答して一回生成され、オブジェクトが削除されるか、オブジェクト内のプレーンテキストが変更されるまで、ノンスはオブジェクトにリンクされる。次に、ブロック406に示されるように、オブジェクトは、暗号化エンジンによって暗号化される。暗号化は、プレーンテキスト、メタデータ、DEKおよびノンスに基づいて、暗号文および(メタデータのシグネチャを含む)メタデータ認証タグを生成することを含む。ブロック408において、暗号文およびメタデータ認証タグは、オブジェクトにリンクされ、またはオブジェクトに含まれる。
【0029】
図4の処理フロー図は、方法400の動作が特定の順序で実行されること、または、あらゆる場合に方法400の動作のすべてが含まれることを示すことを意図していない。さらに、方法400は、任意の適切な数の追加的な動作を含むことができる。
【0030】
ここで
図5を参照すると、本発明の1つまたは複数の実施形態による、オブジェクトを暗号化し、送信し、復号する分散システム環境500が概して示されている。
図5に示されるように、第1のロケーションのプロセッサ504および第2のロケーションのプロセッサ506は、有線または無線のネットワーク502を介して通信中である。他の実施形態では、通信は、直接接続を介してもよい。
図5に示されるように、両方のプロセッサは、DEK(DEK1 508)へのアクセスを有し、第1のプロセッサは、オブジェクトに対するノンス鍵(NK1 510)へのアクセスを有する。
【0031】
図5に示されるように、第1のロケーションのプロセッサ504は、暗号文、メタデータ、タグおよびノンスを含む暗号化されたオブジェクト512を作成する。ノンスは、
図3に関して上述したように、作成され得る。第1のロケーションのプロセッサ504は、暗号文、メタデータ、タグおよびノンスを含む暗号化されたオブジェクト514を、第2のロケーションのプロセッサ506に送信する。第2のロケーションのプロセッサ506は、暗号化されたオブジェクト516を受信し、次いで、オブジェクト518を開いて復号し、オブジェクトの一部として送信されたノンスおよびDEK1 508を使用して復号されたオブジェクトを作成する。本発明の1つまたは複数の実施形態によれば、第1のロケーションのプロセッサ504もしくは第2のロケーションのプロセッサ506または両方は、
図7のクラウド・コンピューティング・ノード10に配置された1つまたは複数のプロセッサによって実装される。
【0032】
ここで
図6を参照すると、本発明の1つまたは複数の実施形態による、暗号化されたオブジェクトの作成者を識別するための方法600のフロー図が概して示されている。
図6に示される処理の全部または一部は、例えば、
図9のコンピュータ901に配置されるプロセッサ905によって、または、
図7のクラウド・コンピューティング・ノード10に配置されるプロセッサ上で実行され得る。
【0033】
ブロック602に示されるように、方法600は、DEKおよびノンスに少なくとも部分的に基づいてオブジェクトを暗号化することによって、前もって生成された暗号化されたオブジェクトを受信することを含む。次に、ブロック604に示されるように、方法は、DEKに対応する複数のノンス鍵を取得することを含み、ここで、複数のノンス鍵のそれぞれは、特定のユーザに対応する。方法600は、ブロック606に示されるように、暗号化されたオブジェクトに対応する暗号化されていないオブジェクトのコピーを取得することも含む。一実施形態では、暗号化されたオブジェクトに対応する暗号化されていないオブジェクトは、暗号化されたオブジェクトを復号することによって取得される。
【0034】
本発明の1つまたは複数の実施形態によれば、DEK、暗号文、メタデータ認証タグ、オブジェクト、メタデータおよびノンスを含む暗号化されたオブジェクトは、
図2のAES-GCM復号エンジン202のような復号エンジンに入力として送信される。本発明の1つまたは複数の実施形態によれば、メタデータおよびノンスの両方は、平文として(暗号化されていない形式で)送信される。復号エンジンは、プレーンテキスト、メタデータ、および
図2のメタデータ有効性インジケータ204のようなメタデータ有効性のインジケータを含む、暗号化されていないオブジェクトを出力する。
【0035】
次に、方法600は、ブロック608に示されるように、複数のノンスを生成することを含み、複数のノンスのそれぞれは、複数のノンス鍵の1つを使用して作成される。方法600は、次にブロック610に進み、以前に暗号化されたオブジェクトを作成するのに使用されたノンスと一致する、複数のノンスの1つを識別する。方法600は、複数のノンスの1つを生成するのに使用されたノンス鍵に関連付けられた特定のユーザを、暗号化されたオブジェクトの作成者として識別することによって、ブロック612で終了する。
【0036】
実施形態の例では、データ暗号化鍵(DEK)が利用できなくなった場合、オブジェクトに対するノンスは、元の平文のデータおよび複数のノンス鍵から再計算され得る。結果として、ノンスを作成するのに使用されたノンス鍵および関連付けられたユーザは、識別され得る。実施形態の例では、データの侵害が発生した場合、オブジェクトに対するデータ暗号化鍵を無効にでき、それによって、暗号化されたオブジェクトのすべてのコピーを、アクセスされることから防ぐ。しかしながら、リークした暗号化オブジェクトに関連付けられたノンスを作成するのに用いられたノンス鍵を識別することに基づいて、データ侵害のソースを特定できる。
【0037】
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実施態様はクラウド・コンピューティング環境だけに限定されないことを理解されたい。本発明の実施形態は、現在知られているまたは後に開発される他の任意のタイプのコンピューティング環境において実施することができる。
【0038】
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとの最小限のインタラクションで迅速に供給およびリリースすることができる構成可能なコンピューティング・リソース(例えばネットワーク、ネットワーク帯域、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械およびサービス)の共用プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするサービス配信モデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント(deployment)モデルを含むことができる。
【0039】
特徴は以下のとおりである。
【0040】
オンデマンド・セルフサービス:クラウド・コンシューマは、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能の供給を、このサービスのプロバイダとのヒューマン・インタラクションを必要とすることなく必要に応じて自動的に一方的に受けることができる。
【0041】
ブロード・ネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシンまたはシック・クライアント・プラットフォーム(例えば移動電話、ラップトップおよびPDA)による使用を促進する標準的機構を通してアクセスされる。
【0042】
リソース・プーリング(resource pooling):マルチテナント・モデルを使用して多数のコンシューマにサービスを提供するために、プロバイダのコンピューティング・リソースがプールされており、要求に応じて、異なる物理的および仮想リソースが動的に割当ておよび再割当てされる。コンシューマは一般に、提供されたリソースの正確な位置を制御できずまたは正確な位置を知らないが、より高次の抽象化レベル(例えば国、州またはデータセンター)で位置を指定することができるという意味で、位置独立の感覚がある。
【0043】
ラピッド・エラスティシティ(rapid elasticity):機能は、素早くスケールアウトするために迅速かつ弾力的に、場合によっては自動的に供給することができ、素早くスケールインするために迅速にリリースすることができる。コンシューマにとって、供給に利用可能な機能はしばしば無限であるように見え、いつでも好きな量だけ購入することができる。
【0044】
メジャード・サービス(measured service):クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域および使用中ユーザ・アカウント)に対して適切なある抽象化レベルで計測機能に介入することによって、リソースの使用状況を自動的に制御および最適化する。リソースの使用状況を監視、制御および報告して、利用されているサービスのプロバイダとコンシューマの両方に透明性を提供することができる。
【0045】
サービス・モデルは以下のとおりである。
【0046】
ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供されるこの機能は、クラウド・インフラストラクチャ上で実行しているプロバイダのアプリケーションを使用する機能である。ウェブ・ブラウザなどのシン・クライアント・インタフェース(例えばウェブ・ベースの電子メール)を通してさまざまなクライアント・デバイスからアプリケーションにアクセス可能である。場合によっては可能な限られたユーザ固有のアプリケーション構成の設定を除けば、コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージまたは個々のアプリケーション機能を含む基礎をなすクラウド・インフラストラクチャを管理もまたは制御もしない。
【0047】
プラットフォーム・アズ・ア・サービス(PaaS):コンシューマに提供されるこの機能は、クラウド・インフラストラクチャ上で、プロバイダがサポートするプログラム言語およびツールを使用して作成されたコンシューマ作成または取得のアプリケーションをデプロイする機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システムまたはストレージを含む基礎をなすクラウド・インフラストラクチャを管理もまたは制御もしないが、デプロイされたアプリケーションおよび場合によってはアプリケーション・ホスティング環境構成は制御することができる。
【0048】
インフラストラクチャ・アズ・ア・サービス(IaaS):コンシューマに提供されるこの機能は、処理、ストレージ、ネットワークおよび他の基本的なコンピューティング・リソースを供給する機能であり、コンシューマは任意のソフトウェアをデプロイおよび実行することができ、これらのソフトウェアは、オペレーティング・システムおよびアプリケーションを含むことができる。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理もまたは制御もしないが、オペレーティング・システム、ストレージおよびデプロイされたアプリケーションは制御することができ、場合によっては、選択されたネットワーク構成要素(例えばホスト・ファイアウォール)を限定的に制御することができる。
【0049】
デプロイメント・モデルは以下のとおりである。
【0050】
プライベート・クラウド:このクラウド・インフラストラクチャは、組織体のためだけに運営される。インフラストラクチャは、その組織体または第三者が管理することができ、オンプレミス(on-premises)またはオフプレミス(off-premises)で存在することができる。
【0051】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、いくつかの組織体によって共有され、利害(例えばミッション、セキュリティ要件、ポリシーおよびコンプライアンス上の問題)を共有する特定のコミュニティをサポートする。インフラストラクチャは、その組織体または第三者が管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0052】
パブリック・クラウド:このクラウド・インフラストラクチャは、一般大衆または大きな産業グループが利用可能であり、クラウド・サービスを販売している組織体によって所有される。
【0053】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、固有のエンティティを維持しているが、データおよびアプリケーション・ポータビリティを可能にする標準化された技術または独占技術(例えばクラウド間のロード・バランシングのためのクラウド・バースティング(cloud bursting))によって1つに結合された2つ以上のクラウド(プライベート、コミュニティまたはパブリック)の合成体である。
【0054】
クラウド・コンピューティング環境は、無国籍、低結合、モジュール性および意味論的相互運用性(semantic interoperability)に重きを置くサービス指向の環境である。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0055】
ここで
図7を参照すると、例示的なクラウド・コンピューティング環境50が示されている。示されているとおり、クラウド・コンピューティング環境50は1つまたは複数のクラウド・コンピューティング・ノード10を含み、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイス、例えばパーソナル・ディジタル・アシスタント(PDA)もしくは携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54Cまたは自動車コンピュータ・システム54Nあるいはこれらの組合せは、これらのノードと通信することができる。ノード10は互いに通信することができる。それらのノードは、上で説明したプライベート、コミュニティ、パブリックまたはハイブリッド・クラウドまたはこれらの組合せなどの1つまたは複数のネットワークに、物理的にまたは仮想的にグループ分けされていることがある(図示せず)。これによって、クラウド・コンピューティング環境50は、インフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組合せをサービスとして提供することができ、そのため、クラウド・コンシューマは、ローカル・コンピューティング・デバイス上にリソースを維持する必要がない。
図7に示されたタイプのコンピューティング・デバイス54A~Nは単なる例であることが意図されていること、ならびにコンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワーク上もしくはアドレス指定可能なネットワーク接続上またはその両方で(例えばウェブ・ブラウザを使用して)、コンピュータ化された任意のタイプのデバイスと通信することができることが理解される。
【0056】
次に
図8を参照すると、クラウド・コンピューティング環境50(
図7)によって提供される一組の機能抽象化層が示されている。
図8に示された構成要素、層および機能は単なる例であることが意図されており、本発明の実施形態はそれらに限定されないことを予め理解しておくべきである。図示のとおり、以下の層および対応する機能が提供される。
【0057】
ハードウェアおよびソフトウェア層60は、ハードウェア構成要素およびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65ならびにネットワークおよびネットワーキング構成要素66を含む。いくつかの実施形態では、ソフトウェア構成要素が、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0058】
仮想化層70は抽象化層を提供し、この層から、仮想エンティティの以下の例を提供することができる:仮想サーバ71、仮想ストレージ72、仮想専用ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75。
【0059】
一例では、管理層80が以下の機能を提供することができる。リソース供給81は、クラウド・コンピューティング環境内でタスクを実行する目的に利用されるコンピューティング・リソースおよびその他のリソースの動的調達を提供する。計量および価格決定(Metering and Pricing)82は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡、およびこれらのリソースの消費に対する課金または請求を提供する。一例では、これらのリソースがアプリケーション・ソフトウェア・ライセンスを含むことがある。セキュリティは、クラウド・コンシューマおよびタスクの識別確認ならびにデータおよび他のリソースの保護を提供する。ユーザ・ポータル83は、コンシューマおよびシステム管理者に、クラウド・コンピューティング環境へのアクセスを提供する。サービス水準管理84は、必要なサービス水準が達成されるようなクラウド・コンピューティング・リソースの割振りおよび管理を提供する。サービス水準合意(Service Level Agreement)(SLA)計画および履行85は、SLAによって将来必要になると予想されるクラウド・コンピューティング・リソースの事前調整および調達を提供する。
【0060】
ワークロード層90は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ解析処理94、トランザクション処理95、およびデータ暗号化/復号96を含む。
【0061】
本発明の1つまたは複数の実施形態は、現在知られている、または後に開発される任意のタイプのコンピューティング環境とともに実装可能であることに留意されたい。
【0062】
ここで
図9を参照すると、本発明の1つまたは複数の実施形態による、暗号化されたオブジェクトの作成者が識別できるようにオブジェクトを暗号化するコンピュータ・システムが概して示されている。本明細書で説明される方法は、ハードウェア、ソフトウェア(例えばファームウェア)またはこれらの組み合わせに実装され得る。本発明の1つまたは複数の例示的な実施形態では、本明細書で説明される方法は、パーソナル・コンピュータ、ワークステーション、またはメインフレーム・コンピュータのような、専用または汎用のデジタル・コンピュータのマイクロプロセッサの一部としてハードウェアに実装される。したがって、システム900は、O/Sの複数のインスタンスを同時に実行することが可能な、汎用コンピュータまたはメインフレーム901を含み得る。
【0063】
本発明の1つまたは複数の例示的な実施形態では、ハードウェア・アーキテクチャの観点から、
図9に示されるように、コンピュータ901は、1つまたは複数のプロセッサ905、メモリ・コントローラ915と結合したメモリ910、および、ローカル入力/出力コントローラ935を介して通信的に結合された1つまたは複数の入力および/または出力(I/O)デバイス940、945(または周辺機器)を含む。入力/出力コントローラ935は、例えば、1つまたは複数のバス、またはその他の有線接続もしくは無線接続とすることができるが、限定されない。入力/出力コントローラ935は、通信を可能にするためのコントローラ、バッファ(キャッシュ)、ドライバ、リピータおよびレシーバのような、追加的な要素を有し得るが、簡単にするために省略されている。さらに、ローカル・インターフェースは、前述した要素間の適切な通信を可能にするために、アドレス、制御もしくはデータ接続またはそれらの組み合わせを含み得る。入力/出力コントローラ935は、出力デバイス940および945にアクセスするように構成された、複数のサブチャンネルを含み得る。サブチャンネルは、光ファイバ通信ポートを含み得る。
【0064】
プロセッサ905は、ソフトウェア、特にキャッシュ・ストレージまたはメモリ910のようなストレージ902に格納されたソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ905は、任意の特注のまたは市販のプロセッサ、中央処理ユニット(CPU)、コンピュータ901に関連付けられたいくつかのプロセッサのうちの補助プロセッサ、半導体ベースの(マイクロチップまたはチップ・セットの形態の)マイクロプロセッサ、マクロプロセッサ、または命令を実行するための一般的な任意のデバイスとすることができる。
【0065】
メモリ910は、揮発性メモリ要素(例えば、ランダム・アクセス・メモリ(DRAM、SRAM、SDRAMなどのRAM))および不揮発性メモリ要素(例えばROM、消去可能プログラマブル読取専用メモリ(EPROM)、電子的に消去可能なプログラマブル読取専用メモリ(EEPROM)、プログラマブル読取専用メモリ(PROM)、テープ、コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、ディスク、ディスケット、カートリッジ、カセットまたは類似物など)の任意の1つまたは組み合わせを含むことができる。さらに、メモリ910は、電子的、磁気的、光学的もしくは他のタイプのストレージ媒体またはそれらの組み合わせを組み込むことができる。メモリ910は、分散されたアーキテクチャを有することができ、種々の要素は、その他のものから離れて配置されるが、プロセッサ905によってアクセスできることに留意されたい。
【0066】
メモリ910内の命令は、それぞれが、論理機能を実装するための実行可能な命令の順序付けられたリストを含む、1つまたは複数の分割されたプログラムを含むことができる。
図9の例では、メモリ910内の命令は、オペレーティング・システム(OS)911に適合する。オペレーティング・システム911は、本質的に他のコンピュータ・プログラムの実行を制御し、スケジューリング、入出力制御、ファイルおよびデータ管理、メモリ管理、ならびに通信制御および関連するサービスを提供する。
【0067】
本発明の1つまたは複数の実施形態によれば、メモリ910は、それぞれがオペレーティング・システムのインスタンスを実行する、複数の論理区画(LPAR)を含み得る。LPARは、メモリ910内に格納され、プロセッサ905によって実行されるプログラムとすることができるハイパーバイザによって管理され得る。
【0068】
本発明の1つまたは複数の例示的な実施形態では、従来のキーボード950およびマウス955が、入力/出力コントローラ935と結合され得る。I/Oデバイス940、945のような他の出力デバイスは、例えば、プリンタ、スキャナ、マイクロフォンなどの入力デバイスを含み得るが、限定されない。最後に、I/Oデバイス940、945は、例えば、(他のファイル、デバイス、システム、またはネットワークにアクセスするための)ネットワーク・インターフェース・カード(NIC)もしくは変調器/復調器、無線周波数(RF)もしくは他のトランシーバ、電話インターフェース、ブリッジ、ルータなどの、入力および出力の両方と通信するデバイスをさらに含み得るが、限定されない。システム900は、ディスプレイ930と結合されるディスプレイ・コントローラ925をさらに含むことができる。
【0069】
本発明の1つまたは複数の例示的な実施形態では、システム900は、ネットワーク965と結合するためのネットワーク・インターフェース960をさらに含むことができる。ネットワーク965は、コンピュータ901と、任意の外部サーバ、クライアントなどとの間のブロードバンド接続を介した通信のためのIPベースのネットワークとすることができる。ネットワーク965は、コンピュータ901と、外部システムとの間で、データを送信および受信する。例示的な実施形態では、ネットワーク965は、サービス・プロバイダによって管理されるIPネットワークを管理することができる。ネットワーク965は、例えば、Wi-Fi(登録商標)、WiMax(登録商標)などのような、無線プロトコルおよび無線技術を使用する、無線方式で実装され得る。ネットワーク965は、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、メトロポリタン・エリア・ネットワーク、インターネット・ネットワーク、または他の類似のタイプのネットワーク環境のような、パケット交換ネットワークであってもよい。ネットワーク965は、固定された無線ネットワーク、無線ローカル・エリア・ネットワーク(LAN)、無線ワイド・エリア・ネットワーク(WAN)、パーソナル・エリア・ネットワーク(PAN)、仮想プライベート・ネットワーク(VPN)、インターネット、またはその他の適切なネットワーク・システムであってよく、信号を受信および送信するための設備を含む。
【0070】
コンピュータ901がPC、ワークステーション、インテリジェント・デバイスなどである場合、メモリ910内の命令は、基本入力出力システム(BIOS)をさらに含み得る(簡単にするために省略されている)。BIOSは、スタートアップ時にハードウェアを初期化し、テストする、重要なソフトウェア・ルーチンのセットであり、OS911を開始し、ハードウェア・デバイス間のデータの転送をサポートする。コンピュータ起動時にBIOSが実行され得るように、BIOSは、ROM内に格納される。
【0071】
コンピュータ901が動作中であるとき、プロセッサ905は、メモリ910内に格納される命令を実行し、メモリ910への、およびメモリ910からのデータを通信し、ならびに命令に従ってコンピュータ901の動作を一般に制御するように構成される。本発明の1つまたは複数の実施形態によれば、コンピュータ901は、
図7のクラウド・コンピューティング・ノード10の一例である。
【0072】
発明の種々の実施形態が、関連する図面を参照して、本明細書で説明される。発明の代替的な実施形態は、本発明の範囲から逸脱することなく、考案され得る。以下の説明および図面において、要素間の種々の接続および位置関係(例えば、上、下、隣接など)が示されている。これらの接続もしくは位置関係または両方は、特に指定がない限り、直接的または間接的であってよく、この点に関して本発明を限定することを意図していない。したがって、エンティティの結合は、直接的な結合または間接的な結合のいずれも指すことができ、エンティティ間の位置関係は、直接的な位置関係または間接的な位置関係とすることができる。さらに、本明細書で説明される種々のタスクおよび処理ステップは、本明細書で説明されない追加的なステップまたは機能を有する、より包括的な手順または処理に組み込まれることができる。
【0073】
本明細書で説明される1つまたは複数の方法は、当業者によく知られた以下の技術、データ信号に論理機能を実装するための論理ゲートを有するディスクリート論理回路、適切な組み合わせ論理ゲートを有する特定用途向け集積回路(ASIC)、プログラマブル・ゲート・アレイ(PGA)、フィールド・プログラマブル・ゲート・アレイ(FPGA)などのいずれか、または組み合わせに実装されることができる。
【0074】
完結のために、発明の態様の作成および使用に関する従来技術は、本明細書で詳細に説明される場合も、されない場合もある。特に、本明細書に記載された種々の技術的特徴を実装するためのコンピューティング・システムおよび特定のコンピュータ・プログラムの種々の態様は、よく知られている。したがって、簡潔にするために、多くの従来の実装の詳細は、ここで簡単に言及されるか、よく知られているシステムもしくはプロセスまたは両方の詳細を提供することなく、完全に省略される。
【0075】
いくつかの実施形態では、種々の機能または動作は、所与の場所で、もしくは、1つまたは複数の装置またはシステムの動作に関連して、または両方において実行され得る。いくつかの実施形態では、所与の機能または動作の一部は、第1の装置または場所で実行され、残りの機能または動作は、1つまたは複数の追加的な装置または場所で実行されることができる。
【0076】
本明細書で使用される用語の目的は特定の実施形態を説明することだけであり、それらの用語が限定を目的とすることは意図されていない。文脈からそうでないことが明らかである場合を除き、本明細書で使用されるとき、単数形の「ある(a)」、「1つの(an)」および「その(the)」は複数形も含むことが意図されている。本明細書で使用されるとき、用語「備える(comprises)」もしくは「備える(comprising)」またはその両方は、明示された特徴、完全体(integer)、ステップ、動作、要素もしくは構成要素またはこれらの組合せの存在を指定するが、他の1つもしくは複数の特徴、完全体、ステップ、動作、要素、構成要素もしくはこれらのグループ、またはこれらの組合せの存在または追加を排除しないことも理解される。
【0077】
対応する構造体、材料、動作、ならびに、特許請求の範囲に記載された全ての手段またはステップおよび機能要素の等価物は、特許請求の範囲に記載された他の請求の要素とともに機能を実行するための任意の構造体、材料または動作を含むことが意図されている。図示および説明のために本開示を提示したが、その記述が網羅的であること、または開示された形態に限定されることは意図されていない。開示の範囲および精神から逸脱しない限り、当業者には、多くの変更および変形形態が明白である。実施形態は、開示の原理および実用的用途を最もよく説明するため、ならびに企図された特定の使用に適したさまざまな変更を有するさまざまな実施形態の開示を当業者が理解することを可能にするために選抜し、説明した。
【0078】
本明細書に示される図は、説明のためのものである。本開示の精神から逸脱することなく、図面またはそこに記載されたステップ(または動作)には、多くの変形があってよい。例えば、動作は、異なる順序で実行され得、または動作が追加され、削除され、もしくは修正され得る。また、用語「結合」は、2つの要素間に信号経路を有することを示し、要素間に介在要素/接続がない、要素間の直接接続を意味するものではない。これらのバリエーションのすべては、本開示の一部とみなされる。
【0079】
以下の定義および略語は、請求の範囲および明細書の解釈のために使用される。本明細書において、用語「含む(comprises)」、「含んでいる(comprising)」、「含む(includes)」、「含んでいる(including)」、「有する(has)」、「有している(having)」、「包含する(contains)」、「包含している(containing)」、またはこれらのその他の任意の変形は、非排他的な含有をカバーすることが意図される。例えば、要素のリストを含む組成物、混合物、プロセス、方法、物品または装置は、必ずしもそれらの要素のみに限定されるものではなく、明示的にリストされていないその他の要素、または、そのような組成物、混合物、プロセス、方法、物品または装置に固有のその他の要素を含むことができる。
【0080】
加えて、用語「例示的(exemplary)」は、本明細書で「例、例えば、または実例として提供する」ことを意味するために使用される。本明細書で「例示的(exemplary)」として示される任意の実施形態または設計は、必ずしも他の実施形態または設計よりも好ましいまたは有利であると解釈されることはない。用語「少なくとも1つ(at least one)」および「1つまたは複数(one or more)」は、1以上の任意の整数、すなわち、1、2、3、4などを含むと理解される。用語「複数(a plurality)」は、2以上の任意の整数、すなわち、2、3、4、5などを含むと理解される。用語「接続(connection)」は、間接的な「接続」と、直接的な「接続」の両方を含むことができる。
【0081】
用語「約(about)」、「実質的に(substantially)」、「ほぼ(approximately)」およびこれらのバリエーションは、出願時に利用可能な機器に基づく、特定の量の測定に関する誤差の程度を含むことを意図している。例えば、「約」は、所与の値の±8%もしくは5%または2%の範囲を含むことができる。
【0082】
本発明の態様は、任意の統合の技術的詳細レベルにおける、システム、方法もしくはコンピュータ・プログラム製品またはその組み合わせであってもよい。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(または複数の媒体)を含み得る。
【0083】
このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形のデバイスとすることができる。このコンピュータ可読ストレージ媒体は、例えば、限定はされないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたはこれらの適当な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リードオンリー・メモリ(ROM)、消去可能なプログラマブル・リードオンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リードオンリー・メモリ(CD-ROM)、ディジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(登録商標)・ディスク、機械的にエンコードされたデバイス、例えばパンチカードまたはその上に命令が記録された溝の中の一段高くなった構造物、およびこれらの適当な組合せを含む。本明細書で使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が一過性の信号、例えば電波もしくは他の自由に伝搬する電磁波、またはウェーブガイドもしくは他の伝送体内を伝搬する電磁波(例えば光ファイバ・ケーブル内を通る光パルス)、または電線を通して伝送される電気信号であると解釈されるべきではない。
【0084】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から対応するそれぞれのコンピューティング/処理デバイスにダウンロードすることができ、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはそれらの組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジ・サーバ、またはこれらの組合せを含むことができる。それぞれのコンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それらのコンピュータ可読プログラム命令を、対応するそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。
【0085】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、もしくは集積回路用の構成データであってもよく、またはSmalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同種のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードであってもよい。このコンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されてもよく、一部がユーザのコンピュータ上で実行されてもよく、独立型ソフトウェア・パッケージとして実行されてもよく、一部がユーザのコンピュータ上で、一部が遠隔コンピュータ上で実行されてもよく、または全体が遠隔コンピュータもしくは遠隔サーバ上で実行されてもよい。上記の最後のシナリオでは、遠隔コンピュータが、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、またはこの接続が、外部コンピュータに対して(例えばインターネット・サービス・プロバイダを使用してインターネットを介して)実施されてもよい。いくつかの実施形態では、本発明の態様を実施するために、例えばプログラム可能論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)またはプログラム可能論理アレイ(PLA)を含む電子回路が、このコンピュータ可読プログラム命令の状態情報を利用してその電子回路をパーソナライズすることにより、このコンピュータ可読プログラム命令を実行してもよい。
【0086】
本明細書で説明した本発明の態様を、本発明の実施形態にしたがい、フローチャート命令および方法のブロック図、またはそれらの両方、装置(システム)、およびコンピュータ・プログラム製品を参照して説明した。フローチャートの図示およびブロック図またはそれら両方およびフローチャートの図示におけるブロックおよびブロック図、またはそれらの両方のいかなる組合せでもコンピュータ可読なプログラム命令により実装することができることを理解されたい。
【0087】
コンピュータ可読なプログラム命令は、機械を生成するための他のプログラマブル・データ・プロセッシング装置に提供することができ、コンピュータのプロセッサまたは他のプログラマブル・データ・プロセッシング装置による実行がフローチャートおよびブロック図のブロックまたは複数のブロックまたはこれらの組み合わせで特定される機能/動作を実装するための手段を生成する。これらのコンピュータ、プログラマブル・データ・プロセッシング装置および他の装置またはこれらの組み合わせが特定の仕方で機能するように指令するこれらのコンピュータ可読なプログラム命令は、またコンピュータ可読な記録媒体に格納することができ、その内に命令を格納したコンピュータ可読な記録媒体は、フローチャートおよびブロック図のブロックまたは複数のブロックまたはこれらの組み合わせで特定される機能/動作の特徴を実装する命令を含む製造品を構成する。
【0088】
コンピュータ可読なプログラム命令は、またコンピュータ、他のプログラマブル・データ・プロセッシング装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で操作ステップのシリーズに対してコンピュータ実装プロセスを生じさせることで、コンピュータ、他のプログラマブル装置または他のデバイス上でフローチャートおよびブロック図のブロックまたは複数のブロックまたはこれらの組み合わせで特定される機能/動作を実装させる。
【0089】
図中のフローチャートおよびブロック図は、本発明の種々の実施形態による、システム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を例示する。この点に関し、フローチャートのそれぞれのブロックまたはブロック図は、モジュール、セグメント、または命令の部分を表し、この部分は、特定の論理的機能(複数でもよい)を実装するための1つまたはそれ以上の実行可能な命令を含む。いくつかの代替的な実装においては、ブロック内に記載された機能は、図に記載された順序ではなく発生する場合がある。例えば、連続して示された2つのブロックは、含まれる機能に応じて、実質的に同時的に実行することができるか、または複数のブロックは、時として逆の順番で実行することができる。また、ブロック図およびフローチャートの図示、またはこれらの両およびブロック図中のブロックおよびフローチャートの図示またはこれらの組み合わせのそれぞれは、特定の機能または動作を実行するかまたまたは特定の目的のハードウェアおよびコンピュータ命令を遂行する特定目的のハードウェアに基づいたシステムにより実装することができることにも留意されたい。
【0090】
本発明の種々の実施形態の説明は、例示を目的として示されたが、網羅的であること、または、開示された実施形態に限定されることを意図していない。説明された実施形態の範囲および精神から逸脱することなく、多くの修正および変形が、当業者には明白であろう。本明細書で使用される用語は、実施形態の原理、実用的用途もしくは市場において見られる技術的改善を最もよく説明するため、または、本明細書で示される実施形態を他の当業者が理解することを可能にするために、選抜された。