(57)【特許請求の範囲】
【請求項１】
データ通信システムにおける一対の第１の通信装置Ｃおよび第２の通信装置Ｔのうちの少なくとも一方を認証する方法であって、前記第２の通信装置Ｔは、秘密鍵ｔを有し、前記第１の通信装置Ｃは、公開鍵Ｃと前記公開鍵Ｃから得られた共通秘密値ｔＣとを有し、
前記方法は、
前記第２の通信装置Ｔが、前記第１の通信装置Ｃから前記公開鍵Ｃを取得するステップと、
前記第２の通信装置Ｔが、チャレンジ値χを生成し、前記チャレンジ値χを前記第１の通信装置Ｃに送信するステップと、
前記第２の通信装置Ｔが、前記公開鍵Ｃと前記秘密鍵ｔとを用いてセッション共通秘密値ｓｓを計算するステップと、
前記第２の通信装置Ｔが、前記チャレンジ値χと前記セッション共通秘密値ｓｓとを用いて１方向関数ｆ１で応答検証値ｋＴを計算するステップと、
前記第２の通信装置Ｔが、前記第１の通信装置Ｃからチャレンジ応答ｋＣを受信するステップであって、前記チャレンジ応答ｋＣは、前記第２の通信装置Ｔから受信した前記チャレンジ値χと前記共通秘密値ｔＣとを用いて前記第１の通信装置Ｃによって計算されている、ステップと、
前記第２の通信装置Ｔが、前記チャレンジ応答ｋＣを前記応答検証値ｋＴと比較して両者が等しい場合に前記第１の通信装置Ｃを検証するステップと
を含む、方法。
【請求項２】
前記第２の通信装置Ｔは、前記チャレンジ応答ｋＣとともに、前記第１の通信装置Ｃによって生成されたメッセージｍのシグネチャｋｓｉｇを受信する、請求項１に記載の方法。
【請求項３】
前記シグネチャｋｓｉｇは、前記１方向関数ｆ１を用いて生成されている、請求項２に記載の方法。
【請求項４】
前記シグネチャｋｓｉｇは、前記チャレンジ応答ｋＣに含められ、送信のために前記メッセージｍに連結される、請求項３に記載の方法。
【請求項５】
前記第１の通信装置Ｃは、対称鍵方式によりメッセージｍを暗号化し、前記対称鍵は、前記チャレンジ応答ｋＣから得られ、前記方法は、前記第２の通信装置Ｔが、前記暗号化されたメッセージｍを前記第１の通信装置Ｃから受信することを含む、請求項１に記載の方法。
【請求項６】
前記セッション共通秘密値ｓｓは、前記秘密鍵ｔおよび前記公開鍵Ｃを利用して計算される、請求項１から請求項５のいずれか１項に記載の方法。
【請求項７】
前記第２の通信装置Ｔが、複数の第１の通信装置にそれぞれ対応する複数の専用鍵ｔｉを有し、
前記第１の通信装置ＣからＩＤインデックスｉを受信し、
前記対応する専用鍵ｔｉと前記公開鍵Ｃとを用いて共通秘密値ｓｓｉを計算する、請求項１から請求項６のいずれか１項に記載の方法。
【請求項８】
データ通信システムにおける一対の第１の通信装置Ｃおよび第２の通信装置Ｔのうちの少なくとも一方を認証する方法であって、前記第２の通信装置Ｔは、秘密鍵ｔを有し、前記第１の通信装置Ｃは、公開鍵Ｃと前記公開鍵Ｃから得られた共通秘密値ｔＣとを有し、
前記方法は、
前記第１の通信装置Ｃが、前記公開鍵Ｃを前記第２の通信装置Ｔに提供するステップと、
前記第１の通信装置Ｃが、前記第２の通信装置Ｔによって生成されたチャレンジ値χを取得するステップと、
前記第１の通信装置Ｃが、前記チャレンジ値χと前記共通秘密値ｔＣとを用いて１方向関数ｆ１でチャレンジ応答ｋＣを計算するステップと、
前記第１の通信装置Ｃが、前記チャレンジ応答ｋＣを前記第２の通信装置Ｔに送信することにより、前記第２の通信装置Ｔが前記第１の通信装置Ｃを検証することを可能にするステップであって、前記第１の通信装置Ｃを検証することは、前記チャレンジ応答ｋＣと前記応答検証値ｋＴとを比較することよって行われ、前記応答検証値ｋＴは、前記チャレンジ値χとセッション共通秘密値ｓｓとを用いて前記第２の通信装置Ｔによって生成され、前記セッション共通秘密値ｓｓは、前記第１の通信装置Ｃによって提供された前記公開鍵Ｃと前記秘密鍵ｔとを用いて計算される、ステップと
を含む、方法。
【請求項９】
前記第１の通信装置Ｃは、メッセージｍのシグネチャｋｓｉｇを生成し、前記シグネチャｋｓｉｇを前記チャレンジ応答ｋＣとともに前記第２の通信装置Ｔに送信する、請求項８に記載の方法。
【請求項１０】
前記シグネチャｋｓｉｇは、前記１方向関数ｆ１を用いて生成される、請求項９に記載の方法。
【請求項１１】
前記シグネチャｋｓｉｇは、前記チャレンジ応答ｋＣに含められ、送信のために前記メッセージｍに連結される、請求項１０に記載の方法。
【請求項１２】
前記第１通信装置Ｃは、対称鍵方式によりメッセージｍを暗号化し、前記対称鍵は、前記チャレンジ応答ｋＣから得られ、前記方法は、前記第１の通信装置Ｃが、前記暗号化されたメッセージｍを前記第２の通信装置Ｔに送信することを含む、請求項８に記載の方法。
【請求項１３】
前記セッション共通秘密値ｓｓは、前記秘密鍵ｔと前記公開鍵Ｃとを利用して計算される、請求項８から請求項１２のいずれか１項に記載の方法。
【請求項１４】
前記公開鍵Ｃは、楕円曲線方式またはＲＳＡ型方式のいずれかにおいて用いられる、請求項１から請求項１３のいずれか１項に記載の方法。
【請求項１５】
情報交換セッションにおける一対の通信装置Ｔおよび通信装置Ｃのうちの少なくとも一方を認証するためのコンピュータ読み取り可能なプログラム・コードを有するコンピュータ使用可能な媒体を備えた通信システムであって、一方の通信装置Ｔが、秘密鍵ｔを有し、他方の通信装置Ｃが、公開鍵Ｃと、前記公開鍵Ｃおよび前記秘密鍵ｔから得られた共通秘密値ｔＣとを有し、
前記通信システム内のコンピュータ読み取り可能なプログラム・コードが、
チャレンジχ値を生成することと、前記第１の通信装置から受信された公開情報に応答して前記チャレンジ信号χを前記第１の通信装置Ｃに送信することとをコンピュータに行わせるように構成されたコンピュータ読み取り可能なプログラム・コードと、
前記専用鍵ｔと前記第１の通信装置Ｃの前記公開鍵Ｃとを組み合わせることによってセッション共通秘密値ｓｓを生成することをコンピュータに行わせるように構成されたコンピュータ読み取り可能なプログラム・コードと、
前記セッション共通秘密値ｓｓと前記チャレンジ信号χとを数学的関数ｆ１で組み合わせることによって試験応答信号ｋｔを生成することをコンピュータに行わせるように構成されたコンピュータ読み取り可能なプログラム・コードと、
前記試験応答信号ｋｔと前記第１の通信装置Ｃから受信された応答値ｋＣとを比較することにより、前記第１の通信装置Ｃを検証することをコンピュータに行わせるように構成されたコンピュータ読み取り可能なプログラム・コードと
を含む、通信システム。
【発明の詳細な説明】
【０００１】
本発明は、データ通信システムにおける通信装置を確実に検証するためのプロトコルに関し、特に、計算能力が限られた少なくとも１つの通信装置の検証に関する。
【０００２】
（発明の背景）
従来、所定の場所への人の出入りを制限するために機械的な回転木戸装置が使用されている。この所定の場所に入るときに、ユーザは現金、入場券、カード、またはその他の支払い媒体の形の料金を支払う必要がある。しかし、このような機械的な回転木戸が入場を許可する際に、出入りする人を識別することはできない。ユーザを監視するには、オペレータが必要である。
【０００３】
この問題を軽減するために、電子カード入退場システムが開発された。この種のシステムでは、ユーザに対して事前にIDカードが発行され、次いで、このカードがカード読取り機に挿入され、本人であることが確認されたときに、ロック式ドアまたは同様なゲートを介して入場が許可され、これにより、オペラータが不要になる。このシステムの欠点は、ユーザの数が多い場合、各ユーザを登録したデータベースを持つ必要があることであり、特に、各ユーザが固有のIDを有する場合、各レコードをスクロールして一致するIDを見つける検証システムが必要である。第２に、このシステムは、多くのユーザが所与の時間に公共の通行道路など特定の場所に入る場合にも不都合であり、カード読取り機へのカードの挿入とカード読取り機からのカードの取り出しのために出口が混雑する可能性が高い。
【０００４】
事前にプログラムされたスマート・カードがユーザに与えられる通行管理システムが開発されている。このシステムでは、回転木戸またはターミナルがスマート・カードを遠方から監視することができ、したがって、ユーザはカードをスロットに物理的に挿入することなく簡単に回転木戸を通過することができる。カードは一般に、ターミナルによって発生された電磁界によって作動させられ、次いで、適切なIDをターミナルに送り返し、ターミナルはカードのIDを認証し、ユーザの入場を許可する。このようなカードの計算能力は、一般に限られており、複雑な計算を行うことはできない。複製または不正な入場を防止するためにこれらのカードを認証することも望ましい。カードの計算能力が限られているので、カードにおいて行われる計算を最小限に抑え、さらに、ターミナルによるカードの検証を非常に短い時間、一般には１秒未満で行えるようにする認証プロトコルを実現する必要がある。
【０００５】
（発明の概要）
本発明の目的は、カード装置の計算能力が限られているターミナルとカードの間のカード検証に関する問題のソリューションを提供することである。
【０００６】
本発明の一態様によれば、情報交換セッションにおける一対の通信装置ＴおよびＣのうちの少なくとも一方を認識し、一方の通信装置Ｔが秘密鍵ｔを有し、他方の通信装置Ｃが、公開鍵Ｃと、公開鍵Ｃおよび秘密鍵ｔから得られた共通秘密値tCとを有する方法であって、
第１の通信装置Ｃが、第２の通信装置に公開鍵Ｃを送信するステップと、
第２の通信装置Ｔが、チャレンジ値χを生成し、チャレンジ値χを第１の通信装置Ｃに送信するステップと、
第２の通信装置Ｔが、公開鍵ｔと第１の通信装置Ｃの公開鍵Ｃを組み合わせることによってセッション共通秘密値ssを生成するステップと、
第２の通信装置Ｔが、セッション共通秘密ssとチャレンジχを数学的関数f1で組み合わせることによって応答試験値ktを生成するステップと、
第１の通信装置Ｃが、共通秘密tCとチャレンジ値χを数学的関数f1で組み合わせることによって応答値kCを生成し、応答値kCを第２の通信装置Ｔに送信するステップと、
第２の通信装置Ｔが、応答試験値ktとチャレンジ応答値kCを比較し第１の通信装置Ｃを検証するステップとを含む方法が提供される。
【０００７】
本発明の他の態様では、公開鍵Ｃが証明書CertCに含まれており、それによって、第２の通信装置は、チャレンジχを生成する前に、Ｃに関する証明書と第１の通信装置ＣのIDとを検証する。
【０００８】
本発明の他の態様によれば、機械的関数f1は１方向関数である。
【０００９】
次に、本発明の一実施の形態を添付した図面を参照して説明する。
【００１０】
（好ましい実施の形態の詳細な説明）
以下の説明では、同一符号は同一要素を示す。図１を参照すると、通行管理システムが符号10で示されている。このシステムでは、ユーザ12がIDカード14を携帯している。カードを携帯しているユーザ12を遠方から監視するために、カード読取り機を備えるターミナルが設けられている。ターミナル16は、たとえば電磁手段18を介して所定の近傍領域内のカードと通信する。このようなシステムは容易に入手することができ、このようなシステムについてはこれ以上論じない。
【００１１】
本発明のデータ通信システムでは、カードおよびターミナルがそれぞれ、一対の第１および第２の通信装置として指定される。カードは一般に、使用される読取り機構に応じて、ターミナル18によって生成される磁界の近傍に配置されたときに電力が供給される。カード14は、少なくとも、簡単な計算を行うことのできる、低電力処理装置を内蔵している。代表的なデータ通信セッションでは、カードは、組み立てられたときにターミナルに送信されるデータ文字列を組み立てる。
【００１２】
システム・セットアップ時、すなわち、ユーザにカードが発行される際、暗号化方式により適切なシステム・パラメータが設定される。以下の例では、楕円曲線暗号化方式を使用する。暗号化方式の詳細は当該技術分野でよく知られているので、それについては議論しない。しかし、楕円曲線暗号化方式を使用する場合、公開鍵C=CPが計算される。ここで、Ｐは楕円曲線上の生成点である。公開鍵Ｃは、認証機関（CA）によって作成され、公開鍵ＣおよびカードＣのIDを含みカード14に記憶される証明書CertCが交付される。共通秘密tC=tCが計算される。ここで、ｔはターミナルＴが認識可能な秘密鍵である。この共通鍵tCはカードの安全な境界内に記憶される。したがって、システム・セットアップ・フェーズの後で、カードは証明書CertCおよび共通秘密tCを含む。
【００１３】
ここで図２を参照すると、本発明の実施例によるプロトコルが符号200で示されている。カード14を携帯するユーザ12がターミナル18の近傍にいるとき、カードは、ターミナルを検出し（210）、ターミナルＴにカードの証明書CertCを送信する。同様に、ターミナルはカードを検出する（214）と、証明書CertCの到着を待つ（216）。ターミナルは、証明書を受信すると、CAの公開鍵を使用して証明書を検証する（218）。証明書が検証されなかった場合、適切な妨害、あるいはイベントを警告、すなわち通知するために使用される拒否信号が生成される。しかし、証明書が検証された場合、ターミナルは証明書からカードの公開鍵Ｃを抽出する（220）。次いで、ターミナルは、チャレンジχ、たとえば大きな整数や任意の適切なビット文字列を生成する。次いで、このチャレンジχはカードに送信される（224）。同時に、ターミナルは共通秘密ss=tCを計算し、チャレンジ応答検証値kT=f1(χ, ss)を計算する。ここで、f1は信頼性の高いハッシュ関数や、データ暗号化規格（DES）に準拠する関数などの１方向関数である。カードは、チャレンジχを受信すると、チャレンジ値χおよび共通秘密値tCに１方向関数f1を適用してkC=f1(χ, tC)を計算しチャレンジ応答kCを計算する。次いで、このチャレンジ応答値kCはターミナルに送り返され（232）、ターミナルでktとkCを比較することによって検証される（234）。これらの値が等しい場合、カードは検証される。
【００１４】
したがって、チャレンジχの目的は、カードが共通秘密tCを有していることを検証することであり、そうしないと、周りで見ている人がkCを計算した後で送り返す再試行攻撃にデータ通信システムがさらされてしまうことがわかる。さらに、このシステムでは、ターミナルが、システムで許可される各カードごとに秘密鍵のレコードを持つ必要がないことがわかる。このシステムの利点は、たとえば、カードが公共の鉄道の通行カードIDであり、ターミナルが約数10万人のユーザのそれぞれについてレコードを持つ必要があるときによく理解することができる。したがって、本発明によればこの欠点を回避することができる。
【００１５】
他の実施例では、カードはステップ230でチャレンジ応答を生成する際に、値ksig=f1(χ, tC, m)を計算することができる。ここで、ｍは、カードによって生成されるメッセージである。次いで、カードはチャレンジ応答ksigをメッセージと連結し、これをターミナルに送信する。この例では、カードが認証されると共に、カードによって生成されたメッセージが認証される。
【００１６】
さらに他の実施の形態では、カードを認証することができると共に、カードが暗号化メッセージを送信することができる。この例では、カードは、そのチャレンジ応答値kenc=f1(χ, ss)を計算し、この値を鍵として使用し、たとえばDESやDESXをE=EKenc(m)になるように使用してメッセージｍの暗号化値を計算する。この例では、カードは、暗号化メッセージを用いて暗黙的に認証される。これは、たとえば、カードがP.I.Nをターミナルに送り返すときに有用である。
【００１７】
他の実施の形態では、システムは、ｔの１つの値を使用するのではなく、ｔの多くの値、すなわちtiを使用しているため、多くの共通秘密ss(ti)を生成することができる。この例では、カードは、図２のステップ226に示すようにターミナルが適切なtiを抽出してカードの共通秘密を計算できるように、カードの証明書と共にインデックスｉを送信する。
【００１８】
上記の例では、共通秘密ss=tCは楕円曲線インプリメンテーション用の値であった。有限体インプリメンテーションの場合、ss=CTとして共通秘密を計算することができる。さらに、共通秘密のより一般化された形態は、暗号化関数f1(t, C)を使用してターミナル専用鍵ｔの値とカード公開鍵Ｃの値を組み合わせる関数である。
【００１９】
本発明の実施例を特定の用途に関し説明したが、当業者には、添付した特許請求の範囲に記載されている本発明の趣旨から逸脱せずに各種変更が想到されよう。一般に、本発明は、商品およびサービスに対する認証されたアクセスが必要であるか、あるいは入場を統制する必要のある状況に適用することができる。
【００２０】
本明細書で使用している用語および表現は説明のために使用されており、制限のために使用されているわけではなく、このような用語および表現を使用するにあたって、図示および説明した特徴の均等物またはその一部を除外することは意図されておらず、本発明の請求の範囲内で各種変更が可能であることが認識されている。
【図面の簡単な説明】
【図１】  通信システムの概略図である。
【図２】  本発明による検証プロトコルを示すフローチャートである。
【図１】
0004564167.tif 000002
【図２】
0004564167.tif 000003