(57)【要約】【課題】上位装置とＳＩＭ間で繰り返し伝送されるパターンを省略することができるＩＣカードを提供する。【解決手段】本発明に係るＳＩＭ１は、上位装置２と通信するモードとして、ＡＰＤＵを交換するＩＳＯモードと、ＡＰＤＵのデータ部のみを交換するデータモードを備え、ＩＳＯモードからデータモードへ遷移するトリガーとなるモード変更コマンドを備える。データモードでは、上位装置２とＳＩＭ１間ではＡＰＤＵのデータ部が交換され、上位装置２からＳＩＭ１には平文のみが送信され、ＳＩＭ１から上位装置２には暗号文のみが送信される。なお、データモードで処理したコマンドデータのデータ量が、モード変更コマンドのデータフィールドで示された総量に達すると、ＳＩＭ１のモードはデータモードからＩＳＯモードに自動復帰する。【選択図】図１
2008033669.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）と、ディスパッチャ１００から処理を委任される複数のコマンドからなるコマンド群１０６を備え、このコマンド群１０６には、上位装置２から送信された平文を暗号化する暗号化コマンド１０１と、暗号化コマンド１０１で利用される暗号鍵１０４をＥＥＰＲＯＭ１６に書込む暗号鍵設定コマンド１０２が含まれる。
【００３４】
更に、暗号化コマンド１０１は、暗号演算回路１２を作動させ、暗号鍵１０４を用いて、所定のアルゴリズムで引渡されたデータを暗号化／複合する暗号モジュール１０７を有している。
【００３５】
ＳＩＭ１に備えられた伝送制御モジュール１０３とは、通信Ｉ／Ｆ回路１３を制御し、上位装置２と確実にデータを送受信するためのプログラムで、例えば、ＩＳＯ／ＩＥＣ７８１６で定義されている伝送プロトコル（Ｔ０，Ｔ１）や、ＵＳＢ規格の伝送プロトコルに従い、誤り訂正や、再送制御などを行なうプログラムである。
【００３６】
ディスパッチャ１００とは、本発明に係る制御手段を実現するプログラムであって、モード情報１０５を参照し、ＳＩＭ１の振舞いを変更する。モード情報１０５がＩＳＯモードを示すとき、ディスパッチャ１００は上位装置２から送信されたコマンドＡＰＤＵを解釈し、コマンド群１０６の中からコマンドＡＰＤＵを処理させるコマンドを選択し、選択したコマンドにコマンドＡＰＤＵの処理を委任する。
【００３７】
また、モード情報１０５がデータモードを示すとき、ディスパッチャ１００は上位装置２から送信されたコマンドデータを解釈することなく、暗号化コマンド１０１にコマンドデータの処理を委任する。
【００３８】
暗号鍵設定コマンド１０２とは、ＩＳＯ／ＩＥＣ７８１６規格で定義されているＷｒｉｔｅコマンドのように、上位装置２から受信したデータ（暗号鍵１０４）をＥＥＰＲＯＭ１６に書き込むプログラムである。ＳＩＭ１がこの暗号鍵設定コマンド１０２を備えることで、平文を暗号化する暗号鍵１０４を任意に変更することが可能である。
【００３９】
暗号化コマンド１０１とは、ＩＣチップ１０の暗号演算回路１２を操作し、ＳＩＭ１に記憶された暗号鍵１０４を用い、所定の暗号アルゴリズムに従い、上位装置２から伝送される平文を暗号化する処理モジュールを備えたコマンドで、ＳＩＭ１がデータモードへ遷移するトリガーとなるモード変更コマンドである。
【００４０】
図５は、ＳＩＭ１のモード遷移を説明する図である。上述しているように、ＳＩＭ１は、ＩＳＯモードとデータモードの２つのモードを有し、ＳＩＭ１が遷移しているモードは、モード情報１０５によって示される。
【００４１】
ＩＳＯモードでは、ＳＩＭ１と上位装置２間でＡＰＤＵが交換され、ＩＳＯモードで、暗号化コマンド１０１のコマンドＡＰＤＵを受信したとき、ＳＩＭ１のモードは、ＩＳＯモードからデータモードに遷移する。そして、データモードでは、ＡＰＤＵのデータ部のみ、すなわち、コマンドデータとレスポンスデータのみが交換される。
【００４２】
ＩＳＯモードからデータモードに遷移した後は、暗号化コマンド１０１のコマンドＡＰＤＵのデータフィールドに含まれる処理データ量の平文の暗号処理がすべて終了したときに、ＳＩＭ１のモードは、データモードからＩＳＯモードへと自動復帰する。
【００４３】
図６は、ＩＳＯモードにおけるＳＩＭ１の動作を説明する図である。ＩＳＯモードでは、コマンド群１０６に含まれるコマンドの実行が可能で、このＩＳＯモードでは、プロトコルバイトとチェックコードが付加されたコマンドＡＰＤＵが、上位装置２からＳＩＭ１に送信される。
【００４４】
ＳＩＭ１の伝送制御モジュール１０３は、コマンドＡＰＤＵを受信すると、コマンドＡＰＤＵに付加されたプロトコルバイトとチェックコードを確認し、データを正常に受信したと判断した場合、ディスパッチャ１００がコマンドＡＰＤＵのコマンドヘッダの内容を解釈し、コマンド群１０６に含まれ、受信したコマンドＡＰＤＵに対応するコマンドに処理を委任する。委任されたコマンドはコマンドＡＰＤＵで示される処理を実行した後、レスポンスＡＰＤＵを生成し、伝送制御モジュール１０３は生成したレスポンスＡＰＤＵを上位装置２に返信する。
【００４５】
図７は、データモードにおけるＳＩＭ１の動作を説明する図である。ＳＩＭ１が暗号化コマンド１０２のコマンドＡＰＤＵを受信することで、ＳＩＭ１のモードはＩＳＯモードからデータモードへ遷移し、上位装置２にＡＣＫ（acknowledgment）を返信する。
【００４６】
データモードでは、ＩＳＯモードとは異なり、上位装置２からＳＩＭ１には平文のみが送信される。上位装置２が平文をＳＩＭ１に送信するとき、平文には、コマンドＡＰＤＵと同様にプロトコルバイトとチェックコードが付加される。
【００４７】
ＳＩＭ１が平文を受信すると、伝送制御モジュール１０３は、平文に付加されたプロトコルバイトとチェックコードを確認し、正常にデータを受信したと判断した場合、受信した平文の暗号化を暗号化コマンド１０１に委任し、暗号化コマンド１０１は暗号モジュール１０７に平文を受渡し、平文を暗号化した暗号文を得る。
【００４８】
暗号化コマンド１０１が得た暗号文は、伝送制御モジュール１０３に受け渡され、しかるべきプロトコルバイトとチェックコードが付加されてＳＩＭ１から上位装置１に送信される。
【００４９】
また、暗号化コマンド１０１は、データモードにおいて暗号化した平文のデータ量をカウントし、カウントしたデータ量が、暗号化コマンド１０１のコマンドＡＰＤＵのデータフィールドで示される処理データ量に達したとき、モード情報１０５を操作し、ＳＩＭ１のモードをデータモードからＩＳＯモードへと遷移させると共に、暗号化コマンドのレスポンスＡＰＤＵを生成し、生成したレスポンスＡＰＤＵにプロトコルバイトとチェックコードを付加して上位装置２へ送信する。
【００５０】
従来のＩＣカードにおいては、データ容量の大きい平文を暗号化する際、一つのコマンドＡＰＤＵに含めることができるブロックサイズに平文を分割し、分割した平文ごとにコマンドＡＰＤＵを生成しなければならないが、本発明に係るＳＩＭ１を用いれば、分割した平文ごとにコマンドＡＰＤＵを生成する必要はなくなるため、上位装置２とＳＩＭ１間の通信量を減らす効果が得られるばかりか、ＳＩＭ１は、上位装置２から受信したコマンドＡＰＤＵを毎回解釈する必要がなくなるため、ＳＩＭ１の処理時間を短縮する効果が得られる。
【００５１】
更に、処理データ量の平文を処理した後は、ＳＩＭ１のモードはデータモードからＩＳＯモードに自動復帰するため、データモードに遷移した後であっても、上位装置２はＩＳＯ／ＩＥＣ７８１６などに準拠した手順に従い、ＩＣカードを利用したトランザクションを実行することができる。
【００５２】
図８は、暗号化コマンド１０１のコマンドＡＰＤＵの一例を示した図である。図８で示しているように、本実施の形態において、ＩＳＯモード時に上位装置からＳＩＭ１に送信されるコマンドＡＰＤＵの構造は、ＩＳＯ／ＩＥＣ７８１６規格のＣａｓｅ３のコマンド構造で、ＣＬＡ、ＩＮＳ、Ｐ１及びＰ２とから成るコマンドヘッダと、Ｌｃ及びデータフィールドとから成るボディとから構成される。
【００５３】
暗号化コマンド１０１のコマンドＡＰＤＵのヘッダーに含まれるＣＬＡとＩＮＳは、コマンドＡＰＤＵを識別するためのデータで、本実施の形態において、暗号化コマンド１０１のＣＬＡは「Ｄ０ｈ」で、ＩＮＳは「０４ｈ」である。
【００５４】
暗号化コマンド１０１のコマンドＡＰＤＵのヘッダーに含まれるＰ１およびＰ２は、暗号化コマンド１０１が実行されるときのパラメータで、本実施の形態においては、Ｐ１及びＰ２は用いられず、Ｐ１及びＰ２の値はそれぞれ「００ｈ」である。
【００５５】
暗号化コマンド１０１のボディのＬｃは、データフィールドに含まれるデータの長さを示し、データフィールドには、暗号化する平文の総量が記述される。なお、上述しているように、データモードでは、平文のみが送信され、コマンドヘッダのＣＬＡ、ＩＮＳ、Ｐ１およびＰ２は送信されない。
【００５６】
ＳＩＭ１がデータモードにいるときは、上位装置２からＳＩＭ１に平文のデータオブジェクトが送信され、このデータオブジェクトには平文のデータ長と平文とが含まれ、暗号化コマンド１０１は、データ長で示される長さの平文を暗号化する。
【００５７】
図９は、暗号化コマンド１０１のレスポンスＡＰＤＵの一例を示した図で、暗号化した平文の総データ量が暗号化コマンド１０１のデータフィールドで示される総量に達したときはレスポンスＡＰＤＵを生成する。
【００５８】
図９で示したように、暗号化コマンド１０１のレスポンスＡＰＤＵの構造は、ＩＳＯ／ＩＥＣ７８１６のレスポンスＡＰＤＵの構造に準拠し、ボディと、トレイラー（Trailer）である２バイトのＳＷとから構成される。
【００５９】
暗号化コマンド１０１のレスポンスＡＰＤＵのボディには、最後に受信する平文を暗号化した暗号文が含まれる。また、レスポンスＡＰＤＵの２バイトのＳＷでは、暗号化コマンド１０１の実行結果が示される。
【００６０】
ここから、暗号化コマンド１０１を実装したＳＩＭ１の動作フローについて説明する。図１０は、ＳＩＭ１の動作を示したフロー図である。図１０の最初のステップＳ１は、ＳＩＭ１が活性化されるステップである。このステップでは、ＳＩＭ１は、ＩＳＯ／ＩＥＣ７８１６の手順に従い活性化され、ＳＩＭ１の初期処理が実行される。
【００６１】
この初期処理によって、ＳＩＭ１のモード情報１０５の値がＩＳＯモードを示す値に設定されることで、ＳＩＭ１のモードはＩＳＯモードになる。
【００６２】
次のステップＳ２は、ＳＩＭ１が非活性化されるまで繰り返し実行されるループ処理である。
【００６３】
次のステップＳ３は、ＳＩＭ１が上位装置２からコマンドＡＰＤＵを受信するステップである。ＳＩＭ１の伝送制御モジュール１０３は、上位装置２から、プロトコルバイトとチェックコードが付加されたコマンドＡＰＤＵを受信すると、コマンドＡＰＤＵに付加されたプロトコルバイトとチェックコードを確認し、データを正常に受信したと判断した場合、コマンドＡＰＤＵのみをディスパッチャ１００に受け渡す。
【００６４】
次のステップＳ４は、ＳＩＭ１が上位装置から受信したコマンドＡＰＤＵを処理するコマンドを特定するステップである。このステップでは、ＳＩＭ１のモード情報１０５の値は、ＩＳＯモードを示す値に設定されているため、ＳＩＭ１のディスパッチャ１００は、コマンドＡＰＤＵのＣＬＡ，ＩＮＳを解析することで、ＳＩＭ１が有するコマンド群１０６の中から、ＳＩＭ１は実行するコマンドを特定し、Ｐ１、Ｐ２およびデータフィールドのデータを引渡すなどして、コマンドＡＰＤＵの処理を特定したコマンドに委任する。
【００６５】
なお、このステップで、特定したコマンドが暗号化コマンド１０１の場合はステップＳ１０に進み、他のコマンドの場合はステップＳ５に進む。
【００６６】
ステップＳ５において、暗号化コマンド１０１以外のコマンド（例えば、暗号鍵設定コマンド１０２）を処理され、レスポンスＡＰＤＵが生成される。そして、ステップＳ６では、伝送制御モジュール１０３は、生成したレスポンスＡＰＤＵにプロトコルバイトとチェックコードを付加し上位装置２に送信する。
【００６７】
図１１は、図１０のステップＳ１０で実行され、暗号化コマンド１０１を処理する手順を示したフロー図である。暗号化コマンド１０１を処理する手順の最初のステップＳ１１は、ＳＩＭ１のモードを、ＩＳＯモードからデータモードへ遷移させるステップである。
【００６８】
このステップＳ１１では、ディスパッチャ１００は、図１０のステップＳ３で受信したコマンドＡＰＤＵが、暗号化コマンド１０１のコマンドＡＰＤＵであると判断した場合、暗号化コマンド１０１を呼び出す。暗号化コマンド１０１が読み出されると、暗号化コマンド１０１は、ＩＳＯモードを示す値からデータモードを示す値に、モード情報１０５の値を変更することで、ＳＩＭ１のモードを、ＩＳＯモードからデータモードへ遷移させる。
【００６９】
次のステップＳ１２は、暗号化した平文のデータ量を示すカウンタを初期化するステップである。このステップでは、ＳＩＭ１の暗号化コマンド１０１は、図１０のステップＳ３で受信した暗号化コマンド１０１のコマンドＡＰＤＵに含まれる総量を、ＣＰＵ１１のレジスタまたはＲＡＭ１４にコピーしておく。
【００７０】
次のステップＳ１３は、暗号化コマンド１０１のコマンドＡＰＤＵを正常に受信したことを示すＡＣＫを返信するステップである。なお、このＡＣＫにはプロトコルバイトやチェックコードは伝送制御モジュール１０３によって付加される。なお、ＡＣＫとレスポンスＡＰＤＵに含まれるＳＷを区別できるように、ＡＣＫの値は、ＳＷで使用される以外の値であることが望ましい。
【００７１】
次のステップＳ１４は、上位装置２から平文を受信するステップである。このステップで受信する平文には、プロトコルバイトとチェックコードが付加される。ＳＩＭ１が平文を受信すると、伝送制御モジュール１０３は、コマンドＡＰＤＵに付加されたプロトコルバイトとチェックコードを確認する。
【００７２】
次のステップＳ１５は、上位装置２から送信された平文を暗号化した暗号文を生成するステップである。このステップでは、暗号化コマンド１０１は、暗号演算回路１２を作動させ、暗号鍵１０４を用いて所定の暗号アルゴリズムに従い、ディスパッチャ１００から引渡された平文を暗号化する。
【００７３】
次のステップＳ１６は、暗号化した平文のデータ量を示すカウンタを更新するステップである。このステップでは、暗号化コマンド１０１は、平文のデータオブジェクトに含まれるデータ長をカウンタに加算することで、カウンタを更新する。
【００７４】
次のステップＳ１７は、ステップＳ３で受信した暗号化コマンド１０１のコマンドＰＡＤＵのデータフィールドに含まれていた総量とカウンタの値を比較し、総量の平文を暗号化したか確認するステップである。
【００７５】
ステップＳ１７で、総量の平文を暗号化していない場合はステップＳ１８に進み、暗号化した場合は正常終了処理（ステップＳ２０）に進む。
【００７６】
総量の平文を暗号化していない場合に実行されるステップＳ１８では、平文を暗号化した暗号文のみが上位装置２に送信される。このステップでは、暗号化コマンド１０１は、ステップＳ１５で生成した暗号文を伝送制御モジュール１０３に引渡し、伝送制御モジュール１０３は、暗号文に、プロトコルバイトとチェックコードを付加して上位装置２に送信し、送信後にＳＩＭ１は上位装置２からデータを受信する状態になる。なお、ステップＳ１８を実行した後は、ステップＳ１４に戻る。
【００７７】
図１２は、正常終了処理に手順を示したフロー図である。この手順の最初のステップＳ２１は、正常終了を示すＳＷと、最後に暗号化した平文の暗号文であるレスポンスデータとからなるレスポンスＡＰＤＵを生成し、更に、データモードを示す値からＩＳＯモードを示す値にモード情報１０５の値を変更する。
【００７８】
ステップＳ２１の後に実行されるステップＳ２２は、ステップＳ２１で生成したレスポンスＡＰＤＵを上位装置２に送信するステップである。このステップでは、暗号化コマンド１０１は、ステップＳ２１で生成したレスポンスＡＰＤＵを伝送制御モジュール１０３に引渡し、伝送制御モジュール１０３は、プロトコルバイトとチェックコードをレスポンスＡＰＤＵに付加し、レスポンスＡＰＤＵを上位装置２に送信する。
【図面の簡単な説明】
【００７９】
【図１】ＳＩＭの振舞いを説明する図。
【図２】ＳＩＭの外観図。
【図３】ＩＣチップのハードウェア構造図。
【図４】ＳＩＭのソフトウェア構成図。
【図５】ＳＩＭのモード遷移を説明する図。
【図６】ＩＳＯモードにおけるＳＩＭの動作を説明する図。
【図７】データモードにおけるＳＩＭの動作を説明する図。
【図８】暗号化コマンドのコマンドＡＰＤＵの一例を示した図。
【図９】暗号化コマンドのレスポンスＡＰＤＵの一例を示した図。
【図１０】ＳＩＭの動作を示したフロー図。
【図１１】暗号化コマンドを処理する手順を示したフロー図。
【図１２】正常終了時の手順を示したフロー図。
【符号の説明】
【００８０】
１  ＳＩＭ
１００  ディスパッチ
１０１  暗号鍵設定コマンド
１０２  暗号化コマンド
１０３  伝送制御モジュール
１０４  暗号鍵
１０５  モード情報
２  上位装置
【図１】
2008033669.tif 000003
【図２】
2008033669.tif 000004
【図３】
2008033669.tif 000005
【図４】
2008033669.tif 000006
【図５】
2008033669.tif 000007
【図６】
2008033669.tif 000008
【図７】
2008033669.tif 000009
【図８】
2008033669.tif 000010
【図９】
2008033669.tif 000011
【図１０】
2008033669.tif 000012
【図１１】
2008033669.tif 000013
【図１２】
2008033669.tif 000014