(57)【要約】【課題】磁気ヘッドとコンピュータとが互いの正当性を判断することができ、磁気カードの不正な複製を防ぐことができる磁気カード読み取りシステムを提供する。【解決手段】磁気カード読み取りシステム１０では、コンピュータ１３とマイクロプロセッサとがそれらの間で相互に認証を行い、相互認証による互いの認証結果を正当であると判断した後、マイクロプロセッサがデジタル信号を暗号化するとともに暗号化したデジタル信号をコンピュータ１３に送信し、コンピュータ１３が暗号化されたデジタル信号を復号化する。【選択図】図１
2007287003.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）、Ｂｌｏｗｆｉｓｈ、Ｓｋｉｐｊａｃｋ、Ｋｈｕｆｕ、Ｋｈａｆｒｅ、ＣＡＳＴ、ＧＯＳＴ２８１４７−８９のいずれかを使用することもできる。それらアルゴリズムは、コンピュータ１３の記憶装置に格納されている。
【００５２】
ホストコンピュータ１３は、現在使用している暗号化アルゴリズムの使用を中止し、記憶装置に格納された暗号化アルゴリズムの中からあらたなアルゴリズムを選択し、そのアルゴリズムを使用することができる。暗号化アルゴリズムの変更は、システム１０を起動させる度毎に行う場合、日単位や週単位、月単位で行う場合、同期がずれた後、再び同期するときに行う場合がある。コンピュータ１３は、あらたな暗号化アルゴリズムを使用する場合、マイクロプロセッサ２６に既存のアルゴリズムの書き換えを指示する（関数変更指令）。コンピュータ１３の中央処理装置は、記憶装置に格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって関数変更指令とあらたな暗号化アルゴリズムとを暗号化し、暗号化した関数変更指令とアルゴリズムとをマイクロプロセッサ２６に送信する。マイクロプロセッサ２６の中央処理部は、関数変更指令と暗号化アルゴリズムとを受信すると、記憶部に格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって暗号化された関数変更指令とアルゴリズムとを復号化する。マイクロプロセッサ２６の中央処理部は、記憶部に格納した既存のアルゴリズムを復号化したあらたなアルゴリズムに変更した後、変更完了をコンピュータ１３に通知する（変更完了通知）。中央処理部は、記憶部に格納された情報送受信用の鍵を使用し、トリプルＤＥＳによって変更完了通知を暗号化し、暗号化した変更完了通知をコンピュータ１３に送信する。このシステム１０は、関数変更指令や暗号化アルゴリズムを暗号化してアルゴリズムの変更を行うから、使用するアルゴリズムを第３者に取得されることはない。
【図面の簡単な説明】
【００５３】
【図１】一例として示す磁気カード読み取りシステムのハードウェア構成図。
【図２】一例として示す磁気カードリーダの内部構造の概略図。
【図３】磁気ヘッドの部分破断斜視図。
【図４】システムが行う処理の一例を示すブロック図。
【図５】外部認証の一例を示すラダー図。
【図６】内部認証の一例を示すラダー図。
【図７】システムにおけるメイン処理の一例を示すラダー図。
【図８】暗号化および復号化に使用する鍵の生成を説明する図。
【図９】暗号化および復号化に使用する鍵の生成を説明する図。
【図１０】暗号化および復号化に使用する鍵の生成を説明する図。
【図１１】暗号化および復号化に使用する鍵の生成を説明する図。
【図１２】暗号化および復号化に使用する鍵の生成を説明する図。
【図１３】暗号化および復号化に使用する鍵の生成を説明する図。
【符号の説明】
【００５４】
１０    磁気カード読み取りシステム
１１    磁気カード
１２    磁気カードリーダ
１３    ホストコンピュータ
２３    ハウジング
２４    コア
２５    Ａ／Ｄ変換チップ
２６    マイクロプロセッサ（デジタルＩＣ）
２８    合成樹脂（固形物質）
【図１】
2007287003.tif 000003
【図２】
2007287003.tif 000004
【図３】
2007287003.tif 000005
【図４】
2007287003.tif 000006
【図５】
2007287003.tif 000007
【図６】
2007287003.tif 000008
【図７】
2007287003.tif 000009
【図８】
2007287003.tif 000010
【図９】
2007287003.tif 000011
【図１０】
2007287003.tif 000012
【図１１】
2007287003.tif 000013
【図１２】
2007287003.tif 000014
【図１３】
2007287003.tif 000015