JP2009518742A - マイクロコントローラにおけるデータの安全な取扱いのための方法および装置 - Google Patents

マイクロコントローラにおけるデータの安全な取扱いのための方法および装置 Download PDF

Info

Publication number
JP2009518742A
JP2009518742A JP2008544321A JP2008544321A JP2009518742A JP 2009518742 A JP2009518742 A JP 2009518742A JP 2008544321 A JP2008544321 A JP 2008544321A JP 2008544321 A JP2008544321 A JP 2008544321A JP 2009518742 A JP2009518742 A JP 2009518742A
Authority
JP
Japan
Prior art keywords
data
memory
encrypted
processing unit
central processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008544321A
Other languages
English (en)
Inventor
ジョセフ チェインバーズ,マイケル
キースリング,マイケル
エー. タックマン,ケニス
ワン,ハイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agere Systems LLC
Original Assignee
Agere Systems LLC
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 Agere Systems LLC filed Critical Agere Systems LLC
Publication of JP2009518742A publication Critical patent/JP2009518742A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • 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
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Abstract

マイクロコントローラにおけるデータを、外部データバスおよび/または外部メモリからのデータの読み取りに対する許可なき試行からだけでなく、端末内部で実行される悪意のソフトウェア処理からも保護するための装置および方法が提供される。本発明の例示的実施例は強化されたメモリ管理部(MMU)をある程度利用してセキュリティの向上を達成する。強化されたMMUは、マイクロコントローラ上で実行されている1つのソフトウェア処理が同じマイクロコントローラ上で実行されている異なるソフトウェア処理に関連するデータにアクセスすることを防止する。さらに、外部データバスを介して送信され、または外部メモリに記憶されたデータが暗号化され、これにより、許可なきユーザがそのデータから利用可能な情報を領得する機会を減らす。

Description

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

Claims (20)

  1. 装置であって、
    中央処理装置であって、少なくとも第1のセットのデータを使用する第1のソフトウェア処理および第2のセットのデータを使用する第2のソフトウェア処理を実行するよう動作する中央処理装置、
    該中央処理装置に結合されたメモリであって、該第1のセットのデータを格納するよう動作する第1のメモリ部分および該第2のセットのデータを格納するよう動作する第2のメモリ部分からなるメモリ、および
    該中央処理装置に結合されたメモリ管理部であって、該中央処理装置に、該第1のソフトウェア処理を実行するときのみ該第1のメモリ部分にアクセスすることを許可し、該第2のソフトウェア処理を実行するときのみ該第2のメモリ部分にアクセスすることを許可するよう動作するメモリ管理部
    からなり、
    該第1のセットのデータの少なくとも一部分および該第2のセットのデータの少なくとも一部分が暗号化され、該第1のセットのデータの暗号化された部分が該第2のセットのデータの暗号化された部分とは異なる暗号鍵によって暗号化される装置。
  2. 請求項1記載の装置であって、さらに、該中央処理装置と該メモリとの間で該第1および第2のセットのデータを少なくとも部分的に伝送するよう動作するデータバスからなる装置。
  3. 請求項2記載の装置において、該データバス上で伝送されるデータの少なくとも一部分が暗号化される装置。
  4. 請求項1記載の装置であって、さらに、暗号処理部であって該第1および第2のセットのデータの部分を暗号化および復号化するよう動作する暗号処理部からなる装置。
  5. 請求項1記載の装置であって、さらに、暗号鍵記憶メモリであって該暗号鍵記憶メモリが該第1および第2のセットのデータの暗号化された部分に対する暗号鍵を記憶するよう動作する暗号鍵記憶メモリからなる装置。
  6. 請求項5記載の装置において、該暗号鍵記憶メモリに記憶された該暗号鍵も暗号化される装置。
  7. 請求項5記載の装置において、該暗号鍵記憶メモリがフラッシュメモリ回路に少なくとも部分的に実装されている装置。
  8. 請求項1記載の装置において、該メモリ管理部がさらに、該第1および第2のソフトウェア処理それぞれに対する暗号鍵フラグを特定するよう動作し、該暗号鍵フラグがどの暗号鍵が該第1および第2のセットのデータの該暗号化された部分に関連するかを示している装置。
  9. 請求項1記載の装置において、該装置がマイクロコントローラ内に少なくとも部分的に実装されている装置。
  10. 請求項1記載の装置において、該メモリがランダムアクセスメモリ内に少なくとも部分的に実装されている装置。
  11. 請求項1記載の装置において、該中央処理装置が集積回路に実装されている装置。
  12. 請求項11記載の装置において、該メモリが1以上の集積回路に実装され、該1以上の集積回路の少なくとも1つが、該中央処理装置からなる集積回路から分離されている装置。
  13. 請求項11記載の装置であって、さらに、メモリ鍵記憶メモリであって、該メモリ鍵記憶メモリが該第1および第2のセットのデータの該暗号化された部分に対する暗号鍵を記憶するよう動作し、1以上の集積回路に実装され、該1以上の集積回路の少なくとも1つが、該中央処理装置からなる集積回路から分離されているようなメモリ鍵記憶メモリからなる装置。
  14. 請求項1記載の装置において、該装置が移動端末からなる装置。
  15. 請求項14記載の装置において、該移動端末が携帯電話からなる装置。
  16. 請求項14記載の装置において、該移動端末がパーソナルデジタルアシスタントからなる装置。
  17. 請求項14記載の装置において、該移動端末が電子メールを送受信するよう動作する装置。
  18. 集積回路であって、
    中央処理装置であって、少なくとも第1のセットのデータを使用する第1のソフトウェア処理および第2のセットのデータを使用する第2のソフトウェア処理を実行するよう動作する中央処理装置からなり、
    該中央処理装置がメモリおよびメモリ管理部に結合され、該メモリが該第1のセットのデータを格納するよう動作する第1のメモリ部分および該第2のセットのデータを格納するよう動作する第2のメモリ部分からなり、該メモリ管理部が、該中央処理装置に、該第1のソフトウェア処理を実行するときのみ該第1のメモリ部分にアクセスすることを許可し、該第2のソフトウェア処理を実行するときのみ該第2のメモリ部分にアクセスすることを許可するよう動作し、
    該第1のセットのデータの少なくとも一部分および該第2のセットのデータの少なくとも一部分が暗号化され、該第1のセットのデータの暗号化された部分が該第2のセットのデータの暗号化された部分とは異なる暗号鍵によって暗号化される集積回路。
  19. 中央処理装置並びに第1のメモリ部分および第2のメモリ部分を含むメモリからなる装置においてデータを処理する方法であって、
    第1のセットのデータを使用する第1のソフトウェア処理および第2のセットのデータを使用する第2のソフトウェア処理を実行するステップ、
    該第1のセットのデータを該第1のメモリ部分に、該第2のセットのデータを該第2のメモリ部分に格納するステップ、および
    該中央処理装置に、該第1のソフトウェア処理を実行するときのみ該第1のメモリ部分にアクセスすることを許可し、該第2のソフトウェア処理を実行するときのみ該第2のメモリ部分にアクセスすることを許可するステップ
    からなり、
    該第1のセットのデータの少なくとも一部分および該第2のセットのデータの少なくとも一部分が暗号化され、該第1のセットのデータの暗号化された部分が該第2のセットのデータの暗号化された部分とは異なる暗号鍵によって暗号化される方法。
  20. 請求項19記載の方法において、該装置が少なくとも部分的にマイクロコントローラ内に実装されている方法。
