説明

システムLSI及びこのデバッグ方法

【課題】セキュリティ機能の優れるシステムLSI及びこのデバッグ方法を実現する。
【解決手段】システムLSI10は、演算制御機能を有するメインプロセッサ11と、演算及び制御機能を有するICカード20を用いた認証機能を有するサブプロセッサ13及びICカードI/F回路13aと、サブプロセッサ13により制御されるJTAG接続制御回路14と、デバッガ30に対するシリアル通信のインタフェース機能を有するオンチップJTAGインタフェース回路15等とを備えている。サブプロセッサ13が立ち上がって認証を行った後に、メインプロセッサ11が起動して、デバッガ30により、オンチップJTAGインタフェース回路15を介してシステムLSIのデバッグが行われる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オンチップデバッグを実現するオンチップJTAG(Joint Test Action Group)インタフェース回路、及びこのJTAGインタフェース回路を用いて内部回路の挙動の不正取得を防止するためのセキュリティ機能を有するシステムLSI(Large Scale Integrated circuit) と、このシステムLSIのデバッグ方法に関し、特に、IC(Integrated Circuit)カードを用いた認証を行い、システムLSIにおけるオンチップJTAGインタフェース回路の接続制御を行う技術に関するものである。
【背景技術】
【0002】
近年、電子商取引等あらゆる分野で、よりセキュリティの高いシステムLSIが求められている。システムLSIとは、組み込みシステム製品の中核をなすマイクロコントローラのことである。特に、逆解析(リバースエンジニアリング)を用いて、システムLSIの内部回路の挙動を解析し、システムLSIを用いた装置の開発者の不本意な用途に悪用されることがある。このため、システムLSIの解析機能を悪用されないことが求められている。
【0003】
このようなセキュリティ機能を有するシステムLSIに関する技術は、例えば、下記の特許文献1〜4に開示されている。
【0004】
特許文献1には、JTAGインタフェース回路において、この開発時に、JTAGインタフェース回路を有効にし、運用時に、電子フューズ等の物理的な手段で、JTAGインタフェース回路を切断することで、JTAGインタフェース回路を無効にして、不正な第3者の逆解析を防止する技術が開示されている。
【0005】
特許文献2には、中央処理装置(以下「CPU」という。)等を有するマイクロコンピュータ(以下「マイコン」という)のプログラム及びこのプログラムを格納したメモリの内容の変更に関し、認証用のICカードを用いてこのICカードが認証された場合にメモリ内のプログラムの変更を行うことが開示されている。
【0006】
特許文献3には、マイコン内の情報を解析、改竄されないように、SDメモリカードに識別情報を持たせ、この識別情報によってリードライト装置で認証された場合に、マイコン内のプログラムのデバッグを行うことが開示されている。デバッグとは、デバッガに接続されたマイコン等をこの内部のプログラムやデータを用いて動作させることでプログラムのバグを見つけて修正することであり、このデバッグを行うツール(即ち、デバッグを支援するプログラム)がデバッガである。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許第3760087号公報
【0008】
【特許文献2】特開2002−24046号公報
【0009】
【特許文献3】特開2007−72957号公報
【0010】
【特許文献4】特開2004−94451号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、例えば、特許文献1〜3に開示された従来の技術では、以下の(a)〜(c)のような課題があった。
【0012】
(a) 特許文献1
特許文献1の技術では、運用時に、物理的にJTAGインタフェース回路を無効にし、不正な第3者が、システムLSIの解析をできないようにしている。しかし、正規のユーザがフィールドバグ等でシテムLSIの解析を行う必要がある場合も、解析することができない。そこで、この代替方法として、開発用のシステムLSIを用いて解析を行っているが、運用環境との違い等から解析が困難である。又、システムLSIの開発者側は、物理的に異なる2種類のシステムLSIを用意する必要があり、コストアップ要因にもなっている。
【0013】
(b) 特許文献2
特許文献2の技術は、ICカードを用いてこのICカードが認証された場合に、プログラム変更等を行っている。しかし、この技術は、完成されたマイコン製品に対して更なるバージョンアップ等の行為を行うためにICカードの認証を行い、この認証後に、マイコンに接続された外部装置からデータを受信してメモリ内容を変更するようになっている。そのため、この技術を用いて、マイコン製品の完成前に、確認等のためのプログラムのデバッグを行うことができない。
【0014】
(c) 特許文献3
特許文献3の技術では、SDメモリカードに持たせた識別情報によってリードライト装置で認証を行い、認証結果をマイコンに通知することで、マイコン内のプログラムのデバッグを行うようになっているので、マイコン内で承認を行うとともにオンチップデバッグを実現する構成ではなく、リードライト装置からマイコンへ送受信される認証済みのデータを解析され、またこの解析結果をもとにデバッグ情報をも解析されてしまう可能性が高い。
【0015】
従って、未だ技術的に十分満足できるオンチップデバッグで且つセキュリティ機能の優れたシステムLSI及びこのデバッグ方法を実現することが困難であった。
【0016】
本発明は、このような従来の課題を解決し、ICカード認証を利用したセキュリティ機能の優れるデバッグ認証技術と、JTAGインタフェース手段を有するシステムLSIを開発時と運用時で物理的に同一なものとし、不正な第3者の解析を防止しつつ、正規のユーザにはデバッグ機能を提供できるシステムLSI及びこのデバッグ方法を実現することを目的とする。
【課題を解決するための手段】
【0017】
本発明のシステムLSIは、演算及び制御機能を有するICカードを用いた認証手段と、外部のデバッグ手段に対するシリアル通信のインタフェース機能を有するJTAGインタフェース手段と、前記認証手段による認証を受けた後に前記デバッグ手段に対する前記JTAGインタフェース手段の接続制御を行う制御手段とを有することを特徴とする。
【0018】
本発明のシステムLSIのデバッグ方法は、演算制御機能を有するメインプロセッサと、演算及び制御機能を有するICカードを用いた認証機能を有するサブプロセッサと、外部のデバッグ手段に対するシリアル通信のインタフェース機能を有するJTAGインタフェース手段と、を備えたシステムLSIのデバッグ方法であって、前記サブプロセッサが立ち上がって認証を行った後に、前記メインプロセッサが起動して、前記デバッグ手段により、前記JTAGインタフェース手段を介して前記システムLSIのデバッグを行うことを特徴とする。
【発明の効果】
【0019】
本発明のシステムLSI及びこのデバッグ方法によれば、ICカードを用いた認証を行った後に、JTAGインタフェースを有効にしてデバッグを行うようにしたので、セキュリティ機能の優れるシステムLSI及びこのデバッグ方法を実現できる。これにより、JTAGインタフェース手段を有するシステムLSIを、開発時と運用時で物理的に同一なものとし、不正な第3者の解析を防止しつつ、正規のユーザにはデバッグ機能を提供できる。
【図面の簡単な説明】
【0020】
【図1】本発明の実施例1におけるシステムLSI及びこの外部装置を示す概略の構成図である。
【図2】図1のシステムLSIにおける認証プロセスの動作を示すフローチャートである。
【図3】図2中の端末認証ステップST1のシーケンス動作を示す図である。
【図4】図2中のカード認証ステップST3のシーケンス動作を示す図である。
【図5】図2中の動作モード認証ステップST5のシーケンス動作を示す図である。
【発明を実施するための形態】
【0021】
本発明を実施するための形態は、以下の好ましい実施例の説明を添付図面と照らし合わせて読むと、明らかになるであろう。但し、図面はもっぱら解説のためのものであって、本発明の範囲を限定するものではない。
【実施例1】
【0022】
(実施例1の構成)
図1は、本発明の実施例1におけるシステムLSI及びこの外部装置を示す概略の構成図である。
【0023】
本実施例1のシステムLSI10は、ICカード認証を利用したセキュリティ機能を有する集積回路であり、マイコン等で構成された演算制御機能を有するメインプロセッサ11と、フラッシュメモリ等の認証鍵用メモリ12と、ICカードインタフェース手段であるICカードインタフェース回路(以下「ICカードI/F回路」という。)13aを有し、マイコン等で構成された演算機能を有するサブプロセッサ13と、このサブプロセッサ13により制御される制御手段(例えば、JTAG接続制御回路)14と、このJTAG接続制御回路14により制御されるJTAGインタフェース手段(例えば、オンチップJTAGインタフェース回路)15等とを備え、これらがシステムバス16等により接続されている。サブプロセッサ13及びICカードI/F回路13aにより、認証手段が構成されている。
【0024】
メインプロセッサ11は、例えば、これが動作する前に、サブプロセッサ13が動作し、認証プロセスが完了するまでこのメインプロセッサ11が動作しない構成になっている。サブプロセッサ13は、認証プロセスを制御し、例えば、パスワードの認証に用いられる方式の1つであるISO7816−4規格に準拠したチャレンジアンドレスポンス(Challenge & Response)方式による認証機能を持ち、基板内にCPU及びメモリ等を内蔵したICカード20との通信は、例えば、ISO7816−3規格に準拠し、ICカードI/F回路13aを通じてICカード20と通信を行う構成になっている。更に、サブプロセッサ13では、認証プロセスで正規の認証が行われた場合に、JTAG接続制御回路14に対してJTAG接続を許可し、不正の認証の場合は、JTAG接続制御回路14に対してJTAG接続を許可しない機能を有している。
【0025】
メインプロセッサ チャレンジアンドレスポンス方式とは、サーバから送られてくる暗号鍵(チャレンジ)を受け取り、これに演算処理を組み合わせたデータ(レスポンス)を返すことによって認証を行う方式である。この方式では、先ず、サーバ(例えば、システムLSI10)がクライアント(例えば、ICカード20)に対して「チャレンジ」と呼ばれる値を送る。チャレンジを受け取ったクライアントは、チャレンジの値にそれぞれ保有しているパスワード(例えば、共通鍵)を掛け合わせて演算処理を行い、この演算処理により生成されたハッシュ値(例えば、暗号文)を「レスポンス」として返す。サーバは、クライアントから返送されてきたハッシュ値と、サーバ自身が生成したレスポンスとを照合し、2つのレスポンスの値が一致していれば認証を通す。チャレンジアンドレスポンス方式の利点は、チャレンジとして送られてくる値が毎回ランダムな値で変更され、生成されるレスポンスの値も毎回異なるので、仮に、チャレンジやレスポンスが第3者に不正取得されたとしても、認証上の致命的な問題が生じない。
【0026】
メインプロセッサ 本実施例1では、チャレンジアンドレスポンス方式による認証のため、例えば、システムLSI10とICカード20とは、2つの共有鍵Ka,Kmを保持している。更に、システムLSI10の認証鍵用メモリ12には、アクセス可能なICカード20のシリアル番号SDBが、セキュリティが確保された環境で予め保持されると共に、ICカード20にも、内部のメモリのデータ領域にユニークなシリアル番号Snと共有鍵Kbを保持している。即ち、システムLSI10側の認証鍵用メモリ12には、2つの共有鍵Ka,Kmとアクセス可能なICカード20のシリアル番号SDBとがデータベースとして保持され、ICカード20内のメモリにも、3つの共有鍵Ka,Kb,Kmとユニークなシリアル番号Snとが保持されている。
【0027】
メインプロセッサ オンチップJTAGインタフェース回路15は、例えば、認証後、JTAG接続制御回路14によってデバッグ手段(例えば、デバッガ)30との接続が許可されると、IEEE1149.1規格に準拠したシリアル通信をデバッガ30との間で行う機能を有している。デバッガ30は、オンチップJTAGインタフェース回路15を介して、メインプロセッサ11を動作させ、プログラムのデバッグを行う機能を有している。
【0028】
メインプロセッサ (実施例1のデバッグ方法)
本実施例1のシステムLSI10におけるデバッグ方法では、以下のような認証プロセス(認証プロセス動作(1)、端末認証シーケンス(2)、カード認証シーケンス(3)、動作モードシーケンス(4))を実行した後、デバッガ30によるプログラムのデバッグ処理(5)が行われる。
【0029】
メインプロセッサ (1) 認証プロセス動作
図2は、図1のシステムLSI10における認証プロセスの動作を示すフローチャートである。
【0030】
メインプロセッサ システムLSI10における認証プロセスは、このシステムLSI10内に格納された認証プログラムに従い、サブプロセッサ13の動作により、以下の3段階[端末認証(ステップST1)、カード認証(ステップST3)、動作モード認証(ステップST5)]の認証を行う。
【0031】
動作が開始(START)されると、サブプロセッサ13が立ち上がり、システムLSI10の真正性の確認のために端末認証を行い(ステップST1)、端末認証されたか否かを判定し(ステップST2)、認証されなければ(NG)、不正な認証と判定し(ステップS8)、認証動作を終了(END)する。
【0032】
先ず、ステップS1で端末認証されれば(OK)、サブプロセッサ13は、次に、ICカード20の真正性の確認のためにカード認証を行い(ステップST3)、カード認証されたか否かを判定し(ステップST4)、認証されなければ(NG)、不正な認証と判定して認証動作を終了する(ステップST8)。
【0033】
ステップS4でカード認証されれば、サブプロセッサ13は、最後の動作モード認証を行い(ステップST5)、動作モード認証されたか否かを判定し(ステップST6)、認証されなければ(NG)、不正な認証と判定して認証動作を終了する(ステップST8)。
【0034】
ステップST6で動作モード認証が正規の認証であれば(OK)、サブプロセッサ13は、JTAG接続有効と判定し(ステップST7)、JTAG接続制御回路14に対してJTAG接続を許可し、認証動作を終了する。なお、サブプロセッサ13は、認証プロセスの実動作中も他の動作を行うため、認証が終わった段階で休止状態になることはない。
【0035】
その後、JTAG接続制御回路14によってチップオンJTAGインタフェース回路15がオン状態になり、デバッガ30によるデバッグが行われる。
【0036】
(2) 端末認証シーケンス
図3は、図2中の端末認証ステップST1のシーケンス動作を示す図である。
【0037】
端末認証は、システムLSI10内の認証鍵用メモリ12とICカード20とで共有鍵Kaを保持し、例えば、ISO7816−4規格に準拠したチャレンジアンドレスポンス方式による認証を行う。
【0038】
先ず、システムLSI10内のサブプロセッサ13は、ICカードI/F回路13aを介して、例えば、ISO7816−3規格に準拠したシリアル通信により、ICカード20ヘ取得チャレンジ命令(GET CHALLENGEコマンド)のチャレンジS1を送信する。
【0039】
ICカード20は、チャレンジS1を受信すると、乱数生成処理ST1−21により乱数Raを生成し、受信したチャレンジS1に対する応答として、その乱数Raのレスポンス(Res(Ra))S2を、システムLSI10内のICカードI/F回路13aを介してサブプロセッサ13へ返す。ICカード20は、暗号文生成処理ST1−22により、生成した乱数Raを共有鍵Kaで暗号アルゴリズムFにて暗号化し、暗号文Racを生成する。
【0040】
システムLSI10内のサブプロセッサ13は、暗号文生成処理ST1−11により、受信したレスポンスS2の乱数Raを共有鍵Kaで暗号アルゴリズムFにて暗号化して暗号文Ralを生成し、この暗号文Ralを外部認識命令(EXTERNAL AUTHENTICATEコマンド)のチャレンジ(EXTERNAL AUTHENTICATE(Ral))S2で、ICカード20へ送信する。
【0041】
ICカード20は、比較処理ST1−23により、受信したチャレンジS3の暗号文Ralと、暗号文生成手段22により生成された暗号文Racとを比較し、比較結果が一致すればOK、不一致であればNGを、レスポンス(Res(OK/NG))S4としてシステムLSI10内のサブプロセッサ13へ返す。
【0042】
システムLSI10内のサブプロセッサ13は、受信したレスポンスS4の端末認証がOKであれば、下記のカード認証へ進む。
【0043】
(3) カード認証シーケンス
図4は、図2中のカード認証ステップST3のシーケンス動作を示す図である。
【0044】
システムLSI10内のサブプロセッサ13は、読み出し命令(READ RECORD コマンド)のチャレンジS11をICカード20へ送り、ICカード20内のメモリのある特定の領域に書かれたシリアル番号Sn(例えば、0001)を読み出し、これをICカード20からのレスポンス(Res(Sn))S12の形で受信する。システムLSI10には、予め、セキュリティが確保された環境で、許可されたICカード20のシリアル番号SDBが、認証鍵用メモリ12に登録されている。サブプロセッサ13は、比較処理ST3−11により、ICカード20から読み出されたシリアル番号Snと、認識鍵用メモリ12内のデータベースに登録されたICカード20のシリアル番号SDBとを比較する。
【0045】
サブプロセッサ13は、カード認証鍵生成処理ST3−12により、読み出されたシリアル番号Snが、データベースに登録されたシリアル番号SDBと同一(OK)であれば、カード認証鍵の生成を行う。このカード認証鍵の生成では、暗号アルゴリズムFを用いて、受信したシリアル番号Snを共有鍵Kaで復号し、復号文からなる共有鍵Kbを生成する。更に、サブプロセッサ13は、乱数生成処理ST3−13により、乱数Rbを生成し、この乱数Rbを内部認識命令(INTERNAL AUTHENTICATEコマンド)のチャレンジS13で、ICカード20へ送信する。同時に、サブプロセッサ13は、暗号文生成処理ST3−14により、生成された共有鍵Kbで乱数Rbを暗号化して暗号文Rblを生成する。
【0046】
ICカード20は、暗号文生成処理ST3−21により、サブプロセッサ13から受信したチャレンジS13の乱数Rbを、保持している共有鍵Kbで暗号化して暗号文Rbcを生成し、この暗号文Rbcをレスポンス(Res(Rbc))S14としてシステムLSI10内のサブプロセッサ13へ返す。
【0047】
システムLSI10内のサブプロセッサ13は、比較処理ST3−15により、受信した暗号文Rbcと生成された暗号文Rblとを比較し、両者が一致すれば、下記の動作モード認証へ進む。
【0048】
なお、前記カード認証鍵生成処理ST3−12の詳細について、以下説明する。
システムLSI10のカード認証鍵(共有鍵Kb)の生成は、管理上の容易性を考慮して、ICカード固有のシリアル番号Sn(例えば、0001)を利用する。シリアル番号Snは、共有鍵Kaで暗号アルゴリズムFを用いて、暗号化した値とする。
【0049】
これは、カード認証鍵Kbは、一般的に乱数を用いて生成される。このため、許可されたICカード20の鍵をシステムLSI10に登録する場合、登録対象の全てのカード認証鍵を登録する必要がある。又、既に使われた鍵が登録されないことを管理する必要があるが、鍵が、乱数のため管理が大変である。
【0050】
ICカード固有のシリアル番号Snであれば、連続する番号なので全てを登録する必要は無い。例えば、登録するシリアル番号Snの最大値と最小値だけを登録し、その連続する番号を許可する等で、登録件数を減らすことが可能になる。
【0051】
ここで、ICカード固有のシリアル番号Snを元にICカード認証鍵(Kb)を生成することに関して、不正な第3者の解析に対するセキュリティ上の問題があるとの懸念がある。しかし、不正な第3者は、先ずシリアル番号Snを元にカード認証鍵(Kb)を生成していることを知らなければならないこと、もし知り得たとしても、図2の端末認証(ステップST1)後でなければ図2のカード認証(ステップST3)は行われないため、偽造カードを生成することが困難と思われること、又、使われている暗号アルゴリズムFを特定する必要があること、暗号アルゴリズムFが特定できたとして、入手できるのは暗号文Rblだけであり、暗号文Rb1だけから鍵(Kb)を特定することは、一般的に安全と言われている暗号アルゴリズムを用いていれば、現実的な時間の範囲で鍵を特定することは困難と言われていること等から、セキュリティ上の問題は無い。
【0052】
(4) 動作モードシーケンス
図5は、図2中の動作モード認証ステップST5のシーケンス動作を示す図である。
【0053】
動作モード認証では、先ず、システムLSI10内のサブプロセッサ13が、乱数生成処理ST5−11により、乱数Rcを生成し、内部認識命令(INTERNAL AUTHENTICATEコマンド)のチャレンジ(INTERNAL AUTHENTICATE(Rc))S21で、乱数RcをICカード20へ送信する。同時に、サブプロセッサ13は、暗号文生成処理ST5−12により、保持している共有鍵Kmで、生成された乱数Rcを暗号化して暗号文Rclを生成する。
【0054】
ICカード20は、暗号文生成処理ST5−21により、システムLSI10から受信したチャレンジS21の乱数Rcを、保持している共有鍵Kmで暗号化して暗号文Rccを生成し、前記チャレンジS21の応答として、暗号文RccのレスポンスS22をシステムLSI10内のサブプロセッサ13へ返す。
【0055】
システムLSI内のサブプロセッサ13は、比較処理ST5−13により、受信したレスポンスS22の暗号文Rccと、生成された暗号文Rclとの比較を行う。比較結果が一致すれば、JTAG接続可能モードとして、JTAG接続制御回路14にてJTAG接続を有効にし、下記のデバッグ処理へ進む。前記比較結果が不一致のときは、不正な認証としてJTAG接続を有効にしない。
【0056】
(5) デバッグ処理
JTAG接続制御回路14によってチップオンJTAGインタフェース回路15がオン状態になると共に、メインプロセッサ11が起動し、デバッガ30から入力されたテストプログラによりメインプロセッサ11が動作し、システムLSI10に対するデバッグが行われる。
【0057】
(実施例1の効果)
本実施例1によれば、次の(a)〜(d)のような効果がある。
(a) 端末認証、カード認証によりシステムLSI10とICカード20との相互認証を行った後に、JTAG接続を有効にするようにしたので、安全性を確保できる。これにより、ICカード20を用いた安全な方法で認証された環境で、システムLSI10におけるオンチップJTAGインタフェース回路15とデバッグ30との接続を許可することが可能となる。従って、ICカード認証を利用したセキュリティ機能の優れるデバッグ方法を実現でき、これにより、オンチップJTAGインタフェース回路を有するシステムLSIを、開発時と運用時で物理的に同一なものとし、不正な第3者の解析を防止しつつ、正規のユーザにはデバッグ機能を提供できる。
【0058】
(b) システムLSI10のカード認証鍵(Kb)として、ICカード固有の暗号化したシリアル番号(Sn)を使用するので、システムLSI10に登録するカード認証鍵に対するデータ量を削減でき、カード認証鍵の登録の管理が容易になる。
【0059】
(c) サブプロセッサ13が立ち上がって認証を行った後に、メインプロセッサ11が起動してデバッグが行われる。この際、サブプロセッサ13は、メインプロセッサ11の実動作中も他の動作を行うため、認証動作が終わった段階で休止状態にはならず、動作状態が維持される。このようなサブプロセッサ13を設けることにより、メインプロセッサ11の実動作中における処理の分担が可能になり、システムLSI10の動作を高速且つ安定に行うことができる。
【0060】
(d) 前記(c)に関して、特許文献4には、オンチップJTAGインタフェース回路を有するシステムLSIにおいて、ホストプロセッサと専用プロセッサとの2つのプロセッサを搭載した例が開示されているが、ICカードによる認証については記載されておらず、それに伴う動作についても何ら開示されていない。これに対し、本実施例1では、ICカード20を用いた安全な方法で認証を行い、サブプロセッサ13とメインプロセッサ11の2つを巧みに用いることにより、前記のような顕著な作用効果を奏するものである。
【0061】
(変形例)
本発明は、上記実施例1に限定されず、種々の利用形態や変形が可能である。この利用形態や変形例としては、例えば、次の(i)〜(iv)のようなものがある。
【0062】
(i) システムLSI10は、図1の構成や機能に限定されず、他の構成や機能に変更したり、あるいは、他の回路や機能を付加することも可能である。
【0063】
(ii) 前記(i)において、例えば、サブプロセッサ13は、マイコンで構成する必要はなく、少なくとも、ICカード20によって認証されたことを識別でき、この識別をトリガにしてオンチップJTAGインタフェース回路に接続するようメインプロセッサ11に信号を与えることが可能なものであれば、マイコン等の演算機能を有するものでなくても代替が可能である。但し、代替した場合は、前記実施例1の効果(c)のような、実動作中のメインプロセッサ11との処理の分担効果が得られない。
【0064】
(iii) 前記(i)において、例えば、サブプロセッサ13を省略し、このサブプロセッサ13の機能をメインプロセッサ11に持たせる構成しても良い。このような構成にしても、前記実施例1の効果(a)、(b)が得られる。
【0065】
(iv) 実施例1におけるICカード20を用いた認証方法は、他の処理手順に変更することも可能である。例えば、実施例1では、動作モード認証後の認証で、JTAG許可を判定し、2つの動作モードのみとしているが、複数の動作モードを動作モードで判定しても良い。又、動作モード認証前の例えばICカード認証の結果を用いて判定することも可能である。
【符号の説明】
【0066】
10 システムLSI
11 メインプロセッサ
12 認証鍵用メモリ
13 サブプロセッサ
13a ICカードI/F回路
14 JTAG接続制御回路
15 オンチップJTAGインタフェース回路
20 ICカード
30 デバッガ

