JP2023542936A - チャネル暗号化区別のためのメタデータ調整(metadata tweak) - Google Patents

チャネル暗号化区別のためのメタデータ調整(metadata tweak) Download PDF

Info

Publication number
JP2023542936A
JP2023542936A JP2023518231A JP2023518231A JP2023542936A JP 2023542936 A JP2023542936 A JP 2023542936A JP 2023518231 A JP2023518231 A JP 2023518231A JP 2023518231 A JP2023518231 A JP 2023518231A JP 2023542936 A JP2023542936 A JP 2023542936A
Authority
JP
Japan
Prior art keywords
memory
data
address
specific
memory device
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.)
Pending
Application number
JP2023518231A
Other languages
English (en)
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2023542936A publication Critical patent/JP2023542936A/ja
Pending legal-status Critical Current

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

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

Abstract

チャネル暗号化区別のためのメタデータ調整(トウィーク)を実装するためのシステム、装置及び方法が開示される。メモリコントローラは、所定のメモリチャネルスロットに結合されたメモリデバイスからデバイス固有の識別子(ID)を取り出す。メモリコントローラは、デバイス固有のIDを使用して、デバイスに記憶されたデータを暗号化するために使用されるトウィーク値を生成する。1つのシナリオでは、デバイス固有のIDは、トウィークプロセスのアドレスビットに埋め込まれる。このようにして、データをチャネルと無関係に復号化することができるので、メモリデバイスを異なるメモリチャネルに移行させることができる。これは、トウィーク動作に使用されるデバイス固有のIDが、メモリデバイスにローカルに記憶されたメタデータから取り出されるので可能である。一実施形態では、メモリデバイスは、永続的デュアルインラインメモリモジュール(DIMM)である。いくつかの実施形態では、メモリコントローラとメモリデバイスとの間のリンクは、コンピュートエクスプレスリンク(CXL)準拠リンクである。【選択図】図2

Description

