説明

携帯可能電子装置、ICカード、および携帯可能電子装置におけるデータ処理方法

【課題】乱数の生成処理を効率的に実施することができる携帯可能電子装置、ICカードおよび携帯可能電子装置に用いられる通信方法を提供する。
【解決手段】携帯可能電子装置1は、乱数生成手段11aと、記憶手段13aと、通信手段15と、乱数コマンド処理手段11とを有する。乱数生成手段11aは、乱数を生成する。記憶手段13aは、乱数生成手段11aで生成した乱数を保存する。通信手段15は、外部装置2とデータ通信する。乱数コマンド処理手段11は、通信手段15により外部装置2から乱数を要求するコマンドを受信した場合、記憶手段13aに記憶した乱数を当該コマンドに対する応答として通信手段15により外部装置2へ送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、携帯可能電子装置、ICカード、および携帯可能電子装置におけるデータ処理方法に関する。
【背景技術】
【0002】
ICカードでは、使用者若しくは接続中の装置を正当な相手か否かを確認するため、乱数と鍵データ等とを基に認証処理を行うことが多くなってきている。たとえば、近年では、ICカードに対して送信する命令毎に、乱数を用いた認証情報を実行することも多くなってきている。ICカードでは、乱数を生成する場合、計算によって擬似乱数を導出するのが一般的である。しかしながら、実用的な乱数性を持つ擬似乱数の計算には、複雑な計算が必要であり、長い処理時間が必要となる。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】ISO/IEC7816−4
【発明の概要】
【発明が解決しようとする課題】
【0004】
本実施の形態では、乱数の生成処理を効率的に実施することができる携帯可能電子装置、ICカードおよび携帯可能電子装置に用いられる通信方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
実施形態によれば、携帯可能電子装置は、乱数生成手段と、記憶手段と、通信手段と、乱数コマンド処理手段とを有する。乱数生成手段は、乱数を生成する、記憶手段は、乱数生成手段で生成した乱数を保存する。通信手段は、外部装置とデータ通信する。乱数コマンド処理手段は、通信手段により外部装置から乱数を要求するコマンドを受信した場合、記憶手段に記憶した乱数を当該コマンドに対する応答として通信手段により外部装置へ送信する。
【図面の簡単な説明】
【0006】
【図1】図1は、携帯可能電子装置としてのICカードおよびICカードシステムの構成例を示すブロック図である。
【図2】図2は、非接触式ICカード全体の構成例を示す図である。
【図3】図3は、擬似乱数の生成処理をコマンド待ち時間に実行する第1の処理例を概略的に示す図である。
【図4】図4は、ICカードにおける第1の処理例の処理手順を説明するためのフローチャートである。
【図5】図5は、擬似乱数の生成処理をレスポンスデータの送信中に実行する第2の処理例を概略的に示す図である。
【図6】図6は、ICカードにおける第2の処理例の処理手順を説明するためのフローチャートである。
【発明を実施するための形態】
【0007】
以下、実施の形態について、図面を参照して説明する。
【0008】
以下、この発明の実施の形態について図面を参照して詳細に説明する。
図1は、この発明の実施の形態に係る携帯可能電子装置としてのICカード1およびICカード1を含むICカードシステムの構成例を示すブロック図である。
上記ICカード1は、外部装置あるいは上位装置としてのICカード処理装置2からの電源供給により動作可能な状態となる。動作可能となったICカード1は、上記ICカード処理装置2からのコマンドに応じて種々の処理を行う。上記ICカード処理装置2は、ICカード1を動作させるための電源を供給するとともに、当該ICカード1に対して種々の処理を要求するコマンドを供給する。上記ICカード処理装置2がICカード1に対して供給するコマンドは、用途あるいは運用形態などに応じた処理を要求するものである。
【0009】
また、上記ICカード1は、アンテナあるいは無線通信部等により上記ICカード処理装置2と非接触の状態で無線通信を行う非接触式の携帯可能電子装置(非接触式ICカード)であっても良し、上記ICカード処理装置2と物理的に接触して通信を行う接触式の携帯可能電子装置(接触式ICカード)であっても良い。さらには、上記ICカード1は、非接触式ICカードとしての通信機能と接触式ICカードとしての通信機能とを有する複合型のICカード(デュアルインターフェースICカード)であっても良い。なお、この実施の形態では、主に、非接触式ICカードを想定して説明する。非接触式ICカードと接触式ICカードとはICカード処理装置2との通信方式等が異なるだけである。このため、以下に説明する実施の形態は、接触式ICカードにも同様に適用できる。
【0010】
上記ICカード1の構成例について説明する。
図1に示すように、上記ICカード1は、CPU11、プログラムメモリ12、ワーキングメモリ13、データメモリ14、通信制御部15、電源部16、および、インターフェース(アンテナあるいはコンタクト部)17などを有している。
また、上記ICカード1は、カード状の本体Cにより構成される。上記ICカード1を形成するカード状の本体Cには、1つ(あるいは複数)のICチップ1aとインターフェース17とが埋設される。上記ICチップ1aは、CPU11、プログラムメモリ12、ワーキングメモリ13、データメモリ14、通信制御部15および電源部16などを有している。上記ICチップ1aは、上記インターフェース17に接続された状態でモジュール化され、当該ICカード1を形成するカード状の本体C内に埋設される。たとえば、図2は、非接触式ICカード全体の構成例を示す図である。図2に示す非接触式ICカードは、カード状の本体Cを有している。この本体C内には、図2に点線で示すように、1つ(あるいは複数)のICチップ1aとインターフェース17としてのアンテナとを有するモジュールMが埋め込まれている。
【0011】
上記CPU11は、ICカード1全体の制御を司るものである。上記CPU11は、上記プログラムメモリ12あるいはデータメモリ14に記憶されている制御プログラムおよび制御データなどに基づいて動作する。たとえば、上記CPU11は、上記プログラムメモリ12に記憶されている基本的な動作を司る制御プログラムを実行することにより、外部装置から与えられるコマンドに応じた処理を実行する。
【0012】
たとえば、外部装置から上記データメモリ14へのデータの書込みを要求するコマンドが与えられれば、上記CPU11は、上記データメモリ14へのデータの書き込み処理を実行する。また、外部装置から上記データメモリ14に記憶されているデータの読み出しを要求するコマンドが与えられれば、上記CPU11は、上記データメモリ14からのデータの読み出し処理を実行する。さらに、上記CPU11は、当該ICカード1の用途などに応じてインストールされる処理プログラムを実行することにより、用途に応じた処理を実現するようになっている。本ICカード1において、CPU11は、プログラムメモリ12に記憶されたプログラムを実行することにより擬似乱数を生成する乱数生成機能11aを有する。
【0013】
上記プログラムメモリ12は、読み出し専用のメモリ(ROM:リードオンリーメモリ)により構成される。上記プログラムメモリ12には、予め基本動作を司る制御プログラムおよび制御データなどが記憶されている。上記プログラムメモリ12には、予め当該ICカード1の仕様に応じた制御プログラム及び制御データが記憶される。たとえば、上記CPU11は、上記プログラムメモリ12に記憶される制御プログラムにより外部から与えられるコマンドに応じた処理を実現する。
【0014】
上記ワーキングメモリ13は、揮発性のメモリ(RAM;ランダムアクセスメモリ)により構成される。上記ワーキングメモリ13は、データを一時保管するバッファメモリとして機能する。例えば、上記ワーキングメモリ13には、ICカード処理装置(外部装置)2との通信処理において、送受信されるデータが一時的に保管される。また、上記ワーキングメモリ13には、種々の書込みデータなどを一時的に保持するメモリとしても利用される。
【0015】
また、ワーキングメモリ13は、乱数生成機能により生成した乱数を記憶するための専用のメモリ領域13aを有する。メモリ領域13aは、擬似乱数の生成処理により生成した擬似乱数をセキュアに保存する。また、メモリ領域13aは、先入れ先出し(First In First Out: FIFO)のメモリであるものとする。すなわち、擬似乱数の生成処理により生成された擬似乱数は、メモリ領域13aに蓄積され、先に保存した順番にメモリ領域13aから取り出される。また、取り出された擬似乱数としてのデータは、メモリ領域13aから削除される。
【0016】
上記データメモリ(不揮発性メモリ)14は、データの書き込みが可能な不揮発性のメモリである。上記データメモリ14は、例えば、EEPROMあるいはフラッシュメモリなどにより構成される。上記データメモリ14には、当該ICカード1の使用目的に応じた種々の情報が記憶される。たとえば、当該ICカードの使用目的に応じたアプリケーション(処理プログラムおよび運用データなど)は、上記データメモリ14に書込まれる。当該ICカード1が複数の使用目的に使用される場合、上記データメモリ14には、各使用目的に応じた複数のアプリケーションが記憶される。
【0017】
また、当該ICカード1の使用目的に応じたアプリケーションは、上記データメモリ14上に定義された使用目的ごとのプログラムファイル(DF;Dedicated File)およびデータファイル(EF;Elementary File)などの各ファイルに記憶される。このようなファイル構成は、たとえば、ISO/IEC7816−4に基づくものである。
【0018】
また、上記データファイル自体の構造としては、レコード型のファイルあるいは透過型のファイルがある。レコード型のファイルは、複数のレコード単位のデータが格納される。なお、レコード型のファイルにおける各レコードの構造としては、たとえば、識別子(タグ:Tag)、データ長(レングス:Length)、データ値(バリュー:Value)により構成されるTLV構造などがある。このようなレコード型のファイルには、ファイル内のレコードごとにアクセスすることが可能である。たとえば、ファイル内の各レコードには、各レコードに付与されるレコード番号によりアクセスできる。また、上記透過型のファイル内のデータには、当該ファイル内のデータ位置を表すオフセット値を指定してアクセスすることも可能である。
【0019】
上記通信制御部15は、上記インターフェース17を介して外部装置(たとえば、ICカード処理装置2)とのデータ通信を制御するものである。たとえば、当該ICカードが非接触型のICカードであれば、外部装置からデータを受信する場合、上記通信制御部15は、インターフェース17としてのアンテナにより受信した電波としての送信データを復調し、復調した信号を上記CPU11に供給する。また、外部装置へデータを送信する場合、上記通信制御部15は、上記CPU11から与えられるデータを変調し、変調したデータを上記インターフェース17としてのアンテナにより電波として発信する。なお、接触式ICカードでは、インターフェース17として、アンテナの代わりに、外部装置の接触端子部と物理的・電気的に接触するコンタクト部を介して外部装置とのデータ通信を行う。
【0020】
上記電源部16は、当該ICカード1の各部を動作させるための上記インターフェース17を介して受信する電力およびクロックパルスを供給する。たとえば、当該ICカードが非接触型のICカードであれば、上記電源部16は、上記インターフェース17としてのアンテナにより受信した電波から電力およびクロックパルスを生成し、当該ICカード内の各部に供給するようになっている。また、上記電源部16からの電力供給により起動した場合、上記CPU11は、当該ICカード1の処理状態をリセットする処理を行うようになっている。なお、当該ICカード1が接触型のICカードであれば、上記電源部16はインターフェース17を介して外部装置から直接的に供給される電力およびクロックパルスにより各部へ供給するようになっている。
【0021】
次に、上記ICカード処理装置2について説明する。
上記ICカード処理装置2は、図1に示すように、制御装置21およびカードリーダライタ22を有している。上記制御装置21は、パーソナルコンピュータ(PC)などにより構成される。上記制御装置21は、CPUなどの演算処理部、RAM、ROM、不揮発性メモリおよびハードディスクドライブなどの各種メモリ、通信インターフェースなどの各種インターフェースなどにより構成される。上記制御装置21では、上記演算処理部がメモリに記憶されている各種の制御プログラムを実行することにより各種の処理を実現している。また、上記制御装置21は、ICカード1とのデータ通信を行う上記カードリーダライタ22とのデータの入出力を行うようになっている。
【0022】
たとえば、上記制御装置21には、上記ICカード1を用いた各種の処理に応じた制御プログラムが予め記憶されている。上記制御装置21では、上記のような制御プログラムを実行することにより上記ICカード1を用いた各種の処理を実行する。たとえば、上記ICカード1を用いた各種の処理において、上記制御装置21は、所定のコマンドを所定の手順で供給する。上記制御装置21では、上記のような各コマンドに対するICカード1からの各レスポンス(コマンドに対する処理結果等を示す情報)に基づいて各種の処理を行うようになっている。
【0023】
上記カードリーダライタ22は、上記ICカード1とのデータ通信を行う通信手段として機能する。上記カードリーダライタ22は、上記ICカード1の通信方式に応じた通信方式によるデータ通信を行うためのものである。つまり、上記カードリーダライタ22を介して制御装置21は、上記ICカード1とのデータ通信を実現している。
【0024】
上記ICカード1が非接触型のICカードである場合、上記カードリーダライタ22は、上記ICカード1との無線によるデータ通信を行うためのアンテナおよび通信制御部(変復調回路等)などにより構成される。非接触型のICカード1へデータを送信する場合、上記カードリーダライタ22では、通信制御部により上記制御装置21から与えられる送信データを変調し、変調した信号を電波としてアンテナにより発信する。また、非接触型のICカード1からデータを受信する場合、上記カードリーダライタ22では、アンテナにより受信した電波としての信号を通信制御部により復調し、復調したデータを受信データとして上記制御装置21へ供給する。また、上記カードリーダライタ22では、上記のようなデータの送受信とともに、上記ICカード1を動作させるための電源およびクロックパルスとなる電波をアンテナにより発信するようになっている。
【0025】
また、上記ICカード1が接触型のICカードである場合、上記カードリーダライタ22は、ICカード1と物理的に接触してデータ通信を行うためのコンタクト部および通信制御部などにより構成される。接触型のICカードとのデータの送受信を行う場合、上記カードリーダライタ22では、上記コンタクト部がICカード1側に設けられているコンタクト部と物理的に接触して各種のデータ通信を行う。また、上記カードリーダライタ22では、ICカード1に物理的に接触しているコンタクト部を介して当該ICカード1に対して電力およびクロックパルスを供給するようになっている。
【0026】
次に、ICカード1における各処理について説明する。
本実施の形態において、ICカード1のCPU11は、乱数を要求するコマンドに対応する処理とは別に擬似乱数生成処理を実行しておき、メモリ領域13aに擬似乱数生成処理により生成した擬似乱数を記憶(蓄積)しておく。乱数を要求するコマンドを受信した場合、ICカード1のCPU11は、メモリ領域13aに蓄積している擬似乱数から当該コマンドが要求する桁数の乱数データを取り出し、取り出した乱数データを当該コマンドに対するレスポンスデータとして送信する。
本実施の形態においては、擬似乱数の生成処理をコマンド待ち時間に実行する第1の処理例と、擬似乱数の生成処理をレスポンスデータの送信中に実行する第2の処理例とを説明する。
【0027】
まず、第1の処理例について説明する。
図3は、擬似乱数の生成処理をコマンド待ち時間に実行する第1の処理例を概略的に示す図である。
ICカード1は、コマンドの実行結果としてのレスポンスデータを送信してから次のコマンドの受信をするまでの間、コマンドの受信待ち状態となっている。コマンド受信待ち状態において、ICカードは、待機中か、あるいは、次のコマンドに対する処理準備などの負荷の少ない処理を実行する。つまり、コマンドの受信待ち状態の間、ICカード1のCPU11は、負荷の大きい処理を実施することがなく、処理能力に余力がある。
【0028】
図3に示すように、コマンド受信待ち状態において、ICカード1のCPU11は、乱数生成機能11aにより擬似乱数の生成する。また、CPU11は、乱数生成機能11aにより生成した擬似乱数をワーキングメモリ13に設けた乱数蓄積用のメモリ領域13aに蓄積する。メモリ領域13aには、データ量が所定の許容量に達するまで乱数生成機能11aにより生成した乱数を蓄積する。
【0029】
図3に示すように、メモリ領域13aに擬似乱数が蓄積されると、ICカード1のCPU11は、上位装置(ICカード処理装置)2からGET CHALLENGEコマンド等の乱数生成命令を受信した場合に、メモリ領域13aに蓄積している乱数から当該コマンドで要求される必要なサイズだけ乱数データを取り出す。取り出した乱数は、メモリ領域13aから削除される。ICカード1のCPU11は、メモリ領域13aから取り出した乱数を、受信したGET CHALLENGEコマンド等のコマンドに対するレスポンスデータとして上位装置2へ送信する。
【0030】
このような第1の処理例による処理手順によれば、ICカード1では、実際にGET CHALLENGEコマンドを受信したときに、メモリ領域13aから読み出した乱数をレスポンスデータとして送信するだけで良い。すなわち、第1の処理例では、図3に示すように、GET CHALLENGEコマンドを受信したときの擬似乱数の生成処理が不要となり、GET CHALLENGEコマンド受信後の擬似乱数の生成処理に要する時間を短縮できる。
【0031】
次に、ICカード1における第1の処理例としての処理手順について説明する。
図4は、第1の処理例による処理手順を説明するためのフローチャートである。
まず、ICカード1が上位装置(ICカード処理装置)2からコマンドを受信したものとする(ステップS10)。コマンドを受信すると、ICカード1のCPU11は、受信したコマンドが乱数を要求するコマンド(ここでは、GET CHALLENGEコマンドとする)であるか否かを判断する(ステップS11)。受信したコマンドが乱数を要求するコマンドでないと判断した場合(ステップS11、NO)、CPU11は、受信したコマンドに応じた処理を実行する(ステップS12)。
【0032】
また、受信したコマンドが乱数を要求するコマンドであると判断した場合(ステップS11、YES)、CPU11は、乱数蓄積用のメモリ領域13aから当該コマンドで要求された桁数の擬似乱数を取り出す(ステップS13)。ここで、CPU11は、当該コマンドで要求された桁数の擬似乱数がメモリ領域13aから取り出せたか否かを確認する(ステップS14)。所望の桁数の擬似乱数がメモリ領域13aから取り出せなかった場合(ステップS14、NO)、CPU11は、乱数生成機能11aにより不足分の桁数の擬似乱数を生成する処理を実行する(ステップS15)。
【0033】
当該コマンドで要求される桁数の擬似乱数をメモリ領域13aから取り出した場合(ステップS14、YES)、CPU11は、メモリ領域13aから取り出した擬似乱数を含むレスポンスデータを上位装置2へ送信する(ステップS16)。また、不足分の擬似乱数を生成した場合、CPU11は、メモリ領域13aから取り出した擬似乱数と生成した不足分の擬似乱数とを含むレスポンスデータを上位装置2へ送信する(ステップS16)。また、GET CHALLENGEコマンド以外のコマンドに対するコマンド処理を実行した場合も、CPU11は、実行したコマンド処理の実行結果を示すレスポンスデータを上位装置2へ送信する(ステップS16)。
【0034】
レスポンスデータの送信が完了すると、CPU11は、コマンド待ち状態となる。コマンド待ち状態となると、CPU11は、乱数を生成すべきか否かを判断する(ステップS17)。たとえば、CPU11は、メモリ領域13aに新たな擬似乱数を保存する空き領域があれば、乱数を生成すべきと判断する。つまり、CPU11は、メモリ領域13a全体に擬似乱数が格納されていれば、乱数の生成を行わないと判断する。
【0035】
乱数を生成すべきと判断した場合(ステップS17、YES)、CPU11は、乱数生成機能11aにより擬似乱数の生成処理を実行する(ステップS18)。CPU11は、擬似乱数の生成処理により生成した擬似乱数をメモリ領域13aに蓄積する(ステップS19)。CPU11は、次のコマンドを受信するまで(ステップS20、NO)、上記ステップS17〜S19の処理を繰り返し実行する。また、上記ステップS17〜S19の処理を実行中にコマンドを受信した場合(ステップS20、YES)、CPU11は、上記ステップS10へ戻り、上述した処理を実行する。
【0036】
上述した第1の処理例によれば、ICカード1は、コマンド受信待ち状態の間に、乱数を生成し、生成した乱数をメモリに蓄積保存しておく。ICカード1は、実際に乱数を要求するコマンドを受信した場合に乱数の生成処理を実行することなく、メモリに蓄積した乱数をレスポンスとして送信する。これにより、コマンド受信後に乱数の生成処理を実施するのに要する時間を短縮することができ、処理全体として処理時間を削減することが可能となる。
【0037】
次に、第2の処理例について説明する。
図5は、擬似乱数の生成処理をレスポンスデータの送信中に実行する第2の処理例を概略的に示す図である。
ICカード1は、コマンドの実行結果としてのレスポンスデータを送信している間、CPU11にかかる処理の負荷が少ない。従って、レスポンスデータを送信している間、ICカード1のCPU11は、乱数生成機能11aにより擬似乱数の生成処理を実行する余力があるものと考えられる。
【0038】
第2の処理例では、図5に示すように、レスポンスデータの送信中において、ICカード1のCPU11は、乱数生成機能11aにより擬似乱数の生成処理を行う。また、CPU11は、乱数生成機能11aにより生成した擬似乱数をワーキングメモリ13に設けた乱数蓄積用のメモリ領域13aに蓄積する。メモリ領域13aには、データ量が所定の許容量に達するまで乱数生成機能11aにより生成した乱数を蓄積する。
【0039】
図5に示すように、メモリ領域13aに擬似乱数が蓄積されると、ICカード1のCPU11は、上位装置(ICカード処理装置)2からGET CHALLENGEコマンド等の乱数生成命令を受信した場合に、メモリ領域13aに蓄積している乱数から当該コマンドで要求される必要なサイズだけ乱数データを取り出す。取り出した乱数は、メモリ領域13aから削除される。ICカード1のCPU11は、メモリ領域13aから取り出した乱数を、受信したGET CHALLENGEコマンド等のコマンドに対するレスポンスデータとして上位装置2へ送信する。
【0040】
このような第2の処理例による処理手順によれば、ICカード1では、実際にGET CHALLENGEコマンドを受信したときに、メモリ領域13aから読み出した乱数をレスポンスデータとして送信するだけで良い。すなわち、第2の処理例では、図5に示すように、GET CHALLENGEコマンドを受信したときの擬似乱数の生成処理が不要となり、GET CHALLENGEコマンド受信後の擬似乱数の生成処理に要する時間を短縮できる。
【0041】
次に、ICカード1における第2の処理例としての処理手順について説明する。
図6は、第2の処理例による処理手順を説明するためのフローチャートである。
まず、ICカード1が上位装置(ICカード処理装置)2からコマンドを受信したものとする(ステップS30)。コマンドを受信すると、ICカード1のCPU11は、受信したコマンドが乱数を要求するコマンド(ここでは、GET CHALLENGEコマンドとする)であるか否かを判断する(ステップS31)。受信したコマンドが乱数を要求するコマンドでないと判断した場合(ステップS31、NO)、CPU11は、受信したコマンドに応じた処理を実行する(ステップS32)。
【0042】
また、受信したコマンドが乱数を要求するコマンドであると判断した場合(ステップS31、YES)、CPU11は、乱数蓄積用のメモリ領域13aから当該コマンドで要求された桁数の擬似乱数を取り出す(ステップS33)。ここで、CPU11は、当該コマンドで要求された桁数の擬似乱数がメモリ領域13aから取り出せたか否かを確認する(ステップS34)。所望の桁数の擬似乱数がメモリ領域13aから取り出せなかった場合(ステップS34、NO)、CPU11は、乱数生成機能11aにより不足分の桁数の擬似乱数を生成する処理を実行する(ステップS35)。
【0043】
当該コマンドで要求された桁数の擬似乱数をメモリ領域13aから取り出した場合(ステップS34、YES)、CPU11は、メモリ領域13aから取り出した擬似乱数を含むレスポンスデータを上位装置2へ送信する処理を開始する(ステップS36)。また、不足分の擬似乱数を生成した場合、CPU11は、メモリ領域13aから取り出した擬似乱数と生成した不足分の擬似乱数とを含むレスポンスデータを上位装置2へ送信する処理を開始する(ステップS36)。また、GET CHALLENGEコマンド以外のコマンドに対するコマンド処理を実行した場合も、CPU11は、実行したコマンド処理の実行結果を示すレスポンスデータを上位装置2へ送信する処理を開始する(ステップS36)。
【0044】
レスポンスデータの送信を開始すると、CPU11は、乱数を生成すべきか否かを判断する(ステップS37)。たとえば、CPU11は、メモリ領域13aに新たな擬似乱数を保存する空き領域があれば、乱数を生成すべきと判断する。言い換えれば、CPU11は、メモリ領域13aに所定量以上の擬似乱数が格納されていれば、十分な量の擬似乱数を蓄積しているため、乱数を生成しないと判断するようにしても良い。
【0045】
乱数を生成すべきであると判断した場合(ステップS37、YES)、CPU11は、乱数生成機能11aにより擬似乱数の生成処理を実行する(ステップS38)。CPU11は、擬似乱数の生成処理により生成した擬似乱数をメモリ領域13aに蓄積する(ステップS39)。CPU11は、レスポンスデータの送信が完了するまで(ステップS40、NO)、上記ステップS37〜S39の処理を繰り返し実行することにより、メモリ領域13aに擬似乱数を蓄積する。また、レスポンスデータの送信が完了した場合(ステップS40、YES)、CPU11は、次のコマンドの受信待ち状態となる(ステップS41)。この状態において次のコマンドを受信すると(ステップS41、YES)、CPU11は、上記ステップS30へ戻り、上述した処理を実行する。
【0046】
上述した第2の処理例によれば、ICカード1は、受信したコマンドに対するレスポンスデータの送信中に、乱数を生成し、生成した乱数をメモリに蓄積保存しておく。ICカード1は、実際に乱数を要求するコマンドを受信した場合、乱数の生成処理を実行することなく、メモリに蓄積した乱数をレスポンスとして送信する。これにより、コマンド受信後に乱数の生成処理を実施するのに要する時間を短縮することができ、処理全体として処理時間を削減することが可能となる。
【0047】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0048】
C…本体、M…モジュール、1…ICカード、1a…ICチップ、2…ICカード処理装置(上位装置)、11…CPU、11a…乱数生成機能、12…プログラムメモリ、13…ワーキングメモリ、13a…メモリ領域、14…データメモリ、15…通信制御部、16…電源部、17…インターフェース。

