(57)【特許請求の範囲】
【請求項１】
シンクライアント型の読書装置であって、
情報処理装置から通知された、前記情報処理装置と媒体との間で共有される暗号鍵情報を保管する保管手段と、
前記保管手段により保管された前記暗号鍵情報に基づいて、前記情報処理装置から通知された通信のシーケンスを管理するシーケンス番号を含むカードコマンドを暗号化し、前記媒体に送信する送信手段と、
を有し、
前記送信手段は、設定された期間内に、送信した前記カードコマンドに対する応答を前記媒体から受信しなかった場合、前記カードコマンドに含まれる前記シーケンス番号を更新し、前記暗号鍵情報に基づいて、前記カードコマンドを再暗号化し、前記媒体に送信するシンクライアント型の読書装置。
【請求項２】
情報処理装置と媒体とシンクライアント型の読書装置とを含む通信システムであって、
前記情報処理装置は、
前記情報処理装置と前記媒体との間で共有される暗号鍵情報を前記シンクライアント型の読書装置に通知する鍵通知手段と、
通信のシーケンスを管理するシーケンス番号を含むカードコマンドを前記シンクライアント型の読書装置に通知するコマンド通知手段と、
を有し、
前記シンクライアント型の読書装置は、
情報処理装置から通知された前記暗号鍵情報を保管する保管手段と、
前記保管手段により保管された前記暗号鍵情報に基づいて、前記情報処理装置から通知された前記カードコマンドを暗号化し、前記媒体に送信する送信手段と、
を有し、
前記送信手段は、設定された期間内に、送信した前記カードコマンドに対する応答を前記媒体から受信しなかった場合、前記カードコマンドに含まれる前記シーケンス番号を更新し、前記暗号鍵情報に基づいて、前記カードコマンドを再暗号化し、前記媒体に送信する通信システム。
【請求項３】
情報処理装置と媒体とシンクライアント型の読書装置とを含む通信システムであって、
前記情報処理装置は、
前記情報処理装置と前記媒体との間で共有される暗号鍵情報に基づいて、それぞれ異なる通信のシーケンスを管理するシーケンス番号を含む複数のカードコマンドを暗号化し、前記シンクライアント型の読書装置に通知する通知手段を有し、
前記シンクライアント型の読書装置は、
前記通知手段により通知された前記複数のカードコマンドのうち最初のカードコマンドを前記媒体に送信する送信手段を有し、
前記送信手段は、設定された期間内に、送信したカードコマンドに対する応答を前記媒体から受信しなかった場合、前記複数のカードコマンドのうち次のカードコマンドを前記媒体に送信する通信システム。
【請求項４】
前記送信手段は、前記通知手段により通知された前記複数のカードコマンドのうち、シーケンス番号が最も小さいカードコマンドを最初のカードコマンドとして前記媒体に送信し、設定された期間内に、送信したカードコマンドに対する応答を前記媒体から受信しなかった場合、前記複数のカードコマンドのうち前記カードコマンドの次に大きいシーケンス番号のカードコマンドを次のカードコマンドとして前記媒体に送信する請求項３記載の通信システム。
【請求項５】
前記送信手段は、設定された期間内に、送信したカードコマンドに対する応答を前記媒体から受信せず、かつ、前記複数のカードコマンドの中に未送信のものが存在する場合、前記複数のカードコマンドのうち次のカードコマンドを前記媒体に送信する請求項３又は４記載の通信システム。
【請求項６】
前記通知手段は、前記暗号鍵情報に基づいて暗号化された１つのカードコマンドを前記シンクライアント型の読書装置に通知し、その後に、前記暗号鍵情報に基づいて、それぞれ異なる通信のシーケンスを管理するシーケンス番号を含む複数のカードコマンドを暗号化し、前記シンクライアント型の読書装置に通知し、
前記送信手段は、前記通知手段により通知された前記１つのカードコマンドを前記媒体に送信し、設定された期間内に、前記１つのカードコマンドに対する応答を前記媒体から受信しない場合、前記通知手段により通知された前記複数のカードコマンドのうち最初のカードコマンドを前記媒体に送信する請求項３乃至５何れか１項記載の通信システム。
【請求項７】
シンクライアント型の読書装置が実行する制御方法であって、
情報処理装置から通知された、前記情報処理装置と媒体との間で共有される暗号鍵情報を記憶装置に保管する保管ステップと、
前記保管ステップで前記記憶装置に保管された前記暗号鍵情報に基づいて、前記情報処理装置から通知された通信のシーケンスを管理するシーケンス番号を含むカードコマンドを暗号化し、前記媒体に送信する送信ステップと、
を含み、
前記送信ステップでは、設定された期間内に、送信した前記カードコマンドに対する応答を前記媒体から受信しなかった場合、前記カードコマンドに含まれる前記シーケンス番号を更新し、前記暗号鍵情報に基づいて、前記カードコマンドを再暗号化し、前記媒体に送信する制御方法。
【請求項８】
情報処理装置と媒体とシンクライアント型の読書装置とを含む通信システムにおける制御方法であって、
前記情報処理装置が、前記情報処理装置と前記媒体との間で共有される暗号鍵情報を前記シンクライアント型の読書装置に通知する鍵通知ステップと、
前記情報処理装置が、通信のシーケンスを管理するシーケンス番号を含むカードコマンドを前記シンクライアント型の読書装置に通知するコマンド通知ステップと、
前記シンクライアント型の読書装置が、情報処理装置から通知された前記暗号鍵情報を記憶装置に保管する保管ステップと、
前記シンクライアント型の読書装置が、前記保管ステップで前記記憶装置に保管された前記暗号鍵情報に基づいて、前記情報処理装置から通知された前記カードコマンドを暗号化し、前記媒体に送信する送信ステップと、
を含み、
前記送信ステップでは、前記シンクライアント型の読書装置が、設定された期間内に、送信した前記カードコマンドに対する応答を前記媒体から受信しなかった場合、前記カードコマンドに含まれる前記シーケンス番号を更新し、前記暗号鍵情報に基づいて、前記カードコマンドを再暗号化し、前記媒体に送信する制御方法。
【請求項９】
情報処理装置と媒体とシンクライアント型の読書装置とを含む通信システムにおける制御方法であって、
前記情報処理装置が、前記情報処理装置と前記媒体との間で共有される暗号鍵情報に基づいて、それぞれ異なる通信のシーケンスを管理するシーケンス番号を含む複数のカードコマンドを暗号化し、前記シンクライアント型の読書装置に通知する通知ステップと、
前記シンクライアント型の読書装置が、前記通知ステップで通知された前記複数のカードコマンドのうち最初のカードコマンドを前記媒体に送信する送信ステップと、
を含み、
前記送信ステップでは、前記シンクライアント型の読書装置が、設定された期間内に、送信したカードコマンドに対する応答を前記媒体から受信しなかった場合、前記複数のカードコマンドのうち次のカードコマンドを前記媒体に送信する制御方法。
【請求項１０】
コンピュータに、
情報処理装置から通知された、前記情報処理装置と媒体との間で共有される暗号鍵情報を記憶装置に保管する保管ステップと、
前記保管ステップで前記記憶装置に保管された前記暗号鍵情報に基づいて、前記情報処理装置から通知された通信のシーケンスを管理するシーケンス番号を含むカードコマンドを暗号化し、前記媒体に送信する送信ステップと、
を実行させるためのプログラムであって、
前記送信ステップでは、設定された期間内に、送信した前記カードコマンドに対する応答を前記媒体から受信しなかった場合、前記カードコマンドに含まれる前記シーケンス番号を更新し、前記暗号鍵情報に基づいて、前記カードコマンドを再暗号化し、前記媒体に送信するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンクライアント型の読書装置、通信システム、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、シンクライアント型のリーダライタ（シンクライアント型ＲＷ）が提案されている。シンクライアント型ＲＷは、ネットワークを介してサーバと接続され、サーバで作成された非接触式のＩＣカード（非接触ＩＣカード）へのコマンド情報をサーバから受信し、受信したコマンド情報を非接触ＩＣカードに転送するものである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ここで、シンクライアント型ＲＷ（読書装置の一例）とサーバ（情報処理装置の一例）と非接触ＩＣカード（媒体の一例）とからなるシステムにおいて、暗号化を要するコマンド情報（指示情報の一例）に関する通信が行われる場合、サーバにおいて、通信のシーケンスを管理する通番（シーケンス番号）がコマンド情報と共に暗号される。
故に、シンクライアント型ＲＷと非接触ＩＣカード間での通信エラーの際には、通信のシーケンスを管理する必要があることから、サーバにおいて、新たなシーケンス番号がコマンド情報と共に暗号されてシンクライアント型ＲＷに送信され、シンクライアント型ＲＷと非接触ＩＣカードとの再度の通信が行われる。
このため、シンクライアント型ＲＷと非接触ＩＣカード間で通信エラーが一度でも発生すると、シンクライアント型ＲＷがネットワークを介して接続されたサーバからの暗号化されたコマンド情報を待つことになり、そのリカバリーに多くの時間が必要となる。例えば、そのリカバリーの間に、非接触ＩＣカードがシンクライアント型ＲＷと通信が可能な範囲（通信可能範囲）から外れてしまい、必要な通信が完結しない事態が発生する問題がある。
【０００４】
本発明はこのような問題点に鑑みなされたもので、情報処理装置からの指示情報を記憶媒体に送信する際の通信をより適切に制御することを目的とする。
【課題を解決するための手段】
【０００５】
そこで、本発明に係る読書装置は、シンクライアント型の読書装置であって、情報処理装置から通知された、前記情報処理装置と媒体との間で共有される暗号鍵情報を保管する保管手段と、前記保管手段により保管された前記暗号鍵情報に基づいて、前記情報処理装置から通知された通信のシーケンスを管理するシーケンス番号を含むカードコマンドを暗号化し、前記媒体に送信する送信手段と、を有し、前記送信手段は、設定された期間内に、送信した前記カードコマンドに対する応答を前記媒体から受信しなかった場合、前記カードコマンドに含まれる前記シーケンス番号を更新し、前記暗号鍵情報に基づいて、前記カードコマンドを再暗号化し、前記媒体に送信する。
【０００６】
また、本発明に係る通信システムは、情報処理装置と媒体とシンクライアント型の読書装置とを含む通信システムであって、前記情報処理装置は、前記情報処理装置と前記媒体との間で共有される暗号鍵情報を前記シンクライアント型の読書装置に通知する鍵通知手段と、通信のシーケンスを管理するシーケンス番号を含むカードコマンドを前記シンクライアント型の読書装置に通知するコマンド通知手段と、を有し、前記シンクライアント型の読書装置は、情報処理装置から通知された前記暗号鍵情報を保管する保管手段と、前記保管手段により保管された前記暗号鍵情報に基づいて、前記情報処理装置から通知された前記カードコマンドを暗号化し、前記媒体に送信する送信手段と、を有し、前記送信手段は、設定された期間内に、送信した前記カードコマンドに対する応答を前記媒体から受信しなかった場合、前記カードコマンドに含まれる前記シーケンス番号を更新し、前記暗号鍵情報に基づいて、前記カードコマンドを再暗号化し、前記媒体に送信する。
また、本発明に係る通信システムは、情報処理装置と媒体とシンクライアント型の読書装置とを含む通信システムであって、前記情報処理装置は、前記情報処理装置と前記媒体との間で共有される暗号鍵情報に基づいて、それぞれ異なる通信のシーケンスを管理するシーケンス番号を含む複数のカードコマンドを暗号化し、前記シンクライアント型の読書装置に通知する通知手段を有し、前記シンクライアント型の読書装置は、前記通知手段により通知された前記複数のカードコマンドのうち最初のカードコマンドを前記媒体に送信する送信手段を有し、前記送信手段は、設定された期間内に、送信したカードコマンドに対する応答を前記媒体から受信しなかった場合、前記複数のカードコマンドのうち次のカードコマンドを前記媒体に送信する。
【０００７】
なお、本発明は、システム、記録媒体などとしてもよい。
【発明の効果】
【０００８】
本発明によれば、情報処理装置からの指示情報を記憶媒体に送信する際の通信をより適切に制御することができる。
【図面の簡単な説明】
【０００９】
【図１】通信システムの構成の一例を示す図である。
【図２】各装置のハードウェアの構成の一例を示す図である。
【図３】各装置のモジュールの構成の一例を示す図である。
【図４】通信システムのシーケンスの一例を示す図である。
【図５】受信時処理に係るフローチャートの一例を示す図である。
【図６】通信システムのシーケンスの一例を示す図である。
【図７】受信時処理に係るフローチャートの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面に基づいて説明する。
【００１１】
＜第１の実施形態＞
図１は、本実施形態に係る通信システムの構成の一例を示す図である。本通信システムは、サーバ１００、ＲＷ（リーダライタ）２００、及び媒体３００を含んで構成される。サーバ１００は、情報処理装置（コンピュータ）の一例である。ＲＷ２００は、読書装置（コンピュータ）の一例である。媒体３００は、記憶媒体（コンピュータ）の一例であり、非接触ＩＣカード、お財布機能を有する携帯電話、ＰＤＡ機能を有する携帯電話、モバイル端末などである。
サーバ１００及びＲＷ２００は、ネットワーク９００を介して通信可能に接続される。なお、通信の形態については、有線、無線、有線および無線の混合など、特定の形態に限定されるものではない。また、ＲＷ２００及び媒体３００では、無線の通信が行われる。例えば、ＲＷ２００からキャリアが送信されて電磁誘導により媒体３００に電力が供給され、キャリアの変調によりＲＷ２００と媒体３００間で通信が行われる。
【００１２】
次に、各装置のハードウェアの構成について図２を用いて説明する。図２は、各装置のハードウェアの構成の一例を示す図である。
図２（Ａ）は、サーバ１００のハードウェアの構成の一例を示す図である。サーバ１００は、ＣＰＵ（Central Processing Unit）１１０、ＲＯＭ（Read Only Memory）１２０、ＲＡＭ（Random Access Memory）１３０、ＨＤＤ（Hard disk drive）１４０、入出力デバイス１５０、及びＩ／Ｆ（interface）１６０を含んで構成される。
【００１３】
ＣＰＵ１１０は、サーバ１００全体の制御を司る。例えば、ＣＰＵ１１０は、ＲＯＭ１２０に記憶されている各種のプログラム等を実行し、後述するサーバ１００の機能を実現する。
ＲＯＭ１２０は、各種のプログラム、各種の処理の際に使用するデータ等の各種のデータを記憶する。なお、ＲＯＭ１２０は、各種のデータを記憶する記憶装置の一例である。ＲＡＭ１３０は、ＣＰＵ１１０の主メモリ、ワークエリア等として機能する。なお、ＲＡＭ１３０は、各種のデータを一時的に記憶する一時記憶装置の一例である。
ＨＤＤ１４０は、大容量の記憶領域を有する外部記憶装置の一例である。入出力デバイス１５０は、ディスプレイ、マウス、キーボードなどを含んで構成され、例えばマウス、キーボードなどのユーザによる操作（ユーザ操作）に応答して、データを入力或いは出力する。Ｉ／Ｆ１６０は、有線又は無線の通信を行うための通信インタフェースであり、例えば、ＬＡＮケーブル等の各種のケーブルを介してネットワーク９００に接続する。
【００１４】
図２（Ｂ）は、ＲＷ２００のハードウェアの構成の一例を示す図である。ＲＷ２００は、ＣＰＵ２１０、ＲＯＭ２２０、ＲＡＭ２３０、ＲＦ（Radio Frequency）回路２４０、ＡＮＴ（antenna）２５０、及びＩ／Ｆ２６０を含んで構成される。
ＣＰＵ２１０は、ＲＷ２００全体の制御を司る。例えば、ＣＰＵ２１０は、ＲＯＭ２２０に記憶されている各種のプログラム等を実行し、後述するＲＷ２００の機能、フローチャートに係る処理を実現する。
【００１５】
ＲＯＭ２２０は、各種のプログラム、各種の処理の際に使用するデータ等の各種のデータを記憶する。ＲＯＭ２２０は、電気的にデータの書き込み、データの消去が可能なメモリであり、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）などである。なお、ＲＯＭ２２０は、各種のデータを記憶する記憶装置の一例である。ＲＡＭ２３０は、ＣＰＵ２１０の主メモリ、ワークエリア等として機能する。なお、ＲＡＭ２３０は、各種のデータを一時的に記憶する一時記憶装置の一例である。
ＲＦ回路２４０は、ＡＮＴ２５０と高周波信号のやりとりを行うと共に、電力の供給と、データの変調および復調とを行う。ＡＮＴ２５０は、高周波信号（高周波エネルギー）を電波（電磁波）として空間に放射（送信）する。また、ＡＮＴ２５０は、空間の電波（電磁波）を高周波信号（高周波エネルギー）に変換（受信）する。Ｉ／Ｆ２６０は、有線又は無線の通信を行うための通信インタフェースであり、例えば、各種のケーブルを介してネットワーク９００に接続する。
【００１６】
図２（Ｃ）は、媒体３００のハードウェアの構成の一例を示す図である。媒体３００は、ＣＰＵ３１０、ＲＯＭ３２０、ＲＡＭ３３０、ＲＦ回路３４０、及びＡＮＴ３５０を含んで構成される。
ＣＰＵ２１０は、媒体３００全体の制御を司る。例えば、ＣＰＵ３１０は、ＲＯＭ３２０に記憶されている各種のプログラム等を実行し、後述する媒体３００の機能を実現する。
【００１７】
ＲＯＭ３２０は、各種のプログラム、各種の処理の際に使用するデータ等の各種のデータを記憶する。なお、ＲＯＭ３２０は、各種のデータを記憶する記憶装置の一例である。ＲＡＭ３３０は、ＣＰＵ３１０の主メモリ、ワークエリア等として機能する。なお、ＲＡＭ３３０は、各種のデータを一時的に記憶する一時記憶装置の一例である。
ＲＦ回路３４０は、ＡＮＴ３５０と高周波信号のやりとりを行うと共に、電力の供給と、データの変調および復調とを行う。ＡＮＴ３５０は、高周波信号（高周波エネルギー）を電波（電磁波）として空間に放射（送信）する。また、ＡＮＴ３５０は、空間の電波（電磁波）を高周波信号（高周波エネルギー）に変換（受信）する。
【００１８】
次に、各装置のモジュールの構成について図３を用いて説明する。図３は、各装置のモジュールの構成の一例を示す図である。各モジュールの機能は、各装置の各ＣＰＵにより各プログラムが実行されることにより実現される。ただし、各モジュールの機能の一部又は全部について、専用のハードウェアにより実現されてもよい。
図３（Ａ）は、サーバ１００のモジュールの構成の一例を示す図である。サーバ１００は、制御部１７０、記憶部１８０、及び通信部１９０を有する。
制御部１７０は、記憶部１８０、及び通信部１９０を制御し、サーバ１００全体を制御する。記憶部１８０は、制御部１７０からの指示に基づいてＲＡＭ１３０、ＨＤＤ１４０等の記憶装置のデータについての読み出し、書き込み等を行う。通信部１９０は、制御部１７０からの指示に基づいてＩ／Ｆ１６０を介してＲＷ２００と通信を行う。例えば、通信部１９０は、制御部１７０の制御のもと各種のコマンドをＩ／Ｆ１６０を介してＲＷ２００に送信する。
【００１９】
図３（Ｂ）は、ＲＷ２００のモジュールの構成の一例を示す図である。ＲＷ２００は、制御部２７０、記憶部２８０、及び通信部２９０を有する。
制御部２７０は、記憶部２８０及び通信部２９０を制御し、ＲＷ２００全体を制御する。記憶部２８０は、制御部２７０からの指示に基づいてＲＯＭ２２０、ＲＡＭ２３０等の記憶装置のデータについての読み出し、書き込み等を行う。例えば、記憶部２８０は、制御部２７０の制御のもとＲＯＭ２２０内のデータを取得する。
通信部２９０は、制御部２７０からの指示に基づいてＩ／Ｆ２６０を介してサーバ１００と通信を行う。例えば、通信部２９０は、Ｉ／Ｆ２６０を介して、サーバ１００からの各種のコマンドを受信し、制御部２７０に通知する。また、通信部２９０は、制御部２７０からの指示に基づいてＲＦ回路２４０及びＡＮＴ２５０を介して媒体３００と通信を行う。例えば、通信部２９０は、ＲＦ回路２４０及びＡＮＴ２５０を介して、制御部２７０の制御のもとカードコマンドを媒体３００に送信する。
【００２０】
図３（Ｃ）は、媒体３００のモジュールの構成の一例を示す図である。媒体３００は、制御部３７０、記憶部３８０、及び通信部３９０を有する。
制御部３７０は、記憶部３８０及び通信部３９０を制御し、媒体３００全体を制御する。記憶部３８０は、制御部３７０からの指示に基づいてＲＯＭ３２０、ＲＡＭ３３０等の記憶装置のデータについての読み出し、書き込み等を行う。
通信部３９０は、制御部３７０からの指示に基づいてＲＦ回路３４０及びＡＮＴ３５０を介してＲＷ２００と通信を行う。例えば、通信部３９０は、制御部３７０の制御のもとカードコマンドに対する処理を行い、処理の結果など（カードコマンドへの応答）を、ＲＦ回路３４０及びＡＮＴ３５０を介してＲＷ２００に送信する。
【００２１】
次に、通信システムにおける通信制御について図４を用いて説明する。図４は、通信システムのシーケンスの一例を示す図である。
まず、サーバ１００は、サーバ１００が媒体３００の認証に要する情報を取得する指示（認証コマンドＡ）を含む中継コマンド（認証Ａ）を生成し、生成した中継コマンド（認証Ａ）をＲＷ２００に送信する（ＳＱ５）。ＲＷ２００は、中継コマンド（認証Ａ）を受信すると、中継コマンド（認証Ａ）に含まれる認証Ａコマンドを媒体３００に送信する（ＳＱ１０）。
そして、媒体３００は、認証Ａコマンドを受信すると、認証に要する認証Ａ情報などを演算し、認証Ａ情報などを含む認証ＡレスポンスをＲＷ２００に送信する（ＳＱ１５）。ＲＷ２００は、認証Ａレスポンスを受信すると、中継レスポンス（認証Ａ）としてサーバ１００に送信する（ＳＱ２０）。なお、サーバ１００は、中継レスポンス（認証Ａ）を受信すると、中継レスポンス（認証Ａ）に含まれる認証Ａ情報をもとに媒体３００について認証を行う。
【００２２】
また、サーバ１００は、媒体３００がサーバ１００の認証に要する認証Ｂ情報を含む認証Ｂコマンドを生成し、生成した認証Ｂコマンドを含む中継コマンド（認証Ｂ）を生成し、生成した中継コマンド（認証Ｂ）をＲＷ２００に送信する（ＳＱ２５）。ＲＷ２００は、中継コマンド（認証Ｂ）を受信すると、中継コマンド（認証Ｂ）に含まれる認証Ｂコマンドを媒体３００に送信する（ＳＱ３０）。
そして、媒体３００は、認証Ｂコマンドを受信すると、認証Ｂ情報をもとにサーバ１００について認証を行い、その結果を含む認証ＢレスポンスをＲＷ２００に送信する（ＳＱ３５）。ＲＷ２００は、認証Ｂレスポンスを受信すると、中継レスポンス（認証Ｂ）としてサーバ１００に送信する（ＳＱ４０）。
上述の処理により、サーバ１００と媒体３００との相互認証が行われる。
【００２３】
ここで、媒体３００は、サーバ１００の認証を行うと、本通信での暗号化及び復号化に用いられるトランザクション鍵（暗号鍵情報の一例）を生成する（ＳＱ４５）。また、サーバ１００は、認証Ｂレスポンスを受信すると、本通信での暗号化及び復号化に用いられるトランザクション鍵を生成する（ＳＱ５０）。即ち、サーバ１００と媒体３００とでトランザクション鍵が共有される。なお、相互認証の方法、トランザクション鍵の共有の方法については、上述の構成に限られるものではなく、公知の他の方法を用いてもよい。
そして、サーバ１００は、トランザクション鍵を含む鍵通知コマンドを生成し、生成した鍵通知コマンドをＲＷ２００に送信する（ＳＱ５５）。ＲＷ２００は、鍵通知コマンドを受信すると、トランザクション鍵をＲＡＭ２３０に記憶し、鍵通知レスポンスをサーバ１００に送信する（ＳＱ６０）。なお、サーバ１００は、一定の時間内に鍵通知レスポンスをＲＷ２００から受信しないと判断した場合、再度、鍵通知コマンドをＲＷ２００に送信する。
【００２４】
そして、サーバ１００は、媒体３００への指示を示す指示コマンド（指示情報の一例）を生成し、生成した指示コマンドおよび当該指示コマンドに係る通信を特定可能なシーケンス番号（管理情報の一例）を含む中継コマンドを生成し、生成した中継コマンドをＲＷ２００に送信する（ＳＱ６５）。ＲＷ２００は、中継コマンドを受信すると、指示コマンドおよびシーケンス番号をＲＡＭ２３０に記憶し、指示コマンドにシーケンス番号を付加する（ＳＱ７０）。続いて、ＲＷ２００は、ＲＡＭ２３０に記憶したトランザクション鍵を読み出し、トランザクション鍵を用いてシーケンス番号が付加された指示コマンドを暗号化してカードコマンド（暗号化指示情報の一例）を生成する（ＳＱ７５）。
続いて、ＲＷ２００は、生成したカードコマンドを媒体３００に送信する（ＳＱ８０：第１送信工程の一例）。他方、媒体３００は、カードコマンドを受信すると、トランザクション鍵を用いてカードコマンドを復号化して指示コマンドおよびシーケンス番号とし、当該指示コマンドおよびシーケンス番号に基づいて処理を行う。そして、媒体３００は、処理を終了すると、シーケンス番号を更新し、更新したシーケンス番号と処理の結果とをトランザクション鍵を用いて暗号化してカードレスポンスとしてＲＷ２００に送信する（ＳＱ８５）。なお、図４では、通信エラーが発生し、カードレスポンスがＲＷ２００で受信されなかった例が示されている。
【００２５】
また、ＲＷ２００は、カードコマンドを媒体３００に送信してから、当該カードコマンドに対応するカードレスポンスを受信することなく一定の時間が経過すると、ＲＡＭ２３０に記憶した指示コマンドおよびシーケンス番号を読み出し、シーケンス番号を更新し、更新したシーケンス番号を指示コマンドに付加する（ＳＱ９０）。続いて、ＲＷ２００は、ＲＡＭ２３０に記憶したトランザクション鍵を読み出し、トランザクション鍵を用いて更新したシーケンス番号が付加された指示コマンドを暗号化してカードコマンドを生成する（ＳＱ９５）。
続いて、ＲＷ２００は、生成したカードコマンドを媒体３００に送信する（ＳＱ１００：第２送信工程の一例）。他方、媒体３００は、カードコマンドを受信すると、カードコマンドを復号化して指示コマンドおよびシーケンス番号とし、当該指示コマンドおよびシーケンス番号に基づいて処理を行う。続いて、媒体３００は、シーケンス番号を更新し、更新したシーケンス番号と処理の結果とをトランザクション鍵を用いて暗号化してカードレスポンスとしてＲＷ２００に送信する（ＳＱ１０５）。
そして、ＲＷ２００は、カードレスポンスを受信すると、中継レスポンスとしてサーバ１００に送信する（ＳＱ１１０）。なお、ＲＷ２００は、トランザクション鍵を用いてカードレスポンスを復号化してから中継レスポンスとしてサーバ１００に送信してもよい。
【００２６】
次に、ＲＷ２００が鍵通知コマンド及び中継コマンドを受信したときの処理（受信時処理）について図５を用いて説明する。図５は、受信時処理に係るフローチャートの一例を示す図である。
まず、制御部２７０は、サーバ１００からコマンドを受信する（Ｓ５）。続いて、制御部２７０は、受信したコマンドが鍵通知コマンドであるか否かを判断する（Ｓ１０）。このとき、制御部２７０は、鍵通知コマンドであると判断した場合、Ｓ１５に処理を移し、他方、鍵通知コマンドでないと判断した場合、Ｓ２５に処理を移す。
【００２７】
Ｓ１５では、制御部２７０は、鍵通知コマンドからトランザクション鍵を取り出し、ＲＡＭ２３０に記憶する。続いて、制御部２７０は、鍵通知レスポンスをサーバ１００に送信し（Ｓ２０）、処理を終了する。
Ｓ２５では、制御部２７０は、受信したコマンドが暗号化を要するコマンド、より具体的には指示コマンドおよびシーケンス番号が含まれる中継コマンドであるか否かを判断する。このとき、制御部２７０は、暗号化を要するコマンドであると判断した場合、中継コマンドから指示コマンドとシーケンス番号とを取り出してＲＡＭ２３０に記憶し、Ｓ３０に処理を移す。他方、制御部２７０は、暗号化を要するコマンドでないと判断した場合、当該コマンドをカードコマンドとしてＳ５０に処理を移す。
【００２８】
Ｓ３０では、制御部２７０は、ＲＡＭ２３０にトランザクション鍵が記憶されているか否かを判断する。このとき、制御部２７０は、記憶されていると判断した場合、Ｓ４０に処理を移し、他方、記憶されていないと判断した場合、Ｓ３５に処理を移す。Ｓ３５では、制御部２７０は、サーバ１００にエラーを示す情報を送信し、処理を終了する。
Ｓ４０では、制御部２７０は、ＲＡＭ２３０から指示コマンドおよびシーケンス番号を読み出し、シーケンス番号を更新し、読み出した指示コマンドに更新したシーケンス番号を付加する。続いて、制御部２７０は、ＲＡＭ２３０からトランザクション鍵を読み出し、トランザクション鍵を用いて、シーケンス番号を付加した指示コマンドを暗号化してカードコマンドを生成する（Ｓ４５）。
【００２９】
Ｓ５０では、制御部２７０は、カードコマンドを媒体３００に送信する。続いて、制御部２７０は、送信したカードコマンドに対応する媒体３００からのカードレスポンスの受信を完了したか否かを判断する（Ｓ５５）。このとき、制御部２７０は、受信が完了したと判断した場合、Ｓ６０に処理を移し、他方、受信が未完了であると判断した場合、Ｓ６５に処理を移す。
Ｓ６０では、制御部２７０は、カードレスポンスを中継レスポンスとしてサーバ１００に送信し、処理を終了する。Ｓ６５では、制御部２７０は、カードコマンドを送信してから一定の時間が経過したか否かを判断する。このとき、制御部２７０は、一定の時間が経過したと判断した場合、Ｓ７０に処理を移し、他方、一定の時間が経過していないと判断した場合、Ｓ５５に処理を移す。
Ｓ７０では、制御部２７０は、送信したカードコマンドが暗号化したカードコマンドであるか否かを判断する。このとき、制御部２７０は、暗号化したカードコマンドであると判断した場合、Ｓ４０に処理を移し、他方、暗号化したカードコマンドでないと判断した場合、Ｓ５０に処理を移す。
【００３０】
上述した構成によれば、媒体３００とＲＷ２００間で発生した通信エラーに対するカードコマンドの再送制御をＲＷ２００単独で行うことができる。
【００３１】
＜第２の実施形態＞
本実施形態では、第１の実施形態で示した構成に比して、媒体３００とＲＷ２００間で発生した通信エラーに対するカードコマンドの再送制御を行うより簡素な構成について説明する。
本実施形態では、第１の実施形態の構成と同一の構成については同一の符号を用いて、その説明を適宜省略する。なお、シーケンス、及び受信時処理の構成が主に異なるので、これらについて説明する。
まず、シーケンスについて図６を用いて説明する。図６は、通信システムのシーケンスの一例を示す図である。なお、ＳＱ５からＳＱ５０までの処理は、第１の実施形態のシーケンスの処理と同様であるので、その説明を省略する。
【００３２】
ＳＱ２０５では、サーバ１００は、複数のカードコマンドを生成する。より具体的には、サーバ１００は、ＨＤＤ１４０に記憶されているシーケンス番号、及びカードコマンドを送信する回数を示す送信回数情報を取得する。続いて、サーバ１００は、取得したシーケンス番号と送信回数情報とに基づいて更新したシーケンス番号を付加した指示コマンドを暗号化してカードコマンドを生成する。
例えば、取得したシーケンス番号が「０」であり、送信回数情報が「３」である場合、サーバ１００は、シーケンス番号「１」を付加した指示コマンドを暗号化したカードコマンドＡ、シーケンス番号「３」を付加した指示コマンドを暗号化したカードコマンドＢ、シーケンス番号「５」を付加した指示コマンドを暗号化したカードコマンドＣを生成する。ここで、カードコマンドＡ、カードコマンドＢ、及びカードコマンドＣは、指示コマンドは同じであるがシーケンス番号が異なるカードコマンドである。
なお、送信回数情報については、管理者による入出力デバイス１５０の操作等により、事前に登録され、適宜変更可能である。
【００３３】
そして、サーバ１００は、複数のカードコマンドを含む中継コマンドとしてＲＷ２００に送信する（ＳＱ２１０）。ＲＷ２００は、中継コマンドを受信すると、中継コマンドから先頭のカードコマンドを取り出し、取り出した先頭のカードコマンドを媒体３００に送信する（ＳＱ２１５）。そして、ＲＷ２００は、カードコマンドを送信してから一定の時間が経過したと判断するごとに、次のカードコマンドを媒体３００に送信する（ＳＱ２２０、ＳＱ２２５）。
また、媒体３００は、カードコマンドを受信すると、ＲＡＭ２３０からトランザクション鍵を読み出し、トランザクション鍵を用いてカードコマンドを復号化して指示コマンドおよびシーケンス番号とし、当該指示コマンドおよびシーケンス番号に基づいて処理を行う。続いて、媒体３００は、処理を終了すると、シーケンス番号を更新し、トランザクション鍵を用いて更新したシーケンス番号と処理の結果とを暗号化してカードレスポンスとしてＲＷ２００に送信する（ＳＱ２３０）。
そして、ＲＷ２００は、媒体３００からカードレスポンスを受信すると、中継レスポンスとしてサーバ１００に送信する（ＳＱ２３５）。
【００３４】
次に、受信時処理について図７を用いて説明する。図７は、受信時処理に係るフローチャートの一例を示す図である。
まず、制御部２７０は、サーバ１００から中継コマンドを受信する（Ｓ１０５）。続いて、制御部２７０は、中継コマンドに含まれる一個のカードコマンドを媒体３００に送信する。より具体的には、サーバ１００ではシーケンス番号の昇順にカードコマンドが中継コマンドとされているので、制御部２７０は、中継コマンドの先頭のカードコマンドから順次に送信する。
なお、送信の順序を決定（指定）する方法は、上述の構成に限られるものではない。例えば、サーバ１００で、送信する順序を示す順序情報がカードコマンドに対応付けられ、制御部２７０は、順序情報に従ってカードコマンドを媒体３００に送信する構成としてもよい。
【００３５】
続いて、制御部２７０は、媒体３００からカードレスポンスの受信を完了したか否かを判断する（Ｓ１１５）。このとき、制御部２７０は、受信が完了したと判断した場合、Ｓ１２０に処理を移し、他方、受信が未完了であると判断した場合、Ｓ１２５に処理を移す。
Ｓ１２０では、制御部２７０は、カードレスポンスを中継レスポンスとしてサーバ１００に送信し、処理を終了する。この際、制御部２７０は、カードコマンドを送信した回数を示す送信済情報を中継レスポンスに含める。なお、サーバ１００は、受信した中継レスポンスから、トランザクション鍵を用いて復号化した処理の結果とシーケンス番号とを読み出して整合性をチェックする。また、シーケンス番号については、ＨＤＤ１４０に記憶され、次回の暗号化が必要な中継コマンドの生成時に使用される。
【００３６】
Ｓ１２５では、制御部２７０は、カードコマンドを送信してから一定の時間が経過したか否かを判断する。このとき、制御部２７０は、一定の時間が経過したと判断した場合、Ｓ１３０に処理を移し、他方、一定の時間が経過していないと判断した場合、Ｓ１１５に処理を移す。
Ｓ１３０では、制御部２７０は、受信した中継コマンドに含まれる複数のカードコマンドのうち、送信していないカードコマンド（リトライ電文情報）が存在するか否かを判断する。このとき、制御部２７０は、存在すると判断した場合、Ｓ１１０に処理を移し、他方、存在しないと判断した場合、Ｓ１３５に処理を移す。
Ｓ１３５では、制御部２７０は、サーバ１００にエラーを示す情報を送信し、処理を終了する。
【００３７】
上述した構成によれば、媒体３００とＲＷ２００間で発生した通信エラーに対するカードコマンドの再送制御をＲＷ２００単独で行うことができる。更に、上述した構成によれば、暗号化に係る処理をＲＷ２００で行う必要がなくなるので、ＲＷ２００の構成を簡素化しつつ、一定水準以上の再送制御を確保したＲＷ２００とすることが可能となる。
【００３８】
また、本実施形態は、上述した構成に限られるものではない。例えば、ＳＱ２０５では、サーバ１００は、全てのカードコマンドを一個の中継コマンドとして送信したが、この構成に限られるものではない。
例えば、サーバ１００は、最初のカードコマンドを中継コマンドとしてＲＷ２００に送信し、その後、残りのカードコマンド（リトライ電文情報）を中継コマンドとしてＲＷ２００に送信する構成としてもよい。
この構成によれば、媒体３００が最初の指示コマンドの処理に着手するまでの時間をより短縮することができるようになり、媒体３００が通信可能範囲から外れて必要な通信が完結しない事態が発生する頻度をより低減することができる。
【００３９】
また、本実施形態では、暗号化を要するコマンドの再送制御について説明したが、暗号化を要しないコマンドについても同様の再送制御を適用できる。
例えば、ＳＱ２０５では、サーバ１００は、暗号化を要しない媒体３００への指示を含む指示コマンドを生成し、生成した指示コマンドを含むカードコマンド（平文コマンド）を生成する。即ち、サーバ１００は、ＨＤＤ１４０に記憶されている平文コマンドを送信する回数を示す送信回数情報を取得し、取得した送信回数情報に応じた数の平文コマンドを生成する。
また、ＳＱ２１０では、サーバ１００は、生成した複数の平文コマンドを中継コマンドとしてＲＷ２００に送信する。そして、ＳＱ２１５では、ＲＷ２００は、中継コマンドを受信すると、中継コマンドから一個の平文コマンドを取り出し、取り出した一個の平文コマンドを媒体３００に送信する。また、ＲＷ２００は、平文コマンドを送信してから一定の時間が経過したと判断するごとに、次の平文コマンドを媒体３００に送信する（ＳＱ２２０、ＳＱ２２５）。
【００４０】
＜第３の実施形態＞
本実施形態では、第２の実施形態で示した構成に比して、媒体３００とＲＷ２００間で発生した通信エラーに対するカードコマンドの再送制御を行うより簡素な構成について説明する。
本実施形態では、第２の実施形態の構成と同一の構成については同一の符号を用いて、その説明を適宜省略する。なお、受信時処理の構成が主に異なるので、受信時処理について説明するが、図示は省略する。
本実施形態の受信時処理では、第２の実施形態の受信時処理のうち、Ｓ１１５、Ｓ１２０、Ｓ１２５の処理を削除し、Ｓ１３５の処理を正常終了に代え、制御部２７０がカードレスポンスを受信すると中継レスポンスとしてサーバ１００に適宜のタイミングで送信する処理を採用する。即ち、制御部２７０は、媒体３００からのカードレスポンスの有無にかかわらず、中継コマンドから取り出した全てのカードコマンドを媒体３００に順次に送信する。
【００４１】
付言するならば、媒体３００がカードコマンドなどに基づいて行う処理については、限定されるものではない。例えば、カードコマンドには指示コマンドを識別可能な識別子が含まれ、媒体３００は、復号化した指示コマンドの処理を既に行ったか否かを識別子に基づいて判断する。
そして、媒体３００は、既に行ったと判断した場合、当該指示コマンドの処理を行わず、既に行われた処理の結果と更新したシーケンス番号とをカードレスポンスとしてＲＷ２００に送信する、或いは既に行われた処理をキャンセルし、当該指示コマンドに従って処理を行い、この処理の結果と更新したシーケンス番号とをカードレスポンスとしてＲＷ２００に送信する。
なお、何れの場合においても、媒体３００は、指示コマンドと共に復号化したシーケンス番号を更新したシーケンス番号をカードレスポンスに含める。
【００４２】
上述した構成によれば、第２の実施形態のＲＷ２００に比して本実施形態のＲＷ２００の構成をより簡素化しつつ、一定水準以上の再送制御を確保したＲＷ２００とすることが可能となる。
【００４３】
＜その他の実施形態＞
上述した各実施形態の構成は、適宜組み合わせて採用することができる。
【００４４】
以上、上述した構成によれば、情報処理装置からの指示情報を記憶媒体に送信する際の通信をより適切に制御することができるようになる。
【００４５】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４６】
１００  サーバ
２００  ＲＷ
３００  媒体
【図１】
0005882637.tif 000002
【図２】
0005882637.tif 000003
【図３】
0005882637.tif 000004
【図４】
0005882637.tif 000005
【図５】
0005882637.tif 000006
【図６】
0005882637.tif 000007
【図７】
0005882637.tif 000008