(関連技術の説明)
暗号化メモリの使用は、データ所有者が実行のために使用されるハードウェアを物理的に制御しない状況において、セキュリティを強化するための方法として提案されている。実施形態に応じて、様々な暗号化アルゴリズムのうち何れかを使用してデータを暗号化することができる。一実施形態では、高度暗号化規格(advanced encryption standard、AES)Xor-Encrypt-Xor(XEX)Tweakable Block Cipher with Ciphertext Stealing(XTS)(AES-XTS)アルゴリズムを使用することができる。別の実施形態では、AES暗号ブロック連鎖(Cipher Block Chaining、CBC)(AES-CBC)アルゴリズムを使用することができる。他の実施形態では、他の暗号化アルゴリズムを使用することができる。しかしながら、暗号化メモリに対する従来のアプローチは、メモリアクセスの予測不可能性、及び、典型的なプロセッサ-メモリアーキテクチャの制約を考慮して、キャッシュラインを個々に及び別々に暗号化する必要があるため、初歩的な攻撃技術に対して脆弱である。
本明細書に記載の方法及びメカニズムの利点は、添付の図面と併せて以下の説明を参照することによってよりよく理解され得る。
コンピューティングシステムの一実施形態のブロック図である。 データを暗号化するためのシステムの一実施形態のブロック図である。 複数のメモリチャネルの一実施形態のブロック図である。 コンピューティングシステムの一実施形態のブロック図である。 メモリデバイス上のデータを暗号化するためにデバイス固有IDを使用するための方法の一実施形態を示す一般化されたフロー図である。 新たに取り付けられたメモリデバイス上のデータを復号化するためにデバイス固有IDを使用するための方法の一実施形態を示す一般化されたフロー図である。 ブートアップ時に暗号化調整(トウィーク)値を生成するための方法の一実施形態を示す一般化されたフロー図である。 暗号化されたデータを記憶するメモリデバイスを移行させるための方法の一実施形態を示す一般化されたフロー図である。
以下の説明では、本明細書に提示される方法及びメカニズムの十分な理解を提供するために、多数の具体的な詳細が記載されている。しかしながら、当業者は、これらの具体的な詳細なしに様々な実施形態が実施され得ることを認識すべきである。いくつかの例では、本明細書に記載のアプローチを不明瞭にすることを避けるために、周知の構造、構成要素、信号、コンピュータプログラム命令及び手法が詳細に示されていない。説明を簡単且つ明確にするために、図に示される要素は必ずしも縮尺どおりに描かれているわけではないことが理解されよう。例えば、いくつかの要素の寸法は、他の要素に対して誇張されている場合がある。
チャネル暗号化区別のためのメタデータ調整(トウィーク(tweak))を実施するための様々なシステム、装置及び方法が本明細書で開示される。一実施形態では、コンピューティングシステムは、ポータブルな永続的メモリデバイスのための複数のメモリチャネルスロットを含む。メモリデバイスがメモリチャネルスロットに取り付けられると、システムハードウェアは、デバイス固有の識別子(identifier、ID)をデバイスに問い合わせる。デバイス固有のIDは、シリアル番号、製造業者番号、ロット番号等であり得る。次いで、ハードウェアは、メモリチャネルに関連付けられたレジスタにデバイス固有のIDを記憶する。データがメモリデバイスに書き込まれる場合、データは、デバイス固有のIDに基づいて生成された調整値(トウィーク値)(tweak value)を使用して暗号化される。例えば、一実施形態では、AES-XTSアルゴリズムが使用される。この実施形態では、暗号文は、以下の式に基づいて生成される。暗号文 = トウィーク XOR AES(鍵、平文 XOR トウィーク)。この式において、「トウィーク」値は、デバイス固有のID及びデータのアドレスに基づいて生成される。一実施形態では、「トウィーク」値は、デバイス固有のIDとアドレスとの連結である。また、「AES」は、AES暗号化規格を指す。データを復号化するために、以下の式が適用される。平文 = トウィーク XOR AES(鍵、暗号文 XOR トウィーク)。
上記の例に基づいて、メモリデバイスが新しいコンピューティングシステムに移行される場合、メモリデバイスは、以前のコンピューティングシステムにおいてメモリデバイスが取り付けられていたチャネルとは異なるチャネル上に配置することができる。これは、データがチャネル番号に基づいてではなく、デバイス固有のIDに基づいて暗号化されるため可能になる。例えば、一実施形態では、トウィーク値は、データのアドレスとメモリデバイスのデバイス固有のIDとの組み合わせを暗号化することによって生成される。次いで、暗号化鍵及びトウィーク値を用いてデータを暗号化する。一実施形態では、メモリデバイスは、永続的デュアルインラインメモリモジュール(dual in-line memory module、DIMM)である。いくつかの実施形態では、メモリコントローラとメモリデバイスとの間のリンクは、コンピュートエクスプレスリンク(compute express link、CXL)に準拠する。他の実施形態では、他のタイプのリンクを用いることができる。
図1を参照すると、コンピューティングシステム100の一実施形態のブロック図が示されている。一実施形態では、コンピューティングシステム100は、少なくともプロセッサ105A~105Nと、入力/出力(input/output、I/O)インターフェース120と、バス125と、メモリコントローラ130と、ネットワークインターフェース135と、メモリデバイス140と、を含む。他の実施形態では、コンピューティングシステム100は、他の構成要素を含み、及び/又は、コンピューティングシステム100は、別様に構成される。プロセッサ105A~105Nは、システム100に含まれる任意の数のプロセッサを表す。
一実施形態では、プロセッサ105A~105Nのうち1つ以上は、中央処理ユニット(central processing unit、CPU)等の汎用プロセッサである。一実施形態では、プロセッサ105Aは、システム100内の他のプロセッサうちの1つ以上と通信するため、及び/又は、それらのプロセッサのうち1つ以上の動作を制御するためのドライバ110(例えば、グラフィックスドライバ)を実行する。実施形態に応じて、ドライバ110は、ハードウェア、ソフトウェア及び/又はファームウェアの任意の好適な組み合わせを使用して実装することができることに留意されたい。一実施形態では、プロセッサ105A~105Nのうち1つ以上は、高度並列アーキテクチャを有するデータ並列プロセッサである。データ並列プロセッサは、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(digital signal processor、DSP)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)、特定用途向け集積回路(application specific integrated circuit、ASIC)等を含む。いくつかの実施形態では、プロセッサ105A~105Nは、複数のデータ並列プロセッサを含む。別の実施形態では、プロセッサ105A~105Nのうち1つ以上は、暗号化鍵を生成し、システム100のセキュリティ動作を調整するセキュアプロセッサ又はセキュアコプロセッサである。他の実施形態では、プロセッサ105A~105Nは、他のタイプのプロセッサを含む。
I/Oインターフェース120は、任意の数及びタイプのI/Oインターフェース(例えば、ペリフェラルコンポーネントインターコネクト(peripheral component interconnect、PCI)バス、PCI-Extended(PCI-X)、PCIエクスプレス(PCI Express、PCIe)バス、ギガビットイーサネット(登録商標)(gigabit Ethernet、GBE)バス、ユニバーサルシリアルバス(universal serial bus、USB))を表す。様々なタイプの周辺デバイス(図示省略)がI/Oインターフェース120に結合される。そのような周辺デバイスは、ディスプレイ、キーボード、マウス、プリンタ、スキャナ、ジョイスティック、他のタイプのゲームコントローラ、メディア記録デバイス、外部記憶デバイス、ネットワークインターフェースカード等を含む(が、これらに限定されない)。ネットワークインターフェース135は、ネットワークを介してネットワークメッセージを受信及び送信することができる。
メモリコントローラ130は、プロセッサ105A~105Nによってアクセス可能な任意の数及びタイプのメモリコントローラを表す。メモリコントローラ130は、プロセッサ105A~105Nから分離されているものとして示されているが、これは、単に1つの可能な実施形態を表すことを理解されたい。他の実施形態では、メモリコントローラ130は、プロセッサ105A~105Nのうち1つ以上に埋め込むことができ、又は、メモリコントローラ130は、プロセッサ105A~105Nのうち1つ以上と同じ半導体ダイ上に配置することができる。メモリコントローラ130は、任意の数及びタイプのメモリデバイス140に結合される。
一実施形態では、各メモリコントローラ130は、対応するメモリデバイス140に記憶されたデータを暗号化するための制御ユニット145を含む。制御ユニット145は、暗号化エンジン145とも呼ばれ得ることに留意されたい。他の実施形態では、制御ユニット145は、メモリコントローラ130の外部に配置され得ることにも留意されたい。言い換えれば、制御ユニット145は、システム100内の任意の好適な場所に配置され得る。一実施形態では、制御ユニット145は、インターフェース147を介して、対応するメモリデバイス140からデバイス固有識別子(ID)150を取り出す。インターフェース147は、実施形態ごとに異なり得る任意のタイプのインターフェースを表す。一実施形態では、インターフェース147は、PCIeトランスポートを介してコンピュートエクスプレスリンク(CXL)プロトコルを使用する。他の実施形態では、インターフェース147は、他のタイプのプロトコルを使用することができ、及び/又は、他のタイプのインターフェースとすることができる。
メモリデバイス140からデバイス固有ID150を取り出した後、制御ユニット145は、デバイス固有IDと、暗号化又は復号化されているデータのアドレスと、を暗号化して、トウィーク値を生成する。メモリデバイス140に記憶されたデータは、暗号化鍵及びトウィーク値を使用して暗号化される。一実施形態では、メモリデバイス140に記憶されたデータは、AES-XTS規格に従って、暗号化鍵及びトウィーク値を使用して暗号化される。これらのステップに関する更なる詳細は、本開示の残りの部分全体を通して提供される。
メモリデバイス140は、任意の数及びタイプのメモリデバイスを表す。例えば、メモリデバイス140内のメモリのタイプは、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)、スタティックランダムアクセスメモリ(Static Random Access Memory、SRAM)、NANDフラッシュメモリ、NORフラッシュメモリ、強誘電体ランダムアクセスメモリ(Ferroelectric Random Access Memory、FeRAM)等を含む。一実施形態では、メモリデバイス140のうち1つ以上は、不揮発性デュアルインラインメモリモジュール(non-volatile dual in-line memory module、NVDIMM)である。不揮発性メモリは、電力が除去されても、その内容を保持するメモリである。
様々な実施形態では、コンピューティングシステム100は、コンピュータ、ラップトップ、モバイルデバイス、ゲームコンソール、サーバ、ストリーミングデバイス、ウェアラブルデバイス、又は、様々な他のタイプのコンピューティングシステム若しくはデバイスのうち何れかである。コンピューティングシステム100の構成要素の数は、実施形態ごとに変化することに留意されたい。例えば、他の実施形態では、図1に示される数よりも多い又は少ない各構成要素が存在する。また、他の実施形態では、コンピューティングシステム100は、図1に示されていない他の構成要素を含むことにも留意されたい。加えて、他の実施形態では、コンピューティングシステム100は、図1に示される以外の方法で構築される。
図2を参照すると、データを暗号化するためのシステム200の一実施形態のブロック図が示されている。システム200は、第1の暗号化鍵204及び第2の暗号化鍵214を含み、これらは生成され、任意の好適な場所に記憶され得る。一実施形態では、メタデータは、メモリデバイスから取り出され、メタデータは、メモリデバイスに固有である。メタデータは、シリアル番号、製造業者番号、ロット番号等又はそれらの任意の組み合わせの一部又は全部であり得る。メタデータは、本明細書では、「デバイス固有のID」、「デバイス固有ID」又は「デバイス固有値」とも呼ばれ得る。一実施形態では、デバイス固有のIDは、ハッシュアルゴリズム等のアルゴリズムを使用して、取り出されたメタデータ(例えば、シリアル番号、製造業者番号、ロット番号)から生成される。場合によっては、デバイス固有のIDは、結果として得られるアルゴリズムの一部である。例えば、アルゴリズムが256ビットの結果を生成する場合、デバイス固有のIDは、この256ビットの結果のうち64ビットであり得る。一実施形態では、各メモリチャネルは、メタデータを記憶するためのメタデータレジスタを有する。ビット数でのレジスタのサイズは、実施形態ごとに異なり得る。場合によっては、メモリチャネルに接続された複数のデバイスが存在する場合、メモリチャネルごとに複数のメタデータレジスタが存在し得る。
データ212は、メモリデバイス、キャッシュデバイス等に記憶されたデータのブロックを表す。一実施形態では、データ212は、キャッシュに記憶されたキャッシュラインデータを表す。様々な実施形態では、アクセスされているデータ212のアドレスは、メモリデバイスから取り出されたメタデータと組み合わされて、値210を生成する。一実施形態では、メタデータは、暗号化されているデータ212のアドレスと連結される。他の実施形態では、メタデータは、他の方法でデータアドレスと組み合わされて、値210を生成する。
次いで、データ212のデータブロックを暗号化する場合、データ値210は、暗号化鍵214によって暗号化されて、トウィーク値215を生成する。次に、トウィーク値215は、論理演算及び/又は数学演算206でデータと組み合わされる。一実施形態では、演算206は、XOR演算である。次いで、演算206の出力は、暗号化動作204において第1の暗号化鍵を用いて暗号化される。次に、暗号化されたデータは、動作208(例えば、XOR演算)において、トウィーク値215と組み合わされて、元の平文の暗号化バージョンである暗号文を生成する。データ212の各後続のデータブロックは、同様に暗号化され、トウィーク値215は、各後続のデータブロックについてガロア体(Galois Field、GF)乗算器216、218、220によって修正される。後で、暗号化されたデータがメモリから取り出される場合、上記の動作を逆にしてデータを復号化することができる。
図3を参照すると、複数のメモリチャネル325A~325Nの一実施形態のブロック図が示されている。一実施形態では、コンピューティングシステム300は、メモリデバイス330A~330Nに接続された複数のメモリチャネル325A~325Nを含む。一実施形態では、各メモリチャネル325A~325Nは、対応するメモリコントローラ310A~310Nに結合される。メモリチャネル325A~325Nは、任意の数のメモリチャネルを表すことに留意されたい。同様に、メモリコントローラ310A~310N及びメモリデバイス330A~330Nは、それぞれ任意の数のメモリコントローラ及びメモリデバイスを表す。
一実施形態では、各メモリコントローラ310A~310Nは、対応するメモリデバイス330A~330Nに記憶されたデータを暗号化するための暗号化エンジン315A~315Nを含む。また、各暗号化エンジン315A~315Nは、デバイスをターゲットとする読み取り要求に応じて、対応するメモリデバイス330A~330Nから取り出されたデータを復号化する。データを暗号化するために、暗号化エンジン315A~315Nは、対応するメモリデバイス330A~330Nからデバイス固有値(すなわち、デバイス固有のID)335A~335Nを取り出す。デバイス固有値は、より一般的に「メタデータ」と呼ばれ得ることに留意されたい。次いで、暗号化エンジン315A~315Nは、取り出されたデバイス固有値を対応するメタデータレジスタ320A~320Nに記憶する。暗号化エンジン315A~315Nは、デバイス固有値を使用して、メモリデバイスに記憶されているデータを暗号化するための暗号化アルゴリズムの一部として使用されることになるトウィーク値を生成する。
一実施形態では、デバイス固有値335A~335Nは、アクセスされているデータのアドレスと連結され、次いで、連結された値が暗号化されて、トウィーク値を生成する。他の実施形態では、デバイス固有値335A~335Nは、他の方法でデータのアドレスと組み合わされ、その組み合わせは暗号化されて、トウィーク値を生成する。次いで、トウィーク値を使用して、メモリデバイス330A~330Nに記憶されているデータを暗号化する。一実施形態では、データを暗号化するために以下の演算が使用される。暗号文 = トウィーク XOR AES(鍵、平文 XOR トウィーク)。上記の式において、「AES」は、高度暗号化規格(AES)互換動作を指す。また、上記の式において、「トウィーク」は、デバイス固有値335A~335Nとアドレスとの組み合わせを暗号化することによって生成されるトウィーク値を指す。他の実施形態では、他の好適なタイプの動作を使用して、デバイス固有値335A~335Nから生成されるトウィーク値を用いてデータを暗号化することができる。
図4を参照すると、コンピューティングシステム400の一実施形態のブロック図が示されている。コンピューティングシステム400は、コンピューティングシステム400が単一のメモリコントローラ410を有するのに対して、コンピューティングシステム300が複数のメモリコントローラ310A~310Nを有することを除いて、(図3の)コンピューティングシステム300と同様である。また、コンピューティングシステム400は、コンピューティングシステム300内のチャネル325A~325Nごとに個別の暗号化エンジン315A~315Nではなく、単一の暗号化エンジン415を有する。そうでない場合、データを暗号化するためのコンピューティングシステム400の機能は、同様の技術を使用して、インターフェース425A~425Nを介してメモリデバイス430A~430Nからデバイス固有値435A~435Nを取り出す。これらのデバイス固有値435A~435Nは、対応するメタデータレジスタ420A~420Nに記憶され、デバイス固有値435A~435N及びターゲットデータのアドレスに基づいてトウィーク値を生成するために使用される。次いで、各トウィーク値を使用して、対応するメモリデバイス430A~430Nに記憶されたデータを暗号化する。異なるタイプのシステム300及び400の2つの例が図3~図4に示されているが、任意の数の他のタイプのシステムが、本明細書で説明される暗号化技術を使用することができることを理解されたい。言い換えれば、図3~図4は、システムの非限定的な例として意図されている。また、いくつかのシステムは、構成要素のいくつかの部分をシステム300の構造と組み合わせ、構成要素のいくつかの部分をシステム400の構造と組み合わせることができる。構成要素の他の配置を有する他のタイプのシステムが可能であり、企図される。
図5を参照すると、メモリデバイス上のデータを暗号化するためにデバイス固有IDを使用するための方法500の一実施形態が示されている。説明のために、この実施形態におけるステップ及び図6~図8のステップが順番に示されている。しかしながら、記載された方法の様々な実施形態では、記載された要素のうち1つ以上が、示されたものとは異なる順序で同時に実行されてもよいし、完全に省略されてもよいことに留意されたい。所望される際、他の追加の要素も実行される。本明細書に記載の様々なシステム又は装置の何れも、方法500を実施するように構成されている。
制御ユニット(例えば、図1の制御ユニット145)が、第1及び第2の暗号化鍵を受信する(ブロック505)。一実施形態では、制御ユニットは、コンピューティングシステム(例えば、図1のコンピューティングシステム100)内のセキュアプロセッサから第1及び第2の暗号化鍵を受信する。別の実施形態では、制御ユニットは、それ自体で暗号化鍵を生成する。他の実施形態では、制御ユニットは、様々な他のタイプのデバイスの何れかから暗号化鍵を受信する。また、制御ユニットは、インターフェースを介して、第1のメモリデバイスから第1のデバイス固有IDを取り出す(ブロック510)。一実施形態では、インターフェースは、メモリチャネルスロットの複数の物理インターフェース接続を含む。
後の時点で、制御ユニットは、第1のメモリデバイス内の第1のアドレスに記憶される第1のデータを受信する(ブロック515)。一実施形態では、制御ユニットは、データファブリックを介して、プロセッサコアから第1のデータを受信する。他の実施形態では、制御ユニットは、様々な他のタイプの構成要素の何れかから第1のデータを受信する。第1のデータは、本明細書では「第1の平文」、「第1の平文データ」又は「第1の復号化されたデータ」とも呼ばれ得ることに留意されたい。次に、制御ユニットは、第2の暗号化鍵を用いて第1のデバイス固有ID及び第1のアドレスを暗号化することによって、第1のトウィーク値を生成する(ブロック520)。様々な実施形態では、制御ユニットは、第1のデバイス固有IDと第1のアドレスとの組み合わせから中間値を生成する。次いで、制御ユニットは、第2の暗号化鍵を用いて中間値を暗号化して、第1のトウィーク値を生成する。例えば、一実施形態では、制御ユニットは、第1のデバイス固有IDを第1のアドレスに付加して、中間値を生成する。別の実施形態では、中間値は、第1のデバイス固有IDと第1のアドレスとのハッシュである。他の実施形態では、中間値を生成するために第1のデバイス固有IDと第1のアドレスとを組み合わせる他の方法を用いることができ、中間値は、暗号化されて、第1のトウィーク値を生成する。
次いで、制御ユニットは、第1の暗号化鍵及び第1のトウィーク値を用いて第1のデータを暗号化して、第1の暗号化されたデータを生成する(ブロック525)。様々な実施形態では、制御ユニットは、第1の暗号化鍵、第2の暗号化鍵及び第1のトウィーク値が関与する複数の演算を使用して、第1の暗号化されたデータを生成する。次いで、制御ユニットは、第1の暗号化されたデータを第1のアドレスに記憶する(ブロック530)。ブロック530の後、方法500は終了する。
図6を参照すると、新たに取り付けられたメモリデバイス上のデータを復号化するためにデバイス固有IDを使用するための方法600の一実施形態が示されている。方法600は、方法500の説明の続きであることが意図されていることに留意されたい。言い換えれば、方法600は、第1のメモリデバイスがメモリチャネルスロットから取り外され、第2のメモリデバイスがメモリチャネルスロットに取り付けられた後の時点で、同じ制御ユニットによって実行することができる。
方法600の始めに、制御ユニットは、インターフェースを介して、第1のメモリデバイスとは異なる第2のメモリデバイスから第2のデバイス固有IDを取り出す(ブロック605)。次いで、後の時点で、制御ユニットは、第2のメモリデバイスから第2のアドレスにおける第2のデータを取り出す要求を受信する(ブロック610)。次に、制御ユニットは、第2の暗号化鍵を用いて第2のデバイス固有ID及び第2のアドレスを暗号化することによって、第2のトウィーク値を生成する(ブロック615)。一実施形態では、制御ユニットは、(図5の)第1のトウィーク値を生成するのと同じ技術を使用して、第2のトウィーク値を生成する。少なくとも1つの実施形態では、第2の暗号化鍵は、トウィーク値を生成する目的で使用されることが意図されていることに留意されたい。この考察のために、第2の暗号化鍵は、第2のメモリデバイスに記憶されたデータを暗号化するためのトウィーク値を生成するために以前に使用されたと仮定する。また、方法500において説明したように、第2の暗号化鍵は、第1のデバイス固有ID及び第1のアドレスを暗号化することによって、第1のメモリデバイスのための第1のトウィーク値を生成するために使用される。一実施形態では、制御ユニットに接続された他のメモリデバイスに対して、第2の暗号化鍵は、トウィーク値を生成する目的で使用されることになる。
ブロック615の後、制御ユニットは、第1の暗号化鍵及び第2のトウィーク値を用いて、第2のアドレスから取り出された第2の暗号化されたデータを復号化して、第2の復号化されたデータを生成する(ブロック620)。この説明のために、第1の暗号化鍵は、第2のメモリデバイスに記憶されたデータを暗号化するために以前に使用されたものと仮定する。少なくとも1つの実施形態では、第1の暗号化鍵は、データを暗号化及び復号化する目的で使用されることが意図されていることに留意されたい。例えば、方法500において、第1の暗号化鍵は、第1のメモリデバイスに記憶されたデータを暗号化するために使用される。一実施形態では、制御ユニットに接続された他のメモリデバイスに対して、制御ユニットは、これらのメモリデバイスに記憶されたデータを暗号化及び復号化するために第1の暗号化鍵を使用することになる。
ブロック620の後、制御ユニットは、第2の復号化されたデータを要求元(例えば、プロセッサコア)に送信する(ブロック625)。第2の復号化されたデータは、要求元によって要求された第2のデータを表すことが意図されている。第2の復号化されたデータは、本明細書では「第2の平文」又は「第2の平文データ」とも呼ばれ得ることに留意されたい。ブロック625の後、方法600は終了する。
図7を参照すると、ブートアップ時に暗号化トウィーク値を生成するための方法700の一実施形態が示されている。ブートアップ時に、プロセッサ(例えば、図1のプロセッサ105A)は、所定のメモリチャネル上の所定のメモリデバイスからデバイス固有IDを取り出す(ブロック705)。プロセッサは、所定のメモリチャネルに対応するプログラム可能メタデータレジスタにデバイス固有IDを記憶する(ブロック710)。動作中に所定のメモリデバイスにアクセスする場合、プロセッサは、アクセスされているデータのアドレスをデバイス固有IDと組み合わせて、トウィーク値を生成する。プロセッサは、トウィーク値を使用して、暗号化の前後に、可逆的にデータを変更する。プロセッサに接続された他のメモリデバイスが存在する場合(条件ブロック715、「はい」)、方法700はブロック705に戻る。そうではなく、プロセッサに接続された全てのメモリデバイスが発見され、初期化された場合(条件ブロック715、「いいえ」)、方法700は終了する。
図8を参照すると、暗号化されたデータを記憶するメモリデバイスを移行させるための方法800の一実施形態が示されている。メモリコントローラは、デバイス固有のIDに基づいて生成されたトウィーク値を用いて、第1のデータを暗号化し、暗号化された第1のデータを第1のコンピューティングシステム内のメモリデバイスに記憶し、第1のデータは、第1のコンピューティングシステム内の第1のシステムアドレスを有する(ブロック805)。デバイス固有のIDは、メモリデバイスのシリアル番号、メモリデバイスの製造業者番号、メモリデバイスのロット番号等であり得る。後の時点で、メモリデバイスは、第1のコンピューティングシステムから第2のコンピューティングシステムに移行される(ブロック810)。言い換えれば、メモリデバイスは、第1のコンピューティングシステムから取り外され、次いで、第2のコンピューティングシステムに取り付けられる。一実施形態では、第1及び第2のコンピューティングシステムはサーバである。他の実施形態では、第1及び第2のコンピューティングシステムは他のタイプのコンピューティングシステム又はデバイスである。次に、第2のシステム内のメモリコントローラは、デバイス固有のIDから生成されたトウィーク値に基づいて、第2のコンピューティングシステム内のメモリデバイス上の第1のデータにアクセスし、それを復号化し、第1のデータは、第2のコンピューティングシステム内の第2のシステムアドレスを有する(ブロック815)。
第1のデータは、システムアドレスが第1のコンピューティングシステムと比較して第2のコンピューティングシステム上の第1のデータに対して変更されている場合であっても、第2のコンピューティングシステム上で復号化され得ることに留意されたい。第1のデータに関連付けられたシステムアドレスは、第1のコンピューティングシステムから第2のコンピューティングシステムに変更されるが、メモリデバイスに記憶された第1のデータのメモリチャネルオフセットアドレスは、復号化を機能させるために同じである。これは、先行技術に勝る改善であり、先行技術においては、システムアドレスがコンピューティングシステム間で変更される場合、第1のデータを復号化することができなかった。この改善は、第1のデータが、システムアドレスではなく、正規化されたメモリチャネルアドレスから生成された鍵を用いて暗号化されるので可能である。ブロック815の後、方法800は終了する。「メモリチャネルオフセットアドレス」は、本明細書では「正規化されたアドレス」とも呼ばれ得ることに留意されたい。本明細書で使用される場合、「正規化されたアドレス」という用語は、メモリデバイスのアドレス空間にローカライズされたアドレスとして定義される。
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令を使用して、本明細書に記載の方法及び/又はメカニズムを実装する。例えば、汎用又は専用プロセッサによって実行可能なプログラム命令が企図される。様々な実施形態では、そのようなプログラム命令は、高レベルプログラミング言語によって表される。他の実施形態では、プログラム命令は、高レベルプログラミング言語からバイナリ、中間又は他の形式にコンパイルされる。代替的に、ハードウェアの挙動又は設計を説明するプログラム命令が書かれる。そのようなプログラム命令は、C等の高レベルプログラミング言語によって表される。代替的に、Verilog等のハードウェア設計言語(hardware design language、HDL)が使用される。様々な実施形態では、プログラム命令は、様々な非一時的なコンピュータ可読記憶媒体の何れかに記憶される。記憶媒体は、プログラム実行のためにプログラム命令をコンピューティングシステムに提供するために、使用中にコンピューティングシステムによってアクセス可能である。一般的に言えば、そのようなコンピューティングシステムは、少なくとも1つ以上のメモリと、プログラム命令を実行するように構成された1つ以上のプロセッサと、を含む。
上記の実施形態は、実施形態の非限定的な例にすぎないことを強調しておきたい。上記の開示が十分に理解されると、多数の変形及び修正が当業者に明らかになるであろう。以下の特許請求の範囲は、全てのそのような変形及び修正を包含すると解釈されることが意図されている。

