(57)【要約】マイクロコントローラにおけるデータを、外部データバスおよび／または外部メモリからのデータの読み取りに対する許可なき試行からだけでなく、端末内部で実行される悪意のソフトウェア処理からも保護するための装置および方法が提供される。本発明の例示的実施例は強化されたメモリ管理部（ＭＭＵ）をある程度利用してセキュリティの向上を達成する。強化されたＭＭＵは、マイクロコントローラ上で実行されている１つのソフトウェア処理が同じマイクロコントローラ上で実行されている異なるソフトウェア処理に関連するデータにアクセスすることを防止する。さらに、外部データバスを介して送信され、または外部メモリに記憶されたデータが暗号化され、これにより、許可なきユーザがそのデータから利用可能な情報を領得する機会を減らす。
2009518742.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
中央処理装置であって、少なくとも第１のセットのデータを使用する第１のソフトウェア処理および第２のセットのデータを使用する第２のソフトウェア処理を実行するよう動作する中央処理装置、
該中央処理装置に結合されたメモリであって、該第１のセットのデータを格納するよう動作する第１のメモリ部分および該第２のセットのデータを格納するよう動作する第２のメモリ部分からなるメモリ、および
該中央処理装置に結合されたメモリ管理部であって、該中央処理装置に、該第１のソフトウェア処理を実行するときのみ該第１のメモリ部分にアクセスすることを許可し、該第２のソフトウェア処理を実行するときのみ該第２のメモリ部分にアクセスすることを許可するよう動作するメモリ管理部
からなり、
該第１のセットのデータの少なくとも一部分および該第２のセットのデータの少なくとも一部分が暗号化され、該第１のセットのデータの暗号化された部分が該第２のセットのデータの暗号化された部分とは異なる暗号鍵によって暗号化される装置。
【請求項２】
請求項１記載の装置であって、さらに、該中央処理装置と該メモリとの間で該第１および第２のセットのデータを少なくとも部分的に伝送するよう動作するデータバスからなる装置。
【請求項３】
請求項２記載の装置において、該データバス上で伝送されるデータの少なくとも一部分が暗号化される装置。
【請求項４】
請求項１記載の装置であって、さらに、暗号処理部であって該第１および第２のセットのデータの部分を暗号化および復号化するよう動作する暗号処理部からなる装置。
【請求項５】
請求項１記載の装置であって、さらに、暗号鍵記憶メモリであって該暗号鍵記憶メモリが該第１および第２のセットのデータの暗号化された部分に対する暗号鍵を記憶するよう動作する暗号鍵記憶メモリからなる装置。
【請求項６】
請求項５記載の装置において、該暗号鍵記憶メモリに記憶された該暗号鍵も暗号化される装置。
【請求項７】
請求項５記載の装置において、該暗号鍵記憶メモリがフラッシュメモリ回路に少なくとも部分的に実装されている装置。
【請求項８】
請求項１記載の装置において、該メモリ管理部がさらに、該第１および第２のソフトウェア処理それぞれに対する暗号鍵フラグを特定するよう動作し、該暗号鍵フラグがどの暗号鍵が該第１および第２のセットのデータの該暗号化された部分に関連するかを示している装置。
【請求項９】
請求項１記載の装置において、該装置がマイクロコントローラ内に少なくとも部分的に実装されている装置。
【請求項１０】
請求項１記載の装置において、該メモリがランダムアクセスメモリ内に少なくとも部分的に実装されている装置。
【請求項１１】
請求項１記載の装置において、該中央処理装置が集積回路に実装されている装置。
【請求項１２】
請求項１１記載の装置において、該メモリが１以上の集積回路に実装され、該１以上の集積回路の少なくとも１つが、該中央処理装置からなる集積回路から分離されている装置。
【請求項１３】
請求項１１記載の装置であって、さらに、メモリ鍵記憶メモリであって、該メモリ鍵記憶メモリが該第１および第２のセットのデータの該暗号化された部分に対する暗号鍵を記憶するよう動作し、１以上の集積回路に実装され、該１以上の集積回路の少なくとも１つが、該中央処理装置からなる集積回路から分離されているようなメモリ鍵記憶メモリからなる装置。
【請求項１４】
請求項１記載の装置において、該装置が移動端末からなる装置。
【請求項１５】
請求項１４記載の装置において、該移動端末が携帯電話からなる装置。
【請求項１６】
請求項１４記載の装置において、該移動端末がパーソナルデジタルアシスタントからなる装置。
【請求項１７】
請求項１４記載の装置において、該移動端末が電子メールを送受信するよう動作する装置。
【請求項１８】
集積回路であって、
中央処理装置であって、少なくとも第１のセットのデータを使用する第１のソフトウェア処理および第２のセットのデータを使用する第２のソフトウェア処理を実行するよう動作する中央処理装置からなり、
該中央処理装置がメモリおよびメモリ管理部に結合され、該メモリが該第１のセットのデータを格納するよう動作する第１のメモリ部分および該第２のセットのデータを格納するよう動作する第２のメモリ部分からなり、該メモリ管理部が、該中央処理装置に、該第１のソフトウェア処理を実行するときのみ該第１のメモリ部分にアクセスすることを許可し、該第２のソフトウェア処理を実行するときのみ該第２のメモリ部分にアクセスすることを許可するよう動作し、
該第１のセットのデータの少なくとも一部分および該第２のセットのデータの少なくとも一部分が暗号化され、該第１のセットのデータの暗号化された部分が該第２のセットのデータの暗号化された部分とは異なる暗号鍵によって暗号化される集積回路。
【請求項１９】
中央処理装置並びに第１のメモリ部分および第２のメモリ部分を含むメモリからなる装置においてデータを処理する方法であって、
第１のセットのデータを使用する第１のソフトウェア処理および第２のセットのデータを使用する第２のソフトウェア処理を実行するステップ、
該第１のセットのデータを該第１のメモリ部分に、該第２のセットのデータを該第２のメモリ部分に格納するステップ、および
該中央処理装置に、該第１のソフトウェア処理を実行するときのみ該第１のメモリ部分にアクセスすることを許可し、該第２のソフトウェア処理を実行するときのみ該第２のメモリ部分にアクセスすることを許可するステップ
からなり、
該第１のセットのデータの少なくとも一部分および該第２のセットのデータの少なくとも一部分が暗号化され、該第１のセットのデータの暗号化された部分が該第２のセットのデータの暗号化された部分とは異なる暗号鍵によって暗号化される方法。
【請求項２０】
請求項１９記載の方法において、該装置が少なくとも部分的にマイクロコントローラ内に実装されている方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概略としてデータ処理回路に関し、より具体的にはマイクロコントローラにおけるデータセキュリティを向上する装置および方法に関する。
【背景技術】
【０００２】
コンピュータシステムは通常、中央処理装置（ＣＰＵ）、メモリおよび入出力回路の３つの主要ブロックを有する。マイクロコントローラは、それはマイクロコンピュータまたは組み込みコントローラとして知られているものであるが、これら３つのブロック全てを単一の集積回路チップに内蔵することができる。マイクロコントローラは携帯電話その他移動端末、テレビのリモコン、電子レンジなどの様々な制御アプリケーションに用いられる。アプリケーションによってはマイクロコントローラがそのデータ全てをチップ上に保有することもできるし、いくつかをチップ上に、その他をチップ外に保有することもできる。データがチップ外に記憶されるそれらのアプリケーションに対して、マイクロプロセッサは通常、アドレスおよびデータ信号が集積回路のピン上に提供される「拡張モード」において動作するように設計されている。これらのピンによってマイクロコントローラは外部メモリ内のデータに外部データバスを介してアクセスすることができる。
【０００３】
マイクロコントローラを用いる移動端末内に記憶されたデータへのアクセスを制限することが重要な場合が多々ある。それらの本来的な性質により、そのような移動端末は持ち運べない端末よりも紛失や盗難に遭いやすい。さらに、携帯電話のようなソフトウェアが複雑な多くのアプリケーションにおいて、必要とされるデータは大きすぎて普通はチップ上に完全に収めることはできない。従って、データの少なくとも一部はチップ外にあり、マイクロコントローラは拡張モードにおいてそれにアクセスしなければならない。結果として、そのような端末が許可されていないユーザの手に渡ると、そのデータがアクセスされたり誤使用されたりしてしまう蓋然性が高くなる。外部メモリに記憶されたデータにアクセスする一般的なやり方は、単に外部メモリチップをそのソケットから抜き取り、別のハードウエアを用いて記憶されたデータを読み出すだけでよい。さらに、内部に記憶されたデータでさえも、外部データバスを調べて内部データフローおよびメモリステータスを分析することによってリバースエンジニアリング的に読み取られてしまうことがある。
【０００４】
部分的にチップ外にあるこの損なわれやすい（センシティヴな）データを保護するために、マイクロコントローラによってはアドレスおよびデータの暗号化技術を実装するようになっている。アドレスの暗号化は一般に、マイクロコントローラの内部メモリ内の物理位置をスクランブルすることによって行われ、それによって許可されていないユーザがメモリセルのロジックステータスを判断し、メモリセルの物理位置によるシーケンスを知ることによってデータを読み出すことができないようにしている。一方、データの暗号化は、データがＣＰＵまたは内部メモリから外部メモリに移されるときにデータを暗号化すること、およびデータが外部メモリからＣＰＵまたは内部メモリに読み込まれるときにデータを暗号化することによって行われている。数学的な変換を用いてデータのアドレス位置をも変換の一部として用いる周知の暗号化手法が数多く存在する。
【０００５】
しかしながら、それらの方法によって提供される改善されたデータセキュリティにもかかわらず、少なくとも１つの重大な脆弱性が残っている。マイクロコントローラにおいて、ソフトウェアプリケーションがマイクロコントローラのメモリ内にある全てのデータへの無制限なアクセスを行う可能性がある。結果として、メモリ内に存在する損なわれやすいデータに悪意にアクセスするための手段としてソフトウェア処理が用いられることがある。パソコンであればそのような脅威に対してバーチャルマシンまたはエミュレータのような技術を用いて対処することもできるが、残念ながらそのような技術は一般に、組み込みマイクロコントローラのアプリケーションにおいては利用できない。
【０００６】
上述の理由より、マイクロコントローラに関連する損なわれやすいデータを、外部データバスおよび／または外部メモリからのデータの読み取りに対する許可なき試行からだけでなく、端末内部で実行される悪意のソフトウェア処理からも適切に保護する必要がある。
【発明の開示】
【課題を解決するための手段】
【０００７】
本発明は、マイクロコントローラにおけるデータを、外部データバスおよび／または外部メモリからのデータの読み取りに対する許可なき試行からだけでなく、端末内部で実行される悪意のソフトウェア処理からも保護するための装置および方法を開示するものである。本発明の例示的実施例は、強化されたメモリ管理部（ＭＭＵ）をある程度利用してセキュリティの向上を達成する。強化されたＭＭＵは、マイクロコントローラ上で実行されている１つのソフトウェア処理が同じマイクロコントローラ上で実行されている異なるソフトウェア処理に関連するデータにアクセスすることを阻止する。さらに、外部データバスを介して送信されるデータまたは外部メモリに記憶されるデータが暗号化され、これにより、許可なきユーザがそのデータから利用可能な情報を領得する機会を減らすことができる。
【０００８】
本発明の一側面によると、ＣＰＵ、メモリおよびＭＭＵからなる装置において、メモリおよびＭＭＵはＣＰＵに結合されている。ＣＰＵは少なくとも第１のセットのデータを利用する第１のソフトウェア処理および第２のセットのデータを利用する第２のソフトウェア処理を実行するよう動作する。さらに、メモリは第１のメモリ部分に第１のセットのデータを格納し、第２のメモリ部分に第２のセットのデータを格納するように動作する。改善されたデータセキュリティを達成するため、ＭＭＵは、中央処理装置が第１のソフトウェア処理を実行するときのみ第１のメモリ部分にアクセスすることを許可し、そして、第２のソフトウェア処理を実行するときのみ第２のメモリ部分にアクセスすることを許可するように動作する。さらに、少なくとも第１のセットのデータの一部分および少なくとも第２のセットのデータの一部分が暗号化され、第１のセットのデータの暗号化された部分が第２のセットのデータの暗号化された部分とは異なる暗号鍵によって暗号化される。
【０００９】
例示的実施例において、マイクロコントローラは外部メモリに外部データバスを介して結合される。さらに、マイクロコントローラは外部鍵記憶メモリに結合される。マイクロコントローラはＣＰＵ、ＭＭＵ、暗号処理部および鍵管理部からなる。外部メモリは複数のメモリ部分からなり、１つのメモリ部分はマイクロコントローラ上で実行される各ソフトウェア処理に関連している。特定のソフトウェア処理がＣＰＵによって実行されているとき、ＭＭＵはＣＰＵにその特定のソフトウェア処理に関連する特定のメモリ部分にアクセスすることのみを許可する。さらに、ＭＭＵ、暗号処理部、鍵管理部および外部鍵記憶メモリは、データが書き込み動作において外部メモリに送信される前にそのデータを暗号化し、データが読み出し動作において外部メモリから受信されるときにそのデータを復号化するように協働する。
【００１０】
好適なことに、本発明の側面による装置および方法は、外部データバスおよび／または外部メモリからデータを読み出そうとする許可なき試行からだけでなく、端末内部で実行される悪意のソフトウェア処理に対してもマイクロコントローラにおけるデータセキュリティを向上することができる。本発明のこれらのおよび他の特徴および効果は付随する図面との関連で読まれる詳細な説明から明らかになる。
【発明を実施するための最良の形態】
【００１１】
本発明がデータ処理回路の例示的実施例に関連して以下に説明される。なお、発明は例示的実施例の特定の回路構成および要素に限定されるものではない。例示的実施例に対する本発明の範囲内での他の可能な修正および改良は当業者には明らかなものである。
【００１２】
なお、ここで使用される「マイクロコントローラ」という用語は、ＣＰＵおよびメモリからなるあらゆる端末を包含することを意図している。さらに、ここで使用される「データ」という用語は、ＣＰＵが内部にあるデータ処理回路の１以上の目的を達成するためにＣＰＵによって利用され得るあらゆる形式の情報を包含することを意図している。従って、データは、ＣＰＵが動作を及ぼすような、またはともに用いて動作するような情報だけでなくプログラミングコード（例えば、ＣＰＵによって実行される命令）も含む。
【００１３】
説明の便宜のため、データ記憶のための外部メモリをある程度信頼しているマイクロコントローラからなる実施例を用いて本発明を説明する。さらに、代表的実施例におけるマイクロコントローラは複数の異なるソフトウェア処理を実行する能力があるものとする。そのような特徴は、例えば、携帯電話やパーソナルデジタルアシスタントのような移動端末内で使用されるマイクロコントローラにおいて標準的なものである。さらに、例示的実施例のこれらの特徴は、本発明による装置および方法の使用がそのような回路における改善されたデータセキュリティにどのように役立つのかを説明するのに有用なものである。
【００１４】
図１に本発明の例示的実施例によるデータ処理回路１００のブロック図を示す。データ処理回路はマイクロコントローラ１１０および外部メモリ１２０からなる。マイクロコントローラおよび外部メモリは外部データバス１３０によって接続される。外部鍵記憶メモリ１４０はマイクロコントローラの外部に位置し、マイクロコントローラ内の要素に結合される。
【００１５】
図１はさらに、マイクロコントローラ１１０および外部メモリ１２０内のいくつかの要素を示している。より具体的には、マイクロコントローラはＣＰＵ１１２およびＭＭＵ１１４からなる。さらに、マイクロコントローラは、マイクロコントローラには通常見られない２つの要素、即ち、暗号処理部１１６および鍵管理部１１８を備える。マイクロコントローラ内の４つの要素各々は他の要素と通信できる状態にある。外部メモリ１２０は、さらに、複数のメモリ部分からなり、各々は１２２−ｉとラベル付けされ、ここでｉ＝１、２、・・・Ｎであり、ＮはＣＰＵによって実行可能なソフトウェア処理の数である。
【００１６】
なお、図１は例示的実施例を機能させるために必要な全ての要素を示すことを意図しているわけではない。逆に、理解の容易化のため、本発明の特定の機能および効果を説明するために必要な要素のみが図示されている。当業者であれば追加的な要素が必要であろうことは分かるはずである。例えば、マイクロコントローラ１１０は、内部メモリ、データキャッシュ、翻訳ルックアサイドバッファ、書き込みバッファおよびバスインターフェイス回路のような、これに限られるものではないが、追加的な要素が必要な場合もある。再度注記しておくと、当業者であればこれらの追加的な要素によって提供される種々の機能を認識するはずである。
【００１７】
外部メモリ１２０はあらゆる形式のメモリ回路において実装され得るが、ダイナミックアクセスメモリ（ＤＲＡＭ）で実装されることが好ましい。ＤＲＡＭは通常、他のメモリ技術と比べて、高い記憶密度、速いアクセス時間を有するとともに、記憶の単位当たりの価格は比較的安い。さらに、ＤＲＡＭは低電力で動作することができる。そのような低電力動作は、バッテリの長時間化が要望される移動端末において重要である。
【００１８】
好適なことに、図１の例示的実施例は、外部データバス１３０および／または外部メモリ１２０からデータを読み出そうとする許可なき試行に対してだけでなく、マイクロコントローラ１１０内部で実行される悪意のソフトウェア処理に対してもデータセキュリティを強化することができる。例示的実施例は悪意のソフトウェア処理によってもたらされる脅威に２つの方法で対処する。第１に、ＣＰＵ１１２が特定のメモリ部分１２２−ｉに対して、ＣＰＵが対応するソフトウェア処理であるソフトウェアｉを実行しているときのみ、アクセスできるようにＭＭＵ１１４が構成される。これは、例えば、ＣＰＵがソフトウェア処理１を実行しているときのみ、ＭＭＵがＣＰＵに第１のメモリ部分１２２−１にアクセスすることを許可する一方、ＣＰＵがソフトウェア処理１以外のソフトウェア処理、例えばソフトウェア処理２を実行しているときはＣＰＵに同メモリ部分にアクセスすることを許可しないということである。第２に、さらに、ＭＭＵが鍵管理部１１８および外部暗号鍵記憶メモリ１４０と協働して、ＣＰＵ上で実行されているソフトウェア処理各々に対して異なる暗号鍵を特定する。これらの暗号鍵は書き込み動作中にデータを暗号化し、読み出し動作中にデータを復号化するのに用いられる。結果として、ＣＰＵ上で動作している特定のソフトウェア処理に関連するデータは、異なるソフトウェア処理に関連するデータとは異なる暗号鍵によって暗号化される。
【００１９】
外部データバス１３０および／または外部メモリ１２０からデータを読み出そうとする許可なき試行に関しては、上述の暗号技術によって、外部メモリに記憶されたり外部データバスを介して送信されたりする損なわれやすいデータが確実に暗号化される。そのような暗号化技術によって、許可なきユーザがこのデータから有用な情報を領得するのが非常に困難になる。
【００２０】
さらに、図１のデータ処理回路１００におけるこれらのデータセキュリティの特徴・機能の実施が、例示的な読み出しおよび書き込み動作のフローチャートによって図２および３に示される。まず、図２のステップ２０２について、ＣＰＵ１１２にデータの読み出しを要求させることによって読み出し動作が開始される。ここで、そのデータは特定のソフトウェア処理であるソフトウェア処理ｉの実行に際して利用されるデータである。ＣＰＵからこの要求を受けると、ＭＭＵ１１４は少なくとも２つの動作を実行する。第１の動作では、ステップ２０４に示すように、ＭＭＵが外部メモリ１２０内にある特定の処理ｉのメモリ部分１２２−ｉの位置を特定する。第２の動作であるステップ２０６では、ＭＭＵがソフトウェア処理ｉに関連する暗号鍵フラグを特定する。これらの動作の各々をさらに以下に説明する。
【００２１】
ステップ２０４におけるＭＭＵ１１４による特定の処理ｉのメモリ部分１２２−ｉの位置の特定は、ＭＭＵによって実行される通常の動作であり、従って、当業者であれば精通しているものである。ＭＭＵは特定のメモリ部分の位置を１以上のテーブルを参照して特定するのが好ましい。その１以上のテーブルとは、一般に「翻訳テーブル」または「ページテーブル」といわれるもので、新しいソフトウェアがＣＰＵによって実行されると定期的に更新されるものである。テーブル参照速度をさらに速くするために、マイクロコントローラ１１０上で選択的に、ＭＭＵが物理メモリ内の翻訳テーブルにアクセスしなければならないことを省略することを可能とするような翻訳ルックアサイドバッファに翻訳テーブルが記憶されるようにしてもよい。先に述べたように、そして本発明の側面によると、特定のソフトウェア処理ｉを実行するときのみＣＰＵに特定のメモリ部分１２２−ｉにアクセスすることを許可するようＭＭＵを動作させることによって、データセキュリティが強化される。これによってＭＭＵはメモリ部分を個々のソフトウェア処理に割り当て、各メモリ部分へのアクセスが特定の権限を持つソフトウェア処理に制限される。
【００２２】
一方、ＭＭＵ１１４の第２の動作、即ち、ステップ２０６における暗号鍵フラグの特定は、ＭＭＵによって通常実行される動作ではなく、従って新しい属性を標準的なＭＭＵおよびその関連する１以上の翻訳テーブルに追加する必要がある。発明の一側面によると、ＭＭＵは、マイクロコントローラ１１０によって実行される各ソフトウェア処理に対して異なる暗号鍵フラグを特定する。更なるセキュリティのために、暗号鍵フラグはその暗号鍵自体でなく、暗号鍵を識別するために用いることができるデータ列であることが望ましい。これらの暗号鍵フラグは一度特定されると、メモリ部分１２２−ｉがソフトウェア処理各々にマッピングされる同じ翻訳テーブル内の追加された要素として記憶されることが好ましい。これによって「強化された」ＭＭＵはＣＰＵ１１２によって実行される各ソフトウェア処理を関連するメモリ部分および関連する暗号鍵フラグ双方にマッピングすることができるようになる。
【００２３】
再び図２を参照する。ステップ２０８は鍵管理部１１８がＭＭＵ１１２によって特定された暗号鍵フラグを用いて暗号鍵を取得することからなる。本発明の他の側面によると、マイクロコントローラ１１０内で動作する様々なソフトウェア処理に対する暗号鍵は外部鍵記憶メモリ１４０に記憶される。鍵管理部は好ましくはＭＭＵによって提供された暗号鍵フラグを取得し、このフラグのコンテンツを用いてルックアップテーブルをアドレス指定する。ルックアップテーブルは、ＭＭＵに対する翻訳テーブルのルックアップテーブルと似たような方法で、外部鍵記憶メモリ内のどこに適切な暗号鍵が物理的に記憶されているかを鍵管理部に教える。一度この情報が取得されると、鍵管理部は特定の暗号鍵を外部鍵記憶メモリから読み出す。
【００２４】
なお、本発明のさらに他の側面によると、外部鍵記憶メモリ１４０は好ましくはマイクロコントローラ１１０から分離した集積回路に実装される。外部鍵記憶メモリは、例えばフラッシュメモリに実装されてもよい。フラッシュメモリには不揮発性であることおよび比較的安価であることといった利点がある。しかし、外部鍵記憶メモリはあらゆるタイプのメモリ回路に実装されてもよく、それらは本発明の範疇に入るものである。各タイプのメモリ回路の長所および短所は当業者には精通していることである。
【００２５】
選択的に、外部暗号鍵記憶メモリ１４０に記憶された暗号鍵をそれら自身が暗号化されるようにすることによってセキュリティは更に強化され得る。この暗号化技術の使用によって、外部暗号鍵記憶メモリが取り除かれたり他のハードウエアを用いて上手く分析されたりしてしまう機会を減らすことができる。それに対応して、外部暗号鍵記憶メモリのコンテンツが暗号化されている場合、鍵管理部１１８は、ステップ２０８において暗号鍵が外部暗号鍵記憶メモリから読み出された後に暗号鍵を復号化する追加的なタスクを負うことになる。
【００２６】
暗号鍵自体は当業者が精通している多数の異なる技術によって特定され得る。例えば、暗号鍵は秘密ルート鍵に基づいて特定され得る。追加的におよび選択的に、この秘密ルート鍵は、マイクロコントローラ１１０の起動時に、またはよりセキュリティを増すためにマイクロコントローラの動作中に定期的に、鍵管理部１１８によって再生成されてもよい。これによって外部暗号鍵記憶メモリ１４０に記憶される対応する暗号鍵は、定期的に再生成されることになり、それらが損なわれたり利用されてしまったりする確率は大幅に減る。
【００２７】
ステップ２１０において、ＣＰＵ１１２によって要求されたデータはＭＭＵ１１４によって指定されたメモリ部分１１２−ｉから最終的に読み出される。メモリに記憶されるとき、このデータは暗号化される（１以上の書き込み動作中に暗号化されてきたものである）。その詳細をより詳しく以下に説明する。一度暗号化されたデータがマイクロコントローラ１１０に到達すると、ステップ２１２において、暗号処理部１１６は鍵管理部１１８で特定された暗号鍵を使用してデータを復号化する。ステップ２１４において、暗号化されていないデータがＣＰＵに送られ、これにより完結した読み出し動作が達成される。
【００２８】
書き込み動作は上述の読み出し動作と類似し、その詳細を図３を参照して説明する。読み出し動作のように、書き込み動作はＣＰＵ１１２によって開始される。ステップ３０２において、ＣＰＵは、特定のソフトウェア処理であるソフトウェア処理ｉの実行に関連するメモリにデータを書き込むよう要求する。次のステップ３０４において、ＭＭＵ１１４は、前述したように、ソフトウェア処理ｉに関連するデータの記憶に対して具体的に指定されたメモリ部分１２２−ｉの位置を特定する。この特定の後に、ステップ３０６において、ＭＭＵはさらにこのタイプのデータに対する暗号鍵フラグを特定する。ステップ３０８において、この暗号鍵フラグは、対応する暗号鍵を外部鍵記憶メモリ１４０から読み出すために鍵管理部１１８によって使用される。鍵管理部はまた、先述したように、暗号鍵が外部鍵記憶メモリに暗号化された形式で記憶されている場合、暗号鍵を復号化する。
【００２９】
続いて、図３のステップ３１０において書き込み動作が継続し、ここで、暗号処理部１１６は鍵管理部１１８で特定された暗号鍵を取得し、ステップ３１２においてデータが適切なメモリ部分１１２−ｉに書き込まれる前に、その暗号鍵を用いてデータを暗号化する。これによって本発明の側面による完結した書き込み動作が達成される。
【００３０】
図１のデータ処理回路１００のようなデータ処理システムにおけるデータの暗号化技術は周知であり、従って、当業者には精通しているものである。例えば、暗号処理部１１６はストリーミング・サイファー・アルゴリズムまたはブロック・サイファー・アルゴリズムを実行すればよい。ブロック・サイファー・アルゴリズムに基づく暗号化手法は、さらなる例示として、データ暗号化標準、アドバンスト暗号化標準またはＲＳＡアルゴリズムに基づいていてもよい。これらの暗号化手法その他は、A. Menezes 氏他による「Handbook of Applied Cryptography」CRC Press,１９９６年、に著され、ここに参照として取り込まれる。またさらに、あらゆるデータ暗号化方法が使用され得るが、それも本発明の範囲内のものといえる。しかし、暗号化技術は、それが暗号処理部のデータスループット性能を低下させ、それによってデータ処理回路の全体的なデータ処理速度を遅くしてしまうほど複雑にならないようにすべきである。
【００３１】
選択的に、外部メモリ１２０はまた、マイクロコントローラ１１０上で動作している２以上のソフトウェア処理の間で用いられるデータの記憶媒体として機能するように共有メモリ部分を含んでいてもよいことが分かる。従って、ソフトウェアプログラマは、他のソフトウェア処理による使用のために特定のデータがこの共有メモリ部分に記憶されることを指定してもよい。共有メモリ部分内のデータは好ましくはメモリの他方の部分のように暗号化される。従って、ＭＭＵ１１４は共有メモリ部分のために暗号鍵フラグを特定し記憶することが必要となる。図２および３をそれぞれ参照して前述したように、外部暗号鍵記憶メモリ１４０との関連において、読み出し動作中にデータを復号化し、書き込み動作中にデータを暗号化するために、その暗号鍵フラグは鍵管理部１１８および暗号処理部１１６によってその後に使用されることになる。
【００３２】
重要なこととして、本発明に記載される要素は１以上の集積回路に実装されることができる。結果として、本発明の特徴を備える集積回路は本発明の範囲内のものとなる。集積回路の形成はその技術分野において周知である。一般的には、半導体ウエハの表面に反復的に同一のダイが形成される。各ダイはここに記載された要素を含み、他の構造または回路を含んでいてもよい。個々のダイがウエハから切断され、即ち四角く切られて集積回路としてパッケージされる。当業者には、集積回路を作製するためにどのようにウエハを四角く切りダイをパッケージするかは周知である。
【００３３】
なお、再度強調すると、上述の本発明の実施例は例示の目的のみを意図している。他の実施例は異なるタイプおよび構成の要素並びに記載された機能を実施するためのステップを用いることができる。特許請求の範囲に含まれるこれらの数多くの代替的実施例は当業者には明らかなものである。
【図面の簡単な説明】
【００３４】
【図１】図１は本発明の例示的実施例によるデータ処理回路のブロック図である。
【図２】図２は図１のデータ処理回路における例示的な読み出し動作のフローチャートである。
【図３】図２は図１のデータ処理回路における例示的な書き込み動作のフローチャートである。
【符号の説明】
【００３５】
１００．データ処理回路
１１０．マイクロコントローラ
１１２．中央処理装置
１１４．メモリ管理部
１１６．暗号処理部
１１８．鍵管理部
１２０．外部メモリ
１２２−ｉ．メモリ部分
１３０．外部データバス
１４０．外部鍵記憶メモリ
【図１】
2009518742.tif 000003
【図２】
2009518742.tif 000004
【図３】
2009518742.tif 000005
【手続補正書】
【提出日】平成20年9月2日(2008.9.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
装置であって、
中央処理装置であって、少なくとも第１のセットのデータを使用する第１のソフトウェア処理および第２のセットのデータを使用する第２のソフトウェア処理を実行するよう動作する中央処理装置、
該中央処理装置に結合されたメモリであって、該第１のセットのデータを格納するよう動作する第１のメモリ部分および該第２のセットのデータを格納するよう動作する第２のメモリ部分からなるメモリ、および
該中央処理装置に結合されたメモリ管理部であって、該中央処理装置に、該第１のソフトウェア処理を実行するときのみ該第１のメモリ部分にアクセスすることを許可し、該第２のソフトウェア処理を実行するときのみ該第２のメモリ部分にアクセスすることを許可するよう動作するメモリ管理部
からなり、
該第１のセットのデータの少なくとも一部分および該第２のセットのデータの少なくとも一部分が暗号化され、該第１のセットのデータの暗号化された部分が該第２のセットのデータの暗号化された部分とは異なる暗号鍵によって暗号化される装置。
【請求項２】
請求項１記載の装置であって、さらに、暗号鍵記憶メモリであって該暗号鍵記憶メモリが該第１および第２のセットのデータの暗号化された部分に対する暗号鍵を記憶するよう動作する暗号鍵記憶メモリからなる装置。
【請求項３】
請求項２記載の装置において、該暗号鍵記憶メモリに記憶された該暗号鍵も暗号化される装置。
【請求項４】
請求項２記載の装置において、該暗号鍵記憶メモリがフラッシュメモリ回路に少なくとも部分的に実装されている装置。
【請求項５】
請求項１記載の装置において、該メモリ管理部がさらに、該第１および第２のソフトウェア処理それぞれに対する暗号鍵フラグを特定するよう動作し、該暗号鍵フラグがどの暗号鍵が該第１および第２のセットのデータの該暗号化された部分に関連するかを示している装置。
【請求項６】
請求項１記載の装置において、該中央処理装置が集積回路に実装されている装置。
【請求項７】
請求項６記載の装置において、該メモリが１以上の集積回路に実装され、該１以上の集積回路の少なくとも１つが、該中央処理装置からなる集積回路から分離されている装置。
【請求項８】
請求項６記載の装置であって、さらに、メモリ鍵記憶メモリであって、該メモリ鍵記憶メモリが該第１および第２のセットのデータの該暗号化された部分に対する暗号鍵を記憶するよう動作し、１以上の集積回路に実装され、該１以上の集積回路の少なくとも１つが、該中央処理装置からなる集積回路から分離されているようなメモリ鍵記憶メモリからなる装置。
【請求項９】
集積回路であって、
中央処理装置であって、少なくとも第１のセットのデータを使用する第１のソフトウェア処理および第２のセットのデータを使用する第２のソフトウェア処理を実行するよう動作する中央処理装置からなり、
該中央処理装置がメモリおよびメモリ管理部に結合され、該メモリが該第１のセットのデータを格納するよう動作する第１のメモリ部分および該第２のセットのデータを格納するよう動作する第２のメモリ部分からなり、該メモリ管理部が、該中央処理装置に、該第１のソフトウェア処理を実行するときのみ該第１のメモリ部分にアクセスすることを許可し、該第２のソフトウェア処理を実行するときのみ該第２のメモリ部分にアクセスすることを許可するよう動作し、
該第１のセットのデータの少なくとも一部分および該第２のセットのデータの少なくとも一部分が暗号化され、該第１のセットのデータの暗号化された部分が該第２のセットのデータの暗号化された部分とは異なる暗号鍵によって暗号化される集積回路。
【請求項１０】
中央処理装置並びに第１のメモリ部分および第２のメモリ部分を含むメモリからなる装置においてデータを処理する方法であって、
第１のセットのデータを使用する第１のソフトウェア処理および第２のセットのデータを使用する第２のソフトウェア処理を実行するステップ、
該第１のセットのデータを該第１のメモリ部分に、該第２のセットのデータを該第２のメモリ部分に格納するステップ、および
該中央処理装置に、該第１のソフトウェア処理を実行するときのみ該第１のメモリ部分にアクセスすることを許可し、該第２のソフトウェア処理を実行するときのみ該第２のメモリ部分にアクセスすることを許可するステップ
からなり、
該第１のセットのデータの少なくとも一部分および該第２のセットのデータの少なくとも一部分が暗号化され、該第１のセットのデータの暗号化された部分が該第２のセットのデータの暗号化された部分とは異なる暗号鍵によって暗号化される方法。
【国際調査報告】
2009518742.tif 000006