(57)【特許請求の範囲】
【請求項１】
外部機器と非接触通信を行うＩＣカードであって、
前記外部機器から送信されたコマンドを受信する受信部と、
前記受信部により初期応答要求コマンドを受信した場合、カード識別子として第１の乱数を生成する乱数生成部と、
前記受信部により乱数要求を受信した場合、前記第１の乱数の全てあるいはその一部を用いて乱数データを生成する乱数生成部と、
前記乱数生成部により生成された前記乱数データを前記外部機器に送信する送信部と、
を具備するＩＣカード。
【請求項２】
前記乱数生成部は、前記第１の乱数を前記乱数データの一部として前記乱数データを生成する、請求項１に記載のＩＣカード。
【請求項３】
前記乱数生成部は、第２の乱数を生成し、生成した前記第２の乱数と前記第１の乱数とを結合させて前記乱数データを生成する、請求項２に記載のＩＣカード。
【請求項４】
前記乱数生成部は、前記乱数要求に基づいて、要求された前記乱数データの長さを特定し、要求された前記乱数データの長さと前記第１の乱数の長さとを比較して不足データ長を特定し、前記不足データ長に相当する前記第２の乱数を生成し、生成した前記第２の乱数と前記第１の乱数とを結合させて前記乱数データを生成する、請求項３に記載のＩＣカード。
【請求項５】
前記乱数生成部は、要求された前記乱数データの長さが前記第１の乱数の長さ以下である場合、前記第１の乱数を前記乱数データとして用いる、請求項４に記載のＩＣカード。
【請求項６】
前記送信部は、前記受信部により前記乱数要求を有する乱数要求コマンドを受信した場合、前記乱数要求コマンドに対するレスポンスとして前記乱数生成部により生成された前記乱数データを前記外部機器に送信する、請求項１に記載のＩＣカード。
【請求項７】
前記送信部は、前記受信部により前記乱数要求を有する初期応答要求コマンドを受信した場合、前記初期応答要求コマンドに対する初期応答として前記乱数生成部により生成された前記乱数データを前記外部機器に送信する、請求項１に記載のＩＣカード。
【請求項８】
前記受信部と、前記乱数生成部と、前記乱数生成部と、前記送信部と、を備えるＩＣモジュールと、
前記ＩＣモジュールが配設される本体と、
を具備する請求項１に記載のＩＣカード。
【請求項９】
外部機器と非接触通信を行うＩＣカードの制御方法であって、
前記外部機器から送信された初期応答要求コマンドを受信した場合、カード識別子としての第１の乱数を生成し、
前記外部機器から送信された乱数要求を受信した場合、前記第１の乱数の全てあるいはその一部を用いて乱数データを生成し、
生成された前記乱数データを前記外部機器に送信する、
ＩＣカードの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、及びＩＣカードの処理方法に関する。
【背景技術】
【０００２】
一般的に、携帯可能電子装置として用いられるＩＣカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたＩＣモジュールとを備えている。ＩＣモジュールは、ＩＣチップを有している。ＩＣチップは、電源が無い状態でもデータを保持することができるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）またはフラッシュＲＯＭなどの不揮発性メモリと、種々の演算を実行するＣＰＵとを有している。
【０００３】
ＩＣカードは、例えば、国際標準規格ＩＳＯ／ＩＥＣ  ７８１６、及びＩＳＯ／ＩＥＣ１４４４３に準拠したＩＣカードである。ＩＣカードは、携帯性に優れ、且つ、外部装置との通信及び複雑な演算処理を行う事ができる。また、偽造が難しい為、ＩＣカードは、機密性の高い情報などを格納してセキュリティシステム、電子商取引などに用いられることが想定される。
【０００４】
また、近年、非接触通信によりデータの送受信を行うことができるＩＣカードが一般的に普及している。上記したような非接触通信を行うＩＣカードは、ＩＣチップとアンテナとを備えている。ＩＣカードは、ＩＣカード内のアンテナが、ＩＣカード処理装置のリーダライタから発せられる磁界を受けて、電磁誘導により発生する誘導電流により動作する。また、ＩＣカードは、非接触通信により処理装置からコマンドを受信した場合、受信したコマンドに応じてアプリケーションを実行する。これにより、ＩＣカードは、種々の機能を実現することができる。
【０００５】
ＩＣカードの処理装置は、無線通信により最初に初期応答要求コマンドを送信する。ＩＣカードは、初期応答要求コマンドを受信すると、擬似固有カード識別子（ＰＵＰＩ：Pseudo-Unique PICC Identifier）として乱数を生成する。ＩＣカードは、ＰＵＰＩを含む初期応答要求コマンドに対するレスポンス（初期応答）データを生成し、生成したレスポンスデータを処理装置に送信する。処理装置は、初期応答を受け取ることにより、通信可能範囲にＩＣカードが存在することを認識することができる。処理装置は、ＰＵＰＩを用いることにより、特定のＩＣカードに次のコマンドを送信することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−４８１０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＩＣカードと処理装置との間で相互認証が行われる場合、ＩＣカードは、乱数を生成し、生成した乱数を処理装置に送信する。処理装置は、乱数を暗号化し、暗号化された乱数（暗号化データ）をＩＣカードに送信する。ＩＣカードは、生成した乱数を暗号化し、受信した暗号化データと一致するか否か確認する。
【０００８】
しかし、ＩＣカードは、桁数によっては、乱数の生成に時間を要するという課題がある。例えば、ＩＳＯ／ＩＥＣ１４４４３では、処理装置とＩＣカードとの相互認証に８バイトの乱数が用いられる。このように、ＩＣカードが桁数の多い乱数を生成する必要がある場合、ＩＣカードの処理の負荷が増し、遅延の原因になる可能性があるという課題がある。
【０００９】
そこで、より効率的に非接触通信を行う事ができるＩＣカード、及びＩＣカードの処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
一実施形態に係るＩＣカードは、外部機器と非接触通信を行うＩＣカードであって、前記外部機器から送信されたコマンドを受信する受信部と、前記受信部により初期応答要求コマンドを受信した場合、カード識別子として第１の乱数を生成する乱数生成部と、前記受信部により乱数要求を受信した場合、前記第１の乱数の全てあるいはその一部を用いて乱数データを生成する乱数生成部と、前記乱数生成部により生成された前記乱数データを前記外部機器に送信する送信部と、を具備する。
【図面の簡単な説明】
【００１１】
【図１】図１は、一実施形態に係るＩＣカード処理システムについて説明するための図である。
【図２】図２は、一実施形態に係るＩＣカードについて説明するための図である。
【図３】図３は、一実施形態に係るＩＣカード処理システムについて説明するための図である。
【図４】図４は、一実施形態に係るＩＣカード処理システムについて説明するための図である。
【図５】図５は、一実施形態に係るＩＣカード処理システムについて説明するための図である。
【図６】図６は、一実施形態に係るＩＣカード処理システムについて説明するための図である。
【図７】図７は、一実施形態に係るＩＣカード処理システムについて説明するための図である。
【図８】図８は、一実施形態に係るＩＣカード処理システムについて説明するための図である。
【図９】図９は、一実施形態に係るＩＣカード処理システムについて説明するための図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、一実施形態に係るＩＣカードの処理装置、及びＩＣカードの処理システムについて詳細に説明する。
【００１３】
本実施形態に係る携帯可能電子装置（ＩＣカード）２０及びＩＣカードを処理する処理装置（端末装置）１０は、例えば、ＩＳＯ／ＩＥＣ１４４４３などにより規定されている非接触通信の機能を備える。これにより、ＩＣカード２０及び端末装置１０は、互いにデータの送受信を行うことができる。
【００１４】
図１は、一実施形態に係るＩＣカード処理システム１の構成例を示す。  
ＩＣカード処理システム１は、ＩＣカード２０を処理する端末装置１０と、ＩＣカード２０と、を備える。端末装置１０とＩＣカード２０とは、上記したように非接触通信により互いに種々のデータを送受信する。
【００１５】
端末装置１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、送受信部１５、アンテナ共振回路部１６、ロジック回路部１７、上位インターフェース部１８、及び電源回路部１９を備える。
【００１６】
ＣＰＵ１１は、端末装置１０全体の制御を司る制御部として機能する。ＣＰＵ１１は、ＲＯＭ１２又は不揮発性メモリ１４に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。
【００１７】
ＲＯＭ１２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＡＭ１３は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ１３は、送受信部１５及びアンテナ共振回路部１６を介して外部の機器と送受信するデータを一時的に格納する。また、ＲＡＭ１３は、ＣＰＵ１１が実行するプログラムを一時的に格納する。
【００１８】
不揮発性メモリ１４は、例えばＥＥＰＲＯＭ、ＦＲＡＭなどを備える。不揮発性メモリ１４は、例えば、制御用のプログラム、制御データ、アプリケーション、及びアプリケーションに用いられるデータなどを記憶する。また、不揮発性メモリ１４は、データの暗号化及び復号などに用いられる暗号鍵（秘密鍵）を記憶する。
【００１９】
送受信部１５は、アンテナ共振回路部１６により送受信するデータに対して信号処理を施す。例えば、送受信部１５は、変調、及び復調を行なう。
【００２０】
アンテナ共振回路部１６は、例えば所定の共振周波数を有するアンテナを有する。アンテナ共振回路部１６は、磁界を発生させる。これにより、端末装置１０は、通信可能範囲に存在するＩＣカード２０に対してデータを非接触で送信することができる。
【００２１】
送受信部１５は、アンテナ共振回路部１６により受信したデータに対して復調及び復号を行う。これにより、端末装置１０は、ＩＣカード２０から送信された元のデータを再生することができる。
【００２２】
ロジック回路部１７は、所定の演算処理を行う。例えば、ロジック回路部１７は、ＣＰＵ１１の制御に基づいて、データの暗号化、復号、及び乱数生成などの演算処理を行う。
【００２３】
上位インターフェース部１８は、上位端末と通信するためのインターフェースである。上位端末は、例えば操作部及び表示部などを備える。操作部は、例えば操作キーなどを備え、操作者により入力される操作に基づいて、操作信号を生成する。表示部は、種々の情報を表示する。上位インターフェース部１８は、上位端末からデータを受け取り、ＣＰＵ１１に伝送する。また、上位インターフェース部１８は、送受信部１５及びアンテナ共振回路部１６によりＩＣカード２０から取得したデータを上位端末に伝送する構成であってもよい。
【００２４】
電源回路部１９は、端末装置１０の各部に電力を供給する。
【００２５】
図２は、一実施形態に係るＩＣカード２０の構成例を示す。  
図２に示すように、ＩＣカード２０は、例えば、矩形状の本体２１と、本体２１内に内蔵されたＩＣモジュール２２とを備える。また、本体２１には、アンテナ共振回路部（アンテナ）２４が設置されている。また、ＩＣモジュール２２は、ＩＣチップ２３を備える。ＩＣチップ２３は、アンテナ共振回路部２４と接続された状態でＩＣモジュール２２内に形成されている。
【００２６】
なお、本体２１は、少なくともアンテナ共振回路部２４が設置可能な形状であれば、矩形状に限らず如何なる形状であっても良い。
【００２７】
図２に示すように、ＩＣカード２０は、ＩＣチップ２３と、アンテナ共振回路部（アンテナ）２４とを備える。
【００２８】
ＩＣチップ２３は、ＣＰＵ２５、ＲＯＭ２６、ＲＡＭ２７、不揮発性メモリ２８、送受信部２９、電源回路部３１、及びロジック回路部３２などを備える。ＣＰＵ２５、ＲＯＭ２６、ＲＡＭ２７、不揮発性メモリ２８、送受信部２９、及びロジック回路部３２は、バスを介して互いに接続されている。
【００２９】
アンテナ共振回路部２４は、端末装置（外部機器）１０のアンテナ共振回路部１６と通信を行うためのインターフェースである。アンテナ共振回路部２４は、例えば、所定の形状で配設される金属線により構成されるアンテナコイルを備える。
【００３０】
ＣＰＵ２５は、ＩＣカード２０全体の制御を司る制御部として機能する。ＣＰＵ２５は、ＲＯＭ２６あるいは不揮発性メモリ２８に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、端末装置１０から受信したコマンドに応じて種々の処理を行い、処理結果としてのレスポンスなどのデータの生成を行なう。
【００３１】
ＲＯＭ２６は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２６は、製造段階で制御プログラム及び制御データなどを記憶した状態で組み込まれる。即ち、ＲＯＭ２６に記憶される制御プログラム及び制御データは、予めＩＣカード２０の仕様に応じて組み込まれる。
【００３２】
ＲＡＭ２７は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ２７は、ＣＰＵ２５の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ２７は、アンテナ共振回路部２４を介して端末装置１０から受信したデータを一時的に格納する。またＲＡＭ２７は、アンテナ共振回路部２４を介して端末装置１０に送信するデータを一時的に格納する。またさらに、ＲＡＭ２７は、ＣＰＵ２５が実行するプログラムを一時的に格納する。
【００３３】
不揮発性メモリ２８は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリを備える。不揮発性メモリ２８は、ＩＣカード２０の運用用途に応じて制御プログラム及び種々のデータを格納する。
【００３４】
たとえば、不揮発性メモリ２８では、プログラムファイル及びデータファイルなどが創成される。創成された各ファイルには、制御プログラム及び種々のデータなどが書き込まれる。ＣＰＵ２５は、不揮発性メモリ２８、または、ＲＯＭ２６に記憶されているプログラムを実行することにより、種々の処理を実現することができる。また、不揮発性メモリ２８は、データの暗号化及び復号などに用いられる暗号鍵（秘密鍵）を記憶するファイルを備える。
【００３５】
送受信部２９は、端末装置１０に送信するデータに対して、負荷変調などの信号処理を行う。例えば、送受信部２９は、端末装置１０に送信するデータの変調を行う。
【００３６】
また、送受信部２９は、アンテナ共振回路部２４により受信する信号に対して復調を行う。例えば、送受信部２９は、アンテナ共振回路部２４により受信する信号の復号化を行う。これにより、送受信部２９は、２値の論理データを再生する。送受信部２９は、復号化したデータをバスを介してＣＰＵ２５に送信する。
【００３７】
電源回路部３１は、アンテナ共振回路部２４により受け取った電磁波から電力を生成する。電源回路部３１は、生成した電力をＩＣカード２０の各部に供給する。ＩＣカード２０の各部は、動作に必要な電力の供給を受けた場合、動作可能な状態になる。
【００３８】
ロジック回路部３２は、演算処理をハードウエアにより行う演算部である。例えば、ロジック回路部３２は、端末装置１０からのコマンドに基づいて、データの暗号化、復号化、及び乱数の生成などの処理を行う。例えば、ロジック回路部３２は、端末装置１０から受信したコマンドに応じて、擬似固有カード識別子（ＰＵＰＩ：Pseudo-Unique PICC Identifier）、または、相互認証に用いられる乱数などを生成する。
【００３９】
ＰＵＰＩは、端末装置１０がＩＣカード２０を識別するための擬似的な固有識別子である。ＰＵＰＩは、例えば、長さ４バイトの乱数、または固定値である。
【００４０】
端末装置１０は、ＰＵＰＩにより処理対象のＩＣカード２０を指定して、ＡＴＴＲＩＢ（カード選択コマンド）を送信する。これにより、端末装置１０は、ＰＵＰＩにより指定したＩＣカード２０との通信を確立することができる。
【００４１】
また、不揮発性メモリ２８は、ロジック回路部３２により生成されたＰＵＰＩを記憶する記憶部（メモリ）２８ａを有する。ＩＣカード２０は、新たにＰＵＰＩを生成した場合、新たに生成されたＰＵＰＩをメモリ２８ａに上書きする。なお、ＰＵＰＩは、固定値であってもよい。この場合、ＩＣカード２０のＲＯＭ２６は、予めＰＵＰＩを記憶した状態でＩＣカード２０の中に組み込まれる。また、ＩＣカード２０は、ＲＡＭ２７がロジック回路部３２により生成されたＰＵＰＩを記憶する記憶領域を備える構成であってもよい。
【００４２】
また、ＩＣカード２０は、乱数の生成を必要とするコマンド（例えば相互認証コマンドなど）を受信した場合、乱数を生成する。
【００４３】
例えば、端末装置１０とＩＣカードとの間で、８バイトの乱数（擬似乱数データ）を用いて相互認証処理が行われる場合がある。このような場合、ＩＣカード２０は、メモリ２８ａにより記憶されている４バイトのＰＵＰＩを擬似乱数データの一部として用いる。
【００４４】
図３は、ＩＣカード処理システム１の動作の例について示す。  
端末装置１０は、ＩＣカード２０の検知を行なう為に、アンテナ共振回路部１６により送信する初期応答要求コマンドを生成する。端末装置１０は、生成した初期応答要求コマンドを送信する（ステップＳ１１）。端末装置１０は、図４に示すような初期応答要求コマンドデータを生成する。
【００４５】
図４は、初期応答要求コマンドフォーマットの例を示す。図４により示されるように、初期応答要求コマンドは、「ＡＰｆ」、「ＡＦＩ」、「ＰＡＲＡＭ」、及び「ＣＲＣ＿Ｂ」を有する。
【００４６】
ＡＰｆは、初期応答要求コマンドで使用されるパラメータである。ＡＰｆは、例えば１ｂｙｔｅのデータである。
【００４７】
ＡＦＩは、端末装置１０が応用分野を特定する為に用いられる識別子である。ＡＦＩは、例えば８ｂｉｔ（１ｂｙｔｅ）で表現される値である。即ち、端末装置１０は、初期応答要求コマンドの先頭から９ｂｉｔ乃至１６ｂｉｔ目にＡＦＩの値を設定する。
【００４８】
ＰＡＲＡＭは、属性情報のパラメータである。ＰＡＲＡＭは、例えば８ｂｉｔ（１ｂｙｔｅ）のデータである。ＰＡＲＡＭは、コマンドの種類、及び、スロットマーカ方式またはタイムスロット方式などのアンチコリジョンで使用されるスロットの数などを示す。また、ＰＡＲＡＭは、当該初期応答要求コマンドが、ＲＥＱＢコマンド（リクエストコマンド）であるのか、ＷＵＰＢコマンド（ウェークアップコマンド）であるのかを示す情報を有する。
【００４９】
ＣＲＣ＿Ｂは、巡回冗長検査符号である。ＣＲＣ＿Ｂは、例えば、１６ｂｉｔ（２ｂｙｔｅ）で表現される値である。ＣＲＣ＿Ｂは、ＣＲＣ＿Ｂを含むコマンドをキャラクタとして有するフレーム内のデータビットから計算される値である。ＩＣカード２０は、受信したコマンドのＣＲＣ＿Ｂを用いて、受信したコマンドが正常に伝送されたものであるか否かを判断する。
【００５０】
ＩＣカード２０は、端末装置１０のアンテナ共振回路部１６の通信可能範囲内に進入する場合、活性化されてアイドル状態になる。ＩＣカード２０は、初期応答要求コマンドを受信する。
【００５１】
ＩＣカード２０のＣＰＵ２５は、受信した初期応答要求コマンドを解析する。ＩＣカード２０は、初期応答要求コマンドの「ＡＰｆ」、「ＡＦＩ」、「ＰＡＲＡＭ」、及び「ＣＲＣ＿Ｂ」のそれぞれの値を認識する。ＩＣカード２０は、初期応答要求コマンドを受信した場合、ＰＵＰＩとして乱数データを生成する（ステップＳ１２）。
【００５２】
さらに、ＩＣカード２０は、生成したＰＵＰＩをメモリ２８ａに記憶する（ステップＳ１３）。
【００５３】
ＩＣカード２０は、生成されたＰＵＰＩを用いて図５に示すような初期応答要求コマンドに対するレスポンス（初期応答）を生成する。ＩＣカード２０は、生成された初期応答を端末装置１０に送信する（ステップＳ１４）。
【００５４】
図５は、ＩＣカード２０により生成された初期応答の例を示す。  
ＩＣカード２０は、「ＡＰａ」、「ＰＵＰＩ」、「応用データ」、「プロトコル情報」及び「ＣＲＣ＿Ｂ」を生成する。ＩＣカード２０は、「ＡＰａ」、「ＰＵＰＩ」、「応用データ」、「プロトコル情報」及び「ＣＲＣ＿Ｂ」を用いて初期応答を生成する。ＩＣカード２０は、生成した初期応答要求コマンドに対するレスポンスを端末装置１０に送信する。
【００５５】
ＡＰａは、初期応答要求コマンドに対するレスポンス（初期応答）で使用されるパラメータである。ＡＰａは、例えば１ｂｙｔｅのデータである。
【００５６】
ＰＵＰＩは、擬似固有カード識別子である。ＰＵＰＩは、端末装置１０側からＩＣカード２０を識別するために使用される。ＰＵＰＩは、例えば、４ｂｙｔｅのデータである。ＩＣカード２０は、ロジック回路部３２により乱数を生成し、生成した乱数を４ｂｙｔｅのＰＵＰＩとする。なお、ＩＣカード２０は、４ｂｙｔｅの乱数を生成するようにロジック回路部３２を制御する構成であってもよい。また、ＩＣカード２０は、ＲＯＭ２６、または不揮発性メモリ２８により予め記憶されているＰＵＰＩを読み出す構成であってもよい。
【００５７】
応用データは、ＩＣカード２０にどのようなアプリケーションが書き込まれているかを端末装置１０に伝える為のデータである。応用データは、例えば４ｂｙｔｅのデータである。
【００５８】
プロトコル情報は、ＩＣカード２０がサポートする応用プロトコルの状態を表す。例えば、プロトコル情報は、ＩＣカード２０がサポートする通信速度を示す情報を含む。プロトコル情報は、例えば３ｂｙｔｅのデータである。
【００５９】
ＣＲＣ＿Ｂは、上記したように巡回冗長検査符号である。
【００６０】
端末装置１０は、ＩＣカード２０から送信された初期応答要求コマンドに対するレスポンスを受信する。
【００６１】
端末装置１０は、初期応答要求コマンドに対するレスポンス（初期応答）を受信する場合、受信したレスポンスを解析する。これにより、端末装置１０は、自身の通信可能範囲内にＩＣカード２０が存在することを認識する。また、端末装置１０は、初期応答を解析することにより、ＩＣカード２０のＰＵＰＩを取得する。
【００６２】
さらに、端末装置１０は、例えばＡＴＴＲＩＢコマンドなどの選択コマンドをＩＣカード２０に送信する（ステップＳ１５）。端末装置１０は、ＩＣカード２０から受信したＰＵＰＩを用いてＩＣカード２０を選択する。例えば、端末装置１０は、通信の対象として選択したＩＣカード２０から受信したＰＵＰＩをＡＴＴＲＩＢに付加する。
【００６３】
ＩＣカード２０は、選択コマンドを受信した場合、受信した選択コマンドを解析する。ＩＣカード２０は、選択コマンドを解析することにより、ＰＵＰＩを認識する。ＩＣカード２０は、自身のＰＵＰＩと、認識したＰＵＰＩとを比較する。ＩＣカード２０は、自身のＰＵＰＩと、認識したＰＵＰＩとが一致した場合、論理チャネルの生成、通信速度の設定などを行う。これにより、ＩＣカード２０は、端末装置１０との通信路を確立することができる。
【００６４】
さらに、ＩＣカード２０は、選択コマンドに応じた処理の処理結果に基づいて、選択コマンドに対するレスポンスを生成する。ＩＣカード２０は、生成したレスポンスを端末装置１０に送信する（ステップＳ１６）。
【００６５】
端末装置１０は、選択コマンドに対するレスポンスをＩＣカード２０から受信した場合、ＩＣカード２０との間で通信路が確立されたことを認識する。即ち、端末装置１０は、ＩＣカード２０の選択が完了したことを認識する。
【００６６】
端末装置１０は、選択したＩＣカード２０との間で相互認証を行う。まず、端末装置１０は、乱数要求コマンドを生成する。端末装置１０は、生成した乱数要求コマンドをＩＣカード２０に送信する（ステップＳ１７）。
【００６７】
ＩＣカード２０は、乱数要求コマンドを受信した場合、ロジック回路部３２により乱数を生成するようにロジック回路部３２を制御する。さらに、ＩＣカード２０は、ロジック回路部３２により生成された乱数と、既に生成したＰＵＰＩとに基づいて、相互認証に用いる乱数（擬似乱数データ）を生成する。乱数要求コマンドにより擬似乱数データのバイト数が指定されている場合、ＩＣカード２０は、指定されたバイト数の擬似乱数データを生成する。また、擬似乱数データは、例えばコマンド毎に固定長であってもよい。
【００６８】
例えば、端末装置１０とＩＣカード２０との間で、８バイトの擬似乱数データを用いて相互認証処理が行われる場合、ＩＣカード２０は、メモリ２８ａにより記憶されている４バイトのＰＵＰＩを擬似乱数データの一部として用いる。
【００６９】
ＩＣカード２０は、乱数要求コマンドを受信した場合、ロジック回路部３２により４ｂｙｔｅの乱数を生成する（ステップＳ１８）。さらに、ＩＣカード２０は、記憶部２８ａから４ｂｙｔｅのＰＵＰＩを読み出す（ステップＳ１９）。ＩＣカード２０は、ロジック回路部３２により生成された４ｂｙｔｅの乱数と、記憶部２８ａから読み出した４ｂｙｔｅのＰＵＰＩとを結合することにより、８バイトの擬似乱数データを生成する（ステップＳ２０）。
【００７０】
なお、擬似乱数データを生成する方法は、上記の方法に限定されない。ＩＣカード２０は、少なくともＰＵＰＩを擬似乱数データの一部として用いる方法であれば、如何なる方法により擬似乱数データを生成する構成であってもよい。
【００７１】
また、ＰＵＰＩのバイト数は、４バイトに限られるものではない。また、擬似乱数データのバイト数は、８バイトに限られるものではない。例えば、ＰＵＰＩのバイト数と、擬似乱数データのバイト数が同じである場合、ＩＣカード２０は、ＰＵＰＩを擬似乱数データとして用いる構成であってもよい。
【００７２】
ＩＣカード２０は、擬似乱数データを用いて、図６に示すような乱数要求コマンドに対するレスポンスを生成する。
【００７３】
図６は、ＩＣカード２０により生成された乱数要求コマンドに対するレスポンスの例を示す。  
乱数要求コマンドに対するレスポンスは、「Ｄａｔａ」、「ＳＷ１」、及び「ＳＷ２」を有する。ＩＣカード２０は、乱数要求コマンドに応じて実行した処理の結果に基づいて、「Ｄａｔａ」、「ＳＷ１」、及び「ＳＷ２」に値を付加することにより、乱数要求コマンドに対するレスポンスを生成する。
【００７４】
「Ｄａｔａ」は、コマンドを実行した結果として得られたデータを格納するフィールドである。ＩＣカード２０は、「Ｄａｔａ」として擬似乱数データを付加する。
【００７５】
「ＳＷ１」及び「ＳＷ２」は、コマンド処理の正常終了、エラー、または他の状態を示すステータスワードである。乱数要求コマンドに応じて擬似乱数データの生成を正常に行った場合、ＩＣカード２０は、正常終了を示す値を「ＳＷ１」、及び「ＳＷ２」に付加する。
【００７６】
ＩＣカード２０は、乱数要求コマンドに対するレスポンスを端末装置１０に送信する（ステップＳ２１）。
【００７７】
端末装置１０は、乱数要求コマンドに対するレスポンスを受信した場合、相互認証コマンドを生成する（ステップＳ２２）。即ち、端末装置１０は、乱数要求コマンドに対するレスポンスを受信した場合、レスポンスから擬似乱数データを取得する。端末装置１０は、擬似乱数データを秘密鍵により暗号化し、暗号化されたデータ（第１の暗号化データ）を相互認証コマンドに付加する。
【００７８】
端末装置１０は、生成した相互認証コマンドをＩＣカード２０に送信する（ステップＳ２３）。
【００７９】
ＩＣカード２０は、相互認証コマンドを受信した場合、認証処理を行う（ステップＳ２４）。ＩＣカード２０は、相互認証コマンドを解析することにより、第１の暗号化データを認識する。さらに、ＩＣカード２０は、ステップＳ２０で生成した擬似乱数データを秘密鍵により暗号化し、暗号化されたデータ（第２の暗号化データ）を生成する。
【００８０】
ＩＣカード２０は、第１の暗号化データと第２の暗号化データとを比較し、一致するか否か判定する。第１の暗号化データと第２の暗号化データとが一致する場合、ＩＣカード２０は、認証結果を可と判定する。また、第１の暗号化データと第２の暗号化データとが一致しない場合、認証結果を不可と判定する。
【００８１】
ＩＣカード２０は、認証結果に基づいて相互認証コマンドに対するレスポンスを生成し、生成したレスポンスを端末装置１０に送信する（ステップＳ２５）。
【００８２】
端末装置１０は、可の認証結果を受信した場合、ＩＣカード２０との間で相互認証が正常に完了したと認識する。これ以降、端末装置１０は、種々のコマンドをＩＣカード２０に送信することにより、種々の処理をＩＣカード２０に実行させることができる。
【００８３】
上記したように、一実施形態に係るＩＣカード２０は、初期応答時に生成したＰＵＰＩを記憶しておき、乱数を生成する場合に、記憶しておいたＰＵＰＩを乱数の一部として用いる。これにより、ＩＣカード２０は、新たに生成する乱数のデータ量を抑えることができる。この為、ＩＣカード２０の処理の負荷の軽減、及び高速化を実現することが出来る。
【００８４】
この結果、より効率的に非接触通信を行う事ができるＩＣカード、及びＩＣカードの処理方法を提供することができる。
【００８５】
なお、ＩＣカード２０は、新たに乱数の生成が必要か否かを判定する構成であってもよい。例えば、生成する擬似乱数データのバイト数が、ＰＵＰＩのバイト数以下である場合、ＩＣカード２０は、新たに乱数を生成せずにメモリ２８ａにより記憶されているＰＵＰＩの全体または一部を擬似乱数データとして用いてレスポンスを生成する。また、例えば、生成する擬似乱数データのバイト数が、ＰＵＰＩのバイト数より大きい場合、ＩＣカード２０は、不足するバイト数分の乱数を生成し、ＰＵＰＩと組み合わせる。これにより、ＩＣカード２０は、擬似乱数データを生成する。
【００８６】
なお、上記した実施形態では、ＩＣカード２０は、乱数要求コマンドを受信した場合に擬似乱数データを生成する構成として説明したが、この構成に限定されない。ＩＣカード２０は、端末装置１０から初期応答要求コマンドを受信した場合に擬似乱数データを生成し、端末装置１０に送信する構成であってもよい。
【００８７】
図７は、ＩＣカード処理システム１の動作の他の例について示す。  
端末装置１０は、ＩＣカード２０の検知を行なう為に、アンテナ共振回路部１６により送信する初期応答要求コマンドを生成する。端末装置１０は、生成した初期応答要求コマンドをアンテナ共振回路部１６により送信する（ステップＳ３１）。端末装置１０は、図８に示すような初期応答要求コマンドを生成する。
【００８８】
図８は、初期応答要求コマンドの例を示す。図８により示されるように、初期応答要求コマンドは、「ＡＰｆ」、「ＡＦＩ」、「ＰＡＲＡＭ」、「乱数要求」、及び「ＣＲＣ＿Ｂ」を有する。なお、「ＡＰｆ」、「ＡＦＩ」、「ＰＡＲＡＭ」、及び「ＣＲＣ＿Ｂ」は、図４に示されたものと同様である為、説明を省略する。
【００８９】
乱数要求は、ＩＣカード２０に乱数（擬似乱数データ）の生成を指示する為の情報である。乱数要求は、例えば、擬似乱数データのバイト数を指定する為の情報を有する。
【００９０】
ＩＣカード２０は、端末装置１０のアンテナ共振回路部１６の通信可能範囲内に進入する場合、活性化されてアイドル状態になる。ＩＣカード２０は、初期応答要求コマンドを受信する。
【００９１】
ＩＣカード２０のＣＰＵ２５は、受信した初期応答要求コマンドを解析する。ＩＣカード２０は、初期応答要求コマンドの「ＡＰｆ」、「ＡＦＩ」、「ＰＡＲＡＭ」、「乱数要求」、及び「ＣＲＣ＿Ｂ」のそれぞれの値を認識する。ＩＣカード２０は、初期応答要求コマンドを受信した場合、乱数要求により指定された長さの擬似乱数データを生成する（ステップＳ３２）。
【００９２】
ＩＣカード２０は、生成された擬似乱数データを用いて図９に示すような初期応答要求コマンドに対するレスポンス（初期応答）を生成する。ＩＣカード２０は、生成された初期応答を端末装置１０に送信する（ステップＳ３３）。
【００９３】
図９は、ＩＣカード２０により生成された初期応答の例を示す。初期応答は、「ＡＰａ」、「擬似乱数データ」、「応用データ」、「プロトコル情報」及び「ＣＲＣ＿Ｂ」を有する。なお、「ＡＰａ」、「応用データ」、「プロトコル情報」及び「ＣＲＣ＿Ｂ」は、図５に示されたものと同様である為、説明を省略する。
【００９４】
「擬似乱数データ」は、上記のステップＳ３２でＩＣカード２０により生成された乱数である。例えば、ＩＣカード２０は、８バイトの擬似乱数データを生成する。例えば、端末装置１０は、初期応答を受信した場合、第２から第５バイトまでをＰＵＰＩとして認識し、第２から第９バイトまでを擬似乱数データとして認識する。また、ＩＣカード２０も同様に、初期応答の第２から第５バイトまで、即ち、擬似乱数データの先頭の４バイトをＰＵＰＩとして認識する。なお、ＩＣカード２０は、擬似乱数データのうちの４バイトをＰＵＰＩとして認識する構成であれば、擬似乱数データのどこをＰＵＰＩとして認識する構成であってもよい。
【００９５】
端末装置１０は、初期応答要求コマンドに対するレスポンス（初期応答）を受信する場合、受信したレスポンスを解析する。これにより、端末装置１０は、自身の通信可能範囲内にＩＣカード２０が存在することを認識する。また、端末装置１０は、初期応答を解析することにより、ＩＣカード２０のＰＵＰＩ、及び擬似乱数データを取得する。
【００９６】
さらに、端末装置１０は、例えばＡＴＴＲＩＢコマンドなどの選択コマンドをＩＣカード２０に送信する（ステップＳ３４）。端末装置１０は、ＩＣカード２０から受信したＰＵＰＩを用いてＩＣカード２０を選択する。例えば、端末装置１０は、通信の対象として選択したＩＣカード２０から受信したＰＵＰＩをＡＴＴＲＩＢに付加する。
【００９７】
ＩＣカード２０は、選択コマンドを受信した場合、受信した選択コマンドを解析する。ＩＣカード２０は、選択コマンドを解析することにより、ＰＵＰＩを認識する。ＩＣカード２０は、自身のＰＵＰＩと、認識したＰＵＰＩとを比較する。ＩＣカード２０は、自身のＰＵＰＩと、認識したＰＵＰＩとが一致した場合、論理チャネルの生成、通信速度の設定などを行う。これにより、ＩＣカード２０は、端末装置１０との通信路を確立することができる。
【００９８】
さらに、ＩＣカード２０は、選択コマンドに応じた処理の処理結果に基づいて、選択コマンドに対するレスポンスを生成する。ＩＣカード２０は、生成したレスポンスを端末装置１０に送信する（ステップＳ３５）。
【００９９】
端末装置１０は、選択コマンドに対するレスポンスをＩＣカード２０から受信した場合、ＩＣカード２０との間で通信路が確立されたことを認識する。即ち、端末装置１０は、ＩＣカード２０の選択が完了したことを認識する。
【０１００】
端末装置１０は、選択したＩＣカード２０との間で相互認証を行う。この場合、端末装置１０は、初期応答から取得した擬似乱数データに基づいて、相互認証コマンドを生成する（ステップＳ３６）。即ち、端末装置１０は、擬似乱数データを秘密鍵により暗号化し、暗号化された擬似乱数データ（第１の暗号化データ）を相互認証コマンドに付加する。
【０１０１】
端末装置１０は、生成した相互認証コマンドをＩＣカード２０に送信する（ステップＳ３７）。
【０１０２】
ＩＣカード２０は、相互認証コマンドを受信した場合、認証処理を行う（ステップＳ３８）。ＩＣカード２０は、相互認証コマンドを解析することにより、第１の暗号化データを認識する。さらに、ＩＣカード２０は、ステップＳ３２で生成した擬似乱数データを秘密鍵により暗号化し、暗号化された擬似乱数データ（第２の暗号化データ）を生成する。
【０１０３】
ＩＣカード２０は、第１の暗号化データと第２の暗号化データとを比較し、一致するか否か判定する。第１の暗号化データと第２の暗号化データとが一致する場合、ＩＣカード２０は、認証結果を可と判定する。また、第１の暗号化データと第２の暗号化データとが一致しない場合、認証結果を不可と判定する。
【０１０４】
ＩＣカード２０は、認証結果に基づいて相互認証コマンドに対するレスポンスを生成し、生成したレスポンスを端末装置１０に送信する（ステップＳ３９）。
【０１０５】
端末装置１０は、可の認証結果を受信した場合、ＩＣカード２０との間で相互認証が正常に完了したと認識する。これ以降、端末装置１０は、種々のコマンドをＩＣカード２０に送信することにより、種々の処理をＩＣカード２０に実行させることができる。
【０１０６】
上記したように、一実施形態に係るＩＣカード２０は、初期応答時に擬似乱数データを生成する。さらに、ＩＣカード２０は、擬似乱数データを初期応答として端末装置１０に送信する。
【０１０７】
この場合、端末装置１０は、相互認証に必要な乱数要求コマンドをＩＣカード２０に送信する必要がなくなる。この為、ＩＣカード２０は、新たに生成する乱数のデータ量を抑え、且つ、より速く端末装置１０との相互認証を完了させることができる。これにより、ＩＣカード２０の処理の負荷の軽減、及び高速化を実現することが出来る。
【０１０８】
この結果、より効率的に非接触通信を行う事ができるＩＣカード、及びＩＣカードの処理方法を提供することができる。
【０１０９】
なお、上記した実施形態では、端末装置１０は、乱数要求を初期応答要求コマンドに付加する構成として説明したが、この構成に限定されない。端末装置１０は、乱数要求を選択コマンドに付加する構成であってもよい。
【０１１０】
また、ＩＣカード２０は、擬似乱数データを初期応答に付加する構成として説明したが、この構成に限定されない。端末装置１０は、擬似乱数データを選択コマンドに対するレスポンスに付加する構成であってもよい。
【０１１１】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【０１１２】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【０１１３】
１…ＩＣカード処理システム、１０…端末装置、１２…ＲＯＭ、１３…ＲＡＭ、１４…不揮発性メモリ、１５…送受信部、１６…アンテナ共振回路部、１７…ロジック回路部、１８…上位インターフェース部、１９…電源回路部、２０…ＩＣカード、２１…本体、２２…ＩＣモジュール、２３…ＩＣチップ、２４…アンテナ共振回路部、２５…ＣＰＵ、２６…ＲＯＭ、２７…ＲＡＭ、２８…不揮発性メモリ、２８ａ…記憶部、２９…送受信部、３１…電源回路部、３２…ロジック回路部。
【図１】
0005726700.tif 000002
【図２】
0005726700.tif 000003
【図３】
0005726700.tif 000004
【図４】
0005726700.tif 000005
【図５】
0005726700.tif 000006
【図６】
0005726700.tif 000007
【図７】
0005726700.tif 000008
【図８】
0005726700.tif 000009
【図９】
0005726700.tif 000010