Claims (20)

  1. 装置であって、
    インターフェースと、
    制御ユニットと、を備え、
    前記制御ユニットは、
    第1のメモリデバイスから取り出された第1のデバイス固有IDと、第1のアドレスと、に基づいて第1の値を生成することと、
    第1の暗号化鍵及び前記第1の値を用いて第1のデータを暗号化して、第1の暗号化されたデータを生成することと、
    前記インターフェースを介して、前記第1の暗号化されたデータを前記第1のメモリデバイスに記憶することと、
    を行うように構成されている、
    装置。
  2. 前記制御ユニットは、第2の暗号化鍵を用いて、前記第1のデバイス固有IDと前記第1のアドレスとの組み合わせを暗号化して前記第1の値を生成するように構成されており、
    前記第1のアドレスは、メモリチャネルオフセットアドレスである、
    請求項1の装置。
  3. 前記第1のデバイス固有IDは、前記第1のアドレスに付加され、前記第1の値を生成するために前記第2の暗号化鍵を用いて暗号化され、前記第1のデバイス固有IDは、前記第1のメモリデバイスから取り出された複数のメタデータ値から生成される、
    請求項2の装置。
  4. 前記制御ユニットは、
    第2のメモリデバイスから、第2のアドレスにおける第2のデータを取り出す要求を受信することと、
    前記第2のアドレスと、前記インターフェースを介して前記第2のメモリデバイスから取り出された第2のデバイス固有IDと、に基づいて第2の値を生成することであって、前記第2のデバイス固有IDは、前記第1のデバイス固有IDと異なる、ことと、
    前記第1の暗号化鍵及び前記第2の値を用いて、前記第2のアドレスから取り出された第2の暗号化されたデータを復号化して、復号化されたデータを生成することと、
    前記復号化されたデータを要求元に送信することであって、前記復号化されたデータは、前記第2のデータを表す、ことと、
    を行うように構成されている、
    請求項1の装置。
  5. 前記インターフェースは、第1のメモリチャネルであり、
    前記第2のメモリデバイスは、前記第1のメモリデバイスが第1のメモリチャネルスロットから取り外された後に、前記第1のメモリチャネルに対応する前記第1のメモリチャネルスロットに取り付けられ、
    前記第2のメモリデバイスは、前記第1のメモリチャネルスロットに取り付けられる前に、第2のメモリチャネルスロットに取り付けられており、
    前記第2のメモリデバイスは、以前に書き込まれたデータを記憶する、
    請求項4の装置。
  6. 前記制御ユニットは、
    前記第1のメモリチャネルに対応する第1のメタデータレジスタに前記第1のデバイス固有IDを記憶することと、
    前記第2のメモリデバイスが前記第1のメモリスロットに取り付けられた後に、前記第1のメタデータレジスタにおいて、前記第1のデバイス固有IDを前記第2のデバイス固有IDで上書きすることと、
    を行うように構成されている、
    請求項5の装置。
  7. 前記制御ユニットは、
    前記第1の暗号化鍵を用いて、前記第1のデータと前記第1の値との間の第1のXOR演算の出力を暗号化して、中間の暗号化されたデータを生成することと、
    前記中間の暗号化されたデータと前記第1の値との間の第2のXOR演算を実行して、前記第1の暗号化されたデータを生成することと、
    を行うように構成されている、
    請求項1の装置。
  8. 方法であって、
    制御ユニットが、第1のメモリデバイス内の第1のアドレスに記憶される第1のデータを受信することと、
    第1のデバイス固有ID及び前記第1のアドレスに基づいて第1の値を生成することと、
    第1の暗号化鍵及び前記第1の値を用いて前記第1のデータを暗号化して、第1の暗号化されたデータを生成することと、
    前記第1の暗号化されたデータを前記第1のメモリデバイス内の前記第1のアドレスに記憶することと、を含む、
    方法。
  9. 第2の暗号化鍵を用いて、前記第1のデバイス固有IDと前記第1のアドレスとの組み合わせを暗号化して前記第1の値を生成することを含み、
    前記第1のアドレスは、メモリチャネルオフセットアドレスである、
    請求項8の方法。
  10. 前記第1のデバイス固有IDは、前記第1のアドレスに付加され、前記第1の値を生成するために前記第2の暗号化鍵を用いて暗号化される、
    請求項9の方法。
  11. インターフェースを介して、前記第1のメモリデバイスとは異なる第2のメモリデバイスから第2のデバイス固有識別子(ID)を取り出すことと、
    前記第2のメモリデバイスから、第2のアドレスにおける第2のデータを取り出す要求を受信することと、
    前記第2のアドレス及び前記第2のデバイス固有IDに基づいて第2の値を生成することと、
    前記第1の暗号化鍵及び前記第2の値を用いて、前記第2のアドレスから取り出された第2の暗号化されたデータを復号化して、復号化されたデータを生成することと、
    前記復号化されたデータを要求元に送信することであって、前記復号化されたデータは、前記第2のデータを表す、ことと、を含む、
    請求項8の方法。
  12. 前記インターフェースは、第1のメモリチャネルであり、
    前記第2のメモリデバイスは、前記第1のメモリデバイスが第1のメモリチャネルスロットから取り外された後に、前記第1のメモリチャネルに対応する前記第1のメモリチャネルスロットに取り付けられる、
    請求項11の方法。
  13. 前記第1のメモリデバイスが前記第1のメモリチャネルスロットから取り外された後に、前記第1のメモリデバイスが第2のメモリチャネルスロットに取り付けられたことを検出することと、
    前記第2のメモリチャネルスロットにおいて、前記第1のメモリデバイスから前記第1のアドレスにおける前記第1のデータを取り出す要求を受信することと、
    前記第2のメモリチャネルスロットにおいて、前記第1のメモリデバイスから前記第1のデバイス固有IDを取り出すことと、
    前記第1のデバイス固有ID及び前記第1のアドレスに基づいて前記第1の値を生成することと、
    前記第1の暗号化鍵及び前記第1の値を用いて、前記第1のアドレスから取り出された前記第1の暗号化されたデータを復号化して前記第1のデータを生成することと、
    前記第1のデータを前記要求元に送信することと、を含む、
    請求項12の方法。
  14. 前記第1の暗号化鍵を用いて、前記第1のデータと前記第1の値との間の第1のXOR演算の出力を暗号化して、中間の暗号化されたデータを生成することと、
    前記中間の暗号化されたデータと前記第1の値との間の第2のXOR演算を実行して、前記第1の暗号化されたデータを生成することと、を含む、
    請求項8の方法。
  15. システムであって、
    プロセッサと、
    メモリコントローラと、を備え、
    前記メモリコントローラは、
    第1のメモリデバイス内の第1のアドレスに前記プロセッサによって記憶される第1のデータを受信することと、
    第1のデバイス固有ID及び前記第1のアドレスに基づいて第1の値を生成することと、
    第1の暗号化鍵及び前記第1の値を用いて前記第1のデータを暗号化して、第1の暗号化されたデータを生成することと、
    前記第1の暗号化されたデータを前記第1のメモリデバイス内の前記第1のアドレスに記憶することと、
    を行うように構成されている、
    システム。
  16. 前記メモリコントローラは、第2の暗号化鍵を用いて、前記第1のデバイス固有IDと前記第1のアドレスとの組み合わせを暗号化して前記第1の値を生成するように構成されており、
    前記第1のアドレスは、メモリチャネルオフセットアドレスである、
    請求項15のシステム。
  17. 前記第1のデバイス固有IDは、前記第1のアドレスに付加され、前記第1の値を生成するために前記第2の暗号化鍵を用いて暗号化され、前記第1のデバイス固有IDは、前記第1のメモリデバイスから取り出された複数のメタデータ値から生成される、
    請求項16のシステム。
  18. 前記メモリコントローラは、
    前記第1のメモリデバイスとは異なる第2のメモリデバイスから第2のデバイス固有識別子(ID)を取り出すことと、
    前記第2のメモリデバイスから、第2のアドレスにおける第2のデータを取り出す要求を受信することと、
    前記第2のアドレス及び前記第2のデバイス固有IDに基づいて第2の値を生成することであって、前記第2のデバイス固有IDは、前記第1のデバイス固有IDと異なる、ことと、
    前記第1の暗号化鍵及び前記第2の値を用いて、前記第2のアドレスから取り出された第2の暗号化されたデータを復号化して、復号化されたデータを生成することと、
    前記復号化されたデータを要求元に送信することであって、前記復号化されたデータは、前記第2のデータを表す、ことと、
    を行うように構成されている、
    請求項15のシステム。
  19. 前記第2のメモリデバイスは、前記第1のメモリデバイスが第1のメモリチャネルスロットから取り外された後に、前記第1のメモリチャネルスロットに取り付けられ、
    前記第2のメモリデバイスは、前記第1のメモリチャネルスロットに取り付けられる前に、第2のメモリチャネルスロットに取り付けられており、
    前記第2のメモリデバイスは、以前に書き込まれたデータを記憶する、
    請求項18のシステム。
  20. 前記メモリコントローラは、
    前記第1のメモリチャネルに対応する第1のメタデータレジスタに前記第1のデバイス固有IDを記憶することと、
    前記第2のメモリデバイスが前記第1のメモリスロットに取り付けられた後に、前記第1のメタデータレジスタにおいて、前記第1のデバイス固有IDを前記第2のデバイス固有IDで上書きすることと、
    を行うように構成されている、
    請求項15のシステム。
JP2023518231A 2020-09-25 2021-09-23 チャネル暗号化区別のためのメタデータ調整(metadata tweak) Pending JP2023542936A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/032,984 US11816228B2 (en) 2020-09-25 2020-09-25 Metadata tweak for channel encryption differentiation
US17/032,984 2020-09-25
PCT/US2021/051831 WO2022066964A1 (en) 2020-09-25 2021-09-23 Metadata tweak for channel encryption differentiation

Publications (1)

Publication Number Publication Date
JP2023542936A true JP2023542936A (ja) 2023-10-12

Family

ID=78302932

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023518231A Pending JP2023542936A (ja) 2020-09-25 2021-09-23 チャネル暗号化区別のためのメタデータ調整(metadata tweak)

Country Status (6)

Country Link
US (1) US11816228B2 (ja)
EP (1) EP4217895A1 (ja)
JP (1) JP2023542936A (ja)
KR (1) KR20230074166A (ja)
CN (1) CN116324780A (ja)
WO (1) WO2022066964A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230138817A1 (en) * 2021-10-28 2023-05-04 Rambus Inc. Multi-processor device with external interface failover

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6432378A (en) 1987-07-29 1989-02-02 Nec Corp Bit inverting and transposing system
BE1003932A6 (fr) 1989-04-28 1992-07-22 Musyck Emile Systeme cryptographique par bloc de donnees binaires.
US5365588A (en) 1993-03-12 1994-11-15 Hughes Aircraft Company High speed encryption system and method
US6038317A (en) 1997-12-24 2000-03-14 Magliveras; Spyros S. Secret key cryptosystem and method utilizing factorizations of permutation groups of arbitrary order 2l
US6206282B1 (en) 1998-03-03 2001-03-27 Pyper Products Corporation RF embedded identification device
US6816968B1 (en) 1998-07-10 2004-11-09 Silverbrook Research Pty Ltd Consumable authentication protocol and system
JP3815950B2 (ja) * 1999-06-15 2006-08-30 松下電器産業株式会社 デジタルデータ書込装置、デジタルデータ記録装置、デジタルデータ利用装置
US6961426B2 (en) 2000-09-07 2005-11-01 Ivan Vesely Cascaded stream cipher
US7260726B1 (en) 2001-12-06 2007-08-21 Adaptec, Inc. Method and apparatus for a secure computing environment
EP1463255A1 (en) 2003-03-25 2004-09-29 Sony United Kingdom Limited Interleaver for mapping symbols on the carriers of an OFDM system
GB0313666D0 (en) 2003-06-13 2003-07-16 Hewlett Packard Development Co RSA cryptographic method and system
US7352070B2 (en) 2003-06-27 2008-04-01 Delphi Technologies, Inc. Polymer encapsulated electrical devices
KR100720726B1 (ko) 2003-10-09 2007-05-22 삼성전자주식회사 Rsa 알고리즘을 이용한 보안유지시스템 및 그 방법
JP2005130028A (ja) * 2003-10-21 2005-05-19 Yazaki Corp 暗号キー並びにこれを用いた暗号化装置及び復号化装置
US7827223B2 (en) 2004-04-22 2010-11-02 Fortress Gb Ltd. Accelerated throughput synchronized word stream cipher, message authenticator and zero-knowledge output random number generator
US7743306B2 (en) 2005-07-26 2010-06-22 Kyushu Institute Of Technology Test vector generating method and test vector generating program of semiconductor logic circuit device
EP2001154A1 (fr) 2007-06-05 2008-12-10 Nicolas Reffe Procédé et dispositif de chiffrement/déchiffrement d'une séquence de données d'entrée
US20080304664A1 (en) 2007-06-07 2008-12-11 Shanmugathasan Suthaharan System and a method for securing information
US8311222B2 (en) 2008-08-26 2012-11-13 GlobalFoundries, Inc. Hardware based multi-dimensional encryption
US20120311317A1 (en) * 2011-06-02 2012-12-06 David Elrod Access-controlled customer data offloading to blind public utility-managed device
US8930714B2 (en) 2011-07-19 2015-01-06 Elwha Llc Encrypted memory
US10192062B2 (en) * 2014-06-20 2019-01-29 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
CN106254070B (zh) 2016-09-18 2019-04-09 华南理工大学 一种在dnp系统中基于设备id和时间的加密方法
US10423541B1 (en) * 2016-12-22 2019-09-24 Amazon Technologies, Inc. Using encryption within a computing system
US10496552B2 (en) * 2017-04-12 2019-12-03 The Regents Of The University Of Michigan Trusted computing system with enhanced memory
US11580234B2 (en) * 2019-06-29 2023-02-14 Intel Corporation Implicit integrity for cryptographic computing

