JP2019502211A - メモリ動作の暗号化 - Google Patents

メモリ動作の暗号化 Download PDF

Info

Publication number
JP2019502211A
JP2019502211A JP2018536461A JP2018536461A JP2019502211A JP 2019502211 A JP2019502211 A JP 2019502211A JP 2018536461 A JP2018536461 A JP 2018536461A JP 2018536461 A JP2018536461 A JP 2018536461A JP 2019502211 A JP2019502211 A JP 2019502211A
Authority
JP
Japan
Prior art keywords
memory
interface
key
copy
encrypted
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
JP2018536461A
Other languages
English (en)
Other versions
JP2019502211A5 (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.)
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 JP2019502211A publication Critical patent/JP2019502211A/ja
Publication of JP2019502211A5 publication Critical patent/JP2019502211A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • H04L63/0457Network 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 wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

処理システム(100)は、相互接続(106)に接続可能な第1インタフェース(112)を有する処理モジュール(102)を含む。第1インタフェースは、第1暗号化データ及び暗号化メモリアドレスを生成するために、第1キー(146)及び第1フィードバックベース暗号プロセスを使用して、記憶動作の記憶データ表現及びメモリアドレスを暗号化するための第1暗号エンジン(124)を含む。メモリモジュール(104)は、相互接続に接続された第2インタフェース(128)を含む。第2インタフェースは、記憶データ表現のコピー及びメモリアドレスのコピーを生成するために、第2キー(148)及び第2フィードバックベース暗号プロセスを使用して、第1暗号化データ及び暗号化メモリアドレスを復号化するための第2暗号エンジン(132)を含む。さらに、第2インタフェースは、メモリアドレスのコピーに基づいて、記憶データ表現のコピーをメモリコアのメモリ位置(150)に記憶する。【選択図】図1

Description

