(57)【要約】【課題】ICカードまたはリーダライタとのセキュアな近接通信を効率よく行うことができるようにする。【解決手段】従来のICカードシステムにおいては、例えば、SAMで処理されたコマンドパケットは、一度ホストコントローラに戻されて、ICカードに送信されていたが、本発明のICカードシステムにおいては、図８に示したように、SAM７２で処理されたコマンドパケットを、ホストコントローラ６１に戻すことなく、RF部７３を介してICカード５２に直接送信することができる。本発明は、ICカードまたはリーダライタに適用することができる。【選択図】図８
2008033661.tif 000002
【特許請求の範囲】
【請求項１】
ICカードシステムにおいて、セキュアな近接通信を行う通信装置を構成する処理装置において、
制御装置から送信されてきたパケットデータを受信する受信手段と、
前記受信手段により受信されたパケットデータから、送信先を検出する第１の検出手段と、
前記受信手段により受信されたパケットデータから、指示されている処理を検出する第２の検出手段と、
前記第２の検出手段により検出された前記処理を実行する実行手段と、
前記第１の検出手段により検出された前記送信先に、前記実行手段により実行された処理結果を送信する送信手段と
を備える処理装置。
【請求項２】
前記処理装置は、セキュアな近接通信において必要な鍵を管理する第１の装置、前記無線近接通信のための無線信号を出力する第２の装置、またはセキュアな無線近接通信を制御する第３の装置である
請求項１に記載の処理装置。
【請求項３】
前記第１の装置は、少なくとも前記第２の装置および前記第３の装置の両方に接続され、両者とデータの授受を行うことができる
請求項２に記載の処理装置。
【請求項４】
前記パケットデータには、送受信される際に処理装置のIDが順に配置された経路情報が含まれている
請求項１に記載の処理装置。
【請求項５】
前記パケットデータには、指示する処理を示すコマンドコードが１以上含まれている
請求項１に記載の処理装置。
【請求項６】
前記送信手段は、前記第２の検出手段により指示されている処理が検出されないとき、前記実行手段により処理が施されていないパケットデータを、前記第１の検出手段により検出された前記送信先に送信する
請求項１に記載の処理装置。
【請求項７】
前記送信手段は、前記第１の検出手段により送信先が検出されないとき、パケットデータの送信を行わない
請求項１に記載の処理装置。
【請求項８】
ICカードシステムにおいて、セキュアな近接通信を行う通信装置を構成する処理装置の処理方法において、
制御装置から送信されてきたパケットデータを受信する受信ステップと、
前記受信ステップの処理で受信されたパケットデータから、送信先を検出する第１の検出ステップと、
前記受信ステップの処理で受信されたパケットデータから、指示されている処理を検出する第２の検出ステップと、
前記第２の検出ステップの処理で検出された前記処理を実行する実行ステップと、
前記第１の検出ステップの処理で検出された前記送信先に、前記実行ステップの処理で実行された処理結果を送信する送信ステップと
を含む処理方法。
【請求項９】
ICカードシステムにおいて、セキュアな近接通信を実行するための所定の処理をコンピュータに実行させるプログラムにおいて、
制御装置から送信されてきたパケットデータを受信する受信ステップと、
前記受信ステップの処理で受信されたパケットデータから、送信先を検出する第１の検出ステップと、
前記受信ステップの処理で受信されたパケットデータから、指示されている処理を検出する第２の検出ステップと、
前記第２の検出ステップの処理で検出された前記処理を実行する実行ステップと、
前記第１の検出ステップの処理で検出された前記送信先に、前記実行ステップの処理で実行された処理結果を送信する送信ステップと
を含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は処理装置および方法、並びにプログラムに関し、特に、セキュアな近接通信を効率的に行うことができるようにした処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
無線通信の１つである近接通信を行うことができるIC(Integrated Circuit)カードシステムが、その利便性から急速に普及してきている。
【０００３】
このICカードシステムは、例えば、ICカードとリーダライタ(Reader/Writer)とから構成され、リーダライタが電磁波(RF(Radio Frequency)を発生することにより、RF(Radio Frequency)フィールド（磁界）が形成される。そして、ICカードが、リーダライタに近づけられると、ICカードに、電磁誘導によって電源が供給され、ICカードとリーダライタとの間で、セキュアなデータ伝送が可能となる。
【０００４】
図１は、従来のICカードシステムの構成例を示している。
【０００５】
携帯端末１は、リーダライタ機能を有する携帯電話機等の携帯端末であり、携帯端末１における主たる機能（例えば、携帯端末１が携帯電話機である場合における携帯電話機能等）を実行するとともに、ICカード２と、近接無線通信を行い、例えばICカード２に記憶されているデータを書き換えたりすることができる。
【０００６】
携帯端末１は、ホストコントローラ１１およびリーダライタ部１２を有して構成されており、ホストコントローラ１１は、携帯端末１の図示せぬ各部を制御して、携帯端末１における主たる機能を実行させる。ホストコントローラ１１はまた、リーダライタ部１２を制御して、リーダライタとしての機能を実行させる。
【０００７】
リーダライタ部１２は、リーダライタ機能として、ホストコントローラ１１から送信されてきたデータを、ICカード２に送信したり、ICカード２から送信されてきたデータを受信し、ホストコントローラ１１に供給する。リーダライタ部１２はまた、ホストコントローラ１１からの要求に応じて、データにICカード２と共通する鍵で暗号化を施したり、データに施されている暗号を、ICカード２と共通する鍵を用いて解除する。
【０００８】
リーダライタ部１２は、リーダライタコントローラ２１、SAM２２、およびRF部２３を有して構成されている。
【０００９】
リーダライタコントローラ２１は、ホストコントローラ１１と通信し、ホストコントローラ１１から入力されたデータを、SAM２２またはRF部２３に出力したり、SAM２２またはRF部２３からのデータをホストコントローラ１１に出力する。
【００１０】
SAM(Secure Application Module)２２は、リーダライタコントローラ２１に接続されており、リーダライタコントローラ２１からのデータを、例えばマンチェスタ符号に符号化したり、データに施されたその符号を復号する。SAM２２はまた、リーダライタコントローラ２１からのデータを、ICカード２と共通の鍵で暗号化したり、データに施されたその暗号を解除する。
【００１１】
RF部２３は、リーダライタコントローラ２１と接続されており、発生した電磁波を利用して、リーダライタコントローラ２１からのデータをICカード２に送信したり、ICカード２から送信されてきたデータを、リーダライタコントローラ２１に出力し、ICカード２との近接通信を実現する。
【００１２】
なお例えばRF部２３からのICカード２への送信は、リーダライタコントローラ２１から供給されたデータのマンチェスタ符号によってキャリアがASK（Amplitude Shift Keying）変調され、その結果得られた信号（電磁波）が出力されることによって行われる。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ところで、従来のICカードシステムにおけるリーダライタ部１２において、SAM２２は、図１に示したようにリーダライタコントローラ２１にのみ接続されているため、例えばSAM２２で処理されたデータをICカード２に送信する場合の通信処理が煩雑になる。
【００１４】
例えば所定のコマンドを含むデータ（リーダライタとICカードとの間では、パケット（フレーム）を呼ばれる単位で、データがやり取りされるので、以下において、コマンドパケットと称する）をICカード２に送信する場合、ホストコントローラ１１は、そのコマンドパケットを、図２の番号１が付された矢印が示すように、リーダライタコントローラ２１を介して、SAM２２に送信させ、そこで暗号化や符号化を行わせる。SAM２２で処理されたコマンドパケットは、図２の番号２が付された矢印が示すように、リーダライタコントローラ２１を介して、ホストコントローラ１１に戻される。
【００１５】
そしてホストコントローラ１１は、SAM２２で処理されたコマンドパケットを、図２の番号３が付された矢印が示すように、リーダライタコントローラ２１、およびRF部２３を介して、ICカード２に送信する。
【００１６】
ICカード２からは、所定の処理（例えば、読み出し処理または書き込み処理）の結果形成されたコマンドパケットが、図２の番号４が付された矢印が示すように、RF部２３およびリーダライタコントローラ２１を介してホストコントローラ１１に送信される。
【００１７】
このように従来のICカードシステムのリーダライタ部１２においては、SAM２２がリーダライタコントローラ２１にのみ接続されているので、SAM２２で処理されたデータを、一度ホストコントローラ１１に戻す必要があり、その結果通信シーケンスが冗長となり、通信処理を効率よく行うことができなかった。
【００１８】
なお図１および図２では、リーダライタ部１２を構成するSAM２２を例として説明したが、ICカード２も、SAMおよびRF部を含んで構成されるので、ICカード２を構成するSAMにおいても同様な問題があった。
【００１９】
本発明はこのような状況に鑑みてなされたものであり、SAMを介する通信を効率よく行うことができるようにするものである。
【課題を解決するための手段】
【００２０】
本発明の一側面の処理装置は、ICカードシステムにおいて、セキュアな近接通信を行う通信装置を構成する処理装置において、制御装置から送信されてきたパケットデータを受信する受信手段と、前記受信手段により受信されたパケットデータから、送信先を検出する第１の検出手段と、前記受信手段により受信されたパケットデータから、指示されている処理を検出する第２の検出手段と、前記第２の検出手段により検出された前記処理を実行する実行手段と、前記第１の検出手段により検出された前記送信先に、前記実行手段により実行された処理結果を送信する送信手段とを備える。
【００２１】
前記処理装置は、セキュアな近接通信において必要な鍵を管理する第１の装置、前記無線近接通信のための無線信号を出力する第２の装置、またはセキュアな無線近接通信を制御する第３の装置であるようにすることができる。
【００２２】
前記第１の装置は、少なくとも前記第２の装置および前記第３の装置の両方に接続され、両者とデータの授受を行うことができる。
【００２３】
前記パケットデータには、送受信される際に処理装置のIDが順に配置された経路情報が含まれているようにすることができる。
【００２４】
前記パケットデータには、指示する処理を示すコマンドコードが１以上含まれているようにすることができる。
【００２５】
前記送信手段は、前記第２の検出手段により指示されている処理が検出されないとき、前記実行手段により処理が施されていないパケットデータを、前記第１の検出手段により検出された前記送信先に送信することができる。
【００２６】
前記送信手段は、前記第１の検出手段により送信先が検出されないとき、パケットデータの送信を行わないようにすることができる。
【００２７】
本発明の一側面の処理方法またはプログラムは、ICカードシステムにおいて、セキュアな近接通信を行う通信装置を構成する処理装置の処理方法において、またはICカードシステムにおいて、セキュアな近接通信を実行するための所定の処理をコンピュータに実行させるプログラムにおいて、制御装置から送信されてきたパケットデータを受信する受信ステップと、前記受信ステップの処理で受信されたパケットデータから、送信先を検出する第１の検出ステップと、前記受信ステップの処理で受信されたパケットデータから、指示されている処理を検出する第２の検出ステップと、前記第２の検出ステップの処理で検出された前記処理を実行する実行ステップと、前記第１の検出ステップの処理で検出された前記送信先に、前記実行ステップの処理で実行された処理結果を送信する送信ステップとを含む。
【００２８】
本発明の一側面の処理装置、処理方法、またはプログラムにおいては、制御装置から送信されてきたパケットデータが受信され、受信されたパケットデータから、送信先が検出され、受信されたパケットデータから、指示されている処理が検出され、検出された前記処理が実行され、検出された前記送信先に、実行された処理結果が送信される。
【発明の効果】
【００２９】
本発明によれば、ICカードまたはリーダライタにおけるセキュアな近接通信を効率よく行うことができる。
【発明を実施するための最良の形態】
【００３０】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３１】
本発明の一側面の処理装置は、
ICカードシステムにおいて、セキュアな近接通信を行う通信装置を構成する処理装置（例えば、図３のリーダライタ部６２のリーダライタコントローラ７１、SAM７２、RF部７３、ICカード５２のSAM、RF部）において、
制御装置（例えば、図３のホストコントローラ６１）から送信されてきたパケットデータを受信する受信手段（例えば、図４のCPU８１および通信部８５）と、
前記受信手段により受信されたパケットデータから、送信先を検出する第１の検出手段（例えば、図１２のステップＳ２２の処理を行う図４のCPU８１）と、
前記受信手段により受信されたパケットデータから、指示されている処理を検出する第２の検出手段（例えば、図１２のステップＳ２４の処理を行う図４のCPU８１）と、
前記第２の検出手段により検出された前記処理を実行する実行手段（例えば、図１２のステップＳ２５の処理を行う図４のCPU８１）と、
前記第１の検出手段により検出された前記送信先に、前記実行手段により実行された処理結果を送信する送信手段（例えば、図１２のステップＳ２６の処理を行う図４のCPU８１および通信部８５）と
を備える。
【００３２】
前記処理装置は、セキュアな近接通信において必要な鍵を管理する第１の装置（例えば、図３のSAM７２）、前記無線近接通信のための無線信号を出力する第２の装置（例えば、図３のRF部７３）、またはセキュアな無線近接通信を制御する第３の装置（例えば、図３のリーダライタコントローラ７１）であるようにすることができる。
【００３３】
前記第１の装置は、少なくとも前記第２の装置および前記第３の装置の両方に接続され、両者とデータの授受を行うことができる。
【００３４】
前記パケットデータには、送受信される際に処理装置のIDが順に配置された経路情報（例えば、図９の経路情報５１３）が含まれているようにすることができる。
【００３５】
前記パケットデータには、指示する処理を示すコマンドコードが１以上含まれているようにすることができる（例えば、図７のコマンドコード５１５）。
【００３６】
前記送信手段は、前記第２の検出手段により指示されている処理が検出されないとき、前記実行手段により処理が施されていないパケットデータを、前記第１の検出手段により検出された前記送信先に送信することができる（例えば、図１２のステップＳ２４、ステップＳ２６）。
【００３７】
前記送信手段は、前記第１の検出手段により送信先が検出されないとき、パケットデータの送信を行わないことができる（例えば、図１２のステップＳ２３）。
【００３８】
本発明の一側面の処理方法またはプログラムは、ICカードシステムにおいて、セキュアな近接通信を行う通信装置を構成する処理装置の処理方法において、またはICカードシステムにおいて、セキュアな近接通信を実行するための所定の処理をコンピュータに実行させるプログラムにおいて、
制御装置から送信されてきたパケットデータを受信する受信ステップ（例えば、図１１のステップＳ１５）と、
前記受信ステップの処理で受信されたパケットデータから、送信先を検出する第１の検出ステップ（例えば、図１２のステップＳ２２）と、
前記受信ステップの処理で受信されたパケットデータから、指示されている処理を検出する第２の検出ステップ（例えば、図１２のステップＳ２４）と、
前記第２の検出ステップの処理で検出された前記処理を実行する実行ステップ（例えば、図１２のステップＳ２５）と、
前記第１の検出ステップの処理で検出された前記送信先に、前記実行ステップの処理で実行された処理結果を送信する送信ステップ（例えば、ステップＳ２６）と
を含む。
【００３９】
図３は、本発明を適用したICカードシステムの構成例を示している。
【００４０】
携帯端末５１は、リーダライタ機能を有する携帯電話機等の携帯端末であり、携帯端末５１における主たる機能（例えば、携帯端末５１が携帯電話機である場合における携帯電話機能等）を実行するとともに、ICカード５２と、近接無線通信を行い、例えばICカード５２に記憶されているデータを書き換えたりすることができる。
【００４１】
携帯端末５１は、ホストコントローラ６１およびリーダライタ部６２を有して構成されており、ホストコントローラ６１は、携帯端末５１の図示せぬ各部を制御して、携帯端末５１における主たる機能を実行させる。ホストコントローラ６１はまた、リーダライタ部６２を制御して、リーダライタとしての機能を実行させる。
【００４２】
リーダライタ部６２は、リーダライタ機能として、ホストコントローラ６１から送信されてきたデータを、ICカード５２に送信したり、ICカード５２から送信されてきたデータを受信し、ホストコントローラ６１に供給する。リーダライタ部６２はまた、ホストコントローラ６１からの要求に応じて、データにICカード５２と共通する鍵で暗号化を施したり、データに施されている暗号をその鍵を用いて解除する。
【００４３】
リーダライタ部６２は、リーダライタコントローラ７１、SAM７２、およびRF部７３を有して構成されている。
【００４４】
リーダライタコントローラ７１は、ホストコントローラ６１と通信し、ホストコントローラ６１から送信されてきたデータを、SAM７２またはRF部７３に出力したり、SAM７２またはRF部７３からのデータをホストコントローラ６１に出力する。
【００４５】
SAM７２は、この例の場合、SIM（Subscriber Identity Module）形状を有し、リーダライタ部６２に着脱可能となっており、リーダライタ部６２に装着されると、リーダライタコントローラ７１およびRF部７３の両方に接続されるようになされている。
【００４６】
リーダライタ部６２に装着されたSAM７２は、リーダライタコントローラ７１またはRF部７３からのデータを、例えばマンチェスタ符号に符号化したり、データに施されたその符号を復号する。SAM７２はまた、リーダライタコントローラ７１またはRF部７３からのデータを、ICカード５２と共通の鍵で暗号化したり、データに施されているその暗号を解除する。
【００４７】
RF部７３は、リーダライタコントローラ７１およびSAM７２と接続可能とされており、発生した電磁波を利用して、リーダライタコントローラ７１またはSAM７２からのデータをICカード５２に送信したり、ICカード５２から送信されてきたデータを、リーダライタコントローラ７１またはSAM７２に出力し、ICカード５２との近接通信を実現する。
【００４８】
この、ICカードシステムを構成するICカード５２、携帯端末５１のリーダライタ部６２のリーダライタコントローラ７１、SAM７２、およびRF部７３、並びにホストコントローラ６１には、図３中かっこ書きに示される、“０１”、“０２”、“ＦＦ”、“０３”、および“０４”の８ビットの、システムにおいてユニークなＩＤ（identifier）が割り付けらており、各部は、自分のIDおよび、自分と接続されている機器のIDを記憶している。
【００４９】
図４は、SAM７２の構成例を示している。
【００５０】
SAM７２は、CPU８１、ROM８２、SRAM（Static Random Access Memory）８３、EEPROM（Electronically Erasable and Programmable Read Only Memory）８４、通信部８５、乱数発生器８６、および暗号復号エンジン８７がバス８９を介して相互に接続されて構成されている。
【００５１】
CPU８１は、ROM８２に格納されたプログラムまたはEEPROM８４に外部からインストールされたプログラムを、SRAM８３にロードして実行する。
【００５２】
ROM８２には、図５に示すように、データの符号化や復号、およびデータの暗号化や暗号の解除等の無線近接通信を実現するＯＳ９１、EEPROM８４上のデータをSRAM８３に展開したりするなどの初期化を行う初期化プログラム９２、および受信されたコマンドパケットを解析するコマンドパケット処理プログラム９３が格納されている。
【００５３】
図４に戻りSRAM８３は、CPU８１がROM８２に格納されているプログラムを実行する際のワークエリアやプログラムスタックおよび、送受信用バッファや特殊レジスタ等の用途で使用される揮発性メモリである。
【００５４】
EEPROM８４は、不揮発性のユーザメモリ領域として、リーダライタ機能で使用するデータが格納されている。ここには、外部の装置から送信されたプログラムも格納される。不揮発性メモリの素材として、EEPROMではなくFERAM（Ferroelectric Random Access Memory）を用いてもよい。
【００５５】
通信部８５は、SAM７２と接続されるリーダライタコントローラ７１やRF部７３とのデータの送受信を行う。外部の装置との接続形態は、接触でも非接触でもよい。
【００５６】
乱数発生器８６は、暗号復号エンジン８７で使用される乱数を発生させる。
【００５７】
暗号復号エンジン８７は、ICカード５２とリーダライタ部６２で授受されるデータの暗号復号化および、データへのアクセスする際のアクセス鍵の生成、ユーザデータの暗号化復号化、および相互認証を行う。
【００５８】
その図示は省略するが、リーダライタコントローラ７１およびRF部７３も、SAM７２と同様に、CPU、ROM、RAM等を有して構成されている。
【００５９】
次に携帯端末５１のホストコントローラ６１のリーダライタ機能を実現する場合の動作を、図６のフローチャートを参照して説明する。
【００６０】
ステップＳ１において、ホストコントローラ６１は、ICカード５２に送信するコマンドパケットを作成する。
【００６１】
図７は、コマンドパケットの構成例を示している。
【００６２】
識別子５１１は、この識別子５１１に続くデータ列がコマンドパケットであることを示すものであって、例えば予め決められた識別パターンのデータ列である。
【００６３】
パケット長５１２は、コマンドパケット上の、パケット長５１２からコマンドデータ５１６までのデータ列の長さ（バイト数）を示すデータである。
【００６４】
経路情報５１３は、このコマンドパケットの送信元であるホストコントローラ６１から最終的な送信先であるICカード５２に伝送される際（往路）に経由する機器、およびICカード５２からホストコントローラ６１に戻る際（復路）に経由する機器のＩＤが、経由順に配置されている。
【００６５】
経由数５１４は、このコマンドパケットの送受信で経由する機器の数であり、この例の場合、機器のIDが１バイトで表されているので、経路情報５１３のバイト数となる。
【００６６】
例えば図８に示すように、コマンドパケットが、図中番号１が付された矢印が示すように、ホストコントローラ６１から、リーダライタ部６２のリーダライタコントローラ７１、SAM７２、およびRF部７３を介してＩＣカード５２に送信され、ICカード５１で処理された後、ICカード５２から、RF部７３、SAM７２、リーダライタコントローラ７１を介してホストコントローラ６１に戻る場合、経路情報５１３は、図９に示すように、経由順に、ホストコントローラ６１（“０４”）、リーダライタコントローラ７１（“０２”）、SAM７２（“ＦＦ”）、RF部７３（“０３”）、ＩＣカード５２（“０１”）、RF部７３（“０３”）、SAM７２（“ＦＦ”）、リーダライタコントローラ７１（“０２”）、およびホストコントローラ６１（“０４”）のIDが順（図中、左側から右側方向）に並ぶ情報であり、経由数５１４は、“９”となる。
【００６７】
なおコマンドパケットを生成するホストコントローラ６１は、図１０に示すように、このICカードシステムを構成するICカード５２、リーダライタ部６２のリーダライタコントローラ７１、SAM７２、およびRF部７３、並びにホストコントローラ６１のIDを記憶しており、経路に応じた機器のIDを経路情報５１３として設定することができる。
【００６８】
図７に戻りコマンドコード５１５は、システムのプロトコル仕様に基づく処理の内容を示すコードであり、コマンドデータ５１６は、コマンドコード５１５に対応した処理において用いられるデータである。
【００６９】
なおコマンドコード５１５を複数設定することができる。
【００７０】
ＣＲＣ（Cyclic Redundancy Check）５１７は、コマンドパケット上において、パケット長５１２からコマンドデータ５１６までのデータ列の整合性を検証するためのもので、例えばＣＲＣ−ＣＣＩＴＴ方式で算出したものである。
【００７１】
なおＣＲＣ５１７は、コマンドパケットが経由する機器内で変更された場合は再計算される。
【００７２】
コマンドパケットは以上のようにして構成されている。
【００７３】
図６に戻りステップＳ２において、ホストコントローラ６１は、ステップＳ１で生成したコマンドパケットを、リーダライタ部６２のリーダライタコントローラ７１に送信する。
【００７４】
次にステップＳ３において、ホストコントローラ６１は、リーダライタ部６２のリーダライタコントローラ７１から送信されてくる、ステップＳ２で送信したコマンドパケットに対する応答としてのコマンドパケットを受信し、そのコマンドパケットのコマンドデータ５１６に応じた処理を実行する。
【００７５】
次に、リーダライタ部６２のSAM７２の動作を、図１１のフローチャートを参照して説明する。なおSAM７２が他の機器と通信する場合においては、データを受信したときは、その後、ACK（ACKnowlegdement）を返し、またデータを送信したときは、送信先からACKを受けるようにして行われるが、以下の説明においては、ACKの授受については、その説明を省略する。
【００７６】
ステップＳ１１において、SAM７２がリーダライタ部６２の図示せぬSIMスロットに装着され、リーダライタコントローラ７１およびRF部７３と接続されると、ステップＳ１２において、リーダライタコントローラ７１側からの契機でSAM７２の電源が投入され、ステップＳ１３において、SAM７２の初期化プログラム９２が起動され、初期化プログラム９２は、ハードウェアの初期化およびソフトウエアの初期化を行う。
【００７７】
ハードウェアの初期化およびソフトウエアの初期化が完了すると、ステップＳ１４において、ＯＳ９１が起動され、ＯＳ９１は、SAM７２とリーダライタコントローラ７１との間の相互認証を行う。このようにSAM７２とリーダライタコントローラ７１との間で相互認証が行われることにより、SAM７２は、リーダライタ部６２において動作可能となり、RF部７３またはリーダライタコントローラ７１との間でデータを授受することができるようになる。
【００７８】
相互認証の方法は、例えば、ＩＳＯ／ＩＥＣ９７９８−２で定義される、対象鍵暗号方式を使用する方法があるが、これに限定しない。またこのような相互認証と同時に、一時的なセッション鍵を共有し、このセッション鍵を用いて通信データを暗号化した上で、SAM７２と接続されている装置間でデータのやり取りを行う。セッション鍵が異なる仕組みであれば、相互認証時の共有鍵はそれぞれの装置で同一であっても良いが、共有鍵が異なっていたほうが、より安全である。
【００７９】
相互認証が完了するとＯＳ９１は、ステップＳ１５において、コマンドパケットが受信されるまで待機し、コマンドパケットが受信された場合、受信されたコマンドパケットを、SAM７２のSRAM８３上にある送受信バッファに格納するとともに、コマンドパケット処理プログラム９３を起動し、ステップＳ６において、そのコマンドパケットに対する処理を行わせる。
【００８０】
ここでの処理の詳細は、図１２のフローチャートに示されている。
【００８１】
ステップＳ２１において、コマンドパケット処理プログラム９３は、受信されたコマンドパケットがSAM７２に送信されるべきものであったか否かを判定し、送信されるべきものであると判定した場合、ステップＳ２２に進む。
【００８２】
具体的には、例えば受信されたコマンドパケットの経路情報５１３にSAM７２のID（“ＦＦ”）が含まれているか否かが判定され、図９の例のように、SAM７２のIDである“ＦＦ”が含まれている場合、受信されたコマンドパケットはSAM７２に送信されるべきものであった判定され、ステップＳ２２に進む。
【００８３】
なおこのときコマンドパケット処理プログラム９３は、受信されたコマンドパケットを送信してきた機器（以下、送信元と称する）のIDを取得するものとする。
【００８４】
ステップＳ２２において、コマンドパケット処理プログラム９３は、受信されたコマンドパケットを送信する機器（以下、送信先と称する）を検出する。
【００８５】
具体的には、経路情報５１３の、コマンドパケットの送信元の機器のIDの次にあるSAM７２のID（“ＦＦ”）の次に設定されているID（図９の例の場合、リーダライタコントローラ７１のIDである“０２”の次にある“ＦＦ”の次に設定されている“０３”）の機器（すなわち、RF部７３）が検出される。
【００８６】
このようにコマンドパケットの送信元の機器のIDを基準に、送信先を検出するようにしたので、コマンドパケットが複数回経由する場合においても（すなわち、経路情報５１３に同じIDが２個以上含まれる場合においても）、自分のＩＤから送信先を適切に検出することができる。
【００８７】
なお各機器がコマンドパケットを送信する毎に自分のIDを“００”に置き換えるようにして、コマンドを受信した機器が、“００”の次にある自分のIDの次に設定されているIDから送信先を検出することもできる。
【００８８】
ステップＳ２３において、コマンドパケット処理プログラム９３は、受信されたコマンドパケットを送信することができるか否かを判定し、送信することができると判定した場合、ステップＳ２４に進む。
【００８９】
具体的には、例えばSAM７２には、図１３に示すように、SAM７２と接続されているRF部７３とリーダライタコントローラ７１のID（“０２”、“０３”）が記憶されており、経路情報５１３の、コマンドパケットの送信元の機器のIDの次にあるSAM７２のID（“ＦＦ”）の次に設定されているID（図９の例の場合、例えば、リーダライタコントローラ７１のIDである“０２”の次にある“ＦＦ”の次に設定されている“０３”）が、SAM７２と接続されている機器のIDとして記憶されている場合、受信されたコマンドパケットを送信することができるものと判定され、ステップＳ２４に進む。
【００９０】
ステップＳ２４において、コマンドパケット処理プログラム９３は、受信されたコマンドパケットに対する処理の実行が指示されているか否かを判定し、指示されていると判定した場合、ステップＳ２５に進む。
【００９１】
具体的には、例えばSAM７２には、図１４に示すように、SAM７２が実行すべき処理を示すコマンドコードが記憶されており、受信されたコマンドパケットのコマンドコード５１５が、SAM７２が実行すべき処理を示すコードとして記憶されている場合、処理の実行が指示されているものと判定され、ステップＳ２５に進む。
【００９２】
ステップＳ２５において、コマンドパケット処理プログラム９３は、コマンドコード５１５に応じた処理を実行し、ステップＳ２６に進む。
【００９３】
ステップＳ２４で、処理の実行が指示されていないと判定された場合、ステップＳ２５の処理がスキップされ、ステップＳ２６に進む。
【００９４】
ステップＳ２６において、コマンドパケット処理プログラム９３は、ステップＳ２５を介した場合、ステップＳ２５での処理の結果として得られたコマンドパケットを、ステップＳ２２で検出した機器に送信する。
【００９５】
ステップＳ２５の処理がスキップされてきた場合、コマンドパケット処理プログラム９３は、図１１のステップＳ１５の処理で受信されたコマンドパケットを、ステップＳ２２で検出した機器に送信する。
【００９６】
その後、SAM７２は、処理を終了させる。
【００９７】
ステップＳ２１で、受信されたコマンドパケットの経路情報５１３に、SAM７２のIDが含まれていないと判定されたとき、ステップＳ２３で、コマンドパケットの送信先のIDがSAM７２と接続されている機器のIDとして記憶されていないと判定されたとき、ステップＳ２４で、コマンドパケットのコマンドコード５１５が、SAM７２が実行できるコマンドコードとして記憶されていないと判定されたとき、SAM７２は、処理は終了させる。すなわちこの場合、受信されたコマンドパケットは、他の機器に送信されない。
【００９８】
以上のようにして、携帯端末５１において、リーダライタ機能が実行される。
【００９９】
以上のように携帯端末５１においては、SAM７２に、リーダライタコントローラ７１とRF部７３の両方に接続され、SAM７２を介するコマンドパケットの通信が、経路情報５１３によって自由に設定することができるので、効率よくコマンドパケットを授受することができる。
【０１００】
すなわち従来のICカードシステムにおいては、図２に示したように、SAM２２で処理されたコマンドパケットは、一度ホストコントローラ１１に戻されて、ICカード２に送信されていたが、本発明のICカードシステムによれば、図８に示したように、SAM７２で処理されたコマンドパケットを、ホストコントローラ６１に戻すことなく、ICカード５２に直接送信することができる。
【０１０１】
またこのことを換言すれば、例えば、ホストコントローラ６１からSAM７２に対して、ICカード５２へ送るデータとともに、SAM７２での暗号化処理や自己診断処理等のコマンドを送ることによって、SAM７２にデータの暗号化や自己診断させるとともに、最終的にはICカード５２でそのデータを処理させることができるので、１つのコマンドパケットで、複数の処理を行わせることもできる。
【０１０２】
また以上においては、コマンドパケットを受信した場合の動作を、SAM７２を例として説明したが、リーダライタ部６２を構成するリーダライタコントローラ７１およびRF部７３においても、受信したコマンドパケットに対して、基本的に、図１１および図１２に示した処理と同様の処理が実行される。
【０１０３】
また図８の例の場合、コマンドパケットの往路と復路の経路が同じであったが、図１５に示すように、異なる経路とすることもできる。この場合の経路情報５１３は、図１６に示す通りである。
【０１０４】
また図８の例では、SAM７２には、リーダライタコントローラ７１およびRF部７３の２つの機器が接続されていたが、それ以上の機器が接続されていてもよい。また他のSAMが接続されていてもよく、この場合、各SAMは、それぞれ接続されている装置と相互認証が行われる。
【０１０５】
また以上においては、リーダライタがリーダライタ部６２として携帯端末５１に組み込まれている場合を例として説明したが、他の装置に組み込まれている場合においても、単独のリーダライタにおいても本発明を適用することができる。
【０１０６】
また以上においては、リーダライタ部６２を例として説明したが、ICカードにおいても、本発明を適用することができる。
【０１０７】
上述した一連の処理は、ソフトウエアにより実行することも、上述した一連の処理を実行するように組み込まれたハードウェアを用いて実行することもできる。そのソフトウエアは、そのソフトウエアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１０８】
この記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disk-Read Only Memory），DVD（Digital Versatile Disk）を含む）、光磁気ディスク（ＭＤ(Mini-Disk)（商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディアなどにより構成される。
【０１０９】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１１０】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１１１】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１１２】
【図１】従来のICカードシステムの構成例を示すブロック図である。
【図２】従来のICカードシステムにおけるデータ通信を説明する図である。
【図３】本発明を適用したICカードシステムの構成例を示すブロック図である。
【図４】図３のSAM７２の構成例を示すブロック図である。
【図５】図４のROM８２に格納されているプログラムを示す図である。
【図６】図３のホストコントローラ６１の動作を説明するフローチャートである。
【図７】コマンドパケットのデータ構造を示す図である。
【図８】図３のICカードシステムにおけるデータ通信を説明する図である。
【図９】図７の経路情報５１３および経由数５１４の例を示す図である。
【図１０】図３のホストコントローラ６１に記憶されているIDを示す図である。
【図１１】図３のSAM７２の動作を説明するフローチャートである。
【図１２】図１１のステップＳ１６の処理の詳細を示すフローチャートである。
【図１３】図３のSAM７２に記憶されている、SAM７２に接続されている機器のIDを示す図である。
【図１４】図３のSAM７２に記憶されている、コマンドコードの例を示す図である。
【図１５】図３のICカードシステムにおけるデータ通信を説明する他の図である。
【図１６】図１５のデータ通信が行われる場合の経路情報５１３および経由数５１４の例を示す図である。
【符号の説明】
【０１１３】
５１  携帯端末，  ５２  ICカード，  ６１  ホストコントローラ，  ６２  リーダライタ部，  ７１  リーダライタコントローラ，  ７２  SAM，  ７３  RF部，  ５１３  経路情報，  ５１４  経由数
【図１】
2008033661.tif 000003
【図２】
2008033661.tif 000004
【図３】
2008033661.tif 000005
【図４】
2008033661.tif 000006
【図５】
2008033661.tif 000007
【図６】
2008033661.tif 000008
【図７】
2008033661.tif 000009
【図８】
2008033661.tif 000010
【図９】
2008033661.tif 000011
【図１０】
2008033661.tif 000012
【図１１】
2008033661.tif 000013
【図１２】
2008033661.tif 000014
【図１３】
2008033661.tif 000015
【図１４】
2008033661.tif 000016
【図１５】
2008033661.tif 000017
【図１６】
2008033661.tif 000018