(57)【要約】【課題】セキュリティ機能の優れるシステムＬＳＩ及びこのデバッグ方法を実現する。【解決手段】システムＬＳＩ１０は、演算制御機能を有するメインプロセッサ１１と、演算及び制御機能を有するＩＣカード２０を用いた認証機能を有するサブプロセッサ１３及びＩＣカードＩ／Ｆ回路１３ａと、サブプロセッサ１３により制御されるＪＴＡＧ接続制御回路１４と、デバッガ３０に対するシリアル通信のインタフェース機能を有するオンチップＪＴＡＧインタフェース回路１５等とを備えている。サブプロセッサ１３が立ち上がって認証を行った後に、メインプロセッサ１１が起動して、デバッガ３０により、オンチップＪＴＡＧインタフェース回路１５を介してシステムＬＳＩのデバッグが行われる。【選択図】図１
2010160765.tif 000002
【特許請求の範囲】
【請求項１】
演算及び制御機能を有するＩＣカードを用いた認証手段と、
外部のデバッグ手段に対するシリアル通信のインタフェース機能を有するＪＴＡＧインタフェース手段と、
前記認証手段による認証を受けた後に前記デバッグ手段に対する前記ＪＴＡＧインタフェース手段の接続制御を行う制御手段と、
を有することを特徴とするシステムＬＳＩ。
【請求項２】
前記認証手段は、
前記ＩＣカードに対する通信のインタフェース機能を有するＩＣカードインタフェース手段と、
システムＬＳＩ全体をプログラム制御する演算制御機能、及び前記ＩＣカードインタフェース手段を介して前記ＩＣカードを用いた認証機能を有するプロセッサと、
により構成されていることを特徴とする請求項１記載のシステムＬＳＩ。
【請求項３】
前記プロセッサは、
前記演算制御機能を有するメインプロセッサと、
前記認証機能を有するサブプロセッサと、
により構成されていることを特徴とする請求項２記載のシステムＬＳＩ。
【請求項４】
前記サブプロセッサは、
演算機能を有することを特徴とする請求項３記載のシステムＬＳＩ。
【請求項５】
前記サブプロセッサは、
前記ＩＣカードによって認証されたことを識別し、この識別をトリガに前記ＪＴＡＧインタフェース手段に接続するよう前記メインプロセッサに信号を与える機能を有することを特徴とする請求項３記載のシステムＬＳＩ。
【請求項６】
前記認証機能は、
前記システムＬＳＩの真正性を確認する端末認証と、前記ＩＣカードの真正性を確認するカード認証とにより、前記システムＬＳＩと前記ＩＣカードとの相互認証を行うことを特徴とする請求項１〜５のいずれか１項に記載のシステムＬＳＩ。
【請求項７】
前記ＩＣカードのシリアル番号を暗号化したカード認証鍵を用いて前記認証を行うことを特徴とする請求項１〜６のいずれか１項に記載のシステムＬＳＩ。
【請求項８】
前記ＴＡＧインタフェース手段は、
オンチップＪＴＡＧインタフェース回路であることを特徴とする請求項１〜７のいずれか１項に記載のシステムＬＳＩ。
【請求項９】
演算制御機能を有するメインプロセッサと、
演算及び制御機能を有するＩＣカードを用いた認証機能を有するサブプロセッサと、
外部のデバッグ手段に対するシリアル通信のインタフェース機能を有するＪＴＡＧインタフェース手段と、
を備えたシステムＬＳＩのデバッグ方法であって、
前記サブプロセッサが立ち上がって認証を行った後に、前記メインプロセッサが起動して、前記デバッグ手段により、前記ＪＴＡＧインタフェース手段を介して前記システムＬＳＩのデバッグを行うことを特徴とするシステムＬＳＩのデバッグ方法。
【請求項１０】
前記認証では、
前記システムＬＳＩの真正性を確認する端末認証と、前記ＩＣカードの真正性を確認するカード認証とにより、前記システムＬＳＩと前記ＩＣカードとの相互認証を行うことを特徴とする請求項９記載のシステムＬＳＩのデバッグ方法。
【請求項１１】
前記ＩＣカードのシリアル番号を暗号化したカード認証鍵を用いて前記認証を行うことを特徴とする請求項９又は１０記載のシステムＬＳＩのデバッグ方法。
【請求項１２】
前記システムＬＳＩと前記ＩＣカードは、共通鍵を保持し、
前記共通鍵を用いてチャレンジアンドレスポンス方式により前記認証を行うことを特徴とする請求項９〜１１のいずれか１項に記載のシステムＬＳＩのデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オンチップデバッグを実現するオンチップＪＴＡＧ（Joint  Test  Action  Group）インタフェース回路、及びこのＪＴＡＧインタフェース回路を用いて内部回路の挙動の不正取得を防止するためのセキュリティ機能を有するシステムＬＳＩ（Large  Scale  Integrated  circuit）  と、このシステムＬＳＩのデバッグ方法に関し、特に、ＩＣ（Integrated  Circuit）カードを用いた認証を行い、システムＬＳＩにおけるオンチップＪＴＡＧインタフェース回路の接続制御を行う技術に関するものである。
【背景技術】
【０００２】
近年、電子商取引等あらゆる分野で、よりセキュリティの高いシステムＬＳＩが求められている。システムＬＳＩとは、組み込みシステム製品の中核をなすマイクロコントローラのことである。特に、逆解析（リバースエンジニアリング）を用いて、システムＬＳＩの内部回路の挙動を解析し、システムＬＳＩを用いた装置の開発者の不本意な用途に悪用されることがある。このため、システムＬＳＩの解析機能を悪用されないことが求められている。
【０００３】
このようなセキュリティ機能を有するシステムＬＳＩに関する技術は、例えば、下記の特許文献１〜４に開示されている。
【０００４】
特許文献１には、ＪＴＡＧインタフェース回路において、この開発時に、ＪＴＡＧインタフェース回路を有効にし、運用時に、電子フューズ等の物理的な手段で、ＪＴＡＧインタフェース回路を切断することで、ＪＴＡＧインタフェース回路を無効にして、不正な第３者の逆解析を防止する技術が開示されている。
【０００５】
特許文献２には、中央処理装置（以下「ＣＰＵ」という。）等を有するマイクロコンピュータ（以下「マイコン」という）のプログラム及びこのプログラムを格納したメモリの内容の変更に関し、認証用のＩＣカードを用いてこのＩＣカードが認証された場合にメモリ内のプログラムの変更を行うことが開示されている。
【０００６】
特許文献３には、マイコン内の情報を解析、改竄されないように、ＳＤメモリカードに識別情報を持たせ、この識別情報によってリードライト装置で認証された場合に、マイコン内のプログラムのデバッグを行うことが開示されている。デバッグとは、デバッガに接続されたマイコン等をこの内部のプログラムやデータを用いて動作させることでプログラムのバグを見つけて修正することであり、このデバッグを行うツール（即ち、デバッグを支援するプログラム）がデバッガである。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３７６００８７号公報
【０００８】
【特許文献２】特開２００２−２４０４６号公報
【０００９】
【特許文献３】特開２００７−７２９５７号公報
【００１０】
【特許文献４】特開２００４−９４４５１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、例えば、特許文献１〜３に開示された従来の技術では、以下の（ａ）〜（ｃ）のような課題があった。
【００１２】
（ａ）  特許文献１
特許文献１の技術では、運用時に、物理的にＪＴＡＧインタフェース回路を無効にし、不正な第３者が、システムＬＳＩの解析をできないようにしている。しかし、正規のユーザがフィールドバグ等でシテムＬＳＩの解析を行う必要がある場合も、解析することができない。そこで、この代替方法として、開発用のシステムＬＳＩを用いて解析を行っているが、運用環境との違い等から解析が困難である。又、システムＬＳＩの開発者側は、物理的に異なる２種類のシステムＬＳＩを用意する必要があり、コストアップ要因にもなっている。
【００１３】
（ｂ）  特許文献２
特許文献２の技術は、ＩＣカードを用いてこのＩＣカードが認証された場合に、プログラム変更等を行っている。しかし、この技術は、完成されたマイコン製品に対して更なるバージョンアップ等の行為を行うためにＩＣカードの認証を行い、この認証後に、マイコンに接続された外部装置からデータを受信してメモリ内容を変更するようになっている。そのため、この技術を用いて、マイコン製品の完成前に、確認等のためのプログラムのデバッグを行うことができない。
【００１４】
（ｃ）  特許文献３
特許文献３の技術では、ＳＤメモリカードに持たせた識別情報によってリードライト装置で認証を行い、認証結果をマイコンに通知することで、マイコン内のプログラムのデバッグを行うようになっているので、マイコン内で承認を行うとともにオンチップデバッグを実現する構成ではなく、リードライト装置からマイコンへ送受信される認証済みのデータを解析され、またこの解析結果をもとにデバッグ情報をも解析されてしまう可能性が高い。
【００１５】
従って、未だ技術的に十分満足できるオンチップデバッグで且つセキュリティ機能の優れたシステムＬＳＩ及びこのデバッグ方法を実現することが困難であった。
【００１６】
本発明は、このような従来の課題を解決し、ＩＣカード認証を利用したセキュリティ機能の優れるデバッグ認証技術と、ＪＴＡＧインタフェース手段を有するシステムＬＳＩを開発時と運用時で物理的に同一なものとし、不正な第３者の解析を防止しつつ、正規のユーザにはデバッグ機能を提供できるシステムＬＳＩ及びこのデバッグ方法を実現することを目的とする。
【課題を解決するための手段】
【００１７】
本発明のシステムＬＳＩは、演算及び制御機能を有するＩＣカードを用いた認証手段と、外部のデバッグ手段に対するシリアル通信のインタフェース機能を有するＪＴＡＧインタフェース手段と、前記認証手段による認証を受けた後に前記デバッグ手段に対する前記ＪＴＡＧインタフェース手段の接続制御を行う制御手段とを有することを特徴とする。
【００１８】
本発明のシステムＬＳＩのデバッグ方法は、演算制御機能を有するメインプロセッサと、演算及び制御機能を有するＩＣカードを用いた認証機能を有するサブプロセッサと、外部のデバッグ手段に対するシリアル通信のインタフェース機能を有するＪＴＡＧインタフェース手段と、を備えたシステムＬＳＩのデバッグ方法であって、前記サブプロセッサが立ち上がって認証を行った後に、前記メインプロセッサが起動して、前記デバッグ手段により、前記ＪＴＡＧインタフェース手段を介して前記システムＬＳＩのデバッグを行うことを特徴とする。
【発明の効果】
【００１９】
本発明のシステムＬＳＩ及びこのデバッグ方法によれば、ＩＣカードを用いた認証を行った後に、ＪＴＡＧインタフェースを有効にしてデバッグを行うようにしたので、セキュリティ機能の優れるシステムＬＳＩ及びこのデバッグ方法を実現できる。これにより、ＪＴＡＧインタフェース手段を有するシステムＬＳＩを、開発時と運用時で物理的に同一なものとし、不正な第３者の解析を防止しつつ、正規のユーザにはデバッグ機能を提供できる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施例１におけるシステムＬＳＩ及びこの外部装置を示す概略の構成図である。
【図２】図１のシステムＬＳＩにおける認証プロセスの動作を示すフローチャートである。
【図３】図２中の端末認証ステップＳＴ１のシーケンス動作を示す図である。
【図４】図２中のカード認証ステップＳＴ３のシーケンス動作を示す図である。
【図５】図２中の動作モード認証ステップＳＴ５のシーケンス動作を示す図である。
【発明を実施するための形態】
【００２１】
本発明を実施するための形態は、以下の好ましい実施例の説明を添付図面と照らし合わせて読むと、明らかになるであろう。但し、図面はもっぱら解説のためのものであって、本発明の範囲を限定するものではない。
【実施例１】
【００２２】
（実施例１の構成）
図１は、本発明の実施例１におけるシステムＬＳＩ及びこの外部装置を示す概略の構成図である。
【００２３】
本実施例１のシステムＬＳＩ１０は、ＩＣカード認証を利用したセキュリティ機能を有する集積回路であり、マイコン等で構成された演算制御機能を有するメインプロセッサ１１と、フラッシュメモリ等の認証鍵用メモリ１２と、ＩＣカードインタフェース手段であるＩＣカードインタフェース回路（以下「ＩＣカードＩ／Ｆ回路」という。）１３ａを有し、マイコン等で構成された演算機能を有するサブプロセッサ１３と、このサブプロセッサ１３により制御される制御手段（例えば、ＪＴＡＧ接続制御回路）１４と、このＪＴＡＧ接続制御回路１４により制御されるＪＴＡＧインタフェース手段（例えば、オンチップＪＴＡＧインタフェース回路）１５等とを備え、これらがシステムバス１６等により接続されている。サブプロセッサ１３及びＩＣカードＩ／Ｆ回路１３ａにより、認証手段が構成されている。
【００２４】
メインプロセッサ１１は、例えば、これが動作する前に、サブプロセッサ１３が動作し、認証プロセスが完了するまでこのメインプロセッサ１１が動作しない構成になっている。サブプロセッサ１３は、認証プロセスを制御し、例えば、パスワードの認証に用いられる方式の１つであるＩＳＯ７８１６−４規格に準拠したチャレンジアンドレスポンス（Challenge  &  Response）方式による認証機能を持ち、基板内にＣＰＵ及びメモリ等を内蔵したＩＣカード２０との通信は、例えば、ＩＳＯ７８１６−３規格に準拠し、ＩＣカードＩ／Ｆ回路１３ａを通じてＩＣカード２０と通信を行う構成になっている。更に、サブプロセッサ１３では、認証プロセスで正規の認証が行われた場合に、ＪＴＡＧ接続制御回路１４に対してＪＴＡＧ接続を許可し、不正の認証の場合は、ＪＴＡＧ接続制御回路１４に対してＪＴＡＧ接続を許可しない機能を有している。
【００２５】
メインプロセッサ  チャレンジアンドレスポンス方式とは、サーバから送られてくる暗号鍵（チャレンジ）を受け取り、これに演算処理を組み合わせたデータ（レスポンス）を返すことによって認証を行う方式である。この方式では、先ず、サーバ（例えば、システムＬＳＩ１０）がクライアント（例えば、ＩＣカード２０）に対して「チャレンジ」と呼ばれる値を送る。チャレンジを受け取ったクライアントは、チャレンジの値にそれぞれ保有しているパスワード（例えば、共通鍵）を掛け合わせて演算処理を行い、この演算処理により生成されたハッシュ値（例えば、暗号文）を「レスポンス」として返す。サーバは、クライアントから返送されてきたハッシュ値と、サーバ自身が生成したレスポンスとを照合し、２つのレスポンスの値が一致していれば認証を通す。チャレンジアンドレスポンス方式の利点は、チャレンジとして送られてくる値が毎回ランダムな値で変更され、生成されるレスポンスの値も毎回異なるので、仮に、チャレンジやレスポンスが第3者に不正取得されたとしても、認証上の致命的な問題が生じない。
【００２６】
メインプロセッサ  本実施例１では、チャレンジアンドレスポンス方式による認証のため、例えば、システムＬＳＩ１０とＩＣカード２０とは、２つの共有鍵Ｋａ，Ｋｍを保持している。更に、システムＬＳＩ１０の認証鍵用メモリ１２には、アクセス可能なＩＣカード２０のシリアル番号ＳＤＢが、セキュリティが確保された環境で予め保持されると共に、ＩＣカード２０にも、内部のメモリのデータ領域にユニークなシリアル番号Ｓｎと共有鍵Ｋｂを保持している。即ち、システムＬＳＩ１０側の認証鍵用メモリ１２には、２つの共有鍵Ｋａ，Ｋｍとアクセス可能なＩＣカード２０のシリアル番号ＳＤＢとがデータベースとして保持され、ＩＣカード２０内のメモリにも、３つの共有鍵Ｋａ，Ｋｂ，Ｋｍとユニークなシリアル番号Ｓｎとが保持されている。
【００２７】
メインプロセッサ  オンチップＪＴＡＧインタフェース回路１５は、例えば、認証後、ＪＴＡＧ接続制御回路１４によってデバッグ手段（例えば、デバッガ）３０との接続が許可されると、ＩＥＥＥ１１４９．１規格に準拠したシリアル通信をデバッガ３０との間で行う機能を有している。デバッガ３０は、オンチップＪＴＡＧインタフェース回路１５を介して、メインプロセッサ１１を動作させ、プログラムのデバッグを行う機能を有している。
【００２８】
メインプロセッサ  （実施例１のデバッグ方法）
本実施例１のシステムＬＳＩ１０におけるデバッグ方法では、以下のような認証プロセス（認証プロセス動作（１）、端末認証シーケンス（２）、カード認証シーケンス（３）、動作モードシーケンス（４））を実行した後、デバッガ３０によるプログラムのデバッグ処理（５）が行われる。
【００２９】
メインプロセッサ  （１）  認証プロセス動作
図２は、図１のシステムＬＳＩ１０における認証プロセスの動作を示すフローチャートである。
【００３０】
メインプロセッサ  システムＬＳＩ１０における認証プロセスは、このシステムＬＳＩ１０内に格納された認証プログラムに従い、サブプロセッサ１３の動作により、以下の３段階［端末認証（ステップＳＴ１）、カード認証（ステップＳＴ３）、動作モード認証（ステップＳＴ５）］の認証を行う。
【００３１】
動作が開始（ＳＴＡＲＴ）されると、サブプロセッサ１３が立ち上がり、システムＬＳＩ１０の真正性の確認のために端末認証を行い（ステップＳＴ１）、端末認証されたか否かを判定し（ステップＳＴ２）、認証されなければ（ＮＧ）、不正な認証と判定し（ステップＳ８）、認証動作を終了（ＥＮＤ）する。
【００３２】
先ず、ステップＳ１で端末認証されれば（ＯＫ）、サブプロセッサ１３は、次に、ＩＣカード２０の真正性の確認のためにカード認証を行い（ステップＳＴ３）、カード認証されたか否かを判定し（ステップＳＴ４）、認証されなければ（ＮＧ）、不正な認証と判定して認証動作を終了する（ステップＳＴ８）。
【００３３】
ステップＳ４でカード認証されれば、サブプロセッサ１３は、最後の動作モード認証を行い（ステップＳＴ５）、動作モード認証されたか否かを判定し（ステップＳＴ６）、認証されなければ（ＮＧ）、不正な認証と判定して認証動作を終了する（ステップＳＴ８）。
【００３４】
ステップＳＴ６で動作モード認証が正規の認証であれば（ＯＫ）、サブプロセッサ１３は、ＪＴＡＧ接続有効と判定し（ステップＳＴ７）、ＪＴＡＧ接続制御回路１４に対してＪＴＡＧ接続を許可し、認証動作を終了する。なお、サブプロセッサ１３は、認証プロセスの実動作中も他の動作を行うため、認証が終わった段階で休止状態になることはない。
【００３５】
その後、ＪＴＡＧ接続制御回路１４によってチップオンＪＴＡＧインタフェース回路１５がオン状態になり、デバッガ３０によるデバッグが行われる。
【００３６】
（２）  端末認証シーケンス
図３は、図２中の端末認証ステップＳＴ１のシーケンス動作を示す図である。
【００３７】
端末認証は、システムＬＳＩ１０内の認証鍵用メモリ１２とＩＣカード２０とで共有鍵Ｋａを保持し、例えば、ＩＳＯ７８１６−４規格に準拠したチャレンジアンドレスポンス方式による認証を行う。
【００３８】
先ず、システムＬＳＩ１０内のサブプロセッサ１３は、ＩＣカードＩ／Ｆ回路１３ａを介して、例えば、ＩＳＯ７８１６−３規格に準拠したシリアル通信により、ＩＣカード２０ヘ取得チャレンジ命令（GET  CHALLENGEコマンド）のチャレンジＳ１を送信する。
【００３９】
ＩＣカード２０は、チャレンジＳ１を受信すると、乱数生成処理ＳＴ１−２１により乱数Ｒａを生成し、受信したチャレンジＳ１に対する応答として、その乱数Ｒａのレスポンス（Res(Ra)）Ｓ２を、システムＬＳＩ１０内のＩＣカードＩ／Ｆ回路１３ａを介してサブプロセッサ１３へ返す。ＩＣカード２０は、暗号文生成処理ＳＴ１−２２により、生成した乱数Ｒａを共有鍵Ｋａで暗号アルゴリズムＦにて暗号化し、暗号文Ｒａｃを生成する。
【００４０】
システムＬＳＩ１０内のサブプロセッサ１３は、暗号文生成処理ＳＴ１−１１により、受信したレスポンスＳ２の乱数Ｒａを共有鍵Ｋａで暗号アルゴリズムＦにて暗号化して暗号文Ｒａｌを生成し、この暗号文Ｒａｌを外部認識命令（EXTERNAL AUTHENTICATEコマンド）のチャレンジ（EXTERNAL  AUTHENTICATE(Ral)）Ｓ２で、ＩＣカード２０へ送信する。
【００４１】
ＩＣカード２０は、比較処理ＳＴ１−２３により、受信したチャレンジＳ３の暗号文Ｒａｌと、暗号文生成手段２２により生成された暗号文Ｒａｃとを比較し、比較結果が一致すればＯＫ、不一致であればＮＧを、レスポンス（Res(OK/NG)）Ｓ４としてシステムＬＳＩ１０内のサブプロセッサ１３へ返す。
【００４２】
システムＬＳＩ１０内のサブプロセッサ１３は、受信したレスポンスＳ４の端末認証がＯＫであれば、下記のカード認証へ進む。
【００４３】
（３）  カード認証シーケンス
図４は、図２中のカード認証ステップＳＴ３のシーケンス動作を示す図である。
【００４４】
システムＬＳＩ１０内のサブプロセッサ１３は、読み出し命令（READ  RECORD  コマンド）のチャレンジＳ１１をＩＣカード２０へ送り、ＩＣカード２０内のメモリのある特定の領域に書かれたシリアル番号Ｓｎ（例えば、０００１）を読み出し、これをＩＣカード２０からのレスポンス（Res(Sn)）Ｓ１２の形で受信する。システムＬＳＩ１０には、予め、セキュリティが確保された環境で、許可されたＩＣカード２０のシリアル番号ＳＤＢが、認証鍵用メモリ１２に登録されている。サブプロセッサ１３は、比較処理ＳＴ３−１１により、ＩＣカード２０から読み出されたシリアル番号Ｓｎと、認識鍵用メモリ１２内のデータベースに登録されたＩＣカード２０のシリアル番号ＳＤＢとを比較する。
【００４５】
サブプロセッサ１３は、カード認証鍵生成処理ＳＴ３−１２により、読み出されたシリアル番号Ｓｎが、データベースに登録されたシリアル番号ＳＤＢと同一（ＯＫ）であれば、カード認証鍵の生成を行う。このカード認証鍵の生成では、暗号アルゴリズムＦを用いて、受信したシリアル番号Ｓｎを共有鍵Ｋａで復号し、復号文からなる共有鍵Ｋｂを生成する。更に、サブプロセッサ１３は、乱数生成処理ＳＴ３−１３により、乱数Ｒｂを生成し、この乱数Ｒｂを内部認識命令（INTERNAL  AUTHENTICATEコマンド）のチャレンジＳ１３で、ＩＣカード２０へ送信する。同時に、サブプロセッサ１３は、暗号文生成処理ＳＴ３−１４により、生成された共有鍵Ｋｂで乱数Ｒｂを暗号化して暗号文Ｒｂｌを生成する。
【００４６】
ＩＣカード２０は、暗号文生成処理ＳＴ３−２１により、サブプロセッサ１３から受信したチャレンジＳ１３の乱数Ｒｂを、保持している共有鍵Ｋｂで暗号化して暗号文Ｒｂｃを生成し、この暗号文Ｒｂｃをレスポンス（Res(Rbc)）Ｓ１４としてシステムＬＳＩ１０内のサブプロセッサ１３へ返す。
【００４７】
システムＬＳＩ１０内のサブプロセッサ１３は、比較処理ＳＴ３−１５により、受信した暗号文Ｒｂｃと生成された暗号文Ｒｂｌとを比較し、両者が一致すれば、下記の動作モード認証へ進む。
【００４８】
なお、前記カード認証鍵生成処理ＳＴ３−１２の詳細について、以下説明する。
システムＬＳＩ１０のカード認証鍵（共有鍵Ｋｂ）の生成は、管理上の容易性を考慮して、ＩＣカード固有のシリアル番号Ｓｎ（例えば、０００１）を利用する。シリアル番号Ｓｎは、共有鍵Ｋａで暗号アルゴリズムＦを用いて、暗号化した値とする。
【００４９】
これは、カード認証鍵Ｋｂは、一般的に乱数を用いて生成される。このため、許可されたＩＣカード２０の鍵をシステムＬＳＩ１０に登録する場合、登録対象の全てのカード認証鍵を登録する必要がある。又、既に使われた鍵が登録されないことを管理する必要があるが、鍵が、乱数のため管理が大変である。
【００５０】
ＩＣカード固有のシリアル番号Ｓｎであれば、連続する番号なので全てを登録する必要は無い。例えば、登録するシリアル番号Ｓｎの最大値と最小値だけを登録し、その連続する番号を許可する等で、登録件数を減らすことが可能になる。
【００５１】
ここで、ＩＣカード固有のシリアル番号Ｓｎを元にＩＣカード認証鍵（Ｋｂ）を生成することに関して、不正な第３者の解析に対するセキュリティ上の問題があるとの懸念がある。しかし、不正な第３者は、先ずシリアル番号Ｓｎを元にカード認証鍵（Ｋｂ）を生成していることを知らなければならないこと、もし知り得たとしても、図２の端末認証（ステップＳＴ１）後でなければ図２のカード認証（ステップＳＴ３）は行われないため、偽造カードを生成することが困難と思われること、又、使われている暗号アルゴリズムＦを特定する必要があること、暗号アルゴリズムＦが特定できたとして、入手できるのは暗号文Ｒｂｌだけであり、暗号文Ｒｂ１だけから鍵（Ｋｂ）を特定することは、一般的に安全と言われている暗号アルゴリズムを用いていれば、現実的な時間の範囲で鍵を特定することは困難と言われていること等から、セキュリティ上の問題は無い。
【００５２】
（４）  動作モードシーケンス
図５は、図２中の動作モード認証ステップＳＴ５のシーケンス動作を示す図である。
【００５３】
動作モード認証では、先ず、システムＬＳＩ１０内のサブプロセッサ１３が、乱数生成処理ＳＴ５−１１により、乱数Ｒｃを生成し、内部認識命令（INTERNAL  AUTHENTICATEコマンド）のチャレンジ（INTERNAL  AUTHENTICATE(Rc)）Ｓ２１で、乱数ＲｃをＩＣカード２０へ送信する。同時に、サブプロセッサ１３は、暗号文生成処理ＳＴ５−１２により、保持している共有鍵Ｋｍで、生成された乱数Ｒｃを暗号化して暗号文Ｒｃｌを生成する。
【００５４】
ＩＣカード２０は、暗号文生成処理ＳＴ５−２１により、システムＬＳＩ１０から受信したチャレンジＳ２１の乱数Ｒｃを、保持している共有鍵Ｋｍで暗号化して暗号文Ｒｃｃを生成し、前記チャレンジＳ２１の応答として、暗号文ＲｃｃのレスポンスＳ２２をシステムＬＳＩ１０内のサブプロセッサ１３へ返す。
【００５５】
システムＬＳＩ内のサブプロセッサ１３は、比較処理ＳＴ５−１３により、受信したレスポンスＳ２２の暗号文Ｒｃｃと、生成された暗号文Ｒｃｌとの比較を行う。比較結果が一致すれば、ＪＴＡＧ接続可能モードとして、ＪＴＡＧ接続制御回路１４にてＪＴＡＧ接続を有効にし、下記のデバッグ処理へ進む。前記比較結果が不一致のときは、不正な認証としてＪＴＡＧ接続を有効にしない。
【００５６】
（５）  デバッグ処理
ＪＴＡＧ接続制御回路１４によってチップオンＪＴＡＧインタフェース回路１５がオン状態になると共に、メインプロセッサ１１が起動し、デバッガ３０から入力されたテストプログラによりメインプロセッサ１１が動作し、システムＬＳＩ１０に対するデバッグが行われる。
【００５７】
（実施例１の効果）
本実施例１によれば、次の（ａ）〜（ｄ）のような効果がある。
（ａ）  端末認証、カード認証によりシステムＬＳＩ１０とＩＣカード２０との相互認証を行った後に、ＪＴＡＧ接続を有効にするようにしたので、安全性を確保できる。これにより、ＩＣカード２０を用いた安全な方法で認証された環境で、システムＬＳＩ１０におけるオンチップＪＴＡＧインタフェース回路１５とデバッグ３０との接続を許可することが可能となる。従って、ＩＣカード認証を利用したセキュリティ機能の優れるデバッグ方法を実現でき、これにより、オンチップＪＴＡＧインタフェース回路を有するシステムＬＳＩを、開発時と運用時で物理的に同一なものとし、不正な第３者の解析を防止しつつ、正規のユーザにはデバッグ機能を提供できる。
【００５８】
（ｂ）  システムＬＳＩ１０のカード認証鍵（Ｋｂ）として、ＩＣカード固有の暗号化したシリアル番号（Ｓｎ）を使用するので、システムＬＳＩ１０に登録するカード認証鍵に対するデータ量を削減でき、カード認証鍵の登録の管理が容易になる。
【００５９】
（ｃ）  サブプロセッサ１３が立ち上がって認証を行った後に、メインプロセッサ１１が起動してデバッグが行われる。この際、サブプロセッサ１３は、メインプロセッサ１１の実動作中も他の動作を行うため、認証動作が終わった段階で休止状態にはならず、動作状態が維持される。このようなサブプロセッサ１３を設けることにより、メインプロセッサ１１の実動作中における処理の分担が可能になり、システムＬＳＩ１０の動作を高速且つ安定に行うことができる。
【００６０】
（ｄ）  前記（ｃ）に関して、特許文献４には、オンチップＪＴＡＧインタフェース回路を有するシステムＬＳＩにおいて、ホストプロセッサと専用プロセッサとの２つのプロセッサを搭載した例が開示されているが、ＩＣカードによる認証については記載されておらず、それに伴う動作についても何ら開示されていない。これに対し、本実施例１では、ＩＣカード２０を用いた安全な方法で認証を行い、サブプロセッサ１３とメインプロセッサ１１の２つを巧みに用いることにより、前記のような顕著な作用効果を奏するものである。
【００６１】
（変形例）
本発明は、上記実施例１に限定されず、種々の利用形態や変形が可能である。この利用形態や変形例としては、例えば、次の（ｉ）〜（ｉｖ）のようなものがある。
【００６２】
（ｉ）  システムＬＳＩ１０は、図１の構成や機能に限定されず、他の構成や機能に変更したり、あるいは、他の回路や機能を付加することも可能である。
【００６３】
（ｉｉ）  前記（ｉ）において、例えば、サブプロセッサ１３は、マイコンで構成する必要はなく、少なくとも、ＩＣカード２０によって認証されたことを識別でき、この識別をトリガにしてオンチップＪＴＡＧインタフェース回路に接続するようメインプロセッサ１１に信号を与えることが可能なものであれば、マイコン等の演算機能を有するものでなくても代替が可能である。但し、代替した場合は、前記実施例１の効果（ｃ）のような、実動作中のメインプロセッサ１１との処理の分担効果が得られない。
【００６４】
（ｉｉｉ）  前記（ｉ）において、例えば、サブプロセッサ１３を省略し、このサブプロセッサ１３の機能をメインプロセッサ１１に持たせる構成しても良い。このような構成にしても、前記実施例１の効果（ａ）、（ｂ）が得られる。
【００６５】
（ｉｖ）  実施例１におけるＩＣカード２０を用いた認証方法は、他の処理手順に変更することも可能である。例えば、実施例１では、動作モード認証後の認証で、ＪＴＡＧ許可を判定し、２つの動作モードのみとしているが、複数の動作モードを動作モードで判定しても良い。又、動作モード認証前の例えばＩＣカード認証の結果を用いて判定することも可能である。
【符号の説明】
【００６６】
１０      システムＬＳＩ
１１      メインプロセッサ
１２      認証鍵用メモリ
１３      サブプロセッサ
１３ａ      ＩＣカードＩ／Ｆ回路
１４      ＪＴＡＧ接続制御回路
１５      オンチップＪＴＡＧインタフェース回路
２０      ＩＣカード
３０      デバッガ
【図１】
2010160765.tif 000003
【図２】
2010160765.tif 000004
【図３】
2010160765.tif 000005
【図４】
2010160765.tif 000006
【図５】
2010160765.tif 000007