(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-25
(45)【発行日】2023-05-08
(54)【発明の名称】鍵管理システムにおける紛失疑似ランダム関数
(51)【国際特許分類】
H04L 9/08 20060101AFI20230426BHJP
【FI】
H04L9/08 A
(21)【出願番号】P 2020545477
(86)(22)【出願日】2019-02-26
(86)【国際出願番号】 IB2019051525
(87)【国際公開番号】W WO2019180521
(87)【国際公開日】2019-09-26
【審査請求日】2021-07-21
(32)【優先日】2018-03-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】レシュ、ジェーソン
(72)【発明者】
【氏名】クラウチェク、ヒューゴ、マリオ
(72)【発明者】
【氏名】シーボーン、マーク、ドウェイン
【審査官】行田 悦資
(56)【参考文献】
【文献】米国特許出願公開第2018/0025167(US,A1)
【文献】米国特許出願公開第2017/0177899(US,A1)
【文献】特開2003-163920(JP,A)
【文献】NAOR, M. and REINGOLD, O.,Number-Theoretic Constructions of Efficient Pseudo-Random Functions,Journal of the ACM,米国,ACM,2004年03月01日,Vol. 51, Issue 2,pp.231-262,<DOI:10.1145/972639.972643>
【文献】BURNS, J. et al.,EC-OPRF: Oblivious Pseudorandom Functions using Elliptic Curves,Cryptology ePrint Archive,2017年,pp.1-13,[online],[令和4年6月8日検索],<URL:https://eprint.iacr.org/2017/111>
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
(57)【特許請求の範囲】
【請求項1】
通信システムとインターフェース接続し、通信するように構成されたインターフェースと、
動作命令を格納するメモリと、
前記インターフェース及び前記メモリに動作可能に結合された処理回路と、
を含み、前記処理回路は、
紛失疑似ランダム関数(OPRF)ブラインド化操作に従って、ブラインド化鍵に基づいて、鍵と関連付けられた入力値を処理し、ブラインド化された値を生成することと、
前記通信システムを介して、前記ブラインド化された値を、鍵管理システム(KMS)サービスと関連付けられた別のコンピューティング・デバイスに伝送することと、
前記通信システムを介して、前記KMSサービスと関連付けられた前記別のコンピューティング・デバイスから、ブラインド化された鍵を受け取ることであって、前記ブラインド化された鍵は、OPRFシークレットを用いるOPRFに基づいた前記ブラインド化された値の処理に基づいている、受け取ることと、
OPRF非ブラインド化操作に従って、前記ブラインド化鍵に基づいて、前記ブラインド化された鍵を処理し、前記入力値と関連付けられた前記鍵を生成することと、
前記鍵に基づいて、セキュア情報にアクセスすることと、
を行うための前記動作命令を実行するように構成され
、
前記入力値は、前記別のコンピューティング・デバイスに知られず、前記鍵と関連付けられた鍵識別子を含み、
前記鍵は、前記別のコンピューティング・デバイスに知られず、データ暗号化鍵(DEK)又は鍵暗号化鍵(KEK)を含み、
前記OPRFシークレットは、前記コンピューティング・デバイスに知られず、前記コンピューティング・デバイスと関連付けられた顧客ルート鍵(CRK)に基づいている、
コンピューティング・デバイス。
【請求項2】
前記鍵は非対称鍵の対の第1の鍵又は第2の鍵を含み、前記処理回路はさらに、
前記通信システムを介して、前記別のコンピューティング・デバイスから、前記KMSサービスと関連付けられた前記ブラインド化された鍵、構造化鍵パラメータ、及び前記非対称鍵の対の前記第1の鍵又は前記第2の鍵の生成を指定する決定性関数を受け取ることと、
前記構造化鍵パラメータ及び前記非対称鍵の対の前記第1の鍵又は前記第2の鍵の生成を指定する前記決定性関数に基づいて前記ブラインド化された鍵を処理し、別のブラインド化された鍵を生成することと、
前記OPRF非ブラインド化操作に従って、前記ブラインド化鍵に基づいて、前記別のブラインド化された鍵を処理し、前記入力値と関連付けられた前記非対称鍵の対の前記第1の鍵又は前記第2の鍵を生成することと、
を行うための前記動作命令を実行するように構成された、
請求項1に記載のコンピューティング・デバイス。
【請求項3】
前記鍵は非対称鍵の対の第1の鍵又は第2の鍵を含み、前記処理回路はさらに、
前記通信システムを介して、前記別のコンピューティング・デバイスから、記KMSサービスと関連付けられた前記ブラインド化された鍵、暗号化された構造化鍵パラメータ、及び前記非対称鍵の対の前記第1の鍵又は前記第2の鍵の生成を指定する決定性関数を受け取ることと、
前記ブラインド化された鍵を処理し、別の鍵を生成することと、
復号に従って、前記別の鍵に基づいて、前記暗号化された構造化鍵パラメータを処理し、構造化鍵パラメータを生成することと、
前記構造化鍵パラメータ及び前記非対称鍵の対の前記第1の鍵又は前記第2の鍵の生成を指定する前記決定性関数に基づいて、前記ブラインド化された鍵を処理し、別のブラインド化された鍵を生成することと、
前記OPRF非ブラインド化操作に従って、前記ブラインド化鍵に基づいて、前記別のブラインド化された鍵を処理し、前記入力値と関連付けられた前記非対称鍵の対の前記第1の鍵又は前記第2の鍵を生成することと、
を行うための前記動作命令を実行するように構成された、
請求項1に記載のコンピューティング・デバイス。
【請求項4】
前記処理回路はさらに、
前記OPRFブラインド化操作に従って、別のブラインド化鍵に基づいて、非対称鍵の公開-秘密鍵の対の秘密鍵と関連付けられた別の入力値を処理し、紛失鍵アクセス要求(OKAR)を含む別のブラインド化された値を生成することと、
前記通信システムを介して、前記OKARを含む前記別のブラインド化された値を、前記KMSサービスと関連付けられた前記別のコンピューティング・デバイスに伝送することと、
前記通信システムを介して、前記KMSサービスと関連付けられた前記別のコンピューティング・デバイスから、別のブラインド化された鍵を受け取ることであって、前記別のブラインド化された鍵は、前記OPRFシークレットを用いる前記OPRFに基づいた前記別のブラインド化された値の処理に基づいている、受け取ることと、
前記OPRF非ブラインド化操作に従って、前記別のブラインド化鍵に基づいて、前記別のブラインド化された鍵を処理し、前記別の入力値と関連付けられた前記非対称鍵の公開-秘密鍵の対の前記秘密鍵を生成することと、
前記非対称鍵の公開-秘密鍵の対の公開鍵に基づいて、前記非対称鍵の公開-秘密鍵の対の前記秘密鍵を処理し、前記非対称鍵の前記公開-秘密鍵の対の前記秘密鍵の正当性を検証することと、
を行うための前記動作命令を実行するように構成される、
請求項1に記載のコンピューティング・デバイス。
【請求項5】
前記処理回路はさらに、
前記OPRFブラインド化操作に従って、第1の他のブラインド化鍵に基づいて、非対称鍵の公開-秘密鍵の対の秘密鍵と関連付けられた別の入力値を処理し、第1の紛失鍵アクセス要求(OKAR)を含む第1の他のブラインド化された値を生成することと、
前記OPRFブラインド化操作に従って、第2の他のブラインド化鍵に基づいて、チャレンジ値を処理し、第2のOKARを含む第2の他のブラインド化された値を生成することと、
前記通信システムを介して、前記第1のOKARを含む前記第1の他のブラインド化された値及び前記第2のOKARを含む前記第2の他のブラインド化された値を、前記KMSサービスと関連付けられた前記別のコンピューティング・デバイスに伝送することと、
前記通信システムを介して、前記KMSサービスと関連付けられた前記別のコンピューティング・デバイスから、第1の他のブラインド化された鍵を受け取ることであって、前記第1の他のブラインド化された鍵は、前記OPRFシークレットを用いる前記OPRFに基づいた前記第1の他のブラインド化された値の処理に基づいている、受け取ることと、
前記通信システムを介して、前記KMSサービスと関連付けられた前記別のコンピューティング・デバイスから、第2の他のブラインド化された鍵を受け取ることであって、前記第2の他のブラインド化された鍵は、前記OPRFシークレットを用いる前記OPRFに基づいた前記第2の他のブラインド化された値の処理に基づいている、受け取ることと、
前記OPRF非ブラインド化操作に従って、前記第2の他のブラインド化鍵に基づいて、前記第2の他のブラインド化された鍵を処理し、前記チャレンジ値と関連付けられた前記別のコンピューティング・デバイスからの応答を生成することと、
前記チャレンジ値と関連付けられた前記別のコンピューティング・デバイスからの前記応答が前記チャレンジ値と比較して好ましいかどうかを判断することと、
前記チャレンジ値と関連付けられた前記別のコンピューティング・デバイスからの前記応答が前記チャレンジ値と比較して好ましいとの判断に基づいて、前記OPRF非ブラインド化操作に従って、前記第1の他のブラインド化鍵に基づいて、前記第1の他のブラインド化された鍵を処理し、前記別の入力値と関連付けられた前記非対称鍵の公開-秘密鍵の対の前記秘密鍵を生成することと、
を行うための前記動作命令を実行するように構成される、請求項1に記載のコンピューティング・デバイス。
【請求項6】
前記コンピューティング・デバイスは、無線スマートフォン、携帯電話、ラップトップ、携帯情報端末、タブレット、パーソナル・コンピュータ(PC)、ワークステーション、又はビデオ・ゲーム・デバイスを含む、又は
前記別のコンピューティング・デバイスは、ハードウェア・セキュリティ・モジュール(HSM)を含む、
のうちの少なくとも1つである、請求項1から
請求項5までのいずれかに記載のコンピューティング・デバイス。
【請求項7】
前記通信システムは、無線通信システム、有線通信システム、非公開イントラネット・システム、公開インターネット・システム、ローカル・エリア・ネットワーク(LAN)、無線ローカル・エリア・ネットワーク(WLAN)、広域ネットワーク(WAN)、衛星通信システム、光ファイバ通信システム、又はモバイル通信システムのうちの少なくとも1つを含む、請求項1から
請求項6までのいずれかに記載のコンピューティング・デバイス。
【請求項8】
コンピューティング・デバイスにより実行される方法であって、
紛失疑似ランダム関数(OPRF)ブラインド化操作に従って、ブラインド化鍵に基づいて、鍵と関連付けられた入力値を処理し、ブラインド化された値を生成することと、
通信システムとインターフェース接続し、通信するように構成された前記コンピューティング・デバイスのインターフェースを介して、前記ブラインド化された値を、鍵管理システム(KMS)サービスと関連付けられた別のコンピューティング・デバイスに伝送することと、
前記インターフェース及び前記通信システムを介して、前記KMSサービスと関連付けられた前記別のコンピューティング・デバイスから、ブラインド化された鍵を受け取ることであって、前記ブラインド化された鍵は、OPRFシークレットを用いるOPRFに基づいた前記ブラインド化された値の処理に基づいている、受け取ることと、
OPRF非ブラインド化操作に従って、前記ブラインド化鍵に基づいて、前記ブラインド化された鍵を処理し、前記入力値と関連付けられた前記鍵を生成することと、
前記鍵に基づいて、セキュア情報にアクセスすることと、
を含
み、
前記入力値は、前記別のコンピューティング・デバイスに知られず、前記鍵と関連付けられた鍵識別子を含み、
前記鍵は、前記別のコンピューティング・デバイスに知られず、データ暗号化鍵(DEK)又は鍵暗号化鍵(KEK)を含み、
前記OPRFシークレットは、前記コンピューティング・デバイスに知られず、前記コンピューティング・デバイスと関連付けられた顧客ルート鍵(CRK)に基づいている、
方法。
【請求項9】
前記鍵は非対称鍵の対の第1の鍵又は第2の鍵を含み、
前記インターフェース及び前記通信システムを介して、前記別のコンピューティング・デバイスから、前記KMSサービスと関連付けられた前記ブラインド化された鍵、構造化鍵パラメータ、及び前記非対称鍵の対の前記第1の鍵又は前記第2の鍵の生成を指定する決定性関数を受け取ることと、
前記構造化鍵パラメータ及び前記非対称鍵の対の前記第1の鍵又は前記第2の鍵の生成を指定する前記決定性関数に基づいて前記ブラインド化された鍵を処理し、別のブラインド化された鍵を生成することと、
前記OPRF非ブラインド化操作に従って、前記ブラインド化鍵に基づいて、前記別のブラインド化された鍵を処理し、前記入力値と関連付けられた前記非対称鍵の対の前記第1の鍵又は前記第2の鍵を生成することと、
をさらに含む、
請求項8に記載の方法。
【請求項10】
前記鍵は非対称鍵の対の第1の鍵又は第2の鍵を含み、
前記インターフェース及び前記通信システムを介して、前記別のコンピューティング・デバイスから、前記KMSサービスと関連付けられた前記ブラインド化された鍵、暗号化された構造化鍵パラメータ、及び前記非対称鍵の対の前記第1の鍵又は前記第2の鍵の生成を指定する決定性関数を受け取ることと、
前記ブラインド化された鍵を処理し、別の鍵を生成することと、
復号に従って、前記別の鍵に基づいて、前記暗号化された構造化鍵パラメータを処理し、構造化鍵パラメータを生成することと、
前記OPRF非ブラインド化操作に従って、前記ブラインド化鍵に基づいて、前記別のブラインド化された鍵を処理し、前記入力値と関連付けられた前記非対称鍵の対の前記第1の鍵又は前記第2の鍵を生成することと、
をさらに含む、
請求項8に記載の方法。
【請求項11】
前記OPRFブラインド化操作に従って、別のブラインド化鍵に基づいて、非対称鍵の公開-秘密鍵の対の秘密鍵と関連付けられた別の入力値を処理し、紛失鍵アクセス要求(OKAR)を含む別のブラインド化された値を生成することと、
前記インターフェース及び通信システムを介して、前記OKARを含む前記別のブラインド化された値を、前記KMSサービスと関連付けられた前記別のコンピューティング・デバイスに伝送することと、
前記インターフェース及び前記通信システムを介して、前記KMSサービスと関連付けられた前記別のコンピューティング・デバイスから、別のブラインド化された鍵を受け取ることであって、前記別のブラインド化された鍵は、前記OPRFシークレットを用いる前記OPRFに基づいた前記別のブラインド化された値の処理に基づいている、受け取ることと、
前記OPRF非ブラインド化操作に従って、前記別のブラインド化鍵に基づいて、前記別のブラインド化された鍵を処理し、前記別の入力値と関連付けられた前記非対称鍵の公開-秘密鍵の対の前記秘密鍵を生成することと、
前記非対称鍵の公開-秘密鍵の対の公開鍵に基づいて、前記非対称鍵の公開-秘密鍵の対の前記秘密鍵を処理し、前記非対称鍵の前記公開-秘密鍵の対の前記秘密鍵の正当性を検証することと、
をさらに含む、
請求項8に記載の方法。
【請求項12】
前記OPRFブラインド化操作に従って、第1の他のブラインド化鍵に基づいて、非対称鍵の公開-秘密鍵の対の秘密鍵と関連付けられた別の入力値を処理し、第1の紛失鍵アクセス要求(OKAR)を含む第1の他のブラインド化された値を生成することと、
前記OPRFブラインド化操作に従って、第2の他のブラインド化鍵に基づいて、チャレンジ値を処理し、第2のOKARを含む第2の他のブラインド化された値を生成することと、
前記インターフェース及び前記通信システムを介して、前記第1のOKARを含む前記第1の他のブラインド化された値及び前記第2のOKARを含む前記第2の他のブラインド化された値を、前記KMSサービスと関連付けられた前記別のコンピューティング・デバイスに伝送することと、
前記インターフェース及び前記通信システムを介して、前記KMSサービスと関連付けられた前記別のコンピューティング・デバイスから、第1の他のブラインド化された鍵を受け取ることであって、前記第1の他のブラインド化された鍵は、前記OPRFシークレットを用いる前記OPRFに基づいた前記第1の他のブラインド化された値の処理に基づいている、受け取ることと、
前記インターフェース及び前記通信システムを介して、前記KMSサービスと関連付けられた前記別のコンピューティング・デバイスから、第2の他のブラインド化された鍵を受け取ることであって、前記第2の他のブラインド化された鍵は、前記OPRFシークレットを用いる前記OPRFに基づいた前記第2の他のブラインド化された値の処理に基づいている、受け取ることと、
前記OPRF非ブラインド化操作に従って、前記第2の他のブラインド化鍵に基づいて、前記第2の他のブラインド化された鍵を処理し、前記チャレンジ値と関連付けられた前記別のコンピューティング・デバイスからの応答を生成することと、
前記チャレンジ値と関連付けられた前記別のコンピューティング・デバイスからの前記応答が前記チャレンジ値と比較して好ましいかどうかを判断することと、
前記チャレンジ値と関連付けられた前記別のコンピューティング・デバイスからの前記応答が前記チャレンジ値と比較して好ましいとの判断に基づいて、前記OPRF非ブラインド化操作に従って、前記第1の他のブラインド化鍵に基づいて、前記第1の他のブラインド化された鍵を処理し、前記別の入力値と関連付けられた前記非対称鍵の公開-秘密鍵の対の前記秘密鍵を生成することと、
をさらに含む、
請求項8に記載の方法。
【請求項13】
前記コンピューティング・デバイスは、無線スマートフォン、携帯電話、ラップトップ、携帯情報端末、タブレット、パーソナル・コンピュータ(PC)、ワークステーション、又はビデオ・ゲーム・デバイスを含む、又は
前記別のコンピューティング・デバイスは、ハードウェア・セキュリティ・モジュール(HSM)を含む、
のうちの少なくとも1つである、
請求項8に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュリティ、暗号化、及び鍵管理に関し、より具体的には、通信システム、及び1又は複数の鍵管理システム(KMS:Key Management System)に関連した通信に基づく操作に従ったセキュリティ、暗号化、及び鍵管理に関する。
【背景技術】
【0002】
特定の従来技術の通信システムにおいて、オンラインで格納されるデータ量は増え続けている。その中の一部のデータは、重要であり、暗号化され、セキュア保護され、もしくは秘密(private)であるか又はその組み合わせである。例えば、このデータの多くが秘密であり、一部は、守秘義務法及び規則により保護され得る。データの一部は、悪意のあるインサイダー、外部の攻撃者、もしくは偶発的な暴露要求又はその組み合わせから、データを保護するために、暗号化される。暗号化は、1つ又は複数の暗号化鍵を用いて機能することができる。適切な暗号化鍵がなければ、暗号化されたデータを解読することはできない。従って、暗号化されたデータに取り組むときはいつでも、信頼できる鍵の供給及び管理が不可欠である。
【0003】
さらに近年、特定の情報は、別のパーティにより運営及び保持される1つ又は複数の遠隔ストレージ・デバイス内に格納される。特定の従来技術の実施において、こうした他のパーティのサービス・プロバイダは、格納される1つ又は複数の暗号鍵にアクセスし、それらを知り、管理し、そのサービスをクライアントもしくはユーザ又はその両方に提供することが可能である。そうした状況では、そのようなクライアントもしくはユーザ又はその両方とも、このような別のパーティのサービス・プロバイダのあらゆる悪意、挙動、信頼の欠如等に非常に影響を受けやすく、脆弱である。
【0004】
セキュアな暗号化情報にアクセスするために用いられる鍵を格納するもの(例えば、鍵管理システム(KMS))を含むこうした従来技術のストレージ・システムは、多くの問題を含んでいる。さらに、クラウド・ベースの技術に基づいてそうしたストレージ・システムを実装しようとする試みにおいて、問題はさらに悪化することになり得る。例えば、そうした従来技術のストレージ・システムのクラウド・ベースの実装は、さらなるセキュリティ上の脅威をもたらす。幾つかの例を考えると、テナントは、クラウド・プロバイダとその動作を信頼しなければならない。クラウド・プロバイダがシステムを正しく管理するものと信じる必要がある。これは、クラウド・プロバイダに設定エラーがなく、セーフガード・バックアップを効果的に実行し、テナント・データ等のために代わりに正しいポリシー及び制御を有すると信用することを含む。また、クラウド・プロバイダが、機密データを漏らし得る悪意のあるインサイダーを有さず、従業員を適切に厳しく検査し、監査プロセスを有し、チェックのない過度の権力をシステム管理者に与えないことへの信頼が必要である。また、クラウド・プロバイダが、テナントを適切に分離することも保証されなければならない。これは、クラウド・プロバイダが、仮想マシン(VM)間及びコンテナ間のサイドチャネル攻撃を防止し、メモリを保護し、使用の間にドライブを消去し、ネットワーク・スニフィング(sniffing)を防止することを保証することを含むことができる。また、クラウド・プロバイダが、インターネット上のあらゆるところから発し得るものを含む攻撃を防ぐことへの信頼が必要である。クラウド・プロバイダは、ネットワーク(例えば、全てのクラウド・データについての入口点を含む)を保護し、漏洩(breach)を監視し、分散型サービス拒否攻撃(DDOS:Distributed Denial of Service)を切り抜け、パッチを適用し、証明書を適切に使用及び検証することに対する信用も必要である。
【0005】
クラウド・ベースの技術に基づいて実装される既存の従来技術のストレージ・システムは、単一のクラウド・プロバイダに大きな信頼を置くこと、もしくは各自のKMSインフラストラクチャを保持すること又はその両方をすることを必要とする。セキュリティ又は適切なセキュリティにおける信頼の欠如は、クラウド・ベースの技術を用いるそうした従来技術のストレージ・システムの実装を妨げている大きな要因である。通常のデータ(例えば、秘密の、機密の、もしくは高価値のものではないデータ又はその組み合わせ)を格納する際、こうした懸念が存在し、セキュア保護されたデータ、暗号化されたデータ、暗号鍵等を扱う際、そうした懸念が増大されるようになる。従来技術は、信用及び信頼できるユーザが、受容可能な性能及びユーザ・エクスペリエンスのサービスを提供する間、プライバシー、セキュリティ、信用等といった様々な懸案事項に適切に対処する適切な解決法を提供していない。
【発明の概要】
【0006】
本発明の実施形態は、1つ又は複数の紛失疑似ランダム関数(OPRF:Oblivious Pseudorandom Function)に基づいて、1つ又は複数の鍵管理システム(KMS:Key Management Service)サービスを達成するためのコンピュータ実施方法、システム、及びコンピュータ・プログラム製品を開示する。そうした実装において、2つのパーティ(例えば、クライアントと関連付けられるコンピューティング・デバイスとKMSサービス)が協働して動作して関数を評価し、最終的に鍵をクライアントに提供する。第1のパーティは入力を提供し、第2のパーティはOPRF鍵(例えば、OPRFシークレット)を提供する。第1のパーティだけがOPRFの出力を受け取り(又は知ることができ)、OPRF鍵を知ることも又は分かることもない。入力値は、第2のパーティには知られず、OPRF鍵は、第1のパーティには知られない。また、第2のパーティは、OPRFの入力又は出力を知ることも又は分かることもない。また、第2のパーティにより与えられる鍵は、第2のパーティには知られない。
【0007】
対照的に、従来技術のクラウド・ベースの技術においては、クラウド・ベースのKMSサービスのプロバイダは、プロバイダがテナントの鍵を知ることになるように動作する。本明細書での新規な解決法を用いて実行される計算の間に、第1のパーティは、第2のパーティが使用するOPRFシークレット(例えば、OPRF鍵)についての情報を知得しない。特定の随意的な動作において、OPRFシークレットは、顧客ルート鍵(CRK:Customer Root Key)に基づいている。鍵管理システム(KMS)をサポートすることを含む、本明細書で提示されるそうした新規な解決法は、クラウド・プロバイダにおけるゼロトラスト(zero trust)を要求しながら、テナント・プレミスにおけるKMSインフラストラクチャを必要とせずに、クラウド・ベースの技術を用いて実施することができる。
【0008】
そうした動作によると、紛失疑似ランダム関数(OPRF)ブラインド化操作(blinding operation)(例えば、準同型暗号化、1つ又は複数の他のブラインド化操作等)に従って、ブラインド化鍵(blinding key)に基づいて、鍵と関連付けられた入力値が第1のパーティにより処理されて、ブラインド化された値(blinded value)を生成する。次に、ブラインド化された値は、(例えば、通信システムを介して)第2のパーティ(例えば、KMSサービスと関連付けられた別のコンピューティング・デバイス)に伝送される。ブラインド化された鍵(blinded key)は、OPRFシークレットを用いる(例えば、第2のパーティによる)紛失疑似ランダム関数(OPRF)に基づいたブラインド化された値の処理に基づいて生成される。次に、ブラインド化された鍵は、第1のパーティによって受け取られる(例えば、通信システムを介して、KMSサービスと関連付けられた第2のパーティから)。ブラインド化された鍵は、紛失疑似ランダム関数(OPRF)非ブラインド化操作(unblinding operation)(例えば、準同型復号、1つ又は複数の非ブラインド化操作等)に従って、ブラインド化鍵に基づいて処理され、入力値と関連付けられた鍵を生成する。所望であれば特定の実施において、生成された鍵に基づいて(例えば、通信システムを介して)、セキュア情報にアクセスされる。特定の随意的な動作において、鍵は、データ暗号化鍵(DEK)又は鍵暗号化鍵(KEK)を含む任意の所望のタイプのものとすることができる。
【0009】
第1のパーティと第2のパーティとの間の通信が保護され、インターセプトにも耐えられる。また、第1のパーティと第2のパーティとの間のこうした通信は、特にトランスポート層セキュリティ(TLS)などの特別なセキュア通信プロトコルを用いて実施する必要はない。
【0010】
そうした他の随意的な動作によると、本明細書で生成されるような鍵は、非対称鍵の対(例えば、構造化鍵パラメータに基づき、第1の鍵及び第2の鍵を含む非対称鍵の対、1つの鍵を含む幾つかの例は公開鍵(public key)及び非対称鍵の公開-秘密鍵(public-private key)の対における秘密鍵である別の鍵である。そうした実施において、第2のパーティは、構造化鍵パラメータと、非対称鍵の対の第1の鍵又は第2の鍵の生成を指定する決定性関数とを決定することができる。幾つかの場合には、そうした構造化鍵パラメータ及び決定性関数は、第1のパーティから第2のパーティに与えられる。この情報に基づいて、ブラインド化された鍵は、第1のパーティにより処理され、非対称鍵の対の鍵の1つを生成し、次にそれを非対称鍵の対の鍵の他方と共に使用し、非対称鍵の対に基づいたそうしたセキュア情報にアクセスする。そうした実施は、セキュアなストレージ及び非対称鍵のそうした対の鍵の1つの取り出しをもたらす。
【0011】
さらに、そうした他の随意的な動作によると、そうした動作は、非対称鍵の公開-秘密鍵の対の公開鍵に基づいて非対称鍵の公開-秘密鍵の対の秘密鍵を処理し、非対称鍵の公開-秘密鍵の対の秘密鍵の正当性を検証することを含むことができる。これを用いて、そうしたKMSサービスに格納される鍵の完全性を保証することができる。
【図面の簡単な説明】
【0012】
【
図1】(A)は、本発明の種々の実施形態による、鍵管理システム(KMS)をサポートする1つ又は複数の通信システムの実施形態を示す図である。(B)は、本発明の種々の実施形態による、1つ又は複数の通信システムの実施形態を示す図である。(C)は、本発明の種々の実施形態による、1つ又は複数の通信システム内で動作するように構成されたコンピューティング・デバイスの実施形態を示す図である。(D)は、本発明の種々の実施形態による、無線通信システムの実施形態を示す図である。
【
図2】(A)及び(B)は、本発明の種々の実施形態による、KMSをサポートする1つ又は複数の通信システムの別の実施形態を示す図である。
【
図3】(A)は、本発明の種々の実施形態による、KMSをサポートする1つ又は複数の通信システムの別の実施形態を示す図である。(B)は、本発明の種々の実施形態による、紛失疑似ランダム関数(OPRF))に基づいてKMSをサポートする1つ又は複数の通信システムの実施形態を示す図である。
【
図4】(A)は、本発明の種々の実施形態による、紛失性(obliviousness)により鍵保護をサポートする1つ又は複数の通信システムの実施形態を示す図である。(B)は、本発明の種々の実施形態によるハードウェア・セキュリティ・モジュール(HSM)をサポートする1つ又は複数の通信システムの実施形態を示す図である。(C)は、本発明の種々の実施形態による、KMSに従って使用できるような鍵の階層の実施形態を示す図である。
【
図5】本発明の種々の実施形態による、1つ又は複数の通信システムにより実行される方法の実施形態を示す図である。
【
図6】本発明の種々の実施形態による、1つ又は複数の通信システムにより実行される方法の別の実施形態を示す図である。
【
図7】本発明の種々の実施形態による、1つ又は複数の通信システムにより実行される方法の別の実施形態を示す図である。
【
図8】本発明の種々の実施形態による、1つ又は複数の通信システムにより実行される方法の別の実施形態を示す図である。
【
図9】本発明の種々の実施形態による、1つ又は複数の通信システムにより実行される方法の別の実施形態を示す図である。
【
図10】本発明の種々の実施形態による、クラウド・コンピューティング環境を示す。
【
図11】本発明の種々の実施形態による、抽象化モデル層を示す。
【
図12】本発明の種々の実施形態による、コンピューティング・デバイスのブロック図を示す。
【発明を実施するための形態】
【0013】
本発明の実施形態によると、新規な鍵管理及び鍵セキュリティは、紛失性に基づいて動作し、1つ又は複数の鍵管理システム(KMS)などに基づいて使用される鍵のセキュリティ及び秘密性(secrecy)を与える。また、この新規な鍵管理及び鍵セキュリティは、紛失疑似ランダム関数(OPRF)ブラインド化操作(blinding operation)(例えば、準同型暗号化(homomorphic encryption)、1つ又は複数の他のブラインド化操作)もしくは紛失疑似ランダム関数(OPRF)処理又はその両方に従って1つ又は複数の鍵を生成することも含む。幾つかの例において、これは、OPRFブラインド化操作(例えば、準同型暗号化、1つ又は複数の他のブラインド化操作等)(及びOPRF非ブラインド化操作(例えば、準同型復号、1つ又は複数の他の非ブラインド化操作等))を実行することと、クライアント(例えば、ユーザ)の操作及びサービス・プロバイダ(例えば、KMS)の操作をサポートすることとを含む。種々のエンティティは、2つのパーティが協働して動作して、関数を評価し、最終的に鍵をクライアントに提供するような方法で互いに対話する。OPRF処理によると、クライアントは、サービス・プロバイダが使用するOPRFシークレットを判断することができず、サービス・プロバイダは、クライアントと関連付けられた入力もしくは出力又はその両方を判断することができない。さらに、サービス・プロバイダは、それが1又は複数のクライアントに提供する1つ又は複数の鍵を知ること及び判断することができない。また、本明細書で提示されるようなそうした新規な解決法の1つの例において、鍵は、使用されるたびに再生成される。これを用いて、大量のストレージをオフロードし、処理負荷を多数のクライアントにオフロードすることもできる。これは、集中型サーバ又は従来技術のシステムで用いられるようなハードウェア・セキュリティ・モジュール(HSM)に対する必要性をなくす、拡張性のある(scalable)システムの可能な実装をもたらす。
【0014】
図1(A)は、本発明の種々の実施形態による、鍵管理システム(KMS)をサポートする1つ又は複数の通信システムの実施形態100を示す図である。1つ又は複数のコンピューティング・デバイス(例えば、コンピューティング・デバイス110、コンピューティング・デバイス112等)は、1つ又は複数の他のコンピューティング・デバイスもしくは1つ又は複数のネットワーク・セグメント116又はその両方を介して通信をサポートするように構成される。一例において、コンピューティング・デバイス110は、1つ又は複数のネットワーク・セグメント116を介して、コンピューティング・デバイス112と通信する。例えば、コンピューティング・デバイス110は第1のユーザと関連付けられ、コンピューティング・デバイス112は第2のユーザと関連付けられる。1つ又は複数のネットワーク・セグメント116は、
図10を参照して説明されるようなクラウド・コンピューティング環境50に従って実装することができ、幾つかの例もしくは実施形態又はその両方において、1つ又は複数のネットワーク・セグメント116は、内部に1つ又は複数の他のコンピューティング・デバイス(例えば、ノード、ルータ、ゲートウェイ、サーバ、中継器、トランスコーダ等)を含むことができる。
【0015】
コンピューティング・デバイス110は、1つ又は複数の鍵に基づいてセキュア情報(例えば、セキュアな、秘密の、暗号化された等のデータ、鍵等)にアクセスするように構成される。そうした鍵の例は、データ暗号化鍵(DEK)、鍵暗号化鍵(KEK)、ラップされたデータ暗号化鍵(WDEK:Wrapped Data Encryption Key)、マスター鍵暗号化鍵(M-KEK)、インスタンス鍵暗号化鍵(I-KEK)、顧客ルート鍵(CRK)、及び/又は情報の暗号化もしくは復号又はその両方と関連付けられた及びそのために用いられるものを含む任意の他のタイプの鍵のうちの1つ又は複数を含む種々のタイプのものとすることができる。
【0016】
例えば、ひとたび鍵が生成されると、コンピューティング・デバイス110は、その鍵を使用して、1つ又は複数のネットワーク・セグメント116内に格納される、及び/又は1つ又は複数のネットワーク・セグメント116に基づいて又はそれを介してアクセス可能なクラウド・ベースの技術内に格納される、セキュア情報にアクセスするように構成することができる。例えば、コンピューティング・デバイス110は、クラウド・プロバイダが格納する暗号化データを要求し、そのクラウド・プロバイダが格納する暗号化データを受け取り、次に鍵を使用してその暗号化データを復号する。
【0017】
一般に、そうしたセキュリティ、暗号化等によると、鍵は、鍵を有さない他のものが利用できないようにされるセキュア情報(例えば、データ、鍵等)にアクセスするために、コンピューティング・デバイス110により使用される。一般に、鍵管理システム(KMS)は、コンピューティング・デバイス、ユーザもしくはアプリケーション又はその組み合わせ等の代わりに、鍵へのアクセスを管理し、確実に保持し、制御するためのシステムと考えることができる。KMSにとって、高可用性及び耐久性は重要である。例えば、特定の場合を考えると、KMSが機能しない場合、KMSが管理する鍵で暗号化されたデータを回復しようとするいずれの試みも失敗する。セキュリティ並びに適切なアクセス制御の実施及び監査も必須である。例えば、間違ったエンティティ(例えば、権限付与されていないエンティティ)がKMSから鍵を獲得した場合、KMSは、その鍵の下で暗号化された全てのデータ、鍵等をそのパーティに実質的に開示してしまう。
【0018】
動作及び実施の例において、コンピューティング・デバイス110(例えば、ユーザと関連付けられているような)は、1つ又は複数のネットワーク・セグメント116を介するなど1つ又は複数の通信システム(例えば、インターネット、イントラネット、固有ネットワーク、プライベート・ネットワーク、公衆ネットワーク等)を介する鍵管理システム(KMS)との通信をサポートするように構成される。コンピューティング・デバイス110は、紛失疑似ランダム関数(OPRF)ブラインド化操作(例えば、準同型暗号化、1つ又は複数の他のブラインド化操作等)に従って、ブラインド化鍵に基づいて、鍵と関連付けられた入力値を処理し、ブラインド化された値を生成するように構成される。こうした入力値は、任意の所望の値(例えば、任意の識別子、ファイル名、オブジェクト名、オブジェクト識別子(ID)等、任意の識別子、ファイル名、オブジェクト名、IDのハッシュなどの任意のそうした要素のハッシュ等)とすることができる。
【0019】
コンピューティング・デバイス110は、(例えば、1つ又は複数のネットワーク・セグメント116を介して)ブラインド化された値を、鍵管理システム(KMS)サービス(KMSサービス121として示される)と関連付けられた別のコンピューティング・デバイスに伝送するようにも構成される。コンピューティング・デバイス110は、(例えば、1つ又は複数のネットワーク・セグメント116を介して、KMSサービス121から)ブラインド化された鍵を受け取るようにも構成される。ブラインド化された鍵は、OPRFシークレットを用いる紛失疑似ランダム関数(OPRF)に基づいたブラインド化された値の処理に基づいていることに留意されたい。幾つかの例において、KMSサービス121は、OPRFシークレットを用いるOPRFに基づいたブラインド化された値を処理するように構成される。コンピューティング・デバイス110は、OPRF非ブラインド化操作(例えば、準同型復号、1つ又は複数の他の非ブラインド化操作等)に従って、ブラインド化鍵に基づいてブラインド化された鍵を処理し、入力値と関連付けられた鍵を生成するようにも構成される。次に、コンピューティング・デバイス110は、鍵に基づいてセキュア情報にアクセスする(例えば、1つ又は複数のネットワーク・セグメント116を介して)ようにも構成される。こうしたセキュア情報の例は、秘密の、機密の、及び/又は高価値のものであり得る情報を含むことができる。そうしたデータの例は、個人情報、健康データ、財務データ、戦略プラン、競合情報、企業秘密、ビットコイン・ウォレット、顧客リスト、及び/又は秘密の、機密の、及び/又は高価値のものであり得る任意の他の種類のデータの、1つ又は複数を含むことができる。
【0020】
幾つかの例において、入力値は、KMSサービス121に知られず、鍵と関連付けられた鍵識別子(鍵id)を含む。また、鍵は、KMSサービス121に知られず、DEK又はKEKを含む上述のものを含む任意の種類の鍵を含むことができる。幾つかの特定の例において、OPRFシークレットは、コンピューティング・デバイス110に知られず、コンピューティング・デバイス110と関連付けられた顧客ルート鍵(CRK)に基づいている。
【0021】
図1(B)は、本発明の種々の実施形態による、1つ又は複数の通信システムの実施形態102を示す図である。1つ又は複数のネットワーク・セグメント116は、少なくとも2つのコンピューティング・デバイス110及び112についての通信相互接続性を提供する(例えば、そうしたコンピューティング・デバイスは、特定の例において他のコンピューティング・デバイスとの通信をサポートするように実施及び動作することができ、そうしたコンピューティング・デバイスは代替的に、コンピューティング・デバイスと通信デバイスの機能及び能力の両方を含むそうした状況において、通信デバイスと呼ぶことができる)。一般的に言えば、いずれかの所望の数の通信デバイスが、1つ又は複数の通信システム(例えば、通信デバイス114により示されるような)内に含まれる。
【0022】
1つ又は複数のネットワーク・セグメント116内の種々の通信リンクは、無線、光、衛星、マイクロ波、及び/又はその任意の組み合わせとして実装される通信リンクを含む種々の通信媒体のいずれかを用いて実施することができる。一般に、1つ又は複数のネットワーク・セグメント116は、無線通信システム、有線通信システム、非公開イントラネット・システム、公衆インターネット・システム、ローカル・エリア・ネットワーク(LAN)、無線ローカル・エリア・ネットワーク(WLAN)、広域ネットワーク(WAN)、衛星通信システム、光ファイバ通信システム、もしくはモバイル通信システム又はその組み合わせをサポートするように実施することができる。また、場合によっては、異なるタイプの通信リンクが、いずれか2つの通信デバイス間の接続経路を協働して形成することができる。1つの可能な例を考えると、デバイス110と112との間の通信経路は、有線通信リンクの幾つかのセグメント、及び光通信リンクの他のセグメントを含むことができる。また、デバイス110~114は、固定式デバイス、モバイル・デバイス、携帯可能デバイス等を含む種々のタイプのものとすることができ、データ、電話、インターネット、媒体、同期等を含む多数のサービス又はサービス・フローのいずれかについての通信をサポートできることにも留意されたい。
【0023】
動作及び実施の例において、デバイス110は、他のデバイス112~114の1つ又は複数との通信をサポートするための通信インターフェースを含む。例において、コンピューティング・デバイス110は、通信ネットワーク(例えば、1つ又は複数のネットワーク・セグメント116)、動作命令を格納するメモリ、並びに通信インターフェース及びメモリに結合されたプロセッサとインターフェース接続し、通信するように構成された通信インターフェースを含む。プロセッサは、種々の機能、動作等を実行するための動作命令を実行するように構成される。コンピューティング・デバイス110によりサポートされる通信は、他のコンピューティング・デバイス112~114の1つ又は複数との間で双方向のものであってもよく、又は他のコンピューティング・デバイス112~114の1つ又は複数から単方向(又は主として単方向)のものであってもよい。
【0024】
一例において、コンピューティング・デバイス110は、コンピューティング・デバイス110の通信インターフェースを介して信号の生成、変調、エンコード等、及び伝送を行い、また、コンピューティング・デバイス10の通信インターフェースを介して受け取った(例えば、コンピューティング・デバイス112、コンピューティング・デバイス114等などの他のコンピューティング・デバイスから受け取った)他の信号の処理、復調、デコード等も行う。
【0025】
通信インターフェース120は、コンピューティング・デバイス110-1の1又は複数のユーザとの対話を容易にするために、(例えば、タッチスクリーン、キーボード、音声もしくはビデオ又はその両方の入力/出力ポート等を介して)ユーザ入力の受信及びユーザ出力の出力をサポートするための機能を含み得ることにも留意されたい。そうした機能は、幾つかの例では、通信インターフェース120から別個に実施され、他の例では、通信インターフェース120内に統合される。
【0026】
動作の例において、コンピューティング・デバイス110は、OPRFブラインド化操作(例えば、準同型暗号化、1つ又は複数の他のブラインド化操作等)に従って、ブラインド化鍵に基づいて、鍵と関連付けられた入力値を処理し、ブラインド化された値を生成するように構成される。コンピューティング・デバイス110はまた、1つ又は複数のネットワーク・セグメント116を介するなど通信システムを介して、ブラインド化された値を、鍵管理システム(KMS)サービスと関連付けられたコンピューティング・デバイス112もしくはコンピューティング・デバイス114又はその両方に伝送するようにも構成される。コンピューティング・デバイス110はまた、1つ又は複数のネットワーク・セグメント116を介するなど通信システムを介して、KMSサービスと関連付けられたコンピューティング・デバイス112もしくはコンピューティング・デバイス114又はその両方から、ブラインド化された鍵を受け取るようにも構成される。ブラインド化された鍵は、OPRFシークレットを用いる紛失疑似ランダム関数(OPRF)に基づいたブラインド化された値の処理に基づいていることに留意されたい。幾つかの例において、コンピューティング・デバイス112もしくはコンピューティング・デバイス114又はその両方は、OPRFシークレットを用いるOPRFに基づいてブラインド化された値を処理するように構成される。次に、コンピューティング・デバイス110は、OPRF非ブラインド化操作(例えば、準同型復号、1つ又は複数の他の非ブラインド化操作等)に従って、ブラインド化鍵に基づいて、ブラインド化された鍵を処理し、入力値と関連付けられた鍵を生成するようにも構成される。幾つかの例において、コンピューティング・デバイス110は、鍵を用いてセキュア情報にアクセスするようにも構成される(例えば、1つ又は複数のネットワーク・セグメント116を介するなど通信システムを介して、ローカルに利用可能な及び/又は格納されるセキュア情報に基づいて、及び/又はその組み合わせ等に基づいて)。そうしたセキュア情報は、データ、鍵等、及び/又は1つ又は複数のネットワーク・セグメント116を介するなど通信システムを介してアクセス可能な1つ又は複数の他のコンピューティング・デバイス内に格納される他の情報とすることができる。
【0027】
図1(C)は、本発明の種々の実施形態による1つ又は複数の通信システム内で動作するように構成されたコンピューティング・デバイスの実施形態103を示す図である。コンピューティング・デバイス110-1は、通信インターフェース120及び処理回路130を含む。通信インターフェース120は、通信システム内の1つ又は複数の他のデバイスとの通信をサポートするために、送信機122及び受信機124の機能を含む。コンピューティング・デバイス110-1はまた、コンピューティング・デバイス110-1により生成される1又は複数の信号を含む情報、又は1つ又は複数の通信チャネルを介して他のデバイス(例えば、コンピューティング・デバイス112)から受信した情報を格納するためのメモリ140を含むこともできる。例えば、メモリ140はまた、メッセージもしくは他の受信した信号又はその両方の処理、並びに他のメッセージもしくは本明細書で説明されるものを含む他の信号(例えば、画像信号及び/又はビデオ信号)又はその両方の生成に関して、処理回路130により使用される種々の動作命令を含むこと及び格納することもできる。メモリ140はまた、1つ又は複数のタイプのエンコード、1つ又は複数のタイプの記号マッピング、コンピューティング・デバイス110-1により生成され得るような、種々の変調コード化スキーム等の連結を含む情報、又は1つ又は複数の通信チャネルを介して他のデバイスから受け取った情報を格納することもできる。通信インターフェース120は、1つ又は複数の他のデバイス(例えば、コンピューティング・デバイス112-1もしくは他のコンピューティング・デバイス又はその両方)との間の通信をサポートする。メモリ140はまた、本明細書で説明される、種々の態様、実施形態、及び/又は例、並びにその同等物による、1つ又は複数のタイプのビデオ処理及び/又は画像処理を含む情報を格納することもできる。
【0028】
通信インターフェース120の動作は、処理回路130が、通信インターフェース120を介して信号(TX及びRX)を送受信するように、処理回路130により指示することができる。一般的に言うと、コンピューティング・デバイス110-1は、コンピューティング・デバイス112-2を含む1つ又は複数の通信システム内の1つ又は複数の他のコンピューティング・デバイスとの通信をサポートすることができる。
【0029】
コンピューティング・デバイス110-1(例えば、
図1(B)で参照されるようなコンピューティング・デバイス110、112、又は114のいずれか1つとすることができる)は、通信媒体を介して別のコンピューティング・デバイス112-1(及び/又は任意の数の他の無線コンピューティング・デバイス)と通信する。コンピューティング・デバイス110-1は、少なくとも1つの信号、記号、パケット、もしくはフレーム又はその組み合わせ等の送受信を実行する(例えば、送信機122及び受信機124を用いて)ための通信インターフェース120を含む(パケット又はフレームへの一般的な参照は、交換可能に用いることができることに留意されたい)。
【0030】
一般的に言うと、通信インターフェース120は、アナログ・フロントエンド(AFE)もしくは物理層(PHY)又はその両方の送信機、受信機、もしくは送受信機又はその組み合わせの任意の動作を実行するように実装される。そうした動作の例は、周波数とアナログ又は連続的時間領域の間の変換を含む種々の動作(例えば、デジタル・アナログ変換器(DAC)もしくはアナログ・デジタル変換器(ADC)又はその両方により実行される動作など)、スケーリング、フィルタリング(例えば、デジタル領域又はアナログ領域のいずれかにおける)、周波数変換(例えば、コンピューティング・デバイス110-1のコンポーネントの1つ又は複数が動作するベースバンド周波数などへの、周波数アップスケーリングもしくは周波数ダウンスケーリング又はその両方)、同等化(equalization)、予等化(pre-equalization)、メトリック生成、記号マッピング及び/又はデマッピング、自動利得制御(AGC)操作、及び/又はコンピューティング・デバイス内のAFE及び/又はPHYコンポーネントにより実行され得る任意の他の動作のうちのいずれか1つ又は複数を含むことができる。
【0031】
幾つかの実装において、コンピューティング・デバイス110-1は、コンピューティング・デバイス112-1に伝送された、及び/又はコンピューティング・デバイス112-1及び/又は任意の他のコンピューティング・デバイスから受け取った少なくとも1つの信号、記号、パケット、もしくはフレーム又はその組み合わせの解釈を含む種々の動作を実行するための、処理回路130及び関連したメモリ140も含む。コンピューティング・デバイス110-1及び112-1は、少なくとも1つの集積回路内のいずれかの所望の構成、又はコンポーネント、モジュール等の組み合わせに従った、少なくとも1つの集積回路を用いて実装することができる。また、コンピューティング・デバイス110もしくは112又はその両方はそれぞれ、少なくとも1つのパケット又フレームを無線で送信もしくは受信又はその両方をするための1つ又は複数のアンテナを含むことができる(例えば、コンピューティング・デバイス110-1は、m個のアンテナを含むことができ、コンピューティング・デバイス112-1は、n個のアンテナを含むことができ、ここでm及びnは正の整数である)。
【0032】
また、幾つかの例において、処理回路130、通信インターフェース120(そのTX122もしくはRX124又はその両方を含む)、及び/又はメモリ140のうちの1つ又は複数を、1つ又は複数の「処理モジュール」、「処理回路」、「プロセッサ」、及び/又は「処理ユニット」、又はその同等物内に実装することができる。1つの例を考えると、システム・オン・チップ(SOC)130aを、処理回路130、通信インターフェース120(そのTX122もしくはRX124又はその両方を含む)及びメモリ140を含むように実装することができる(例えば、SOC130aは、内部に複数のコンポーネントを含むマルチ機能、マルチモジュールの集積回路である)。別の例を考えると、処理・メモリ回路130bを、処理回路130及びメモリ140の両方に類似した機能を含むように実装することができるが、通信インターフェース120は、別個の回路である(例えば、処理・メモリ回路130bは、処理回路及びメモリの機能を実施する単一の集積回路であり、通信インターフェース120に結合され、また、これと対話する)。
【0033】
さらに別の例を考えると、2つ又はそれより多い処理回路を、処理回路130、通信インターフェース120(そのTX122もしくはRX124又はその両方を含む)及びメモリ140を含むように実装することができる。こうした例において、こうした「処理回路」又は「複数の処理回路」(又は「プロセッサ」もしくは「複数のプロセッサ」)が、本明細書で説明される種々の動作、機能、通信等を実行するように構成される。一般に、コンピューティング・デバイス110-1内に示される種々の要素、コンポーネント等は、いずれかの数の「処理モジュール」、「処理回路」、「プロセッサ」、もしくは「処理ユニット」又はその組み合わせで実装することができる(例えば、1、2、・・・及び一般的にN個のそうした「処理モジュール」、「処理回路」、「プロセッサ」、もしくは「処理ユニット」又はその組み合わせを使用し、ここでNは、1より大きいか又は1に等しい正の整数である)。
【0034】
幾つかの例において、コンピューティング・デバイス110-1は、種々の動作を実行するように構成された、処理回路130及び通信インターフェース120の両方を含む。他の例では、コンピューティング・デバイス110-1は、種々の動作を実行するように構成されたSOC130aを含む。さらに他の例では、コンピューティング・デバイス110-1は、種々の動作を実行するように構成された処理・メモリ回路130bを含む。一般に、そうした動作は、1つ又は複数の他のコンピューティング・デバイス(例えば、コンピューティング・デバイス112-1)を対象とした信号の生成、伝送等と、1つ又は複数の他のデバイス(例えば、コンピューティング・デバイス112-1)のために受信した他の信号の受信、処理等とを含む。
【0035】
幾つかの例において、処理回路130に結合される通信インターフェース120は、衛星通信システム、無線通信システム、有線通信システム、光ファイバ通信システム、もしくはモバイル通信システム又はその組み合わせ(及び/又は任意のタイプの通信媒体を用いて実施される他の任意のタイプの通信システム)内での通信をサポートするように構成されることに留意されたい。コンピューティング・デバイス110-1により生成及び伝送、及び/又は受信及び処理される信号のいずれも、これらのタイプの通信システムのいずれかを介して通信することができる。
【0036】
コンピューティング・デバイス110-1は、衛星通信デバイス、無線通信デバイス、有線通信デバイス、光ファイバ通信デバイス、又はモバイル通信デバイスのいずれか1つ又は複数として動作するように実装することができ、他のタイプの通信システムの中でも、衛星通信システム、無線通信システム、有線通信システム、光ファイバ通信システム、又はモバイル通信システムを含むいずれか1つ又は複数の通信システム内に実装することができ及び/又は動作可能である。
【0037】
動作及び実装の例において、コンピューティング・デバイスは、通信ネットワークとインターフェース接続し、通信するように構成された通信インターフェース120と、動作命令を格納するメモリ140と、通信インターフェース及びメモリに結合された処理回路130とを含む。
【0038】
処理回路130は、種々の機能、動作及び処理を実行するための動作命令を実行するように構成される(通信インターフェース120もしくはメモリ140又はその両方と協働することもある)。1つの例において、処理回路130は、OPRFブラインド化操作(例えば、準同型暗号化、1つ又は複数の他のブラインド化操作等)に従って、ブラインド化鍵に基づいて、鍵と関連付けられた入力値を処理し、ブラインド化された値を生成するように構成される。次に、処理回路130は、通信インターフェース120を介して、ブラインド化された値を、鍵管理システム(KMS)サービスと関連付けられた別のコンピューティング・デバイス112-1に伝送するように構成される。処理回路130は、通信インターフェース120を介して、KMSサービスと関連付けられたコンピューティング・デバイス112-1から、ブラインド化鍵を受け取るように構成される。ブラインド化鍵は、OPRFシークレットを用いるOPRFに基づいたブラインド化された値の処理に基づいていることに留意されたい。幾つかの例において、コンピューティング・デバイス112-1は、OPRFシークレットを用いるOPRFに基づいて、ブラインド化された値を処理するように構成される。次に、処理回路130は、OPRF非ブラインド化操作(例えば、準同型復号、1つ又は複数の他の非ブラインド化操作等)に従って、ブラインド化鍵に基づいて、ブラインド化された鍵を処理し、入力値と関連付けられた鍵を生成するように構成される。幾つかの例において、コンピューティング・デバイス110-1は、鍵に基づいてセキュア情報にアクセスする(例えば、通信システムを介して、ローカルに利用可能な及び/又は格納されるセキュア情報に基づいて、及び/又はその組み合わせ等に基づいて)するようにも構成される。
【0039】
図1(D)は、本発明の種々の実施形態による、無線通信システムの実施形態104を示す図である。無線通信システムは、1つ又は複数の基地局もしくはアクセス・ポイント又はその両方150と、無線通信デバイス160~166(例えば、無線局(STA))と、ネットワーク・ハードウェア・コンポーネント156とを含む。無線通信デバイス160~166は、ラップトップ・コンピュータ、又はタブレット160、携帯情報端末162、パーソナル・コンピュータ164もしくは携帯電話166又はその組み合わせ(及び/又は、任意のタイプの無線通信デバイス)とすることができる。こうした無線通信デバイス160~166の他の例は同様に又は代替的に、無線通信機能(及び/又は、有線通信機能、衛星通信機能、光ファイバ通信機能等などの他のタイプの通信機能)を含む他のタイプのデバイスを含むこともできる。無線通信デバイスの例として、無線スマートフォン、携帯電話、ラップトップ、携帯情報端末、タブレット、パーソナル・コンピュータ(PC)、ワークステーションもしくはビデオ・ゲーム・デバイス又はその組み合わせを挙げることができる。
【0040】
本明細書で説明される種々の例、実施形態、選択肢、及び/又はその同等物等のいずれかに従って動作するように実装することができる可能なデバイスの幾つかの例は、これらに限定されるものではないが、冷蔵庫、電子レンジ、暖房器、暖房システム、空調装置、空調システム、照明制御システム、及び/又は任意の他のタイプのアプライアンス等などの、家庭、企業等内のアプライアンス、天然ガス・サービス、電気サービス、水道サービス、インターネット・サービス、ケーブル及び/又は衛星テレビジョン・サービスなどのメーター、及び/又は任意の他のタイプの計量目的等などのメーター、時計、活動レベルを監視するもののようなモニタ、心拍、呼吸、身体活動、身体動作又はその欠如等の身体機能、静脈内(IV)薬剤送達監視及び/又は制御デバイス、血液監視デバイス(例えば、グルコース監視デバイス)を含む医療機器、及び/又は他のタイプの医療機器等、移動検出/監視デバイス、ドア閉鎖/半ドア検出/監視デバイス、セキュリティ/警報システム監視デバイスなどのプレミス監視デバイス、及び/又は任意のタイプのプレミス監視デバイス、テレビジョン、コンピュータ、音声再生デバイス、ビデオ再生デバイスを含むマルチメディア・デバイス、及び/又は任意の他のタイプのマルチメディア・デバイス等、及び/又は無線通信能力、機能、回路等を含む一般的な任意の他のタイプのデバイスを含むことができる。一般に、無線通信をサポートするために実施されるいずれのデバイスも、本明細書で説明される種々の例、実施形態、選択肢、及び/又はその同等物の何れかに従って動作するように実施することができる。
【0041】
1つ又は複数の基地局(BS)又はアクセス・ポイント(AP)150は、ローカル・エリア・ネットワーク接続152を介して、ネットワーク・ハードウェア156に動作可能に結合される。ネットワーク・ハードウェア156は、ルータ、スイッチ、ブリッジ、モデム、システム・コントローラ等とすることができ、通信システムのための広域ネットワーク接続154を提供する。1つ又は複数の基地局又はアクセス・ポイント150の各々は、領域内の無線通信デバイスと通信するための関連したアンテナ又はアンテナ列を有する。典型的には、無線通信デバイスは、通信システムからサービスを受けるために特定の基地局又はアクセス・ポイント150に登録される。直接接続(すなわち、ポイント・ツー・ポイント通信)のために、無線通信デバイスは、割り当てられたチャネルを介して直接通信する。
【0042】
種々の無線通信デバイス(WDEV)160~166及び1つ又は複数のBS又はAP150のいずれも、いずれかの他の無線通信デバイス160~166及び1つ又は複数のBS又はAP150との通信をサポートするための処理回路もしくは通信インターフェース又はその両方を含むことができる。動作の例において、デバイスの1つ(例えば、WDEV160~166及び1つ又は複数のBS又はAP150のいずれか1つ)内に実装される処理回路もしくは通信インターフェース又はその両方は、デバイスの別のもの(例えば、1つ又は複数のWDEV160~166及び1つ又は複数のBS又はAP150のいずれか他のもの)から受け取る少なくとも1つの信号の処理、もしくはそれに伝送される少なくとも1つの信号の生成又はその両方をするように構成される。
【0043】
図1(D)の無線通信デバイス(例えば、WDEV)160~166及び1つ又は複数のBS又はAP150、又は任意の他の通信デバイスもしくは無線通信デバイス又はその組み合わせのような、通信デバイスへの一般的参照は、代替的に、用語「デバイス」(例えば、「無線通信デバイス」又は「WDEV」と言うときの「デバイス」)を用いて本明細書で一般的に行い得ることに留意されたい。一般的に、デバイスの一般的参照又は名称は、交換可能に用いることができる。
【0044】
種々のデバイス、WDEV160~166及び1つ又は複数のBS又はAP150のいずれか1つの処理回路もしくは通信インターフェース又はその両方は、種々のデバイス、WDEV160~166及び1つ又は複数のBS又はAP150の任意の他のものとの通信をサポートするように構成することができる。こうした通信は、デバイス間の単方向のものであっても又は双方向のものであってもよい。また、こうした通信は、ある時にはデバイス間の単方向のものであり、別の時にはそれらのデバイス間の双方向のものであることもある。
【0045】
例において、デバイス(例えば、WDEV160~166及び1つ又は複数のBS又はAP150のいずれか1つ)は、他のデバイスとの通信をサポートし、そうした通信についての信号を生成及び処理するための通信インターフェースもしくは処理回路又はその両方(及び潜在的には他の可能な回路、コンポーネント、要素等)を含む。通信インターフェースもしくは処理回路又はその両方は、種々の動作及び機能を実行してこうした通信をもたらすように動作する(例えば、通信インターフェース及び処理回路は、互いに関連して、協働して、互いに依存して等、特定の動作を実行し、互いに独立してなど別個に他の動作を実行するように構成することができる)。幾つかの例において、そうした処理回路は、本明細書で説明されるような動作を実行するための、全ての能力、機能もしくは回路又はその組み合わせ等を含む。幾つかの他の例において、そうした通信インターフェースは、本明細書で説明されるような動作を実行するための、全ての能力、機能もしくは回路又はその組み合わせ等を含む。さらに他の例において、そうした処理回路及び通信インターフェースは、本明細書で説明されるような動作を少なくとも部分的に、互いに協働して実行するための、全ての能力、機能もしくは回路又はその組み合わせ等を含む。
【0046】
実施及び動作の例において、無線通信デバイス(例えば、WDEV160~166及び1つ又は複数のBS又はAP150のいずれか一方)は、他の無線通信デバイス(例えば、1つ又は複数のWDEV160~166及び1つ又は複数のBS又はAP150のいずれか他方)の1つ又は複数との通信をサポートするための処理回路を含む。例えば、そうした処理回路は、処理動作並びに通信インターフェース関連機能の両方を実行するように構成される。こうした処理回路は、単一の集積回路、システム・オン・チップ等として実装することができる。
【0047】
実施及び動作の別の例において、無線通信デバイス(例えば、WDEV160~166及び1つ又は複数のBS又はAP150のいずれか一方)は、他の無線通信デバイス(例えば、1つ又は複数のWDEV160~166及び1つ又は複数のBS又はAP150のいずれか他方)の1つ又は複数との通信をサポートするように構成された処理回路、通信インターフェース及びメモリを含む。
【0048】
実施及び動作の例において、WDEV160は、OPRFブラインド化操作(例えば、準同型暗号化、1つ又は複数の他のブラインド化操作等)に従って、ブラインド化鍵に基づいて、鍵と関連付けられた入力値を処理し、ブラインド化された値を生成するように構成される。次に、WDEV160は、ブラインド化された値を、鍵管理システム(KMS)サービスと関連付けられた別のコンピューティング・デバイス(例えば、WDEV164、及び/又はネットワーク・ハードウェア156を介する何らかの他のコンピューティング・デバイス)に伝送するように構成される。WDEV160は、KMSサービスと関連付けられた他のコンピューティング・デバイスから、ブラインド化された鍵を受け取るように構成される。ブラインド化された鍵は、OPRFシークレットを用いるOPRFに基づいたブラインド化された値の処理に基づいていることに留意されたい。幾つかの例において、このコンピューティング・デバイスは、OPRFシークレットを用いるOPRFに基づいて、ブラインド化された値を処理するように構成される。次に、WDEV160は、OPRF非ブラインド化操作(例えば、準同型復号、1つ又は複数の他の非ブラインド化操作等)に従って、ブラインド化鍵に基づいて、ブラインド化された鍵を処理し、入力値と関連付けられた鍵を生成すするように構成される。幾つかの例において、WDEV160は、鍵に基づいてセキュア情報にアクセスする(例えば、通信システムを介して、ローカルに利用可能な及び/又は格納されるセキュア情報に基づいて、及び/又はその組み合わせ等に基づいて)するようにも構成される。
【0049】
鍵管理システム(KMS)に従うと、特にクラウド・ベースのシステムに基づいて動作するKMSに従うと、通常のデータをクラウド内に格納するとき、特にそのデータにアクセスするのに用いられる暗号鍵のストレージに関して言えば、懸念、不確実性、信頼の欠如、及び/又は信用の欠如等が増大する状況があり得る。例えば、暗号化され得る何らかのデータは、個人情報、健康データ、財務データ、戦略プラン、競合情報、企業秘密、ビットコイン・ウォレット、顧客リスト、及び/又は他のタイプのデータのうちのいずれか1つ又は複数を含むことができる。こうしたデータは、それが秘密の、機密の、及び/又は高価値のものであるときに暗号化され、従って、暗号化されたデータのセキュリティは、そのデータにアクセスするために用いられる鍵のセキュリティに直接関連し、少なくとも部分的に依存する。
【0050】
図2(A)は、本発明の種々の実施形態による、KMSをサポートする1つ又は複数の通信システムの別の実施形態201を示す図である。この図は、どちらも同じ環境(例えば、クラウド・コンピューティング環境、クラウド・プロバイダ等として実装することができる1つ又は複数のネットワーク・セグメント116)内に実装されるクラウド・ストレージ・サービス210及びクラウド鍵管理システム(KMS)サービス220と対話するように構成されたコンピューティング・デバイス110を示す。クラウド・ストレージ・サービス210は、種々のタイプの1又は複数のセキュア情報210a(例えば、鍵保護データ、ラップされたデータ等、もしくは他のセキュア情報又はその組み合わせ)を含むことができる。クラウドKMSサービス220は、種々のタイプの1又は複数のセキュア情報210aにアクセスするために、1つ又は複数のコンピューティング・デバイスと関連付けられたより多くのユーザの一人が使用することができる1つ又は複数の鍵220aを含むことができる。
【0051】
この実施において、同じクラウド・プロバイダが、クラウド・ストレージ・サービス210及びクラウドKMSサービス220の両方のために用いられるとき、悪意のあるインサイダー又は不正なクラウド・プロバイダが、テナント・データにアクセスできることがある。従って、データのセキュリティを保証にするために、信用要件が最大にされる。例えば、両方のサービス(例えば、クラウド・ストレージ・サービス210及びクラウドKMSサービス220)について同じプロバイダを用いる顧客は、プロバイダ及びその処理の点でそれらが完全な信頼性を有していることを要求する。
【0052】
図2(B)は、本発明の種々の実施形態による、KMSをサポートする1つ又は複数の通信システムの別の実施形態202を示す図である。この図は、異なる環境内に別個に実装されるクラウド・ストレージ・サービス210及びクラウドKMSサービス220(例えば、第1のクラウド・コンピューティング環境、クラウド・プロバイダ等として実装することができる1つ又は複数のネットワーク・セグメント116に基づいて実装されるクラウド・ストレージ・サービス210、及び第2のクラウド・コンピューティング環境、クラウド・プロバイダ等として実装することができる1つ又は複数のネットワーク・セグメント116aに基づいたKMSサービス220)と対話するように構成されたコンピューティング・デバイス110を示す。同じく上述のように、クラウド・ストレージ・サービス210は、種々のタイプの1又は複数のセキュア情報210a(例えば、鍵保護データ、ラップされたデータ等、もしくは他のセキュア情報又はその組み合わせ)を含むことができ、クラウドKMSサービス220は、種々のタイプの1又は複数のセキュア情報210aにアクセスするために、1つ又は複数のコンピューティング・デバイスと関連付けられたより多くのユーザの一人が使用できる1つ又は複数の鍵220aを含むことができる。
【0053】
この実施において、2つの別個の異なるクラウド・プロバイダがそれぞれ、クラウド・ストレージ・サービス210及びクラウドKMSサービス220のために用いられるとき、全体のシステムがより複雑になることがあり、両立性のないアプリケーション・プログラム・インターフェース(API)が存在する可能性があり得る。そうした特定の相互運用性問題及び他の問題が持ち上がることがある。例えば、顧客は、必ずしもいずれか1つの特定のプロバイダを完全に信用する必要はないが、この実施は、不幸なことに多数の相互運用性問題をもたらすことがある。例えば、2つのサービス間をインターフェース接続するためのAPI及びライブラリに両立性がないことがある。また、「サーバ側暗号化」(SSE:Server Side Encryption)などの機能は、こうした実施では全く機能しない。
【0054】
図3(A)は、本発明の種々の実施形態による、KMSをサポートする1つ又は複数の通信システムの別の実施形態301を示す図である。この図は、テナント・プレミス330に実装することができクラウド・ストレージ・サービス310及び内部KMSサービス320aと対話するように構成されたコンピューティング・デバイス110を示す。例えば、テナント・プレミス330は、コンピューティング・デバイス110から遠隔配置することができ、クラウド・コンピューティング環境、クラウド・プロバイダ等として実装することができる1つ又は複数のネットワーク・セグメント116を介してアクセス可能である。同じく他の実施形態及び例に関して上述したように、クラウド・ストレージ・サービス310は、種々のタイプの1又は複数のセキュア情報310a(例えば、鍵保護データ、ラップされたデータ等、もしくは他のセキュア情報又はその組み合わせ)を含むことができ、内部KMSサービス320は、種々のタイプの1又は複数のセキュア情報310aにアクセスするために、1つ又は複数のコンピューティング・デバイスと関連付けられたより多くのユーザの一人が使用できる1つ又は複数の鍵320bを含むことができる。
【0055】
この実施において、テナントがクラウド・ストレージ(例えば、クラウド・ストレージ・サービス310)を用いて内部KMSサービス320で動作するとき、顧客は、必ずしもクラウド・プロバイダを完全に信用する必要はないが、こうした実施は、それぞれのKMSを管理するために、著しいプロセス、専門知識及び労力を必要とし得る。こうした実施は非常に費用がかかり得る。
【0056】
例えば、この図は、その1つ又は複数の鍵のセキュリティを保護するために、クラウド・プロバイダを殆ど信用できない又は信用できないクラウドのユーザの実施を示す。例えば、そうしたユーザは、暗号化データを格納するために、クラウド・ストレージ・プロバイダを信用できるが、そのユーザは、その1つ又は複数の鍵を保持するクラウド・プロバイダを信用しない。この実施において、ユーザは必ずしもクラウド・プロバイダを信頼する必要はないが、実装は、非常に高価である、まれな専門知識、専用機器を必要とする、厄介な回復計画、信頼されるスタッフ及び厳格なポリシーを必要とするなどの様々な理由で、問題がある場合がある。これらがなければ、実際には、クラウドKMSよりも信頼できず又はセキュアではない可能性が高い。
【0057】
クラウド・ベースの技術に基づいたKMSの多くのこうした実施は、単一のプロバイダに大きな信用を置くことを必要とすること、もしくはそれぞれのKMSインフラストラクチャの保守を必要とすること又はその両方をすることを含む様々な理由に悩まされる。本開示は、クラウド・プロバイダにいかなる信用も求めず、テナント・プレミスにおけるKMSインフラストラクチャも必要としないKMSを提供することを含む、従来技術におけるそうした欠点と問題に対処する。本明細書で提示されるような新規な解決法は、KMSサービス・プロバイダに対する信用の要求を最小にする。例えば、1つ又は複数の鍵は、決して顧客プレミスから離れず、KMSサービス・プロバイダは、それらの1つ又は複数の鍵を知ることはできない。また、KMSプロバイダを認証することなく、誰も1つ又は複数の鍵にアクセスできない。さらに、本明細書で提示されるこうした新規な解決法は、ほぼ無限の計算作業を行う量子能力が出現したとしても、本明細書で提示されるような新規な実施は、ハッキング、侵入(invasive)プロセス等のターゲットになり得るとき、コンピューティング・テクノロジーにおけるこうした進歩に影響されないという点で、ポスト量子(post-quantum)セキュリティを提供する。例えば、本明細書で提示される新規な鍵アクセス・プロトコル手法は、量子コンピュータを用いるものを含む、無制限の計算リソースを用いる攻撃者から影響を受けない。
【0058】
また、本明細書で提示される新規な解決法において、鍵のセキュリティは、通信が行われる1つ又は複数の通信チャネルのセキュリティに依存しない。例えば、幾つかの従来技術の手法は、セキュアな通信を達成するために、トランスポート層セキュリティ(TLS)もしくは他の手段又はその両方に基づいて動作する。
【0059】
さらに、本明細書で提示されるそうした新規な解決法は、1つ又は複数の鍵がセキュアなままであるという点で、セキュリティの永続をもたらす。例えば、KMSサービス・プロバイダが完全に漏洩される不幸なイベントにおいてさえ、1つ又は複数の鍵は、完全にセキュアなままである。幾つかの実施は、予測不能な鍵識別子(id)(例えば、「第2の要因として鍵id」を用いて)を要求するように実装され得ることに留意されたい。本明細書で提示されるこうした新規な解決法は、KMSサービス・プロバイダが格納することをユーザが望む1つ又は複数の鍵の使用又は暴露に関して、KMSサービス・プロバイダを十分かつ完全に信用するという要件をなくす。ユーザは、高度に利用可能/信用可能なシステムを提供するKMSサービス・プロバイダを依然として求め得るが、1つ又は複数の鍵を使用又は暴露することに関してKMSサービス・プロバイダを完全に信用するために、その同じKMSサービス・プロバイダに対する信用は不要になる。
【0060】
実施において、クラウドKMSサービス・プロバイダのテナントがその鍵を有するプロバイダを信用するとき、テナントは、後で取り出すように鍵を格納すること、又はそれらをアンラップすることにより、動作することができる。どちらの場合も、クラウドKMSサービス・プロバイダは、テナントの鍵を知ることになる。本明細書で提示されるそうした新規な解決法は、クラウドKMSサービス・プロバイダがテナントの鍵を知ることはない手段を提供する。
【0061】
図3(B)は、本発明の種々の実施形態による、紛失疑似ランダム関数(OPRF)に基づいてKMSをサポートする1つ又は複数の通信システムの別の実施形態302を示す図である。OPRFは、テナントが、クラウドKMSプロバイダから鍵を取得することを可能にする。紛失性の特性は、プロバイダが、暗号的に、数学的に、明らかに鍵を知ること又は判断することができないことを保証する。この図に関して、本明細書に示される「+」及び「-」演算は、それ自体が加算及び減算ではないことに留意されたい。これらの演算は、素数を法とするべき乗(exponentiation modulo a prime)、又は楕円曲線上の乗算、又は何らかの他の演算とすることができる。
【0062】
OPRFを考えると、OPRFは、2つのパーティが、次のように関数Yを評価することを可能にする。
Y=OPRF(K,X)
OPRFシークレットKは「Bob」だけが知っており;Aliceはそれを判断することができない。
出力Y及び入力Xは「Alice」だけが知っており;「Bob」は判断することができない。
紛失PRFは、理想的なクラウドKMSを可能にする:
テナントは、“X”を「鍵id」として使用し、“Y”を鍵(DEK又はKEK)として使用する。
OPRFは、プロバイダが鍵について何も知らないことを保証する
プロバイダは、OPRFシークレット“K”を保持し、“CRK”として機能する。
【0063】
OPRFは、ブラインド化された値に対して(例えば、準同型暗号化された暗号文に対して)行われる鍵導出とみなすことができる。本明細書における特定の例は、準同型暗号化を用いて行われるOPRFブラインド化操作(及び、準同型復号を用いて行われるOPRF非ブラインド化操作)に関して説明されるが、一般に、いずれのOPRFブラインド化操作/OPRF非ブラインド化操作も、OPRFブラインド化操作/OPRF非ブラインド化操作を行うプロセスがクライアントに(例えば、「Bob」にではなく「Alice」などの、ユーザ、コンピューティング・デバイス110に)知られるように使用することができる。そうしたOPRFブラインド化操作/OPRF非ブラインド化操作の1つの例は、準同型暗号化/準同型復号を含む。しかしながら、一般に、OPRFブラインド化操作/OPRF非ブラインド化操作を行って、KMSサービスと関連付けられた他のコンピューティング・デバイス(例えば、サーバ/KMSサーバ121(「Bob」))に知られないブラインド化された値を生成することにより、任意の関数を使用することができる。例えば、任意の所望の関数、又は入力値のマッピングを使用して、未知の入力値(サーバ/KMSサーバ121(「Bob」)などの、KMSサービスと関連付けられた他のコンピューティング・デバイスに知られない)を生成することができる。そうすれば、クライアント(例えば、ユーザ、コンピューティング・デバイス110)は、その場合に実行されたOPRFブラインド化操作に基づいて適切なOPRF非ブラインド化操作を実行する方法を知っている。
【0064】
準同型暗号化を用いて行われるOPRFブラインド化操作に関して、クライアント(例えば、ユーザ、コンピューティング・デバイス110)は、準同型ワンタイムパッド暗号鍵を入力値に適用する。例えば、クライアントは、クライアントが鍵を導出したいと望む何らかの入力値で開始する。例えば、この入力値は、鍵idとすることができる。次に、クライアントは、ワンタイムパッド暗号鍵(例えば、準同型ワンタイムパッド暗号化)を用いて入力値を暗号化する。ワンタイムパッド暗号鍵は、この鍵の回復のためだけにランダムに生成され、後に捨てられる、又は捨てることができる(例えば、将来の使用のために保存されない)。
【0065】
これは、準同型暗号化及びワンタイムパッドを用いて行われるOPRFブラインド化操作である。従って、暗号化された(又はブラインド化された)結果は、入力についての情報を全く明らかにしない。次に、この暗号文(ブラインド化された値)は、サーバ/KMSサービス121に送られる。サーバ/KMSサービス121は、OPRF鍵(例えば、顧客ルート鍵(CRK)、幾つかの例では、OPRFシークレット)を用いて、この暗号文に対する鍵導出関数を実行してそれをユーザに戻す。
【0066】
暗号化の準同型特定のため、クライアント(例えば、ユーザ、コンピューティング・デバイス110)がサーバ/KMSサービス121からの結果を復号するとき、クライアントは、サーバが平文値に対してその鍵導出関数を直接実行したのと同じ値を取得することに気付く。この結果が、鍵と考えられる。結果として得られる鍵は、入力に適用された鍵導出関数(KDF)(例えば、鍵の生成に用いられる決定性関数)と等しい。
【0067】
クライアントが異なるランダムなブラインド化鍵を選択したとしても、生成される結果物としての鍵は同じになることに留意されたい。実際には、いずれの可能な入力値によっても、全ての可能なブラインド化された値が可能である。これは、サーバ及びいずれかの盗聴者も、サーバ/KMSサービス121に対して、有線、ネットワーク・セグメント、クラウド等上で見ているものから入力値又は導出された鍵についての情報を取得しないためである。
【0068】
この形態の準同型暗号化は、極めて効率的かつ実際的な特別な形態であることに留意されたい。ハードウェア・セキュリティ・モジュール(HSM)は、毎秒何万ものこうした演算を実行できるものとして引用されることにも留意されたい。CPUは、毎秒何十万以上もの実行をすることができる。
【0069】
また、鍵は、「OPRF鍵」(例えば、OPRFシークレット)と組み合わせられた「入力値」から導出されることにも留意されたい。OPRF鍵のホルダ、サーバ/KMSサービス121には、入力値も又は結果として得られる鍵も分からないことにも留意されたい。これは、「ブラインド化」のプロセスにより実施され、そこで、入力及び出力の両方が、情報内で、理論的な(量子セキュアな)方法でブラインド化され、入力及び出力は、KMSサービス、ハッカー又はNSAのいずれに対しても、鍵についての情報をもたらさない。以下のステップは、このプロセス及びクライアント(例えば、ユーザ、コンピューティング・デバイス110)とサーバ/KMSサーバ121との間の交換をもたらすと見なすことができる。:
1.テナントは、ランダム鍵:Rを生成する
2.テナントは、ランダム鍵を用いて「鍵id」を暗号化する:ER{key-id}
3.テナントは、暗号化された結果をクラウドKMSプロバイダに送る
4.クラウドKMSプロバイダは、それ自身の鍵:Pを用いて結果を暗号化する
5.クラウドKMSプロバイダは、結果をテナントに返す:EP{ER{key-id}}
6.テナントは、そのランダム鍵Rを用いてそれを復号し、EP{key-id}を得る
【0070】
幾つかの例において、コンピューティング・デバイス110(例えば、ユーザと関連付けられたようなクライアント)は、準同型暗号化に従って、ブラインド化鍵に基づいて、鍵と関連付けられた入力値を処理し、ブラインド化された値を生成するように構成される。コンピューティング・デバイスは、通信システムを介して、ブラインド化された値を、鍵管理システム(KMS)サービスと関連付けられた別のコンピューティング・デバイス(サーバ/KMSサービス121)に伝送するように構成される。コンピューティング・デバイスは、通信システムを介して、KMSサービスと関連付けられた他のコンピューティング・デバイス(サーバ/KMSサービス121)から、ブラインド化された鍵を受け取るように構成される。ブラインド化された鍵は、OPRFシークレットを用いてOPRFに基づいたブラインド化された値の処理に基づいている。例えば、サーバ/KMSサービス121は、OPRFシークレットを用いるOPRFに基づいてブラインド化された値を処理するように構成される。次に、コンピューティング・デバイス110は、準同型復号に従って、ブラインド化鍵に基づいて、ブラインド化された鍵を処理し、入力値と関連付けられた鍵を生成するように構成される。幾つかの例において、コンピューティング・デバイス110は、通信システムを介して、鍵に基づいてセキュア情報にアクセスするように構成される。
【0071】
動作及び実施の例において、ひとたび鍵が生成されると、コンピューティング・デバイス110は、その鍵を用いて、1つ又は複数のネットワーク・セグメントに基づいた又はそれを介してアクセス可能なクラウド・ベースの技術内に格納されるセキュア情報にアクセスする。例えば、コンピューティング・デバイス110は、クラウド・プロバイダにより格納される暗号化データを要求し、そのクラウド・プロバイダにより格納されるその暗号化データを受け取り、次に鍵を用いてその暗号化データを復号する。
【0072】
疑似ランダム関数(PRF)(例えば、紛失(oblivious)でない)の考察に基づいて、紛失疑似ランダム関数(OPRF)をさらに理解することができる。疑似ランダム関数(PRF)は、2つの入力:
1.PRF鍵「K」、及び
2.任意のメッセージ「M」
をとる関数である。
【0073】
これらの2つの入力から、PRFは、「疑似ランダム」出力を返す。これは、ランダム出力とは統計的に区別できない出力である。また、出力は、Kの知識なしに予測することはできない。これらの2つの特性は、PRFを鍵の導出に、つまり、何らかの上位レベルの「ルート」鍵からサブ鍵(sub-key)を作成するのに適したものにする。例えば、無制限のサブ鍵を、PRFから次のように計算することができる。
サブ鍵_1=PRF(K,“1”)、サブ鍵_2=PRF(K,“2”)、サブ鍵_3=PRF(K,“3”),・・・,サブ鍵_n=PRF(K,“n”)。
【0074】
これは、事実上無制限の導出された鍵をサポートしながら単一の上位レベル又はルート鍵のみを持続させる必要があるとき、鍵の管理を簡単化することができる。
【0075】
鍵管理システム(KMS)において、KMSのユーザは、KMSと対話して、暗号鍵を取得することができる。KMS要求者(例えば、コンピューティング・デバイス、コンピューティング・デバイスと関連付けられるようなユーザ等)とKMSユニット(例えば、別のコンピューティング・デバイス、KMSサービス等)との間の動作の例は、次の通りである。:
1.鍵にアクセスしようとする要求者は、鍵アクセス要求(KAR)をKMSユニットに送り、要求は、
a.要求者識別子、
b.ルート鍵識別子、
c.サブ鍵識別子、
d.認証情報(例えば、パスワード、トークン、チャレンジへの応答、署名、デジタル証明書等などの証明書)、及び/又は
e.KMSユニットへのチャレンジ(例えば、KMSユニットがその識別又は演算の正しさを要求者に証明するための)、
のうちのいずれか1つ又は複数を含むことができる。
2.KMSユニットは、
a.要求者識別子について証明書が正しいことを保証する、及び/又は
b.要求者に、所定のルート鍵識別子から導出された鍵にアクセスする権限が付与されていることを保証する、
のうちのいずれか1つ又は複数を含む要求の検証を実行する。
3.権限が付与されていない場合、KMSユニットはエラー応答を返し、失敗の監査ログを作成するか、又は他の是正措置を取ることができる。要求に権限が付与されている場合、KMSユニットは、次のステップに進む。
4.KMSユニットは、適切なルート鍵(要求内に示されるもの)を用いることにより、又はサブ鍵を計算するために、サブ鍵識別子と共に他の情報(要求者識別子など)から推論することにより、アクセス要求を処理する。例えば、PRFを用いてサブ鍵を導出するとき、KMSユニットは、サブ鍵Sを、S=PRF(ルート鍵,サブ鍵識別子)として計算することができる。KMSユニットは、成功裡のアクセス要求の監査ログを作成することができる。次に、KMSユニットは、次のステップに進む。
5.要求者によりチャレンジがKMSユニットに提供された場合、KMSユニットは、チャレンジへの応答(例えば、質問、及び質問と比較して好ましい、その質問への応答)を生成する。
6.KMSユニットは、サブ鍵を含む応答、及び生成された場合にはチャレンジへの応答を要求者に返す。
7.要求者は、チャレンジ(与えらえた場合)への応答を検証し、それが有効である場合、サブ鍵の使用(例えば、暗号化又は復号操作を行うための)に進む。
【0076】
このようにPRFを用いるための1つの不都合な点は、KMSユニットが、PRFを計算するときに、要求者に返された全てのサブ鍵を知り、関数の入力及び出力が分かってしまうことである。これは、KMSサービスを、システム内の全ての要求者が使用する全ての鍵についての情報漏洩の中心点にしてしまう。
【0077】
本明細書で提示されるこうした新規な解決法は、紛失疑似ランダム関数(OPRF)として知られる関数を適用する。これは、KMSが、要求され、返される鍵もしくはサブ鍵又はその両方を観察するのを可能にすることなく、KMSから、要求者による鍵のセキュア・アクセスを可能にすることができる。
【0078】
OPRFは、次のように機能する。これは2つの入力:
1.OPRF鍵“K”(例えば、OPRFシークレット)
2.任意のメッセージ“M”(例えば、鍵ID、ラベル、ユーザ提供識別子等)
を取る。
【0079】
これらの2つの入力から、OPRFもまた疑似ランダム出力を返す。しかしながら、PRFとは異なり、OPRFは、2つのパーティ(例えば、要求者及びKMS)によって計算される。第1のパーティは入力“M”を与える一方で、第2のパーティはOPRF鍵“K”を与える。第1のパーティのみがOPRFの出力を受け取る(又は、知ることができる)。計算の過程で、第1のパーティは、“K”についての情報を知らない。非対称暗号化アルゴリズム、RSA、ブラインド署名、Diffie-Hellmanべき乗(Diffie-Hellman exponentiation)、楕円曲線スカラ乗算、準同型暗号化などに基づくものを含むOPRFの複数の実施がある。OPRFが操作する一般的な原理は、第1のパーティが、入力メッセージ“M”を、第2のパーティに送る前に第2のパーティにとって無意味な形に隠す(obscure)又は「ブラインド化する(blind)」というものである。次に、第2のパーティは、入力時に、OPRF鍵“K”と共に両方のブラインド化された入力“B”の両方をとり、最終出力ではない「ブラインド化された出力」を生成し、これを第2のパーティから第1のパーティに送る特定の関数で操作する。次に、第1のパーティは、オリジナルの入力を隠した方法の知識により、ブラインド化された出力からその操作の影響を取り消し、OPRF出力を回復する方法を決定することができる。ブラインド化の逆は、第1のパーティによって行われるので、第2のパーティは、OPRF出力を全く知らない。
【0080】
OPRFの特性及び上述したKMSの設計を一緒にし、2つを併合して、従来技術において提供されるものと比べて優れたセキュリティ特性を有するKMSを形成することができる。これは、PRFをOPRFと置き換え、要求者に要求の何らかの付加的な前処理と応答の何らかの後処理を実行させることにより行われる。OPRFに基づいたKMSとの対話についてのワークフローは、次の通りであり得る。:
1.要求者は、KMSユニットが使用するOPRFについての適切なブラインド化関数を用いることにより、例えばサブ鍵識別子など、鍵導出関数への入力の1つを隠す。これにより、ブラインド化された入力“B”がもたらされる。幾つかの例において、ブラインド化された鍵のサイズは、それに与えられる入力のサイズと同じである。例えば、入力の長さがXビット又はバイトである場合、ブラインド化された鍵Xの長さもXビット又はバイトである(ここで、Xは正の整数である)。
2.鍵にアクセスしようとする要求者は、紛失鍵アクセス要求(OKAR)をKMSユニットに送り、要求は、
a.要求者識別子
b.ルート鍵識別子(例えば、特定のOPRFシークレットなど、特定のOPRF鍵を参照するための付加的な情報)、
c.ブラインド化された入力(例えば、B=ブラインド化関数(サブ鍵識別子))、
d.認証情報(例えば、パスワード、トークン、チャレンジへの応答、署名、デジタル証明書等などの証明書)、及び/又は
e.KMSユニットへのチャレンジ(KMSユニットがその識別又は操作の正しさを証明するための)、
のうちのいずれか1つ又は複数を含むことができる。
3.KMSユニットは、
a.要求者識別子について証明書が正しいことを保証する、及び/又は
b.要求者に、所定のルート鍵識別子から導出された鍵にアクセスする権限が付与されていることを保証する、
のうちのいずれか1つ又は複数を含む要求の検証を実行する。
4.権限が付与されていない場合、KMSユニットはエラー応答を返し、失敗の監査ログを作成するか、又は他の是正措置を取ることができる。要求に権限が付与されている場合、KMSユニットは、次のステップに進む。
5.KMSユニットは、適切なルート鍵(要求内に示されるもの)を用いることにより、又は、ブラインド化されたサブ鍵を計算するために、ブラインド化された入力と共に他の情報(要求者識別子など)から推論することにより、アクセス要求を処理する。例えば、OPRFを用いてブラインド化されたサブ鍵を導出するとき、KMSユニットは、そのブラインド化されたサブ鍵Sを、S=OPRF(ルート鍵,B)として計算することができる。KMSユニットは、成功裡のアクセス要求の監査ログを作成することができる。KMSユニットは、次のステップに進む。
6.要求者によりチャレンジがKMSユニットに提供された場合、KMSユニットは、チャレンジへの応答を生成する。
7.KMSユニットは、ブラインド化されたサブ鍵を含む応答、及び生成された場合にはチャレンジへの応答を要求者に返す。
8.要求者は、チャレンジ(与えらえた場合)への応答を検証し、それが有効である場合、適切な関数を用いてサブ鍵を非ブラインド化し(unblind)、ブラインド化されたサブ鍵を隠さず、OPRF出力を回復する。
9.要求者は、OPRF出力を鍵として使用し、又は鍵を導出し、次に、その鍵を用いて暗号化又は復号を実行することができる。
【0081】
このように。KMSユニットはもはや鍵を知らない。KMSユニットが、オリジナルの非ブラインド化されたサブ鍵識別子を判断し、予測し、又は推測することができない場合、KMSユニットは、要求者が受け取る鍵を判断する能力をもたない。
【0082】
図4(A)は、本発明の種々の実施形態による、紛失性(obliviousness)を用いる鍵保護をサポートする1つ又は複数の通信システムの実施形態401を示す図である。サーバ410(例えば、暗号化データ410a及びデータ暗号化鍵(DEK)識別子(ID)410bを格納するもののようなクラウド・ストレージ・サービス)、及び鍵保護インスタンス420(例えば、1つ又は複数の鍵420aを格納するもののようなハードウェア・セキュリティ・モジュール(HSM)420b)である。サービス410は、DEK IDをブラインド化して、B(DEK_ID)を生成する。次に、サービス410は、DEK取得要求(getDEK(CDK_ID,B(DEK_ID)))を鍵保護インスタンス420に伝送する。鍵保護インスタンス420は、getDEK要求(getDEK(CDK_ID,B(DEK_ID)))を処理し、ブラインド化された鍵B(DEK)を返す。
【0083】
この実施において、サービス410(例えば、クラウド・ストレージ・サービス)と鍵保護インスタンス420(例えば、ハードウェア・セキュリティ・モジュール(HSM))との間の交換により暴露されるデータ暗号化鍵(DEK)についての情報はない。伝送中、種々のコンポーネント及び信号がインターセプトに対する脆弱性がある従来技術の手法とは異なる、この紛失実装アーキテクチャのセキュリティは、交換を通じて有用な情報が明らかにされないので、無限の計算能力を有する敵対者に対してセキュアなままである。このプロセスの間にインターセプトに対する脆弱性がある情報はない。
【0084】
紛失性の耐量子(post-quantum)セキュリティを用いる場合、メッセージの交換は、攻撃者に情報を明らかにしない。本明細書で説明される新規な実装によりセキュリティが与えられた場合、実装時でさえ、トランスポート層セキュリティ(TLS)の機密性が不必要にされることに留意されたい。鍵idが攻撃者に知られないと仮定すると、紛失鍵保護インスタンス420が漏洩しても、データ鍵を危険にさらさない。データ鍵(データ暗号化鍵(DEK))は、サービス又は鍵を回復するユーザの境界内のみに存在し、利用可能である。サービス側の唯一の変化は、ラップされたDEKを格納するのではなく、システムが単にDEK IDを格納することである。
【0085】
図4(B)は、本発明の種々の実施形態による、ハードウェア・セキュリティ・モジュール(HSM)の統合をサポートする1つ又は複数の通信システムの実施形態402を示す。OPRFに従って使用される数学をサポートする既に実装されたHSMは、本明細書で提示される新規な実施をサポートするように容易に構成することができる。例えば、楕円曲線演算(例えば、EC Diffie-Hellman)を用いて、本明細書で説明されるようなこうしたOPRFをサポートすることができる。
【0086】
例えば、OPRFの数学が既存のHSMによって完全にサポートされるとき、顧客ルート鍵(CRK)は、常にHSM内にあることができ、決してホストのメモリに暴露されない。
【0087】
図を参照すると、アプリケーションAPI DeriveKeyの動作は、ブラインド化がなされて、鍵保護インスタンス420(例えば、HSM)を介してサービス側HTTP REST APIに基づきサービス410(例えば、クラウド・ストレージ・サービス)を介して処理される、ブラインド化されたデータ暗号化鍵識別子B(DEK)を生成する、データ暗号化鍵(DEK)識別子(ID)(DEK_ID)に基づいて、クライアント430により、次のようにサポートされる。:
Blinded(DEK)又はB(DEK)=DeriveKey(CRK_ID,Blinded(DEK_ID))。
【0088】
この方法は2つの入力、すなわち顧客ルート鍵識別子CRK_IDと、ブラインド化されたデータ暗号化鍵識別子、B(DEK_ID)とをとる。この方法は、ブラインド化されたデータ暗号化鍵、Blinded(DEK)又はB(DEK)を返す。
【0089】
クライアント側SDK APIに関して、データ暗号化鍵(DEK)は、次のように返される。
DEK=DeriveKey(CRK_ID,DEK_ID)。
【0090】
この方法は、CRK id及びDEK idをとる。ソフトウェア開発キット(SDK)コードは、全てのブラインド化及び非ブラインド化を内部で処理する。方法は、DEKを返す。
【0091】
幾つかの例において、紛失性を特性として得るために、例えば、サーバの結果の何らかの後処理に続いて、サーバのAPIを呼び出す前に、何らかのクライアント側の前処理を必要とすることがある。例えば、これは、ブラインド化及び非ブラインドを実行するために行うことができる。クライアント-SDKは、エンドユーザからのこの全てを隠し(hide)、CRK及びDEK IDを利用する基本インターフェースを提示し、対応するDEKを返す。
【0092】
さらに、マルチテナンシは、異なるテナントが異なるOPRF鍵(例えば、異なるOPRFシークレット)に対応する異なるCRK_IDを与えるようにもサポートすることができることに留意されたい。
【0093】
また、代替的な、随意的な、もしくは付加的な又はその組み合わせのREST(RESTful、(representational state transfer))APIを、次のように使用できることにも留意されたい。:
(CRVK-証明書)=GetRootVerificationKey(CRK_ID)
【0094】
この方法は、CRK IDを利用し、CRKに対応する「顧客ルート検証鍵」(CRVK)についての証明書を返す。証明書は、デジタル署名によりCRKVをCRK_IDに結合する。CRVKを用いて、返された鍵が正しく計算されることを証明することができる。
Blinded(DEK),Response=DeriveAndVerifyKey(CRK_ID,Blinded(DEK_ID),Challenge)。
【0095】
この方法は、3つの入力、すなわちCRK ID、ブラインド化されたDEK ID、及び特別に作成された「チャレンジ」をとる。この方法は、クライアントが、ブラインド化された鍵が正しく計算され、正しいCRKを使用していることを証明することを可能にする。これにより、MITM(中間デバイス等などの「man in the middle」)攻撃、サーバ・エラー、不具合、及びメモリ破損から保護される。通常、こうした破損は、間違った鍵を用いる暗号化に基づいたデータ損失をもたらす。本明細書で提示されるこうした新規な解決法は、クライアントが、KMSが正しい鍵を提供したことを検証することを可能にし得る。
【0096】
図4(C)は、本発明の種々の実施形態による、KMSに従って用いることができる鍵の階層の実施形態403を示す図である。この図は、上部の親レベルにおけるルート鍵と、下部の子レベルにおける開発、販売及び運営と、開発、顧客の下の子レベルにおけるロードマップ及び販売と、販売の下の子レベルにおけるリードと、運営の下の子レベルにおけるペイロールとを含む階層を含む。階層内のそれぞれの下位レベルは、1つ又は複数の上位レベルと関連付けられた鍵によるいずれかの暗号化に基づいている。これは、階層ビジネス事例、例えば、「ルート鍵」暗号化「開発鍵」暗号化「ロードマップ鍵」を可能にする。別の例において、「ルート鍵」暗号化「販売鍵」暗号化「リード鍵」。親レベル鍵へのアクセスは、下位レベルの子鍵へのアクセスを与える。系統内の鍵を直接知らないと、その系統内にない他の鍵にアクセスできない。例えば、「開発鍵」は、「ペイロール」へのアクセスを与えない。
【0097】
鍵の階層の実装は、多数のレベルのラッピングを必要とすることに留意されたい。階層が深い場合、これは、潜在的に性能及びスケーリングの問題をもたらす。階層内の深さの各レベルについて、KMSは、データベースから別の鍵をインポートし、別のHSM動作を実行する必要があることがある。KMSのサービス及び動作に関する本明細書で提示されるようなこうした新規な解決法は、内部に1つのレベルのみを含む、又は内部にN個のレベルを含む(ここで、Nは、2より大きいかこれに等しい正の整数である)システムを含むいずれかのタイプの鍵の階層に適用することができ、適用可能である。
【0098】
図5は、本発明の種々の実施形態による、1つ又は複数のコンピューティング・デバイスにより実行される方法500の実施形態を示す図である。方法500は、ステップ510において、OPRFブラインド化操作(例えば、準同型暗号化、1つ又は複数の他のブラインド化操作等)に従って、ブラインド化鍵に基づいて、鍵と関連付けられた入力値を処理し、ブラインド化された値を生成することにより、開始する。方法500は、ステップ520において、(例えば、通信システムとインターフェース接続し、通信するように構成されたコンピューティング・デバイスのインターフェースを介して)ブラインド化された値を、鍵管理システム(KMS)と関連付けられた別のコンピューティング・デバイスに伝送することにより、続行する。
【0099】
次に、方法500は、ステップ530において、(例えば、インターフェース及び通信システムを介して、KMSサービスと関連付けられた該別のコンピューティング・デバイスから)ブラインド化された鍵を受け取ることにより、動作する。ブラインド化された鍵は、OPRFシークレットを用いる紛失疑似ランダム関数(OPRF)に基づいたブラインド化された値の処理に基づいていることに留意されたい。次に、方法500は、ステップ540において、OPRF非ブラインド化操作(例えば、準同型復号、他の非ブラインド化操作等)に従って、ブラインド化鍵に基づいて、ブラインド化された鍵を処理し、入力値と関連付けられた鍵を生成する。
【0100】
幾つかの例において、次に方法500は、ステップ550において、鍵に基づいて、セキュア情報にアクセスする(例えば、インターフェース及び通信システムを介して、通信システムを介して、ローカルに利用可能な及び/又は格納されるセキュア情報に基づいて、及び/又はその組み合わせ等で)ことにより、動作する。例えば、セキュア情報は、鍵により保護されるセキュア・データ又は暗号化された別の鍵(例えば、ラップされた鍵を含むことができる。
【0101】
幾つかの例において、入力値は、他のコンピューティング・デバイスに知られない。また、ある特定の例において、入力値は、鍵と関連付けられた鍵識別子を含む。また、幾つかの例において、鍵は、他のコンピューティング・デバイスに知られない。さらに、ある特定の例において、鍵は、データ暗号化鍵(DEK)又は鍵暗号化鍵(KEK)を含む。OPRFシークレットは、コンピューティング・デバイスに知られず、コンピューティング・デバイスと関連付けられた顧客ルート鍵(CRK)に基づいている。
【0102】
本明細書に説明されるようなOPRFシークレットを用いる解決法に関して、疑似ランダム関数及び紛失疑似ランダム関数の出力は、制御不能であり、完全にランダムに見えることに留意されたい。幾つかの例において、これは、特定の構造、形式、又は特性(例えば、「構造化鍵」)を要求する鍵のタイプに関する問題を提示することがある。例えば、例えば、RSA(Rivest-Shamir-Adleman)鍵は、互いに特定の関係を有する数のセットで構成される。同様に、楕円曲線鍵は、それが関連付けられる曲線により定められる特定の範囲上の数で構成される。OPRFの出力は、鍵についての所望の特性又は要求される構造に合致するであろう出力を生成することは保証されない。所定の構造を有する鍵をサポートするために、OPRFシークレット・ベースの鍵管理システムは、以下に説明されるような構造化鍵をサポートするように拡張することができる。
【0103】
OPRFベースの鍵管理システムにより管理される各々の構造化鍵について、鍵管理システム(KMS)は、
1.構造化鍵パラメータ(鍵のタイプ及びアルゴリズム(RSA、DH、ElGamal、楕円曲線等の1つ又は複数)、鍵のサイズ(256ビット、512ビット、1024ビット、2048ビット等)、係数、生成器、曲線パラメータ)
2.生成手順(OPRFの出力、構造化鍵パラメータ、及び随意的暗号化パラメータ(存在する場合)から構造化鍵を生成するための決定論的アルゴリズム)
3.随意的暗号化パラメータ(OPRF出力から生成することができる鍵の下で暗号化された秘密情報又はパラメータを含むことができる)
を保持することになる。
【0104】
OPRFベースのKMSから構造化鍵にアクセスすると、鍵管理システムは、OPRF(疑似ランダムである)のブラインド化出力、並びに構造化鍵パラメータ、生成手順、及び随意的暗号化パラメータのブラインド化された出力を返すことになる。鍵の要求者は、KMSにより返される値を用いて、以下のように構造化鍵を生成する。
1.要求者は、OPRFの出力を取得する(例えば、KMSから返されたブラインド化OPRF出力を非ブラインド化することにより)、
2.要求者は、
a.構造化鍵パラメータ、及び/又は、
b.暗号化パラメータが返されると、暗号化パラメータを復号し、復号したパラメータを取得するために、OPRF出力から鍵をさらに導出することにより、
3.パラメータの完全なセット及びOPRF出力を用いて、返された「一般的手順」に従い、構造化鍵を生成する。
【0105】
生成手順は、OPRF出力を特定の長さに拡張し(例えば、マスク生成関数を用いて)、次にDiffie-Hellman又は楕円曲線パラメータに特有の素数係数を法として結果を利用するといった、何か非常に単純なものであることもあり、又はOPRF出力を用いて疑似ランダム数生成器(PRNG)をシードし、PRNGを用いて2つの大きな素数を生成し、これらの2つの大きな素数を用いてRSA係数を生成し、次に、RAS係数及び大きい素数からRSA鍵の対を生成するといった、何か複雑なものであることもある。しかしながら、このようなプロセスは、RSA鍵及び他の構造化鍵を生成するとき、リソース集約型であり、費用と時間がかかることがある。これらの場合、暗号化パラメータを利用することが、より効率的であり得る。例えば、暗号化パラメータは、RSA鍵を導出できる2つの大きい素数とすることができ、又は構造化鍵自体であることさえあり得る。この場合、生成手順は、OPRF出力から対称暗号化鍵を導出する方法を指定し、次に、この鍵を用いて暗号化パラメータを復号し、これらの暗号化パラメータから、構造化鍵を生成することができる。
【0106】
図6は、本発明の種々の実施形態による、1つ又は複数のコンピューティング・デバイスにより実行される方法600の別の実施形態を示す図である。方法600は、ステップ610において、OPRFブラインド化操作(例えば、準同型暗号化、1つ又は複数の他のブラインド化操作等)に従って、ブラインド化鍵に基づいて、非対称鍵の対の第1の鍵又は第2の鍵と関連付けられた入力値を処理し、ブラインド化された値を生成することにより、開始する。方法600は、ステップ620において、(例えば、通信システムとインターフェース接続し、通信するように構成されたコンピューティング・デバイスのインターフェースを介して)ブラインド化された値を、鍵管理システム(KMS)と関連付けられた別のコンピューティング・デバイスに伝送することにより、続行する。
【0107】
方法600は、ステップ630において、(例えば、通信システムを介して、該別のコンピューティング・デバイスから)KMSサービスと関連付けられたブラインド化された鍵、構造化鍵パラメータ、及び非対称鍵の対の第1の鍵又は第2の鍵の生成を指定する決定性関数を受け取ることにより、開始する。
【0108】
方法600は、ステップ638において、構造化鍵パラメータ及び非対称鍵の対の第1の鍵又は第2の鍵の生成を指定する決定性関数に基づいて、ブラインド化された鍵を処理し、別のブラインド化された鍵を生成することにより、続行する。次に、方法600は、ステップ640において、OPRF非ブラインド化操作(例えば、準同型復号、1つ又は複数の他の非ブラインド化操作等)に従って、ブラインド化鍵に基づいて、他のブラインド化された鍵を処理し、入力値と関連付けられた非対称鍵の対の第1の鍵又は第2の鍵を生成することにより、動作する。
【0109】
幾つかの例において、次に方法600は、ステップ650において、鍵に基づいて、セキュア情報にアクセスする(例えば、インターフェース及び通信システムを介して、ローカルに利用可能な情報に基づいて、及び/又はその組み合わせ等で)ことにより、動作する。例えば、セキュア情報は、鍵により保護されるセキュア・データ、又は暗号化された別の鍵(例えば、ラップされた鍵)を含むことができる。
【0110】
図7は、本発明の種々の実施形態による、1つ又は複数のコンピューティング・デバイスにより実行される方法700の別の実施形態を示す図である。方法700は、ステップ710において、OPRFブラインド化操作(例えば、準同型暗号化、1つ又は複数の他のブラインド化操作等)に従って、ブラインド化鍵に基づいて、非対称鍵の対の第1の鍵又は第2の鍵と関連付けられた入力値を処理し、ブラインド化された値を生成することにより、開始する。方法700は、ステップ720において、(例えば、通信システムとインターフェース接続し、通信するように構成されたコンピューティング・デバイスのインターフェースを介して)ブラインド化された値を、鍵管理システム(KMS)と関連付けられた別のコンピューティング・デバイスに伝送することにより、続行する。
【0111】
方法700は、ステップ730において、(例えば、通信システムを介して、該別のコンピューティング・デバイスから)KMSサービスと関連付けられたブラインド化された鍵、構造化鍵パラメータ、及び非対称鍵の対の第1の鍵又は第2の鍵の生成を指定する決定性関数を受け取ることにより、開始する。
【0112】
方法700は、ステップ732において、ブラインド化された鍵を処理し、別の鍵を生成することにより、続行する。方法700は、ステップ734において、復号に従って、該別の鍵に基づいて、暗号化された構造化鍵パラメータを処理し、構造化鍵パラメータを生成することにより、動作する。
【0113】
方法700は、ステップ738において、構造化鍵パラメータ及び非対称鍵の対の第1の鍵又は第2の鍵の生成を指定する決定性関数に基づいてブラインド化された鍵を処理し、別のブラインド化された値を生成することにより、続行する。次に、方法700は、ステップ740において、OPRF非ブラインド化操作(例えば、準同型復号、1つ又は複数の他の非ブラインド化操作等)に従って、ブラインド化鍵に基づいて、他のブラインド化された鍵を処理し、入力値と関連付けられた非対称鍵の対の第1の鍵又は第2の鍵を生成することにより、動作する。
【0114】
幾つかの例において、次に方法700は、ステップ750において、鍵に基づいて、セキュア情報にアクセスすること(例えば、インターフェース及び通信システムを介して、ローカルに利用可能な情報に基づいて、及び/又はその組み合わせ等で)により、動作する。例えば、セキュア情報は、鍵により保護されるセキュア・データ、又は暗号化された別の鍵(例えば、ラップされた鍵)を含むことができる。これは、鍵を用いてセキュア情報を処理することを含むことができる。例えば、セキュア情報は、鍵に基づいてアクセスすることができる(例えば、セキュア情報は、通信システム内の1つ又は複数の他のデバイスにおいて遠隔格納され、インターフェース及び通信システムを介してセキュア情報にアクセスする)。代替的に、これは、鍵を用いてデータを暗号化すること、もしくは鍵を用いて暗号化されたデータを復号すること又はその両方を行うことを含むことができる。一般に、セキュア情報に関連した動作に従って、鍵を用いて種々の動作のいずれかを行うことができる。
【0115】
全ての鍵管理システムを悩ます一般的な問題は、提供される鍵についての完全性及び真正性の問題である。つまり、要求者が鍵管理システムから鍵を取得した場合、要求者は、取得した鍵が実際に正しいものであることをどのように確信できるのであろうか。これは、無効な鍵が返され、要求者に使用される場合、それはデータ損失につながり得るので、極めて重要な問題である。例えば、要求者が無効鍵を用いてデータを暗号化し、将来、要求者がその無効鍵を取得できない場合、その鍵を用いて暗号化したいずれのデータも回復することができない。
【0116】
しかしながら、多くのOPRF関数の数学は、要求者に対して高信頼度、真正性及び提供される入力についてのOPRFの出力の正しさを主張することができる検証の形を可能にし、それに対応してのOPRF出力から導出されたあらゆる鍵を、正当及び真正なものとみなすことができる。これは、OPRFベースのKMSにより提供される鍵材料の偶発的な及び意図した鍵の破損の両方を保護することができる。
【0117】
OPRFベースのKMSから回復した鍵を確認するための特定の方法は、基礎をなすOPRFに依存する。例えば、OPRFを実施するためのRSAブラインド署名を用いる場合、OPRFベースのKMSは、ブラインド化されたOPRF出力の計算においてこれが使用するRSA秘密鍵を保持する。要求者が、KMSサービスにより用いられる秘密鍵に対する対応する公開鍵を知っている場合、要求者は、所定の入力及び公開鍵が与えられた場合には出力に対するRSA署名検証操作を行うことによって、ブラインド化又は非ブラインド化されたOPRF出力のいずれかを検証することができる。他方、OPRFが、OPRFを実施するためにDiffie-Hellmanべき乗又は楕円曲線点乗算を用いる場合、要求者は、(対応するDiffie-Hellman又は楕円曲線公開鍵「g^x mod P」の知識を用いて)所定の鍵回復操作のための「チャレンジ」を構築することができる。ORPFベースのKMSサービスは、要求者が有効として容認するチャレンジへの有効な「応答」を、わずかな確率でしか計算することができない。応答が有効であると判断されると、要求者は、高い信頼性をもって、OPRF出力が正しく計算されたと結論付けることができる。
【0118】
鍵を回復し、その正しさを検証するための要求者のプロセスは次の通りである。
1.OPRFベースのKMSにより使用されるOPRF「秘密鍵」についての対応する「公開鍵」を判断する
2.要求者は、
a.検証されたデジタル証明書からそれを抽出する
b.信頼できるソースからそれを取得する
c.セキュアな又は認証されたチャネル上でそれを受け取る
d.秘密OPRF鍵をKMSに送り、公開鍵を格納する前に、公開鍵及び秘密鍵の両方を生成する
のうちの何れか1つ又は複数のような何らかの方法を用いて公開鍵が正しいことを検証する。
3.要求者は、紛失鍵アクセス要求(OKAR)を構築し、KMSに送る(「鍵管理システムにおいて紛失疑似ランダム関数を用いる」に記載されるように)
4.OPRF公開鍵を用いて直接OPRF出力の検証を可能にするOPRDを用いる場合、要求書は、下のステップ7に進む。
5.「チャレンジ」が生成され、KMSに送られることを要求するOPRFを用いる場合、要求者は、チャレンジを生成し、最初の要求(ステップ3)においてそれを含むか、又はOPRF入力値の代わりにチャレンジ値を用いて別個のOKARを送る。
6.要求者は、チャレンジへの応答が、ステップ3における応答から取得されたOPRF入力及びOPRF出力と好都合に比較するかどうかを判断する。
7.検証が、OPRF出力が正しいことを示唆する場合、OPRF出力を用いて、鍵を導出し、この鍵を要求者が使用することができ、他の場合には、是正措置がとられる(ステップ8において)。
8.検証手順が、OPRFは出力が正しくないことを示唆する場合、是正措置がとられる。これらは、
a.いずれかの回復された又は導出された鍵を出力したOPRFを廃棄する
b.回復において別の試みを実行する(潜在的に異なるKMSユニットに対して)
c.KMSサービスにおけるどのコンポーネント又はサブ・コンポーネントが失敗しているか又は正しくない値を導入しているかを識別するための操作
のうちの少なくとも1つを含む。
【0119】
図8は、本発明の種々の実施形態による、1つ又は複数のコンピューティング・デバイスにより実行される方法800の別の実施形態を示す図である。方法800は、ステップ810において、OPRFブラインド操作(例えば、準同型暗号化、1つ又は複数の他のブラインド化操作等)に従って、別のブラインド化鍵に基づいて、非対称鍵の公開-秘密鍵の対の秘密鍵と関連付けられた別の入力値を処理し、紛失鍵アクセス要求(OKAR)を含む別のブラインド化された値を生成することにより、開始する。方法800は、ステップ820において、(例えば、通信システムを介して)OKARを含む該別のブラインド化された値を、KMSサービスと関連付けられた別のコンピューティング・デバイスに伝送することにより、続行する。
【0120】
次に、方法800は、ステップ830において、(通信システムを介して、KMSサービスと関連付けられた該別のコンピューティング・デバイスから)別のブラインド化された鍵を受け取ることにより、動作する。他のブラインド化された鍵は、OPRFシークレットを用いるOPRFに基づいた他のブラインド化された鍵の処理に基づいていることに留意されたい。
【0121】
次に、方法800は、ステップ840において、OPRF非ブラインド化操作(例えば、準同型復号、1つ又は複数の他の非ブラインド化操作等)に従って、他のブラインド化鍵に基づいて、別のブラインド化された鍵を処理し、別の入力値と関連付けられた非対称鍵の公開-秘密鍵の対の秘密鍵を生成することにより、続行する。次に、方法800は、ステップ850において、非対称鍵の公開-秘密鍵の対の公開鍵に基づいて非対称鍵の公開-秘密鍵の対の秘密鍵を処理し、非対称鍵の公開-秘密鍵の対の秘密鍵の正しさを検証することにより、動作する。
【0122】
図9は、本発明の種々の実施形態による、1つ又は複数のコンピューティング・デバイスにより実行される方法900の別の実施形態を示す図である。方法900は、ステップ910において、OPRFブラインド操作(例えば、準同型暗号化、1つ又は複数の他のブラインド化操作等)に従って、第1の他のブラインド化鍵に基づいて、非対称鍵の公開-秘密鍵の対の秘密鍵と関連付けられた入力値を処理し、第1の紛失鍵アクセス要求(OKAR)を含む第1の他のブラインド化された値を生成することにより、開始する。方法900は、ステップ912において、OPRFブラインド操作(例えば、準同型暗号化、1つ又は複数の他のブラインド化操作等)に従って、第2の他のブラインド化鍵に基づいて、チャレンジ値を処理し、第2のOKARを含む第2の他のブラインド化された値を生成することにより、続行する。
【0123】
方法900は、ステップ920において、(例えば、インターフェース及び通信システムを介して)第1のOKARを含む第1の他のブラインド化された値及び第2のOKARを含む第2の他のブラインド化された値を、KMSサービスと関連付けられた他のコンピューティング・デバイスに伝送することにより、続行する。
【0124】
次に方法900は、ステップ930において、(通信システムを介して、KMSサービスと関連付けられた該別のコンピューティング・デバイスから)第1の他のブラインド化された鍵を受け取ることにより、動作する。第1の他のブラインド化された鍵は、OPRFシークレットを用いるOPRFに基づいた第1の他のブラインド化された値の処理に基づいていることに留意されたい。
【0125】
方法900はまた、ステップ932において、(例えば、通信システムを介して、KMSサービスと関連付けられた他のコンピューティング・デバイスから)第2の他のブラインド化された鍵を受け取ることによっても、動作する。第2の他のブラインド化された鍵は、OPRFシークレットを用いるOPRFに基づいた第2の他のブラインド化された値の処理に基づいていることに留意されたい。
【0126】
方法900は、ステップ942において、OPRF非ブラインド化操作(例えば、準同型復号、1つ又は複数の他の非ブラインド化操作等)に従って、第2の他のブラインド化鍵に基づいて、第2の他のブラインド化された鍵を処理し、チャレンジ値と関連付けられた他のコンピューティング・デバイスからの応答を生成することにより、続行する。方法900は、ステップ944において、チャレンジ値と関連付けられた該別のコンピューティング・デバイスからの応答がチャレンジ値と比較して好ましいかどうかを判断することにより、続行する。
【0127】
チャレンジ値と関連付けられた他のコンピューティング・デバイスからの応答がチャレンジ値と比較して好ましいとの判断(ステップ946)に基づいて、方法900は、OPRF非ブラインド化操作(例えば、準同型復号、1つ又は複数の他の非ブラインド化操作等)に従って、第1の他のブラインド化鍵に基づいて、第1の他のブラインド化された鍵を処理し、別の入力値と関連付けられた非対称鍵の公開-秘密鍵の対の秘密鍵を生成することにより、続行し、ステップ946に分岐する。
【0128】
代替的に、チャレンジ値と関連付けられた他のコンピューティング・デバイスからの応答がチャレンジ値と比較して好ましいとの判断(ステップ946)に基づいて、方法900は、続行し、終了に分岐するか、又は続行する。
【0129】
代替的に、チャレンジ値と関連付けられた他のコンピューティング・デバイスからの応答がチャレンジ値と比較して好ましいとの判断(ステップ946)に基づいて、方法900は、1つ又は複数の操作を行う(例えば、1つ又は複数の是正措置を行う)ことにより、続行し、ステップ948に分岐する。
【0130】
図10は、本発明の種々の実施形態によるクラウド・コンピューティング環境1000を示す。
図10は、例証的クラウド・コンピューティング環境50を提示する。示されるように、クラウド・コンピューティング環境50は、例えば、携帯情報端末(PDA)又は携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、もしくは自動車コンピュータ・システム54N又はその組み合わせ等といった、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスと通信できる1つ又は複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信することができる。これらのノードは、後述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、又はこれらの組み合わせなど、1つ又は複数のネットワークにおいて物理的又は仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境50が、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、もしくはソフトウェア又はその組み合わせを提供することが可能になる。
図10に示されるコンピューティング・デバイス54A~Nのタイプは単に例示であることを意図し、コンピューティング・ノード10及びクラウド・コンピューティング環境50は、任意のタイプのネットワーク及び/又はネットワーク・アドレス指定可能な接続上で(例えば、ウェブ・ブラウザを用いて)、任意のタイプのコンピュータ化されたデバイスと通信できることを理解されたい。
【0131】
本開示はクラウド・コンピューティングについての詳細な説明を含むが、本明細書に記載される教示の実装は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在既知の又は後で開発される他のいずれかのタイプのコンピューティング環境と共に実施することができる。
【0132】
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で迅速にプロビジョニング及び解放することができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、及び少なくとも4つのデプロイメント・モデルを含むことができる。
【0133】
特徴は、以下の通りである。
オンデマンド・セルフサービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソース・プール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、異なる物理及び仮想リソースを要求に応じて動的に割り当て及び再割り当てすることにより、複数のコンシューマにサービスを提供するためにプールされる。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を持たないという点で、位置とは独立しているといえるが、より抽象化レベルの高い位置(例えば、国、州、又はデータセンタ)を特定できる場合がある。
迅速な弾力性:機能は、迅速かつ弾力的に、場合によっては自動的に、プロビジョニングして素早くスケール・アウトし、迅速にリリースして素早くスケール・インさせることができる。コンシューマにとって、プロビジョニングに利用可能なこれらの機能は、多くの場合、無制限であり、いつでもどんな量でも購入できるように見える。
計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告し、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
【0134】
サービス・モデルは以下の通りである。
Software as a Service(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定の考え得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上にデプロイするために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成に対して制御を有する。
Infrastructure as a Service(IaaS):コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを配備及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングするために、コンシューマに提供される機能である。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び場合によってはネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択の限定された制御を有する。
【0135】
デプロイメント・モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結び付けられる2つ以上のクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
【0136】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を置くことを指向するサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0137】
図11は、本発明の種々の実施形態による抽象化モデル層1100を示す。ここで
図11を参照すると、クラウド・コンピューティング環境50(
図10)によって提供される機能抽象化層のセットが示される。
図11に示されるコンポーネント、層、及び機能は単に例示であることを意図し、本発明の実施形態はそれらに限定されないことを予め理解されたい。示されるように、以下の層及び対応する機能が提供される。
【0138】
ハードウェア及びソフトウェア層60は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、メインフレーム61と、RISC(Reduced Instruction Set Computer(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62と、サーバ63と、ブレードサーバ64と、ストレージ・デバイス65と、ネットワーク及びネットワーク・コンポーネント66と、が含まれる。幾つかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67と、データベース・ソフトウェア68とが含まれる。幾つかの実施形態において、1つ又は複数のハードウェア・コンポーネントは、
図12のコンピューティング・デバイス1201を用いることにより実装することができる。
【0139】
仮想化層70は、抽象化層を提供し、この層により、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティング・システム74、並びに仮想クライアント75を提供することができる。
【0140】
一例において、管理層80は、以下で説明される機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格決定82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例においては、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクに対する識別情報の検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータル83は、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(Service Level Agreement、SLA)の計画及び履行85は、SLAに従って将来の要件が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
【0141】
ワークロード層90は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例として、マッピング及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、並びにセキュリティ、暗号化及び鍵管理関連処理及び動作96が挙げられる。
【0142】
図12は、本発明の種々の実施形態によるコンピューティング・デバイスのブロック
図1200を示す。
図12は、コンピューティング・デバイス1201のコンポーネントのブロック図を示し、これを用いて、クラウド・コンピューティング・ノード10の一部又全て、
図10のコンピューティング・デバイス54A~Nの一部又全てを実装すること、もしくは本発明の実施形態による本明細書に説明される他のコンピューティング・デバイスを実装すること又はその両方を行うことができる。
図12は、1つの実装の例証を提供するに過ぎず、異なる実施形態を実施することができる環境に関する何らかの制限を意味するものではないことを理解されたい。
【0143】
コンピューティング・デバイス1201は、全てが通信ファブリック1218上で相互接続される、1つ又は複数のプロセッサ1202、1つ又は複数のコンピュータ可読RAM1204、1つ又は複数のコンピュータ可読ROM1206、1つ又は複数のコンピュータ可読ストレージ媒体1208、デバイス・ドライバ1212、読み取り/書き込みドライブ又はインターフェース1214、及びネットワーク・アダプタ又はインターフェース1216を含むことができる。通信ファブリック1218は、プロセッサ(マイクロプロセッサ、通信及びネットワーク・プロセッサ等のような)、システム・メモリ、周辺機器、及びシステム内の他のいずれかのハードウェア・コンポーネントの間でデータもしくは制御情報又はその両方を送るように設計された任意のアーキテクチャを有するように実装することができる。
【0144】
1つ又は複数のオペレーティング・システム1210及び/又は
図11のネットワーク・アプリケーション・サーバ・ソフトウェア67及びデータベース・ソフトウェア68などのアプリケーション・プログラム1211は、それぞれのRAM1204(典型的には、キャッシュ・メモリを含む)の1つ又は複数を介して、プロセッサ1202の1つ又は複数によって実行するために、コンピュータ可読ストレージ媒体1208の1つ又は複数に格納される。示される実施形態において、コンピュータ可読ストレージ媒体1208の各々は、内部ハード・ドライブの磁気ディスク・ストレージ・デバイス、CD-ROM、DVD、メモリ・スティック、磁気テープ、磁気ディスク、光ディスク、RAM、ROM、EPROM、フラッシュ・メモリなどの半導体ストレージ・デバイス、又は本発明の実施形態による、コンピュータ・プログラム及びデジタル情報を格納することができる任意の他のコンピュータ可読ストレージ・デバイスとすることができる。
【0145】
コンピューティング・デバイス1201は、1つ又は複数の携帯型コンピュータ可読ストレージ媒体1226との間で読み取り及び書き込みを行うR/Wドライブ又はインターフェース1214を含むこともできる。コンピューティング・デバイス1201上のアプリケーション・プログラム1211は、携帯型コンピュータ可読ストレージ媒体1226の1つ又は複数に格納し、それぞれのR/Wドライブ又はインターフェース1214を介して読み取り、それぞれのコンピュータ可読ストレージ媒体1208内にロードすることができる。
【0146】
コンピューティング・デバイス1201は、TCP/IPアダプタ・カード又は無線通信アダプタなどのネットワーク・アダプタ又はインターフェース1216を含むこともできる。コンピューティング・デバイス54A~N上のアプリケーション・プロ1211は、ネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク又は広域ネットワーク又は無線ネットワーク)及びネットワーク・アダプタ又はインターフェース1216を介して、外部コンピュータ又は外部ストレージ・デバイスからコンピューティング・デバイスにダウンロードすることができる。ネットワーク・アダプタ又はインターフェース1216から、プログラムをコンピュータ可読ストレージ媒体1208にロードすることができる。ネットワークは、銅線、光ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ及びエッジ・サーバを含むことができる。
【0147】
コンピューティング・デバイスに1201は、ディスプレイ画面1220、キーボード又はキーパッド1222、及びコンピュータ・マウス又はタッチパッド1224を含むこともできる。デバイス・ドライバ1212は、イメージングのためにディスプレイ画面1220に、キーボード又はキーパッド1222に、コンピュータ・マウス又はタッチパッド1224に、及び/又はモジュール数字の入力及びユーザ選択の圧力感知のためにディスプレイ画面1220にインターフェース接続する。デバイス・ドライバ1212、R/Wドライブ又はインターフェース1214、及びネットワーク・アダプタ又はインターフェース1216は、コンピュータ可読ストレージ媒体1208もしくはROM1206又はその両方に格納されるハードウェア及びソフトウェアを含むことができる。
【0148】
本明細書で使用できる場合、「実質的に(substantially)」及び「約(approximately)」という用語は、その対応する用語もしくは項目間の相関性又はその両方について業界で受け入れられる許容範囲を与える。そのような業界で受け入れられる許容範囲は、1パーセント未満から50パーセントまでに及び、これらに限定されるものではないが、成分値、集積回路プロセス変動、温度変動、立ち上がり及び立ち下がり時間、もしくは熱雑音又はその組み合わせに対応する。そのような項目間の相関性は、数パーセントの差から大規模な差に及ぶ。同じく本明細書で使用できる場合、「~のように構成された(configured to)」、「~に動作可能に結合された(operably coupled to)」、「~に結合された(coupled to)」、及び/又は「結合(coupling)」という用語は、項目間の直接結合、及び/又は介在する項目を介する項目間の間接結合を含み(例えば、項目は、これらに限定されるものではないが、コンポーネント、要素、回路、もしくはモジュール又はその組み合わせを含む)、ここで、間接結合の例については、介在する項目は、信号の情報を変更しないが、その電流レベル、電圧レベル、もしくは電力レベル又はその組み合わせを調整することができる。さらに本明細書で使用できる場合、推論結合(inferred coupling)(すなわち、1つの要素が別の要素に推論によって結合される)は、「~に結合される」と同じように2つの項目間の直接及び間接結合を含む。さらに本明細書で使用できる場合、「~のように構成された」、「~のように動作可能」、「~に結合される」又は「~に動作可能に結合された」という用語は、項目が、アクティブにされたときに、1つ又は複数の対応する機能を実行するための電力接続、入力、出力等のうちの1つ又は複数を含むことを示し、1つ又は複数の他の項目に推論結合することをさらに含むことができる。さらに本明細書で使用できる場合、「~と関連付けられた(associated with)」という用語は、別個の項目、及び/又は別の項目内に埋め込まれている1つの項目の直接及び/又は間接結合を含む。
【0149】
本明細書で使用できる場合、「比較して好ましい(compares favorably)」という用語は、2つ又はそれより多い項目、信号等の間の比較が望ましい関係を与えることを示す。例えば、望ましい関係が、信号1が信号2より大きい強さを有することである場合、信号1の強さが信号2の強さよりも大きいとき、又は信号2の強さが信号1の強さよりも小さいときに、好ましい比較が達成され得る。本明細書で使用し得る場合、「比較して好ましくない(compares unfavorably)」という用語は、2つ又はそれより多い項目、信号等の間の比較が所望の関係を与えないことを示す。
【0150】
また本明細書で使用できる場合、「処理モジュール」、「処理回路」、「プロセッサ」もしくは「処理ユニット」又はその組み合わせの用語は、単一の処理デバイス又は複数の処理デバイスとすることができる。そのような処理デバイスは、マイクロプロセッサ、マイクロコントローラ、デジタル・シグナル・プロセッサ、マイクロコンピュータ、中央処理ユニット、フィールド・プログラマブル・ゲート・アレイ、プログラマブル論理デバイス、状態機械、論理回路、アナログ回路、デジタル回路、及び/又は回路のハード・コーディング及び/又は操作命令に基づいて信号(アナログ及び/又はデジタル)を操作する任意のデバイスとすることができる。処理モジュール、モジュール、処理回路、及び/又は処理ユニットは、メモリ及び/又は集積メモリ要素とすることができ、又はそれらをさらに含むことができ、それらは、単一のメモリ・デバイス、複数のメモリ・デバイス、及び/又は別の処理モジュール、モジュール、処理回路、及び/又は処理ユニットの組み込み回路とすることができる。そのようなメモリ・デバイスは、読み出し専用メモリ、ランダム・アクセス・メモリ、揮発性メモリ、不揮発性メモリ、スタティック・メモリ、ダイナミック・メモリ、フラッシュ・メモリ、キャッシュ・メモリ、及び/又はデジタル情報を格納する任意のデバイスとすることができる。処理モジュール、モジュール、処理回路、及び/又は処理ユニットが1つより多い処理デバイスを含む場合、処理デバイスは、中央に配置されてよく(例えば、有線及び/又は無線のバス構造を介して一緒に直接結合される)、又は分散して配置され得る(例えば、ローカル・エリア・ネットワー及び/又は広域ネットワークを介した間接結合によるクラウド・コンピューティング)ことに留意されたい。さらに、処理モジュール、モジュール、処理回路、及び/又は処理ユニットが、状態機械、アナログ回路、デジタル回路、及び/又は論理回路を介してその機能の1つ又は複数を実装する場合、対応する操作命令を格納するメモリ及び/又はメモリ要素は、状態機械、アナログ回路、デジタル回路、及び/又は論理回路を含む回路の内部又は外部に組み込まれ得ることに留意されたい。さらに、図の1つ又は複数に示されるステップ及び/又は機能の少なくとも幾つかに対応するハード・コード命令及び/又は操作命令を、メモリ要素が格納し、処理モジュール、モジュール、処理回路、及び/又は処理ユニットが実行することができることにも留意されたい。そのようなメモリ・デバイス又はメモリ要素は、製造品内に含まれ得る。
【0151】
1つ又は複数の実施形態は、指定された機能及びその関係の性能を示す方法ステップを用いて上記に説明されている。これらの機能的な基本構成要素)及び方法ステップの範囲及びシーケンスは、説明の便宜のために本明細書では任意に定められている。指定された機能及び関係が適切に実施される限り、代替的な範囲及びシーケンスを定めることもできる。従って、いずれのそのような代替的な範囲又はシーケンスも、特許請求の範囲の範囲及び趣旨内にある。さらに、これらの機能的基本構成要素の範囲は、説明の便宜のために任意に定められている。特定の重要な機能が適切に実施される限り、代替的な範囲を定めることができる。同様に、フロー図のブロックは、特定の重要な機能を示すために本明細書では任意に定められ得る。
【0152】
使用される範囲において、フロー図のブロックの範囲及びシーケンスは、別様に定められてもよく、依然として特定の重要な機能を実施することができる。従って、機能的基本構成要素及びフロー図のブロックの両方のそうした代替的定義は、特許請求の範囲の範囲及び趣旨内にある。当業者であれば、本明細書における機能的基本構成要素、及び他の例示的なブロック、モジュール、及びコンポーネントは、例示されたように実装することができ、又は個別部品、特定用途向け集積回路、適切なソフトウェアなどを実行するプロセッサ、又はこれらの任意の組み合わせによって実装することができることも認識するであろう。
【0153】
さらに、フロー図は、「開始(start)」もしくは「続行(continue)」又はその両方の表示を含むことができる。「開始」及び「続行」表示は、提示されたステップを他のルーチンに任意に組み込むことができること又は別様に他のルーチンと関連して用いることできることを反映する。この文脈において、「開始」は、提示された最初のステップの始まりを示すものであり、具体的に示されていない他の活動がその前に先立っていてもよい。さらに、「続行」表示は、提示されたステップを複数回実行することができること、及び/又は具体的に示されていない他の活動がその後に続き得ることを反映する。さらに、フロー図は、ステップの特定の順序を示すが、因果律が維持されるという条件で、他の順序も同様に可能である。
【0154】
1つ又は複数の実施形態は、本明細書において、1つ又は複数の態様、1つ又は複数の特徴、1つ又は複数の概念、もしくは1つ又は複数の例又はその組み合わせを示すために使用されている。装置、製品、機械、もしくはプロセス又その組み合わせの物理的実施形態は、本明細書で論じられる実施形態の1つ又は複数を参照して説明される態様、特徴、概念、例等の1つ又は複数を含むことができる。さらに、図ごとに、実施形態は、同じ又は異なる参照番号を使用することができる同じ又は類似した名前の機能、ステップ、モジュール等を組み込むことができ、従って、それらの機能、ステップ、モジュール等は、同じ又は類似した機能、ステップ、モジュール等であってもよく、又は異なるものであってもよい。
【0155】
特に記述されていない限り、本明細書に提示された図面のいずれかの図における要素への、要素からの、及び/又は要素間の信号は、アナログ又はデジタル、連続時間又は離散時間、及びシングルエンド又は差動とすることができる。例えば、信号経路がシングルエンド経路として示されている場合、それは差動信号経路も表す。同様に、信号経路が差動経路として示されている場合、それはシングルエンド信号経路も表す。1つ又は複数の特定のアーキテクチャが本明細書に説明されるが、当業者により認識されるように、明確に示されていない1つ又は複数のデータ・バス、要素間の直接接続、及び/又は他の要素間の間接結合を使用する他のアーキテクチャが同様に実装されてもよい。
【0156】
「モジュール」という用語が、本発明の1つ又は複数の実施形態の説明において使用される。モジュールは、プロセッサもしくは他の処理デバイス、又は動作命令を格納するメモリを含むことができる、又はこれと関連して動作することができる他のハードウェアなどのデバイスを介して1つ又は複数の機能を実施する。モジュールは、ソフトウェア及び/又はファームウェアと独立して及び/又は関連して動作することができる。本明細書で使用される場合、モジュールは、1つ又は複数のサブ・モジュールを含むことができ、サブ・モジュールの各々は、1つ又は複数のモジュールとすることができる。
【0157】
本発明は、統合のいずれかの可能な技術的詳細レベルにおける、システム、方法もしくはコンピュータ・プログラム製品又はその組み合わせとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(単数又は複数)を含むことができる。
【0158】
本明細書においてさらに使用できるように、コンピュータ可読メモリは、1つ又は複数のメモリ要素を含む。メモリ要素は、別個のメモリ・デバイス、複数のメモリ・デバイス、又はメモリ・デバイス内のメモリ位置の集合とすることができる。このようなメモリ・デバイスは、読出し専用メモリ、ランダム・アクセス・メモリ、揮発性メモリ、不揮発性メモリ、スタティック、ダイナミック・メモリ、フラッシュ・メモリ、キャッシュ・メモリ、及び/又はデジタル情報を格納する任意のデバイスとすることができる。メモリ・デバイスは、ソリッド・ステート・メモリ、ハードドライブ・メモリ、クラウド・メモリ、サム・ドライブ、サーバ・メモリ、コンピューティング・デバイス・メモリ、もしくはデジタル情報を格納するための他の物理媒体の形態又はその組み合わせとすることができる。
【0159】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、パンチカード若しくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【0160】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくは無線ネットワーク又はその組み合わせなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジ・サーバ又はその組み合わせを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納する。
【0161】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び、「C」プログラミング言語若しくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述されるソース・コード又はオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネットサービスプロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して、電子回路を個別化することができる。
【0162】
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図もしくはブロック図又はその両方を参照して説明される。フローチャート図もしくはブロック図又はその両方の各ブロック、並びにフローチャート図もしくはブロック図又はその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【0163】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて機械を製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロック内で指定された機能/動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、もしくは他のデバイス又はその組み合わせを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を含むようにすることもできる。
【0164】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生産し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作を実行するためのプロセスを提供するようにすることもできる。
【0165】
図面内のフローチャート及びブロック図は、本発明の様々な実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又はその両方の各ブロック、及びブロック図もしくはフローチャート図又はその両方におけるブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【0166】
1つ又は複数の実施形態の種々の機能及び特徴の特定の組み合わせを本明細書において明示的に説明したが、これらの特徴及び機能のその他の組み合わせも同様に可能である。本開示は、本明細書で開示される特定の例に限定されず、これらの他の組み合わせを明示的に組み入れる。