(57)【要約】【課題】上位装置とＳＩＭ間で繰り返し伝送されるパターンを省略することができるＩＣカードを提供する。【解決手段】本発明に係るＳＩＭ１は、上位装置２と通信するモードとして、ＡＰＤＵを交換するＩＳＯモードと、ＡＰＤＵのデータ部のみを交換するデータモードを備え、ＩＳＯモードからデータモードへ遷移するトリガーとなるモード変更コマンドを備える。データモードでは、上位装置２とＳＩＭ１間ではＡＰＤＵのデータ部が交換され、上位装置２からＳＩＭ１には平文のみが送信され、ＳＩＭ１から上位装置２には暗号文のみが送信される。ＳＩＭ１がデータモードを有することで、上位装置２とＳＩＭ１間の通信量を減らす効果が得られるばかりか、ＳＩＭ１は、上位装置２から受信したコマンドＡＰＤＵを毎回解釈する必要がなくなるため、ＳＩＭ１の処理時間を短縮する効果が得られる。【選択図】図1
2008004021.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）である２バイトのＳＷとから構成される。
【００５８】
暗号化コマンド１０１のレスポンスＡＰＤＵのボディには、最後に受信する平文を暗号化した暗号文が含まれる。また、レスポンスＡＰＤＵの２バイトのＳＷでは、暗号化コマンド１０１の実行結果（成功、失敗）が示される。
【００５９】
ここから、暗号化コマンド１０１を実装したＳＩＭ１の動作フローについて説明する。図１０は、ＳＩＭ１の動作を示したフロー図である。図１０の最初のステップＳ１は、ＳＩＭ１が活性化されるステップである。このステップでは、ＳＩＭ１は、ＩＳＯ／ＩＥＣ７８１６の手順に従い活性化され、ＳＩＭ１の初期処理が実行される。
【００６０】
この初期処理によって、ＳＩＭ１のモード情報１０５の値がＩＳＯモードを示す値に設定されることで、ＳＩＭ１のモードはＩＳＯモードになる。
【００６１】
次のステップＳ２は、ＳＩＭ１が非活性化されるまで繰り返し実行されるループ処理である。
【００６２】
次のステップＳ３は、ＳＩＭ１が上位装置２からコマンドＡＰＤＵを受信するステップである。ＳＩＭ１の伝送制御モジュール１０３は、上位装置２から、プロトコルバイトとチェックコードが付加されたコマンドＡＰＤＵを受信すると、コマンドＡＰＤＵに付加されたプロトコルバイトとチェックコードを確認し、データを正常に受信したと判断した場合、コマンドＡＰＤＵのみをディスパッチャ１００に受け渡す。
【００６３】
次のステップＳ４は、ＳＩＭ１が上位装置から受信したコマンドＡＰＤＵを処理するコマンドを特定するステップである。このステップでは、ＳＩＭ１のモード情報１０５の値は、ＩＳＯモードを示す値に設定されているため、ＳＩＭ１のディスパッチャ１００は、コマンドＡＰＤＵのＣＬＡ，ＩＮＳを解析することで、ＳＩＭ１が有するコマンド群１０６の中から、ＳＩＭ１は実行するコマンドを特定し、Ｐ１、Ｐ２およびデータフィールドのデータを引渡すなどして、コマンドＡＰＤＵの処理を特定したコマンドに委任する。
【００６４】
なお、このステップで、特定したコマンドが暗号化コマンド１０１の場合はステップＳ１０に進み、他のコマンドの場合はステップＳ５に進む。
【００６５】
ステップＳ５において、暗号化コマンド１０１以外のコマンド（例えば、暗号鍵設定コマンド１０２）を処理され、レスポンスＡＰＤＵが生成される。そして、ステップＳ６では、伝送制御モジュール１０３は、生成したレスポンスＡＰＤＵにプロトコルバイトとチェックコードを付加し上位装置２に送信する。
【００６６】
図１１は、図１０のステップＳ１０で実行され、暗号化コマンド１０１を処理する手順を示したフロー図である。暗号化コマンド１０１を処理する手順の最初のステップＳ１１は、ＳＩＭ１のモードを、ＩＳＯモードからデータモードへ遷移させるステップである。
【００６７】
このステップＳ１１では、ディスパッチャ１００は、図１０のステップＳ３で受信したコマンドＡＰＤＵが、暗号化コマンド１０１のコマンドＡＰＤＵであると判断した場合、暗号化コマンド１０１を呼び出す。暗号化コマンド１０１が読み出されると、暗号化コマンド１０１は、ＩＳＯモードを示す値からデータモードを示す値に、モード情報１０５の値を変更することで、ＳＩＭ１のモードを、ＩＳＯモードからデータモードへ遷移させる。
【００６８】
次のステップＳ１２は、上位装置から送信される平文を暗号化する回数を示すカウンタを初期化するステップである。このステップでは、ＳＩＭ１のディスパッチャ１００は、図１０のステップＳ３で受信した暗号化コマンド１０１のコマンドＡＰＤＵに含まれるＰ１の値を、ＣＰＵ１１のレジスタまたはＲＡＭ１４にコピーすることで、暗号化する回数を示すカウンタを初期化する。
【００６９】
次のステップＳ１３は、上位装置２から送信された平文を暗号化した暗号文を生成するステップである。このステップでは、ディスパッチャ１００は、上位装置２から受信した平文と、そのデータ長（例えば、Ｐ２の値）を暗号化コマンド１０１に引渡し、暗号化コマンド１０１は、暗号演算回路１２を作動させ、暗号鍵１０４を用い、所定の暗号アルゴリズムに従い平文を暗号化する。
【００７０】
なお、このステップで暗号化する最初の平文は、図１０のステップＳ３で受信したコマンドＡＰＤＵのデータフィールドに含まれる平文で、２回目以降に暗号化する平文は、後述するステップＳ１７で受信する平文である。
【００７１】
次のステップＳ１４は、平文を暗号化した回数を示カウンタの値を一つデクリメントするステップである。このステップでは、暗号化コマンド１０１は、ＣＰＵ１１のレジスタまたはＲＡＭ１４に生成されたカウンタの値を一つだけデクリメントする。
【００７２】
次のステップＳ１５は、カウンターの値を参照し、図１０のステップＳ３で受信した暗号化コマンド１０１のコマンドＡＰＤＵのＰ１で示される回数だけ、平文を暗号化したか確認するステップである。例えば、暗号化コマンド１０１は、ＣＰＵのレジスタまたはＲＡＭに生成されたカウンタの値が「０」であるか確認することで、暗号化コマンド１０１のコマンドＡＰＤＵのＰ１で示される回数だけ、平文を暗号化したかが確認される。
【００７３】
ステップＳ１５で、暗号化コマンド１０１のコマンドＡＰＤＵのＰ１で示される回数だけ、平文を暗号化していない場合はステップＳ１６に進み、暗号化した場合はステップＳ１８に進む。
【００７４】
暗号化コマンド１０１のコマンドＡＰＤＵのＰ１で示される回数だけ、平文を暗号化していない場合に実行されるステップＳ１６では、平文を暗号化した暗号文のみが上位装置２に送信される。このステップでは、暗号化コマンド１０１は、ステップＳ１２で生成した暗号文を伝送制御モジュール１０３に引渡し、伝送制御モジュール１０３は、暗号文に、プロトコルバイトとチェックコードを付加して上位装置２に送信し、送信後にＳＩＭ１は上位装置２からデータを受信する状態になる。
【００７５】
ステップＳ１６の後に実行されるステップＳ１７は、上位装置２から平文を受信するステップである。このステップＳ１７で、上位装置２からＳＩＭ１に送信される平文には、プロトコルバイトとチェックコードが付加される。ＳＩＭ１が平文を受信すると、伝送制御モジュール１０３は、コマンドＡＰＤＵに付加されたプロトコルバイトとチェックコードを確認し、データを正常に受信したと判断し、モード情報１０５の値を確認する。
【００７６】
ステップＳ１７では、モード情報１０５はデータモードを示す値に設定されているため、ディスパッチャ１００は、コマンドＡＰＤＵを解析することなく、ステップＳ１３に進み、ステップＳ１７で受信した平文の暗号化を暗号化コマンド１０１に委任する。
【００７７】
なお、ステップＳ１５において、暗号化コマンド１０１のコマンドＡＰＤＵのＰ１で示される回数だけ、平文を暗号化した場合は、ステップＳ１８において、暗号化コマンド１０１は、暗号化コマンド１０１の実行結果を示すＳＷを暗号文に付加することで、暗号化コマンド１０１のレスポンスＡＰＤＵを生成し、更に、データモードを示す値からＩＳＯモードを示す値に、モード情報１０５の値を変更することで、ＳＩＭ１のモードを、データモードからＩＳＯモードへ遷移させる。
【００７８】
ステップＳ１８の後に実行されるステップＳ１９は、ステップＳ１８で生成したレスポンスＡＰＤＵを上位装置２に送信するステップである。このステップでは、暗号化コマンド１０１は、ステップＳ１８で生成したレスポンスＡＰＤＵを伝送制御モジュール１０３に引渡し、伝送制御モジュール１０３は、プロトコルバイトとチェックコードをレスポンスＡＰＤＵに付加し、レスポンスＡＰＤＵを上位装置２に送信する。
【００７９】
ステップＳ１９で、暗号化コマンド１０５のレスポンスＡＰＤＵを送信することで、図１０のステップＳ３で受信した暗号化コマンド１０１のコマンドＡＰＤＵの処理が終了する。
【００８０】
本発明に係るＩＣカードであるＳＩＭ１を組み込み利用する上位装置の一例として、ＳＩＭ１を組み込み利用する監視カメラ３を、図１２で図示した。図１２において、本発明係るＳＩＭ１は、監視カメラ３が撮像した動画データの漏洩と動画データの改ざんとを防止するために、動画データを暗号化する暗号モジュールとして利用され、監視カメラ３は、ＳＩＭ１を用いて、一定期間に撮像した動画データを暗号化し、暗号化した動画データをメモリカード３ａに記憶する。
【図面の簡単な説明】
【００８１】
【図１】ＳＩＭの振舞いを説明する図。
【図２】ＳＩＭの外観図。
【図３】ＩＣチップのハードウェア構造図。
【図４】ＳＩＭのソフトウェア構成図。
【図５】ＳＩＭのモード遷移を説明する図。
【図６】ＩＳＯモードにおけるＳＩＭの動作を説明する図。
【図７】データモードにおけるＳＩＭの動作を説明する図。
【図８】暗号化コマンドのコマンドＡＰＤＵの一例を示した図。
【図９】暗号化コマンドのレスポンスＡＰＤＵの一例を示した図。
【図１０】ＳＩＭの動作を示したフロー図。
【図１１】暗号化コマンドを処理する手順を示したフロー図。
【図１２】ＳＩＭを組み込み利用する監視カメラを示した図。
【符号の説明】
【００８２】
１  ＳＩＭ
１００  ディスパッチ
１０１  暗号鍵設定コマンド
１０２  暗号化コマンド
１０３  伝送制御モジュール
１０４  暗号鍵
１０５  モード情報
２  上位装置
【図１】
2008004021.tif 000003
【図２】
2008004021.tif 000004
【図３】
2008004021.tif 000005
【図４】
2008004021.tif 000006
【図５】
2008004021.tif 000007
【図６】
2008004021.tif 000008
【図７】
2008004021.tif 000009
【図８】
2008004021.tif 000010
【図９】
2008004021.tif 000011
【図１０】
2008004021.tif 000012
【図１１】
2008004021.tif 000013
【図１２】
2008004021.tif 000014