説明

システムLSI

【課題】機密性の高い処理に用いる命令コードやデータを隠蔽することができるシステムLSIを実現する。
【解決手段】本発明のシステムLSIは、機密性の高い処理を行うプロセッサ21と、プロセッサ21が接続されるオンチップバス12と、プロセッサ21が処理した機密性の高いデータを記憶する作業メモリ22と、オンチップバス12と作業メモリ22の間に接続され、オンチップバス12と作業メモリ22とのデータ転送がプロセッサ21により制御されるメモリインターフェース回路23を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機密性の高い処理を行うシステムLSIに関する。
【背景技術】
【0002】
システムLSIでは、その用途によってはシステムLSI内のプロセッサやIP(特定の処理を行う回路モジュール。)の動作を隠蔽する必要があるものが存在する。特に、暗復号化処理等の機密性の高い処理を要するシステムLSIでは、機密性の高い処理を行うプロセッサの処理を解析されるのを避ける必要がある(例えば、「特許文献1」を参照。)。また、機密性の高い処理を行う際に用いるデータの扱い方にも注意を要する。例えば、メインプロセッサに加え、専用の暗復号化処理回路を有する従来のシステムLSIでは、暗復号化処理に関するアルゴリズムが記述された命令コードや、暗復号化処理に用いる鍵データ等の機密データは、暗復号化回路内のローカルメモリに記憶するか、システムLSIの汎用メモリに記憶させ、メインプロセッサにアクセスさせる方法が主流であった。
【0003】
しかしながら、前者の方法では、メインプロセッサの暗復号化回路内部へのアクセスを要するため、セキュリティ上好ましくないという問題があった。また、汎用メモリに機密データを記憶させる後者の手法では、どの回路モジュールからも機密データにアクセス可能になるため、同様のセキュリティ上の問題があった。さらに、デバッグ時においては、暗復号化処理で用いられる機密データを保護するためには、暗復号化処理回路の処理内容を通常のデバッガで解析されない工夫を施す必要があるという問題があった。
【特許文献1】特開2002−358137号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明は、機密性の高い処理に用いる命令コードやデータを隠蔽することができるシステムLSIを提供する。
【課題を解決するための手段】
【0005】
本発明の一態様によれば、機密性の高い処理を行うプロセッサと、前記プロセッサが接続されるオンチップバスと、前記プロセッサが処理した機密性の高いデータを記憶する作業メモリと、前記オンチップバスと前記作業メモリの間に接続され、前記オンチップバスと前記作業メモリとのデータ転送が前記プロセッサにより制御されるメモリインターフェース回路を有することを特徴とするシステムLSIが提供される。
【発明の効果】
【0006】
本発明によれば、機密データを隠蔽することができるので、高いセキュリティを実現することができる。
【発明を実施するための最良の形態】
【0007】
以下、図面を参照しながら、本発明の実施例を説明する。
【実施例】
【0008】
図1は、本発明の実施例に係わるシステムLSIを示す回路ブロック図である。ここでは、主に、暗復号化処理等の機密性の高い処理にかかわる部分を示した。
【0009】
本発明の実施例に係わるシステムLSIは、オンチップバスとしてのメインバス11およびサブバス12(以下、メインバス11またはサブバス12を「オンチップバス」とも言う。)、メインプロセッサ13、メインメモリ14、2つのデバッグインターフェース回路15および16(以下、「Debug-I/F15および16」という。)、特定の処理を実行する2つの回路モジュール17および18(以下、「IP17および18」という。)、IP17のモジュールインターフェース回路19(以下、「IP-I/F19」という。)、IP18のモジュールインターフェース回路20(以下、「IP-I/F20」という。)、サブプロセッサ21、作業メモリ22、作業メモリ22のインターフェース回路23(以下、「SRAM-I/F23」という。)、およびメインバス11とサブバス12とを接続するバスブリッジ24を備えている。
【0010】
メインプロセッサ13、メインメモリ14、Debug-I/F15のそれぞれの入出力はメインバス11に接続され、IP17の入出力はIP-I/F19の第1の入出力に接続され、IP-I/F19の第2の入出力はメインバス11に接続され、バスブリッジ24の第1の入出力はメインバス11に接続されている。
【0011】
サブプロセッサ21の入出力はサブバス12に接続され、作業メモリ22の入出力はSRAM-I/F23の第1の入出力に接続され、SRAM-I/F23の第2の入出力はサブバス12に接続され、Debug-I/F16の入出力はサブバス12に接続され、IP18の入出力はIP-I/F20の第1の入出力に接続され、IP-I/F20の第2の入出力はサブバス12に接続され、バスブリッジ24の第2の入出力はサブバス12に接続されている。
【0012】
Debug-I/F15は、システムLSI全体のデバッグ時に、ICE(In Circuit Emulator)に代表されるデバッガが接続されるインターフェース回路である。
【0013】
Debug-I/F16は、サブプロセッサ13のデバッグに用いられる専用ICEが接続されるインターフェース回路である。
【0014】
IP-I/F19、20は、オンチップバスとIP17、18を接続するインターフェース回路であり、デバッグ時には必要に応じてオンチップバスとIP17、18の接続を遮断できるようになっている。このIP-I/F19、20における制御の詳細は図4を用いて後述する。
【0015】
サブプロセッサ21は、暗復号化処理等の機密性の高い処理を行う専用のプロセッサである。
【0016】
作業メモリ22は、サブプロセッサ21が暗復号化処理等を行う際に用いられる専用メモリであり、SRAMが使用されている。
【0017】
SRAM-I/F23は、作業メモリ22とサブバス12を接続するインターフェース回路であり、必要に応じて作業メモリ22とサブバス12の接続を遮断できるようになっている。このSRAM-I/F23における制御の詳細は、図2および図3を用いて後述する。
【0018】
バスブリッジ24は、メインバス11とサブバス12間でプロトコルを変換してデータ転送を行う回路であり、デバッグ時には必要に応じてメインバス11とサブバス12の接続を遮断できるようになっている。このバスブリッジ24における制御の詳細は図4を用いて後述する。
【0019】
図2は、本発明の実施例に係わるシステムLSIにおけるSRAM-I/F23の制御方法を示す回路ブロック図である。
図2に示したように、サブプロセッサ21には、サブプロセッサ21内で処理されるデータを格納するローカルメモリ31、およびSRAM-I/F23を制御するための制御レジスタ32が備わっている。SRAM-I/F23と制御レジスタ32は、直接配線によってハードウエアで接続されている。
【0020】
図3は、本発明の実施例に係わるシステムLSIにおける別のSRAM-I/F23の制御方法を示す回路ブロック図である。
図3に示したように、この制御方法では、サブプロセッサ21内で処理されるデータを格納するローカルメモリ33がサブプロセッサ21に備えられ、SRAM-I/F23を制御するための制御レジスタ34がSRAM-I/F23に備えられている。
【0021】
図4は、本発明の実施例に係わるシステムLSIにおけるデバッグ時の制御方法を示す回路ブロック図である。
図4に示したように、Debug-I/F15の出力はデバッグモード信号41としてIP-I/F19の入力、IP-I/F20の入力、およびバスブリッジ24の入力にそれぞれ接続されている。デバッグモード信号41は、デバッグ時にIP17、IP18、およびサブバス12を必要に応じて隠蔽する。
【0022】
次に、上述した構成を持つシステムLSIの動作について説明する。
まず、サブプロセッサ21を用いた暗復号化処理におけるデータ隠蔽手法について説明する。
【0023】
サブプロセッサ21は、メインプロセッサ13からの復号化処理コマンドをバスブリッジ24を経由して、サブバス12より受け取る。サブプロセッサ21は復号化処理を行う暗号データを取得するため、バスブリッジ24を介してメインメモリ14にアクセスする。
【0024】
暗号データはバスブリッジ24を介してサブプロセッサ21内のローカルメモリ31または33に書き込まれる。サブプロセッサ21内は、外部のモジュールからアクセス不可能であるため、サブプロセッサ21は復号化処理をサブプロセッサ21内で行い、復号された機密データをサブバス12経由で作業メモリ22に書き込む。
【0025】
暗復号化処理の際に生成される機密データは作業メモリ22で記憶される。その際、サブプロセッサ21以外のモジュールによる機密データへのアクセスを禁止するため、サブプロセッサ21は、唯一SRAM-I/F23を制御する制御レジスタ32または34を設定する機能を有する。
【0026】
メインプロセッサ13は、処理済みの機密データを取得する際、バスブリッジ24を経由してサブプロセッサ21へSRAM-I/F23を開くよう指示するための特定のコマンドを送信する。
【0027】
特定のコマンドを受信したサブプロセッサ21は、サブプロセッサ21内に備わる制御レジスタ32にアクセスを許可する値を書き込むことで、SRAM-I/F23を開いて作業メモリ22へのアクセスを可能にする。(図2の制御方法)
または、特定のコマンドを受信したサブプロセッサ21は、サブバス12経由でSRAM-I/F23の制御レジスタ34にアクセスを許可する値を書き込むことで、SRAM-I/F23を開いて作業メモリ22へのアクセスを可能にする。(図3の制御方法。)
前者の制御方法では、SRAM-I/F23の制御はサブプロセッサ21のみに限られるが、外部から制御レジスタ32が見えることがないため安全である。
【0028】
後者の制御方法では、サブプロセッサ21およびSRAM-I/F23が直接結線されていないため、互いに依存関係のない個別のモジュールとして実装することができる。また、制御レジスタ34の仕様を非公開にするか、制御レジスタ34へのアクセスに特別な手順を設けることにより、サブプロセッサ21以外のモジュールが制御レジスタ34へアクセスすることを制限する。
【0029】
上記の手続きの結果、つまり、図5に示したように、制御レジスタ32が正しく設定されている(ST51)、または、制御レジスタ34が正しく設定されている(ST52)場合に(“true”)、SRAM-I/F23が開いて(ST53)メインプロセッサ13から作業メモリ22までのデータパスが有効になる。すなわち、メインプロセッサ13はSRAM-I/F23を通じて機密データにアクセスすることが可能になる。
【0030】
もし、制御レジスタ32および34がともに正しく設定されていなければ(“false”)、SRAM-I/F23は閉じられており、メインプロセッサ13が作業メモリ22にアクセスすることはできない。
【0031】
メインプロセッサ13による機密データの処理が終了した後、SRAM-I/F23へのアクセスを再び制限するため、メインプロセッサ13はサブプロセッサ21にSRAM-I/F23を制御するための特定のコマンドを送信する。特定のコマンドを受けたサブプロセッサ21は、制御レジスタ32または34を初期化するよう設定することによって、作業メモリ22へのアクセスを再び制限する。
【0032】
次に、デバッグ時の動作について説明する。
サブプロセッサ21以外のモジュールのデバッグは、メインバス11に接続されたDebug-I/F15を使用することで実現される。
【0033】
デバッグにおける各回路の動作の隠蔽方法には、大きく分けて、IPごとに動作を隠蔽する方法と、バスブリッジ24に接続されるバス単位で動作を隠蔽する方法の2通りがある。 デバッグ時において、IP17およびIP18の動作を隠蔽したい場合には、各IPとオンチップバス間に接続されたIP-I/F19およびIP-I/F20を、Debug-I/F15からのデバッグモード信号41を用いて制御し、各IPへのアクセスを制限する。
【0034】
バスブリッジ24を制御して、サブバス12に接続された全てのモジュールをバス単位で隠蔽したい場合には、Debug-I/F15にデバッガ(ICE等)が接続された際に、Debug-I/F15からのデバッグモード信号41を用いてバスブリッジ24を制御する。
【0035】
すなわち、バスブリッジ24はサブバス12がアクセス不能であることを疑似的に返し、これにより、サブバス12に接続されているIP18、サブプロセッサ21、および作業メモリ22はDebug-I/F15に接続されたデバッガからは参照できなくなる。
【0036】
したがって、暗復号化処理を行うサブプロセッサ21が処理を行う際、サブプロセッサ21、作業メモリ22間の転送データはDebug-I/F15に接続されたデバッガからは参照できなくなる。このため、サブプロセッサ21が扱う機密データをデバッグ時に隠蔽することができる。
【0037】
一方、サブプロセッサ21のデバッグは、サブバス12に接続されているサブプロセッサ21専用のデバッガを接続するDebug-I/F16を用いることで実現される。サブプロセッサ21専用デバッガによるサブプロセッサ21のデバッグは、専用デバッガを有効にするセキュアな手続きを設けることにより、安全性を確保することができる。
【0038】
このように、暗復号化処理で用いられる機密データを保持する専用の作業メモリ22を設け、さらに、サブバス12と作業メモリ22間にSRAM-I/F23を設け、サブプロセッサ21のみがSRAM-I/F23を制御できるようにしている。これにより、暗復号化処理を行うサブプロセッサ21が許した場合のみ、他のモジュールが作業メモリ22の保持する機密データへアクセスできるよう制御している。このため、メインメモリ14に機密データを書き込まなくてはならない危険性を回避でき、作業メモリ22内に保持される機密データを保護することが可能となる。
【0039】
また、上記の構成により、メインプロセッサ13がサブプロセッサ21内にアクセスする必要がなくなる。したがって、サブプロセッサ21内を他のモジュールからアクセス不可能なモジュールとして設計でき、暗復号化処理等の機密性の高い処理を行う際の安全性向上が可能になる。
【0040】
さらに、デバッグ時においては、Debug-I/F15にデバッガを接続してデバッグを行う際、Debug-I/F15が出力するデバッグモード信号41を用い、IP17、IP18へのアクセスを制御するIP-I/F19、IP-I/F20、およびメインバス11とサブバス12間を接続するバスブリッジ24を制御している。これにより、デバッグ動作時に各IP単位での処理の隠蔽が可能となり、また、サブバス12に接続されたモジュール群の動作およびデータがバス単位で隠蔽可能になる。
【0041】
上記実施例によれば、機密性の高い命令コードやデータを隠蔽することができるので、システムLSIにおける高いセキュリティを実現することができる。
【0042】
また、上記実施例によれば、暗復号化処理などでの機密データを保持する作業メモリ22へのセキュアなデータアクセスおよびセキュアなデバッグを実現することができる。
【0043】
さらに、上記実施例によれば、デバッグ時において、隠蔽したい処理およびデータをIP(回路モジュール)単位で保護することができる。
【0044】
さらに、上記実施例によれば、デバッグ時において、機密処理を行うプロセッサやIPの動作および処理に用いたデータをオンチップバス単位で隠蔽することができる。
【図面の簡単な説明】
【0045】
【図1】本発明の実施例に係わるシステムLSIを示す回路ブロック図。
【図2】本発明の実施例に係わるシステムLSIにおけるSRAM-I/F23の制御方法を示す回路ブロック図。
【図3】本発明の実施例に係わるシステムLSIにおける別のSRAM-I/F23の制御方法を示す回路ブロック図。
【図4】本発明の実施例に係わるシステムLSIにおけるデバッグ時の制御方法を示す回路ブロック図。
【図5】本発明の実施例に係わるシステムLSIにおけるデバッグ時の制御方法を示すフロー図。
【符号の説明】
【0046】
11 メインバス
12 サブバス
13 メインプロセッサ
14 メインメモリ
15、16 デバッグインターフェース回路(Debug-I/F)
17、18 回路モジュール(IP)
19、20 モジュールインターフェース回路(IP-I/F)
21 サブプロセッサ
22 作業メモリ
23 メモリインターフェース回路(SRAM-I/F)
24 バスブリッジ
31、33 ローカルメモリ
32、34 制御レジスタ
41 デバッグモード信号

