JP2021530009A - 暗号化されたデータに対するセキュアな動作 - Google Patents

暗号化されたデータに対するセキュアな動作 Download PDF

Info

Publication number
JP2021530009A
JP2021530009A JP2020564454A JP2020564454A JP2021530009A JP 2021530009 A JP2021530009 A JP 2021530009A JP 2020564454 A JP2020564454 A JP 2020564454A JP 2020564454 A JP2020564454 A JP 2020564454A JP 2021530009 A JP2021530009 A JP 2021530009A
Authority
JP
Japan
Prior art keywords
processor
mode
encrypted
code
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020564454A
Other languages
English (en)
Other versions
JP7201300B2 (ja
Inventor
ベンケ、オリバー
バーグマン、トバイアス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021530009A publication Critical patent/JP2021530009A/ja
Application granted granted Critical
Publication of JP7201300B2 publication Critical patent/JP7201300B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

暗号化されたコードに対してセキュアな動作が実施される。第1の動作モードにあるプロセッサは、暗号化されたコードを取得する。プロセッサは、第1の動作モードから第2の動作モードへと切り替わり、暗号化されたコードを復号して復号されたコードを取得する。プロセッサが第2の動作モードにあることに基づいて、復号されたコードが実行され、結果を与える。結果は暗号化され、プロセッサが第1の動作モードに切り替わったことに基づいて、暗号化された結果がユーザに送信される。

Description

1つまたは複数の態様は、一般的にはデータ暗号化に関し、より詳細にはクラウド・コンピューティング環境を含む1つまたは複数のコンピューティング環境において、暗号化されたデータに対してセキュアな動作を実施することに関する。
クラウド・コンピューティングによって、顧客またはユーザは、オン・デマンドに要求され、例えばインターネットを介して提供されたハードウェアおよびソフトウェアのリソースの使用に対して支払いを行うことができる。クラウド・プロバイダは、リソースを提供するだけでなく、ある顧客のデータに他の顧客がアクセスできないようにすることにより、その顧客のデータの保護を行う。
クラウド・プロバイダはデータへのアクセスを有しているため、暗号化されていたとしても、クラウド・プロバイダには信頼が必要とされる。例えば、従来的に、暗号化されたデータがクラウドにロードされ、ロードされた暗号化されたデータがクラウドで操作される(例えば、レポート生成のため)場合、クラウド・サービス・プロバイダは処理されたデータを平文で見ることができる。悪意のある何者かによってサービス・プロバイダがハッキングされる可能性があるため、これは懸念事項である。
コンピューティング環境内の処理を促進するためのコンピュータ・プログラム製品の提供を通じて、先行技術の欠点は克服され、さらなる利点が提供される。コンピュータ・プログラム製品は、処理回路によって読取り可能であり、方法を実施するための命令を記憶するコンピュータ可読記憶媒体を含む。方法は、第1の動作モードにおいて、プロセッサによって、暗号化されたコードを取得することを含み、プロセッサは第1の動作モードにあることに基づいて、平文の命令を実行する。プロセッサは、第1の動作モードから第2の動作モードに切り替えられ、第2の動作モードは第1の動作モードとは異なる。プロセッサが第2の動作モードにあることに基づいて、暗号化されたコードが復号され、復号されたコードを取得して、復号されたコードが実行される。
1つまたは複数の態様に関連するコンピュータ実装方法およびシステムがやはり本明細書において説明され、特許請求される。さらには、1つまたは複数の態様に関連するサービスがやはり説明され、本明細書において特許請求され得る。
追加的な特徴および利点が、本明細書において説明される技法を通じて実現される。他の実施形態および態様が、本明細書において詳細に説明され、特許請求される態様の一部と見なされる。
1つまたは複数の態様が、本文書の結論部における特許請求の範囲において、例として特に示され明確に特許請求される。前述、ならびに1つまたは複数の態様の目的、特徴および利点は、添付の図面と併せて以下の詳細な説明から明らかである。
本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例の図である。 本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例の図である。 本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例の図である。 本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例の図である。 本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例の図である。 本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例の図である。 本発明の態様による、暗号化されたデータに対するセキュアな動作を実施することに関連付けられる処理の一例のさらなる詳細の図である。 本発明の態様による、暗号化されたデータに対するセキュアな動作を実施するためにクライアントにおいて実施される処理の一例の図である。 本発明の態様による、暗号化されたデータに対するセキュアな動作を実施するためにクライアントにおいて実施される処理の一例の図である。 本発明の態様による、暗号化されたデータに対するセキュアな動作を実施するためにクラウド・プロバイダにおいて実施される処理の一例の図である。 クラウド・コンピューティング環境の一実施形態の図である。 抽象モデル・レイヤの一例の図である。 本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の一例の図である。
本発明の態様によると、機能は、暗号化されたデータに対するセキュアな動作(例えば、セキュアなクラウド動作)を可能にするために提供される。一例において、機能は、クラウドのトラステッド・プロセッサ(trusted processor)内で、本明細書では第2の動作モードまたはステルス・モードと称される別の動作モードを提供すること、および他の動作モードにおいて、トラステッド・プロセッサを使用して暗号化されたデータに対するセキュアなクラウド動作を実施することを含む。
トラステッド・プロセッサを使用して暗号化されたデータに対してセキュアな動作を実施する一例を、図1A〜図1Fを参照して説明する。初めに、図1Aを参照すると、本明細書ではプロセッサXと称されるプロセッサ100が、リモート・ネットワーク102(例えば、インターネットまたは他のネットワーク)を介して、例えば、別のプロセッサで実行しているクライアント104に連結されている。この例では、プロセッサ100はクラウド・コンピューティング環境106内のトラステッド・プロセッサであり、少なくとも1つのコード・キャッシュ110、および少なくとも1つのデータ・キャッシュ112を含む。この特定の例では、プロセッサ100は、入力データ用のデータ・キャッシュ112aおよび結果データ用のデータ・キャッシュ112bを含むが、他の実装形態が可能である。プロセッサ100は、例えば接続114を介して、クラウド・コンピューティング環境内に顧客暗号化データを含むストレージ116にさらに連結される。
一例では、コード・キャッシュ110は、例えば、コード・セグメント、命令、またはプログラムあるいはその組合せを含むがそれに限定されない、プロセッサによって実行されるコードを含む。例えば、本発明の態様によると、ステルス・モードのプログラム120が、プロセッサ100による実行のために、クラウド・プロバイダのプロセッサのコード・キャッシュ110にロードされる。ステルス・モードのプログラム120を含むコード・キャッシュ内のコードの処理を、図1B〜図1Fを参照して説明する。
図1Bを参照すると、一例において、入力/出力(I/O)読出し動作130がプロセッサ100によって実施され、顧客暗号化データをクラウド・ストレージ116から入力データ・キャッシュ112aに読み出す132。次に、図1Cを参照すると、ステルス・モード(他の動作モード、または第2の動作モードとも称される)がプロセッサ100について開始される140。ステルス・モードでは、プロセッサ100と、プロセッサの外部にある外部コンポーネントとの間の接続は無効にされる。例えば、プロセッサ100とクライアント104との間の接続、ならびにプロセッサ100とストレージ116との間の接続が無効にされる(接続102および接続114中のXによって示される通り)。一例では、接続を無効にするために、物理的な配線が、プロセッサ・チップに対して/からフェンスされる。フェンスが高い場合、すべてのフェンスされた信号は強制的にGND(接地)されるため、データ送信には使用できない。いくつかの外部接続は、完全に切断されると同期性を失うプロトコルを使用しているため、データ信号をフェンスすることで十分である。
ステルス・モードにあることに基づいて、図1Dに示されるように、データ・キャッシュ112aの暗号化された入力データはプロセッサ100によって復号され142、復号されたデータに対して動作が実施される。ステルス・モードでは、データは復号されるが、ステルス・モード外部の復号されたデータへのアクセス経路がない。次に、図1Eを参照すると、動作の結果が暗号化され144、暗号化された結果データ146が結果キャッシュ112bに書き込まれる。続いて、ステルス・モードが終了する。図1Fの接続102および114によって示されるように、ステルス・モードを終了することによって、ストレージ116およびクライアント104などの外部コンポーネントへの接続が復元される。さらには、暗号化された結果データは、例えばリモート・ネットワーク102を介して、クライアント104に送信される150。
図2および図3A〜図3Cを参照して、ステルス・モードにおいてセキュアなクラウド動作を実施することに関して、さらなる詳細を説明する。図2は、暗号化されたデータに対してステルス・モードを使用してセキュアなクラウド動作を実施するためのクラウド環境の一実施形態を図示している。図3A〜図3Bはセキュアなクラウド動作を実施することに関連付けられる顧客処理の一実施形態を図示している。図3Cはセキュアなクラウド動作を実施することに関連付けられるクラウド処理の一実施形態を図示している。以下の説明では、図2および図3A〜図3Cを参照する。したがって、「2」で始まる参照符号は図2を参照し、「3」で始まる参照符号は図3A、図3Bまたは図3Cを参照する。
初めに図2を参照すると、クラウド環境200がクライアント202に連結され、例えばトラステッド・サード・パーティ(trusted third party)(TTP)204、クラウド・プロバイダ206、クラウド・インスタンス208、および例として暗号化されたデータを記憶するストレージ210などの複数のエンティティを含む。
クラウド・インスタンス208は、例えばプロセッサ・コア250、複数のキャッシュ(例えばL2キャッシュ252、L3キャッシュ254)、およびメモリ256(例えば、ランダム・アクセス・メモリ(RAM))を含む。メモリ256は、暗号化されたデータ210へのアクセスを含む、または有することができる。L3キャッシュ254は、一例では、PCIeリンク260に連結され、メモリ256は、一例では、ストレージ262に連結される。一例では、ストレージ262、クライアント・プロセッサ、または中心部に対して外部と見なされる他のコンポーネントなどの外部コンポーネントへの接続が無効にされるという点で、コア250、L2キャッシュ252、L3キャッシュ254、およびメモリ256は、ステルス・モード動作のためにフェンス・オフされる場合がある。例えば、ステルス・モードでは、L3キャッシュ254からPCIeへの接続、ならびにRAM256からストレージ262への接続が無効にされる。
一実施形態において、ステルス・モードを使用してクラウド環境内で暗号化されたデータに対するセキュアな動作を提供するために、図3A〜図3Cを参照して説明されるように、一定のタスクが実施される。初めに図2および図3Aを参照すると、一実施形態において、顧客は、例えばクライアント・プロセッサ(例えばクライアント202)を介して、クラウド・プロバイダ(例えばクラウド・プロバイダ206)においてクラウド・インスタンス(例えばクラウド・インスタンス208)を予約する270、ステップ300。クラウド・インスタンスを予約することに基づいて、チップ製造業者によって有効にされたクラウド・コア(例えば、コア250)の一意な識別子であるコアID(例えば、COREID220)が、クラウド・プロバイダから顧客へ与えられる272。顧客はCOREIDを受信し、ステップ302、トラステッド・サード・パーティ(例えば、トラステッド・サード・パーティ204)にCOREID220のコード・キー(例えば、CODEKEY222)を要求する274、ステップ304。コード・キーは、チップ製造業者によって提供され署名された、クラウド・コアの公開鍵である。要求に基づいて、CODEKEYはトラステッド・サード・パーティによって顧客に与えられ276、ステップ306、メモリ256およびキャッシュ252、254のうちの1つまたは複数に読み込まれる。
追加的に、コード・シーケンスがクライアントに用意される、ステップ308。コード・シーケンスは、例えば、クラウド側のデータ・アクセス用のデータ・キー(DATAKEYとも称される)を含むオペレーティング・システムのインスタンスである。コード・シーケンスはトラステッド・サード・パーティから受信したコード・キーを使用して暗号化される、ステップ310。つまり、コード・シーケンスはクラウド・プロバイダにおいて予約された特定のプロセッサ用に暗号化される。一例では、コード・シーケンスはプロセッサの製造業者によって与えられる暗号化ツールを使用して暗号化され、暗号化されたコードを実行する。ツールは、例として、オープン・ソースで配布される場合がある。暗号化されたコードは、クラウド・インスタンスに送信される、ステップ312。一実施形態において、暗号化されたコードは1つまたは複数のキー(例えば、DATAKEY)を含み、クラウドにおいて、プライベートな顧客データを復号する。
例として、暗号化ツールはコード・シーケンス全体に対して非対称暗号法、またはパフォーマンス上の理由からハイブリッドな非対称/対称暗号法を使用する。第1の場合では、完全なコード・シーケンスがCODEKEYを使用して暗号化される。第2の場合では、例として乱数キーのみがCODEKEYを使用して暗号化され、この乱数キーがコード・シーケンスの対称暗号化のために使用される。他の変形形態が存在する。
さらには、図3Bを参照して、クライアント側のデータがデータ・キー(例えば、DATAKEY)で暗号化される、ステップ320。データ・キーは、例えば、クライアントによって与えられる入力データ暗号化用の対称キーである。暗号化されたデータは、例えば、クライアント・プロセッサを介してクラウド・インスタンスに送信される、ステップ322。
クラウド・インスタンスにおいて、コアはセキュアなステルス・モードに切り替わり、外部インターフェース(例えば、外部I/Oインターフェース)を無効にしてコードを復号する。復号されたコードが実行され、暗号化された結果を生成する。コアは通常モード(第1の動作モードとも称される)に切り替わり、あらゆる暗号化されていないデータを破壊する。暗号化された結果はユーザに送信し戻される。このことを、図3Cを参照してさらに説明する。
図3Cを参照すると、一実施形態において、暗号化されたクラウド側のデータ(例えば、クラウド側に存在するデータを含む暗号化されたクライアントのデータ)がメモリ(例えば、メモリ256)に読み込まれる、ステップ330。さらに、PCIおよび他のI/Oがフェンス・オフされるステルス・モードに入る、ステップ332。例えば、L3キャッシュ254とPCIe260との間の接続、およびRAM256とストレージ262との間の接続が無効にされる。もしあれば、他のそのような接続も無効にされる。
ステルス・モードでは、暗号化されたコードは例えばプロセッサに一意な秘密鍵を使用して復号され、復号されたコードは1つまたは複数のプロセッサ・キャッシュ(例えば、L2キャッシュ252、L3キャッシュ254または他のキャッシュあるいはその組合せ)に配置される、ステップ334。復号されたコードは、コードに含まれてデータを復号するために使用されるデータ・キーを確認する、ステップ346。もしあれば、メモリ256からデータが取得され、データ・キーのうちの1つまたは複数を使用して復号される。さらには、復号されたコードを使用して復号されたデータに対して1つまたは複数の計算が実施され、結果を与える、ステップ348。結果は、クライアントによって与えられる結果データ暗号化用の対称キーである結果キー(例えば、RESULTKEY)を使用して暗号化され、暗号化された結果が、例えば、メモリ(例えば、RAM256)に配置される、ステップ350。
暗号化された結果をメモリに配置することに続いて、オンチップ・キャッシュがゼロにされ、ステルス・モードから抜ける、ステップ360。暗号化された結果は顧客(ユーザとも称される)に送信し戻される、ステップ362。ユーザは、データ・キーを使用して結果を復号することができる、ステップ364。他の実装形態が可能である。
本明細書に記載されるように、ある機能が、暗号化されたデータに対するセキュアな動作(例えば、セキュアなクラウド動作)を可能にするために提供される。一例では、プレーン・テキストまたは平文の命令を実行することができる第1の動作モードで動作中のプロセッサは、プロセッサと外部コンポーネントとの間の通信が無効にされる第2の動作モードに切り替わることができる。第2の動作モードでは、プロセッサは暗号化されたコードまたは暗号化されたデータあるいはその両方を復号し、復号されたコードを実行することができる。一例では、復号されたデータに対して、復号されたコードを使用して1つまたは複数の動作が実施され、結果を与える。プロセッサが第2の動作モードから第1の動作モードに切り替わった後、結果が暗号化されてユーザに送信される。この機能によって、例えばクラウド・サービス・プロバイダが例えばロックされていないクレーム・キーを複製することができず、クラウド・サービス・プロバイダがクラウドに記憶された顧客データを復号できないという点で、セキュアな動作を実施することが可能となる。プロセッサでの実行は、環境の残り部分からフェンス・オフされ、悪意のあるデータ盗難を回避する。本発明の1つまたは複数の態様は、破損を生じ得るさらなる攻撃元区分(attack vector)を回避する。
1つまたは複数の態様により、顧客は暗号化されたプライベートなデータをリモートで、クラウド・プロバイダに記憶すること、および暗号化されたプライベートなデータをクラウド・プロバイダ所有のサービスを使用して操作し、顧客に転送される暗号化された結果を生成することが可能となる。クラウド・プロバイダは、すべての権限を有していたとしても、復号されたプライベートなデータを見ることができない。したがって、クラウド・プロバイダ、運用者、オペレーティング・システム、またはシステム・ソフトウェアには信頼が要求されないが、プロセッサの製造業者には信頼が要求される。
本明細書において説明されるように、1つまたは複数の態様において、クラウド・プロバイダのプロセッサの公開鍵が取得される。その特定のプロセッサについて、そのプロセッサだけがコードを復号できるように、コードが暗号化される。プロセッサは、本明細書においてステルス・モードと称される第2の動作モードを有しており、このステルス・モードでは、そのモードの間は外部デバイスと通信することができない。例えば、PCIeバスは、第2の動作モードの間、非アクティブ化される。プロセッサは、第2の動作モードにある場合、例えば実行専用モードにおいて、コードを復号する。クラウド・データを復号するためのキーは、暗号化されたコードの一部である可能性がある。例として、オンチップ・キャッシュにロードする際は、コード・キャッシュ・ラインが復号され、データは例えばオンチップ・キャッシュ内で復号されるだけである。
ステルス・モードに置かれているプロセッサは、製造中に融合された一意のキーを含む。一実施形態において、プロセッサの製造業者は、それらのキーのデータベースを保守する。
一態様において、プライベートなデータ・キーを有するデータ所有者のみが、クラウドにおいて、暗号化されたデータに対して動作を行うことができる新しいソフトウェアをコンパイルすることができる。データを復号するためのキーは、ステルス・モードの実行の間プロセッサ・コア内でのみ、見ることができる。データ・キーは、クラウド・データ・センタの範囲外で維持し、なお復号されたデータに対して動作を行うことが可能である。
一実施形態において、データ・キーおよび結果キーは、データ所有者によってプライベートに維持されるにも関わらず、クラウド・プロバイダはそれらのデータ・キーを使用してデータに対して動作することができる。ハードウェア・ベンダには信頼が必要とされるが、クラウド・サービス・プロバイダには信頼が必要とされない。一態様において、ステルス・モードのソフトウェア・コンポーネントは特定のチップ用にカスタムで作製される。例えば、ステルス・モードのソフトウェア・コンポーネントは、ステルス・モードをサポートするプロセッサ用に特殊化される。特定のプロセッサ・コアの特定のCODEKEYで暗号化することによって、コードは、例えば正確にこのコアにおいて、ターゲットとされる。
さらなる態様では、マルチ・プロセッシング対応のアプリケーションについて、プロセッサが実行専用モードのページを同一のマルチ・プロセッシング・システム上の他のコアに複製することができるマルチ・プロセッシング・システム(例えば、対称型マルチ・プロセッシング・システム(SMP))において、1つまたは複数の態様を使用することができる。それぞれのコアは、他のSMPコアの公開鍵を有しているため、ターゲットの公開鍵を再暗号化することができる。
他の実施形態、変形形態および実装形態が可能である。前述の説明は、本発明の実施形態の一例に過ぎず、変形形態、修正形態またはその置き換えあるいはその組合せが可能である。
本発明の1つまたは複数の態様が利用される使用シナリオの一例としては、例えば、以下が含まれる:顧客が暗号化されたフォーマットで入力データをクラウド・サービス・プロバイダにダウンロードする。クラウド・サービス・プロバイダは、データを記憶するが、それを復号することはできない。顧客が信頼される計算リソースをクラウド・サービス・プロバイダにおいて購入する。クラウド・サービス・プロバイダは、所与のサーバにおいて、所与の製造業者による所与のCPU(コア)でタイム・スロットを予約して、信頼されるプログラムが実行されるコアのID/公開鍵を顧客に通知する。顧客は、所与の製造業者が所与のID/公開鍵でCPUを製造したということを検証する。顧客は、CPU製造業者によって提供される暗号化ツールを使用して、プライベートなデータを復号するために適切なキーを含むセキュアなコード・モジュールを暗号化する。暗号化ツールはオープン・ソースで配布される場合がある。顧客は、部分的に暗号化されたプログラムをクラウド・サービス・プロバイダに送信する。クラウド・サービス・プロバイダは、セキュアなプログラムを、対応する秘密鍵を有する所与のCPUにサブミットする。秘密鍵がCPUハードウェアを離れることはない。顧客からのシークレット・キーは、例えば、LnキャッシュまたはCPUのメモリの外部にはない。プログラム実行後、CPUは暗号化された結果へのポインタを有しており、そのポインタは顧客によってアクセス可能などこかへ転送することができる。
さらなる態様において、クラウド・サービス・プロバイダによるリプライ攻撃によるさらなる分析能力を妨げるために、タイムスタンプを使用してリプライ攻撃を排除することができる。さらには、あるコアが損なわれていると分かっている場合、そのキーはトラステッド・サード・パーティから除去されるため、コアは割り振られたさらなるタスクを取得することができない。
別の使用シナリオとしては、例えば以下が挙げられる:
データをクラウドにロードする:
− KEY3(クラウドのクライアント・データ・キー)を使用してデータを暗号化する
− クラウドにおいて暗号化されたデータを記憶する。
クラウド内でデータに対するレポートを行う:以下のようにKEY2(公開鍵に関連付けられており−プロセッサは公開鍵ペア<KEY1,KEY2>を有し、KEY1は秘密鍵である−、製造中にプロセッサ内に組み込まれ、製造業者によって複製されない;プロセッサ・コア内に留まり、実行専用ブロックの復号のためだけに使用可能であり、場合によっては実行専用ブロックの署名復号を行い、場合によっては署名を行う;KEY2は関連付けられた公開鍵である)でプログラム断片を暗号化する:
− ストレージからブロックをフェッチする(例えば、オペレーティング・システム(OS)APIコール、OSサービスはアントラステッドである/クラウド・サービス・プロバイダによって提供され、更新される)
− ステルス・モードに切り替わる。セキュアなコード・シーケンスを復号する。この例では、プログラム・コードは実行専用である
− ハードウェア命令を使用して、暗号化された/実行専用プログラムの一部であるKEY3を使用して、例えばL2またはL3キャッシュあるいはその両方においてデータを復号する
− 場合によっては、クラウド・サービス(ネットワーク、ストレージ)からの、さらなる文字列定数を復号する
− レポートを行う
− KEY3を使用して結果を暗号化する
− KEY1(製造中にプロセッサ内に組み込まれた秘密鍵)を使用してプロセッサにより署名する
− ステルス・モードから離れる。このステップは、例えばすべての暗号化されていないデータを破壊する
− アントラステッドなOS APIコールを使用して暗号化された結果データをクラウドのクライアントに送信し戻す(しかし、このアントラステッドなサービスは暗号化されたデータを移送するだけである)
− クラウド・サービス・プロバイダ/使用されるハイパーバイザ/使用されるOSは、いかなる暗号化されていないデータも確認しない
− KEY3は、一例では、いかなるプロセッサ動作によっても読み出すことはできず、また例えばL2/L3キャッシュを離れない。
例えば、VPNクラウドにおけるハードウェア機器とは対照的に、キーはクラウド・インフラストラクチャの一部ではないが、オンプレミスに維持される。これにより、キーのバックアップ/災害時復旧が可能となり、データがもはや必要ではない場合、キーをオンプレミスで破壊することを容易にしている。
インストールされているクラウド・ソフトウェア・ベースを信頼する必要はなく、態様は、例えば準同型暗号よりも、柔軟で高速である。
なおさらなる態様において、例えばKEY3を利用する全体的なメモリ暗号化が使用され、これはプロセッサの書込み専用の特殊レジスタに記憶される(複数の保護される仮想インスタンスが同時に実行されることになる場合は、同時的なコンテキストについて複数のレジスタ・エントリを伴う)。ステルス・モードに入る前に、アプリケーションは、暗号化されたメモリ内で、各々のライブラリが利用可能であることを確実にする。さらには、アプリケーションは、ステルス・モードに入るまで、いかなるAPI(libc、オペレーティング・システム、データベース、...)もこれ以上呼び出さない。クラウド・ストレージからロードされたデータは、KEY3および特殊なプロセッサ命令を使用して復号される。(特殊なレジスタ命令により)ステルス・モードに入ると、プロセッサI/O(PCI express、ノース・ブリッジ、...)はパワー・オフされる。次に、暗号化されたメモリ内でアントラステッドなAPIを使用して、いくつかのレポート生成を行うことができる。結果は、特殊なページに持ち込まれ、再度KEY3暗号化キーを使用して返される。使用されるサービスがログまたはトレースを書き出すことを要求する場合、ステルス・モードを抜ける前に、暗号化されたRAMディスク(これは後に処分されるだけである可能性がある)に書き込まれる。KEY3キーがヌル化されるため、アプリケーションは、クラウドに記憶されたデータを復号する、または生成された結果レコードを復号する能力を失っている。次に、一実施形態において、できることは暗号化された結果を送信し戻すことだけであり、終了する。
さらなる態様において、完全なSMPが同時にステルス・モードに入る。複数のワークロードが同時的に実行中である場合、これはクラウド・サーバの可能な利用率を低減するが、仮想化されたものを実行する可能性を除去しない。任意選択で、各々のメモリのコアIDおよびI/O転送を追跡することにより、チップごとの代わりにコアごとにフェンスすることが可能な場合がある。フェンシング・ロジックは、どのコアIDをどの時点でフェンスするかを認識するためのものである。
本発明の1つまたは複数の態様はコンピュータ技術に密接に結びついており、コンピュータ内の処理を促進し、そのセキュリティおよびパフォーマンスを改善する。1つまたは複数の態様において、セキュアな動作(例えば、セキュアなクラウド動作)は、クラウド環境において暗号化されたデータに対して効率的に実施され、クラウド環境内における暗号化されたデータの使用を可能にしている。
1つまたは複数の態様において、第1の動作モードにあるプロセッサは、平文の命令を実行することができる。第1の動作モードにあるプロセッサは暗号化されたコードを取得して、第1の動作モードから第2の動作モードに切り替わり、第2の動作モードは第1の動作モードとは異なる。プロセッサが第2の動作モードにあることに基づいて、暗号化されたコードが復号され、復号されたコードを取得して、復号されたコードが実行される。
一例として、プロセッサを第1の動作モードから第2の動作モードへ切り替えることは、プロセッサから、プロセッサの外部コンポーネントへの1つまたは複数の通信接続を非アクティブ化して、プロセッサを第2の動作モードにすることを含む。
一態様において、復号されたコードを実行することは、復号されたコードを使用して1つまたは複数の動作を実施して結果を与えることを含む。結果は暗号化されて暗号化された結果を与え、プロセッサが第2の動作モードから第1の動作モードに切り替わったことに基づいて、暗号化された結果がクライアントに与えられる。第2の動作モードから第1の動作モードへ切り替わることにより、プロセッサから、プロセッサの外部コンポーネントへの通信が可能となる。切り替わることは、例えば、暗号化されていないデータをプロセッサの1つまたは複数のキャッシュから削除することを含む。
さらなる態様において、入力データが復号されて復号されたデータを与え、復号されたデータに対して1つまたは複数の動作が実施されて結果を与える。例として、入力データを復号することは、少なくとも1つのデータ・キーを使用することを含み、少なくとも1つのデータ・キーは、復号されたコードによって与えられる。
例として、暗号化されたコードを復号することは、プロセッサに一意な秘密鍵を使用して暗号化されたコードを復号することを含む。さらには、例として、暗号化されたコードはプロセッサの一意な識別子に関連付けられる公開鍵を使用して暗号化される。
なおさらには、一態様において、プロセッサはクラウド・サービス・プロバイダによって提供される。プロセッサは、一例では、プロセッサへの要求に基づいて、クラウド・サービス・プロバイダによって提供される。プロセッサの一意な識別子、およびプロセッサの一意な識別子に関連付けられる公開鍵が提供され、公開鍵を使用してコードを暗号化して、暗号化されたコードを与える。暗号化されたコードは、プロセッサに送信される。
他の変形形態および実施形態が可能である。
本明細書に記載されるように、1つまたは複数の態様は、クラウド・コンピューティングに関連する場合がある。
本開示はクラウド・コンピューティングについての詳細な説明を含むが、本明細書で具陳される教示の実装形態はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ本発明の実施形態は、現在既知の、または今後に開発されるあらゆる他のタイプのコンピューティング環境と併せて実装することができる。
クラウド・コンピューティングは、最小限の管理努力で、またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースされ得る、便利でオン・デマンドの構成可能なコンピューティング・リソースの共有されるプールへ(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)のネットワーク・アクセスを可能とするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
特徴は以下の通りである:
オン・デマンド・セルフサービス:クラウド消費者は、サービスのプロバイダとの人間対話を要求することなく必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:機能はネットワークの上で利用可能であり、異質なシンまたはシックなクライアントのプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを通じてアクセスされる。
リソース・プール:プロバイダのコンピューティング・リソースは、マルチテナントのモデルを使用して複数の消費者にサービス提供するためにプールされ、異なる物理的および仮想的なリソースが要求に従って動的に割り当ておよび再割り当てされる。消費者が提供されるリソースの正確な場所についての制御または情報を一般的に持たない点で、場所の独立性の意味があるが、より高レベルの抽象化(例えば、国、州、またはデータ・センタ)において場所を特定できることもある。
迅速な適応性:機能は迅速かつ適応可能にプロビジョニングすることができ、いくつかの場合において、自動的に、素早くスケール・アウトし、迅速にリリースされて素早くスケール・インする。消費者にとって、プロビジョニングのために利用可能な機能は、しばしば無制限なようで、いつでもいくらでも購入することができる。
計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適当な抽象化のいくつかのレベルにおいて計測機能を活用することによりリソースの使用を自動的に制御し、最適化する。リソースの使用は監視され、制御され、かつ報告され得、利用されるサービスのプロバイダおよび消費者の両方にとって透明性を与えている。
サービス・モデルは以下の通りである:
SaaS:Software as a Service:消費者に提供される機能は、クラウド・インフラストラクチャで実行中のプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えば、ウェブ・ベースの電子メール)を通じて様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはさらには個々のアプリケーション機能を含む基礎となるクラウド・インフラストラクチャを管理または制御することはなく、例外として限定されたユーザ固有アプリケーションの構成設定が可能である。
PaaS:Platform as a Service:消費者に提供される機能は、消費者作成のクラウド・インフラストラクチャ、またはプロバイダによってサポートされるプログラミング言語およびツールを使用して作成された取得されたアプリケーションに展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャの管理または制御をしないが、展開されたアプリケーション、および場合によっては環境構成をホストするアプリケーションについての制御を有する。
IaaS:Infrastructure as a Service:消費者に提供される機能は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを消費者が展開および実行することができる処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。消費者は、基礎となるクラウド・インフラストラクチャの管理または制御をしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションの制御、および場合によっては選択ネットワーキング・コンポーネント(例えば、ホスト・ファイヤウォール)の限定された制御を有する。
展開モデルは以下の通りである:
プライベート・クラウド:クラウド・インフラストラクチャはある組織のためだけに運用される。クラウド・インフラストラクチャはその組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有される事案(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス懸案事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャはその組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大規模な業界団体に対して利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意なエンティティのままである2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)を組み合せたものであるが、データおよびアプリケーションのポータビリティを可能にする標準化された、または専有的な技術(例えば、クラウド間でロード・バランシングを行うためのクラウド・バースト)によって共に結合される。
クラウド・コンピューティング環境は、ステートレスであること、低い連結性、モジュール性、および意味論的な相互運用性に集中するサービス指向である。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
次に図4を参照すると、例示的なクラウド・コンピューティング環境50が描写されている。示されるように、クラウド・コンピューティング環境50は、例えば、携帯情報端末(PDA)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54Nあるいはその組合せなどのクラウドの消費者によって使用されるローカルのコンピューティング・デバイスと通信することができる1つまたは複数のクラウド・コンピューティング・ノード52を含む。ノード52は互いに通信することができる。本明細書において上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッドのクラウドまたはその組合せなどの1つまたは複数のネットワークにおいて、それらのノードは物理的または仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウドの消費者がローカルのコンピューティング・デバイスでリソースを維持する必要のない、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして与えることができる。図4に示されるコンピューティング・デバイス54A〜Nのタイプは、図示のみを意図されており、コンピューティング・ノード52およびクラウド・コンピューティング環境50は、あらゆるタイプのネットワークの上でまたはネットワーク・アドレス可能接続の上で(例えば、ウェブ・ブラウザを使用して)あるいはその両方であらゆるタイプのコンピュータ化されたデバイスと通信することができることが理解されよう。
次に図5を参照すると、クラウド・コンピューティング環境50(図4)によって提供される機能的な抽象化レイヤのセットが示されている。図5に示されるコンポーネント、レイヤ、および機能は、図示のみを意図されており、本発明の実施形態はそれに限定されないことがまず理解されるべきである。描写されるように、以下のレイヤおよび対応する機能が提供される:
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66が挙げられる。いくつかの実施形態において、ソフトウェア・コンポーネントはネットワーク・アプリケーション・サーバ・ソフトウェア67、およびデータベース・ソフトウェア68を含む。
仮想化レイヤ70は、仮想エンティティの以下の例を提供することができる抽象化レイヤを与える:仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、および仮想クライアント75。
一例において、管理レイヤ80は以下で説明される機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および課金82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費についての課金または請求書発行を提供する。一例において、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクについての識別情報の検証、ならびにデータおよび他のリソースについての保護を提供する。ユーザ・ポータル83はクラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス水準管理84は、要求されるサービス水準が満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス水準合意(SLA)計画および遂行85は、将来的な要求がSLAに従って予期されるクラウド・コンピューティング・リソースについての事前申し合わせ、およびクラウド・コンピューティング・リソースの調達を提供する。
ワークロード・レイヤ90はクラウド・コンピューティング環境が利用され得る機能の例を提供する。このレイヤからもたらされ得るワークロードおよび機能の例として以下が挙げられる:マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想授業教育配信93、データ分析処理94、トランザクション処理95、および暗号化されたデータ処理96。
上述のものに加え、一例では、クライアント104は、多くのタイプのプロセッサで実行することができる。さらには、一例では、本明細書において説明されるプロセッサのうちの1つまたは複数は、コンピューティング環境の一部である可能性があり、その例を図6を参照して説明する。図6に示すように、例えばコンピューティング環境10は、例えば汎用コンピューティング・デバイスの形態で示されるコンピュータ・システム12を含む。コンピュータ・システム12は、例えば、1つまたは複数のクライアントを実行することができる1つまたは複数のプロセッサまたは処理ユニット14(例えば、中央処理装置(CPU))、メモリ16(例として、システム・メモリ、メイン・メモリ、メイン・ストレージ、中央ストレージまたはストレージとしても知られる)、および1つまたは複数の入力/出力(I/O)インターフェース18を含むことができ、1つまたは複数のバスまたは他の接続20あるいはその組合せを介して互いに連結されるが、それに限定されない。
バス20は、バス構造のいくつかのタイプのうちの任意の1つまたは複数を表しており、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサまたは様々なバス・アーキテクチャの任意のものを使用するローカル・バスを含む。限定ではなく例として、そのようなアーキテクチャはインダストリ・スタンダード・アーキテクチャ(ISA)、マイクロ・チャネル・アーキテクチャ(MCA)、エンハンストISA(EISA)、Video Electronics Standards Association(VESA)ローカル・バス、およびPeripheral Component Interconnect(PCI)を含む。
メモリ16は、プロセッサ14のローカル・キャッシュ23に連結することができる、例えば共有キャッシュなどのキャッシュ22、を含むことができる。さらには、メモリ16は、1つまたは複数のプログラムまたはアプリケーション24、オペレーティング・システム26、および1つまたは複数のコンピュータ可読プログラム命令28を含むことができる。コンピュータ可読プログラム命令28は、本発明の態様の実施形態の機能を実行するように構成することができる。
コンピュータ・システム12はまた、例えばI/Oインターフェース18を介して1つもしくは複数の外部デバイス30、1つもしくは複数のネットワーク・インターフェース32、または1つもしくは複数のデータ記憶デバイス34あるいはその組合せと通信することができる。外部デバイスの例としては、ユーザ端末、テープ・ドライブ、ポインティング・デバイス、ディスプレイなどが挙げられる。ネットワーク・インターフェース32により、コンピュータ・システム12は、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(例えば、インターネット)あるいはその組合せなどの、1つまたは複数のネットワークと通信することができ、他のコンピューティング・デバイスまたはシステムとの通信を可能にしている。
データ記憶デバイス34は、1つまたは複数のプログラム36、1つまたは複数のコンピュータ可読プログラム命令38またはデータあるいはその組合せなどを記憶することができる。コンピュータ可読プログラム命令は、本発明の態様の実施形態の機能を実行するように構成することができる。
コンピュータ・システム12は、リムーバブル/非リムーバブルの、揮発性/不揮発性のコンピュータ・システム記憶媒体を含むことができるか、またはそれらに連結することができるか、あるいはその両方である。例えば、コンピュータ・システム12は、非リムーバブルの、不揮発性の磁気媒体(典型的には「ハードドライブ」と呼ばれる)、リムーバブルの、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)からの読取りおよびそれへの書込み用の磁気ディスク・ドライブ、またはCD−ROM、DVD−ROMもしくは他の光学媒体などのリムーバブル、不揮発性の光学ディスクからの読取りもしくはそれへの書込み用の光学ディスク・ドライブ、あるいはその組合せを含むことができるか、またはそれに連結することができるか、あるいはその組合せである。他のハードウェアまたはソフトウェアあるいはその両方のコンポーネントが、コンピュータ・システム12と併せて使用することができることが理解されるべきである。例として、マイクロコード、デバイス・ドライバ、冗長化処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、それに限定されない。
コンピュータ・システム12は、多くの他の汎用または特殊目的の、コンピューティング・システム環境または構成で動作可能であり得る。コンピュータ・システム12の使用に適切であり得る良く知られているコンピューティング・システム、環境、または構成あるいはそれらの組合せの例は、パーソナル・コンピュータ(PC)システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップのデバイス、マルチ・プロセッサ・システム、マイクロ・プロセッサベースのシステム、セット・トップ・ボックス、プログラム可能家庭用電子機器、ネットワークPC、ミニ・コンピュータ・システム、メインフレーム・コンピュータ・システム、および上記システムまたはデバイスの任意のものを含む分散クラウド・コンピューティング環境などを含むがそれに限定しない。
本発明の態様は、統合のあらゆる可能な技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する1つまたは複数のコンピュータ可読記憶媒体を含むことができる。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは前述のあらゆる適切な組合せであってもよいが、それに限定はしない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD−ROM)、デジタルバーサタイルディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令を記録したパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述のあらゆる適切な組合せ、を含む。本明細書において使用される場合、コンピュータ可読記憶媒体は、電波または他の自由に伝搬する電磁波、導波路もしくは他の送信媒体(例えば、光ファイバ・ケーブルを通過する光パルス)を介して伝搬する電磁波、または電線を介して送信される電気的信号など、一過性の信号そのものであると解釈されてはならない。
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、個別のコンピューティング/処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータもしくは外部のストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅の送信ケーブル、光学送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えることができる。それぞれのコンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別のコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、あるいはスモールトーク(R)、またはC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語などの手続き型プログラミング言語もしくは類似するプログラミング言語、を含む1つまたは複数のプログラミング言語のあらゆる組合せで記述された、ソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上かつ一部はリモートのコンピュータ上で、またはすべてリモートのコンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオにおいて、リモートのコンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含むあらゆるタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は外部のコンピュータ(例えば、インターネット・サービス・プロバイダを使用するインターネットを介して)に対してなされてもよい。一部の実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個別化することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフロー・チャート図またはブロック図あるいはその両方を参照しながら本明細書において説明される。フロー・チャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフロー・チャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、フロー・チャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用を実装するための手段を作成すべく、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を作るものであってよい。これらのコンピュータ可読プログラム命令はまた、命令を記憶したコンピュータ可読記憶媒体が、フロー・チャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用の態様を実装する命令を含む製造物品を備えるべく、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が、フロー・チャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用を実装すべく、コンピュータ実装処理を作るために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作可能なステップを実施させるものであってもよい。
図面中のフロー・チャートおよびブロック図は、本発明の様々な実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能、および動作を図示している。この点において、フロー・チャートまたはブロック図の各々のブロックは、指定される1つまたは複数のロジック機能を実装するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表現することができる。一部の代替的な実装形態において、ブロックにおいて示した機能は図面で示した順とは異なって生じてもよい。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよく、またはブロックは関与する機能によっては、時に逆の順で実行されてもよい。ブロック図またはフロー・チャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフロー・チャート図あるいはその両方のブロックの組合せは、指定される機能もしくは動作を実施する、または特殊目的ハードウェアおよびコンピュータ命令の組合せを実行する、特殊目的ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
上記に加え、1つまたは複数の態様は、顧客環境の管理を提供するサービス・プロバイダによって提供、提案、展開、管理、サービスなどなされ得る。例えば、サービス・プロバイダは、1つまたは複数の顧客に1つまたは複数の態様を実施するコンピュータ・コードまたはコンピュータ・インフラストラクチャあるいはその両方を、作成すること、保守すること、サポートすることなどができる。その見返りに、サービス・プロバイダは、例として購読または料金契約あるいはその両方の下で顧客から支払いを受け取ることができる。追加的に、または代替的に、サービス・プロバイダは、1つまたは複数のサード・パーティへの広告コンテンツの販売から支払いを受け取ることができる。
一態様において、アプリケーションは1つまたは複数の実施形態を実施するために展開することができる。一例として、アプリケーションを展開することは、1つまたは複数の実施形態を実施するよう動作可能なコンピュータ・インフラストラクチャを提供することを含む。
さらなる態様として、コンピューティング・インフラストラクチャを、コンピュータ可読コードをコンピューティング・システムに統合することを含んで展開することができ、その場合コンピューティング・システムと組み合わされるコードは、1つまたは複数の実施形態を実施することができる。
なおさらなる態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含むコンピューティング・インフラストラクチャを統合するためのプロセスが提供され得る。コンピュータ・システムは、コンピュータ可読媒体を備え、その場合コンピュータ媒体は1つまたは複数の実施形態を含む。コンピュータ・システムと組み合わされるコードは、1つまたは複数の実施形態を実施することができる。
様々な実施形態を上で説明したが、これらはただの例である。例えば、他のコンピューティング環境を使用して、1つまたは複数の実施形態を組み込んで使用することができる。さらには、多くのタイプの暗号化および復号を使用することができる。多くの変形形態が可能である。
さらには、他のタイプのコンピューティング環境が有益であり得、使用することができる。例として、プログラム・コードを記憶することまたは実行することあるいはその両方に適切な、直接的にまたは間接的にシステム・バスを介してメモリ要素に連結される少なくとも2つのプロセッサを含むデータ処理システムが使用可能である。メモリ要素は、例えば、プログラム・コードの実際の実行の間に利用されるローカル・メモリ、バルク・ストレージ、および実行中にコードがバルク・ストレージから検索されなければならない回数を減らすために、少なくともいくつかのプログラム・コードの一時的な記憶を提供するキャッシュ・メモリを含む。
入力/出力またはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブ、および他のメモリ媒体などを含むがそれに限定されない)は、直接的に、または仲介的なI/Oコントローラを通じてのいずれかで、システムに連結することができる。データ処理システムが仲介的なプライベートまたはパブリックなネットワークを通じて他のデータ処理システムまたはリモートのプリンタもしくは記憶装置デバイスに連結することができるようにするために、ネットワーク・アダプタをシステムに連結することもできる。利用可能なタイプのネットワーク・アダプタとしてはモデム、ケーブル・モデム、およびイーサネット(R)・カードなどが挙げられるが、これらはほんの一部である。
本明細書で使用される用語は、特定の実施形態を説明することだけを目的としており、限定的であることを意図されていない。本明細書で使用される場合、コンテキストが明確にそうではないと指示しない限り、単数形「1つの(a)」、「1つの(an)」および「その(the)」は複数形を同様に含むように意図されている。用語「を含む(comprise)」または「を含む(comprising)」あるいはその両方は、本明細書で使用される場合、述べられた特徴、整数、ステップ、動作、要素、またはコンポーネントあるいはその組合せの存在を特定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネントまたはそのグループあるいはその組合せの、存在または追加を排除しないことが、さらに理解されよう。
以下の特許請求の範囲における、すべての機能付き手段(ミーンズ・プラス・ファンクション)または機能付き工程(ステップ・プラス・ファンクション)の要素の対応する構造、材料、作用、および等価物は、もしあれば、具体的に特許請求されるような他の特許請求される要素と組み合せて機能を実施するために、あらゆる構造、材料、または作用を含むことを意図されている。例示および説明を目的として、1つまたは複数の実施形態の説明を提示してきたが、網羅的であること、または開示された形態に限定することは意図されていない。多くの修正形態および変形形態が当業者にとって明らかとなろう。実施形態は、様々な態様および実践的な用途を最良に説明するために選ばれ説明されたものであり、企図される特定の使用に適した様々な修正形態を伴う様々な実施形態を、当業者の他の者に理解させることができる。

