(57)【特許請求の範囲】
【請求項１】
非接触の通信電子デバイスと作動範囲を有する非接触の通信電子リーダとの間で非接触の安全な通信を確立するための方法であって、
前記デバイス及びリーダは各々、少なくとも１つの乱数生成器と、対称暗号化アルゴリズムＳＹＭと、非対称暗号化アルゴリズムＡＳＹＭと、数学関数Ｆとを備え、
前記デバイスは、暗号証明書Ｃｅｒｔと、公開鍵ｎと、秘密鍵Ｋｐｒｉｖとに関連付けられ、
前記方法は、前記デバイスが前記非接触リーダの作動範囲に入った際、かつ安全な対話を開始する前に、少なくとも下記の、
前記デバイスが、第１の乱数ｋを生成し、前記デバイスの識別情報を前記リーダに知らせる、関与段階と、
前記リーダが、前記公開鍵ｎを取得し、続いて、第２の乱数ｒを生成し、前記アルゴリズムＡＳＹＭ及び前記公開鍵ｎを使用して前記第２の乱数ｒを暗号化し、暗号化した前記第２の乱数ｒを前記デバイスに送信する、課題段階と、
前記デバイスが、前記第２の乱数ｒを前記アルゴリズムＡＳＹＭ及び前記秘密鍵Ｋｐｒｉｖで復号し、前記第１の乱数ｋを前記アルゴリズムＳＹＭ及び前記第２の乱数ｒを鍵として暗号化し、この暗号化されたデータを前記リーダに送信し、前記第１の乱数ｋ及び第２の乱数ｒに前記関数Ｆを適用することによってセッション鍵を生成する、応答段階と、
前記リーダが、前記アルゴリズムＳＹＭ及び前記第２の乱数ｒを鍵として、受信した前記第１の乱数ｋを復号し、前記第１の乱数ｋ及び第２の乱数ｒに前記関数Ｆを適用することによってセッション鍵を生成する、照合段階とを備えることを特徴とする方法。
【請求項２】
前記鍵ｎは、事前の段階で、前記リーダに記憶されることを特徴とする請求項１に記載の方法。
【請求項３】
前記リーダは、前記公開鍵ｎを第３の通信電子デバイスから取得することを特徴とする請求項１に記載の方法。
【請求項４】
前記方法はさらに、リーダの側で、前記リーダが前記証明書Ｃｅｒｔを取得し、前記アルゴリズムＡＳＹＭによって前記公開鍵ｎとの有効性を確認する、前記デバイスの識別情報の照合を含む段階を備えることを特徴とする請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記証明書Ｃｅｒｔは、事前の段階で、前記リーダに記録されることを特徴とする請求項４に記載の方法。
【請求項６】
前記リーダは、前記証明書Ｃｅｒｔを前記関与の際に前記電子デバイスから取得することを特徴とする請求項４に記載の方法。
【請求項７】
前記リーダは前記証明書Ｃｅｒｔを第３の電子デバイスから取得することを特徴とする請求項４に記載の方法。
【請求項８】
公開鍵を伴う前記アルゴリズムＡＳＹＭは、「Rivest Shamir Adleman」を意味するＲＳＡであることを特徴とする請求項１乃至７のいずれかに記載の方法。
【請求項９】
公開鍵を伴う前記アルゴリズムＡＳＹＭは、「RSA for paranoid」であることを特徴とする請求項１乃至７のいずれかに記載の方法。
【請求項１０】
公開鍵を伴う前記アルゴリズムＡＳＹＭは、楕円曲線に基づくことを特徴とする請求項１乃至７のいずれかに記載の方法。
【請求項１１】
前記対称暗号化アルゴリズムは、「Data Encryption Standard」を意味するＤＥＳであることを特徴とする請求項１乃至１０のいずれかに記載の方法。
【請求項１２】
前記対称暗号化アルゴリズムは、トリプルＤＥＳであることを特徴とする請求項１乃至１０のいずれかに記載の方法。
【請求項１３】
前記対称暗号化アルゴリズムは、「Advanced Encryption Standard」を意味するＡＥＳであることを特徴とする請求項１乃至１０のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、事前に情報共有することなく安全な通信を確立するための方法に関する。
特に、本発明は、認証に加えて、セッション鍵の生成と交換に係る。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
通信電子デバイス間でのやりとりの恒常的な増加は、セキュリティの必要性を常に増大させる。この必要性は、特にＲＦＩＤ（Radio Frequency IDentification: 無線ICタグ）型の非接触通信分野に存在する。
従来の解決法は、通常、あらゆる通信からのアップストリームの様々な当事者間の共有の秘密の情報に基づく。例えばチップカード型の、いくつかの電子デバイスによって先述の共有情報の機密性を確保することが可能であるが、コンピュータ及びリーダ型の端末のデバイスにおいて、同様の機密性を保証することはより複雑である。従来の解決法は従って、セキュリティモジュールの無いデバイスにセキュリティモジュールを搭載して、セキュリティを保持している。
【課題を解決するための手段】
【０００３】
本発明は、この種の共有情報を必要としない安全な通信と認証を確立するための方法を提供する。
本明細書中では、「RSA for paranoid」として知られる特定の非対称アルゴリズムに関する言及が多くなされる。有名なＲＳＡ（Rivest Shamir Adleman）アルゴリズムのこの変形は、パラメータｐとｑを操作し、ｐはｑよりも著しく小さく、パラメータｎは常に積（ｐ．ｑ）と等しい。ｐの大きさは、バイトで示され、| ｐ | =ｌｅｎｇｔｈ＿ｐである。
この操作の剰余は、いわゆる標準ＲＳＡで実行されるものと一致する。
【０００４】
本発明は、まず、第１の通信電子デバイスであるデバイスと第２の通信電子デバイスであるリーダとの間で安全な通信を確立するための方法に関し、デバイス及びリーダは各々、少なくとも１つの乱数生成器と、対称暗号化アルゴリズムＳＹＭと、非対称暗号化アルゴリズムＡＳＹＭと、数学関数Ｆとを備え、デバイスは、暗号証明書Ｃｅｒｔと、公開鍵ｎと、秘密鍵Ｋｐｒｉｖとに関連付けられている。
当該方法は、少なくとも、デバイスが、第１の乱数ｋを生成し、デバイスの識別情報をリーダに知らせる、関与段階と、リーダが、公開鍵ｎを取得し、続いて、第２の乱数ｒを生成し、アルゴリズムＡＳＹＭ及び公開鍵ｎを使用して第２の乱数ｒを暗号化し、暗号化した第２の乱数ｒをデバイスに送信する、課題段階と、デバイスが、乱数ｒをアルゴリズムＡＳＹＭ及び秘密鍵Ｋｐｒｉｖで復号し、乱数ｋをアルゴリズムＳＹＭ及び乱数ｒを鍵として暗号化し、この暗号化されたデータをリーダに送信し、乱数ｋ及びｒに関数Ｆを適用することによってセッション鍵を生成する、応答段階と、リーダが、アルゴリズムＳＹＭ及び乱数ｒを鍵として、受信した乱数ｋを復号し、乱数ｋ及びｒに関数Ｆを適用することによってセッション鍵を生成する、照合段階とを備える。
【０００５】
一実施形態において、鍵ｎは、事前の段階でリーダに記録される。他の実施形態によれば、リーダは公開鍵ｎを第３の通信電子デバイスから取得する。
【０００６】
特定の実施形態において、当該方法はさらに、リーダの側で、リーダが証明書Ｃｅｒｔを受信し、アルゴリズムＡＳＹＭによって公開鍵ｎで証明書の有効性を確認する、デバイスの識別情報の照合段階を備える。この証明書は事前の段階でリーダに記憶されるか、関与の間に電子デバイスから取得されるか、第３の電子デバイスから取得される。
【０００７】
一実施形態において、アルゴリズムＡＳＹＭ及び公開鍵はＲＳＡ（Rivest Shamir Adleman）、又は、「RSA for paranoid」、又は、更に楕円曲線に基づいたアルゴリズムであってもよい。
【０００８】
一実施形態において、対称暗号化アルゴリズムはＤＥＳ（Data Encryption Standard）、又は、トリプルＤＥＳ、又は、ＡＥＳ（Advanced Encryption Standard）であってもよい。
【発明を実施するための形態】
【０００９】
本発明の他の特徴点及び有利な効果は、実施形態であり非制限的な下記の記載によってより明確になるであろう。
輸送アプリケーションにおける非接触チップカードと非接触カードリーダ間の非接触通信の特定の状況、及び、特にＲＦＩＤ型通信での実行について分析する。この特定の状況に関する制約は、特にトランザクションの持続時間に関連する。トランザクションの持続時間は、「タップアンドゴー」の原理に従うために、１５０ミリ秒を超えてはならない。「タップアンドゴー」とは、非接触トランザクションは、カードをリーダの前でさっとかざす動きによって生じることを示す原則である。その根本的なコンセプトはユーザを待たせないことである。
【００１０】
この主要な制限に合致するために、安全な通信を確立するために充てられるトランザクションの一部は、７０ミリ秒を超えてはならない。
一方、トランザクションの非常に短い持続時間は、他の用途に比べてより単純なセッション鍵を容認する。確かに、１５０ミリ秒のセッションを想定し、数分以内に壊れる鍵は、最小限の使用コンテキストで十分なレベルのセキュリティを保証する。
【００１１】
この特定の実行方法の別の制限は、現在までリーダが含んでいたセキュリティモジュールを除去ことによるリーダのコストの削減である。この除去によって、チップカードと安全な通信を確立することのできる鍵を安全に格納することは不可能になる。
本発明の実施は、これらの全ての制限を満たし、高レベルのセキュリティを保証する。
【００１２】
カードは、秘密鍵ペア（ｐ，ｑ＝ｅ’１ｍｏｄ（ｐ−１））／公開鍵（ｅ，ｎ）及びこの鍵ペアに関する信頼性の証明書に加えて、「RSA for paranoid」として知られる非対称アルゴリズムの特定のアプリケーション、乱数生成器、対称アルゴリズムＤＥＳのアプリケーションを含む。
リーダはまた、対称アルゴリズムＤＥＳのアプリケーション、乱数生成器、「RSA for paranoid」として知られる非対称アルゴリズムのアプリケーションを含む。
【００１３】
カードが非接触リーダの作動範囲に入ると、カードは、使用される対称暗号化アルゴリズムに応じて、ビット数で長さｋとして示される数ｋをオンボード乱数生成器が生成する、関与段階として知られる段階を開始する。本発明のセキュリティパラメータは、対称暗号化アルゴリズムの選択によるが、鍵とブロックの大きさの間の最小値である。使用される暗号化アルゴリズムがＤＥＳである場合は、このセキュリティパラメータは鍵の大きさであり、ｌｅｎｇｔｈ＿ｋ＝５６ｂｉｔｓとなる。
【００１４】
カードは、ｋを使用して、ｋの関与と呼ばれるものを生成する。この関与は、数ｋのどのような後続修正も検出可能にするために、計算において数ｋを使用することを含む。アルゴリズムのこの時点において、ｋをプレーンテキストで送信すること、ｋを容易に取得できることは、セキュリティ上の理由から望ましくない。したがって、ｋを公開することなくｋの情報を証明する関与を作成することが強く推奨される。数ｋの関与の例は、対称アルゴリズムを使用して所定の値を暗号化する際の、鍵としての使用である。記載された実施形態では、関与は、ゼロ値のＲＳＡアルゴリズムを使用する暗号化と鍵としての値ｋとからなる。
カードは、公開鍵（ｎ）と公開鍵（ｎ）の信頼性の証明書に加えて、この関与をリーダに送信する。
これらのデータを受信すると、リーダは課題段階として知られる段階を開始する。
【００１５】
本発明の一実施形態において、リーダの乱数生成器は値ｒを生成する。本方法のセキュリティを強化するために、セキュリティ値を乱数ｒと関連付けることが可能である。この値は、数個の値から成ってもよい。
記載された実施形態において、オンボード乱数生成器は、数ｚ＝ｔ｜｜ｕ｜｜ｒを形成するために、乱数ｒ、ｕを生成する。ここで、ｔは一定値又はｕ及びｒに基づいて計算された値であり、ｚの大きさはビット数でｐの大きさと等しく、ｚ＜ｐである。
暗号化アルゴリズムRSA for paranoidの選択による本発明のセキュリティパラメータは、ｌｅｎｇｔｈ＿ｐで示される第１ファクタｐの大きさ、ｌｅｎｇｔｈ＿ｎで示されるＲＳＡモジュールｎの大きさ、乱数値ｕ｜｜ｒ、例えば、ｌｅｎｇｔｈ＿ｕ＋ｌｅｎｇｔｈ＿ｒの大きさ、及びｌｅｎｇｔｈ＿ｔで示されるｔの大きさである。セキュリティパラメータの大きさは、必ず不等式ｌｅｎｇｔｈ＿ｋ  ≦  ｌｅｎｇｔｈ＿ｕ＋ｌｅｎｇｔｈ＿ｒ  ≦  ｌｅｎｇｔｈ＿ｐを証明しなければならない。
【００１６】
乱数ｒは、カードによって生成される数ｋと同じ大きさである。例えば、｜ｒ｜＝｜ｋ｜＝ｌｅｎｇｔｈ＿ｐである。
乱数ｕの大きさはビットで、（ｌｅｎｇｔｈ＿ｐ−ｌｅｎｇｔｈ＿ｔ−ｌｅｎｇｔｈ＿ｋ）である。長さｌｅｎｇｔｈ＿ｔビットのパラメータｔの値は、値０又は別の所定の一定値で初期化される。あるいは、ｔの値は、ｕ及びｒの関数である。
値ｚは、リーダによって、ＲＳＡに必要な、周知の公開パラメータｅ、カードの公開鍵ｎ、及びプライマリ―冪剰余−を用いて暗号化される。この暗号化の結果は、カードに送信される。
【００１７】
これらのデータを受信すると、カードは、応答段階と呼ばれる段階を開始する。カードは、ＲＳＡに必要な、自身の秘密鍵（ｄ、ｐ）とプライマリ―冪剰余―を用いて、ｚを復号する。カードは、乱数ｒを取り出すために、ｚの正しいフォーマットを確認し、セキュリティ値を認識する。簡単な実施形態では、ｔは、すぐに認識可能なフォーマットを確保するために、例えば、ゼロの連続の形式を採用してもよい。しかし、さらに高度な方法では、ｔは、例えば、これらのデータを細かく切ることによって、送信された他のデータの整合性を保証するデータを含んでもよい。
これ以降、カードは、対称アルゴリズムＤＥＳを使用して、本方法の第１段階で得た乱数ｋを暗号化し、リーダによって送信されたメッセージｚを復号して得られた乱数ｒを鍵として使用する。この暗号化されたデータはリーダに送信される。カードは、値ｒとｋとの間で、排他的ＯＲを実行することによって、セッション鍵Ｋセッションを計算する。
【００１８】
排他的ＯＲを利用することによって、セッション鍵の大きさが一定に保たれる。本発明によれば、値ｒとｋを計算する他のどのような数学的操作が使用されてもよい。リーダは、続いて、本発明の方法による最終の第４段階、照合段階に入る。この段階の間、リーダは、カードから受信したデータを、対称アルゴリズムＤＥＳを使用して、値ｒを鍵として復号する。こうして、リーダは値ｋを得る。
これ以降、値ｒとｋとの間で排他的ＯＲを実行することによって、セッション鍵Ｋセッションを同様に生成することができる。
この特定の実施形態において、同様に、この照合段階において、リーダは信頼性証明書の有効性を公開鍵ｎを用いて確認する。この段階によって、カードの信頼性を保証することができる。
最後に、記載された実施形態によれば、リーダは第１段階でカードによって提供された関与が確かに有効かを確認する。この関与は、ｋを鍵として所定の定数を暗号化したデータである。これによりｋの値は確かに関与段階で得られたと保証できる。
【００１９】
これ以降、システムの２つの当事者、カードとリーダは、共通の秘密、Ｋセッションを共有し、従って、安全な対話を開始できる。
アルゴリズムの選択と同様に、検証されるパラメータの大きさは、この実施形態の特定の制約に関連する。本発明は、好ましくは、他のあらゆる対称アルゴリズム、例えばトリプルＤＥＳ、ＡＥＳ等、あるいは、他のあらゆる非対称アルゴリズム、特に楕円曲線に基づく全てのアルゴリズムに適合する。
【００２０】
別の実施形態において、カードが証明書と公開鍵を同時に含まないようにすることも可能である。例えば、所定の信頼性証明書のセットは、リーダに格納されてもよい。したがって、リーダは、照合段階で、関与段階で受信した公開鍵が、確かに格納されている証明書の内の１つと対応することを確認する。同様に、逆のパターンも想定できる。つまり、公開鍵のセットがあらかじめリーダに記憶されてもよい。この特定の場合、課題段階の始めに、リーダは、関与段階で得られた証明書が確かに記憶された鍵と対応するかどうか確認し、この鍵をその後の操作に使用しなければならない。
最後に、ｎの下位ビットと、カード及びリーダに知られている擬似乱数生成器ＰＲＮＧ（ＳＮ）とに基づいてｎが再現されるように、ｎを生成することが考えられる。この場合、ｎ＝ＰＲＮＧ（ＳＮ）｜｜ｎＬが得られる。ｎＬはｎの下位ビットを、ＳＮはカードに特定のシリアル番号を示す。メッセージ回復と共にｎの型シグネチャのｎの証明書を取得することによって、カードは、ｎの証明書に連結されているＳＮを送信し、ｎの計算と照合のために必要かつ適切な要素をリーダに提供する。
【００２１】
上述の記載中で用いられる「カード」又は「デバイス」という語は、機能を示すことに留意されたい。実際には、チップカードが「リーダ」としての機能を実行し、リーダが「カード」の機能を備えるアプリケーションも考えられる。
この実施形態は、例えば、リーダがセキュリティモジュールを備え、暗号化鍵を格納し、セキュリティ計算を実行できる場合に実現されてもよい。さらに、必要な機能を持たないカード、又は、その機能は使用されない。
本発明の好適な実施形態は、各々が２組の機能を実行するシステムの当事者からなる。そのため、本発明中に記載された方法は両通信方向で並行して実行される。交差した通信を確立する方法のこの特定の場合について述べる。実際、用いられる各方法は、本発明の段階を繰り返す。したがって、各方法が用いられる際に、もし各当事者が全ての機能を持っていても、（当該方法の「カード」機能を有する）当事者のうちの１つが、自身の各証明書と暗号化鍵を利用する。
【００２２】
本発明によれば、さらに分散した解決法も考えられる。例えば、信頼性の証明書又は公開鍵は、例えばサーバのような、遠隔デバイス上で入手可能であってもよい。この場合、リーダは、カードによって提供される情報を補完する情報を、この遠隔デバイスから取得しなければならない。カードが公開鍵を提供していれば、対応する証明書が入手されなければならず、カードが信頼性の証明書を提供していれば、リーダは、対応する公開鍵を入手しなければならない。