説明

携帯可能電子装置、情報処理方法、及びICカード

【課題】乱数データを必要とする処理の効率化に優れた携帯可能電子装置を提供すること。
【解決手段】携帯可能電子装置は、通信手段と、生成手段と、実行手段とを備える。前記通信手段は、外部装置と通信する。前記生成手段は、拡張乱数データを生成する。前記実行手段は、前記通信手段により受信された第1のコマンドに対応して、前記拡張乱数データの一部により構成される第1の乱数データに基づき第1の処理を実行し、前記通信手段により受信された第2のコマンドに対応して、前記拡張乱数データの一部により構成される第2の乱数データに基づき第2の処理を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、携帯可能電子装置、情報処理方法、及びICカードに関する。
【背景技術】
【0002】
近年、安全性に優れるICカード(接触式カード及び非接触式ICカード)の普及が目覚しい。ICカード(携帯可能電子装置)は、リーダライタと通信するための通信I/Fを備え、さらに、通信I/Fと接続されたIC(Integrated Circuit)チップを備えている。例えば、ICチップは、電力供給が断たれてもデータを保持する事が可能なEEPROM、各種動作を実行するCPUなどの制御素子、CPUの動作プログラム等を記憶するROM、及びデータを一時的に記憶するRAMを備えている。
【0003】
ICカードは、クレジットカード、定期券、その他の商取引の決済に使われるだけでなく、社員証、会員証、保険証などのIDカードとしても様々な分野で使われるようになっている。これは、従来の磁気カードに比べ、ICカードが、CPU、ROM、RAM、EEPROMなどを有するICチップを備えることにより、様々な機能が実現可能となったこと、さらには偽造が難しいためセキュリティの面でも大きく向上したことが要因である。
【0004】
上記したICカードは、リーダライタから送信される各種コマンドに基づき各種処理を実行する。また、各種処理の中には、乱数データを必要とする処理もある。例えば、乱数データを必要とする処理として、認証処理が挙げられる。
【0005】
ICカード及びリーダライタの間で認証処理が実行される場合、例えば、リーダライタは、ICカードに対して、認証データの固定化を防ぐために乱数データの生成を要求する乱数要求コマンドを送信し、さらに、認証データに基づく認証処理を要求する認証コマンドを送信する。乱数要求コマンドは、ISO/IEC 7816-4において、例えば、GET CHALLENGEコマンドとして規定されている。また、認証コマンドは、ISO/IEC 7816-4において、例えば、MUTUAL AUTHENTICATEコマンドとして規定されている。ICカードは、乱数要求コマンドの受信に対応して乱数データを生成し、認証コマンドの受信に対応して認証処理を実行する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2009−32003号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記したように、各種処理の中には、乱数データを必要とする処理がある。乱数データを必要とする処理が複数回発生する場合、ICカードは、乱数データを複数回生成することになり、非効率である。
【0008】
本発明の目的は、乱数データを必要とする処理の効率化に優れた携帯可能電子装置、情報処理方法、及びICカードを提供することにある。
【課題を解決するための手段】
【0009】
実施形態によれば、携帯可能電子装置は、通信手段と、生成手段と、実行手段とを備える。前記通信手段は、外部装置と通信する。前記生成手段は、拡張乱数データを生成する。前記実行手段は、前記通信手段により受信された第1のコマンドに対応して、前記拡張乱数データの一部により構成される第1の乱数データに基づき第1の処理を実行し、前記通信手段により受信された第2のコマンドに対応して、前記拡張乱数データの一部により構成される第2の乱数データに基づき第2の処理を実行する。
【図面の簡単な説明】
【0010】
【図1】第1〜第3の実施形態に共通のICカードシステム(別称、スマートカードシステム)の概略構成を示すブロック図である。
【図2】第1〜第3の実施形態に共通のカードリーダ/ライタの概略構成を示すブロック図である。
【図3】第1〜第3の実施形態に共通のICカードの概略構成を示すブロック図である。
【図4】乱数要求コマンド(GET CHALLENGEコマンド)のコマンドメッセージの一例を示す図である。
【図5】乱数を必要とする処理に関するコマンドメッセージの一例を示す図である。
【図6】第1の実施形態に係るコマンド処理の一例を示すフローチャートである。
【図7】第2の実施形態に係るコマンド処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、第1〜第3の実施形態について図面を参照して説明する。
【0012】
図1は、第1〜第3の実施形態に共通のICカードシステム(別称、スマートカードシステム)の概略構成を示すブロック図である。図1に示すように、ICカードシステムは、端末1(通信装置)及びICカード2(携帯可能電子装置)により構成される。端末1は、制御部11、ディスプレイ12、キーボード13、カードリーダ/ライタ14を備えている。端末1はICカード2と通信可能に構成されており、端末1はICカード2に対してデータを送信したり、ICカード2からのデータを受信したりする。
【0013】
制御部11は、例えば、複数の通信方式及び複数のアプリケーションを選択的に実行することができる。ディスプレイ12は、ICカード2との通信結果及び認証結果等を表示する。キーボード13は、制御部11に対して文字や数字等を入力する。カードリーダ/ライタ14は、ICカード2と通信する。
【0014】
なお、ICカード2は、接触式のカード、非接触式のカード(無線カード)、及び非接触式と接触式の両者をサポートするコンビ型のカードのいずれであってもよい。
【0015】
図2は、第1〜第3の実施形態に共通のカードリーダ/ライタ14の概略構成を示すブロック図である。図2に示すように、カードリーダ/ライタ14は、通信I/F142、CPU143、データメモリ(不揮発性メモリ)144、RAM145、ROM146を備えている。CPU143は、ICカード2に対してコマンド等の送信を制御したり、ICカード2からの応答を検出したり、ICカード2からの応答に基づきさらにICカード2に対してコマンド等の送信を制御したりする。
【0016】
図3は、第1〜第3の実施形態に共通のICカードの概略構成を示すブロック図である。図3に示すように、ICカード2は、例えばプラスティックカードであり、ICモジュール20(ICチップ)を備え、ICモジュール20は、通信I/F201、CPU204、データメモリ(EEPROM、FRAM、FLASH等の不揮発性メモリ)205、RAM206、ROM207を備えている。なお、携帯可能電子装置の一例として、上記したようなICカード2について説明するが、本実施形態はこれに限定されるものではない。例えば、携帯可能電子装置は、SIM形状のICカードであってもよい。
【0017】
RAM206は、ワーキングメモリとして機能する。ROM207は、CPU204により実行されるICカードプログラムを保持する。CPU204は、ROM207に記憶されたICカードプログラム等に基づき動作する。また、CPU204は、データメモリ205又はRAM206に記憶されたデータを読み出したり、データメモリ205又はRAM206に対してデータを書き込んだり、さらには、通信I/F201を介して受信したコマンド(端末1から送信されたコマンド)を解釈し実行したり、通信I/F201を介して端末1に対してコマンド実行結果の返信を制御したりする。
【0018】
上記説明したICカード2(CPU204)は、乱数データを必要とする複数の処理用の乱数データ(以下、説明を分かりやすくするために拡張乱数データと称する)を生成し、通信I/F201により受信された第1のコマンド(例えば認証処理コマンド)に対応して、拡張乱数データの一部により構成される第1の乱数データに基づき第1の処理(例えば認証処理)を実行し、通信I/F201により受信された第2のコマンド(例えば暗号化暗証番号照合コマンド)に対応して、拡張乱数データの一部により構成される第2の乱数データに基づき第2の処理(暗号化暗証番号照合処理)を実行する。例えば、拡張乱数データは、第1の処理で必要とされる第1の乱数データのデータ長と第2の処理で必要とされる第2の乱数データのデータ長との合計以上のデータ長となる。
【0019】
例えば、カードリーダ/ライタ14が、ICカード2に対して、GET CHALLENGEコマンドを送信し、乱数データを要求した場合、ICカード2は、GET CHALLENGEコマンドを受信し、拡張乱数データを生成し、拡張乱数データを複数の乱数データに分割し、夫々の分割乱数データを、乱数データを必要とする夫々の処理に使用する。これにより、カードリーダ/ライタ14が、ICカード2に対して、乱数データを必要とする複数処理を実行させる場合であっても、カードリーダ/ライタ14は、ICカード2に対して、GET CHALLENGEコマンドを複数回送信しなくて済む。例えば、カードリーダ/ライタ14が、ICカード2に対して、1回のGET CHALLENGEコマンドを送信するだけで、乱数データを必要とする複数の処理を実行させることが可能となる。つまり、乱数データ要求処理(GET CHALLENGEコマンド処理)の回数を減らすことができ、処理時間の短縮を図ることができる。
【0020】
図4は、乱数要求コマンド(GET CHALLENGEコマンド)のコマンドメッセージの一例を示す図である。このコマンドメッセージのフォーマットは、ISO/IEC 7816-4によって規定されている。図4に示すように、乱数要求コマンド(GET CHALLENGEコマンド)のコマンドメッセージは、CLA(クラスバイト)、INS(インストラクションバイト)、P1(パラメータバイト)、P2(パラメータバイト)、Leによって構成されている。
【0021】
Leは、Leフィールドと呼ばれる。一般的にLeフィールドで指定される値は、ICカードから返信されるデータの最大長を表す。例えば、GET CHALLENGEコマンドを構成するLeフィールドには、要求する乱数データ長が設定される。つまり、Leフィールドに対して、GET CHALLENGEコマンド実行後に、乱数データを使用する一つのコマンド処理で必要とされる乱数データ長が設定される。或いは、このLeフィールドに対して、00hが設定される。この場合、乱数データ長は指定されず、暗黙的了解に従って乱数データ長が特定されることになる。つまり、事前に取り決められた乱数データ長が特定されることになる。
【0022】
前者のケースでは、例えば、Leフィールドに対して18hが設定されると、カードリーダ/ライタ14は、ICカード2に対して、24byteの乱数データを要求することとなる。後者のケースでは、Leフィールドに対して00hが設定されると、カードリーダ/ライタ14は、ICカード2に対して、暗黙的了解に従った長さの乱数データを要求することとなる。
【0023】
図5は、乱数を必要とする処理に関するコマンドメッセージの一例を示す図である。図5に示すコマンドメッセージは、例えば、認証処理コマンドのコマンドメッセージである。このコマンドメッセージのフォーマットは、ISO/IEC 7816-4によって規定され、CLA(クラスバイト)、INS(インストラクションバイト)、P1(パラメータバイト)、P2(パラメータバイト)、Lc、Dataによって構成されている。
【0024】
LcはLcフィールド、DataはDataフィールドと呼ばれる。Dataフィールドに対して、処理に必要とするデータが設定される。Lcフィールドに対して、Dataフィールドの長さを示すデータ長が設定される。例えば、認証処理では、Dataフィールドに対して、処理にて必要とする認証データが設定され、Lcフィールドに対して、前記認証データの長さを示す認証データ長が設定される。
【0025】
次に、上記した拡張乱数データの使用方法について述べる。
【0026】
上記したICカード2(CPU204)は、拡張乱数データを生成し、さらに、拡張乱数データの一部により構成される第1の乱数データを使用した場合、第1の乱数データの第1のデータ長を使用済み乱数データ長として管理することができる。例えば、上記したICカード2(CPU204)は、データメモリ205又はRAM206に使用済乱数データ長を格納する変数(Length Of Used Dataと命名する。)を保存する。
【0027】
例えば、上記したICカード2(CPU204)は、第1のデータ長の第1の乱数データを必要とする第1の処理を実行するために、初めて拡張乱数データを使用する場合、拡張乱数データを構成する一番端のデータから第1のデータ長分を第1の乱数データとして使用する。ICカード2(CPU204)は、第1の乱数データの使用に対応して、第1の乱数データの第1のデータ長をLength Of Used Dataに加算する。
【0028】
次に、ICカード2(CPU204)が、第2のデータ長の第2の乱数データを必要とする第2の処理を実行する場合、Length Of Used Dataの値に基づき、拡張乱数データを構成する一番端のデータから第1のデータ長分は使用せず、拡張乱数データを構成する一番端のデータから第1のデータ長の次のデータから第2のデータ長分を第2の乱数データとして使用する。ICカード2(CPU204)は、第2の乱数データの使用後に、第2の乱数データの第2のデータ長をLength Of Used Dataに加算する。
【0029】
例えば、第1の乱数データの第1のデータ長が8バイト長である場合、拡張乱数データの一番端(先頭バイト)から8バイト長が第1の乱数データとして使用され、Length Of Used Dataに8バイト長を示す情報が格納される。第2の乱数データの第2のデータ長が16バイト長である場合、拡張乱数データの9バイト目から16バイト長が第2の乱数データとして使用され、Length Of Used Dataに16バイト長を示す情報が加算され、その結果、Length Of Used Dataには24バイト長を示す情報が格納される。
【0030】
また、ICカード2(CPU204)は、乱数データを必要とする処理の実行を指示するコマンドを受け取ると、処理に必要な乱数データのデータ長と、拡張乱数データを構成する未使用乱数データのデータ長とを比較する。未使用乱数データのデータ長が、処理に必要な乱数データのデータ長以上あれば、ICカード2(CPU204)は、未使用乱数データを使用し、乱数データを必要とする処理を実行する。未使用乱数データのデータ長が、処理に必要な乱数データのデータ長以上ない場合には、ICカード2(CPU204)は、乱数データ不足を示す乱数不足情報をカードリーダ/ライタ14へ送信する(以下、第1の実施形態で詳細に説明する)。或いは、未使用乱数データのデータ長が、処理に必要な乱数データのデータ長以上ない場合には、ICカード2(CPU204)は、追加乱数を生成する(以下、第2の実施形態で詳細に説明する)。或いは、ICカード2(CPU204)は、未使用乱数データのデータ長が閾値データ長より短くなった場合、追加乱数を生成する(以下、第3の実施形態で詳細に説明する)。
【0031】
(第1の実施形態)
図6は、第1の実施形態に係るコマンド処理の一例を示すフローチャートである。
【0032】
例えば、端末1の制御部11の指示に基づき、カードリーダ/ライタ14(CPU143)は、通信I/F142を介して、ICカード2に対して、GET CHALLENGEコマンドを送信する(ST1011)。
【0033】
ICカード2(CPU204)は、通信I/F201を介して、GET CHALLENGEコマンドを受信し、拡張乱数データを生成し、拡張乱数データをRAM206に保存する(ST2010)。
【0034】
例えば、カードリーダ/ライタ14が、GET CHALLENGEコマンドにより、32バイト長の乱数を要求し、これに対応して、ICカード2が、32バイト長の拡張乱数データを生成してもよいし、カードリーダ/ライタ14が、GET CHALLENGEコマンドにより、データ長を指定せずに乱数を要求し、これに対応して、ICカード2が、32バイト長(事前に定められたデータ長)の拡張乱数データを生成してもよい。或いは、カードリーダ/ライタ14が、GET CHALLENGEコマンドにより、8バイト長の乱数を要求し、この要求に従わず、ICカード2が、32バイト長(事前に定められたデータ長)の拡張乱数データを生成してもよい。つまり、ICカード2は、要求されたデータ長(例えば8バイト)と異なるデータ長(例えば32バイト)の拡張乱数データを生成してもよい。
【0035】
続いて、ICカード2は、通信I/F201を介して、カードリーダ/ライタ14に対して、拡張乱数データを送信する(ST2011)。
【0036】
カードリーダ/ライタ14は、通信I/F142を介して、拡張乱数データを受信し、拡張乱数データをRAM145に保存する。例えば、端末1の制御部11から認証コマンドの送信が指示された場合、カードリーダ/ライタ14は、拡張乱数データの一部により構成される第1の乱数データに基づき認証データを生成し、認証データを含む認証コマンドをICカード2に対して送信する(ST1021)。例えば、カードリーダ/ライタ14は、32バイト長の拡張乱数データのうち、先頭から8バイトにより構成される8バイト長の第1の乱数データに基づき認証データを生成する。
【0037】
ICカード2(CPU204)は、通信I/F201を介して、認証コマンドを受信する。認証コマンドに基づく認証処理は、例えば、8バイト長の乱数データを必要とする処理である。従って、認証コマンドを受信したICカード2は、RAM206に保存された拡張乱数データの一部により構成される8バイト長の第1の乱数データに基づき認証データを生成する。
【0038】
例えば、ICカード2は、Length Of Used Dataを確認し、Length Of Used Dataに0バイト長(初期値)を示す情報が格納されていれば、使用可能な残りの乱数データ長(未使用乱数データ長)は32バイトと判断する。ICカード2は、認証処理に必要な8バイト長の第1の乱数データを取得可能と判断する。これに対応して、ICカード2は、32バイト長の拡張乱数データのうち、先頭から8バイトまでの8バイト分のデータにより構成される8バイト長の第1の乱数データに基づき認証データを生成し、生成した認証データと受信した認証コマンドに含まれた認証データとを照合し、認証処理を実行する(ST2020)。つまり、ICカード2は、使用済乱数データ長を格納する変数であるLength Of Used Dataを確認し、先頭から8バイトの未使用データを使用し、認証データを生成する。これに対応して、ICカード2は、8バイト長(使用済みデータ長)を示す情報をLength Of Used Dataに格納する(ST2020)。
【0039】
認証に成功したICカード2は、通信I/F201を介して、カードリーダ/ライタ14に対して、処理成功情報を送信する(ST2021)。
【0040】
続いて、端末1の制御部11から暗号化暗証番号照合コマンドの送信が指示された場合、カードリーダ/ライタ14(CPU143)は、通信I/F142を介して、ICカード2に対して、暗号化暗証番号照合コマンドを送信する(ST1031)。
【0041】
ICカード2は、通信I/F201を介して、暗号化暗証番号照合コマンドを受信する。暗号化暗証番号照合コマンドに基づく暗号化暗証番号照合処理は、例えば、16バイト長の乱数データを使用する処理である。従って、暗号化暗証番号照合コマンドを受信したICカード2は、RAM206に保存された拡張乱数データの一部により構成される16バイト長の第2の乱数データに基づき照合データを生成する。
【0042】
例えば、ICカード2は、Length Of Used Dataを確認し、Length Of Used Dataに8バイト長を示す情報が格納されていれば、使用可能な残りの乱数データ長(未使用乱数データ長)は24バイトと判断する。ICカード2は、暗号化暗証番号照合処理に必要な16バイト長の第2の乱数データを取得可能と判断する。これに対応して、ICカード2は、32バイト長の拡張乱数データのうち、9バイト目から24バイト目までの16バイト分のデータにより構成される16バイト長の第2の乱数データに基づき照合データを生成し、生成した照合データと受信した暗号化暗証番号照合コマンドに含まれた照合データとを照合し、暗号化暗証番号照合処理を実行する(ST2030)。つまり、ICカード2は、使用済乱数データ長を格納する変数であるLength Of Used Dataを確認し、9バイト目から24バイト目までの未使用データを使用し、照合データを生成する。これに対応して、ICカード2は、16バイト長(使用済みデータ長)を示す情報をLength Of Used Dataに加算する(ST2030)。これにより、Length Of Used Dataには、24バイト長(使用済みデータ長)を示す情報が格納されることになる。
【0043】
照合に成功したICカード2は、通信I/F201を介して、カードリーダ/ライタ14に対して、処理成功情報を送信する(ST2031)。
【0044】
続いて、端末1の制御部11から署名生成コマンドの送信が指示された場合、カードリーダ/ライタ14(CPU143)は、通信I/F142を介して、ICカード2に対して、署名生成コマンドを送信する(ST1041)。
【0045】
ICカード2は、通信I/F201を介して、署名生成コマンドを受信する。署名生成コマンドに基づく署名生成処理は、例えば、24バイト長の第3の乱数データを使用する処理である。署名生成コマンドを受信したICカード2は、Length Of Used Dataを確認し、Length Of Used Dataに24バイト長を示す情報が格納されていれば、使用可能な残りの乱数データ長(未使用乱数データ長)は8バイトと判断する(ST2040)。ICカード2は、署名生成処理で必要とされる第3の乱数データのバイト長と未使用乱数データ長とを比較し、署名生成処理に必要な24バイト長の第3の乱数データを取得不能と判断する(ST2040)。つまり、ICカード2は、拡張乱数データを構成する未使用データの不足により、拡張乱数データから、第3の乱数データを取得できないと判断する。これに対応して、ICカード2は、通信I/F201を介して、カードリーダ/ライタ14に対して、乱数データ不足情報を送信する(ST2041)。
【0046】
上記説明したように、ICカード2は、例えば、1回のGET CHALLENGEコマンドを受信するだけで、複数の処理用の拡張乱数データを生成し、拡張乱数データの一部により構成される複数の乱数データを使用し、複数の処理を実行することができる。つまり、カードリーダ/ライタ14は、ICカードに対して、乱数データを必要とする複数の処理(例えばN回の処理)を実行させる場合であっても、GET CHALLENGEコマンドをN回送信しなくて済み、例えば、GET CHALLENGEコマンドをN回より少ないM回だけ送信すれば、乱数データを必要とするN回の処理を実行させることができ、処理の効率化を図ることができる。また、ICカードは、拡張乱数データを構成する未使用データが不足した場合には、カードリーダ/ライタ14に対して、乱数データ不足情報を送信し、処理を滞らせないようにすることができる。
【0047】
なお、上記説明では、ICカード2が、拡張乱数データの未使用データから第1の乱数データ及び第2の乱数データを生成するものとして説明したが、本実施形態はこれに限定されるものではない。例えば、ICカード2が、一部に共通データを含む第1の乱数データ及び第2の乱数データを生成するようにしてもよい。例えば、ICカード2は、拡張乱数データの先頭から8バイトを使用して8バイト長の第1の乱数データを生成し、また、拡張乱数データの4バイト目から19バイト目までの16バイトを使用して16バイト長の第2の乱数データを生成するようにしてもよい。
【0048】
(第2の実施形態)
図7は、第2の実施形態に係るコマンド処理の一例を示すフローチャートである。
【0049】
例えば、端末1の制御部11の指示に基づき、カードリーダ/ライタ14(CPU143)は、通信I/F142を介して、ICカード2に対して、GET CHALLENGEコマンドを送信する(ST1111)。
【0050】
ICカード2(CPU204)は、通信I/F201を介して、GET CHALLENGEコマンドを受信し、拡張乱数データを生成し、拡張乱数データをRAM206に保存する(ST2110)。
【0051】
例えば、カードリーダ/ライタ14が、GET CHALLENGEコマンドにより、32バイト長の乱数を要求し、これに対応して、ICカード2が、32バイト長の拡張乱数データを生成してもよいし、カードリーダ/ライタ14が、GET CHALLENGEコマンドにより、データ長を指定せずに乱数を要求し、これに対応して、ICカード2が、32バイト長(事前に定められたデータ長)の拡張乱数データを生成してもよい。或いは、カードリーダ/ライタ14が、GET CHALLENGEコマンドにより、8バイト長の乱数を要求し、この要求に従わず、ICカード2が、32バイト長(事前に定められたデータ長)の拡張乱数データを生成してもよい。つまり、ICカード2は、要求されたデータ長(例えば8バイト)と異なるデータ長(例えば32バイト)の拡張乱数データを生成してもよい。
【0052】
続いて、ICカード2は、通信I/F201を介して、カードリーダ/ライタ14に対して、拡張乱数データを送信する(ST2111)。
【0053】
その後、乱数を必要とする複数の処理により、32バイト長の拡張乱数データのうちの、28バイト長の乱数データが使用されたと仮定する。つまり、Length Of Used Dataには28バイト長を示す情報が格納され、32バイト長の拡張乱数データのうちの、使用可能な残りの乱数データ長(未使用乱数データ長)は4バイトである(ST2120)。
【0054】
この状態で、例えば、カードリーダ/ライタ14(CPU143)が、認証コマンドをICカード2に対して送信する(ST1121)。通信I/F201を介して、認証コマンドを受信する。認証コマンドに基づく認証処理は、例えば、8バイト長の第1の乱数データを必要とする処理である。
【0055】
認証コマンドを受信したICカード2は、Length Of Used Dataを確認し、Length Of Used Dataに格納された28バイト長を示す情報から、使用可能な残りの乱数データ長(未使用乱数データ長)は4バイトと判断する。つまり、ICカード2は、拡張乱数データを構成する未使用データの不足により、拡張乱数データから、認証処理のための8バイト長の第1の乱数データを取得できないと判断する(ST2130)。そこで、ICカード2は、追加乱数データを生成し、RAM206に追加乱数データを保存する。追加乱数データは、不足分のデータ長(例えば4バイト)であってもよいし、不足分のデータ長より長いデータ長(例えば5バイト以上)であってもよい。続いて、ICカード2は、通信I/F201を介して、カードリーダ/ライタ14に対して、追加乱数データを送信する(ST2131)。なお、ICカード2は、拡張乱数データを構成する未使用データを今後使用しない場合には、Length Of Used Dataの情報をリセットし、Length Of Used Dataに0バイト長(初期値)を設定する。ICカード2が、拡張乱数データを構成する未使用データを今後も使用する場合には、Length Of Used Dataの情報をリセットしない。
【0056】
カードリーダ/ライタ14は、通信I/F142を介して、追加乱数データを受信し、追加乱数データをRAM145に保存する。カードリーダ/ライタ14は、追加乱数データにより構成される第1の乱数データに基づき認証データを生成し、認証データを含む認証コマンドをICカード2に対して送信する(ST1131)。例えば、カードリーダ/ライタ14は、追加乱数データ(例えば32バイト)の一部(例えば8バイト)を第1の乱数データとして使用する(追加乱数データ使用方法1)。或いは、カードリーダ/ライタ14は、追加乱数データ(例えば8バイト)をそのまま第1の乱数データとして使用する(追加乱数データ使用方法2)。或いは、カードリーダ/ライタ14は、拡張乱数データのうちの未使用の乱数データ(例えば4バイト)と追加乱数データ(例えば32バイト)の一部(例えば4バイト)とを組み合わせた第1の乱数データを使用する(追加乱数データ使用方法3)。或いは、カードリーダ/ライタ14は、拡張乱数データのうちの未使用の乱数データ(例えば4バイト)と追加乱数データ(例えば4バイト)の全部とを組み合わせた第1の乱数データを使用する(追加乱数データ使用方法4)。
【0057】
上記に対応して、ICカード2(CPU204)は、通信I/F201を介して、認証コマンドを受信する。ICカード2は、Length Of Used Dataを確認し、Length Of Used Dataに0バイト長(初期値)を示す情報が格納されていれば、使用可能な残りの乱数データ長(未使用乱数データ長)は追加乱数データのデータ長(例えば32バイト)と判断する。これにより、ICカード2は、認証処理に必要な8バイト長の第1の乱数データを取得可能と判断する。これに対応して、ICカード2は、追加乱数データ(例えば32バイト)の一部(例えば8バイト)を第1の乱数データとして使用し(追加乱数データ使用方法1)、第1の乱数データに基づき認証データを生成し、生成した認証データと受信した認証コマンドに含まれた認証データとを照合し、認証処理を実行する(ST2140)。さらに、ICカード2は、8バイト長(使用済みデータ長)を示す情報をLength Of Used Dataに加算する(ST2140)。
【0058】
なお、カードリーダ/ライタ14で追加乱数データ使用方法1が採用される場合には、上記したようにICカード2でも追加乱数データ使用方法1が採用される。同様に、カードリーダ/ライタ14で追加乱数データ使用方法2が採用される場合には、ICカード2でも追加乱数データ使用方法2が採用される。同様に、カードリーダ/ライタ14で追加乱数データ使用方法3が採用される場合には、ICカード2でも追加乱数データ使用方法3が採用される。同様に、カードリーダ/ライタ14で追加乱数データ使用方法4が採用される場合には、ICカード2でも追加乱数データ使用方法4が採用される。
【0059】
上記説明したように、ICカード2は、例えば、1回のGET CHALLENGEコマンドを受信するだけで、複数の処理用の拡張乱数データを生成し、拡張乱数データの一部により構成される複数の乱数データを使用し、複数の処理を実行することができる。つまり、カードリーダ/ライタ14は、ICカードに対して、乱数データを必要とする複数の処理(例えばN回の処理)を実行させる場合であっても、GET CHALLENGEコマンドをN回送信しなくて済み、例えば、GET CHALLENGEコマンドをN回より少ないM回だけ送信すれば、乱数データを必要とするN回の処理を実行させることができ、処理の効率化を図ることができる。また、ICカードは、拡張乱数データを構成する未使用データが不足した場合には、追加乱数データを生成し、カードリーダ/ライタ14に対して、追加乱数データを送信し、処理を継続することができる。
【0060】
なお、追加乱数データが、拡張乱数データの一種である場合には、追加乱数データから複数の乱数データを生成することができる。
【0061】
(第3の実施形態)
上記第2の実施形態では、所定データ長の乱数データを必要する処理が発生してから、拡張乱数データを構成する未使用データの不足が判明した場合に、追加乱数データを生成するケースについて説明した。第3の実施形態では、ICカード2が、拡張乱数データを構成する未使用データのデータ長を監視し、未使用データのデータ長が閾値データ長より短くなった場合に、追加乱数データを生成する。例えば、ICカード2は、未使用データのデータ長が閾値データ長(例えば8バイト)より短くなった場合に、追加乱数データを生成する。これにより、より効率よく追加乱数データを生成することができ、処理効率が向上する。
【0062】
以上説明した第1、第2、第3の実施形態により、乱数を必要とする処理の高速化を図ることができる。
【0063】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0064】
1…端末、2…ICカード、3…ICカードホルダ、11…本体、12…ディスプレイ、13…キーボード、14…カードリーダ/ライタ、20…ICモジュール、142…通信I/F、143…CPU、144…データメモリ、145…RAM、146…ROM、201…通信I/F、204…CPU、205…データメモリ、206…RAM、207…ROM

