(57)【要約】  暗号化されたコードに対してセキュアな動作が実施される。第１の動作モードにあるプロセッサは、暗号化されたコードを取得する。プロセッサは、第１の動作モードから第２の動作モードへと切り替わり、暗号化されたコードを復号して復号されたコードを取得する。プロセッサが第２の動作モードにあることに基づいて、復号されたコードが実行され、結果を与える。結果は暗号化され、プロセッサが第１の動作モードに切り替わったことに基づいて、暗号化された結果がユーザに送信される。
2021530009.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング環境内で処理を促進するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、
処理回路によって読取り可能であり、方法を実施するための命令を記憶するコンピュータ可読記憶媒体を備え、前記方法は、
第１の動作モードにおいて、プロセッサによって、暗号化されたコードを取得することであって、前記プロセッサが前記第１の動作モードにあることに基づいて、平文の命令を実行する、前記取得することと、
前記プロセッサを、前記第１の動作モードから第２の動作モードに切り替えることであって、前記第２の動作モードが前記第１の動作モードとは異なる、前記切り替えることと、
前記プロセッサが前記第２の動作モードにあることに基づいて、前記暗号化されたコードを復号して、復号されたコードを取得することと、
前記プロセッサが前記第２の動作モードにあることに基づいて、前記復号されたコードを実行することと
を含む、コンピュータ・プログラム製品。
【請求項２】
前記プロセッサを前記第１の動作モードから前記第２の動作モードへ前記切り替えることが、前記プロセッサから、前記プロセッサの外部コンポーネントへの１つまたは複数の通信接続を非アクティブ化して、前記プロセッサを前記第２の動作モードにすることを含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項３】
前記復号されたコードを前記実行することが、
前記復号されたコードを使用して１つまたは複数の動作を実施して結果を与えることと、
前記結果を暗号化して暗号化された結果を与えることと、
前記プロセッサが前記第２の動作モードから前記第１の動作モードに切り替わることに基づいて、前記暗号化された結果をクライアントに与えることと
を含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項４】
前記方法が、前記第２の動作モードから前記第１の動作モードに切り替わり、前記プロセッサから、前記プロセッサの外部コンポーネントへの通信を可能にすることをさらに含み、前記切り替わることが前記プロセッサの１つまたは複数のキャッシュから暗号化されていないデータを削除することを含む、請求項３に記載のコンピュータ・プログラム製品。
【請求項５】
前記方法が、入力データを復号して復号されたデータを与えることをさらに含み、前記１つまたは複数の動作が前記復号されたデータに対して実施されて前記結果を与える、請求項３に記載のコンピュータ・プログラム製品。
【請求項６】
前記入力データを前記復号することが、前記入力データを復号するために少なくとも１つのデータ・キーを使用することを含み、前記少なくとも１つのデータ・キーが前記復号されたコードによって与えられる、請求項５に記載のコンピュータ・プログラム製品。
【請求項７】
前記暗号化されたコードを前記復号することが、前記プロセッサに一意な秘密鍵を使用して前記暗号化されたコードを復号することを含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項８】
前記暗号化されたコードが前記プロセッサの一意な識別子に関連付けられる公開鍵を使用して暗号化される、請求項１に記載のコンピュータ・プログラム製品。
【請求項９】
前記プロセッサがクラウド・サービス・プロバイダによって提供される、請求項１に記載のコンピュータ・プログラム製品。
【請求項１０】
前記方法が、
前記プロセッサへの要求に基づいて、前記クラウド・サービス・プロバイダによって、前記プロセッサの一意な識別子および前記プロセッサの前記一意な識別子に関連付けられる公開鍵を提供することと、
前記公開鍵を使用してコードを暗号化して、前記暗号化されたコードを与えることと、
前記暗号化されたコードを前記プロセッサに送信することと
をさらに含む、請求項９に記載のコンピュータ・プログラム製品。
【請求項１１】
コンピューティング環境内で処理を促進するためのコンピュータ・システムであって、前記コンピュータ・システムは、
メモリと、
前記メモリと通信するプロセッサと
を備え、前記コンピュータ・システムは方法を実施するように構成され、前記方法は、
第１の動作モードにおいて、前記プロセッサによって、暗号化されたコードを取得することであって、前記プロセッサが前記第１の動作モードにあることに基づいて、平文の命令を実行する、前記取得することと、
前記プロセッサを、前記第１の動作モードから第２の動作モードに切り替えることであって、前記第２の動作モードが前記第１の動作モードとは異なる、前記切り替えることと、
前記プロセッサが前記第２の動作モードにあることに基づいて、前記暗号化されたコードを復号して、復号されたコードを取得することと、
前記プロセッサが前記第２の動作モードにあることに基づいて、前記復号されたコードを実行することと
を含む、コンピュータ・システム。
【請求項１２】
前記プロセッサを前記第１の動作モードから前記第２の動作モードへ前記切り替えることが、前記プロセッサから、前記プロセッサの外部コンポーネントへの１つまたは複数の通信接続を非アクティブ化して、前記プロセッサを前記第２の動作モードにすることを含む、請求項１１に記載のコンピュータ・システム。
【請求項１３】
前記復号されたコードを前記実行することが、
前記復号されたコードを使用して１つまたは複数の動作を実施して結果を与えることと、
前記結果を暗号化して暗号化された結果を与えることと、
前記プロセッサが前記第２の動作モードから前記第１の動作モードに切り替わることに基づいて、前記暗号化された結果をクライアントに与えることと
を含む、請求項１１に記載のコンピュータ・システム。
【請求項１４】
前記暗号化されたコードが前記プロセッサの一意な識別子に関連付けられる公開鍵を使用して暗号化される、請求項１１に記載のコンピュータ・システム。
【請求項１５】
前記プロセッサがクラウド・サービス・プロバイダによって提供される、請求項１１に記載のコンピュータ・システム。
【請求項１６】
コンピューティング環境内で処理を促進するコンピュータ実装方法であって、前記コンピュータ実装方法は、
第１の動作モードにおいて、プロセッサによって、暗号化されたコードを取得することであって、前記プロセッサが前記第１の動作モードにあることに基づいて、平文の命令を実行する、前記取得することと、
前記プロセッサを、前記第１の動作モードから第２の動作モードに切り替えることであって、前記第２の動作モードが前記第１の動作モードとは異なる、前記切り替えることと、
前記プロセッサが前記第２の動作モードにあることに基づいて、前記暗号化されたコードを復号して、復号されたコードを取得することと、
前記プロセッサが前記第２の動作モードにあることに基づいて、前記復号されたコードを実行することと
を含む、コンピュータ実装方法。
【請求項１７】
前記プロセッサを前記第１の動作モードから前記第２の動作モードへ前記切り替えることが、前記プロセッサから、前記プロセッサの外部コンポーネントへの１つまたは複数の通信接続を非アクティブ化して、前記プロセッサを前記第２の動作モードにすることを含む、請求項１６に記載のコンピュータ実装方法。
【請求項１８】
前記復号されたコードを前記実行することが、
前記復号されたコードを使用して１つまたは複数の動作を実施して結果を与えることと、
前記結果を暗号化して暗号化された結果を与えることと、
前記プロセッサが前記第２の動作モードから前記第１の動作モードに切り替わることに基づいて、前記暗号化された結果をクライアントに与えることと
を含む、請求項１６に記載のコンピュータ実装方法。
【請求項１９】
前記暗号化されたコードが前記プロセッサの一意な識別子に関連付けられる公開鍵を使用して暗号化される、請求項１６に記載のコンピュータ実装方法。
【請求項２０】
前記プロセッサがクラウド・サービス・プロバイダによって提供される、請求項１６に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
１つまたは複数の態様は、一般的にはデータ暗号化に関し、より詳細にはクラウド・コンピューティング環境を含む１つまたは複数のコンピューティング環境において、暗号化されたデータに対してセキュアな動作を実施することに関する。
【背景技術】
【０００２】
クラウド・コンピューティングによって、顧客またはユーザは、オン・デマンドに要求され、例えばインターネットを介して提供されたハードウェアおよびソフトウェアのリソースの使用に対して支払いを行うことができる。クラウド・プロバイダは、リソースを提供するだけでなく、ある顧客のデータに他の顧客がアクセスできないようにすることにより、その顧客のデータの保護を行う。
【０００３】
クラウド・プロバイダはデータへのアクセスを有しているため、暗号化されていたとしても、クラウド・プロバイダには信頼が必要とされる。例えば、従来的に、暗号化されたデータがクラウドにロードされ、ロードされた暗号化されたデータがクラウドで操作される（例えば、レポート生成のため）場合、クラウド・サービス・プロバイダは処理されたデータを平文で見ることができる。悪意のある何者かによってサービス・プロバイダがハッキングされる可能性があるため、これは懸念事項である。
【発明の概要】
【０００４】
コンピューティング環境内の処理を促進するためのコンピュータ・プログラム製品の提供を通じて、先行技術の欠点は克服され、さらなる利点が提供される。コンピュータ・プログラム製品は、処理回路によって読取り可能であり、方法を実施するための命令を記憶するコンピュータ可読記憶媒体を含む。方法は、第１の動作モードにおいて、プロセッサによって、暗号化されたコードを取得することを含み、プロセッサは第１の動作モードにあることに基づいて、平文の命令を実行する。プロセッサは、第１の動作モードから第２の動作モードに切り替えられ、第２の動作モードは第１の動作モードとは異なる。プロセッサが第２の動作モードにあることに基づいて、暗号化されたコードが復号され、復号されたコードを取得して、復号されたコードが実行される。
【０００５】
１つまたは複数の態様に関連するコンピュータ実装方法およびシステムがやはり本明細書において説明され、特許請求される。さらには、１つまたは複数の態様に関連するサービスがやはり説明され、本明細書において特許請求され得る。
【０００６】
追加的な特徴および利点が、本明細書において説明される技法を通じて実現される。他の実施形態および態様が、本明細書において詳細に説明され、特許請求される態様の一部と見なされる。
【０００７】
１つまたは複数の態様が、本文書の結論部における特許請求の範囲において、例として特に示され明確に特許請求される。前述、ならびに１つまたは複数の態様の目的、特徴および利点は、添付の図面と併せて以下の詳細な説明から明らかである。
【図面の簡単な説明】
【０００８】
【図１Ａ】本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例の図である。
【図１Ｂ】本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例の図である。
【図１Ｃ】本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例の図である。
【図１Ｄ】本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例の図である。
【図１Ｅ】本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例の図である。
【図１Ｆ】本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例の図である。
【図２】本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例のさらなる詳細の図である。
【図３Ａ】本発明の態様による、暗号化されたデータに対するセキュアな動作を実施するためにクライアントにおいて実施される処理の一例の図である。
【図３Ｂ】本発明の態様による、暗号化されたデータに対するセキュアな動作を実施するためにクライアントにおいて実施される処理の一例の図である。
【図３Ｃ】本発明の態様による、暗号化されたデータに対するセキュアな動作を実施するためにクラウド・プロバイダにおいて実施される処理の一例の図である。
【図４】クラウド・コンピューティング環境の一実施形態の図である。
【図５】抽象モデル・レイヤの一例の図である。
【図６】本発明の１つまたは複数の態様を組み込んで使用するためのコンピューティング環境の一例の図である。
【発明を実施するための形態】
【０００９】
本発明の態様によると、機能は、暗号化されたデータに対するセキュアな動作（例えば、セキュアなクラウド動作）を可能にするために提供される。一例において、機能は、クラウドのトラステッド・プロセッサ（trusted processor）内で、本明細書では第２の動作モードまたはステルス・モードと称される別の動作モードを提供すること、および他の動作モードにおいて、トラステッド・プロセッサを使用して暗号化されたデータに対するセキュアなクラウド動作を実施することを含む。
【００１０】
トラステッド・プロセッサを使用して暗号化されたデータに対してセキュアな動作を実施する一例を、図１Ａ〜図１Ｆを参照して説明する。初めに、図１Ａを参照すると、本明細書ではプロセッサＸと称されるプロセッサ１００が、リモート・ネットワーク１０２（例えば、インターネットまたは他のネットワーク）を介して、例えば、別のプロセッサで実行しているクライアント１０４に連結されている。この例では、プロセッサ１００はクラウド・コンピューティング環境１０６内のトラステッド・プロセッサであり、少なくとも１つのコード・キャッシュ１１０、および少なくとも１つのデータ・キャッシュ１１２を含む。この特定の例では、プロセッサ１００は、入力データ用のデータ・キャッシュ１１２ａおよび結果データ用のデータ・キャッシュ１１２ｂを含むが、他の実装形態が可能である。プロセッサ１００は、例えば接続１１４を介して、クラウド・コンピューティング環境内に顧客暗号化データを含むストレージ１１６にさらに連結される。
【００１１】
一例では、コード・キャッシュ１１０は、例えば、コード・セグメント、命令、またはプログラムあるいはその組合せを含むがそれに限定されない、プロセッサによって実行されるコードを含む。例えば、本発明の態様によると、ステルス・モードのプログラム１２０が、プロセッサ１００による実行のために、クラウド・プロバイダのプロセッサのコード・キャッシュ１１０にロードされる。ステルス・モードのプログラム１２０を含むコード・キャッシュ内のコードの処理を、図１Ｂ〜図１Ｆを参照して説明する。
【００１２】
図１Ｂを参照すると、一例において、入力／出力（Ｉ／Ｏ）読出し動作１３０がプロセッサ１００によって実施され、顧客暗号化データをクラウド・ストレージ１１６から入力データ・キャッシュ１１２ａに読み出す１３２。次に、図１Ｃを参照すると、ステルス・モード（他の動作モード、または第２の動作モードとも称される）がプロセッサ１００について開始される１４０。ステルス・モードでは、プロセッサ１００と、プロセッサの外部にある外部コンポーネントとの間の接続は無効にされる。例えば、プロセッサ１００とクライアント１０４との間の接続、ならびにプロセッサ１００とストレージ１１６との間の接続が無効にされる（接続１０２および接続１１４中のＸによって示される通り）。一例では、接続を無効にするために、物理的な配線が、プロセッサ・チップに対して／からフェンスされる。フェンスが高い場合、すべてのフェンスされた信号は強制的にＧＮＤ（接地）されるため、データ送信には使用できない。いくつかの外部接続は、完全に切断されると同期性を失うプロトコルを使用しているため、データ信号をフェンスすることで十分である。
【００１３】
ステルス・モードにあることに基づいて、図１Ｄに示されるように、データ・キャッシュ１１２ａの暗号化された入力データはプロセッサ１００によって復号され１４２、復号されたデータに対して動作が実施される。ステルス・モードでは、データは復号されるが、ステルス・モード外部の復号されたデータへのアクセス経路がない。次に、図１Ｅを参照すると、動作の結果が暗号化され１４４、暗号化された結果データ１４６が結果キャッシュ１１２ｂに書き込まれる。続いて、ステルス・モードが終了する。図１Ｆの接続１０２および１１４によって示されるように、ステルス・モードを終了することによって、ストレージ１１６およびクライアント１０４などの外部コンポーネントへの接続が復元される。さらには、暗号化された結果データは、例えばリモート・ネットワーク１０２を介して、クライアント１０４に送信される１５０。
【００１４】
図２および図３Ａ〜図３Ｃを参照して、ステルス・モードにおいてセキュアなクラウド動作を実施することに関して、さらなる詳細を説明する。図２は、暗号化されたデータに対してステルス・モードを使用してセキュアなクラウド動作を実施するためのクラウド環境の一実施形態を図示している。図３Ａ〜図３Ｂはセキュアなクラウド動作を実施することに関連付けられる顧客処理の一実施形態を図示している。図３Ｃはセキュアなクラウド動作を実施することに関連付けられるクラウド処理の一実施形態を図示している。以下の説明では、図２および図３Ａ〜図３Ｃを参照する。したがって、「２」で始まる参照符号は図２を参照し、「３」で始まる参照符号は図３Ａ、図３Ｂまたは図３Ｃを参照する。
【００１５】
初めに図２を参照すると、クラウド環境２００がクライアント２０２に連結され、例えばトラステッド・サード・パーティ（trusted third party）（ＴＴＰ）２０４、クラウド・プロバイダ２０６、クラウド・インスタンス２０８、および例として暗号化されたデータを記憶するストレージ２１０などの複数のエンティティを含む。
【００１６】
クラウド・インスタンス２０８は、例えばプロセッサ・コア２５０、複数のキャッシュ（例えばＬ２キャッシュ２５２、Ｌ３キャッシュ２５４）、およびメモリ２５６（例えば、ランダム・アクセス・メモリ（ＲＡＭ））を含む。メモリ２５６は、暗号化されたデータ２１０へのアクセスを含む、または有することができる。Ｌ３キャッシュ２５４は、一例では、ＰＣＩｅリンク２６０に連結され、メモリ２５６は、一例では、ストレージ２６２に連結される。一例では、ストレージ２６２、クライアント・プロセッサ、または中心部に対して外部と見なされる他のコンポーネントなどの外部コンポーネントへの接続が無効にされるという点で、コア２５０、Ｌ２キャッシュ２５２、Ｌ３キャッシュ２５４、およびメモリ２５６は、ステルス・モード動作のためにフェンス・オフされる場合がある。例えば、ステルス・モードでは、Ｌ３キャッシュ２５４からＰＣＩｅへの接続、ならびにＲＡＭ２５６からストレージ２６２への接続が無効にされる。
【００１７】
一実施形態において、ステルス・モードを使用してクラウド環境内で暗号化されたデータに対するセキュアな動作を提供するために、図３Ａ〜図３Ｃを参照して説明されるように、一定のタスクが実施される。初めに図２および図３Ａを参照すると、一実施形態において、顧客は、例えばクライアント・プロセッサ（例えばクライアント２０２）を介して、クラウド・プロバイダ（例えばクラウド・プロバイダ２０６）においてクラウド・インスタンス（例えばクラウド・インスタンス２０８）を予約する２７０、ステップ３００。クラウド・インスタンスを予約することに基づいて、チップ製造業者によって有効にされたクラウド・コア（例えば、コア２５０）の一意な識別子であるコアＩＤ（例えば、ＣＯＲＥＩＤ２２０）が、クラウド・プロバイダから顧客へ与えられる２７２。顧客はＣＯＲＥＩＤを受信し、ステップ３０２、トラステッド・サード・パーティ（例えば、トラステッド・サード・パーティ２０４）にＣＯＲＥＩＤ２２０のコード・キー（例えば、ＣＯＤＥＫＥＹ２２２）を要求する２７４、ステップ３０４。コード・キーは、チップ製造業者によって提供され署名された、クラウド・コアの公開鍵である。要求に基づいて、ＣＯＤＥＫＥＹはトラステッド・サード・パーティによって顧客に与えられ２７６、ステップ３０６、メモリ２５６およびキャッシュ２５２、２５４のうちの１つまたは複数に読み込まれる。
【００１８】
追加的に、コード・シーケンスがクライアントに用意される、ステップ３０８。コード・シーケンスは、例えば、クラウド側のデータ・アクセス用のデータ・キー（ＤＡＴＡＫＥＹとも称される）を含むオペレーティング・システムのインスタンスである。コード・シーケンスはトラステッド・サード・パーティから受信したコード・キーを使用して暗号化される、ステップ３１０。つまり、コード・シーケンスはクラウド・プロバイダにおいて予約された特定のプロセッサ用に暗号化される。一例では、コード・シーケンスはプロセッサの製造業者によって与えられる暗号化ツールを使用して暗号化され、暗号化されたコードを実行する。ツールは、例として、オープン・ソースで配布される場合がある。暗号化されたコードは、クラウド・インスタンスに送信される、ステップ３１２。一実施形態において、暗号化されたコードは１つまたは複数のキー（例えば、ＤＡＴＡＫＥＹ）を含み、クラウドにおいて、プライベートな顧客データを復号する。
【００１９】
例として、暗号化ツールはコード・シーケンス全体に対して非対称暗号法、またはパフォーマンス上の理由からハイブリッドな非対称／対称暗号法を使用する。第１の場合では、完全なコード・シーケンスがＣＯＤＥＫＥＹを使用して暗号化される。第２の場合では、例として乱数キーのみがＣＯＤＥＫＥＹを使用して暗号化され、この乱数キーがコード・シーケンスの対称暗号化のために使用される。他の変形形態が存在する。
【００２０】
さらには、図３Ｂを参照して、クライアント側のデータがデータ・キー（例えば、ＤＡＴＡＫＥＹ）で暗号化される、ステップ３２０。データ・キーは、例えば、クライアントによって与えられる入力データ暗号化用の対称キーである。暗号化されたデータは、例えば、クライアント・プロセッサを介してクラウド・インスタンスに送信される、ステップ３２２。
【００２１】
クラウド・インスタンスにおいて、コアはセキュアなステルス・モードに切り替わり、外部インターフェース（例えば、外部Ｉ／Ｏインターフェース）を無効にしてコードを復号する。復号されたコードが実行され、暗号化された結果を生成する。コアは通常モード（第１の動作モードとも称される）に切り替わり、あらゆる暗号化されていないデータを破壊する。暗号化された結果はユーザに送信し戻される。このことを、図３Ｃを参照してさらに説明する。
【００２２】
図３Ｃを参照すると、一実施形態において、暗号化されたクラウド側のデータ（例えば、クラウド側に存在するデータを含む暗号化されたクライアントのデータ）がメモリ（例えば、メモリ２５６）に読み込まれる、ステップ３３０。さらに、ＰＣＩおよび他のＩ／Ｏがフェンス・オフされるステルス・モードに入る、ステップ３３２。例えば、Ｌ３キャッシュ２５４とＰＣＩｅ２６０との間の接続、およびＲＡＭ２５６とストレージ２６２との間の接続が無効にされる。もしあれば、他のそのような接続も無効にされる。
【００２３】
ステルス・モードでは、暗号化されたコードは例えばプロセッサに一意な秘密鍵を使用して復号され、復号されたコードは１つまたは複数のプロセッサ・キャッシュ（例えば、Ｌ２キャッシュ２５２、Ｌ３キャッシュ２５４または他のキャッシュあるいはその組合せ）に配置される、ステップ３３４。復号されたコードは、コードに含まれてデータを復号するために使用されるデータ・キーを確認する、ステップ３４６。もしあれば、メモリ２５６からデータが取得され、データ・キーのうちの１つまたは複数を使用して復号される。さらには、復号されたコードを使用して復号されたデータに対して１つまたは複数の計算が実施され、結果を与える、ステップ３４８。結果は、クライアントによって与えられる結果データ暗号化用の対称キーである結果キー（例えば、ＲＥＳＵＬＴＫＥＹ）を使用して暗号化され、暗号化された結果が、例えば、メモリ（例えば、ＲＡＭ２５６）に配置される、ステップ３５０。
【００２４】
暗号化された結果をメモリに配置することに続いて、オンチップ・キャッシュがゼロにされ、ステルス・モードから抜ける、ステップ３６０。暗号化された結果は顧客（ユーザとも称される）に送信し戻される、ステップ３６２。ユーザは、データ・キーを使用して結果を復号することができる、ステップ３６４。他の実装形態が可能である。
【００２５】
本明細書に記載されるように、ある機能が、暗号化されたデータに対するセキュアな動作（例えば、セキュアなクラウド動作）を可能にするために提供される。一例では、プレーン・テキストまたは平文の命令を実行することができる第１の動作モードで動作中のプロセッサは、プロセッサと外部コンポーネントとの間の通信が無効にされる第２の動作モードに切り替わることができる。第２の動作モードでは、プロセッサは暗号化されたコードまたは暗号化されたデータあるいはその両方を復号し、復号されたコードを実行することができる。一例では、復号されたデータに対して、復号されたコードを使用して１つまたは複数の動作が実施され、結果を与える。プロセッサが第２の動作モードから第１の動作モードに切り替わった後、結果が暗号化されてユーザに送信される。この機能によって、例えばクラウド・サービス・プロバイダが例えばロックされていないクレーム・キーを複製することができず、クラウド・サービス・プロバイダがクラウドに記憶された顧客データを復号できないという点で、セキュアな動作を実施することが可能となる。プロセッサでの実行は、環境の残り部分からフェンス・オフされ、悪意のあるデータ盗難を回避する。本発明の１つまたは複数の態様は、破損を生じ得るさらなる攻撃元区分（attack vector）を回避する。
【００２６】
１つまたは複数の態様により、顧客は暗号化されたプライベートなデータをリモートで、クラウド・プロバイダに記憶すること、および暗号化されたプライベートなデータをクラウド・プロバイダ所有のサービスを使用して操作し、顧客に転送される暗号化された結果を生成することが可能となる。クラウド・プロバイダは、すべての権限を有していたとしても、復号されたプライベートなデータを見ることができない。したがって、クラウド・プロバイダ、運用者、オペレーティング・システム、またはシステム・ソフトウェアには信頼が要求されないが、プロセッサの製造業者には信頼が要求される。
【００２７】
本明細書において説明されるように、１つまたは複数の態様において、クラウド・プロバイダのプロセッサの公開鍵が取得される。その特定のプロセッサについて、そのプロセッサだけがコードを復号できるように、コードが暗号化される。プロセッサは、本明細書においてステルス・モードと称される第２の動作モードを有しており、このステルス・モードでは、そのモードの間は外部デバイスと通信することができない。例えば、ＰＣＩｅバスは、第２の動作モードの間、非アクティブ化される。プロセッサは、第２の動作モードにある場合、例えば実行専用モードにおいて、コードを復号する。クラウド・データを復号するためのキーは、暗号化されたコードの一部である可能性がある。例として、オンチップ・キャッシュにロードする際は、コード・キャッシュ・ラインが復号され、データは例えばオンチップ・キャッシュ内で復号されるだけである。
【００２８】
ステルス・モードに置かれているプロセッサは、製造中に融合された一意のキーを含む。一実施形態において、プロセッサの製造業者は、それらのキーのデータベースを保守する。
【００２９】
一態様において、プライベートなデータ・キーを有するデータ所有者のみが、クラウドにおいて、暗号化されたデータに対して動作を行うことができる新しいソフトウェアをコンパイルすることができる。データを復号するためのキーは、ステルス・モードの実行の間プロセッサ・コア内でのみ、見ることができる。データ・キーは、クラウド・データ・センタの範囲外で維持し、なお復号されたデータに対して動作を行うことが可能である。
【００３０】
一実施形態において、データ・キーおよび結果キーは、データ所有者によってプライベートに維持されるにも関わらず、クラウド・プロバイダはそれらのデータ・キーを使用してデータに対して動作することができる。ハードウェア・ベンダには信頼が必要とされるが、クラウド・サービス・プロバイダには信頼が必要とされない。一態様において、ステルス・モードのソフトウェア・コンポーネントは特定のチップ用にカスタムで作製される。例えば、ステルス・モードのソフトウェア・コンポーネントは、ステルス・モードをサポートするプロセッサ用に特殊化される。特定のプロセッサ・コアの特定のＣＯＤＥＫＥＹで暗号化することによって、コードは、例えば正確にこのコアにおいて、ターゲットとされる。
【００３１】
さらなる態様では、マルチ・プロセッシング対応のアプリケーションについて、プロセッサが実行専用モードのページを同一のマルチ・プロセッシング・システム上の他のコアに複製することができるマルチ・プロセッシング・システム（例えば、対称型マルチ・プロセッシング・システム（ＳＭＰ））において、１つまたは複数の態様を使用することができる。それぞれのコアは、他のＳＭＰコアの公開鍵を有しているため、ターゲットの公開鍵を再暗号化することができる。
【００３２】
他の実施形態、変形形態および実装形態が可能である。前述の説明は、本発明の実施形態の一例に過ぎず、変形形態、修正形態またはその置き換えあるいはその組合せが可能である。
【００３３】
本発明の１つまたは複数の態様が利用される使用シナリオの一例としては、例えば、以下が含まれる：顧客が暗号化されたフォーマットで入力データをクラウド・サービス・プロバイダにダウンロードする。クラウド・サービス・プロバイダは、データを記憶するが、それを復号することはできない。顧客が信頼される計算リソースをクラウド・サービス・プロバイダにおいて購入する。クラウド・サービス・プロバイダは、所与のサーバにおいて、所与の製造業者による所与のＣＰＵ（コア）でタイム・スロットを予約して、信頼されるプログラムが実行されるコアのＩＤ／公開鍵を顧客に通知する。顧客は、所与の製造業者が所与のＩＤ／公開鍵でＣＰＵを製造したということを検証する。顧客は、ＣＰＵ製造業者によって提供される暗号化ツールを使用して、プライベートなデータを復号するために適切なキーを含むセキュアなコード・モジュールを暗号化する。暗号化ツールはオープン・ソースで配布される場合がある。顧客は、部分的に暗号化されたプログラムをクラウド・サービス・プロバイダに送信する。クラウド・サービス・プロバイダは、セキュアなプログラムを、対応する秘密鍵を有する所与のＣＰＵにサブミットする。秘密鍵がＣＰＵハードウェアを離れることはない。顧客からのシークレット・キーは、例えば、ＬｎキャッシュまたはＣＰＵのメモリの外部にはない。プログラム実行後、ＣＰＵは暗号化された結果へのポインタを有しており、そのポインタは顧客によってアクセス可能などこかへ転送することができる。
【００３４】
さらなる態様において、クラウド・サービス・プロバイダによるリプライ攻撃によるさらなる分析能力を妨げるために、タイムスタンプを使用してリプライ攻撃を排除することができる。さらには、あるコアが損なわれていると分かっている場合、そのキーはトラステッド・サード・パーティから除去されるため、コアは割り振られたさらなるタスクを取得することができない。
【００３５】
別の使用シナリオとしては、例えば以下が挙げられる：
【００３６】
データをクラウドにロードする：
【００３７】
−  ＫＥＹ３（クラウドのクライアント・データ・キー）を使用してデータを暗号化する
【００３８】
−  クラウドにおいて暗号化されたデータを記憶する。
【００３９】
クラウド内でデータに対するレポートを行う：以下のようにＫＥＹ２（公開鍵に関連付けられており−プロセッサは公開鍵ペア＜ＫＥＹ１，ＫＥＹ２＞を有し、ＫＥＹ１は秘密鍵である−、製造中にプロセッサ内に組み込まれ、製造業者によって複製されない；プロセッサ・コア内に留まり、実行専用ブロックの復号のためだけに使用可能であり、場合によっては実行専用ブロックの署名復号を行い、場合によっては署名を行う；ＫＥＹ２は関連付けられた公開鍵である）でプログラム断片を暗号化する：
【００４０】
−  ストレージからブロックをフェッチする（例えば、オペレーティング・システム（ＯＳ）ＡＰＩコール、ＯＳサービスはアントラステッドである／クラウド・サービス・プロバイダによって提供され、更新される）
【００４１】
−  ステルス・モードに切り替わる。セキュアなコード・シーケンスを復号する。この例では、プログラム・コードは実行専用である
【００４２】
−  ハードウェア命令を使用して、暗号化された／実行専用プログラムの一部であるＫＥＹ３を使用して、例えばＬ２またはＬ３キャッシュあるいはその両方においてデータを復号する
【００４３】
−  場合によっては、クラウド・サービス（ネットワーク、ストレージ）からの、さらなる文字列定数を復号する
【００４４】
−  レポートを行う
【００４５】
−  ＫＥＹ３を使用して結果を暗号化する
【００４６】
−  ＫＥＹ１（製造中にプロセッサ内に組み込まれた秘密鍵）を使用してプロセッサにより署名する
【００４７】
−  ステルス・モードから離れる。このステップは、例えばすべての暗号化されていないデータを破壊する
【００４８】
−  アントラステッドなＯＳ  ＡＰＩコールを使用して暗号化された結果データをクラウドのクライアントに送信し戻す（しかし、このアントラステッドなサービスは暗号化されたデータを移送するだけである）
【００４９】
−  クラウド・サービス・プロバイダ／使用されるハイパーバイザ／使用されるＯＳは、いかなる暗号化されていないデータも確認しない
【００５０】
−  ＫＥＹ３は、一例では、いかなるプロセッサ動作によっても読み出すことはできず、また例えばＬ２／Ｌ３キャッシュを離れない。
【００５１】
例えば、ＶＰＮクラウドにおけるハードウェア機器とは対照的に、キーはクラウド・インフラストラクチャの一部ではないが、オンプレミスに維持される。これにより、キーのバックアップ／災害時復旧が可能となり、データがもはや必要ではない場合、キーをオンプレミスで破壊することを容易にしている。
【００５２】
インストールされているクラウド・ソフトウェア・ベースを信頼する必要はなく、態様は、例えば準同型暗号よりも、柔軟で高速である。
【００５３】
なおさらなる態様において、例えばＫＥＹ３を利用する全体的なメモリ暗号化が使用され、これはプロセッサの書込み専用の特殊レジスタに記憶される（複数の保護される仮想インスタンスが同時に実行されることになる場合は、同時的なコンテキストについて複数のレジスタ・エントリを伴う）。ステルス・モードに入る前に、アプリケーションは、暗号化されたメモリ内で、各々のライブラリが利用可能であることを確実にする。さらには、アプリケーションは、ステルス・モードに入るまで、いかなるＡＰＩ（ｌｉｂｃ、オペレーティング・システム、データベース、．．．）もこれ以上呼び出さない。クラウド・ストレージからロードされたデータは、ＫＥＹ３および特殊なプロセッサ命令を使用して復号される。（特殊なレジスタ命令により）ステルス・モードに入ると、プロセッサＩ／Ｏ（ＰＣＩ  ｅｘｐｒｅｓｓ、ノース・ブリッジ、．．．）はパワー・オフされる。次に、暗号化されたメモリ内でアントラステッドなＡＰＩを使用して、いくつかのレポート生成を行うことができる。結果は、特殊なページに持ち込まれ、再度ＫＥＹ３暗号化キーを使用して返される。使用されるサービスがログまたはトレースを書き出すことを要求する場合、ステルス・モードを抜ける前に、暗号化されたＲＡＭディスク（これは後に処分されるだけである可能性がある）に書き込まれる。ＫＥＹ３キーがヌル化されるため、アプリケーションは、クラウドに記憶されたデータを復号する、または生成された結果レコードを復号する能力を失っている。次に、一実施形態において、できることは暗号化された結果を送信し戻すことだけであり、終了する。
【００５４】
さらなる態様において、完全なＳＭＰが同時にステルス・モードに入る。複数のワークロードが同時的に実行中である場合、これはクラウド・サーバの可能な利用率を低減するが、仮想化されたものを実行する可能性を除去しない。任意選択で、各々のメモリのコアＩＤおよびＩ／Ｏ転送を追跡することにより、チップごとの代わりにコアごとにフェンスすることが可能な場合がある。フェンシング・ロジックは、どのコアＩＤをどの時点でフェンスするかを認識するためのものである。
【００５５】
本発明の１つまたは複数の態様はコンピュータ技術に密接に結びついており、コンピュータ内の処理を促進し、そのセキュリティおよびパフォーマンスを改善する。１つまたは複数の態様において、セキュアな動作（例えば、セキュアなクラウド動作）は、クラウド環境において暗号化されたデータに対して効率的に実施され、クラウド環境内における暗号化されたデータの使用を可能にしている。
【００５６】
１つまたは複数の態様において、第１の動作モードにあるプロセッサは、平文の命令を実行することができる。第１の動作モードにあるプロセッサは暗号化されたコードを取得して、第１の動作モードから第２の動作モードに切り替わり、第２の動作モードは第１の動作モードとは異なる。プロセッサが第２の動作モードにあることに基づいて、暗号化されたコードが復号され、復号されたコードを取得して、復号されたコードが実行される。
【００５７】
一例として、プロセッサを第１の動作モードから第２の動作モードへ切り替えることは、プロセッサから、プロセッサの外部コンポーネントへの１つまたは複数の通信接続を非アクティブ化して、プロセッサを第２の動作モードにすることを含む。
【００５８】
一態様において、復号されたコードを実行することは、復号されたコードを使用して１つまたは複数の動作を実施して結果を与えることを含む。結果は暗号化されて暗号化された結果を与え、プロセッサが第２の動作モードから第１の動作モードに切り替わったことに基づいて、暗号化された結果がクライアントに与えられる。第２の動作モードから第１の動作モードへ切り替わることにより、プロセッサから、プロセッサの外部コンポーネントへの通信が可能となる。切り替わることは、例えば、暗号化されていないデータをプロセッサの１つまたは複数のキャッシュから削除することを含む。
【００５９】
さらなる態様において、入力データが復号されて復号されたデータを与え、復号されたデータに対して１つまたは複数の動作が実施されて結果を与える。例として、入力データを復号することは、少なくとも１つのデータ・キーを使用することを含み、少なくとも１つのデータ・キーは、復号されたコードによって与えられる。
【００６０】
例として、暗号化されたコードを復号することは、プロセッサに一意な秘密鍵を使用して暗号化されたコードを復号することを含む。さらには、例として、暗号化されたコードはプロセッサの一意な識別子に関連付けられる公開鍵を使用して暗号化される。
【００６１】
なおさらには、一態様において、プロセッサはクラウド・サービス・プロバイダによって提供される。プロセッサは、一例では、プロセッサへの要求に基づいて、クラウド・サービス・プロバイダによって提供される。プロセッサの一意な識別子、およびプロセッサの一意な識別子に関連付けられる公開鍵が提供され、公開鍵を使用してコードを暗号化して、暗号化されたコードを与える。暗号化されたコードは、プロセッサに送信される。
【００６２】
他の変形形態および実施形態が可能である。
【００６３】
本明細書に記載されるように、１つまたは複数の態様は、クラウド・コンピューティングに関連する場合がある。
【００６４】
本開示はクラウド・コンピューティングについての詳細な説明を含むが、本明細書で具陳される教示の実装形態はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ本発明の実施形態は、現在既知の、または今後に開発されるあらゆる他のタイプのコンピューティング環境と併せて実装することができる。
【００６５】
クラウド・コンピューティングは、最小限の管理努力で、またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースされ得る、便利でオン・デマンドの構成可能なコンピューティング・リソースの共有されるプールへ（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス）のネットワーク・アクセスを可能とするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つの展開モデルを含むことができる。
【００６６】
特徴は以下の通りである：
【００６７】
オン・デマンド・セルフサービス：クラウド消費者は、サービスのプロバイダとの人間対話を要求することなく必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
【００６８】
幅広いネットワーク・アクセス：機能はネットワークの上で利用可能であり、異質なシンまたはシックなクライアントのプラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準的なメカニズムを通じてアクセスされる。
【００６９】
リソース・プール：プロバイダのコンピューティング・リソースは、マルチテナントのモデルを使用して複数の消費者にサービス提供するためにプールされ、異なる物理的および仮想的なリソースが要求に従って動的に割り当ておよび再割り当てされる。消費者が提供されるリソースの正確な場所についての制御または情報を一般的に持たない点で、場所の独立性の意味があるが、より高レベルの抽象化（例えば、国、州、またはデータ・センタ）において場所を特定できることもある。
【００７０】
迅速な適応性：機能は迅速かつ適応可能にプロビジョニングすることができ、いくつかの場合において、自動的に、素早くスケール・アウトし、迅速にリリースされて素早くスケール・インする。消費者にとって、プロビジョニングのために利用可能な機能は、しばしば無制限なようで、いつでもいくらでも購入することができる。
【００７１】
計測されるサービス：クラウド・システムは、サービスのタイプ（例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント）に適当な抽象化のいくつかのレベルにおいて計測機能を活用することによりリソースの使用を自動的に制御し、最適化する。リソースの使用は監視され、制御され、かつ報告され得、利用されるサービスのプロバイダおよび消費者の両方にとって透明性を与えている。
【００７２】
サービス・モデルは以下の通りである：
【００７３】
ＳａａＳ：Software as a Service：消費者に提供される機能は、クラウド・インフラストラクチャで実行中のプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース（例えば、ウェブ・ベースの電子メール）を通じて様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはさらには個々のアプリケーション機能を含む基礎となるクラウド・インフラストラクチャを管理または制御することはなく、例外として限定されたユーザ固有アプリケーションの構成設定が可能である。
【００７４】
ＰａａＳ：Platform as a Service：消費者に提供される機能は、消費者作成のクラウド・インフラストラクチャ、またはプロバイダによってサポートされるプログラミング言語およびツールを使用して作成された取得されたアプリケーションに展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャの管理または制御をしないが、展開されたアプリケーション、および場合によっては環境構成をホストするアプリケーションについての制御を有する。
【００７５】
ＩａａＳ：Infrastructure as a Service：消費者に提供される機能は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを消費者が展開および実行することができる処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。消費者は、基礎となるクラウド・インフラストラクチャの管理または制御をしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションの制御、および場合によっては選択ネットワーキング・コンポーネント（例えば、ホスト・ファイヤウォール）の限定された制御を有する。
【００７６】
展開モデルは以下の通りである：
【００７７】
プライベート・クラウド：クラウド・インフラストラクチャはある組織のためだけに運用される。クラウド・インフラストラクチャはその組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
【００７８】
コミュニティ・クラウド：クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有される事案（例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス懸案事項）を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャはその組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
【００７９】
パブリック・クラウド：クラウド・インフラストラクチャは、一般公衆または大規模な業界団体に対して利用可能とされ、クラウド・サービスを販売する組織によって所有される。
【００８０】
ハイブリッド・クラウド：クラウド・インフラストラクチャは、一意なエンティティのままである２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）を組み合せたものであるが、データおよびアプリケーションのポータビリティを可能にする標準化された、または専有的な技術（例えば、クラウド間でロード・バランシングを行うためのクラウド・バースト）によって共に結合される。
【００８１】
クラウド・コンピューティング環境は、ステートレスであること、低い連結性、モジュール性、および意味論的な相互運用性に集中するサービス指向である。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【００８２】
次に図４を参照すると、例示的なクラウド・コンピューティング環境５０が描写されている。示されるように、クラウド・コンピューティング環境５０は、例えば、携帯情報端末（ＰＤＡ）または携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎあるいはその組合せなどのクラウドの消費者によって使用されるローカルのコンピューティング・デバイスと通信することができる１つまたは複数のクラウド・コンピューティング・ノード５２を含む。ノード５２は互いに通信することができる。本明細書において上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッドのクラウドまたはその組合せなどの１つまたは複数のネットワークにおいて、それらのノードは物理的または仮想的にグループ化することができる（図示せず）。これにより、クラウド・コンピューティング環境５０は、クラウドの消費者がローカルのコンピューティング・デバイスでリソースを維持する必要のない、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして与えることができる。図４に示されるコンピューティング・デバイス５４Ａ〜Ｎのタイプは、図示のみを意図されており、コンピューティング・ノード５２およびクラウド・コンピューティング環境５０は、あらゆるタイプのネットワークの上でまたはネットワーク・アドレス可能接続の上で（例えば、ウェブ・ブラウザを使用して）あるいはその両方であらゆるタイプのコンピュータ化されたデバイスと通信することができることが理解されよう。
【００８３】
次に図５を参照すると、クラウド・コンピューティング環境５０（図４）によって提供される機能的な抽象化レイヤのセットが示されている。図５に示されるコンポーネント、レイヤ、および機能は、図示のみを意図されており、本発明の実施形態はそれに限定されないことがまず理解されるべきである。描写されるように、以下のレイヤおよび対応する機能が提供される：
【００８４】
ハードウェアおよびソフトウェア・レイヤ６０は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム６１、ＲＩＳＣ（縮小命令セット・コンピュータ）アーキテクチャ・ベースのサーバ６２、サーバ６３、ブレード・サーバ６４、ストレージ・デバイス６５、ならびにネットワークおよびネットワーキング・コンポーネント６６が挙げられる。いくつかの実施形態において、ソフトウェア・コンポーネントはネットワーク・アプリケーション・サーバ・ソフトウェア６７、およびデータベース・ソフトウェア６８を含む。
【００８５】
仮想化レイヤ７０は、仮想エンティティの以下の例を提供することができる抽象化レイヤを与える：仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、および仮想クライアント７５。
【００８６】
一例において、管理レイヤ８０は以下で説明される機能を提供することができる。リソース・プロビジョニング８１は、クラウド・コンピューティング環境内でタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および課金８２は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費についての課金または請求書発行を提供する。一例において、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクについての識別情報の検証、ならびにデータおよび他のリソースについての保護を提供する。ユーザ・ポータル８３はクラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス水準管理８４は、要求されるサービス水準が満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス水準合意（ＳＬＡ）計画および遂行８５は、将来的な要求がＳＬＡに従って予期されるクラウド・コンピューティング・リソースについての事前申し合わせ、およびクラウド・コンピューティング・リソースの調達を提供する。
【００８７】
ワークロード・レイヤ９０はクラウド・コンピューティング環境が利用され得る機能の例を提供する。このレイヤからもたらされ得るワークロードおよび機能の例として以下が挙げられる：マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想授業教育配信９３、データ分析処理９４、トランザクション処理９５、および暗号化されたデータ処理９６。
【００８８】
上述のものに加え、一例では、クライアント１０４は、多くのタイプのプロセッサで実行することができる。さらには、一例では、本明細書において説明されるプロセッサのうちの１つまたは複数は、コンピューティング環境の一部である可能性があり、その例を図６を参照して説明する。図６に示すように、例えばコンピューティング環境１０は、例えば汎用コンピューティング・デバイスの形態で示されるコンピュータ・システム１２を含む。コンピュータ・システム１２は、例えば、１つまたは複数のクライアントを実行することができる１つまたは複数のプロセッサまたは処理ユニット１４（例えば、中央処理装置（ＣＰＵ））、メモリ１６（例として、システム・メモリ、メイン・メモリ、メイン・ストレージ、中央ストレージまたはストレージとしても知られる）、および１つまたは複数の入力／出力（Ｉ／Ｏ）インターフェース１８を含むことができ、１つまたは複数のバスまたは他の接続２０あるいはその組合せを介して互いに連結されるが、それに限定されない。
【００８９】
バス２０は、バス構造のいくつかのタイプのうちの任意の１つまたは複数を表しており、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサまたは様々なバス・アーキテクチャの任意のものを使用するローカル・バスを含む。限定ではなく例として、そのようなアーキテクチャはインダストリ・スタンダード・アーキテクチャ（ＩＳＡ）、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）、エンハンストＩＳＡ（ＥＩＳＡ）、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、およびＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）を含む。
【００９０】
メモリ１６は、プロセッサ１４のローカル・キャッシュ２３に連結することができる、例えば共有キャッシュなどのキャッシュ２２、を含むことができる。さらには、メモリ１６は、１つまたは複数のプログラムまたはアプリケーション２４、オペレーティング・システム２６、および１つまたは複数のコンピュータ可読プログラム命令２８を含むことができる。コンピュータ可読プログラム命令２８は、本発明の態様の実施形態の機能を実行するように構成することができる。
【００９１】
コンピュータ・システム１２はまた、例えばＩ／Ｏインターフェース１８を介して１つもしくは複数の外部デバイス３０、１つもしくは複数のネットワーク・インターフェース３２、または１つもしくは複数のデータ記憶デバイス３４あるいはその組合せと通信することができる。外部デバイスの例としては、ユーザ端末、テープ・ドライブ、ポインティング・デバイス、ディスプレイなどが挙げられる。ネットワーク・インターフェース３２により、コンピュータ・システム１２は、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的なワイド・エリア・ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（例えば、インターネット）あるいはその組合せなどの、１つまたは複数のネットワークと通信することができ、他のコンピューティング・デバイスまたはシステムとの通信を可能にしている。
【００９２】
データ記憶デバイス３４は、１つまたは複数のプログラム３６、１つまたは複数のコンピュータ可読プログラム命令３８またはデータあるいはその組合せなどを記憶することができる。コンピュータ可読プログラム命令は、本発明の態様の実施形態の機能を実行するように構成することができる。
【００９３】
コンピュータ・システム１２は、リムーバブル／非リムーバブルの、揮発性／不揮発性のコンピュータ・システム記憶媒体を含むことができるか、またはそれらに連結することができるか、あるいはその両方である。例えば、コンピュータ・システム１２は、非リムーバブルの、不揮発性の磁気媒体（典型的には「ハードドライブ」と呼ばれる）、リムーバブルの、不揮発性の磁気ディスク（例えば、「フロッピー（Ｒ）・ディスク」）からの読取りおよびそれへの書込み用の磁気ディスク・ドライブ、またはＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭもしくは他の光学媒体などのリムーバブル、不揮発性の光学ディスクからの読取りもしくはそれへの書込み用の光学ディスク・ドライブ、あるいはその組合せを含むことができるか、またはそれに連結することができるか、あるいはその組合せである。他のハードウェアまたはソフトウェアあるいはその両方のコンポーネントが、コンピュータ・システム１２と併せて使用することができることが理解されるべきである。例として、マイクロコード、デバイス・ドライバ、冗長化処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、それに限定されない。
【００９４】
コンピュータ・システム１２は、多くの他の汎用または特殊目的の、コンピューティング・システム環境または構成で動作可能であり得る。コンピュータ・システム１２の使用に適切であり得る良く知られているコンピューティング・システム、環境、または構成あるいはそれらの組合せの例は、パーソナル・コンピュータ（ＰＣ）システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップのデバイス、マルチ・プロセッサ・システム、マイクロ・プロセッサベースのシステム、セット・トップ・ボックス、プログラム可能家庭用電子機器、ネットワークＰＣ、ミニ・コンピュータ・システム、メインフレーム・コンピュータ・システム、および上記システムまたはデバイスの任意のものを含む分散クラウド・コンピューティング環境などを含むがそれに限定しない。
【００９５】
本発明の態様は、統合のあらゆる可能な技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する１つまたは複数のコンピュータ可読記憶媒体を含むことができる。
【００９６】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは前述のあらゆる適切な組合せであってもよいが、それに限定はしない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、デジタルバーサタイルディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、命令を記録したパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述のあらゆる適切な組合せ、を含む。本明細書において使用される場合、コンピュータ可読記憶媒体は、電波または他の自由に伝搬する電磁波、導波路もしくは他の送信媒体（例えば、光ファイバ・ケーブルを通過する光パルス）を介して伝搬する電磁波、または電線を介して送信される電気的信号など、一過性の信号そのものであると解釈されてはならない。
【００９７】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、個別のコンピューティング／処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータもしくは外部のストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅の送信ケーブル、光学送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えることができる。それぞれのコンピューティング／処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別のコンピューティング／処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【００９８】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、あるいはスモールトーク（Ｒ）、またはＣ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語などの手続き型プログラミング言語もしくは類似するプログラミング言語、を含む１つまたは複数のプログラミング言語のあらゆる組合せで記述された、ソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上かつ一部はリモートのコンピュータ上で、またはすべてリモートのコンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオにおいて、リモートのコンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含むあらゆるタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は外部のコンピュータ（例えば、インターネット・サービス・プロバイダを使用するインターネットを介して）に対してなされてもよい。一部の実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブルロジックアレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個別化することができる。
【００９９】
本発明の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフロー・チャート図またはブロック図あるいはその両方を参照しながら本明細書において説明される。フロー・チャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフロー・チャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
【０１００】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、フロー・チャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／作用を実装するための手段を作成すべく、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を作るものであってよい。これらのコンピュータ可読プログラム命令はまた、命令を記憶したコンピュータ可読記憶媒体が、フロー・チャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／作用の態様を実装する命令を含む製造物品を備えるべく、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
【０１０１】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が、フロー・チャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／作用を実装すべく、コンピュータ実装処理を作るために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作可能なステップを実施させるものであってもよい。
【０１０２】
図面中のフロー・チャートおよびブロック図は、本発明の様々な実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能、および動作を図示している。この点において、フロー・チャートまたはブロック図の各々のブロックは、指定される１つまたは複数のロジック機能を実装するための１つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表現することができる。一部の代替的な実装形態において、ブロックにおいて示した機能は図面で示した順とは異なって生じてもよい。例えば、連続して示される２つのブロックは、実際には実質的に同時に実行されてもよく、またはブロックは関与する機能によっては、時に逆の順で実行されてもよい。ブロック図またはフロー・チャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフロー・チャート図あるいはその両方のブロックの組合せは、指定される機能もしくは動作を実施する、または特殊目的ハードウェアおよびコンピュータ命令の組合せを実行する、特殊目的ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
【０１０３】
上記に加え、１つまたは複数の態様は、顧客環境の管理を提供するサービス・プロバイダによって提供、提案、展開、管理、サービスなどなされ得る。例えば、サービス・プロバイダは、１つまたは複数の顧客に１つまたは複数の態様を実施するコンピュータ・コードまたはコンピュータ・インフラストラクチャあるいはその両方を、作成すること、保守すること、サポートすることなどができる。その見返りに、サービス・プロバイダは、例として購読または料金契約あるいはその両方の下で顧客から支払いを受け取ることができる。追加的に、または代替的に、サービス・プロバイダは、１つまたは複数のサード・パーティへの広告コンテンツの販売から支払いを受け取ることができる。
【０１０４】
一態様において、アプリケーションは１つまたは複数の実施形態を実施するために展開することができる。一例として、アプリケーションを展開することは、１つまたは複数の実施形態を実施するよう動作可能なコンピュータ・インフラストラクチャを提供することを含む。
【０１０５】
さらなる態様として、コンピューティング・インフラストラクチャを、コンピュータ可読コードをコンピューティング・システムに統合することを含んで展開することができ、その場合コンピューティング・システムと組み合わされるコードは、１つまたは複数の実施形態を実施することができる。
【０１０６】
なおさらなる態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含むコンピューティング・インフラストラクチャを統合するためのプロセスが提供され得る。コンピュータ・システムは、コンピュータ可読媒体を備え、その場合コンピュータ媒体は１つまたは複数の実施形態を含む。コンピュータ・システムと組み合わされるコードは、１つまたは複数の実施形態を実施することができる。
【０１０７】
様々な実施形態を上で説明したが、これらはただの例である。例えば、他のコンピューティング環境を使用して、１つまたは複数の実施形態を組み込んで使用することができる。さらには、多くのタイプの暗号化および復号を使用することができる。多くの変形形態が可能である。
【０１０８】
さらには、他のタイプのコンピューティング環境が有益であり得、使用することができる。例として、プログラム・コードを記憶することまたは実行することあるいはその両方に適切な、直接的にまたは間接的にシステム・バスを介してメモリ要素に連結される少なくとも２つのプロセッサを含むデータ処理システムが使用可能である。メモリ要素は、例えば、プログラム・コードの実際の実行の間に利用されるローカル・メモリ、バルク・ストレージ、および実行中にコードがバルク・ストレージから検索されなければならない回数を減らすために、少なくともいくつかのプログラム・コードの一時的な記憶を提供するキャッシュ・メモリを含む。
【０１０９】
入力／出力またはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイス、ＤＡＳＤ、テープ、ＣＤ、ＤＶＤ、サム・ドライブ、および他のメモリ媒体などを含むがそれに限定されない）は、直接的に、または仲介的なＩ／Ｏコントローラを通じてのいずれかで、システムに連結することができる。データ処理システムが仲介的なプライベートまたはパブリックなネットワークを通じて他のデータ処理システムまたはリモートのプリンタもしくは記憶装置デバイスに連結することができるようにするために、ネットワーク・アダプタをシステムに連結することもできる。利用可能なタイプのネットワーク・アダプタとしてはモデム、ケーブル・モデム、およびイーサネット（Ｒ）・カードなどが挙げられるが、これらはほんの一部である。
【０１１０】
本明細書で使用される用語は、特定の実施形態を説明することだけを目的としており、限定的であることを意図されていない。本明細書で使用される場合、コンテキストが明確にそうではないと指示しない限り、単数形「１つの（a）」、「１つの（an）」および「その（the）」は複数形を同様に含むように意図されている。用語「を含む（comprise）」または「を含む（comprising）」あるいはその両方は、本明細書で使用される場合、述べられた特徴、整数、ステップ、動作、要素、またはコンポーネントあるいはその組合せの存在を特定するが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネントまたはそのグループあるいはその組合せの、存在または追加を排除しないことが、さらに理解されよう。
【０１１１】
以下の特許請求の範囲における、すべての機能付き手段（ミーンズ・プラス・ファンクション）または機能付き工程（ステップ・プラス・ファンクション）の要素の対応する構造、材料、作用、および等価物は、もしあれば、具体的に特許請求されるような他の特許請求される要素と組み合せて機能を実施するために、あらゆる構造、材料、または作用を含むことを意図されている。例示および説明を目的として、１つまたは複数の実施形態の説明を提示してきたが、網羅的であること、または開示された形態に限定することは意図されていない。多くの修正形態および変形形態が当業者にとって明らかとなろう。実施形態は、様々な態様および実践的な用途を最良に説明するために選ばれ説明されたものであり、企図される特定の使用に適した様々な修正形態を伴う様々な実施形態を、当業者の他の者に理解させることができる。
【図１Ａ】
2021530009.tif 000003
【図１Ｂ】
2021530009.tif 000004
【図１Ｃ】
2021530009.tif 000005
【図１Ｄ】
2021530009.tif 000006
【図１Ｅ】
2021530009.tif 000007
【図１Ｆ】
2021530009.tif 000008
【図２】
2021530009.tif 000009
【図３Ａ】
2021530009.tif 000010
【図３Ｂ】
2021530009.tif 000011
【図３Ｃ】
2021530009.tif 000012
【図４】
2021530009.tif 000013
【図５】
2021530009.tif 000014
【図６】
2021530009.tif 000015
【手続補正書】
【提出日】令和3年1月6日(2021.1.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティング環境内で処理を促進するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムが、コンピュータに、
第１の動作モードにおいて、プロセッサによって、暗号化されたコードを取得することであって、前記プロセッサが前記第１の動作モードにあることに基づいて、平文の命令を実行する、前記取得することと、
前記プロセッサを、前記第１の動作モードから第２の動作モードに切り替えることであって、前記第２の動作モードが前記第１の動作モードとは異なる、前記切り替えることと、
前記プロセッサが前記第２の動作モードにあることに基づいて、前記暗号化されたコードを復号して、復号されたコードを取得することと、
前記プロセッサが前記第２の動作モードにあることに基づいて、前記復号されたコードを実行することと
を実行させる、コンピュータ・プログラム。
【請求項２】
前記プロセッサを前記第１の動作モードから前記第２の動作モードへ前記切り替えることが、前記プロセッサから、前記プロセッサの外部コンポーネントへの１つまたは複数の通信接続を非アクティブ化して、前記プロセッサを前記第２の動作モードにすることを含む、請求項１に記載のコンピュータ・プログラム。
【請求項３】
前記復号されたコードを前記実行することが、
前記復号されたコードを使用して１つまたは複数の動作を実施して結果を与えることと、
前記結果を暗号化して暗号化された結果を与えることと、
前記プロセッサが前記第２の動作モードから前記第１の動作モードに切り替わることに基づいて、前記暗号化された結果をクライアントに与えることと
を含む、請求項１に記載のコンピュータ・プログラム。
【請求項４】
前記第２の動作モードから前記第１の動作モードに切り替わり、前記プロセッサから、前記プロセッサの外部コンポーネントへの通信を可能にすることをさらに含み、前記切り替わることが前記プロセッサの１つまたは複数のキャッシュから暗号化されていないデータを削除することをさらに含む、請求項３に記載のコンピュータ・プログラム。
【請求項５】
入力データを復号して復号されたデータを与えることをさらに含み、前記１つまたは複数の動作が前記復号されたデータに対して実施されて前記結果を与える、請求項３に記載のコンピュータ・プログラム。
【請求項６】
前記入力データを前記復号することが、前記入力データを復号するために少なくとも１つのデータ・キーを使用することを含み、前記少なくとも１つのデータ・キーが前記復号されたコードによって与えられる、請求項５に記載のコンピュータ・プログラム。
【請求項７】
前記暗号化されたコードを前記復号することが、前記プロセッサに一意な秘密鍵を使用して前記暗号化されたコードを復号することを含む、請求項１に記載のコンピュータ・プログラム。
【請求項８】
前記暗号化されたコードが前記プロセッサの一意な識別子に関連付けられる公開鍵を使用して暗号化される、請求項１に記載のコンピュータ・プログラム。
【請求項９】
前記プロセッサがクラウド・サービス・プロバイダによって提供される、請求項１に記載のコンピュータ・プログラム。
【請求項１０】
前記プロセッサへの要求に基づいて、前記クラウド・サービス・プロバイダによって、前記プロセッサの一意な識別子および前記プロセッサの前記一意な識別子に関連付けられる公開鍵を提供することと、
前記公開鍵を使用してコードを暗号化して、前記暗号化されたコードを与えることと、
前記暗号化されたコードを前記プロセッサに送信することと
をさらに含む、請求項９に記載のコンピュータ・プログラム。
【請求項１１】
コンピューティング環境内で処理を促進するためのコンピュータ・システムであって、前記コンピュータ・システムは、
メモリと、前記メモリと通信するプロセッサとを備え、
第１の動作モードにおいて、前記プロセッサによって、暗号化されたコードを取得することであって、前記プロセッサが前記第１の動作モードにあることに基づいて、平文の命令を実行する、前記取得する手段と、
前記プロセッサを、前記第１の動作モードから第２の動作モードに切り替えることであって、前記第２の動作モードが前記第１の動作モードとは異なる、前記切り替える手段と、
前記プロセッサが前記第２の動作モードにあることに基づいて、前記暗号化されたコードを復号して、復号されたコードを取得する手段と、
前記プロセッサが前記第２の動作モードにあることに基づいて、前記復号されたコードを実行する手段と
を含む、コンピュータ・システム。
【請求項１２】
前記プロセッサを前記第１の動作モードから前記第２の動作モードへ前記切り替えることが、前記プロセッサから、前記プロセッサの外部コンポーネントへの１つまたは複数の通信接続を非アクティブ化して、前記プロセッサを前記第２の動作モードにする手段を含む、請求項１１に記載のコンピュータ・システム。
【請求項１３】
前記復号されたコードを前記実行する手段が、
前記復号されたコードを使用して１つまたは複数の動作を実施して結果を与える手段と、
前記結果を暗号化して暗号化された結果を与える手段と、
前記プロセッサが前記第２の動作モードから前記第１の動作モードに切り替わることに基づいて、前記暗号化された結果をクライアントに与える手段と
を含む、請求項１１に記載のコンピュータ・システム。
【請求項１４】
前記暗号化されたコードが前記プロセッサの一意な識別子に関連付けられる公開鍵を使用して暗号化される、請求項１１に記載のコンピュータ・システム。
【請求項１５】
前記プロセッサがクラウド・サービス・プロバイダによって提供される、請求項１１に記載のコンピュータ・システム。
【請求項１６】
コンピュータの情報処理によりコンピューティング環境内で処理を促進する方法であって、
第１の動作モードにおいて、プロセッサによって、暗号化されたコードを取得することであって、前記プロセッサが前記第１の動作モードにあることに基づいて、平文の命令を実行する、前記取得することと、
前記プロセッサを、前記第１の動作モードから第２の動作モードに切り替えることであって、前記第２の動作モードが前記第１の動作モードとは異なる、前記切り替えることと、
前記プロセッサが前記第２の動作モードにあることに基づいて、前記暗号化されたコードを復号して、復号されたコードを取得することと、
前記プロセッサが前記第２の動作モードにあることに基づいて、前記復号されたコードを実行することと
を含む、方法。
【請求項１７】
前記プロセッサを前記第１の動作モードから前記第２の動作モードへ前記切り替えることが、前記プロセッサから、前記プロセッサの外部コンポーネントへの１つまたは複数の通信接続を非アクティブ化して、前記プロセッサを前記第２の動作モードにすることを含む、請求項１６に記載の方法。
【請求項１８】
前記復号されたコードを前記実行することが、
前記復号されたコードを使用して１つまたは複数の動作を実施して結果を与えることと、
前記結果を暗号化して暗号化された結果を与えることと、
前記プロセッサが前記第２の動作モードから前記第１の動作モードに切り替わることに基づいて、前記暗号化された結果をクライアントに与えることと
を含む、請求項１６に記載の方法。
【請求項１９】
前記暗号化されたコードが前記プロセッサの一意な識別子に関連付けられる公開鍵を使用して暗号化される、請求項１６に記載の方法。
【請求項２０】
前記プロセッサがクラウド・サービス・プロバイダによって提供される、請求項１６に記載の方法。
【国際調査報告】
2021530009.tif 000016
2021530009.tif 000017