(57)【要約】【課題】上位装置とＳＩＭ間で繰り返し伝送されるパターンを省略することができるＩＣカードを提供する。【解決手段】本発明に係るＳＩＭ１は、上位装置２と通信するモードとして、ＡＰＤＵを交換するＩＳＯモードと、ＡＰＤＵのデータ部のみを交換するデータモードを備え、ＩＳＯモードからデータモードへ遷移するトリガーとなるモード変更コマンドを備える。データモードでは、上位装置２とＳＩＭ１間ではＡＰＤＵのデータ部が交換され、上位装置２からＳＩＭ１には平文のみが送信され、ＳＩＭ１から上位装置２には暗号文のみが送信される。なお、設定された時間が経過した後、或いは、所定のデータ量の処理が終了した後は、ＳＩＭ１のモードはデータモードからＩＳＯモードに自動復帰する。【選択図】図１
2008033426.tif 000002
【特許請求の範囲】
【請求項１】
上位装置に組み込まれ利用されるＩＣカードであって、前記ＩＣカードは、前記ＩＣカードのモードを示すモード情報をメモリに記憶し、前記モード情報によって、少なくとも、コマンドＡＰＤＵ及びレスポンスＡＰＤＵを前記上位装置とやり取りする第１のモード、或いは、前記コマンドＡＰＤＵのデータ部であるコマンドデータ及び前記レスポンスＡＰＤＵのデータ部であるレスポンスデータのみを前記上位装置とやり取りする第２のモードのいずれかのモードが示され、前記ＩＣカードは、前記モード情報を操作するモード変更コマンドと、前記モード情報を参照し、前記モード情報に基づいて前記ＩＣカードの振舞いを変更する制御手段とを備え、前記モード変更コマンドは、前記コマンドデータを処理する処理モジュールを有し、更に、前記モード変更コマンドは前記コマンドＡＰＤＵを処理するときに、前記モード情報を操作して前記ＩＣカードのモードを前記第２のモードに遷移させ、前記第２のモードに遷移してからの時間を計測し、計測した時間が設定時間を越えたときに、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させ、前記制御手段は、前記モード情報が前記第２のモードを示すときは、前記上位装置から送信された前記コマンドデータの処理を前記モード変更コマンドに委任し、前記モード変更コマンドから得られる前記レスポンスデータを前記上位装置に送信することを特徴とするＩＣカード。
【請求項２】
請求項１に記載のＩＣカードであって、前記モード変更コマンドは、前記モード変更コマンドの前記コマンドＡＰＤＵのパラメータから前記設定時間を演算することを特徴とするＩＣカード。
【請求項３】
請求項１または請求項２に記載のＩＣカードであって、前記モード変更コマンドは、計測した時間が前記設定時間を越える前に、設定されたデータ量の前記コマンドデータを処理したときは、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させることを特徴とするＩＣカード。
【請求項４】
請求項３に記載のＩＣカードであって、前記モード変更コマンドは、計測した時間が前記設定時間を越えことにより、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させたときは、異常終了を示すレスポンスＡＰＤＵを生成し、設定されたデータ量の前記コマンドデータを処理したことにより、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させたときは、正常終了を示すレスポンスＡＰＤＵを生成することを特徴とするＩＣカード。
【請求項５】
請求項１から請求項４のいずれかに記載のＩＣカードであって、前記モード変更コマンドが有する前記処理モジュールは、前記コマンドデータを暗号化／複合するモジュールであることを特徴とするＩＣカード。
【請求項６】
少なくとも、コマンドＡＰＤＵ及びレスポンスＡＰＤＵを前記上位装置とやり取りする第１のモード、或いは、前記コマンドＡＰＤＵのデータ部であるコマンドデータ及び前記レスポンスＡＰＤＵのデータ部であるレスポンスデータのみを前記上位装置とやり取りする第２のモードのいずれかのモードが示されるモード情報を記憶したＩＣカードに実装されるＩＣカードプログラムであって、前記コマンドデータを処理する処理モジュールを有し、更に、前記コマンドＡＰＤＵを処理するときに、前記モード情報を操作して前記ＩＣカードのモードを前記第２のモードに遷移させ、前記第２のモードに遷移してからの時間を計測し、計測した時間が設定時間を越えたときに、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させるモード変更コマンド機能と、前記モード情報が前記第２のモードを示すときは、前記上位装置から送信された前記コマンドデータの処理を前記モード変更コマンド機能に委任し、前記モード変更コマンド機能から得られる前記レスポンスデータを前記上位装置に送信する制御機能として、前記ＩＣカードのＣＰＵを動作させるためのＩＣカードプログラム。
【請求項７】
請求項６に記載のＩＣカードプログラムにおいて、前記モード変更コマンドの前記コマンドＡＰＤＵのパラメータから前記設定時間を演算する前記モード変更コマンド機能として、前記ＩＣカードのＣＰＵを動作させるためのＩＣカードプログラム。
【請求項８】
請求項６または請求項７に記載のＩＣカードプログラムにおいて、計測した時間が前記設定時間を越える前に、設定されたデータ量の前記コマンドデータを処理したときは、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させるモード変更コマンド昨日として、前記ＩＣカードのＣＰＵを動作させるためのＩＣカードプログラム。
【請求項９】
請求項８に記載のＩＣカードプログラムにおいて、計測した時間が前記設定時間を越えことにより、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させたときは、異常終了を示すレスポンスＡＰＤＵを生成し、設定されたデータ量の前記コマンドデータを処理したことにより、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させたときは、正常終了を示すレスポンスＡＰＤＵを生成するモード変更コマンド機能として、前記ＩＣカードのＣＰＵを動作させるためのＩＣカードプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣチップが実装されたカード媒体であるＩＣカードに関し、更に詳しくは、上位装置とＩＣカード間の通信時間を短縮する技術に関する。
【背景技術】
【０００２】
ＩＣカードに実装されたＩＣチップ近傍を短冊状に切り取ったＳＩＭ(Subscriber Identity Module）は、上位装置に組み込まれ、上位装置で利用するデータを暗号化／復号するデバイスとして利用されている。
【０００３】
ＳＩＭを上位装置に組み込む一例としては、同一出願人は、インターネットに接続できる監視カメラにＳＩＭを搭載し、監視カメラが撮像した動画をＳＩＭで暗号化するシステムを出願している（特許文献１）。
【０００４】
監視カメラなどの上位装置とＳＩＭとを組み合わせることで、データを暗号化するために施す上位装置の変更点が最小限に抑えられ、更に、暗号アルゴリズム交換も容易になるメリットが生じる。
【０００５】
しかしながら、ＳＩＭの通信速度は、標準で９６００ｂｐｓと一般的なネットワークや無線通信速度と比べて非常に遅く、上位装置にＳＩＭを組み込み利用する際は、上位装置とＳＩＭ間の通信時間がボトルネックとなってしまう。このため、上位装置とＳＩＭ間の通信時間を短縮する上で、上位装置とＳＩＭ間の通信量を減らすことは大変メリットがある。
【０００６】
近年では、特許文献２で開示されているようなＵＳＢインターフェースを搭載し、通信速度を飛躍的に向上させることの可能なＩＣチップも提案されてきているが、上位装置とＳＩＭ間の通信量を減らすことにメリットがあることにかわりはない。
【０００７】
上位装置とＳＩＭ間の通信量を少なくする一つの発明として、同一出願人は、繰り返して利用することのできるパターンがコマンドに含まれる場合、あらかじめＳＩＭ内にこのパターンを登録し、ＳＩＭへはこのパターン番号を送ることで、上位装置とＳＩＭ間の通信量を減らす発明を出願している（特許文献３）。
【特許文献１】特願２００５−１０８６０１号公報
【特許文献２】特表２００３−５３２９３６号公報
【特許文献３】特願２００５−２６５６０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
確かに、特許文献３の技術を用いることで、繰り返しのパターンがコマンドに含まれる場合、あらかじめＳＩＭ内にパターンを登録し、繰り返しのパターンの代わりにパターン番号を上位装置からＳＩＭに送信することで通信量を削減することができる。
【０００９】
しかしながら、あるコマンドの処理を連続してＳＩＭに実行させる場合、上位装置側では、コマンドを実行させるごとにパターン番号をＳＩＭに送信する必要があるし、また、ＳＩＭ側では、受信したパターン番号を解釈しなければならない。
【００１０】
そこで、本発明は、あるコマンドの処理を連続してＳＩＭに実行させる場合、上位装置とＳＩＭ間で繰り返し伝送されるパターン（例えば、コマンドコード）を省略することができ、更に、このパターンを識別するパターン番号でさえも省略することのできるＩＣカード、およびＩＣカードプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決する第１の発明は、上位装置に組み込まれ利用されるＩＣカードであって、前記ＩＣカードは、前記ＩＣカードのモードを示すモード情報をメモリに記憶し、前記モード情報によって、少なくとも、コマンドＡＰＤＵ及びレスポンスＡＰＤＵを前記上位装置とやり取りする第１のモード、或いは、前記コマンドＡＰＤＵのデータ部であるコマンドデータ及び前記レスポンスＡＰＤＵのデータ部であるレスポンスデータのみを前記上位装置とやり取りする第２のモードのいずれかのモードが示され、前記ＩＣカードは、前記モード情報を操作するモード変更コマンドと、前記モード情報を参照し、前記モード情報に基づいて前記ＩＣカードの振舞いを変更する制御手段とを備え、前記モード変更コマンドは、前記コマンドデータを処理する処理モジュールを有し、更に、前記モード変更コマンドは、前記第１のモードで前記コマンドＡＰＤＵを処理するときには、前記モード情報を操作して前記ＩＣカードのモードを前記第２のモードに遷移させ、前記第２のモードに遷移してからは、前記第２のモードに遷移している時間を計測し、計測した時間が設定時間を越えたときに、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させ、前記制御手段は、前記モード情報が前記第２のモードを示すときは、前記上位装置から送信された前記コマンドデータの処理を前記モード変更コマンドに委任し、前記モード変更コマンドから得られる前記レスポンスデータを前記上位装置に送信することを特徴とする。
【００１２】
更に、第２の発明は、第１の発明に記載のＩＣカードであって、前記モード変更コマンドは、前記モード変更コマンドの前記コマンドＡＰＤＵのパラメータから前記設定時間を演算することを特徴とする。
【００１３】
更に、第３の発明は、第１の発明または第２の発明に記載のＩＣカードであって、前記モード変更コマンドは、計測した時間が前記設定時間を越える前に、設定されたデータ量の前記コマンドデータを処理したときは、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させることを特徴とする。
【００１４】
更に、第４の発明は、第３の発明に記載のＩＣカードであって、前記モード変更コマンドは、計測した時間が前記設定時間を越えことにより、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させたときは、異常終了を示すレスポンスＡＰＤＵを生成し、設定されたデータ量の前記コマンドデータを処理したことにより、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させたときは、正常終了を示すレスポンスＡＰＤＵを生成することを特徴とする。
【００１５】
更に、第５の発明は、第１の発明から第４の発明のいずれかに記載のＩＣカードであって、前記モード変更コマンドが有する前記処理モジュールは、前記コマンドデータを暗号化／複合するモジュールであることを特徴とする。
【００１６】
更に、第６の発明は、少なくとも、コマンドＡＰＤＵ及びレスポンスＡＰＤＵを前記上位装置とやり取りする第１のモード、或いは、前記コマンドＡＰＤＵのデータ部であるコマンドデータ及び前記レスポンスＡＰＤＵのデータ部であるレスポンスデータのみを前記上位装置とやり取りする第２のモードのいずれかのモードが示されるモード情報を記憶したＩＣカードに実装されるＩＣカードプログラムであって、前記コマンドデータを処理する処理モジュールを有し、更に、前記コマンドＡＰＤＵを処理するときに、前記モード情報を操作して前記ＩＣカードのモードを前記第２のモードに遷移させ、前記第２のモードに遷移してからの時間を計測し、計測した時間が設定時間を越えたときに、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させるモード変更コマンド機能と、前記モード情報が前記第２のモードを示すときは、前記上位装置から送信された前記コマンドデータの処理を前記モード変更コマンド機能に委任し、前記モード変更コマンド機能から得られる前記レスポンスデータを前記上位装置に送信する制御機能として、前記ＩＣカードのＣＰＵを動作させるためのＩＣカードプログラムである。
【００１７】
更に、第７の発明は、第６の発明に記載のＩＣカードプログラムにおいて、前記モード変更コマンドの前記コマンドＡＰＤＵのパラメータから前記設定時間を演算する前記モード変更コマンド機能として、前記ＩＣカードのＣＰＵを動作させるためのＩＣカードプログラムである。
【００１８】
更に、第８の発明は、第６の発明または第７の発明に記載のＩＣカードプログラムにおいて、計測した時間が前記設定時間を越える前に、設定されたデータ量の前記コマンドデータを処理したときは、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させるモード変更コマンド昨日として、前記ＩＣカードのＣＰＵを動作させるためのＩＣカードプログラムである。
【００１９】
更に、第９の発明は、第８の発明に記載のＩＣカードプログラムにおいて、計測した時間が前記設定時間を越えことにより、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させたときは、異常終了を示すレスポンスＡＰＤＵを生成し、設定されたデータ量の前記コマンドデータを処理したことにより、前記モード情報を操作して前記ＩＣカードのモードを前記第１のモードに復帰させとたきは、正常終了を示すレスポンスＡＰＤＵを生成するモード変更コマンド機能として、前記ＩＣカードのＣＰＵを動作させるためのＩＣカードプログラムである。
【発明の効果】
【００２０】
上述した発明によれば、上述した第２のモードに遷移してから設定時間内においては、上位装置とＩＣカード間ではコマンドデータ／レスポンスデータが伝送されため、上位装置とＩＣカード間の通信量を減らす効果が得られるばかりか、ＩＣカードは、上位装置から受信したコマンドＡＰＤＵを毎回解釈する必要がなくなるため、ＩＣカードの処理時間を短縮する効果が得られる。
【００２１】
更に、設定された時間が経過した後、或いは、所定のデータ量の処理が終了した後は、コマンドデータ／レスポンスデータのみを前記上位装置とやり取りする第２のモードから、コマンドＡＰＤＵ／レスポンスＡＰＤＵを前記上位装置とやり取りする第１のモードに自動復帰するため、第２のモードに遷移した後でも、上位装置はＩＳＯ／ＩＥＣ７８１６などの規格に準拠した手順に従い、ＩＣカードを利用したトランザクションを実行することができる。
【００２２】
更に、モード変更コマンドのコマンドＡＰＤＵで示される処理が終了したときに、レスポンスＡＰＤＵをＩＣカードから上位装置に送信することで、ＩＳＯ／ＩＥＣ７８１６に準拠したシステムと親和性がとり易くなる。
【００２３】
更に、モード変更コマンドが有する処理モジュールを、平文を暗号化／複合するモジュールとすることで、上位装置が大量の平文を暗号化したときに処理時間を短縮できる。なお、第１のモードに自動復帰することで、暗号鍵の変更やＩＣカードの認証など、モード変更コマンド以外の処理を行うことができる。
【００２４】
なお、本発明において、ＩＣカードとは、ＩＣチップが実装されたカード媒体を意味し、上位装置と通信するためのインターフェースは接触／非接触を問うものではない。更に、本発明に係るＩＣカードには、ＩＣチップの周辺を短冊状に切り取ったＳＩＭ或いはＵＩＭも含まれる。
【発明を実施するための最良の形態】
【００２５】
ここから、図を参照しながら、本発明に係るＳＩＭについて詳細に説明する。本発明に係るＳＩＭ１は、上位装置２と通信するモードとして２つのモードを備え、第１のモードは、ＡＰＤＵ（Application Protocol Data Unit）を交換するＩＳＯモードであり、第２のモードは、ＡＰＤＵのデータ部のみを交換するデータモードである。
【００２６】
図１は、ＳＩＭ１の振舞いを説明する図で、図１（ａ）は、ＡＰＤＵを交換するＩＳＯモードを説明する図で、図１（ｂ）は、ＡＰＤＵのデータ部のみを交換するデータモードを説明する図である。
【００２７】
図１（ａ）に示したように、ＩＳＯモードは、ＩＳＯ／ＩＥＣ７８１６の手順に従い、上位装置２とＳＩＭ１間でＡＰＤＵを交換するモードで、上位装置２からＳＩＭ１に送信されるＡＰＤＵはコマンドＡＰＤＵと呼ばれ、このコマンドＡＰＤＵには、実行するコマンドを示すコマンドヘッダと、コマンドで利用されるコマンドデータが含まれる。
【００２８】
また、ＳＩＭ１から上位装置２に送信されるＡＰＤＵはレスポンスＡＰＤＵと呼ばれ、このレスポンスＡＰＤＵには、コマンドのレスポンスデータと、コマンドの実行結果を示すステータスワード（SW: status word）が含まれる。
【００２９】
図１（ｂ）に示したように、ＳＩＭ１がデータモードであるとき、上位装置２とＳＩＭ１間ではＡＰＤＵのデータ部のみが交換され、上位装置２からＳＩＭ１にはコマンドデータのみが送信され、ＳＩＭ１から上位装置２にはレスポンスデータのみが送信される。
【００３０】
活性化されたときのＳＩＭ１のモードはＩＳＯモードで、ＳＩＭ１は、ＩＳＯモードからデータモードへ遷移するトリガーとなるモード変更コマンドを備える。
【００３１】
ＳＩＭ１がモード変更コマンドを受信すると、ＳＩＭ１のモードはＩＳＯモードからデータモードへと遷移し、データモードでは、ＳＩＭ１は、上位装置２から送信されたコマンドデータをモード変更コマンドによって処理し、モード変更コマンドの処理結果であるレスポンスデータのみを上位装置２に送信する。
【００３２】
モード変更コマンドのパラメータで、データモードに遷移している時間である設定時間が示され、モード変更コマンドはデータモードに遷移してからの時間を計測し、計測した時間が設定時間を越えたときには、ＳＩＭ１のモードは、データモードからＩＳＯモードに自動復帰する。
【００３３】
また、データモードに遷移している間で処理するデータ量を示す処理データ量がモード変更コマンドのパラメータによって示され、データモードに遷移してから設定時間以内に処理したデータ量が処理データ量を越えたときには、ＳＩＭ１のモードはデータモードからＩＳＯモードに自動復帰する。
【００３４】
ＳＩＭ１が上述したデータモードを有することで、上位装置２とＳＩＭ１間の通信量を減らす効果が得られるばかりか、ＳＩＭ１は、上位装置２から受信したコマンドＡＰＤＵを毎回解釈する必要がなくなるため、ＳＩＭ１の処理時間を短縮する効果が得られる。
【００３５】
更に、設定時間が経過した後はデータモードからＩＳＯモードに自動復帰するため、データモードに遷移した後でも、上位装置２はＩＳＯ／ＩＥＣ７８１６に準拠した手順に従い、ＩＣカードを利用したトランザクションを実行することができる。
【００３６】
ここから、本発明に係るＳＩＭ１についてより詳しく説明する。図２は、本発明に係るＳＩＭ１の外観図である。ＳＩＭ１は、ＩＣチップ１０がモールドされたＩＣモジュール１ａ周辺を約１１．５ｍｍ×２５ｍｍ状に切り取った形状をしており、ＳＩＭ１の詳細な形状はＧＳＭ（Global System for Mobile communications）規格等で規格化されている。
【００３７】
図３は、ＳＩＭ１のＩＣモジュール１ａにモールドされるＩＣチップ１０のハードウェア構造図である。ＩＣチップ１０は、Ｖｃｃ、Ｒｅｓｅｔ、Ｃｌｏｃｋ、Ｉ／Ｏ及びＧｎｄ用の外部端子を有し、このＩＣチップ１０には、中央演算装置１１（Central Processing Unit、以下ＣＰＵと記す）に、バス１８を介して、読み出し専用メモリ１５（Read Only Memory、以下ROMと記す）、書換え可能なメモリとしてＥＥＰＲＯＭ１６（Electrically Erasable Programmable Read-Only Memoryの略）、揮発性メモリとしてランダムアクセスメモリ１４（Random Access Memory、以下ＲＡＭと記す）、暗号演算専用の回路である暗号演算回路１２、上位装置２とデータを通信するための通信Ｉ／Ｆ回路１３、及び、Ｃｌｏｃｋ用の外部端子に入力されるクロック信号を用いて時間を計測するタイマー回路１７などが接続されている。
【００３８】
図４は、ＳＩＭ１のソフトウェア構成図である。図４に示したように、ＳＩＭ１は、上位装置２から送信された平文を暗号化する暗号鍵１０４をＥＥＰＲＯＭ１６に記憶し、ＳＩＭ１が遷移しているモードを示すモード情報１０５をＲＡＭ１４などの揮発性メモリに記憶している。
【００３９】
更に、ＳＩＭ１は、図３で示したＩＣチップ１０のハードウェアを利用し、ＣＰＵ１１を動作させるプログラムとして、Ｉ／Ｆ回路１３を制御し、上位装置２とデータ通信するための伝送制御モジュール１０３と、上位装置２から送信されたコマンドＡＰＤＵを解釈し、コマンドＡＰＤＵに対応するコマンドに処理を委任する手段となるディスパッチャ１００（dispatcher）と、ディスパッチャ１００から処理を委任される複数のコマンドからなるコマンド群１０６を備え、このコマンド群１０６には、暗号演算回路１２を作動させ、上位装置２から送信された平文を暗号化する暗号化コマンド１０１と、暗号化コマンド１０１で利用される暗号鍵１０４をＥＥＰＲＯＭ１６に書込む暗号鍵設定コマンド１０２が含まれる。
【００４０】
ＳＩＭ１に備えられた伝送制御モジュール１０３とは、通信Ｉ／Ｆ回路１３を制御し、上位装置２と確実にデータを送受信するためのプログラムで、例えば、ＩＳＯ／ＩＥＣ７８１６で定義されている伝送プロトコル（Ｔ０，Ｔ１）や、ＵＳＢ規格の伝送プロトコルに従い、誤り訂正や、再送制御などを行なうプログラムである。
【００４１】
ディスパッチャ１００とは、本発明に係る制御手段を実現するプログラムであって、モード情報１０５を参照し、ＳＩＭ１の振舞いを変更する。モード情報１０５がＩＳＯモードを示すとき、ディスパッチャ１００は上位装置２から送信されたコマンドＡＰＤＵを解釈し、コマンド群１０６の中からコマンドＡＰＤＵを処理させるコマンドを選択し、選択したコマンドにコマンドＡＰＤＵの処理を委任する。
【００４２】
また、モード情報１０５がデータモードを示すとき、ディスパッチャ１００は上位装置２から送信されたコマンドデータを解釈することなく、暗号化コマンド１０１にコマンドデータの処理を委任する。
【００４３】
暗号鍵設定コマンド１０２とは、ＩＳＯ／ＩＥＣ７８１６で定義されているＷｒｉｔｅコマンドのように、上位装置２から受信したデータ（暗号鍵１０４）をＥＥＰＲＯＭ１６に書き込むプログラムである。ＳＩＭ１がこの暗号鍵設定コマンド１０２を備えることで、平文を暗号化する暗号鍵１０４を任意に変更することが可能である。
【００４４】
暗号化コマンド１０１とは、ＩＣチップ１０の暗号演算回路１２を操作し、ＳＩＭ１に記憶された暗号鍵１０４を用い、所定の暗号アルゴリズムに従い、上位装置２から伝送される平文を暗号化する処理モジュールを備えたコマンドで、ＳＩＭ１がデータモードへ遷移するトリガーとなるモード変更コマンドである。
【００４５】
図５は、ＳＩＭ１のモード遷移を説明する図である。上述しているように、ＳＩＭ１は、ＩＳＯモードとデータモードの２つのモードを有し、ＳＩＭ１が遷移しているモードは、モード情報１０５によって示される。
【００４６】
ＩＳＯモードでは、ＳＩＭ１と上位装置２間でＡＰＤＵが交換され、ＩＳＯモードで、暗号化コマンド１０１のコマンドＡＰＤＵを受信したとき、ＳＩＭ１のモードは、ＩＳＯモードからデータモードに遷移する。そして、データモードでは、ＡＰＤＵのデータ部のみ、すなわち、コマンドデータとレスポンスデータのみが交換される。
【００４７】
ＩＳＯモードからデータモードに遷移した後は、暗号化コマンド１０１のコマンドＡＰＤＵで示される処理データ量の平文の暗号処理がすべて終了したときか、或いは、暗号化コマンド１０１のコマンドＡＰＤＵで示される設定時間が経過したときに、ＳＩＭ１のモードは、データモードからＩＳＯモードへと自動復帰する。
【００４８】
図６は、ＩＳＯモードにおけるＳＩＭ１の動作を説明する図である。ＩＳＯモードでは、コマンド群１０６に含まれるコマンドの実行が可能で、このＩＳＯモードでは、プロトコルバイトとチェックコードが付加されたコマンドＡＰＤＵが、上位装置２からＳＩＭ１に送信される。
【００４９】
ＳＩＭ１の伝送制御モジュール１０３は、コマンドＡＰＤＵを受信すると、コマンドＡＰＤＵに付加されたプロトコルバイトとチェックコードを確認し、データを正常に受信したと判断した場合、ディスパッチャ１００がコマンドＡＰＤＵのコマンドヘッダの内容を解釈し、コマンド群１０６に含まれ、受信したコマンドＡＰＤＵに対応するコマンドに処理を委任する。委任されたコマンドはコマンドＡＰＤＵで示される処理を実行した後、レスポンスＡＰＤＵを生成し、伝送制御モジュール１０３は生成したレスポンスＡＰＤＵを上位装置２に返信する。
【００５０】
図７は、データモードにおけるＳＩＭ１の動作を説明する図である。ＳＩＭ１が暗号化コマンド１０２を受信することで、ＳＩＭ１のモードはＩＳＯモードからデータモードへ遷移し、データモードでは、ＩＳＯモードとは異なり、上位装置２からＳＩＭ１には平文のみが送信される。
【００５１】
上位装置２が平文をＳＩＭ１に送信するとき、平文には、コマンドＡＰＤＵと同様にプロトコルバイトとチェックコードが付加される。ＳＩＭ１が平文を受信すると、伝送制御モジュール１０３は、平文に付加されたプロトコルバイトとチェックコードを確認し、正常にデータを受信したと判断した場合、受信した平文の暗号化を暗号化コマンド１０１に委任し、暗号化コマンド１０１は平文を暗号化した暗号文を生成する。暗号化コマンド１０１が生成した暗号文は、伝送制御モジュール１０３に受け渡され、しかるべきプロトコルバイトとチェックコードが付加されて上位装置１に送信される。
【００５２】
そして、上位装置２から送信される最後の平文を受信すると、ＳＩＭ１のモードは、データモードからＩＳＯモードへと遷移し、ＳＩＭ１は暗号化コマンドのレスポンスＡＰＤＵを生成し、生成したレスポンスＡＰＤＵにプロトコルバイトとチェックコードを付加して上位装置２へ送信する。
【００５３】
従来のＩＣカードにおいては、データ容量の大きい平文を暗号化する際、一つのコマンドＡＰＤＵに含めることができるブロックサイズに平文を分割し、分割した平文ごとにコマンドＡＰＤＵを生成しなければならないが、本発明に係るＳＩＭ１を用いれば、分割した平文ごとにコマンドＡＰＤＵを生成する必要はなくなるため、上位装置２とＳＩＭ１間の通信量を減らす効果が得られるばかりか、ＳＩＭ１は、上位装置２から受信したコマンドＡＰＤＵを毎回解釈する必要がなくなるため、ＳＩＭ１の処理時間を短縮する効果が得られる。
【００５４】
更に、指定された時間が経過した後、或いは、処理データ量の平文を処理した後は、ＳＩＭ１のモードはデータモードからＩＳＯモードに自動復帰するため、データモードに遷移した後であっても、上位装置２はＩＳＯ／ＩＥＣ７８１６などに準拠した手順に従い、ＩＣカードを利用したトランザクションを実行することができる。
【００５５】
図８は、暗号化コマンド１０１のコマンドＡＰＤＵの一例を示した図である。図８で示しているように、本実施の形態において、ＩＳＯモード時に上位装置からＳＩＭ１に送信されるコマンドＡＰＤＵの構造は、ＩＳＯ／ＩＥＣ７８１６規格のＣａｓｅ３のコマンド構造で、ＣＬＡ、ＩＮＳ、Ｐ１及びＰ２とから成るコマンドヘッダと、Ｌｃ及びデータフィールドとから成るボディとから構成される。
【００５６】
暗号化コマンド１０１のコマンドＡＰＤＵのヘッダーに含まれるＣＬＡとＩＮＳは、コマンドＡＰＤＵを識別するためのデータで、本実施の形態において、暗号化コマンド１０１のＣＬＡは「Ｄ０ｈ」で、ＩＮＳは「０４ｈ」である。
【００５７】
暗号化コマンド１０１のコマンドＡＰＤＵのヘッダーに含まれるＰ１およびＰ２は、暗号化コマンド１０１が実行されるときのパラメータで、本実施の形態においては、Ｐ１は、暗号化コマンド１０１の処理データ量として、暗号化コマンド１０１のコマンドＡＰＤＵも含め、平文が送信される回数を示すパラメータで、Ｐ２は上述した設定時間を示すパラメータである。
【００５８】
例えば、Ｐ１＝「８０ｈ」のときは、暗号化コマンド１０１のコマンドデータも含め、平文が送信される回数は１２８回であることが示される。Ｐ２＝「０８ｈ」（ｈは１６進表記）であるときは、Ｐ２によって上述している設定時間は８分間であることが示される。
【００５９】
暗号化コマンド１０１のボディのＬｃは、データフィールドに含まれるデータの長さを示しデータフィールドには平文が含まれる。なお、上述しているように、データモードでは、平文のみが送信され、コマンドヘッダのＣＬＡ、ＩＮＳ、Ｐ１およびＰ２は送信されない。
【００６０】
ＳＩＭ１がデータモードにいるときは、暗号化コマンド１０１のボディ、すなわち、送信する平文の長さを示すＬｃと平文とが送信され、暗号化コマンド１０１は、Ｌｃで示される長さの平文を暗号化する。
【００６１】
図９は、暗号化コマンド１０１のレスポンスＡＰＤＵの一例を示した図で、平文を暗号化した回数がＰ１で示される回数に達したとき、或いは、Ｐ２で示される時間が経過したとき、暗号化コマンド１０１はレスポンスＡＰＤＵを生成する。
【００６２】
図９で示したように、暗号化コマンド１０１のレスポンスＡＰＤＵの構造は、ＩＳＯ／ＩＥＣ７８１６のレスポンスＡＰＤＵの構造に準拠し、ボディと、トレイラー（Trailer）である２バイトのＳＷとから構成される。
【００６３】
暗号化コマンド１０１のレスポンスＡＰＤＵのボディには、最後に受信する平文を暗号化した暗号文が含まれる。また、レスポンスＡＰＤＵの２バイトのＳＷでは、暗号化コマンド１０１の実行結果（成功、失敗）が示される。
【００６４】
平文を暗号化した回数がＰ１で示される回数に達したときに生成されるレスポンスＡＰＤＵのＳＷでは実行結果（成功）が示され、Ｐ２で示される設定時間が経過したときに生成されるレスポンスＡＰＤＵのＳＷでは実行結果（異常終了）が示され、異常終了時のレスポンスＡＰＤＵには暗号文は含まれない。
【００６５】
ここから、暗号化コマンド１０１を実装したＳＩＭ１の動作フローについて説明する。図１０は、ＳＩＭ１の動作を示したフロー図である。図１０の最初のステップＳ１は、ＳＩＭ１が活性化されるステップである。このステップでは、ＳＩＭ１は、ＩＳＯ／ＩＥＣ７８１６の手順に従い活性化され、ＳＩＭ１の初期処理が実行される。
【００６６】
この初期処理によって、ＳＩＭ１のモード情報１０５の値がＩＳＯモードを示す値に設定されることで、ＳＩＭ１のモードはＩＳＯモードになる。
【００６７】
次のステップＳ２は、ＳＩＭ１が非活性化されるまで繰り返し実行されるループ処理である。
【００６８】
次のステップＳ３は、ＳＩＭ１が上位装置２からコマンドＡＰＤＵを受信するステップである。ＳＩＭ１の伝送制御モジュール１０３は、上位装置２から、プロトコルバイトとチェックコードが付加されたコマンドＡＰＤＵを受信すると、コマンドＡＰＤＵに付加されたプロトコルバイトとチェックコードを確認し、データを正常に受信したと判断した場合、コマンドＡＰＤＵのみをディスパッチャ１００に受け渡す。
【００６９】
次のステップＳ４は、ＳＩＭ１が上位装置から受信したコマンドＡＰＤＵを処理するコマンドを特定するステップである。このステップでは、ＳＩＭ１のモード情報１０５の値は、ＩＳＯモードを示す値に設定されているため、ＳＩＭ１のディスパッチャ１００は、コマンドＡＰＤＵのＣＬＡ，ＩＮＳを解析することで、ＳＩＭ１が有するコマンド群１０６の中から実行するコマンドを特定し、Ｐ１、Ｐ２およびデータフィールドのデータを引渡すなどして、コマンドＡＰＤＵの処理を特定したコマンドに委任する。
【００７０】
なお、このステップで、特定したコマンドが暗号化コマンド１０１の場合はステップＳ１０に進み、他のコマンドの場合はステップＳ５に進む。
【００７１】
ステップＳ５において、暗号化コマンド１０１以外のコマンド（例えば、暗号鍵設定コマンド１０２）を処理され、レスポンスＡＰＤＵが生成される。そして、ステップＳ６では、伝送制御モジュール１０３は、生成したレスポンスＡＰＤＵにプロトコルバイトとチェックコードを付加し上位装置２に送信する。
【００７２】
図１１は、図１０のステップＳ１０で実行され、暗号化コマンド１０１を処理する手順を示したフロー図である。暗号化コマンド１０１を処理する手順の最初のステップＳ１１は、ＳＩＭ１のモードを、ＩＳＯモードからデータモードへ遷移させるステップである。
【００７３】
このステップＳ１１では、暗号化コマンド１０１は、ＩＳＯモードを示す値からデータモードを示す値に、モード情報１０５の値を変更することで、ＳＩＭ１のモードを、ＩＳＯモードからデータモードへ遷移させる。
【００７４】
次のステップＳ１２は、上位装置から送信される平文を暗号化する回数を示すカウンタと、データモードに遷移してからの時間を計測するタイマーを初期化するステップである。このステップでは、ＳＩＭ１の暗号化コマンド１０１は、図１０のステップＳ３で受信した暗号化コマンド１０１のコマンドＡＰＤＵに含まれるＰ１の値を、ＣＰＵ１１のレジスタまたはＲＡＭ１４にコピーすることで、暗号化する回数を示すカウンタを初期化する。
【００７５】
また、ＳＩＭ１の暗号化コマンド１０１は、コマンドＡＰＤＵのＰ２の値から演算される値をタイマー回路１７にセットすることで、タイマーを初期化し、タイマー回路１７を作動させる。
【００７６】
次のステップＳ１３は、上位装置２から送信された平文を暗号化した暗号文を生成するステップである。このステップでは、暗号化コマンド１０１は、暗号演算回路１２を作動させ、暗号鍵１０４を用いて所定の暗号アルゴリズムに従い、ディスパッチャ１００から引渡された平文を暗号化する。
【００７７】
なお、このステップで暗号化する最初の平文は、図１０のステップＳ３で受信したコマンドＡＰＤＵのデータフィールドに含まれる平文で、２回目以降に暗号化する平文は、後述するステップＳ１９で受信する平文である。
【００７８】
次のステップＳ１４は、平文を暗号化した回数を示すカウンタの値を一つデクリメントするステップである。このステップでは、暗号化コマンド１０１は、ＣＰＵ１１のレジスタまたはＲＡＭ１４に生成されたカウンタの値を一つだけデクリメントする。
【００７９】
次のステップＳ１５は、カウンターの値を参照し、図１０のステップＳ３で受信した暗号化コマンド１０１のコマンドＡＰＤＵのＰ１で示される回数だけ、平文を暗号化したか確認するステップである。例えば、暗号化コマンド１０１は、ＣＰＵのレジスタまたはＲＡＭに生成されたカウンタの値が「０」であるか確認することで、暗号化コマンド１０１のコマンドＡＰＤＵのＰ１で示される回数だけ、平文を暗号化したかが確認される。
【００８０】
ステップＳ１５で、暗号化コマンド１０１のコマンドＡＰＤＵのＰ１で示される回数だけ、平文を暗号化していない場合はステップＳ１６に進み、暗号化した場合は正常終了処理（ステップＳ２０）に進む。
【００８１】
暗号化コマンド１０１のコマンドＡＰＤＵのＰ１で示される回数だけ、平文を暗号化していない場合に実行されるステップＳ１６では、平文を暗号化した暗号文のみが上位装置２に送信される。このステップでは、暗号化コマンド１０１は、ステップＳ１２で生成した暗号文を伝送制御モジュール１０３に引渡し、伝送制御モジュール１０３は、暗号文に、プロトコルバイトとチェックコードを付加して上位装置２に送信し、送信後にＳＩＭ１は上位装置２からデータを受信する状態になる。
【００８２】
次のステップＳ１７は、次に暗号化する平文を受信待ちするステップである。このステップでは、ステップＳ１６で、伝送制御モジュール１０３が暗号文を送信することで、ＳＩＭ１は受信待ちとなる。
【００８３】
次のステップＳ１８は、データモードに遷移してからの時間が設定時間を越えたか確認するステップである。このステップでは、ステップＳ１２で作動させたタイマー回路１７のタイマー割込みが発生することで、データモードに遷移してからの時間が設定時間を越えたか確認される。設定時間を越えたときは異常終了処理（ステップＳ３０）に進み、設定時間を越えていないときはステップＳ１９に進む。
【００８４】
次のステップＳ１９は、上位装置２から平文を受信したか確認するステップである。このステップで、平文を受信していないときは、ステップＳ１８に戻る。
【００８５】
このステップで、上位装置２からＳＩＭ１に送信される平文には、プロトコルバイトとチェックコードが付加される。ＳＩＭ１が平文を受信すると、伝送制御モジュール１０３は、コマンドＡＰＤＵに付加されたプロトコルバイトとチェックコードを確認し、データを正常に受信したと判断し、モード情報１０５の値を確認する。
【００８６】
ステップＳ１９では、モード情報１０５はデータモードを示す値に設定されているため、このステップで平文を受信すると、ディスパッチャ１００は、コマンドＡＰＤＵを解析することなく、ステップＳ１３に進み、ステップＳ１９で受信した平文の暗号化を暗号化コマンド１０１に委任する。
【００８７】
図１２は、正常終了処理に手順を示したフロー図である。この手順の最初のステップＳ２１は、正常終了を示すＳＷと、最後に暗号化した平文の暗号文であるレスポンスデータとからなるレスポンスＡＰＤＵを生成し、更に、データモードを示す値からＩＳＯモードを示す値にモード情報１０５の値を変更する。
【００８８】
ステップＳ２１の後に実行されるステップＳ２２は、ステップＳ２１で生成したレスポンスＡＰＤＵを上位装置２に送信するステップである。このステップでは、暗号化コマンド１０１は、ステップＳ２１で生成したレスポンスＡＰＤＵを伝送制御モジュール１０３に引渡し、伝送制御モジュール１０３は、プロトコルバイトとチェックコードをレスポンスＡＰＤＵに付加し、レスポンスＡＰＤＵを上位装置２に送信する。
【００８９】
図１３は、異常終了処理に手順を示したフロー図である。この手順の最初のステップＳ３１は、異常終了を示すＳＷのみからなるレスポンスＡＰＤＵを生成し、更に、データモードを示す値からＩＳＯモードを示す値にモード情報１０５の値を変更する。
【００９０】
ステップＳ２１の後に実行されるステップＳ２２は、ステップＳ２１で生成したレスポンスＡＰＤＵを上位装置２に送信するステップである。このステップでは、暗号化コマンド１０１は、ステップＳ２１で生成したレスポンスＡＰＤＵを伝送制御モジュール１０３に引渡し、伝送制御モジュール１０３は、プロトコルバイトとチェックコードをレスポンスＡＰＤＵに付加し、レスポンスＡＰＤＵを上位装置２に送信する。
【図面の簡単な説明】
【００９１】
【図１】ＳＩＭの振舞いを説明する図。
【図２】ＳＩＭの外観図。
【図３】ＩＣチップのハードウェア構造図。
【図４】ＳＩＭのソフトウェア構成図。
【図５】ＳＩＭのモード遷移を説明する図。
【図６】ＩＳＯモードにおけるＳＩＭの動作を説明する図。
【図７】データモードにおけるＳＩＭの動作を説明する図。
【図８】暗号化コマンドのコマンドＡＰＤＵの一例を示した図。
【図９】暗号化コマンドのレスポンスＡＰＤＵの一例を示した図。
【図１０】ＳＩＭの動作を示したフロー図。
【図１１】暗号化コマンドを処理する手順を示したフロー図。
【図１２】正常終了時の手順を示したフロー図。
【図１３】異常終了時の手順を示したフロー図。
【符号の説明】
【００９２】
１  ＳＩＭ
１００  ディスパッチ
１０１  暗号鍵設定コマンド
１０２  暗号化コマンド
１０３  伝送制御モジュール
１０４  暗号鍵
１０５  モード情報
２  上位装置
【図１】
2008033426.tif 000003
【図２】
2008033426.tif 000004
【図３】
2008033426.tif 000005
【図４】
2008033426.tif 000006
【図５】
2008033426.tif 000007
【図６】
2008033426.tif 000008
【図７】
2008033426.tif 000009
【図８】
2008033426.tif 000010
【図９】
2008033426.tif 000011
【図１０】
2008033426.tif 000012
【図１１】
2008033426.tif 000013
【図１２】
2008033426.tif 000014
【図１３】
2008033426.tif 000015