以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、刷新型の携帯型情報処理装置に対して本発明を適用した場合の実施の形態である。
先ず、図2を参照して、本実施形態に係るシステムの概要構成について説明する。図2は、本実施形態に係るシステムの一例を示す図である。図2に示すシステムSでは、刷新型の携帯型情報処理装置1、従来型(旧型)の認証装置2、及び刷新型の認証装置3等を備えている。なお、システムSには、従来型の携帯型情報処理装置が存在することもあり得るが、従来型の携帯型情報処理装置と、従来型の認証装置2または刷新型の認証装置3との間の動作については説明を省略する。
図2に示すように、携帯型情報処理装置1は、認証装置2、または認証装置3との間で、接触または非接触で通信を行うことが可能になっている。携帯型情報処理装置1は、本発明の処理方式判定装置の一例である。なお、携帯型情報処理装置1の例として、ICカード、スマートフォン等が挙げられる。
携帯型情報処理装置1は、図1に示すように、CPU(Central Processing Unit)11、コプロセッサ12、RAM(Random Access Memory)13、ROM(Read Only Memory)14、不揮発性メモリ15、及びI/O回路16を備えて構成される。CPU11、コプロセッサ12、RAM13、ROM14、不揮発性メモリ15、及びI/O回路16は、バス17に接続されている。不揮発性メモリ15は、本発明の記憶手段の一例である。不揮発性メモリ15の例として、フラッシュメモリが挙げられる。不揮発性メモリ15は、「Electrically Erasable Programmable Read-Only Memory」を適用しても構わない。
ROM14または不揮発性メモリ15は、CPU12に実行させるOS(オペレーティングシステム)及び命令処理プログラム(本発明の処理方式判定プログラムを含む)等のプログラムを記憶する。また、不揮発性メモリ15には、セキュアな記憶領域が設けられており、この記憶領域には、例えば、暗号鍵(例えば、携帯型情報処理装置1の秘密鍵と公開鍵の組と認証装置2の公開鍵、あるいは、携帯型情報処理装置1と認証装置2の共通鍵)、及び電子バリュー値等が記憶されている。
更に、不揮発性メモリ15は、1または複数の通信相手における複数の処理方式それぞれに応じた複数の有効期限情報を記憶する。ここで、通信相手とは、認証装置2または認証装置3を意味する。本実施形態において、処理方式には、認証装置2における認証処理方式と、認証装置3における認証処理方式とがある。認証装置2における認証処理方式(以下、「従来型の認証処理方式」という)と、認証装置3における認証処理方式(以下、「刷新型の認証処理方式」という)とは異なる。従来型の認証処理方式と刷新型の認証処理方式とは、例えば、認証プロトコル(命令シーケンス)や認証処理で用いられる暗号化及び復号方式(アルゴリズム)が異なる。また、従来型の認証処理方式と刷新型の認証処理方式とは、暗号鍵の強度(長さ)が異なる場合もある。なお、認証装置3は、従来型の認証処理方式と刷新型の認証処理方式との双方をサポートしている場合もあるが、この場合、刷新型の認証処理方式をメインの認証処理方式とする。携帯型情報処理装置1は、従来型の認証処理方式と刷新型の認証処理方式との双方をサポートしており、不揮発性メモリ15は、携帯型情報処理装置1がサポートしている認証処理方式を識別する識別情報を記憶する。
従来型の認証処理方式に応じた有効期限情報を、以下、「従来型の有効期限情報」といい、刷新型の認証処理方式に応じた有効期限情報を、以下、「刷新型の有効期限情報」という。従来型の有効期限情報が示す有効期限は、例えばシステム運営者が期待する刷新完了日時(例えば、図1に示す刷新完了日時T)の前日に設定される。一方、刷新型の有効期限情報が示す有効期限は、携帯型情報処理装置1の更新日時の例えば前日に設定される。例えば、携帯型情報処理装置1がICカードである場合、刷新型の有効期限情報が示す有効期限は、当該ICカードが再発行される日時に設定される。このため、従来型の有効期限情報が示す有効期限は、刷新型の有効期限情報が示す有効期限よりも先に到来する。従来型の有効期限情報が示す有効期限が経過すると、従来型の認証装置2は、後述する処理において、停止(失効)させられる。一方、刷新型の有効期限情報は、ICカードが定期的に更新(再発行)されるたびに更に未来の日付に更新されるため、認証装置3は停止されないようになっている。なお、上記有効期限情報は、携帯型情報処理装置1が該当する処理方式を使用することができる末日を特定するためのものであり、処理方式を失効する日付であってもよく、電子証明書の有効期限や暗号鍵の有効期限であってもよい。
ところで、従来型の有効期限情報、刷新型の有効期限情報、及び携帯型情報処理装置1がサポートしている認証処理方式を識別する識別情報は、例えば、不揮発性メモリ15に記憶されるファイルのレコードに格納される。ここで、不揮発性メモリ15に記憶されるファイルについて説明する。図3は、不揮発性メモリ15に記憶されるファイルの管理構造の一例を示す図である。図3の例では、MF(Master File)51、DF(Dedicated File)52、及びEF(Elementary File)52a,52b等の複数のファイルが示されている。なお、図3の例では、1つのDF52を示すが、複数のDFが不揮発性メモリ15に記憶(例えば、アプリケーション毎にDFが記憶)される場合もある。これらのファイルは、不揮発性メモリ15に記憶される定義情報により定義され、図3に示すような階層構造で管理される。このような階層構造の最上位には、MF51が位置し、MF51の配下にDF52が位置している。DF52はフォルダに相当し、その配下にはEF52a,52b等のファイルが位置している。EF52a,52b等のファイルは、データを格納するレコードを有する。各レコードには、各EF52a,52b内でレコード番号(図3の例では、Record#1, Record#2)が割り当てられている。このレコード番号は、CPU12に実行される命令処理プログラムにより指定されることができる。そして、図3の例では、EF52a内のRecord#1のレコードには従来型の有効期限情報がデータとして格納され、EF52a内のRecord#2のレコードには刷新型の有効期限情報がデータとして格納されている。また、EF52b内のRecord#1のレコードには携帯型情報処理装置1がサポートしている認証処理方式を識別する識別情報がデータとして格納されている。
コンピュータとしてのCPU11は、認証装置2、または認証装置3から命令(コマンド)を受信すると、OS上で命令処理プログラムに従って、後述する命令処理を実行する。この処理において、CPU11は、本発明における認証情報受信手段、認証手段、処理方式判定手段、有効期限送信手段、認証結果送信手段、及び読出命令受信手段等として機能する。ここで、認証装置2、または認証装置3から受信される命令のフォーマットについて説明する。図4は、認証装置2、または認証装置3から受信される命令のフォーマットの一例を示す図である。このようなフォーマットは、ISO/IEC7816−4で規定される。図4において、CLA、INS、P1、及びP2が命令(ヘッダともいう)を構成する。そして、命令の後には、Lc、Data、及びLeから構成されるボディが続くことになる。CLA(クラスバイト)は、命令クラス(種別)を示す。INS(インストラクションバイト)は、命令コードを示す。P1及びP2(パラメータバイト)は、INSに応じたパラメータを示す。例えば、命令が後述する認証命令である場合、P1及びP2には、従来型の認証処理方式を示す識別子、または刷新型の認証処理方式を示す識別子が含まれてもよい。Lc(Lcフィールド)は、Dataの長さ(ビット長)を示す。Data(データフィールド)は、命令処理に使用されるデータを示す。例えば、命令が認証命令である場合、Dataには、後述する認証コード、または、上記認証処理方式を示す識別子と認証コードが格納される。Le(Leフィールド)は、当該命令に対して返信されるレスポンスの最大長を示す。
I/O回路16は、認証装置2、または認証装置3とのインターフェイスを担う。I/O回路16は、接触または非接触で認証装置2、または認証装置3に接続される。例えば、携帯型情報処理装置1が接触式のICカードである場合、I/O回路16には、例えば、C1〜C8の8個の端子が備えられている。例えば、C1端子は電源端子、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は認証装置2、または認証装置3との間で通信(読取装置を介して通信)を行うための端子である。一方、携帯型情報処理装置1が非接触式のICカードである場合、I/O回路16には、例えば、アンテナ、及び変復調回路が備えられている。
認証装置2、及び認証装置3は、それぞれ、携帯型情報処理装置1と通信を行う読取装置と、携帯型情報処理装置1の認証を行う認証装置とが別体で構成され、当該読取装置と当該認証装置とが例えば有線または無線で接続されるように構成されてもよいし、あるいは、上記読取装置と上記認証装置とが一体的に構成されてもよい。認証装置2、及び認証装置3は、それぞれ、時計機能(カレンダー機能)を有し、暗号鍵(例えば、認証装置2の秘密鍵と公開鍵の組と携帯型情報処理装置1の公開鍵、あるいは、携帯型情報処理装置1と認証装置2の共通鍵)を記憶する。そして、認証装置2、及び認証装置3は、それぞれ、携帯型情報処理装置1を認証し、認証結果に応じて所定の処理を実行する。例えば、認証装置2、及び認証装置3には、それぞれ、その用途に応じた決済処理装置や機器制御装置などが接続され、認証結果に応じて各種命令を出力する。
次に、図5及び図6を参照して、本実施形態に係るシステムの動作について説明する。図5は、携帯型情報処理装置1と認証装置2との間の処理の流れの一例を示すシーケンス図である。図6は、携帯型情報処理装置1と認証装置3との間の処理の流れの一例を示すシーケンス図である。
先ず、図5の例では、携帯型情報処理装置1が、接触または非接触で認証装置2に接続されると、認証装置2は、開始命令(リセット命令)を携帯型情報処理装置1へ送信する(ステップS1)。携帯型情報処理装置1は、認証装置2から送信された開始命令を受信すると、初期応答情報を当該認証装置2へ送信する(ステップS2)。認証装置2は、携帯型情報処理装置1から送信された初期応答情報を受信すると、認証コードC1を生成し(ステップS3)、生成した認証コードC1(図4に示すDataに格納)と認証命令とを携帯型情報処理装置1へ送信する(ステップS4)。ここで、認証コードC1は、例えば、携帯型情報処理装置1から取得した乱数を、認証装置2の秘密鍵で署名することにより生成される。署名には、例えばDSAやRSA暗号方式等などが用いられる。なお、認証コードC1は、例えば、携帯型情報処理装置1から取得した乱数を、携帯型情報処理装置1と認証装置2の共通鍵で暗号化することにより生成されてもよい。
携帯型情報処理装置1は、認証装置2から送信された認証コードC1と認証命令とを受信すると、当該受信された認証コードC1に基づいて認証装置2の認証(認証コードC1の検証)を行う(ステップS5)。認証コードC1は、認証装置2の間の通信において認証装置2から送信された認証情報の一例である。例えば、携帯型情報処理装置1は、当該受信された認証コードC1を不揮発性メモリ15に記憶された公開鍵(認証装置2の公開鍵)で署名検証し、署名検証された値と、当該認証コードC1の基になった乱数(認証装置2へ送信された乱数)とが一致するか否かを判定することにより上記認証を行う。なお、携帯型情報処理装置1は、当該受信された認証コードC1を不揮発性メモリ15に記憶された共通鍵で復号し、復号された値と、当該認証コードC1の基になった乱数とが一致するか否かを判定することにより上記認証を行ってもよい。復号された値と当該認証コードC1の基になった乱数とが一致する場合、認証成功と判定される一方、両者が一致しない場合、認証失敗と判定される。なお、公開鍵で認証コードC1が署名検証できたことをもって、認証成功と判定されてもよい(この場合、復号された値と、乱数とが一致するか否かの判定を省略される)。認証成功と判定された場合、携帯型情報処理装置1は、認証コードC2を生成し(ステップS6)、生成した認証コードC2と認証結果とを認証装置2へ送信する(ステップS7)。ここで、認証コードC2は、例えば、認証装置2から取得した乱数を、携帯型情報処理装置1の秘密鍵で署名することにより生成される。なお、認証コードC2は、例えば、認証装置2から取得した乱数を、携帯型情報処理装置1と認証装置2の共通鍵で暗号化することにより生成されてもよい。なお、認証失敗と判定された場合、携帯型情報処理装置1は、その認証結果を認証装置2へ送信する。
認証装置2は、携帯型情報処理装置1から送信された認証コードC2と認証結果とを受信すると、当該受信された認証コードC2に基づいて携帯型情報処理装置1の認証(認証コードC2の検証)を行う(ステップS8)。例えば、認証装置2は、当該受信された認証コードC2を携帯型情報処理装置1の公開鍵で署名検証し、署名検証された値と、当該認証コードC2の基になった乱数とが一致するか否かを判定することにより上記認証を行う。なお、認証装置2は、当該受信された認証コードC2を共通鍵で復号し、復号された値と、当該認証コードC2の基になった乱数とが一致するか否かを判定することにより上記認証を行ってもよい。復号された値と当該認証コードC2の基になった乱数とが一致する場合、認証成功と判定される一方、両者が一致しない場合、認証失敗と判定される。なお、公開鍵で認証コードC2が署名検証できたことをもって、認証成功と判定されてもよい(この場合、復号された値と、乱数とが一致するか否かの判定を省略される)。認証装置2は、携帯型情報処理装置1から送信された認証結果が認証失敗であるか、または認証コードC2に基づく認証の結果が認証失敗であると判定した場合(ステップS8:NO)、認証装置2の動作を停止する(ステップS9)。一方、認証装置2は、携帯型情報処理装置1から送信された認証結果が認証成功であり、且つ認証コードC2に基づく認証の結果が認証成功であると判定した場合(ステップS8:YES)、有効期限読出命令を携帯型情報処理装置1へ送信する(ステップS10)。なお、認証装置2は、認証コードC2に基づく認証の結果が認証成功であると判定した場合、有効期限読出命令を携帯型情報処理装置1へ送信してもよい(この場合、認証装置2は、携帯型情報処理装置1から送信された認証結果を判断しない)。
携帯型情報処理装置1は、認証結果に応じて認証装置2から送信された有効期限読出命令を受信すると、当該有効期限読出命令に応じて、従来型の認証処理方式に応じた有効期限情報(例えば、認証装置2の刷新完了日の前日を示す情報)を不揮発性メモリ15から読み出し(取得し)、読み出した有効期限情報を認証装置2へ送信する(ステップS11)。
認証装置2は、携帯型情報処理装置1から送信された有効期限情報を受信すると、当該受信された有効期限情報が示す有効期限と、時計機能に基づく現在日時とを比較し、携帯型情報処理装置1が有効期間内にあるか否かを判定(有効期限を判定)する(ステップS12)。認証装置2は、携帯型情報処理装置1が有効期間内にない(有効期限が到来している)と判定した場合(ステップS12:NO)、認証装置2の動作を停止(失効)する(ステップS13)。一方、認証装置2は、携帯型情報処理装置1が有効期間内にあると判定した場合(ステップS12:YES)、書込命令を携帯型情報処理装置1へ送信する(ステップS14)。書込命令は、携帯型情報処理装置1に記憶されている電子バリュー値を加算または減算させるための命令、あるいはゲートを通過したログ情報を書き込ませるための命令である。携帯型情報処理装置1は、認証装置2から送信された書込命令を受信すると、当該書込命令に従って、不揮発性メモリ15に情報を書き込み、書込結果を認証装置2へ送信する(ステップS15)。
なお、読取装置と認証装置とが別体で構成されている場合、認証装置が携帯型情報処理装置1の認証(ステップS8)を行う一方、読取装置が携帯型情報処理装置1からの有効期間情報に基づく判定を行う(ステップS12)ように構成してもよい。
次に、図6の例では、携帯型情報処理装置1が、接触または非接触で認証装置3に接続されると、図5の例と同様、認証装置3は、開始命令を携帯型情報処理装置1へ送信する(ステップS21)。携帯型情報処理装置1は、認証装置3から送信された開始命令を受信すると、初期応答情報を当該認証装置3へ送信する(ステップS22)。認証装置3は、携帯型情報処理装置1から送信された初期応答情報を受信すると、識別情報読出命令を携帯型情報処理装置1へ送信する(ステップS23)。携帯型情報処理装置1は、認証装置3から送信された識別情報読出命令を受信すると、携帯型情報処理装置1がサポートしている認証処理方式を識別する識別情報を読み出し、読み出した識別情報を、認証装置3へ送信する(ステップS24)。認証装置3は、携帯型情報処理装置1から送信された識別情報を受信すると、当該識別情報により識別される認証処理方式を選択し、当該選択した認証処理方式にしたがって認証コードC3を生成し(ステップS25)、生成した認証コードC3と認証命令とを携帯型情報処理装置1へ送信する(ステップS26)。ここで、認証コードC3は、例えば、認証コードC1よりも強度が高くなっている。携帯型情報処理装置1は、認証装置3から送信された認証コードC3と認証命令とを受信すると、当該受信された認証コードC3に基づいて携帯型情報処理装置1がサポートしている認証処理方式で認証装置3の認証(認証コードC3の検証)を行う(ステップS27)。認証成功と判定された場合、携帯型情報処理装置1は、認証コードC4を生成し(ステップS28)、生成した認証コードC4と認証結果とを認証装置3へ送信する(ステップS29)。ここで、認証コードC4は、例えば、認証装置3から取得した乱数を、携帯型情報処理装置1の秘密鍵で署名、または共通鍵で暗号化することにより生成される。
認証装置3は、携帯型情報処理装置1から送信された認証コードC4と認証結果とを受信すると、当該受信された認証コードC4に基づいて携帯型情報処理装置1の認証(認証コードC4の検証)を行う(ステップS30)。例えば、認証装置3は、当該受信された認証コードC4を携帯型情報処理装置1の公開鍵で署名検証し、署名検証された値と、当該認証コードC4の基になった乱数とが一致するか否かを判定することにより上記認証を行う。なお、認証装置3は、当該受信された認証コードC4を共通鍵で復号し、復号された値と、当該認証コードC4の基になった乱数とが一致するか否かを判定することにより上記認証を行ってもよい。復号された値と当該認証コードC4の基になった乱数とが一致する場合、認証成功と判定される一方、両者が一致しない場合、認証失敗と判定される。なお、公開鍵で認証コードC4が署名検証できたことをもって、認証成功と判定されてもよい(この場合、復号された値と、乱数とが一致するか否かの判定を省略される)。認証装置3は、携帯型情報処理装置1から送信された認証結果が認証失敗であるか、または認証コードC4に基づく認証の結果が認証失敗であると判定した場合(ステップS30:NO)、認証装置3の動作を停止する(ステップS31)。一方、認証装置3は、携帯型情報処理装置1から送信された認証結果が認証成功であり、且つ認証コードC4に基づく認証の結果が認証成功であると判定した場合(ステップS30:YES)、有効期限読出命令を携帯型情報処理装置1へ送信する(ステップS32)。なお、認証装置3は、認証コードC4に基づく認証の結果が認証成功であると判定した場合、有効期限読出命令を携帯型情報処理装置1へ送信してもよい(この場合、認証装置3は、携帯型情報処理装置1から送信された認証結果を判断しない)。
携帯型情報処理装置1は、認証結果に応じて認証装置3から送信された有効期限読出命令を受信すると、当該有効期限読出命令に応じて、刷新型の認証処理方式に応じた有効期限情報を不揮発性メモリ15から読み出し(取得し)、読み出した有効期限情報を認証装置3へ送信する(ステップS33)。以降、ステップS34〜S37の処理は、図5に示すステップS12〜S15の処理と同様である。
次に、図7〜図11を参照して、図5または図6に示す動作において携帯型情報処理装置1が行う命令処理の詳細について、実施例1と実施例2とに分けて説明する。実施例1では、認証装置から受信した認証命令に示される認証処理方式が刷新型であると判定されたことに基づき認証装置情報を刷新型に設定するのに対し、実施例2では、認証装置から識別情報読出命令が受信されたことに基づき認証装置情報を刷新型に設定する点が異なる。ここで、認証装置情報とは、認証装置の認証処理方式が従来型であるか、あるいは刷新型であるかを示す情報である。携帯型情報処理装置1には、実施例1と実施例2との何れか一方の実施例をサポートする命令処理プログラムがインストールされる。図7は、実施例1と実施例2において、CPU11により実行される命令処理の一例を示すフローチャートである(つまり、図7に示す処理は、実施例1と実施例2とで共通する)。図8は、実施例1において、図7に示すステップS105の識別情報読出処理の詳細を示すフローチャートである。図9は、実施例1において、図7に示すステップS107の認証処理の詳細を示すフローチャートである。図10は、実施例2において、図7に示すステップS105の識別情報読出処理の詳細を示すフローチャートである。図11は、実施例2において、図7に示すステップS107の認証処理の詳細を示すフローチャートである。
(実施例1)
はじめに、図7〜図9を参照して、実施例1における命令処理の詳細について説明する。図7に示す処理は、携帯型情報処理装置1が、認証装置2または認証装置3から開始命令を受信したときに開始される。ここで受信される開始命令は、図5のステップS1に示す開始命令、または図6のステップS21に示す開始命令に相当する。図7に示す処理が開始されると、携帯型情報処理装置1のCPU11は、上記認証装置情報を従来型に初期設定(例えば、RAM13または不揮発性メモリ15に設けられた設定領域のフラグを“0”にセット)し、初期応答情報を、I/O回路16を介して、開始命令の送信元である認証装置へ送信し(ステップS101)、命令受信待ちとなる(ステップS102)。ここで送信される初期応答情報は、図5のステップS2に示す初期応答情報、または図6のステップS22に示す初期応答情報に相当する。
次いで、携帯型情報処理装置1のCPU11は、命令を受信したか否かを判定する(ステップS103)。携帯型情報処理装置1のCPU11は、命令を受信していないと判定した場合(ステップS103:NO)、ステップS102に戻る。一方、携帯型情報処理装置1のCPU11は、命令を受信したと判定した場合(ステップS103:YES)、ステップS104へ進む。
ステップS104では、携帯型情報処理装置1のCPU11は、受信した命令が識別情報読出命令であるか否かを判定する。携帯型情報処理装置1のCPU11は、受信した命令が識別情報読出命令であると判定した場合(ステップS104:YES)、ステップS105へ進む。ここで受信される識別情報読出命令は、図6のステップS23に示す識別情報読出命令に相当する。なお、携帯型情報処理装置1が従来型の認証装置2と通信する場合、当該認証装置2からは識別情報読出命令が送信されないため(図5参照)、ステップS103で受信された命令が識別情報読出命令と判定されることはない。一方、携帯型情報処理装置1のCPU11は、受信した命令が識別情報読出命令でないと判定した場合(ステップS104:NO)、ステップS106へ進む。
ステップS105の識別情報読出処理では、図8に示すように、携帯型情報処理装置1のCPU11は、携帯型情報処理装置1がサポートしている認証処理方式を識別する識別情報を、例えば不揮発性メモリ15に記憶されたレコード(図3の例では、EF52b内のRecord#1のレコード)から読み出し、読み出した識別情報を、I/O回路16を介して、認証装置2へ送信し(ステップS501)、図7に示す処理に戻る。ここで送信される識別情報は、図6のステップS24に示す識別情報に相当する。なお、ステップS105の識別情報読出処理は、携帯型情報処理装置1が刷新型の認証装置3と通信する場合にのみ実行される。
ステップS106では、携帯型情報処理装置1のCPU11は、受信した命令が認証命令であるか否かを判定する。携帯型情報処理装置1のCPU11は、受信した命令が認証命令であると判定した場合(ステップS106:YES)、ステップS107へ進む。この場合、受信された認証命令には、上述したように認証コードC1または認証コードC3が付加されている。ここで受信される認証命令は、図5のステップS4に示す認証命令、または図6のステップS26に示す認証命令に相当する。一方、携帯型情報処理装置1のCPU11は、受信した命令が認証命令でないと判定した場合(ステップS106:NO)、ステップS108へ進む。
ステップS107の認証処理では、図9に示すように、携帯型情報処理装置1のCPU11は、認証命令を送信した認証装置の認証処理方式は刷新型であるか否かを判定(つまり、認証命令を送信した認証装置における認証処理方式を判定)する(ステップS701)。例えば、認証命令と共に受信された認証コードの長さ(例えばビット長)が閾値以上である場合、当該認証装置の認証処理方式は刷新型であると判定される。認証コードの長さは、図4を用いて説明したように、認証命令に続くボディに含まれるLcまたはDataから特定することができる。あるいは、認証命令自体の形式、または認証命令に含まれる識別子から、認証命令を送信した認証装置の認証処理方式は刷新型であるか否かが判定されてもよい。認証命令自体の形式は、認証命令におけるCLA及びINSから特定することができる。認証命令に含まれる識別子は、従来型の認証処理方式または刷新型の認証処理方式を示すものであり、認証装置側で認証命令におけるP1及びP2に含まれる。ステップS701において、認証命令を送信した認証装置の認証処理方式は刷新型でないと判定された場合(ステップS701:NO)、ステップS702へ進む。なお、ステップS701において認証命令を送信した認証装置の認証処理方式が刷新型でないと判定された場合、上記認証装置情報が従来型に設定されるように構成してもよく、この場合、ステップS101において上記認証装置情報が従来型に初期設定されなくてもよい。一方、認証命令を送信した認証装置の認証処理方式は刷新型であると判定された場合(ステップS701:YES)、ステップS707へ進む。
ステップS702では、携帯型情報処理装置1のCPU11は、認証命令と共に受信された認証コードC1に基づいて認証装置2の認証(図5のステップS5に示す認証に相当)を行う。例えば、CPU11は、認証コードC1と演算命令とをコプロセッサ12へ出力する。コプロセッサ12は、演算命令に応じて、不揮発性メモリ15に記憶された上述した公開鍵で認証コードC1を署名検証するか、または共通鍵で認証コードC1を復号し、その値をCPUへ出力する。CPU11は、例えば、コプロセッサ12からの値と、当該認証コードC1の基になった乱数(認証装置2へ以前に送信された乱数)とが一致するか否かを判定することにより上記認証を行う。そして、携帯型情報処理装置1のCPU11は、認証成功であるか否かを判定する(ステップS703)。上記値と当該認証コードC1の基になった乱数とが一致する場合(あるいは、署名検証結果が良好である場合)、認証成功と判定される一方、両者が一致しない場合、認証失敗と判定される。認証成功であると判定された場合(ステップS703:YES)、ステップS704へ進む。一方、認証成功でないと判定された場合(ステップS703:NO)、ステップS706へ進む。
ステップS704では、携帯型情報処理装置1のCPU11は、コプロセッサ12に認証コードC2を生成(図5のステップS6に示す生成に相当)させる。例えば、CPU11は、認証装置2から以前に取得した乱数と演算命令とをコプロセッサ12へ出力する。コプロセッサ12は、演算命令に応じて、不揮発性メモリ15に記憶された上述した秘密鍵で乱数を署名するか、または共通鍵で乱数を暗号化し、これにより生成された認証コードC2をCPUへ出力する。CPU11は、コプロセッサ12により生成された認証コードC2を取得する。次いで、携帯型情報処理装置1のCPU11は、生成された認証コードC2と、認証成功を示す認証結果とを、I/O回路16を介して、認証装置2へ送信し(ステップS705)、図7に示す処理に戻る。ここで送信される認証結果は、図5のステップS7に示す認証結果に相当する。一方、ステップS706では、携帯型情報処理装置1のCPU11は、認証失敗を示す認証結果を、I/O回路16を介して、認証装置2へ送信し、図7に示す処理に戻る。ここで送信される認証結果は、図5のステップS7に示す認証結果に相当する。
ステップS707では、携帯型情報処理装置1のCPU11は、認証装置情報を刷新型に設定(例えば、RAM13または不揮発性メモリ15に設けられた設定領域のフラグを“1”にセット)する。つまり、ステップS701において認証命令を送信した認証装置の認証処理方式が刷新型であると判定されたことに基づき認証装置情報が刷新型に設定される。これにより、認証装置情報の設定は、従来型から刷新型に切り替わる。次いで、携帯型情報処理装置1のCPU11は、認証命令と共に受信された認証コードC3に基づいて、ステップS702と同じ要領で、認証装置3の認証(図6のステップS27に示す認証に相当)を行う(ステップS708)。そして、携帯型情報処理装置1のCPU11は、認証成功であるか否かを判定する(ステップS709)。認証成功であると判定された場合(ステップS709:YES)、ステップS710へ進む。一方、認証成功でないと判定された場合(ステップS709:NO)、ステップS712へ進む。ステップS710では、携帯型情報処理装置1のCPU11は、ステップS704と同じ要領で、コプロセッサ12に認証コードC4を生成(図6のステップS28に示す生成に相当)させる。次いで、携帯型情報処理装置1のCPU11は、生成された認証コードC4と、認証成功を示す認証結果とを、I/O回路16を介して、認証装置3へ送信し(ステップS711)、図7に示す処理に戻る。ここで送信される認証結果は、図6のステップS29に示す認証結果に相当する。一方、ステップS712では、携帯型情報処理装置1のCPU11は、認証失敗を示す認証結果を、I/O回路16を介して、認証装置3へ送信し、図7に示す処理に戻る。ここで送信される認証結果は、図6のステップS29に示す認証結果に相当する。
図7の処理に戻り、ステップS108では、携帯型情報処理装置1のCPU11は、受信した命令が有効期限読出命令であるか否かを判定する。携帯型情報処理装置1のCPU11は、受信した命令が有効期限読出命令であると判定した場合(ステップS108:YES)、ステップS109へ進む。ここで受信される有効期限読出命令は、図5のステップS10に示す有効期限読出命令、または図6のステップS32に示す有効期限読出命令に相当する。一方、携帯型情報処理装置1のCPU11は、受信した命令が有効期限読出命令でないと判定した場合(ステップS108:NO)、ステップS112へ進む。
ステップS109では、携帯型情報処理装置1のCPU11は、認証装置情報が刷新型に設定されているか否かを判定する。携帯型情報処理装置1のCPU11は、認証装置情報が刷新型に設定されていると判定した場合(ステップS109:YES)、刷新型の認証処理方式に応じた「刷新型の有効期限情報」を不揮発性メモリ15に記憶されたレコード(図3の例では、EF52a内のRecord#2のレコード)から読み出し(取得し)、読み出した有効期限情報を、I/O回路16を介して、認証装置3へ送信し(ステップS110)、ステップS102に戻る。ここで送信される刷新型の有効期限情報は、図6のステップS33に示す有効期限情報に相当する。一方、携帯型情報処理装置1のCPU11は、認証装置情報は刷新型に設定されていないと判定した場合(ステップS109:NO)、従来型の認証処理方式に応じた「従来型の有効期限情報」を不揮発性メモリ15に記憶されたレコード(図3の例では、EF52a内のRecord#1のレコード)から読み出し(取得し)、読み出した有効期限情報を、I/O回路16を介して、認証装置2へ送信し(ステップS111)、ステップS102に戻る。ここで送信される従来型の有効期限情報は、図5のステップS11に示す有効期限情報に相当する。
ステップS112では、携帯型情報処理装置1のCPU11は、受信した命令が書込命令であるか否かを判定する。携帯型情報処理装置1のCPU11は、受信した命令が書込命令であると判定した場合(ステップS112:YES)、ステップS113へ進む。ここで受信される書込命令は、図5のステップS14に示す書込命令、または図6のステップS36に示す書込命令に相当する。一方、携帯型情報処理装置1のCPU11は、受信した命令が書込命令でないと判定した場合(ステップS112:NO)、異常命令応答を出力し(ステップS117)、ステップS102に戻る。
ステップS113では、携帯型情報処理装置1のCPU11は、書き込み処理を実行する。この書き込み処理では、携帯型情報処理装置1のCPU11は、例えば、不揮発性メモリ15に記憶されている電子バリュー値を加算または減算する。あるいは、携帯型情報処理装置1のCPU11は、ゲートを通過したログ情報を不揮発性メモリ15に書き込む。次いで、携帯型情報処理装置1のCPU11は、不揮発性メモリ15に正常に書き込めたか否かを判定する(ステップS114)。携帯型情報処理装置1のCPU11は、正常に書き込めたと判定した場合(ステップS114:YES)、書込成功情報を、I/O回路16を介して、書込命令の送信元である認証装置へ送信し(ステップS115)、ステップS102に戻る。ここで送信される書込成功情報は、図5のステップS15に示す書込結果、または図6のステップS37に示す書込結果に相当する。一方、携帯型情報処理装置1のCPU11は、正常に書き込めないと判定した場合(ステップS114:NO)、書込失敗情報を、I/O回路16を介して、書込命令の送信元である認証装置へ送信し(ステップS116)、ステップS102に戻る。
(実施例2)
次に、図7、図10、及び図11を参照して、実施例2における命令処理の詳細について説明する。実施例2においても、実施例1と同様、図7に示す処理は、携帯型情報処理装置1が、認証装置2または認証装置3から開始命令を受信したときに開始される。図7に示すステップS101〜S104、S106、及びS108〜S116の処理は、実施例1と同様であるので、重複する説明を省略する。
ステップS105の識別情報読出処理は、実施例1とは異なり、図10に示す処理が行われる。すなわち、携帯型情報処理装置1のCPU11は、図10に示すように、認証装置情報を刷新型に設定(例えば、RAM13または不揮発性メモリ15に設けられた設定領域のフラグを“1”にセット)する(ステップS511)。つまり、ステップS104において認証装置から識別情報読出命令が受信されたことに基づき認証装置情報が刷新型に設定される。次いで、携帯型情報処理装置1のCPU11は、携帯型情報処理装置1がサポートしている認証処理方式を識別する識別情報を、例えば不揮発性メモリ15に記憶されたレコード(図3の例では、EF52b内のRecord#1のレコード)から読み出し、読み出した識別情報を、I/O回路16を介して、認証装置2へ送信し(ステップS512)、図7に示す処理に戻る。ここで送信される識別情報は、図6のステップS24に示す識別情報に相当する。なお、ステップS105の識別情報読出処理は、携帯型情報処理装置1が刷新型の認証装置3と通信する場合にのみ実行される。
次に、ステップS107の認証処理は、実施例2とは異なり、図11に示す処理が行われる。すなわち、携帯型情報処理装置1のCPU11は、図11に示すように、認証装置情報が刷新型に設定されているか否かを判定する。携帯型情報処理装置1のCPU11は、認証装置情報が刷新型に設定されていないと判定した場合(ステップS721:NO)、ステップS722へ進む。つまり、ステップS511の処理が行われなった場合、認証装置情報は従来型に初期設定されているので、ステップS722へ進む。一方、携帯型情報処理装置1のCPU11は、認証装置情報が刷新型に設定されていると判定した場合(ステップS721:YES)、ステップS727へ進む。
ステップS722では、携帯型情報処理装置1のCPU11は、認証命令と共に受信された認証コードC1に基づいて認証装置2の認証を行う。次いで、携帯型情報処理装置1のCPU11は、認証成功であるか否かを判定する(ステップS723)。上記値と当該認証コードC1の基になった乱数とが一致する場合(あるいは、署名検証結果が良好である場合)、認証成功と判定される一方、両者が一致しない場合、認証失敗と判定される。認証成功であると判定された場合(ステップS723:YES)、認証コードC2が生成され(ステップS724)、生成された認証コードC2と、認証成功を示す認証結果とが、認証装置2へ送信され(ステップS725)、図7に示す処理に戻る。一方、認証成功でないと判定された場合(ステップS723:NO)、認証失敗を示す認証結果が、認証装置2へ送信され(ステップS726)、図7に示す処理に戻る。なお、ステップS722〜S726の処理は、図9に示す702〜S706の処理と同様である。
一方、ステップS727では、携帯型情報処理装置1のCPU11は、認証命令と共に受信された認証コードC3に基づいて、認証装置3の認証を行う。次いで、携帯型情報処理装置1のCPU11は、認証成功であるか否かを判定する(ステップS728)。認証成功であると判定された場合(ステップS728:YES)、認証コードC4が生成され(ステップS729)、生成された認証コードC4と、認証成功を示す認証結果とが、認証装置3へ送信され(ステップS730)、図7に示す処理に戻る。一方、認証成功でないと判定された場合(ステップS728:NO)、認証失敗を示す認証結果が認証装置3へ送信され(ステップS731)、図7に示す処理に戻る。なお、ステップS727〜S730の処理は、図9に示す708〜S712の処理と同様である。
なお、上記実施例1または実施例2において、認証装置が携帯型情報処理装置1から送信された認証結果を判断せずに、有効期限読出命令を送信する構成の場合、携帯型情報処理装置1のCPU11は、上記ステップS702、ステップS708、ステップS722、またはステップS727の認証結果を記憶しておき、当該記憶された認証結果が認証成功であるか否かを、図7のステップS109で判定し、認証成功であると判定した場合(認証成功が記憶されている場合)に、認証装置情報は刷新型に設定されているか否かを判定することになる。なお、認証成功でないと判定された場合、有効期限情報は送信されず、異常命令応答が出力される。
図12は、従来型の有効期限情報と刷新型の有効期限情報とを記憶する携帯型情報処理装置1により、従来型の認証装置が停止されることを示す概念図である。図12の例では、ケースβの場合において、従来型の有効期限により、期待される刷新完了日時Tに、従来型の認証装置が使用不可となる。一方、従来型の有効期限より先に設定された刷新型の有効期限まで刷新型の認証装置は使用可能であり、その後も携帯型情報処理装置1の更新により刷新型の認証装置は使用可能となる。
以上説明したように、上記実施形態によれば、携帯型情報処理装置1は、複数の認証処理方式それぞれに応じた複数の有効期限情報を記憶しておき、認証装置との間の通信において当該認証装置における認証処理方式を判定し、判定した認証処理方式に応じた有効期限情報を不揮発性メモリ15から取得し、取得した有効期限情報を認証装置へ送信するように構成したので、残存する希少な従来型の認証装置を停止させ、従来の方式をシステムから容易に排除させることができる。
なお、上記実施形態においては、通信相手における処理方式として認証処理方式を例にとって説明したが、通信相手における処理方式は、通信相手における機器の制御処理方式であってもよい。この場合、例えば、建物内の部屋の出入口のドアの開閉を制御する機器の制御処理方式に違い(例えば、曜日によって異なる)があれば、制御処理方式ごとに有効期限情報を設定することができる。また、上記実施形態においては、通信相手として、認証装置2と認証装置3を例にとって説明したが、通信相手は、装置において動作するOS等であってもよい。また、通信相手における処理方式は、3つ以上あってもよい。例えば、処理方式1、処理方式2、処理方式3、及び処理方式4と4つの異なる処理方式がある場合、通信相手における複数の処理方式それぞれに応じた有効期限情報とは、処理方式1に応じた有効期限情報1、処理方式2に応じた有効期限情報2、処理方式3に応じた有効期限情報3、及び処理方式4に応じた有効期限情報4というように解釈する。あるいは、有効期限情報2〜4が同一であってもよく、この場合、通信相手における複数の処理方式それぞれに応じた有効期限情報とは、処理方式1に応じた有効期限情報1と、処理方式1以外(つまり、処理方式2〜4)に応じた有効期限情報2というように解釈する。
また、上記実施形態においては、不揮発性メモリ15には、通信相手における複数の処理方式それぞれに応じた複数の有効期限情報を記憶するように構成したが、有効期限情報が例えばICカード発行時の発行処理データとして不揮発性メモリ15に記録されていなくてもよく、当該有効期限情報は、計算によって導き出されたり、あるいはプログラム中に直接記述(ハードコーディング)されたりするものであってもよい。また、当該有効期限情報の応答にあたり、携帯型情報処理装置1は、応答する情報が有効期限情報であると認識せずに応答してもよい。