(57)【要約】【課題】外部サーバからダウンロードされたファームウェアを記憶することができるマイクロプロセッサを備えた磁気ヘッドを提供する。【解決手段】磁気ヘッドは、磁気カードに記憶されたデータをアナログ信号に変換するコイルを備えたコアと、コアに接続されてアナログ信号をデジタル信号に変換するＡ／Ｄ変換チップと、Ａ／Ｄ変換チップに接続されたマイクロプロセッサとを有する。プロセッサは、その演算・記憶機能を制御するとともに外部ハードウェアを制御するファームウェアが外部サーバ１１から磁気ヘッドにダウンロードされたときに、そのファームウェアを記憶するファームウェア記憶手段を有する。【選択図】図１
2009157611.tif 000002
【特許請求の範囲】
【請求項１】
磁性体を利用して各種データを記憶した磁気カードから前記データを読み取る磁気ヘッドにおいて、
前記磁気ヘッドが、前記磁気カードに記憶されたデータをアナログ信号に変換するコイルを有するコアと、前記コアに接続されて前記アナログ信号をデジタル信号に変換するＡ／Ｄ変換チップと、前記Ａ／Ｄ変換チップに接続されたデジタルＩＣとを備え、
前記デジタルＩＣは、その演算・記憶機能を制御するとともに外部ハードウェアを制御するファームウェアが外部サーバから前記磁気ヘッドにダウンロードされたときに、そのファームウェアを記憶するファームウェア記憶手段を有することを特徴とする磁気ヘッド。
【請求項２】
前記ファームウェアには、前記磁気カードの各種フォーマットに対応させて前記デジタルＩＣに該磁気カードの各種データを読み取らせるデータ読み取り制御が含まれ、前記デジタルＩＣが、前記磁気カードの各種フォーマットに対応して該磁気カードから各種データを読み取るフォーマット対応読み取り手段を有する請求項１記載の磁気ヘッド。
【請求項３】
前記ファームウェアには、所定の暗号化アルゴリズムに基づいて前記デジタルＩＣに前記デジタル信号を暗号化させるデータ暗号化制御が含まれ、前記デジタルＩＣが、前記デジタル信号を所定の暗号化アルゴリズムに基づいて暗号化するデータ暗号化手段を有する請求項１または請求項２に記載の磁気ヘッド。
【請求項４】
前記デジタルＩＣは、バージョンアップされたファームウェアが前記外部サーバから前記磁気ヘッドにダウンロードされたときに、バージョンアップ前のファームウェアをバージョンアップ後のファームウェアに書き換えるファームウェア更新手段を有する請求項１ないし請求項３いずれかに記載の磁気ヘッド。
【請求項５】
前記外部サーバが、それに格納された鍵を使用して前記ファームウェアを暗号化しつつ、暗号化したファームウェアを前記磁気ヘッドにダウンロードし、前記デジタルＩＣが、それに格納された鍵を使用して暗号化されたファームウェアを復号化しつつ、復号化したファームウェアを記憶する請求項１ないし請求項４いずれかに記載の磁気ヘッド。
【請求項６】
前記デジタルＩＣと前記外部サーバとが、それらの間で認証を行う相互認証を実行し、前記デジタルＩＣと前記外部サーバとが前記相互認証による互いの認証結果を正当であると判断した後、前記外部サーバが前記磁気ヘッドに前記ファームウェアをダウンロードし、前記デジタルＩＣが前記外部サーバからダウンロードされた前記ファームウェアを記憶する請求項１ないし請求項５いずれかに記載の磁気ヘッド。
【請求項７】
前記デジタルＩＣは、前記デジタル信号を暗号化する各種の暗号化アルゴリズムが前記外部サーバから前記磁気ヘッドにダウンロードされたときに、その暗号化アルゴリズムを記憶するアルゴリズム記憶手段を有する請求項１ないし請求項６いずれかに記載の磁気ヘッド。
【請求項８】
前記デジタルＩＣは、あらたな暗号化アルゴリズムが前記外部サーバから前記磁気ヘッドにダウンロードされたときに、すでに記憶した暗号化アルゴリズムをあらたな暗号化アルゴリズムに書き換えるアルゴリズム更新手段を有する請求項７記載の磁気ヘッド。
【請求項９】
前記外部サーバが、それに格納された鍵を使用して前記暗号化アルゴリズムを暗号化しつつ、暗号化した暗号化アルゴリズムを前記磁気ヘッドにダウンロードし、前記デジタルＩＣが、それに格納された鍵を使用して暗号化された暗号化アルゴリズムを復号化しつつ、復号化した暗号化アルゴリズムを記憶する請求項７または請求項８に記載の磁気ヘッド。
【請求項１０】
前記デジタルＩＣと前記外部サーバとが、それらの間で認証を行う相互認証を実行し、前記デジタルＩＣと前記外部サーバとが前記相互認証による互いの認証結果を正当であると判断した後、前記外部サーバが前記磁気ヘッドに前記暗号化アルゴリズムをダウンロードし、前記デジタルＩＣが前記外部サーバからダウンロードされた前記暗号化アルゴリズムを記憶する請求項７ないし請求項９いずれかに記載の磁気ヘッド。
【請求項１１】
前記磁気ヘッドが、その外周を包被するハウジングを有し、前記コアと前記Ａ／Ｄ変換チップと前記デジタルＩＣとが、前記ハウジングの内部に収容されている請求項１ないし請求項１０いずれかに記載の磁気ヘッド。
【請求項１２】
前記Ａ／Ｄ変換チップと前記デジタルＩＣとが、前記ハウジングの内部に充填された固形物質によって該ハウジングに固定されている請求項１ないし請求項１１いずれかに記載の磁気ヘッド。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気カードから各種データを読み取る磁気ヘッドに関する。
【背景技術】
【０００２】
磁気ヘッドと、磁気ヘッドに接続されたホストコンピュータとから形成された磁気カード読み取りシステムがある（特許文献１参照）。磁気ヘッドは、磁気カードに記憶されたデータを読み取るヘッド本体と、ヘッド本体が読み取ったアナログ信号をデジタル信号に変換し、デジタル信号を対象鍵暗号化方式または非対象鍵暗号化方式によって暗号化する制御部とから形成されている。ヘッド本体と制御部とは、ヘッド容器に収容されている。磁気ヘッドの制御部は、その記憶領域内に記憶された鍵を使用してデジタル信号を暗号化し、暗号化したデジタル信号をホストコンピュータに送信する。ホストコンピュータの制御部は、それに記憶された鍵を使用して暗号化されたデジタル信号を復号化する。
【０００３】
このシステムでは、磁気ヘッドの制御部が暗号化したデジタル信号をホストコンピュータの制御部に送信すると、ホストコンピュータの制御部が磁気ヘッドの制御部に鍵の変更を指示する。このシステムにおける鍵の変更手順は、以下のとおりである。ホストコンピュータの制御部は、磁気ヘッドから受信したデジタル信号を復号化すると、あらたに鍵を生成し、生成した鍵を磁気ヘッドの制御部に送信する。磁気ヘッドの制御部は、記憶領域内に記憶された既存の鍵をあらたに送信された鍵に変更する。また、ホストコンピュータの制御部は、操作者がキーボードから関数の変更指示とあらたな関数とを入力すると、関数変更指示とあらたな関数とを磁気ヘッドの制御部に送信する。磁気ヘッドの制御部は、既存の関数をあらたに送信された関数に変更する。
【特許文献１】特開２００１−１４３２１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前記公報に開示の磁気カード読み取りシステムにおける磁気ヘッドの制御部は、磁気ヘッドが市場に出荷された後や磁気ヘッドが磁気カードリーダに設置された後に、制御部の演算・記憶機能や外部ハードウェアを制御するファームウェアが外部サーバから磁気ヘッドにダウンロードされたとしても、そのファームウェアを記憶領域内に記憶することはないから、ダウンロードされる各種のファームウェアを制御部に格納することはできない。また、この磁気ヘッドの制御部は、バージョンアップされたファームウェアが外部サーバからダウンロードされたとしても、バージョンアップ後のファームウェアを記憶領域内に記憶することはないから、ファームウェアのバージョンアップに対応することができず、磁気カードのフォーマットが変更されると、その磁気カードのデータを読み取ることができない場合があり、フォーマットの変更にともなって磁気ヘッド自体を取り換えなければならない。
【０００５】
本発明の目的は、外部サーバからダウンロードされたファームウェアを記憶することができるデジタルＩＣを備えた磁気ヘッドを提供することにある。本発明の他の目的は、外部サーバからダウンロードされたバージョンアップ後のファームウェアを記憶することができるデジタルＩＣを備えた磁気ヘッドを提供することにある。
【課題を解決するための手段】
【０００６】
前記課題を解決するための本発明の前提は、磁性体を利用して各種データを記憶した磁気カードからそのデータを読み取る磁気ヘッドである。
【０００７】
前記前提における本発明の特徴は、磁気ヘッドが、磁気カードに記憶されたデータをアナログ信号に変換するコイルを有するコアと、コアに接続されてアナログ信号をデジタル信号に変換するＡ／Ｄ変換チップと、Ａ／Ｄ変換チップに接続されたデジタルＩＣとを備え、デジタルＩＣは、その演算・記憶機能を制御するとともに外部ハードウェアを制御するファームウェアが外部サーバから磁気ヘッドにダウンロードされたときに、そのファームウェアを記憶するファームウェア記憶手段を有することにある。
【０００８】
本発明の一例として、ファームウェアには、磁気カードの各種フォーマットに対応させてデジタルＩＣに該磁気カードの各種データを読み取らせるデータ読み取り制御が含まれ、デジタルＩＣが磁気カードの各種フォーマットに対応して該磁気カードから各種データを読み取るフォーマット対応読み取り手段を有する。
【０００９】
本発明の他の一例として、ファームウェアには、所定の暗号化アルゴリズムに基づいてデジタルＩＣにデジタル信号を暗号化させるデータ暗号化制御が含まれ、デジタルＩＣがデジタル信号を所定の暗号化アルゴリズムに基づいて暗号化するデータ暗号化手段を有する。
【００１０】
本発明の他の一例として、デジタルＩＣは、バージョンアップされたファームウェアが外部サーバから磁気ヘッドにダウンロードされたときに、バージョンアップ前のファームウェアをバージョンアップ後のファームウェアに書き換えるファームウェア更新手段を有する。
【００１１】
本発明の他の一例としては、外部サーバがそれに格納された鍵を使用してファームウェアを暗号化しつつ、暗号化したファームウェアを磁気ヘッドにダウンロードし、デジタルＩＣがそれに格納された鍵を使用して暗号化されたファームウェアを復号化しつつ、復号化したファームウェアを記憶する。
【００１２】
本発明の他の一例としては、デジタルＩＣと外部サーバとがそれらの間で認証を行う相互認証を実行し、デジタルＩＣと外部サーバとが相互認証による互いの認証結果を正当であると判断した後、外部サーバが磁気ヘッドにファームウェアをダウンロードし、デジタルＩＣが外部サーバからダウンロードされたファームウェアを記憶する。
【００１３】
本発明の他の一例として、デジタルＩＣは、デジタル信号を暗号化する各種の暗号化アルゴリズムが外部サーバから磁気ヘッドにダウンロードされたときに、その暗号化アルゴリズムを記憶するアルゴリズム記憶手段を有する。
【００１４】
本発明の他の一例として、デジタルＩＣは、あらたな暗号化アルゴリズムが外部サーバから磁気ヘッドにダウンロードされたときに、すでに記憶した暗号化アルゴリズムをあらたな暗号化アルゴリズムに書き換えるアルゴリズム更新手段を有する。
【００１５】
本発明の他の一例としては、外部サーバがそれに格納された鍵を使用して暗号化アルゴリズムを暗号化しつつ、暗号化した暗号化アルゴリズムを磁気ヘッドにダウンロードし、デジタルＩＣがそれに格納された鍵を使用して暗号化された暗号化アルゴリズムを復号化しつつ、復号化した暗号化アルゴリズムを記憶する。
【００１６】
本発明の他の一例としては、デジタルＩＣと外部サーバとがそれらの間で認証を行う相互認証を実行し、デジタルＩＣと外部サーバとが相互認証による互いの認証結果を正当であると判断した後、外部サーバが磁気ヘッドに暗号化アルゴリズムをダウンロードし、デジタルＩＣが外部サーバからダウンロードされた暗号化アルゴリズムを記憶する。
【００１７】
本発明の他の一例としては、磁気ヘッドがその外周を包被するハウジングを有し、コアとＡ／Ｄ変換チップとデジタルＩＣとがハウジングの内部に収容されている。
【００１８】
本発明の他の一例としては、Ａ／Ｄ変換チップとデジタルＩＣとがハウジングの内部に充填された固形物質によって該ハウジングに固定されている。
【発明の効果】
【００１９】
本発明にかかる磁気ヘッドによれば、デジタルＩＣの演算・記憶機能を制御するとともに外部ハードウェアを制御するファームウェアが外部サーバから磁気ヘッドにダウンロードされると、デジタルＩＣがそのファームウェアを記憶するから、磁気ヘッドが市場に出荷された後や磁気ヘッドが磁気カードリーダに設置された後において、外部サーバからダウンロードされたファームウェアをデジタルＩＣに随時格納することができる。この磁気ヘッドは、その出荷後や設置後においても各種のファームウェアに対応することができ、それらファームウェアを利用することで、磁気ヘッドの動作環境に応じてデジタルＩＣの演算・記憶機能や外部ハードウェアの最適な制御を行うことができる。
【００２０】
磁気カードの各種フォーマットに対応させてデジタルＩＣに磁気カードの各種データを読み取らせるデータ読み取り制御がファームウェアに含まれ、デジタルＩＣが磁気カードの各種フォーマットに対応して磁気カードから各種データを読み取る磁気ヘッドは、磁気カードのフォーマットに対応して磁気カードからデータを読み取るデータ読み取り制御が外部サーバからデジタルＩＣにダウンロードされると、デジタルＩＣがそのデータ読み取り制御を記憶するから、磁気ヘッドが市場に出荷された後や磁気ヘッドが磁気カードリーダに設置された後において、外部サーバからダウンロードされたデータ読み取り制御をデジタルＩＣに随時格納することができる。この磁気ヘッドは、その出荷後や設置後においても磁気カードの各種フォーマットに対応することができ、磁気カードの各種仕様に適応しつつ、それらカードに記憶されたデータを確実に読み取ることができる。この磁気ヘッドは、磁気カードのフォーマット変更にともなって磁気ヘッドを取り換える必要はなく、同一の磁気ヘッドを継続して使用することができる。
【００２１】
所定の暗号化アルゴリズムに基づいてデジタルＩＣにデジタル信号を暗号化させるデータ暗号化制御がファームウェアに含まれ、デジタルＩＣがデジタル信号を所定の暗号化アルゴリズムに基づいて暗号化する磁気ヘッドは、磁気カードから読み取った各種データ（デジタル信号）をデジタルＩＣが暗号化するから、データが第３者に盗取されたとしても、盗取したデータを復号化しなければそのデータを利用することができず、第３者による磁気カードの不正な複製を防ぐことができる。なお、インターネットバンキングにおいて、磁気カードのデータを盗取した第３者が銀行やクレジットカード会社のサイトに偽サイトを作成するいわゆる「なりすまし」行為を行い、銀行やクレジットカード会社に対して不正な取引を行う場合がある。しかし、この磁気ヘッドは、第３者が磁気カードのデータを盗取することができないから、偽サイトを作ることはできず、第３者による「なりすまし」を防ぐことができる。
【００２２】
デジタルＩＣがバージョンアップ前のファームウェアをバージョンアップ後のファームウェアに書き換える磁気ヘッドは、磁気ヘッドが市場に出荷された後や磁気ヘッドが磁気カードリーダに設置された後において、ファームウェアのバージョンアップが行われたとしても、バージョンアップ後のファームウェアに即座に対応することができる。この磁気ヘッドは、磁気カードのフォーマットの変更にともなってファームウェアが変更されたとしても、変更後のファームウェアを記憶することができるから、磁気カードの変更された各種フォーマットに対応することができ、磁気カードの各種仕様に適応しつつ、それらカードに記憶されたデータを確実に読み取ることができる。
【００２３】
外部サーバがそれに格納された鍵を使用してファームウェアを暗号化し、デジタルＩＣがそれに格納された鍵を使用して暗号化されたファームウェアを復号化し、復号化したファームウェアを記憶する磁気ヘッドは、ファームウェアが暗号化された状態で磁気ヘッドにダウンロードされるから、ファームウェアが第３者に盗取されたとしても、盗取したファームウェアを復号化しなければそのファームウェアを利用することができず、ファームウェアの改竄による第３者の磁気カードの不正利用を防ぐことができる。
【００２４】
デジタルＩＣと外部サーバとが相互に認証を行う相互認証を実行し、デジタルＩＣと外部サーバとが相互認証による互いの認証結果を正当であると判断した後、外部サーバが磁気ヘッドにファームウェアをダウンロードし、デジタルＩＣが外部サーバからダウンロードされたファームウェアを記憶する磁気ヘッドは、デジタルＩＣと外部サーバとが相互認証を実行することで互いの正当性を判断することができるから、偽サーバが磁気ヘッドに接続された場合や偽磁気ヘッドが外部サーバに接続された場合であっても、それを見破ることができる。この磁気ヘッドは、第３者が偽サーバを利用して磁気ヘッドにアクセスすることはできず、ファームウェアの改竄による第３者の磁気カードの不正利用を防ぐことができる。
【００２５】
暗号化アルゴリズムが外部サーバからダウンロードされたときに、デジタルＩＣがその暗号化アルゴリズムを記憶する磁気ヘッドは、磁気ヘッドが市場に出荷された後や磁気ヘッドが磁気カードリーダに設置された後において、各種の暗号化アルゴリズムをデジタルＩＣに随時格納することができ、各種の暗号化アルゴリズムを利用して磁気カードのデータ（デジタル信号）を暗号化することができる。この磁気ヘッドは、各種の暗号化アルゴリズムを利用してデジタルＩＣが磁気カードのデータを暗号化するから、データが第３者に盗取されたとしても、盗取したデータを復号化しなければそのデータを利用することができず、第３者による磁気カードのデータの不正な取得を確実に防ぐことができ、第３者による磁気カードの不正な複製や第３者による「なりすまし」を確実に防ぐことができる。
【００２６】
あらたな暗号化アルゴリズムが外部サーバからダウンロードされたときに、デジタルＩＣがすでに記憶した暗号化アルゴリズムをあらたな暗号化アルゴリズムに書き換える磁気ヘッドは、磁気ヘッドが市場に出荷された後や磁気ヘッドが磁気カードリーダに設置された後にデジタルＩＣに記憶された暗号化アルゴリズムが解析され、そのアルゴリズムの変更が必要になったとしても、暗号化アルゴリズムの変更に即座に対応することができ、変更された暗号化アルゴリズムに基づいてデータを暗号化することができる。この磁気ヘッドは、あらたな暗号化アルゴリズムを利用してデジタルＩＣが磁気カードのデータ（デジタル信号）を暗号化するから、データが第３者に盗取されたとしても、盗取したデータを復号化しなければそのデータを利用することができず、第３者による磁気カードのデータの不正な取得を確実に防ぐことができ、第３者による磁気カードの不正な複製や第３者による「なりすまし」を確実に防ぐことができる。
【００２７】
外部サーバがそれに格納された鍵を使用して暗号化アルゴリズムを暗号化し、デジタルＩＣがそれに格納された鍵を使用して暗号化された暗号化アルゴリズムを復号化し、復号化した暗号化アルゴリズムを記憶する磁気ヘッドは、暗号化アルゴリズムが暗号化された状態で磁気ヘッドにダウンロードされるから、暗号化アルゴリズムが第３者に盗取されたとしても、盗取した暗号化アルゴリズムを復号化しなければその暗号化アルゴリズムを利用してデータを復号化することができない。この磁気ヘッドは、第３者による磁気カードのデータの不正な取得を確実に防ぐことができ、第３者による磁気カードの不正な複製や第３者による「なりすまし」を確実に防ぐことができる。
【００２８】
デジタルＩＣと外部サーバとが相互に認証を行う相互認証を実行し、デジタルＩＣと外部サーバとが相互認証による互いの認証結果を正当であると判断した後、外部サーバが磁気ヘッドに暗号化アルゴリズムをダウンロードし、デジタルＩＣが外部サーバからダウンロードされた暗号化アルゴリズムを記憶する磁気ヘッドは、デジタルＩＣと外部サーバとが相互認証を実行することで互いの正当性を判断することができるから、偽磁気ヘッドが外部サーバに接続されたとしても、偽磁気ヘッドが外部サーバにアクセスすることはできず、外部サーバから偽磁気ヘッドに暗号化アルゴリズムがダウンロードされることはない。この磁気ヘッドは、第３者が暗号化アルゴリズムを利用して磁気カードのデータを復号化することができず、第３者による磁気カードのデータの不正な取得を確実に防ぐことができ、第３者による磁気カードの不正な複製や第３者による「なりすまし」を確実に防ぐことができる。
【００２９】
コアとＡ／Ｄ変換チップとデジタルＩＣとがハウジングに収容された磁気ヘッドは、磁気ヘッド自体を分解しなければ、アナログ信号やデジタル信号に変換されたデータを盗取することができないから、磁気カードに記憶されたデータの盗取を確実に防ぐことができ、第３者による磁気カードの不正な複製や第３者による「なりすまし」を確実に防ぐことができる。
【００３０】
Ａ／Ｄ変換チップとデジタルＩＣとがハウジングの内部に合成樹脂によって固定された磁気ヘッドは、磁気ヘッドを分解するときに合成樹脂を取り除かなければならず、合成樹脂を取り除く際にＡ／Ｄ変換チップとデジタルＩＣとが破壊されるから、Ａ／Ｄ変換チップとデジタルＩＣとに対するデータ盗取用機器の取り付けを防ぐことができる。この磁気ヘッドは、第３者による磁気カードのデータの不正な取得を確実に防ぐことができ、第３者による磁気カードの不正な複製や第３者による「なりすまし」を確実に防ぐことができる。
【発明を実施するための最良の形態】
【００３１】
添付の図面を参照し、本発明に係る磁気ヘッドの詳細を説明すると、以下のとおりである。図１は、磁気ヘッド１９を利用した一例として示す磁気カード読み取りシステム１０のハードウェア構成図であり、図２は、一例として示す磁気カードリーダ１２の内部構造の概略図である。図３は、ハウジング２３の一部を破断して示す磁気ヘッド１９の部分破断斜視図であり、図４は、一例として示すマイクロプロセッサ２６（デジタルＩＣ）の構成図である。図３では、コア２４の先端部２７が磁気カード２９の表面に接触した状態にあり、ハウジング２３に充填された合成樹脂２８（固形物質）の図示を一部省略している。
【００３２】
磁気カード読み取りシステム１０は、外部サーバ１１と、磁気カード２９に記憶されたカードデータ（各種データ）を読み取る磁気カードリーダ１２と、ホストコンピュータ１３とから形成されている。システム１０では、サーバ１１とカードリーダ１２とがインターフェイス（有線または無線）を介して連結され、カードリーダ１２とコンピュータ１３とがインターフェイス（有線または無線）を介して連結されている。カードデータには、カード番号や暗証番号、ユーザＩＤ、パスワード、カード所持者の個人情報（郵便番号、住所または居所、氏名または名称、生年月日、家族構成、年収、勤務会社、電話番号、ファクシミリ番号、メールアドレス、ＵＲＬ等）、カード所持者の法人情報（郵便番号、住所、名称、設立年月日、各種の経営情報、取引先情報、電話番号、ファクシミリ番号、メールアドレス、ＵＲＬ等）、商取引内容等が含まれる。
【００３３】
外部サーバ１１は、中央処理部（ＣＰＵまたはＭＰＵ）とメモリ（大容量ハードディスク）とを有するコンピュータであり、ＤＮＳサーバ機能を備えている。メモリには、カードリーダ１２のＵＲＬが格納されている。サーバ１１の中央処理部は、演算ユニットおよび制御ユニットから形成されている。サーバ１１には、キーボードやマウス等の入力装置１４、ディスプレイやプリンタ等の出力装置１５がインターフェイスを介して接続されている。サーバ１１の中央処理部は、オペレーティングシステムによる制御に基づいて、メモリに格納されたアプリケーションを起動し、起動したアプリケーションに従って以下の各手段を実行する。
【００３４】
外部サーバ１１の中央処理部は、メモリに格納された鍵を使用して所定のファームウェアを暗号化するファームウェア暗号化手段を実行し、メモリに格納された鍵を使用して所定の暗号化アルゴリズムを暗号化するアルゴリズム暗号化手段を実行する。サーバ１１の中央処理部は、インターネットを介してカードリーダ１２の後記するコントローラにアクセスするアクセス手段を実行し、磁気ヘッド１９との間で相互に認証を行う相互認証手段を実行する。
【００３５】
外部サーバ１１の中央処理部は、暗号化していないファームウェアまたは暗号化した後のファームウェアを磁気ヘッド１９にダウンロードするファームウェア第１ダウンロード手段を実行し、暗号化していないあらたなファームウェア（バージョンアップファームウェア）または暗号化した後のあらたなファームウェア（バージョンアップファームウェア）を磁気ヘッド１９にダウンロードするファームウェア第２ダウンロード手段を実行する。サーバ１１の中央処理部は、暗号化していない暗号化アルゴリズムまたは暗号化した後の暗号化アルゴリズムを磁気ヘッド１９にダウンロードするアルゴリズム第１ダウンロード手段を実行し、暗号化していないあらたな暗号化アルゴリズムまたは暗号化した後のあらたな暗号化アルゴリズムを磁気ヘッド１９にダウンロードするアルゴリズム第２ダウンロード手段を実行する。
【００３６】
ファームウェアとは、磁気ヘッド１９の後記するマイクロプロセッサ２６の演算・記憶機能を制御するとともにプロセッサ２６につながる外部ハードウェアを制御するアプリケーションである。ファームウェアには、磁気カード２９の各種フォーマットに対応させて磁気ヘッド１９のプロセッサ２６にカード２９の各種データを読み取らせるデータ読み取り制御が含まれる。さらに、所定の暗号化アルゴリズムに基づいて磁気ヘッド１９のプロセッサ２６にカードデータ（デジタル信号）を暗号化させるデータ暗号化制御が含まれる。ファームウェアは、それを利用することで、磁気ヘッド１９の動作環境に応じたプロセッサ２６の演算・記憶機能の最適な制御を行うことができるとともに、プロセッサ２６につながる外部ハードウェアの最適な制御を行うことができる。
【００３７】
磁気カードリーダ１２は、挿入電動型であり、コントローラ（図示せず）が内蔵されている。カードリーダ１２は、図２に示すように、前端に形成されたカード挿入口１６と、後端に形成されたカード排出口１７と、カード挿入口１６からカード排出口１７につながるカード案内レール１８とを有する。カードリーダ１２の中央には、磁気ヘッド１９が取り付けられている。挿入口１６や排出口１７、磁気ヘッド１９の近傍には、案内レール１８を移動する磁気カード２９の位置を検出するための光センサ２０が取り付けられている。
【００３８】
挿入口１６からカード２９を挿入すると、カード２９が案内レール１８を自動的に移動して排出口１７から排出される。案内レール１８におけるカード２９の移動は、カードリーダ１２内に取り付けられたベルト２１によって行われる。ベルト２１の駆動は、カードリーダ１２内に設置されたモータ２２によって行われる。磁気ヘッド１９や各センサ２０、モータ２２は、カードリーダ１２のコントローラに連結されている。
【００３９】
カードリーダ１２のコントローラは、中央処理部（ＣＰＵまたはＭＰＵ）とメモリ（大容量フラッシュメモリ）とを有するコンピュータである。メモリには、外部サーバ１１のＵＲＬが格納されている。コントローラの中央処理部は、演算ユニットおよび制御ユニットから形成されている。コントローラは、ＤＮＳサーバ（図示せず）とホストコンピュータ１３とに連結されている。コントローラは、インターネットを介して外部サーバ１１にアクセス可能である。コントローラは、スイッチのＯＮ／ＯＦＦによってモータ２２の駆動や停止を行うとともに、カードデータの読み取り開始指令やカードデータの読み取り停止指令を磁気ヘッド１９に出力する。
【００４０】
磁気ヘッド１９は、磁気カード２９の磁性層３２に記憶されたカードデータを電気信号に変換する。磁気ヘッド１９は、図３に示すように、その外周面を包被するハウジング２３と、磁気カードに記憶されたカードデータをアナログ信号（電気信号）に変換するコイル（図示せず）が取り付けられたコア２４と、アナログ信号をデジタル信号（電気信号）に変換するＡ／Ｄ変換チップ２５と、マイクロプロセッサ２６（ＭＰＵ）とから形成されている。カードリーダ１２内に設置された磁気ヘッド１９では、それを形成するコア２４の先端部２７が案内レール１８に対向している。Ａ／Ｄ変換チップ２５は、コア２４に電気的に連結されている。プロセッサ２６は、Ａ／Ｄ変換チップ２５に電気的に連結され、インターフェイスを介してホストコンピュータ１３に連結されている。
【００４１】
コア２４やＡ／Ｄ変換チップ２５、マイクロプロセッサ２６は、ハウジング２３の内部に収容されている。ただし、コア２４の先端部２７は、ハウジング２３の下端から外側に露出している。Ａ／Ｄ変換チップ２５とプロセッサ２６とは、その全体がハウジング２３の内部に充填された合成樹脂２８（固形物質）によって包被され、合成樹脂２８を介してハウジング２３の内部に固定されている。合成樹脂２８には、熱硬化性合成樹脂を使用することが好ましいが、熱硬化性合成樹脂の他に、熱可塑性合成樹脂を使用することもできる。また、合成樹脂等の有機化合物の他に、化学溶剤に対する耐性が高いセラミック等（固形物質）の無機化合物を使用することもできる。磁気カード２９は、その下面から、カラー印刷層３０、ベース層３１、磁性層３２、遮蔽層３３、印字層３４の順で並んでいる。磁性層３２は強磁性体から作られ、ベース層３１はポリエチレン・テレフタレートから作られている。なお、磁気ヘッド１９には、マイクロプロセッサ２６に変えて、ゲートアレイやフィールドプログラマブルゲートアレイ、専用ハードウェアのうちのいずれかのデジタルＩＣが取り付けられていてもよい。
【００４２】
マイクロプロセッサ２６は、図４に示すように、中央処理部３５とメモリ３６（フラッシュメモリやＥＥＲＯＭ）とを有する。プロセッサ２６の中央処理部３５は、演算ユニット３７および制御ユニット３８から形成されている。中央処理部３５は、オペレーティングシステムによる制御に基づいて、メモリ３６に格納されたアプリケーションを起動し、起動したアプリケーションに従って以下の各手段を実行する。中央処理部３５は、外部サーバ１１またはホストコンピュータ１３との間で相互に認証を行う相互認証手段を実行する。
【００４３】
マイクロプロセッサ２６の中央処理部３５は、暗号化していないファームウェアが外部サーバ１１から磁気ヘッド１９にダウンロードされると、そのファームウェアをメモリ３６に格納するファームウェア記憶手段を実行する。または、暗号化されたファームウェアがサーバ１１から磁気ヘッド１９にダウンロードされると、メモリ３６に格納された鍵を使用して暗号化されたファームウェアを復号化するファームウェア復号化手段を実行し、復号化したファームウェアをメモリ３６に格納するファームウェア記憶手段を実行する。中央処理部３５は、バージョンアップされたあらたなファームウェアがサーバ１１から磁気ヘッド１９にダウンロードされると、バージョンアップ前のファームウェアをバージョンアップ後のファームウェアに書き換えるファームウェア更新手段を実行する。
【００４４】
ファームウェアをメモリ３６に格納すると、マイクロプロセッサ２６の中央処理部３５は、メモリに格納したファームウェアを起動し、起動したファームウェアに従って以下の各手段を実行する。中央処理部３５は、暗号化前の各種の暗号化アルゴリズムが外部サーバ１１から磁気ヘッド１９にダウンロードされると、その暗号化アルゴリズムをメモリ３６に格納するアルゴリズム記憶手段を実行する。または、暗号化後の各種の暗号化アルゴリズムが外部サーバ１１から磁気ヘッド１９にダウンロードされると、メモリ３６に格納された鍵を使用して暗号化された暗号化アルゴリズムを復号化するアルゴリズム復号化手段を実行し、復号化した暗号化アルゴリズムをメモリ３６に格納するアルゴリズム記憶手段を実行する。
【００４５】
マイクロプロセッサ２６の中央処理部３５は、暗号化していないあらたな暗号化アルゴリズムが外部サーバ１１から磁気ヘッド１９にダウンロードされると、すでに記憶した暗号化アルゴリズムをあらたな暗号化アルゴリズムに書き換えるアルゴリズム更新手段を実行する。または、暗号化されたあらたな暗号化アルゴリズムが外部サーバ１１から磁気ヘッド１９にダウンロードされると、メモリ３６に格納された鍵を使用して暗号化されたあらたな暗号化アルゴリズムを復号化するアルゴリズム復号化手段を実行し、すでに記憶した暗号化アルゴリズムを復号化したあらたな暗号化アルゴリズムに書き換えるアルゴリズム更新手段を実行する。中央処理部３５は、磁気カード２９の各種フォーマットに対応してカード２９から各種データを読み取るフォーマット対応読み取り手段を実行し、カードデータ（デジタル信号）を所定の暗号化アルゴリズムに基づいて暗号化するデータ暗号化手段を実行する。中央処理部３５は、暗号化したカードデータをホストコンピュータ１３に出力する暗号化データ出力手段を実行する。
【００４６】
ホストコンピュータ１３は、中央処理部（ＣＰＵまたはＭＰＵ）とメモリ（大容量ハードディスク）とを有する。コンピュータ１３の中央処理部は、演算ユニットおよび制御ユニットから形成されている。コンピュータ１３には、キーボードやマウス等の入力装置３９、ディスプレイやプリンタ等の出力装置４０がインターフェイスを介して接続されている。コンピュータ１３の中央処理部は、オペレーティングシステムによる制御に基づいて、メモリに格納されたアプリケーションを起動し、起動したアプリケーションに従って以下の各手段を実行する。
【００４７】
ホストコンピュータ１３の中央処理部は、磁気ヘッド１９のマイクロプロセッサ２６との間で相互に認証を行う相互認証手段を実行する。コンピュータ１３の中央処理部は、暗号化されたカードデータが磁気ヘッド１９から出力されると、そのデータを複合化するデータ復号化手段を実行し、復号化したデータをメモリに格納するデータ記憶手段を実行する。コンピュータ１３の中央処理部は、復号化したデータを出力装置４０を介して出力するデータ出力手段を実行する。なお、外部サーバ１１や磁気カードリーダ１２、ホストコンピュータ１３、各入力装置１４，３９、各出力装置１５，４０には、配線を介して電力が供給されている。
【００４８】
図５は、外部サーバ１１と磁気ヘッド１９との間で行われる処理の一例を示すブロック図である。外部サーバ１１と磁気ヘッド１９との間で行われる相互認証の一例を説明すると、以下のとおりである。システム１０を起動させると、外部サーバ１１や磁気カードリーダ１２、ホストコンピュータ１３が稼動する。サーバ１１がカードリーダ１２のＵＲＬを利用し、インターネットを介してカードリーダ１２にアクセスする（アクセス手段）。または、カードリーダ１２がサーバ１１のＵＲＬを利用し、インターネットを介してサーバ１１にアクセスする。
【００４９】
外部サーバ１１と磁気カードリーダ１２のコントローラとがインターネットを介して接続されると、サーバ１１の中央処理部とマイクロプロセッサ２６の中央処理部３５とがカードリーダ１２のコントローラを介して接続される。サーバ１１の中央処理部とプロセッサ２６の中央処理部３５とは、メモリーテスト（Ｓ−１０）とコードサイニング（Ｓ−１１）とを行う（初期テスト）。コードサイニング（Ｓ−１１）は、ファームウェアのオブジェクトコードが書き替えられていないかを判定する。初期テストが終了し、その結果が正しい場合、サーバ１１の中央処理部とプロセッサ２６の中央処理部３５とは、それらの正当性を判断する相互認証を行う（相互認証手段）。相互認証は、サーバ１１が磁気ヘッド１９の正当性を認証する外部認証（Ｓ−１２）を行った後、磁気ヘッド１９がサーバ１１の正当性を認証する内部認証（Ｓ−１３）を行う。
【００５０】
外部サーバ１１の中央処理部とマイクロプロセッサ２６の中央処理部３５とが相互認証による互いの認証結果を正当であると判断すると、サーバ１１からファームウェアや暗号化アルゴリズムの磁気ヘッド１９へのダウンロードが可能となり、サーバ１１とプロセッサ２６との間でダウンロード処理が行われる（Ｓ−１４）。逆に、サーバ１１とプロセッサ２６との少なくとも一方が認証結果を不可であると判断すると、認証不可メッセージがサーバ１１のディスプレイに表示され、ファームウェアや暗号化アルゴリズムの磁気ヘッド１９へのダウンロードを行うことができない。
【００５１】
サーバ１１とプロセッサ２６との間の相互認証は、システム１０を起動させる度毎に行われる場合、システム１０を連続して稼働させるきは日時単位や週単位、月単位で行われる場合、あるいは、ファームウェアを磁気ヘッド１９にダウンロードする度毎に行われる場合、暗号化アルゴリズムを磁気ヘッド１９にダウンロードする度毎に行われる場合がある。なお、サーバ１１とプロセッサ２６とが相互認証を行うことなく、サーバ１１とプロセッサ２６とがインターネットを介して接続され、サーバ１１が磁気ヘッド１９へファームウェアや暗号化アルゴリズムのダウンロードを行うこともできる。
【００５２】
図６は、外部認証の一例を示すラダー図であり、図７は、内部認証の一例を示すラダー図である。外部認証における認証手順は、以下のとおりである。外部サーバ１１の中央処理部がマイクロプロセッサ２６の中央処理部３５に乱数（認証子）の生成と送信とを要求する（Ｓ−２０）。プロセッサ２６の中央処理部３５は、サーバ１１の指令に従って６４ｂｉｔ乱数を生成し、生成した乱数をサーバ１１に送信する（Ｓ−２１）。６４ｂｉｔ乱数を取得したサーバ１１の中央処理部は、メモリに格納された認証用の鍵を使用し、トリプルＤＥＳ（Triple  Data  Encryption  Standard）によって乱数を暗号化した後、暗号化した乱数をプロセッサ２６に送信する（Ｓ−２２）。プロセッサ２６の中央処理部３５は、メモリ３６に格納された認証用の鍵を使用し、トリプルＤＥＳによって暗号化された乱数を復号化する。プロセッサ２６の中央処理部３５は、それが生成した乱数と復号化した乱数とを比較し、両者が同一であれば認証結果を正当であると判断し、認証結果正当情報をサーバ１１に送信する（Ｓ−２３）。一方、生成した乱数と復号化した乱数とが異なる場合、認証結果を不可であると判断し、認証結果不可情報をサーバ１１に送信する（Ｓ−２３）。サーバ１１は、プロセッサ２６から外部認証結果を取得する（Ｓ−２４）。
【００５３】
トリプルＤＥＳは、シングルＤＥＳ（Single  Data  Encryption  Standard）を３回繰り返すことにより、鍵の伸長やアルゴリズムの偏りの減少を図り、暗号強度を強化する。トリプルＤＥＳには、３つの鍵が全て異なる３−ＫｅｙトリプルＤＥＳと、１回目と３回目とに同じ鍵を用いる２−ＫｅｙトリプルＤＥＳとがある。なお、トリプルＤＥＳは、３−ＫｅｙトリプルＤＥＳと２−ＫｅｙトリプルＤＥＳとのいずれでもよい。また、ＤＥＳは、トリプルＤＥＳではなく、シングルＤＥＳであってもよい。
【００５４】
内部認証における認証手順は、以下のとおりである。外部サーバ１１の中央処理部は、６４ｂｉｔ乱数（認証子）を生成し、それをマイクロプロセッサ２６に送信する（Ｓ−２５）。６４ｂｉｔ乱数を取得したプロセッサ２６の中央処理部３５は、メモリ３６に格納された認証用の鍵を使用し、トリプルＤＥＳによって乱数を暗号化した後、暗号化した乱数をサーバ１１に送信する（Ｓ−２６）。サーバ１１の中央処理部は、メモリに格納された認証用の鍵を使用し、トリプルＤＥＳによって暗号化された乱数を復号化する（Ｓ−２７）。サーバ１１の中央処理部は、それが生成した乱数と復号化した乱数とを比較し、両者が同一であれば認証結果を正当であると判断する。一方、生成した乱数と復号化した乱数とが異なる場合、認証結果を不可であると判断し、磁気ヘッド１９へのファームウェアや暗号化アルゴリズムのダウンロードを不可とする。
【００５５】
図８は、外部サーバ１１とマイクロプロセッサ２６との間におけるダウンロード処理の一例を示すラダー図である。外部サーバ１１のメモリには、ファームウェアおよび暗号化アルゴリズムとそれらを暗号化する暗号化用の鍵とが格納されており、必要に応じてバージョンアップされたあらたなファームウェアまたはあらたな暗号化アルゴリズムが随時格納される。マイクロプロセッサ２６のメモリ３６には、ファームウェアおよび暗号化アルゴリズムの復号化用の鍵が格納されている。
【００５６】
外部サーバ１１の中央処理部は、ファームウェアおよび暗号化アルゴリズムと暗号化用の鍵とをメモリから取り出し、その鍵を使用してトリプルＤＥＳによってファームウェアや暗号化アルゴリズムを暗号化する（ファームウェア暗号化手段、アルゴリズム暗号化手段）（Ｓ−２８）。サーバ１１の中央処理部は、暗号化したファームウェアや暗号化アルゴリズムをインターネットを介して磁気ヘッド１９にダウンロードする（ファームウェア第１ダウンロード手段、アルゴリズム第１ダウンロード手段）（Ｓ−２９）。なお、ファームウェアや暗号化アルゴリズムを暗号化しない場合、サーバ１１の中央処理部は、それらを暗号化せずにそのまま磁気ヘッド１９にダウンロードする（ファームウェア第１ダウンロード手段、アルゴリズム第１ダウンロード手段）（Ｓ−２９）。
【００５７】
外部サーバ１１の中央処理部は、バージョンアップされたあらたなファームウェアまたはあらたな暗号化アルゴリズムの磁気ヘッド１９へのダウンロードが必要になると、あらたなファームウェアやあらたな暗号化アルゴリズムと暗号化用の鍵とをメモリから取り出し、その鍵を使用してトリプルＤＥＳによってファームウェアや暗号化アルゴリズムを暗号化する（ファームウェア暗号化手段、アルゴリズム暗号化手段）（Ｓ−２８）。サーバ１１の中央処理部は、暗号化したあらたなファームウェアおよびあらたな暗号化アルゴリズムをインターネットを介して磁気ヘッド１９にダウンロードする（ファームウェア第２ダウンロード手段、アルゴリズム第２ダウンロード手段）（Ｓ−２９）。なお、あらたなファームウェアやあらたな暗号化アルゴリズムを暗号化しない場合、サーバ１１の中央処理部は、それらを暗号化せずにそのまま磁気ヘッド１９にダウンロードする（ファームウェア第２ダウンロード手段、アルゴリズム第２ダウンロード手段）（Ｓ−２９）。サーバ１１からダウンロードされたファームウェアや暗号化アルゴリズムは、磁気カードリーダ１９のコントローラのメモリに一時保管された後、コントローラから磁気ヘッド１９に出力される。
【００５８】
マイクロプロセッサ２６の中央処理部３５は、暗号化されたファームウェアおよび暗号化アルゴリズムを外部サーバ１１から受け取ると、メモリ３６から復号化用の鍵を取り出し、その鍵を使用してリプルＤＥＳによって暗号化されたファームウェアや暗号化アルゴリズムを復号化する（ファームウェア復号化手段、アルゴリズム復号化手段）（Ｓ−３０）。中央処理部３５は、複合化したファームウェアおよび暗号化アルゴリズムをメモリ３６に格納する（ファームウェア記憶手段、アルゴリズム記憶手段）。暗号化していないファームウェアおよび暗号化アルゴリズムを外部サーバ１１から受け取ると、中央処理部３５は、そのファームウェアや暗号化アルゴリズムをメモリ３６に格納する（ファームウェア記憶手段、アルゴリズム記憶手段）。
【００５９】
マイクロプロセッサ２６の中央処理部３５は、暗号化されたあらたなファームウェアおよびあらたな暗号化アルゴリズムを外部サーバ１１から受け取ると、復号化用の鍵を使用してリプルＤＥＳによって暗号化されたあらたなファームウェアやあらたな暗号化アルゴリズムを復号化する（ファームウェア復号化手段、アルゴリズム復号化手段）（Ｓ−３０）。中央処理部３５は、バージョンアップ前のファームウェアをバージョンアップ後の複合化したファームウェアに書き換え（ファームウェア更新手段）、バージョンアップ後のファームウェアをメモリ３６に格納する。さらに、すでに記憶した暗号化アルゴリズムを復号化したあらたな暗号化アルゴリズムに書き換え（アルゴリズム更新手段）、あらたな暗号化アルゴリズムをメモリ３６に格納する。暗号化していないあらたなファームウェアやあらたな暗号化アルゴリズムをサーバ１１から受け取ると、中央処理部３５は、バージョンアップ前のファームウェアをバージョンアップ後のファームウェアに書き換え（ファームウェア更新手段）、バージョンアップ後のファームウェアをメモリ３６に格納するとともに、すでに記憶した暗号化アルゴリズムをあらたな暗号化アルゴリズムに書き換え（アルゴリズム更新手段）、あらたな暗号化アルゴリズムをメモリ３６に格納する。
【００６０】
ファームウェアの書き換えは、それがバージョンアップされた場合、磁気カード２９の仕様が変更され、カード２９のフォーマットが変更された場合に行われる。暗号化アルゴリズムの書き換えは、第３者にアルゴリズムが解析されたことで、書き換えの必要が生じた場合、システム１０を起動させる度毎に行う場合、日時単位や週単位、月単位で行う場合、同期がずれた後、再び同期する場合に行われる。
【００６１】
図９〜図１４は、暗号化および復号化に使用する鍵の生成の一例を説明する図である。外部サーバ１１の中央処理部とマイクロプロセッサ２６の中央処理部３５とは、暗号化されたファームウェアまたは暗号化アルゴリズムが磁気ヘッド１９にダウンロードされる度毎に、それらのメモリ３６にあらかじめ格納された同一かつ有限の回帰カウンタ値を使用して互いに同期しつつ、ファームウェアまたは暗号化アルゴリズムの暗号化と復号化とに必要な同一のあらたな第２〜第ｎ鍵を順に生成する（鍵生成手段）。サーバ１１の中央処理部とプロセッサ２６の中央処理部３５とが行う鍵生成手順の一例を説明すると、以下のとおりである。なお、回帰カウンタ値は１〜２０とする。ただし、回帰カウンタ値に特に限定はなく、カウンタ値を２１以上とすることもできる。
【００６２】
外部サーバ１１が第１番目のファームウェア（新規ファームウェア）または暗号化アルゴリズム（新規アルゴリズム）を磁気ヘッド１９にダウンロードする場合、サーバ１１の中央処理部は、図９に示すように、メモリに格納されたカウンタテーブルから回帰カウンタ値１を選択し、ファームウェアや暗号化アルゴリズムにカウンタ値１を添付する。カウンタテーブルには、カウンタ値（１〜２０）の格納エリアとそれに対応する３つの鍵の格納エリア（Ｋ１，Ｋ２，Ｋ３）とが作られている。ただし、図９のカウンタデーブルでは、回帰カウンタ値２〜２０に対応する第２鍵〜第２０鍵は生成されていない。なお、カウンタ値１に対応する第１鍵（Ｋｅｙ１）は、初期値としてシステム１０の導入時に設定される。
【００６３】
外部サーバ１１の中央処理部は、カウンタテーブルからカウンタ値１に対応する第１鍵を取り出し、第１鍵を使用し、トリプルＤＥＳ（３−ＫｅｙトリプルＤＥＳ）によってファームウェアまたは暗号化アルゴリズムとカウンタ値１とを暗号化し（ファームウェア暗号化手段、アルゴリズム暗号化手段）、暗号化したファームウェアや暗号化アルゴリズムを磁気ヘッド１９にダウンロードする（ファームウェア第１ダウンロード手段、アルゴリズム第１ダウンロード手段）。サーバ１１の中央処理部は、暗号化したファームウェアや暗号化アルゴリズムを磁気ヘッド１９にダウンロードした後、回帰カウンタ値を１から２に変更し、カウンタ値２をメモリに格納する。
【００６４】
暗号化されたファームウェア（第１番目のファームウェア）または暗号化アルゴリズム（第１番目の暗号化アルゴリズム）を受け取ったマイクロプロセッサ２６の中央処理部３５は、図１０に示すように、メモリ３６に格納されたカウンタテーブルから回帰カウンタ値１を選択する。カウンタテーブルには、カウンタ値（１〜２０）の格納エリアとそれに対応する３つの鍵の格納エリア（Ｋ１，Ｋ２，Ｋ３）とが作られている。ただし、図１０のカウンタデーブルでは、回帰カウンタ値２〜２０に対応する第２鍵〜第２０鍵は生成されていない。なお、カウンタ値１に対応する第１鍵（Ｋｅｙ１）は、外部サーバ１１のメモリに格納された第１鍵と同一であり、初期値としてシステム１０の導入時に設定される。
【００６５】
マイクロプロセッサ２６の中央処理部３５は、カウンタテーブルからカウンタ値１に対応する第１鍵を取り出し、第１鍵を使用し、トリプルＤＥＳ（３−ＫｅｙトリプルＤＥＳ）によって暗号化されたファームウェアや暗号化アルゴリズムを復号化して平文ファームウェア、平文アルゴリズムを取得する（ファームウェア復号化手段、アルゴリズム復号化手段）。中央処理部３５は、ファームウェアや暗号化アルゴリズムを復号化した後、それらをメモリ３６に格納するとともに（ファームウェア記憶手段、アルゴリズム記憶手段）、回帰カウンタ値を１から２に変更し、カウンタ値２をメモリ３６に格納する。
【００６６】
外部サーバ１１は、マイクロプロセッサ２６が現在使用しているファームウェアや暗号化アルゴリズムの使用を中止させ、メモリに格納されたファームウェアや暗号化アルゴリズムの中からあらたなファームウェアやあらたなアルゴリズムを選択し、そのファームウェアやアルゴリズムを使用させることができる。サーバ１１が第２番目のファームウェア（バージョンアップファームウェア）または第２番目の暗号化アルゴリズム（あらたな暗号化アルゴリズム）を磁気ヘッド１９にダウンロードする場合、外部サーバ１１の中央処理部は、図１１に示すように、メモリに格納されたカウンタテーブルから回帰カウンタ値２を選択し、第２番目のファームウェアや暗号化アルゴリズムにカウンタ値２を添付する。
【００６７】
外部サーバ１１の中央処理部は、カウンタ値１に対応する第１鍵（初期値）とカウンタ値１とを一方向ハッシュ関数によってハッシュ化したハッシュ出力値を生成し、そのハッシュ出力値をカウンタ値２に対応する第２鍵（Ｋｅｙ２）とする（鍵生成手段）。第２鍵（Ｋｅｙ２）となるハッシュ出力値は、カウンタテーブルのカウンタ値２に対応する鍵格納エリア（Ｋ１，Ｋ２，Ｋ３）に書き込まれる。なお、図１１のカウンタデーブルでは、回帰カウンタ値３〜２０に対応する第３鍵〜第２０鍵は生成されていない。
【００６８】
外部サーバ１１の中央処理部は、カウンタテーブルからカウンタ値２に対応する第２鍵を取り出し、第２鍵を使用し、トリプルＤＥＳ（３−ＫｅｙトリプルＤＥＳ）によってファームウェアや暗号化アルゴリズムを暗号化（カウンタ値２を含む）し（ファームウェア暗号化手段、アルゴリズム暗号化手段）、暗号化したファームウェアや暗号化アルゴリズムを磁気ヘッド１９にダウンロードする（ファームウェア第２ダウンロード手段、アルゴリズム第２ダウンロード手段）。サーバ１１の中央処理部は、暗号化したファームウェアまたは暗号化アルゴリズムを磁気ヘッド１９にダウンロードした後、回帰カウンタ値を２から３に変更し、カウンタ値３をメモリに格納する。
【００６９】
暗号化されたファームウェア（第２番目のファームウェア）または暗号化アルゴリズム（第２番目の暗号化アルゴリズム）を受け取ったマイクロプロセッサ２６の中央処理部３５は、図１２に示すように、メモリ３６に格納されたカウンタテーブルから回帰カウンタ値２を選択する。中央処理部３５は、カウンタ値１に対応する第１鍵（初期値）とカウンタ値１とを一方向ハッシュ関数によってハッシュ化したハッシュ出力値を生成し、そのハッシュ出力値をカウンタ値２に対応する第２鍵（Ｋｅｙ２）とする（鍵生成手段）。中央処理部３５が使用するハッシュ関数はサーバ１１の中央処理部が使用するそれと同一であり、生成した第２鍵（Ｋｅｙ２）はサーバ１１の中央処理部が生成したそれと同一である。第２鍵（Ｋｅｙ２）となるハッシュ出力値は、カウンタテーブルのカウンタ値２に対応する鍵格納エリア（Ｋ１，Ｋ２，Ｋ３）に書き込まれる。なお、図１２のカウンタデーブルでは、回帰カウンタ値３〜２０に対応する第３鍵〜第２０鍵は生成されていない。
【００７０】
マイクロプロセッサ２６の中央処理部３５は、カウンタテーブルからカウンタ値２に対応する第２鍵を取り出し、第２鍵を使用し、トリプルＤＥＳ（３−ＫｅｙトリプルＤＥＳ）によって暗号化されたファームウェアや暗号化アルゴリズムを復号化して平文ファームウェア、平文アルゴリズムを取得する（ファームウェア復号化手段、アルゴリズム復号化手段）。中央処理部３５は、ファームウェアや暗号化アルゴリズムを復号化した後、それらをメモリ３６に格納するとともに（ファームウェア記憶手段、アルゴリズム記憶手段）、回帰カウンタ値を２から３に変更し、カウンタ値３をメモリ３６に格納する。
【００７１】
外部サーバ１１が第３番目のファームウェア（バージョンアップファームウェア）または第３番目の暗号化アルゴリズム（あらたな暗号化アルゴリズム）を磁気ヘッドにダウンロードする場合、サーバ１１の中央処理部は、図１３に示すように、メモリに格納されたカウンタテーブルから回帰カウンタ値３を選択し、第３番目のファームウェアや暗号化アルゴリズムにカウンタ値３を添付する。
【００７２】
外部サーバ１１の中央処理部は、カウンタ値２に対応する第２鍵（Ｋｅｙ２、ハッシュ値）とカウンタ値２とを一方向ハッシュ関数によってハッシュ化したハッシュ出力値を生成し、そのハッシュ出力値をカウンタ値３に対応する第３鍵（Ｋｅｙ３）とする（鍵生成手段）。第３鍵（Ｋｅｙ３）となるハッシュ出力値は、カウンタテーブルのカウンタ値３に対応する鍵格納エリア（Ｋ１，Ｋ２，Ｋ３）に書き込まれる。なお、図１３のカウンタデーブルでは、回帰カウンタ値４〜２０に対応する第４鍵〜第２０鍵は生成されていない。
【００７３】
外部サーバ１１の中央処理部は、カウンタテーブルからカウンタ値３に対応する第３鍵を取り出し、第３鍵を使用し、トリプルＤＥＳ（３−ＫｅｙトリプルＤＥＳ）によってファームウェアや暗号化アルゴリズムを暗号化（カウンタ値３を含む）し（ファームウェア暗号化手段、アルゴリズム暗号化手段）、暗号化したファームウェアや暗号化アルゴリズムを磁気ヘッド１９にダウンロードする（ファームウェア第２ダウンロード手段、アルゴリズム第２ダウンロード手段）。サーバ１１の中央処理部は、暗号化したファームウェアまたは暗号化アルゴリズムを磁気ヘッド１９にダウンロードした後、回帰カウンタ値を３から４に変更し、カウンタ値４をメモリに格納する。
【００７４】
暗号化されたファームウェア（第３番目のファームウェア）または暗号化アルゴリズム（第３番目の暗号化アルゴリズム）を受け取ったマイクロプロセッサ２６の中央処理部３５は、図１４に示すように、メモリ３６に格納されたカウンタテーブルから回帰カウンタ値３を選択する。中央処理部３５は、カウンタ値２に対応する第２鍵（Ｋｅｙ２）とカウンタ値２とを一方向ハッシュ関数によってハッシュ化したハッシュ出力値を生成し、そのハッシュ出力値をカウンタ値３に対応する第３鍵（Ｋｅｙ３）とする（鍵生成手段）。中央処理部３５が生成した第３鍵（Ｋｅｙ３）は外部サーバ１１の中央処理部が生成したそれと同一である。第３鍵（Ｋｅｙ３）となるハッシュ出力値は、カウンタテーブルのカウンタ値３に対応する鍵格納エリア（Ｋ１，Ｋ２，Ｋ３）に書き込まれる。なお、図１４のカウンタデーブルでは、回帰カウンタ値４〜２０に対応する第４鍵〜第２０鍵は生成されていない。
【００７５】
マイクロプロセッサ２６の中央処理部３５は、カウンタテーブルからカウンタ値３に対応する第３鍵を取り出し、第３鍵を使用し、トリプルＤＥＳ（３−ＫｅｙトリプルＤＥＳ）によって暗号化されたファームウェアや暗号化アルゴリズムを復号化して平文ファームウェア、平文アルゴリズムを取得する（ファームウェア復号化手段、アルゴリズム復号化手段）。中央処理部３５は、ファームウェアや暗号化アルゴリズムを復号化した後、それらをメモリ３６に格納するとともに（ファームウェア記憶手段、アルゴリズム記憶手段）、回帰カウンタ値を３から４に変更し、カウンタ値４をメモリ３６に格納する。
【００７６】
このように、外部サーバ１１の中央処理部とマイクロプロセッサ２６の中央処理部３５とは、回帰カウンタ値１〜２０を順番に使って互いに同期しつつ、一方向ハッシュ関数を使用して第２〜第ｎ鍵を生成する。回帰カウンタ値が２０を超えると、サーバ１１の中央処理部とプロセッサ２６の中央処理部３５とは、再びカウンタ値１を使用し、第２１鍵〜第４０鍵を順に生成する。サーバ１１の中央処理部とプロセッサ２６の中央処理部３５とは、第２１鍵を生成すると、鍵格納エリアに格納された第１鍵を第２１鍵に書き換え、第２２鍵を生成すると、鍵格納エリアに格納された第２鍵を第２２鍵に書き替える。
【００７７】
この磁気カード読み取りシステム１０は、相互認証手段を実行することで外部サーバ１１の中央処理部とマイクロプロセッサ２６の中央処理部３５とが互いの正当性を判断することができるから、偽サーバが磁気ヘッド１９に接続された場合や偽磁気ヘッドが外部サーバ１１に接続された場合であっても、それを見破ることができる。このシステム１０は、第３者が偽サーバを利用して磁気ヘッド１９にアクセスすることはできず、ファームウェアの改竄による第３者の磁気カード２９の不正利用を防ぐことができる。また、このシステム１０は、第３者が偽磁気ヘッドを利用して外部サーバ１１にアクセスすることはできず、サーバ１１から偽磁気ヘッドに暗号化アルゴリズムがダウンロードされることはない。
【００７８】
システム１０は、外部サーバ１１の中央処理部とマイクロプロセッサ２６の中央処理部３５とが第２〜第ｎ鍵を個別に生成するから、サーバ１１からプロセッサ２６へ鍵を送信する必要はなく、鍵の送信過程における鍵の不正な取得を防ぐことができる。システム１０は、サーバ１１の中央処理部が常に別の鍵を使用してファームウェアや暗号化アルゴリズムの暗号化を行い、プロセッサ２６の中央処理部３５が常に別の鍵を使用してファームウェアや暗号化アルゴリズムの復号化を行うから、鍵を第３者に取得されたとしても、ファームウェアや暗号化アルゴリズムを復号化することはできない。また、第２〜第ｎ鍵にハッシュ値を使用するから、たとえ鍵が第３者に不正に取得されたとしても、鍵の解読をすることはできず、第３者による鍵の使用を確実に防ぐことができる。
【００７９】
システム１０は、外部サーバ１１の中央処理部とマイクロプロセッサ２６の中央処理部３５とが同一かつ有限の回帰カウンタ値を使用して互いに同期しつつ、第２〜第ｎ鍵を順に生成するから、サーバ１１が生成する鍵とプロセッサ２６が生成する鍵とを一致させることができ、生成した鍵の不一致による暗号データの復号不能を防ぐことができる。また、第２〜第ｎ鍵となるハッシュ出力値に回帰カウンタ値をハッシュ化したハッシュ出力値が含まれるから、第３者がシステム１０に不正に進入したとしても、ハッシュ化した回帰カウンタ値を解読することはできず、サーバ１１の中央処理部とプロセッサ２６の中央処理部３５とがどのカウンタ値を使用して同期しているかを判別することができない。
【００８０】
システム１０の稼働中に外部サーバ１１の中央処理部とマイクロプロセッサ２６の中央処理部３５との同期がずれると、サーバ１１の中央処理部が生成した鍵とプロセッサ２６の中央処理部３５が生成したそれとが異なり、中央処理部からダウンロードされた暗号データを中央処理部３５が復号化することができない。この場合、プロセッサ２６の中央処理部３５は、生成した鍵による復号化が不可能であると判断し、復号化不能をサーバ１１に送信するとともに（復号化不能情報送信手段）、サーバ１１との再同期を要求する（再同期要求手段）。
【００８１】
マイクロプロセッサ２６の中央処理部３５は、カードリーダ１２のコントローラに外部サーバ１１へのアクセスを要求するとともに、メモリ３６に格納されたデータ送受信用の鍵を使用し、トリプルＤＥＳによって復号化不能情報と再同期要求とを暗号化する。サーバ１１とカードリーダ１２とがインターネットを介して接続されると、プロセッサ２６の中央処理部３５は、暗号化した復号化不能情報と再同期要求とをサーバ１１に送信する。プロセッサ２６の中央処理部３６と再同期要求を受け取ったサーバ１１の中央処理部とは、それらの正当性を判断する外部認証と内部認証と（図６，７参照）を行う（相互認証手段）。サーバ１１の中央処理部とプロセッサ２６の中央処理部３５とは、相互認証による互いの認証結果を正当であると判断すると、回帰カウンタ値を１（初期値）に戻して再び同期を開始する。サーバ１１の中央処理部とプロセッサ２６の中央処理部３５とは、カウンタ値を１に戻すと、再び第１鍵を使用して暗号化および復号化を行う。
【００８２】
システム１０は、外部サーバ１１とマイクロプロセッサ２６とが生成した鍵に不一致が生じたとしても、サーバ１１とプロセッサ２６とが回帰カウンタ値を１に戻して再び同期することができるから、サーバ１１が生成する鍵とプロセッサ２６が生成する鍵とを再度一致させることができ、生成した鍵の不一致によるファームウェアや暗号化アルゴリズムの復号不能を防ぐことができる。なお、システム１０が連続して稼働し、相互認証を日時単位や週単位、月単位で行う場合、サーバ１１の中央処理部とプロセッサ２６の中央処理部３５とは、相互認証による互いの認証結果を正当であると判断すると、回帰カウンタ値を１に戻して再び同期を開始する。以後の手順は、図９〜図１４に基づいて説明したそれと同一である。
【００８３】
一方向ハッシュ関数には、ＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  １）、ＭＤ２，ＭＤ４，ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ２，４，５）、ＲＩＰＥＭＤ−８０、ＲＩＰＥＭＤ−１２８、ＲＩＰＥＭＤ−１６０、Ｎ−Ｈａｓｈのいずれかを使用する。それらハッシュ関数は、外部サーバ１１のメモリとホストコンピュータ１３のメモリとに格納されている。
【００８４】
暗号化アルゴリズムとしては、ＤＥＳの他に、ＲＳＡ、ＡＥＳ（Advanced  Encryption  Standard）、ＩＤＥＡ（International  Data  Encryption  Algorithm）、ＦＥＡＬ−Ｎ／ＮＸ（Fast   Encryption  Algorithm）、ＭＵＬＴＩ２（Multimedia   Encryption２）、ＭＩＳＴＹ、ＳＸＡＬ（Substitution  Ｘor  
Algorithm）、ＭＢＡＬ（Multi  Block  Algorithm）、ＲＣ２、ＲＣ５、ＥＮＣＲｉＰ、ＳＡＦＥＲ（Secure  And  Fast  Encryption  Routine）、Ｂｌｏｗｆｉｓｈ、Ｓｋｉｐｊａｃｋ、Ｋｈｕｆｕ、Ｋｈａｆｒｅ、ＣＡＳＴ、ＧＯＳＴ２８１４７−８９のいずれかを使用することもできる。それらアルゴリズムは、外部サーバ１１のメモリとホストコンピュータ１３のメモリとに格納されている。
【００８５】
このシステム１０では、外部サーバ１１とマイクロプロセッサ２６とが図９〜図１４に示す鍵の生成を行うことなく、サーバ１１がプロセッサ２６にファームウェアや暗号化アルゴリズムをダウンロードすることもできる。その一例を説明すると、以下のとおりである。外部サーバ１１がカードリーダ１２のＵＲＬを利用し、インターネットを介してカードリーダ１２にアクセスする（アクセス手段）。または、カードリーダ１２が外部サーバ１１のＵＲＬを利用し、インターネットを介してサーバ１１にアクセスする。サーバ１１とカードリーダ１２とがインターネットを介して接続されると、サーバ１１の中央処理部とマイクロプロセッサ２６の中央処理部３５とがコントローラを介して接続される。サーバ１１の中央処理部とプロセッサ２６の中央処理部３５とは、それらの正当性を判断する外部認証と内部認証と（図６，７参照）を行う（相互認証手段）。サーバ１１の中央処理部とプロセッサ２６の中央処理部３５とが相互認証による互いの認証結果を正当であると判断すると、サーバ１１からファームウェアや暗号化アルゴリズムの磁気ヘッド１９へのダウンロードが可能となり、サーバ１１とプロセッサ２６との間でダウンロード処理が行われる。
【００８６】
外部サーバ１１の中央処理部は、メモリに格納された情報送受信用の鍵を使用し、トリプルＤＥＳによってあらたなファームウェアや暗号化アルゴリズムを暗号化し（ファームウェア暗号化手段、アルゴリズム暗号化手段）、暗号化したファームウェアやアルゴリズムを磁気ヘッド１９にダウンロードする（ファームウェア第１ダウンロード手段、アルゴリズム第１ダウンロード手段）。サーバ１１からダウンロードされたファームウェアや暗号化アルゴリズムは、カードリーダ１２のコントローラのメモリに一時的に保管された後、磁気ヘッド１９に出力される。
【００８７】
マイクロプロセッサ２６の中央処理部３５は、暗号化されたファームウェアや暗号化アルゴリズムをサーバ１１から受け取ると、メモリ３６に格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって暗号化されたファームウェアやアルゴリズムを復号化して平文ファームウェア、平文アルゴリズムを取得する（ファームウェア復号化手段、アルゴリズム復号化手段）、復号化したファームウェアやアルゴリズムをメモリに格納する（ファームウェア記憶手段、アルゴリズム記憶手段）。
【００８８】
外部サーバ１１は、マイクロプロセッサ２６が現在使用しているファームウェアや暗号化アルゴリズムの使用を中止させ、メモリに格納されたファームウェアや暗号化アルゴリズムの中からあらたなファームウェアやあらたなアルゴリズムを選択し、そのファームウェアやアルゴリズムを使用させることができる。サーバ１１は、あらたなファームウェアやあらたな暗号化アルゴリズムをプロセッサ２６に使用させる場合、プロセッサ２６に既存のファームウェアや暗号化アルゴリズムの書き換えを指示する（更新指令）。なお、外部認証と内部認証と（図６，７参照）がすでに行われ、サーバ１１とプロセッサ２６とが相互認証による互いの認証結果を正当であると判断したものとする。
【００８９】
外部サーバ１１の中央処理部は、メモリに格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって更新指令とあらたなファームウェアやあらたな暗号化アルゴリズムとを暗号化し（ファームウェア暗号化手段、アルゴリズム暗号化手段）、暗号化した更新指令やファームウェア、アルゴリズムを磁気ヘッド１９にダウンロードする（ファームウェア第２ダウンロード手段、アルゴリズム第２ダウンロード手段）。サーバ１１からダウンロードされた更新指令やファームウェア、暗号化アルゴリズムは、カードリーダ１２のコントローラのメモリに一時的に保管された後、磁気ヘッド１９に出力される。
【００９０】
マイクロプロセッサ２６の中央処理部３５は、暗号化された更新指令やファームウェア、暗号化アルゴリズムを外部サーバ１１から受け取ると、メモリ３６に格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって暗号化された更新指令とファームウェアやアルゴリズムとを復号化する（ファームウェア復号化手段、アルゴリズム復号化手段）。中央処理部３５は、メモリ３６に格納された既存のファームウェアを復号化したあらたなファームウェアに書き換え（ファームウェア更新手段）、あらたなファームウェアをメモリ３６に格納する。さらに、メモリ３６に格納された既存のアルゴリズムを復号化したあらたなアルゴリズムに書き換え（アルゴリズム更新手段）、あらたなアルゴリズムをメモリ３６に格納する。中央処理部３５は、更新完了をサーバ１１に通知する（更新完了通知）。中央処理部３５は、メモリ３６に格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって更新完了通知を暗号化し、暗号化した更新完了通知をサーバ１１に送信する。
【００９１】
外部サーバ１１は、現在使用しているハッシュ関数の使用を中止し、メモリに格納されたハッシュ関数の中からあらたなハッシュ関数を選択し、そのハッシュ関数を使用することができる。ハッシュ関数の変更は、システム１０を起動させる度毎に行う場合、日時単位や週単位、月単位で行う場合、同期がずれた後、再び同期するときに行う場合がある。サーバ１１は、あらたなハッシュ関数を使用する場合、マイクロプロセッサ２６に既存のハッシュ関数の書き換えを指示する（関数変更指令）。サーバ１１の中央処理部は、カードリーダ１２にアクセスする。サーバ１１とカードリーダ１２とがインターネットを介して接続されると、サーバ１１の中央処理部とプロセッサ２６の中央処理部３５とは、それらの正当性を判断する外部認証と内部認証と（図６，７参照）を行う（相互認証手段）。サーバ１１の中央処理部とプロセッサ２６の中央処理部３５とが相互認証による互いの認証結果を正当であると判断すると、サーバ１１の中央処理部は、メモリに格納されたデータ送受信用の鍵を使用し、トリプルＤＥＳによって関数変更指令とあらたなハッシュ関数とを暗号化した後、暗号化した関数変更指令とハッシュ関数とをプロセッサ２６に送信する。
【００９２】
マイクロプロセッサ２６の中央処理部３５は、関数変更指令とハッシュ関数とを受信すると、メモリ３６に格納されたデータ送受信用の鍵を使用し、トリプルＤＥＳによって暗号化された関数変更指令とハッシュ関数とを復号化する。プロセッサ２６の中央処理部３５は、メモリ３６に格納した既存のハッシュ関数を復号化したあらたなハッシュ関数に変更した後、変更完了を外部サーバ１１に通知する（変更完了通知手段）。中央処理部３５は、メモリ３６に格納されたデータ送受信用の鍵を使用し、トリプルＤＥＳによって変更完了通知を暗号化し、暗号化した変更完了通知をサーバ１１に送信する。このシステム１０は、関数変更指令やハッシュ関数を暗号化してハッシュ関数の変更を行うから、使用するハッシュ関数を第３者に取得されることはなく、第３者によるハッシュ関数の解読を防ぐことができる。
【００９３】
この磁気カード読み取りシステム１０は、ファームウェアまたは暗号化アルゴリズムが外部サーバ１１から磁気ヘッド１９にダウンロードされると、プロセッサ２６がそのファームウェアや暗号化アルゴリズムをメモリ３６に格納するから、磁気ヘッド１９が市場に出荷された後や磁気ヘッド１９が磁気カードリーダ１２に設置された後において、サーバ１１からダウンロードされたファームウェアや暗号化アルゴリズムをプロセッサ２６に随時格納することができる。
【００９４】
システム１０は、磁気ヘッド１９の出荷後や設置後でも、各種のファームウェアに対応することができ、それらファームウェアを利用することで、磁気ヘッド１９の動作環境に応じてプロセッサ２６の演算・記憶機能や外部ハードウェアの最適な制御を行うことができる。このシステム１０は、磁気ヘッド１９の出荷後や設置後において、磁気ヘッド１９を磁気カード２９の各種フォーマットに対応させることができ、磁気カード２９の各種仕様に適応しつつ、それらカード２９に記憶されたデータを磁気ヘッド１９に確実に読み取らせることができる。このシステム１０は、磁気ヘッド１９の出荷後や設置後でも、各種の暗号化アルゴリズムを利用することができ、それらアルゴリズムを利用してカードデータを暗号化することができる。このシステム１０では、プロセッサ２６がバージョンアップ前のファームウェアをバージョンアップ後のファームウェアに書き換えるから、磁気ヘッド１９の出荷後や設置後において、ファームウェアのバージョンアップが行われたとしても、バージョンアップ後のファームウェアに即座に対応することができる。
【００９５】
図１５は、磁気ヘッド１９とホストコンピュータ１３との間で行われる処理の一例を示すブロック図である。このシステム１０を起動させると、ホストコンピュータ１３の中央処理部とマイクロプロセッサ２６の中央処理部３５とは、メモリーテスト（Ｓ−５０）とコードサイニング（Ｓ−５１）とを行う（初期テスト）。初期テストが終了し、その結果が正しい場合、コンピュータ１３の中央処理部とプロセッサ２６の中央処理部３５とは、それらの正当性を判断する相互認証を行う（相互認証手段）。相互認証は、コンピュータ１３が磁気ヘッド１９の正当性を認証する外部認証（Ｓ−５２）を行った後、磁気ヘッド１９がコンピュータ１３の正当性を認証する内部認証（Ｓ−５３）を行う。
【００９６】
コンピュータ１３の中央処理部とマイクロプロセッサ２６の中央処理部３５とが相互認証による互いの認証結果を正当であると判断すると、磁気カードリーダ１２における磁気カード２９の読み取りが可能となり、コンピュータ１３とプロセッサ２６との間でメイン処理（Ｓ−５４）が行われる。逆に、コンピュータ１３とプロセッサ２６との少なくとも一方が認証結果を不可であると判断すると、カードリーダ１２による磁気カード２９の読み取りができず、読み取り不能情報がコンピュータ１３のディスプレイに表示される。相互認証は、システム１０を起動させる度毎に行われる他、システム１０を連続して稼働させる場合は日時単位や週単位、月単位で行われ、また、後記するように、コンピュータ１３の中央処理部とプロセッサ２６の中央処理部３５との同期が不一致になった場合にも行われる。
【００９７】
図１６は、外部認証の一例を示すラダー図であり、図１７は、内部認証の一例を示すラダー図である。外部認証における認証手順は、以下のとおりである。ホストコンピュータ１３の中央処理部がマイクロプロセッサ２６の中央処理部３５に乱数（認証子）の生成と送信とを要求する（Ｓ−６０）。プロセッサ２６の中央処理部３５は、コンピュータ１３の指令に従って６４ｂｉｔ乱数を生成し、生成した乱数をコンピュータ１３に送信する（Ｓ−６１）。６４ｂｉｔ乱数を取得したコンピュータ１３の中央処理部は、メモリに格納された認証用の鍵を使用し、トリプルＤＥＳによって乱数を暗号化した後、暗号化した乱数をプロセッサ２６に送信する（Ｓ−６２）。
【００９８】
マイクロプロセッサ２６の中央処理部３５は、メモリ３６に格納された認証用の鍵を使用し、トリプルＤＥＳによって暗号化された乱数を復号化する（Ｓ−６３）。プロセッサ２６の中央処理部３５は、それが生成した乱数と復号化した乱数とを比較し、両者が同一であれば認証結果を正当であると判断し、認証結果正当情報をコンピュータ１３に送信する。一方、生成した乱数と復号化した乱数とが異なる場合、認証結果を不可であると判断し、認証結果不可情報と磁気カード２９の読み取り不可情報とをコンピュータ１３に送信する。コンピュータ１３は、マイクロプロセッサ２６から外部認証結果を取得する（Ｓ−６４）。
【００９９】
内部認証における認証手順は、以下のとおりである。コンピュータ１３の中央処理部は、６４ｂｉｔ乱数（認証子）を生成し、それをマイクロプロセッサ２６に送信する（Ｓ−６５）。６４ｂｉｔ乱数を取得したプロセッサ２６の中央処理部３５は、メモリ３６に格納された認証用の鍵を使用し、トリプルＤＥＳによって乱数を暗号化した後、暗号化した乱数をコンピュータ１３に送信する（Ｓ−６６）。コンピュータ１３の中央処理部は、メモリに格納された認証用の鍵を使用し、トリプルＤＥＳによって暗号化された乱数を復号化する（Ｓ−６７）。コンピュータ１３の中央処理部は、それが生成した乱数と復号化した乱数とを比較し、両者が同一であれば認証結果を正当であると判断する。一方、生成した乱数と復号化した乱数とが異なる場合、認証結果を不可であると判断し、カードリーダ１２における磁気カード２９の読み取りを不可とする。
【０１００】
図１８は、このシステム１０におけるメイン処理の一例を示すラダー図である。図１９〜図２４は、暗号化および復号化に使用する鍵の生成の他の一例を説明する図である。相互認証の結果が正当であり、磁気カード２９の読み取りが可能となった後、カード所持者がカード挿入口１６から磁気カード２９を挿入すると、モータ２２が駆動してカード２９が案内レール１８を移動する。カード２９が挿入口１６を通過すると、光センサ２０がそれを検出し、カード挿入信号が光センサ２０から出力されてカードリーダ１２のコントローラに入力される。コントローラは、カード挿入信号を受け取ると、磁気ヘッド１９のマイクロプロセッサ２６に、カード２９に記憶されたカードデータの読み取り開始指令を出力する。磁気カード２９が磁気ヘッド１９を通過するとともに排出口１７から排出されると、光センサ２０がそれを検出し、カード通過信号が光センサ２０から出力されてカードリーダ１２のコントローラに入力される。コントローラは、カード通過信号を受け取ると、磁気ヘッド１９のプロセッサ２６にカードデータの読み取り停止指令を出力するとともに、モータ２２の駆動を停止する。
【０１０１】
磁気カード２９の磁化された磁性層３２が磁気ヘッド１９のコア２４の先端部２７（コア２４のギャップ）を通過すると、コア２４内に磁束が発生し、磁束と鎖交する方向へ誘導起電力が生じてコイルに電流が流れる。コイルに流れる電流は、その値が磁束の変化にともなって変わる。磁気カード２９の磁性層３２に記憶されたカードデータは、コイルによってアナログ信号として取り出され、コイルに接続されたＡ／Ｄ変換チップ２５に入力される。Ａ／Ｄ変換チップ２５は、コイルから入力されたアナログ信号をデジタル信号に変換する。デジタル信号は、Ａ／Ｄ変換チップ２５からマイクロプロセッサ２６に入力され、プロセッサ２６のメモリ３６に格納される。
【０１０２】
システム１０の稼働中、ホストコンピュータ１３の中央処理部は、マイクロプロセッサ２６のメモリ３６に処理すべきカードデータが存在するかを所定間隔でプロセッサ２６に問い合わせる（データ確認指令）。コンピュータ１３の中央処理部は、メモリに格納された情報送受信用の鍵を使用し、トリプルＤＥＳによってデータ確認指令を暗号化し、暗号化したデータ確認指令をプロセッサ２６に送信する（Ｓ−６８）。なお、所定間隔は、秒単位またはミリ秒単位であることが好ましい。プロセッサ２６の中央処理部３５は、データ確認指令を受信すると、メモリ３６に格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって暗号化されたデータ確認指令を復号化する。プロセッサ２６の中央処理部３５は、コンピュータ１３からのデータ確認指令に従ってメモリ３６を検索し、磁気カード２９のカードデータがデジタル信号としてメモリ３６に格納されている場合、データ保有をコンピュータ１３に返答し（データ保有情報）、カードデータがメモリ３６にない場合、データ非保有をコンピュータ１３に返答する（データ非保有情報）。プロセッサ２６は、情報送受信用の鍵を使用し、トリプルＤＥＳによってデータ保有情報やデータ非保有情報を暗号化し、暗号化したデータ保有情報やデータ非保有情報をコンピュータ１３に送信する（Ｓ−６９）。
【０１０３】
ホストコンピュータ１３の中央処理部は、データ保有情報やデータ非保有情報を受信すると、情報送受信用の鍵を使用し、トリプルＤＥＳによってデータ保有情報やデータ非保有情報を復号化する。コンピュータ１３の中央処理部は、データ非保有情報を受信すると、暗号化したデータ確認指令を所定の間隔で再びマイクロプロセッサ２６に送信し、メモリ３６に処理すべきカードデータが存在するかをプロセッサ２６に問い合わせる（データ確認指令）。コンピュータ１３の中央処理部は、データ保有情報を受信すると、プロセッサ２６のメモリ３６に格納されたカードデータの送信をプロセッサ２６に要求する（データ送信指令）。コンピュータ１３の中央処理部は、情報送受信用の鍵を使用し、トリプルＤＥＳによってデータ送信指令を暗号化し、暗号化したデータ送信指令をプロセッサ２６に送信する（Ｓ−７０）。プロセッサ２６の中央処理部３５は、データ送信指令を受信すると、情報送受信用の鍵を使用し、トリプルＤＥＳによって暗号化されたデータ送信指令を復号化する。
【０１０４】
マイクロプロセッサ２６の中央処理部３５は、メモリ３６からデジタル信号（カードデータ）と暗号用の鍵とを取り出し、その鍵を使用してデジタル信号を暗号化して暗号データとする（データ暗号化手段）（Ｓ−７１）。中央処理部３５は、暗号データをホストコンピュータ１３に送信する（暗号データ送信手段）。コンピュータ１３は、暗号データを増幅する増幅回路（図示せず）を有し、メモリから復号用の鍵を取り出し、その鍵を使用して増幅回路で増幅した暗号データを復号化する（データ復号化手段）（Ｓ−７２）。コンピュータ１３は、復号化したデジタル信号（平文カードデータ）を文字情報としてディスプレイに表示することができ（データ出力手段）、復号化したデジタル信号（平文カードデータ）を印字情報としてプリンタに印字させることができる（データ出力手段）。コンピュータ１３は、暗号化されたデジタル信号または復号化されたデジタル信号をメモリに格納する（データ記憶手段）。コンピュータ１３は、暗号データを復号化すると、暗号化したデータ確認指令を所定の間隔で再びプロセッサ２６に送信し、メモリ３６に処理すべきカードデータが存在するかをプロセッサ２６に問い合わせる（データ確認指令）。
【０１０５】
コンピュータ１３の中央処置部とマイクロプロセッサ２６の中央処理部３５とは、暗号化されたデジタル信号がコンピュータ１３に入力される度毎に、メモリとメモリ３６とにあらかじめ格納された同一かつ有限の回帰カウンタ値を使用して互いに同期しつつ、デジタル信号の暗号化と復号化とに必要な同一のあらたな第２〜第ｎ鍵を順に生成する（鍵生成手段）。コンピュータ１３の中央処置部とプロセッサ２６の中央処理部３６とが行う鍵生成手順の一例を、図１９〜図２４に基づいて説明すると、以下のとおりである。なお、回帰カウンタ値は１〜２０とする。ただし、回帰カウンタ値に特に限定はなく、カウンタ値を２１以上とすることもできる。
【０１０６】
システム１０を起動した後、第１番目のデジタル信号（カードデータ）がＡ／Ｄ変換チップ２５からマイクロプロセッサ２６に入力され、デジタル信号をメモリ３６に格納した後、データ送信指令を受信すると、プロセッサ２６の中央処理部３５は、図１９に示すように、メモリ３６に格納されたカウンタテーブルから回帰カウンタ値１を選択し、デジタル信号にカウンタ値１を添付する。カウンタテーブルには、カウンタ値（１〜２０）の格納エリアとそれに対応する３つの鍵の格納エリア（Ｋ１，Ｋ２，Ｋ３）とが作られている。ただし、図１９のカウンタデーブルでは、回帰カウンタ値２〜２０に対応する第２鍵〜第２０鍵は生成されていない。なお、カウンタ値１に対応する第１鍵（Ｋｅｙ１）は、初期値としてシステム１０の導入時に設定される。
【０１０７】
マイクロプロセッサ２６の中央処理部３５は、カウンタテーブルからカウンタ値１に対応する第１鍵を取り出し、第１鍵を使用し、トリプルＤＥＳ（３−ＫｅｙトリプルＤＥＳ）によってデジタル信号とカウンタ値１とを暗号化して暗号データとし（データ暗号化手段）、暗号データをコンピュータ１３に送信する（データ送信手段）。プロセッサ２６の中央処理部３５は、暗号データをコンピュータ１３に送信した後、回帰カウンタ値を１から２に変更し、カウンタ値２をメモリ３６に格納するとともに、第１番目のデジタル信号（カードデータ）をメモリ３６から消去する。
【０１０８】
第１番目の暗号データを受信したホストコンピュータ１３の中央処理部は、図２０に示すように、メモリに格納されたカウンタテーブルから回帰カウンタ値１を選択する。カウンタテーブルには、カウンタ値（１〜２０）の格納エリアとそれに対応する３つの鍵の格納エリア（Ｋ１，Ｋ２，Ｋ３）とが作られている。ただし、図２０のカウンタデーブルでは、回帰カウンタ値２〜２０に対応する第２鍵〜第２０鍵は生成されていない。なお、カウンタ値１に対応する第１鍵（Ｋｅｙ１）は、マイクロプロセッサ２６のメモリ３６に格納された第１鍵と同一であり、初期値としてシステム１０の導入時に設定される。コンピュータ１３の中央処理部は、カウンタテーブルからカウンタ値１に対応する第１鍵を取り出し、第１鍵を使用し、トリプルＤＥＳ（３−ＫｅｙトリプルＤＥＳ）によって暗号データを復号化してデジタル信号（平文カードデータ）を取得する。コンピュータ１３の中央処理部は、暗号データを復号化した後、回帰カウンタ値を１から２に変更し、カウンタ値２をメモリに格納する。
【０１０９】
第２番目のデジタル信号（カードデータ）がＡ／Ｄ変換チップ２５からマイクロプロセッサ２６に入力され、デジタル信号をメモリ３６に格納した後、データ送信指令を受信すると、プロセッサ２６の中央処理部３５は、図２１に示すように、メモリ３６に格納されたカウンタテーブルから回帰カウンタ値２を選択し、デジタル信号にカウンタ値２を添付する。プロセッサ２６の中央処理部３６は、カウンタ値１に対応する第１鍵（初期値）とカウンタ値１とを一方向ハッシュ関数によってハッシュ化したハッシュ出力値を生成し、そのハッシュ出力値をカウンタ値２に対応する第２鍵（Ｋｅｙ２）とする（鍵生成手段）。第２鍵（Ｋｅｙ２）となるハッシュ出力値は、カウンタテーブルのカウンタ値２に対応する鍵格納エリア（Ｋ１，Ｋ２，Ｋ３）に書き込まれる。なお、図２１のカウンタデーブルでは、回帰カウンタ値３〜２０に対応する第３鍵〜第２０鍵は生成されていない。
【０１１０】
マイクロプロセッサ２６の中央処理部３５は、カウンタテーブルからカウンタ値２に対応する第２鍵を取り出し、第２鍵を使用し、トリプルＤＥＳ（３−ＫｅｙトリプルＤＥＳ）によってデジタル信号を暗号化（カウンタ値２を含む）して暗号データとし（データ暗号化手段）、暗号データをコンピュータ１３に送信する。プロセッサ２６の中央処理部３５は、暗号データをコンピュータ１３に送信した後、回帰カウンタ値を２から３に変更し、カウンタ値３をメモリ３６に格納するとともに、第２番目のデジタル信号（カードデータ）をメモリ３６から消去する。
【０１１１】
第２番目の暗号データを受信したコンピュータ１３は、図２２に示すように、メモリに格納されたカウンタテーブルから回帰カウンタ値２を選択する。コンピュータ１３の中央処理部は、カウンタ値１に対応する第１鍵（初期値）とカウンタ値１とを一方向ハッシュ関数によってハッシュ化したハッシュ出力値を生成し、そのハッシュ出力値をカウンタ値２に対応する第２鍵（Ｋｅｙ２）とする（鍵生成手段）。コンピュータ１３の中央処理部が使用するハッシュ関数はマイクロプロセッサ２６の中央処理部３５が使用するそれと同一であり、生成した第２鍵（Ｋｅｙ２）はプロセッサ２６の中央処理部３５が生成したそれと同一である。第２鍵（Ｋｅｙ２）となるハッシュ出力値は、カウンタテーブルのカウンタ値２に対応する鍵格納エリア（Ｋ１，Ｋ２，Ｋ３）に書き込まれる。なお、図２２のカウンタデーブルでは、回帰カウンタ値３〜２０に対応する第３鍵〜第２０鍵は生成されていない。コンピュータ１３の中央処理部は、カウンタテーブルからカウンタ値２に対応する第２鍵を取り出し、第２鍵を使用し、トリプルＤＥＳ（３−ＫｅｙトリプルＤＥＳ）によって暗号データを復号化してデジタル信号（平文カードデータ）を取得する。コンピュータ１３の中央処理部は、暗号データを復号化した後、回帰カウンタ値を２から３に変更し、カウンタ値３をメモリに格納する。
【０１１２】
第３番目のデジタル信号（カードデータ）がＡ／Ｄ変換チップ２５からマイクロプロセッサ２６に入力され、デジタル信号をメモリ３６に格納した後、データ送信指令を受信すると、プロセッサ２６の中央処理部３５は、図２３に示すように、メモリ３６に格納されたカウンタテーブルから回帰カウンタ値３を選択し、デジタル信号にカウンタ値３を添付する。プロセッサ２６の中央処理部３５は、カウンタ値２に対応する第２鍵（Ｋｅｙ２、ハッシュ値）とカウンタ値２とを一方向ハッシュ関数によってハッシュ化したハッシュ出力値を生成し、そのハッシュ出力値をカウンタ値３に対応する第３鍵（Ｋｅｙ３）とする（鍵生成手段）。第３鍵（Ｋｅｙ３）となるハッシュ出力値は、カウンタテーブルのカウンタ値３に対応する鍵格納エリア（Ｋ１，Ｋ２，Ｋ３）に書き込まれる。なお、図１２のカウンタデーブルでは、回帰カウンタ値４〜２０に対応する第４鍵〜第２０鍵は生成されていない。
【０１１３】
マイクロプロセッサ２６の中央処理部３５は、カウンタテーブルからカウンタ値３に対応する第３鍵を取り出し、第３鍵を使用し、トリプルＤＥＳ（３−ＫｅｙトリプルＤＥＳ）によってデジタル信号を暗号化（カウンタ値３を含む）して暗号データとし（暗号化手段）、暗号データをコンピュータ１３に送信する。プロセッサ２６の中央処理部３５は、暗号データをコンピュータ１３に送信した後、回帰カウンタ値を３から４に変更し、カウンタ値４をメモリ３６に格納するとともに、第３番目のデジタル信号（カードデータ）をメモリ３６から消去する。
【０１１４】
第３番目の暗号データを受信したホストコンピュータ１３の中央処理部は、図２４に示すように、メモリに格納されたカウンタテーブルから回帰カウンタ値３を選択する。コンピュータ１３の中央処理部は、カウンタ値２に対応する第２鍵（Ｋｅｙ２）とカウンタ値２とを一方向ハッシュ関数によってハッシュ化したハッシュ出力値を生成し、そのハッシュ出力値をカウンタ値３に対応する第３鍵（Ｋｅｙ３）とする（鍵生成手段）。コンピュータ１３の中央処理部が生成した第３鍵（Ｋｅｙ３）は、マイクロプロセッサ２６の中央処理部３５が生成したそれと同一である。第３鍵（Ｋｅｙ３）となるハッシュ出力値は、カウンタテーブルのカウンタ値３に対応する鍵格納エリア（Ｋ１，Ｋ２，Ｋ３）に書き込まれる。なお、図１３のカウンタデーブルでは、回帰カウンタ値４〜２０に対応する第４鍵〜第２０鍵は生成されていない。コンピュータ１３の中央処理部は、カウンタテーブルからカウンタ値３に対応する第３鍵を取り出し、第３鍵を使用し、トリプルＤＥＳ（３−ＫｅｙトリプルＤＥＳ）によって暗号データを復号化してデジタル信号（平文カードデータ）を取得する。コンピュータ１３の中央処理部は、暗号データを復号化した後、回帰カウンタ値を３から４に変更し、カウンタ値４をメモリに格納する。
【０１１５】
このように、ホストコンピュータ１３の中央処理部とマイクロプロセッサ２６の中央処理部３５とは、回帰カウンタ値１〜２０を順番に使って互いに同期しつつ、一方向ハッシュ関数を使用して第２〜第ｎ鍵を生成する。回帰カウンタ値が２０を超えると、コンピュータ１３の中央処理部とプロセッサ２６の中央処理部３５とは、再びカウンタ値１を使用し、第２１鍵〜第４０鍵を順に生成する。コンピュータ１３の中央処理部とプロセッサ２６の中央処理部３５とは、第２１鍵を生成すると、鍵格納エリアに格納された第１鍵を第２１鍵に書き換え、第２２鍵を生成すると、鍵格納エリアに格納された第２鍵を第２２鍵に書き替える。
【０１１６】
この磁気カード読み取りシステム１０は、相互認証手段を実行することでホストコンピュータ１３の中央処理部とマイクロプロセッサ２６の中央処理部３５とが互いの正当性を判断することができるから、偽コンピュータが磁気ヘッド１９に接続された場合や偽磁気ヘッドがコンピュータ１３に接続された場合であっても、それを見破ることができる。システム１０は、第３者が偽コンピュータや偽磁気ヘッドを利用してシステム１０に進入することはできず、磁気カード２９のカードデータ、ハッシュ関数、鍵の盗取を防ぐことができる。
【０１１７】
このシステム１０は、コンピュータ１３の中央処理部とプロセッサ２６の中央処理部３５とが認証手段による認証結果が正当であると判断した後に、プロセッサ２６の中央処理部３５がデータ暗号化手段とデータ送信手段とを実行し、コンピュータ１３の中央処理部が復号化手段を実行するから、認証を行わずにそれら手段を実行する場合と比較し、磁気カード２９に格納されたカードデータの盗取を確実に防ぐことができ、第３者による磁気カード２９の不正な複製や第３者による「なりすまし」を確実に防ぐことができる。
【０１１８】
システム１０は、ホストコンピュータ１３の中央処理部とマイクロプロセッサ２６の中央処理部３５とが第２〜第ｎ鍵を個別に生成するから、コンピュータ１３からプロセッサ２６へ鍵を送信する必要はなく、鍵の送信過程における鍵の不正な取得を防ぐことができる。システム１０は、プロセッサ２６の中央処理部３５が常に別の鍵を使用して暗号化を行い、コンピュータ１３の中央処理部が常に別の鍵を使用して復号化を行うから、鍵を第３者に取得されたとしても、磁気カード２９に格納されたカードデータを復号化することはできない。また、第２〜第ｎ鍵にハッシュ値を使用するから、たとえ鍵が第３者に不正に取得されたとしても、鍵の解読をすることはできず、第３者による鍵の使用を確実に防ぐことができる。
【０１１９】
システム１０は、ホストコンピュータ１３の中央処理部とマイクロプロセッサ２６の中央処理部３５とが同一かつ有限の回帰カウンタ値を使用して互いに同期しつつ、第２〜第ｎ鍵を順に生成するから、コンピュータ１３が生成する鍵とプロセッサ２６が生成する鍵とを一致させることができ、生成した鍵の不一致による暗号データの復号不能を防ぐことができる。また、第２〜第ｎ鍵となるハッシュ出力値に回帰カウンタ値をハッシュ化したハッシュ出力値が含まれるから、第３者がシステム１０に不正に進入したとしても、ハッシュ化した回帰カウンタ値を解読することはできず、コンピュータ１３の中央処理部とプロセッサ２６の中央処理部３５とがどのカウンタ値を使用して同期しているかを判別することができない。
【０１２０】
システム１０の稼働中にホストコンピュータ１３の中央処理部とマイクロプロセッサ２６の中央処理部３５との同期がずれると、コンピュータ１３の中央処理部が生成した鍵とプロセッサ２６の中央処理部３５が生成したそれとが異なり、中央処理部３５から送信された暗号データをコンピュータ１３の中央処理部が復号化することができない。この場合、コンピュータ１３の中央処理部は、生成した鍵による復号化が不可能であると判断し、復号化不能を通知するとともに（復号化不能情報）再同期を要求する（再同期要求）。コンピュータ１３の中央処理部は、メモリに格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって復号化不能情報と再同期要求とを暗号化し、暗号化した復号化不能情報と再同期要求とをプロセッサ２６に送信する。コンピュータ１３の中央処理部と再同期要求を受け取ったプロセッサ２６の中央処理部３５とは、それらの正当性を判断する外部認証と内部認証（図６，７参照）とを行う（相互認証手段）。コンピュータ１３の中央処理部とプロセッサ２６の中央処理部３５とは、相互認証による互いの認証結果を正当であると判断すると、回帰カウンタ値を１（初期値）に戻して再び同期を開始する。コンピュータ１３の中央処理部とプロセッサ２６の中央処理部３５とは、カウンタ値を１に戻すと、再び第１鍵を使用して暗号化および復号化を行う。
【０１２１】
システム１０は、生成した鍵に不一致が生じたとしても、ホストコンピュータ１３とマイクロプロセッサ２６とが回帰カウンタ値を１に戻して再び同期することができるから、コンピュータ１３が生成する鍵とプロセッサ２６が生成する鍵とを再度一致させることができ、生成した鍵の不一致によるカードデータの復号不能を防ぐことができる。なお、システム１０が連続して稼働し、相互認証を日単位や週単位、月単位で行う場合、コンピュータ１３の中央処理部とプロセッサ２６の中央処理部３５とは、相互認証による互いの認証結果を正当であると判断すると、回帰カウンタ値を１に戻して再び同期を開始する。以後の手順は、図１９〜図２４に基づいて説明したそれと同一である。
【０１２２】
ホストコンピュータ１３は、現在使用しているハッシュ関数の使用を中止し、メモリに格納されたハッシュ関数の中からあらたなハッシュ関数を選択し、そのハッシュ関数を使用することができる。ハッシュ関数の変更は、システム１０を起動させる度毎に行う場合、日単位や週単位、月単位で行う場合、同期がずれた後、再び同期するときに行う場合がある。コンピュータ１３は、あらたなハッシュ関数を使用する場合、マイクロプロセッサ２６に既存のハッシュ関数の書き換えを指示する（関数変更指令）。コンピュータ１３の中央処理部は、メモリに格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって関数変更指令とあらたなハッシュ関数とを暗号化し、暗号化した関数変更指令とハッシュ関数とをプロセッサ２６に送信する。
【０１２３】
マイクロプロセッサ２６の中央処理部３５は、関数変更指令とハッシュ関数とを受信すると、メモリ３６に格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって暗号化された関数変更指令とハッシュ関数とを復号化する。プロセッサ２６の中央処理部３５は、メモリ３６に格納した既存のハッシュ関数を復号化したあらたなハッシュ関数に変更した後、変更完了をコンピュータ１３に通知する（変更完了通知）。中央処理部３５は、メモリ３６に格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって変更完了通知を暗号化し、暗号化した変更完了通知をコンピュータ１３に送信する。このシステム１０は、関数変更指令やハッシュ関数を暗号化してハッシュ関数の変更を行うから、使用するハッシュ関数を第３者に取得されることはなく、第３者によるハッシュ関数の解読を防ぐことができる。
【０１２４】
ホストコンピュータ１３は、現在使用している暗号化アルゴリズムの使用を中止し、メモリに格納された暗号化アルゴリズムの中からあらたなアルゴリズムを選択し、そのアルゴリズムを使用することができる。暗号化アルゴリズムの変更は、システム１０を起動させる度毎に行う場合、日単位や週単位、月単位で行う場合、同期がずれた後、再び同期するときに行う場合がある。コンピュータ１３は、あらたな暗号化アルゴリズムを使用する場合、マイクロプロセッサ２６に既存のアルゴリズムの書き換えを指示する（関数変更指令）。コンピュータ１３の中央処理部は、メモリに格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって関数変更指令とあらたな暗号化アルゴリズムとを暗号化し、暗号化した関数変更指令とアルゴリズムとをプロセッサ２６に送信する。
【０１２５】
マイクロプロセッサ２６の中央処理部３５は、関数変更指令と暗号化アルゴリズムとを受信すると、メモリ３６に格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって暗号化された関数変更指令とアルゴリズムとを復号化する。プロセッサ２６の中央処理部３５は、メモリ３６に格納した既存のアルゴリズムを復号化したあらたなアルゴリズムに変更した後、変更完了をコンピュータ１３に通知する（変更完了通知）。中央処理部３５は、メモリ３６に格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって変更完了通知を暗号化し、暗号化した変更完了通知をコンピュータ１３に送信する。このシステム１０は、関数変更指令や暗号化アルゴリズムを暗号化してアルゴリズムの変更を行うから、使用するアルゴリズムを第３者に取得されることはない。
【０１２６】
このシステム１０おける磁気カードリーダには、挿入電動型の他に、磁気ヘッド１９を取り付けた手動ハンディカードリーダを使用することもできる。また、磁気カードリーダをＰＯＳシステムに接続することもできる。磁気カードリーダがＰＯＳシステムに接続された場合、カードリーダにコントローラを設置する必要はなく、外部サーバ１１との接続はＰＯＳシステムに内蔵されたコンピュータによって行われる。ファームウェアや暗号化アルゴリズムは、外部サーバからＰＯＳシステムのコンピュータのメモリにダウンロードされて一時保管された後、カードリーダの磁気ヘッドのマイクロプロセッサ２６に出力される。
【図面の簡単な説明】
【０１２７】
【図１】磁気ヘッドを利用した一例として示す磁気カード読み取りシステムのハードウェア構成図。
【図２】一例として示す磁気カードリーダの内部構造の概略図。
【図３】ハウジングの一部を破断して示す磁気ヘッドの部分破断斜視図。
【図４】一例として示すマイクロプロセッサ（プロセッサ）の構成図。
【図５】外部サーバと磁気ヘッドとの間で行われる処理の一例を示すブロック図。
【図６】外部認証の一例を示すラダー図。
【図７】内部認証の一例を示すラダー図。
【図８】外部サーバとマイクロプロセッサとの間におけるダウンロード処理の一例を示すラダー図。
【図９】暗号化および復号化に使用する鍵の生成の一例を説明する図。
【図１０】暗号化および復号化に使用する鍵の生成の一例を説明する図。
【図１１】暗号化および復号化に使用する鍵の生成の一例を説明する図。
【図１２】暗号化および復号化に使用する鍵の生成の一例を説明する図。
【図１３】暗号化および復号化に使用する鍵の生成の一例を説明する図。
【図１４】暗号化および復号化に使用する鍵の生成の一例を説明する図。
【図１５】磁気ヘッドとホストコンピュータとの間で行われる処理の一例を示すブロック図。
【図１６】外部認証の一例を示すラダー図。
【図１７】内部認証の一例を示すラダー図。
【図１８】システムにおけるメイン処理の一例を示すラダー図。
【図１９】暗号化および復号化に使用する鍵の生成の他の一例を説明する図。
【図２０】暗号化および復号化に使用する鍵の生成の他の一例を説明する図。
【図２１】暗号化および復号化に使用する鍵の生成の他の一例を説明する図。
【図２２】暗号化および復号化に使用する鍵の生成の他の一例を説明する図。
【図２３】暗号化および復号化に使用する鍵の生成の他の一例を説明する図。
【図２４】暗号化および復号化に使用する鍵の生成の他の一例を説明する図。
【符号の説明】
【０１２８】
１０    磁気カード読み取りシステム
１１    外部サーバ
１２    磁気カードリーダ
１３    ホストコンピュータ
１９    磁気ヘッド
２３    ハウジング
２４    コア
２５    Ａ／Ｄ変換チップ
２６    マイクロプロセッサ（デジタルＩＣ）
３５    中央処理部
３６    メモリ
【図１】
2009157611.tif 000003
【図２】
2009157611.tif 000004
【図３】
2009157611.tif 000005
【図４】
2009157611.tif 000006
【図５】
2009157611.tif 000007
【図６】
2009157611.tif 000008
【図７】
2009157611.tif 000009
【図８】
2009157611.tif 000010
【図９】
2009157611.tif 000011
【図１０】
2009157611.tif 000012
【図１１】
2009157611.tif 000013
【図１２】
2009157611.tif 000014
【図１３】
2009157611.tif 000015
【図１４】
2009157611.tif 000016
【図１５】
2009157611.tif 000017
【図１６】
2009157611.tif 000018
【図１７】
2009157611.tif 000019
【図１８】
2009157611.tif 000020
【図１９】
2009157611.tif 000021
【図２０】
2009157611.tif 000022
【図２１】
2009157611.tif 000023
【図２２】
2009157611.tif 000024
【図２３】
2009157611.tif 000025
【図２４】
2009157611.tif 000026