(57)【要約】【課題】自己診断処理時間が増大しても、精度を落とすことなく異常を検知することが可能な信号処理装置、ＩＣカード、信号処理方法、及び信号処理プログラムを提供する。【解決手段】外部端末２からリセット信号を受信してから許容時間以内に自己診断処理を実行して当該信号に対する応答を行うＩＣチップ１ａは、当該自己診断処理に用いられる複数の互いに異なるデータの中から少なくとも１つのデータを特定し、特定したデータを用いて自己診断処理を実行する。【選択図】図２
2016035637.tif 000002
【特許請求の範囲】
【請求項１】
外部から信号を受信してから所定時間以内に自己診断処理を実行して当該信号に対する応答を行う信号処理装置であって、
前記自己診断処理に用いられる複数の互いに異なるデータの中から少なくとも１つのデータを特定する特定手段と、
前記特定手段により特定されたデータを用いて自己診断処理を実行する自己診断手段と、
を備えることを特徴とする信号処理装置。
【請求項２】
乱数を生成する乱数生成手段を更に備え、
前記特定手段は、前記乱数生成手段により生成された乱数に基づいて前記データを特定することを特徴とする請求項１に記載の信号処理装置。
【請求項３】
前記特定手段は、前記互いに異なるデータの数で前記乱数を割ったときの余りの値に基づいて前記データを特定する請求項１または２に記載の信号処理装置。
【請求項４】
前記自己診断手段は、前記特定手段により特定された前記データを用いて、前記信号処理装置が備える揮発性メモリの所定領域の書き込み及び読み出し機能を検査することを特徴とする請求項１乃至３の何れか一項に記載の信号処理装置。
【請求項５】
前記自己診断手段は、前記特定手段により特定された前記データを用いて、前記信号処理装置が備える演算手段の演算機能を検査することを特徴とする請求項１乃至３の何れか一項に記載の信号処理装置。
【請求項６】
外部から信号を受信してから所定時間以内に自己診断処理を実行して当該信号に対する応答を行うＩＣカードあって、
前記自己診断処理に用いられる複数の互いに異なるデータの中から少なくとも１つのデータを特定する特定手段と、
前記特定手段により特定されたデータを用いて自己診断処理を実行する自己診断手段と、
を備えることを特徴とするＩＣカード。
【請求項７】
外部から信号を受信してから所定時間以内に自己診断処理を実行して当該信号に対する応答を行うコンピュータにより実行される信号処理方法であって、
前記自己診断処理に用いられる複数の互いに異なるデータの中から少なくとも１つのデータを特定するステップと、
前記特定されたデータを用いて自己診断処理を実行するステップと、
を備えることを特徴とする信号処理方法。
【請求項８】
外部から信号を受信してから所定時間以内に自己診断処理を実行して当該信号に対する応答を行うコンピュータに、
前記自己診断処理に用いられる複数の互いに異なるデータの中から少なくとも１つのデータを特定するステップと、
前記特定されたデータを用いて自己診断処理を実行するステップと、
を実行させることを特徴とする信号処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部から信号を受信してから所定時間以内に自己診断処理を実行して当該信号に対する応答を行うＩＣチップ等の技術分野に関する。
【背景技術】
【０００２】
近年、一般的なＩＣチップは、外部からリセット信号を受信して起動する際に、メモリや暗号コプロセッサ等のハードウェア素子の異常を検知する自己診断処理を実行し、異常が検知されなかった場合に初期応答情報を外部へ送信するようになっている。この自己診断処理では、例えば特許文献１に開示されるように、全てのＲＯＭデータに対してＣＲＣ計算を行なうことにより、予め計算しておいたＣＲＣデータと比較して検査することや、ＲＡＭ等の各バイトにデータ「０ｘＡＡ」を書込み、書込後に読出し、次にデータ「０ｘ５５」を書込み、書込後に読出し、問題ないかを検査することなどが行われる。
【０００３】
ところで、初期応答情報の送信タイミングは、国際規格、及びＩＣカード標準仕様にて定義されており、ＩＣチップがリセット信号を受信してから例えば数百〜数万クロックサイクルに初期応答情報の送信を開始しなければならない。また、個々のキャラクター間隔についても、国際規格、及びＩＣカード標準仕様でそれぞれ要求されており、国際規格、及びＩＣカード標準仕様の両方に準拠する場合に、より厳しい基準を守らなければならない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２５２２８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、半導体技術の進歩とともにメモリ容量や暗号鍵データは増長を続けており、それに伴って自己診断処理時間も増え続けている。そのため、従来の検査方針をそのまま適用すると、上述した国際規格等で定義される条件を満たせなくなり、当該条件を満たすためには検査の精度を落さざるをえなかった。
【０００６】
そこで、本発明は、上記問題等に鑑みてなされたものであり、自己診断処理時間が増大しても、精度を落とすことなく異常を検知することが可能な信号処理装置、ＩＣカード、信号処理方法、及び信号処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、外部から信号を受信してから所定時間以内に自己診断処理を実行して当該信号に対する応答を行う信号処理装置であって、前記自己診断処理に用いられる複数の互いに異なるデータの中から少なくとも１つのデータを特定する特定手段と、前記特定手段により特定されたデータを用いて自己診断処理を実行する自己診断手段と、を備えることを特徴とする。
【０００８】
請求項２に記載の発明は、請求項１に記載の信号処理装置において、乱数を生成する乱数生成手段を更に備え、前記特定手段は、前記乱数生成手段により生成された乱数に基づいて前記データを特定することを特徴とする。
【０００９】
請求項３に記載の発明は、請求項１または２に記載の信号処理装置において、前記特定手段は、前記互いに異なるデータの数で前記乱数を割ったときの余りの値に基づいて前記データを特定する。
【００１０】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載の信号処理装置において、前記自己診断手段は、前記特定手段により特定された前記データを用いて、前記信号処理装置が備える揮発性メモリの所定領域の書き込み及び読み出し機能を検査することを特徴とする。
【００１１】
請求項５に記載の発明は、請求項１乃至３の何れか一項に記載の信号処理装置において、前記自己診断手段は、前記特定手段により特定された前記データを用いて、前記信号処理装置が備える演算手段の演算機能を検査することを特徴とする。
【００１２】
請求項６に記載の発明は、外部から信号を受信してから所定時間以内に自己診断処理を実行して当該信号に対する応答を行うＩＣカードあって、前記自己診断処理に用いられる複数の互いに異なるデータの中から少なくとも１つのデータを特定する特定手段と、前記特定手段により特定されたデータを用いて自己診断処理を実行する自己診断手段と、を備えることを特徴とする。
【００１３】
請求項７に記載の発明は、外部から信号を受信してから所定時間以内に自己診断処理を実行して当該信号に対する応答を行うコンピュータにより実行される信号処理方法であって、前記自己診断処理に用いられる複数の互いに異なるデータの中から少なくとも１つのデータを特定するステップと、前記特定されたデータを用いて自己診断処理を実行するステップと、を備えることを特徴とする。
【００１４】
請求項８に記載の発明は、外部から信号を受信してから所定時間以内に自己診断処理を実行して当該信号に対する応答を行うコンピュータに、前記自己診断処理に用いられる複数の互いに異なるデータの中から少なくとも１つのデータを特定するステップと、前記特定されたデータを用いて自己診断処理を実行するステップと、を実行させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、自己診断処理に用いられる複数の互いに異なるデータの中から少なくとも１つのデータを特定し、特定したデータを用いて自己診断処理を実行するように構成したので、自己診断処理時間が増大しても、許容時間内の応答を担保しつつ、精度を落とすことなく異常を検知することができる。
【図面の簡単な説明】
【００１６】
【図１】ＩＣカード１の概要構成例を示す図である。
【図２】ＣＰＵ１０により実行される初期応答処理の一例を示すフローチャートである。
【図３】書き込み用データが、ＲＡＭ１３の書き込み可能な全領域に書き込まれる様子の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ＩＣチップに対して本発明を適用した場合の実施の形態である。
【００１８】
先ず、図１を参照して、ＩＣカード１の概要構成及び機能について説明する。図１は、ＩＣカード１の概要構成例を示す図である。なお、ＩＣカード１は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ＩＣカード１は、スマートフォンや携帯電話機等の通信機器に組み込まれる。なお、ＩＣチップ１ａは、通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
【００１９】
図１に示すように、ＩＣカード１に搭載されるＩＣチップ１ａは、ＣＰＵ（Central Processing Unit）１０、コプロセッサ１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、不揮発性メモリ１４、乱数生成器１５、及びＩ／Ｏ回路１６を備えて構成される。ＩＣチップ１ａは、本発明の信号処理装置、及びコンピュータの一例である。
【００２０】
乱数生成器１５は、乱数を生成する乱数生成手段の一例である。なお、乱数生成器１５は、ソフトウェアにより構成されてもよい。Ｉ／Ｏ回路１６は、外部端末２とのインターフェイスを担う。接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１６には、例えば、Ｃ１〜Ｃ８の８個の端子が備えられている。例えば、Ｃ１端子は電源端子、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部端末２との間で通信を行うための端子である。一方、非接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１６には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部端末２の例としては、ＩＣカード発行機、ＡＴＭ、改札機、認証用ゲート等が挙げられる。或いは、ＩＣチップ１ａが通信機器に組み込まれる場合、外部端末２には通信機器の機能を担う制御部が該当する。
【００２１】
ＲＯＭ１２または不揮発性メモリ１４には、ＣＰＵ１０、及びコプロセッサ１１に実行させるプログラム、及び各種データが記憶されている。不揮発性メモリ１４としては、例えば、フラッシュメモリが適用される。或いは「Electrically Erasable Programmable Read-Only Memory」が適用されてもよい。ＲＯＭ１２または不揮発性メモリ１４に記憶されるプログラムには、ＣＰＵ１０に実行させる初期応答処理を規定する初期応答処理プログラム（本発明の信号処理プログラムを含む）、及びＣＰＵ１０に実行させるコマンド処理を規定するコマンド処理プログラムが含まれる。また、ＲＯＭ１２または不揮発性メモリ１４に記憶されるプログラムには、コプロセッサ１１に実行させる暗号化処理を規定する暗号化処理プログラム、及びコプロセッサ１１に実行させる復号処理を規定する復号処理プログラムが含まれる。なお、不揮発性メモリ１４には、セキュアな記憶領域が設けられており、この記憶領域には、暗号化処理、及び復号処理で用いられる鍵データ等が記憶される。ＲＡＭ１３は、揮発性メモリであり、ＣＰＵ１０により処理中のデータなどを一時的に保持するための作業用メモリである。
【００２２】
ＣＰＵ１０は、ＩＣチップ１ａ全体の制御を担う主プロセッサであり、本発明のコンピュータの一例である。コプロセッサ１１は、ＣＰＵ１０を補助する補助プロセッサであり、本発明における演算手段の一例である。ＣＰＵ１０は、外部端末２から送信されたリセット信号（リセット）を受信すると、初期応答処理プログラムに従って初期応答処理を実行する。この初期応答処理では、ＣＰＵ１０は、外部端末２からリセット信号を受信してから所定時間以内に自己診断処理を実行して当該リセット信号に対する応答を行う。ここで、所定時間は、例えば、国際規格ISO/IEC 7816 part3等で定められた許容時間である。また、リセット信号に対する応答として、例えば初期応答情報が送信される。初期応答情報は、ＡＴＲ（Answer To Reset）ともいい、主に、通信プロトコルに関するＩＣチップ１ａの性能（例えば、通信速度設定用のパラメータ等）を表している。
【００２３】
そして、本実施形態のＣＰＵ１０は、本発明の特定手段及び自己診断手段として機能し、自己診断処理に用いられる複数の互いに異なるデータの中から少なくとも１つのデータを特定し、特定したデータを用いて自己診断処理を実行する。例えば、自己診断処理において、ＣＰＵ１０は、複数の互いに異なる書き込み用データの中から特定した１つの書き込み用データを用いて、ＲＡＭ１３の所定領域（例えば、書き込み可能な全領域）の書き込み及び読み出し機能（能力）を検査する。書き込み及び読み出し機能の検査では、ＣＰＵ１０は、例えば、特定した書き込み用データをＲＡＭ１３の所定領域に書き込んだ後に読み出し、書き込んだデータと読み出したデータが一致するかを判定する。また、例えば、自己診断処理において、ＣＰＵ１０は、複数の互いに異なる鍵データの中から特定した１つの鍵データを用いて、コプロセッサ１１の例えば暗号演算機能を検査する。暗号演算機能の検査では、ＣＰＵ１０は、例えば、特定した鍵データをコプロセッサ１１に設定して（渡して）、当該鍵データにより所定の平文を暗号化する暗号化処理を実行させ、当該鍵データにより暗号化された暗号文（暗号演算結果）が所定の暗号文と一致するかどうかを判定する。
【００２４】
次に、図２を参照して、本実施形態に係るＩＣチップ１ａにおける初期応答処理について説明する。図２は、ＣＰＵ１０により実行される初期応答処理の一例を示すフローチャートである。図２に示す処理は、例えば外部端末２からリセット信号が受信されたときに開始される。なお、以下の説明において、上述した書き込み用データ、及び暗号データは、例えば４つのグループに分けられているものとする。この場合のグループ数は、「互いに異なるデータの数ｎ」の一例である。例えば、グループ１（グループ番号は１）には書き込み用データ“００（ｈ：ｈは１６進数を示す）”が対応付けられ（例えば、不揮発性メモリ１４に記憶されたテーブル上、または初期応答処理プログラム上で対応付けられ）、グループ２（グループ番号は２）には書き込み用データ“５Ａ（ｈ）”が対応付けられ、グループ３（グループ番号は３）には書き込み用データ“Ａ５（ｈ）”が対応付けられ、グループ４（グループ番号は４）には書き込み用データ“ＦＦ（ｈ）”が対応付けられている。また、グループ１（グループ番号は１）には鍵データＡが対応付けられ、グループ２（グループ番号は２）には鍵データＢが対応付けられ、グループ３（グループ番号は３）には鍵データＣが対応付けられ、グループ４（グループ番号は４）には鍵データＤが対応付けられている。
【００２５】
図２に示す処理が開始されると、ＣＰＵ１０は、乱数生成器１５へ動作命令を出力する（ステップＳ１）。乱数生成器１５は、動作命令に応じて乱数Ｒを生成し、当該生成した乱数ＲをＣＰＵ１０へ出力する。ＣＰＵ１０は、乱数生成器１５により生成された乱数Ｒを取得する（ステップＳ２）。次いで、ＣＰＵ１０は、取得した乱数Ｒに基づいて特定されるグループ番号Ｎに対応付けられた書き込み用データ及び鍵データを特定する（ステップＳ３）。例えば、ＣＰＵ１０は、下記式（１）を用いて、グループ数ｎ（この例では、４）で上記乱数Ｒを割ったときの余りの値（この例では、０、１、２、３の何れか）に基づいて書き込み用データ及び鍵データを特定する。例えば、ＣＰＵ１０は、グループ数ｎで上記乱数Ｒを割ったときの余りの値に１を加算した値をグループ番号Ｎとして特定し、特定したグループ番号Ｎに対応付けられた書き込み用データ及び鍵データを特定する。
【００２６】
Ｎ＝（R mod n）＋１・・・（１）  
【００２７】
次いで、ＣＰＵ１０は、ステップＳ３で特定した書き込み用データ、及び鍵データを用いて自己診断処理を実行する（ステップＳ４）。この自己診断処理において、例えば、ＣＰＵ１０は、ＲＡＭ１３の書き込み可能な全領域（自己診断処理において使用されるスタック領域等の領域を除く）に、書き込み用データとして特定された例えば“５Ａ（ｈ）”を書き込み、当該全領域への書き込みが完了した後、当該全領域に書き込まれたデータを読み出して、書き込んだデータと読み出したデータが一致するかを判定する。さらに、自己診断処理において、例えば、ＣＰＵ１０は、例えば、特定された鍵データＢをコプロセッサ１１に設定して、当該鍵データＢにより所定の平文を暗号化する暗号化処理を実行させ、当該鍵データＢにより暗号化された暗号文を取得して、取得した暗号文と所定の暗号文が一致するかどうかを判定する。なお、自己診断処理において、ＣＰＵ１０は、例えば、ＣＰＵ１０におけるレジスタの書き込み及び読み出し機能の検査、及び不揮発性メモリ１４の情報保持能力の検査（例えば、EDC(Error Detection Code)やCRC（Cyclic Redundancy Check）による誤り検出）等を行う場合もある。
【００２８】
図３は、書き込み用データが、ＲＡＭ１３の書き込み可能な全領域に書き込まれる様子の一例を示す図である。特定された書き込み用データが“５Ａ（ｈ）”である場合、図３（Ｃ）に示すように当該データが書き込まれることになる。一般的な自己診断処理では、図３（Ｂ）〜（Ｅ）に示すように、４パターンの書き込み用データ（グループ１〜４のそれぞれに対応付けられた書き込み用データ）全てが用いられて、書き込み、読み出し、及び一致判定が順次行われる。しかし、本実施形態では、４パターンの書き込み用データのうち、乱数によってランダムに特定された１つの書き込みデータが用いられて書き込み、読み出し、及び一致判定が順次行われるため、自己診断処理時間を短縮することができる。また、本実施形態では、４パターンの鍵データのうち、乱数によってランダムに特定された１つの鍵データが用いられてコプロセッサ１１の暗号演算機能の検査が行われるため、自己診断処理時間を短縮することができる。
【００２９】
次いで、ＣＰＵ１０は、自己診断処理の結果に基づいて、異常があったか否かを判定する（ステップＳ５）。例えば、ＣＰＵ１０は、ＲＡＭ１３に書き込んだデータと読み出したデータが一致しない場合、異常があったと判定（つまり、異常検知）する。また、例えば、ＣＰＵ１０は、コプロセッサ１１から取得した暗号文と所定の暗号文が一致しない場合、異常があったと判定する。ＣＰＵ１０は、異常があったと判定した場合（ステップＳ５：ＹＥＳ）、不揮発性メモリ１４に異常を示す情報を記録し、処理を停止する（ステップＳ６）。一方、ＣＰＵ１０は、異常がないと判定した場合（ステップＳ５：ＮＯ）、上記受信されたリセット信号に対する応答として、初期応答情報（初期応答メッセージ）を外部端末２へ送信し（ステップＳ７）、コマンド待機状態になる。その後、ＣＰＵ１０は、例えば外部端末２から送信されたコマンド（コマンド信号）を受信すると、コマンド処理プログラムに従って当該コマンドに応じたコマンド処理を実行する。
【００３０】
以上説明したように、上記実施形態によれば、外部端末２からリセット信号を受信してから許容時間以内に自己診断処理を実行して当該信号に対する応答を行うＩＣチップ１ａは、当該自己診断処理に用いられる複数の互いに異なるデータの中から少なくとも１つのデータを特定し、特定したデータを用いて自己診断処理を実行するように構成したので、自己診断処理時間が増大しても（例えば、１回の初期応答処理（リセット処理）では診断し切れない事態になったとしても）、許容時間内の応答を担保しつつ、精度を落とすことなく異常を検知することができる。また、上記実施形態によれば、乱数生成器１５により生成された乱数に基づいて上記データを特定するように構成したので、乱数の分布が一様であるならば、統計的にはグループ数に相当するｎ回の初期応答処理によって全てのグループにおけるデータ（書き込み用データ、鍵データ）で自己診断処理を実行することが可能になる。
【００３１】
なお、上記実施形態においては、乱数に基づいて上記グループ番号Ｎを特定するように構成したが、カウンタにより保持されたカウンタ値に基づいてグループ番号Ｎを特定するように構成してもよい。このカウンタは、例えば、不揮発性メモリ１４に設けられ、初期応答処理が行わるたびにカウンタの値を１インクリメントし、カウンタの値が例えば５（つまり、グループ数より１大きい数）になった場合にリセットして１に戻すように構成される。また、上記実施形態においては、外部からリセット信号を受信してから所定時間以内に自己診断処理を実行して当該リセット信号に対する応答を行うことを前提としたが、外部からコマンド信号を受信してから所定時間以内に応答を行うようなケースにおいて、当該所定時間内に自己診断処理が行われる場合に対しても本発明は適用可能である。また、上記実施形態においては、暗号演算機能を有するコプロセッサ１１を備えるＩＣチップ１ａを例にとって説明したが、暗号演算機能を有さないＩＣチップ１ａ等に対しても適用可能である。また、上記実施形態においては、自己診断装置としてＩＣチップ１ａを例にとって説明したが、ＩＣチップ１ａ以外の例えば組み込み型のマイクロコンピュータ（例えば、スマート家電やスマートセンサ等に組み込まれる）に対して本発明を適用してもよい。
【符号の説明】
【００３２】
１  ＩＣカード
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  コプロセッサ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１５  乱数生成器
１６  Ｉ／Ｏ回路
【図１】
2016035637.tif 000003
【図２】
2016035637.tif 000004
【図３】
2016035637.tif 000005