(57)【要約】本発明は、不正行為に対する電子チップの保護用の暗号通信法とチップ装置に関するものである。本方法は、データＥ’＝（ｅ’１，ｅ’２，ｅ’ｎ，ｅ’Ｎ）を出力で提供するために、入力パラメータ（Ｅｍ）の全部もしくは一部を混合（１）することと、有限状態オートマトンをデータＥ’＝（ｅ’１，ｅ’２，ｅ’ｎ，ｅ’Ｎ）に応じて、旧状態から新状態に移行させることで、有限状態オートマトンの状態変化を実行（２）することと、入力引数として少なくとも一つのオートマトンの状態を有する出力関数によって証明書（Ｓ）を計算（３）することとからなる。本チップ装置は、混合手段、有限状態オートマトン、証明書（Ｓ）を計算するための出力手段を備える。
2004531163.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション（２５）と電子チップの間のトランザクションにおける、電子チップ（２３）の不正行為に対する保護用の暗号通信方法であって、電子チップにおいて入力パラメータ（Ｅｍ）から証明書（Ｓ）を計算することからなり、さらに、
−混合関数によって入力パラメータ（Ｅｍ）の全部もしくは一部を混合し（１）、また、混合関数の出力でデータＥ’＝（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）を提供することと、
−有限状態オートマトンを、少なくとも旧状態および一連のビットの値（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）に従った関数に応じて、旧状態から新状態に移行させることで、有限状態オートマトンの状態変化を実行（２）することと、
−入力引数として少なくとも一つのオートマトンの状態を有する出力関数によって、証明書（Ｓ）を計算（３）すること、
からなることを特徴とする、暗号通信方法。
【請求項２】
入力パラメータ（Ｅｍ）のうちの一つが、チップ（２３）の保護されたメモリ領域に保存される秘密キーＫからなることを特徴とする、請求項１に記載の方法。
【請求項３】
第一の入力パラメータ（Ｅｍ）が、チップ（２３）の内部データ（Ｄ）からなることを特徴とする、請求項１に記載の方法。
【請求項４】
第二の入力パラメータ（Ｅｍ）が、チップ（２３）のメモリ領域内のこれらデータ（Ｄ）のアドレスからなることを特徴とする、請求項３に記載の方法。
【請求項５】
入力パラメータ（Ｅｍ）のうちの一つが、チップ（２３）の外部データ（Ｄ’）からなり、本方法の実施に先行してチップ（２３）に提供されることを特徴とする、請求項１に記載の方法。
【請求項６】
入力パラメータ（Ｅｍ）のうちの一つが、チップ（２３）の外部変数（Ｒ）からなり、本方法の実施に先行してチップ（２３）に提供されることを特徴とする、請求項１に記載の方法。
【請求項７】
入力パラメータ（Ｅｍ）のうちの一つが、チップ（２３）の内部変数（Ｒ’）からなり、本方法の実施に先行して外部に提供されることを特徴とする、請求項１に記載の方法。
【請求項８】
変数（Ｒ，Ｒ’）が、無作為に選ばれた値であることを特徴とする、請求項６または請求項７に記載の方法。
【請求項９】
変数（Ｒ，Ｒ’）が、カウンタの値であることを特徴とする、請求項６または請求項７に記載の方法。
【請求項１０】
変数（Ｒ，Ｒ’）が、日付―時刻であることを特徴とする、請求項６または請求項７に記載の方法。
【請求項１１】
混合関数が、入力パラメータ（Ｅｍ）の線形関数であることを特徴とする、請求項１に記載の方法。
【請求項１２】
混合関数が、入力パラメータ（Ｅｍ）の全部もしくは一部のスカラー積を実行することを特徴とする、請求項１１に記載の方法。
【請求項１３】
オートマトンの関数が、入力パラメータ（Ｅｍ）の全部もしくは一部を入力の際に考慮に入れることを特徴とする、請求項１に記載の方法。
【請求項１４】
出力関数が、入力引数としてオートマトンの新状態を有する恒等関数であることを特徴とする、請求項１に記載の方法。
【請求項１５】
出力関数が、入力引数としてオートマトンの新状態を有する丸め関数であることを特徴とする、請求項１に記載の方法。
【請求項１６】
請求項１に記載のアプリケーションによるチップの認証方法であって、アプリケーション（２５）が、電子チップによって計算（２７）される証明書（Ｓ）を、該アプリケーションが電子チップ（２３）と同じように計算（２８）する証明書（Ｓ’）と比較することを特徴とする、チップの認証方法。
【請求項１７】
請求項１に記載のチップによるアプリケーションの認証方法であって、電子チップ（２３）が、電子チップが計算（２７）する証明書（Ｓ）を、アプリケーション（２５）によって同じように計算（２８）される証明書（Ｓ’）と比較することを特徴とする、アプリケーションの認証方法。
【請求項１８】
チップとアプリケーションの間の、秘密キーの交換を目的とする証明書の使用方法であって、証明書が、請求項１から請求項１５のいずれか一つに記載の方法の実施によって得られることを特徴とする、証明書の使用方法。
【請求項１９】
チップとアプリケーションの間の暗号化を目的とする、証明書の使用方法であって、証明書が、請求項１から請求項１５のいずれか一つに記載の方法の実施によって得られることを特徴とする、証明書の使用方法。
【請求項２０】
入力パラメータ（Ｅｍ）の全部もしくは一部の電子署名を目的とする、証明書の使用方法であって、証明書が、請求項１から請求項１５のいずれか一つに記載の入力パラメータ（Ｅｍ）を考慮に入れる方法の実施によって得られることを特徴とする、証明書の使用方法。
【請求項２１】
擬似ランダム・ビット・シーケンスとしての証明書の使用方法であり、証明書が、請求項１から請求項１５のいずれか一つに記載の方法の実施によって得られることを特徴とする、証明書の使用方法。
【請求項２２】
アプリケーション（２５）と電子チップの間のトランザクションにおける、電子チップの不正行為に対する保護用の暗号通信法の実施を可能にする、電子チップ（２３）装置（２４）であって、電子チップにおいて入力パラメータ（Ｅｍ）から証明書（Ｓ）を計算する（２７）ことからなり、
−混合の結果であるデータＥ’＝（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）を出力で提供するための、入力パラメータ（Ｅｍ）の全部もしくは一部の混合手段と、
−少なくとも旧状態および一連のビットの値（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）に従った関数に応じて、旧状態から新状態に移行する有限状態オートマトンと、
−少なくとも一つのオートマトンの状態を含む入力引数から、証明書（Ｓ）を計算するための出力手段とを備えることを特徴とする、電子チップ（２３）装置（２４）。
【請求項２３】
混合手段が、線形フィードバックシフトレジスタを備え、該レジスタにおいて、入力パラメータ（Ｅｍ）の全部もしくは一部を混合し、データＥ’＝（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）をレジスタの出力で提供するために、入力パラメータのビットが連続的に入力され、レジスタの初期設定および／またはフィードバックのビットの値に影響を及ぼすことを特徴とする、請求項２２に記載の電子チップ装置（２４）。
【請求項２４】
混合手段が、非線形フィードバックシフトレジスタを備え、該レジスタにおいて、入力パラメータ（Ｅｍ）の全部もしくは一部を混合し、データＥ’＝（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）をレジスタの出力で提供するために、入力パラメータのビットが連続的に入力され、レジスタの初期設定および／またはフィードバックのビットの値に影響を及ぼすことを特徴とする、請求項２２に記載の電子チップ装置（２４）。
【請求項２５】
オートマトンが、ブール回路を備えていることを特徴とする、請求項２２に記載のチップ装置（２４）。
【請求項２６】
オートマトンが、出力と、一つまたは複数のメモリのアドレス入力との間にループを形成する回路を備えていることを特徴とする、請求項２２に記載のチップ装置（２４）。
【請求項２７】
請求項２２から請求項２６のいずれか一つに記載の電子チップ装置を備える、プリペイドカード。
【請求項２８】
請求項２２から請求項２６のいずれか一つに記載の電子チップ装置を備える、チケット。
【請求項２９】
請求項２２から請求項２６のいずれか一つに記載の装置を備える、公共サービスへのアクセス端子。
【請求項３０】
請求項２２から請求項２６のいずれか一つに記載の装置を備える、電子支払端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号学の分野に関するものである。特に、本発明は、アプリケーションとチップの間のトランザクションにおける、電子チップの不正行為に対する保護用の暗号通信法に関するものである。
本発明は、さらに、電子チップの不正行為に対する保護用の暗号通信法の実施を可能にする電子チップ装置に関するものである。
【０００２】
本発明は、あるアプリケーションに、それがワイヤードロジックあるいはマイクロプロセッサのチップの不正行為に対して保護することを可能にするという点で、非常な有用性を見出しており、該チップはとりわけ、様々なトランザクションにおいて使用されるプリペイドカードに必要な装備を施すものでり、該トランザクションは、通話の確立、自動販売機における品物の支払い、パーキングメーターからの駐車場の賃貸、公共交通機関のようなあるいはインフラストラクチャー（通行料金徴収所、美術館、図書館等）の提供のような、サービスの支払いなどである。
【背景技術】
【０００３】
現在、プリペイドカードは、様々なタイプの不正行為を受けやすい。
第一の不正行為のタイプは、許可なしでカードの複製を作ることからなり、しばしばクローニングという用語が、この操作を特徴づけるために使用される。
第二の不正行為のタイプは、カードに与えられたデータ、特にカード内に書き込まれたクレジットの金額を変更することからなる。
これらの不正行為に対して戦うために暗号通信法が用いられるが、これは一方では、認証手段によってカードの認証を保証し、および／またはデジタル署名によってデータの認証を保証するためであり、他方では、万一の場合に暗号化によってデータの機密性を保証するためである。
暗号通信法は、二つのエンティティ、検証者および検証すべき対象を機能させ、またこの通信法は対称かあるいは非対称であることができる。
通信法が対称であるとき、二つのエンティティはまったく同一の情報、特に秘密キーを共有する。
通信法が非対称であるとき、二つのエンティティのうちの一つは一対の鍵を有しており、その一つは秘密キーであり、もう一つは公開キーであって、したがって共有されるキーはない。
多くのシステムにおいて、対称暗号通信法だけがプリペイドカードに利用されている。というのも、非対称暗号通信法は、依然として速度が遅く、費用が高いためである。
対称暗号通信法で展開された初期の認証メカニズムは、各カードで異なる証明書を一回で計算すること、それをカードのメモリ内に保存すること、それをトランザクションのたびに読み取ること、およびそれを検証することからなり、検証は、既に割り当てられた証明書が保存される、あるいは再計算されるトランザクションを引き受けるネットワークのアプリケーションに質問しながら行われる。
これらのメカニズムは、証明書が一つの任意のカードに対して常に同一であることから、証明書が監視され、複製され、および不正に再び利用されうるので、十分な保護を保証せず、したがってこのカードのクローンを作製することを可能にする。
クローンに対して戦うために、カードの受動認証メカニズムは、さらにデータの全体を保証することができる能動認証メカニズムに取って代わられる。
【０００４】
能動認証メカニズムの一般原理は、次のものである。
−認証の際、電子チップおよびアプリケーションは、認証ごとに決定される引数のリストに適用された関数の結果である証明書を計算する。
−引数のリストは、一つの変数を含むことができるが、変数は、認証ごとのアプリケーションによって決定されるデータ、電子チップ内に含まれるデータ、そして電子チップとアプリケーションに認識される秘密キーである。
電子チップによって計算された証明書が、アプリケーションによって計算された証明書と同一であるとき、電子チップは真正と判断され、そして電子チップとアプリケーションの間のトランザクションは許可される。
【０００５】
このような認証メカニズムは広く知られているが、しかし大部分は、マイクロプロセッサが自由に使える計算容量と少なくとも同等の計算容量を必要とする。
したがって、これらのメカニズムは、マイクロプロセッサのカードには適しているが、しかし、ずっと基本的な計算手段を有するワイヤードロジックのカードに適することはめったにない。
本発明は、ワイヤードロジックのカードにおいて利用することができる、対称能動認証メカニズムに関するものである。
【０００６】
これらのメカニズムの第一番目は、仏国特許発明第８９−０９７３４号明細書の対象となっている。
ここに記載されている方法は、非線形関数を定義することからなり、該関数は、アプリケーションに認識され、また有線回路の形で電子チップに導入されるものである。
これらのメカニズムの第二番目は、仏国特許発明第９５−１２１４４号明細書の対象となっている。
それは、無条件に確実な能動認証によるカードの保護方法であり、該方法は、限られた数の認証について、再利用に対する保護および秘密キーの制御された損耗を保証する、線形関数の利用に基づいている。
【特許文献１】
仏国特許発明第８９−０９７３４号明細書
【特許文献２】
仏国特許発明第９５−１２１４４号明細書
【０００７】
先に引用された二つのメカニズムのそれぞれは、特有の利点および不都合を有している。
第一のメカニズムに関しては、利用する非線形関数の情報処理の安全性の仮定（知識の現状において証明不可能）に基づくものだが、ワイヤードロジックのチップの少ない計算容量によって強要される非常に大きな制約のために、通常用いる秘密キーアルゴリズムに対するほどの大きな安全性の余地は許されず、また、したがって、利用される非線形関数の詳細な仕様の漏洩、というリスクがある可能性がある。
第二のメカニズムに関しては、認証の数がある限界を超えない限り、証明可能な安全性の恩恵に浴するという利点があり、また、したがって利用される線形関数の漏洩に関連したリスクはないが、その代わり、この解決法に固有のチップの寿命の間（あるいは充電式カードの場合、充電、使用による消耗、充電という、二つの再充電の間）、認証関数の利用数を厳しく制限する必要があることから、あるアプリケーションについては満足させがたい制約を示しうる。
さらに、ワイヤードロジックのチップではなく、これらのチップの検証のために使用される安全モジュールを対象とする攻撃、かつ、偶然得られる十分な数の良好な応答が、不正行為者の選んだカード番号に結びついた秘密を不正行為者に提供するまで、不正行為者がランダムな応答を検証モジュールに提供する攻撃は、第二のメカニズムの場合には、食い止めるのがより難しい可能性がある。
これらの利点を併せ持つことを可能する、これら二つのタイプのメカニズムの組み合せは、仏国特許発明第００−０３６８４号明細書および仏国特許発明第００−０４３１３号明細書の対象になった。
【特許文献３】
仏国特許発明第００−０３６８４号明細書
【特許文献４】
仏国特許発明第００−０４３１３号明細書
【０００８】
より明確には、仏国特許発明第８９−０９７３４号明細書は、有線式のマイクロ回路のカードを記載しており、該カードでは、暗号のシリアル関数は、二つのオペランドに適用され、その一つは「キーワード」（例えば外部のエンティティからカードに提供される変数Ｒ）であり、およびもう一つは、カードの「内部メモリ」の「出力」（例えばアプリケーションに関連した秘密キーＫあるいはデータＤ）である。
暗号のシリアル関数は、前記キーワードと前記内部メモリの前記出力を受信する論理演算子を備えた有線回路、続いて、遅延手段を有し、また出力と秘密メモリのアドレス入力の間にループを形成する遅延論理回路によって実現される。
論理演算子の出力は、秘密メモリの新しいアドレス入力を構成するため、この秘密メモリのデータ出力に干渉する。
【０００９】
この方法には、いくつかの不都合がある。
【００１０】
第一の不都合は、キーワードと内部メモリの出力が、一つの簡単な論理演算子に従って組み合わされることから来る。
より明確には、キーワードのビットは、論理演算子の第一のオペランドを構成するために連続的に使用され、また、内部メモリの出力のビットは、この演算子の第二のオペランドを構成するために連続的に使用される。
したがって、キーワードの任意のビット、あるいは遅延論理回路上の内部メモリの出力の任意のビットの干渉は、それが論理演算子の入力で示される瞬間のみに制限される。
【００１１】
ところが、暗号関数の安定性は、部分的に、その拡散の性質に基づいており、また、特にこのアルゴリズムの入力パラメータの任意のビットが、このアルゴリズムの出来る限り多くのステップに影響を及ぼす、ということに基づいている。
したがって、各オペランドの各ビットが一つのステップにしか影響を及ぼさないことを考えると、仏国特許発明第８９−０９７３４号明細書に記載された方法では、拡散原理は十分に満たされていない。よって、これらのオペランドへの不正な操作が容易になり得るということになる。
また、アルゴリズムによって提供される、一つまたは複数の出力の観察に基づいて、秘密のままであると仮定されるビット（秘密キーＫとなるようなもの）の発見も同様に、容易になり得るということにもなる。
【００１２】
第二の不都合は、有線回路の論理演算子が、入力引数として、キーワードおよび内部メモリの出力を有することから来るものであり、このことは、論理演算子が、ある内部メモリの出力と別の内部メモリの出力を組み合わせることを禁止する。
例えば、秘密キーおよびチップ内に記述されたアプリケーションのデータは、この論理演算子によって組み合わせることはできない。
したがって、アプリケーションのデータの不正な変更が容易になり得るということになる。
【００１３】
仏国特許発明第８９−０９７３４号明細書に記載されている方法の他の不都合は、遅延手段を有し、また、データ出力と秘密メモリのアドレス入力の間にループを形成する、遅延論理回路の使用から来るものである。
【００１４】
まず初めに、メモリが秘密であることは、常に必要不可欠というわけではない。
暗号アルゴリズムに対する攻撃は存在し、この攻撃は、非線形性に関する欠陥のような、そのようなメモリが示しうる欠陥を利用するが、もしこれらのメモリがこれらの欠陥を示さないように特定化されるならば、そのときメモリはアルゴリズムの安全性を全面的に侵すことなく公開することができる。
しかしながら、また、このことは必要でないが、使用者はアルゴリズムの安全性を高めるために、それらを秘密に保つことに決めることができる。
【００１５】
第二に、データ出力とメモリのアドレス入力の間にループを形成する遅延論理回路の使用は、非常に制限的である。このことは特に、有線回路の出力が非常に長い長さ（ビットで表される）である可能性を排除する、というのも、メモリのサイズがこの長さとともに指数関数的に増すためである。
例えば、出力が４ビットの長さを有するとき、そのときメモリは６４ビットを占める。しかし、出力が８ビットの長さを有するとき、そのときメモリは２Ｋビットを占め、これはコストの低いワイヤードロジックのチップにとっては非常に大きいサイズである。
出力が１６ビットの長さを有するとき、そのときメモリは１Ｍビットを占め、これはどんなワイヤードロジックのチップにとっても大きすぎるサイズである。
しかしながら、有線回路の出力の長さは、無作為に値を推察しようと試みる不正行為者が、ごくわずかの成功確率しかもたないような長さでなければならない。
長さが４ビットであるとき、不正行為者は、２の４乗、つまり１６分の１の確率を有し、このことは、ほぼ全てのアプリケーションにおいて過大な確率を表す。
長さが８ビットであるとき、不正行為者は２５６分の１の確率を有し、このことは、大部分のアプリケーションにおいて依然として過大である。
このように、仏国特許発明第８９−０９７３４号明細書に記載の方法は、ワイヤードロジックのチップの技術的制約と、大部分のアプリケーションの安全性の制約とを同時に満たすことができない。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明は、アプリケーションと電子チップとの間のトランザクションにおける、電子チップの不正行為に対する保護用の暗号通信法、および電子チップ装置に関するものであり、より特徴的には、ワイヤードロジックのチップに適合し、またより特徴的には、認証メカニズムを設置することを目的としており、上記に言及された不都合のないもので、獲得される認証メカニズムの暗号の安定性を強化し、またしたがってクローンの創造をより困難にするための方法である。
【課題を解決するための手段】
【００１７】
そのために、本方法は、アプリケーションと電子チップの間のトランザクションにおける、電子チップの不正行為に対する保護用の暗号通信法を目的とし、該方法は、電子チップにおいて入力パラメータから証明書を計算することからなり、前記方法はさらに、
−混合関数によって、入力パラメータの全部もしくは一部を混合し、また、混合関数の出力で、データＥ’＝（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）を提供することと、
−有限状態オートマトンを、少なくとも旧状態および一連のビットの値（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）に従った関数に応じて、旧状態から新状態に移行させることで、有限状態オートマトンの状態変化を実行することと、
−入力引数として少なくとも一つのオートマトンの状態を有する出力関数によって、証明書を計算することからなる。
【００１８】
また本発明はさらに、アプリケーションと電子チップの間のトランザクションにおける、電子チップの不正行為に対する保護用の暗号通信法の実施を可能にする、電子チップ装置を目的とし、該装置は、電子チップにおいて入力パラメータから証明書を計算することからなり、前記装置は、
−混合の結果であるデータＥ’＝（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）を出力で提供するための、入力パラメータの全部もしくは一部の混合手段と、
−少なくとも旧状態および一連のビットの値（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）に従った関数に応じて、旧状態から新状態に移行する有限状態オートマトンと、
−少なくとも一つのオートマトンの状態を含む入力引数から、証明書を計算するための出力手段とを備えている。
【００１９】
このように、本方法および装置は、混合と呼ばれる関数およびオートマトンに分解される。
本方法および本装置の入力パラメータは、認証メカニズムの利用の場合、秘密キーＫ、変数Ｒ、アプリケーションデータＤ、アドレスＡ、識別子Ｉなどで構成することができる。
【００２０】
本暗号通信法と本装置の入力パラメータは、混合関数において処理され、該混合関数は入力パラメータの全部もしくは一部に従ったデータを出力で提供する。
混合関数の出力データは、有限状態オートマトンの状態変化において干渉し、その少なくとも一つの状態、好ましくは最終状態は、証明書Ｓと呼ばれる、出力値を計算するために使用される。
【発明の効果】
【００２１】
混合関数であるため、入力パラメータの任意のビットの干渉は、もはやそれが方法の実施手段の入力で示される瞬間に制限されず、反対に、この瞬間より後の、多くのステップに影響を及ぼす。拡散原理は、このように充足している。
【００２２】
有利な仕方では、オートマトンは、大きな数のビットを保存する必要はなく、大きいサイズ（１６、３２さらに６４ビット）の証明書を得ることが可能である。すなわち、オートマトンは、データ出力とメモリのアドレス入力の間にループを形成する、唯一の遅延論理回路で必しも構成されるわけではない。
【００２３】
本発明による方法と装置の利用によって得られる証明書は、アプリケーションとチップの間で秘密キーを交換する、あるいはアプリケーションとチップの間で交換されたデータを暗号化するためにも、また、チップあるいはアプリケーションの認証ためにも、使用することができる。
それはまた、入力パラメータの全部もしくは一部の電子署名として解釈することもできる。
それはさらに、擬似ランダム・ビット・シーケンスとして解釈することもでき、また、少なくとも入力パラメータの一つを変化させると、そのとき証明書の計算方法は、擬似ランダム・ビットの生成方法となる。
【発明を実施するための最良の形態】
【００２４】
本発明の他の特徴と利点は、非制限的な例として与えられた特定の実施態様の添付の図面と比較してなされる、以下の説明の際に明らかになるであろう。
【００２５】
図１は、本発明による方法の図である。
【００２６】
図２は、混合関数の一例の図である。
【００２７】
図３は、有限状態オートマトンの一例の図である。
【００２８】
図４は、本発明による方法の実施を説明する図である。
【００２９】
図１は、本発明による、不正行為に対する電子チップの保護方法を概略的に表している。本方法は、以降に記載される様々な関数から成るものである。
【００３０】
混合と呼ばれる第一の関数１は、Ｍがパラメータ数に等しい、入力パラメータＥｍ（ｍ＝１からＭ）の全部もしくは一部を混合すること、および、Ｎが出力データのビット数に等しい、データＥ’＝（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）を出力で提供することからなる。
各入力パラメータＥｍは、一定のビット数を含む。混合関数の入力データは、入力パラメータＥｍの全部もしくは一部で構成される。
【００３１】
第一の入力パラメータＥ１は、秘密キーＫで構成することができ、該秘密キーは、チップの保護された領域内、つまり外部から読み取りも変更もできないチップのメモリ領域内に保存される。
このメモリ領域は、例えば、レジスタあるいはメモリ内に設置することができる。
【００３２】
第二の入力パラメータＥ２は、チップの、すなわちチップのプログラミングできるメモリ（ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、あるいはまたＥ２ＰＲＯＭのタイプ）内に保存される、内部データＤで構成することができる。
これらのデータは、非常に様々な性質であってよく、またチップの寿命と非常に異なるフェーズの際に書き込まれてよく、該フェーズとは、チップの製造フェーズ、チップが中に挿入される品物（カード、チケット等）の製造フェーズ、発信するエンティティによるこの品物のカスタマイズのフェーズ、あるいはまた品物の保持者による品物の使用フェーズのようなものである。
【００３３】
第三の入力パラメータＥ３は、入力パラメータがカードの内部データＤで構成される場合に、これらのデータＤが中に保存されるチップの一つまたは複数のメモリ領域の一つまたは複数のアドレスで構成することができる。
【００３４】
第四の入力パラメータＥ４は、チップの外部データＤ’で構成することができ、該データは、本暗号通信法の実施に先行して、例えばアプリケーションとのトランザクションの初めに、チップに提供される。
【００３５】
第五の入力パラメータＥ５は、チップの外部変数Ｒで構成することができ、該外部変数は、本暗号通信法の実施に先行して、例えばアプリケーションとのトランザクションの初めに、チップに提供される。
この変数は、ランダムな値、つまり無作為に選ばれ、二つの同じ値を選ぶ確率が非常に少ないように十分に大きなサイズの値であることができる。
それはまた、アプリケーションおよび電子チップによって生成される、連続的な一連の整数から決定できる。
それはさらに、時間の特性、典型的には日付および時刻から決定できる。
さらには、それは、先に挙げられた構成要素の全部もしくは一部の組み合わせであることができる。
【００３６】
第六の入力パラメータＥ６は、チップの内部変数Ｒ’で構成することができ、該内部変数は、本暗号通信法の実施に先行してチップに提供される。
この変数は、ランダムな値、すなわち無作為に選ばれ、二つの同じ値を選ぶ確率が非常に少ないように十分に大きなサイズの値から決定できる。
それはまた、外部、典型的にはアプリケーション、および電子チップによって生成される、連続的な一連の整数から決定できる。
それはさらに、時間の特性、典型的には日付および時刻から決定できる。
さらには、それは、先に挙げられた構成要素の全部もしくは一部の組み合わせであることができる。
【００３７】
可能なパラメータのリストは、網羅的ではない。パラメータの数の増大により、本方法の安全性を増すことは有利に可能になるが、しかしながらこの増加は、単純な設置を犠牲にする。
【００３８】
入力パラメータＥｍから決定される混合関数の入力データは、任意の性質の数学的対象であることができ、それは例えば、ビット、固定もしくは可変の長さのビットの連鎖、整数、非整数などである。
混合関数の出力データについても同じである。しかしながら、本発明の説明の便宜のために、本説明においては、この出力を一連のビットＥ’＝（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）と同じものとするが、これは実際には限定されるものではない。
【００３９】
混合関数は、入力データの線形関数、あるいは非線形関数であることが可能である。
【００４０】
図２によって説明されている線形関数１の第一の例は、入力データ間のスカラー積を実行することからなる。
入力データが一方ではＪビットからなるキーＫ（Ｋ１，Ｋ２，…，ＫＪ）であり、他方では（Ｚ１，Ｚ２，…ＺＪ）と記される、Ｊビットの集合を構成する変数ＲおよびデータＤであると仮定すると、そのとき、混合関数の出力データの第一のビットは、上記に記述された二つのデータのスカラー積であると定義することができる。
このように、混合関数の出力データの第一のビットは、全てのｊについて、ｊ＝１からＪで積Ｋｊ．Ｚｊを実行することにより得られるＪビットを対象とするＸＯＲ（排他的ＯＲ）の結果に等しい。
図２によって説明されている設置例によると、積Ｋｊ．Ｚｊは、ｊ＝１からＪで、ＡＮＤロジックゲート４ｊの出力で得られる。
全てのｊについて積Ｋｊ．Ｚｊを実行することで得られるＪビットを対象とするＸＯＲは、ｊ＝１からＪ−１のＸＯＲゲート５ｊ，ｊ＋１の集合に分解される。
ＸＯＲゲート５ｊ，ｊ＋１のそれぞれは、二つの入力と一つの出力を有している。少なくとも一つの入力は、ＡＮＤロジックゲート４ｊの出力であり、第二の入力は、ＸＯＲゲート５ｊ，ｊ＋１の出力、あるいはＡＮＤロジックゲート４ｊの出力である。
ＸＯＲゲート５Ｊ―１，Ｊの出力ｅ’は、ＭＩＸ関数の出力データの第一のビットの値を与える。
【００４１】
出力データの第二のビットを得るために、一つまたは複数の位置のローテーション演算がキーＫに実行される。
この演算は、キーＫをデータＫ’に変える。混合関数の出力データの第二のビットは、データＫ’とＪビットの集合（Ｚ１，Ｚ２，…ＺＪ）のスカラー積であると定義することができる。
第二のビットは、ＸＯＲゲート５Ｊ―１，Ｊの出力ｅ’で示される。
【００４２】
出力データの次のビットを得るために、各ビットについて、第二のビットを得るために記述された演算を繰り返さなければならない。
【００４３】
多くの変形例が、このように定義される線形関数１から可能である。特に、Ｊ回のローテーションの後にキーＫがその初期状態となるという事実に起因して、出力データのビットが反復サイクルに戻ることを避けられる。
もしＩが望まれた出力ビット数であるならば、そのときＩ＋ＪビットのキーＫ（Ｋ１，Ｋ２，…，ＫＩ＋Ｊ）を使用できる。混合関数の出力データの第一のビットは、データ（Ｋ１，Ｋ２，…，ＫＪ）と（Ｚ１，Ｚ２，…ＺＪ）のスカラー積であると定義できる。
出力データの第二のビットは、データ（Ｋ２，Ｋ３，…，ＫＪ＋１）と（Ｚ１，Ｚ２，…ＺＪ）のスカラー積であると定義できる。
そのようにして、ベクトル（ＫＩ＋１，ＫＩ＋２，…，ＫＪ＋Ｉ）と（Ｚ１，Ｚ２，…ＺＪ）のスカラー積であるとして定義できる出力データの最終ビットまで続く。
【００４４】
この変形例は、出力ビットが要求される度にキーＫを再読み取りすることを免除する設置態様が存在するという点で有利である。
この態様は、出力ビットの並列計算に基づいている。そのために、Ｉビットの特定の二つのレジスタを使用しなければならないが、第一のレジスタは、ベクトル（Ｋ１，Ｋ２，…，ＫＩ）で、また第二のレジスタはゼロのベクトル（０，０，…，０）で初期設定される。
もしＺ１＝０ならば、第二レジスタの内容はゼロのままである。もしＺ１＝１ならば、第一レジスタの内容は、第二レジスタの新しい内容を構成する。二つの場合において、第一レジスタの新しい内容は、（Ｋ２，Ｋ３，…，ＫＩ＋１）である。
この後者の演算は、左へ一位置分のシフトを実行し、ついで新しいビットＫＩ＋１を挿入することで実現される。
もしＺ２＝０ならば、第二レジスタの内容は変更されない。もしＺ２＝１ならば、第二レジスタの新しい内容は、第一と第二のレジスタの内容のＸＯＲの結果である。二つの場合において、第一レジスタの新しい内容は（Ｋ３，Ｋ４，…，ＫＩ＋２）であり、シフトついで新しいビットＫＩ＋２の挿入によって得られる内容である。
そして同様に続く。Ｊビット（Ｚ１，Ｚ２，…ＺＪ）の読み取りの後、混合関数の出力Ｉビットは、第二のレジスタに含まれるＩビットであるとして定義される。
【００４５】
線形関数１の第二の例は、線形フィードバックシフトレジスタを使用することからなり、該シフトレジスタにおいて、入力パラメータのビットは連続的に入力され、レジスタの初期状態および／またはフィードバックのビットの値に影響を及ぼす。
妨害される（ｐｅｒｔｕｒｂｅｄ）線形フィードバックシフトレジスタという用語は、データがレジスタの作動中に注入されるレジスタを指すために、時々用いられる。
出力値Ｅ’は、そのとき、このレジスタの内容から抽出された一つまたは複数のビットで構成できる。
【００４６】
非線形関数１の例は、非線形フィードバックシフトレジスタを使用することからなり、該シフトレジスタに、入力パラメータのビットが連続的に入力される。
出力値Ｓ’は、このレジスタの内容から抽出された一つまたは複数のビットで構成できる。
【００４７】
第二の関数２は、有限状態オートマトンを、少なくとも旧状態および一連のビットの値Ｅ’＝（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）を考慮に入れて、旧状態から新状態に移行させることで、有限状態オートマトンの状態変化を実行することからなり、該値は、データＥ’のビットの集合の中から選ばれた一つのビットまたは複数のビットに対応する。
特定の実施態様によると、この関数はさらに、入力パラメータＥｍの全部もしくは一部を考慮に入れることができる。
オートマトンの初期状態は、Ｅ’とＥｍの全部もしくは一部に応じて決定できる。
【００４８】
図３によって説明されているオートマトンの第一の例は、ブール回路を使用することからなる。それはすなわち、例えばｋ＋１ビットのベクトル（Ａ１，Ａ２，…Ａｋ＋１）にｋビットのベクトル（Ａ’１，Ａ’２，…Ａ’ｋ）を結びつける回路であり、そこで各ビットＡ’ｉは、ＸＯＲ、ＯＲ（内包的）、ＡＮＤ、ＮＯＴのような基本演算を使ってビット（Ａ１，Ａ２，…Ａｋ＋１）から得られ、またそこで（Ａ１，Ａ２，…Ａｋ）は、オートマトンの旧状態を表す。
例えばｋ＝８の場合、オートマトンの出力は、Ａ９＝ｅ’である次の関係式によって与えられ、そこでｅ’は、Ｅ’＝（ｅ’１，ｅ’２，…ｅ’ｎ，…，ｅ’Ｎ）のビットのうちの任意の一つを指す。
【００４９】
Ａ’１＝（ＮＯＴ  Ａ３）ＡＮＤ  Ａ２  ＯＲ  ｅ’；
Ａ’２＝Ａ５  ＯＲ（（ＮＯＴ  Ａ８）ＡＮＤ（Ａ１  ＸＯＲ  Ａ４））；
Ａ’３＝Ａ６  ＡＮＤ  Ａ２；
Ａ’４＝Ａ１  ＸＯＲ  Ａ４  ＸＯＲ（ＮＯＴ  ｅ’）；
Ａ’５＝Ａ３  ＯＲ  Ａ７；
Ａ’６＝（ＮＯＴ  Ａ５）ＡＮＤ  Ａ１  ＸＯＲ  Ａ８；
Ａ’７＝Ａ６  ＯＲ  Ａ７；
Ａ’８＝（ＮＯＴ  ｅ’）。
図３によって図解されている設置によると、Ａ’１は、ＯＲゲート６の出力であって、その第一の入力はｅ’に対応し、第二の入力はＡＮＤゲート７の出力である。
ＡＮＤゲート７は、第一の入力としてＡ２を、また第二の入力として、入力がＡ３であるＮＯＴゲート８の出力を有する。
Ａ’２は、ＯＲゲート９の出力であって、その第一の入力はＡ５であり、その第二の入力はＡＮＤゲート１０の出力である。
ＡＮＤゲート１０は、第一の入力としてＮＯＴゲート１１の出力を有し、また第二の入力としてＸＯＲゲート１２の出力を有する。
ＮＯＴゲート１１の入力はＡ８である。
ＸＯＲゲート１２は、第一の入力としてＡ１を、また第二の入力としてＡ４を有する。
Ａ’３は、ＡＮＤゲート１３の出力であり、その第一の入力はＡ６であり、またその第二の入力はＡ２である。
Ａ’４は、ＸＯＲゲート１４の出力であり、その第一の入力はＡ１であり、第二の入力はＡ４、そして第三の入力は、入力がｅ’であるＮＯＴゲート１５の出力である。
Ａ’５は、ＯＲゲート１６の出力であり、その第一の入力はＡ３、またその第二の入力はＡ７である。
Ａ’６は、ＸＯＲゲート１７の出力であり、その第一の入力はＡ８、またその第二の入力はＡＮＤゲート１８の出力である。
ＡＮＤゲート１８は、第一の入力としてＡ１、および第二の入力として入力がＡ５であるＮＯＴゲート１９の出力をもつ。
Ａ’７は、ＯＲゲート２０の出力であり、その第一の入力はＡ６、また第二の入力はＡ７である。
Ａ’８は、入力がｅ’であるＮＯＴゲート２１の出力である。
各ビットＡｐは、入力がｐ＝１からｋでのＡｐ’ ビットのマルチバイブレータの出力である。
【００５０】
本例によると、オートマトンは、ｋビットの内部状態（Ａ１，Ａ２，…Ａｋ）を有し、また、新しいベクトル（Ａ１，Ａ２，…Ａｋ，ｅ’）がブール回路の入力に存在するたびに、出力で新しい状態（Ａ’１，Ａ’２，…Ａ’ｋ）を示し、新しいベクトルは、内部状態および混合関数の出力で構成される。
【００５１】
オートマトンの第二の例は、数の表によって定義されるビットの変換を利用することからなる。
やはりｋ＝８の場合には、例えば、オクテット（Ａ１，Ａ２，…Ａ８）を、二つのカルテット（Ａ１，Ａ２，Ａ３，Ａ４）と（Ａ５，Ａ６，Ａ７，Ａ８）に分け、ついで各カルテットに、出力ビットｅ’がゼロであれば変換Ｔを、あるいはｅ’が１であれば変換Ｕを適用することができる。
変換Ｔは、各カルテットの値（ａ，ｂ，ｃ，ｄ）に、一つのカルテットの値（ａ’，ｂ’，ｃ’，ｄ’）を結び付けるテーブルによって定義される。Ｕについても同様である。
【００５２】
全ての入力値が考慮に入れられたとき、オートマトンはある最終状態（Ｆ１，Ｆ２，…Ｆｋ）にある。
【００５３】
第三の関数３は、出力関数と呼ばれ、入力引数としてオートマトンの少なくとも一つの状態を有するものであり、証明書Ｓを計算することからなる。
最も単純な設置は、オートマトンの最終状態のみを考慮に入れることで得られる。
しかしながら、関数は、オートマトンの前の状態を補足的な仕方で考慮に入れることができる。
推奨されるには、出力関数は、オートマトンの最終状態に適用された恒等関数である。換言すれば、証明書Ｓはｋビットのデータ（Ｆ１，Ｆ２，…Ｆｋ）に等しい。
別の実施態様によると、出力関数は丸め関数である。
証明書Ｓは、チップの秘密キーＫを認識している全てのアプリケーションによって検証できる。そのために、アプリケーションに認識されていないが証明書の計算に含まれるあらゆるデータ、例えばチップの内部データは、証明書の送信に先立って、同時に、あるいは後で、チップによってアプリケーションに通信されなければならない。
アプリケーションは、チップが利用するのと同じ入力データを使用することにより、チップが実施するのと厳密に同一の暗号通信法を実施して、証明書Ｓ’を得る。
アプリケーションは、アプリケーションが計算した証明書Ｓ’を、チップによって計算された証明書Ｓと比較する。もし同等であれば、チップは、アプリケーションによって真正と見なされる。
アプリケーションによって計算された証明書の検証は、その上、チップにアプリケーションを認証することを許可するために、チップによって実行できる。
【００５４】
図４により、電子チップとアプリケーションとの間のトランザクションの際の、本発明による方法の実施を説明することができる。
【００５５】
電子チップ２３は、媒体２４によって収容されており、該媒体は、例えばプリペイドカード、電子チケット、銀行カード等で構成される。
【００５６】
アプリケーション２５は、電子チップの読み取り器２６において、全体的もしくは部分的に展開する。
この読み取り器は、接触のない読み取り器、あるいは図４によって説明されているような接触のある読み取り器であることができる。
【００５７】
アプリケーションが一つの認証アプリケーションからなるとき、読み取り器の中にカードがただ一枚あることで、この読み取り器が機能し、またアプリケーションを開始することが可能となる。
アプリケーションはチップに働きかけ、チップが、本発明による方法にしたがって計算（２７）した証明書Ｓをアプリケーションに提供することで認証されるようにする。
対照的に、アプリケーションは、同じ方法にしたがって、チップと同じ入力パラメータから証明書を計算（２８）する。
計算のあとで、チップはその結果をアプリケーションに提供し、該アプリケーションはそれを自らの結果と比較する。結果が同一であるとき、チップの認証は正しく、アプリケーションはそのことをチップに通知する。
入力パラメータは、チップ内に設置され、アプリケーションに認識されている電子チップのあらゆる使用の前に、最終的な仕方で決定できる。それらは場合によっては、決定されたプロセスにしたがって、カードの認証後に更新できる。
更新は、パラメータの全部あるいはそれらの中のいくつかのみに関わることができ、あるいはまた、アプリケーションは、ランダムな仕方で決定されるあるいはカウンタ、クロック、日付等の値によって決定される変数Ｒのような新しいパラメータを提供することができる。
【図面の簡単な説明】
【００５８】
【図１】本発明による方法の図である。
【図２】混合関数の一例の図である。
【図３】有限状態オートマトンの一例の図である。
【図４】本発明による方法の実施を説明する図である。
【符号の説明】
【００５９】
１    入力パラメータの混合
２    有限状態オートマトンの状態変化
３    証明書の計算
４ｊ（ｊ＝１からＪ）    ＡＮＤロジックゲート
５ｊ，ｊ＋１（ｊ＝１からＪ−１）    ＸＯＲゲート
６    ＯＲゲート
７    ＡＮＤゲート
８    ＮＯＴゲート
９    ＯＲゲート
１０  ＡＮＤゲート
１１  ＮＯＴゲート
１２  ＸＯＲゲート
１３  ＡＮＤゲート
１４  ＸＯＲゲート
１５  ＮＯＴゲート
１６  ＯＲゲート
１７  ＸＯＲゲート
１８  ＡＮＤゲート
１９  ＮＯＴゲート
２０  ＯＲゲート
２１  ＮＯＴゲート
２３  電子チップ
２４  媒体
２５  アプリケーション
２６  読み取り器
２７  計算
２８  計算
【図１】
2004531163.tif 000003
【国際公開パンフレット】
2004531163.tif 000004
2004531163.tif 000005
2004531163.tif 000006
2004531163.tif 000007
2004531163.tif 000008
2004531163.tif 000009
2004531163.tif 000010
2004531163.tif 000011
2004531163.tif 000012
2004531163.tif 000013
2004531163.tif 000014
2004531163.tif 000015
2004531163.tif 000016
2004531163.tif 000017
2004531163.tif 000018
2004531163.tif 000019
2004531163.tif 000020
2004531163.tif 000021
2004531163.tif 000022
2004531163.tif 000023
2004531163.tif 000024
2004531163.tif 000025
【国際調査報告】
2004531163.tif 000026
2004531163.tif 000027
2004531163.tif 000028
2004531163.tif 000029
2004531163.tif 000030
2004531163.tif 000031