本開示は、概して、データストレージ用のメモリを利用する処理システムに関し、より詳細には、暗号化されたメモリを利用する処理システムに関する。
実行に使用されるハードウェアをデータ所有者が物理的に制御しない設定においてセキュリティを強化する方法として、暗号化されたメモリ(すなわち、メモリの内容が暗号化されている)を使用する方法が提案されている。しかしながら、暗号化されたメモリに対する従来のアプローチは、メモリアクセスの予測不可能性と、典型的なプロセッサ/メモリアーキテクチャの制約とを考慮して、キャッシュラインを個別に暗号化する必要があるため、基本的な攻撃手法に対して脆弱である。
従来の暗号化されたメモリの実装は、典型的には、メモリに記憶されるデータが、使用されるデータ及び暗号化キーの関数として単独で暗号化される電子コードブック(ECB)ベースの暗号化スキームに依存する。このアプローチは、2つのキャッシュラインが同一の暗号文をもたらす同一の平文を有することによって、暗号化されたデータのオブザーバに対してデータに関する情報が漏洩する等のいくつかの欠点を有する。かかる情報によって、ECBは、データの統計的性質を用いて、暗号化されたデータに関する情報を推測したり、場合によっては、データを暗号化するのに用いられる暗号化キーを解読する「辞書」攻撃を受け易くなる。従来のECBベースの暗号化されたメモリの実装の別の欠点は、暗号化されたデータを破損又は上書きすることができるように、プロセッサとメモリとの間の相互接続に攻撃者がトラフィックを挿入するデータ「インジェクション」攻撃を受け易いことである。このような攻撃を阻止するために、従来の暗号化されたメモリシステムは、多くの場合、メモリの内容全体に亘ってツリー型構造の生成に依存しており、これにより、各ロード動作又は記憶動作を認証するために多くのメモリアクセスを必要とする。
本開示は、添付の図面を参照することによってより良く理解することができ、その多くの特徴及び利点が当業者に明らかになるであろう。異なる図面において同じ符号を使用することは、類似又は同一の項目を示す。
いくつかの実施形態による、暗号化メモリを用いる処理システムのブロック図である。 いくつかの実施形態による、図1の処理システムにおいてセキュアなメモリアクセス動作を実行するための方法を示すフロー図である。 いくつかの実施形態による、認証のための暗号ハッシュ及びシリアル番号の一方又は両方を利用するペアのメモリインタフェースの実装例を示すブロック図である。 いくつかの実施形態による、ブロック連鎖に基づく暗号エンジンを示すブロック図である。 いくつかの実施形態による、図1の処理システムの例示的な積層型のプロセッサインメモリ(PIM)の実装を示す図である。
図1〜図5は、処理システムにおいて強化した暗号化メモリを用いるための例示的な方法及びシステムを示す図である。少なくとも1つの実施形態では、処理システムは、メモリバス又は他の相互接続を介してメモリモジュールに接続された処理モジュールを含む。記憶型メモリアクセス動作(すなわち、「記憶動作」)の場合、処理モジュールは、第1暗号文を生成するために、第1キーを使用して、記憶されるキャッシュライン又は他のデータを暗号化する。次いで、処理モジュールの暗号エンジンは、第2暗号文を生成するために、第2キーを使用して、第1暗号文を暗号化する。また、暗号エンジンは、暗号化されたメモリアドレスを生成するために、第2キー又は別のキーを使用して、記憶動作に関連するメモリアドレスを暗号化する。第2暗号化データ及び暗号化メモリアドレスは、相互接続を介してメモリモジュールに送信される。メモリモジュールは、暗号化メモリアドレス及び第2暗号文を復号化して、メモリアドレス及び第1暗号文のコピーを取得する。次に、メモリモジュールは、第1暗号文のコピーを、メモリアドレスのコピーによってアドレス指定されたメモリ位置に記憶する。
ロード型メモリアクセス動作(すなわち、「ロード動作」)の場合、処理モジュールは、暗号化メモリアドレスを生成するために、第2キー又は別のキーを使用して、ロード動作に関連するメモリアドレスを暗号化し、この暗号化メモリアドレスを、相互接続を介してメモリモジュールに送信する。メモリモジュールは、暗号化メモリアドレスを復号化してメモリアドレスのコピーを取得し、メモリアドレスのコピーによってアドレス指定されたメモリ位置に記憶された第1暗号文にアクセスする。次に、メモリモジュールは、第1暗号文を暗号化して第2暗号文を生成し、第2暗号文は、インタフェースを介して処理モジュールに送信される。処理モジュールでは、第2暗号文が復号化されて第1暗号文のコピーが生成され、第1暗号文のコピーが復号化されて、ロード動作によって求められたロードデータのコピーが生成される。
少なくとも1つの実施形態では、各メモリモジュールと各処理モジュールとの間の接続は、相互接続の個別の専用インスタンス及び相互接続の両側の対応する暗号エンジンによって提供される。この構成によって、メモリモジュールの暗号エンジンが、処理モジュールの暗号エンジンと同じデータアクセスシーケンスを監視する状況が生じる。したがって、暗号エンジンは、従来の暗号化メモリの実装とは対照的に、現在のキャッシュライン又は暗号化されている他のデータの機能だけでなく、以前に暗号化された1つ以上の以前のキャッシュライン又は他のデータの機能でもある暗号プロセスを利用してもよい。このタイプの暗号プロセスは、本明細書において「フィードバックベース暗号プロセス」と呼ばれる。フィードバック依存の暗号プロセスの例には、暗号ブロック連鎖(CBC)及び暗号フィードバック(CFB)アルゴリズム等のブロック連鎖暗号プロセスや、CryptMT及びRabbitアルゴリズム等のストリーム暗号が含まれる。フィードバックベース暗号プロセスは、概して、現在のキャッシュライン/暗号化されているデータのみの機能である暗号プロセスと比較して強化した暗号セキュリティを提供し、フィードバックベース暗号プロセスを用いることによって、例えば辞書型攻撃の使用又は権限のないオブザーバによるメモリアクセスパターンの分析等の平文データへの不正アクセスに対する耐性を向上させる。
図1は、本開示の少なくとも1つの実施形態による、セキュアなデータストレージを用いる処理システム100を示す図である。処理システム100は、例えば、記憶されたデータの所有者が、「クラウド」サーバのシナリオ等のように、データを記憶して処理するハードウェアの物理的制御を有しないシステムを表すことができる。図示した例では、処理システム100は、相互接続106を介してメモリモジュール104に接続された少なくとも1つの処理モジュール102を含む。
処理モジュール102は、1つ以上のプロセッサ108と、ハードウェア暗号エンジン110と、メモリインタフェース112と、を備え、キーストア114をさらに含んでもよい。プロセッサ108は、例えば、中央処理装置(CPU)、グラフィックス処理装置(GPU)又はこれらの組み合わせを備えてもよく、プロセッサコア116,118等の1つ以上のプロセッサコアと、キャッシュ120,122等の1つ以上のキャッシュと、を含んでもよい。メモリインタフェース112は、プロセッサ108と、暗号エンジン110と、キーストア114と、相互接続106と、に接続されており、暗号エンジン124を含む。
メモリモジュール104は、処理モジュール102のための暗号化メモリとして動作する。このために、メモリモジュール104は、メモリコア126と、メモリインタフェース128と、を含み、キーストア130を含んでもよい。メモリコア126は、それぞれ対応するメモリアドレス(例えば、物理メモリアドレス)を介してアクセスされる複数の記憶場所(図示省略)又はエントリを備える。メモリコア126は、例えばスタティックRAM(SRAM)アーキテクチャ、ダイナミックRAM(DRAM)アーキテクチャ、不揮発性RAM(NVRAM)アーキテクチャ及びフラッシュメモリアーキテクチャ等の様々なランダムアクセスメモリ(RAM)アーキテクチャの何れかを使用して実装されてもよい。メモリインタフェース128は、メモリコア126と、キーストア130と、相互接続106と、に接続されており、暗号エンジン132を含む。
相互接続106は、処理モジュール102とメモリモジュール104との間の双方向インタフェースとして機能するバス又は他のタイプの相互接続を備える。相互接続106は、モジュール102,104間で実行されるメモリアクセス動作のためのシグナリングを行うための複数の信号経路を備える。この信号経路には、メモリアドレス情報を送信するための信号経路、データ情報を送信するための信号経路、制御情報を送信するための信号経路等が含まれる。一実施形態では、同じメモリモジュール104に接続された複数の処理モジュール102を実装する場合に、各処理モジュール102は、個別に専用のメモリモジュール104に対する相互接続106を有し、メモリモジュール104は、処理モジュール102/相互接続106毎に個別のメモリインタフェース128を実装する。同様に、いくつかの実施態様では、処理モジュール102を複数のメモリモジュール104に接続することができ、この場合、処理モジュール102は、対応するメモリモジュール104に処理モジュール102を接続する相互接続106毎に個別のメモリインタフェース112を実装する。この構成の下では、処理モジュール102とメモリモジュール104との特定のペアを接続する相互接続106の両側のインタフェース112,128は、ロード動作及び記憶動作の同じシーケンスを監視するために、フィードバックベース暗号プロセスを実装してもよい。
図5を参照して以下により詳細に説明するように、典型的な実施態様では、処理モジュール102及びメモリモジュール104は、個別のデバイス又はパッケージとして実装され、これにより、相互接続106は、両方のモジュール102,104が実装されるインターポーザ又は回路基板を横断する導電性トレースのセットとして実装されてもよいし、2つのモジュール102,104を接続するケーブルを横断する導電性トレースのセットとして実装されてもよい。このように、相互接続106は、導電性トレースに接続された物理的なタップの形態の不正アクセスを受けやすい場合がある。そして、かかる物理的なタップは、例えば辞書型攻撃等のように、メモリモジュール104に記憶され又はモジュール102,104間で送信される平文バージョンのデータに対するアクセスを試みるために、不正な集団によって使用される可能性がある。
処理システム100は、相互接続106の脆弱性を考慮して、暗号技術の組み合わせを用いてデータセキュリティを強化する。図2を参照して以下により詳細に説明するように、モジュール102,104は、相互接続106を介して送信される(及びメモリコア126に記憶される)データに対してフィードバックベース暗号プロセスを用いることによって、辞書式攻撃の使用による平文形式のデータにアクセスしようとする試み、又は、相互接続を介したデータストリームの統計的性質を分析する他の試みを抑制する。さらに、モジュール102,104は、メモリアクセスパターンに関する情報の漏洩を防止するために、相互接続106を介して送信されるメモリアドレスに対して暗号化スキームを用いる。さらに、図3及び図4を参照して以下により詳細に説明するように、処理システム100は、暗号ハッシュベースの認証プロセス又はシリアル番号ベースの認証プロセスのうち1つ以上を利用して、処理システム100におけるデータセキュリティをさらに強化することができる。
図2は、本開示の少なくとも1つの実施形態による、セキュアなメモリアクセス動作を実行するための処理システム100の動作の方法200を示す図である。メモリアクセス動作は、概して、記憶型メモリアクセス動作(記憶動作)又はロード型メモリアクセス動作(ロード動作)の何れかに大まかに分類されてもよい。記憶動作の場合、データは、メモリモジュール104のメモリコア126内の対応する場所に記憶されるために、処理モジュール102によって提供される。逆に、ロード動作の場合、データは、メモリコア126の対応する場所からアクセスされ、処理モジュール102に送信される。その結果、ロードデータは、後の使用のために、プロセッサ108の1つ以上のキャッシュ又はレジスタに記憶される。概して、記憶又はロードされるデータは、キャッシュラインの形式又はサイズで行われるので、本明細書では、キャッシュラインの例に基づくデータの記憶及びアクセスを言及しているが、いくつかの実施形態では、データは、キャッシュラインより小さいサイズであってもよいし、大きいサイズであってもよい。
パワーオンリセット(POR)又は他の初期化/再初期化イベントに続いて、メモリアクセス動作の処理の前に、ブロック202において、処理システム100は、概して、処理モジュール102のメモリインタフェース112と、メモリモジュール104のメモリインタフェース128と、の間のキー交換140(図1)又は他のキー初期化を含む初期化プロセスを行う。いくつかの実施形態では、処理システム100は、公開キー/秘密キースキームを用いる。このスキームの場合、処理モジュール102のメモリインタフェース112は、事前に識別された記憶場所から公開キーを読み出す等によって、メモリインタフェース128の公開キーについてメモリインタフェース128に照会し、次いで、共有されるキーを暗号エンジン124で公開キーを使用して暗号化し、暗号化されたキーをメモリモジュール104のメモリインタフェース128に送信する。暗号化されたキーは、メモリインタフェース128の対応する秘密キーを使用することによって復号化され、結果として得られた復号化されたキーは、メモリモジュール104のキーストア130に記憶される。
代替的には、メモリモジュール104は、メモリインタフェース112,128によって使用されるキーを生成し、メモリインタフェース112によって使用されるキーを処理モジュール102に通信してもよく、その後、キーは、処理モジュール102のキーストア114に記憶される。これは、例えば、メモリインタフェース128が、(例えば、処理モジュール102からのコマンドに応じて)キーを生成し、処理モジュール102によって提供された公開キーを使用してキーを暗号化し、次いで、暗号化されたキーをメモリコア126内の既知の場所に記憶することによって達成されてもよく、その結果、処理モジュール102は、当該キーにアクセスし、対応する秘密キーを使用して当該キーを復号化し、復号化されたキーをキーストア130に記憶してもよい。
処理システム100を使用することによって、複数のデータ所有者は、処理モジュール102及びメモリモジュール104を同時に使用することができる。したがって、データのセキュリティをさらに強化するために、このような実装では、複数のキーセットを実装してもよい。例示のために、異なるキーセットは、物理的な要求毎(例えば、コア毎)、スレッド毎、プロセス毎、アドレス空間毎等に実装されてもよい。そのような場合、異なるキーセットは、後述するように、コアID、スレッドID、プロセスID又はアドレス空間ID等の要求元の識別子(ID)又は他のメモリアクセス属性に基づいて、キーストア114,130内にインデックス付けされ、その後、適切なキーセットにアクセスするように、メモリアクセス動作が開始された場合に参照される。
処理システム100は、メモリインタフェース112,128及びキーストア114,130が適切なキーで開始されると、メモリアクセス動作を行う準備が整う。したがって、ブロック204において、処理モジュール102の要求元は、メモリアクセス動作を開始する。メモリアクセス動作は、上述したように、概して、データをメモリモジュール104に記憶するための記憶動作、又は、メモリモジュール104からデータにアクセスするためのロード動作の何れかの形態を取る。複数のキーセットが使用されている場合、ブロック206において、メモリインタフェース112,128の各々は、キーストア114,130の適切なキーセットにアクセスする。例示すると、ブロック204において、メモリアクセス動作が開始された場合、又は、ブロック206において、要求元が処理モジュール102のリソースの制御を以前の要求元から引き継いだ場合、プロセッサ108は、キー要求142(図1)をキーストア114に発行してもよい。この場合、キー要求142は、例えば、メモリアクセス動作を要求するコア、スレッド、プロセスのID、又は、メモリアクセス動作に関するアドレス空間のID等のように、関連するメモリアクセス属性の表現を含んでもよい。さらに、メモリインタフェース112は、この同じ情報をメモリインタフェース128に提供することによって、適切なキーセットが、メモリモジュール104のキーストア130からアクセスされるようにする。
いくつかの実施形態では、メモリインタフェース112は、対応するメモリアクセス要求の送信の前に、相互接続106又は別のサイドバンド接続を介した(事前に識別された公開/秘密キーを介して暗号化されてもよい)別の通信として、メモリアクセス属性情報又は他の代表的なインデックスをメモリインタフェース132に提供する。別の実施形態では、メモリインタフェース112は、メモリアクセス属性又は他の代表的なインデックスを、(例えば、制御シグナリングの範囲内で)メモリアクセス要求に対して提供されるシグナリングの一部として含んでもよい。対応するキー(後述する)は、各キーストア114,130からアクセスされ、暗号エンジン110,124,132の対応するバッファ又はレジスタに一時的に記憶される。
処理システム100は、暗号エンジン110,124,132が初期化されると、メモリアクセス動作を開始する準備が整う。この動作には、記憶動作又はロード動作が含まれてもよい。図2のフローパス208は、記憶動作に関して行われるプロセスを示しており、図2のフローパス210は、ロード動作に関して行われるプロセスを示している。
記憶動作は、フローパス208のブロック212において開始され、これに従って、メモリコア126の対応するアドレス指定された場所(例えば、キャッシュ120,122の何れか1つのキャッシュから排除されたキャッシュライン)に記憶される平文記憶データ(図1において「データ」と示されている)が暗号エンジン110に提供され、これに従って、暗号エンジン110は、第1暗号化データ又は暗号文(ここでは、暗号文「CT1」と示されている)を生成するために、処理モジュール102のみに知られているキーK1(図1のキー144)を使用して平文データを暗号化する。AES(高度暗号化標準)、DES(データ暗号化標準)、3DES(トリプルDES)、PGP(プリティグッドプライバシ)及びBlowfish等の様々な暗号化アルゴリズムのうち何れかを使用して、平文データを暗号化してもよい。第1暗号文CT1と、データが記憶されるメモリアドレス(「ADDR」と示されている)とは、メモリインタフェース112に提供され、ブロック214において、暗号エンジン124は、第2暗号化データ(暗号文「CT2」と示されている)と、暗号化されたメモリアドレス(「EN_ADDR」と示されている)とを生成するために、フィードバックベース暗号プロセス(例えば、CFB又はストリーム暗号)に従って、異なるキーK2(図1のキー146)を使用して、第1暗号文CT1及びメモリアドレスADDRを暗号化する。なお、図1には、データが、相互接続106を介して送信される前に2回暗号化される実施態様が示されているが、いくつかの実施形態では、暗号エンジン110による第1暗号化が省略されてもよく、この場合、平文データDATAは、暗号文CT2への暗号化のために、暗号文CT1の代わりに暗号エンジン110に提供されてもよい。
一実施形態では、第1暗号文CT1及びメモリアドレスADDRは、個別の暗号化された値を生成するために、(並列ではあるが)別々に暗号化されてもよい。しかしながら、他の実施形態では、第1暗号文CT1及びメモリアドレスADDRは、第1暗号文CT1及びメモリアドレスを暗号化の前に連結して単一の値にする等によって単一の暗号化された値を生成するために、共に暗号化されてもよい。ブロック216では、メモリインタフェース112は、相互接続106を介して行われるシグナリング(第2暗号文CT2及び暗号化メモリアドレスEN_ADDRを含むシグナリング)によって、記憶要求をメモリモジュール104に送信する。
メモリインタフェース128は、記憶要求を表すシグナリングを受信し、ブロック218において、暗号エンジン132は、第1暗号文CT1のコピーと、メモリアドレスADDRの平文コピーとを生成するために、キーK3(図1のキー148)を使用して、第2暗号文CT2と暗号化メモリアドレスEN_ADDRとを復号化する。暗号エンジン124,132は、対称キー暗号化プロセス(例えば、AES、DES)を使用してもよく、この場合、キーK2及びK3は同じキーである。アドレスが復号化されると、ブロック220において、メモリインタフェース128は、ブロック218にて得られたメモリアドレスADDRによってアドレス指定されたメモリコア126のメモリ位置150(図1)、或いは、これに関連するメモリコア126のメモリ位置150に第1暗号文CT1を記憶する。
第1暗号文CT1及びメモリアドレスADDRを暗号化及び復号化するために、上述した暗号化アルゴリズムの何れか等のような様々な暗号化アルゴリズムを使用してもよい。具体的には、各相互接続106は、特定の処理モジュール/メモリモジュールのペアに特有であるため、処理モジュール102のメモリインタフェース112と、メモリモジュール104のメモリインタフェース128との両方は、キャッシュラインの同じシーケンス又は他のデータを参照する。そのようなものとして、暗号エンジン124,132の各々は、フィードバックベース暗号化技術を採用してもよい。この技術では、図4を参照して以下に詳細に説明するように、同じ平文項目の再発が同じ暗号文(例えば、暗号化プロセス及び復号化プロセスの間のストリーム暗号又はブロック連鎖暗号等)をもたらさない。
フローパス208によって示されるように、記憶データは、記憶動作中に、相互接続106を介して送信される前に、ブロック連鎖又はストリーム暗号によって暗号化され、これにより、典型的には、所定の平文値の暗号化が毎回同じ暗号化された値をもたらすという状況が回避される。このように、システム100は、相互接続106を介して送信されたデータの分析による辞書型攻撃に抵抗する。さらに、暗号エンジン110が利用される実施形態では、データは、メモリコア126に記憶された場合に、(暗号文CT1として)暗号化された形態のままであるため、メモリコア126が不正なエンティティによって侵害される場合には、平文バージョンのデータにアクセスしようとする試みを妨げることができる。さらに、記憶動作のためのメモリアドレスADDRは、送信前に暗号化される。これにより、処理システム100のデータに対する攻撃のベースとして使用され得るメモリアクセスパターン又は他のメモリアクセス情報の漏洩を防止することができる。
ブロック206に戻ると、メモリアクセス動作がロード動作である場合、ロード動作のメモリアドレス(「ADDR」と示されている)は、プロセッサ108からメモリインタフェース112に提供される。ブロック222において、暗号エンジン124は、暗号化メモリアドレス(「EN_ADDR」と示されている)を生成するために、キーK2(図1のキー146)と、ブロック連鎖又はストリーム暗号とを使用して、メモリアドレスを暗号化する。ロード動作に使用されるキーK2は、記憶動作に使用されるキーK2と同じキーであってもよいし、異なるキーであってもよい。ブロック224において、メモリインタフェース112は、相互接続106を介して行われるシグナリングによって、ロード要求をメモリモジュール104に送信する。この場合、シグナリングは、暗号化メモリアドレスEN_ADDRを含む。
メモリインタフェース128は、ロード要求を表すシグナリングを受信し、ブロック226において、暗号エンジン132は、メモリアドレスADDRの平文コピーを生成するために、キーK3(図1のキー148)と、対応するブロック連鎖又はストリーム暗号アルゴリズムとを使用して、暗号化メモリアドレスEN_ADDRを復号化する。ロード動作に使用されるキーK3は、記憶動作に使用されるキーK3と同じキーであってもよいし、異なるキーであってもよい。ブロック228において、メモリインタフェース128は、取得されたメモリアドレスADDRのコピーによって参照されるメモリコア126のメモリ位置(例えば、図1の位置150)から要求されたデータにアクセスする。上述したように、データは、記憶動作中に、暗号化データ又は暗号文としてメモリコア126に記憶されているため、アクセスされたデータは、ここでは第1暗号文CT1と呼ばれる。
ブロック230において、暗号エンジン132は、メモリコア126から取得した要求データにより、第2暗号文CT2を生成するために、キーK4(図1のキー152)を使用して、暗号文CT1をさらに暗号化する。対称キー暗号化の実施形態では、キーK4は、暗号エンジン124によって使用されるキーK2と同じキーであってもよい。共有キーの実施形態では、キーK4は、公開キー/秘密キーのペアのうち公開キーであってもよい。ブロック232において、メモリインタフェース128は、相互接続106を介したメモリインタフェース112へのロード結果又はロード応答を表すシグナリングを使用して、第2暗号文CT2を処理モジュール102に送信する。
ブロック234において、暗号エンジン124は、メモリインタフェース112において第2暗号文CT2を受信すると、メモリコア126に記憶された第1暗号文CT1のコピーを生成するために、キーK5(図5のキー154)を使用して、第2暗号文CT2を復号化する。キーK5は、キーK2と同じキーであってもよく、対称キー暗号化が暗号エンジン124,132によって用いられる場合には、キーK4と同じキーであってもよい。或いは、公開キー/秘密キー方式が用いられる場合には、上述したように、キーK5はキーペアの秘密キーであり、キーK4は公開キーである。ブロック236において、暗号エンジン110は、第1暗号文CT1によって表される平文ロードデータのコピーを取得するために、キーK1を使用して、取得した第1暗号文CT1のコピーを復号化する。次いで、この平文ロードデータは、ロード動作の要求元によるアクセスのために、コア116,118の対応する1つのキャッシュライン又は他の一時的な記憶場所に記憶されてもよい。
フローパス210によって示されるように、ロードデータは、ロード動作中に、メモリモジュール104から相互接続106を介して処理モジュール102に送信される前に、フィードバックベース暗号プロセスを使用して暗号化され、ロード動作のメモリアドレスADDRは、送信前に暗号化される。これらの両方によって、フローパス208に関して上述したように、強化したデータセキュリティがもたらされる。
相互接続106が比較的簡単にアクセスされ、物理的にタップされ得るので、攻撃者は、相互接続106を使用して、メモリモジュール104に記憶された暗号化データを上書きすることによってメモリモジュール104に記憶されたデータを破損させるように、偽の記憶動作を挿入するように試みる場合がある。したがって、このような攻撃を防止するために、少なくとも1つの実施形態では、処理システム100は、記憶動作が、実際に許可された要求元からの正当な記憶動作であることを検証するために、様々な認証プロセスを用いてもよい。このような認証プロセスは、例えば、暗号ハッシュ認証プロセス又はシリアル番号ベースの認証プロセスを含んでもよい。
図3は、少なくとも1つの実施形態による、これらの認証プロセスの一方又は両方を実装するための例示的なハードウェア実装を示す図である。図示した実施形態では、メモリインタフェース112の暗号エンジン124は、暗号ハッシュモジュール302と、暗号化/復号化モジュール304と、シリアル番号生成部305と、を含む。同様に、メモリインタフェース128の暗号エンジン132は、暗号化/復号化モジュール306と、暗号ハッシュモジュール308と、ハッシュ比較ロジック310と、シリアル番号比較ロジック312と、を含む。
ハッシュベースの認証動作では、第1暗号文CT1及びメモリアドレスADDRが暗号ハッシュモジュール302に入力され、ハッシュモジュール302は、ハッシュ値(「H1」と示されている)を生成するために、ハッシュキーXを使用して、第1暗号文CT1及びメモリアドレスADDRの暗号ハッシュを行う。次に、ハッシュ値H1が暗号化/復号化モジュール304に入力されると、暗号化/復号化モジュール304は、暗号化ハッシュ値(「H2」と示されている)と、第2暗号文CT2と、暗号化メモリアドレスEN_ADDRとの各々を生成するために、対応するキーK(例えば、図1のキーK2)を使用して、ハッシュ値H1と、第1暗号文CT1と、メモリアドレスADDRとの各々を暗号化する。暗号化されたハッシュ値H2は、上述したように、記憶動作のシグナリングの一部として、第2暗号文CT2及び暗号化メモリアドレスEN_ADDRと共に送信される。暗号化/復号化モジュール306は、メモリインタフェース128で当該シグナリングを受信すると、ハッシュ値H1及びメモリアドレスADDRの平文コピーを生成するとともに第1暗号文CT1のコピーを生成するために、対応するキーK(例えば、図1のキーK3)を使用して、暗号化されたハッシュ値H2と、第2暗号文CT2と、暗号化メモリアドレスEN_ADDRとを復号化する。
暗号ハッシュモジュール308は、受信した記憶動作が正当であることを検証するために、取得したハッシュ値H1、メモリアドレスADDR及び第1暗号文CT1のコピーを使用して、暗号ハッシュモジュール302による同じ又は対称的なハッシュ演算を行い、ハッシュ値(「H3」と示されている)がもたらされる。次に、ハッシュ比較ロジック310は、取得したハッシュ値H1のコピーを、生成されたハッシュ値H3と比較する。ハッシュ比較ロジック310は、比較結果によって2つのハッシュ値が一致すること判明した場合、この記憶動作を許可されたものとして識別し、メモリインタフェース128が記憶動作を処理し続けることに応じて「VALID」信号を提供する。しかしながら、攻撃者が、暗号ハッシュモジュール302,308に使用されるキーXのコピーを有する可能性が低いことから、不正な記憶動作を挿入しようとする攻撃者の試みは、取得したハッシュ値H1と、生成されたハッシュ値H3との間で不一致が生じることになる。このような場合には、ハッシュ比較ロジック310は、メモリインタフェース128が記憶動作のさらなる処理を中止することに応じて「NOP」信号を提供し、当該記憶動作を「ノーオペレーション」又は「NOP」として扱う。
シリアル番号ベースの認証動作では、シリアル番号生成部305は、シリアル番号のシーケンス(例えば、インクリメント又はデクリメントシーケンスの何れか)において次のシリアル番号を生成し、このシリアル番号の値をSNとして暗号化/復号化モジュール304に提供する。暗号化/復号化モジュール304は、対応するキーK(例えば、図1のキーK2)を使用して、シリアル番号SNと、第1暗号文CT1と、メモリADDRと、を暗号化して、暗号化シリアル番号(「EN_SN」と示されている)と、第2暗号文CT2と、暗号化メモリアドレスEN_ADDRとの各々を生成する。これらの値は、上述したように、記憶動作のシグナリングの一部として送信される。暗号化/復号化モジュール306は、メモリインタフェース128でこのシグナリングを受信すると、対応するキーK(例えば、図1のキーK3)を使用して、暗号化されたシリアル番号EN_SNと、第2暗号文CT2と、暗号化メモリアドレスEN_ADDRとを復号化して、シリアル番号SN及びメモリアドレスADDRの平文コピーと、第1暗号文CT1のコピーとを生成する。
シリアル番号比較ロジック312は、受信した記憶動作が正当であることを検証するために、レジスタ314又は他の記憶コンポーネントにおけるシーケンスから使用中の現行のシリアル番号を維持する。これは、試みられた各メモリアクセス動作に対して現在のシリアル番号のローカルコピーをインクリメント又はデクリメントすることによって、又は、認証された最後のメモリアクセス動作のシリアル番号をレジスタ314に記憶することによって、実現されてもよい。シリアル番号SNの復号化されたコピーは、暗号化/復号化モジュール306からシリアル番号比較ロジック312に提供され、シリアル番号比較ロジック312は、このシリアル番号SNを現在のシリアル番号と比較する。シリアル番号比較ロジック312は、比較の結果、受信したシリアル番号SNがシーケンス内の予測される次のシリアル番号であることが示された場合に、この記憶動作を許可されたものとして識別し、メモリインタフェース128が記憶動作を処理し続けることに応じて「VALID」信号をもたらす。しかしながら、攻撃者がシーケンス内の次のシリアル番号を知る可能性が低いことから、偽造したシリアル番号を用いた不正な記憶動作を挿入しようとする攻撃者の試みは、復号化されたシリアル番号SNのコピーと、シーケンス内の予測される次のシリアル番号と、の間で不一致が生じることになる。このような場合、シリアル番号比較ロジック312は、メモリインタフェース128が記憶動作のさらなる処理を中止することに応じて「NOP」信号を提供し、当該記憶動作を「ノーオペレーション」又は「NOP」として扱う。
いくつかの実施形態では、両方の認証プロセスを並列に利用することができ、この場合、ANDロジックを使用して、ハッシュ比較ロジック310及びシリアル番号比較ロジック312の両方が「VALID」をシグナリングする場合に「VALID」信号を提供し、且つ、ハッシュ比較ロジック310及びシリアル番号比較ロジック312の何れかが「NOP」をシグナリングする場合に「NOP」信号を提供してもよい。
各処理モジュール/メモリモジュールのペアが相互接続106及びメモリインタフェース112,128の個別の実施形態を実施すると、所定の処理モジュール102のためのメモリインタフェース112は、相互接続106の反対側の対応するメモリインタフェース128と同じシーケンスのメモリアクセス動作を監視し、その逆も同様に行われる。よって、従来のシステムとは対照的に、処理システム100は、暗号エンジン124,132において行われる暗号化/復号化プロセスの一部として、ストリーム暗号、又は、ブロック暗号の連鎖モードを用いてもよい。典型的な連鎖モード又はストリーム暗号では、キャッシュライン又は他のデータの暗号化(若しくは復号化)は、現在のキャッシュライン/データ及び暗号化キーの関数だけではなく、現在のキャッシュラインの前に暗号化された1つ以上の以前のロード動作又は記憶動作のキャッシュライン/データの関数でもある。しかしながら、このようなフィードバック依存の暗号プロセスを暗号化メモリシステムに実装すると、第2暗号化プロセスがタイミングクリティカルなメモリアクセスパスに挿入され、メモリレイテンシが増大する危険性がある。
図4は、メモリアクセスクリティカルパスの外部でキーマテリアルを生成することによって、メモリアクセスレイテンシへの影響を低減する暗号フィードバック(CFB)モードを用いる暗号エンジン124,132の例示的なハードウェア実装400を示す図である。図示した実施形態では、ハードウェア実装400は、暗号エンジン124,132の両方によって実装され得る暗号化パスハードウェアを表している。復号化パスハードウェアは、同様に実装されてもよい。
ハードウェア実装400は、ステージ401,402,403として識別される3つの順次的な暗号化ステージに対して論理的に繰り返されるブロック暗号ロジック404及びXORロジック406を含む。ブロック暗号ロジック404は、2つの入力(キー(図4において「KEY」と示されている)を受信するための1つの入力と、第1ステージ401が初期化ベクトル(IV)を受信することを除いて、暗号化された出力を前のステージから受信するための入力と)を有する。IVは、典型的には、上述したように、処理モジュール102とメモリモジュール104との間の初期化プロセス中に交換される共有キー情報の一部である。ブロック暗号ロジック404は、所定のステージにおいて、2つの入力を使用して暗号プロセス(暗号化又は復号化)を行い、この結果が同じステージのXORロジック406の入力に出力される。XORロジック406は、そのステージに関連するデータを受信するための第2入力を有する。各データは、メモリアクセス動作のシーケンスからメモリモジュール104への対応するキャッシュラインを含んでもよい。その代わりに、各データは、メモリアクセス動作のシーケンスからメモリモジュール104への対応するメモリアドレスを含んでもよい。図4に示すCFBモードでは、メモリアクセスクリティカルパスから2つのXOR演算(各メモリインタフェースに1つずつ)が除去されているので、暗号ブロック連鎖技術によって強化されたセキュリティを使用しながら、メモリレイテンシへの影響を最小限に抑えることができる。
上述したように、メモリモジュール104は、暗号エンジン132を有するメモリインタフェース128を実装する。この構成は、対応するメモリ回路に緊密に接続された付加ロジックを利用するプロセッサインメモリ(PIM)実装に特に適している。図5は、本明細書に記載した技術を有利に利用することができる例示的なPIMベースのシステム500を示す図である。
図示した例では、システム500は、ホストプロセッサ502(処理モジュール102の一実施形態)と、1つ以上のメモリスタック(例えば、メモリスタック504,505,506,507等)のセット(メモリモジュール104の一実施形態)と、を含み、インターポーザ501(回路基板又はダイを含んでもよい)上に配置されている。各メモリスタックは、ロジックダイ508及びメモリダイ509,510,511,512のセットを含むダイのスタックを含む。ロジックダイ508は、メモリインタフェース128を実装し、メモリダイは、メモリコア126を実装する。メモリスタックのダイは、シリコン貫通ビア(TSV)(図示省略)によって結合されているので、物理的にタップするのは比較的困難である。インターポーザ501の導電性トレース(図示省略)は、ホストプロセッサ502をメモリスタック504〜507に接続し、ピン(図示省略)は、当該導電性トレースを、ホストプロセッサ502とメモリスタック504〜507との間の相互接続106(図1)を形成するコンポーネントに接続する。しかしながら、導電性トレース及びピンは、メモリスタックのTSVとは異なり、物理的にタップするのが比較的容易であることから、不正なエンティティが、これらの相互接続を介して送信されるデータへのアクセスを試みることが比較的容易である。したがって、PIMベースのシステム500は、上述した二重暗号化、メモリアドレス暗号化、暗号化ハッシュ検証又は連鎖ベース暗号化技術のうち1つ以上を用いて、相互接続及びその内部で転送されるデータのインテグリティを保証してもよい。
いくつかの実施形態では、上述した装置及び技術は、図1〜図5を参照して上述したモジュール102,104等の1つ以上の集積回路(IC)デバイス(集積回路パッケージ又はマイクロチップとも呼ばれる)を備えるシステムにおいて実装される。これらのICデバイスの設計及び製造には、電子設計自動化(EDA)及びコンピュータ支援設計(CAD)ソフトウェアツールを使用することができる。これらの設計ツールは、通常、1つ以上のソフトウェアプログラムとして表される。1つ以上のソフトウェアプログラムは、1つ以上のICデバイスの回路を製造するために製造システムを設計又は適応させるプロセスの少なくとも一部を実行するように、当該回路を表すコードで動作するようにコンピュータシステムを操作する、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含むことができる。設計ツール又は製造ツールを表すソフトウェア命令は、典型的には、コンピューティングシステムにアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ICデバイスの設計又は製造の1つ以上のフェーズを表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶されてもよく、これらの媒体からアクセスされてもよい。
いくつかの実施形態では、上述した技術の特定の態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶されるか、他の方法で有形に具体化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行された場合に、上述した技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体、又は、非一時的な記憶媒体の組み合わせを含んでもよい。このような記憶媒体には、光媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)、キャッシュ)、不揮発性メモリ(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれるが、これらに限定されない。コンピュータ可読記憶媒体は、コンピューティングシステム(例えば、システムRAM又はROM)に埋め込まれてもよく、コンピューティングシステム(例えば、磁気ハードドライブ)に固定的に取り付けられてもよく、コンピューティングシステム(例えば、光ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)に取り外し可能に取り付けられてもよく、有線又は無線ネットワーク(例えば、ネットワークアクセス可能記憶装置(NAS))を介してコンピューティングシステムに接続されてもよい。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
全般的な説明において上述した活動又は要素の全てが必要であるとは限らず、特定の活動又はデバイスの一部が必要でなくてもよいこと、及び、1つ以上のさらなる活動が実行され、1つ以上のさらなる要素が含まれてもよいことに留意されたい。さらに、活動が列挙されている順序は、必ずしもそれらが行われる順序ではない。また、これらの概念は、特定の実施形態を参照して説明されている。しかしながら、当業者であれば、以下の特許請求の範囲に記載された本発明の範囲から逸脱することなく、様々な修正及び変更を行うことができることを理解するであろう。したがって、本明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、このような変更の全ては、本発明の範囲内に含まれることが意図される。
利益、他の利点及び課題に対する解決手段が、特定的な実施形態に関して上述されている。しかしながら、利益、利点、課題に対する解決手段、及び、利益、利点若しくは解決手段が発生又は顕在化する可能性のある機能は、何れか又は全ての請求項の重要な、必須の、不可欠な特徴として解釈されるべきではない。さらに、開示された発明は、本明細書の教示の恩恵を受ける当業者には明らかであるが異なる同等の方法で修正され実施され得るので、開示された特定の実施形態は単なる例示である。以下の特許請求の範囲に記載されたもの以外の本明細書に記載された構成及び設計の詳細に限定されることを意図していない。したがって、開示された特定の実施形態は、変更又は修正されてもよく、かかる全ての変形は、開示された発明の範囲内であると考慮されることが明らかである。よって、本明細書で求められる保護は、以下の特許請求の範囲に記載されている。

Claims (16)

  1. 専用の相互接続(106)を介してメモリモジュール(104)に接続された処理モジュール(102)を備える処理システム(100)において、
    記憶動作の開始に応じて、
    前記処理モジュールの前記相互接続に対する第1インタフェース(112)において、第1暗号化データを生成するために、第1キー(146)及び第1フィードバックベース暗号プロセス(124)を使用して、前記記憶動作の記憶データ表現を暗号化することと、
    前記第1インタフェースにおいて、暗号化メモリアドレスを生成するために、前記第1キー及び前記第1フィードバックベース暗号プロセスを使用して、前記記憶動作のメモリアドレスを暗号化することと、
    前記第1暗号化データ及び暗号化メモリアドレスを、前記相互接続を介して前記メモリモジュールに送信することと、を含む、
    方法。
  2. 前記メモリモジュールの前記相互接続に対する第2インタフェース(128)において、前記記憶データ表現のコピーを取得するために、第2キー(148)及び第2フィードバックベース暗号プロセス(132)を使用して、前記第1暗号化データを復号化することと、
    前記第2インタフェースにおいて、前記メモリアドレスのコピーを取得するために、前記第2キー及び前記第2フィードバックベース暗号プロセスを使用して、前記暗号化メモリアドレスを復号化することと、
    前記メモリアドレスのコピーに基づいて、前記記憶データ表現のコピーをメモリ位置(150)に記憶することと、をさらに含む、
    請求項1の方法。
  3. 前記第1インタフェースにおいて、前記記憶動作の属性に基づいて、複数のキー(114)から前記第1キーを選択することと、
    前記属性(140)の表現を、前記相互接続を介して前記第1インタフェースから前記第2インタフェースに通信することと、
    前記第2インタフェースにおいて、前記属性の表現に基づいて、複数のキー(130)から前記第2キーを選択することと、をさらに含む、
    請求項2の方法。
  4. 前記属性は、前記記憶動作を発行したプロセッサコアの識別子、前記記憶動作を発行したプロセスの識別子、前記記憶動作を発行したスレッドの識別子、及び、前記記憶動作に関するアドレス空間の識別子のうち少なくとも1つを含む、
    請求項3の方法。
  5. 前記第1インタフェースにおいて、第1ハッシュ値を生成するために、前記メモリアドレス及び前記記憶データ表現を使用して、暗号ハッシュ(302)を行うことと、
    前記第1インタフェースにおいて、暗号化ハッシュ値を生成するために、前記第1ハッシュ値を暗号化することと、
    前記暗号化ハッシュ値を、前記相互接続を介して前記第1インタフェースから前記第2インタフェースに送信することと、
    前記第2インタフェースにおいて、前記第1ハッシュ値のコピーを生成するために、前記暗号化ハッシュ値を復号化することと、
    前記第2インタフェースにおいて、第2ハッシュ値を生成するために、前記メモリアドレスのコピー及び前記記憶データ表現のコピーを使用して、暗号ハッシュ(308)を行うことと、をさらに含み、
    前記メモリアドレスのコピーに基づいて、前記記憶データ表現のコピーを前記メモリ位置に記憶することは、前記第2ハッシュ値と前記第1ハッシュ値のコピーとの比較(310)結果に応じて、前記記憶データ表現のコピーを前記メモリ位置に記憶することを含む、
    請求項2の方法。
  6. 前記第1インタフェースにおいて、シリアル番号のシーケンス内の次のシリアル番号を判別することと、
    前記第1インタフェースにおいて、暗号化シリアル番号を生成するために、前記次のシリアル番号を暗号化することと、
    前記暗号化シリアル番号を、前記相互接続を介して前記第1インタフェースから前記第2インタフェースに送信することと、
    前記第2インタフェースにおいて、前記次のシリアル番号のコピーを生成するために、前記暗号化シリアル番号を復号化することと、をさらに含み、
    前記メモリアドレスのコピーに基づいて、前記記憶データ表現のコピーを前記メモリ位置に記憶することは、前記次のシリアル番号のコピーと、予測される次のシリアル番号との比較結果に応じて、前記記憶データ表現のコピーを前記メモリ位置に記憶することを含む、
    請求項2の方法。
  7. 前記第1フィードバックベース暗号プロセスは、ブロック連鎖の暗号プロセス及びストリーム暗号の暗号プロセスのうち少なくとも1つを含む、
    請求項1の方法。
  8. 前記処理モジュールにおいて、第2暗号化データを生成するために、第2キーを使用して前記記憶データを暗号化することをさらに含み、前記記憶データ表現は前記第2暗号化データを含む、
    請求項1の方法。
  9. 前記第1インタフェースにおいて、第1ハッシュ値を生成するために、前記メモリアドレス及び前記第1暗号化データを使用して、暗号ハッシュ(302)を行うことと、
    前記第1ハッシュ値を、前記相互接続を介して前記第1インタフェースから前記メモリモジュールに送信することと、をさらに含む、
    請求項1の方法。
  10. 専用の相互接続(106)を介してメモリモジュール(104)に接続された処理モジュール(102)を備える処理システム(100)において、
    ロード動作の開始に応じて、
    前記処理モジュールの前記相互接続に対する第1インタフェース(112)において、暗号化メモリアドレスを生成するために、第1キー(146)及び第1フィードバックベース暗号プロセス(124)を使用して、前記ロード動作に関するメモリアドレスを暗号化することと、
    前記暗号化メモリアドレスを、前記相互接続を介して前記メモリモジュールに送信することと、
    前記メモリモジュールの前記相互接続に対する第2インタフェース(128)において、前記メモリアドレスのコピーを取得するために、第2キー(148)を使用して、前記暗号化メモリアドレスを復号化することと、
    前記第2インタフェースにおいて、前記メモリアドレスのコピーに基づいて、前記メモリモジュールのメモリ位置(150)から第1暗号化データにアクセスすることと、
    前記第2インタフェースにおいて、第2暗号化データを生成するために、第3キー(152)及び第2フィードバックベース暗号プロセスを使用して、前記第1暗号化データを暗号化することと、
    前記第2暗号化データを、前記相互接続を介して前記第2インタフェースから前記第1インタフェースに送信することと、
    前記1インタフェースにおいて、前記第1暗号化データのコピーを取得するために、第4キー(154)及び第3フィードバックベース暗号プロセスを使用して、前記第2暗号化データを復号化することと、を含む、
    方法。
  11. 前記第1インタフェースにおいて、前記ロード動作のロードデータのコピーを取得するために、第5キー(144)を使用して、前記第1暗号化データのコピーを復号化することをさらに含む、
    請求項10の方法。
  12. 前記第1キー及び前記第2キーは同じキーを含み、前記第3キー及び前記第4キーは同じキーを含む、
    請求項11の方法。
  13. 処理システム(100)であって、
    少なくとも1つのプロセッサコア(116,118,120,122)と、
    前記少なくとも1つのプロセッサコアに接続された第1インタフェース(112)であって、相互接続(106)に接続可能な第1インタフェース(112)と、を含む処理モジュール(102)を備え、
    前記第1インタフェースは、
    第1暗号化データ及び暗号化メモリアドレスを生成するために、第1キー(146)及び第1フィードバックベース暗号プロセスを使用して、前記記憶動作の記憶データ表現及び前記記憶データに関するメモリアドレスを暗号化する第1暗号エンジン(124)を備え、
    前記第1インタフェースは、前記第1暗号化データ及び前記暗号化メモリアドレスを、前記相互接続を介してメモリモジュール(104)に送信する、
    処理システム。
  14. 前記メモリモジュールは、
    メモリコア(126)と、
    前記相互接続及び前記メモリコアに接続された第2インタフェース(128)であって、前記記憶データ表現のコピー及び前記メモリアドレスのコピーを生成するために、第2キー(148)及び第2フィードバックベース暗号プロセスを使用して、前記第1暗号化データ及び前記暗号化メモリアドレスを復号化する第2暗号エンジン(132)を備える第2インタフェースと、を備え、
    前記第2インタフェースは、前記メモリアドレスのコピーに基づいて、前記記憶データ表現のコピーを前記メモリコアのメモリ位置(150)に記憶する、
    請求項13の処理システム。
  15. 前記処理モジュールは、前記記憶動作の属性に基づいて、複数のキーから前記第1キーを選択するための第1キーストア(114)をさらに備え、
    前記メモリモジュールは、前記相互接続を介して受信した前記属性の表現に基づいて、複数のキーから前記第2キーを選択するための第2キーストア(130)をさらに備える、
    請求項14の処理システム。
  16. 前記第1インタフェースは、第1ハッシュ値を生成するために、前記メモリアドレス及び前記記憶データ表現を使用して、暗号ハッシュを行う第1暗号ハッシュモジュール(302)を備え、
    前記第1インタフェースは、前記第1ハッシュ値の表現を前記メモリモジュールに送信し、
    前記第2インタフェースは、
    第2ハッシュ値を生成するために、前記メモリアドレスのコピー及び前記記憶データ表現のコピーを使用して、暗号ハッシュを行う第2暗号ハッシュモジュール(308)と、
    前記第2ハッシュ値と前記第1ハッシュ値との比較結果に応じて、前記第1暗号化データのコピーの前記メモリ位置への記憶を許可するハッシュ比較ロジック(310)と、を備える、
    請求項14の処理システム。
JP2018536461A 2016-01-12 2016-09-21 メモリ動作の暗号化 Pending JP2019502211A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/993,455 2016-01-12
US14/993,455 US10382410B2 (en) 2016-01-12 2016-01-12 Memory operation encryption
PCT/US2016/052839 WO2017123285A1 (en) 2016-01-12 2016-09-21 Memory operation encryption

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020161026A Division JP6998435B2 (ja) 2016-01-12 2020-09-25 メモリ動作の暗号化

Publications (2)

Publication Number Publication Date
JP2019502211A true JP2019502211A (ja) 2019-01-24
JP2019502211A5 JP2019502211A5 (ja) 2019-10-24

Family

ID=59275977

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018536461A Pending JP2019502211A (ja) 2016-01-12 2016-09-21 メモリ動作の暗号化
JP2020161026A Active JP6998435B2 (ja) 2016-01-12 2020-09-25 メモリ動作の暗号化

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2020161026A Active JP6998435B2 (ja) 2016-01-12 2020-09-25 メモリ動作の暗号化

Country Status (6)

Country Link
US (1) US10382410B2 (ja)
EP (1) EP3403185B1 (ja)
JP (2) JP2019502211A (ja)
KR (1) KR102430042B1 (ja)
CN (1) CN108475237B (ja)
WO (1) WO2017123285A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10230762B2 (en) * 2012-08-31 2019-03-12 Jpmorgan Chase Bank, N.A. System and method for sharing information in a private ecosystem
US10585809B2 (en) * 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
US10198349B2 (en) * 2016-09-19 2019-02-05 Advanced Micro Devices, Inc. Programming in-memory accelerators to improve the efficiency of datacenter operations
US10642963B2 (en) * 2016-12-08 2020-05-05 Ati Technologies Ulc Digital rights management for a GPU
US10643006B2 (en) * 2017-06-14 2020-05-05 International Business Machines Corporation Semiconductor chip including integrated security circuit
KR102411884B1 (ko) * 2017-09-28 2022-06-22 삼성전자주식회사 전자 장치 및 그의 제어 방법
KR20190075363A (ko) * 2017-12-21 2019-07-01 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 모듈
US10871983B2 (en) * 2018-05-31 2020-12-22 Intel Corporation Process-based multi-key total memory encryption
WO2019236638A1 (en) * 2018-06-06 2019-12-12 Argosoperem Llc Method and system for data storage and retrieval
US11431475B2 (en) * 2018-06-15 2022-08-30 Dynatrace Llc Method and system for log data analytics based on SuperMinHash signatures
US10922439B2 (en) * 2018-06-29 2021-02-16 Intel Corporation Technologies for verifying memory integrity across multiple memory regions
US10579994B1 (en) * 2018-11-06 2020-03-03 Capital One Services, Llc Method for routing to mesh network content utilizing blockchain technology
KR20200093823A (ko) 2019-01-29 2020-08-06 삼성전자주식회사 해시 솔루션을 위한 반도체 메모리 장치 및 이의 구동방법
US11645043B2 (en) 2019-02-11 2023-05-09 Dynatrace Llc Method and system for calculating minwise hash signatures from weighted sets
US11163912B2 (en) * 2019-03-25 2021-11-02 Micron Technology, Inc. Data attestation in memory
KR102660388B1 (ko) * 2019-05-09 2024-04-26 에스케이하이닉스 주식회사 메모리 모듈, 메모리 모듈의 동작 방법, 메모리 시스템 및 메모리 모듈의 동작 방법
CN112231719B (zh) * 2019-07-15 2024-06-25 美光科技公司 密码密钥管理
US11436342B2 (en) 2019-12-26 2022-09-06 Intel Corporation TDX islands with self-contained scope enabling TDX KeyID scaling
US11645428B1 (en) 2020-02-11 2023-05-09 Wells Fargo Bank, N.A. Quantum phenomenon-based obfuscation of memory
US11651810B2 (en) * 2020-12-14 2023-05-16 SK Hynix Inc. Memory system and memory module including memory chips sharing channel
US20210319143A1 (en) * 2021-06-25 2021-10-14 Intel Corporation Memory bus link authentication and encryption mechanisms for hardware-based replay protection
US20230342306A1 (en) * 2022-04-26 2023-10-26 Dell Products L.P. Methods and systems for processor agnostic encryption management
KR102453343B1 (ko) * 2022-07-26 2022-10-11 (주)나래데이터 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치 및 그 동작 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828753A (en) * 1996-10-25 1998-10-27 Intel Corporation Circuit and method for ensuring interconnect security within a multi-chip integrated circuit package
US7184549B2 (en) * 2000-01-14 2007-02-27 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for encryption, method and apparatus for decryption, and computer-readable medium storing program
JP2002091828A (ja) * 2000-09-18 2002-03-29 Sharp Corp データ処理装置および記憶装置、並びに、それらを使用したデータ転送システム
JP2002328845A (ja) * 2001-05-07 2002-11-15 Fujitsu Ltd 半導体集積回路及びicカードのセキュリティー保護方法
US7313239B2 (en) 2003-04-15 2007-12-25 Broadcom Corporation Method and system for data encryption/decryption key generation and distribution
US8234505B2 (en) 2006-01-20 2012-07-31 Seagate Technology Llc Encryption key in a storage system
US7511466B2 (en) 2006-04-19 2009-03-31 System General Corp. Method and apparatus for predicting discharge time of magnetic device for power converter
US7519830B2 (en) 2006-08-03 2009-04-14 Motorola, Inc. Secure storage of data
DE102007016170A1 (de) * 2007-04-02 2008-10-09 Francotyp-Postalia Gmbh Sicherheitsmodul für eine Frankiermaschine
US20110145016A1 (en) * 2008-05-22 2011-06-16 Idatamap Pty. Ltd. Secure data card
US8836475B2 (en) * 2011-04-18 2014-09-16 Cubic Corporation Monitoring unit configuration management
US8943313B2 (en) * 2011-07-19 2015-01-27 Elwha Llc Fine-grained security in federated data sets
US9128876B2 (en) 2011-12-06 2015-09-08 Honeywell International Inc. Memory location specific data encryption key
KR101975027B1 (ko) * 2012-05-04 2019-05-03 삼성전자주식회사 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들
US9742559B2 (en) * 2013-01-22 2017-08-22 Qualcomm Incorporated Inter-module authentication for securing application execution integrity within a computing device
US10176121B2 (en) 2013-07-15 2019-01-08 Infineon Technologies Ag Apparatus and method for memory address encryption
US10171240B2 (en) * 2015-11-17 2019-01-01 Successfactors, Inc. Accessing resources in private networks

Also Published As

Publication number Publication date
CN108475237A (zh) 2018-08-31
US20170201503A1 (en) 2017-07-13
EP3403185A4 (en) 2019-11-20
KR102430042B1 (ko) 2022-08-05
KR20180094118A (ko) 2018-08-22
EP3403185A1 (en) 2018-11-21
US10382410B2 (en) 2019-08-13
EP3403185B1 (en) 2022-01-26
CN108475237B (zh) 2021-07-13
JP6998435B2 (ja) 2022-01-18
WO2017123285A1 (en) 2017-07-20
JP2021002067A (ja) 2021-01-07

Similar Documents

Publication Publication Date Title
JP6998435B2 (ja) メモリ動作の暗号化
TWI715619B (zh) 用於硬體強制單向密碼學的處理器、方法及系統
US10097349B2 (en) Systems and methods for protecting symmetric encryption keys
US9954826B2 (en) Scalable and secure key management for cryptographic data processing
CN108345806B (zh) 一种硬件加密卡和加密方法
CN102138300B (zh) 消息认证码预计算在安全存储器中的应用
US10313128B2 (en) Address-dependent key generator by XOR tree
US10990687B2 (en) System and method for user managed encryption recovery using blockchain for data at rest
US10943020B2 (en) Data communication system with hierarchical bus encryption system
US20220197825A1 (en) System, method and apparatus for total storage encryption
EP2990953B1 (en) Periodic memory refresh in a secure computing system
GB2532836A (en) Address-dependent key generation with substitution-permutation network
CN107391232A (zh) 一种系统级芯片soc及soc系统
US9602281B2 (en) Parallelizable cipher construction
US9946662B2 (en) Double-mix Feistel network for key generation or encryption
WO2021057273A1 (zh) 在fpga上实现高效合约调用的方法及装置
US10057054B2 (en) Method and system for remotely keyed encrypting/decrypting data with prior checking a token
TWI549020B (zh) 運算裝置、方法與系統
CN106919846B (zh) 一种消息中间件处理方法和系统
US20230208821A1 (en) Method and device for protecting and managing keys
CN110555311A (zh) 一种基于纯软密码运算的电子签章系统安全设计方法及系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190912

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190912

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190912

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20191010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191210

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200310

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200925

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20200925

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20201005

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20201006

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20201016

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20201020

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20210302

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20210706

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20210810

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20210810