Claims (20)

  1. コンピューティング環境内で処理を促進するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、
    処理回路によって読取り可能であり、方法を実施するための命令を記憶するコンピュータ可読記憶媒体を備え、前記方法は、
    第1の動作モードにおいて、プロセッサによって、暗号化されたコードを取得することであって、前記プロセッサが前記第1の動作モードにあることに基づいて、平文の命令を実行する、前記取得することと、
    前記プロセッサを、前記第1の動作モードから第2の動作モードに切り替えることであって、前記第2の動作モードが前記第1の動作モードとは異なる、前記切り替えることと、
    前記プロセッサが前記第2の動作モードにあることに基づいて、前記暗号化されたコードを復号して、復号されたコードを取得することと、
    前記プロセッサが前記第2の動作モードにあることに基づいて、前記復号されたコードを実行することと
    を含む、コンピュータ・プログラム製品。
  2. 前記プロセッサを前記第1の動作モードから前記第2の動作モードへ前記切り替えることが、前記プロセッサから、前記プロセッサの外部コンポーネントへの1つまたは複数の通信接続を非アクティブ化して、前記プロセッサを前記第2の動作モードにすることを含む、請求項1に記載のコンピュータ・プログラム製品。
  3. 前記復号されたコードを前記実行することが、
    前記復号されたコードを使用して1つまたは複数の動作を実施して結果を与えることと、
    前記結果を暗号化して暗号化された結果を与えることと、
    前記プロセッサが前記第2の動作モードから前記第1の動作モードに切り替わることに基づいて、前記暗号化された結果をクライアントに与えることと
    を含む、請求項1に記載のコンピュータ・プログラム製品。
  4. 前記方法が、前記第2の動作モードから前記第1の動作モードに切り替わり、前記プロセッサから、前記プロセッサの外部コンポーネントへの通信を可能にすることをさらに含み、前記切り替わることが前記プロセッサの1つまたは複数のキャッシュから暗号化されていないデータを削除することを含む、請求項3に記載のコンピュータ・プログラム製品。
  5. 前記方法が、入力データを復号して復号されたデータを与えることをさらに含み、前記1つまたは複数の動作が前記復号されたデータに対して実施されて前記結果を与える、請求項3に記載のコンピュータ・プログラム製品。
  6. 前記入力データを前記復号することが、前記入力データを復号するために少なくとも1つのデータ・キーを使用することを含み、前記少なくとも1つのデータ・キーが前記復号されたコードによって与えられる、請求項5に記載のコンピュータ・プログラム製品。
  7. 前記暗号化されたコードを前記復号することが、前記プロセッサに一意な秘密鍵を使用して前記暗号化されたコードを復号することを含む、請求項1に記載のコンピュータ・プログラム製品。
  8. 前記暗号化されたコードが前記プロセッサの一意な識別子に関連付けられる公開鍵を使用して暗号化される、請求項1に記載のコンピュータ・プログラム製品。
  9. 前記プロセッサがクラウド・サービス・プロバイダによって提供される、請求項1に記載のコンピュータ・プログラム製品。
  10. 前記方法が、
    前記プロセッサへの要求に基づいて、前記クラウド・サービス・プロバイダによって、前記プロセッサの一意な識別子および前記プロセッサの前記一意な識別子に関連付けられる公開鍵を提供することと、
    前記公開鍵を使用してコードを暗号化して、前記暗号化されたコードを与えることと、
    前記暗号化されたコードを前記プロセッサに送信することと
    をさらに含む、請求項9に記載のコンピュータ・プログラム製品。
  11. コンピューティング環境内で処理を促進するためのコンピュータ・システムであって、前記コンピュータ・システムは、
    メモリと、
    前記メモリと通信するプロセッサと
    を備え、前記コンピュータ・システムは方法を実施するように構成され、前記方法は、
    第1の動作モードにおいて、前記プロセッサによって、暗号化されたコードを取得することであって、前記プロセッサが前記第1の動作モードにあることに基づいて、平文の命令を実行する、前記取得することと、
    前記プロセッサを、前記第1の動作モードから第2の動作モードに切り替えることであって、前記第2の動作モードが前記第1の動作モードとは異なる、前記切り替えることと、
    前記プロセッサが前記第2の動作モードにあることに基づいて、前記暗号化されたコードを復号して、復号されたコードを取得することと、
    前記プロセッサが前記第2の動作モードにあることに基づいて、前記復号されたコードを実行することと
    を含む、コンピュータ・システム。
  12. 前記プロセッサを前記第1の動作モードから前記第2の動作モードへ前記切り替えることが、前記プロセッサから、前記プロセッサの外部コンポーネントへの1つまたは複数の通信接続を非アクティブ化して、前記プロセッサを前記第2の動作モードにすることを含む、請求項11に記載のコンピュータ・システム。
  13. 前記復号されたコードを前記実行することが、
    前記復号されたコードを使用して1つまたは複数の動作を実施して結果を与えることと、
    前記結果を暗号化して暗号化された結果を与えることと、
    前記プロセッサが前記第2の動作モードから前記第1の動作モードに切り替わることに基づいて、前記暗号化された結果をクライアントに与えることと
    を含む、請求項11に記載のコンピュータ・システム。
  14. 前記暗号化されたコードが前記プロセッサの一意な識別子に関連付けられる公開鍵を使用して暗号化される、請求項11に記載のコンピュータ・システム。
  15. 前記プロセッサがクラウド・サービス・プロバイダによって提供される、請求項11に記載のコンピュータ・システム。
  16. コンピューティング環境内で処理を促進するコンピュータ実装方法であって、前記コンピュータ実装方法は、
    第1の動作モードにおいて、プロセッサによって、暗号化されたコードを取得することであって、前記プロセッサが前記第1の動作モードにあることに基づいて、平文の命令を実行する、前記取得することと、
    前記プロセッサを、前記第1の動作モードから第2の動作モードに切り替えることであって、前記第2の動作モードが前記第1の動作モードとは異なる、前記切り替えることと、
    前記プロセッサが前記第2の動作モードにあることに基づいて、前記暗号化されたコードを復号して、復号されたコードを取得することと、
    前記プロセッサが前記第2の動作モードにあることに基づいて、前記復号されたコードを実行することと
    を含む、コンピュータ実装方法。
  17. 前記プロセッサを前記第1の動作モードから前記第2の動作モードへ前記切り替えることが、前記プロセッサから、前記プロセッサの外部コンポーネントへの1つまたは複数の通信接続を非アクティブ化して、前記プロセッサを前記第2の動作モードにすることを含む、請求項16に記載のコンピュータ実装方法。
  18. 前記復号されたコードを前記実行することが、
    前記復号されたコードを使用して1つまたは複数の動作を実施して結果を与えることと、
    前記結果を暗号化して暗号化された結果を与えることと、
    前記プロセッサが前記第2の動作モードから前記第1の動作モードに切り替わることに基づいて、前記暗号化された結果をクライアントに与えることと
    を含む、請求項16に記載のコンピュータ実装方法。
  19. 前記暗号化されたコードが前記プロセッサの一意な識別子に関連付けられる公開鍵を使用して暗号化される、請求項16に記載のコンピュータ実装方法。
  20. 前記プロセッサがクラウド・サービス・プロバイダによって提供される、請求項16に記載のコンピュータ実装方法。
