(57)【要約】【課題】スレーブデバイスの交換時にマスタキーを消去しなくてもよい相互認証システムを提供する。【解決手段】  記憶部１２は、一時的に用いられる鍵データであるテンポラリキー３１０、及び認証に用いられる鍵データであるマスタキー３００を格納する。記憶部２２は、テンポラリキー３１０を格納する。鍵確認部１００は、マスタキー３００をスレーブデバイス２０が格納しているか問い合わせる。鍵確認応答部２００は、マスタデバイス１０からの問い合わせに対して、マスタキー３００が記憶部２２に既に格納されているか確認して応答する。鍵導入部１１０は、マスタキー３００をテンポラリキー３１０にて暗号化して、スレーブデバイス２０に送信する。鍵格納部２１０は、暗号化されたマスタキー３００をテンポラリキー３１０で復号化して記憶部２２に格納する。主認証部１２０及び副認証部２２０は、このマスタキー３００にて相互認証する。【選択図】図１
2020005172.tif 000002
【特許請求の範囲】
【請求項１】
相互に認証するマスタデバイスとスレーブデバイスとを備える相互認証システムであって、
前記マスタデバイスは、
一時的に用いられる鍵データであるテンポラリキー、及び認証に用いられる鍵データであるマスタキーを格納する記憶部と、
前記マスタキーを前記スレーブデバイスが格納しているか問い合わせる鍵確認部と、
前記鍵確認部の問い合わせの応答において、前記スレーブデバイスが前記マスタキーを格納していない場合、前記テンポラリキーにて、前記マスタキーを暗号化して前記スレーブデバイスに送信する鍵導入部と、
前記鍵導入部により送信された前記マスタキーにて、前記スレーブデバイスとの間で相互認証する主認証部とを備え、
前記スレーブデバイスは、
前記テンポラリキーを格納する記憶部と、
前記マスタデバイスからの問い合わせに対して、前記記憶部にマスタキーが既に格納されているか確認して応答する鍵確認応答部と、
前記鍵確認応答部の応答に対して、前記マスタデバイスから送信された前記マスタキーを前記テンポラリキーで復号化して前記記憶部に格納する鍵格納部と、
前記鍵格納部により前記記憶部に格納された前記マスタキーにて、前記マスタデバイスとの間で相互認証する副認証部とを備える
ことを特徴とする相互認証システム。
【請求項２】
前記マスタデバイスは、
初期起動した際に、乱数を用いて前記マスタキーを生成し、前記記憶部に格納する鍵生成部を更に備える
ことを特徴とする請求項１に記載の相互認証システム。
【請求項３】
前記鍵確認部は、
特定タイミングで、前記スレーブデバイスが前記マスタキーを格納しているか問い合わせる
ことを特徴とする請求項１又は２に記載の相互認証システム。
【請求項４】
前記主認証部及び前記副認証部による相互認証には、対称鍵暗号方式を用いる
ことを特徴とする請求項１乃至３のいずれか１項に記載の相互認証システム。
【請求項５】
相互に認証するマスタデバイスとスレーブデバイスとを備える相互認証システムにより実行される相互認証方法であって、
前記マスタデバイスは、一時的に用いられる鍵データであるテンポラリキー、及び認証に用いられる鍵データであるマスタキーを格納する記憶部を備え、
前記スレーブデバイスは、前記テンポラリキーを格納する記憶部を備え、
前記マスタデバイスにより、前記マスタキーを前記スレーブデバイスが格納しているか問い合わせ、
前記スレーブデバイスにより、前記マスタデバイスからの問い合わせに対して、前記記憶部にマスタキーが既に格納されているか確認して応答し、
前記マスタデバイスにより、問い合わせの応答において、前記スレーブデバイスが前記マスタキーを格納していない場合、前記テンポラリキーにて、前記マスタキーを暗号化して前記スレーブデバイスに送信し、
前記スレーブデバイスにより、応答に対して、前記マスタデバイスから送信された前記マスタキーを前記テンポラリキーで復号化して前記記憶部に格納し、
前記マスタキーにて、前記マスタデバイス及び前記スレーブデバイスとの間で相互認証する
ことを特徴とする相互認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、相互認証システム及び相互認証方法に係り、特にマスタデバイスとスレーブデバイスとの間で相互認証可能な相互認証システム及び相互認証方法に関する。
【背景技術】
【０００２】
従来から、本体側基板（マスタデバイス）と、ヘッド側基板（スレーブデバイス）とを備えるカードリーダが存在する。
特許文献１には、このようなカードリーダの一例が記載されている。このカードリーダのマスタデバイスは、磁気ヘッドを制御するＣＰＵ（主制御部）を備える。スレーブデバイスは、一体的に形成された暗号磁気ヘッドとして構成される。この暗号磁気ヘッドは、磁気ヘッド、復調用ＩＣ、及び暗号化並びに復号化を行うＣＰＵ（副制御部）を備える。副制御部は、暗号化のための鍵データであるマスタキーを格納する。これにより、スレーブデバイスは、復調した磁気データを暗号化して、安全に主制御部及び上位装置に送信する。
【０００３】
一方、複数のデバイス間で暗号の相互認証を行う相互認証システムが存在する。たとえば、このような相互認証を行うシステムが、特許文献２に記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−８１９３１号公報
【特許文献２】特開２０１３−１０９５５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、特許文献１に記載されたような典型的なカードリーダでも、マスタデバイスとスレーブデバイスとで、相互認証を行うものが存在した。
このようなカードリーダでは、スレーブデバイスを取り換える際（交換時）に、安全（セキュリティ）上の要求から、マスタキーをいったん消去する必要があった。しかし、マスタキーを消去すること自体に、セキュリティ上の懸念があった。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、上述の問題を解消し、マスタキーを消去しなくても、安全にスレーブデバイスを交換可能とする相互認証システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の相互認証システムは、相互に認証するマスタデバイスとスレーブデバイスとを備える相互認証システムであって、前記マスタデバイスは、一時的に用いられる鍵データであるテンポラリキー、及び認証に用いられる鍵データであるマスタキーを格納する記憶部と、前記マスタキーを前記スレーブデバイスが格納しているか問い合わせる鍵確認部と、前記鍵確認部の問い合わせの応答において、前記スレーブデバイスが前記マスタキーを格納していない場合、前記テンポラリキーにて、前記マスタキーを暗号化して前記スレーブデバイスに送信する鍵導入部と、前記鍵導入部により送信された前記マスタキーにて、前記スレーブデバイスとの間で相互認証する主認証部とを備え、前記スレーブデバイスは、前記テンポラリキーを格納する記憶部と、前記マスタデバイスからの問い合わせに対して、前記記憶部にマスタキーが既に格納されているか確認して応答する鍵確認応答部と、前記鍵確認応答部の応答に対して、前記マスタデバイスから送信された前記マスタキーを前記テンポラリキーで復号化して前記記憶部に格納する鍵格納部と、前記鍵格納部により前記記憶部に格納された前記マスタキーにて、前記マスタデバイスとの間で相互認証する副認証部とを備えることを特徴とする。
このように構成することで、マスタキーを消去しなくても、安全にスレーブデバイスを交換することができる。
【０００８】
本発明の相互認証システムは、前記マスタデバイスは、初期起動した際に、乱数を用いて前記マスタキーを生成し、前記記憶部に格納する鍵生成部を更に備えることを特徴とする。
このように構成することで、工場出荷時等において、マスタデバイスを初期起動した際に、デバイスユニークな鍵データを安全に生成することができる。
【０００９】
本発明の相互認証システムは、前記鍵確認部は、特定タイミングで、前記スレーブデバイスが前記マスタキーを格納しているか問い合わせることを特徴とする。
このように構成することで、不正ヘッド等が取り付けられたことを、検知することができる。
【００１０】
本発明の相互認証システムは、前記主認証部及び前記副認証部による相互認証には、対称鍵暗号方式を用いることを特徴とする。
このように構成することで、相互認証に係る処理速度を向上させることができ、安価な制御部をもつ装置で相互認証ができる。
【００１１】
本発明の相互認証方法は、相互に認証するマスタデバイスとスレーブデバイスとを備える相互認証システムにより実行される相互認証方法であって、前記マスタデバイスは、一時的に用いられる鍵データであるテンポラリキー、及び認証に用いられる鍵データであるマスタキーを格納する記憶部を備え、前記スレーブデバイスは、前記テンポラリキーを格納する記憶部を備え、前記マスタデバイスにより、前記マスタキーを前記スレーブデバイスが格納しているか問い合わせ、前記スレーブデバイスにより、前記マスタデバイスからの問い合わせに対して、前記記憶部にマスタキーが既に格納されているか確認して応答し、前記マスタデバイスにより、問い合わせの応答において、前記スレーブデバイスが前記マスタキーを格納していない場合、前記テンポラリキーにて、前記マスタキーを暗号化して前記スレーブデバイスに送信し、前記スレーブデバイスにより、応答に対して、前記マスタデバイスから送信された前記マスタキーを前記テンポラリキーで復号化して前記記憶部に格納し、前記マスタキーにて、前記マスタデバイス及び前記スレーブデバイスとの間で相互認証することを特徴とする。
このように構成することで、マスタキーを消去しなくても、安全にスレーブデバイスを交換することができる。
【発明の効果】
【００１２】
本発明によれば、マスタデバイスのマスタキーを変更せず、交換後のスレーブデバイスにマスタキーを格納しているか問い合わせ、格納していなければ、テンポラリキーを用いてマスタキーを暗号化してスレーブデバイスに送信し、これをスレーブデバイスにて格納することで、マスタキーを消去しなくても、安全にスレーブデバイスを交換することができる相互認証システムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係る相互認証システムのシステム構成図である。
【図２】本発明の実施の形態に係る相互認証処理のフローチャートである。
【図３】図２に示す相互認証処理におけるスレーブデバイス交換時のシーケンスチャートである。
【図４】従来の相互認証システムの新規組み込み時のシーケンスチャートである。
【図５】従来の相互認証システムにおいて、スレーブデバイス交換時（消去なし）を行った場合のシーケンスチャートである。
【図６】従来の相互認証システムのスレーブデバイス交換時（マスタキー消去）のシーケンスチャートである。
【発明を実施するための形態】
【００１４】
＜実施の形態＞
図１を参照して、本発明の実施の形態に係る相互認証システムであるカードリーダ１の構成について説明する。
カードリーダ１は、本実施形態においては、カード発行機能を備えたＡＴＭ（Automated Teller Machine）、キオスク（Kiosk）の端末、交通機関のチケット発行システム、コンビニエンスストア等のポイントカード発行システム、小売店のメンバーカード発行システム、遊技機のカード発行、支払システム、入退場管理システム等（以下、単に「ＡＴＭ等」と省略して記載する。）に搭載されるカードリーダである。
【００１５】
具体的には、カードリーダ１は、接触型又は非接触型のＩＣカード及び／又は磁気ストライプを備えた磁気カードであるカード媒体２を読み込み（リード）又は書き込み（ライト）可能な装置である。
カードリーダ１の詳細な構成については後述する。
【００１６】
さらに、カードリーダ１は、ＡＴＭ等の各機能を実現するための本体装置である上位装置と接続される。この上位装置は、例えば、各部の制御用のＰＣ（Personal Computer）、タブレット端末、携帯電話等の情報処理装置を含み、ＡＴＭ等の機能を実現するためのアプリケーション（Application Program、図示せず）を実行する。加えて、上位装置には、カード媒体２の表面に印刷や刻印を行うプリンタ、ＬＣＤパネルや有機ＥＬパネル等のディスプレイ、タッチパネル、及びボタン等の周辺装置が接続されている。
【００１７】
より具体的に説明すると、カードリーダ１は、相互に認証するマスタデバイス１０とスレーブデバイス２０とを備える。
【００１８】
マスタデバイス１０は、カードリーダ１としての一般的な処理を行い、カード媒体２に対する情報の書き込みと読み出しを制御するメイン処理装置である。マスタデバイス１０は、例えば、カードリーダ１全体を制御するメイン（主）基板上の各種回路として構成される。本実施形態において、マスタデバイス１０は、接続されたスレーブデバイス２０を通信により制御する。
【００１９】
スレーブデバイス２０は、暗号磁気ヘッド（Encrypting Head、E-Head）等である。この暗号磁気ヘッドは、復調した磁気データを暗号化して、安全に制御部１１及び上位装置に送信する。このため、スレーブデバイス２０は、磁気ヘッド２３により読み取られた情報を暗号化又は復号化し、情報を暗号化又は復号化して磁気ヘッド２３によりカード媒体２に記録させる機能を実現する。このため、スレーブデバイス２０は、例えば、カード媒体２に記憶されたＩＤ、暗証番号、パスワード等のデータの詐取を防御するためのデータ暗号化機能、復号化機能等を備えている。加えて、本実施形態のスレーブデバイス２０は、セキュリティのため、特定の処理手順を遵守して制御しないと処理を実行しないよう構成されている。
【００２０】
さらに詳細に説明すると、マスタデバイス１０は、制御部１１及び記憶部１２を備えている。スレーブデバイス２０は、制御部２１、記憶部２２、及び磁気ヘッド２３を備えている。
【００２１】
制御部１１は、カードリーダ１全体の処理を行うＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）等を含む制御演算手段である。
【００２２】
記憶部１２は、ＲＡＭ（Random Access Memory）及びＲＯＭ（Read Only Memory）等の記憶媒体である。ＲＡＭは、例えば、ＳＲＡＭ（Static RAM）、ＤＲＡＭ（Dynamic RAM）等の揮発性の記録媒体、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、ＭＲＡＭ（Magnetoresistive Random Access Memory）等の不揮発性の記録媒体等である。ＲＯＭは、例えば、ＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）、フラッシュメモリ（Flash Memory）等の不揮発性の記録媒体である。
記憶部１２は、マスタデバイス１０に実装されている制御部１１の制御プログラム（組み込みソフトウェア）を格納している。この制御用プログラムは、カード媒体２の検知用のセンサの監視、カード媒体２のリード、ライト、スレーブデバイス２０の制御等の処理が組み込まれている。本実施形態において、記憶部１２は、例えば、制御部１１の内蔵メモリとして構成される。
【００２３】
制御部２１は、スレーブデバイス２０の状態監視及び制御を行うＣＰＵ、ＭＰＵ、ＧＰＵ、ＤＳＰ、ＡＳＩＣ等を含む制御演算手段である。制御部２１は、情報の暗号処理や暗号を利用した認証等の処理を実行する。具体的には、制御部２１は、例えば、ＡＥＳ（Advanced Encryption Standard）等の方式で、各種暗号化や復号化を行う制御プログラムを実行し、演算を専用に実行するアクセラレータ（Accelerator）を含むこともある。
【００２４】
記憶部２２は、ＲＡＭ及びＲＯＭ等の一時的でない記憶媒体である。記憶部２２は、記憶部１２と同様に、揮発性及び不揮発性の記録媒体を含んでいる。
記憶部２２は、スレーブデバイス２０に実装されている制御部２１の制御プログラム（組み込みソフトウェア）を格納している。本実施形態において、記憶部２２は、例えば、制御部２１の内蔵メモリとして構成される。
【００２５】
磁気ヘッド２３は、カード媒体２へのリード（読み出し）、ライト（書き込み）を行う磁気ヘッドや電磁誘導コイルや端子等と、このための回路等を含む。加えて、磁気ヘッド２３は、カード媒体２の検知用のセンサ、駆動機構等も含むこともある。
【００２６】
ここで、カードリーダ１の機能構成について説明する。
図１は、マスタデバイス１０が初期起動した後、スレーブデバイス２０が消耗、故障、規格変更等により、交換される際（交換時）の状態を示している。この交換時の状態において、スレーブデバイス２０は、例えば、工場出荷された補修用部品（新品）等として提供される。
【００２７】
マスタデバイス１０の制御部１１は、機能構成部として、鍵確認部１００、鍵導入部１１０、主認証部１２０、及び鍵生成部１３０を備えている。
記憶部１２は、マスタキー３００及びテンポラリキー３１０を格納している。
スレーブデバイス２０の制御部２１は、機能構成部として、鍵確認応答部２００、鍵格納部２１０、及び副認証部２２０を備えている。
記憶部２２は、テンポラリキー３１０を格納している。
【００２８】
鍵確認部１００は、記憶部１２に格納されたのと同様のマスタキー３００をスレーブデバイス２０が格納しているか問い合わせる。この際、鍵確認部１００は、特定タイミングで、スレーブデバイス２０がマスタキー３００を格納しているか問い合わせる。この特定タイミングは、例えば、電源オン時等のタイミングである。
【００２９】
鍵導入部１１０は、鍵確認部１００の問い合わせの応答において、スレーブデバイス２０がマスタキー３００を格納していない場合、テンポラリキー３１０にて、マスタキー３００を暗号化してスレーブデバイス２０に送信する。これにより、鍵導入部１１０は、マスタキー３００を消去することなく、スレーブデバイス２０の交換等を認識して、交換前に生成されたマスタキー３００をスレーブデバイス２０に導入可能となる。
【００３０】
主認証部１２０は、鍵導入部１１０により送信されたマスタキー３００にて、スレーブデバイス２０との間で相互認証する。本実施形態において、主認証部１２０は、副認証部２２０との間で相互認証を行う。本実施形態においては、この相互認証は、マスタキー３００を用いる対称鍵暗号方式にて行われる。
【００３１】
鍵生成部１３０は、マスタデバイス１０が初期起動した際に、乱数を用いてマスタキー３００を生成し、記憶部１２の不揮発性の記録媒体に格納する。この初期起動は、例えば、工場出荷の検査時、顧客環境に設置された際の最初の電源投入時等（以下、「工場出荷時等」という。）に行われる。
【００３２】
鍵確認応答部２００は、マスタデバイス１０からの問い合わせに対して、記憶部２２にマスタキー３００が既に格納されているか否かについて確認して応答する。
【００３３】
鍵格納部２１０は、鍵確認応答部２００の応答に対して、マスタデバイス１０から送信されたマスタキー３００をテンポラリキー３１０で復号化して記憶部２２に格納する。
【００３４】
副認証部２２０は、鍵格納部２１０により記憶部２２に格納されたマスタキー３００にて、マスタデバイス１０との間で相互認証する。本実施形態において、副認証部２２０は、主認証部１２０との間で、マスタキー３００を用いる対称鍵暗号方式にて、相互認証を行う。
【００３５】
マスタキー３００は、認証に用いられる鍵データである。本実施形態において、マスタキー３００は、例えば、対称鍵の鍵データである。この対称鍵は、カードリーダ１毎に個別ものが提供される（以下、「デバイスユニーク」という。）になるよう、ＡＮＳＩ  Ｘ９．１７等の規格で生成される乱数値を用いることが可能である。
【００３６】
テンポラリキー３１０は、一時的に用いられる鍵データである。テンポラリキー３１０は、例えば、対称鍵であり、機種毎に共通な鍵データである。テンポラリキー３１０も、例えば、対称鍵の鍵データである。
【００３７】
ここで、制御部１１は、記憶部１２に格納された制御プログラムを実行することで、鍵確認部１００、鍵導入部１１０、主認証部１２０、及び鍵生成部１３０として機能させられる。
制御部２１は、記憶部２２に格納された制御プログラムを実行することで、鍵確認応答部２００、鍵格納部２１０、及び副認証部２２０として機能させられる。
また、上述のカードリーダ１の各部は、本発明の情報処理方法を実行するハードウェア資源となる。
なお、上述の機能構成部の一部又は任意の組み合わせをＩＣやプログラマブルロジックやＦＰＧＡ（Field-Programmable Gate Array）等でハードウェア的に構成してもよい。
【００３８】
〔カードリーダによる相互認証処理〕
次に、図２及び図３により、本発明の実施の形態に係るカードリーダ１により実行される相互認証処理の説明を行う。
本実施形態の相互認証処理では、マスタデバイス１０は、マスタキー３００をスレーブデバイス２０が格納しているか問い合わせる。この問い合わせに対して、スレーブデバイス２０は、記憶部２２にマスタキー３００が既に格納されているか確認して応答する。問い合わせの応答において、スレーブデバイス２０がマスタキー３００を格納していない場合、マスタデバイス１０は、テンポラリキー３１０にて、マスタキー３００を暗号化してスレーブデバイス２０に送信する。スレーブデバイス２０は、応答に対して、マスタデバイス１０から送信されたマスタキー３００をテンポラリキー３１０で復号化して記憶部２２に格納する。そして、マスタデバイス１０及びスレーブデバイス２０は、このマスタキー３００にて相互認証する。
本実施形態の相互認証処理は、主にマスタデバイス１０の制御部１１及びスレーブデバイス２０の制御部２１が、それぞれ、記憶部１２及び記憶部２２に格納された制御プログラムを実行することで、各部と協同し、ハードウェア資源を用いて実行する。
以下で、図２のフローチャートにより、相互認証処理の詳細をステップ毎に説明する。
【００３９】
（ステップＳ１０１）
まず、マスタデバイス１０の処理について説明する。
鍵生成部１３０は、起動時等に、マスタキー３００が記憶部１２に格納されているか否かを確認する。
鍵生成部１３０は、マスタキー３００が記憶部１２に既に格納されている場合には、Ｙｅｓと判断する。鍵生成部１３０は、マスタデバイス１０が工場出荷時等において初期起動し、まだマスタキー３００が記憶部１２に格納されていない等の場合には、Ｎｏと判断する。
Ｙｅｓの場合、鍵生成部１３０は、処理をステップＳ１０３に進める。
Ｎｏの場合、鍵生成部１３０は、処理をステップＳ１０２に進める。
【００４０】
（ステップＳ１０２）
マスタキー３００が記憶部１２に格納されていない場合、鍵生成部１３０が、マスタキー生成格納処理を行う。
ここで、本実施形態においては、初期起動時には、記憶部１２は、鍵データとしてテンポラリキー３１０のみが格納されている。
このため、鍵生成部１３０は、初期起動の際に、乱数を用いてマスタキー３００を生成し、記憶部１２の不揮発性の記録媒体に格納する。このマスタキー３００の生成について、鍵生成部１３０は、例えば、ＡＮＳＩ  Ｘ９．１７等の規格で生成される乱数値を用いる。
すなわち、本実施形態においては、初期起動時に、デバイスユニークなマスタキー３００が生成される。この初期起動は、例えば、工場出荷の検査の際等に行われるため、セキュリティ性の高い場所で行われる。
図１は、この状態の記憶部１２の構成を示している。
【００４１】
（ステップＳ１０３、Ｓ２０１）
ここで、マスタデバイス１０の鍵確認部１００及びスレーブデバイス２０の鍵確認応答部２００が、マスタキー確認処理を行う。
【００４２】
まず、鍵確認部１００は、電源オンの度に、スレーブデバイス２０がマスタキー３００を格納しているか問い合わせる。この際に、鍵確認部１００は、スレーブデバイス２０に確認コマンド等を送信する（タイミングＴ１）。
【００４３】
これに対して、鍵確認応答部２００は、マスタデバイス１０からの問い合わせに対して、記憶部２２にマスタキー３００が既に格納されているか確認して応答する（タイミングＴ２）。
図１に示すように、スレーブデバイス２０の交換時には、テンポラリキー３１０のみが格納されており、マスタキー３００は格納されていない。この場合、鍵確認応答部２００は、まだ格納されていない旨を応答する。
しかしながら、例えば、通常に電源をオンした場合や、既にマスタキー３００を受け取って格納した場合、中古のスレーブデバイス２０である場合等の場合、マスタキー３００が既に記憶部２２に格納されていることもあり得る。このように、マスタキー３００が既に記憶部２２に格納されている場合、鍵確認応答部２００は、その旨を応答する。
【００４４】
（ステップＳ１０４）
次に、マスタデバイス１０の鍵導入部１１０が、スレーブデバイス２０にマスタキー３００が格納されているか否かを判断する。
鍵導入部１１０は、スレーブデバイス２０から、既に格納されている旨の応答を取得した場合には、Ｙｅｓと判断する。鍵導入部１１０は、まだ格納されていない旨の応答を取得した場合には、Ｎｏと判断する。
Ｙｅｓの場合、鍵導入部１１０は、処理をステップＳ１０６に進める。
Ｎｏの場合、鍵導入部１１０は、処理をステップＳ１０５に進める。
【００４５】
（ステップＳ１０５）
スレーブデバイス２０においてマスタキー３００が格納されていない場合、鍵導入部１１０が、マスタキー送信処理を行う。
鍵導入部１１０は、テンポラリキー３１０にて、マスタキー３００を暗号化してスレーブデバイス２０に送信する。具体的には、鍵導入部１１０は、例えば、記憶部１２に格納されたマスタキー３００を読み出し、ＡＥＳ等の方式を用いて、テンポラリキー３１０を鍵データとしてマスタキー３００を暗号化する。そして、鍵導入部１１０は、暗号化されたマスタキー３００を、スレーブデバイス２０へ鍵導入用コマンドを用いて送信する（タイミングＴ３）。
【００４６】
（ステップＳ２０２）
ここで、スレーブデバイス２０の処理について説明する。
鍵確認応答部２００は、鍵導入用コマンドを受信すると、マスタキー３００が記憶部２２に格納されているか否かを判断した結果により処理を分岐する。この判断においては、鍵確認応答部２００は、マスタキー３００が記憶部２２に格納されている場合に、Ｙｅｓと判断する。鍵確認応答部２００は、マスタキー３００が記憶部２２に格納されていない場合には、Ｎｏと判断する。
Ｙｅｓの場合、鍵確認応答部２００は、処理をステップＳ２０４に進める。
Ｎｏの場合、鍵確認応答部２００は、処理をステップＳ２０３に進める。
【００４７】
（ステップＳ２０３）
マスタキー３００が記憶部２２に格納されていない場合、鍵格納部２１０が、マスタキー格納処理を行う。
鍵格納部２１０は、鍵確認応答部２００の応答に対して、マスタデバイス１０から送信された、暗号化されたマスタキー３００を、マスタデバイス１０から受信する。
鍵格納部２１０は、受信した暗号化されたマスタキー３００を、テンポラリキー３１０で復号化し、記憶部２２に格納する。
鍵格納部２１０は、この格納が成功した場合、その旨をマスタデバイス１０に返信する（タイミングＴ４）。
【００４８】
（ステップＳ１０６、Ｓ２０４）
ここで、マスタデバイス１０の主認証部１２０と、スレーブデバイス２０の副認証部２２０が、相互認証処理を行う。
この処理では、マスタデバイス１０の主認証部１２０と、スレーブデバイス２０の副認証部２２０とが、マスタキー３００を用いて相互認証する。具体的には、主認証部１２０は、記憶部１２に格納されたマスタキー３００にて、スレーブデバイス２０との間で相互認証する。また、副認証部２２０は、鍵格納部２１０により記憶部２２に格納されたマスタキー３００にて、マスタデバイス１０との間で相互認証する（タイミングＴ５、Ｔ６）。
この相互認証は、例えば、特許文献２に記載されたような方式で行うことが可能である。より具体的には、例えば、主認証部１２０と副認証部２２０が、それぞれ乱数値を作成してマスタキー３００で暗号化し、これらをお互いに送受信した後、合計値を求めることで確認する。
ここでは、主認証部１２０は、スレーブデバイスからの返信の内容を確認して、相互認証が成功したか、失敗したかを判断する（タイミングＴ７）。主認証部１２０は、認証が成功した場合に、その旨を記憶部１２の記録媒体に格納する。
以上により、本発明の実施の形態に係る相互認証処理を終了する。
【００４９】
〔本実施形態の主な効果〕
以上のように構成することで、以下のような効果を得ることができる。
上述したように、特許文献１に記載されたような従来のカードリーダでは、スレーブデバイスが交換された際に、マスタキーを消去する必要があった。
【００５０】
ここで、図４〜図６を参照して、典型的なカードリーダによる相互認証の例について説明する。
図４は、マスタデバイスとスレーブデバイスにおいて、工場等における製造、検査時に、最初（初回）に起動され、相互認証をする場合の認証シーケンスを示す。マスタデバイスとスレーブデバイスは、それぞれ共通のテンポラリキーを格納している。まず、マスタデバイスにおいて、マスタキーを生成する（タイミングＴ１−２）。この例では、マスタキーは、カードリーダ１毎にユニーク（デバイスユニーク）となる。そして、マスタデバイスは、テンポラリキーを用いて、マスタキーを送信し、スレーブデバイスに導入させる（タイミングＴ２−２）。スレーブデバイスは、成功返信を行う（タイミングＴ３−２）。その後、マスタデバイスは、マスタキーによる相互認証を行う（タイミングＴ４−２）。これに対して、スレーブデバイスは、返信を行う（タイミングＴ５−２）。マスタデバイスは、スレーブデバイスからの返信の内容を確認して、相互認証が成功したか、失敗したかを判断する（タイミングＴ６−２）。
【００５１】
図５は、スレーブデバイスの交換時に、仮にマスタキーを消去せずに、そのまま相互認証をしようとした場合のシーケンスを示す。
典型的なカードリーダにおいて、マスタキーはデバイスユニークである。このため、マスタデバイスからマスタキーによる相互認証を行うと（タイミングＴ４−３）、スレーブデバイスからの返信（タイミングＴ５−３）をマスタデバイスが判定して、相互認証が失敗する（タイミングＴ６−３）。これは、交換時にはスレーブデバイスに交換後のマスタキーが格納されていないため、「マスタキーが異なる」とマスタデバイスが判断するためである。
さらに、既にマスタキーが格納された中古のスレーブデバイス、不正なスレーブデバイス等に交換された場合も、相互認証が失敗し、使用が禁止される。
【００５２】
図６は、典型的なカードリーダにおいて、図４の初回の相互認証が行われた後の状態における、スレーブデバイス交換時のシーケンスを示す。このように、典型的なカードリーダでは、マスタキーがカードリーダ毎にユニークのため、相互認証の前に、最初にマスタキーを消去する手順が必要となる（タイミングＴ０−４）。その後は、上述の図４と同様の手順で相互認証が行われる（タイミングＴ１−４〜Ｔ６−４）。
このように、暗号機能対応のセキュリティ製品であるスレーブデバイスの交換時には、相互認証のため、マスタキーをいったん消去する必要があった。このようにマスタキーを消去する際には、セキュリティ上の懸念があるため、例えば、安全な環境（セキュリティルーム等）で行わなければならなかった。
【００５３】
これに対して、本発明の実施の形態に係るカードリーダ１は、相互に認証するマスタデバイス１０とスレーブデバイス２０とを備える相互認証システムであって、マスタデバイス１０は、一時的に用いられる鍵データであるテンポラリキー３１０、及び認証に用いられる鍵データであるマスタキー３００を格納する記憶部１２と、記憶部１２に格納されたのと同様のマスタキー３００をスレーブデバイス２０が格納しているか問い合わせる鍵確認部１００と、鍵確認部１００の問い合わせの応答において、スレーブデバイス２０がマスタキー３００を格納していない場合、テンポラリキー３１０にて、マスタキー３００を暗号化してスレーブデバイス２０に送信する鍵導入部１１０と、鍵導入部１１０により送信されたマスタキー３００にて、スレーブデバイス２０との間で相互認証する主認証部１２０とを備え、スレーブデバイス２０は、テンポラリキー３１０を格納する記憶部２２と、マスタデバイス１０からの問い合わせに対して、記憶部２２にマスタキー３００が既に格納されているか確認して応答する鍵確認応答部２００と、鍵確認応答部２００の応答に対して、マスタデバイス１０から送信されたマスタキー３００をテンポラリキー３１０で復号化して記憶部２２に格納する鍵格納部２１０と、鍵格納部２１０により記憶部２２に格納されたマスタキー３００にて、マスタデバイス１０との間で相互認証する副認証部２２０とを備えることを特徴とする。
【００５４】
このように構成し、カードリーダ１は、マスタキー３００は変更せず、交換後のスレーブデバイス２０にマスタキー３００の有無を確認し、なければ、テンポラリキー３１０を用いてマスタキー３００を導入する。これにより、マスタデバイス１０は、マスタキー３００を消去せずにスレーブデバイス２０に対してマスタキー３００の導入を行い、相互認証を成功させることができる。結果として、高度なセキュリティが求められる暗号磁気ヘッド等のスレーブデバイス２０を安全に交換可能となり、セキュリティ性の高い状態や場所等を確保することなく、従来よりもセキュリティ性を高めることができる。
【００５５】
また、上述したように、マスタキーの消去にはセキュリティ上の懸念があり、安全な環境で行わなければならなった。このように安全な環境を構築するためには労力やコストがかかっていた。
本実施形態のカードリーダ１は、このように安全な環境がない場合であっても、セキュリティ性が高い状態で相互認証が可能となり、労力やコストを低減できる。さらに、サービスパーソンが、ＡＴＭ等の修理現場で、直接、暗号磁気ヘッド等を交換して、稼働させることが可能となるため、メンテナンスの労力やコストも削減できる。
【００５６】
本発明の実施の形態に係るカードリーダ１は、マスタデバイス１０にて、初期起動した際に、乱数を用いてマスタキー３００を生成し、記憶部１２に格納する鍵生成部１３０を更に備えることを特徴とする。
このように構成することで、工場出荷時等において、マスタデバイス１０を初期起動した際に、デバイスユニークな鍵データを安全に生成することが可能となる。
【００５７】
本発明の実施の形態に係るカードリーダ１は、鍵確認部１００が、特定タイミングで、スレーブデバイス２０がマスタキー３００を格納しているか問い合わせることを特徴とする。
このように構成し、マスタデバイス１０は、電源オン時等の特定タイミングで、スレーブデバイス２０がマスタキー３００を格納しているか問い合わせる。これにより、不正ヘッド等が取り付けられたことを、検知することが可能となる。
【００５８】
本発明の実施の形態に係るカードリーダ１は、主認証部１２０及び副認証部２２０による相互認証には、対称鍵暗号方式を用いることを特徴とする。
このように構成し、ＲＳＡのような非対称鍵暗号を使用せず、ＡＥＳのような対称鍵暗号のみで認証を行うことで、相互認証に係る処理速度を向上させることができる。結果として、安価なＣＰＵでも相互認証が実現可能となる。
【００５９】
〔他の実施の形態〕
なお、上述の実施の形態においては、相互認証システムの一例として、マスタデバイス１０及びスレーブデバイス２０を含むカードリーダ１を用いる構成について説明した。
しかしながら、本発明の他の実施の形態に係る相互認証システムは、カードリーダと上位装置との間で相互認証を行うような相互認証システムとして構成することも可能である。加えて、カードリーダにおいて、スレーブデバイス２０も１つに限らず複数あってもよい。この場合、スレーブデバイス２０として暗号ＩＣブロックを用いるような構成も可能である。さらに、カードリーダ以外の相互認証を行うセキュリティ製品を含む相互認証システムを構成することも可能である。このセキュリティ製品としては、例えば、カードプリンタ、カード発行装置、その他のカード関連の装置、ＡＴＭ等の本体等が含まれていてもよい。また、スマートフォン等の携帯端末、ＰＣ（Personal Computer）、家電製品、自動車等の各種情報処理装置をマスタデバイス又はスレーブデバイスとして含む相互認証システムを構成することも可能である。
このように構成することで、様々な構成に対応した相互認証が可能となる。
【００６０】
また、上述の実施の形態においては、マスタデバイス１０にてマスタキー３００が生成される例について記載した。しかしながら、このマスタキー３００は、上位装置から送信して導入させたり、別途、製造時にデバイスユニークな鍵データを導入させたりして、記憶部１２に格納させてもよい。
このように構成することで、装置毎に格納されたマスタキー３００を管理等することも可能となる。
【００６１】
また、上述の実施の形態においては、認証を行うために共通鍵（対称鍵）暗号方式のＡＥＳを用いる例について説明した。しかしながら、Ｔｒｉｐｌｅ  ＤＥＳ等の暗号方式を用いることも可能である。また、制御部１１、２１の演算性能によっては、公開鍵暗号を用いることも可能である。
このように構成することで、カードリーダの構成や規格上の要求等に合わせた適切な相互認証システムを提供可能となる。
【００６２】
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。
【符号の説明】
【００６３】
１  カードリーダ
２  カード媒体
１０  マスタデバイス
１１、２１  制御部
１２、２２  記憶部
２０  スレーブデバイス
２３  磁気ヘッド
１００  鍵確認部
１１０  鍵導入部
１２０  主認証部
１３０  鍵生成部
２００  鍵確認応答部
２１０  鍵格納部
２２０  副認証部
３００  マスタキー
３１０  テンポラリキー
【図１】
2020005172.tif 000003
【図２】
2020005172.tif 000004
【図３】
2020005172.tif 000005
【図４】
2020005172.tif 000006
【図５】
2020005172.tif 000007
【図６】
2020005172.tif 000008