(57)【要約】【課題】チェイニングの発生を防止することができるＩＣカード、携帯可能電子装置及び処理装置を提供する。【解決手段】実施形態によれば、ＩＣカードは、通信部と、送信処理部と、を備える。通信部は、外部装置と通信する。送信処理部は、前記通信部により前記外部装置から受信したコマンドが格納する期待値が所定の閾値よりも大きいと判定された場合、前記コマンドに対するレスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを前記通信部を通じて前記外部装置へ送信する。【選択図】      図１
2018101252.tif 000002
【特許請求の範囲】
【請求項１】
外部装置と通信する通信部と、
前記通信部により前記外部装置から受信したコマンドが格納する期待値が所定の閾値よりも大きいと判定された場合、前記コマンドに対するレスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを前記通信部を通じて前記外部装置へ送信する送信処理部と、
を備えるＩＣカード。
【請求項２】
前記所定の閾値は、送信可能なレスポンスの最大データ長である、
前記請求項１に記載のＩＣカード。
【請求項３】
前記圧縮レスポンスは、少なくとも一部のデータを圧縮したことを示す情報を含む、
前記請求項１又は２に記載のＩＣカード。
【請求項４】
前記圧縮レスポンスは、ＰＣＢにおいて前記情報としてのビットを含む、
前記請求項３に記載のＩＣカード。
【請求項５】
前記レスポンスは、情報フィールドを含み、
前記圧縮レスポンスは、前記情報フィールドのデータを圧縮したデータを含む、
前記請求項１乃至４の何れか１項に記載のＩＣカード。
【請求項６】
外部装置と通信する通信部と、前記通信部により前記外部装置から受信したコマンドが格納する期待値が所定の閾値よりも大きいと判定された場合、前記コマンドに対するレスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを前記通信部を通じて前記外部装置へ送信する送信処理部と、を備えるモジュールと、
前記モジュールを内蔵した本体と、
を備えるＩＣカード。
【請求項７】
外部装置と通信する通信部と、
前記通信部により前記外部装置から受信したコマンドが格納する期待値が所定の閾値よりも大きいと判定された場合、前記コマンドに対するレスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを前記通信部を通じて前記外部装置へ送信する送信処理部と、
を備える携帯可能電子装置。
【請求項８】
携帯可能電子装置と通信する通信部と、
前記通信部を通じて受信した、レスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスのデータを解凍する処理部と、
を備える処理装置。
【請求項９】
前記処理部は、
前記圧縮レスポンスが、データの少なくとも一部を圧縮したことを示す情報を含む場合、前記圧縮レスポンスのデータを解凍する、
前記請求項８に記載の処理装置。
【請求項１０】
前記通信部を通じて、レスポンスのデータ長の期待値を含むコマンドを送信する送信処理部を備える、
前記請求項８又は９に記載の処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、携帯可能電子装置及び処理装置に関する。
【背景技術】
【０００２】
ＩＣカードは、上位装置からのコマンドに応じてレスポンスを送信するものがある。ＩＣカードは、レスポンスの長さが所定の長さを超えると、レスポンスを分割して上位装置へ送信するチェイニングを行う。
【０００３】
従来、チェイニングが発生すると、ＩＣカードは、上位装置へレスポンスを送信する時間が増加するという課題がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０７−１２１６７４号公報
【特許文献２】特開平１０−１２４６３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の課題を解決するために、チェイニングの発生を防止することができるＩＣカード、携帯可能電子装置及び処理装置を提供する。
【課題を解決するための手段】
【０００６】
実施形態によれば、ＩＣカードは、通信部と、送信処理部と、を備える。通信部は、外部装置と通信する。送信処理部は、前記通信部により前記外部装置から受信したコマンドが格納する期待値が所定の閾値よりも大きいと判定された場合、前記コマンドに対するレスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを前記通信部を通じて前記外部装置へ送信する。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態に係るＩＣカードとＩＣカード処理装置とを有するＩＣカード処理システムの構成例を示す図である。
【図２】図２は、実施形態に係るＩＣカードの構成例を示すブロック図である。
【図３】図３は、実施形態に係るＩＣカード処理装置が送信するコマンドの例を示す。
【図４】図４は、実施形態に係るＩＣカードが送信するレスポンスの例を示す。
【図５】図５は、実施形態に係るＩＣカード処理システムの動作例を示すシーケンス図である。
【図６】図６は、実施形態に係るＩＣカードの動作例を示すフローチャートである。
【図７】図７は、実施形態に係るＩＣカードのＩ／Ｏラインを示すタイミングチャートである。
【発明を実施するための形態】
【０００８】
以下、実施形態について、図面を参照して説明する。  
図１は、実施形態に係る携帯可能電子装置としてのＩＣカード２と、ＩＣカード２と通信を行う外部装置としてのＩＣカード処理装置１とを備えるＩＣカード処理システム１０の構成例について説明するためのブロック図である。
【０００９】
図１が示す構成例において、ＩＣカード処理装置１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、カードリーダライタ１５、操作部１６、及び、ディスプレイ１７などを有する。ＣＰＵ１１とＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、カードリーダライタ１５、操作部１６及びディスプレイ１７とは、データバスを介して互いに接続される。なお、ＩＣカード処理装置１は、図１が示すような構成の他に、必要に応じた構成を具備したり特定の構成を除外したりしてもよい。
【００１０】
ＣＰＵ１１は、ＩＣカード処理装置１全体の動作を制御する機能を有する。ＣＰＵ１１は、内部キャッシュおよび各種のインターフェースなどを備えても良い。ＣＰＵ１１は、内部メモリ、ＲＯＭ１２又はＮＶＭ１４に予め記憶したプログラムを実行することにより種々の処理を実現する。例えば、ＣＰＵ１１は、プログラムを実行することにより、カードリーダライタ１５によりＩＣカード２へコマンドを送信する機能、ＩＣカード２から受信するレスポンスなどのデータを基に種々の処理を行う機能などを有する。これらの機能により、ＣＰＵ１１は、カードリーダライタ１５を介して、操作部１６などに入力されたデータ又は所定のデータなどを含む書き込みコマンドをＩＣカード２に送信する。
【００１１】
たとえば、ＣＰＵ１１は、プログラムを実行することにより、ＩＣカード処理装置１内の各部の制御及び情報処理を実現するプロセッサであればよい。  
なお、ＣＰＵ１１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ１１は、ハードウエア回路により実行される機能を制御する。
【００１２】
ＲＯＭ１２は、予め制御用のプログラム及び制御データなどが記憶された不揮発性のメモリである。ＲＯＭ１２に記憶される制御プログラム及び制御データは、予めＩＣカード処理装置１の仕様に応じて組み込まれる。ＲＯＭ１２は、たとえば、ＩＣカード処理装置１の回路基板を制御するプログラム（たとえば、ＢＩＯＳ）などを格納する。
【００１３】
ＲＡＭ１３は、揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。ＲＡＭ１３は、ＣＰＵ１１からの命令に基づき種々のアプリケーションプログラムを格納する。また、ＲＡＭ１３は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００１４】
ＮＶＭ１４は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ１４は、例えば、ハードディスク、ＳＳＤ、ＥＥＰＲＯＭ（登録商標）又はフラッシュメモリなどにより構成される。ＮＶＭ１４は、ＩＣカード処理装置１の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。
【００１５】
カードリーダライタ１５（通信部）は、ＩＣカード２とデータを送受信するためのインターフェース装置である。カードリーダライタ１５は、ＩＣカード２の通信方式に応じたインターフェースにより構成される。たとえば、ＩＣカード２が接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１６】
また、ＩＣカード２が非接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２との無線通信を行うためのアンテナ及び通信制御部などにより構成される。カードリーダライタ１５では、ＩＣカード２に対する電源供給、クロック供給、リセット制御及びデータの送受信などが行われるようになっている。
【００１７】
このような機能によってカードリーダライタ１５は、ＣＰＵ１１による制御に基づいてＩＣカード２に対する電源供給、ＩＣカード２の活性化（起動）、クロック供給、リセット制御、種々のコマンドの送信、及び送信したコマンドに対する応答（レスポンス）の受信などを行なう。
【００１８】
操作部１６は、ＩＣカード処理装置１の操作者によって、種々の操作指示が入力される。操作部１６は、操作者に入力された操作指示のデータをＣＰＵ１１へ送信する。操作部１６は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。
【００１９】
ディスプレイ１７は、ＣＰＵ１１の制御により種々の情報を表示する表示装置である。ディスプレイ１７は、たとえば、液晶モニタなどである。なお、操作部１６がタッチパネルから構成される場合、ディスプレイ１７は、操作部１６と一体的に形成されてもよい。
【００２０】
次に、ＩＣカード２について説明する。  
ＩＣカード２は、ＩＣカード処理装置１などの外部装置から電力などの供給を受けて活性化される（動作可能な状態になる）ようになっている。ＩＣカード２は、ＩＣカード処理装置１と接触式通信を行うものであってもよいし、非接触式通信を行うものであってもよい。
【００２１】
次に、ＩＣカード２の構成例について説明する。  
図２は、実施形態に係るＩＣカード２の構成例を概略的に示すブロック図である。  
ＩＣカード２は、プラスチックなどで形成されたカード状の本体Ｃを有する。ＩＣカード２は、本体Ｃ内にモジュールＭが内蔵される。モジュールＭは、ＩＣチップＣａ及び通信部としての外部インターフェース（たとえば、通信部２６）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設される。
【００２２】
モジュールＭは、通信部２６及びＩＣチップＣａなどを備える。ＩＣチップＣａは、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＮＶＭ２４及びタイマ２５などを備える。ＣＰＵ２１と、ＲＯＭ２２、ＲＡＭ２３、ＮＶＭ２４、タイマ２５及び通信部２６とは、データバスを介して互いに接続する。なお、ＩＣカード２は、適宜必要な構成を追加し、又は、不要な構成を削除してもよい。
【００２３】
ＣＰＵ２１は、ＩＣカード２全体の制御を司る制御部として機能する。ＣＰＵ２１は、ＲＯＭ２２又はＮＶＭ２４に記憶される制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、ＣＰＵ２１は、ＲＯＭ２２に記憶されているプログラムを実行することにより、ＩＣカード２の動作制御又はＩＣカード２の運用形態に応じた種々の処理を行う。
【００２４】
たとえば、ＣＰＵ２１は、プログラムを実行することにより、ＩＣカード２内の各部の制御及び情報処理を実現するプロセッサであればよい。  
なお、ＣＰＵ２１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ２１は、ハードウエア回路により実行される機能を制御する。
【００２５】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２に組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様などに応じて組み込まれる。
【００２６】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、ＣＰＵ２１の処理中のデータなどを一時的に格納する。たとえば、ＲＡＭ２３は、計算用バッファ、受信用バッファ及び送信用バッファとして機能する。計算用バッファは、ＣＰＵ２１が実行する種々の演算処理の結果などを一時的に保持する。受信用バッファは、通信部２６を介してＩＣカード処理装置１から受信するコマンドデータなどを保持する。送信用バッファは、通信部２６を介してＩＣカード処理装置１へ送信するメッセージ（レスポンスデータ）などを保持する。
【００２７】
ＮＶＭ２４は、例えば、ＥＥＰＲＯＭ（登録商標）又はフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。ＮＶＭ２４は、ＩＣカード２の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、ＮＶＭ２４では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
【００２８】
タイマ２５は、所定のタイミングから時間を計測する。たとえば、タイマ２５は、ＣＰＵ２１からの信号に基づいて、計測時間をリセットし時間の測定を開始する。たとえば、タイマ２５は、ＣＰＵ２１へ計測した時間を送信する。タイマ２５は、所定の時間が経過したことを示す信号をＣＰＵ２１へ送信してもよい。また、タイマ２５は、所定の間隔で計測した時間をＣＰＵ２１へ送信してもよい。なお、タイマ２５は、ＣＰＵ２１の機能として実現されてもよい。
【００２９】
通信部２６は、ＩＣカード処理装置１とデータを送受信するためのインターフェースである。即ち、通信部２６は、ＩＣカード処理装置１のカードリーダライタ１５との通信を行うためのインターフェースである。ＩＣカード２が接触型のＩＣカードとして実現される場合、通信部２６は、ＩＣカード処理装置１のカードリーダライタ１５と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。たとえば、ＩＣカード２は、コンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００３０】
ＩＣカード２が非接触型のＩＣカードとしての実現される場合、通信部２６は、ＩＣカード処理装置１のカードリーダライタ１５との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。たとえば、ＩＣカード２は、アンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信する。ＩＣカード２は、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化する。
【００３１】
次に、ＩＣカード処理装置１のＣＰＵ１１が実現する機能について説明する。  
ＣＰＵ１１は、レスポンスのデータ長の期待値を格納するコマンドをＩＣカード２に送信する機能を有する（送信処理部）。
【００３２】
たとえば、ＣＰＵ１１は、コマンドに対するレスポンスのデータ長の期待値を取得する。たとえば、ＣＰＵ１１は、リードコマンドで読み取るデータの長さなどに基づいて当該リードコマンドに対応する期待値を決定する。また、ＮＶＭ１４は、予めコマンドに対応する期待値を格納してもよい。ＣＰＵ１１は、ＮＶＭ１４などからコマンドに対応する期待値を取得してもよい。  
ＣＰＵ１１は、期待値を格納するコマンドを生成する。
【００３３】
図３は、ＣＰＵ１１が生成したコマンドの構成例を示す。  
図３が示すように、コマンドは、ＣＬＡ、ＩＮＳ、Ｐ１、Ｐ２、及びＬｅなどから構成される。なお、コマンドは、適宜必要な構成を追加し、又は、不要な構成を削除してもよい。
【００３４】
ＣＬＡは、クラスバイトを示す。  
ＩＮＳは、コマンドを示す。  
Ｐ１及びＰ２は、パラメータを示す。  
Ｌｅは、レスポンスのデータ長の期待値を示す。  
ＣＰＵ１１は、カードリーダライタ１５を通じて、生成したコマンドをＩＣカード２へ送信する。
【００３５】
また、ＣＰＵ１１は、レスポンスのデータを圧縮したデータを含む圧縮レスポンスを解凍する機能を有する（処理部）。  
たとえば、ＣＰＵ１１は、レスポンスが格納する情報に基づいてレスポンスの少なくとも一部のデータが圧縮されているか（レスポンスが圧縮レスポンスであるか）判定する。たとえば、ＣＰＵ１１は、レスポンスのＰＣＢの５ビットが「１」である場合、レスポンスの少なくとも一部のデータが圧縮されていると判定する。また、ＣＰＵ１１は、レスポンスのＰＣＢの５ビットが「０」である場合、レスポンスのデータが圧縮されていないと判定する。
【００３６】
レスポンスの少なくとも一部のデータが圧縮されていると判定すると、ＣＰＵ１１は、レスポンス（圧縮レスポンス）のデータを解凍する。たとえば、ＣＰＵ１１は、圧縮レスポンスの情報フィールドが格納する圧縮されたデータを解凍する。たとえば、情報フィールドがＴＬＶ（Ｔａｇ、Ｌｅｎｇｔｈ、Ｖａｌｕｅ）方式でデータを格納する場合、ＣＰＵ１１は、Ｖａｌｕｅ部のデータを解凍する。
【００３７】
ＣＰＵ１１は、ＩＣカード２がデータを圧縮した方法に対応する方法でデータを解凍する。ＣＰＵ１１がレスポンスのデータを解凍する方法は、特定の方法に限定されるものではない。
【００３８】
次に、ＩＣカード２のＣＰＵ２１が実現する機能について説明する。  
まず、ＣＰＵ２１は、ＩＣカード処理装置１からのコマンドに対するレスポンスを生成する機能を有する。  
たとえば、ＣＰＵ２１は、通信部２６を通じてＩＣカード処理装置１からコマンドを受信する。コマンドを受信すると、ＣＰＵ２１は、コマンドを処理する。コマンドを処理すると、ＣＰＵ２１は、コマンドの処理結果に基づいてレスポンスを生成する。たとえば、コマンドが所定のデータを読み出すリードコマンドである場合、ＣＰＵ２１は、当該データを格納するレスポンスを生成する。
【００３９】
図４は、ＣＰＵ２１が生成するレスポンスの例を示す。  
図４が示すように、レスポンスは、プロローグフィールド、情報フィールド（ＩＮＦ：  Ｉｎｆｏｒｍａｔｉｏｎ）、およびエピローグフィールド（ＥＤＣ：  Ｅｒｒｏｒ  Ｄｅｔｅｃｔｉｏｎ  Ｃｏｄｅ）などのフィールドを有する。
【００４０】
プロローグフィールドは、Ｎｏｄｅ  Ａｄｄｒｅｓｓ（ＮＡＤ）、Ｐｒｏｔｏｃｏｌ  Ｃｏｎｔｒｏｌｌ  Ｂｙｔｅ（ＰＣＢ）、及びＬｅｎｇｔｈ  ｂｙｔｅ（ＬＥＮ）などから構成される。
【００４１】
ＮＡＤは、ノードアドレスである。ＮＡＤは、異なる論理接続を構築するためのデータである。  
ＰＣＢは、プロトコル制御バイトである。ＰＣＢは、データ伝送の制御に必要な情報を相手側の機器（外部機器）に伝達することができる。  
ＬＥＮは、情報フィールドのデータ長を示す。
【００４２】
情報フィールド（ＩＮＦ）は、例えば、アプリケーション情報、または状態情報などを格納するフィールドである。たとえば、ＣＰＵ２１は、情報フィールドにＩＣカード処理装置１へ送信するデータ（データの本体）を格納する。たとえば、ＣＰＵ２１は、所定のデータを取得するリードコマンドを処理した場合、当該所定のデータを情報フィールドに格納する。
【００４３】
図４が示すように、ここでは、情報フィールドは、ＴＬＶ方式でデータを格納するものとする。たとえば、情報フィールドは、Ｔａｇ、Ｌｅｎｇｔｈ、及び、Ｖａｌｕｅなどを含む。Ｔａｇは、ＴＬＶデータオブジェクトを識別するための識別子である。Ｌｅｎｇｔｈは、Ｖａｌｕｅのデータ長である。Ｖａｌｕｅは、ＴＬＶデータオブジェクトのデータ本体である。
【００４４】
エピローグフィールド（ＥＤＣ）には、例えば、通信エラーなどによりデータ異常を検知するために、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄａｎｄｕｎｃｙ  Ｃｈｅｃｋ）などの冗長化検査符号を格納する。冗長化検査符号は、プロローグフィールド及び情報フィールドのデータに基づいて算出される値である。ＩＣカード処理装置１のＣＰＵ１１は、受信したレスポンスのプロローグフィールド及び情報フィールド内のデータと冗長化検査符号とに基づいて、通信エラーなどのデータ異常を検知することができる。たとえば、ＩＣカード処理装置１は、エピローグフィールド（ＥＤＣ）が格納する冗長化検査符号と、プロローグフィールド及び情報フィールドとから生成された冗長化検査符号との整合性をチェックすることで、通信エラーの有無をチェックする。  
なお、レスポンスの構成は、特定の構成に限定されるものではない。
【００４５】
また、ＣＰＵ２１は、レスポンスのデータ長が所定の閾値よりも大きいか判定する機能を有する（判定部）。  
たとえば、所定の閾値は、送信可能なレスポンスの最大データ長である。即ち、所定の閾値は、チェイニングが発生するかを判定する閾値である。
【００４６】
最大データ長は、たとえば、規格で決定されるＩＦＳＤ（ＩＦＳ  ｆｏｒ  ｔｈｅ  ｉｎｔｅｒｆａｃｅ  ｄｅｖｉｃｅ）である。たとえば、ＩＦＳＤは、３２ｂｙｔｅ、６４ｂｙｔｅ又は２５６ｂｙｔｅなどである。  
ここでは、所定の閾値は、ＩＦＳＤであるものとする。
【００４７】
ＣＰＵ２１は、通信の開始時などにおいてＩＣカード処理装置１からＩＦＳＤを取得してもよい。また、ＣＰＵ２１は、規格としてＩＦＳＤを格納してもよい。
【００４８】
また、ＣＰＵ２１は、レスポンスのデータ長として、コマンドが格納する期待値（Ｌｅ）を取得する。  
ＣＰＵ２１は、コマンドが格納するＬｅがＩＦＳＤよりも大きいか判定する。  
なお、ＣＰＵ２１は、生成したレスポンスのデータ長がＩＦＳＤよりも大きいか判定してもよい。
【００４９】
また、ＣＰＵ２１は、レスポンスのデータ長がＩＦＳＤよりも大きいと判定すると、レスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを生成する機能を有する。  
たとえば、ＣＰＵ２１は、レスポンスの情報フィールドのデータを圧縮する。たとえば、ＣＰＵ２１は、情報フィールドが格納するＶａｌｕｅを圧縮する。
【００５０】
たとえば、ＣＰＵ２１は、コマンドを実行して生成されたレスポンスからＶａｌｕｅを取得する。Ｖａｌｕｅを取得すると、ＣＰＵ２１は、所定の方法に従ってＶａｌｕｅを圧縮する。Ｖａｌｕｅを圧縮すると、ＣＰＵ２１は、圧縮したＶａｌｕｅを含む圧縮レスポンスを生成する。
【００５１】
なお、ＣＰＵ２１は、レスポンスの情報フィールドのＶａｌｕｅを圧縮したＶａｌｕｅに書き換えてもよい。また、ＣＰＵ２１は、情報フィールドのＬｅｎｇｈｔ、エピローグフィールドのＬＥＮ、及び、プロローグフィールドのＥＤＣを更新してもよい。
【００５２】
また、ＣＰＵ２１は、レスポンスのデータの少なくとも一部を圧縮したことを示す情報を圧縮レスポンスに付加する。たとえば、ＣＰＵ２１は、レスポンスのデータの少なくとも一部を圧縮したことを示す情報として圧縮レスポンスのＰＣＢの５ビットに「１」をセットする。
【００５３】
ここでは、圧縮レスポンスのデータ長は、ＩＦＳＤ以下であるものとする。
【００５４】
また、ＣＰＵ２１は、生成した圧縮レスポンスをＩＣカード処理装置１へ送信する機能を有する（送信処理部）。  
たとえば、ＣＰＵ２１は、圧縮レスポンスを生成すると、通信部２６を通じて圧縮レスポンスをＩＣカード処理装置１へ送信する。
【００５５】
次に、ＩＣカード処理システム１０の動作例について説明する。  
図５は、ＩＣカード処理システム１０の動作例を説明するためのシーケンス図である。
ここでは、ＩＣカード２は、ＩＣカード処理装置１と通信可能な位置にセットされているものとする。
【００５６】
まず、ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じてＩＣカード２にＲＥＳＥＴコマンドを送信する（Ｓ１１）。
【００５７】
ＩＣカード２のＣＰＵ２１は、通信部２６を通じてＲＥＳＥＴコマンドを受信する。ＲＥＳＥＴコマンドを受信すると、ＣＰＵ２１は、通信部２６を通じてＩＣカード処理装置１にＡｎｓｗｅｒ  Ｔｏ  Ｒｅｓｅｔ（ＡＴＲ）を送信する（Ｓ１２）。
【００５８】
ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じてＩＣカード２からＡＴＲを受信する。ＡＴＲを受信すると、ＣＰＵ１１は、Ｌｅを含むコマンドを生成する（Ｓ１３）。コマンドを生成すると、ＣＰＵ１１は、カードリーダライタ１５を通じてＩＣカード２に生成したコマンドを送信する（Ｓ１４）。
【００５９】
ＩＣカード２のＣＰＵ２１は、通信部２６を通じてコマンドを受信する。コマンドを受信すると、ＣＰＵ２１は、コマンドを実行してレスポンスを生成する（Ｓ１５）。レスポンスを生成すると、ＣＰＵ２１は、ＬｅがＩＦＳＤよりも大きいか判定する（Ｓ１６）。
【００６０】
ＬｅがＩＦＳＤよりも大きいと判定すると（Ｓ１６、ＹＥＳ）、ＣＰＵ２１は、レスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを生成する（Ｓ１７）。圧縮レスポンスを生成すると、ＣＰＵ２１は、通信部２６を通じて生成した圧縮レスポンスをＩＣカード処理装置１へ送信する（Ｓ１８）。
【００６１】
ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じて圧縮レスポンスを受信する。ここでは、レスポンスのＰＣＢの５ビットは、「１」であり、ＣＰＵ１１は、圧縮レスポンスのデータを解凍すると判定するものとする。ＣＰＵ１１は、圧縮レスポンスのデータを解凍する（Ｓ１９）。
【００６２】
ＬｅがＩＦＳＤよりも大きくないと判定すると（Ｓ１６、ＹＥＳ）、ＣＰＵ２１は、通信部２６を通じて、Ｓ１５で生成したレスポンスをＩＣカード処理装置１へ送信する（Ｓ２０）。
【００６３】
ＩＣカード処理装置１のＣＰＵ１１は、Ｓ１９又はＳ２０の後に、さらにコマンドをＩＣカード２へ送信してもよい。また、ＩＣカード処理システム１０は、Ｓ１９又はＳ２０の後に動作を終了してもよい。
【００６４】
次に、ＩＣカード２の動作例について説明する。  
図６は、ＩＣカード２の動作例について説明するためのフローチャートである。  
ここでは、ＩＣカード２のＣＰＵ２１は、ＩＣカード処理装置１からＲＥＳＥＴコマンドを受信しＡＴＲをＩＣカード処理装置１へ送信したものとする。
【００６５】
まず、ＣＰＵ２１は、通信部２６を通じてＩＣカード処理装置１からコマンドを受信したか判定する（Ｓ３１）。コマンドを受信していないと判定すると（Ｓ３１、ＮＯ）、ＣＰＵ２１は、Ｓ３１に戻る。
【００６６】
コマンドを受信したと判定すると（Ｓ３１、ＹＥＳ）、ＣＰＵ２１は、受信したコマンドを実行してレスポンスを生成する（Ｓ３２）。レスポンスを生成すると、ＣＰＵ２１は、ＬｅがＩＦＳＤよりも大きいか判定する（Ｓ３３）。
【００６７】
ＬｅがＩＦＳＤよりも大きいと判定すると（Ｓ３３、ＹＥＳ）、ＣＰＵ２１は、レスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを生成する（Ｓ３４）。圧縮レスポンスを生成すると、ＣＰＵ２１は、生成した圧縮レスポンスのＰＣＢの５ビットを「１」に設定する（Ｓ３５）。
【００６８】
ＰＣＢの５ビットを「１」に設定すると、ＣＰＵ２１は、通信部２６を通じて圧縮レスポンスをＩＣカード処理装置１へ送信する（Ｓ３６）。
【００６９】
ＬｅがＩＦＳＤよりも大きくないと判定すると（Ｓ３３、ＮＯ）、ＣＰＵ２１は、通信部２６を通じてＳ３２で生成したレスポンスをＩＣカード処理装置１へ送信する（Ｓ３７）。
【００７０】
圧縮レスポンスをＩＣカード処理装置１へ送信した場合（Ｓ３６）、又は、Ｓ３２に生成したレスポンスをＩＣカード処理装置１へ送信した場合（Ｓ３７）、ＣＰＵ２１は、動作を終了する。
【００７１】
なお、ＣＰＵ２１は、Ｓ３３を実行してからＳ３２を実行してもよい。また、ＣＰＵ２１は、圧縮レスポンスを生成する際に、ＰＣＢの５ビットを「１」として生成してもよい。
【００７２】
次に、ＣＰＵ２１のＩ／Ｏ（ＩＮＰＵＴ／ＯＵＴ）ラインについて説明する。  
図７は、ＬｅがＦＳＩＤより大きい場合におけるＣＰＵ２１のＩ／Ｏラインを示すタイミングチャートである。
【００７３】
図７（ａ）は、レスポンスのデータを圧縮しない場合のＩ／Ｏラインを示す。図７（ａ）が示すように、ＣＰＵ２１は、コマンドを受信した後にレスポンスを生成する。レスポンスを生成すると、ＣＰＵ２１は、レスポンスを分割する。ここでは、ＣＰＵ２１は、レスポンスを３つに分割する。ＣＰＵ２１は、分割したレスポンスの中の最初のレスポンス（第１のレスポンス）を送信する。第１のレスポンスを送信すると、ＣＰＵ２１は、所定の間隔をあけて次のレスポンス（第２のレスポンス）を送信する。第２のレスポンスを送信すると、ＣＰＵ２１は、所定の間隔をあけて最後のレスポンス（第３のレスポンス）を送信する。
【００７４】
図７（ｂ）は、レスポンスのデータを圧縮する場合のＩ／Ｏラインを示す。図７（ｂ）が示すように、ＣＰＵ２１は、コマンドを受信した後にレスポンスを生成する。レスポンスを生成すると、ＣＰＵ２１は、レスポンスの少なくとも一部のデータを圧縮して圧縮レスポンスを生成する。圧縮レスポンスを生成すると、ＣＰＵ２１は、圧縮レスポンスを送信する。
【００７５】
図７（ｂ）が示す例では、ＣＰＵ２１は、レスポンスの少なくとも一部のデータを圧縮する分、図７（ａ）が示す例よりもレスポンスの送信を開始するタイミングが遅れる。しかし、図７（ｂ）が示す例では、ＣＰＵ２１は、図７（ａ）が示す例よりもレスポンスを２回送信する分、処理時間を短縮することができる。その結果、ＣＰＵ２１は、図７（ａ）が示す例よりも全体の処理を早く完了する。
【００７６】
なお、ＣＰＵ２１は、データを圧縮したレスポンスのデータ長がＩＦＳＤよりも大きい場合には、チェイニングを行ってもよい。  
また、ＣＰＵ１１は、圧縮レスポンスを要求するＬｅ（たとえば、０ｘ００）を格納するコマンドをＩＣカード２へ送信してもよい。ＩＣカード２のＣＰＵ２１は、Ｌｅが圧縮レスポンスを要求する場合（Ｌｅが「０ｘ００」である場合）、圧縮レスポンスを生成してＩＣカード処理装置１へ送信してもよい。
【００７７】
以上のように構成されたＩＣカードは、レスポンスのデータ長が所定の長さを超えた場合には、レスポンスの少なくとも一部のデータを圧縮する。ＩＣカードは、レスポンスのデータの少なくとも一部を圧縮することで、送信可能な最大データ長以下の圧縮レスポンスを生成する。その結果、ＩＣカードは、チェイニングの発生を防止することができる。
【００７８】
また、ＩＣカードは、圧縮レスポンスのデータ長が最大データ長以下とならない場合であっても、元のレスポンスのデータ長よりも圧縮レスポンスのデータ長を短くすることができる。その結果、ＩＣカードは、チェイニングで送信するレスポンスの個数を減らすことができる。
【００７９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８０】
１…ＩＣカード処理装置、２…ＩＣカード、１０…ＩＣカード処理システム、１１…ＣＰＵ、１４…ＮＶＭ、１５…カードリーダライタ、２１…ＣＰＵ、２４…ＮＶＭ、２６…通信部、Ｍ…モジュール、Ｃ…本体。
【図１】
2018101252.tif 000003
【図２】
2018101252.tif 000004
【図３】
2018101252.tif 000005
【図４】
2018101252.tif 000006
【図５】
2018101252.tif 000007
【図６】
2018101252.tif 000008
【図７】
2018101252.tif 000009