【特許請求の範囲】
【請求項1】
携帯可能電子装置であって、
乱数を生成する乱数生成手段と、
前記乱数生成手段で生成した乱数を保存する記憶手段と、
外部装置とデータ通信する通信手段と、
前記通信手段により前記外部装置から乱数を要求するコマンドを受信した場合、前記記憶手段に記憶した乱数を当該コマンドに対する応答として前記通信手段により前記外部装置へ送信する乱数コマンド処理手段と、
を有することを特徴とする携帯可能電子装置。
【請求項2】
前記記憶手段は、先入れ先出し方式のメモリであり、
前記乱数コマンド処理手段は、前記通信手段により受信したコマンドで要求された桁数の乱数を前記記憶手段から取り出して送信する。
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項3】
前記乱数生成手段は、前記通信手段により前記外部装置から受信したコマンドに対応する処理とは別の処理として乱数を生成する、
ことを特徴とする前記請求項1又は2の何れかに記載の携帯可能電子装置。
【請求項4】
前記乱数生成手段は、前記外部装置からのコマンド受信待ち状態の場合に乱数を生成する、
ことを特徴とする前記請求項3に記載の携帯可能電子装置。
【請求項5】
前記乱数生成手段は、前記外部装置からのコマンドに対するレスポンスデータを送信する間に乱数を生成する、
ことを特徴とする前記請求項3に記載の携帯可能電子装置。
【請求項6】
前記乱数コマンド処理手段は、前記外部装置から受信した乱数を要求するコマンドが要求する桁数の乱数を前記記憶手段に記憶しているか否かを判断し、当該コマンドで要求する桁数の乱数が前記記憶手段に記憶していない場合、前記乱数生成手段により乱数を生成する、
ことを特徴とする前記請求項4又は5の何れかに記載の携帯可能電子装置。
【請求項7】
ICカードであって、
乱数を生成する乱数生成手段と、前記乱数生成手段で生成した乱数を保存する記憶手段と、外部装置とデータ通信する通信手段と、前記通信手段により前記外部装置から乱数を要求するコマンドを受信した場合、前記記憶手段に記憶した乱数を当該コマンドに対する応答として前記通信手段により前記外部装置へ送信する乱数コマンド処理手段と、を具備するモジュールと、
前記モジュールを具備する本体と、
を有することを特徴とするICカード。
【請求項8】
携帯可能電子装置におけるデータ処理方法であって、
外部装置から受信するコマンドに対する処理とは異なるタイミングで乱数を生成し、
前記生成した乱数を記憶手段に保存し、
外部装置から乱数を要求するコマンドを受信した場合、前記記憶手段に記憶した乱数を当該コマンドに対する応答として前記外部装置へ送信する、
ことを特徴とする携帯可能電子装置におけるデータ処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−194903(P2012−194903A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−59717(P2011−59717)
【出願日】平成23年3月17日(2011.3.17)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】