説明

事前の情報共有なしに安全な通信を確立する方法

2つのデバイスのうちの1つに事前に記録された情報を必要とすることなしに、2つの通信電子デバイスの間のセッション鍵を生成し、デバイスのうちの1つの認証を可能にするための方法である。この方法は、対称アルゴリズムと非対称アルゴリズムの緊密な連携を利用する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、事前に情報共有することなく安全な通信を確立するための方法に関する。
特に、本発明は、認証に加えて、セッション鍵の生成と交換に係る。
【発明の概要】
【発明が解決しようとする課題】
【0002】
通信電子デバイス間でのやりとりの恒常的な増加は、セキュリティの必要性を常に増大させる。この必要性は、特にRFID(Radio Frequency IDentification: 無線ICタグ)型の非接触通信分野に存在する。
従来の解決法は、通常、あらゆる通信からのアップストリームの様々な当事者間の共有の秘密の情報に基づく。例えばチップカード型の、いくつかの電子デバイスによって先述の共有情報の機密性を確保することが可能であるが、コンピュータ及びリーダ型の端末のデバイスにおいて、同様の機密性を保証することはより複雑である。従来の解決法は従って、セキュリティモジュールの無いデバイスにセキュリティモジュールを搭載して、セキュリティを保持している。
【課題を解決するための手段】
【0003】
本発明は、この種の共有情報を必要としない安全な通信と認証を確立するための方法を提供する。
本明細書中では、「RSA for paranoid」として知られる特定の非対称アルゴリズムに関する言及が多くなされる。有名なRSA(Rivest Shamir Adleman)アルゴリズムのこの変形は、パラメータpとqを操作し、pはqよりも著しく小さく、パラメータnは常に積(p.q)と等しい。pの大きさは、バイトで示され、| p | =length_pである。
この操作の剰余は、いわゆる標準RSAで実行されるものと一致する。
【0004】
本発明は、まず、第1の通信電子デバイスであるデバイスと第2の通信電子デバイスであるリーダとの間で安全な通信を確立するための方法に関し、デバイス及びリーダは各々、少なくとも1つの乱数生成器と、対称暗号化アルゴリズムSYMと、非対称暗号化アルゴリズムASYMと、数学関数Fとを備え、デバイスは、暗号証明書Certと、公開鍵nと、秘密鍵Kprivとに関連付けられている。
当該方法は、少なくとも、デバイスが、第1の乱数kを生成し、デバイスの識別情報をリーダに知らせる、関与段階と、リーダが、公開鍵nを取得し、続いて、第2の乱数rを生成し、アルゴリズムASYM及び公開鍵nを使用して第2の乱数rを暗号化し、暗号化した第2の乱数rをデバイスに送信する、課題段階と、デバイスが、乱数rをアルゴリズムASYM及び秘密鍵Kprivで復号し、乱数kをアルゴリズムSYM及び乱数rを鍵として暗号化し、この暗号化されたデータをリーダに送信し、乱数k及びrに関数Fを適用することによってセッション鍵を生成する、応答段階と、リーダが、アルゴリズムSYM及び乱数rを鍵として、受信した乱数kを復号し、乱数k及びrに関数Fを適用することによってセッション鍵を生成する、照合段階とを備える。
【0005】
一実施形態において、鍵nは、事前の段階でリーダに記録される。他の実施形態によれば、リーダは公開鍵nを第3の通信電子デバイスから取得する。
【0006】
特定の実施形態において、当該方法はさらに、リーダの側で、リーダが証明書Certを受信し、アルゴリズムASYMによって公開鍵nで証明書の有効性を確認する、デバイスの識別情報の照合段階を備える。この証明書は事前の段階でリーダに記憶されるか、関与の間に電子デバイスから取得されるか、第3の電子デバイスから取得される。
【0007】
一実施形態において、アルゴリズムASYM及び公開鍵はRSA(Rivest Shamir Adleman)、又は、「RSA for paranoid」、又は、更に楕円曲線に基づいたアルゴリズムであってもよい。
【0008】
一実施形態において、対称暗号化アルゴリズムはDES(Data Encryption Standard)、又は、トリプルDES、又は、AES(Advanced Encryption Standard)であってもよい。
【発明を実施するための形態】
【0009】
本発明の他の特徴点及び有利な効果は、実施形態であり非制限的な下記の記載によってより明確になるであろう。
輸送アプリケーションにおける非接触チップカードと非接触カードリーダ間の非接触通信の特定の状況、及び、特にRFID型通信での実行について分析する。この特定の状況に関する制約は、特にトランザクションの持続時間に関連する。トランザクションの持続時間は、「タップアンドゴー」の原理に従うために、150ミリ秒を超えてはならない。「タップアンドゴー」とは、非接触トランザクションは、カードをリーダの前でさっとかざす動きによって生じることを示す原則である。その根本的なコンセプトはユーザを待たせないことである。
【0010】
この主要な制限に合致するために、安全な通信を確立するために充てられるトランザクションの一部は、70ミリ秒を超えてはならない。
一方、トランザクションの非常に短い持続時間は、他の用途に比べてより単純なセッション鍵を容認する。確かに、150ミリ秒のセッションを想定し、数分以内に壊れる鍵は、最小限の使用コンテキストで十分なレベルのセキュリティを保証する。
【0011】
この特定の実行方法の別の制限は、現在までリーダが含んでいたセキュリティモジュールを除去ことによるリーダのコストの削減である。この除去によって、チップカードと安全な通信を確立することのできる鍵を安全に格納することは不可能になる。
本発明の実施は、これらの全ての制限を満たし、高レベルのセキュリティを保証する。
【0012】
カードは、秘密鍵ペア(p,q=e’1mod(p−1))/公開鍵(e,n)及びこの鍵ペアに関する信頼性の証明書に加えて、「RSA for paranoid」として知られる非対称アルゴリズムの特定のアプリケーション、乱数生成器、対称アルゴリズムDESのアプリケーションを含む。
リーダはまた、対称アルゴリズムDESのアプリケーション、乱数生成器、「RSA for paranoid」として知られる非対称アルゴリズムのアプリケーションを含む。
【0013】
カードが非接触リーダの作動範囲に入ると、カードは、使用される対称暗号化アルゴリズムに応じて、ビット数で長さkとして示される数kをオンボード乱数生成器が生成する、関与段階として知られる段階を開始する。本発明のセキュリティパラメータは、対称暗号化アルゴリズムの選択によるが、鍵とブロックの大きさの間の最小値である。使用される暗号化アルゴリズムがDESである場合は、このセキュリティパラメータは鍵の大きさであり、length_k=56bitsとなる。
【0014】
カードは、kを使用して、kの関与と呼ばれるものを生成する。この関与は、数kのどのような後続修正も検出可能にするために、計算において数kを使用することを含む。アルゴリズムのこの時点において、kをプレーンテキストで送信すること、kを容易に取得できることは、セキュリティ上の理由から望ましくない。したがって、kを公開することなくkの情報を証明する関与を作成することが強く推奨される。数kの関与の例は、対称アルゴリズムを使用して所定の値を暗号化する際の、鍵としての使用である。記載された実施形態では、関与は、ゼロ値のRSAアルゴリズムを使用する暗号化と鍵としての値kとからなる。
カードは、公開鍵(n)と公開鍵(n)の信頼性の証明書に加えて、この関与をリーダに送信する。
これらのデータを受信すると、リーダは課題段階として知られる段階を開始する。
【0015】
本発明の一実施形態において、リーダの乱数生成器は値rを生成する。本方法のセキュリティを強化するために、セキュリティ値を乱数rと関連付けることが可能である。この値は、数個の値から成ってもよい。
記載された実施形態において、オンボード乱数生成器は、数z=t||u||rを形成するために、乱数r、uを生成する。ここで、tは一定値又はu及びrに基づいて計算された値であり、zの大きさはビット数でpの大きさと等しく、z<pである。
暗号化アルゴリズムRSA for paranoidの選択による本発明のセキュリティパラメータは、length_pで示される第1ファクタpの大きさ、length_nで示されるRSAモジュールnの大きさ、乱数値u||r、例えば、length_u+length_rの大きさ、及びlength_tで示されるtの大きさである。セキュリティパラメータの大きさは、必ず不等式length_k ≦ length_u+length_r ≦ length_pを証明しなければならない。
【0016】
乱数rは、カードによって生成される数kと同じ大きさである。例えば、|r|=|k|=length_pである。
乱数uの大きさはビットで、(length_p−length_t−length_k)である。長さlength_tビットのパラメータtの値は、値0又は別の所定の一定値で初期化される。あるいは、tの値は、u及びrの関数である。
値zは、リーダによって、RSAに必要な、周知の公開パラメータe、カードの公開鍵n、及びプライマリ―冪剰余−を用いて暗号化される。この暗号化の結果は、カードに送信される。
【0017】
これらのデータを受信すると、カードは、応答段階と呼ばれる段階を開始する。カードは、RSAに必要な、自身の秘密鍵(d、p)とプライマリ―冪剰余―を用いて、zを復号する。カードは、乱数rを取り出すために、zの正しいフォーマットを確認し、セキュリティ値を認識する。簡単な実施形態では、tは、すぐに認識可能なフォーマットを確保するために、例えば、ゼロの連続の形式を採用してもよい。しかし、さらに高度な方法では、tは、例えば、これらのデータを細かく切ることによって、送信された他のデータの整合性を保証するデータを含んでもよい。
これ以降、カードは、対称アルゴリズムDESを使用して、本方法の第1段階で得た乱数kを暗号化し、リーダによって送信されたメッセージzを復号して得られた乱数rを鍵として使用する。この暗号化されたデータはリーダに送信される。カードは、値rとkとの間で、排他的ORを実行することによって、セッション鍵Kセッションを計算する。
【0018】
排他的ORを利用することによって、セッション鍵の大きさが一定に保たれる。本発明によれば、値rとkを計算する他のどのような数学的操作が使用されてもよい。リーダは、続いて、本発明の方法による最終の第4段階、照合段階に入る。この段階の間、リーダは、カードから受信したデータを、対称アルゴリズムDESを使用して、値rを鍵として復号する。こうして、リーダは値kを得る。
これ以降、値rとkとの間で排他的ORを実行することによって、セッション鍵Kセッションを同様に生成することができる。
この特定の実施形態において、同様に、この照合段階において、リーダは信頼性証明書の有効性を公開鍵nを用いて確認する。この段階によって、カードの信頼性を保証することができる。
最後に、記載された実施形態によれば、リーダは第1段階でカードによって提供された関与が確かに有効かを確認する。この関与は、kを鍵として所定の定数を暗号化したデータである。これによりkの値は確かに関与段階で得られたと保証できる。
【0019】
これ以降、システムの2つの当事者、カードとリーダは、共通の秘密、Kセッションを共有し、従って、安全な対話を開始できる。
アルゴリズムの選択と同様に、検証されるパラメータの大きさは、この実施形態の特定の制約に関連する。本発明は、好ましくは、他のあらゆる対称アルゴリズム、例えばトリプルDES、AES等、あるいは、他のあらゆる非対称アルゴリズム、特に楕円曲線に基づく全てのアルゴリズムに適合する。
【0020】
別の実施形態において、カードが証明書と公開鍵を同時に含まないようにすることも可能である。例えば、所定の信頼性証明書のセットは、リーダに格納されてもよい。したがって、リーダは、照合段階で、関与段階で受信した公開鍵が、確かに格納されている証明書の内の1つと対応することを確認する。同様に、逆のパターンも想定できる。つまり、公開鍵のセットがあらかじめリーダに記憶されてもよい。この特定の場合、課題段階の始めに、リーダは、関与段階で得られた証明書が確かに記憶された鍵と対応するかどうか確認し、この鍵をその後の操作に使用しなければならない。
最後に、nの下位ビットと、カード及びリーダに知られている擬似乱数生成器PRNG(SN)とに基づいてnが再現されるように、nを生成することが考えられる。この場合、n=PRNG(SN)||nが得られる。nはnの下位ビットを、SNはカードに特定のシリアル番号を示す。メッセージ回復と共にnの型シグネチャのnの証明書を取得することによって、カードは、nの証明書に連結されているSNを送信し、nの計算と照合のために必要かつ適切な要素をリーダに提供する。
【0021】
上述の記載中で用いられる「カード」又は「デバイス」という語は、機能を示すことに留意されたい。実際には、チップカードが「リーダ」としての機能を実行し、リーダが「カード」の機能を備えるアプリケーションも考えられる。
この実施形態は、例えば、リーダがセキュリティモジュールを備え、暗号化鍵を格納し、セキュリティ計算を実行できる場合に実現されてもよい。さらに、必要な機能を持たないカード、又は、その機能は使用されない。
本発明の好適な実施形態は、各々が2組の機能を実行するシステムの当事者からなる。そのため、本発明中に記載された方法は両通信方向で並行して実行される。交差した通信を確立する方法のこの特定の場合について述べる。実際、用いられる各方法は、本発明の段階を繰り返す。したがって、各方法が用いられる際に、もし各当事者が全ての機能を持っていても、(当該方法の「カード」機能を有する)当事者のうちの1つが、自身の各証明書と暗号化鍵を利用する。
【0022】
本発明によれば、さらに分散した解決法も考えられる。例えば、信頼性の証明書又は公開鍵は、例えばサーバのような、遠隔デバイス上で入手可能であってもよい。この場合、リーダは、カードによって提供される情報を補完する情報を、この遠隔デバイスから取得しなければならない。カードが公開鍵を提供していれば、対応する証明書が入手されなければならず、カードが信頼性の証明書を提供していれば、リーダは、対応する公開鍵を入手しなければならない。