JP2020564454A 2018-06-27 2019-05-13 暗号化されたデータに対するセキュアな動作 Active JP7201300B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/019,624 US11120140B2 (en) 2018-06-27 2018-06-27 Secure operations on encrypted data
US16/019,624 2018-06-27
PCT/IB2019/053930 WO2020003018A1 (en) 2018-06-27 2019-05-13 Secure operations on encrypted data

Publications (2)

Publication Number Publication Date
JP2021530009A true JP2021530009A (ja) 2021-11-04
JP7201300B2 JP7201300B2 (ja) 2023-01-10

Family

ID=68986101

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020564454A Active JP7201300B2 (ja) 2018-06-27 2019-05-13 暗号化されたデータに対するセキュアな動作

Country Status (6)

Country Link
US (1) US11120140B2 (ja)
JP (1) JP7201300B2 (ja)
CN (1) CN112513855A (ja)
DE (1) DE112019001957T5 (ja)
GB (1) GB2590239B (ja)
WO (1) WO2020003018A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6671701B1 (ja) * 2019-07-19 2020-03-25 Eaglys株式会社 演算装置、演算方法、演算プログラム、および演算システム
US20230102111A1 (en) * 2021-09-30 2023-03-30 Lenovo Global Technology (United States) Inc. Securing customer sensitive information on private cloud platforms

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182774A (ja) * 2003-11-28 2005-07-07 Matsushita Electric Ind Co Ltd データ処理装置
US20060090084A1 (en) * 2004-10-22 2006-04-27 Mark Buer Secure processing environment
JP2014089652A (ja) * 2012-10-31 2014-05-15 Toshiba Corp 情報処理装置
US20150052616A1 (en) * 2013-08-14 2015-02-19 L-3 Communications Corporation Protected mode for securing computing devices
US20150058629A1 (en) * 2013-08-21 2015-02-26 Mark D. Yarvis Processing Data Privately in the Cloud
US20150379297A1 (en) * 2014-06-30 2015-12-31 Microsoft Corporation Securely storing content within public clouds
WO2017205155A1 (en) * 2016-05-24 2017-11-30 Microsoft Technology Licensing, Llc Using hardware based secure isolated region to prevent piracy and cheating on electronic devices

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2078020C (en) 1992-09-11 2000-12-12 Rodney G. Denno Combination pin pad and terminal
SE515327C2 (sv) * 1999-08-27 2001-07-16 Ericsson Telefon Ab L M Anordning för att utföra säkra transaktioner i en kommunikationsanordning
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US8166296B2 (en) * 2004-10-20 2012-04-24 Broadcom Corporation User authentication system
US7747809B2 (en) 2008-02-19 2010-06-29 International Business Machines Corporation Managing PCI express devices during recovery operations
US8788428B2 (en) 2010-06-28 2014-07-22 Dresser, Inc. Multimode retail system
US8925075B2 (en) 2011-11-07 2014-12-30 Parallels IP Holdings GmbH Method for protecting data used in cloud computing with homomorphic encryption
US9053348B2 (en) 2012-03-26 2015-06-09 Microsoft Technology Licensing, Llc Secure cloud computing platform
KR101373542B1 (ko) 2012-08-06 2014-03-12 (주)소만사 가상화 기반 논리적 망 분리 기법을 이용한 개인정보 보호 시스템
US9894040B2 (en) 2012-09-11 2018-02-13 Microsoft Technology Licensing, Llc Trust services for securing data in the cloud
US8938622B2 (en) 2012-09-21 2015-01-20 Sap Ag Encryption in the cloud with customer controlled keys
WO2014138626A1 (en) * 2013-03-08 2014-09-12 Robert Bosch Gmbh Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
US9246678B2 (en) 2013-03-14 2016-01-26 Intel Corporation Secure cloud storage and encryption management system
CN105393489A (zh) * 2013-04-26 2016-03-09 维萨国际服务协会 提供数字证书
US9413730B1 (en) 2014-06-04 2016-08-09 Skyhigh Networks, Inc. Encryption in the cloud using enterprise managed keys
US10541811B2 (en) * 2015-03-02 2020-01-21 Salesforce.Com, Inc. Systems and methods for securing data
US10223289B2 (en) * 2015-07-07 2019-03-05 Qualcomm Incorporated Secure handling of memory caches and cached software module identities for a method to isolate software modules by means of controlled encryption key management
US10303899B2 (en) * 2016-08-11 2019-05-28 Intel Corporation Secure public cloud with protected guest-verified host control

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182774A (ja) * 2003-11-28 2005-07-07 Matsushita Electric Ind Co Ltd データ処理装置
US20060090084A1 (en) * 2004-10-22 2006-04-27 Mark Buer Secure processing environment
JP2014089652A (ja) * 2012-10-31 2014-05-15 Toshiba Corp 情報処理装置
US20150052616A1 (en) * 2013-08-14 2015-02-19 L-3 Communications Corporation Protected mode for securing computing devices
US20150058629A1 (en) * 2013-08-21 2015-02-26 Mark D. Yarvis Processing Data Privately in the Cloud
US20150379297A1 (en) * 2014-06-30 2015-12-31 Microsoft Corporation Securely storing content within public clouds
WO2017205155A1 (en) * 2016-05-24 2017-11-30 Microsoft Technology Licensing, Llc Using hardware based secure isolated region to prevent piracy and cheating on electronic devices

