(57)【要約】【課題】  本発明は、情報を部分的に暗号化して保護すれば十分である場合に、そのような用途に適した効率的な構成のプロセッサ及びシステムを提供することを目的とする。【解決手段】  プロセッサは、プログラムを実行する実行部と、実行部に結合されるバスと、バスに結合されるローカルメモリと、バスに結合されるＤＭＡユニットと、バスと外部とを結合するインターフェースを含み、ＤＭＡユニットは、実行部からの命令に応じてＤＭＡ転送処理を実行し、ＤＭＡ転送処理によりインターフェースを介して外部から情報を取り込み、取り込んだ情報を復号化し、復号化した情報をＤＭＡ転送処理によりローカルメモリに書き込むよう構成されることを特徴とする。【選択図】  図１
2006350782.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行する実行部と、
該実行部に結合されるバスと、
該バスに結合されるローカルメモリと、
該バスに結合されるＤＭＡユニットと、
該バスと外部とを結合するインターフェースと
を含み、該ＤＭＡユニットは、該実行部からの命令に応じてＤＭＡ転送処理を実行し、該ＤＭＡ転送処理により該インターフェースを介して外部から情報を取り込み、該取り込んだ情報を復号化し、該復号化した情報を該ＤＭＡ転送処理により該ローカルメモリに書き込むよう構成されることを特徴とするプロセッサ。
【請求項２】
該ローカルメモリはメインメモリ空間以外のアドレス領域に割当てられることを特徴とする請求項１記載のプロセッサ。
【請求項３】
該ローカルメモリは、
情報を記憶するメモリコア回路と、
該実行部が実行するプログラムに関連したＩＤを格納するレジスタと、
該レジスタの内容に応じて該メモリコア回路へのアクセスを許可又は禁止する制御回路
を含むことを特徴とする請求項１記載のプロセッサ。
【請求項４】
該ローカルメモリは、
情報を記憶するメモリコア回路と、
該実行部が実行するプログラムの特権レベルを示す情報を格納するレジスタと、
該レジスタの内容に応じて該メモリコア回路へのアクセスを許可又は禁止する制御回路
を含むことを特徴とする請求項１記載のプロセッサ。
【請求項５】
該ＤＭＡユニットは、
該ＤＭＡ転送処理を実行するＤＭＡコントローラと、
該実行部が実行するプログラムに関連したＩＤを格納するレジスタと、
該レジスタの内容に応じて該ＤＭＡ転送処理の実行を許可又は禁止する制御回路
を含むことを特徴とする請求項１記載のプロセッサ。
【請求項６】
該ＤＭＡユニットは、
該ＤＭＡ転送処理を実行するＤＭＡコントローラと、
該実行部が実行するプログラムの特権レベルを示す情報を格納するレジスタと、
該レジスタの内容に応じて該ＤＭＡ転送処理の実行を許可又は禁止する制御回路
を含むことを特徴とする請求項１記載のプロセッサ。
【請求項７】
該ＤＭＡユニットは、
所定の公開鍵と対である秘密鍵を格納する第１のレジスタと、
該第１のレジスタの内容に応じて所定の鍵情報の暗号解読処理を実行するユニットと、
該暗号解読処理の結果を格納する第２のレジスタと、
該第２のレジスタの内容を鍵として該取り込んだ情報の復号化処理を実行するユニット
を含むことを特徴とする請求項１記載のプロセッサ。
【請求項８】
メモリと、
該メモリに結合される外部バスと、
該外部バスに結合されるプロセッサ
を含み、該プロセッサは、
プログラムを実行する実行部と、
該実行部に結合される内部バスと、
該内部バスに結合されるローカルメモリと、
該内部バスに結合されるＤＭＡユニットと、
該内部バスと該外部バスとを結合するインターフェース
を含み、該ＤＭＡユニットは、該実行部からの命令に応じてＤＭＡ転送処理を実行し、該ＤＭＡ転送処理により該インターフェースを介して該メモリから情報を取り込み、該取り込んだ情報を復号化し、該復号化した情報を該ＤＭＡ転送処理により該ローカルメモリに書き込むよう構成されることを特徴とするシステム。
【請求項９】
該ローカルメモリは該メモリのメモリ空間以外のアドレス領域に割当てられることを特徴とする請求項８記載のシステム。
【請求項１０】
該ＤＭＡユニットは、
所定の公開鍵と対である秘密鍵を格納する第１のレジスタと、
該第１のレジスタの内容に応じて所定の鍵情報の暗号解読処理を実行するユニットと、
該暗号解読処理の結果を格納する第２のレジスタと、
該第２のレジスタの内容を鍵として該取り込んだ情報の復号化処理を実行するユニット
を含むことを特徴とする請求項８記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にプロセッサ及びプロセッサを用いたシステムに関し、詳しくは情報の機密保護機能を備えたプロセッサ及びプロセッサを用いたシステムに関する。
【背景技術】
【０００２】
プロセッサに基づくシステムはプログラムによって動作記述が可能であるために、ハードウェアのみで構成されるシステムに比べ柔軟性が高く、多種類の機能を容易に実装することができる。こうした利点のために、プロセッサに基づくシステムは多くの分野で用いられ、電子商取引のように高度なセキュリティを要求される分野でも利用されるようになっている。セキュリティを強固にするためには、ユーザ認証などの各種のシステムレベルでの措置が必要であるが、近年ではシステムレベルでの安全性のみならず、ソフトウェアレベルやプロセッサレベルでの安全性が問題となっている。
【０００３】
例えば、データや命令の実行コードを主記憶装置や二次記憶装置に格納する際に、データや命令の実行コードを暗号化することにより安全性を確保することが考えられる。命令実行の際には、暗号化されたデータや命令の実行コード等を復号化し、プロセッサ内のキャッシュメモリに格納して処理を実行することになる。このような場合、暗号化処理を実行するハードウェアをプロセッサチップと別のチップに搭載すると、処理速度及び暗号化処理性能の点で問題がある。
【０００４】
このようなソフトウェア実行環境の従来技術として、特許文献１に記載の技術がある。特許文献１には、暗号化された実行コードの認証を行って暗号化コードの有効性を確認し、セキュアプロセッサがその暗号化コードに対応する命令をフェッチし、セキュアタスクとして実行するコード実行装置が開示されている。
【０００５】
しかしながら、このようなコード実行装置ではソフトウェアの大規模な変更等が必要となってしまう。用途によっては、特定部分の命令・データだけを暗号化して保護すればよい場合もあり、このように大規模なソフトウェア変更が必要となる構成では、費用対効果の点から好ましくない。
【０００６】
通常プロセッサでは、命令の解析実行を行う実行部が、メモリ管理ユニット、キャッシュメモリ、及びバスインタフェースを介して命令をフェッチし、実行結果をメモリにストアする等のサイクルを繰り返す。このような通常のプロセッサに対し、完全な秘密保護機能を実装しようとすると、データパス上に暗号処理回路を追加して、命令や実行結果等の全ての情報に対して暗号化・復号化を実行することになる。しかしながら、全ての情報に対する秘密保護機能が必要でなく、情報を部分的に暗号化して保護すれば目的が達成されるような用途の場合には、このような構成では規模が不必要に大きくなり、コストもかかり過ぎるという問題がある。
【特許文献１】特開２００２−３５３９６０号公報
【特許文献２】特開２００３−２８０９８９号公報
【特許文献３】特開２００４−３２０５３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
以上を鑑みて本発明は、情報を部分的に暗号化して保護すれば十分である場合に、そのような用途に適した効率的な構成のプロセッサ及びシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明によるプロセッサは、プログラムを実行する実行部と、該実行部に結合されるバスと、該バスに結合されるローカルメモリと、該バスに結合されるＤＭＡユニットと、該バスと外部とを結合するインターフェースを含み、該ＤＭＡユニットは、該実行部からの命令に応じてＤＭＡ転送処理を実行し、該ＤＭＡ転送処理により該インターフェースを介して外部から情報を取り込み、該取り込んだ情報を復号化し、該復号化した情報を該ＤＭＡ転送処理により該ローカルメモリに書き込むよう構成されることを特徴とする。
【０００９】
また本発明によるシステムは、メモリと、該メモリに結合される外部バスと、該外部バスに結合されるプロセッサを含み、該プロセッサは、プログラムを実行する実行部と、該実行部に結合される内部バスと、該内部バスに結合されるローカルメモリと、該内部バスに結合されるＤＭＡユニットと、該内部バスと該外部バスとを結合するインターフェースを含み、該ＤＭＡユニットは、該実行部からの命令に応じてＤＭＡ転送処理を実行し、該ＤＭＡ転送処理により該インターフェースを介して該メモリから情報を取り込み、該取り込んだ情報を復号化し、該復号化した情報を該ＤＭＡ転送処理により該ローカルメモリに書き込むよう構成されることを特徴とする。
【発明の効果】
【００１０】
本発明の少なくとも１つの実施例によれば、秘密の保護が必要なデータ又は命令コードは、プロセッサの外部においては暗号化された状態で保持され、復号化された状態においてはプロセッサ内部のローカルメモリに保持される。このローカルメモリをプロセッサの内部からのみアクセス可能なように構成すれば、復号化された情報を外部からアクセスすることはできない。従って、情報の機密に関して高い安全性を提供することができる。また通常のプロセッサの構成に対して、ＤＭＡユニット及びローカルメモリのモジュールを付加するだけで、容易に本発明のプロセッサを実現することができる。
【００１１】
また外部から取り込む情報が暗号化されていない平文情報である場合には、プロセッサ内部に設けられたローカルメモリを用いる必要はない。この場合、外部から取り込んだ平文情報は、通常のプロセッサの場合と同様に、ローカルメモリを介することなく実行部に直接に供給される。即ちこのプロセッサにおいては、平文情報の場合には通常のプロセッサと同様に動作し、暗号化情報の場合にはＤＭＡユニットとローカルメモリとを利用して復号化処理をプロセッサ内部で効率的に実行することができる。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１３】
図１は、本発明によるセキュアプロセッサを用いたシステムの構成を示す図である。なお以下の説明では、図１に示すような本発明による情報保護機能を有するプロセッサのことをセキュアプロセッサと呼ぶ。
【００１４】
図１のシステムは、セキュアプロセッサ１０、ＲＯＭ１１、メモリ１２、ＨＤＤ１３、外部命令・データバス１４、及び外部アドレスバス１５を含む。ＲＯＭ１１、メモリ１２、及びＨＤＤ１３は、外部命令・データバス１４及び外部アドレスバス１５を介してセキュアプロセッサ１０に接続される。ＲＯＭ１１、メモリ１２、及びＨＤＤ１３は、データや命令コード等の情報を、暗号化された状態或いは平文状態（暗号化されていない状態）で格納する。
【００１５】
セキュアプロセッサ１０は、実行部２１、メモリ管理ユニット（ＭＭＵ）２２、セキュアＤＭＡ２３、キャッシュメモリ２４、ローカルメモリ２５、及びバス・インターフェース（バスＩ／Ｆ）２６を含む。実行部２１、セキュアＤＭＡ２３、キャッシュメモリ２４、ローカルメモリ２５、及びバスＩ／Ｆ２６は、内部命令・データバス２７を介して互いに接続される。またＭＭＵ２２、セキュアＤＭＡ２３、キャッシュメモリ２４、ローカルメモリ２５、及びバスＩ／Ｆ２６は、内部アドレスバス２８を介して互いに接続される。
【００１６】
実行部２１はＣＰＵであり、プログラムを構成する命令列を順次メモリからフェッチしてデコード・実行することで、プログラムを実行する。プログラム実行に伴い、実行部２１は、ＲＯＭ１１、メモリ１２、ＨＤＤ１３をアクセスして、指定したアドレスに対して情報の読み書きを実行する。
【００１７】
実行部２１が論理アドレスをＭＭＵ２２に供給すると、ＭＭＵ２２が論理アドレスを物理アドレスに変換して、変換後の物理アドレスをアドレスバスに送出する。これにより実行部２１は、指定した論理アドレスに対応する物理アドレスにアクセスすることができる。
【００１８】
本発明においては、セキュアプロセッサ１０内部に、セキュアＤＭＡ２３及びローカルメモリ２５が設けられている。セキュアＤＭＡ２３は通常のＤＭＡ（Direct Memory Access）転送機能に加えて、暗号化・復号化機能を有している。セキュアＤＭＡ２３は、実行部２１からの起動命令に応じてＤＭＡ転送処理を実行することにより、セキュアプロセッサ１０外部の転送元（例えばメモリ１２）の指定アドレスから暗号化情報（暗号化されたデータや命令コード等）を読み出し、外部命令・データバス１４及びバスＩ／Ｆ２６を介して、暗号化情報をセキュアＤＭＡ２３内部に取り込む。セキュアＤＭＡ２３は、ＤＭＡ転送処理により取り込んだ暗号化情報を復号化機能により復号化し、復号化した情報をＤＭＡ転送処理により転送先であるローカルメモリ２５に転送して指定アドレスに書き込む。ＤＭＡ転送処理の終了後に、実行部２１が、ローカルメモリ２５に格納された復号化済みの情報をアクセスして、適宜必要な処理を実行する。
【００１９】
またセキュアＤＭＡ２３は、実行部２１からの起動命令に応じてＤＭＡ転送処理を実行することにより、ローカルメモリ２５に格納された平文情報を読み出し、バスＩ／Ｆ２６及び外部命令・データバス１４を介して、セキュアプロセッサ１０外部の転送先（例えばメモリ１２）に転送する。この際、セキュアＤＭＡ２３は、ＤＭＡ転送処理を実行しながらローカルメモリ２５の平文情報を暗号化機能により暗号化し、この暗号化した情報をセキュアプロセッサ１０外部に送出する。
【００２０】
このようにして本発明においては、秘密の保護が必要なデータ又は命令コードは、セキュアプロセッサ１０の外部においては常に暗号化された状態で保持され、復号化された状態においてはセキュアプロセッサ１０内部のローカルメモリ２５に保持される。このローカルメモリ２５は、セキュアプロセッサ１０の内部からのみアクセス可能であり、復号化された情報を外部からアクセスすることはできない。従って、プロセッサ外部のメモリ上で復号化する場合に比較して、情報の機密に関する安全性が格段に高まる。また通常のプロセッサの構成に対して、セキュアＤＭＡ２３及びローカルメモリ２５のモジュールを付加するだけで、容易に本発明のセキュアプロセッサ１０を実現することができる。
【００２１】
なお本発明のセキュアプロセッサ１０において、外部から取り込む情報が暗号化されていない平文情報である場合には、ローカルメモリ２５は用いられない。この場合、外部から取り込んだ平文情報は、通常のプロセッサの場合と同様にキャッシュメモリ２４に格納され、実行部２１がキャッシュメモリ２４にアクセスすることで、格納された情報を利用することになる。即ちプロセッサ１０においては、平文情報の場合には通常のプロセッサと同様に動作し、暗号化情報の場合にはセキュアＤＭＡ２３とローカルメモリ２５とを利用して復号化処理をプロセッサ内部で効率的に実行することができる。また平文情報を例えばメモリ１２に書き込む場合も同様であり、通常のプロセッサの場合と同様に、実行部２１からキャッシュメモリ２４を介してメモリ１２に情報が書き込まれる。
【００２２】
図２は、メインメモリ、キャッシュメモリ２４、及びローカルメモリ２５の関係を示す図である。まず図２（ａ）に示されるように、メインメモリのメモリ空間（この例ではアドレス０ｘ００００＿００００から０ｘ７ｆｆｆ＿ｆｆｆｆまでの領域）は、部分的にキャッシュメモリに割当てられる。即ち、メモリ空間上のあるアドレスが実行部２１によりアクセスされると、そのアドレスの内容がメインメモリからキャッシュメモリ２４にコピーされることで、キャッシュメモリ２４内にメインメモリの内容の一部が保持される。
【００２３】
それに対してローカルメモリ２５は、図２（ｂ）に示されるようにＩ／Ｏ空間上で、メインメモリの領域（０ｘ００００＿００００から０ｘ７ｆｆｆ＿ｆｆｆｆ）とは別のアドレス領域に割当てられている。図２（ｂ）の例では、ローカルメモリ２５の領域はメインメモリの領域と離れて配置されているが、メインメモリの領域に続く０ｘ８０００＿００００から始まる領域にローカルメモリ２５を割当てても良い。
【００２４】
図３は、ＭＭＵ２２及びローカルメモリ２５の第１の実施例の構成を示す図である。本発明においては、ローカルメモリ２５に対するアクセスをプロセス間で制限することにより、情報の保護に関して更に安全性を向上させることができる。この第１の実施例では、ローカルメモリ２５に対するアクセスをプロセス間で制限するために、実行中のプログラムが設定するアクセスＩＤに基づいたアクセス制御を行う。
【００２５】
図３（ａ）には、ＭＭＵ２２の構成の一部が示される。ＭＭＵ２２は、実行部２１から供給される論理アドレスを物理アドレスに変換する。この論理アドレスを物理アドレスに変換するためのハードウェアとして、ＭＭＵ２２には、変換索引バッファ（TLB：Translation Lookaside Buffer）が設けられている。この変換索引バッファには、システム上の複数のプロセスに対して、最近アクセスされた論理ページの物理アドレスが、ＴＬＢエントリ３１として保持されている。各ＴＬＢエントリには、論理ページ番号と物理ページ番号との両方が含まれている。
【００２６】
実行部２１が論理アドレスへのアクセスを試みると、ＭＭＵ２２は論理アドレスに合致するＴＬＢエントリ３１を探す。見つかったＴＬＢエントリ３１に基づいて、論理アドレスを物理アドレスに変換し、所望のデータにアクセスする。実行中のプログラムが、ＴＬＢエントリ３１の存在しない論理ページにアクセスしようとすると、ＴＬＢミスが発生し、オペレーティングシステムの例外処理が実行される。この例外処理により、アドレス変換のための新しいＴＬＢエントリ３１が生成される。
【００２７】
ＭＭＵ２２には更に、アクセスＩＤ３２を格納するレジスタが設けられている。これは例えば、実行中のプログラムによるアクセスに対して設定するＩＤである。本発明の第１の実施例においては、このようにアクセスＩＤ３２をＭＭＵ２２に保存しておき、ローカルメモリアクセスの領域確保時に、ＭＭＵ２２内のアクセスＩＤ３２の値をローカルメモリ２５内の制御レジスタに書き込む。
【００２８】
図３（ｂ）は、ローカルメモリ２５の構成の一例を示す図である。ローカルメモリ２５は、メモリコア４１、コマンド／アドレスデコーダ４２、アクセスＩＤレジスタ４３を含む。コマンド／アドレスデコーダ４２は、アドレスバスを介してアドレスを受け取ると共に、命令バスを介してリード／ライトコマンドを受け取る。コマンド／アドレスデコーダ４２は、これらのアドレス及びコマンドをデコードして、メモリコア４１に対して所定のアクセス動作（書き込み動作又は読み出し動作）を実行する。
【００２９】
実行部２１が、外部から暗号化情報を取り込む場合、ローカルメモリ２５に対して初期化コマンドを発行してメモリを初期化し、更にセキュアＤＭＡ２３に対してＤＭＡ起動コマンドを発行することでＤＭＡ転送処理を実行する。ローカルメモリ２５の初期化処理は、初期化処理部４２ｂにより実行される。この際、ＭＭＵ２２のアクセスＩＤ３２の値（ＤＭＡ転送処理を要求したプログラムによるアクセスに対して設定されたＩＤ）を、ローカルメモリ２５のアクセスＩＤレジスタ４３にコピーしておく。
【００３０】
セキュアＤＭＡ２３によるＤＭＡ転送処理の終了後、実行部２１は、ＤＭＡ転送処理によりローカルメモリ２５内に格納された復号化後の情報をアクセスしようとする。これは、実行部２１が読み出しコマンドを発行すると共に、ローカルメモリ２５の読み出し先の論理アドレスをＭＭＵ２２に対して供給することで行われる。このときＭＭＵ２２は、読み出し先の論理アドレスを物理アドレスに変換して送出すると共に、ローカルメモリ２５に読み出しアクセスする処理のアクセスＩＤをローカルメモリ２５に供給する。
【００３１】
ローカルメモリ２５のコマンド／アドレスデコーダ４２は、読み出しコマンドに応答して、アクセスＩＤレジスタ４３のアクセスＩＤ（ＤＭＡ転送処理のアクセスＩＤ）の値が、ＭＭＵ２２から供給されるアクセスＩＤ（読み出し処理のアクセスＩＤ）の値と一致するか否かを判定する。これはコマンド／アドレスデコーダ４２内に設けられるＩＤ比較器４２ａにより実行される。アクセスＩＤレジスタ４３のアクセスＩＤの値が、ＭＭＵ２２から供給されるアクセスＩＤの値と一致すると、コマンド／アドレスデコーダ４２は受信したアドレスをデコードして、メモリコア４１の指定されたアドレスに対して読み出しアクセス動作を実行する。読み出したデータは、メモリコア４１からデータバスに送出され、実行部２１に供給される。
【００３２】
このような構成とすることで、要求されたアクセスのアクセスＩＤの値が当初設定した値（ＤＭＡ転送処理のアクセスＩＤの値）と異なる場合には、その要求されたアクセスを禁止することができる。異なるアクセスＩＤではローカルメモリ２５のメモリコア４１にアクセスできない状態は、アクセスＩＤレジスタ４３の内容をクリアしてローカルメモリ２５を開放するまで続くことになる。このようにして第１の実施例では、プロセス間での違法なアクセスを禁止して、情報の保護に関して更に安全性を向上させることができる。
【００３３】
なお上記説明では、アクセスＩＤに基づいてローカルメモリ２５へのアクセスを制御する構成とした。本発明はこのような構成に限定されるものではなく、アクセスＩＤの代わりに例えばプロセスＩＤを用いて、プロセスＩＤの値に応じてローカルメモリ２５へのアクセスを制御する構成としてもよい。
【００３４】
図４は、ＭＭＵ２２及びローカルメモリ２５の第２の実施例の構成を示す図である。本発明においては、ローカルメモリ２５に対するアクセスをアクセス権により制限することにより、情報の保護に関して更に安全性を向上させることができる。この第２の実施例では、ローカルメモリ２５に対するアクセスをアクセス権により制限するために、実行中のプログラムが設定するユーザモード・特権モード切替信号（Ｓ−ｂｉｔ）に基づいたアクセス制御を行う。
【００３５】
図４（ａ）には、ＭＭＵ２２の構成の一部が示される。ＭＭＵ２２には、ＴＬＢエントリ３１とＳビットレジスタ５１が設けられている。Ｓビットレジスタ５１は、実行中のプログラムがユーザモードで実行されているか或いは特権モード（スーパーバイザモード）で実行されているかを示す情報（特権レベル情報）を格納する。本発明の第２の実施例においては、ローカルメモリアクセスの領域確保時に、ＭＭＵ２２内のＳビットレジスタ５１の値をローカルメモリ２５内の制御レジスタに書き込む。
【００３６】
図４（ｂ）は、ローカルメモリ２５の構成の一例を示す図である。ローカルメモリ２５は、メモリコア４１、コマンド／アドレスデコーダ５２、及びＳビットレジスタ５３を含む。コマンド／アドレスデコーダ５２は、アドレスバスを介してアドレスを受け取ると共に、命令バスを介してリード／ライトコマンドを受け取る。コマンド／アドレスデコーダ５２は、これらのアドレス及びコマンドをデコードして、メモリコア４１に対して所定のアクセス動作（書き込み動作又は読み出し動作）を実行する。
【００３７】
実行部２１が、外部から暗号化情報を取り込む場合、ローカルメモリ２５に対して初期化コマンドを発行してメモリを初期化し、更にセキュアＤＭＡ２３に対してＤＭＡ起動コマンドを発行することでＤＭＡ転送処理を実行する。ローカルメモリ２５の初期化処理は、初期化処理部５２ｂにより実行される。この際、ＭＭＵ２２のＳビットレジスタ５１の値（ＤＭＡ転送処理を要求したプログラムの特権レベル情報）を、ローカルメモリ２５のＳビットレジスタ５３にコピーしておく。
【００３８】
セキュアＤＭＡ２３によるＤＭＡ転送処理の終了後、実行部２１は、ＤＭＡ転送処理によりローカルメモリ２５内に格納された復号化後の情報をアクセスしようとする。これは、実行部２１が読み出しコマンドを発行すると共に、ローカルメモリ２５の読み出し先の論理アドレスをＭＭＵ２２に対して供給することで行われる。このときＭＭＵ２２は、読み出し先の論理アドレスを物理アドレスに変換して送出すると共に、ローカルメモリ２５に読み出しアクセスするプログラムの特権レベル情報をローカルメモリ２５に供給する。
【００３９】
ローカルメモリ２５のコマンド／アドレスデコーダ５２は、読み出しコマンドに応答して、Ｓビットレジスタ５３の特権レベル情報（ＤＭＡ転送処理の特権レベル情報）の値が、ＭＭＵ２２から供給される特権レベル情報（読み出し処理の特権レベル情報）の値と一致するか否かを判定する。これはコマンド／アドレスデコーダ５２内に設けられるＳ比較器５２ａにより実行される。Ｓビットレジスタ５３の特権レベル情報が、ＭＭＵ２２から供給される特権レベル情報と一致すると、コマンド／アドレスデコーダ５２は受信したアドレスをデコードして、メモリコア４１の指定されたアドレスに対して読み出しアクセス動作を実行する。読み出したデータは、メモリコア４１からデータバスに送出され、実行部２１に供給される。
【００４０】
このような構成とすることで、アクセス要求したプログラム（プロセス）の特権レベルが、当初設定した特権レベル（ＤＭＡ転送処理を要求したプログラム（プロセス）の特権レベル）と異なる場合には、その要求されたアクセスを禁止することができる。異なる特権レベル情報ではローカルメモリ２５のメモリコア４１にアクセスできない状態は、Ｓビットレジスタ５３の内容をクリアしてローカルメモリ２５を開放するまで続くことになる。なお特権レベル情報が一致するか否かでアクセスの可否を決定するのではなく、特権モード（スーパーバイザモード）には無条件でアクセス可能な権限を与えるように構成してもよい。この場合、アクセス要求したプログラムの特権レベルが特権モードであれば、当初設定した特権レベルがユーザモードであるか特権モードであるかに関わらずアクセス可能となる。このようにして第２の実施例では、特権レベル情報に基づいて違法なアクセスを禁止することにより、情報の保護に関して更に安全性を向上させることができる。
【００４１】
図５は、セキュアＤＭＡ２３の第１の実施例の構成を示す図である。本発明においては、セキュアＤＭＡ２３に対する駆動要求をプロセス間で制限することにより、情報の保護に関して更に安全性を向上させることができる。このセキュアＤＭＡ２３の第１の実施例においては、セキュアＤＭＡ２３に対する駆動要求をプロセス間で制限するために、実行中のプログラムが設定するアクセスＩＤに基づいた駆動要求制御を行う。この場合に使用されるＭＭＵ２２は、図３（ａ）に示される構成と同一であり、所定のレジスタにアクセスＩＤ３２が格納されている。
【００４２】
図５は、セキュアＤＭＡ２３の構成の一例を示す図である。セキュアＤＭＡ２３は、暗号処理回路６１、ＤＭＡコントローラ６２、及びアクセスＩＤレジスタ６３を含む。ＤＭＡコントローラ６２は、アドレスバスを介して転送元アドレスや転送先アドレス等のアドレス情報を受け取ると共に、命令バスを介してＤＭＡ転送処理起動コマンドを受け取る。ＤＭＡコントローラ６２は、ＤＭＡ転送処理起動コマンドに応答して、転送元アドレスから転送先アドレスへのＤＭＡ転送を実行しながら、このＤＭＡ転送される情報の復号化処理を暗号処理回路６１により実行する。
【００４３】
実行部２１が、外部から暗号化情報を取り込む場合、ローカルメモリ２５に対して初期化コマンドを発行してメモリを初期化し、更にセキュアＤＭＡ２３に対してＤＭＡ起動コマンドを発行することでＤＭＡ初期化処理（初期設定処理）及びＤＭＡ転送処理を実行する。セキュアＤＭＡ２３の初期化処理は、転送元アドレス及び転送先アドレスの設定や転送元及び転送先のアドレス増減の設定等からなり、初期化処理部６２ｂにより実行される。この際、ＭＭＵ２２のアクセスＩＤ３２の値（ＤＭＡ転送処理を要求したプログラムによるアクセスに対して設定されたＩＤ）を、アクセスＩＤ３２のアクセスＩＤレジスタ６３にコピーしておく。
【００４４】
セキュアＤＭＡ２３によるＤＭＡ転送処理の終了後、実行部２１が、更に別のＤＭＡ転送処理を試みる場合を考える。このときＭＭＵ２２は、ＤＭＡ転送処理を要求するプログラムのアクセスＩＤをセキュアＤＭＡ２３に供給する。
【００４５】
セキュアＤＭＡ２３のＤＭＡコントローラ６２は、ＤＭＡ転送処理起動コマンドに応答して、アクセスＩＤレジスタ６３のアクセスＩＤ（前回のＤＭＡ転送処理のアクセスＩＤ）の値が、ＭＭＵ２２から供給されるアクセスＩＤ（今回のＤＭＡ転送処理のアクセスＩＤ）の値と一致するか否かを判定する。これはＤＭＡコントローラ６２内に設けられるＩＤ比較器６２ａにより実行される。アクセスＩＤレジスタ６３のアクセスＩＤの値が、ＭＭＵ２２から供給されるアクセスＩＤの値と一致すると、ＤＭＡコントローラ６２はＤＭＡ転送処理及び復号化処理を実行し、復号化した情報をローカルメモリ２５に書き込む。
【００４６】
このような構成とすることで、要求されたＤＭＡ転送処理のアクセスＩＤの値が当初設定した値（前回のＤＭＡ転送処理のアクセスＩＤの値）と異なる場合には、その要求されたＤＭＡ転送処理を禁止することができる。即ち、ローカルメモリ２５に対して書き込む動作（ＤＭＡ転送処理・復号化処理による書き込み動作）を、異なるアクセスＩＤ間で禁止することができる。なお異なるアクセスＩＤではセキュアＤＭＡ２３を起動できない状態は、アクセスＩＤレジスタ６３の内容をクリアするまで続くことになる。このようにしてセキュアＤＭＡ２３の第１の実施例では、プロセス間での違法なローカルメモリ書き込み処理を禁止して、情報の保護に関して更に安全性を向上させることができる。
【００４７】
図６は、セキュアＤＭＡ２３の第２の実施例の構成を示す図である。本発明においては、セキュアＤＭＡ２３に対する駆動要求をアクセス権により制限することにより、情報の保護に関して更に安全性を向上させることができる。このセキュアＤＭＡ２３の第２の実施例では、セキュアＤＭＡ２３に対する駆動要求をアクセス権により制限するために、実行中のプログラムが設定するユーザモード・特権モード切替信号（Ｓ−ｂｉｔ）に基づいた駆動要求制御を行う。この場合に使用されるＭＭＵ２２は、図４（ａ）に示される構成と同一であり、Ｓビットレジスタ５１が設けられている。
【００４８】
図６は、セキュアＤＭＡ２３の構成の一例を示す図である。セキュアＤＭＡ２３は、暗号処理回路６１、ＤＭＡコントローラ７２、及びＳビットレジスタ７３を含む。ＤＭＡコントローラ７２の動作は基本的に、ＤＭＡコントローラ６２の動作と同一である。
【００４９】
実行部２１が、外部から暗号化情報を取り込む場合、ローカルメモリ２５に対して初期化コマンドを発行してメモリを初期化し、更にセキュアＤＭＡ２３に対してＤＭＡ起動コマンドを発行することでＤＭＡ初期化処理（初期設定処理）及びＤＭＡ転送処理を実行する。セキュアＤＭＡ２３の初期化処理は、転送元アドレス及び転送先アドレスの設定や転送元及び転送先のアドレス増減の設定等からなり、初期化処理部７２ｂにより実行される。この際、ＭＭＵ２２のＳビットレジスタ５１の値（ＤＭＡ転送処理を要求したプログラムの特権レベル情報）を、セキュアＤＭＡ２３のＳビットレジスタ７３にコピーしておく。
【００５０】
セキュアＤＭＡ２３によるＤＭＡ転送処理の終了後、実行部２１が、更に別のＤＭＡ転送処理を試みる場合を考える。このときＭＭＵ２２は、ＤＭＡ転送処理を要求するプログラムの特権レベル情報をセキュアＤＭＡ２３に供給する。
【００５１】
セキュアＤＭＡ２３のＤＭＡコントローラ７２は、ＤＭＡ転送処理起動コマンドに応答して、Ｓビットレジスタ７３の特権レベル情報（前回のＤＭＡ転送処理の特権レベル情報）の値が、ＭＭＵ２２から供給される特権レベル情報（今回のＤＭＡ転送処理の特権レベル情報）の値と一致するか否かを判定する。これはＤＭＡコントローラ７２内に設けられるＩＤ比較器７２ａにより実行される。アクセスＩＤレジスタ７３のアクセスＩＤの値が、ＭＭＵ２２から供給されるアクセスＩＤの値と一致すると、ＤＭＡコントローラ７２はＤＭＡ転送処理及び復号化処理を実行し、復号化した情報をローカルメモリ２５に書き込む。
【００５２】
このような構成とすることで、ＤＭＡ転送処理の起動を要求したプログラム（プロセス）の特権レベルが、当初設定した特権レベル（前回のＤＭＡ転送処理を要求したプログラム（プロセス）の特権レベル）と異なる場合には、その要求されたＤＭＡ転送処理（即ちローカルメモリ書き込み処理）を禁止することができる。異なる特権レベル情報ではＤＭＡ転送処理を起動できない状態は、Ｓビットレジスタ７３の内容をクリアするまで続くことになる。
【００５３】
なお特権レベル情報が一致するか否かでＤＭＡ転送処理の起動の可否を決定するのではなく、特権モード（スーパーバイザモード）には無条件でＤＭＡ転送処理の起動可能な権限を与えるように構成してもよい。この場合、ＤＭＡ転送処理の起動を要求したプログラムの特権レベルが特権モードであれば、当初設定した特権レベルがユーザモードであるか特権モードであるかに関わらずＤＭＡ転送処理の起動可能となる。このようにしてセキュアＤＭＡ２３の第２の実施例では、特権レベル情報に基づいて違法なローカルメモリ書き込み処理を禁止することにより、情報の保護に関して更に安全性を向上させることができる。
【００５４】
図７は、セキュアＤＭＡ２３の第３の実施例の構成を示す図である。図７のセキュアＤＭＡ２３は、共通鍵処理部８１、ＤＭＡ制御部８２、コマンドデコーダ８３、公開鍵演算部８４、公開鍵暗号化情報レジスタ８５、共通鍵レジスタ８６、及び秘密鍵レジスタ８７を含む。このセキュアＤＭＡ２３の第３の実施例では、暗号化側においては共通鍵を公開鍵により暗号化し、セキュアＤＭＡ２３側においては暗号化された共通鍵を秘密鍵で復号化することにより、安全に共通鍵を共有し、これにより共通鍵を利用した情報の暗号化・復号化を可能にする。
【００５５】
共通鍵処理部８１は、共通鍵を用いた暗号化処理及び復号化処理を実行する。この共通鍵処理部８１が使用する共通鍵（Ｋ）は、共通鍵レジスタ８６に格納されている。ＤＭＡ制御部８２は、ＤＭＡ転送処理を実行する。コマンドデコーダ８３は、外部から供給されるコマンドをデコードする。このデコード結果に応じて、共通鍵処理部８１による暗号化処理及び復号化処理、ＤＭＡ制御部８２によるＤＭＡ転送処理が実行される。
【００５６】
公開鍵暗号化情報レジスタ８５は、公開鍵により暗号化された共通鍵Ｋを格納する。この暗号化された共通鍵Ｋは、セキュアプロセッサ１０外部の例えばメモリ１２に格納されており、これをＤＭＡ転送処理の開始前にセキュアＤＭＡ２３に取り込み、公開鍵暗号化情報レジスタ８５に格納する。公開鍵演算部８４は、上記公開鍵に対応する秘密鍵を用いて、暗号化された共通鍵Ｋを復号化（解読）して、平文の共通鍵Ｋを生成する。生成された平文の共通鍵Ｋは、共通鍵レジスタ８６に格納される。なお共通鍵を復号化するための秘密鍵は、秘密鍵レジスタ８７に内部鍵として格納されており、セキュアＤＭＡ２３外部に流出しないように管理される。
【００５７】
図８は、第３の実施例のセキュアＤＭＡ２３を使用する場合の情報の流れを説明するための図である。図８において、情報源９０は、例えば他のシステムで実行されるプログラムであってよく、又は他のシステムそのものであってもよい。情報源９０は、ターゲットファイル９１、暗号鍵Ｋ、公開鍵Ｐを有する。ターゲットファイル９１は、機密情報であり、外部から解読されることのないように、安全な暗号化手法により保護されるべき情報である。
【００５８】
情報源９０のターゲットファイル９１は、情報源９０が指定した暗号鍵（共通鍵）Ｋにより暗号化される（ステップＳ１）。この暗号化処理により、暗号鍵（共通鍵）Ｋにより暗号化された暗号化ターゲットファイル９２が生成される。また情報源９０が指定した暗号鍵（共通鍵）Ｋは、一般に公開されている公開鍵Ｐにより暗号化される（ステップＳ２）。この暗号化処理により、公開鍵Ｐにより暗号化された暗号化共通鍵９３が生成される。
【００５９】
暗号化ターゲットファイル９２と暗号化共通鍵９３は、例えば図１に示されるＲＯＭ１１、メモリ１２、或いはＨＤＤ１３等の情報記憶部９４に格納される。
【００６０】
セキュアプロセッサ１０は、情報記憶部９４に格納された暗号化共通鍵９３を取り込んで、公開鍵暗号化情報レジスタ８５に格納する。公開鍵暗号化情報レジスタ８５に格納された暗号化共通鍵９３は、公開鍵演算部８４により解読されて、平文の共通鍵Ｋが生成される。この解読処理は、情報源９０側で共通鍵Ｋの暗号化に使用した公開鍵Ｐと対であり、秘密鍵レジスタ８７に格納されている秘密鍵Ｓを用いて実行される。生成された平文の共通鍵Ｋは、共通鍵レジスタ８６に格納される。
【００６１】
セキュアプロセッサ１０は更に、ＤＭＡ制御部８２によるＤＭＡ転送処理により、情報記憶部９４に格納される暗号化ターゲットファイル９２を読み出して、共通鍵処理部８１に供給する。共通鍵処理部８１は、共通鍵レジスタ８６の格納される共通鍵Ｋを用いて復号化処理を実行し、平文のターゲットファイル９１を生成する。このようにして復号化されたターゲットファイル９１は、ＤＭＡ制御部８２によるＤＭＡ転送処理により、ローカルメモリ２５に転送され書き込まれる。
【００６２】
このようにして公開鍵の対となる秘密鍵はセキュアＤＭＡ２３内部で保持し、外部に流出しない構造とする。またＤＭＡ転送の対象となる情報を暗号化・復号化するための共通鍵は、公開鍵にて暗号化された状態でのみ外部に流通する。従って、共通鍵を外部で解読することは略不可能であり、共通鍵で暗号化された情報の機密性を守ることができる。
【００６３】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００６４】
【図１】本発明によるセキュアプロセッサを用いたシステムの構成を示す図である。
【図２】メインメモリ、キャッシュメモリ、及びローカルメモリの関係を示す図である。
【図３】ＭＭＵ及びローカルメモリの第１の実施例の構成を示す図である。
【図４】ＭＭＵ及びローカルメモリの第２の実施例の構成を示す図である。
【図５】セキュアＤＭＡの第１の実施例の構成を示す図である。
【図６】セキュアＤＭＡの第２の実施例の構成を示す図である。
【図７】セキュアＤＭＡの第３の実施例の構成を示す図である。
【図８】第３の実施例のセキュアＤＭＡを使用する場合の情報の流れを説明するための図である。
【符号の説明】
【００６５】
１０  セキュアプロセッサ
１１  ＲＯＭ
１２  メモリ
１３  ＨＤＤ
１４  外部命令・データバス
１５  外部アドレスバス
２１  実行部
２２  ＭＭＵ
２３  セキュアＤＭＡ
２４  キャッシュメモリ
２５  ローカルメモリ
２６  バス・インターフェース
【図１】
2006350782.tif 000003
【図２】
2006350782.tif 000004
【図３】
2006350782.tif 000005
【図４】
2006350782.tif 000006
【図５】
2006350782.tif 000007
【図６】
2006350782.tif 000008
【図７】
2006350782.tif 000009
【図８】
2006350782.tif 000010