JP2018101252A - Icカード、携帯可能電子装置及び処理装置 - Google Patents
Icカード、携帯可能電子装置及び処理装置 Download PDFInfo
- Publication number
- JP2018101252A JP2018101252A JP2016246470A JP2016246470A JP2018101252A JP 2018101252 A JP2018101252 A JP 2018101252A JP 2016246470 A JP2016246470 A JP 2016246470A JP 2016246470 A JP2016246470 A JP 2016246470A JP 2018101252 A JP2018101252 A JP 2018101252A
- Authority
- JP
- Japan
- Prior art keywords
- response
- card
- cpu
- data
- communication unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
【課題】チェイニングの発生を防止することができるICカード、携帯可能電子装置及び処理装置を提供する。
【解決手段】実施形態によれば、ICカードは、通信部と、送信処理部と、を備える。通信部は、外部装置と通信する。送信処理部は、前記通信部により前記外部装置から受信したコマンドが格納する期待値が所定の閾値よりも大きいと判定された場合、前記コマンドに対するレスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを前記通信部を通じて前記外部装置へ送信する。
【選択図】 図1
【解決手段】実施形態によれば、ICカードは、通信部と、送信処理部と、を備える。通信部は、外部装置と通信する。送信処理部は、前記通信部により前記外部装置から受信したコマンドが格納する期待値が所定の閾値よりも大きいと判定された場合、前記コマンドに対するレスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを前記通信部を通じて前記外部装置へ送信する。
【選択図】 図1
Description
本発明の実施形態は、ICカード、携帯可能電子装置及び処理装置に関する。
ICカードは、上位装置からのコマンドに応じてレスポンスを送信するものがある。ICカードは、レスポンスの長さが所定の長さを超えると、レスポンスを分割して上位装置へ送信するチェイニングを行う。
従来、チェイニングが発生すると、ICカードは、上位装置へレスポンスを送信する時間が増加するという課題がある。
上記の課題を解決するために、チェイニングの発生を防止することができるICカード、携帯可能電子装置及び処理装置を提供する。
実施形態によれば、ICカードは、通信部と、送信処理部と、を備える。通信部は、外部装置と通信する。送信処理部は、前記通信部により前記外部装置から受信したコマンドが格納する期待値が所定の閾値よりも大きいと判定された場合、前記コマンドに対するレスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを前記通信部を通じて前記外部装置へ送信する。
以下、実施形態について、図面を参照して説明する。
図1は、実施形態に係る携帯可能電子装置としてのICカード2と、ICカード2と通信を行う外部装置としてのICカード処理装置1とを備えるICカード処理システム10の構成例について説明するためのブロック図である。
図1は、実施形態に係る携帯可能電子装置としてのICカード2と、ICカード2と通信を行う外部装置としてのICカード処理装置1とを備えるICカード処理システム10の構成例について説明するためのブロック図である。
図1が示す構成例において、ICカード処理装置1は、CPU11、ROM12、RAM13、NVM14、カードリーダライタ15、操作部16、及び、ディスプレイ17などを有する。CPU11とROM12、RAM13、NVM14、カードリーダライタ15、操作部16及びディスプレイ17とは、データバスを介して互いに接続される。なお、ICカード処理装置1は、図1が示すような構成の他に、必要に応じた構成を具備したり特定の構成を除外したりしてもよい。
CPU11は、ICカード処理装置1全体の動作を制御する機能を有する。CPU11は、内部キャッシュおよび各種のインターフェースなどを備えても良い。CPU11は、内部メモリ、ROM12又はNVM14に予め記憶したプログラムを実行することにより種々の処理を実現する。例えば、CPU11は、プログラムを実行することにより、カードリーダライタ15によりICカード2へコマンドを送信する機能、ICカード2から受信するレスポンスなどのデータを基に種々の処理を行う機能などを有する。これらの機能により、CPU11は、カードリーダライタ15を介して、操作部16などに入力されたデータ又は所定のデータなどを含む書き込みコマンドをICカード2に送信する。
たとえば、CPU11は、プログラムを実行することにより、ICカード処理装置1内の各部の制御及び情報処理を実現するプロセッサであればよい。
なお、CPU11がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、CPU11は、ハードウエア回路により実行される機能を制御する。
なお、CPU11がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、CPU11は、ハードウエア回路により実行される機能を制御する。
ROM12は、予め制御用のプログラム及び制御データなどが記憶された不揮発性のメモリである。ROM12に記憶される制御プログラム及び制御データは、予めICカード処理装置1の仕様に応じて組み込まれる。ROM12は、たとえば、ICカード処理装置1の回路基板を制御するプログラム(たとえば、BIOS)などを格納する。
RAM13は、揮発性のメモリである。RAM13は、CPU11の処理中のデータなどを一時的に格納する。RAM13は、CPU11からの命令に基づき種々のアプリケーションプログラムを格納する。また、RAM13は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
NVM14は、データの書き込み及び書き換えが可能な不揮発性のメモリである。NVM14は、例えば、ハードディスク、SSD、EEPROM(登録商標)又はフラッシュメモリなどにより構成される。NVM14は、ICカード処理装置1の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。
カードリーダライタ15(通信部)は、ICカード2とデータを送受信するためのインターフェース装置である。カードリーダライタ15は、ICカード2の通信方式に応じたインターフェースにより構成される。たとえば、ICカード2が接触型のICカードである場合、カードリーダライタ15は、ICカード2のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
また、ICカード2が非接触型のICカードである場合、カードリーダライタ15は、ICカード2との無線通信を行うためのアンテナ及び通信制御部などにより構成される。カードリーダライタ15では、ICカード2に対する電源供給、クロック供給、リセット制御及びデータの送受信などが行われるようになっている。
このような機能によってカードリーダライタ15は、CPU11による制御に基づいてICカード2に対する電源供給、ICカード2の活性化(起動)、クロック供給、リセット制御、種々のコマンドの送信、及び送信したコマンドに対する応答(レスポンス)の受信などを行なう。
操作部16は、ICカード処理装置1の操作者によって、種々の操作指示が入力される。操作部16は、操作者に入力された操作指示のデータをCPU11へ送信する。操作部16は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。
ディスプレイ17は、CPU11の制御により種々の情報を表示する表示装置である。ディスプレイ17は、たとえば、液晶モニタなどである。なお、操作部16がタッチパネルから構成される場合、ディスプレイ17は、操作部16と一体的に形成されてもよい。
次に、ICカード2について説明する。
ICカード2は、ICカード処理装置1などの外部装置から電力などの供給を受けて活性化される(動作可能な状態になる)ようになっている。ICカード2は、ICカード処理装置1と接触式通信を行うものであってもよいし、非接触式通信を行うものであってもよい。
ICカード2は、ICカード処理装置1などの外部装置から電力などの供給を受けて活性化される(動作可能な状態になる)ようになっている。ICカード2は、ICカード処理装置1と接触式通信を行うものであってもよいし、非接触式通信を行うものであってもよい。
次に、ICカード2の構成例について説明する。
図2は、実施形態に係るICカード2の構成例を概略的に示すブロック図である。
ICカード2は、プラスチックなどで形成されたカード状の本体Cを有する。ICカード2は、本体C内にモジュールMが内蔵される。モジュールMは、ICチップCa及び通信部としての外部インターフェース(たとえば、通信部26)とが接続された状態で一体的に形成され、ICカード2の本体C内に埋設される。
図2は、実施形態に係るICカード2の構成例を概略的に示すブロック図である。
ICカード2は、プラスチックなどで形成されたカード状の本体Cを有する。ICカード2は、本体C内にモジュールMが内蔵される。モジュールMは、ICチップCa及び通信部としての外部インターフェース(たとえば、通信部26)とが接続された状態で一体的に形成され、ICカード2の本体C内に埋設される。
モジュールMは、通信部26及びICチップCaなどを備える。ICチップCaは、CPU21、ROM22、RAM23、NVM24及びタイマ25などを備える。CPU21と、ROM22、RAM23、NVM24、タイマ25及び通信部26とは、データバスを介して互いに接続する。なお、ICカード2は、適宜必要な構成を追加し、又は、不要な構成を削除してもよい。
CPU21は、ICカード2全体の制御を司る制御部として機能する。CPU21は、ROM22又はNVM24に記憶される制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、CPU21は、ROM22に記憶されているプログラムを実行することにより、ICカード2の動作制御又はICカード2の運用形態に応じた種々の処理を行う。
たとえば、CPU21は、プログラムを実行することにより、ICカード2内の各部の制御及び情報処理を実現するプロセッサであればよい。
なお、CPU21がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、CPU21は、ハードウエア回路により実行される機能を制御する。
なお、CPU21がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、CPU21は、ハードウエア回路により実行される機能を制御する。
ROM22は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM22は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード2に組み込まれる。即ち、ROM22に記憶される制御プログラム及び制御データは、予めICカード2の仕様などに応じて組み込まれる。
RAM23は、揮発性のメモリである。RAM23は、CPU21の処理中のデータなどを一時的に格納する。たとえば、RAM23は、計算用バッファ、受信用バッファ及び送信用バッファとして機能する。計算用バッファは、CPU21が実行する種々の演算処理の結果などを一時的に保持する。受信用バッファは、通信部26を介してICカード処理装置1から受信するコマンドデータなどを保持する。送信用バッファは、通信部26を介してICカード処理装置1へ送信するメッセージ(レスポンスデータ)などを保持する。
NVM24は、例えば、EEPROM(登録商標)又はフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。NVM24は、ICカード2の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、NVM24では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
タイマ25は、所定のタイミングから時間を計測する。たとえば、タイマ25は、CPU21からの信号に基づいて、計測時間をリセットし時間の測定を開始する。たとえば、タイマ25は、CPU21へ計測した時間を送信する。タイマ25は、所定の時間が経過したことを示す信号をCPU21へ送信してもよい。また、タイマ25は、所定の間隔で計測した時間をCPU21へ送信してもよい。なお、タイマ25は、CPU21の機能として実現されてもよい。
通信部26は、ICカード処理装置1とデータを送受信するためのインターフェースである。即ち、通信部26は、ICカード処理装置1のカードリーダライタ15との通信を行うためのインターフェースである。ICカード2が接触型のICカードとして実現される場合、通信部26は、ICカード処理装置1のカードリーダライタ15と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。たとえば、ICカード2は、コンタクト部を介してICカード処理装置1からの動作電源及び動作クロックの供給を受けて活性化される。
ICカード2が非接触型のICカードとしての実現される場合、通信部26は、ICカード処理装置1のカードリーダライタ15との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。たとえば、ICカード2は、アンテナ及び変復調回路などを介してICカード処理装置1からの電波を受信する。ICカード2は、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化する。
次に、ICカード処理装置1のCPU11が実現する機能について説明する。
CPU11は、レスポンスのデータ長の期待値を格納するコマンドをICカード2に送信する機能を有する(送信処理部)。
CPU11は、レスポンスのデータ長の期待値を格納するコマンドをICカード2に送信する機能を有する(送信処理部)。
たとえば、CPU11は、コマンドに対するレスポンスのデータ長の期待値を取得する。たとえば、CPU11は、リードコマンドで読み取るデータの長さなどに基づいて当該リードコマンドに対応する期待値を決定する。また、NVM14は、予めコマンドに対応する期待値を格納してもよい。CPU11は、NVM14などからコマンドに対応する期待値を取得してもよい。
CPU11は、期待値を格納するコマンドを生成する。
CPU11は、期待値を格納するコマンドを生成する。
図3は、CPU11が生成したコマンドの構成例を示す。
図3が示すように、コマンドは、CLA、INS、P1、P2、及びLeなどから構成される。なお、コマンドは、適宜必要な構成を追加し、又は、不要な構成を削除してもよい。
図3が示すように、コマンドは、CLA、INS、P1、P2、及びLeなどから構成される。なお、コマンドは、適宜必要な構成を追加し、又は、不要な構成を削除してもよい。
CLAは、クラスバイトを示す。
INSは、コマンドを示す。
P1及びP2は、パラメータを示す。
Leは、レスポンスのデータ長の期待値を示す。
CPU11は、カードリーダライタ15を通じて、生成したコマンドをICカード2へ送信する。
INSは、コマンドを示す。
P1及びP2は、パラメータを示す。
Leは、レスポンスのデータ長の期待値を示す。
CPU11は、カードリーダライタ15を通じて、生成したコマンドをICカード2へ送信する。
また、CPU11は、レスポンスのデータを圧縮したデータを含む圧縮レスポンスを解凍する機能を有する(処理部)。
たとえば、CPU11は、レスポンスが格納する情報に基づいてレスポンスの少なくとも一部のデータが圧縮されているか(レスポンスが圧縮レスポンスであるか)判定する。たとえば、CPU11は、レスポンスのPCBの5ビットが「1」である場合、レスポンスの少なくとも一部のデータが圧縮されていると判定する。また、CPU11は、レスポンスのPCBの5ビットが「0」である場合、レスポンスのデータが圧縮されていないと判定する。
たとえば、CPU11は、レスポンスが格納する情報に基づいてレスポンスの少なくとも一部のデータが圧縮されているか(レスポンスが圧縮レスポンスであるか)判定する。たとえば、CPU11は、レスポンスのPCBの5ビットが「1」である場合、レスポンスの少なくとも一部のデータが圧縮されていると判定する。また、CPU11は、レスポンスのPCBの5ビットが「0」である場合、レスポンスのデータが圧縮されていないと判定する。
レスポンスの少なくとも一部のデータが圧縮されていると判定すると、CPU11は、レスポンス(圧縮レスポンス)のデータを解凍する。たとえば、CPU11は、圧縮レスポンスの情報フィールドが格納する圧縮されたデータを解凍する。たとえば、情報フィールドがTLV(Tag、Length、Value)方式でデータを格納する場合、CPU11は、Value部のデータを解凍する。
CPU11は、ICカード2がデータを圧縮した方法に対応する方法でデータを解凍する。CPU11がレスポンスのデータを解凍する方法は、特定の方法に限定されるものではない。
次に、ICカード2のCPU21が実現する機能について説明する。
まず、CPU21は、ICカード処理装置1からのコマンドに対するレスポンスを生成する機能を有する。
たとえば、CPU21は、通信部26を通じてICカード処理装置1からコマンドを受信する。コマンドを受信すると、CPU21は、コマンドを処理する。コマンドを処理すると、CPU21は、コマンドの処理結果に基づいてレスポンスを生成する。たとえば、コマンドが所定のデータを読み出すリードコマンドである場合、CPU21は、当該データを格納するレスポンスを生成する。
まず、CPU21は、ICカード処理装置1からのコマンドに対するレスポンスを生成する機能を有する。
たとえば、CPU21は、通信部26を通じてICカード処理装置1からコマンドを受信する。コマンドを受信すると、CPU21は、コマンドを処理する。コマンドを処理すると、CPU21は、コマンドの処理結果に基づいてレスポンスを生成する。たとえば、コマンドが所定のデータを読み出すリードコマンドである場合、CPU21は、当該データを格納するレスポンスを生成する。
図4は、CPU21が生成するレスポンスの例を示す。
図4が示すように、レスポンスは、プロローグフィールド、情報フィールド(INF: Information)、およびエピローグフィールド(EDC: Error Detection Code)などのフィールドを有する。
図4が示すように、レスポンスは、プロローグフィールド、情報フィールド(INF: Information)、およびエピローグフィールド(EDC: Error Detection Code)などのフィールドを有する。
プロローグフィールドは、Node Address(NAD)、Protocol Controll Byte(PCB)、及びLength byte(LEN)などから構成される。
NADは、ノードアドレスである。NADは、異なる論理接続を構築するためのデータである。
PCBは、プロトコル制御バイトである。PCBは、データ伝送の制御に必要な情報を相手側の機器(外部機器)に伝達することができる。
LENは、情報フィールドのデータ長を示す。
PCBは、プロトコル制御バイトである。PCBは、データ伝送の制御に必要な情報を相手側の機器(外部機器)に伝達することができる。
LENは、情報フィールドのデータ長を示す。
情報フィールド(INF)は、例えば、アプリケーション情報、または状態情報などを格納するフィールドである。たとえば、CPU21は、情報フィールドにICカード処理装置1へ送信するデータ(データの本体)を格納する。たとえば、CPU21は、所定のデータを取得するリードコマンドを処理した場合、当該所定のデータを情報フィールドに格納する。
図4が示すように、ここでは、情報フィールドは、TLV方式でデータを格納するものとする。たとえば、情報フィールドは、Tag、Length、及び、Valueなどを含む。Tagは、TLVデータオブジェクトを識別するための識別子である。Lengthは、Valueのデータ長である。Valueは、TLVデータオブジェクトのデータ本体である。
エピローグフィールド(EDC)には、例えば、通信エラーなどによりデータ異常を検知するために、CRC(Cyclic Redanduncy Check)などの冗長化検査符号を格納する。冗長化検査符号は、プロローグフィールド及び情報フィールドのデータに基づいて算出される値である。ICカード処理装置1のCPU11は、受信したレスポンスのプロローグフィールド及び情報フィールド内のデータと冗長化検査符号とに基づいて、通信エラーなどのデータ異常を検知することができる。たとえば、ICカード処理装置1は、エピローグフィールド(EDC)が格納する冗長化検査符号と、プロローグフィールド及び情報フィールドとから生成された冗長化検査符号との整合性をチェックすることで、通信エラーの有無をチェックする。
なお、レスポンスの構成は、特定の構成に限定されるものではない。
なお、レスポンスの構成は、特定の構成に限定されるものではない。
また、CPU21は、レスポンスのデータ長が所定の閾値よりも大きいか判定する機能を有する(判定部)。
たとえば、所定の閾値は、送信可能なレスポンスの最大データ長である。即ち、所定の閾値は、チェイニングが発生するかを判定する閾値である。
たとえば、所定の閾値は、送信可能なレスポンスの最大データ長である。即ち、所定の閾値は、チェイニングが発生するかを判定する閾値である。
最大データ長は、たとえば、規格で決定されるIFSD(IFS for the interface device)である。たとえば、IFSDは、32byte、64byte又は256byteなどである。
ここでは、所定の閾値は、IFSDであるものとする。
ここでは、所定の閾値は、IFSDであるものとする。
CPU21は、通信の開始時などにおいてICカード処理装置1からIFSDを取得してもよい。また、CPU21は、規格としてIFSDを格納してもよい。
また、CPU21は、レスポンスのデータ長として、コマンドが格納する期待値(Le)を取得する。
CPU21は、コマンドが格納するLeがIFSDよりも大きいか判定する。
なお、CPU21は、生成したレスポンスのデータ長がIFSDよりも大きいか判定してもよい。
CPU21は、コマンドが格納するLeがIFSDよりも大きいか判定する。
なお、CPU21は、生成したレスポンスのデータ長がIFSDよりも大きいか判定してもよい。
また、CPU21は、レスポンスのデータ長がIFSDよりも大きいと判定すると、レスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを生成する機能を有する。
たとえば、CPU21は、レスポンスの情報フィールドのデータを圧縮する。たとえば、CPU21は、情報フィールドが格納するValueを圧縮する。
たとえば、CPU21は、レスポンスの情報フィールドのデータを圧縮する。たとえば、CPU21は、情報フィールドが格納するValueを圧縮する。
たとえば、CPU21は、コマンドを実行して生成されたレスポンスからValueを取得する。Valueを取得すると、CPU21は、所定の方法に従ってValueを圧縮する。Valueを圧縮すると、CPU21は、圧縮したValueを含む圧縮レスポンスを生成する。
なお、CPU21は、レスポンスの情報フィールドのValueを圧縮したValueに書き換えてもよい。また、CPU21は、情報フィールドのLenght、エピローグフィールドのLEN、及び、プロローグフィールドのEDCを更新してもよい。
また、CPU21は、レスポンスのデータの少なくとも一部を圧縮したことを示す情報を圧縮レスポンスに付加する。たとえば、CPU21は、レスポンスのデータの少なくとも一部を圧縮したことを示す情報として圧縮レスポンスのPCBの5ビットに「1」をセットする。
ここでは、圧縮レスポンスのデータ長は、IFSD以下であるものとする。
また、CPU21は、生成した圧縮レスポンスをICカード処理装置1へ送信する機能を有する(送信処理部)。
たとえば、CPU21は、圧縮レスポンスを生成すると、通信部26を通じて圧縮レスポンスをICカード処理装置1へ送信する。
たとえば、CPU21は、圧縮レスポンスを生成すると、通信部26を通じて圧縮レスポンスをICカード処理装置1へ送信する。
次に、ICカード処理システム10の動作例について説明する。
図5は、ICカード処理システム10の動作例を説明するためのシーケンス図である。
ここでは、ICカード2は、ICカード処理装置1と通信可能な位置にセットされているものとする。
図5は、ICカード処理システム10の動作例を説明するためのシーケンス図である。
ここでは、ICカード2は、ICカード処理装置1と通信可能な位置にセットされているものとする。
まず、ICカード処理装置1のCPU11は、カードリーダライタ15を通じてICカード2にRESETコマンドを送信する(S11)。
ICカード2のCPU21は、通信部26を通じてRESETコマンドを受信する。RESETコマンドを受信すると、CPU21は、通信部26を通じてICカード処理装置1にAnswer To Reset(ATR)を送信する(S12)。
ICカード処理装置1のCPU11は、カードリーダライタ15を通じてICカード2からATRを受信する。ATRを受信すると、CPU11は、Leを含むコマンドを生成する(S13)。コマンドを生成すると、CPU11は、カードリーダライタ15を通じてICカード2に生成したコマンドを送信する(S14)。
ICカード2のCPU21は、通信部26を通じてコマンドを受信する。コマンドを受信すると、CPU21は、コマンドを実行してレスポンスを生成する(S15)。レスポンスを生成すると、CPU21は、LeがIFSDよりも大きいか判定する(S16)。
LeがIFSDよりも大きいと判定すると(S16、YES)、CPU21は、レスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを生成する(S17)。圧縮レスポンスを生成すると、CPU21は、通信部26を通じて生成した圧縮レスポンスをICカード処理装置1へ送信する(S18)。
ICカード処理装置1のCPU11は、カードリーダライタ15を通じて圧縮レスポンスを受信する。ここでは、レスポンスのPCBの5ビットは、「1」であり、CPU11は、圧縮レスポンスのデータを解凍すると判定するものとする。CPU11は、圧縮レスポンスのデータを解凍する(S19)。
LeがIFSDよりも大きくないと判定すると(S16、YES)、CPU21は、通信部26を通じて、S15で生成したレスポンスをICカード処理装置1へ送信する(S20)。
ICカード処理装置1のCPU11は、S19又はS20の後に、さらにコマンドをICカード2へ送信してもよい。また、ICカード処理システム10は、S19又はS20の後に動作を終了してもよい。
次に、ICカード2の動作例について説明する。
図6は、ICカード2の動作例について説明するためのフローチャートである。
ここでは、ICカード2のCPU21は、ICカード処理装置1からRESETコマンドを受信しATRをICカード処理装置1へ送信したものとする。
図6は、ICカード2の動作例について説明するためのフローチャートである。
ここでは、ICカード2のCPU21は、ICカード処理装置1からRESETコマンドを受信しATRをICカード処理装置1へ送信したものとする。
まず、CPU21は、通信部26を通じてICカード処理装置1からコマンドを受信したか判定する(S31)。コマンドを受信していないと判定すると(S31、NO)、CPU21は、S31に戻る。
コマンドを受信したと判定すると(S31、YES)、CPU21は、受信したコマンドを実行してレスポンスを生成する(S32)。レスポンスを生成すると、CPU21は、LeがIFSDよりも大きいか判定する(S33)。
LeがIFSDよりも大きいと判定すると(S33、YES)、CPU21は、レスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを生成する(S34)。圧縮レスポンスを生成すると、CPU21は、生成した圧縮レスポンスのPCBの5ビットを「1」に設定する(S35)。
PCBの5ビットを「1」に設定すると、CPU21は、通信部26を通じて圧縮レスポンスをICカード処理装置1へ送信する(S36)。
LeがIFSDよりも大きくないと判定すると(S33、NO)、CPU21は、通信部26を通じてS32で生成したレスポンスをICカード処理装置1へ送信する(S37)。
圧縮レスポンスをICカード処理装置1へ送信した場合(S36)、又は、S32に生成したレスポンスをICカード処理装置1へ送信した場合(S37)、CPU21は、動作を終了する。
なお、CPU21は、S33を実行してからS32を実行してもよい。また、CPU21は、圧縮レスポンスを生成する際に、PCBの5ビットを「1」として生成してもよい。
次に、CPU21のI/O(INPUT/OUT)ラインについて説明する。
図7は、LeがFSIDより大きい場合におけるCPU21のI/Oラインを示すタイミングチャートである。
図7は、LeがFSIDより大きい場合におけるCPU21のI/Oラインを示すタイミングチャートである。
図7(a)は、レスポンスのデータを圧縮しない場合のI/Oラインを示す。図7(a)が示すように、CPU21は、コマンドを受信した後にレスポンスを生成する。レスポンスを生成すると、CPU21は、レスポンスを分割する。ここでは、CPU21は、レスポンスを3つに分割する。CPU21は、分割したレスポンスの中の最初のレスポンス(第1のレスポンス)を送信する。第1のレスポンスを送信すると、CPU21は、所定の間隔をあけて次のレスポンス(第2のレスポンス)を送信する。第2のレスポンスを送信すると、CPU21は、所定の間隔をあけて最後のレスポンス(第3のレスポンス)を送信する。
図7(b)は、レスポンスのデータを圧縮する場合のI/Oラインを示す。図7(b)が示すように、CPU21は、コマンドを受信した後にレスポンスを生成する。レスポンスを生成すると、CPU21は、レスポンスの少なくとも一部のデータを圧縮して圧縮レスポンスを生成する。圧縮レスポンスを生成すると、CPU21は、圧縮レスポンスを送信する。
図7(b)が示す例では、CPU21は、レスポンスの少なくとも一部のデータを圧縮する分、図7(a)が示す例よりもレスポンスの送信を開始するタイミングが遅れる。しかし、図7(b)が示す例では、CPU21は、図7(a)が示す例よりもレスポンスを2回送信する分、処理時間を短縮することができる。その結果、CPU21は、図7(a)が示す例よりも全体の処理を早く完了する。
なお、CPU21は、データを圧縮したレスポンスのデータ長がIFSDよりも大きい場合には、チェイニングを行ってもよい。
また、CPU11は、圧縮レスポンスを要求するLe(たとえば、0x00)を格納するコマンドをICカード2へ送信してもよい。ICカード2のCPU21は、Leが圧縮レスポンスを要求する場合(Leが「0x00」である場合)、圧縮レスポンスを生成してICカード処理装置1へ送信してもよい。
また、CPU11は、圧縮レスポンスを要求するLe(たとえば、0x00)を格納するコマンドをICカード2へ送信してもよい。ICカード2のCPU21は、Leが圧縮レスポンスを要求する場合(Leが「0x00」である場合)、圧縮レスポンスを生成してICカード処理装置1へ送信してもよい。
以上のように構成されたICカードは、レスポンスのデータ長が所定の長さを超えた場合には、レスポンスの少なくとも一部のデータを圧縮する。ICカードは、レスポンスのデータの少なくとも一部を圧縮することで、送信可能な最大データ長以下の圧縮レスポンスを生成する。その結果、ICカードは、チェイニングの発生を防止することができる。
また、ICカードは、圧縮レスポンスのデータ長が最大データ長以下とならない場合であっても、元のレスポンスのデータ長よりも圧縮レスポンスのデータ長を短くすることができる。その結果、ICカードは、チェイニングで送信するレスポンスの個数を減らすことができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…ICカード処理装置、2…ICカード、10…ICカード処理システム、11…CPU、14…NVM、15…カードリーダライタ、21…CPU、24…NVM、26…通信部、M…モジュール、C…本体。
Claims (10)
- 外部装置と通信する通信部と、
前記通信部により前記外部装置から受信したコマンドが格納する期待値が所定の閾値よりも大きいと判定された場合、前記コマンドに対するレスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを前記通信部を通じて前記外部装置へ送信する送信処理部と、
を備えるICカード。 - 前記所定の閾値は、送信可能なレスポンスの最大データ長である、
前記請求項1に記載のICカード。 - 前記圧縮レスポンスは、少なくとも一部のデータを圧縮したことを示す情報を含む、
前記請求項1又は2に記載のICカード。 - 前記圧縮レスポンスは、PCBにおいて前記情報としてのビットを含む、
前記請求項3に記載のICカード。 - 前記レスポンスは、情報フィールドを含み、
前記圧縮レスポンスは、前記情報フィールドのデータを圧縮したデータを含む、
前記請求項1乃至4の何れか1項に記載のICカード。 - 外部装置と通信する通信部と、前記通信部により前記外部装置から受信したコマンドが格納する期待値が所定の閾値よりも大きいと判定された場合、前記コマンドに対するレスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを前記通信部を通じて前記外部装置へ送信する送信処理部と、を備えるモジュールと、
前記モジュールを内蔵した本体と、
を備えるICカード。 - 外部装置と通信する通信部と、
前記通信部により前記外部装置から受信したコマンドが格納する期待値が所定の閾値よりも大きいと判定された場合、前記コマンドに対するレスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスを前記通信部を通じて前記外部装置へ送信する送信処理部と、
を備える携帯可能電子装置。 - 携帯可能電子装置と通信する通信部と、
前記通信部を通じて受信した、レスポンスの少なくとも一部のデータを圧縮したデータを含む圧縮レスポンスのデータを解凍する処理部と、
を備える処理装置。 - 前記処理部は、
前記圧縮レスポンスが、データの少なくとも一部を圧縮したことを示す情報を含む場合、前記圧縮レスポンスのデータを解凍する、
前記請求項8に記載の処理装置。 - 前記通信部を通じて、レスポンスのデータ長の期待値を含むコマンドを送信する送信処理部を備える、
前記請求項8又は9に記載の処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016246470A JP2018101252A (ja) | 2016-12-20 | 2016-12-20 | Icカード、携帯可能電子装置及び処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016246470A JP2018101252A (ja) | 2016-12-20 | 2016-12-20 | Icカード、携帯可能電子装置及び処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018101252A true JP2018101252A (ja) | 2018-06-28 |
Family
ID=62715392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016246470A Pending JP2018101252A (ja) | 2016-12-20 | 2016-12-20 | Icカード、携帯可能電子装置及び処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018101252A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7425569B2 (ja) | 2019-09-20 | 2024-01-31 | キヤノン株式会社 | 撮像装置、デバイス、制御方法及びプログラム |
-
2016
- 2016-12-20 JP JP2016246470A patent/JP2018101252A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7425569B2 (ja) | 2019-09-20 | 2024-01-31 | キヤノン株式会社 | 撮像装置、デバイス、制御方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2014182776A (ja) | Icカード、携帯可能電子装置およびicカード処理装置 | |
US20190095771A1 (en) | Ic card, portable electronic device, and information processing method | |
JP2018101252A (ja) | Icカード、携帯可能電子装置及び処理装置 | |
US20170200071A1 (en) | Ic card, portable electronic apparatus, and processing apparatus | |
JP5259540B2 (ja) | 携帯可能電子装置、icカード、携帯可能電子装置の処理システムおよび携帯可能電子装置の制御方法 | |
US20120234926A1 (en) | Portable electronic apparatus | |
JP2008310596A (ja) | 携帯可能電子装置および携帯可能電子装置の制御方法 | |
JP6325394B2 (ja) | Icカード、携帯可能電子装置、及び、icカード処理装置 | |
US10461971B2 (en) | IC card, portable electronic device, program, processing apparatus, and processing system | |
JP2018097470A (ja) | Icカード、携帯可能電子装置及び処理装置 | |
JP2014059806A (ja) | Icカード、携帯可能電子装置、及びicカード処理装置 | |
JP6370669B2 (ja) | Icカード、携帯可能電子装置、及び、icカード処理装置 | |
US11868836B2 (en) | IC card and control program for IC card | |
JP2004185419A (ja) | 携帯可能電子媒体と、その携帯可能電子媒体の発行システム、処理方法及び発行方法 | |
JP5971687B2 (ja) | Icカード、携帯可能電子装置及びicカードのコマンド処理方法 | |
JP2017142655A (ja) | 電子情報記憶媒体、情報処理方法、及び情報処理プログラム | |
JP6552926B2 (ja) | Icカード及び携帯可能電子装置 | |
JP6039036B2 (ja) | Icカード、携帯可能電子装置及びicカードの制御方法 | |
JP2016081117A (ja) | Icカード、携帯可能電子装置、及び、icカード製造方法 | |
JP2014063310A (ja) | Icカード、携帯可能電子装置、及びicカード処理装置 | |
JP2013164686A (ja) | Icカードおよび携帯可能電子装置 | |
JP2016177850A (ja) | Icカード、携帯可能電子装置、及びicカード処理装置 | |
JP2016129072A (ja) | Icカード、携帯可能電子装置、及びicカード処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20170904 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20170905 |