(57)【要約】  メモリに記憶されるコンテンツのセキュリティを確保するためにメモリコントローラ内で使用できる方法が提供される。メモリコントローラは、メモリデバイス内の論理メモリ領域を異なるドメインに割り当てることができる。異なるドメインごとに異なるドメイン固有鍵が入手され、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数である。書込み動作中に、コンテンツ/データが各論理メモリ領域に書き込まれるときに、コンテンツを提供し、論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、メモリコントローラにおいてコンテンツ/データが暗号化される。同様に、読出し動作中に、コンテンツ/データが各論理メモリ領域から読み出されるときに、コンテンツを要求し、コンテンツが記憶される論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、メモリコントローラにおいてコンテンツ/データが解読される。
2016541134.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツのセキュリティを確保するためのメモリコントローラ内で使用できる方法であって、
メモリデバイス内の論理メモリ領域を異なるドメインに割り当てるステップと、
前記異なるドメインごとに異なるドメイン固有鍵を入手するステップであって、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数である、入手するステップと、
各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域に書き込まれるコンテンツを、前記メモリコントローラにおいて暗号化するステップと
を含む、方法。
【請求項２】
前記コンテンツが記憶される各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域から読み出されるコンテンツを、前記メモリコントローラにおいて解読するステップとさらに含む、請求項1に記載の方法。
【請求項３】
第1のメモリ領域が割り当てられる第1のドメインに関連付けられるすべてのマスターに対して、第1の論理メモリ領域へのアクセスを制限するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記ドメイン固有鍵は生成されるか、またはあらかじめ生成された1組の鍵から選択される、請求項1に記載の方法。
【請求項５】
ドメイン内の1つまたは複数のマスターに対するアクセス許可を定義するステップをさらに含み、そのようなアクセス許可は、前記ドメイン固有鍵を生成するために用いられるドメイン固有情報としての役割を果たす、請求項1に記載の方法。
【請求項６】
前記アクセス許可はアクセス制御設定内で定義され、前記ドメイン固有鍵に対する変更または更新は、割り当てられたメモリ領域の前記アクセス制御設定の変更によってトリガされる、請求項1に記載の方法。
【請求項７】
前記メモリデバイスは前記メモリコントローラの外部にある、請求項1に記載の方法。
【請求項８】
前記ドメイン固有鍵をセキュアメモリ空間に記憶するステップをさらに含む、請求項1に記載の方法。
【請求項９】
前記メモリコントローラまたはセキュアドプロセッサにおいて前記ドメイン固有鍵を生成するステップをさらに含む、請求項1に記載の方法。
【請求項１０】
第1のメモリ領域内の第1のメモリページが第1のドメイン固有鍵に関連付けられ、第1のドメインに割り当てられ、前記第1のメモリ領域内の第2のページが第2のドメイン固有鍵に関連付けられ、第2のドメインに割り当てられる、請求項1に記載の方法。
【請求項１１】
第1の論理メモリ領域を第1のドメインから第2のドメインに動的に再割当てするステップをさらに含み、前記第1のドメインおよび前記第2のドメインは異なるドメイン固有鍵に関連付けられる、請求項1に記載の方法。
【請求項１２】
前記第1のドメインから前記第2のドメインへの前記第1の論理メモリ領域の前記再割当ては、前記第1の論理メモリ領域からコンテンツを消去することなく行われる、請求項11に記載の方法。
【請求項１３】
前記ドメイン固有鍵は、前記メモリコントローラのリセット時に自動的に変更される、請求項1に記載の方法。
【請求項１４】
第1のドメイン固有鍵が第1の論理メモリ領域に関連付けられ、第1のドメインおよび第2のドメインに割り当てられ、前記第1のドメイン固有鍵は、少なくともマスター鍵と、前記第1のドメインからの第1のドメイン固有情報と、前記第2のドメインからの第2のドメイン固有情報との関数である、請求項1に記載の方法。
【請求項１５】
メモリコントローラであって、
メモリデバイス内の論理メモリ領域を異なるドメインに割り当てるように構成されるメモリ割当て回路と、
前記異なるドメインごとに異なるドメイン固有鍵を入手するように構成されるドメイン固有鍵発生器回路であって、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数である、ドメイン固有鍵発生器回路と、
各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域に書き込まれるコンテンツを暗号化するように構成されるコンテンツ暗号化回路と
を備える、メモリコントローラ。
【請求項１６】
前記コンテンツを要求するマスターと、前記コンテンツが記憶される各論理メモリ領域が割り当てられるドメインとに対応するドメイン固有鍵を用いて各論理メモリ領域から読み出されるコンテンツを解読するように構成されるコンテンツ解読回路をさらに備える、請求項15に記載のメモリコントローラ。
【請求項１７】
第1の論理メモリ領域へのアクセスを、第1のメモリ領域が割り当てられる第1のドメインに関連付けられる第1のマスターのみに制限するように構成されるアクセス制御回路をさらに備える、請求項15に記載のメモリコントローラ。
【請求項１８】
前記ドメイン固有鍵は動的に生成されるか、またはあらかじめ生成された1組の鍵から動的に選択される、請求項15に記載のメモリコントローラ。
【請求項１９】
前記メモリデバイスは前記メモリコントローラの外部にある、請求項15に記載のメモリコントローラ。
【請求項２０】
前記ドメイン固有鍵発生器回路は、前記ドメイン固有鍵をセキュアメモリ空間内に記憶するようにさらに構成される、請求項15に記載のメモリコントローラ。
【請求項２１】
前記ドメイン固有鍵発生器回路は、前記ドメイン固有鍵を前記メモリコントローラのみがアクセス可能なレジスタ内に記憶するようにさらに構成される、請求項15に記載のメモリコントローラ。
【請求項２２】
前記ドメイン固有回路は、前記メモリコントローラにおいて前記ドメイン固有鍵を生成するか、またはセキュアドプロセッサから前記ドメイン固有鍵を入手するように構成される、請求項15に記載のメモリコントローラ。
【請求項２３】
第1のメモリ領域内の第1のメモリページが第1のドメイン固有鍵に関連付けられ、第1のドメインに割り当てられ、前記第1のメモリ領域内の第2のページが第2のドメイン固有鍵に関連付けられ、第2のドメインに割り当てられる、請求項15に記載のメモリコントローラ。
【請求項２４】
前記メモリ割当て回路は、第1の論理メモリ領域を第1のドメインから第2のドメインに動的に再割当てするようにさらに構成され、前記第1のドメインおよび前記第2のドメインは異なるドメイン固有鍵に関連付けられる、請求項15に記載のメモリコントローラ。
【請求項２５】
前記第1のドメインから前記第2のドメインへの前記第1の論理メモリ領域の前記再割当ては、前記第1の論理メモリ領域からコンテンツを消去することなく行われる、請求項24に記載のメモリコントローラ。
【請求項２６】
前記ドメイン固有鍵は、前記メモリコントローラのリセット時に自動的に変更される、請求項15に記載のメモリコントローラ。
【請求項２７】
第1のドメイン固有鍵が第1の論理メモリ領域に関連付けられ、第1のドメインおよび第2のドメインに割り当てられ、前記第1のドメイン固有鍵は、少なくともマスター鍵と、前記第1のドメインからの第1のドメイン固有情報と、前記第2のドメインからの第2のドメイン固有情報との関数である、請求項15に記載のメモリコントローラ。
【請求項２８】
メモリコントローラであって、
メモリデバイス内の論理メモリ領域を異なるドメインに割り当てるための手段と、
前記異なるドメインごとに異なるドメイン固有鍵を入手するための手段であって、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数である、入手するための手段と、
各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域に書き込まれるコンテンツを、前記メモリコントローラにおいて暗号化するための手段と
を備える、メモリコントローラ。
【請求項２９】
前記コンテンツが記憶される各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域から読み出されるコンテンツを、前記メモリコントローラにおいて解読するための手段とさらに備える、請求項28に記載のメモリコントローラ。
【請求項３０】
命令を記憶している非一時的機械可読記憶媒体であって、メモリコントローラ内の少なくとも1つのプロセッサによって実行されるときに、少なくとも1つのプロセッサに、
メモリデバイス内の論理メモリ領域を異なるドメインに割り当てることと、
前記異なるドメインごとに異なるドメイン固有鍵を入手することであって、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数である、入手することと、
各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域に書き込まれるコンテンツを、前記メモリコントローラにおいて暗号化することと
を行わせる、命令を記憶している非一時的機械可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その内容全体が参照によって本明細書に組み込まれる、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  有線/ワイヤレスネットワーク
【図１】
2016541134.tif 000003
【図２】
2016541134.tif 000004
【図３】
2016541134.tif 000005
【図４Ａ】
2016541134.tif 000006
【図４Ｂ】
2016541134.tif 000007
【図５Ａ】
2016541134.tif 000008
【図５Ｂ】
2016541134.tif 000009
【図６】
2016541134.tif 000010
【図７】
2016541134.tif 000011
【図８】
2016541134.tif 000012
【図９】
2016541134.tif 000013
【手続補正書】
【提出日】平成28年4月4日(2016.4.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンテンツのセキュリティを確保するためのメモリコントローラ内で使用できる方法であって、
メモリデバイス内の論理メモリ領域を異なるドメインに割り当てるステップと、
ドメイン内の1つまたは複数のマスターに対するアクセス許可を定義するステップと、
前記異なるドメインごとに異なるドメイン固有鍵を入手するステップであって、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数であり、前記ドメイン固有情報は前記アクセス許可を含む、入手するステップと、
各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域に書き込まれるコンテンツを、前記メモリコントローラにおいて暗号化するステップと
を含む、方法。
【請求項２】
前記コンテンツが記憶される各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域から読み出されるコンテンツを、前記メモリコントローラにおいて解読するステップとさらに含む、請求項1に記載の方法。
【請求項３】
第1のメモリ領域が割り当てられる第1のドメインに関連付けられるすべてのマスターに対して、第1の論理メモリ領域へのアクセスを制限するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記ドメイン固有鍵は生成されるか、またはあらかじめ生成された1組の鍵から選択される、請求項1に記載の方法。
【請求項５】
前記アクセス許可はアクセス制御設定内で定義され、前記ドメイン固有鍵に対する変更または更新は、割り当てられたメモリ領域の前記アクセス制御設定の変更によってトリガされる、請求項1に記載の方法。
【請求項６】
前記メモリデバイスは前記メモリコントローラの外部にある、請求項1に記載の方法。
【請求項７】
前記ドメイン固有鍵をセキュアメモリ空間に記憶するステップをさらに含む、請求項1に記載の方法。
【請求項８】
前記メモリコントローラまたはセキュアドプロセッサにおいて前記ドメイン固有鍵を生成するステップをさらに含む、請求項1に記載の方法。
【請求項９】
第1のメモリ領域内の第1のメモリページが第1のドメイン固有鍵に関連付けられ、第1のドメインに割り当てられ、前記第1のメモリ領域内の第2のページが第2のドメイン固有鍵に関連付けられ、第2のドメインに割り当てられる、請求項1に記載の方法。
【請求項１０】
第1の論理メモリ領域を第1のドメインから第2のドメインに動的に再割当てするステップをさらに含み、前記第1のドメインおよび前記第2のドメインは異なるドメイン固有鍵に関連付けられる、請求項1に記載の方法。
【請求項１１】
前記第1のドメインから前記第2のドメインへの前記第1の論理メモリ領域の前記再割当ては、前記第1の論理メモリ領域からコンテンツを消去することなく行われる、請求項10に記載の方法。
【請求項１２】
前記ドメイン固有鍵は、前記メモリコントローラのリセット時に自動的に変更される、請求項1に記載の方法。
【請求項１３】
第1のドメイン固有鍵が第1の論理メモリ領域に関連付けられ、第1のドメインおよび第2のドメインに割り当てられ、前記第1のドメイン固有鍵は、少なくともマスター鍵と、前記第1のドメインからの第1のドメイン固有情報と、前記第2のドメインからの第2のドメイン固有情報との関数である、請求項1に記載の方法。
【請求項１４】
メモリコントローラであって、
メモリデバイス内の論理メモリ領域を異なるドメインに割り当てるように構成されるメモリ割当て回路と、
ドメイン内の1つまたは複数のマスターに対するアクセス許可を定義するように構成されるアクセス制御回路と、
前記異なるドメインごとに異なるドメイン固有鍵を入手するように構成されるドメイン固有鍵発生器回路であって、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数であり、前記ドメイン固有情報は前記アクセス許可を含む、ドメイン固有鍵発生器回路と、
各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域に書き込まれるコンテンツを暗号化するように構成されるコンテンツ暗号化回路と
を備える、メモリコントローラ。
【請求項１５】
前記コンテンツを要求するマスターと、前記コンテンツが記憶される各論理メモリ領域が割り当てられるドメインとに対応するドメイン固有鍵を用いて各論理メモリ領域から読み出されるコンテンツを解読するように構成されるコンテンツ解読回路をさらに備える、請求項14に記載のメモリコントローラ。
【請求項１６】
第1の論理メモリ領域へのアクセスを、第1のメモリ領域が割り当てられる第1のドメインに関連付けられる第1のマスターのみに制限するようにさらに構成されるアクセス制御回路をさらに備える、請求項14に記載のメモリコントローラ。
【請求項１７】
前記ドメイン固有鍵は動的に生成されるか、またはあらかじめ生成された1組の鍵から動的に選択される、請求項14に記載のメモリコントローラ。
【請求項１８】
前記メモリデバイスは前記メモリコントローラの外部にある、請求項14に記載のメモリコントローラ。
【請求項１９】
前記ドメイン固有鍵発生器回路は、前記ドメイン固有鍵をセキュアメモリ空間内に記憶するようにさらに構成される、請求項14に記載のメモリコントローラ。
【請求項２０】
前記ドメイン固有鍵発生器回路は、前記ドメイン固有鍵を前記メモリコントローラのみがアクセス可能なレジスタ内に記憶するようにさらに構成される、請求項14に記載のメモリコントローラ。
【請求項２１】
前記ドメイン固有回路は、前記メモリコントローラにおいて前記ドメイン固有鍵を生成するか、またはセキュアドプロセッサから前記ドメイン固有鍵を入手するように構成される、請求項14に記載のメモリコントローラ。
【請求項２２】
第1のメモリ領域内の第1のメモリページが第1のドメイン固有鍵に関連付けられ、第1のドメインに割り当てられ、前記第1のメモリ領域内の第2のページが第2のドメイン固有鍵に関連付けられ、第2のドメインに割り当てられる、請求項14に記載のメモリコントローラ。
【請求項２３】
前記メモリ割当て回路は、第1の論理メモリ領域を第1のドメインから第2のドメインに動的に再割当てするようにさらに構成され、前記第1のドメインおよび前記第2のドメインは異なるドメイン固有鍵に関連付けられる、請求項14に記載のメモリコントローラ。
【請求項２４】
前記第1のドメインから前記第2のドメインへの前記第1の論理メモリ領域の前記再割当ては、前記第1の論理メモリ領域からコンテンツを消去することなく行われる、請求項23に記載のメモリコントローラ。
【請求項２５】
前記ドメイン固有鍵は、前記メモリコントローラのリセット時に自動的に変更される、請求項14に記載のメモリコントローラ。
【請求項２６】
第1のドメイン固有鍵が第1の論理メモリ領域に関連付けられ、第1のドメインおよび第2のドメインに割り当てられ、前記第1のドメイン固有鍵は、少なくともマスター鍵と、前記第1のドメインからの第1のドメイン固有情報と、前記第2のドメインからの第2のドメイン固有情報との関数である、請求項14に記載のメモリコントローラ。
【請求項２７】
メモリコントローラであって、
メモリデバイス内の論理メモリ領域を異なるドメインに割り当てるための手段と、
ドメイン内の1つまたは複数のマスターに対するアクセス許可を定義するための手段と、
前記異なるドメインごとに異なるドメイン固有鍵を入手するための手段であって、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数であり、前記ドメイン固有情報は前記アクセス許可を含む、入手するための手段と、
各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域に書き込まれるコンテンツを、前記メモリコントローラにおいて暗号化するための手段と
を備える、メモリコントローラ。
【請求項２８】
前記コンテンツが記憶される各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域から読み出されるコンテンツを、前記メモリコントローラにおいて解読するための手段とさらに備える、請求項27に記載のメモリコントローラ。
【請求項２９】
命令を記憶している非一時的機械可読記憶媒体であって、メモリコントローラ内の少なくとも1つのプロセッサによって実行されるときに、少なくとも1つのプロセッサに、
メモリデバイス内の論理メモリ領域を異なるドメインに割り当てることと、
ドメイン内の1つまたは複数のマスターに対するアクセス許可を定義することと、
前記異なるドメインごとに異なるドメイン固有鍵を入手することであって、各ドメイン固有鍵は、少なくともマスター鍵と、ドメイン固有情報との関数であり、前記ドメイン固有情報は前記アクセス許可を含む、入手することと、
各論理メモリ領域が割り当てられるドメインに対応するドメイン固有鍵を用いて、各論理メモリ領域に書き込まれるコンテンツを、前記メモリコントローラにおいて暗号化することと
を行わせる、命令を記憶している非一時的機械可読記憶媒体。
【国際調査報告】
2016541134.tif 000014
2016541134.tif 000015
2016541134.tif 000016