JP4347582B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP4347582B2
JP4347582B2 JP2003026810A JP2003026810A JP4347582B2 JP 4347582 B2 JP4347582 B2 JP 4347582B2 JP 2003026810 A JP2003026810 A JP 2003026810A JP 2003026810 A JP2003026810 A JP 2003026810A JP 4347582 B2 JP4347582 B2 JP 4347582B2
Authority
JP
Japan
Prior art keywords
secure
data
memory space
information
secure information
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.)
Expired - Fee Related
Application number
JP2003026810A
Other languages
English (en)
Other versions
JP2004240536A (ja
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003026810A priority Critical patent/JP4347582B2/ja
Priority to US10/764,513 priority patent/US7523279B2/en
Priority to CNB2004100037337A priority patent/CN1252599C/zh
Publication of JP2004240536A publication Critical patent/JP2004240536A/ja
Application granted granted Critical
Publication of JP4347582B2 publication Critical patent/JP4347582B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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/1425Protection 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 physical, e.g. cell, word, block
    • G06F12/1433Protection 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 physical, e.g. cell, word, block for a module or a part of a module

Description

【0001】
【発明の属する技術分野】
本発明は、ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置に関するものである。
【0002】
【従来の技術】
従来、例えばSDカードのセキュリティを守るのに、暗号解読をハードが行い、SDカード内の暗号データと暗号鍵とを用いて暗号を解読し、暗号化されていないデータに復号化していた。これが将来的には、複数の暗号化に対応するためにPDA(personal digital assistants:携帯情報端末)等でのコンテンツサービスでは暗号解読をソフトで行うようになる可能性がある。従来は、OS(operatingsystem)の特権モードと通常モードでユーザがアクセスできる領域を切り分けることによって、また、メモリマネジメントユニット等のハードウエアのメモリ保護機能によって、暗号解読ソフトの外部漏洩を防いでいた。
【0003】
【特許文献1】
特開平6−266624号公報(第3−6頁、図1−図3)
【0004】
【発明が解決しようとする課題】
しかしながら、オープンソースなOSである例えばLinuxを使ったPDAでは、ソフトウェア開発環境が広くユーザに開示されることになる。これにより、アプリケーションの開発が行いやすくなる反面、Linux等の開示された開発環境で、ユーザがOSの持つ特権モードを利用して、ユーザモードではアクセスできないセキュリティのかけられた空間のデータを読み出し、ユーザRAM空間や外部空間への転送を行うことでOSのデバッグ作業を行っていたような従来技術を利用して、セキュリティ空間に置かれた暗号鍵やデータや命令を盗むといった悪用が簡単にできてしまう可能性があるという課題が出てくる。
【0005】
また、わが国では平成12年12月よりBSデジタル放送が開始され、放送のデジタル化が進むとともに、放送されたデジタルコンテンツの著作権が侵害される問題も発生している。そのため、放送コンテンツ提供者の中には、コンテンツを提供するに当って厳格な著作権保護を求める者も現れており、放送メディアのデジタル化とデジタルコンテンツの円滑な流通を促進させるためには、放送コンテンツの権利保護のための何らかの措置が必要になってくる。
【0006】
本発明は、かかる点に鑑み、暗号解読アルゴリズムが明らかであってもオープンな開発環境に与えられる特権モードを利用するだけでは、セキュアメモリ空間の暗号鍵やデータや命令を読むことについて、これをできないようにすることで、将来的に行われる可能性の高い悪用を回避する情報処理装置を提供することを目的とする。
【0007】
【課題を解決するための手段】
上記の課題を解決するために、本発明は次のような手段を講じる。
【0012】
(1)第1の解決手段として、本発明による情報処理装置は、ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、CPUによる演算処理に用いられ、データ制御部とデータの受け渡しを行い、その内部にデータを格納する機能を持つ複数の汎用レジスタと、前記各汎用レジスタに付加され、前記ユーザメモリ空間から前記汎用レジスタのデータ部へのデータ転送が行われた場合はセキュリティ不要状態にセットされ、前記セキュアメモリ空間から前記汎用レジスタのデータ部にデータ転送が行われた場合はセキュリティ必要状態にセットされることが可能であるセキュア情報部と、前記汎用レジスタのデータを前記ユーザメモリ空間に書き込む際に、前記セキュア情報部の値がセキュリティ必要状態かセキュリティ不要状態かを判別した結果に応じて、前記ユーザメモリ空間へのデータ転送を禁止するか否かの制御を行う機能を持つ前記データ制御部と、前記アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別した結果に応じて、前記セキュア情報部に格納する値を選択する機能を持つアドレス制御部と、前記データ制御部から入力される命令コードを格納する際に、アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別した結果に応じて、前記ユーザメモリ空間に格納されているユーザプログラムと前記セキュアメモリ空間に格納されているセキュアプログラムのどちらが実行されているかを前記データ制御部に知らせる機能を持つ命令フェッチアドレス制御部と、前記CPUによる命令フェッチ処理に用いられ、前記データ制御部から入力された命令コードをその内部に格納する機能を持つ命令バッファとを備え、前記データ制御部は、転送命令を実行して前記汎用レジスタのデータ部からメモリ空間にデータ転送を実行する際に、前記命令フェッチアドレス制御部によって、前記ユーザメモリ空間から命令をフェッチしてきたことが判別された場合で、かつ、前記セキュア情報部の値がセキュリティ必要状態である場合、前記ユーザメモリ空間へのデータ転送を禁止する情報処理装置において、前記セキュア情報部は、前記アドレス制御部の制御を受けて、セキュリティ必要状態またはセキュリティ不要状態またはセキュリティ無効状態の値をセットすることが可能であり、演算命令を実行して前記各汎用レジスタを用いて2つ以上のレジスタ同士の演算を行う際に、前記セキュア情報部の値がセキュリティ必要状態である前記汎用レジスタを少なくとも1つ以上含む場合は、演算結果を格納する汎用レジスタのセキュア情報部をセキュリティ無効状態とする機能を持つ汎用レジスタファイルをさらに備え、前記データ制御部は、前記セキュア情報部がセキュリティ無効状態の汎用レジスタに対する演算命令を行う際に、前記命令フェッチアドレス制御部によって前記ユーザメモリ空間から演算命令をフェッチしてきたことが判別された場合は演算を禁止することを特徴とする。
【0013】
上記構成による作用は次のとおりである。セキュアメモリ空間のデータを格納したレジスタの内容に対して、ユーザプログラムの演算処理による操作(例えば、セキュアメモリ空間からレジスタに読み出したデータと、オール“1”のデータとのAND演算を行った結果を、別のレジスタに格納するようなダミー演算などを行う操作)をできなくすることで、セキュアメモリ空間のメモリ内容の推測を防ぎ、セキュアプログラムの解読(ハッキング)を防ぐことができる。
【0014】
(2)第2の解決手段として、本発明による情報処理装置は、ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、CPUによる演算処理に用いられ、データ制御部とデータの受け渡しを行い、その内部にデータを格納する機能を持つ複数の汎用レジスタと、前記各汎用レジスタに付加され、前記ユーザメモリ空間から前記汎用レジスタのデータ部へのデータ転送が行われた場合はセキュリティ不要状態にセットされ、前記セキュアメモリ空間から前記汎用レジスタのデータ部にデータ転送が行われた場合はセキュリティ必要状態にセットされることが可能であるセキュア情報部と、前記汎用レジスタのデータを前記ユーザメモリ空間に書き込む際に、前記セキュア情報部の値がセキュリティ必要状態かセキュリティ不要状態かを判別した結果に応じて、前記ユーザメモリ空間へのデータ転送を禁止するか否かの制御を行う機能を持つ前記データ制御部と、前記アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別した結果に応じて、前記セキュア情報部に格納する値を選択する機能を持つアドレス制御部と、前記データ制御部から入力される命令コードを格納する際に、アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別した結果に応じて、前記ユーザメモリ空間に格納されているユーザプログラムと前記セキュアメモリ空間に格納されているセキュアプログラムのどちらが実行されているかを前記データ制御部に知らせる機能を持つ命令フェッチアドレス制御部と、前記CPUによる命令フェッチ処理に用いられ、前記データ制御部から入力された命令コードをその内部に格納する機能を持つ命令バッファとを備え、前記データ制御部は、転送命令を実行して前記汎用レジスタのデータ部からメモリ空間にデータ転送を実行する際に、前記命令フェッチアドレス制御部によって、前記ユーザメモリ空間から命令をフェッチしてきたことが判別された場合で、かつ、前記セキュア情報部の値がセキュリティ必要状態である場合、前記ユーザメモリ空間へのデータ転送を禁止する情報処理装置において、前記CPUによる演算処理に用いられ、比較演算処理等の結果を比較フラグとして値を保持する機能を持ち、演算命令を実行して、2つ以上の汎用レジスタ同士の演算を行う際に、前記セキュア情報部の値がセキュリティ必要状態である前記汎用レジスタを少なくとも1つ以上含む場合で、かつ、前記命令フェッチアドレス制御部によって前記ユーザメモリ空間から演算命令をフェッチしてきたことが判別された場合は、各フラグの値を変化させない状態レジスタをさらに備えることを特徴とする。
【0015】
上記構成による作用は次のとおりである。ユーザプログラムが、比較演算処理等の結果を比較フラグとして値を保持する状態レジスタを用いて2値以上のレジスタ比較を行ったとしても、セキュアメモリ空間のデータを格納したレジスタ内容の比較による推測を防ぎ、セキュアプログラムの解読を防ぐことができる。
【0016】
(3)第3の解決手段として、本発明による情報処理装置は、ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、CPUによる演算処理に用いられ、データ制御部とデータの受け渡しを行い、その内部にデータを格納する機能を持つ汎用レジスタと、前記汎用レジスタに付加され、前記ユーザメモリ空間から前記汎用レジスタのデータ部へのデータ転送が行われた場合はセキュリティ不要状態にセットされ、前記セキュアメモリ空間から前記汎用レジスタのデータ部にデータ転送が行われた場合はセキュリティ必要状態にセットされることが可能であるセキュア情報部と、前記汎用レジスタのデータを前記ユーザメモリ空間に書き込む際に、前記セキュア情報部の値がセキュリティ必要状態かセキュリティ不要状態かを判別した結果に応じて、前記ユーザメモリ空間へのデータ転送を禁止するか否かの制御を行う機能を持つ前記データ制御部と、前記アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別した結果に応じて、前記セキュア情報部に格納する値を選択する機能を持つアドレス制御部と、前記データ制御部から入力される命令コードを格納する際に、アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別した結果に応じて、前記ユーザメモリ空間に格納されているユーザプログラムと前記セキュアメモリ空間に格納されているセキュアプログラムのどちらが実行されているかを前記データ制御部に知らせる機能を持つ命令フェッチアドレス制御部と、前記CPUによる命令フェッチ処理に用いられ、前記データ制御部から入力された命令コードをその内部に格納する機能を持つ命令バッファとを備え、前記データ制御部は、転送命令を実行して前記汎用レジスタのデータ部からメモリ空間にデータ転送を実行する際に、前記命令フェッチアドレス制御部によって、前記ユーザメモリ空間から命令をフェッチしてきたことが判別された場合で、かつ、前記セキュア情報部の値がセキュリティ必要状態である場合、前記ユーザメモリ空間へのデータ転送を禁止する情報処理装置において、前記ユーザメモリ空間に外部からアクセスを行う際に使用される読み書き可能なIO空間であるユーザIO空間と、前記セキュアメモリ空間に外部からアクセスを行う際に使用される読み書き可能なIO空間であるセキュアIO空間と、前記セキュアIO空間を介してCPUに読み出されると、前記命令フェッチアドレス制御部と前記アドレス制御部のアドレス判別機能を停止させる機能を持つデバッグ鍵と、前記セキュアIO空間に接続して使用され、前記デバッグ鍵を含むデータを内部に格納する機能を持つICカードとをさらに備え、前記データ制御部は、転送命令を実行して前記汎用レジスタのデータ部からメモリ空間にデータ転送を実行する際に、前記デバッグ鍵がCPUに読み出された場合には、前記ユーザメモリ空間と前記セキュアメモリ空間のどちらから命令をフェッチしてきた場合も前記ユーザメモリ空間へのデータ転送を禁止しない機能を持つことを特徴とする。
【0017】
上記構成による作用は次のとおりである。開発者がユーザシステムでセキュアプログラムのデバッグを行う際には、汎用レジスタのセキュア情報付加ビットの機能は停止され、ユーザメモリ空間とセキュアメモリ空間の領域間での自由なデータ転送が可能となり、セキュアプログラムをモニタリングできるようになる。すなわち、ユーザの環境においても、開発者はデバッグ鍵が格納されたICカードによりセキュアプログラムを容易にデバッグでき、従来の特権モードと同義の権利を得られる。
【0018】
(4)第4の解決手段として、本発明による情報処理装置は、ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、それぞれ次のような機能を有する構成要素〜セキュア情報生成部、セキュア情報付き汎用レジスタ、セキュア情報付き内蔵RAM空間およびデータ出力制御部を備えている。前記セキュア情報生成部は、アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別し、セキュア情報を付加したデータをセキュア情報付きデータとしてセキュア情報部付き汎用レジスタに受け渡す。前記セキュア情報付き汎用レジスタは、前記セキュア情報付きデータを受け取って保持する機能を持つ。前記セキュア情報付き内蔵RAM空間は、前記セキュア情報付き汎用レジスタから前記セキュア情報付きデータを受け取って保持するとともに、前記保持したセキュア情報付きデータを前記セキュア情報付き汎用レジスタに受け渡す機能を持つ。前記データ出力制御部は、前記セキュア情報により外部空間へのデータ転送制御を行う機能を持つ。さらに、前記データ出力制御部は、前記セキュア情報付き汎用レジスタにセットされた前記セキュア情報の値により前記外部空間へのデータ転送を禁止するか否かの制御を行うように構成されている。
【0019】
上記構成による作用は次のとおりである。汎用レジスタにセキュア情報のための付加ビットを設けるだけで、CPUの命令セットを変更することなく、また、特権モードと通常モードの切り替え制御を行わずして、ユーザのプログラムによるレジスタを介したセキュアメモリ空間から外部空間へのデータ転送を禁止することができる。すなわち、セキュアプログラムの解読(ハッキング)を防ぐことができる。
【0020】
さらに、セキュア情報付き内蔵RAM空間を経由するデータのセキュリティ管理を可能とし、データ自身にセキュア情報を付加するため、内蔵RAM空間にセキュアメモリ空間のデータとユーザメモリ空間のデータの混在を可能とする。そして、ユーザメモリ空間の命令により、セキュア情報付き内蔵RAM空間上のセキュアデータの書き換えを許可し、通常使用に影響がない状態でセキュア情報付き内蔵RAM空間のセキュリティ管理を可能とすることができる。
【0021】
(5)第5の解決手段として、本発明による情報処理装置は、ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、それぞれ次のような機能を有する構成要素〜セキュア情報生成部、セキュア情報付き汎用レジスタ、セキュア情報付き命令デコーダ、セキュア情報付き内蔵RAM空間、セキュア情報付き割り込み退避情報部およびデータ出力制御部を備えている。前記セキュア情報生成部は、アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別し、セキュア情報を付加したデータをセキュア情報付きデータとしてセキュア情報部付き汎用レジスタに受け渡す。前記セキュア情報付き汎用レジスタは、前記セキュア情報付きデータを受け取って保持する機能を持つ。前記セキュア情報付き命令デコーダは、実行中の命令が前記ユーザメモリ空間の命令か前記セキュアメモリ空間の命令かを判別する機能を持つ。前記セキュア情報付き内蔵RAM空間は、前記セキュア情報付き汎用レジスタから前記セキュア情報付きデータを受け取って保持するとともに、前記保持したセキュア情報付きデータを前記セキュア情報付き汎用レジスタに受け渡す機能を持つ。前記セキュア情報付き割り込み退避情報部は、割り込み等の処理が発生した際に、前記セキュア情報付き内蔵RAM空間のスタック領域に退避するデータに前記セキュア情報付き命令デコーダの前記セキュア情報を付加する機能を持つ。前記データ出力制御部は、前記セキュア情報により外部空間へのデータ転送制御を行う機能を持つ。さらに、前記データ出力制御部は、前記セキュア情報付き汎用レジスタにセットされた前記セキュア情報の値により前記外部空間へのデータ転送を禁止するか否かの制御を行うように構成されている。
【0022】
上記構成による作用は次のとおりである。割り込み等によるセキュア情報付き内蔵RAM空間への退避データにセキュア情報を付加することにより、内蔵RAM空間に自動的に退避されたデータの読み出しにおけるセキュリティ管理を可能にする。したがって、セキュアメモリ空間の重要なタスクのハッキングを防御することができる。
【0023】
(6)第6の解決手段として、本発明による情報処理装置は、ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、それぞれ次のような機能を有する構成要素〜セキュア情報生成部、セキュア情報付き汎用レジスタ、セキュア情報付き命令デコーダ、セキュア情報付き内蔵RAM空間、セキュア情報付き割り込み退避情報部、スタックポインタおよび退避情報書き換え制御部を備えている。前記セキュア情報生成部は、アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別し、セキュア情報を付加したデータをセキュア情報付きデータとしてセキュア情報部付き汎用レジスタに受け渡す。前記セキュア情報付き汎用レジスタは、前記セキュア情報付きデータを受け取って保持する機能を持つ。前記セキュア情報付き命令デコーダは、実行中の命令が前記ユーザメモリ空間の命令か前記セキュアメモリ空間の命令かを判別する機能を持つ。前記セキュア情報付き内蔵RAM空間は、前記セキュア情報付き汎用レジスタから前記セキュア情報付きデータを受け取って保持するとともに、前記保持したセキュア情報付きデータを前記セキュア情報付き汎用レジスタに受け渡す機能を持つ。前記セキュア情報付き割り込み退避情報部は、割り込み等の処理が発生した際に、前記セキュア情報付き内蔵RAM空間のスタック領域に退避するデータに前記セキュア情報付き命令デコーダの前記セキュア情報を付加する機能を持つ。前記スタックポインタは、前記セキュア情報付き内蔵RAM空間の一部をスタック領域に定義する。前記退避情報書き換え制御部は、前記セキュア情報付き内蔵RAM空間のスタック領域の書き換え制御を行う。さらに、前記退避情報書き換え制御部は、前記セキュア情報付き命令デコーダの命令がユーザメモリ空間の命令でかつ前記セキュア情報付き内蔵RAM空間のスタック領域を書き換えようとした命令の場合には、その書き換えを禁止するものである。
【0024】
上記構成による作用は次のとおりである。セキュアメモリ空間の命令実行中にユーザ割り込み等によって、セキュア情報付き内蔵RAM空間に退避されたセキュアメモリ空間への戻り先番地等を、ユーザメモリ空間の命令から書き換えることを禁止することにより、セキュアメモリ空間への正常な復帰を保証するとともに、ユーザメモリ空間の命令に許可されていないセキュアメモリ空間へのアクセスを制限し、なおかつ、前記セキュア情報付き内蔵RAM空間の通常領域とスタック領域を物理的に分割せずに、スタックポインタの指し示す空間による書き換え制御の切り替えでスタック領域のセキュリティ管理ができる。
【0025】
(7)第7の解決手段として、本発明による情報処理装置は、ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、それぞれ次のような機能を有する構成要素〜セキュア情報付きDMA、セキュア情報生成部、セキュア情報付き内蔵RAM空間およびデータ出力制御部を備えている。前記セキュア情報付きDMAは、セキュア情報を保持する機能を持つ。前記セキュア情報生成部は、アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別し、セキュア情報を付加したデータをセキュア情報付きデータとして前記セキュア情報付きDMA内部に受け渡す。前記セキュア情報付き内蔵RAM空間は、前記セキュア情報付きDMAから前記セキュア情報付きデータを受け取って保持するとともに、前記保持したセキュア情報付きデータを前記セキュア情報付きDMAに受け渡す機能を持つ。前記データ出力制御部は、前記セキュア情報により外部空間へのデータ転送制御を行う機能を持つ。さらに、前記データ出力制御部は、前記セキュア情報付きDMAにセットされた前記セキュア情報の値により前記外部空間へのデータ転送を禁止するか否かの制御を行うように構成されている。
【0026】
上記構成による作用は次のとおりである。CPUが介在しないDMA転送データに対してもセキュア情報を追従させ、DMAを経由するデータのセキュリティ管理を可能とし、セキュアメモリ空間のデータ及び命令をセキュア情報付きDMAによりセキュア情報付き内蔵RAM空間に展開して使用する場合においても、セキュアメモリ空間のデータ及び命令のセキュリティ管理を可能とし、セキュア情報付き内蔵RAM空間のデータ及び命令をセキュア情報付きDMAにより外部空間に転送する場合においても、セキュアメモリ空間のデータ及び命令のセキュリティ管理を可能にする。
【0027】
(8)第8の解決手段として、本発明による情報処理装置は、ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、それぞれ次のような機能を有する構成要素〜セキュア情報生成部、セキュア情報付き汎用レジスタ、セキュア情報付き命令デコーダ、セキュア情報付き演算部およびデータ出力制御部を備えている。前記セキュア情報生成部は、アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別し、セキュア情報を付加したデータをセキュア情報付きデータとしてセキュア情報部付き汎用レジスタに受け渡す。前記セキュア情報付き汎用レジスタは、前記セキュア情報付きデータを受け取って保持する機能を持つ。前記セキュア情報付き命令デコーダは、実行中の命令が前記ユーザメモリ空間の命令か前記セキュアメモリ空間の命令かを判別する機能を持つ。前記セキュア情報付き演算部は、前記セキュア情報付き命令デコーダでデコードされた命令により実行される演算に前記セキュア情報付き命令デコーダのセキュア情報を反映する機能を持つ。前記データ出力制御部は、前記セキュア情報により外部空間へのデータ転送制御を行う機能を持つ。さらに、前記データ出力制御部は、前記セキュア情報付き汎用レジスタにセットされた前記セキュア情報及び前記セキュア情報付き演算部にセットされた前記セキュア情報により前記外部空間へのデータ転送を禁止するか否かの制御を行うように構成されている。
【0028】
上記構成による作用は次のとおりである。セキュアメモリ空間の命令であり、かつ、演算を行う命令を実行する場合、被演算対象となる全データがユーザメモリ空間のデータであっても、またはセキュア情報部にセキュアデータであることが明示されていなくても、セキュアメモリ空間の命令に付加されるセキュア情報をセキュア情報付き演算部のセキュア情報に反映することにより、演算結果が外部空間に流出することを防ぎ、演算結果からセキュアメモリ空間の命令内容を類推することを防御することができる。
【0029】
【発明の実施の形態】
以下、本発明にかかわる情報処理装置の実施の形態を図面に基づいて説明する。
【0030】
(参考例1)
図1は本発明の参考例1における情報処理装置の構成を示す概念図であり、図中、100は情報処理装置、101はCPU、102は汎用レジスタファイル、103は汎用レジスタ、104はセキュア情報部、105はデータ制御部、106はアドレス制御部、107はデータ/アドレスバス、110はユーザメモリ空間(RAM)、120はセキュアメモリ空間(ROM)である。このうち、情報処理装置100は装置の全体ブロックであり、外部にユーザメモリ空間110とセキュアメモリ空間120が接続されている。
【0031】
CPU101は、汎用レジスタファイル102を持ち、ユーザメモリ空間110とセキュアメモリ空間120にアクセスし、汎用レジスタ103へデータの読み書きを行う。汎用レジスタファイル102は、汎用レジスタ103とそれに対応したセキュア情報部104を持つ。汎用レジスタ103は、CPU101による演算処理に用いられ、データ制御部105とデータの受け渡しを行い、その内部にデータを格納する機能を持つ。セキュア情報部104は、汎用レジスタ103に付加されており、アドレス制御部106の制御を受けて、セキュリティ必要状態またはセキュリティ不要状態の値をセットすることが可能である。
【0032】
データ制御部105は、データ/アドレスバス107から入力されたデータを汎用レジスタファイル102に書き込み、また汎用レジスタファイル102から受け取ったデータをデータ/アドレスバス107に出力してユーザメモリ空間110に書き込む際に、セキュア情報部104の値を判別して、書き込みを禁止するか否かの制御を行う機能を持つ。
【0033】
アドレス制御部106は、データ/アドレスバス107から入力されたアドレス情報がユーザメモリ空間110とセキュアメモリ空間120のどちらを示しているかを判別し、汎用レジスタファイル102内のセキュア情報部104の値を選択する機能を持つ。
【0034】
データ/アドレスバス107は、データ制御部105、アドレス制御部106、外部メモリデータバス130、外部メモリアドレスバス140を接続し、それぞれの間でのデータまたはアドレスの受け渡しを行う機能を持つ。
【0035】
ユーザメモリ空間110は、読み書き可能なメモリであり、外部メモリアドレスバス140から入力されたアドレス情報によって、外部メモリデータバス130とデータの入出力を行う機能を持つ。
【0036】
セキュアメモリ空間120は、読み出しのみが可能なメモリであり、外部メモリアドレスバス140から入力されたアドレス情報によって、外部メモリデータバス130にデータを出力する機能を持つ。
【0037】
外部メモリデータバス130は、情報処理装置100と、ユーザメモリ空間110またはセキュアメモリ空間120間のデータの受け渡しを行う機能を持つ。
【0038】
外部メモリアドレスバス140は、情報処理装置100から受け取ったアドレス情報をユーザメモリ空間110またはセキュアメモリ空間120に渡す機能を持つ。
【0039】
次に、上記のように構成された参考例1の情報処理装置の動作について説明する。
【0040】
図2は参考例1の動作を示すフローチャートであり、図中、601はLOAD命令発行処理、602はLOADアドレス判別処理、603はセキュリティ必要処理、604はセキュリティ不要処理、605は汎用レジスタSTORE処理、606はSTORE命令発行処理、607はセキュリティ状態判別処理、608はユーザメモリ空間STORE処理、609はユーザメモリ空間STORE禁止処理である。
【0041】
LOAD命令発行処理601は、CPU101が外部メモリに対してLOAD命令を発行する処理であり、この処理を終えるとLOADアドレス判別処理602に移行する。
【0042】
LOADアドレス判別処理602は、アドレス制御部106がデータ/アドレスバス107から入力されたアドレス情報がセキュアメモリ空間120であるかそうでないかを判別し、セキュアメモリ空間120であるとき、セキュリティ必要処理603に移行し、そうでないとき(ユーザメモリ空間110であるとき)、セキュリティ不要処理604に移行する。
【0043】
セキュリティ必要処理603は、アドレス制御部106がセキュア情報部104の値をセキュリティ必要状態にセットする処理であり、この処理を終えると汎用レジスタSTORE処理605に移行する。
【0044】
セキュリティ不要処理604は、アドレス制御部106が、セキュア情報部104の値をセキュリティ不要状態にセットする処理であり、この処理を終えると汎用レジスタSTORE処理605に移行する。
【0045】
汎用レジスタSTORE処理605は、CPU101が、外部メモリから外部メモリデータバス130、データ/アドレスバス107、データ制御部105を介して受け取ったデータを汎用レジスタ103にストアする処理であり、この処理を終えるとSTORE命令発行処理606に移行する。
【0046】
STORE命令発行処理606は、CPU101が外部メモリに対してSTORE命令を発行する処理であり、この処理を終えるとセキュリティ状態判別処理607に移行する。
【0047】
セキュリティ状態判別処理607は、データ制御部105がセキュア情報部104の値がセキュリティ不要状態であるかそうでないかを判別し、セキュリティ不要状態であるとき、ユーザメモリ空間STORE処理608に移行し、そうでないとき(セキュリティ必要状態であるとき)、ユーザメモリ空間STORE禁止処理609に移行する。
【0048】
ユーザメモリ空間STORE処理608は、CPU101が、汎用レジスタ103から受け取ったデータを、データ制御部105、データ/アドレスバス107、外部メモリデータバス130を介してユーザメモリ空間110にストアする処理であり、この処理を終えると動作完了である。
【0049】
ユーザメモリ空間STORE禁止処理609は、CPU101が、汎用レジスタ103から受け取ったデータを、データ制御部105、データ/アドレスバス107、外部メモリデータバス130を介してユーザメモリ空間110にストアすることを禁止する処理であり、この処理を終えると動作完了である。
【0050】
以上の構成により、レジスタにセキュア情報部である付加ビットを設けるだけで、CPUの命令セットを変更することなく、また、特権モードと通常モードの切り替え制御を行わずして、ユーザのプログラムによるレジスタを介したセキュリティ空間からユーザ空間へのデータ複写を禁止することができる。すなわち、セキュアプログラムの解読(ハッキング)を防ぐことができるという格別の効果を奏する。
【0051】
(参考例2)
上記の参考例1には次のような課題がある。すなわち、セキュアプログラムがセキュアメモリ空間で実行されている場合、例えば有料音楽配信サービスなどで、配信されたMP3コンテンツをデコードし、デコードされたWAVEデータをユーザメモリ空間へ転送する、またはプログラム実行時に使用する関数の呼び出しを行い、必要なデータをユーザメモリ空間に一時的に退避しなければならない場合、セキュアメモリ空間からユーザメモリ空間へのデータ転送が発生する。このような場合にデータ転送を禁止すると、セキュアプログラムの動作内容が制限されるという課題が発生する。従って、ユーザプログラムによる転送であるのか、セキュアプログラムによる転送であるかの切り分けが可能となる新たな機構を設ける必要がある。これの対策を講じるのが本発明の参考例2である。以下、参考例2の情報処理装置の構成について説明する。
【0052】
図3は本発明の参考例2における情報処理装置の構成を示す概念図であり、図中、参考例1において説明した図1と同様のブロックについては、同一の番号を付し、その説明を省略する。
【0053】
108は命令フェッチアドレス制御部、109は命令バッファ、110pはユーザプログラム、120pはセキュアプログラムである。
【0054】
このうち、命令フェッチアドレス制御部108は、命令バッファ109を持ち、データ制御部105から入力される命令コードを命令バッファ109に格納する際に、データ/アドレスバス107から入力されるアドレス情報がユーザメモリ空間110とセキュアメモリ空間120のどちらを示しているかを判別し、ユーザプログラム110pとセキュアプログラム120pのどちらが実行されているかをデータ制御部105に知らせる機能を持つ。
【0055】
命令バッファ109は、CPU101による命令フェッチ処理に用いられ、データ制御部105から入力された命令コードをその内部に格納する機能を持つ。
【0056】
ユーザプログラム110pは、ユーザメモリ空間110上に配置されており、主にユーザによってプログラミングされる。
【0057】
セキュアプログラム120pは、セキュアメモリ空間120上に配置されており、主に開発者によってプログラミングされ、ユーザにはその内容は非公開である。
【0058】
次に、上記のように構成された参考例2の情報処理装置の動作について説明する。
【0059】
図4は参考例2の動作を示すフローチャートであり、図中、参考例1において説明した図2と同様のフローについては、同一の番号を付し、その説明を省略する。
【0060】
701はLOADアドレス判別処理であり、命令フェッチアドレス制御部108が、データ/アドレスバス107から入力されたアドレス情報がセキュアメモリ空間120であるかそうでないかを判別し、セキュアメモリ空間120であるとき、ユーザメモリ空間STORE処理608に移行し、セキュアメモリ空間120でないとき、ユーザメモリ空間STORE禁止処理609に移行する。
【0061】
以上の構成により、開発者がセキュアメモリ空間でのセキュアプログラムの開発を行う場合には、ユーザメモリ空間とセキュアメモリ空間の領域間の自由なLOAD/STOREの特権を与えることができ、ユーザがユーザメモリ空間でのユーザプログラムの開発を行う場合には、セキュアメモリ空間からユーザメモリ空間へのデータ転送を禁止することができる。すなわち、セキュアプログラムとユーザプログラムとで、セキュアメモリ空間のデータを自由に扱える権限の切り分けが可能であるという格別の効果を奏する。
【0062】
(実施の形態3)
上記の参考例1には、また次のような課題がある。すなわち、ユーザのプログラムによる汎用レジスタを介したセキュアメモリ空間からユーザメモリ空間へのデータ転送を禁止することは可能であるが、例えば汎用レジスタ同士の演算を行った場合、その演算結果を新たなレジスタに格納してユーザメモリ空間にストアする行為は禁止されていない。例えば、セキュアメモリ空間からレジスタに読み出したデータと、オール"1"のデータとのAND演算を行った結果を、別のレジスタに格納するようなダミー演算を行うことで、セキュアメモリ空間のデータを容易に推測できるといった課題が発生する。従って、ユーザプログラムの演算に使用できるデータに制限をかけることが可能となる新たな機構を設ける必要がある。これの対策を講じるのが本発明の実施の形態3である。以下、実施の形態3の情報処理装置の構成について説明する。
【0063】
図5は本発明の実施の形態3における情報処理装置の構成を示す概念図であり、図中、参考例1,2において説明した図1、図3と同様のブロックについては、同一の番号を付し、その説明を省略する。
【0064】
300は第1の汎用レジスタ、301は第2の汎用レジスタ、302は第3の汎用レジスタ、303は第1のセキュア情報部、304は第2のセキュア情報部、305は第3のセキュア情報部である。
【0065】
このうち、第1の汎用レジスタ300、第2の汎用レジスタ301、第3の汎用レジスタ302は、CPU101による演算処理に用いられ、データ制御部105とデータの受け渡しを行い、その内部にデータを格納する機能を持つ。
【0066】
第1のセキュア情報部303、第2のセキュア情報部304、第3のセキュア情報部305は、それぞれ第1の汎用レジスタ300、第2の汎用レジスタ301、第3の汎用レジスタ302に付加されており、アドレス制御部106の制御を受けて、セキュリティ必要状態またはセキュリティ不要状態またはセキュリティ無効状態の値をセットすることが可能である。
【0067】
次に、上記のように構成された実施の形態3の情報処理装置の動作について説明する。
【0068】
図6は実施の形態3の動作を示すフローチャートであり、図中、参考例1,2において説明した図2、図4と同様のフローについては、同一の番号を付し、その説明を省略する。
【0069】
801は汎用レジスタ(1〜2)STORE処理、802はCPU演算命令(1〜2)発行処理、803はセキュリティ状態(1)判別処理、804はセキュリティ状態(2)判別処理、805はセキュリティ(3)無効処理、806はセキュリティ(3)不要処理、807は汎用レジスタ(3)演算結果格納処理、808はCPU演算命令(3)発行処理、809はセキュリティ状態(3)判別処理、810は演算禁止処理、811はCPUクリア命令(3)発行処理、812はセキュリティ(3)不要処理である。
【0070】
汎用レジスタ(1〜2)STORE処理801は、CPU101が外部メモリから外部メモリデータバス130、データ/アドレスバス107、データ制御部105を介して受け取ったデータを第1の汎用レジスタ300、第2の汎用レジスタ301にストアする処理であり、この処理を終えるとCPU演算命令(1〜2)発行処理802に移行する。
【0071】
CPU演算命令(1〜2)発行処理802は、CPU101が第1の汎用レジスタ300、第2の汎用レジスタ301を用いて何らかの演算処理(ADD,SUBなど)を行う処理であり、この処理を終えるとセキュリティ状態(1)判別処理803に移行する。
【0072】
セキュリティ状態(1)判別処理803は、データ制御部105が第1のセキュア情報部303の値がセキュリティ必要状態であるかそうでないかを判別し、セキュリティ必要状態であるとき、セキュリティ(3)無効処理805に移行し、そうでないとき(セキュリティ不要状態であるとき)、セキュリティ状態(2)判別処理804に移行する。
【0073】
セキュリティ状態(2)判別処理804は、データ制御部105が第2のセキュア情報部304の値がセキュリティ必要状態であるかそうでないかを判別し、セキュリティ必要状態であるとき、セキュリティ(3)無効処理805に移行し、そうでないとき(セキュリティ不要状態であるとき)、セキュリティ(3)不要処理806に移行する。
【0074】
セキュリティ(3)不要処理806は、アドレス制御部106が第3のセキュア情報部305の値をセキュリティ不要状態にセットする処理であり、この処理を終えると汎用レジスタ(3)演算結果格納処理807に移行する。
【0075】
汎用レジスタ(3)演算結果格納処理807は、第1の汎用レジスタ300、第2の汎用レジスタ301の演算処理結果を第3の汎用レジスタ302に格納する処理であり、この処理を終えるとCPU演算命令(3)発行処理808に移行する。
【0076】
CPU演算命令(3)発行処理808は、CPU101が第3の汎用レジスタ302を用いて何らかの演算処理(STORE,JUMPなど)を行う処理であり、この処理を終えるとセキュリティ状態(3)判別処理809に移行する。
【0077】
セキュリティ状態(3)判別処理809は、データ制御部105が第3のセキュア情報部305の値がセキュリティ無効状態であるかそうでないかを判別し、セキュリティ無効状態であるとき、演算禁止処理810に移行し、そうでないとき(セキュリティ不要状態またはセキュリティ必要状態であるとき)、CPUクリア命令(3)発行処理811に移行する。
【0078】
CPUクリア命令(3)発行処理811は、CPU101が第3の汎用レジスタ302に対してクリア演算処理(CLR)を行う処理であり、この処理を終えるとセキュリティ(3)不要処理812に移行する。
【0079】
セキュリティ(3)不要処理812は、アドレス制御部106が第3のセキュア情報部305の値をセキュリティ不要状態にセットする処理であり、この処理を終えると動作完了である。
【0080】
以上の構成により、セキュアメモリ空間のデータを格納したレジスタの内容に対して、ユーザプログラムの演算処理(ADD(+),SUB(−),MUL(×),DIV(÷)などの四則演算)による操作をできなくすることで、セキュアメモリ空間のメモリ内容の推測を防ぐことができる。例えば、セキュアメモリ空間からレジスタに読み出したデータと、オール“1”のデータとのAND演算を行った結果を、別のレジスタに格納するようなダミー演算などを行うことで、セキュアメモリ空間のデータ推測(8’b11010011 & 8’b11111111 = 8’b11010011)、すなわち、セキュアプログラムの解読(ハッキング)を防ぐという格別の効果を奏する。
【0081】
(実施の形態4)
上記の参考例1には、また次のような課題がある。すなわち、ユーザのプログラムによる2値以上のレジスタ比較を行った場合、演算結果を知らずとも、比較演算処理の結果を保持する状態レジスタを参照すれば、容易にセキュアメモリ空間のデータを推測できるといった課題が発生する。世の中に存在する多くのCPUでは状態レジスタを持つものがほとんどであり、従って、ユーザプログラムの状態レジスタを用いた演算に制限をかける新たな機構を設ける必要がある。これの対策を講じるのが本発明の実施の形態4である。以下、実施の形態4の情報処理装置の構成について説明する。
【0082】
図7は本発明の実施の形態4における情報処理装置の構成を示す概念図であり、図中、参考例1,2、実施の形態3において説明した図1、図3、図5と同様のブロックについては、同一の番号を付し、その説明を省略する。
【0083】
400は状態レジスタであり、CPU101による演算処理に用いられ、比較演算処理等の結果を比較フラグとして値を保持する機能を持つ。
【0084】
次に、上記のように構成された実施の形態4の情報処理装置の動作について説明する。
【0085】
図8は実施の形態4の動作を示すフローチャートであり、図中、参考例1,2、実施の形態3において説明した図2、図4、図6と同様のフローについては、同一の番号を付し、その説明を省略する。
【0086】
901は汎用レジスタ(1〜2)比較演算処理、902は状態レジスタ比較フラグ変更禁止処理、903は状態レジスタ比較フラグ変更処理である。
【0087】
汎用レジスタ(1〜2)比較演算処理901は、CPU101が第1の汎用レジスタ300、第2の汎用レジスタ301を用いて比較演算処理(CMPなど)を行う処理であり、この処理を終えるとセキュリティ状態(1)判別処理803に移行する。
【0088】
状態レジスタ比較フラグ変更禁止処理902は、汎用レジスタ(1〜2)比較演算処理901の比較演算結果を受けて、状態レジスタ400の比較フラグの値を変更することを禁止する処理であり、この処理を終えると動作完了である。
【0089】
状態レジスタ比較フラグ変更処理903は、汎用レジスタ(1〜2)比較演算処理901の比較演算結果を受けて、状態レジスタ400の比較フラグの値を変更する処理であり、この処理を終えると動作完了である。
【0090】
以上の構成により、ユーザプログラムが、比較演算処理等の結果を比較フラグとして値を保持する状態レジスタを用いて2値以上のレジスタ比較を行ったとしても、セキュアメモリ空間のデータを格納したレジスタ内容の比較による推測を防ぐことができる。すなわち、セキュアプログラムの解読を防ぐという格別の効果を奏する。
【0091】
(実施の形態5)
以上参考例1,2、実施の形態3,4において、開発者がユーザシステムでセキュアプログラムのデバッグを行う際には、ユーザメモリ空間においてセキュアプログラムをモニタリングしなければならないので、セキュアメモリ空間からユーザメモリ空間へのデータ転送が禁止されているとデバッグできないといった課題が発生する。従って、レジスタを介したデータ転送を禁止する機能を解除する新たな機構を設ける必要がある。これの対策を講じるのが本発明の実施の形態5である。以下、実施の形態5の情報処理装置の構成について説明する。
【0092】
図9は本発明の実施の形態5における情報処理装置の構成を示す概念図であり、図中、参考例1,2、実施の形態3,4において説明した図1、図3、図5、図7と同様のブロックについては、同一の番号を付し、その説明を省略する。
【0093】
500は端末PC、501はユーザIO空間(RAM)、502はセキュアIO空間(RAM)、503はICカード、S503はデバッグ鍵である。
【0094】
このうち、端末PC500は、開発者によってセキュアプログラム120pのデバッグが行われる際に使用され、ユーザIO空間501に接続され、デバッグプログラムをユーザメモリ空間110に置いてデバッグを行う機能を持つ。
【0095】
ユーザIO空間501は、ユーザメモリ空間110に外部からアクセスを行う際に使用される読み書き可能なIO空間である。
【0096】
セキュアIO空間502は、セキュアメモリ空間120に外部からアクセスを行う際に使用される読み書き可能なIO空間である。
【0097】
ICカード503は、セキュアIO空間502に接続して使用され、デバッグ鍵S503等のデータを内部に格納する機能を持つ。
【0098】
デバッグ鍵S503は、ICカード503の内部に格納されており、開発者がユーザシステムでセキュアプログラム120pのデバッグを行う際に、セキュアIO空間502を介してCPU101に読み出されると、命令フェッチアドレス制御部108とアドレス制御部106のアドレス判別機能を停止させる機能を持つ。
【0099】
次に、上記のように構成された実施の形態5の情報処理装置の動作について説明する。
【0100】
図10は実施の形態5の動作を示すフローチャートであり、図中、参考例1,2、実施の形態3,4において説明した図2、図4、図6、図8と同様のフローについては、同一の番号を付し、その説明を省略する。
【0101】
1001はデバッグ鍵入力処理、1002はデバッグ鍵LOAD処理、1003は命令フェッチアドレス制御部停止処理、1004はアドレス制御部停止処理である。
【0102】
デバッグ鍵入力処理1001は、ICカード503からセキュアIO空間502へデバッグ鍵S503を入力する処理であり、この処理を終えるとデバッグ鍵LOAD処理1002に移行する。
【0103】
デバッグ鍵LOAD処理1002は、CPU101が、セキュアIO空間502から外部メモリデータバス130、データ/アドレスバス107、データ制御部105を介してデバッグ鍵S503を読み出す処理であり、この処理を終えると命令フェッチアドレス制御部停止処理1003に移行する。
【0104】
命令フェッチアドレス制御部停止処理1003は、命令フェッチアドレス制御部108が持つアドレス判別機能を停止する処理であり、この処理を終えるとアドレス制御部停止処理1004に移行する。
【0105】
アドレス制御部停止処理1004は、アドレス制御部106が持つアドレス判別機能を停止する処理であり、この処理を終えるとLOAD命令発行処理601に移行する。
【0106】
以上の構成により、開発者がユーザシステムでセキュアプログラムのデバッグを行う際には、汎用レジスタのセキュア情報付加ビットの機能は停止され、ユーザメモリ空間とセキュアメモリ空間の領域間での自由なデータ転送が可能となり、セキュアプログラムをモニタリングできるようになる。すなわち、ユーザの環境においても、開発者はデバッグ鍵が格納されたICカードにより、セキュアプログラムを容易にデバッグでき、従来の特権モードと同義の権利を得られる、という格別の効果を奏する。
【0107】
(実施の形態6)
図11は本発明の実施の形態6における情報処理装置の構成を示す概念図である。本実施の形態の情報処理装置は、セキュアメモリ空間201と、ユーザメモリ空間202と、データバス203と、アドレスバス204と、セキュア情報生成部205と、セキュア情報付き内蔵RAM空間206と、CPU208と、セキュア情報付き汎用レジスタ209と、データ出力制御部211と、外部空間212とによって構成されている。
【0108】
さらに、図12(a),(b)に示すように、セキュア情報付き内蔵RAM空間206は内部にセキュア情報部207を備え、セキュア情報付き汎用レジスタ209は内部にセキュア情報部210を備えている。
【0109】
CPU208は、セキュアメモリ空間201またはユーザメモリ空間202のデータを読み出す際にアドレスバス204を通じてアドレスを指定する。
【0110】
セキュアメモリ空間201またはユーザメモリ空間202は、アドレスバス204で指定されたアドレス情報に従いデータを出力する。
【0111】
セキュア情報生成部205は、指定したアドレス情報に合致したデータを受け取り、指定したアドレス情報がユーザメモリ空間202とセキュアメモリ空間201のどちらを示しているかを判別し、ユーザメモリ空間202のデータである場合にはセキュア情報として“0”を、セキュアメモリ空間201のデータである場合にはセキュア情報として“1”を付加したデータをセキュア情報付き汎用レジスタ209に受け渡す。セキュア情報はセキュア情報付き汎用レジスタ209内のセキュア情報部210に格納される。
【0112】
セキュア情報付き汎用レジスタ209のデータをセキュア情報付き内蔵RAM空間206と外部空間212に転送する場合の動作を、図13(a),(b)を用いて説明する。
【0113】
206aはセキュア情報付き内蔵RAM空間206の第1の状態であり、206bはRAM空間206の第2の状態であり、207aはセキュア情報部207の第1の状態であり、207bはセキュア情報部207の第2の状態であり、209aは汎用レジスタ209の第1の状態であり、209bは汎用レジスタ209の第2の状態であり、210aはセキュア情報部210の第1の状態であり、210bはセキュア情報部210の第2の状態である。
【0114】
CPU208が汎用レジスタ209の第1の状態209aのデータをセキュア情報付き内蔵RAM空間206の第1の状態206aに書き込むと同時に、セキュア情報部210の第1の状態210aの値はセキュア情報部207の第1の状態207aに書き込まれ、セキュア情報付き内蔵RAM空間206の第2の状態206bとセキュア情報部207の第2の状態207bとなり、セキュア情報は保持される。
【0115】
CPU208がセキュア情報付き内蔵RAM空間206の第2の状態206bのデータを読み出すと、汎用レジスタ209の第2の状態209bにデータが受け渡されると同時に、セキュア情報部207の第2の状態207bはセキュア情報部210の第2の状態210bに受け渡され、セキュア情報付き内蔵RAM空間206を経由するデータのセキュア情報は保持される。
【0116】
CPU208が外部空間212にセキュア情報付き汎用レジスタ209のデータを出力する際に、データ出力制御部211は、セキュア情報付き汎用レジスタ209内のセキュア情報部210の値が“1”である場合には外部空間212へのデータ出力を禁止する。
【0117】
以上の構成により、レジスタに付加ビットを設けるだけで、CPUの命令セットを変更することなく、また、特権モードと通常モードの切り替え制御を行わずして、ユーザのプログラムによるレジスタを介したセキュアメモリ空間から外部空間へのデータ転送を禁止することができる。すなわち、セキュアプログラムの解読(ハッキング)を防ぐことができる。
【0118】
さらに内蔵RAM空間に対してもセキュア情報を追従させ、内蔵RAM空間を経由するデータのセキュリティ管理を可能とし、データ自身にセキュア情報を付加するために、内蔵RAM空間にセキュアメモリ空間のデータとユーザメモリ空間のデータの混在を可能とし、ユーザメモリ空間の命令により、セキュア情報付き内蔵RAM空間上のセキュアデータの書き換えを許可し、通常使用に影響がない状態でセキュア情報付き内蔵RAM空間のセキュリティ管理を可能とすることができるという格別の効果を奏する。
【0119】
(実施の形態7)
図14は本発明の実施の形態7における情報処理装置の構成を示す概念図であり、図中、実施の形態6において説明した図11と同様のブロックについては、同一の番号を付し、その説明を省略する。
【0120】
図14において、213は割り込み制御部、214はセキュア情報付き割り込み退避情報部、216はセキュア情報付き命令デコーダ216である。
【0121】
図15(a),(b)に示すように、セキュア情報付き割り込み退避情報部214は内部にセキュア情報部215を備え、セキュア情報付き命令デコーダ216は内部にセキュア情報部217を備える。
【0122】
CPU208は、セキュアメモリ空間201またはユーザメモリ空間202のデータリード及び命令フェッチを行う際に、アドレスバス204を通じてアドレスを指定する。
【0123】
セキュアメモリ空間201またはユーザメモリ空間202は、アドレスバス204で指定されたアドレス情報に従いデータ及び命令を出力する。
【0124】
セキュア情報生成部205は、指定したアドレス情報に合致したデータ及び命令を受け取り、指定したアドレス情報がユーザメモリ空間202とセキュアメモリ空間201のどちらを示しているかを判別し、ユーザメモリ空間202のデータである場合にはセキュア情報として“0”を、セキュアメモリ空間201のデータである場合にはセキュア情報として“1”を付加したデータをセキュア情報付き汎用レジスタ209に受け渡し、セキュア情報はセキュア情報付き汎用レジスタ209内のセキュア情報部210(図12参照)に格納される。
【0125】
ユーザメモリ空間202の命令である場合にはセキュア情報として“0”を、セキュアメモリ空間201の命令である場合にはセキュア情報として“1”を付加した命令をセキュア情報付き命令デコーダ216に受け渡し、セキュア情報はセキュア情報部217に格納される。
【0126】
セキュア情報付き汎用レジスタ209のデータを、セキュア情報付き内蔵RAM空間206に転送する場合の動作は、実施の形態6において説明した内容と同様であるため、その説明を省略する。
【0127】
割り込み制御部213により割り込み等の処理が発生した際に、セキュア情報付き内蔵RAM空間206の一部に自動的に退避するデータに対しセキュリティ管理を行うために、現在実行中の命令がユーザメモリ空間202とセキュアメモリ空間201のどちらの命令かによって、退避するデータにセキュア情報を付加する。
【0128】
現在実行中の命令は、セキュア情報付き命令デコーダ216内のセキュア情報部217の値で判別可能であり、ユーザメモリ空間202の命令である場合にはセキュア情報は“0”であり、セキュアメモリ空間201の命令である場合にはセキュア情報は“1”である。
【0129】
割り込み発生時に自動的に退避される情報がセキュア情報であるかどうかを明示するため、セキュア情報付き割り込み退避情報部214内のセキュア情報部215にセキュア情報付き命令デコーダ216内のセキュア情報部217の値を伝搬させる。
【0130】
さらに、セキュア情報付き割り込み退避情報部214のデータをセキュア情報付き内蔵RAM空間206の一部に退避すると同時に、セキュア情報付き割り込み退避情報部214内のセキュア情報部215の値をセキュア情報付き内蔵RAM空間206内のセキュア情報部207(図12参照)に伝搬させる。これにより、退避するデータのセキュア情報は保持される。
【0131】
セキュア情報付き内蔵RAM空間206のデータをセキュア情報付き汎用レジスタ209に転送する場合の動作は、実施の形態6において説明した内容と同様であるため、その説明を省略する。
【0132】
CPU208が外部空間212にセキュア情報付き汎用レジスタ209のデータを出力する際に、データ出力制御部211は、セキュア情報付き汎用レジスタ209内のセキュア情報部210の値が“1”である場合には外部空間212へのデータ出力を禁止する。
【0133】
以上の構成により、割り込み等によるスタック退避情報にもセキュア情報を付加追従させ、セキュア情報付き内蔵RAM空間の一部であるスタック領域に自動的に退避されたデータの読み出しにおけるセキュリティ管理を可能とし、例えば、セキュアメモリ空間の命令実行中の実行PC(プログラムカウンタ)等が外部空間に読み出されることから起こり得る、セキュアメモリ空間の重要なタスクのハッキングを防御することができるという格別の効果を奏する。
【0134】
(実施の形態8)
図16は本発明の実施の形態8における情報処理装置の構成を示す概念図であり、図中、実施の形態6,7において説明した図11、図14と同様のブロックについては、同一の番号を付し、その説明を省略する。
【0135】
図16において、218はスタックポインタ、219は退避情報書き換え制御部である。
【0136】
CPU208は、セキュアメモリ空間201またはユーザメモリ空間202のデータリード及び命令フェッチを行う際に、アドレスバス204を通じてアドレスを指定する。
【0137】
セキュアメモリ空間201またはユーザメモリ空間202は、アドレスバス204で指定されたアドレス情報に従いデータ及び命令を出力する。
【0138】
セキュア情報生成部205は、指定したアドレス情報に合致したデータ及び命令を受け取り、指定したアドレス情報がユーザメモリ空間202とセキュアメモリ空間201のどちらを示しているかを判別し、ユーザメモリ空間202のデータである場合にはセキュア情報として“0”を、セキュアメモリ空間201のデータである場合にはセキュア情報として“1”を付加したデータをセキュア情報付き汎用レジスタ209に受け渡し、セキュア情報はセキュア情報付き汎用レジスタ209内のセキュア情報部210(図12参照)に格納される。また、セキュア情報生成部205は、ユーザメモリ空間202の命令である場合にはセキュア情報として“0”を、セキュアメモリ空間201の命令である場合にはセキュア情報として“1”を付加した命令をセキュア情報付き命令デコーダ216に受け渡し、セキュア情報はセキュア情報付き命令デコーダ216内のセキュア情報部217(図15参照)に格納される。
【0139】
割り込み制御部213により割り込み等の処理が発生した際に、セキュア情報付き内蔵RAM空間206のスタックポインタ218の指し示すスタック領域に自動的に退避するデータに対しセキュリティ管理を行うために、現在実行中の命令がユーザメモリ空間202とセキュアメモリ空間201のどちらの命令かによって、退避するデータにセキュア情報を付加する場合の動作は、実施の形態7において説明した内容と同様であるため、その説明を省略する。
【0140】
また、セキュア情報付き内蔵RAM空間206の通常領域及びスタック領域のデータをセキュア情報付き汎用レジスタ209に転送する場合の動作は、実施の形態6において説明した内容と同様であるため、その説明を省略する。
【0141】
以上の構成により、割り込み等によるスタック退避情報にもセキュア情報を付加追従させ、セキュア情報付き内蔵RAM空間の一部であるスタック領域に自動的に退避されたデータの読み出しにおけるセキュリティ管理を可能とする。
【0142】
また、セキュア情報付き汎用レジスタ209のデータを、セキュア情報付き内蔵RAM空間206の通常領域に転送(ライト)する場合の動作は、実施の形態6において説明した内容と同様であるため、その説明を省略する。
【0143】
また、セキュア情報付き汎用レジスタ209のデータを、セキュア情報付き内蔵RAM空間206のスタック領域に転送(ライト)する場合、退避情報書き換え制御部219は、現在実行中の命令がユーザメモリ空間202とセキュアメモリ空間201のどちらかをセキュア情報付き命令デコーダ216内のセキュア情報部217(図15参照)の値により判別し、さらに転送する空間のアドレスとスタックポインタ218を比較し、ユーザメモリ空間202の命令であり、かつスタック領域への転送であった場合には、データの転送を禁止する。
【0144】
さらに、セキュア情報付き内蔵RAM空間206の一部であるスタック領域へのデータの退避及び復帰における動作を、図17(a),(b)を用いて説明する。
【0145】
206cはセキュア情報付き内蔵RAM空間206の第1の状態であり、206dはRAM空間206の第2の状態であり、207cはセキュア情報部207の第1の状態であり、218cはスタックポインタ218の第1の状態であり、218dはスタックポインタ218の第2の状態であり、701cはスタック領域の第1の状態であり、701dはスタック領域の第2の状態であり、702cは通常領域の第1の状態であり、702dは通常領域の第2の状態であり、703cはスタック退避情報である。
【0146】
セキュア情報付き内蔵RAM空間206の第2の状態206dを初期状態とする。セキュアメモリ空間201の命令実行中に割り込みが発生し、ユーザメモリ空間202の処理へ移行する場合、セキュア情報付き割り込み退避情報部214のデータがセキュア情報付き内蔵RAM空間206の第2の状態206dに退避され、その結果、RAM空間206の第1の状態206c中のスタック退避情報703cになる。
【0147】
この状態では、スタック退避情報にセキュア情報が付加されているため、スタック退避されたデータの読み出しにおけるセキュリティ管理を可能とし、また、スタック領域の第1の状態701cは退避情報書き換え制御部219によりユーザメモリ空間202の命令では書き換えを禁止しているため、スタック退避されたデータの書き込みにおけるセキュリティ管理を可能とする。
【0148】
割り込みからの復帰によりスタック退避情報703cが復帰すると、スタックポインタの第1の状態218cはスタックポインタの第2の状態218dとなり、不必要となったスタック退避情報703cの領域を通常領域の第1の状態702cに開放され、通常領域の第2の状態702dとなる。
【0149】
以上の構成により、セキュアメモリ空間の命令実行中にユーザ割り込み等によって、セキュア情報付き内蔵RAM空間に退避されたセキュアメモリ空間への戻り先番地等を、ユーザメモリ空間の命令から書き換えることを禁止することにより、セキュアメモリ空間への正常な復帰を保証するとともに、ユーザメモリ空間の命令に許可されていないセキュアメモリ空間へのアクセスを制限し、なおかつ、前記セキュア情報付き内蔵RAM空間の通常領域とスタック領域を物理的に分割せずに、スタックポインタの指し示す空間による書き換え制御の切り替えでスタック領域のセキュリティ管理ができるという格別の効果を奏する。
【0150】
(実施の形態9)
図18は本発明の実施の形態9における情報処理装置の構成を示す概念図であり、図中、実施の形態6において説明した図11と同様のブロックについては、同一の番号を付し、その説明を省略する。
【0151】
図18において、220はセキュア情報付きDMAである。図19に示すように、セキュア情報付きDMA220はその内部にセキュア情報部221を備えている。
【0152】
セキュア情報付きDMA220はセキュアメモリ空間201またはユーザメモリ空間202からのデータ転送を行う際に、アドレスバス204を通じてアドレスを指定する。
【0153】
セキュアメモリ空間201またはユーザメモリ空間202は、アドレスバス204で指定されたアドレス情報に従いデータを出力する。
【0154】
セキュア情報生成部205は、指定したアドレス情報に合致したデータを受け取り、指定したアドレス情報がユーザメモリ空間202とセキュアメモリ空間201のどちらを示しているかを判別し、ユーザメモリ空間202のデータである場合にはセキュア情報として“0”を、セキュアメモリ空間201のデータである場合にはセキュア情報として“1”を付加したデータをセキュア情報付きDMA220に受け渡す。セキュア情報はセキュア情報付きDMA220内のセキュア情報部221に格納される。
【0155】
セキュア情報付きDMA220のデータを、セキュア情報付き内蔵RAM空間206と外部空間212に転送する場合の動作は、実施の形態6において説明した内容と同様であるため、その説明を省略する。
【0156】
また、セキュア情報付きDMA220は、セキュア情報付き内蔵RAM空間206からのデータ転送を行う際に、アドレスバス204を通じてアドレスを指定する。
【0157】
セキュア情報付き内蔵RAM空間206は、アドレスバス204で指定されたアドレス情報に従いセキュア情報部207(図12参照)のセキュア情報を付加したデータを出力する。
【0158】
セキュア情報付きDMA220は、指定したアドレス情報に合致したデータを受け取ると同時に、セキュア情報部207のセキュア情報をセキュア情報部221に反映させることにより、セキュア情報付きDMA220を経由するデータのセキュア情報は保持される。
【0159】
以上の構成により、CPUが介在しないDMA転送データに対してもセキュア情報を追従させ、DMAを経由するデータのセキュリティ管理を可能とし、セキュアメモリ空間のデータ及び命令をセキュア情報付きDMAによりセキュア情報付き内蔵RAM空間に展開して使用する場合においても、セキュアメモリ空間のデータ及び命令のセキュリティ管理を可能とし、セキュア情報付き内蔵RAM空間のデータ及び命令をセキュア情報付きDMAにより外部空間に転送する場合においても、セキュアメモリ空間のデータ及び命令のセキュリティ管理を可能とするという格別の効果を奏する。
【0160】
(実施の形態10)
図20は本発明の実施の形態10における情報処理装置の構成を示す概念図であり、図中、実施の形態6において説明した図11と同様のブロックについては、同一の番号を付し、その説明を省略する。
【0161】
図20において、216はセキュア情報付き命令デコーダ、222はセキュア情報付き演算部である。図21に示すように、セキュア情報付き演算部222は内部にセキュア情報部223を備えている。
【0162】
CPU208は、セキュアメモリ空間201またはユーザメモリ空間202のデータリード及び命令フェッチを行う際に、アドレスバス204を通じてアドレスを指定する。
【0163】
セキュアメモリ空間201またはユーザメモリ空間202は、アドレスバス204で指定されたアドレス情報に従いデータ及び命令を出力する。
【0164】
セキュア情報生成部205は、指定したアドレス情報に合致したデータ及び命令を受け取り、指定したアドレス情報がユーザメモリ空間202とセキュアメモリ空間201のどちらを示しているかを判別し、ユーザメモリ空間202のデータである場合にはセキュア情報として“0”を、セキュアメモリ空間201のデータである場合にはセキュア情報として“1”を付加したデータをセキュア情報付き汎用レジスタ209に受け渡し、セキュア情報はセキュア情報付き汎用レジスタ209内のセキュア情報部210(図12参照)に格納される。また、セキュア情報生成部205は、ユーザメモリ空間202の命令である場合にはセキュア情報として“0”を、セキュアメモリ空間201の命令である場合にはセキュア情報として“1”を付加した命令をセキュア情報付き命令デコーダ216に受け渡し、セキュア情報はセキュア情報付き命令デコーダ216内のセキュア情報部217(図15参照)に格納される。
【0165】
セキュアメモリ空間201の演算命令がセキュア情報付き命令デコーダ216によりデコードされた結果を受け、セキュア情報付き汎用レジスタ209のデータがセキュア情報付き演算部222に受け渡され、セキュア情報付き演算部222は演算を開始する。
【0166】
このとき、被演算対象となる1つ以上のセキュア情報付き汎用レジスタ209のデータに付加されるセキュア情報部210のセキュア情報が、少なくとも1つ以上“1”である場合、セキュア情報付き演算部222内のセキュア情報部223にはセキュア情報部210のセキュア情報“1”が伝搬し、セキュア情報付き演算部222が出力する演算結果のセキュア情報は保持される。
【0167】
また、被演算対象となる1つ以上のセキュア情報付き汎用レジスタ209のデータに付加されるセキュア情報部210のセキュア情報が、全て“0”である場合、セキュア情報付き演算部222内のセキュア情報部223にはセキュア情報付き命令デコーダ216内のセキュア情報部217のセキュア情報“1”が伝搬し、セキュア情報付き演算部222が出力する演算結果のセキュア情報は保持される。
【0168】
また、ユーザメモリ空間202の演算命令がセキュア情報付き命令デコーダ216によりデコードされた結果を受け、セキュア情報付き汎用レジスタ209のデータがセキュア情報付き演算部222に受け渡され、セキュア情報付き演算部222は演算を開始する。
【0169】
このとき、被演算対象となる1つ以上のセキュア情報付き汎用レジスタ209のデータに付加されるセキュア情報部210のセキュア情報が、少なくとも1つ以上“1”である場合、セキュア情報付き演算部222内のセキュア情報部223にはセキュア情報部210のセキュア情報“1”が伝搬し、セキュア情報付き演算部222が出力する演算結果のセキュア情報は保持される。
【0170】
また、被演算対象となる1つ以上のセキュア情報付き汎用レジスタ209のデータに付加されるセキュア情報部210のセキュア情報が、全て“0”である場合、セキュア情報付き演算部222内のセキュア情報部223にはセキュア情報付き命令デコーダ216内のセキュア情報部217のセキュア情報“0”が伝搬し、セキュア情報付き演算部222が出力する演算結果はセキュアでないという情報が付加される。
【0171】
セキュア情報付き演算部222のデータを外部空間212に転送する場合の動作は、実施の形態6において説明した内容と同様であるため、その説明を省略する。
【0172】
以上の構成により、セキュアメモリ空間の命令であり、かつ、演算を行う命令を実行する場合、被演算対象となる全データがユーザメモリ空間のデータであっても、またはセキュア情報部にセキュアデータであることが明示されていなくても、セキュアメモリ空間の命令に付加されるセキュア情報をセキュア情報付き演算部のセキュア情報に反映することにより、演算結果が外部空間に流出することを防ぎ、例えば、演算結果からセキュアメモリ空間の命令内容を類推することを防御することができるという格別の効果を奏する。
【0173】
【発明の効果】
以上のように本発明によれば、ユーザメモリ空間から汎用レジスタにデータを転送した場合はセキュア情報部の値をセキュリティ不要状態とし、セキュアメモリ空間から汎用レジスタにデータを転送した場合はセキュア情報部の値をセキュリティ必要状態とし、セキュア情報部の値がセキュリティ必要状態である汎用レジスタからユーザメモリ空間へのデータ転送が禁止されるようにする制御を行うことによって、セキュアメモリ空間上の暗号鍵等のセキュアプログラム、セキュアデータが読まれることを防ぐことができる。
【0174】
同様に、特権モードと通常モードの切り替え制御を行わずして、セキュアメモリ空間から外部空間へのデータ転送を禁止することができる。さらに、セキュア情報付き内蔵RAM空間に対してもセキュア情報を追従させ、内蔵RAM空間を経由するデータのセキュリティ管理を可能とする。さらに、セキュアメモリ空間の割り込み退避データの読み出しによるハッキングを防御できる。さらに、ユーザメモリ空間の命令に許可されていないセキュアメモリ空間へのアクセスを制限できる。さらに、CPUが介在しないDMA転送データに対してもセキュア情報を追従させ、DMAを経由するデータのセキュリティ管理を可能とする。さらに、演算結果にもセキュア情報を追従させることにより外部空間への漏洩を防ぎ、セキュアメモリ空間の命令内容を類推することを防御することができる。
【0175】
すなわち、セキュア情報部を設けることで、従来のOSが行っていた特権モード、通常モードのモード切り替え制御を全て付加ビットにより代行し、かつ僅かなハード変更で事足りる、という利点がある。特に、PDAやデジタルテレビ等、コンテンツサービスにかかわる商品開発では有利な展開が期待される。
【図面の簡単な説明】
【図1】本発明の参考例1における情報処理装置の構成を示す概念図
【図2】本発明の参考例1における情報処理装置の動作を示すフローチャート
【図3】本発明の参考例2における情報処理装置の構成を示す概念図
【図4】本発明の参考例2における情報処理装置の動作を示すフローチャート
【図5】本発明の実施の形態3における情報処理装置の構成を示す概念図
【図6】本発明の実施の形態3における情報処理装置の動作を示すフローチャート
【図7】本発明の実施の形態4における情報処理装置の構成を示す概念図
【図8】本発明の実施の形態4における情報処理装置の動作を示すフローチャート
【図9】本発明の実施の形態5における情報処理装置の構成を示す概念図
【図10】本発明の実施の形態5における情報処理装置の動作を示すフローチャート
【図11】本発明の実施の形態6における情報処理装置の構成を示す概念図
【図12】本発明の実施の形態6〜10におけるセキュア情報付き内蔵RAM空間、セキュア情報部付き汎用レジスタの概念図
【図13】本発明の実施の形態6〜9におけるセキュア情報付き内蔵RAM空間のアクセス状態図
【図14】本発明の実施の形態7における情報処理装置の構成を示す概念図
【図15】本発明の実施の形態7,8,10におけるセキュア情報付き命令デコーダ、セキュア情報付き割り込み退避情報部の概念図
【図16】本発明の実施の形態8における情報処理装置の構成を示す概念図
【図17】本発明の実施の形態8におけるセキュア情報付き内蔵RAM空間のスタック領域の状態図
【図18】本発明の実施の形態9における情報処理装置の構成を示す概念図
【図19】本発明の実施の形態9におけるセキュア情報付きDMAの概念図
【図20】本発明の実施の形態10における情報処理装置の構成を示す概念図
【図21】本発明の実施の形態10におけるセキュア情報付き演算部の概念図
【符号の説明】
100 情報処理装置
101 CPU
102 汎用レジスタファイル
103 汎用レジスタ
104 セキュア情報部
105 データ制御部
106 アドレス制御部
107 データ/アドレスバス
108 命令フェッチアドレス制御部
109 命令バッファ
110 ユーザメモリ空間(RAM)
110p ユーザプログラム
120 セキュアメモリ空間(ROM)
120p セキュアプログラム
201 セキュアメモリ空間
202 ユーザメモリ空間
203 データバス
204 アドレスバス
205 セキュア情報生成部
206 セキュア情報付き内蔵RAM空間
207 セキュア情報付き内蔵RAM空間内のセキュア情報部
208 CPU
209 セキュア情報部付き汎用レジスタ
210 セキュア情報部付き汎用レジスタ内のセキュア情報部
211 データ出力制御部
212 外部空間
213 割り込み制御部
214 セキュア情報付き割り込み退避情報部
215 セキュア情報付き割り込み退避情報部内のセキュア情報部
216 セキュア情報付き命令デコーダ
217 セキュア情報付き命令デコーダ内のセキュア情報部
218 スタックポインタ
219 退避情報書き換え制御部
220 セキュア情報付きDMA
221 セキュア情報付きDMA内のセキュア情報部
222 セキュア情報付き演算部
223 セキュア情報付き演算部内のセキュア情報部
300 第1の汎用レジスタ
301 第2の汎用レジスタ
302 第3の汎用レジスタ
303 第1のセキュア情報部
304 第2のセキュア情報部
305 第3のセキュア情報部
400 状態レジスタ
500 端末PC
501 ユーザIO空間(RAM)
502 セキュアIO空間(RAM)
503 ICカード
S503 デバッグ鍵
703c スタック退避情報

Claims (8)

  1. ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、
    CPUによる演算処理に用いられ、データ制御部とデータの受け渡しを行い、その内部にデータを格納する機能を持つ複数の汎用レジスタと、
    前記各汎用レジスタに付加され、前記ユーザメモリ空間から前記汎用レジスタのデータ部へのデータ転送が行われた場合はセキュリティ不要状態にセットされ、前記セキュアメモリ空間から前記汎用レジスタのデータ部にデータ転送が行われた場合はセキュリティ必要状態にセットされることが可能であるセキュア情報部と、
    前記汎用レジスタのデータを前記ユーザメモリ空間に書き込む際に、前記セキュア情報部の値がセキュリティ必要状態かセキュリティ不要状態かを判別した結果に応じて、前記ユーザメモリ空間へのデータ転送を禁止するか否かの制御を行う機能を持つ前記データ制御部と、
    前記アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別した結果に応じて、前記セキュア情報部に格納する値を選択する機能を持つアドレス制御部と、
    前記データ制御部から入力される命令コードを格納する際に、アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別した結果に応じて、前記ユーザメモリ空間に格納されているユーザプログラムと前記セキュアメモリ空間に格納されているセキュアプログラムのどちらが実行されているかを前記データ制御部に知らせる機能を持つ命令フェッチアドレス制御部と、
    前記CPUによる命令フェッチ処理に用いられ、前記データ制御部から入力された命令コードをその内部に格納する機能を持つ命令バッファとを備え、
    前記データ制御部は、転送命令を実行して前記汎用レジスタのデータ部からメモリ空間にデータ転送を実行する際に、前記命令フェッチアドレス制御部によって、前記ユーザメモリ空間から命令をフェッチしてきたことが判別された場合で、かつ、前記セキュア情報部の値がセキュリティ必要状態である場合、前記ユーザメモリ空間へのデータ転送を禁止する情報処理装置において、
    前記セキュア情報部は、前記アドレス制御部の制御を受けて、セキュリティ必要状態またはセキュリティ不要状態またはセキュリティ無効状態の値をセットすることが可能であり、
    演算命令を実行して前記各汎用レジスタを用いて2つ以上のレジスタ同士の演算を行う際に、前記セキュア情報部の値がセキュリティ必要状態である前記汎用レジスタを少なくとも1つ以上含む場合は、演算結果を格納する汎用レジスタのセキュア情報部をセキュリティ無効状態とする機能を持つ汎用レジスタファイルをさらに備え、
    前記データ制御部は、前記セキュア情報部がセキュリティ無効状態の汎用レジスタに対する演算命令を行う際に、前記命令フェッチアドレス制御部によって前記ユーザメモリ空間から演算命令をフェッチしてきたことが判別された場合は演算を禁止することを特徴とする情報処理装置。
  2. ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、
    CPUによる演算処理に用いられ、データ制御部とデータの受け渡しを行い、その内部にデータを格納する機能を持つ複数の汎用レジスタと、
    前記各汎用レジスタに付加され、前記ユーザメモリ空間から前記汎用レジスタのデータ部へのデータ転送が行われた場合はセキュリティ不要状態にセットされ、前記セキュアメモリ空間から前記汎用レジスタのデータ部にデータ転送が行われた場合はセキュリティ必要状態にセットされることが可能であるセキュア情報部と、
    前記汎用レジスタのデータを前記ユーザメモリ空間に書き込む際に、前記セキュア情報部の値がセキュリティ必要状態かセキュリティ不要状態かを判別した結果に応じて、前記ユーザメモリ空間へのデータ転送を禁止するか否かの制御を行う機能を持つ前記データ制御部と、
    前記アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別した結果に応じて、前記セキュア情報部に格納する値を選択する機能を持つアドレス制御部と、
    前記データ制御部から入力される命令コードを格納する際に、アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別した結果に応じて、前記ユーザメモリ空間に格納されているユーザプログラムと前記セキュアメモリ空間に格納されているセキュアプログラムのどちらが実行されているかを前記データ制御部に知らせる機能を持つ命令フェッチアドレス制御部と、
    前記CPUによる命令フェッチ処理に用いられ、前記データ制御部から入力された命令コードをその内部に格納する機能を持つ命令バッファとを備え、
    前記データ制御部は、転送命令を実行して前記汎用レジスタのデータ部からメモリ空間にデータ転送を実行する際に、前記命令フェッチアドレス制御部によって、前記ユーザメモリ空間から命令をフェッチしてきたことが判別された場合で、かつ、前記セキュア情報部の値がセキュリティ必要状態である場合、前記ユーザメモリ空間へのデータ転送を禁止する情報処理装置において、
    前記CPUによる演算処理に用いられ、比較演算処理等の結果を比較フラグとして値を保持する機能を持ち、演算命令を実行して、2つ以上の汎用レジスタ同士の演算を行う際に、前記セキュア情報部の値がセキュリティ必要状態である前記汎用レジスタを少なくとも1つ以上含む場合で、かつ、前記命令フェッチアドレス制御部によって前記ユーザメモリ空間から演算命令をフェッチしてきたことが判別された場合は、各フラグの値を変化させない状態レジスタをさらに備えることを特徴とする情報処理装置。
  3. ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、
    CPUによる演算処理に用いられ、データ制御部とデータの受け渡しを行い、その内部にデータを格納する機能を持つ汎用レジスタと、
    前記汎用レジスタに付加され、前記ユーザメモリ空間から前記汎用レジスタのデータ部へのデータ転送が行われた場合はセキュリティ不要状態にセットされ、前記セキュアメモリ空間から前記汎用レジスタのデータ部にデータ転送が行われた場合はセキュリティ必要状態にセットされることが可能であるセキュア情報部と、
    前記汎用レジスタのデータを前記ユーザメモリ空間に書き込む際に、前記セキュア情報部の値がセキュリティ必要状態かセキュリティ不要状態かを判別した結果に応じて、前記ユーザメモリ空間へのデータ転送を禁止するか否かの制御を行う機能を持つ前記データ制御部と、
    前記アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別した結果に応じて、前記セキュア情報部に格納する値を選択する機能を持つアドレス制御部と、
    前記データ制御部から入力される命令コードを格納する際に、アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別した結果に応じて、前記ユーザメモリ空間に格納されているユーザプログラムと前記セキュアメモリ空間に格納されているセキュアプログラムのどちらが実行されているかを前記データ制御部に知らせる機能を持つ命令フェッチアドレス制御部と、
    前記CPUによる命令フェッチ処理に用いられ、前記データ制御部から入力された命令コードをその内部に格納する機能を持つ命令バッファとを備え、
    前記データ制御部は、転送命令を実行して前記汎用レジスタのデータ部からメモリ空間にデータ転送を実行する際に、前記命令フェッチアドレス制御部によって、前記ユーザメモリ空間から命令をフェッチしてきたことが判別された場合で、かつ、前記セキュア情報部の値がセキュリティ必要状態である場合、前記ユーザメモリ空間へのデータ転送を禁止する情報処理装置において、
    前記ユーザメモリ空間に外部からアクセスを行う際に使用される読み書き可能なIO空間であるユーザIO空間と、
    前記セキュアメモリ空間に外部からアクセスを行う際に使用される読み書き可能なIO空間であるセキュアIO空間と、
    前記セキュアIO空間を介してCPUに読み出されると、前記命令フェッチアドレス制御部と前記アドレス制御部のアドレス判別機能を停止させる機能を持つデバッグ鍵と、
    前記セキュアIO空間に接続して使用され、前記デバッグ鍵を含むデータを内部に格納する機能を持つICカードとをさらに備え、
    前記データ制御部は、転送命令を実行して前記汎用レジスタのデータ部からメモリ空間にデータ転送を実行する際に、前記デバッグ鍵がCPUに読み出された場合には、前記ユーザメモリ空間と前記セキュアメモリ空間のどちらから命令をフェッチしてきた場合も前記ユーザメモリ空間へのデータ転送を禁止しない機能を持つことを特徴とする情報処理装置。
  4. ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、
    アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別し、セキュア情報を付加したデータをセキュア情報付きデータとしてセキュア情報部付き汎用レジスタに受け渡すセキュア情報生成部と、
    前記セキュア情報付きデータを受け取って保持する機能を持つ前記セキュア情報付き汎用レジスタと、
    前記セキュア情報付き汎用レジスタから前記セキュア情報付きデータを受け取って保持するとともに、前記保持したセキュア情報付きデータを前記セキュア情報付き汎用レジスタに受け渡す機能を持つセキュア情報付き内蔵RAM空間と、
    前記セキュア情報により外部空間へのデータ転送制御を行う機能を持つデータ出力制御部とを備え、
    前記データ出力制御部は、前記セキュア情報付き汎用レジスタにセットされた前記セキュア情報の値により前記外部空間へのデータ転送を禁止するか否かの制御を行うことを特徴とする情報処理装置。
  5. ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、
    アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別し、セキュア情報を付加したデータをセキュア情報付きデータとしてセキュア情報部付き汎用レジスタに受け渡すセキュア情報生成部と、
    前記セキュア情報付きデータを受け取って保持する機能を持つ前記セキュア情報付き汎用レジスタと、
    実行中の命令が前記ユーザメモリ空間の命令か前記セキュアメモリ空間の命令かを判別する機能を持つセキュア情報付き命令デコーダと、
    前記セキュア情報付き汎用レジスタから前記セキュア情報付きデータを受け取って保持するとともに、前記保持したセキュア情報付きデータを前記セキュア情報付き汎用レジスタに受け渡す機能を持つセキュア情報付き内蔵RAM空間と、
    割り込み等の処理が発生した際に、前記セキュア情報付き内蔵RAM空間のスタック領域に退避するデータに前記セキュア情報付き命令デコーダの前記セキュア情報を付加する機能を持つセキュア情報付き割り込み退避情報部と、
    前記セキュア情報により外部空間へのデータ転送制御を行う機能を持つデータ出力制御部とを備え、
    前記データ出力制御部は、前記セキュア情報付き汎用レジスタにセットされた前記セキュア情報の値により前記外部空間へのデータ転送を禁止するか否かの制御を行うことを特徴とする情報処理装置。
  6. ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、
    アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別し、セキュア情報を付加したデータをセキュア情報付きデータとしてセキュア情報部付き汎用レジスタに受け渡すセキュア情報生成部と、
    前記セキュア情報付きデータを受け取って保持する機能を持つ前記セキュア情報付き汎用レジスタと、
    実行中の命令が前記ユーザメモリ空間の命令か前記セキュアメモリ空間の命令かを判別する機能を持つセキュア情報付き命令デコーダと、
    前記セキュア情報付き汎用レジスタから前記セキュア情報付きデータを受け取って保持するとともに、前記保持したセキュア情報付きデータを前記セキュア情報付き汎用レジスタに受け渡す機能を持つセキュア情報付き内蔵RAM空間と、
    割り込み等の処理が発生した際に、前記セキュア情報付き内蔵RAM空間のスタック領域に退避するデータに前記セキュア情報付き命令デコーダの前記セキュア情報を付加する機能を持つセキュア情報付き割り込み退避情報部と、
    前記セキュア情報付き内蔵RAM空間の一部をスタック領域に定義するスタックポインタと、
    前記セキュア情報付き内蔵RAM空間のスタック領域の書き換え制御を行う退避情報書き換え制御部とを備え、
    前記退避情報書き換え制御部は、前記セキュア情報付き命令デコーダの命令がユーザメモリ空間の命令でかつ前記セキュア情報付き内蔵RAM空間のスタック領域を書き換えようとした命令の場合には、その書き換えを禁止することを特徴とする情報処理装置。
  7. ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空間をアクセスする情報処理装置であって、
    セキュア情報を保持する機能を持つセキュア情報付きDMAと、
    アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別し、セキュア情報を付加したデータをセキュア情報付きデータとして前記セキュア情報付きDMAに受け渡すセキュア情報生成部と、
    前記セキュア情報付きDMAから前記セキュア情報付きデータを受け取って保持するとともに、前記保持したセキュア情報付きデータを前記セキュア情報付きDMAに受け渡す機能を持つセキュア情報付き内蔵RAM空間と、
    前記セキュア情報により外部空間へのデータ転送制御を行う機能を持つデータ出力制御部とを備え、
    前記データ出力制御部は、前記セキュア情報付きDMAにセットされた前記セキュア情報の値により前記外部空間へのデータ転送を禁止するか否かの制御を行うことを特徴とする情報処理装置。
  8. ユーザメモリ空間とセキュアメモリ空間とからなるメモリ空
    間をアクセスする情報処理装置であって、
    アドレス情報が前記ユーザメモリ空間と前記セキュアメモリ空間のどちらを示しているかを判別し、セキュア情報を付加したデータをセキュア情報付きデータとしてセキュア情報部付き汎用レジスタに受け渡すセキュア情報生成部と、
    前記セキュア情報付きデータを受け取って保持する機能を持つ前記セキュア情報付き汎用レジスタと、
    実行中の命令が前記ユーザメモリ空間の命令か前記セキュアメモリ空間の命令かを判別する機能を持つセキュア情報付き命令デコーダと、
    前記セキュア情報付き命令デコーダでデコードされた命令により実行される演算に前記セキュア情報付き命令デコーダのセキュア情報を反映する機能を持つセキュア情報付き演算部と、
    前記セキュア情報により外部空間へのデータ転送制御を行う機能を持つデータ出力制御部とを備え、
    前記データ出力制御部は、前記セキュア情報付き汎用レジスタにセットされた前記セキュア情報及び前記セキュア情報付き演算部にセットされた前記セキュア情報により前記外部空間へのデータ転送を禁止するか否かの制御を行うことを特徴とする情報処理装置。
JP2003026810A 2003-02-04 2003-02-04 情報処理装置 Expired - Fee Related JP4347582B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003026810A JP4347582B2 (ja) 2003-02-04 2003-02-04 情報処理装置
US10/764,513 US7523279B2 (en) 2003-02-04 2004-01-27 Information processing apparatus for accessing memory spaces including a user memory space and a secure memory space
CNB2004100037337A CN1252599C (zh) 2003-02-04 2004-02-04 信息处理设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003026810A JP4347582B2 (ja) 2003-02-04 2003-02-04 情報処理装置

Publications (2)

Publication Number Publication Date
JP2004240536A JP2004240536A (ja) 2004-08-26
JP4347582B2 true JP4347582B2 (ja) 2009-10-21

Family

ID=32954703

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003026810A Expired - Fee Related JP4347582B2 (ja) 2003-02-04 2003-02-04 情報処理装置

Country Status (3)

Country Link
US (1) US7523279B2 (ja)
JP (1) JP4347582B2 (ja)
CN (1) CN1252599C (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048643A (ja) * 2004-07-08 2006-02-16 Namco Ltd 端末装置、プログラム、情報記憶媒体およびデータ処理方法
US7496753B2 (en) * 2004-09-02 2009-02-24 International Business Machines Corporation Data encryption interface for reducing encrypt latency impact on standard traffic
US7457960B2 (en) * 2004-11-30 2008-11-25 Analog Devices, Inc. Programmable processor supporting secure mode
US7904943B2 (en) * 2004-12-28 2011-03-08 O'connor Dennis M Secure controller for block oriented storage
CN101189586B (zh) * 2005-06-01 2011-06-15 松下电器产业株式会社 计算机系统及程序生成装置
JP4738068B2 (ja) * 2005-06-17 2011-08-03 富士通セミコンダクター株式会社 プロセッサ及びシステム
EP1986122A1 (fr) * 2007-04-23 2008-10-29 Stmicroelectronics Sa Unite de traitement securisee
JP4972692B2 (ja) * 2007-08-30 2012-07-11 パナソニック株式会社 Dma制御装置およびデータ転送方法
JP4976991B2 (ja) 2007-11-22 2012-07-18 株式会社東芝 情報処理装置、プログラム検証方法及びプログラム
JP5322620B2 (ja) 2008-12-18 2013-10-23 株式会社東芝 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム
JP2010160765A (ja) * 2009-01-09 2010-07-22 Oki Semiconductor Co Ltd システムlsi及びこのデバッグ方法
US20100324981A1 (en) * 2009-06-22 2010-12-23 Etchegoyen Craig S System and Method for Media Distribution on Social Networks
US8301856B2 (en) * 2010-02-16 2012-10-30 Arm Limited Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
JP5171907B2 (ja) 2010-09-13 2013-03-27 株式会社東芝 情報処理装置、情報処理プログラム
US8943330B2 (en) 2011-05-10 2015-01-27 Qualcomm Incorporated Apparatus and method for hardware-based secure data processing using buffer memory address range rules
CN102521535A (zh) * 2011-12-05 2012-06-27 苏州希图视鼎微电子有限公司 通过特定指令集来进行相关运算的信息安全协处理器
GB2513727B (en) * 2012-06-27 2015-06-24 Nordic Semiconductor Asa Memory protection
CN103942492B (zh) * 2014-03-04 2016-09-21 中天安泰(北京)信息技术有限公司 单机版数据黑洞处理方法及计算设备
CN103942499B (zh) * 2014-03-04 2017-01-11 中天安泰(北京)信息技术有限公司 基于移动存储器的数据黑洞处理方法及移动存储器
CN104408509A (zh) * 2014-08-27 2015-03-11 北京中电华大电子设计有限责任公司 一种增强智能卡芯片敏感操作安全启动的装置
JP7233961B2 (ja) * 2019-02-25 2023-03-07 シャープ株式会社 画像処理装置、画像形成装置、画像処理方法及び画像処理プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4523271A (en) * 1982-06-22 1985-06-11 Levien Raphael L Software protection method and apparatus
US4590552A (en) * 1982-06-30 1986-05-20 Texas Instruments Incorporated Security bit for designating the security status of information stored in a nonvolatile memory
JPH0353328A (ja) * 1989-07-20 1991-03-07 Hitachi Ltd レジスタ退避回復方法ならびに処理装置
JPH06236284A (ja) * 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
US5237616A (en) * 1992-09-21 1993-08-17 International Business Machines Corporation Secure computer system having privileged and unprivileged memories
JP3520102B2 (ja) * 1993-12-28 2004-04-19 株式会社東芝 マイクロコンピュータ
US5737760A (en) * 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
JPH10228421A (ja) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
US6557104B2 (en) * 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
US7444476B2 (en) * 2001-07-24 2008-10-28 Texas Instruments Incorporated System and method for code and data security in a semiconductor device

Also Published As

Publication number Publication date
US20040187019A1 (en) 2004-09-23
US7523279B2 (en) 2009-04-21
CN1252599C (zh) 2006-04-19
JP2004240536A (ja) 2004-08-26
CN1521638A (zh) 2004-08-18

Similar Documents

Publication Publication Date Title
JP4347582B2 (ja) 情報処理装置
US6983374B2 (en) Tamper resistant microprocessor
JP4226760B2 (ja) マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
US7874009B2 (en) Data processing device
US7392415B2 (en) Sleep protection
JP4989543B2 (ja) メモリドメインを基にしたデータ処理システム内のセキュリティ制御
US9536111B2 (en) Secure processing unit systems and methods
KR100550593B1 (ko) 마이크로프로세서
JP5249399B2 (ja) 安全なメモリ区分を使用した安全な実行のための方法および装置
JP4785808B2 (ja) データ処理装置およびシステム制御レジスタ保護方法
US20050021944A1 (en) Security architecture for system on chip
JP2007310601A (ja) マイクロコンピュータおよびそのソフトウェア保護方法
JP2007109053A (ja) バスアクセス制御装置
CN114968117A (zh) 存储器保护系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090525

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090616

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090716

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees