JP2016541134A - 異なるドメイン固有鍵を用いてコンテンツのセキュリティを確保するための方法 - Google Patents

異なるドメイン固有鍵を用いてコンテンツのセキュリティを確保するための方法 Download PDF

Info

Publication number
JP2016541134A
JP2016541134A JP2016518121A JP2016518121A JP2016541134A JP 2016541134 A JP2016541134 A JP 2016541134A JP 2016518121 A JP2016518121 A JP 2016518121A JP 2016518121 A JP2016518121 A JP 2016518121A JP 2016541134 A JP2016541134 A JP 2016541134A
Authority
JP
Japan
Prior art keywords
domain
memory
key
memory controller
memory area
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
JP2016518121A
Other languages
English (en)
Other versions
JP2016541134A5 (ja
JP6203386B2 (ja
Inventor
ラヴィンドラ・アール・ジェジュリカール
イヴァン・マクリーン
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016541134A publication Critical patent/JP2016541134A/ja
Publication of JP2016541134A5 publication Critical patent/JP2016541134A5/ja
Application granted granted Critical
Publication of JP6203386B2 publication Critical patent/JP6203386B2/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/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
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Landscapes

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

Abstract

メモリに記憶されるコンテンツのセキュリティを確保するためにメモリコントローラ内で使用できる方法が提供される。メモリコントローラは、メモリデバイス内の論理メモリ領域を異なるドメインに割り当てることができる。異なるドメインごとに異なるドメイン固有鍵が入手され、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数である。書込み動作中に、コンテンツ/データが各論理メモリ領域に書き込まれるときに、コンテンツを提供し、論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、メモリコントローラにおいてコンテンツ/データが暗号化される。同様に、読出し動作中に、コンテンツ/データが各論理メモリ領域から読み出されるときに、コンテンツを要求し、コンテンツが記憶される論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、メモリコントローラにおいてコンテンツ/データが解読される。

Description

関連出願の相互参照
本出願は、その内容全体が参照によって本明細書に組み込まれる、2013年9月30日に米国特許商標庁に出願された、米国仮特許出願第14/042,675号の優先権および恩典を主張する。
種々の特徴は、異なるメモリ領域に対して異なるドメイン固有鍵を用いることによって、メモリ内のコンテンツのセキュリティを確保する(コンテンツをスクランブルする/暗号化する)ための方法に関する。
デバイスまたはシステム内のメモリ空間は通常、異なるアプリケーション、機能および/またはデバイスの間で共有され、それらは本明細書においてまとめて、「ドメイン」と呼ばれる。ドメインは、メモリ要求を生成する1つまたは複数のマスター(たとえば、固有の識別情報(identity)を有するハードウェアおよび/またはソフトウェアブロック、モジュールまたはサブシステム)を含む。割り当てられたメモリ空間に対して、通常、システム内の異なるマスターによる読出し/書込み動作を制御するアクセス制御機構が実施される。たとえば、システムオンチップ(SoC:system-on-chip)において、アクセス制御は、スレーブリソース(たとえば、種々のマスターによってアクセスされるメモリ)に対する、SoC内の種々のマスターリソースの読出し/書込み動作を制御する役割を果たす(たとえば、アプリケーションCPUは、オーディオサブシステムによって用いられるコード/データにアクセスすることはできない、など)。ドメインが実効的には、スレーブリソース(メモリ)に対する所与の1組のマスターアクセスを許可するアクセス制御設定によって定義され、アクセスを許可されたマスターを、そのドメイン内のマスターと呼ぶことができる。メモリは、複数の連続的な領域から構成されると見なされ、各領域は、メモリ領域に対する1つまたは複数のマスター読出し/書込みアクセスを許諾するアクセス制御特性に関連付けることができる。割り当てられたメモリ領域は、種々のマスターに対するアクセス制御設定とともに、そのシステム内の「ドメイン」を構成する。アクセス制御設定を変更することにより、1つのドメインから別のドメインに実効的に変更される。
メモリ領域(たとえば、システム内のメモリページ)を効率的に用いて仮想メモリをサポートするために、ハイレベルオペレーティングシステム(HLOS:high-level Operating System)によって一般に動的メモリ割当てが用いられる。
そのようなシステムでは、信頼できないドメインおよび信頼できるドメインのような2つのドメイン間で1つのメモリページが経時的に共有される場合がある。所有権(またはドメイン)に変化があるとき、メモリに対するドメイン変化は、メモリ領域(たとえば、メモリページ)のためのアクセス制御を変更することによって反映される。
さらに、メモリに記憶されたコンテンツを保護するセキュリティ機能として、メモリ(たとえば、オフチップメモリ)においてスクランブリング/暗号化が実施される場合がある。スクランブリングは、信号/インターフェース線およびインターポーザ基板をプローブするなどの物理的攻撃からメモリコンテンツを保護する。物理的攻撃(たとえば、メモリインターフェース線の突然の故障)から保護するために、さらなる向上を達成することができる。スクランブリング機能は通常、メモリコントローラ(たとえば、SoC内のメモリコントローラ)において実行される。ブートアップ中に通常、グローバルランダム鍵が設定され、メモリに書き込まれるコンテンツをスクランブルし、メモリからコンテンツが読み出されるときにコンテンツをデスクランブルするために用いられる。スクランブリングロジックは通常、メモリロケーションのアドレスによる(たとえば、異なるアドレスに書き込まれる同じデータは異なるように暗号化される)。セキュリティに対する現在の手法は、同じグローバルランダム鍵を用いて、すべてのメモリ領域内に記憶されるコンテンツのセキュリティを確保する。さらに、アクセス制御およびコンテンツセキュリティ(スクランブリング/暗号化)は別々の異なる機能である。
メモリが異なるドメインに割り当てられるときに、メモリ領域(たとえば、1組のページ)に対するアクセス制御が変化する場合に第1のセキュリティリスクが生じる。新たなドメイン内のマスター(たとえば、信頼できないマスター)が、再割当てされたメモリ領域内の以前のドメインマスター(たとえば、信頼できるマスター)によって記憶されたコンテンツにアクセスするのを防ぐために、以前のマスターから新たなマスターにアクセスが変化するときに、再割当てされたメモリ領域は多くの場合に、消去されるか、上書きされるか(たとえば、既知値/ランダム値による)、またはスクランブルされる。これは、時間およびエネルギーの両方を消費し、費用がかかる作業である。
同じ物理メモリに異なるマスターが(経時的に)アクセスできる場合に、信頼できないマスター(すなわち、ハッカー)に、同じメモリ領域のために利用することができるテーブル(たとえば、既知のパターン)を構築する機会を与える第2のセキュリティリスクも起こり得る。たとえば、信頼できないマスター(ハッカー)が、特定のメモリアドレスに対する平文(暗号化されていない)データおよび暗号化されたデータにアクセスできるので、信頼できないマスターが、暗号化されたコンテンツと暗号化されていないコンテンツとの間をマッピングするテーブル(たとえば、既知の命令、パターンなどを用いる)を構築することができる。その情報によれば、これらのマッピングテーブルは、異なるマスターがメモリ領域へのアクセス制御を有するときに、そのメモリ領域を突然故障させる攻撃の成功を手助けする可能性がある。
暗号鍵が攻撃者の影響を受けやすいソフトウェアによって生成され得る場合に、第3のセキュリティリスクが存在する。
メモリコントローラがリセットされる場合であっても、メモリ領域からデータを消去できない場合に、第4のセキュリティリスクも存在する。それゆえ、そのようなデータが、権限のないエンティティによってアクセス可能である。これは通常、メモリコントローラをリセットすることにより、アクセス制御がリセットされ、デフォルトのアクセス制御設定が、システム内のすべてのマスターに対するアクセスを許すときに生じる。そのようなリセット攻撃は、システムセキュリティを弱める。
その結果、割り当てられ、および/または共有されるメモリ領域内のコンテンツに対する権限のないアクセスを軽減するか、または防ぐ解決策が必要とされる。
メモリに記憶されるコンテンツのセキュリティを確保するための、メモリコントローラ内で使用できる方法が提供される。論理メモリ領域が、メモリデバイス内で異なるドメインに静的、または動的に割り当てられる。異なるドメインごとに異なるドメイン固有鍵が入手され、各ドメイン固有鍵は、少なくともマスター(グローバル)鍵と、ドメイン固有情報との関数である。各論理メモリ領域に書き込まれるコンテンツは、コンテンツにアクセスできるドメイン内のすべてのマスターと、各論理メモリ領域が割り当てられる固有ドメインとに対応するドメイン固有鍵を用いて暗号化することができる。各論理メモリ領域から読み出されるコンテンツは、そのコンテンツを要求するドメイン内のすべてのマスターと、そのコンテンツが記憶される各論理メモリ領域が割り当てられるドメインとに対応するドメイン固有鍵を用いて解読することができる。
一例では、第1の論理メモリ領域へのアクセスは、第1のメモリ領域が割り当てられる第1のドメインに関連付けられる第1のマスターのみに制限することができる。
第1の論理メモリ領域は、第1のドメインから第2のドメインに動的に再割当てすることができ、第1のドメインおよび第2のドメインは異なるドメイン固有鍵に関連付けられる。第1のドメインから第2のドメインへの第1の論理メモリ領域の再割当ては、第1の論理メモリ領域からコンテンツを消去することなく行うことができる。
種々の特徴、性質、および利点は、同様の参照文字が全体を通じて対応するものを識別する図面と併せて読まれたとき、以下に記載の詳細な説明から明らかになる場合がある。
システムオンチップ(SoC)および外部メモリデバイスを有する例示的なシステムを示す図である。 ドメイン固有鍵がいかに生成され、異なるメモリ領域上で使用されるかの一例を示すブロック図である。 共有される(複数のマスターによってアクセスされる)メモリ領域のためのドメイン鍵が生成される場合がある別の例を示す図である。 柔軟で、拡張性のあるアクセス制御システムを設計するために、マスター側アクセス制御およびスレーブ側アクセス制御をいかに組み合わせることができるかの第1の例を示す図である。 柔軟で、拡張性のあるアクセス制御システムを設計するために、マスター側アクセス制御およびスレーブ側アクセス制御をいかに組み合わせることができるかの第2の例を示す図である。 システム内でドメイン固有鍵がいかに生成され、使用される場合があるかを示す図である。 システム内でドメイン固有鍵がいかに生成され、使用される場合があるかを示す図である。 データ暗号化を伴うアクセス制御を実行するためにメモリコントローラ上で使用できる方法を示す図である。 データ暗号化を伴うアクセス制御を実行するためにメモリコントローラ上で使用できる方法を示す図である。 割り当てられたメモリ(たとえば、DRAM、フラッシュなど)のアクセス制御のための方法を示す図である。 暗号化/解読を統合したアクセス制御を用いるメモリコントローラを含む電子デバイスを示すブロック図である。
以下の説明では、本開示の種々の態様を完全に理解してもらうために具体的な詳細が与えられる。しかしながら、それらの態様が、これらの特定の細部を用いることなく実施できることは、当業者には理解されよう。たとえば、不必要な細部において態様を不明瞭にすることを避けるために、回路がブロック図において示される場合がある。他の場合には、本開示の態様を不明瞭にしないために、よく知られている回路、構造、および技法は、詳細に示されないことがある。
「例示的」という言葉は、本明細書において、「一例、事例、または実例として役立つ」ことを意味するように使用される。「例示的な」として本明細書において説明されるいかなる実施態様または態様も、必ずしも本開示の他の態様よりも好ましいか、または有利であると解釈されるべきではない。同様に、「複数の態様」という用語は、本開示のすべての態様が、論じられる特徴、利点、または動作モードを含むことを必要としない。
概説
異なるドメインに関連付けられるメモリ領域へのアクセスを保護するために、1つの特徴が、異なるドメイン固有鍵を用いて各メモリ領域内に記憶されるデータのセキュリティを確保する(たとえば、データを暗号化する)ために、メモリコントローラ内でアクセス制御機能と、セキュリティ機能とを組み合わせる。したがって、メモリが異なるドメインに動的に割り当てられる(各ドメインが、そのドメインを定義する異なるアクセス制御設定を有する)ので、特有のメモリ保護が存在する。データの暗号化/解読がメモリコントローラレベルにおいて実行されるので、暗号化/解読システムは、ソフトウェアハッキングにさらされない。
別の態様は、グローバル鍵が保持される場合であっても、アクセス制御ブロックのリセット時にドメイン固有鍵を自動的に変更することによって、メモリ領域内の暗号化されたデータをアクセス制御ブロックリセット攻撃からさらに保護することを提供する。したがって、同じメモリ領域内に後に記憶されたデータを復号するために、以前のドメイン固有鍵を使用することはできない。あるドメインのための正確なアクセス制御設定を復元するには(すなわち、リセット前に)、正確な平文データにアクセスするために、同じドメイン固有鍵を再生する必要がある。
別の態様は、各ドメイン鍵を生成する鍵導出機能への入力として、少なくとも部分的にハードウェアアクセス可能専用情報を含むことを提供する。それにより、そのようなドメイン鍵を生成可能なことによる、あらゆるソフトウェア攻撃を阻止する。
さらに別の態様は、2つ以上の独立したエンティティ(たとえば、信頼できる2つ以上の独立したルート)から入力を入手することによって互いに協働するようにして各ドメイン鍵を生成する鍵導出機能を提供する。たとえば、アプリケーションプロセッサ(たとえば、第1のマスター)および/またはセキュアドプロセッサ(secured processor)(たとえば、第2のマスター)がいずれも、鍵導出機能への入力としての情報に寄与することができる。その結果して、ドメイン鍵所有権は、いずれか一方のエンティティまたは他方のエンティティに与えられない。
鍵導出機能がソフトウェアにおいて実施される(たとえば、セキュアドプロセッサによって実行される)さらに別の態様では、各ドメイン鍵は、そのドメイン鍵が関連付けられる(そのドメイン内の)マスターによって与えられる入力に少なくとも部分的に基づいて生成することができる。その結果して、ドメイン鍵所有権は、いずれか一方のエンティティまたは他方のエンティティに与えられない。
さらに別の態様によれば、ドメインは複数のマスターを含む場合があり、ドメインに割り当てられたメモリ領域は、共有されたドメイン鍵を用いてそのようなデータを暗号化することによって、2つ以上のマスター間で共有される。しかしながら、所与のマスターが複数のドメイン内に存在することができ、1つのドメインに割り当てられたメモリにアクセスするときに、適切なドメイン鍵が用いられることに留意されたい。マスターが自らのプライベートデータを有することもでき、そのデータは、異なるドメイン固有鍵によって保護される別の、および/または異なるドメイン内に存在する(そして、他のマスターはこのプライベートデータにアクセスできない)ことに留意されたい。
ドメイン固有鍵のための例示的な動作環境
図1は、システムオンチップ(SoC)102と、外部メモリデバイス124とを有する例示的なシステムを示す。SoC102は、アプリケーションプロセッサ101と、セキュアドプロセッサ105と、メモリコントローラ103と、複数のデバイス108a〜cと、オンチップメモリ106とを含むことができる。一例では、これらのデバイスはオーディオデバイス108a(たとえば、オーディオプロセッサ/回路、オーディオドライバなど)、グラフィックスデバイス108b(たとえば、グラフィックスプロセッサ/回路、グラフィックスドライバなど)、および/またはモデムデバイス108c(たとえば、モデムプロセッサ/回路など)を含むことができる。アプリケーションプロセッサ101および/またはセキュアドプロセッサ105は、App-Aドメイン108dおよび/またはApp-Bドメイン108eのような1つまたは複数のアプリケーションを実行することができる。デバイス108a〜c(たとえば、モジュール、回路および/または他のリソース)および/またはアプリケーション108dおよび108eはそれぞれ「マスター」と見なすことができる。「マスター」は、メモリ空間が静的または動的に割り当てられるか、または割り振られるドメインに関連付けられることができる。一例では、「ドメイン」130a、130bおよび/または130cは、マスターごとのアクセス制御ポリシーに従って、1つまたは複数のマスター(ドメインに関連付けられる)のためのアクセス制御を設定することによって、メモリ領域割当てに関連付けられることができる。すなわち、アクセス制御設定および/またはメモリ領域割当てがドメインを定義する。
メモリコントローラ103は、暗号化/解読を伴うアクセス制御プロセッサ104を実装する回路とすることができる。暗号化/解読を伴うアクセス制御プロセッサ104は、動的メモリ割当て回路/モジュール112、アクセス制御回路/モジュール114(たとえば、読出し/書込み動作を処理するか、またはルーティングする、コンテンツを記憶する/削除する、メモリ領域へのアクセスを制限するなど)、ドメイン固有鍵発生器回路/モジュール116(たとえば、ドメイン固有暗号/解読鍵を生成する)、コンテンツ暗号化回路/モジュール118(たとえば、対応するドメイン固有鍵を用いてドメインに割り当てられたメモリに書き込まれるコンテンツ/データを暗号化する)、および/またはコンテンツ解読回路/モジュール120(たとえば、対応するドメイン固有鍵を用いてドメインに割り当てられたメモリから読み出されるコンテンツ/データを解読する)を含むことができる。メモリ割当て回路/モジュール112は、外部メモリデバイス124内の(論理または物理)メモリ領域126a、126bおよび/または126cを1つまたは複数のドメイン130a、130bおよび/または130cに割り当てる役割を果たすことができる。アクセス制御回路/モジュール114は、割り当てられたメモリ領域126a、126bおよび/または126cにどのマスターがアクセスする(たとえば、読出し/書込み動作を実行する)ことができるかを制御し、メモリ領域のためのドメイン130a、130bおよび/または130cを実効的に定義する役割を果たすことができる。ドメイン固有鍵発生器回路/モジュール116は、ドメイン130a、130bおよび/または130cごとの特有のドメイン固有鍵(たとえば、暗号/解読鍵)を生成することができる。そのようなドメイン固有鍵118は、たとえば、グローバル鍵、ハードウェア固有情報および/または他のドメイン固有情報から生成することができ、その後、セキュアドオンチップメモリ106に記憶することができる。コンテンツ暗号化回路/モジュール118は、書込み動作中に対応するドメイン固有鍵を用いてドメインに関連付けられるメモリ領域に書き込まれることになるコンテンツを暗号化する役割を果たすことができる。同様に、コンテンツ解読回路/モジュール120は、ドメイン内の任意のマスターによる読出し動作中に対応するドメイン固有鍵を用いて、ドメインに関連付けられるメモリ領域から読み出されることになるコンテンツを解読する役割を果たすことができる。
いくつかの実施態様では、ドメイン固有鍵は、メモリコントローラ103内で(たとえば、鍵発生器回路/モジュール116によって実施される鍵導出機能によって)生成することができ、それにより、メモリデバイス124に書き込まれるか、またはメモリデバイス124から読み出されるデータの暗号化/解読をソフトウェア(アプリケーションプロセッサ101および/またはセキュアドプロセッサ105で動作する)に対してトランスペアレントにし、かつアクセス不可能にする。たとえば、アプリケーションプロセッサ101上で動作しているソフトウェアは、ドメイン固有鍵にアクセスできない。その結果として、メモリデバイス124(たとえば、1つまたは複数のドメインに割り当てられるメモリ領域)内に記憶されるデータ/コンテンツのセキュリティが弱められる可能性はない。
他の実施態様では、セキュアドプロセッサ105は、ドメイン固有鍵発生器116内で鍵導出機能を(ソフトウェアにおいて)実施することができる。しかしながら、セキュアドプロセッサ105は、ユーザ制御アプリケーション(通常は、アプリケーションプロセッサ101上で実行される)にアクセスできない場合があり、それにより、ドメイン固有鍵への攻撃者のアクセスを阻止することができる。
ドメイン固有暗号鍵を用いることによって、各ドメインが異なる暗号鍵を使用しているので、メモリ領域126a、126bおよび/または126cが第1のドメインから第2のドメインに再割当てされるときに、メモリ領域を消去するか、上書きすするか、またはスクランブルする必要はないことに留意されたい。それゆえ、アクセス制御が変化するときに、所与のメモリ領域内のコンテンツを暗号化/解読するために用いられる鍵が変化する。これは、システム102内の時間および電力(エネルギー)を節約する。さらに、この技法は、同じ物理メモリ領域が経時的に共有されるときでも、1つのアクセス制御設定領域から生成されたテーブルを、ある領域のための別の(異なる)アクセス制御設定において使用するのも防ぐ。アクセス制御情報がドメインにわたって共有されないので、これは、システムをより安全にする。
ドメイン固有鍵を生成するための例示的方法
図2は、ドメイン固有鍵がいかに生成され、異なるメモリ領域上で使用されるかの一例を示すブロック図である。ここでは、ドメイン205a、205bおよび/または205cが、メモリ領域割当て210a、210bおよび210cによって定義され、1つまたは複数のマスター207a、207bおよび/または207cが、ドメインのマスターごとのアクセス制御設定(すなわち、ポリシー)204a、204bおよび/または204cに従ってドメインに関連付けられる。単一のグローバル鍵202および/またはドメイン固有入力203a、203b、203cと、鍵導出機能206とを用いて、各ドメインに関連付けられる異なるドメイン鍵208a、208b、208cを生成することができる。異なるドメイン鍵208a、208b、208c(すなわち、ドメイン固有鍵)は、異なるドメインに関連付けられる対応する異なる(論理または物理)メモリ領域210a、210bおよび210cとともに用いることができる。特定のマスター207a、207bおよび/または207cが読出し/書込み動作を実行しようとするとき、その対応するドメイン205a、205bおよび/または205cのためのアクセス制御設定204が用いられる(たとえば、対応するドメイン鍵が、関連するメモリ領域からのコンテンツを暗号化/解読するために用いられる)。
メモリコントローラにおいて(たとえば、ハードウェアにおいて)、ドメイン固有鍵が生成されるとき、ドメイン固有鍵208は、たとえば、単一のグローバル鍵202および鍵導出機能206に基づいて生成することができる。すなわち、ドメイン固有鍵がハードウェアにおいて生成されているので、改竄の機会がなく、鍵を生成するためにドメイン固有入力203を使用することは、オプションとすることができる。対照的に、ドメイン固有鍵がソフトウェアによって(たとえば、図1のセキュアドプロセッサ105において)生成されるとき、異なるドメイン鍵208a、208b、208cを生成するために、単一のグローバル鍵202に加えて、ドメイン固有入力203a、203bおよび/または203cを用いることができる。これは、各固有ドメインのみが知っている情報を使用しなければ、ドメイン鍵を生成することはできないので、ソフトウェアに基づく攻撃のリスクを最小限に抑える。
メモリデバイス124(図1)は、複数のメモリ領域210a、210bおよび210cにセグメント化することができる。一例では、各メモリ領域210a、210bおよび210cをそれぞれ異なるドメイン205a、205bおよび205cに割り当てることができる。図2の例では、各ドメイン(すなわち、ドメインA205a、ドメインB205bおよびドメインC205c)は、単一のマスター(すなわち、それぞれマスターA207a、マスターB207bおよびマスターn207c)を有することができる。
一態様によれば、マスターは2つ以上の異なるドメインの一部とすることができる。そのような場合に、同じマスターが各ドメインの一部である場合であっても、各ドメインによって異なるドメイン固有鍵が用いられる。たとえば、第1のマスターが第1のドメインに関連付けられる第1のメモリ領域内のデータにアクセスするとき、メモリコントローラ内のアクセス制御プロセスは、第1のドメイン固有鍵を用いて、第1のマスターの代わりにデータを読み出す/書き込む。第1のマスターが第2のドメインに関連付けられる第2のメモリ領域内のデータにアクセスするとき、メモリコントローラ内のアクセス制御プロセスは、第2のドメイン固有鍵を用いて、第1のマスターの代わりにデータを読み出す/書き込む。
一態様によれば、マスターがドメインに関連付けられる場合があるが、マスターはドメイン固有鍵に直接アクセスできないか、またはドメイン固有鍵を直接制御できない。代わりに、ドメイン固有鍵は、メモリコントローラのアクセス制御プロセッサによって排他的に生成され、保持され、および/または制御される。
さらに別の態様では、ドメインは、ドメイン固有鍵を共有する複数のマスターを有することができる。
図3は、複数のマスターが1つのドメインに関連付けられる場合がある別の例を示す。図2と同様に、各ドメイン305a、305bおよび/または305cが、メモリ領域割当て310a、310bおよび310c、そのドメインに関連付けられる1つまたは複数のマスター307a、307b、307cおよび/または307d、ならびに/あるいはドメインのマスターごとのアクセス制御設定(すなわち、ポリシー)304a、304bおよび/または304cによって定義することができる。単一のグローバル鍵302および/またはドメイン固有入力303aおよび303bおよび鍵導出機能306を用いて、異なるメモリ領域310a(ドメインAのため)310b(ドメインBのため)にそれぞれ関連付けられる異なるドメイン鍵308aおよび308bを生成することができる。しかしながら、ドメインC305cは、メモリ領域310cと、複数のマスター、すなわち、マスターA307cおよびB307dとを含むことができる。このために、単一のグローバル鍵302および/またはドメイン固有入力303cを用いて、共有ドメイン鍵308cを生成することができる。これにより、複数のマスター307cおよび307dが、他のマスターからのそのようなデータのセキュリティを依然として確保しながら、ドメインのためのメモリ領域および/またはその中に記憶されたデータを共有できるようになる。
例示的なマスター側およびスレーブ側アクセス制御
1つの形のメモリアクセス制御は、スレーブ側アクセス制御と呼ばれ、通常、メモリの物理アドレス上で実行される。
別の形のメモリアクセス制御はマスター側アクセス制御と呼ばれ、通常、メモリ管理ユニット(MMU)によって実行される。MMUは仮想/物理メモリアドレス変換の責任を担い、通常、変換ページテーブルによって実施される。アドレス変換に加えて、ページテーブルは、さらなるアクセス制御設定を有することができる(たとえば、ページレベル細分性において読出し/書込み許可を指定することによる)。細かい細分性のマスター側アクセス制御を成し遂げるために、異なるマスターを異なるページテーブルセットに関連付けることができる。
図4Aは、柔軟で、拡張性のあるアクセス制御システムを設計するために、マスター側アクセス制御400およびスレーブ側アクセス制御401をいかに組み合わせることができるかの第1の例を示す。マスター側アクセス制御400は、たとえば、オペレーティングシステムおよび/またはアプリケーションによって実行される場合があり、メモリ管理ユニット403が、マスター407aおよび407bごとのページテーブル412aおよび412bを定義する。ページテーブル412aおよび412bは、たとえば、仮想/物理メモリアドレス変換と、アクセス制御設定とを実行する(たとえば、ページレベル細分性において読出し/書込み許可を指定する)ことができる。たとえば、細かい細分性のマスター側アクセス制御を成し遂げるために、異なるマスター407aおよび407bは異なるページテーブル412aおよび412bに関連付けることができる。
スレーブ側アクセス制御401では、図2と同様に、各ドメインは自らのアクセス制御設定404aおよび404bを有することができる。単一のグローバル鍵402および/またはドメイン固有入力403aおよび403bおよび鍵導出機能406を用いて、同じメモリ領域411内で、異なるメモリページ410a(ドメインAのため)および410b(ドメインBのため)にそれぞれ関連付けられる異なるドメイン鍵408aおよび408bを生成することができる。この態様は、異なるドメインによる共有メモリ領域を可能にすることができ、1つの領域内のいくつかのメモリページが第1のドメインに割り当てられ、そのメモリ領域内の異なる1組のページが第2のドメインに割り当てられる。
マスター側アクセス制御およびスレーブ側アクセス制御を組み合わせるこの例では、特定のメモリページ410aまたは410bへのアクセスを許諾するために、アクセス要求は、マスター側アクセス制御400(たとえば、MMU403内のページテーブルによって指定される)およびスレーブ側アクセス制御401(たとえば、メモリコントローラアクセス制御設定)の両方によって許可されなければならない。さらなる許可チェックのために、マスターの識別子(ID)をスレーブ側アクセス制御にさらに伝えることができることに留意されたい。マスター側アクセス制御およびスレーブ側アクセス制御を組み合わせて、細かい細分性のドメインを形成/指定することができ、関連するドメイン固有鍵を有することができることに留意されたい。
図4Bは、柔軟で、拡張性のあるアクセス制御システムを設計するために、マスター側アクセス制御400およびスレーブ側アクセス制御401をいかに組み合わせることができるかの第2の例を示す。この例では、2つのマスター407aおよび407cが(スレーブ側アクセス制御において)同じドメイン405aの一部とすることができるが、それでも、これらのマスター407aおよび407cを、メモリ領域411内のページのサブセットに制限することができる。たとえば、マスター側アクセス制御400において、第1のマスター407aはメモリ管理ユニット403によって第1のページテーブルA412aに関連付けることができ、一方、第2のマスター407cは、異なる第2のページテーブル412cに関連付けることができる。第1のマスター407aおよび第2のマスター407cがいずれもスレーブ側アクセス制御401によって同じドメインA405aに関連付けられる場合であっても、マスター側アクセス制御400によって課せられる制限は、それらのマスターがそれぞれ、物理メモリ411内のドメインA405aに割り当てられるメモリ内で、異なるメモリページ410aおよび410bにアクセスしている場合があることを意味する場合がある。代替的には、第1のマスター407aおよび407cは、物理メモリ411内のメモリページの異なるまたは重なり合うサブセットに制限される場合があるが、同じ1組のメモリページには制限されない。
図4Aおよび図4Bに示されるマスター側アクセス制御は、仮想アドレスに基づくアクセス制御を実施することができる(たとえば、仮想アドレスに基づいてアクセスを制限する)。さらに、図4Aおよび図4Bに示されるスレーブ側アクセス制御は、メモリページアクセス制御を実施する(たとえば、仮想アドレスに基づいてアクセスを制限する)。さらに、マスター側アクセス制御においてページテーブルを用いることによって、これは、単一のドメイン内のマスターのためのメモリページをさらに区分できるようになる(図4Bに示される)。単一のドメイン内のマスターのためのメモリページ(物理メモリ411内)をそのように区分することは、スレーブ側アクセス制御401だけでは達成できない場合がある。
ドメイン固有鍵を用いるための例示的な方法
図5Aおよび図5Bを含む図5は、システム内でドメイン固有鍵がいかに生成され、使用される場合があるかを示す図である。そのシステムは、ドメイン502(たとえば、ハードウェアモジュール、ソフトウェアなど)、メモリコントローラ504、セキュアストレージ506および/または外部メモリ508を備えることができる。メモリ割当て段階509中(たとえば、ブートアップ中、リセット中、および/またはドメインの開始時)、メモリコントローラ504は、ブートアップ時、リセット時、またはドメインによる要求時に、メモリ(外部メモリデバイス508内にある)をドメイン502に割り当てることができる、510。その後、メモリコントローラ504は、ドメイン502に関連付けられるドメイン固有鍵DSK-Aを生成し、512、それをセキュアストレージデバイス506に記憶する、514。
その後、書込み動作515中に、ドメイン502はメモリにデータを書き込もうとすることができる、516。データを受信すると、メモリコントローラ504は、要求しているドメイン502のためのドメイン固有鍵DSK-Aを検索することができる、518。その後、コントローラ504は、ドメイン固有鍵DSK-Aを用いてデータを暗号化し、520、暗号化されたデータを、データが記憶される割り当てられたメモリに書き込む、522。
読出し動作523中に、ドメイン502はメモリからデータを読み出そうとすることができる、524。読出し要求524を受信すると、メモリコントローラ504は、要求しているドメイン502のためのドメイン固有鍵DSK-Aを検索することができる、526。その後、コントローラ504は、データが記憶される割り当てられたメモリから暗号化されたデータを読み出し、528、ドメイン固有鍵DSK-Aを用いて解読する、530。その後、メモリコントローラ504は、解読されたデータを要求しているドメイン502に返送する、532。
図6は、データ暗号化を伴うアクセス制御を実行するためにメモリコントローラ上で使用できる方法を示す図である。メモリコントローラは、ドメインに関連付けられるマスターからのデータ書込み要求を受信することができる、602。それに応答して、メモリコントローラは、要求しているマスターのドメインに関連付けられるドメイン固有鍵を検索することができ、ドメイン固有鍵は、マスター鍵(たとえば、グローバルまたはシステム鍵)とドメイン固有情報との関数である、604。その後、受信されたデータは、ドメイン固有鍵を用いて、メモリコントローラによって暗号化される、606。その後、メモリコントローラは、要求しているマスターのドメインに割り当てられる外部メモリ内にデータを記憶し、608、要求しているマスターに対してデータ書込み動作を通知する、610。
図7は、データ暗号化を伴うアクセス制御を実行するためにメモリコントローラ上で使用できる方法を示す図である。メモリコントローラは、ドメインに関連付けられるマスターからデータ読出し要求を受信することができる、702。それに応答して、メモリコントローラは、要求しているマスターのドメインに関連付けられるドメイン固有鍵を検索することができ、ドメイン固有鍵は、マスター鍵(たとえば、グローバルまたはシステム鍵)とドメイン固有情報との関数である、704。その後、メモリコントローラは、要求しているマスターのドメインに割り当てられた外部メモリから、要求されたデータを検索する、706。その後、検索されたデータは、ドメイン固有鍵を用いて、メモリコントローラによって解読される、708。その後、解読されたデータは、要求しているマスターに送られる、710。
図8は、静的に、または動的に割り当てられたメモリ(たとえば、DRAM、フラッシュなど)のアクセス制御のための方法を示す。一例では、この方法は、メモリに記憶されるコンテンツのセキュリティを確保するためにメモリコントローラにおいて使用できる場合がある。メモリデバイス内の論理メモリ領域を異なるドメインに動的に割り当てることができる、802。異なるドメイン固有鍵は異なるドメインごとに入手することができ、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数である、804。各論理メモリ領域に書き込まれるコンテンツは、コンテンツを提供するマスターと、論理メモリ領域が割り当てられるドメインとに対応するドメイン固有鍵を用いて暗号化することができる、806。各論理メモリ領域から読み出されるコンテンツは、コンテンツを要求しているマスターと、コンテンツが記憶される論理メモリ領域が割り当てられるドメインとに対応するドメイン固有鍵を用いて、解読することができる、808。このようにして、第1の論理メモリ領域へのアクセスは、第1のメモリ領域が割り当てられた第1のドメイン内のマスターのみに制限することができる。
種々の実施態様において、ドメイン固有鍵は、動的に生成することができるか、またはあらかじめ生成された1組の鍵から動的に選択することができる。他の例では、ドメイン固有鍵は、メモリコントローラおよび/またはセキュアドプロセッサにおいて生成することができる。ドメイン固有鍵は、メモリコントローラのリセット時に自動的に変更することができる。ドメイン固有鍵は、セキュアメモリ空間に記憶することができる。一例では、メモリデバイスは、メモリコントローラの外部に存在することができる。
いくつかの例では、第1のメモリ領域内の第1のメモリページを、第1のドメイン固有鍵に関連付けることができ、第1のドメインに割り当てることができ、第1のメモリ領域内の第2のメモリページを、第2のドメイン固有鍵に関連付けることができ、第2のドメインに割り当てることができる。
一態様によれば、メモリコントローラは、第1の論理メモリ領域を第1のドメインから第2のドメインに動的に再割当てすることができ、第1のドメインおよび第2のドメインは異なるドメイン固有鍵に関連付けられる。第1のドメインから第2のドメインへの第1の論理メモリ領域の再割当ては、第1の論理メモリ領域からコンテンツを消去することなく行われる。
別の態様では、第1のドメイン固有鍵を第1の論理メモリ領域に関連付けることができ、第1のドメインおよび第2のドメインに割り当てることができ、第1のドメイン固有鍵は、少なくともマスター鍵と、第1のドメインからの第1のドメイン固有情報と、第2のドメインからの第2のドメイン固有情報との関数とすることができる。
図9は、暗号化/解読を統合したアクセス制御を用いるメモリコントローラを含む電子デバイスを示すブロック図である。電子デバイス902は、モバイル電話、ワイヤレス電話、パーソナルデジタルデバイス、デジタルテーブル、モバイルコンピューティングデバイス、ラップトップコンピュータ、デジタル音楽プレーヤおよび/またはストレージデバイス、デジタルメディアプレーヤおよび/またはストレージデバイスなどとすることができる。電子デバイス902は、処理回路904(たとえば、アプリケーション処理回路、セキュア処理回路など)、メモリコントローラ906、メモリデバイス908、通信回路912、オーディオ回路914、グラフィックス回路916、および/または入力/出力回路918を含むことができる。
通信回路912(たとえば、モデム、送受信機など)、オーディオ回路914(たとえば、オーディオシグナルプロセッサ、オーディオトランスデューサ出力、マイクロフォン入力など)、グラフィックス回路916(たとえば、ディスプレイデバイス、ビデオシグナルプロセッサなど)および/または入力/出力回路918(たとえば、キーパッド、キーボード、ユニバーサルシリアルバスインターフェースなど)は、処理回路904上で実行されるアプリケーションとともに、「ドメイン」と見なすことができる。さらに、メモリコントローラ906を含む、電子デバイスの構成要素のうちの1つまたは複数は、単一の回路および集積半導体回路の一部とすることができ、および/またはシステムオンチップとすることができる。通信回路912は、有線および/またはワイヤレスネットワーク920(たとえば、加入者ネットワーク、ブルートゥースリンクなど)への/からの通信を容易にする役割を果たすことができる。
メモリコントローラ906は、ドメイン固有鍵を用いて、メモリに送られる書込みデータを暗号化し、データから読み出されたメモリを解読する暗号化/解読を統合したアクセス制御を実施することができる。ドメイン固有鍵がメモリコントローラ906によって生成される一例では、ドメイン固有鍵は、マスター鍵および/またはドメイン固有情報に基づくことができる。別の例では、ドメイン固有鍵は、マスター鍵と、オプションでドメイン固有鍵とに基づいて、ソフトウェア(たとえば、セキュア処理回路またはプロセッサにおいて動作する)によって生成することができる。
図面に示す構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴、または機能に再構成および/または結合される場合があるか、あるいは、いくつかの構成要素、ステップまたは機能において具現される場合がある。本発明から逸脱することなく、さらなる要素、構成要素、ステップ、および/または機能を追加することもできる。図に示される装置、デバイス、および/または構成要素は、図において記載された方法、特徴、またはステップのうちの1つまたは複数を実行するように構成することができる。また、本明細書において説明されたアルゴリズムは、ソフトウェアにおいて効率的に実現することもでき、および/またはハードウェアに組み込むこともできる。
さらに、本開示の一態様では、図1および図9に示される処理回路は、図2、図3、図4、図5、図6、図7、および/または図8において説明されたアルゴリズム、方法、および/またはステップを実行するように特に設計かつ/または配線接続される専用プロセッサ(たとえば、特定用途向け集積回路(たとえば、ASIC))を含むことができる。したがって、そのような専用プロセッサ(たとえば、ASIC)は、図2、図3、図4、図5、図6、図7、および/または図8において説明されるアルゴリズム、方法、および/またはステップを実行するための手段の一例とすることができる。機械可読記憶媒体は、専用プロセッサ(たとえば、ASIC)によって実行されたときに、その専用プロセッサに本明細書において説明されるアルゴリズム、方法、および/またはステップを実行させる命令を記憶することができる。
また、本開示の態様は、流れ図、フロー図、構造図またはブロック図として示されるプロセスとして説明される場合があることに留意されたい。流れ図は動作を逐次プロセスとして説明する場合があるが、動作の多くは並行してまたは同時に実行することができる。さらに、動作の順序を並び替えてもよい。プロセスは、その動作が完了したとき、終了する。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応するとき、その終了は、呼び出す側の関数またはメイン関数への関数の戻りに対応する。
さらに、記憶媒体は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイスおよび/もしくは他の機械可読媒体、およびプロセッサ可読媒体、ならびに/または情報を記憶するためのコンピュータ可読媒体を含む、データを記憶するための1つもしくは複数のデバイスを表すことができる。「機械可読媒体」、「コンピュータ可読媒体」、および/または「プロセッサ可読媒体」という用語は、限定はしないが、ポータブルもしくは固定ストレージデバイス、光ストレージデバイス、ならびに、命令および/またはデータを記憶、格納または搬送することが可能な様々な他の媒体のような非一時的媒体を含むことができる。したがって、本明細書において説明される種々の方法は、「機械可読媒体」、「コンピュータ可読媒体」および/または「プロセッサ可読媒体」に記憶し、1つもしくは複数のプロセッサ、機械および/またはデバイスによって実行することができる命令および/またはデータによって、完全にまたは部分的に実現することができる。
さらに、本開示の態様は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せによって実現することができる。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードにおいて実現されるとき、必要なタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体または他のストレージのような機械可読媒体に記憶することができる。プロセッサは必要なタスクを実行することができる。コードセグメントは、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは命令、データ構造、またはプログラムステートメントの任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡す、および/または受信することによって、別のコードセグメントまたはハードウェア回路に結合される場合がある。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む任意の適切な手段を介して渡される場合があり、転送される場合があり、または送信される場合がある。
本明細書において開示された例に関連して説明される種々の例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理構成要素、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書に記載の機能を実行するように設計されたそれらの任意の組合せで実現または実行することができる。汎用プロセッサはマイクロプロセッサとすることができるが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることもできる。プロセッサはまた、コンピューティング構成要素の組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連係した1つまたは複数のマイクロプロセッサ、あるいは他の任意のそのような構成として実現することができる。
本明細書において開示される例に関連して説明される方法またはアルゴリズムを、ハードウェアで直接に、プロセッサによって実行可能なソフトウェアモジュールで、またはその両方の組合せで、処理ユニット、プログラミング命令、または他の指示の形で具現することができ、単一のデバイス内に含めるか、複数のデバイスにわたって分散させることができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において既知の任意の他の形の記憶媒体に存在することができる。プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、記憶媒体を、プロセッサに結合することができる。代替として、記憶媒体はプロセッサと一体に構成することができる。
本明細書において開示される複数の態様に関連して説明される種々の例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップを、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実施できることを、当業者であればさらに理解されよう。ハードウェアとソフトウェアとのこの相互交換可能性を明瞭に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、上では全般的にその機能性に関して説明された。そのような機能性が、ハードウェアまたはソフトウェアのどちらとして実施されるのかは、具体的な適用例と、システム全体に課せられる設計制約とによって決まる。
本明細書において記載される本発明の種々の特徴は、本発明から逸脱することなく、異なるシステムにおいて実施することができる。本開示の前述の態様は、単に例であり、本発明を限定するものとして解釈されるべきではないことに留意されたい。本開示の態様の説明は、例示であることを意図しており、特許請求の範囲を限定することを意図していない。したがって、本教示は、他のタイプの装置に容易に適用することが可能であり、多くの代替形態、変更形態、および変形形態が当業者には明らかであろう。
101 アプリケーションプロセッサ
102 システムオンチップ(SoC)
103 メモリコントローラ
104 暗号化/解読を伴うアクセス制御プロセッサ
105 セキュアドプロセッサ
106 オンチップメモリ
108a オーディオデバイス
108b グラフィックスデバイス
108c モデムデバイス
108d App-Aドメイン
108e App-Bドメイン
112 動的メモリ割当て回路/モジュール
114 アクセス制御回路/モジュール
116 ドメイン固有鍵発生器回路/モジュール
118 コンテンツ暗号化回路/モジュール
120 コンテンツ解読回路/モジュール
124 外部メモリデバイス
126a メモリ領域
126b メモリ領域
126c メモリ領域
130a ドメイン
130b ドメイン
130c ドメイン
202 グローバル鍵
203a ドメイン固有入力
203b ドメイン固有入力
203c ドメイン固有入力
204a アクセス制御設定
204b アクセス制御設定
204c アクセス制御設定
205a ドメインA
205b ドメインB
205c ドメインC
206 鍵導出機能
207a マスターA
207b マスターB
207c マスターn
208a ドメイン鍵
208b ドメイン鍵
208c ドメイン鍵
210a メモリ領域割当て
210b メモリ領域割当て
210c メモリ領域割当て
302 グローバル鍵
303a ドメイン固有入力
303b ドメイン固有入力
304a アクセス制御設定
304b アクセス制御設定
304c アクセス制御設定
305a ドメイン
305b ドメイン
305c ドメイン
306 鍵導出機能
307a マスター
307b マスター
307c マスター
307d マスター
308a ドメイン鍵
308b ドメイン鍵
310a メモリ領域割当て
310b メモリ領域割当て
310c メモリ領域割当て
400 マスター側アクセス制御
401 スレーブ側アクセス制御
402 グローバル鍵
403 メモリ管理ユニット
403a ドメイン固有入力
403b ドメイン固有入力
404a アクセス制御設定
404b アクセス制御設定
405a ドメイン
406 鍵導出機能
407a マスター
407b マスター
407c マスター
408a ドメイン鍵
408b ドメイン鍵
410a メモリページ
410b メモリページ
411 メモリ領域
412a ページテーブル
412b ページテーブル
502 ドメイン
504 メモリコントローラ
506 セキュアストレージ
508 外部メモリ
509 メモリ割当て段階
515 書込み動作
516 メモリ
523 読出し動作
524 読出し要求
902 電子デバイス
904 処理回路
906 メモリコントローラ
908 メモリデバイス
912 通信回路
914 オーディオ回路
916 グラフィックス回路
918 入力/出力回路
920 有線/ワイヤレスネットワーク

Claims (30)

  1. コンテンツのセキュリティを確保するためのメモリコントローラ内で使用できる方法であって、
    メモリデバイス内の論理メモリ領域を異なるドメインに割り当てるステップと、
    前記異なるドメインごとに異なるドメイン固有鍵を入手するステップであって、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数である、入手するステップと、
    各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域に書き込まれるコンテンツを、前記メモリコントローラにおいて暗号化するステップと
    を含む、方法。
  2. 前記コンテンツが記憶される各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域から読み出されるコンテンツを、前記メモリコントローラにおいて解読するステップとさらに含む、請求項1に記載の方法。
  3. 第1のメモリ領域が割り当てられる第1のドメインに関連付けられるすべてのマスターに対して、第1の論理メモリ領域へのアクセスを制限するステップをさらに含む、請求項1に記載の方法。
  4. 前記ドメイン固有鍵は生成されるか、またはあらかじめ生成された1組の鍵から選択される、請求項1に記載の方法。
  5. ドメイン内の1つまたは複数のマスターに対するアクセス許可を定義するステップをさらに含み、そのようなアクセス許可は、前記ドメイン固有鍵を生成するために用いられるドメイン固有情報としての役割を果たす、請求項1に記載の方法。
  6. 前記アクセス許可はアクセス制御設定内で定義され、前記ドメイン固有鍵に対する変更または更新は、割り当てられたメモリ領域の前記アクセス制御設定の変更によってトリガされる、請求項1に記載の方法。
  7. 前記メモリデバイスは前記メモリコントローラの外部にある、請求項1に記載の方法。
  8. 前記ドメイン固有鍵をセキュアメモリ空間に記憶するステップをさらに含む、請求項1に記載の方法。
  9. 前記メモリコントローラまたはセキュアドプロセッサにおいて前記ドメイン固有鍵を生成するステップをさらに含む、請求項1に記載の方法。
  10. 第1のメモリ領域内の第1のメモリページが第1のドメイン固有鍵に関連付けられ、第1のドメインに割り当てられ、前記第1のメモリ領域内の第2のページが第2のドメイン固有鍵に関連付けられ、第2のドメインに割り当てられる、請求項1に記載の方法。
  11. 第1の論理メモリ領域を第1のドメインから第2のドメインに動的に再割当てするステップをさらに含み、前記第1のドメインおよび前記第2のドメインは異なるドメイン固有鍵に関連付けられる、請求項1に記載の方法。
  12. 前記第1のドメインから前記第2のドメインへの前記第1の論理メモリ領域の前記再割当ては、前記第1の論理メモリ領域からコンテンツを消去することなく行われる、請求項11に記載の方法。
  13. 前記ドメイン固有鍵は、前記メモリコントローラのリセット時に自動的に変更される、請求項1に記載の方法。
  14. 第1のドメイン固有鍵が第1の論理メモリ領域に関連付けられ、第1のドメインおよび第2のドメインに割り当てられ、前記第1のドメイン固有鍵は、少なくともマスター鍵と、前記第1のドメインからの第1のドメイン固有情報と、前記第2のドメインからの第2のドメイン固有情報との関数である、請求項1に記載の方法。
  15. メモリコントローラであって、
    メモリデバイス内の論理メモリ領域を異なるドメインに割り当てるように構成されるメモリ割当て回路と、
    前記異なるドメインごとに異なるドメイン固有鍵を入手するように構成されるドメイン固有鍵発生器回路であって、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数である、ドメイン固有鍵発生器回路と、
    各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域に書き込まれるコンテンツを暗号化するように構成されるコンテンツ暗号化回路と
    を備える、メモリコントローラ。
  16. 前記コンテンツを要求するマスターと、前記コンテンツが記憶される各論理メモリ領域が割り当てられるドメインとに対応するドメイン固有鍵を用いて各論理メモリ領域から読み出されるコンテンツを解読するように構成されるコンテンツ解読回路をさらに備える、請求項15に記載のメモリコントローラ。
  17. 第1の論理メモリ領域へのアクセスを、第1のメモリ領域が割り当てられる第1のドメインに関連付けられる第1のマスターのみに制限するように構成されるアクセス制御回路をさらに備える、請求項15に記載のメモリコントローラ。
  18. 前記ドメイン固有鍵は動的に生成されるか、またはあらかじめ生成された1組の鍵から動的に選択される、請求項15に記載のメモリコントローラ。
  19. 前記メモリデバイスは前記メモリコントローラの外部にある、請求項15に記載のメモリコントローラ。
  20. 前記ドメイン固有鍵発生器回路は、前記ドメイン固有鍵をセキュアメモリ空間内に記憶するようにさらに構成される、請求項15に記載のメモリコントローラ。
  21. 前記ドメイン固有鍵発生器回路は、前記ドメイン固有鍵を前記メモリコントローラのみがアクセス可能なレジスタ内に記憶するようにさらに構成される、請求項15に記載のメモリコントローラ。
  22. 前記ドメイン固有回路は、前記メモリコントローラにおいて前記ドメイン固有鍵を生成するか、またはセキュアドプロセッサから前記ドメイン固有鍵を入手するように構成される、請求項15に記載のメモリコントローラ。
  23. 第1のメモリ領域内の第1のメモリページが第1のドメイン固有鍵に関連付けられ、第1のドメインに割り当てられ、前記第1のメモリ領域内の第2のページが第2のドメイン固有鍵に関連付けられ、第2のドメインに割り当てられる、請求項15に記載のメモリコントローラ。
  24. 前記メモリ割当て回路は、第1の論理メモリ領域を第1のドメインから第2のドメインに動的に再割当てするようにさらに構成され、前記第1のドメインおよび前記第2のドメインは異なるドメイン固有鍵に関連付けられる、請求項15に記載のメモリコントローラ。
  25. 前記第1のドメインから前記第2のドメインへの前記第1の論理メモリ領域の前記再割当ては、前記第1の論理メモリ領域からコンテンツを消去することなく行われる、請求項24に記載のメモリコントローラ。
  26. 前記ドメイン固有鍵は、前記メモリコントローラのリセット時に自動的に変更される、請求項15に記載のメモリコントローラ。
  27. 第1のドメイン固有鍵が第1の論理メモリ領域に関連付けられ、第1のドメインおよび第2のドメインに割り当てられ、前記第1のドメイン固有鍵は、少なくともマスター鍵と、前記第1のドメインからの第1のドメイン固有情報と、前記第2のドメインからの第2のドメイン固有情報との関数である、請求項15に記載のメモリコントローラ。
  28. メモリコントローラであって、
    メモリデバイス内の論理メモリ領域を異なるドメインに割り当てるための手段と、
    前記異なるドメインごとに異なるドメイン固有鍵を入手するための手段であって、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数である、入手するための手段と、
    各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域に書き込まれるコンテンツを、前記メモリコントローラにおいて暗号化するための手段と
    を備える、メモリコントローラ。
  29. 前記コンテンツが記憶される各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域から読み出されるコンテンツを、前記メモリコントローラにおいて解読するための手段とさらに備える、請求項28に記載のメモリコントローラ。
  30. 命令を記憶している非一時的機械可読記憶媒体であって、メモリコントローラ内の少なくとも1つのプロセッサによって実行されるときに、少なくとも1つのプロセッサに、
    メモリデバイス内の論理メモリ領域を異なるドメインに割り当てることと、
    前記異なるドメインごとに異なるドメイン固有鍵を入手することであって、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数である、入手することと、
    各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域に書き込まれるコンテンツを、前記メモリコントローラにおいて暗号化することと
    を行わせる、命令を記憶している非一時的機械可読記憶媒体。
JP2016518121A 2013-09-30 2014-09-29 異なるドメイン固有鍵を用いてコンテンツのセキュリティを確保するための方法 Active JP6203386B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/042,675 US9607177B2 (en) 2013-09-30 2013-09-30 Method for securing content in dynamically allocated memory using different domain-specific keys
US14/042,675 2013-09-30
PCT/US2014/058033 WO2015048636A1 (en) 2013-09-30 2014-09-29 Method for securing content using different domain-specific keys

Publications (3)

Publication Number Publication Date
JP2016541134A true JP2016541134A (ja) 2016-12-28
JP2016541134A5 JP2016541134A5 (ja) 2017-06-15
JP6203386B2 JP6203386B2 (ja) 2017-09-27

Family

ID=51866303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016518121A Active JP6203386B2 (ja) 2013-09-30 2014-09-29 異なるドメイン固有鍵を用いてコンテンツのセキュリティを確保するための方法

Country Status (7)

Country Link
US (1) US9607177B2 (ja)
EP (1) EP3053089B1 (ja)
JP (1) JP6203386B2 (ja)
KR (1) KR101833967B1 (ja)
CN (1) CN105580027B (ja)
BR (1) BR112016006943A2 (ja)
WO (1) WO2015048636A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020535693A (ja) * 2017-09-26 2020-12-03 シー−スカイ マイクロシステムズ カンパニー,リミテッド 記憶データ暗号化/復号化装置及び方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10205598B2 (en) * 2015-05-03 2019-02-12 Ronald Francis Sulpizio, JR. Temporal key generation and PKI gateway
US20170076106A1 (en) 2015-09-16 2017-03-16 Qualcomm Incorporated Apparatus and method to securely control a remote operation
US10523645B2 (en) * 2016-10-21 2019-12-31 Thales Esecurity, Inc. Method and system for protecting user data using individualized keys to enable secure compartmentalized data backup/restore
US10628058B1 (en) 2017-02-15 2020-04-21 Bank Of America Corporation System for electronic data verification, storage, and transfer
US20190004973A1 (en) * 2017-06-28 2019-01-03 Intel Corporation Multi-key cryptographic memory protection
WO2019066918A1 (en) * 2017-09-29 2019-04-04 Intel Corporation CRYPTOGRAPHIC MEMORY PROPERTY
US11182694B2 (en) * 2018-02-02 2021-11-23 Samsung Electronics Co., Ltd. Data path for GPU machine learning training with key value SSD
US10838773B2 (en) * 2018-03-30 2020-11-17 Intel Corporation Techniques for dynamic resource allocation among cryptographic domains
US11153094B2 (en) * 2018-04-27 2021-10-19 EMC IP Holding Company LLC Secure data deduplication with smaller hash values
US11256427B2 (en) * 2018-12-28 2022-02-22 Micron Technology, Inc. Unauthorized memory access mitigation
US11349639B2 (en) 2018-12-28 2022-05-31 ePIC Blockchain Technologies Inc. Circuit and method for overcoming memory bottleneck of ASIC-resistant cryptographic algorithms
US11188685B2 (en) * 2019-02-22 2021-11-30 Google Llc Secure transient buffer management
KR20210069473A (ko) 2019-12-03 2021-06-11 삼성전자주식회사 사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템
CN113496016A (zh) * 2020-04-08 2021-10-12 深圳市中兴微电子技术有限公司 一种内存的访问方法、系统级芯片和电子设备
CN112910639B (zh) * 2021-02-05 2022-06-24 北京邮电大学 多域场景下的量子加密业务传输方法及相关设备
EP4092556A1 (en) * 2021-05-20 2022-11-23 Nordic Semiconductor ASA Bus decoder
CN115085925B (zh) * 2022-08-19 2022-12-20 广州万协通信息技术有限公司 密钥信息组合加密的安全芯片处理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11505652A (ja) * 1996-03-22 1999-05-21 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 単一アドレス空間内の保護ドメイン
US20110293096A1 (en) * 2010-05-27 2011-12-01 Bladelogic, Inc. Multi-Level Key Management
WO2012011575A1 (ja) * 2010-07-23 2012-01-26 日本電信電話株式会社 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
WO2012047200A1 (en) * 2010-10-05 2012-04-12 Hewlett-Packard Development Company, L. P. Scrambling an address and encrypting write data for storing in a storage device
US20120257743A1 (en) * 2011-04-10 2012-10-11 Van Der Veen Peter H Multiple independent encryption domains

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305831A (ja) * 1999-04-22 2000-11-02 Tadamitsu Ryu 分散環境におけるファイル管理の方法、システム。
EP1154348B9 (en) * 2000-05-11 2007-06-13 Matsushita Electric Industrial Co., Ltd. File management apparatus
US6851056B2 (en) 2002-04-18 2005-02-01 International Business Machines Corporation Control function employing a requesting master id and a data address to qualify data access within an integrated system
US6715085B2 (en) 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US20080107275A1 (en) * 2006-11-08 2008-05-08 Mehdi Asnaashari Method and system for encryption of information stored in an external nonvolatile memory
CN101329658B (zh) * 2007-06-21 2012-12-05 西门子(中国)有限公司 加密、解密方法,及应用所述方法的plc系统
US8281154B2 (en) 2009-07-23 2012-10-02 International Business Machines Corporation Encrypting data in volatile memory
EP2375355A1 (en) 2010-04-09 2011-10-12 ST-Ericsson SA Method and device for protecting memory content
EP2482220A1 (en) 2011-01-27 2012-08-01 SafeNet, Inc. Multi-enclave token
US8886963B2 (en) 2011-09-15 2014-11-11 Apple Inc. Secure relocation of encrypted files

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11505652A (ja) * 1996-03-22 1999-05-21 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 単一アドレス空間内の保護ドメイン
US20110293096A1 (en) * 2010-05-27 2011-12-01 Bladelogic, Inc. Multi-Level Key Management
WO2012011575A1 (ja) * 2010-07-23 2012-01-26 日本電信電話株式会社 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
WO2012047200A1 (en) * 2010-10-05 2012-04-12 Hewlett-Packard Development Company, L. P. Scrambling an address and encrypting write data for storing in a storage device
US20120257743A1 (en) * 2011-04-10 2012-10-11 Van Der Veen Peter H Multiple independent encryption domains

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佐藤 亮太 ほか: "スマートフォンにおける利用環境に応じた機能制御機構の提案", 電子情報通信学会技術研究報告, vol. Vol.111 No.470, JPN6017027837, 1 March 2012 (2012-03-01), JP, pages pp.61−66 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020535693A (ja) * 2017-09-26 2020-12-03 シー−スカイ マイクロシステムズ カンパニー,リミテッド 記憶データ暗号化/復号化装置及び方法
JP7225220B2 (ja) 2017-09-26 2023-02-20 シー-スカイ マイクロシステムズ カンパニー,リミテッド 記憶データ暗号化/復号化装置及び方法

Also Published As

Publication number Publication date
KR20160061396A (ko) 2016-05-31
CN105580027A (zh) 2016-05-11
US9607177B2 (en) 2017-03-28
EP3053089A1 (en) 2016-08-10
BR112016006943A2 (pt) 2017-08-01
KR101833967B1 (ko) 2018-03-02
JP6203386B2 (ja) 2017-09-27
WO2015048636A1 (en) 2015-04-02
EP3053089B1 (en) 2020-04-22
CN105580027B (zh) 2019-03-29
US20150095662A1 (en) 2015-04-02

Similar Documents

Publication Publication Date Title
JP6203386B2 (ja) 異なるドメイン固有鍵を用いてコンテンツのセキュリティを確保するための方法
JP6804665B2 (ja) ハイパーバイザと仮想マシンとの間のメモリページ遷移の監視
US9397834B2 (en) Scrambling an address and encrypting write data for storing in a storage device
US10261919B2 (en) Selective memory encryption
TWI570589B (zh) 用以提供受信任計算之裝置
US9898624B2 (en) Multi-core processor based key protection method and system
JP4940460B2 (ja) 処理システム、方法およびデバイス
US20150294123A1 (en) System and method for sharing data securely
US8347114B2 (en) Method and apparatus for enforcing a predetermined memory mapping
US20120260106A1 (en) System and method for binary layout randomization
KR20080100673A (ko) 암호화 기반의 프로세서 보안 방법 및 장치
US9756048B2 (en) System and methods for executing encrypted managed programs
US10482039B2 (en) Method and device for protecting dynamic random access memory
EP2375355A1 (en) Method and device for protecting memory content
JP2019532559A (ja) ハードウェアアクアクセラレーテッド暗号法のためのキーのスレッド所有権
JP2009290331A (ja) データ保護システム、データ保護方法、及びメモリカード
CN111566650A (zh) 管理加密系统中的密码术密钥集合
US10303885B2 (en) Methods and systems for securely executing untrusted software
US20130198528A1 (en) Modifying a Length of an Element to Form an Encryption Key
KR20170138412A (ko) 장치의 시스템 온 칩의 보안 모듈로의 복수의 액세스를 관리하기 위한 디바이스
EP2387752A1 (en) Establishing a secure memory path in a unitary memory architecture
WO2020171844A1 (en) Secure transient buffer management
WO2016065517A1 (zh) 加密存储区域设置方法、加密存储区域设置装置和终端

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170502

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170502

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170502

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170712

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: 20170731

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170829

R150 Certificate of patent or registration of utility model

Ref document number: 6203386

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250