(57)【要約】      （修正有）【課題】低コストな永続的メモリへデータを安全に格納するシステムを提供する。【解決手段】メモリコントローラ１００は暗号鍵でデータを暗号化すべく構成され、暗号化データは永続的メモリ１１５に格納される。メモリコントローラ１００はさらに、リセットイベントに応答して、暗号鍵を変更および／または破壊すべく構成される。【効果】たとえ暗号化データを永続的メモリ１１５から取り出しても、暗号／復号鍵は使用できず、データの復号化を不可能とする。【選択図】図１
2015070608.tif 000002
【特許請求の範囲】
【請求項１】
暗号鍵を変更する装置であって、
リセットイベントに応答して、永続的メモリにデータを格納する前に前記データを暗号化する目的で用いられた暗号鍵を変更または破壊するメモリコントローラを備え、
前記永続的メモリは前記メモリコントローラによって制御される
装置。
【請求項２】
前記メモリコントローラに連結される前記永続的メモリをさらに備える
請求項１に記載の装置。
【請求項３】
前記暗号鍵を格納する格納メモリをさらに備える
請求項１に記載の装置。
【請求項４】
前記格納メモリは前記メモリコントローラに連結される揮発性メモリを備える
請求項３に記載の装置。
【請求項５】
前記格納メモリは前記永続的メモリの複数の非連続レジスタを含み、前記暗号鍵は前記複数の非連続レジスタの１または複数に格納される
請求項３に記載の装置。
【請求項６】
前記メモリコントローラは前記暗号鍵をゼロ化して前記暗号鍵を破壊する
請求項１から５のいずれか１項に記載の装置。
【請求項７】
前記メモリコントローラはさらに、前記リセットイベントに応答して、前記暗号鍵と相補的な復号鍵を変更または破壊する
請求項１から５のいずれか１項に記載の装置。
【請求項８】
前記リセットイベントは、電源喪失イベント、シャットダウンイベントまたはリスタートイベントを含む
請求項１から５のいずれか１項に記載の装置。
【請求項９】
暗号化データを格納する方法であって、
メモリコントローラが、少なくとも一部は暗号鍵に基づきデータを暗号化して暗号化データを作成する段階と、
前記メモリコントローラが、不揮発性メモリに前記暗号化データを格納する段階と、
前記メモリコントローラが、リセットイベントのインジケーションを受信する段階と、
前記メモリコントローラが、前記リセットイベントの前記インジケーションの受信に応答して、前記暗号鍵を破壊する段階と、を備える
方法。
【請求項１０】
破壊する段階は前記暗号鍵を上書する段階を備える
請求項９に記載の方法。
【請求項１１】
破壊する段階は前記暗号鍵をゼロ化する段階を備える
請求項９に記載の方法。
【請求項１２】
破壊する段階はさらに、前記リセットイベントに応答して、前記暗号鍵と相補的な復号鍵を破壊する段階を備える
請求項９から１１のいずれか１項に記載の方法。
【請求項１３】
前記リセットイベントは、電源喪失イベント、シャットダウンイベントまたはリスタートイベントである
請求項９から１１のいずれか１項に記載の方法。
【請求項１４】
暗号化データを格納するシステムであって、
暗号化データを格納する永続的メモリと、
前記永続的メモリに連結されるメモリコントローラであって、
リセットイベントのインジケーションを受信し、
前記リセットイベントの前記インジケーションに応答して、前記永続的メモリに前記暗号化データを格納する前にデータを暗号化する目的で用いられた暗号鍵を破壊するメモリコントローラと、を備える
システム。
【請求項１５】
前記メモリコントローラはさらに、前記暗号鍵をゼロ化して前記暗号鍵を破壊する
請求項１４に記載のシステム。
【請求項１６】
前記メモリコントローラはさらに、前記暗号鍵または前記暗号鍵と相補的な復号鍵で前記暗号化データを復号化する
請求項１４または１５に記載のシステム。
【請求項１７】
前記メモリコントローラはさらに、前記リセットイベントに応答して、前記暗号鍵と相補的な復号鍵を破壊する
請求項１４または１５に記載のシステム。
【請求項１８】
前記リセットイベントは、電源喪失イベント、シャットダウンイベントまたはリスタートイベントである
請求項１４または１５に記載のシステム。
【請求項１９】
暗号鍵を破壊する装置であって、
リセットイベントのインジケーションを受信する手段と、
前記リセットイベントの前記インジケーションに応答して、永続的メモリにデータを格納する前に前記データを暗号化する目的で用いられた暗号鍵を破壊する手段と、を備える
装置。
【請求項２０】
前記破壊する手段は、前記暗号鍵をゼロ化して前記暗号鍵を破壊する手段を含む
請求項１９に記載の装置。
【請求項２１】
前記暗号鍵または前記暗号鍵と相補的な復号鍵で暗号化データを復号化する手段をさらに備える
請求項１９または２０に記載の装置。
【請求項２２】
前記リセットイベントに応答して、前記暗号鍵と相補的な復号鍵を破壊する手段をさらに備える
請求項１９または２０に記載の装置。
【請求項２３】
前記リセットイベントは、電源喪失イベント、シャットダウンイベントまたはリスタートイベントである
請求項１９または２０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は概してメモリの技術分野に関する。特定の実施形態は、永続的（不揮発）メモリを安全に用いて揮発メモリをエミュレートする方法を含む。
【背景技術】
【０００２】
本開示の背景を概して提示する目的で、本明細書に背景技術を記載する。ここに名を挙げられている発明者の研究は、背景技術の章で説明される範囲において、出願時に従来技術として別途みなし得ない記述の態様とともに、明示的にも暗示的にも本開示に対して従来技術とは認められない。本明細書中に示されない限り、この章で説明されるアプローチは本開示の請求項に対する先行技術ではなく、この章に含まれることで先行技術であると認められるものでもない。
【０００３】
現在、コンピューティングデバイスは１または複数個のダイナミックランダムアクセスメモリ（ＤＲＡＭ）またはその他のタイプの揮発性メモリと呼ばれる揮発性メモリを含み得る。揮発性メモリは、あるシステムイベントの発生に際して失われてもよいデータを格納すべく構成され得る。多くの場合、これらのシステムイベントは、システムのリセットイベント、システムのシャットダウンイベントまたはその他のシステムイベントなど、電源に関係したものであり得る。
【０００４】
揮発性メモリに格納されたデータは、システムの電源イベントが発生すると失われる、または変更され得るので、揮発性メモリはシステムメモリとして使用されるのによく適し得る。すなわち、ワードプロセッシングなどのアプリケーションの情報または表計算アプリケーションの情報などのシステム情報は、コンピューティングシステムの動作中はＤＲＡＭに格納され得るということである。複数の実施形態において、システムメモリとして揮発性メモリを使うと、比較的安全であると考えられ得る。なぜなら、以後永続しなくともよい、揮発性メモリに格納されるシステム情報は、システムの電源イベントの発生で失われてもよい（もはやアクセスできなくともよい）からである。
【図面の簡単な説明】
【０００５】
添付の図面と併せて、以下の詳細な説明により、複数の実施形態が容易に理解されるであろう。説明し易くするために、同じ参照番号は同じ構成要素を指す。複数の実施形態は、例として説明されるのであり、添付の図面の図に限定するものとしてではない。
【０００６】
【図１】さまざまな実施形態による、メモリコントローラの例を示す。
【図２】さまざまな実施形態による、永続的メモリにデータを格納する処理の例を示す。
【図３】さまざまな実施形態による、永続的メモリに格納されたデータを復号化する処理の例を示す。
【図４】さまざまな実施形態による、本明細書中で記載される方法を実行すべく構成されたシステムの例を示す。
【発明を実施するための形態】
【０００７】
以下の詳細な説明においては、添付の図面を参照する。添付の図面は本明細書の一部を成し、全体にわたって同じ番号は同じ部分を示しており、実施され得る実施形態が例示として示されている。他の実施形態が使用され、本開示の範囲から逸脱することなく、構造的または論理的な変更が成され得ることは理解されよう。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきでなく、実施形態の範囲は添付の特許請求の範囲およびそれと等価なものによって定義される。
【０００８】
永続的メモリにデータを安全に格納することに関連する装置、方法および記憶媒体が本明細書で記載される。通常は揮発性メモリに格納され得るデータを、永続的メモリを使用し格納すれば、揮発性メモリを使用するよりも低コストでより大きなメモリ容量を供給し得る。しかしながら、いくつかの場合において、データが揮発性メモリに格納される場合であれば失われる、または破壊されるような状況において、永続的メモリはデータを保持し得る。
【０００９】
複数の実施形態において、メモリコントローラは、システムのリセットイベントが発生してアクセスできなくなり得るデータを安全に格納することで、永続的メモリが揮発メモリをエミュレートできるように構成され得る。具体的には、メモリコントローラは暗号鍵を生成し、その暗号鍵でデータを暗号化し得る。そして暗号化データは永続的メモリに格納され得る。暗号鍵は永続的メモリまたは揮発性メモリのいずれかに格納され得る。いくつかの実施形態で、メモリコントローラは暗号鍵を用いて、永続的メモリにすでに格納されたデータを暗号化すべく構成され得る。システムがシステムのシャットダウン、リスタートまたは電源喪失などのリセットイベントを経験すると、暗号鍵および／または、暗号鍵から導出される復号鍵は変更または破壊され得る。その結果、たとえ暗号化データを永続的メモリから取り出す、またはアクセスできても、暗号／復号鍵が使用できないので、データの復号化は不可能といえる。それゆえ、永続的メモリへデータを格納すると、揮発性メモリへ格納する場合のセキュリティ上の利点と、低コストでメモリ容量を増やすといった永続的メモリの利点とを合わせて経験し得る。
【００１０】
さまざまなオペレーションを、クレームされた主題の理解を最も助ける方法で、順に、複数の別個の動作またはオペレーションとして説明するであろう。しかしながら、その説明の順序を、これらのオペレーションが必ず順序に依存すると暗示しているものと解釈するべきではない。具体的に、これらのオペレーションは提示の順に実行されなくともよい。説明されるオペレーションは、説明される実施形態とは異なる順序で実行され得る。追加でさまざまなオペレーションが実行され得て、および／または、説明されるオペレーションは追加の実施形態においては省略され得る。
【００１１】
本開示の目的のために、「Ａおよび／またはＢ」および「ＡまたはＢ」という表現は、（Ａ）、（Ｂ）または（ＡおよびＢ）を意味する。本開示の目的のために、「Ａ、Ｂ、および／またはＣ」という表現は、（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ）（ＢおよびＣ）、または（Ａ、ＢおよびＣ）を意味する。
【００１２】
説明には、「一実施形態において」または「複数の実施形態において」という表現を用いるであろう。それぞれは、同じまたは異なる実施形態のうちの１または複数のことを指し得る。さらに、本開示の実施形態に関して使用される、「備える（ｃｏｍｐｒｉｓｉｎｇ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、などの用語は同義である。
【００１３】
本明細書で使用されるように、「モジュール」という用語は、特定用途向け集積回路（ＡＳＩＣ）、電子回路、１または複数のソフトウェアまたはファームウェアプログラムを実行するプロセッサ（共有、専用、またはグループ）および／またはメモリ（共有、専用、またはグループ）、組み合わせ論理回路、および／または説明される機能を提供する他の適したコンポーネント、を指すか、の一部であるか、または含み得る。本明細書で使用されるように「コンピュータで実施される方法」とは、１または複数のプロセッサ、１または複数のプロセッサを有するコンピュータシステム、（１または複数のプロセッサを含み得る）スマートフォン、タブレット、ラップトップコンピュータ、セットトップボックス、ゲームコンソールなどのモバイルデバイス、などによって実行される任意の方法を指し得る。
【００１４】
図１は、プロセッサ１０２および永続的メモリ１１５に連結され得るメモリコントローラ１００を例示している。いくつかの実施形態において、永続的メモリ１１５は、例えば不揮発性メモリと呼ばれてもよく、永続的メモリは、強誘電体ランダムアクセスメモリ（ＦｅＴＲＡＭ）、ナノワイヤベースの不揮発性メモリ、相変化メモリ（ＰＣＭ）などの三次元（３Ｄ）クロスポイントメモリ、バイトアドレッシング可能クロスポイントメモリ、メモリスタ技術を組み込んだメモリ、磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ），スピントランスファートルク（ＳＴＴ）ＭＲＡＭ、または、システムメモリとして使用され得る他のタイプの不揮発性メモリであってよい。メモリコントローラ１００は乱数生成器１０５を備え得る。いくつかの実施形態において、乱数生成器１０５はデジタル乱数生成器、または任意のタイプのハードウェア乱数生成器、ソフトウェア乱数生成器、またはファームウェア乱数生成器であってよい。いくつかの実施形態において、乱数生成器１０５は２５６ビットのＡＥＳ（ａｄｖａｎｃｅｄ  ｅｎｃｒｙｐｔｉｏｎ  ｓｔａｎｄａｒｄ）鍵ペアなどのＡＥＳ鍵を生成すべく構成され得る。他の実施形態においては、乱数生成器１０５は乱数または疑似乱数を生成すべく構成されてもよい。いくつかの実施形態において、乱数生成器１０５は、Ｗｉｃｈｍａｎｎ−Ｈｉｌｌ  ＰＲＮＧ、線形フィードバックシフトレジスタ、メルセンヌツイスタ、Ｎａｏｒ−Ｒｅｉｎｇｏｌｄ疑似乱数関数または他のＰＲＮＧなどの疑似乱数生成器（ＰＲＮＧ）であってもよい。いくつかの実施形態において乱数生成器１０５は、別名、真性乱数発生器（ＴＲＮＧ）として知られるハードウェアの乱数生成器であってよい。ＴＲＮＧは、Ａｒａｎｅｕｓ  Ａｌｅａ  ＴＲＮＧ、エントロピー鍵ＴＲＮＧ、または乱数を生成すべく構成されるいくつかの異なるチップセットのうちの１つであってよい。他の実施形態において、乱数生成器１０５は、ブロック暗号またはストリーム暗号などの１または複数の暗号アルゴリズムを含んでもよい。乱数生成器１０５は、追加的にまたは代替的に他の鍵生成技術、乱数生成技術、または疑似乱数生成技術を使用してもよい。
【００１５】
乱数生成器１０５は暗号部／復号部１１０に連結されてもよい。暗号部／復号部１１０は、乱数生成器１０５によって生成されるＡＥＳ鍵または２５６ビットＡＥＳ鍵ペアなどの暗号鍵を用いてデータの暗号化または復号化をすべく構成されるＸＴＳ−ＡＥＳ（Ｘｏｒ−ｅｎｃｒｙｐｔ−Ｘｏｒ  ｂａｓｅｄ  ｔｗｅａｋｅｄ−ｃｏｄｅｂｏｏｋ  ｍｏｄｅ  ｗｉｔｈ  ｃｉｐｈｅｒｔｅｘｔ  ｓｔｅａｌｉｎｇ  ＡＥＳ）暗号部／復号部であってもよい。代替的に、暗号部／復号部１１０は乱数生成器１０５から乱数または疑似乱数を受信し、乱数生成器１０５に関して上述したように鍵または鍵ペアを生成すべく構成されてよい。他の実施形態においては、暗号部／復号部１１０は、ＡＥＳ  ＬＲＷ（Ｌｉｓｋｏｖ  Ｒｉｖｅｓｔ  ａｎｄ  Ｗａｇｎｅｒ）モードなどの他のタイプの暗号化／復号化アルゴリズムを用いてもよい。
【００１６】
暗号部／復号部１１０はさらに１または複数の通信回線１１６を介して永続的メモリ１１５に連結されてもよい。１または複数の通信回線１１６は、例えば、「メモリバス」と呼ばれてよい。以下にさらに詳しく説明するように、暗号部／復号部１１０またはメモリコントローラ１００の他の要素は、データを暗号化し、暗号化データを格納するために永続的メモリ１１５へ出力すべく構成され得る。他の実施形態においては、暗号部／復号部１１０は永続的メモリ１１５にすでに格納されたデータを暗号化すべく構成されてもよい。他の実施形態においては、暗号部／復号部１１０はさらに永続的メモリ１１５から暗号化データを受信し、暗号鍵を使って暗号化データを復号化するか、または代替的に、初めに永続的メモリ１１５から暗号化データを取り出すことなく、永続的メモリ１１５からの暗号化データを復号化すべく構成され得る。
【００１７】
複数の実施形態において、メモリコントローラ１００はさらにセキュリティ管理ロジック１２０および／またはメモリ管理ロジック１２５を備え得る。一般的に、セキュリティ管理ロジック１２０は乱数生成器１０５に連結されてもよく、乱数生成器１０５に命令して１または複数の乱数または暗号鍵を生成し出力させるべく構成され得る。例えば、セキュリティ管理ロジック１２０は乱数生成器１０５にシード値または変数を供給すべく構成され得る。
【００１８】
メモリ管理ロジック１２５は、１または複数の外部の通信回線１０６とともに、少なくとも暗号部／復号部１１０に連結されてもよい。１または複数の外部の通信回線１０６は、通信回線または、メモリコントローラ１００をプロセッサ１０２に通信可能に連結すべく構成されるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）バスまたはＰＣＩエクスプレスバスなどの通信バスであってよい。メモリ管理ロジック１２５は、永続的メモリ１１５に書き込むべきデータを、外部の通信回線１０６を通してプロセッサ１０２から受信し、それから暗号部／復号部１１０にデータを供給すべく構成され得る。複数の実施形態において、データは実行される暗号化のタイプなどの暗号化の命令とともに、プロセッサ１０２から供給され得る。メモリ管理ロジック１２５はさらに外部の通信回線１０６を介して情報をプロセッサ１０２に送出すべく構成され得る。例えば、メモリ管理ロジック１２５は、暗号部／復号部１１０から、暗号部／復号部１１０で用いた暗号鍵を受信し、それから外部の通信回線１０６を介してその暗号鍵をプロセッサ１０２へ送出し得る。追加的にまたは代替的に、メモリ管理ロジック１２５は暗号部／復号部１１０から復号化されたデータを受信し、外部の通信回線１０６を介してその復号化されたデータをプロセッサ１０２に送出し得る。
【００１９】
追加的にまたは代替的に、上述したように、暗号部／復号部１１０は、通信回線１１６を通して永続的メモリ１１５から暗号化データにアクセス、または暗号化データを取り出し、暗号化動作中に用いられた暗号鍵を使って暗号化データを復号化すべく構成され得る（復号化動作は暗号化動作の逆である）。いくつかの実施形態において、暗号部／復号部１１０は永続的メモリ１１５に格納された暗号化データにアクセスし、暗号鍵を使って暗号化データを復号化し得て、復号化されたデータのみが通信回線１１６を通してメモリコントローラ１００に伝送されるようにする。他の実施形態において、暗号化データの一部または全部は、通信回線１１６を通して、永続的メモリから暗号部／復号部１１０へ送信され得る。暗号化データは暗号鍵を用いて暗号部／復号部１１０において復号化される。例として、暗号／復号鍵または暗号／復号鍵を導出するために用いられる乱数または疑似乱数は、乱数生成器１０５によって供給され得る。または、暗号／復号鍵は、外部の通信回線１０６を通してメモリ管理ロジック１２５によって、例えば、メモリコントローラ１００に連結される揮発性メモリから外部の通信回線１０６を通して取り出され、暗号化／復号化すべく暗号部／復号部１１０へ供給され得る。暗号部／復号部１１０が暗号／復号鍵を用いて暗号化データを復号化した後、暗号部／復号部１１０はメモリ管理ロジック１２５へデータを出力し得て、それからメモリ管理ロジック１２５は、１または複数の通信回線１０６を介してそのデータをプロセッサ１０２へ送出し得る。複数の実施形態において、暗号部／復号部１１０は、リセットに際して、暗号／復号鍵を変更、破壊、あるいは失うべく構成されてもよい。複数の実施形態において、上述したように、暗号部／復号部１１０は、乱数生成器１０５によって供給される暗号鍵から復号鍵を相補的に導出し得て、または乱数生成器１０５によって供給される乱数から暗号化および復号鍵の両方を相補的に導出し得る。
【００２０】
複数の実施形態において、セキュリティ管理ロジック１２０、乱数生成器１０５、暗号部／復号部１１０およびメモリ管理ロジック１２５は、システムオンチップ（ＳｏＣ）アーキテクチャとしてメモリコントローラ１００に全部が実装されてもよい。他の実施形態では、セキュリティ管理ロジック１２０、乱数生成器１０５、暗号部／復号部１１０およびメモリ管理ロジック１２５のうちの１または複数は、メモリコントローラ１００とは別に、しかし通信可能に結合されてもよい。いくつかの実施形態において、メモリ管理ロジック１２５およびセキュリティ管理ロジック１２０、またはメモリ管理ロジック１２５および暗号部／復号部１１０などの１または複数の要素は、組み合わされてもよい。または、いくつかの実施形態では、暗号部／復号部１１０は、個々の暗号部および個々の復号部に分離されてもよい。上述したように、いくつかの実施形態においては、セキュリティ管理ロジック１２０、乱数生成器１０５、暗号部／復号部１１０およびメモリ管理ロジック１２５のうちの１または複数は、ソフトウェア、ハードウェアおよび／またはファームウェアとして実装されてもよい。
【００２１】
図２は、本開示の実施形態を実施する目的でメモリコントローラ１００などのメモリコントローラによって用いられ得る処理の例を示す。最初に、メモリコントローラは２００においてデータを受信し得る。上述したように、例えば、データは通信回線１０６を通してメモリコントローラによってプロセッサ１０２から受信され得る。具体的には、メモリコントローラ１００のメモリ管理ロジック１２５などのメモリ管理ロジックは、外部の通信回線１０６を通してデータを受信し得る。
【００２２】
次に、メモリコントローラは、２０５において、暗号鍵を用いてデータを暗号化し得る。例えば、メモリコントローラ１００の暗号部／復号部１１０などのメモリコントローラの暗号部／復号部は、乱数生成器１０５などの乱数生成器から暗号鍵を受信（あるいは導出）し得る。暗号部／復号部はまた、メモリ管理ロジックからデータを受信し得て、暗号部／復号部がデータを暗号化し得るようにする。データを暗号化した後、メモリコントローラは２１０において、永続的メモリ１１５などの永続的メモリに暗号化データを格納し得る。図示していないが、他の実施形態においては、データは永続的メモリに格納されてよく、それから暗号鍵を用いて、その格納されたデータを暗号化してもよい。
【００２３】
それからメモリコントローラは２１５において、暗号鍵を格納し得る。いくつかの実施形態において、暗号鍵は永続的メモリに格納されてよい。例えば、暗号鍵は永続的メモリ１１５などの永続的メモリの１または複数の非連続レジスタに格納され得る。他の実施形態では、暗号鍵はメモリコントローラから、通信回線を通して、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）または他の揮発性メモリへ送信されてもよい。
【００２４】
メモリコントローラはそれから、２２０において、システムのリセットイベントの監視をしてもよい。システムのリセットイベントは、通常は揮発性メモリのコンテンツが失われるイベントであると、一般に考えられ得る。例として、システムのリセットイベントは、システムの電源の喪失、システムのシャットダウン、システムのリスタートまたは他のイベントであり得る。いくつかの実施形態では、システムのリセットイベントは、例えばシステムのプロセッシング要素および／またはメモリのあるサブセクションなどの、システムの一部分に関係するのみであり得る。システムのリセットイベントは、通信回線１０６などの通信回線を通して、メモリコントローラがプロセッサ１０２などのプロセッサから受信するプラットフォームリセット信号によってシグナリングされ得る。システムのリセットイベントは、追加的にまたは代替的に、通信回線を通してメモリコントローラがプロセッサから受信するプラットフォームの電源イベントの通知によって、またはメモリコントローラが受信する他のタイプの通知または信号によってシグナリングされ得る。いくつかの実施形態において、システムのリセットイベントはメモリコントローラが受信するイベントメッセージであり得る。または、システムのリセットイベントはリセットピンまたは他のイベントピンなどの信号、または、メモリコントローラの１または複数の電源入力上の電源喪失であり得る。
【００２５】
システムのリセットイベントが２２０において検出されると、メモリコントローラはシステムのリセットイベントを監視し続け得る。しかしながら、システムのリセットイベントが検出されると、メモリコントローラは２２５において暗号鍵を変更および／または破壊し得る。例えば、暗号鍵が２１５において永続的メモリに格納されると、メモリコントローラは永続的メモリにおいて暗号鍵をゼロ化し得る。ゼロ化は、１または複数回、暗号鍵のメモリロケーション全域にわたりオール０などの値を書き込む段階を含み、暗号鍵を永続的メモリから取り出すことができないようにする。他の実施形態では、暗号鍵のメモリロケーションへのポインタは削除され得る。または、１または複数回、１または、０および１のパターンなどの他の値が暗号鍵のメモリロケーションに書き込まれ得る。暗号鍵が揮発性メモリに格納される複数の実施形態においては、リセットイベントが発生すると暗号鍵は揮発性メモリから失われ得る。いくつかの実施形態では、暗号鍵が揮発性メモリに格納される場合、暗号鍵はやはりゼロ化され得る。その後処理は２３０で終了し得る。
【００２６】
２２５において暗号鍵を変更および／または破壊した結果、暗号鍵が格納されたメモリから暗号鍵を取り出すことが困難または不可能になり得る。それゆえ、たとえ暗号化データが永続的メモリに格納されたとしても、そのデータを復号化することは困難または不可能といえる。その結果、データは安全であるとみなし得て、永続的メモリは揮発性メモリに格納する場合のセキュリティレベルをエミュレートし得る。
【００２７】
図３は、図２の処理を用いて暗号化されたデータを復号化する処理を示す。この処理は、メモリコントローラ１００などのメモリコントローラによって実行され得る。最初に、３００において、暗号鍵が識別される。複数の実施形態において、暗号鍵はメモリ管理ロジック１２５などのメモリ管理ロジックおよび／または暗号部／復号部１１０などの暗号部／復号部によって識別され得る。上述したように、いくつかの実施形態では、暗号鍵は永続的メモリ１１５のような永続的メモリに格納され得る。他の実施形態においては、暗号鍵は、メモリコントローラに通信可能に結合される揮発性メモリに格納され得る。
【００２８】
それからメモリコントローラは３０５において、暗号鍵が存在するかどうか決定し得る。いくつかの実施形態において、暗号鍵は存在し得ない。例えば、図２を参照して上述したように、システムのリセットイベントが発生する場合、暗号鍵は、ゼロ化、変更、あるいは削除されるであろう。それゆえ、暗号鍵は識別不可能であり、この処理は３２０で終了し得る。また別に、暗号鍵が存在する場合は、３１０において暗号化データはメモリコントローラによって識別され、および／または永続的メモリから取り出され得る。具体的に、暗号化データは、メモリコントローラ１００のメモリ管理ロジック１２５および／または暗号部／復号部１１０のうちの１つまたは両方によって取り出され得る。それから暗号化データは、識別された暗号鍵を用いて、３１５において、暗号化動作とは逆の復号化動作を適用して暗号部／復号部１１０によって復号化され得る。いくつかの実施形態において、復号化されたデータは次にメモリコントローラから出力され得る。それから、この処理は３２０で終了し得る。
【００２９】
複数の実施形態において、前述したように、復号鍵は暗号鍵から、または暗号鍵が導出されるものと同じ乱数から、導出され得る。これらの実施形態に、図３の処理は、２１５および２２０におけるオペレーションと同様のオペレーションを含み得て、復号鍵を破壊するか、あるいは失う。
【００３０】
図４は、さまざまな実施形態による、前述のメモリコントローラ１００および／または永続的メモリ１１５などのシステムが組み込まれ得るコンピューティングデバイス４００の例を示す。コンピューティングデバイス４００はまた、いくつかのコンポーネント、１または複数のプロセッサ４０４、および少なくとも１つの通信チップ４０６を備え得る。前述したように、メモリコントローラ１００は、永続的メモリ１１５に暗号化データを格納することによって揮発性メモリをエミュレートすべく構成され得る永続的メモリ１１５に連結され得る。さらに、メモリコントローラ１００は、データを暗号化または復号化するために用いた暗号鍵および／または復号鍵を破壊する、および／または、そうでなければ失うべく構成され得る。
【００３１】
さまざまな実施形態において、１または複数のプロセッサ４０４のそれぞれは、１または複数のプロセッサコアを含み得る。さまざまな実施形態において、少なくとも１つの通信チップ４０６は１または複数のプロセッサ４０４と物理的に、および電気的に結合され得る。さらなる実装においては、通信チップ４０６は、１または複数のプロセッサ４０４の一部であり得る。さまざまな実施形態において、コンピューティングデバイス４００は、プリント回路板（ＰＣＢ）４０２を含み得る。これらの実施形態では、ＰＣＢ上に１または複数のプロセッサ４０４および通信チップ４０６が配置され得る。別の実施形態においては、さまざまなコンポーネントが、ＰＣＢ４０２を用いずに連結され得る。
【００３２】
用途に従い、コンピューティングデバイス４００はＰＣＢ４０２と物理的に、および電気的に結合し得る、またはし得ない他のコンポーネントを含み得る。これらの他のコンポーネントは、限定はされないが、メモリコントローラ１００、リードオンリメモリ４１０（ＲＯＭ）などの不揮発性メモリ、永続的メモリ１１５、Ｉ／Ｏコントローラ４１４、デジタル信号プロセッサ（図示せず）、暗号プロセッサ（図示せず）、グラフィックスプロセッサ４１６、１または複数のアンテナ４１８、ディスプレイ（図示せず）、タッチスクリーンディスプレイ４２０、タッチスクリーンコントローラ４２２、バッテリ４２４、オーディオコーデック（図示せず）、ビデオコーデック（図示せず）、全地球測位システム（ＧＰＳ）デバイス４２８、コンパス４３０、加速度計（図示せず）、ジャイロスコープ（図示せず）、スピーカ４３２、カメラ４３４、および大容量記憶装置（ハードディスクドライブ、ソリッドステートドライブ、コンパクトディスク（ＣＤ）、デジタルバーサタイルディスク（ＤＶＤ）（図示せず）など）などを含む。さまざまな実施形態において、プロセッサ４０４は他のコンポーネントと共に同一ダイ上に集積され得て、システムオンチップ（ＳｏＣ）を形成する。上述したように、永続的メモリ１１５は、ＦｅＴＲＡＭ、ナノワイヤベースの不揮発性メモリ、ＰＣＭなどの３Ｄクロスポイントメモリ、バイトアドレッシング可能クロスポイントメモリ、メモリスタ技術を組み込んだメモリ、ＭＲＡＭ，ＳＴＴ  ＭＲＡＭ、または、システムメモリとして使用され得る他のタイプの不揮発性メモリであってよい。
【００３３】
さまざまな実施形態において、永続的メモリ１１５に加えて、コンピューティングデバイス４００は、レジデントで永続的な、すなわち不揮発性メモリ、例えばフラッシュメモリ（図示せず）など、を含み得る。いくつかの実施形態において、１または複数のプロセッサ４０４および／またはフラッシュメモリは関連付けられるファームウェア（図示せず）を含み得る。このファームウェアは、１または複数のプロセッサ４０４によるプログラミング命令の実行に応答して、コンピューティングデバイス４００が、図２または図３に関して上述したブロックの全ての態様または選択された態様を実施できるように構成されたプログラミング命令を格納する。さまざまな実施形態において、これらの態様は、追加的にまたは代替的に、１または複数のプロセッサ４０４またはフラッシュメモリとは隔たれたハードウェアを用いて実装され得る。
【００３４】
通信チップ４０６は、コンピューティングデバイス４００へ、およびコンピューティングデバイス４００から、データを伝送すべく、有線通信および／または無線通信を可能にし得る。「無線」という用語およびその派生語は、非固体媒体を通して、変調された電磁放射を使用してデータを伝え得る回路、デバイス、システム、方法、技術、通信チャネル、などを記述するために用いられ得る。この用語は、関連付けられるデバイスが１本もワイヤを持たないことを暗示してはいないが、いくつかの実施形態においては持たなくてもよい。通信チップ４０６は、限定はしないが、ＩＥＥＥ  ８０２．２０、汎用パケット無線サービス（ＧＰＲＳ）、Ｅｖ−ＤＯ（Ｅｖｏｌｕｔｉｏｎ  Ｄａｔａ  Ｏｐｔｉｍｉｚｅｄ）、ＨＳＰＡ＋（Ｅｖｏｌｖｅｄ  Ｈｉｇｈ  Ｓｐｅｅｄ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ）、ＨＳＤＰＡ＋（Ｅｖｏｌｖｅｄ  Ｈｉｇｈ  Ｓｐｅｅｄ  Ｄｏｗｎｌｉｎｋ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ）、ＨＳＵＰＡ＋（Ｅｖｏｌｖｅｄ  Ｈｉｇｈ  Ｓｐｅｅｄ  Ｕｐｌｉｎｋ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ）、ＧＳＭ（登録商標）（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）、ＥＤＧＥ（Ｅｎｈａｎｃｅｄ  Ｄａｔａ  Ｒａｔｅｓ  ｆｏｒ  ＧＳＭ（登録商標）  Ｅｖｏｌｕｔｉｏｎ）、符号分割多元接続（ＣＤＭＡ）（登録商標）、時分割多元接続（ＴＤＭＡ）、ＤＥＣＴ（Ｄｉｇｉｔａｌ  Ｅｎｈａｎｃｅｄ  Ｃｏｒｄｌｅｓｓ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、これらの派生、ならびに３Ｇ、４Ｇ、５Ｇおよびその次の世代として指定される任意の他の無線プロトコルをはじめとするいくつかの無線規格または無線プロトコルのいずれかを実装し得る。コンピューティングデバイス４００は複数の通信チップ４０６を含み得る。例として、第１の通信チップ４０６は、Ｗｉ−Ｆｉ（登録商標）およびＢｌｕｅｔｏｏｔｈ（登録商標）などの、より近い距離の無線通信専用であってよく、第２の通信チップ４０６は、ＧＰＳ、ＥＤＧＥ、ＧＰＲＳ、ＣＤＭＡ（登録商標）、ＷｉＭＡＸ（登録商標）、ＬＴＥ、Ｅｖ−ＤＯその他の、より長い距離の無線通信専用であってもよい。
【００３５】
さまざまな実装において、コンピューティングデバイス４００は、ラップトップ、ネットブック、ノートブック、ウルトラブック、スマートフォン、コンピューティングタブレット、携帯情報端末装置（ＰＤＡ）、ウルトラモバイルＰＣ、携帯電話、デスクトップコンピュータ、サーバ、プリンタ、スキャナ、モニタ、セットトップボックス、エンターテインメントコントロールユニット（例えば、ゲームコンソールなど）、デジタルカメラ、携帯音楽プレーヤ、またはデジタルビデオレコーダであり得る。さらなる実装において、コンピューティングデバイス４００はデータを処理する任意の他の電子デバイスであり得る。
【００３６】
複数の実施形態において、本開示の第１の例は、暗号鍵を変更する装置を含み得る。その装置は、永続的メモリにデータを格納する前にデータを暗号化するために用いられた暗号鍵を、リセットイベントに応答して、変更または破壊すべく構成されるメモリコントローラを備え得て、永続的メモリはメモリコントローラによって制御される。
【００３７】
例２は、例１の装置を含み得て、さらにメモリコントローラに連結される永続的メモリを備える。
【００３８】
例３は、例１の装置を含み得て、さらに暗号鍵を格納すべく構成される格納メモリを備える。
【００３９】
例４は例３の装置を含み得て、格納メモリはメモリコントローラに連結される揮発性メモリを備える。
【００４０】
例５は例３の装置を含み得て、格納メモリは、永続的メモリの複数の非連続レジスタを含み、暗号鍵は複数の非連続レジスタのうちの１または複数に格納される。
【００４１】
例６は例１から例５のうちのいずれかの装置を含み、メモリコントローラは暗号鍵をゼロ化して暗号鍵を破壊すべく構成される。
【００４２】
例７は例１から例５のうちのいずれかの装置を含み、メモリコントローラはさらに、リセットイベントに応答して、暗号鍵と相補的な復号鍵を変更または破壊すべく構成される。
【００４３】
例８は例１から例５のうちのいずれかの装置を含み、ここでリセットイベントは電源喪失イベント、シャットダウンイベントまたはリスタートイベントを含む。
【００４４】
例９は暗号化データを格納する方法を含み得る。この方法は、メモリコントローラが少なくとも一部は暗号鍵に基づきデータを暗号化して暗号化データを作成する段階と、メモリコントローラが暗号化データを不揮発性メモリに格納する段階と、メモリコントローラがリセットイベントのインジケーションを受信する段階と、メモリコントローラがリセットイベントのインジケーションの受信に応答して暗号鍵を破壊する段階と、を備える。
【００４５】
例１０は例９の方法を含み得て、破壊する段階は暗号鍵を上書きする段階を備える。
【００４６】
例１１は例９の方法を含み得て、破壊する段階は暗号鍵をゼロ化する段階を備える。
【００４７】
例１２は例９から例１１のうちのいずれかの方法を含み得て、破壊する段階はさらに、リセットイベントに応答して、暗号鍵と相補的な復号鍵を破壊する段階を備える。
【００４８】
例１３は例９から例１１のうちのいずれかの方法を含み得て、ここでリセットイベントとは、電源喪失イベント、シャットダウンイベントまたはリスタートイベントである。
【００４９】
例１４は、暗号鍵を破壊する命令を備える１または複数のコンピュータ可読媒体を含み得る。この命令は、メモリコントローラがこの命令を実行すると、メモリコントローラに、リセットイベントのインジケーションを受信させ、リセットイベントのインジケーションに応答して、メモリコントローラによって制御される永続的メモリにデータを格納する前にデータを暗号化するために用いられた暗号鍵を破壊させるべく構成される。
【００５０】
例１５は例１４の１または複数のコンピュータ可読媒体を含み得て、メモリコントローラに暗号鍵を破壊させる。
【００５１】
例１６は例１４の１または複数のコンピュータ可読媒体を含み得て、メモリコントローラに暗号鍵をゼロ化させて暗号鍵を破壊する。
【００５２】
例１７は例１４から例１６のうちのいずれかの１または複数のコンピュータ可読媒体を含み得て、メモリコントローラに暗号鍵または暗号鍵と相補的な復号鍵で暗号化データを復号化させる。
【００５３】
例１８は例１４から例１６のうちのいずれかの１または複数のコンピュータ可読媒体を含み得て、さらにメモリコントローラに、リセットイベントに応答して、暗号鍵と相補的な復号鍵を破壊させる。
【００５４】
例１９は例１４から例１６のうちのいずれかの１または複数のコンピュータ可読媒体を含み得て、ここでリセットイベントとは、電源喪失イベント、シャットダウンイベントまたはリスタートイベントである。
【００５５】
例２０は暗号鍵を破壊する装置を含み得る。その装置は、リセットイベントのインジケーションを受信する手段と、リセットイベントのインジケーションに応答して、永続的メモリにデータを格納する前にデータを暗号化するために用いられた暗号鍵を破壊する手段と、を備える。
【００５６】
例２１は例２０の装置を含み得て、破壊する手段は暗号鍵をゼロ化して暗号鍵を破壊する手段を含む。
【００５７】
例２２は例２０または例２１のいずれかの装置を含み得て、さらに、暗号鍵または暗号鍵と相補的な復号鍵で暗号化データを復号化する手段を備える。
【００５８】
例２３は例２０または例２１のいずれかの装置を含み得て、さらに、リセットイベントに応答して、暗号鍵と相補的な復号鍵を破壊する手段を備える。
【００５９】
例２４は例２０または例２１のいずれかの装置を含み得て、ここでリセットイベントとは、電源喪失イベント、シャットダウンイベントまたはリスタートイベントである。
【００６０】
例２５は、暗号化データを格納すべく構成される永続的メモリと、永続的メモリに連結されるメモリコントローラであって、リセットイベントのインジケーションを受信し、リセットイベントのインジケーションに応答して、永続的メモリに暗号化データを格納する前にデータを暗号化するために用いられた暗号鍵を破壊すべく構成されるメモリコントローラと、を備えるシステムを含み得る。
【００６１】
例２６は例２５のシステムを含み得て、メモリコントローラはさらに、暗号鍵をゼロ化して暗号鍵を破壊すべく構成される。
【００６２】
例２７は例２５または例２６のうちのいずれかのシステムを含み得て、メモリコントローラはさらに、暗号鍵または、暗号鍵と相補的な復号鍵で暗号化データを復号化すべく構成される。
【００６３】
例２８は例２５または例２６のうちのいずれかのシステムを含み得て、メモリコントローラはさらに、リセットイベントに応答して、暗号鍵と相補的な復号鍵を破壊すべく構成される。
【００６４】
例２９は例２５または例２６のうちのいずれかのシステムを含み得て、ここでリセットイベントとは、電源喪失イベント、シャットダウンイベントまたはリスタートイベントである。
【００６５】
ある実施形態が、説明する目的で本明細書にて例示され説明されてきたが、本願は本明細書で議論された実施形態に対するどのような改造された形態または変形形態をも網羅することが意図される。故に、本明細書にて記載された実施形態は、特許請求の範囲のみによって限定されることが明白に意図される。
【００６６】
本開示が「１つの（ａ）」要素または「第１の（ａ  ｆｉｒｓｔ）」要素、またはそれと同等の表現をする場合は、そのような開示は、１または複数のそのような要素を含み、２つ以上のそのような要素を必要としないし、除外もしない。さらに、識別された要素に対する序数標識（例えば、第１、第２または第３など）は、複数の要素を区別するために用いられ、そのような要素の必要な数または限定された数を示しも暗示もしておらず、また別途具体的に述べない限りは、そのような要素の特定の位置または順序を示しもしない。
【図１】
2015070608.tif 000003
【図２】
2015070608.tif 000004
【図３】
2015070608.tif 000005
【図４】
2015070608.tif 000006
【外国語明細書】
2015070608000001.pdf