JP2008544321A 2005-12-08 2006-07-25 マイクロコントローラにおけるデータの安全な取扱いのための方法および装置 Pending JP2009518742A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/297,484 US7657754B2 (en) 2005-12-08 2005-12-08 Methods and apparatus for the secure handling of data in a microcontroller
PCT/US2006/028746 WO2007067221A2 (en) 2005-12-08 2006-07-25 Methods and apparatus for the secure handling of data in a microcontroller

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013140397A Division JP2013232219A (ja) 2005-12-08 2013-07-04 マイクロコントローラにおけるデータの安全な取扱いのための方法および装置

Publications (1)

Publication Number Publication Date
JP2009518742A true JP2009518742A (ja) 2009-05-07

Family

ID=38123345

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008544321A Pending JP2009518742A (ja) 2005-12-08 2006-07-25 マイクロコントローラにおけるデータの安全な取扱いのための方法および装置
JP2013140397A Pending JP2013232219A (ja) 2005-12-08 2013-07-04 マイクロコントローラにおけるデータの安全な取扱いのための方法および装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013140397A Pending JP2013232219A (ja) 2005-12-08 2013-07-04 マイクロコントローラにおけるデータの安全な取扱いのための方法および装置

Country Status (6)

Country Link
US (1) US7657754B2 (ja)
JP (2) JP2009518742A (ja)
KR (1) KR101224322B1 (ja)
CN (2) CN103824032A (ja)
GB (1) GB2443984B (ja)
WO (1) WO2007067221A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018502371A (ja) * 2014-12-15 2018-01-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation セキュア・オブジェクトをサポートするプロセッサ、方法およびコンピュータ・プログラム
US10628579B2 (en) 2009-06-26 2020-04-21 International Business Machines Corporation System and method for supporting secure objects using a memory access control monitor

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7657754B2 (en) 2005-12-08 2010-02-02 Agere Systems Inc Methods and apparatus for the secure handling of data in a microcontroller
US8528108B2 (en) * 2006-10-06 2013-09-03 Agere Systems Llc Protecting secret information in a programmed electronic device
WO2009013700A2 (en) * 2007-07-24 2009-01-29 Nxp B.V. Method, system and trusted service manager for securely transmitting an application to a mobile phone
US7967215B2 (en) * 2008-04-18 2011-06-28 Vivotech Inc. Systems, methods, and computer program products for supporting multiple contactless applications using different security keys
US8589700B2 (en) * 2009-03-04 2013-11-19 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory
US8549626B1 (en) * 2009-03-20 2013-10-01 Symantec Corporation Method and apparatus for securing a computer from malicious threats through generic remediation
US9087200B2 (en) 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
DE112009005466T5 (de) * 2009-12-22 2012-10-31 Intel Corporation Verfahren und Vorrichtung zum Bereitstellen einer sicheren Anwendungsausführung
US20110191562A1 (en) * 2010-02-02 2011-08-04 Broadcom Corporation Apparatus and method for partitioning, sandboxing and protecting external memories
WO2011119137A1 (en) 2010-03-22 2011-09-29 Lrdc Systems, Llc A method of identifying and protecting the integrity of a set of source data
US20140149729A1 (en) 2011-07-18 2014-05-29 Ted A. Hadley Reset vectors for boot instructions
KR102013841B1 (ko) * 2012-08-06 2019-08-23 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US20140189246A1 (en) * 2012-12-31 2014-07-03 Bin Xing Measuring applications loaded in secure enclaves at runtime
US9430384B2 (en) * 2013-03-31 2016-08-30 Intel Corporation Instructions and logic to provide advanced paging capabilities for secure enclave page caches
KR102218715B1 (ko) 2014-06-19 2021-02-23 삼성전자주식회사 채널별로 데이터를 보호할 수 있는 반도체 장치
US10192062B2 (en) * 2014-06-20 2019-01-29 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
US10691838B2 (en) 2014-06-20 2020-06-23 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
US10169618B2 (en) * 2014-06-20 2019-01-01 Cypress Semiconductor Corporation Encryption method for execute-in-place memories
US9298647B2 (en) 2014-08-25 2016-03-29 HGST Netherlands B.V. Method and apparatus to generate zero content over garbage data when encryption parameters are changed
KR102208072B1 (ko) 2014-09-01 2021-01-27 삼성전자주식회사 데이터 처리 시스템
CN104636275B (zh) * 2014-12-30 2018-02-23 北京兆易创新科技股份有限公司 一种mcu芯片的信息保护方法和装置
GB2539428B (en) 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
GB2539429B (en) * 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
US10198349B2 (en) * 2016-09-19 2019-02-05 Advanced Micro Devices, Inc. Programming in-memory accelerators to improve the efficiency of datacenter operations
US10896267B2 (en) * 2017-01-31 2021-01-19 Hewlett Packard Enterprise Development Lp Input/output data encryption
US10656855B2 (en) * 2018-07-31 2020-05-19 International Business Machines Corporation Memory management in a programmable device
CN110138556A (zh) * 2019-05-28 2019-08-16 上海兆芯集成电路有限公司 数据处理装置及数据处理方法
US11398899B2 (en) 2019-05-28 2022-07-26 Shanghai Zhaoxin Semiconductor Co., Ltd. Data processing device and data processing method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01265341A (ja) * 1988-04-18 1989-10-23 Toshiba Corp メモリアクセス制御装置
JP2001318787A (ja) * 2000-05-08 2001-11-16 Toshiba Corp マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP2004252968A (ja) * 2003-01-31 2004-09-09 Matsushita Electric Ind Co Ltd 半導体メモリカード、制御プログラム。
JP2004272816A (ja) * 2003-03-11 2004-09-30 Ntt Docomo Inc マルチタスク実行システム及びマルチタスク実行方法
JP2005078459A (ja) * 2003-09-01 2005-03-24 Toshiba Corp マイクロプロセッサ

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2035697A1 (en) 1991-02-05 1992-08-06 Brian James Smyth Encryption apparatus for computer device
US7124302B2 (en) 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5943421A (en) 1995-09-11 1999-08-24 Norand Corporation Processor having compression and encryption circuitry
US5892826A (en) 1996-01-30 1999-04-06 Motorola, Inc. Data processor with flexible data encryption
US5825878A (en) * 1996-09-20 1998-10-20 Vlsi Technology, Inc. Secure memory management unit for microprocessor
US6175924B1 (en) * 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US6934389B2 (en) 2001-03-02 2005-08-23 Ati International Srl Method and apparatus for providing bus-encrypted copy protection key to an unsecured bus
GB2385951A (en) * 2001-09-21 2003-09-03 Sun Microsystems Inc Data encryption and decryption
US7107459B2 (en) * 2002-01-16 2006-09-12 Sun Microsystems, Inc. Secure CPU and memory management unit with cryptographic extensions
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
CN1296790C (zh) * 2002-06-05 2007-01-24 富士通株式会社 存储器管理单元、代码验证装置以及代码译码装置
US7565537B2 (en) 2002-06-10 2009-07-21 Microsoft Corporation Secure key exchange with mutual authentication
JP2004272594A (ja) * 2003-03-07 2004-09-30 Sony Corp データ利用装置及びデータ利用方法、並びにコンピュータ・プログラム
US8060756B2 (en) * 2003-08-07 2011-11-15 Rao G R Mohan Data security and digital rights management system
US7802095B2 (en) 2004-02-03 2010-09-21 Music Public Broadcasting, Inc. Method and system for preventing unauthorized recording of media content on a Macintosh operating system
US7734926B2 (en) * 2004-08-27 2010-06-08 Microsoft Corporation System and method for applying security to memory reads and writes
US7502946B2 (en) * 2005-01-20 2009-03-10 Panasonic Corporation Using hardware to secure areas of long term storage in CE devices
US7657754B2 (en) 2005-12-08 2010-02-02 Agere Systems Inc Methods and apparatus for the secure handling of data in a microcontroller

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01265341A (ja) * 1988-04-18 1989-10-23 Toshiba Corp メモリアクセス制御装置
JP2001318787A (ja) * 2000-05-08 2001-11-16 Toshiba Corp マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP2004252968A (ja) * 2003-01-31 2004-09-09 Matsushita Electric Ind Co Ltd 半導体メモリカード、制御プログラム。
JP2004272816A (ja) * 2003-03-11 2004-09-30 Ntt Docomo Inc マルチタスク実行システム及びマルチタスク実行方法
JP2005078459A (ja) * 2003-09-01 2005-03-24 Toshiba Corp マイクロプロセッサ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10628579B2 (en) 2009-06-26 2020-04-21 International Business Machines Corporation System and method for supporting secure objects using a memory access control monitor
JP2018502371A (ja) * 2014-12-15 2018-01-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation セキュア・オブジェクトをサポートするプロセッサ、方法およびコンピュータ・プログラム
US11907361B2 (en) 2014-12-15 2024-02-20 International Business Machines Corporation System and method for supporting secure objects using a memory access control monitor