【特許請求の範囲】
【請求項1】
演算及び制御機能を有するICカードを用いた認証手段と、
外部のデバッグ手段に対するシリアル通信のインタフェース機能を有するJTAGインタフェース手段と、
前記認証手段による認証を受けた後に前記デバッグ手段に対する前記JTAGインタフェース手段の接続制御を行う制御手段と、
を有することを特徴とするシステムLSI。
【請求項2】
前記認証手段は、
前記ICカードに対する通信のインタフェース機能を有するICカードインタフェース手段と、
システムLSI全体をプログラム制御する演算制御機能、及び前記ICカードインタフェース手段を介して前記ICカードを用いた認証機能を有するプロセッサと、
により構成されていることを特徴とする請求項1記載のシステムLSI。
【請求項3】
前記プロセッサは、
前記演算制御機能を有するメインプロセッサと、
前記認証機能を有するサブプロセッサと、
により構成されていることを特徴とする請求項2記載のシステムLSI。
【請求項4】
前記サブプロセッサは、
演算機能を有することを特徴とする請求項3記載のシステムLSI。
【請求項5】
前記サブプロセッサは、
前記ICカードによって認証されたことを識別し、この識別をトリガに前記JTAGインタフェース手段に接続するよう前記メインプロセッサに信号を与える機能を有することを特徴とする請求項3記載のシステムLSI。
【請求項6】
前記認証機能は、
前記システムLSIの真正性を確認する端末認証と、前記ICカードの真正性を確認するカード認証とにより、前記システムLSIと前記ICカードとの相互認証を行うことを特徴とする請求項1〜5のいずれか1項に記載のシステムLSI。
【請求項7】
前記ICカードのシリアル番号を暗号化したカード認証鍵を用いて前記認証を行うことを特徴とする請求項1〜6のいずれか1項に記載のシステムLSI。
【請求項8】
前記TAGインタフェース手段は、
オンチップJTAGインタフェース回路であることを特徴とする請求項1〜7のいずれか1項に記載のシステムLSI。
【請求項9】
演算制御機能を有するメインプロセッサと、
演算及び制御機能を有するICカードを用いた認証機能を有するサブプロセッサと、
外部のデバッグ手段に対するシリアル通信のインタフェース機能を有するJTAGインタフェース手段と、
を備えたシステムLSIのデバッグ方法であって、
前記サブプロセッサが立ち上がって認証を行った後に、前記メインプロセッサが起動して、前記デバッグ手段により、前記JTAGインタフェース手段を介して前記システムLSIのデバッグを行うことを特徴とするシステムLSIのデバッグ方法。
【請求項10】
前記認証では、
前記システムLSIの真正性を確認する端末認証と、前記ICカードの真正性を確認するカード認証とにより、前記システムLSIと前記ICカードとの相互認証を行うことを特徴とする請求項9記載のシステムLSIのデバッグ方法。
【請求項11】
前記ICカードのシリアル番号を暗号化したカード認証鍵を用いて前記認証を行うことを特徴とする請求項9又は10記載のシステムLSIのデバッグ方法。
【請求項12】
前記システムLSIと前記ICカードは、共通鍵を保持し、
前記共通鍵を用いてチャレンジアンドレスポンス方式により前記認証を行うことを特徴とする請求項9〜11のいずれか1項に記載のシステムLSIのデバッグ方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate