(57)【特許請求の範囲】
【請求項１】
相互認証機能を有する第１の装置と第２の装置とを少なくとも備えた相互認証システムにおいて、
前記第１の装置は、マスターキーと、第１の認証キー生成アルゴリズムと、第２の認証キー生成アルゴリズムと、を少なくとも備え、
前記第２の装置は装置識別ＩＤを少なくとも備え、
前記第１の装置が前記第２の装置を認証する場合に用いられる前記第２の装置認証キーは、該第２の装置の装置識別ＩＤと前記マスターキーと第１の認証キー生成アルゴリズムとを用いて生成され、
前記第２の装置が第１の装置を認証する場合に用いられる前記第１の装置認証キーは、前記第２の装置の装置識別ＩＤと前記マスターキーと第２の認証キー生成アルゴリズムとを用いて生成される、
ことを特徴とする請求項１記載の相互認証システム。
【請求項２】
前記第２の装置がＩＣカード、第１の装置が該ＩＣカードにアクセスを行う端末であることを特徴とする請求項１記載の相互認証システム。
【請求項３】
前記ＩＣカードがプリペイドＩＣカードである請求項２記載の相互認証システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＣメモリを利用したＩＣカード等を利用するシステムで、相互認証を行えるシステムに関する。
【０００２】
【従来の技術】
ＩＣメモリを利用したＣＰＵ内蔵のＩＣカードは、セキュリティ性に優れ、その一つに相互認証が行える点にある。ＩＣカードを端末を介して利用する場合、その相互認証は、ＩＣカードは端末が正当なものであることを認証（端末認証）し、端末はＩＣカードが正当なものであることを認証（カード認証）することで相互に認証し、ＩＣカードや端末に成り済ました不正な装置が介在することを防止するものである。
従来、相互認証を実行するためには、例えば、カードと端末の各々がカード認証キー及び端末認証キーの両方を記憶している必要があった。そこで、従来はカード認証キーを生成するためのマスターキーと、端末認証キーを生成するためのマスターキーを別々に用意し、カードの発行処理時やその後の相互認証時にこれら認証キーを生成していた。
【０００３】
【発明が解決しようとする課題】
しかしながら、このようなカード及び端末を少なくとも備えたカードシステムにおいて、一系統のシステムでは構わないが、プリペイドＩＣカード等のシステムにおいては同種のシステムが存在することになるので、システム毎にこのマスターキーを重複しない様に個別に管理する必要があった。また、前記従来の方法ではシステム毎に２種類のマスターキーを設定し管理しなければならないという問題もあった。
【０００４】
【課題を解決するための手段】
そこで上記課題を解決する為に、本発明の相互認証システムでは、相互認証で用いられる二つの異なる認証キーを別々のマスターキーから生成せずに、同一のマスターキーから生成させることで、マスターキーの管理を容易にした。同一のマスターキーから異なる認証キーを生成するには、認証キー生成アルゴリズムを２種類用意する。なお、それぞれのＩＣカードに対応した異なる認証キーを得るには、生成アルゴリズムが用いるパラメータの一つとして各カードのカード識別ＩＤを用いる。
【０００５】
【発明の実施の形態】
以下、図面を参照しながら本発明の相互認証システムを説明する。本発明はＩＣカードと端末との関係に限定されるシステムではないが、ＩＣカードと端末との相互認証を想定して説明する。
図１は、相互認証に用いる各認証キーと、それらを生成するマスターキーとの関係を示す概念図である。本発明の相互認証システムでは、基本的に、第１の装置（ここでは端末）と、第２の装置（ここではＩＣカード）とから少なくとも構成されるシステムであって、第１の装置が第２の装置に対して行う認証（ここではカード認証）、及び第２の装置が第１の装置に対して行う認証（ここでは端末認証）の各々の認証で必要なキー、即ち、端末認証キー及びカード認証キーを生成するためのマスターキーを同一のものとしたものである。
図１では、第１の装置１０（端末）と第２の装置２０（ＩＣカード）とが相互認証を行う装置であり、第１の装置１０がマスターキー１を備え一元的に管理するシステムである。
【０００６】
さらに図１の概念図に示すシステムでは、第１の装置１０が、第１の認証キー生成アルゴリズム２（端末認証キー生成アルゴリズム）と、第２の認証キー生成アルゴリズム３（カード認証キー生成アルゴリズム）と、を備える。
第１の装置（端末）がそれぞれの第２の装置（ＩＣカード）を認証する場合に用いられる第２の装置認証キー５（カード認証キー）、及び第２の装置が第１の装置を認証する場合に用いられる第１の装置認証キー４（端末認証キー）は、各々前記の認証キー生成アルゴリズムによって生成されたものが、第２の装置（ＩＣカード）に備えられる。第１の装置認証キー４（端末認証キー）は、第１の認証キー生成アルゴリズム２（端末認証キー生成アルゴリズム）により生成され、第２の装置認証キー５（カード認証キー）は、第２の認証キー生成アルゴリズム２（カード認証キー生成アルゴリズム）により生成される。
なお、第２の装置（ＩＣカード）は、それぞれの装置を識別する為の装置識別ＩＤ６（カードＩＤ）を備える。そして、第１及び第２の認証キー生成アルゴリズム２及び３は、初期値としてマスターキーの他に、第２の装置（ＩＣカード）のそれぞれを識別する装置識別ＩＤ（カードＩＤ）も併用して、第２の装置のそれぞれで異なる、第１の装置認証キー４（端末認証キー）及び第２の装置認証キー５（カード認証キー）を生成する。
【０００７】
なお、第２の装置は、二つの認証キーを相互認証に先立ち事前に装置に備えさせておいても良いが、相互認証の際に第１の装置からキー配送を受けても良い。例えば、第２の装置がＩＣカードであれば、発行時にカード発行装置からキー配送を受ける。
【０００８】
以上の様な形態のシステムとすることで、マスターキーは同一のものを管理すれば良いことになる。複数のカード（第２の装置）と複数の端末とからなるシステムでは、端末を統合するセンターの装置（第１の装置と捉える）にただ一つのマスターキーを備えて管理する形態、或いは各端末（この場合はこれを第１の装置と捉える）毎に同一のマスターキーを備える（従って同一のマスターキーが端末の数だけ存在する）形態等があり得る。
【０００９】
【実施例】
以下、図２の概念的システム構成図、図３及び図４のフロー図を参照しながら本発明の相互認証システムの一実施例として、ＩＣカードと端末とを備えたシステムにおける相互認証の手続を説明する。なお、図３は端末認証、図４はカード認証の処理のフロー図である。
【００１０】
先ず図２に示す如く、この実施例では、端末３０はセキュリティモジュール４０を端末内に組み込んである。セキュリティモジュール４０は常時マスターキー（Ｍ）４１を記憶しており、さらに、端末認証キーを演算生成するための端末認証キー生成アルゴリズム４２として関数ｇ（ｘ）と、カード認証キーを演算生成するためのカード認証キー生成アルゴリズム４３として関数ｈ（ｘ）と、相互認証を行う為に必要な演算処理を行う認証アルゴリズム４８として認証関数ｆ（ｘ）、それに相互認証で必要な乱数（Ｅ）を発生する乱数発生アルゴリズム４９を実現する回路を備える。また、上記セキュリティモジュール４０は端末の一構成要素である。
なお、セキュリティモジュール（以下、「ＳＭ」ともいう）は、ＩＣカード形状とすることも可能であり、同一のセキュリティモジュールを多数用意しておき、これを各端末にセットすることで、多数の端末を備えた相互認証システムが構築される。
【００１１】
ＩＣカード５０は、用途によりバンクカード、プリペイドカード等であり、カード毎に異なるカードＩＤ（Ａ）５６と、端末認証キー（Ｂ）５４として、カードの初期化時にカードＩＤ（Ａ）５６と前記マスターキー（Ｍ）４１と端末認証キーを演算生成する関数ｇ（ｘ）４２によって生成された端末認証キー（Ｂ）５４と、カード認証キー（Ｃ）５５として、同じくカードの初期化時にカードＩＤ（Ａ）５６と前記マスターキー（Ｍ）４１とカード認証キーを演算生成する関数ｈ（ｘ）４３によって生成されたカード認証キー（Ｃ）５５と、相互認証を行う為に必要な演算処理を行う認証アルゴリズム４８として認証関数ｆ（ｘ）と、それに相互認証で必要な乱数（Ｄ）を発生する乱数発生アルゴリズム４９を実現する回路を備える。なお、カードの認証関数ｆ（ｘ）は端末の認証関数ｆ（ｘ）と同一のものである。また、カードの乱数発生アルゴリズムは端末の乱数発生アルゴリズムと異なるものでも良い。
【００１２】
次に、図３で、ＩＣカードが端末を認証する端末認証の処理手順を説明する。なお、同図内で１１〜３０の番号はステップ番号を示す。先ず端末認証は、ＩＣカードに対する端末のカードＩＤの送出要求から始まる（１１：ステップ番号、以下同様）。次いでＩＣカードはカードＩＤ（Ａ）を端末に送出し（１２）、端末は受信したカードＩＤをＳＭに転送し（１３）、ＳＭはカードＩＤ（Ａ）を受信する（１４）。受信後、端末はＳＭに対して（端末）認証キー演算要求を発し（１５）、演算要求を受けてＳＭは、受信したカードＩＤ（Ａ）と、記憶しているマスターキー（Ｍ）と、関数ｇ（ｘ）とから端末認証キー（Ｂ′）を演算し、生成する（１６）。続いて、端末はＩＣカードに対して乱数送出要求を発し（１７）、それを受けてＩＣカードは乱数（Ｄ）を発生して端末に送出し（１８）、端末は乱数（Ｄ）を受けてＳＭに転送し（１９）、ＳＭは乱数（Ｄ）を受信する（２０）。次いで、端末はＩＣカードに対して（端末）認証演算要求を発し（２１）、ＩＣカードはＩＣカード自身が保有していたカードＩＤ（Ａ）及び端末認証キー（Ｂ）と、生成した乱数（Ｄ）を用いて関数ｆ（ｘ）、すなわち関数ｆ（Ａ，Ｂ，Ｄ）を演算する（２２）。次いで、端末は（端末）認証演算要求をＳＭにも発し（２３）、ＳＭ側でも受信したカードＩＤ（Ａ）、生成した端末認証キー（Ｂ′）、受信した乱数（Ｄ）を用いて関数ｆ（ｘ）、すなわち関数ｆ（Ａ，Ｂ′，Ｄ）を演算する（２４）。次いで、端末はＳＭに演算結果送出要求を発し（２５）、それを受けてＳＭは演算結果の関数値ｆ（Ａ，Ｂ′，Ｄ）を端末に送出し（２６）、端末は受信した演算結果をＩＣカードに転送し（２７）、ＩＣカードは端末側の演算結果の関数値ｆ（Ａ，Ｂ′，Ｄ）を受信する（２８）。次いで、端末はＩＣカードに対して、ＩＣカード自身の演算結果と、端末側のＳＭの演算結果とについて演算結果比較要求を発し（２９）、要求を受けてＩＣカードは、関数値ｆ（Ａ，Ｂ，Ｄ）と関数値ｆ（Ａ，Ｂ′，Ｄ）との比較を実行する（３０）。比較結果が一致していれば、端末はシステムの正しい端末であると認証されたことになり、端末認証は終了する。
【００１３】
次に、図４で、端末がＩＣカードを認証するカード認証の処理手順を説明する。なお、同図内でも同様に１１〜３０の番号はステップ番号を示す。先ずカード認証では、ＩＣカードに対する端末のカードＩＤの送出要求から始まる（１１：ステップ番号、以下同様）。次いでＩＣカードはカードＩＤ（Ａ）を端末に送出し（１２）、端末は受信したカードＩＤをＳＭに転送し（１３）、ＳＭはカードＩＤ（Ａ）を受信する（１４）。受信後、端末はＳＭに対して（カード）認証キー演算要求を発し（１５）、演算要求を受けてＳＭは、受信したカードＩＤ（Ａ）と、記憶しているマスターキー（Ｍ）と、関数ｈ（ｘ）とからカード認証キー（Ｃ′）を演算し、生成する（１６）。続いて、端末はＳＭに対して乱数送出要求を発し（１７）、それを受けてＳＭは乱数（Ｅ）を発生させて端末に送出し（１８）、端末は乱数（Ｅ）を受けてＩＣカードに転送し（１９）、ＩＣカードは乱数（Ｅ）を受信する（２０）。次いで、端末はＳＭに対して（カード）認証演算要求を発し（２１）、ＳＭは受信したカードＩＤ（Ａ）、生成した認証キー（Ｃ′）及び生成した乱数（Ｅ）を用いて関数ｆ（ｘ）、すなわち関数ｆ（Ａ，Ｃ′，Ｅ）を演算する（２２）。次いで、端末は（カード）認証演算要求をＩＣカードにも発し（２３）、ＩＣカード側でもそのＩＣカード自身が保有していたカードＩＤ及びカード認証キー（Ｃ）、それに受信した乱数（Ｅ）を用いて関数ｆ（ｘ）、すなわち関数ｆ（Ａ，Ｃ，Ｅ）を演算する（２４）。次いで、端末はＩＣカードに演算結果送出要求を発し（２５）、それを受けてＩＣカードは演算結果の関数値ｆ（Ａ，Ｃ，Ｅ）を端末に送出し（２６）、端末は受信した演算結果をＳＭに転送し（２７）、ＳＭはその演算結果の関数値ｆ（Ａ，Ｃ，Ｅ）を受信する（２８）。次いで、端末はＳＭに対して、端末側であるＳＭ自身の演算結果と、ＩＣカードの演算結果とについて演算結果比較要求を発し（２９）、要求を受けてＳＭは、関数値ｆ（Ａ，Ｃ，Ｅ）と関数値ｆ（Ａ，Ｃ′，Ｅ）との比較を実行し、一致しているか否かの結果を端末に返す（３０）。比較結果が一致していれば、ＩＣカードはシステムで許可された正しいＩＣカードであると認証されたことになり、カード認証は終了する。
【００１４】
なお、本発明の相互認証システムは、上記実施例に限定されるものではなく、例えば前述した様に各種の形態があり得る。例えば、上記実施例において、端末認証キー及びカード認証キーには同一のカードＩＤ（Ａ）を用いたが、それぞれの認証キーの生成にカードＩＤ（Ａ）とカードＩＤ（Ａ′）と、それぞれ別の値を用いてもよい。なお、この場合、ＩＣカード側ではカードＩＤとして、カードＩＤ（Ａ）とカードＩＤ（Ａ′）の両方を所有している。例えば、カードＩＤ（Ａ）とカードＩＤ（Ａ′）とを独立のＩＤとしてカードＩＤ領域に別々に格納する形式、或いはこれらＩＤのデータの一部をオーバーラップさせてカードＩＤ領域に格納する形式等によってカードＩＤを所有する。
【００１５】
【発明の効果】
本発明の相互認証システムによれば、相互認証で必要とされる認証キーは同一のマスターキーで生成されるので、システム単位で一種類のマスターキーを管理すれば良く、マスターキーの管理が容易になる。また、例えばプリペイドＩＣカードシステムで複数の系統のシステムがある場合でも、系統毎で異なる一種類のマスターキーを用意すれば良く、系統毎に例えば二種類等と複数のマスターキーを管理する必要がないので、管理するマスターキーの数が少なく、マスターキーの管理が容易である。
【図面の簡単な説明】
【図１】本発明の相互認証システムの概念図。
【図２】本発明の相互認証システムの一実施例であるＩＣカードシステムでの概念的システム構成図。
【図３】図２のシステムにおける端末認証のフロー図。
【図４】図２のシステムにおけるカード認証のフロー図。
【符号の説明】
１  マスターキー
２  第１の認証キー生成アルゴリズム（端末認証キー生成アルゴリズム）
３  第２の認証キー生成アルゴリズム（カード認証キー生成アルゴリズム）
４  第１の装置用認証キー（端末認証キー）
５  第２の装置用認証キー（カード認証キー）
６  装置識別ＩＤ（カードＩＤ）
７  認証アルゴリズム（認証関数）
８  乱数発生手段
１０  第１の装置（端末）
２０  第２の装置（ＩＣカード）
３０  端末
４０  セキュリティモジュール
４１  マスターキー
４２  端末認証キー生成アルゴリズム，関数ｇ（ｘ）
４３  カード認証キー生成アルゴリズム，関数ｈ（ｘ）
４８  認証アルゴリズム，関数ｆ（ｘ）
４９  乱数発生アルゴリズム
５０  ＩＣカード
５４  端末認証キー
５５  カード認証キー
５６  カードＩＤ
５８  認証アルゴリズム
５９  乱数発生アルゴリズム
【図１】
0003710863.tif 000002
【図２】
0003710863.tif 000003
【図３】
0003710863.tif 000004
【図４】
0003710863.tif 000005