Also Published As

Publication number Publication date
KR101224322B1 (ko) 2013-01-18
GB0802864D0 (en) 2008-03-26
GB2443984B (en) 2010-10-27
CN101268650A (zh) 2008-09-17
JP2013232219A (ja) 2013-11-14
CN103824032A (zh) 2014-05-28
KR20080074848A (ko) 2008-08-13
US20070136576A1 (en) 2007-06-14
GB2443984A (en) 2008-05-21
US7657754B2 (en) 2010-02-02
WO2007067221A2 (en) 2007-06-14
WO2007067221A3 (en) 2008-04-17

Similar Documents

Publication Publication Date Title
US7657754B2 (en) Methods and apparatus for the secure handling of data in a microcontroller
US9397834B2 (en) Scrambling an address and encrypting write data for storing in a storage device
TWI715619B (zh) 用於硬體強制單向密碼學的處理器、方法及系統
US9043615B2 (en) Method and apparatus for a trust processor
US8782433B2 (en) Data security
US8347114B2 (en) Method and apparatus for enforcing a predetermined memory mapping
US9898624B2 (en) Multi-core processor based key protection method and system
CN101551784B (zh) 一种usb接口的ata类存储设备中数据的加密方法及装置
US20090282254A1 (en) Trusted mobile platform architecture
US20100241841A1 (en) System and Method for Securing Executable Code
US20060294370A1 (en) Method, device, and system of maintaining a context of a secure execution environment
KR20040019392A (ko) 전자 장치에서의 정보 처리 방법, 시스템, 전자 장치 및처리 블록
JP2008527532A (ja) 非セキュリティ領域にセキュリティ領域を割り当てる方法及び携帯用保存装置
CN115374483B (zh) 数据安全存储方法及装置、电子设备、介质、芯片
US8707054B2 (en) Establishing a secure memory path in a unitary memory architecture
CN113742657A (zh) 软件保护方法及其系统
US20140164787A1 (en) Control method and information processing apparatus
CN116226870B (zh) 安全增强系统及方法
TWI791995B (zh) 軟體保護方法及其系統
CN110999205A (zh) 用于简档证书私有密钥或其他数据的封装的装置和方法
CN116860666A (zh) 一种gpu内存保护方法、装置、芯片及电子设备
CN116186727A (zh) 一种数据加密方法、解密方法及其相关设备
CN115292727A (zh) 基于TrustZone的根文件系统加密方法及装置、设备及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110502

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110802

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120521

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130305

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20140812

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140821