"上位装置と情報処理装置との間で情報の送受信を行う情報処理システムであって、前記上位装置は、共通鍵暗号方式を用いて前記情報処理装置が正当な機器であることを認証する上位装置側認証処理部と、前記上位装置と前記情報処理装置とが共通して保有する機器認証情報を生成する認証情報アルゴリズムを有し、前記情報処理装置が所有する機器固有情報に基づいて前記機器認証情報を生成する認証情報生成部とを備え、前記情報処理装置は、前記上位装置と認証処理を行う情報処理装置側認証処理部と、前記機器認証情報および前記機器固有情報を記憶する不揮発性記憶部とを備えたことを特徴とする情報処理システム。前記上位装置側認証処理部は、暗号部と、復号部と、乱数発生部とを有し、前記暗号部は、前記共通鍵暗号方式で用いる暗号アルゴリズムに従って所定の情報を暗号化し、前記復号部は、前記共通鍵暗号方式で用いる復号アルゴリズムに従って前記暗号化された所定の情報を復号化し、前記乱数発生部は、乱数を生成する乱数生成アルゴリズムに従って通信用交換鍵および乱数を発生させることを特徴とする請求項1に記載の情報処理システム。前記情報処理装置の前記機器固有情報は、シリアル番号であることを特徴とする請求項1または2に記載の情報処理システム。しかしながら、上述したように、共通鍵暗号方式を用いて機器認証を行う場合、ホストコンピュータとカードリーダとの両者で、予め同一の機器認証情報を保持する必要がある。このため、初期カードリーダの工場出荷時において、カードリーダの製造者が機器認証情報を作成してカードリーダに保持させるとともに、カードリーダのユーザーにホストコンピュータに保持させるべき機器認証情報を提供するようにしていたので、どんなに安全な方法といえども機器認証情報の漏えい洩リスクが高くなるという問題がある。本発明は、このような事情に鑑み、機器認証情報の漏えいを防止し、よりセキュリティ性の高い機器認証が可能な情報処理システムを提供することを目的とする。上記の課題を解決するため、本発明の情報処理システムは、上位装置と情報処理装置との間で情報の送受信を行う情報処理システムであって、前記上位装置は、共通鍵暗号方式を用いて前記情報処理装置が正当な機器であることを認証する上位装置側認証処理部と、前記上位装置と前記情報処理装置とが共通して保有する機器認証情報を生成する認証情報アルゴリズムを有し、前記情報処理装置が所有する機器固有情報に基づいて前記機器認証情報を生成する認証情報生成部とを備え、前記情報処理装置は、前記上位装置と認証処理を行う情報処理装置側認証処理部と、前記機器認証情報および前記機器固有情報を記憶する不揮発性記憶部とを備えたことを特徴とする。本発明の情報処理システムでは、情報処理装置の機器固有情報に基づいて生成された機器認証情報を用いて、情報処理装置と上位装置との間で機器認証が行われることから、機器認証情報の漏えいを防止し、よりセキュリティ性の高い機器認証ができる。また、本発明の情報処理システムは、前記上位装置側認証処理部は、暗号部と、復号部と、乱数発生部とを有し、前記暗号部は、前記共通鍵暗号方式で用いる暗号アルゴリズムに従って所定の情報を暗号化し、前記復号部は、前記共通鍵暗号方式で用いる復号アルゴリズムに従って前記暗号化された所定の情報を復号化し、前記乱数発生部は、乱数を生成する乱数生成アルゴリズムに従って通信用交換鍵および乱数を発生させることが好ましい。本発明の情報処理システムでは、たとえ、同一の情報が送信される場合であっても、通信用交換鍵Kex、乱数Rは乱数発生部で生成されるたびに異なるため、これらを用いて暗号化された情報の送信データも異なったものとなる。したがって、上位装置と情報処理装置との信号を傍受しておき、情報処理装置を使わずに傍受したのと同様の信号を別の情報処理装置に送出したとしても、通信用交換鍵Kex、乱数Rが異なるために信号が一致することはなく、不正操作を防止することができる。さらに、本発明の情報処理システムは、前記情報処理装置の前記機器固有情報は、シリアル番号であることが好ましい。本発明の情報処理システムでは、機器固有情報に情報処理装置のシリアル番号を用いたので、従来使用している機器固有情報であり、新たに設定する必要もない。本発明によれば、情報処理装置の機器固有情報に基づいて生成された機器認証情報を用いて、情報処理装置と上位装置との間で機器認証が行われることから、機器認証情報の漏えいを防止し、よりセキュリティ性の高い機器認証を行うことができる。以下、本発明の実施の形態について説明する。[発明の実施の形態1]図1は、本発明の実施の形態1に係る情報処理システムを示すブロック図である。情報処理システムの構成この実施の形態1に係る情報処理システム1は、図1に示すように、上位装置としてのホストコンピュータ2と、このホストコンピュータ2に通信手段を介して接続された情報処理装置としてのカードリーダ3とから構成されている。なお、本実施の形態では、通信手段はRS232CやUSBのような有線のケーブルである。なお、通信手段は、これら有線に限定されることなく、LANで接続でもよく、または、無線であってもよい。ホストコンピュータの構成ホストコンピュータ2は、図1に示すように、認証処理部20、制御部25、通信部26、記憶部27、認証情報生成部28から主に構成される。認証処理部20は、カードリーダ3との間で認証処理を行う。具体的には、本実施の形態では、認証処理部20は、乱数発生部21、暗号部22、復号部23、認証判定部24から構成され、機器認証に必要な各部の制御を行う。乱数発生部21は、通信用交換鍵Kexnnは整数。以下同じおよび乱数Rnnは整数。以下同じを生成する。乱数発生部21は、通信用交換鍵Kexn、乱数Rnを生成するアルゴリズム以下、乱数生成アルゴリズムというを予め記憶している。通信用交換鍵Kexnは、ホストコンピュータ2とカードリーダ3とが互いにデータを暗号化して送信する際に用いられる暗号鍵本実施の形態では、復号鍵も同じである。乱数Rnは、データを暗号化して送信する際に、機器認証情報等とともに送信されるデータである。通信用交換鍵Kexn、乱数Rnは、ホストコンピュータ2とカードリーダ3との間で実行される機器認証処理や機器認証情報生成ごとに異なっている。本実施の形態では、通信用交換鍵Kexnは機器認証処理ごとに異なるように生成されている。また、乱数Rnは、機器認証処理および機器認証情報生成ごとに異なるように生成されている。このように、たとえ、同一の機器認証情報が送信される場合であっても、乱数発生部21で生成される度に通信用交換鍵Kexn、乱数Rnが異なるため、これらを用いて暗号化された送信データも異なったものとなる。したがって、ホストコンピュータ2とカードリーダ3との信号を傍受しておき、カードリーダ3を使わずに傍受したのと同様の信号を別のカードリーダに送出したとしても、通信用交換鍵Kexn、乱数Rnが異なるために信号が一致することはなく、不正操作を防止することができる。このため、通信の盗聴や第三者による解読をさらに困難なものにし、よりセキュリティ性を高くしている。暗号部22は、3DESトリプルDESにより規格されている暗号アルゴリズムEを予め記憶している。暗号部22は、乱数発生部21で生成した乱数Rnに暗号アルゴリズムEに従って暗号化された乱数Rneを生成する。このとき、通信用交換鍵Kexnを暗号アルゴリズムEの鍵とする。暗号化された乱数Rneは、次の数1に示すように表現できる。数1Rne=EKexn,Rn3DESについてまた、本実施の形態で使用する暗号方式は、暗号化のための鍵暗号鍵と復号化のための鍵復号鍵とが同じ鍵であることを特徴とする共通鍵暗号方式が用いられている。さらに、この共通鍵暗号方式の中でも、DESDataEncryptionStandardの略は、1977年に米国情報処理標準規格FEDERALINFORMATIONPROCESSINGSTANDARDSPUBLICATION:FIPS-PUB46-3として規定され、最も広く利用されている暗号方式の1つである。さらに、本実施の形態では、DESから3DESにし、DESに比べて解読しにくくしている。3DESは、DESのアルゴリズムを3回繰り返す暗号方式であり、DESのアルゴリズムを流用することができる、さらに、暗号鍵の鍵長を拡張するのと同様の効果を得ることができ、比較的容易に暗号強度を高めることができる。復号部23は、DESにより規格されている復号アルゴリズムDを予め記憶している。復号部23は、暗号化された乱数Rneを復号アルゴリズムDに従って復号化した乱数Rnを生成する。このとき、通信用交換鍵Kexnを復号アルゴリズムDの鍵とする。生成された乱数Rnは、次の数2に示すように表現できる。数2Rn=DKexn,Rne認証判定部24は、カードリーダ3から返され復号部23で復号された機器認証情報に基づき、カードリーダ3が正当な装置であるか、不正な装置であるかを判定する。具体的には、復号部23から受け取った乱数R’と、乱数発生部21で生成され記憶部27に格納されていた乱数Rとを比較し、乱数R’と乱数Rとが一致すれば、ホストコンピュータ2が接続されたカードリーダ3を正しい装置であると正当性を認証する。また、乱数R’と乱数Rとが一致していなければ、ホストコンピュータ2は接続されたカードリーダ3を不正な装置であると判定する。制御部25は、ホストコンピュータ2全体、すなわち、認証処理部20、通信部26、記憶部27、認証情報生成部28を含めたホストコンピュータ2全体を制御する。具体的には、制御部25には、図示しないが、制御用プログラムなどを用いて様々な演算処理を行い、ホストコンピュータ2全体を制御するCPU、ホストコンピュータ2が処理を実行する際に必要な作業データがコピーされる書換え可能なメモリであって、CPUが使用するプログラムや演算パラメータなどの制御用データが記録されたROM、CPUの作業領域としても機能するRAM等により構成されている。また、制御部25のROMには、初期カードリーダ3の工場出荷時においてカードリーダ3の製造者が作成し提供する仮の機器認証情報Ktが、安全な方法で保持されている。仮の機器認証情報Ktは、ホストコンピュータ2とカードリーダ3との間で送受信されるデータを共通鍵暗号方式を用いて暗号通信するのに先立ち、共通鍵としての通信用交換鍵Kexを生成するためのものである。なお、通信用交換鍵Kexを生成する処理についての説明は後述する。また、ホストコンピュータ2は、種々のシステム制御のためのプログラムやパラメータを格納するための不揮発性メモリやハードディスク装置を備えていてもよく、そこに仮の機器認証情報Ktを格納するようにしてもよい。通信部26は、カードリーダ3の通信部35との間で通信手段としてのケーブル通信回線を介して通信を行う。なお、通信手段は、本実施の形態ではケーブル等の有線であるが、これに限定されるものではなく、無線でもよい。記憶部27は、揮発性のメモリであり、乱数発生部21で生成された通信用交換鍵Kexnおよび乱数Rnを格納している。認証情報生成部28は、機器認証情報Kmを生成する認証情報アルゴリズムを記憶しており、カードリーダ3のシリアル番号が入力されることで、機器認証を行うための機器認証情報Kmを生成する。ここで、シリアル番号とはカードリーダ3の個々の機体に製造ごとに割り付けられる製造番号であるが、シリアル番号以外のカードリーダ3固有の固有情報例えば、ID番号や機器番号等であってもよい。なお、本実施の形態では、認証情報アルゴリズムは、ホストコンピュータ2を管理する情報処理システム1のユーザー例えば、運用管理者がソースコード機器認証情報Kmを生成するための認証情報アルゴリズム原始プログラムを作成し、カードリーダ3の製造者からカードリーダ3のシリアル番号の提供を受けて機器認証情報Kmを生成する独自のアルゴリズムを組み込むようにしている。これにより、装置運用管理者独自の、機器認証情報Kmを生成する認証情報アルゴリズム認証情報を生成するプログラムを完成させるようにする。また、認証情報生成部28で生成された機器認証情報Kmは、カードリーダ3側へ機器認証情報Kmを設定する動作が終わり次第に消去している。すなわち、ホストコンピュータ2は、カードリーダ3が新たに接続され、または改めて接続し直されて機器認証動作を開始するごとに、接続されたカードリーダ3のシリアル番号に基づき機器認証情報Kmを生成し直すものである。これにより、ホストコンピュータ2は、どのカードリーダ3が接続されるか予測できない場合でも、接続される可能性のある全てのカードリーダ3に対応する形で機器認証情報Kmを長期間にわたって保持する必要はない。また、ホストコンピュータ2で機器認証情報Kmを保持し続けるために、ファイルやレジストリ等にこれを出力する必要もない。つまり、機器認証情報Kmが流出するリスクを減少させ、セキュリティを確保することができ、さらに、メモリ領域を削減することが可能となる。カードリーダの構成カードリーダ3は、図1に示すように、認証処理および3DESの暗号化/復号化を行う認証処理部30と、カードリーダ3全体の制御を行う制御部34と、ホストコンピュータ2側との通信を行う通信部35と、揮発性の記憶部36と、不揮発性記憶部としてのEEPROM37とを有している。さらに、認証処理部30は、暗号部31、復号部32、認証判定部33から構成されている。ここで、制御部34、通信部35はそれぞれホストコンピュータ2の制御部25、通信部26と同等の機能を有し、詳細な説明は省略する。同様に、認証処理部30を構成する暗号部31、復号部32は、ホストコンピュータ2の暗号部22、復号部23と同様の暗号アルゴリズムEおよび復号アルゴリズムDを備えて同等の機能を有しているので、ここでの詳細な説明は省略する。認証判定部33は、ホストコンピュータ2の乱数生成部21で生成された後、暗号化されてカードリーダ3に送信された機器認証情報Kmを復号化した復号部32から送信された通信用交換鍵Kexnのデータの有効性ひいては、ホストコンピュータ1から受信したデータが有効であるか否かをチェックする。具体的には、パリティチェックや脆弱鍵であるかどうかをチェックしている。パリティチェックはデータの誤りエラーを検出する手法の一つである。また、脆弱鍵とは、共通鍵暗号技術としてのDESにおいてセキュリティ上で好ましくないとされる鍵4個の脆弱鍵と12個の準脆弱鍵であり、それと一致するかどうかをチェックしている。なお、4個の脆弱鍵と12個の準脆弱鍵は公表されているので、ここでの説明は省略する。記憶部36は揮発性であり、ホストコンピュータ2の乱数生成部21で生成された後、送信された復号部32で復号された機器認証情報Kmのうち認証判定部33で有効であると判定された通信用交換鍵Kexnを格納する。EEPROM37は、不揮発性であり、仮の機器認証情報Ktおよび機器認証情報Km、カードリーダ3のシリアル番号を格納している。すなわち、カードリーダ3は、電源立ち上げ時またはリセット時においても、機器認証情報Kmを消去せずに保持している。機器認証情報の設定動作以下、機器認証情報Kmを設定する動作について説明する。図2は、実施の形態1に係る情報処理システム1における機器認証情報Km共通鍵を設定する動作を示す流れ図である。図3は、図2の機器認証情報Km共通鍵を設定する動作に対応するフローチャートを示す図である。情報処理システム1においては、カードリーダ3がホストコンピュータ2にケーブル通信回線を介して接続された時点で、このカードリーダ3のシリアル番号に基づく機器認証情報Kmを設定する動作が実行される。以下、この機器認証情報Kmを設定する動作を図2および図3に基づいて詳述する。初期工場出荷時において、カードリーダ3およびホストコンピュータ2は共通暗号鍵として仮の機器認証情報Ktを保持している。例えば、仮の機器認証情報Ktは、カードリーダ3の機種を示す機種番号である。機種番号は、機体固有のシリアル番号とは異なり、同一の機種に共通の番号または記号である。まず、ホストコンピュータ2の制御部25が、機器認証情報Kmを設定する処理を開始する。具体的には、ホストコンピュータ2から機器認証を行うための要求コマンドが通信部26、通信部35を介して、カードリーダ3に送信される。カードリーダ3は、要求コマンドを受信した旨、通信部35、通信部26を介してホストコンピュータ2に返信される。次に、ホストコンピュータ2の認証処理部20の乱数発生部21は、制御部25の指令により、通信用交換鍵Kexnおよび乱数Rnを生成するステップS1。なお、第1回目の生成であるので、nは1とする。すなわち、乱数発生部21は、乱数生成アルゴリズムに従って通信用交換鍵Kex1、乱数R1を生成する。また、生成した通信用交換鍵Kex1および乱数R1は、記憶部27に格納される。その後、認証処理部20の暗号部22は、これらの通信用交換鍵Kex1および乱数R1を、仮の機器認証情報Ktを用いて3DESの暗号アルゴリズムEに従って暗号化し、暗号データC1=EKt,Kex1R1を生成するステップS2。ここでは、仮の機器認証情報Ktを暗号アルゴリズムEの鍵として使用している。なお、Kex1R1は、通信用交換鍵Kex1のデータと乱数R1のデータが入れ子のようになっている。また、ホストコンピュータ2は、制御部25の指令により、暗号データC1を通信部26経由でカードリーダ3へ送信する。次いで、カードリーダ3は、これを通信部35経由で受信するステップS3。認証処理部30は、受信した暗号データC1を、カードリーダ2が予め保持している仮の機器認証情報Ktを用いて3DESの復号アルゴリズムDに従って復号化し、Kex1R1=DKt,C1により、通信用交換鍵Kex1および乱数R1を復号化する。ここでは、カードリーダ2が予め保持している仮の機器認証情報Ktを暗号アルゴリズムEの鍵として使用している。さらに、カードリーダ3の認証処理部30の認証判定部33は、復号化した、ホストコンピュータ2が保持する通信用交換鍵Kexが正しいか否かを確認するステップS4。ここでは、通信用交換鍵Kex1のデータのパリティチェックコードが正しいかどうかを確認している。また、通信用交換鍵Kex1のデータが、3DESとしてセキュリティ上で好ましくないとされる鍵4個の脆弱鍵と12個の準脆弱鍵と一致するかどうかをチェックしている。その結果、認証判定部33は、通信用交換鍵Kexが正しくないと判定した場合、カードリーダ3は、エラーをホストコンピュータ2へ返して機器認証情報Kmを設定する動作を終了させるステップS20。また、ステップS4に戻り、通信用交換鍵Kex1が正しいと判定した場合、カードリーダ3の認証処理部30は、復号化した通信用交換鍵Kex1および乱数R1を記憶部36に格納する。引き続き、認証処理部30の暗号部31は、復号化した乱数R1を、復号化した通信用交換鍵Kex1を用いて3DESの暗号アルゴリズムEに従って暗号化し、暗号データC2=EKex1,R1を生成する。生成した暗号データC2を、カードリーダ3は、制御部34の指令により通信部35経由でホストコンピュータ2へ送信するステップS5。なお、送信後、漏えい等を含めセキュリティ性を高めるために、乱数R1を消去する。次に、ホストコンピュータ2は、暗号データC2を通信部26経由で受信する。認証処理部20の復号部23は、受信した暗号データC2を、記憶部27に保持している通信用交換鍵Kex1を用いて3DESの復号アルゴリズムDに従って復号化し、R1=DKex1,C2により、乱数R1を復号化するステップS6。そして、認証判定部24は、復号化した乱数R1が、元の乱数R1と一致するか否かを確認するステップS7。つまり、ステップS1で、ホストコンピュータ2の乱数発生部21が生成した乱数R1と、カードリーダ3から送信されてきた乱数R1とを比較し、両者が一致するか否かを確認する。確認後、漏えい等を含めセキュリティ性を高めるために、乱数R1は消去する。その結果、乱数R1が一致しなければ、ホストコンピュータ2の認証処理部20は、エラーを制御部25に出力する。制御部25は、接続されているカードリーダ3の正当性が認証確認できなかったので、機器認証情報Kmを設定する動作を終了させるステップS20。また、ステップS7に戻り、乱数R1が一致した場合、認証処理部20は制御部25に一致したことを出力する。制御部25は、カードリーダ3の正当性が確認認証できたと判断し、引き続き、機器認証情報Kmを設定する動作を実行する。具体的には、制御部25は、カードリーダ3の固有情報としてのシリアル番号をホストコンピュータ2に送信するようカードリーダ3に対して要求するステップS8。そして、カードリーダ3の制御部34は、シリアル番号送信の要求を通信部35経由で受信すると、カードリーダ3のシリアル番号をEEPROM37から読み出し、通信部35経由でホストコンピュータ2に送信するステップS9。次いで、制御部25は、カードリーダ3のシリアル番号を通信部26を介して認証情報生成部28に出力し、認証情報生成部28に対して、このシリアル番号を入力して、新規な正式な機器認証情報Kmの生成を指令するステップS10。その後、認証情報生成部28は、機器認証情報Kmを生成する認証情報アルゴリズムに従って、入力したシリアル番号に基づいて機器認証情報Kmを生成し、この機器認証情報Kmを認証処理部20に出力するステップS11。次に、認証処理部20は、機器認証情報Kmの取得に成功したか否かを確認するステップS12。その結果、生成した機器認証情報Kmの取得に失敗すれば、ホストコンピュータ2の認証処理部20は、エラーを制御部25に出力する。制御部25は、機器認証情報Kmを取得できなかったので、機器認証情報Kmを設定する動作を終了させるステップS20。また、ステップS12に戻り、機器認証情報Kmの取得に成功すれば、ホストコンピュータ2の認証処理部20は、制御部25に機器認証情報Kmを出力する。引き続き、制御部25は、認証処理部20乱数発生部21に、新規な乱数Rnの生成を要求する。ここでは、第2回目の乱数なのでn=2とする。乱数発生部21は、乱数生成アルゴリズムに基づいて、乱数R2を生成するステップS13。また、生成した乱数R2は、記憶部27に格納される。その後、認証処理部20の暗号部21は、取得した機器認証情報Kmおよび新たに生成した乱数R2を、通信用交換鍵Kex1を用いて3DESの暗号アルゴリズムEに従って暗号化し、暗号データC3=EKex1,KmR2を生成する。なお、KmR2は、機器認証情報Kmのデータと乱数R2のデータが入れ子のようになっている。また、制御部25は、暗号データC3を通信部26経由でカードリーダ3へ送信するステップS14。そして、カードリーダ3の制御部34は、暗号データC3を通信部35経由で受信する。受信した暗号データC3を、カードリーダ3の認証処理部30は、保持している通信用交換鍵Kex1を用いて3DESの復号アルゴリズムDに従って復号化し、KmR2=DKex1,C3により、機器認証情報Kmおよび乱数R2を復号化するステップS15。さらに、カードリーダ3の認証処理部30の認証判定部33は、復号化した、ホストコンピュータ2が保持する機器認証情報Kmが正しいか否かを確認するステップS16。ここでは、機器認証情報Kmのデータのパリティチェックコードが正しいかどうかを確認している。また、機器認証情報Kmのデータが、3DESとしてセキュリティ上で好ましくないとされる鍵4個の脆弱鍵と12個の準脆弱鍵と一致するかどうかをチェックしている。その結果、認証判定部33は、機器認証情報Kmが正しくないと判定した場合、認証処理部30は、エラーをホストコンピュータ2へ返して機器認証情報Kmを設定する動作を終了させるステップS20。また、ステップS16に戻り、機器認証情報Kmが正しいと判定した場合、カードリーダ3の認証処理部30は、復号化した機器認証情報Kmを取得してEEPROM37に格納されている仮の機器認証情報Ktに上書きする。また、復号化した乱数R2は記憶部36に格納される。引き続き、認証処理部30の暗号部31は、復号化した乱数R2を、複合した機器認証情報Kmを用いて3DESの暗号アルゴリズムEに従って暗号化し、暗号データC4=EKm,R2を生成する。生成した暗号データC4を、カードリーダ3の制御部34は、通信部35経由でホストコンピュータ2へ送信するステップS17。なお、送信後、漏えい等を含めセキュリティ性を高めるために、乱数R2を消去する。その後、ホストコンピュータ2の制御部20は、暗号データC4を通信部26経由で受信する。認証処理部20の復号部23は、受信した暗号データC4を、保持している機器認証情報Kmを用いて3DESの復号アルゴリズムDに従って復号化し、R2=DKm,C4により、乱数R2を復号化するステップS18。さらに、認証判定部24は、復号化した乱数R2が、元の乱数R2と一致するか否かを確認するステップS19。つまり、ステップS13で、ホストコンピュータ2が生成した乱数R2と、カードリーダ3から送信されてきた乱数R2とを比較し、両者が一致するか否かを確認する。確認後、漏えい等を含めセキュリティ性を高めるために、乱数R2は消去する。その結果、乱数R2が一致した場合、認証処理部20は制御部25に一致したことを出力する。制御部25は、カードリーダ3へ正常に機器認証情報Kmを設定できたと判断し、機器認証情報Kmを設定する動作は無事に終了する。なお、この作業が終了した時点で、ホストコンピュータ2が保持している機器認証情報Kmは、セキュリティ性を高めるために、消去される。換言すれば、機器認証情報Kmを設定する動作が終了すると、ホストコンピュータ2は、仮の機器認証情報Ktを記憶部27で保持しているとともに、カードリーダ3は、ステップS11で生成された機器認証情報KmをEEPROM37で保持している。一方、もし、ステップS19で乱数R2が一致しなければ、ホストコンピュータ2の認証処理部20は、エラーを制御部25に出力する。制御部25は、接続されているカードリーダ3の正当性が認証確認できなかったので、機器認証情報Kmを設定する動作を終了させるステップS20。機器認証動作の手順機器認証情報Kmを設定する動作が無事に終了したカードリーダ3が組み込まれている情報処理システム1、例えばATM装置現金自動預け入れ払い機においては、カードを用いた現金の入出金や振込、振替などのトランザクション処理が行われるたびに、EEPROM37に格納されている機器認証情報Kmを用いてカードリーダ3の機器認証動作が実行される。以下、この機器認証動作を図4に基づいて詳述する。まず、ホストコンピュータ2またはカードリーダ3は、電源立ち上げ時またはリセット時に、制御部25は、通信部6経由でカードリーダ3の制御部34に、カードリーダ3の固有情報としてのシリアル番号をホストコンピュータ2に送信するようカードリーダ3に対して要求するステップS31。そして、カードリーダ3の制御部34は、シリアル番号送信の要求を通信部35経由で受信すると、上述したステップS9と同様に、カードリーダ3のシリアル番号をEEPROM37から読み出し、通信部35経由でホストコンピュータ2に送信するステップS32。次いで、制御部25は、上述したステップS10と同様に、カードリーダ3のシリアル番号を通信部26を介して認証情報生成部28に出力し、認証情報生成部28に対して、このシリアル番号を入力して、新規な正式な機器認証情報Kmの生成を指令するステップS33。その後、認証情報生成部28は、上述したステップS11と同様に、入手したシリアル番号に基づいて機器認証情報Kmを生成し、この機器認証情報Kmを認証処理部20に出力するステップS34。ここで、機器認証情報Kmの生成に際しては、上述したステップS11と同様に、機器認証情報Kmを生成する認証情報アルゴリズムプログラムに従って、入力したシリアル番号に基づいて機器認証情報Kmを生成する。生成した機器認証情報Kmは、同じシリアル番号により生成しているので、上述したステップS11で生成した機器認証情報Kmと同じ鍵となる。すなわち、機器認証情報Kmが再現されたことになり、ホストコンピュータ2で保持する機器認証情報Kmは、カードリーダ3が保持する機器認証情報Kmと同じものとなっている。次に、認証処理部20は、上述したステップS12と同様に、機器認証情報Kmの取得に成功したか否かを確認するステップS35。そして、機器認証情報Kmの取得に成功すれば、認証処理部20は制御部25に機器認証情報Kmを出力する。引き続き、制御部25は、上述したステップS13と同様に、認証処理部20の乱数発生部21に、新規な通信用交換鍵Kexn、乱数Rnの生成を要求する。すると、乱数発生部21は、乱数生成アルゴリズムに基づいて、通信用交換鍵Kex2、乱数R3を生成する。また、生成した通信用交換鍵Kex2、乱数R3は、記憶部27に格納される。なお、通信用交換鍵Kex2は、上述したステップS1で生成した通信用交換鍵Kex1とは異なるデータである。また、乱数R3は、上述したステップS13で生成した乱数R2とは異なるデータである。また、ステップS35において、図4に示されていないが、認証処理部20が確認した結果、生成した機器認証情報Kmの取得に失敗すれば、ホストコンピュータ2の認証処理部20は、エラーを制御部25に出力する。制御部25は、機器認証情報Kmを取得できなかったので、機器認証情報Kmを設定する動作を終了させる。このようにして生成された再現された機器認証情報Kmを共通鍵として用いて、ホストコンピュータ2の認証処理部2aはカードリーダ3の機器認証を行う。次に、認証処理部20の暗号部21は、生成した通信用交換鍵Kex2および乱数R3を、機器認証情報Kmを用いて3DESの暗号アルゴリズムEに従って暗号化し、暗号データC5=EKm,Kex2R3を生成するステップS36。なお、Kex2R3は、通信用交換鍵Kex2のデータと乱数R3のデータが入れ子のようになっている。ここでは、ステップS34で生成した機器認証情報Kmを暗号アルゴリズムEの鍵として使用している。また、制御部25は、暗号データC5を通信部26経由でカードリーダ3へ送信する。その後、カードリーダ3の制御部34は、暗号データC5を通信部35経由で受信する。受信した暗号データC5を、カードリーダ3の認証処理部30は、保持している機器認証情報Kmを用いて3DESの復号アルゴリズムDに従って復号化し、Kex2R3=DKm,C5により、通信用交換鍵Kex2および乱数R3を復号化するステップS37。このとき、カードリーダ3の認証処理部30の認証判定部33は、受信した、ホストコンピュータ2が保持する通信用交換鍵Kex2が正しいか否かを確認する。ここでは、通信用交換鍵Kex2のデータのパリティチェックコードが正しいかどうかを確認している。また、通信用交換鍵Kex2のデータが、3DESとしてセキュリティ上で好ましくないとされる鍵4個の脆弱鍵と12個の準脆弱鍵と一致するかどうかをチェックしている。その結果、認証判定部33は、受信したホストコンピュータ2の通信用交換鍵Kex2が正しくないと判定した場合、認証処理部30は、エラーをホストコンピュータ2へ返して機器認証情報Kmを設定する動作を終了させる。次いで、認証判定部33は、受信したホストコンピュータ2の通信用交換鍵Kex2が正しいと判定した場合、引き続き、認証処理部30の暗号部31は、復号化した乱数R3を、復号化した通信交換用鍵Kex2を用いて3DESの暗号アルゴリズムEに従って暗号化し、暗号データC6=EKex2,R3を生成するステップS38。生成した暗号データC6を、カードリーダ3の制御部34は、通信部35経由でホストコンピュータ2へ送信する。その後、ホストコンピュータ2の制御部20は、暗号データC6を通信部26経由で受信する。認証処理部20の復号部23は、受信した暗号データC6を、保持している通信用交換鍵Kex2を用いて3DESの復号アルゴリズムDに従って復号化し、R3=DKex2,C6により、乱数R3を生成するステップS39。そして、認証判定部24は、復号化した乱数R3が一致するか否かを確認する。すなわち、ホストコンピュータ2が生成し、保持している乱数R3と、カードリーダ3から送信され、復号化した乱数R3とを比較し、両者が一致するか否かを確認する。また、確認後、漏えい等を含めセキュリティ性を高めるために、乱数R3は消去する。その結果、乱数R3が一致した場合、認証処理部20は制御部25に一致したことを出力する。制御部25は、カードリーダ3の正当性が認証確認できたと判断し、カードリーダ3の正当性が肯定されたことになるので、ホストコンピュータ2は、機器認証動作を無事に終了させる。これにより、ホストコンピュータ2およびカードリーダ3は、それぞれ通信用交換鍵Kex2を保持することになる。ここで、機器認証動作が終了する。なお、この作業が終了した時点で、ホストコンピュータ2が保持している機器認証情報Kmは、セキュリティ性を高めるために、消去される。換言すれば、機器認証情報Kmを設定する動作が終了すると、ホストコンピュータ2は、仮の機器認証情報Ktを記憶部27で保持しているとともに、カードリーダ3は、ステップS11で生成された機器認証情報KmをEEPROM37で保持している。もし、ステップS19で乱数R3が一致しなければ、ホストコンピュータ2の認証処理部20は、エラーを制御部25に出力する。制御部25は、接続されているカードリーダ3の正当性が認証確認できなかったので、通信用交換鍵Kexを設定する動作を終了させる。本実施の形態の主な効果このように、この実施の形態1では、情報処理システム1は、カードリーダ3のシリアル番号機器固有情報に基づいて生成された機器認証情報Km共通鍵を用いて、カードリーダ3とホストコンピュータ2との間で機器認証が行われるので、機器認証情報Kmの漏えいを防止し、第三者の攻撃による機器認証情報Kmの推定を困難にし、従来に比べてよりセキュリティ性の高い機器認証ができる。この機器認証情報Kmの生成に用いる認証情報アルゴリズムについては、ホストコンピュータ2を管理する情報処理システム1のユーザー例えば、運用管理者がソースコード機器認証情報Kmを生成するための認証情報アルゴリズム原始プログラムを作成し、カードリーダ3の製造者からカードリーダ3のシリアル番号の提供を受けて機器認証情報Kmを生成する独自のアルゴリズムを組み込むようにしている。これにより、装置運用管理者独自の、機器認証情報Kmを生成する認証情報アルゴリズム認証情報を生成するプログラムを完成させるようにする。こうすることにより、ホストコンピュータ2を管理する情報処理システム1のユーザー例えば、運用管理者は、機器認証情報Kmを生成する認証情報アルゴリズム認証情報を生成するプログラムの仕様を統一することができ、カードリーダ3の製造者からカードリーダ3のシリアル番号の提供を受けて機器認証情報Kmを生成する独自のアルゴリズムを組み込むことが可能となる。さらに、カードリーダ3の製造者からカードリーダ3のシリアル番号の提供を受けることで、たとえ情報処理システム1のユーザー例えば、運用管理者がプログラミング共通鍵暗号方式のノウハウなどに詳しくなくても、認証情報アルゴリズムを容易に作成することができる。同時に、この認証情報アルゴリズムへ組み込んだ独自のアルゴリズムは装置運用管理者以外には不明であるため、機器認証情報Kmの流出リスクを減少させ、ひいては情報処理システム1の運用の安全性を高めることが可能となる。さらに、情報処理システム1では、たとえ送信データが同じであっても、通信用交換鍵Kexn、乱数Rnが異なるため、これらを用いて暗号化された送信データも異なったものとなる。したがって、カードリーダ3とホストコンピュータ2との信号を傍受しておき、カードリーダ3を使わずに同様の信号を別のカードリーダに送出したとしても、通信用交換鍵Kex、乱数Rが異なるために信号が一致することはなく、不正操作を防止することができる。また、情報処理システム1では、機器固有情報がカードリーダ3のシリアル番号を用いたので、従来使用している機器固有情報であり、新たに設定する必要もない。したがって、情報処理システム1の構築が簡便なものとなる。[発明のその他の実施の形態]なお、上述した実施の形態1では、上位装置としてホストコンピュータ2を備えた情報処理システム1について説明したが、ホストコンピュータに限定されるものではなく、例えば、コンピュータに内蔵されている制御装置や演算装置といった処理装置であってもよく、または、例えば、ATM、POS等であってもよい。また、上述した実施の形態1では、情報処理装置としてカードリーダ3を備えた情報処理システム1について説明したが、カードリーダ3以外の情報処理装置例えば、ATMやPOS端末に付属する入出力機器:タッチパネル、PINパッド、プリンター、スキャナ等を備えた情報処理システム1であってもよい。また、上述した実施の形態1では、機器固有情報としてシリアル番号を用いる場合について説明したが、例えば、鍵を生成する種となるユニークな値を機器へ持たせる外部から種も見えないようにすることも可能である。また、上述した実施の形態1では、不揮発性記憶部としてEEPROM37を用いる場合について説明したが、EEPROM37以外の不揮発性記憶部を代用してもよい。また、上述した実施の形態1では、乱数や通信用交換鍵Kexを暗号化するのに3DESを用いる場合について説明したが、3DES以外の共通鍵暗号方式としての暗号アルゴリズム例えば、DES、FEAL、IDEA、AES、Camellia、MISTY、MULTI、RC4、RC5などを代用してもよい。また、上述した実施の形態1では、通信用交換鍵Kexのデータと乱数Rのデータが入れ子のようにしたが、これに限定されるものではなく、2つのデータを連結したもの等のように2つのデータが混合されていればよい。さらに、上述した実施の形態1では、1台のカードリーダ3がホストコンピュータ2に接続された情報処理システム1について説明したが、複数台2台以上のカードリーダ3がホストコンピュータ2に接続された情報処理システム1に本発明を同様に適用することも可能である。"