【特許請求の範囲】
【請求項1】
第1の通信電子デバイスであるデバイスと第2の通信電子デバイスであるリーダとの間で安全な通信を確立するための方法であって、
前記デバイス及びリーダは各々、少なくとも1つの乱数生成器と、対称暗号化アルゴリズムSYMと、非対称暗号化アルゴリズムASYMと、数学関数Fとを備え、
前記デバイスは、暗号証明書Certと、公開鍵nと、秘密鍵Kprivとに関連付けられ、
前記方法は、少なくとも、
前記デバイスが、第1の乱数kを生成し、前記デバイスの識別情報を前記リーダに知らせる、関与段階と、
前記リーダが、前記公開鍵nを取得し、続いて、第2の乱数rを生成し、前記アルゴリズムASYM及び前記公開鍵nを使用して前記第2の乱数rを暗号化し、暗号化した前記第2の乱数rを前記デバイスに送信する、課題段階と、
前記デバイスが、前記乱数rを前記アルゴリズムASYM及び前記秘密鍵Kprivで復号し、前記乱数kを前記アルゴリズムSYM及び乱数rを鍵として暗号化し、この暗号化されたデータを前記リーダに送信し、前記乱数k及びrに前記関数Fを適用することによってセッション鍵を生成する、応答段階と、
前記リーダが、前記アルゴリズムSYM及び前記乱数rを鍵として、受信した前記乱数kを復号し、前記乱数k及びrに前記関数Fを適用することによってセッション鍵を生成する、照合段階とを備えることを特徴とする方法。
【請求項2】
前記鍵nは、事前の段階で、前記リーダに記憶されることを特徴とする請求項1に記載の方法。
【請求項3】
前記リーダは、前記公開鍵nを第3の通信電子デバイスから取得することを特徴とする請求項1に記載の方法。
【請求項4】
前記方法はさらに、リーダの側で、前記リーダが前記証明書Certを取得し、前記アルゴリズムASYMによって前記公開鍵nとの有効性を確認する、前記デバイスの識別情報の照合を含む段階を備えることを特徴とする請求項1乃至3のいずれかに記載の方法。
【請求項5】
前記証明書Certは、事前の段階で、前記リーダに記録されることを特徴とする請求項4に記載の方法。
【請求項6】
前記リーダは、前記証明書Certを前記関与の際に前記電子デバイスから取得することを特徴とする請求項4に記載の方法。
【請求項7】
前記リーダは前記証明書Certを前記第3の電子デバイスから取得することを特徴とする請求項4に記載の方法。
【請求項8】
公開鍵を伴う前記アルゴリズムASYMは、「Rivest Shamir Adleman」を意味するRSAであることを特徴とする請求項1乃至7のいずれかに記載の方法。
【請求項9】
公開鍵を伴う前記アルゴリズムASYMは、「RSA for paranoid」であることを特徴とする請求項1乃至7のいずれかに記載の方法。
【請求項10】
公開鍵を伴う前記アルゴリズムASYMは、楕円曲線に基づくことを特徴とする請求項1乃至7のいずれかに記載の方法。
【請求項11】
前記対称暗号化アルゴリズムは、「Data Encryption Standard」を意味するDESであることを特徴とする請求項1乃至10のいずれかに記載の方法。
【請求項12】
前記対称暗号化アルゴリズムは、トリプルDESであることを特徴とする請求項1乃至10のいずれかに記載の方法。
【請求項13】
前記対称暗号化アルゴリズムは、「Advanced Encryption Standard」を意味するAESであることを特徴とする請求項1乃至10のいずれかに記載の方法。

【公表番号】特表2012−514925(P2012−514925A)
【公表日】平成24年6月28日(2012.6.28)
【国際特許分類】
【出願番号】特願2011−544894(P2011−544894)
【出願日】平成22年1月26日(2010.1.26)
【国際出願番号】PCT/EP2010/050827
【国際公開番号】WO2010/084198
【国際公開日】平成22年7月29日(2010.7.29)
【出願人】(309014746)ジェムアルト エスアー (23)
【Fターム(参考)】