【特許請求の範囲】
【請求項1】
外部装置と通信する通信手段と、
拡張乱数データを生成する生成手段と、
前記通信手段により受信された第1のコマンドに対応して、前記拡張乱数データの一部により構成される第1の乱数データに基づき第1の処理を実行し、前記通信手段により受信された第2のコマンドに対応して、前記拡張乱数データの一部により構成される第2の乱数データに基づき第2の処理を実行する実行手段と、
を備えた携帯可能電子装置。
【請求項2】
前記生成手段は、第1のデータ長の前記第1の乱数データと前記第1の乱数データの後続に位置する第2のデータ長の前記第2の乱数データとを含む前記拡張乱数データを生成する請求項1記載の携帯可能電子装置。
【請求項3】
前記生成手段は、前記第1の乱数データの第1のデータ長と前記第2の乱数データの第2のデータ長とを合わせた第3のデータ長以上の前記拡張乱数データを生成する請求項1又は2記載の携帯可能電子装置。
【請求項4】
前記生成手段は、前記通信手段により受信された乱数要求コマンドに対応して前記拡張乱数データを生成する請求項1乃至3の何れか1項記載の携帯可能電子装置。
【請求項5】
前記生成手段は、前記乱数要求コマンドにより要求される要求乱数データ長と異なるデータ長の前記拡張乱数データを生成する請求項4記載の携帯可能電子装置。
【請求項6】
前記実行手段は、前記拡張乱数データの不足により、前記拡張乱数データから、前記通信手段により受信された第3のコマンドに対応して実行される第3の処理のための第3の乱数データを取得できない場合、前記通信手段から乱数不足情報を送信するように制御する請求項1乃至5の何れか1項記載の携帯可能電子装置。
【請求項7】
前記実行手段は、前記第1のコマンドに対応して前記拡張乱数データに含まれた未使用乱数データで構成された前記第1の乱数データに基づき第1の処理を実行し、前記第2のコマンドに対応して前記拡張乱数データに含まれた未使用乱数データで構成された前記第2の乱数データに基づき第2の処理を実行し、前記第3のコマンドに対応して前記拡張乱数データに含まれた未使用乱数データの不足により前記第3の乱数データを構成不能な場合に、前記乱数不足情報を送信するように制御する請求項6記載の携帯可能電子装置。
【請求項8】
前記生成手段は、前記拡張乱数データの不足により、前記拡張乱数データから、前記通信手段により受信された第3のコマンドに対応して実行される第3の処理のための第3の乱数データを取得できない場合、追加乱数データを生成し、
前記実行手段は、前記追加乱数データに基づき前記第3の処理を実行する請求項1乃至5の何れか1項記載の携帯可能電子装置。
【請求項9】
前記実行手段は、前記第1のコマンドに対応して前記拡張乱数データに含まれた未使用乱数データで構成された前記第1の乱数データに基づき第1の処理を実行し、前記第2のコマンドに対応して前記拡張乱数データに含まれた未使用乱数データで構成された前記第2の乱数データに基づき第2の処理を実行し、
前記生成手段は、前記第3のコマンドに対応して前記拡張乱数データに含まれた未使用乱数データの不足により前記第3の乱数データを構成不能な場合に、前記追加乱数データを生成する請求項8記載の携帯可能電子装置。
【請求項10】
前記生成手段は、前記拡張乱数データに含まれた未使用乱数データと前記追加乱数データとに基づき前記第3の乱数データを生成し、
前記実行手段は、前記第3の乱数データに基づき前記第3の処理を実行する請求項9記載の携帯可能電子装置。
【請求項11】
前記実行手段は、前記第1のコマンドに対応して前記拡張乱数データに含まれた未使用乱数データで構成された前記第1の乱数データに基づき第1の処理を実行し、前記第2のコマンドに対応して前記拡張乱数データに含まれた未使用乱数データで構成された前記第2の乱数データに基づき第2の処理を実行し、
前記生成手段は、前記拡張乱数データに含まれた未使用乱数データのデータ長が閾値データ長より短くなった場合、追加乱数データを生成する請求項1乃至5の何れか1項記載の携帯可能電子装置。
【請求項12】
拡張乱数データを生成し、
第1のコマンドの受信に対応して、前記拡張乱数データの一部により構成される第1の乱数データに基づき第1の処理を実行し、
第2のコマンドの受信に対応して、前記拡張乱数データの一部により構成される第2の乱数データに基づき第2の処理を実行する情報処理方法。
【請求項13】
ICモジュールが埋め込まれたカード本体により構成されるICカードであって、
前記ICモジュールは、
外部装置と通信する通信手段と、
拡張乱数データを生成する生成手段と、
前記通信手段により受信された第1のコマンドに対応して、前記拡張乱数データの一部により構成される第1の乱数データに基づき第1の処理を実行し、前記通信手段により受信された第2のコマンドに対応して、前記拡張乱数データの一部により構成される第2の乱数データに基づき第2の処理を実行する実行手段と、
を備えたICカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−150708(P2012−150708A)
【公開日】平成24年8月9日(2012.8.9)
【国際特許分類】
【出願番号】特願2011−9856(P2011−9856)
【出願日】平成23年1月20日(2011.1.20)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FRAM
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】