(57)【要約】【課題】  回路全体で処理速度を低下させることなく、消費電流解析によるセキュリティデータやデータ処理手順の解読を困難にし、セキュリティデータの漏洩や不正利用を効果的に防止できる半導体集積回路を提供する。【解決手段】  セキュリティデータまたはそのデータ処理手順が記憶されたメモリ２０、３０、４０と、データ処理手順の実行を制御する主制御手段１０と、データ処理手順の実行で用いられる伝送データを伝送するデータバス１００と、データバス１００に接続された周辺装置の全てについてデータバス１００に対する伝送データの入出力を制御する伝送制御信号に基づいて、データバス１００が使用されているか否かを検出する使用状態判定手段７０と、無効データを生成する無効データ生成手段８０と、データバス１００が使用されていないと判定された場合に、データバス１００に対し無効データを出力するバス制御手段９０を備える。【選択図】        図１
2008269060.tif 000002
【特許請求の範囲】
【請求項１】
所定のセキュリティデータ、若しくは、前記セキュリティデータを用いたセキュリティデータ処理手順を含むデータ処理手順の１または複数が記憶されたメモリの１または複数と、
前記メモリに記憶された前記データ処理手順の実行を制御する主制御手段と、
前記主制御手段による前記データ処理手順の実行において用いられる伝送データを伝送するデータバスと、を備える半導体集積回路であって、
前記メモリを含む前記データバスに接続された周辺装置に対する前記データバスを介した前記伝送データの入出力を制御するための１または複数の伝送制御信号に基づいて、前記データバスが使用されているか否かを検出する使用状態判定手段と、
無効データを生成する無効データ生成手段と、
前記使用状態判定手段において前記データバスが使用されていないと判定された場合に、前記データバスに対し、前記無効データ生成手段が生成した前記無効データを出力するバス制御手段と、を備えることを特徴とする半導体集積回路。
【請求項２】
前記無効データ生成手段は、前記無効データの前記データバスへの伝送前に伝送される前記伝送データに対するデータ変化量、若しくは、前記無効データの前記データバスへの伝送後に伝送される前記伝送データに対するデータ変化量が、予め設定された所定の変化量となるように、前記無効データを生成することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記無効データ生成手段は、所定の乱数を発生させる乱数発生手段を備え、前記乱数発生手段から出力される前記乱数を用いて前記無効データを生成することを特徴とする請求項１または２に記載の半導体集積回路。
【請求項４】
前記無効データ生成手段は、
前記無効データの前記データバスへの伝送前に伝送される前記伝送データに対するデータ変化量、若しくは、前記無効データの前記データバスへの伝送後に伝送される前記伝送データに対するデータ変化量が、予め設定された所定の変化量となるように、前記無効データを生成する第１無効データ生成手段と、
所定の乱数を発生させる乱数発生手段を備え、前記乱数発生手段から出力される前記乱数を用いて前記無効データを生成する第２無効データ生成手段と、
予め設定された所定のデータを前記無効データとする第３無効データ生成手段と、を備え、
所定の無効データ切り替え条件に基づいて、前記第１無効データ生成手段、前記第２無効データ生成手段または前記第３無効データ生成手段の何れか一つを選択することを特徴とする請求項１に記載の半導体集積回路。
【請求項５】
前記無効データ生成手段は、所定の前記データ処理手順で用いられる前記伝送データの反転データを生成し、前記伝送データの前記データバスへの伝送前または伝送後の前記データバスが使用されていない期間に、前記反転データを前記無効データとして出力することを特徴とする請求項１〜４の何れか１項に記載の半導体集積回路。
【請求項６】
前記主制御手段は、前記バス制御手段による前記無効データの出力可否を設定するバス制御信号を生成し、
前記バス制御手段は、前記無効データ生成手段から前記無効データを受け付けて、前記主制御手段からの前記バス制御信号に応じて前記無効データを前記データバスに出力することを特徴とする請求項１〜５の何れか１項に記載の半導体集積回路。
【請求項７】
前記バス制御手段は、前記メモリ及び前記主制御手段から出力される前記伝送データの夫々と前記無効データ生成手段から出力される前記無効データを受け付け、前記伝送データ及び前記無効データの内の何れか一つを前記データバスに出力する出力切り替え手段を備え、
前記周辺装置は、夫々、出力が前記バス制御手段を介して前記データバスに接続され、前記バス制御手段を介して前記データバスに前記伝送データを出力するように構成されており、
前記出力切り替え手段は、前記使用状態判定手段において前記データバスが使用されていないと判定された場合に、前記無効データを出力するように切り替えることを特徴とする請求項１〜５の何れか１項に記載の半導体集積回路。
【請求項８】
通常動作用に供給されるシステムクロックとは別に無効データ用クロックを生成するクロック生成回路を備え、
前記無効データ生成手段は、前記無効データ用クロックに同期して前記無効データを生成し、
前記バス制御手段は、前記無効データ用クロックに同期して前記無効データを出力することを特徴とする請求項１〜７の何れか１項に記載の半導体集積回路。
【請求項９】
前記クロック生成回路は、前記システムクロックを逓倍または分周して、前記無効データ用クロックを生成することを特徴とする請求項８に記載の半導体集積回路。
【請求項１０】
前記クロック生成回路は、クロック周波数またはクロックタイミングの異なる複数のクロック信号を生成可能に構成され、前記クロック信号の何れか一つを選択して前記無効データ用クロックとして出力することを特徴とする請求項８または９に記載の半導体集積回路。
【請求項１１】
前記クロック生成回路は、外部入力信号に応じて、前記無効データ用クロックの生成及び停止、クロック周波数及びクロックタイミングを設定することを特徴とする請求項８〜１０の何れか１項に記載の半導体集積回路。
【請求項１２】
請求項１〜１１の何れか１項に記載の半導体集積回路を備えてなることを特徴とするＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、特に、データバスに対する消費電流波形の観測によるデータ処理の解読を防止するデータ処理解読防止機能を備えた半導体集積回路に関する。
【背景技術】
【０００２】
半導体集積回路を搭載したＩＣカード等においては、半導体集積回路を構成するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ等の不揮発性メモリ及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリを含む周辺装置から出力されるデータにより、データバス上のデータが変化する際に、データ変化量に応じて、消費電流波形が変化する。尚、ここでのデータ変化量は、例えば、データバス上で、値が“０”から“１”または“１”から“０”に変化したビット数で規定される。
【０００３】
具体的には、例えば、１６ビットのデータバスに出力された伝送データの値が００００ｈ（１６進数）からＦＦＦＦｈに変化した場合、値が“０”（Ｈｉｇｈレベル）から“１”（Ｌｏｗレベル）に変化したビットの数は、１６個となる。また、伝送データの値が１１１１ｈからＦＦＦＦｈに変化した場合、値が“０”から“１”に変化したビットの数は、１２個となる。半導体集積回路では、値が“０”から“１”に変化したビットの数、つまり、データ変化量に応じて、消費電流波形に差が生じる。このため、半導体集積回路の消費電流波形を観測することにより、データ変化時の消費電流波形の差から、データバスを伝送される伝送データの値や、データ処理手順（命令コード）の内容を推測することが可能である。
【０００４】
従って、個人情報や各種認証情報（パスワードや電子署名）等、機密性が極めて高いセキュリティデータ、或いは、各種認証処理に係る命令コード等、セキュリティデータを処理する命令コードを記憶したメモリを備える半導体集積回路では、不正利用者による被害防止のため、消費電流解析により、セキュリティデータが漏洩したり、セキュリティデータ等に対する命令コードが解読されたりするのを防止する必要がある。
【０００５】
消費電流解析によるセキュリティデータの漏洩や命令コードの解読を防止する技術としては、例えば、命令コードにおける伝送データの遷移タイミングを、通常とは異なるタイミングに変化させる半導体集積回路がある（例えば、特許文献１参照）。具体的には、特許文献１に記載の半導体集積回路では、データバスへの伝送データの出力において、待機時間の設定、及び、割り込み処理の実行により、伝送データの出力タイミングを変化させている。
【０００６】
ここで、図１３は、特許文献１に記載の半導体集積回路における各信号波形及び消費電流波形を示している。図１３（ａ）は、通常動作時の各信号波形及び消費電流波形を示しており、図１３（ｂ）は、１ビット構成の待機要求信号により、伝送データの出力タイミングに待機時間を設定する場合の各信号波形及び消費電流波形を示している。特許文献１に記載の半導体集積回路は、図１３（ｂ）に示すように、待機要求信号が“１”の期間は、伝送データが変化しないように構成されている。尚、図１３（ａ）及び図１３（ｂ）に示すように、消費電流波形に変化が現れるのは、データバス上の伝送データの値が変化するときであり、待機要求信号が“１”に設定され、データバス上の伝送データの値が変化しないときは、消費電流波形に変化は生じない。
【０００７】
【特許文献１】特開２０００−２５９７９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載の半導体集積回路では、データバスへの伝送データの出力タイミングを変化させるために、待機時間の設定や割り込み処理を実行する等して、伝送データの出力タイミングを時間的に後方にずらすように構成されているため、半導体集積回路全体で処理速度が低下するという問題があった。
【０００９】
また、例えば、消費電流解析の解析手法によっては、データバスへの伝送データの出力における待機時間を抽出することが可能である場合が考えられる。この場合には、データバス上の伝送データの信号波形から待機時間を取り除くことが可能になり、消費電流解析によるセキュリティデータの漏洩やデータ処理手順の解読に対する防止効果を十分に期待できない可能性がある。
【００１０】
本発明は上記の問題に鑑みてなされたものであり、その目的は、回路全体で処理速度を低下させることなく、消費電流解析によるセキュリティデータやデータ処理手順の解読を困難にし、セキュリティデータの漏洩や不正利用を効果的に防止できる半導体集積回路を提供する点にある。また、ＩＣカード全体で処理速度を低下させることなく、消費電流解析によるセキュリティデータやデータ処理手順の解読を困難にし、不正操作によるデータ漏洩やデータ処理手順の解読を効果的に防止できるＩＣカードを提供する。
【課題を解決するための手段】
【００１１】
上記目的を達成するための本発明に係る半導体集積回路は、所定のセキュリティデータ、若しくは、前記セキュリティデータを用いたセキュリティデータ処理手順を含むデータ処理手順の１または複数が記憶されたメモリの１または複数と、前記メモリに記憶された前記データ処理手順の実行を制御する主制御手段と、前記主制御手段による前記データ処理手順の実行において用いられる伝送データを伝送するデータバスと、を備える半導体集積回路であって、前記メモリを含む前記データバスに接続された周辺装置に対する前記データバスを介した前記伝送データの入出力を制御するための１または複数の伝送制御信号に基づいて、前記データバスが使用されているか否かを検出する使用状態判定手段と、無効データを生成する無効データ生成手段と、前記使用状態判定手段において前記データバスが使用されていないと判定された場合に、前記データバスに対し、前記無効データ生成手段が生成した前記無効データを出力するバス制御手段と、を備えることを第１の特徴とする。
【００１２】
上記特徴の本発明に係る半導体集積回路は、前記無効データ生成手段は、前記無効データの前記データバスへの伝送前に伝送される前記伝送データに対するデータ変化量、若しくは、前記無効データの前記データバスへの伝送後に伝送される前記伝送データに対するデータ変化量が、予め設定された所定の変化量となるように、前記無効データを生成することを第２の特徴とする。
【００１３】
上記何れかの特徴の本発明に係る半導体集積回路は、前記無効データ生成手段は、所定の乱数を発生させる乱数発生手段を備え、前記乱数発生手段から出力される前記乱数を用いて前記無効データを生成することを第３の特徴とする。
【００１４】
上記第１の特徴の本発明に係る半導体集積回路は、前記無効データ生成手段は、前記無効データの前記データバスへの伝送前に伝送される前記伝送データに対するデータ変化量、若しくは、前記無効データの前記データバスへの伝送後に伝送される前記伝送データに対するデータ変化量が、予め設定された所定の変化量となるように、前記無効データを生成する第１無効データ生成手段と、所定の乱数を発生させる乱数発生手段を備え、前記乱数発生手段から出力される前記乱数を用いて前記無効データを生成する第２無効データ生成手段と、予め設定された所定のデータを前記無効データとする第３無効データ生成手段と、を備え、所定の無効データ切り替え条件に基づいて、前記第１無効データ生成手段、前記第２無効データ生成手段または前記第３無効データ生成手段の何れか一つを選択することを第４の特徴とする。
【００１５】
上記何れかの特徴の本発明に係る半導体集積回路は、前記無効データ生成手段は、所定の前記データ処理手順で用いられる前記伝送データの反転データを生成し、前記伝送データの前記データバスへの伝送前または伝送後の前記データバスが使用されていない期間に、前記反転データを前記無効データとして出力することを第５の特徴とする。
【００１６】
上記何れかの特徴の本発明に係る半導体集積回路は、前記主制御手段は、前記バス制御手段による前記無効データの出力可否を設定するバス制御信号を生成し、前記バス制御手段は、前記無効データ生成手段から前記無効データを受け付けて、前記主制御手段からの前記バス制御信号に応じて前記無効データを前記データバスに出力することを第６の特徴とする。
【００１７】
上記第１〜第５の特徴の本発明に係る半導体集積回路は、前記バス制御手段は、前記メモリ及び前記主制御手段から出力される前記伝送データの夫々と前記無効データ生成手段から出力される前記無効データを受け付け、前記伝送データ及び前記無効データの内の何れか一つを前記データバスに出力する出力切り替え手段を備え、前記周辺装置は、夫々、出力が前記バス制御手段を介して前記データバスに接続され、前記バス制御手段を介して前記データバスに前記伝送データを出力するように構成されており、前記出力切り替え手段は、前記使用状態判定手段において前記データバスが使用されていないと判定された場合に、前記無効データを出力するように切り替えることを第７の特徴とする。
【００１８】
上記何れかの特徴の本発明に係る半導体集積回路は、通常動作用に供給されるシステムクロックとは別に無効データ用クロックを生成するクロック生成回路を備え、前記無効データ生成手段は、前記無効データ用クロックに同期して前記無効データを生成し、前記バス制御手段は、前記無効データ用クロックに同期して前記無効データを出力することを第８の特徴とする。
【００１９】
上記特徴の本発明に係る半導体集積回路は、前記クロック生成回路は、前記システムクロックを逓倍または分周して、前記無効データ用クロックを生成することを第９の特徴とする。
【００２０】
上記第８または第９の特徴の本発明に係る半導体集積回路は、前記クロック生成回路は、クロック周波数またはクロックタイミングの異なる複数のクロック信号を生成可能に構成され、前記クロック信号の何れか一つを選択して前記無効データ用クロックとして出力することを第１０の特徴とする。
【００２１】
上記第８〜第１０の特徴の本発明に係る半導体集積回路は、前記クロック生成回路は、外部入力信号に応じて、前記無効データ用クロックの生成及び停止、クロック周波数及びクロックタイミングを設定することを第１１の特徴とする。
【００２２】
上記目的を達成するための本発明に係るＩＣカードは、上記何れかの特徴の半導体集積回路を備えてなることを第１の特徴とする。
【発明の効果】
【００２３】
上記特徴の半導体集積回路によれば、データバスへの伝送データの出力またはデータバスからの伝送データの受け付けの制御に係る伝送制御信号に基づいて、データバスが使用されていない期間に、データバスに対し無効データを出力するように構成したので、従来技術のように、待機時間の設定や割り込み処理を行わないため、半導体集積回路全体での処理速度の低下を招くことがない。
【００２４】
また、上記特徴の半導体集積回路によれば、データバスが使用されていない期間にデータバスに対し無効データを出力するように構成したので、ＣＰＵ（主制御手段に相当）によるデータ処理手順の実行中に、本来のデータ処理手順の実行では現れない消費電流の変化を発生させることができる。これにより、消費電流解析によるセキュリティデータやデータ処理手順の解読を飛躍的に困難にすることが可能になり、セキュリティデータの漏洩や不正利用をより効果的に防止することが可能になる。
【００２５】
従って、例えば、盗難や紛失等により上記特徴の半導体集積回路を搭載したＩＣカード等の機器を入手した悪意のある第三者が、消費電流解析によりセキュリティデータやデータ処理手順の解読を試みても、解読に成功する確率が飛躍的に低くなる。また、上記特徴の半導体集積回路によれば、データバスが使用されていない期間にデータバスに対し無効データを出力するように構成したことで、消費電流解析によるセキュリティデータやデータ処理手順の解読が飛躍的に困難になる。このため、仮に、悪意のある第三者がセキュリティデータやそのデータ処理手順の解読に成功した場合でも、解読に係る時間が飛躍的に長くなることが期待できる。これにより、上記特徴の半導体集積回路を搭載した機器の本来の正当使用者は、悪意のある第三者による被害に対する対策を講じる時間をより多く確保することが可能になる。これによって、上記特徴の半導体集積回路を搭載した機器のセキュリティ性をより高めることが可能になる。
【００２６】
尚、上記特許文献１に記載した半導体集積回路に、上記特徴の本発明に係る半導体集積回路の構成を組み合わせて、例えば、待機時間に無効データを出力するように構成すれば、待機時間の抽出が困難になり、上記特許文献１に記載した半導体集積回路におけるセキュリティ性をより高めることが可能になる。
【００２７】
更に、例えば、メモリに対する書き込み処理の実行を制御するライトイネーブル信号や読み出し処理の実行を制御するリードイネーブル信号等を伝送制御信号として用いることで、従来の半導体集積回路の構成を利用することができ、上記特徴の半導体集積回路の構築を簡素化することが可能になる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明に係る半導体集積回路（以下、適宜「本発明回路」と略称する）及び本発明に係るＩＣカードの実施形態を図面に基づいて説明する。
【００２９】
〈第１実施形態〉
本発明回路の第１実施形態について、図１及び図２を基に説明する。尚、本実施形態では、本発明回路１が接触型のＩＣカード２に搭載されている場合を想定して説明する。
【００３０】
先ず、本実施形態の本発明回路１及びＩＣカード２の構成について、図１を基に説明する。ここで、図１は、本実施形態の本発明回路１Ａを搭載したＩＣカード２の概略構成を示している。
【００３１】
図１に示すように、ＩＣカード２は、本発明回路１Ａに係る基本構成として、所定のセキュリティデータ、若しくは、セキュリティデータを用いたセキュリティ用命令コード（セキュリティデータ処理手順に相当）を含む命令コード（データ処理手順に相当）の複数が記憶されたメモリの複数と、メモリに記憶された命令コードの実行を制御するＣＰＵ（主制御手段に相当）１０と、ＣＰＵ１０による命令コードの実行において用いられる伝送データを伝送するデータバス１００を備えて構成されている。
【００３２】
更に、本実施形態のＩＣカード２に搭載された本発明回路１Ａは、無効データの生成及び伝送に係る装置として、メモリを含むデータバス１００に接続された周辺装置に対するデータバス１００を介した伝送データの入出力を制御するための１または複数の伝送制御信号に基づいて、データバス１００が使用されているか否かを検出する使用状態判定回路７０（使用状態判定手段に相当）と、無効データを生成する無効データ生成回路８０Ｘ（無効データ生成手段に相当）と、使用状態判定回路７０においてデータバス１００が使用されていないと判定された場合に、データバス１００に対し、無効データ生成回路８０Ｘが生成した無効データを出力するバス制御回路９０Ａ（バス制御手段に相当）を備えている。尚、伝送制御信号は、周辺装置夫々に対応して各別に生成され、各周辺回路に各別に備えられた制御線（図示せず）を介して各周辺装置に入力される。
【００３３】
また、本実施形態のＩＣカード２は、ＩＣカード２本来の機能に係る装置（周辺装置）の一例として、所定の命令コードの実行開始タイミングや割り込みタイミング等を設定するタイマ６０、ＩＣカード２と外部機器の間でデータ伝送を行うための入出力ポート５０、ＩＣカード２に搭載された内部装置（無効データの生成及び伝送に係る装置及び周辺装置）に電力を供給する電源端子ＶＤＤ、各内部装置を接地電圧に接続するための接地端子ＧＮＤ、各内部装置を初期状態にするためのリセット端子ＲＳＴ、入出力ポート５０をＩＣカード２の外部装置と電気的に接続する入出力端子Ｉ／Ｏ、及び、各内部装置にシステムクロックを供給するためのクロック端子ＣＬＫを備えている。尚、本実施形態では、メモリ、入出力ポート５０、タイマ６０、使用状態判定回路７０、無効データ生成回路８０Ｘ及びバス制御回路９０Ａは、システムクロックに同期して動作するように構成されている。
【００３４】
尚、本実施形態のＩＣカード２では、データバス１００と双方向の通信が可能な入出力データ線で接続された各周辺装置、ここでは、ＲＡＭ３０、フラッシュメモリ４０、入出力ポート５０及びタイマ６０は、夫々、後述するＣＰＵ１０によって各周辺装置夫々に対応して各別に生成された伝送制御信号に基づいて、出力状態（内部装置からデータバス１００への伝送データの出力が可能な状態）或いは出力停止状態（ここでは、データバス１００上の伝送データの受け付けが可能な入力状態）に切り替え可能に構成されている。更に、データバス１００と出力方向の通信が可能な出力データ線で接続された周辺装置、ここでは、ＲＯＭ２０は、後述するＣＰＵ１０によって各周辺装置夫々に対応して各別に生成された伝送制御信号に基づいて、出力状態或いは出力停止状態（ここでは、ハイインピーダンス状態）に切り替え可能に構成されている。また、バス制御回路９０Ａは、データバス１００と出力方向の出力データ線で接続されており、後述するＣＰＵ１０から出力されるバス制御信号に基づいて、出力状態或いは出力停止状態（ハイインピーダンス状態）に切り替え可能に構成されている。本実施形態では、各周辺装置及びバス制御回路９０Ａは、伝送制御信号及びバス制御信号が活性状態のときに出力状態となるように構成されている。
【００３５】
より詳細には、本発明回路１Ａに係るメモリは、図１に示すように、本実施形態では、個人情報や認証情報等のセキュリティデータ、及び、ＣＰＵ１０上で実行されることにより、本発明回路１Ａが搭載されたＩＣカード２本来の機能を実現するプログラムを構成する命令コード（セキュリティ用命令コードを含む）を格納する不揮発性メモリの一例としてのＲＯＭ２０、ＣＰＵ１０により、命令コードの実行において命令コードや各種データを記憶する不揮発性メモリの一例としてのフラッシュメモリ４０、及び、揮発性メモリの一例としてのＲＡＭ３０である。ここで、ＲＯＭ２０やフラッシュメモリ４０に記憶される命令コードとしては、例えば、パスワードや電子署名を用いた認証処理を実行するためのセキュリティ用命令コードや、外部装置とのデータ通信で用いられるデータに対する暗号処理を実行するための命令コード等を想定している。
【００３６】
ＣＰＵ１０は、本発明回路１Ａに搭載されたメモリを含むデータバス１００に接続された周辺装置、即ち、本実施形態では、ＣＰＵ１０を除く内部装置の全てを各別に制御する。データバス１００に係る制御では、ＣＰＵ１０は、内部装置の複数が同時に出力状態とならないように、内部装置夫々の出力状態及び出力停止状態を設定する伝送制御信号を、各内部装置に対応して各別に生成し、対応する内部装置に対して出力する（図示せず）。
【００３７】
尚、本発明回路１Ａにおいて想定される伝送制御信号は、メモリに対するリードイネーブル信号やライトイネーブル信号等、各内部装置の制御用の信号であり、データバス上に出力される伝送データ（セキュリティデータや、アドレス値）は含まない。より具体的には、ＣＰＵ１０は、ＲＡＭ３０及びフラッシュメモリ４０に対し、伝送制御信号として、書き込み処理の実行を指示するライトイネーブル信号及び読み出し処理の実行を指示するリードイネーブル信号を出力するように構成されている。また、ＣＰＵ１０は、ＲＯＭ２０に対し、伝送制御信号として、読み出し処理の実行を指示するリードイネーブル信号を出力するように構成されている。本実施形態では、更に、ＣＰＵ１０は、生成した伝送制御信号を後述する使用状態判定回路７０に対して出力する。
【００３８】
また、本実施形態のＣＰＵ１０は、後述するバス制御回路９０Ａによるデータバス１００に対する無効データの伝送を制御するために、バス制御回路９０Ａによる無効データの出力可否を設定するバス制御信号を生成し、バス制御回路９０Ａに対して出力する。
【００３９】
データバス１００は、本実施形態では、１６ビットの伝送データを伝送可能な１６ビット構成のバスであり、図１に示すように、双方向データ線或いは出力データ線を介して各周辺装置が接続されている。
【００４０】
使用状態判定回路７０は、本実施形態では、ＣＰＵ１０が周辺装置夫々に対応して各別に生成した伝送制御信号を利用して、データバス１００の使用状態を判定する。より具体的には、使用状態判定回路７０は、伝送制御信号の全てが、出力停止状態を設定する信号である場合に、データバス１００が使用されていないと判定し、伝送制御信号の何れか一つでも出力状態を設定する信号である場合には、データバス１００が使用されていると判定する。更に、使用状態判定回路７０は、判定結果を示す判定信号を、後述する無効データ生成回路８０Ｘ及びバス制御回路９０Ａに対して出力する。
【００４１】
無効データ生成回路８０Ｘは、本実施形態では、所定の乱数を発生させる乱数発生回路８５（乱数発生手段に相当）を備え、乱数発生回路８５から出力される乱数を用いて無効データを生成する。乱数発生回路８５は、本実施形態では、本発明回路１Ａがセキュリティデータを扱うことから、熱雑音等を利用した物理乱数を生成する回路を想定する。尚、乱数発生回路８５は、その他の一般的な乱数発生回路８５や、不正利用者が推測困難な内部状態、例えば、データバス１００から受け付けた伝送データ等の値を利用して乱数を発生する疑似乱数発生回路８５等であっても良い。また、無効データ生成回路８０Ｘは、本実施形態では、使用状態判定回路７０からの判定信号に基づいてデータバス１００が使用されていないと判定されたときに無効データを生成するが、常時無効データを生成するように構成しても良い。
【００４２】
バス制御回路９０Ａは、無効データ生成回路８０Ｘから無効データを受け付けて、使用状態判定回路７０から出力された判定信号に基づいて、データバス１００が使用されていない期間に無効データをデータバス１００に出力する。本実施形態では、バス制御回路９０Ａは、使用状態判定回路７０から出力された判定信号が、データバス１００が使用されていないことを示す場合に、データバス１００に対し無効データ生成回路８０Ｘが生成した無効データを出力する。
【００４３】
ここで、図２は、本実施形態における各種信号の信号波形及び消費電流波形を示している。具体的には、バスデータ、伝送制御信号及びバス制御信号は、システムクロックに同期して遷移する。図２（ａ）に示すように、フラッシュメモリ４０またはＲＡＭ３０に対する書き込み処理を制御するライトイネーブル信号（伝送制御信号の一例）が非活性状態、ここでは、“０”であり、且つ、バス制御信号が活性状態、ここでは、“１”の場合に、無効データ（斜線部分）がデータバス１００に出力される。逆に、ライトイネーブル信号が活性状態“１”であり、バス制御信号が非活性状態“０”である場合は、データバス１００上には、伝送データ（網掛け部分）の一例としての書き込みデータが伝送される。
【００４４】
図２（ａ）から分かるように、本発明回路１Ａのデータバス１００に係る消費電流波形の変化は、データバス１００上のデータの値が変化したとき、即ち、無効データと伝送データの切り替え時（時間ｔ０、ｔ１、ｔ２、ｔ３等）に観測される。このため、伝送データ間での切り替え時（時間ｔ０、ｔ２等）のみに消費電流波形の変化が観測される図１３と比較すると、消費電流波形の変化が多く観測される。無効データのランダム性により、伝送データと無効データの切り替え時における消費電流波形のランダム性が高くなるため、本発明回路１Ａは、消費電流解析によるデータや命令コードの解読が困難な回路であるといえる。
【００４５】
尚、本実施形態の本発明回路１Ａにおいて、データバス１００が使用されていない状態とは、例えば、データバス１００に伝送された伝送データがメモリを含む周辺装置の何れにおいても利用されていない場合等、データバス１００に無効データを出力してもＩＣカード２の本来の動作に影響を与えない状態を意味している。
【００４６】
より詳細には、一般的に、半導体集積回路では、所定のタイミング、本実施形態では、システムクロックの立ち上がりのタイミングに同期して、メモリに対する書き込み処理及び読み出し処理等が行われ、これに伴って、システムクロックに同期して、データバス１００に対するデータの入出力が行われる。従って、データバス１００に対するデータの入出力が行われるタイミングを含む一定期間を除けば、他の伝送データがデータバス１００上に出力されている期間であっても、無効データを出力してもＩＣカード２本来の動作に影響を与えないといえる。
【００４７】
即ち、例えば、図２（ｂ）に示すように、伝送データが、システムクロックの２周期毎（例えば、時間ｔ０、ｔ２、ｔ４等）に遷移するように構成され、後半の１周期の間にメモリに対する書き込み処理で利用される場合（後半の１周期の間のみライトイネーブル信号が活性状態となる場合）、前半の１周期の間は、無効データを出力してもＩＣカード２本来の動作に影響を与えない期間、即ち、データバス１００が使用されていない状態であると判定できる。本実施形態の使用状態判定回路７０は、ライトイネーブル信号を伝送制御信号として用いるので、伝送データの前半の１周期の間、つまり、時間ｔ０〜ｔ１、ｔ２〜ｔ３等の期間について、データバス１００が使用されていない状態であると判定することとなる。この期間に無効データをデータバス１００上に出力することで、データバス１００上のデータは、図２（ａ）に示すようになる。
【００４８】
〈第２実施形態〉
本発明回路の第２実施形態について、図３及び図４を基に説明する。尚、本実施形態では、上記第１実施形態とは、無効データ生成回路の構成が異なる場合について説明する。より具体的には、上記第１実施形態では、本発明回路１Ａの無効データ生成回路８０Ｘが乱数を用いて無効データを生成する場合について説明したが、本実施形態では、本発明回路１Ｂの無効データ生成回路８０Ｙが、データ変化量が一定になるように無効データを生成する場合について説明する。
【００４９】
本実施形態の本発明回路１Ｂ及びＩＣカード２の構成について、図３を基に説明する。本実施形態の本発明回路１Ｂは、図３に示すように、本発明回路１Ｂに係る基本構成として、ＲＯＭ２０、ＲＡＭ３０、フラッシュメモリ４０、ＣＰＵ１０、及び、データバス１００を備えている。また、本発明回路１Ｂは、無効データの生成及び伝送に係る装置として、使用状態判定回路７０、無効データ生成回路８０Ｙ、及び、バス制御回路９０Ａを備えている。更に、本発明回路１Ｂは、ＩＣカード２本来の機能に係る装置として、タイマ６０、入出力ポート５０、及び、各種端子を備えて構成されている。尚、本実施形態では、無効データ生成回路８０Ｙ以外の内部装置、即ち、ＲＯＭ２０、ＲＡＭ３０、フラッシュメモリ４０、ＣＰＵ１０、データバス１００、使用状態判定回路７０、バス制御回路９０Ａ、タイマ６０、入出力ポート５０、及び、各種端子の構成は、上記第１実施形態と同じである。
【００５０】
本実施形態の無効データ生成回路８０Ｙは、データバス１００上の伝送データを取得し、無効データのデータバス１００への伝送前に伝送された伝送データに対するデータ変化量が、予め設定された所定の変化量となるように、無効データを生成する。尚、本実施形態におけるデータ変化量は、データが遷移する際に、“０”から“１”に変化するビット数及び“１”から“０”に変化するビット数の合計数で表される。
【００５１】
より詳細には、本実施形態の無効データ生成回路８０Ｙは、所定の伝送データの反転データを生成し、反転データの生成に用いた伝送データのデータバス１００への伝送後のデータバス１００が使用されていない期間に、反転データを無効データとして出力する。
【００５２】
ここで、図４は、本実施形態における各種信号の信号波形及び消費電流波形を示している。具体的には、上述したように、本実施形態ではデータバス１００が１６ビット構成であるため、例えば、図４（ａ）に示すように、伝送データＤｔ０がＦＦＦＦｈ（１６進数）であるとすると、反転データＤｉ０は００００ｈとなる。また、例えば、伝送データＤｔ１がＡＡＡＡｈ（１６進数）であるとすると、反転データＤｉ１は５５５５ｈとなる。同様に、例えば、伝送データＤｔ２が１０１０ｈであるとすると、反転データＤｉ２はＥＦＥＦｈとなる。尚、何れの場合も、反転データＤｉは伝送データＤｔの全てのビットを反転させて生成するので、反転させるビットの数は１６となり、値が変化するビット数で規定されるデータ変化量は一定（１６ビット分）になる。これによって、所定の伝送データと該伝送データに続いて出力される無効データとの間で生じる消費電流波形、具体的には、図４（ａ）の時間ｔ０、時間ｔ２、時間ｔ４、及び、時間ｔ６における波線部分の消費電流波形は同じになる。
【００５３】
尚、本実施形態では、伝送データの全てのビットを反転させて反転データを生成し、これを無効データとしたが、これに限るものではない。例えば、偶数ビットまたは奇数ビットのみ反転させて無効データを生成する構成であっても良いし、予め反転させるビット数を設定しておき、任意に選択したビットを反転させて無効データを生成するように構成しても良い。本実施形態では、値が変化するビットの数をデータ変化量としているので、伝送データと無効データの間のデータ変化量が同じになるように、反転させるビット数が同じであれば良い。
【００５４】
また、本実施形態では、無効データ生成回路８０Ｙが、無効データのデータバス１００への伝送前に伝送された伝送データに対するデータ変化量が一定となるように、無効データを生成する場合について説明したが、これに限るものではない。例えば、フラッシュメモリ４０やＲＡＭ３０に対する書き込み処理等において、無効データ生成回路８０Ｙがデータバス１００への伝送前に伝送データを取得することが可能な場合には、無効データ生成回路８０Ｙを、無効データのデータバス１００への伝送後に伝送される伝送データに対するデータ変化量が一定となるように、無効データを生成するように構成しても良い。即ち、例えば、図４（ａ）において、データバス１００への伝送前の伝送データＤｔ１に対するデータ変化量が一定となるように無効データＤｉ０を生成し、伝送データＤｔ１の伝送前のデータバス１００が使用されていない期間、つまり、時間ｔ０〜ｔ１の間に、無効データＤｉ０を出力するように構成しても良い。
【００５５】
更に、本実施形態において、無効データ生成回路８０Ｙを、無効データのデータバス１００への伝送前に伝送された伝送データに対するデータ変化量と、無効データのデータバス１００への伝送後に伝送された伝送データに対するデータ変化量の両方が、一定となるように構成しても良い。具体的には、例えば、図４（ｂ）において、伝送データＤｔ１とその直前にデータバス１００に出力される無効データＤｉ０２との間のデータ変化量が、伝送データＤｔ１とその直後にデータバス１００に出力される無効データＤｉ１１との間のデータ変化量と同じになるように構成しても良い。
【００５６】
〈第３実施形態〉
本発明回路の第３実施形態について、図５〜図７を基に説明する。尚、本実施形態では、上記第１及び第２実施形態とは、無効データ生成回路８０の構成が異なる場合について説明する。より具体的には、上記第１実施形態では、本発明回路１Ａの無効データ生成回路８０Ｘが、乱数を用いて無効データを生成する場合について、上記第２実施形態では、本発明回路１Ｂの無効データ生成回路８０Ｙが、伝送データに対するデータ変化量が一定となるように無効データを生成する場合について説明したが、本実施形態では、本発明回路１Ｃの無効データ生成回路８０Ｗが、複数の異なる無効データを生成可能に構成されている場合について説明する。
【００５７】
本実施形態の本発明回路１及びＩＣカード２の構成について、図５を基に説明する。本実施形態の本発明回路１Ｃは、図５に示すように、ＲＯＭ２０、ＲＡＭ３０、フラッシュメモリ４０、ＣＰＵ１０、データバス１００、使用状態判定回路７０、無効データ生成回路８０Ｗ、バス制御回路９０Ａ、タイマ６０、入出力ポート５０、及び、各種端子を備えて構成されている。尚、本実施形態では、無効データ生成回路８０Ｗ以外の内部装置、即ち、ＲＯＭ２０、ＲＡＭ３０、フラッシュメモリ４０、ＣＰＵ１０、データバス１００、使用状態判定回路７０、バス制御回路９０Ａ、タイマ６０、入出力ポート５０、及び、各種端子の構成は、上記第１実施形態と同じである。
【００５８】
本実施形態の無効データ生成回路８０Ｗは、図６に示すように、データバス１００上の伝送データを取得可能に構成され、無効データのデータバス１００への伝送前または伝送後に伝送される伝送データに対するデータ変化量が予め設定された所定の変化量となるように、無効データを生成する第１無効データ生成回路８０Ｙ（第１無効データ生成手段に相当）と、乱数発生回路８５を備え、乱数発生回路８５から出力される乱数を用いて無効データを生成する第２無効データ生成回路８０Ｘ（第２無効データ生成手段に相当）と、予め設定された所定のデータを無効データとする第３無効データ生成回路８０Ｚ（第３無効データ生成手段に相当）と、所定の無効データ切り替え条件に基づいて、第１無効データ生成回路８０Ｙ、第２無効データ生成回路８０Ｘまたは第３無効データ生成回路８０Ｚの何れか一つを選択する無効データ切り替え回路８７を備えて構成されている。
【００５９】
尚、第１無効データ生成回路８０Ｙの構成は、上記第２実施形態の無効データ生成回路８０Ｙの構成と同じであり、第２無効データ生成回路８０Ｘの構成は、上記第１実施形態の無効データ生成回路８０Ｘの構成と同じである。
【００６０】
第３無効データ生成回路８０Ｚは、無効データ用レジスタ８６を備え、無効データ用レジスタ８６内に予め記憶された所定のデータを無効データとする。本実施形態では、無効データ用レジスタ８６内に格納される無効データは、ＣＰＵ１０によって書き込まれる。また、本実施形態の第３無効データ生成回路８０Ｚは、無効データ用レジスタ８６に予め複数の無効データ候補を記憶しておき、無効データ用レジスタ８６内に記憶された複数の無効データ候補から１のデータを無作為に選択して、無効データとして出力する。尚、無効データ用レジスタ８６内の無効データ候補の値は、ＣＰＵ１０によって適宜書き換えられる。
【００６１】
無効データ切り替え回路８７は、本実施形態では、第１無効データ生成回路８０Ｙ、第２無効データ生成回路８０Ｘ及び第３無効データ生成回路８０Ｚを、予め設定された所定の選択順序で、第１無効データ生成回路８０Ｙ、第２無効データ生成回路８０Ｘ及び第３無効データ生成回路８０Ｚ夫々に予め設定された切り替え時間が経過する毎に切り替える。尚、第１無効データ生成回路８０Ｙ、第２無効データ生成回路８０Ｘ及び第３無効データ生成回路８０Ｚの選択順序、及び、切り替え時間は、ＣＰＵ１０による設定、若しくは、ＩＣカード２の外部からの入力に応じて変更可能に構成しても良い。
【００６２】
ここで、図７は、本実施形態における各種信号の信号波形及び消費電流波形を示しており、本実施形態の無効データ生成回路８０Ｗが、無効データ切り替え回路８７により第１無効データ生成回路８０Ｙ、第２無効データ生成回路８０Ｘ及び第３無効データ生成回路８０Ｚの選択を切り替える例について示している。具体的には、図７では、時間ｔ３までの期間に乱数データを生成する第２無効データ生成回路８０Ｘを選択し、時間ｔ３において、第２無効データ生成回路８０Ｘから反転データを生成する第１無効データ生成回路８０Ｙに切り替えている。尚、時間ｔ３以降、第１無効データ生成回路８０Ｙが選択されている間における伝送データから無効データへの遷移に伴う消費電流波形、即ち、時間ｔ４、時間ｔ６、時間ｔ８における消費電流波形は同じになる。
【００６３】
尚、本実施形態では、複数種類の無効データを生成可能に構成したので、無効データのランダム性をより高くすることが可能になり、これによって、消費電力解析によるセキュリティデータや命令コードの解読をより困難にすることができる。
【００６４】
更に、本実施形態では、無効データ生成回路８０Ｗの無効データ切り替え回路８７を、任意の順序で所定の切り替え時間毎に、第１無効データ生成回路８０Ｙ、第２無効データ生成回路８０Ｘ及び第３無効データ生成回路８０Ｚを切り替える構成としたが、これに限るものではない。例えば、伝送データの種別（例えば、セキュリティ度）に応じて切り替える構成、実行中の命令コードの種別に応じて切り替える構成、乱数を利用して無作為に選択する構成等、他の無効データ切り替え条件に基づいて無効データを切り替えるように構成しても良いし、複数の無効データ切り替え条件を組み合わせて無効データを切り替えるように構成しても良い。このように構成すれば、よりランダム性が高く規則性の無い無効データを生成することが可能になる。
【００６５】
〈第４実施形態〉
本発明回路の第４実施形態について、図８及び図９を基に説明する。尚、本実施形態では、上記第１〜第３実施形態とは、バス制御回路９０の構成が異なる場合について説明する。具体的には、上記第１〜第３実施形態では、内部装置がデータ線を介して直接データバス１００と接続されている場合について説明したが、本実施形態では、内部装置の出力側がバス制御回路９０Ｂを介してデータバス１００に接続されている場合について説明する。
【００６６】
本実施形態の本発明回路１Ｄ及びＩＣカード２の構成について、図８を基に説明する。ここで、図８は、本実施形態の本発明回路１Ｄ及びＩＣカード２において、各内部装置とデータバスの接続構成の内、各内部装置の出力側の概略構成を示す部分概略ブロック図である。
【００６７】
本実施形態の本発明回路１Ｄは、図８に示すように、本発明回路１Ｄに係る基本構成として、ＲＯＭ２０、ＲＡＭ３０、フラッシュメモリ４０、ＣＰＵ１０、及び、データバス１００を備えている。また、本発明回路１Ｄは、無効データの生成及び伝送に係る装置として、使用状態判定回路７０、無効データ生成回路８０、及び、バス制御回路９０Ｂを備えている。更に、本発明回路１Ｄは、ＩＣカード２本来の機能に係る装置として、タイマ６０、入出力ポート５０、及び、各種端子を備えて構成されている。尚、本実施形態では、バス制御回路９０Ｂ以外の内部装置、即ち、ＲＯＭ２０、ＲＡＭ３０、フラッシュメモリ４０、ＣＰＵ１０、データバス１００、使用状態判定回路７０、無効データ生成回路８０、タイマ６０、入出力ポート５０、及び、各種端子の構成は、上記第１〜第３実施形態の何れかと同じである。
【００６８】
本実施形態では、図８に示すように、各内部装置の出力側は、バス制御回路９０Ｂを介してデータバス１００と接続されており、各内部装置の入力側は、直接データバス１００と接続されている。尚、無効データ生成回路８０は、第２または第３実施形態のように、反転データの生成を行う無効データ生成回路８０Ｙを含む構成である場合には、データバス１００から伝送データを受け付け可能となるように、入力側がデータバス１００と直接接続される（図示せず）。
【００６９】
本実施形態のバス制御回路９０Ｂは、図８に示すように、メモリを含む周辺回路及びＣＰＵ１０から出力される伝送データの夫々と無効データ生成回路８０から出力される無効データを受け付け、伝送データ及び無効データの内の何れか一つをデータバス１００に出力する出力切り替え回路９５（出力切り替え手段に相当）を備えて構成されている。また、伝送制御信号及び使用状態判定回路７０からの判定信号に基づいて、出力するデータを選択する出力切り替え信号を生成する。更に、本実施形態のバス制御回路９０Ｂは、データバス１００への伝送データ及び無効データの出力のために、出力データ線を介してデータバス１００と接続されている。
【００７０】
出力切り替え回路９５は、本実施形態では、ＣＰＵ１０からのバス制御信号に応じて、データバス１００に対し伝送データ及び無効データを出力する場合は、出力状態に、それ以外の場合は、出力停止状態（入力状態）に設定される。更に、出力切り替え回路９５は、出力切り替え信号に基づいて、使用状態判定回路７０においてデータバス１００が使用されていないと判定された場合に、無効データを出力するように切り替える。また、出力切り替え信号に基づいて、周辺装置の何れか１つからデータバス１００に伝送データを出力する場合は、データバス１００を使用する周辺装置を選択する。ここで、図９は、本実施形態における各種信号の信号波形及び消費電流波形を示している。図９に示すように、データバス１００が使用されていない場合、即ち、判定信号が活性状態“１”の場合に、無効データが出力される。
【００７１】
〈第５実施形態〉
本発明回路の第５実施形態について、図１０及び図１１を基に説明する。尚、本実施形態では、上記第１〜第４実施形態とは、クロックの構成が異なる場合について説明する。具体的には、上記第１〜第４実施形態では、本発明回路１の無効データ生成回路８０及びバス制御回路９０が、システムクロックに同期して動作する場合について説明したが、本実施形態では、本発明回路１の無効データ生成回路８０及びバス制御回路９０Ａが、システムクロックとは異なる無効データ用クロックに同期して動作する場合について説明する。
【００７２】
本実施形態の本発明回路１Ｅ及びＩＣカード２の構成について、図１０を基に説明する。ここで、図１０は、上記第１〜第３実施形態の各構成にクロック生成回路１１０を追加した場合について示している。本実施形態の本発明回路１Ｅは、図１０に示すように、本発明回路１Ｅに係る基本構成として、ＲＯＭ２０、ＲＡＭ３０、フラッシュメモリ４０、ＣＰＵ１０、及び、データバス１００を備えている。また、本発明回路１Ｅは、無効データの生成及び伝送に係る装置として、使用状態判定回路７０、無効データ生成回路８０、及び、バス制御回路９０Ａを備えている。更に、本発明回路１Ｅは、ＩＣカード２本来の機能に係る装置として、タイマ６０、入出力ポート５０、及び、各種端子を備えて構成されている。本実施形態の本発明回路１Ｅは、更に、通常動作用に供給されるシステムクロックとは別に無効データ用クロックを生成するクロック生成回路１１０を備えている。
【００７３】
尚、本実施形態では、各内部装置、即ち、ＲＯＭ２０、ＲＡＭ３０、フラッシュメモリ４０、ＣＰＵ１０、データバス１００、使用状態判定回路７０、無効データ生成回路８０、バス制御回路９０Ａ、タイマ６０、入出力ポート５０、及び、各種端子の構成は、上記第１〜第３実施形態の何れかと同じである。但し、無効データ生成回路８０及びバス制御回路９０Ａには、システムクロックに替えて、クロック生成回路１１０が生成した無効データ用クロックが供給されるように構成されており、本実施形態の無効データ生成回路８０は、無効データ用クロックに同期して無効データを生成し、本実施形態のバス制御回路９０Ａは、無効データ用クロックに同期して無効データを出力する。更に、無効データ生成回路８０は、第２または第３実施形態のように、反転データの生成を行う無効データ生成回路８０Ｙを含む構成である場合には、データバス１００から伝送データを受け付け可能となるように、入力側がデータバス１００と直接接続される。
【００７４】
クロック生成回路１１０は、本実施形態では、システムクロックを逓倍または分周して、クロック周波数またはクロックタイミングの異なる複数のクロック信号を生成可能に構成され、ＣＰＵ１０からの制御により生成したクロック信号の何れか一つを選択して無効データ用クロックとして出力するように構成されている。更に、本実施形態のクロック生成回路１１０は、外部入力信号に応じて、無効データ用クロックの生成及び停止、クロック周波数及びクロックタイミングを設定可能に構成されている。尚、本実施形態では、無効データ用クロックの生成及び停止、クロック周波数及びクロックタイミングの設定を、外部入力により変更可能に構成したが、これに限るものではなく、予め固定的に設定されていても良いし、外部入力ではなくＣＰＵ１０からの制御等に基づいて適宜変更するように構成されていても良い。
【００７５】
ここで、図１１は、本実施形態における各種信号の信号波形及び消費電流波形を示している。図１１に示すように、本実施形態のクロック生成回路１１０は、システムクロックを４逓倍したクロック信号ＣＬＫ１、システムクロックを２逓倍したクロック信号ＣＬＫ２、クロック信号ＣＬＫ２のタイミングを１／４周期後方にずらしたクロック信号ＣＬＫ３、及び、システムクロックを２分周したクロック信号ＣＬＫ４を生成し、システムクロック及びクロック信号ＣＬＫ１〜ＣＬＫ４の何れか１つを選択して無効データ用クロックとする。図１１では、無効データ生成回路８０及びバス制御回路９０Ａに、無効データ用クロックＣＬＫ２が入力されている場合について示している。
【００７６】
本実施形態では、システムクロックとは異なる無効データ用クロックを生成するクロック生成回路１１０を設け、無効データ用クロックに応じて無効データを生成するように構成したので、無効データの出力タイミングのランダム性を高め、消費電流解析によるセキュリティデータや命令コードの解読をより困難にすることができる。
【００７７】
尚、本実施形態では、クロック生成回路１１０が、複数のクロック信号を生成して選択するように構成したが、所定の無効データ用クロックのみを生成するように構成しても良い。また、クロック生成回路１１０が生成するクロック信号は、図１１に示すクロック信号ＣＬＫ１〜ＣＬＫ４に限られるものではなく、逓倍数、分周数、タイミングは任意に設定して良い。更に、本実施形態では、システムクロックを逓倍または分周して無効データ用クロックを生成する場合について説明したが、これに限るものではない。例えば、ＩＣカード２の内部に搭載された自励発振回路を利用して無効データ用クロックを生成する構成、或いは、システムクロック以外の外部入力クロックや自励発振回路からのクロックを逓倍または分周して無効データ用クロックを生成する構成等であっても良い。
【００７８】
更に、本実施形態では、図１０に示すように、本発明回路１Ｅを、上記第１〜第３実施形態の本発明回路１Ａ〜１Ｃの何れかの各構成にクロック生成回路１１０を追加した場合について説明したが、図１２に示すように、上記第４実施形態の本発明回路１Ｄの各構成にクロック生成回路１１０を追加して本発明回路１Ｆを構成しても良い。
【００７９】
〈別実施形態〉
〈１〉上記第１〜第５実施形態では、本発明回路１が、接触型のＩＣカード２に搭載されている場合について説明したが、これに限るものではなく、非接触型のＩＣカード２に搭載されていても良いし、接触型・非接触型の両方の機能を備えるＩＣカード２に搭載されていても良い。非接触型のＩＣカード２の場合は、例えば、図１に示す電源端子ＶＤＤ、接地端子ＧＮＤ、リセット端子ＲＳＴ、入出力端子Ｉ／Ｏ及びクロック端子ＣＬＫに替えて、電磁波によりＩＣカード２に対する電力供給及びＩＣカード２とのデータ通信を行うリーダ・ライタ装置と通信を行うための構成として、アンテナ、整流回路、クロック抽出回路、無線信号を変復調する変調回路等を備えて構成される。
【００８０】
〈２〉上記第１〜第５実施形態では、メモリとして、ＲＯＭ２０及びフラッシュメモリ４０、ＲＡＭ３０を備える場合について説明したが、これに限るものではない。メモリとしては、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の他のメモリであっても良い。また、１つのメモリを備える構成であっても良いし、複数のメモリを備える場合には、その組み合わせは任意である。
【００８１】
〈３〉上記第１実施形態では、本発明回路１Ａの無効データ生成回路８０を、乱数データを用いて無効データを生成するように構成し、上記第２実施形態では、本発明回路１Ａの無効データ生成回路８０を、伝送データに対するデータ変動量が等しくなるように無効データを生成したが、これに限るものではない。本発明回路１の無効データ生成回路８０は、上記第３実施形態の第３無効データ生成回路８０Ｚの構成であっても良い。
【図面の簡単な説明】
【００８２】
【図１】本発明に係る半導体集積回路を搭載したＩＣカードの第１実施形態における部分概略構成例を示す概略ブロック図
【図２】本発明に係る半導体集積回路の第１実施形態における各信号波形及び消費電流波形の部分概略構成を示すタイミングチャート
【図３】本発明に係る半導体集積回路を搭載したＩＣカードの第２実施形態における部分概略構成例を示す概略ブロック図
【図４】本発明に係る半導体集積回路の第２実施形態における各信号波形及び消費電流波形の部分概略構成を示すタイミングチャート
【図５】本発明に係る半導体集積回路を搭載したＩＣカードの第３実施形態における部分概略構成例を示す概略ブロック図
【図６】本発明に係る半導体集積回路の第３実施形態における無効データ生成手段の概略構成を示す概略ブロック図
【図７】本発明に係る半導体集積回路の第３実施形態における各信号波形及び消費電流波形の部分概略構成を示すタイミングチャート
【図８】本発明に係る半導体集積回路を搭載したＩＣカードの第４実施形態における部分概略構成例を示す概略ブロック図
【図９】本発明に係る半導体集積回路の第４実施形態における各信号波形及び消費電流波形の部分概略構成を示すタイミングチャート
【図１０】本発明に係る半導体集積回路を搭載したＩＣカードの第５実施形態における部分概略構成例を示す概略ブロック図
【図１１】本発明に係る半導体集積回路の第５実施形態における各信号波形及び消費電流波形の部分概略構成を示すタイミングチャート
【図１２】本発明に係る半導体集積回路を搭載したＩＣカードの第５実施形態における他の部分概略構成例を示す概略ブロック図
【図１３】従来技術に係る半導体集積回路における待機時間の設定に係る信号波形及び消費電流波形の概略を部分的に示すタイミングチャート
【符号の説明】
【００８３】
１      本発明に係る半導体集積回路
２      本発明に係るＩＣカード
１０    ＣＰＵ（主制御手段）
２０    ＲＯＭ（メモリ）
３０    ＲＡＭ（メモリ）
４０    フラッシュメモリ（メモリ）
５０    入出力ポート
６０    タイマ（周辺装置）
７０    使用状態判定回路（使用状態判定手段）
８０    無効データ生成回路（無効データ生成手段）
８０Ｘ  第１無効データ生成回路
８０Ｙ  第２無効データ生成回路
８０Ｚ  第３無効データ生成回路
８０Ｚ  無効データ生成回路（無効データ生成手段）
８５    乱数発生回路
８６    無効データ用レジスタ
８７    無効データ切り替え回路
９０    バス制御回路（バス制御手段）
９５    出力切り替え回路（出力切り替え手段）
１００  データバス
１１０  クロック生成回路
【図１】
2008269060.tif 000003
【図２】
2008269060.tif 000004
【図３】
2008269060.tif 000005
【図４】
2008269060.tif 000006
【図５】
2008269060.tif 000007
【図６】
2008269060.tif 000008
【図７】
2008269060.tif 000009
【図８】
2008269060.tif 000010
【図９】
2008269060.tif 000011
【図１０】
2008269060.tif 000012
【図１１】
2008269060.tif 000013
【図１２】
2008269060.tif 000014
【図１３】
2008269060.tif 000015