Also Published As

Publication number Publication date
US20200004969A1 (en) 2020-01-02
CN112513855A (zh) 2021-03-16
JP7201300B2 (ja) 2023-01-10
GB2590239B (en) 2022-07-06
WO2020003018A1 (en) 2020-01-02
DE112019001957T5 (de) 2021-03-04
US11120140B2 (en) 2021-09-14
GB202100676D0 (en) 2021-03-03
GB2590239A (en) 2021-06-23

Similar Documents

Publication Publication Date Title
US20200076585A1 (en) Storage device key management for encrypted host data
JP7388803B2 (ja) セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけること
US10686765B2 (en) Data access levels
US11902424B2 (en) Secure re-encryption of homomorphically encrypted data
JP7308002B2 (ja) ハイブリッド・クラウドkmsソリューションにおけるhsmの自己破壊方法、システム、プログラム
US20200076780A1 (en) Secure network connections
US11856090B2 (en) Data protection optimization
JP2023551527A (ja) 準同型暗号化を使用したセキュアなコンピューティング・リソース配置
US9755832B2 (en) Password-authenticated public key encryption and decryption
JP2022523770A (ja) セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール
JP7201300B2 (ja) 暗号化されたデータに対するセキュアな動作
JP2023511834A (ja) セキュア・ゲストへのセキュリティ・モジュールのセキュア・オブジェクトのバインディング
CN115668860A (zh) 识别加密对象的创建者
US20220385464A1 (en) Durability enforcement of cryptographic keys in a key management system
US11418327B2 (en) Automatic provisioning of key material rotation information to services
WO2023005704A1 (en) Sensitive data encryption
US20230318826A1 (en) Key import with hybrid cryptography
US20230315921A1 (en) Extending encryption to pcie links

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210106

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20201115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210927

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221102

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221209

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20221209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221220

R150 Certificate of patent or registration of utility model

Ref document number: 7201300

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150