【誤訳訂正書】
【提出日】平成20年11月20日(2008.11.20)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【書類名】明細書
【発明の名称】集積回路の認証方法
【特許請求の範囲】
【請求項１】
集積回路によって実行されるアプリケーションプログラムから命令を受ける当該集積回路をアプリケーションシステムにおいて認証する方法において
前記集積回路への前記アプリケーションプログラムからの命令列の中の認証処理起動パターンを検出する段階と、
前記アプリケーションシステムにおいて前記集積回路を誤動作させない範囲で、前記アプリケーションシステムに対する前記集積回路の少なくとも１つの応答を変更する段階と
を含む方法。
【請求項２】  前記変更段階が、前記集積回路において少なくとも１つの命令の実行パス上の応答を変更することを含む請求項１に記載の方法。
【請求項３】  前記変更段階が、命令に対する応答時間を、応答時間の許容値の範囲内で、変えることを含む請求項１または２に記載の方法。
【請求項４】  前記集積回路が電気的にプログラム可能なメモリを具備しており、前記変更段階が、前記メモリに印加されるプログラミング電圧ランプの立ち上がり時間を変えることを含む請求項３に記載の方法。
【請求項５】  前記変更段階が、前記集積回路内の命令の実行パス上の遅延回路を活性化させることを含む請求項３に記載の方法。
【請求項６】  前記変更段階が、前記集積回路によって伝送されたデータ要素の内容に関する応答を変更することを含む請求項１または２に記載の方法。
【請求項７】  前記変更段階が、前記伝送されたデータ要素のビットを置換または反転することを含む請求項６に記載の方法。
【請求項８】  前記変更段階が、前記集積回路のクロック周波数を許容値の範囲内で変えることを含む請求項１〜７のいずれか一項に記載の方法。
【請求項９】  認証処理起動パターンの前記検出段階が、前記集積回路に入力されたアドレスまたはデータ要素のビットの独特な組み合わせを検出することを含む請求項１〜８のいずれか一項に記載の方法。
【請求項１０】  認証処理起動パターンの前記検出段階が、所定数の命令の命令列および／または所定数のクロックパルスを検出することを含む請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
集積回路によって実行されるアプリケーションプログラムから命令を受ける当該集積回路をアプリケーションシステムにおいて認証する方法において
前記集積回路への前記アプリケーションプログラムからの命令列の中の認証処理起動パターンを検出する段階と、
前記認証処理起動パターンに対する前記集積回路の応答を測定する段階と、
前記応答が正しく変更されているかどうかを検証する段階と、
前記応答が検証された場合、前記集積回路を認証する段階と
を含む認証方法。
【請求項１２】  認証しない場合一定の時間をおいた後に警報を発する段階をさらに含む請求項１１に記載の認証方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】本発明は集積回路の認証方法に関するものである。
【０００２】
【従来の技術】二進ワードの形式で表された、集積回路の内部署名を含むレジスタを用いる方法が知られている。この内部署名は製品の型または出所を識別するために使用されることがあり、データ要素をメモリ内に書込むためのアクセス時間およびパルス時間に関して適正に使用することができる。また、集積回路がそのアプリケーションにおいて認証されなければならないこともある。これは、特にチップカード型の製品およびそれに由来する製品の場合である。内部署名は、シリアルナンバーおよびキー型式の情報で構成され、認証証明を与えることができる暗号アルゴリズムによって使用される。カードがアプリケーションシステム（カード読取り装置）によって認証されない場合、カードは拒否される。ここで行わなければならないことはアプリケーションシステムはカードの偽造に対抗し、これらカードに内蔵された秘密情報への不正なアクセスに抗して動作することである。
【０００３】認証手順は、カードとアプリケーションシステム（カード読取り装置）との間の交換プロトコルの一部であり、認証システムの安全性は、暗号アルゴリズムの選択と、カードから秘密データ要素が出力されないことによって得られる。これらのデータ要素はさらにアドレスミキシング、データ符号化（置換）または他の手段によってカード内に隠蔽されている。
【０００４】集積回路のコピーが頒布されるのを防ぐために、集積回路の単純な識別と、集積回路の高度で安全な認証との間の中間的なものが必要となってきた。これらの集積回路は現在のアプリケーションに関するもので、いわゆる安全なアプリケーションには必要ない。これらのアプリケーションでは、これら集積回路の出所を確実に識別する、すなわち認証することが求められる。
この必要性は特に、集積回路の大規模な小型化によってパッケージの外側にマーキングをつけることができなくなった結果として、および集積回路のコピーの防止方法を見つけるために集積回路製造業者が払った多大な努力にもかかわらず、これらのまさに同一の集積回路または少なくとも幾つかの回路を多少の困難を伴うがコピーすることができる技術的進歩の結果として、発生したものである。集積回路の小型化、低電力消費、低コスト等により、全ての分野で集積回路の一般的利用が増加していることでこれら全ての局面は悪化している。
【０００５】
【発明が解決しようとする課題】本発明では、暗号文のような独特な手順で構成されない認証方法を求めてきた。このようにして、認証は外部から明瞭に行われる。これにより、より単純で、同時に極めて確実な方法が可能になる。
【０００６】
【課題を解決するための手段】この技術的課題の解決策は、アプリケーションプログラムで使用される集積回路の通常の命令を用いて、集積回路が受ける命令列中の認証処理起動パターンを検出し、集積回路の少なくとも１つの応答を、応答の変更によって集積回路を誤動作させない範囲で、（一時的に）変更することからなる。
【０００７】
【発明の実施の形態】本発明の１つの特徴では、これらの変更は、集積回路の１つまたは複数の命令の実行パス上で行われる。一例では、認証処理起動パターンは、任意のアドレスでの集積回路のメモリに対する８つの読取り命令と３つの書込み命令とで構成することができ、一方、その変更は、次の読取り命令のために読み取られたデータ要素のビットを反転することで行うことができる。アプリケーションシステムは認証処理起動パターンを記憶している。認証処理起動パターンを検出して変更が正しく行われたかを確かめることができる。この例では、再度読取りを行い、読み取った２つのデータ要素を比較するだけでよい。この特徴を知らないユーザーには何も分からない。
【０００８】このアプリケーションシステムが、全ての挙動に変更がないことを確認した場合は、集積回路を認証しない。全ての因果関係がわからないようにするために、異常を検出後、例えば２０の読取りサイクル後のような一定の時間をおいて警報を発生させるのが好ましい。
【０００９】本発明の一つの特徴では、応答の変更手段は集積回路の少なくとも１つの命令の実行パス上に配置される。集積回路がそのアプリケーションにおいて動作不能にならず、しかも変更がアプリケーションシステムによって測定可能である限り、集積回路の応答の変更は任意の種類にすることができる。特別な命令に対する応答時間、交換されたデータ要素に対する応答時間等の変更にすることができる。集積回路で使用される変更手段はＲＣ型遅延回路または他の遅延回路、フリップフロップ回路、クロック周波数分周器またはデータ置換回路にすることができ、これが全てではない。
【００１０】検出手段は命令サイクル（読取りサイクル、書込みサイクル）の数をカウントするためのカウンタ、例えばアドレスのビットの独特な組み合わせを検出するための組合せ回路を含むことができる。本発明の認証方法の実施に使用可能な全ての回路は当業者に周知である。
以下、添付図面を参照してメモリ集積回路への認証方法の適用例で本発明をさらに詳細に説明するが、本発明の範囲をなんら限定するものではない。
【００１１】
【実施例】図１は、本発明の認証方法を適用できる集積回路の形態のメモリを示す。この実施例では、メモリは、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュＥＰＲＯＭまたは並列アクセス型の電気的にプログラム可能なメモリである。しかし、本発明は任意の型の集積回路および任意の型のメモリ（ＲＡＭや他のもの）に適用することができる。外部インターフェースは論理電源電圧端子ＶccおよびＶssと、プログラミング用高電圧端子と、制御信号を受ける各端子とを含み、この制御信号は１つのチップ選択信号ＣＳおよび１つの読取り／書込み信号Ｒ／Ｗを含む。外部インターフェースはアドレス入力端子Ａ０−Ａ７と、データ入力／出力端子Ｄ０−Ｄ７をさらに含む。
【００１２】本発明の集積回路は、ビットラインおよびワードラインで構成されたメモリアレー１を含み、ビットラインおよびワードラインにはアドレスデコーダによってアクセスされる。従って、行（またはワードライン）デコーダＤＥＣ−Ｘおよび列（またはビットライン）デコーダＤＥＣ−Ｙが存在する。列デコーダはゲート回路２を制御し、ゲート回路２は書き込みすべきデータ要素または読み取られたデータ要素を伝送する。ゲート回路は、これらデータ要素を読取り／書込み増幅回路３から、または読取り／書込み増幅回路へ伝送し、この読取り／書込み増幅回路は、データ要素の入力／出力用の外部インターフェースＤ０−Ｄ７の３状態双方向レジスタ４に接続されている。デコーダＤＥＣ−ＸおよびデコーダＤＥＣ−Ｙは、外部インターフェースからアドレス信号Ａ０−Ａ７を受けるアドレスレジスタＡＤＲによって送信されたアドレスに対応するビットラインおよびワードラインを選択する。このレジスタＡＤＲは３状態一方向型のレジスタである。
【００１３】さらに、制御回路５が設けられている。この制御回路は各制御信号Ｒ／Ｗ、ＣＳおよび電圧Ｖcc、ＶssおよびＶppを受けて、集積回路の各要素に順番に配列し、メモリアレーのビットラインおよびワードラインに印加すべき適当な電圧レベルを、受け取った制御信号に応じて印加する。集積回路の機能的な動作に必要な電圧を除いて、他の制御信号Ｒ／ＷおよびＣＳ、アドレス信号Ａ０−Ａ７およびデータ入力／出力信号Ｄ０−Ｄ７は集積回路において一方向または双方向３状態レジスタに接続されている。従って、制御信号Ｒ／ＷおよびＣＳ用のレジスタ６と、アドレス信号Ａ０−Ａ７用レジスタＡＤＲと、データ信号Ｄ０−Ｄ７用双方向レジスタ４とが存在する。
【００１４】集積回路の制御回路５によって新しい命令が解釈されると、制御回路５はこれらレジスタの外部インターフェース側を高インピーダンス状態にし、現在の命令が終了しない限り新しい命令を解釈させないようにする。この目的のために、ＢＵＳＹで表された信号を活性化して高インピーダンス状態を設定する。現在の命令が終了すると、制御回路５はこの信号ＢＵＳＹを非活性化する。現在の命令が読取り命令である場合は、読み取られたデータ要素はデータ入力／出力レジスタ４の出力で外部インターフェースＤ０−Ｄ７に伝送される。
【００１５】このような集積回路メモリの動作は広く知られているので詳細には説明しない。本発明の集積回路認証方法では、集積回路を使用するためのアプリケーションプログラムを実行から得られる予め設定された認証処理起動パターンによって、上記集積回路の少なくとも１つの応答を変更するものである。この変更は、認証処理起動パターンが集積回路によって検出できたときはいつでも、断続的に現れ、外部からは見掛け上ランダムなものとして認識される。したがって、集積回路は少なくとも１つの認証処理起動パターンを検出するための手段を有する。
【００１６】この認証処理起動パターンが所定の数の読取りコマンドまたは書込みコマンドで構成される場合は、図１に示すレジスタ６の後に配置された認証処理起動パターン検出手段７は、図２の一実施例の概念図で示すように、読取り命令（ＣＳ＝１、Ｒ／Ｗ＝０）をカウントするための数ｎの第１のカウンタ８と、書込み命令（ＣＳ＝１、Ｒ／Ｗ＝１）をカウントするための数ｍの第２のカウンタ９を備え、この２つのカウンタの出力は組合せ回路１０で結合され、認証処理を起動させるために第１の認証処理起動信号ＡＵＴ１を出力する。
【００１７】別の可能な認証処理起動パターンは、現在の命令が対象とするアドレスのビットの特別な組み合わせで構成することができる。検出手段はアドレスレジスタＡＤＲの出力に配置された組合せ手段１１を備えることができる。特に単純な例では、認証処理起動パターンは奇数パリティアドレスの存在で構成される。認証処理起動信号ＡＵＴ２は、この場合、図１に示すようにアドレスビットＡ０によって単純に出力される。データレジスタ４の入力に類似の検出手段１２を使用して、入力に印加されたデータビットの特別な組み合わせを検出して対応する認証処理起動信号ＡＵＴ３を出力することも当然可能である。
【００１８】他の認証処理起動パターンも可能である。認証方法は１つまたは複数の認証処理起動パターンを使用することが可能で、これらの認証処理起動パターンは組み合わされて、所望の信頼性および複雑性に応じて単一の認証処理起動信号を出力したり、各種認証処理起動信号を各種変更手段に出力する。フリップフロップ回路は各種認証処理起動パターンの生成を記憶するために使用することができ、出現順序（決められていても、決められていなくてもよい）に従って各種認証処理起動パターンを互いに組み合わせることができるが、フリップフロップ回路をリセットする手段を設ける必要がある。
【００１９】説明する実施例では、３つの検出手段が存在し、それぞれ認証処理起動信号ＡＵＴ１、ＡＵＴ２およびＡＵＴ３を出力する。これら認証処理起動信号は集積回路の少なくとも１つの応答を変更する手段を活性化させる。本発明の１つの特徴では、これらの変更手段は集積回路の１つまたは複数の命令の実行パス上に配置される。
【００２０】図３に示す第１実施例では、ＥＥＰＲＯＭに適用する場合、これらの応答の変更手段は、プログラミング電圧ランプの立ち上がり時間を変更できる回路を含む。プログラミング電圧ランプ発生回路は一般に、充電電流Ｉc をキャパシタＣに出力できる基準電流発生装置Ｉref を含み、キャパシタＣの端子は所望の電圧ランプを送り出す。追加の充電電流を印加することで、ランプ立ち上がり時間を減少または増加して変更する。
【００２１】実施例では例えば、基準電流発生装置Ｉref は、電圧Ｖccが供給される負荷Ｒと、その負荷Ｒに直列接続され且つグラウンドに接続され、そのゲートがそのドレインに接続されるトランジスタＭ１を備える。キャパシタＣを充電する回路はプログラミング高電圧Ｖppとグラウンドとの間に直列接続された２つのトランジスタＭ２およびＭ３を備えた第１アームを含む。トランジスタＭ３のゲートはトランジスタＭ１のゲートによって制御され、トランジスタＭ３はカレントミラー効果によってＫ×Ｉref （ＫはトランジスタＭ３とトランジスタＭ１との幾何学比）に等しい電流を流す。
【００２２】充電回路はキャパシタＣに直列接続されたトランジスタＭ４をプログラミング高電圧Ｖppとグラウンドとの間に設けた第２アームを含む。トランジスタＭ４はトランジスタＭ３のカレントミラー効果によって制御され（トランジスタＭ２のゲートとドレインは接続されている）、電流Ｋ×Ｉref を（トランジスタＭ３とＭ４との幾何学比に従って）流す。キャパシタはこの電流Ｋ×Ｉref でＶppまで徐々に充電される。Ｖppレベルは時間ｔ１の終わりに達成される。
【００２３】本発明では、第１アームのトランジスタＭ３に並列接続された別のトランスミッタＭ３'が設けられ、トランジスタＭ１のカレントミラー効果によって電流Ｋ'×Ｉref を流す。このトランジスタＭ３'は選択トランジスタＭ５によってグラウンドに接続され活性化され、選択トランジスタＭ５のゲートは認証処理起動信号によって制御される（実施例では信号ＡＵＴ２）。トランジスタＭ５が活性化されたとき、トランジスタＭ３'はトランジスタＭ４によって導通されたキャパシタの充電電流を増加させ、これはＫ×Ｉref ＋Ｋ'×Ｉref に等しくなる。電圧ランプ立ち上がり時間ｔ２は短くなる（ｔ２＜ｔ１）。プログラミングは速くなる。これはアプリケーションシステムによって容易に測定することができる。なぜなら集積回路は新しい命令をはるかに速く考慮できるからである（応答時間が短くなり、信号ＢＵＳＹは迅速に非活性化する）。例えば、ランプの立ち上がり時間が動作モードで１．５ミリ秒で、この特性に関する許容値の範囲が１〜２ミリ秒である場合、変更した立ち上がり時間が約１ミリ秒になるように変更手段を調整する。
【００２４】実施例では、この変更回路は奇数パリティアドレスの検出で認証処理起動信号ＡＵＴ２（Ａ０＝１）によって活性化される。この場合、変更は現在の命令がプログラミング命令の場合にのみ有効である。それ以外の場合は有効ではない。要するに、認証処理起動パターンの検出は、順番に組み合わされた２つの検出動作を有するといえる。書込み動作（Ｒ／Ｗ＝１）と、奇数パリティアドレス（Ａ０＝１）との検出を組み合わせることによって、変更を活性化するようになっている。
【００２５】集積回路の応答を変更するための別の回路はデータ要素を変更するための回路で構成することができる。一例として、データ置換・多重化回路１５がデータ出力レジスタ４の前に設けられている。メモリの出力データは置換回路１７の入力およびマルチプレクサ１８の入力に印加される。マルチプレクサの他方の入力は置換回路の出力を受ける。マルチプレクサの出力はデータ出力レジスタに印加される。マルチプレクサの選択された入力はデフォルトではメモリの出力である。他方の入力は認証処理起動信号の活性化時にしか選択されず、所定の認証処理起動パターンの検出に対応する。実施例では、変更手段１５、１７は認証処理起動信号ＡＵＴ１によって活性化される。アプリケーションシステムは置換を認識し、したがって応答の変更を「測定」することができる。図示した実施例では、変更は現在の命令が読取り命令である場合しか行われない。それ以外の場合は何も起こらない。このように全てが協働して変更をランダム変更にするため、認証方法がユーザーにとって明瞭になる。
【００２６】置換回路１７の代わりに、外部データ入力／出力ピンにおけるデータ要素の出力を遅らせる回路を設けることができる。この場合、変更の測定は、アプリケーションシステムでは応答時間、すなわち最後にデータ要素が外部データ入力／出力バスで利用可能になるような時間を測定することにある。
【００２７】図１の点線で示す別の実施例では、遅延回路ＲＣ０を、検出回路１２の出力と読取り／書込み増幅回路の入力との間に配置することができ、これらは例えば認証処理起動信号ＡＵＴ３によって活性化され、対応する認証処理起動パターンを検出するときに、外部データバスによって送信されたデータ要素を現在の命令が解釈するのを遅らせる。遅延回路ＲＣ０はＲＣ型または他の型のいわゆる遅延回路と、遅延のない通常パスの選択または遅延のある変更パスの選択を可能にするマルチプレクサとを備えていることは理解しなければならない。
【００２８】さらに、読取り／書込み増幅回路３を活性化するためのコマンドパスＳ１上に認証処理起動信号ＡＵＴ３によって活性化される遅延回路ＲＣ１を配置したり、アドレスレジスタＡＤＲの出力に認証処理起動信号ＡＵＴ１で制御される遅延回路ＲＣ２を配置することができる。
【００２９】シリアルアクセス回路の場合に使用する重要な信号はクロック信号である。この信号は本発明の認証処理起動パターンまたは変更に使用できよう。図４に示す一例では、クロック信号を用いる認証処理起動パターンはｋクロックサイクルの検出で構成される。この検出手段は出力に認証処理起動信号ＡＵＴ４を送り出すためのｋクロックサイクルのカウンタ１３を備える。この検出手段は単独または他の要素と組み合わせて用いることができ、本発明の変更を活性化する。
【００３０】本発明の変更の一つは許容値の範囲内で集積回路のクロック周波数を変化させることにあろう。図４に示すようにクロック周波数の分周器１９、例えば２分周器を設けることができ、数クロックサイクルの間回路を減速させる。この場合は、一方の周波数から他方の周波数へ難なく移行するための適当な回路機構を設ける必要があろう。実施例では、分周器は認証処理起動信号ＡＵＴ４によって活性化される。当然、他の認証処理起動信号を用いることもできる。ここに挙げたものが本発明の認証方法の実施例のすべてではないことは明らかである。
【００３１】この種の遅延回路は、単純なＲＣ回路または論理ゲートによって形成することができ、集積回路の命令パスの回路の各種内部要素に加えることができ、応答時間を測定可能な程度に変更する。大きさは変更が対象となる応答時間の許容値の範囲内であるように与えられる。本発明の認証方法の実施例は全てを網羅しているものではなく、多くの手段を提供することは理解できよう。これらの手段は信頼度および所望の明瞭性に依存し、さらに本発明方法を適用する回路に依存する。
【００３２】マイクロプロセッサを有する回路かどうか、シリアルアクセスメモリかパラレルアクセスメモリかに依存し、さらに外部インターフェースの信号およびクロック信号の有無に依存して非常に多くの変形例を用いることができる。特に、シリアルアクセスメモリの場合のアプリケーションシステムには一般に応答時間を測定するための受信承認信号またはビジー回路信号を使用することができる。
【００３３】使用される各種の回路は集積回路の応答の変更を見掛け上ランダムにトリガしなければならない。この変更によって回路を動作不能にしてはならず、すなわち、変更を無視できるほうが良い。これは変更がアプリケーションシステムに知られている方法で変更されたデータ要素に属するものであったり、知られていない方法で変更されたデータ要素に関するものであるためや（この場合はアプリケーションシステムが命令を再実行できる）、あるいは変更が特性（命令に対する応答）にこの特性の許容値の範囲内で作用するためである。
【図面の簡単な説明】
【図１】本発明の認証方法を実施する手段を備えた並列アクセスの集積回路メモリを示す。
【図２】認証処理起動パターンを検出するための回路の一例を示す概念図である。
【図３】図１のメモリの応答を変更するための回路の一例を示す。
【図４】本発明の直列アクセス集積回路への適用例に関して、クロック信号を利用した検出・変更装置を示す。
【符号の説明】
１  メモリアレー
２  ゲート回路
３  読取り／書込み増幅回路
４  ３状態両方向レジスタ
５  制御回路
６  制御信号用レジスタ
７  認証処理起動パターン検出回路
８  第１カウンタ
９  第２カウンタ
１０  組合せ回路
１２  検出手段
１３  カウンタ
１５  置換・多重化回路
１７  置換回路
１８  マルチプレクサ
１９  分周器