【特許請求の範囲】
【請求項1】
機密性の高い処理を行うプロセッサと、
前記プロセッサが接続されるオンチップバスと、
前記プロセッサが処理した機密性の高いデータを記憶する作業メモリと、
前記オンチップバスと前記作業メモリの間に接続され、前記オンチップバスと前記作業メモリとのデータ転送が前記プロセッサにより制御されるメモリインターフェース回路を有することを特徴とするシステムLSI。
【請求項2】
前記プロセッサは前記メモリインターフェース回路を制御するための制御レジスタを備え、前記メモリインターフェース回路を制御する信号は前記制御レジスタから前記メモリインターフェース回路への直接配線で伝達されることを特徴とする請求項1に記載のシステムLSI。
【請求項3】
前記メモリインターフェース回路は前記オンチップバスとのデータ転送を制御するための制御レジスタを備え、前記制御レジスタの値は前記プロセッサにより設定されることを特徴とする請求項1に記載のシステムLSI。
【請求項4】
デバッグ時にデバッガが接続されるデバッグインターフェース回路と、
前記デバッグインターフェース回路が接続される別のオンチップバスと、
前記オンチップバスと前記別のオンチップバスとを接続するバスブリッジをさらに備え、
前記バスブリッジにおけるデータ転送が前記デバッグインターフェース回路からのデバッグモード信号によって制御されることを特徴とする請求項1に記載のシステムLSI。
【請求項5】
特定の処理を行う回路モジュールと、
前記オンチップバスまたは前記別のオンチップバスと前記回路モジュールとの間に接続され、前記オンチップバスまたは前記ペツノ音チップバスと前記回路モジュールとのデータ転送が前記デバッグモード信号により制御されるモジュールインターフェース回路をさらに有することを特徴とする請求項4に記載のシステムLSI。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2010−67089(P2010−67089A)
【公開日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願番号】特願2008−233943(P2008−233943)
【出願日】平成20年9月11日(2008.9.11)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】