Also Published As

Publication number Publication date
EP4217895A1 (en) 2023-08-02
WO2022066964A1 (en) 2022-03-31
CN116324780A (zh) 2023-06-23
KR20230074166A (ko) 2023-05-26
US20220100870A1 (en) 2022-03-31
US11816228B2 (en) 2023-11-14

Similar Documents

Publication Publication Date Title
JP6998435B2 (ja) メモリ動作の暗号化
TWI715619B (zh) 用於硬體強制單向密碼學的處理器、方法及系統
US20190132118A1 (en) Technologies for low-latency cryptography for processor-accelerator communication
EP3355232B1 (en) Input/output data encryption
US8726037B2 (en) Encrypted memory access
JP6067757B2 (ja) ストレージ装置とホスト間でデータ伝送を保護するためのストレージ・コントローラ・バス・インターフェースの使用
JP2019505924A (ja) 周辺コンポーネント相互接続エクスプレス(PCIe)システムのためのインライン暗号エンジン(ICE)
JP2015070608A (ja) 永続的メモリへのデータ格納
US20100128874A1 (en) Encryption / decryption in parallelized data storage using media associated keys
US10387056B2 (en) Obfuscation-enhanced memory encryption
US11558175B2 (en) Cryptographic data communication apparatus
TW202008744A (zh) 動態密碼密鑰擴展
KR101126596B1 (ko) 단일 및 다중 aes 동작을 지원하기 위한 듀얼 모드 aes 장치 및 방법
JP2023542936A (ja) チャネル暗号化区別のためのメタデータ調整(metadata tweak)
US11909855B2 (en) Cryptographic data communication apparatus
US20230117518A1 (en) Permutation cipher encryption for processor-accelerator memory mapped input/output communication
WO2020093290A1 (zh) 一种存储控制器、文件处理方法、装置及系统
US20200076591A1 (en) Systems and Methods for Automated Generation and Update of Cipher Parameters
US11522678B2 (en) Block cipher encryption for processor-accelerator memory mapped input/output communication
US20230195477A1 (en) Batch transfer of commands and data in a secure computer system