(57)【特許請求の範囲】
【請求項１】
アプリケーション（１）と電子チップ（１）間の取引における、不正行為に対して使用者の電子チップ（１）の保護の方法において、該方法が以下の過程：
−アプリケーション（２）に知られ、かつ電子チップ（１）に埋め込まれた（４）論理関数ｇを決定する（３）過程、
−電子チップ（１）とアプリケーション（２）にだけ知られ、かつ電子チップ（１）に秘密に保持された（１３）第一の秘密鍵Ｋを電子チップ（１）に割り当てる過程、
−電子チップ（１）の認証の度に、変数と呼ばれる変動する入力ワードＲを生成する過程、
−証明書（Ｓｐ，Ｓ）を、電子チップ（１）とアプリケーション（２）によって計算する（１６，１７）過程、ここで該証明書（Ｓｐ，Ｓ）は少なくとも変数Ｒと秘密鍵Ｋを含む引き数（ｅ1，ｅ2）のリストに適用された論理関数ｇの結果である、
を含み、該方法はさらに以下の過程：
−アプリケーション（２）に知られ、かつ電子チップ（１）に埋め込まれた非線形関数ｆを決定する過程、
−電子チップ（１）とアプリケーション（２）にだけ知られ、かつ電子チップ（１）に秘密に保持された（１３）第二の秘密鍵Ｋ’を電子チップ（１）に割り当てる過程、
−電子チップ（１）の認証の度に、秘密鍵Ｋ’の少なくとも一部を含む引き数（ｅ5，ｅ6）のリストに適用された非線形関数ｆからマスクＭを決定する（１８，１９）過程、
−マスクされた証明書（Ｓｐｍ）の値だけをアプリケーション（２）に利用可能にするために、マスクＭを用いて証明書（Ｓｐ）の値を隠す（２０）過程、
−電子チップ（１）によって計算された証明書の隠された値（Ｓｐｍ）をアプリケーション（２）によって確認する過程、
を含むことを特徴とする方法。
【請求項２】
電子チップ（１）によって計算された証明書の隠された値（Ｓｐｍ）のアプリケーション（２１）による確認が、
−電子チップ（１）によって計算された証明書の隠された値（Ｓｐｍ）を、マスクＭによってマスクを外すことと、
−電子チップ（１）によって計算された証明書（Ｓｐ）の値を、アプリケーション（２）によって計算された値（Ｓ）と比較すること
からなることを特徴とする、請求項１に記載の方法。
【請求項３】
電子チップ（１）によって計算された証明書の隠された値（Ｓｐｍ）のアプリケーション（２）による確認が、
−アプリケーション（２）によって計算された証明書（Ｓ）の値を、マスクＭによって隠す（２４）ことと、
−電子チップ（１）によって計算された証明書（Ｓｐｍ）の隠された値を、アプリケーション（２）によって計算された証明書（Ｓｍ）の隠された値と比較する（２３）こと
から成ることを特徴とする、請求項１に記載の方法。
【請求項４】
マスクＭを用いての証明書（Ｓｐ，Ｓ）のマスキング（２０，２４）が、暗号化関数を用いて計算されることを特徴とする、請求項１に記載の方法。
【請求項５】
暗号化関数が、ビット対ビットの排他的論理和演算であることを特徴とする、請求項４に記載の方法。
【請求項６】
変数Ｒが、アプリケーション（２）によって生成された乱数からアプリケーション（２）によって決定されること、および変数Ｒがアプリケーション（２）によって電子チップ（１）に伝達されることを特徴とする、請求項１に記載の方法。
【請求項７】
変数Ｒが、アプリケーション（２）、または電子チップ（１）によって生成された連続する整数の列から決定されることを特徴とする、請求項１に記載の方法。
【請求項８】
証明書（Ｓｐ，Ｓ）とマスクＭが、同じビット数を有することを特徴とする、請求項１に記載の方法。
【請求項９】
証明書（Ｓｐ，Ｓ）が、少なくとも変数Ｒ、秘密鍵Ｋおよび電子チップ（１）の内部データＤを含む引き数（ｅ1，ｅ2）のリストに適用された論理関数ｇの結果であることを特徴とする、請求項１に記載の方法。
【請求項１０】
証明書（Ｓｐ，Ｓ）が、少なくとも変数Ｒ、秘密鍵Ｋおよび認証の際にアプリケーション（２）によって電子チップ（１）に提供されるデータＤ’を含む引き数（ｅ1，ｅ2）のリストに適用された論理関数ｇの結果であることを特徴とする、請求項１に記載の方法。
【請求項１１】
秘密鍵Ｋが、値Ｋ［ｉ］のシーケンスからなること、および証明書（Ｓｐ，Ｓ）の値を決定する論理関数ｇが、値Ｋ［ｉ］と論理関数ｇの鍵Ｋの以外の入力引き数それぞれの間での２を法とするスカラー積の計算からなることを特徴とする、請求項１に記載の方法。
【請求項１２】
秘密鍵ＫとＫ’が、互いに独立して選択されることを特徴とする、請求項１に記載の方法。
【請求項１３】
非線形関数ｆが、さらに入力の引き数として少なくとも変数Ｒを有することを特徴とする、請求項１に記載の方法。
【請求項１４】
非線形関数ｆが、さらに入力の引き数（ｅ5，ｅ6）として少なくとも電子チップの内部データＤを有することを特徴とする、請求項１に記載の方法。
【請求項１５】
非線形関数ｆが、さらに入力の引き数（ｅ5，ｅ6）として少なくともアプリケーション（２）によって電子チップ（１）に提供されるデータＤ’を有することを特徴とする、請求項１に記載の方法。
【請求項１６】
非線形関数ｆが、さらに入力の引き数（ｅ5，ｅ6）として少なくとも認証の際の電子チップ（１）の状態に依存するパラメータｃを有することを特徴とする、請求項１に記載の方法。
【請求項１７】
パラメータｃの値が少なくとも、電子チップ（１）に含まれ、かつ認証の度に増分するカウンタの値から計算されることを特徴とする、請求項１６に記載の方法。
【請求項１８】
パラメータｃの値が少なくとも、電子チップ（１）に含まれ、かつ認証の度に変数Ｒだけ増分するカウンタの値から計算されることを特徴とする、請求項１６に記載の方法。
【請求項１９】
電子チップ（１）の認証回数が、アプリケーション（２）によって決定され、かつ電子チップ（１）に書き込まれた最大値Ｖに制限されることを特徴とする、請求項１に記載の方法。
【請求項２０】
電子チップ（１）が、認証の度に増分されるカウンタを備えること、およびカウンタの値が最大値Ｖに達したとき、電子チップ（１）がいっさいの認証計算を停止することを特徴とする、請求項１４に記載の方法。
【請求項２１】
アプリケーション（２）と電子チップ（１）間の取引における、不正行為に対して使用者の電子チップ（１）の保護の方法において、該方法が以下の過程：
−アプリケーション（２）に知られ、かつ電子チップ（１）に埋め込まれた（４）論理関数ｇを決定する過程、
−電子チップ（１）とアプリケーション（２）にだけ知られ、かつ電子チップ（１）に秘密に保持された（１３）第一の秘密鍵Ｋを電子チップ（１）に割り当てる過程、
−アプリケーション（２）の認証の度に、変数と呼ばれる変動する入力ワードＲを生成する過程、
−証明書（Ｓｐ，Ｓ）を、電子チップ（１）とアプリケーション（２）によって計算する過程、ここで該証明書（Ｓｐ，Ｓ）は少なくとも変数Ｒと秘密鍵Ｋを含む引き数（ｅ1，ｅ2）のリストに適用された論理関数ｇの結果であり、
該方法がさらに以下の過程：
−アプリケーション（２）に知られ、かつ電子チップ（１）に埋め込まれた非線形関数ｆを決定する過程、
−電子チップ（１）とアプリケーション（２）にだけ知られ、かつ電子チップ（１）に秘密に保持された（１３）第二の秘密鍵Ｋ’を電子チップ（１）に割り当てる過程、
−アプリケーション（２）の認証の度に、秘密鍵Ｋ’の少なくとも一部に適用された非線形関数ｆを用いて計算されたマスクＭを決定する（１８，１９）過程、−マスクされた証明書（Ｓｍ）の値だけを電子チップ（１）に利用可能にするために、マスクＭを用いて証明書（Ｓ）の値を隠す過程、
−アプリケーション（２）によって計算された証明書（Ｓｍ）の隠された値を電子チップ（１）によって確認する過程、
からなることを特徴とする方法。
【請求項２２】
変数Ｒが、電子チップ（１）によって生成された乱数から電子チップ（１）によって決定されること、および変数Ｒが電子チップ（１）によってアプリケーション（２）に伝達されることを特徴とする、請求項２１に記載の方法。
【請求項２３】
変数Ｒが、アプリケーション（２）または電子チップ（１）によって生成された連続する整数の列から決定されることを特徴とする、請求項２１に記載の方法。
【請求項２４】
アプリケーション（２）との取引、つまり請求項１から２０のいずれか一つに記載の方法を使用する取引、のための電子チップ（１）において、
−第一の秘密鍵Ｋと第二の秘密鍵Ｋ’を保存するための記憶手段（１３）、
−証明書（Ｓｐ）を計算し、かつマスクＭを計算するための計算手段（１６，１８）、
−論理関数ｇと非線形関数ｆが埋め込まれた電子手段（４，５）、
−マスクＭによって証明書を隠すためのマスキング手段（２０）
から成ることを特徴とする電子チップ。
【請求項２５】
さらに電子チップ（１）において：
−電子チップ（１）の使用期間を管理するための所与のアプリケーション（２）の用に電子チップ（１）の認証回数の計数手段
を備えていることを特徴とする、請求項２４に記載の電子チップ。
【請求項２６】
請求項２４に記載の電子チップ（１）を備えることを特徴とするプリペイドカード。
【請求項２７】
電子チップ（１）との取引、つまり請求項１から２０のいずれか一つに記載の方法を利用する取引、のための装置において、該装置が：
−電子チップの秘密鍵Ｋ、Ｋ’、論理関数ｇおよび非線形関数ｆを記憶するための記憶手段、
−証明書（Ｓ）を計算し、かつマスクＭを計算するための計算手段、
−電子チップ（１）によって計算された証明書の隠された値（Ｓｐｍ）の確認のための確認手段
とからなることを特徴とする装置。
【請求項２８】
請求項２７に記載の装置を含む公衆電話。
【請求項２９】
請求項２７に記載の装置を含む公共サービスへのアクセス端末。
【請求項３０】
請求項２７に記載の装置を含むパーキングメータ。
【発明の詳細な説明】
【０００１】
発明の分野
本発明は、不正行為に対する使用者の電子チップの保護方法に関するものである。
【０００２】
本発明が非常に有利な用途を見出すのは、ワイヤードロジック式またはマイクロプロセッサ式の集積回路チップの不正行為に対する保護を可能にすることであって、特に、電子チップのことで、各種の取引、例えば電話通信の確立、自動販売機における物品の支払い、パーキングメータからの駐車場の賃貸、公共交通機関または基盤施設（通行料金徴収所、博物館、図書館など）の利用提供のようなサービスへの支払いなどにおいて使用されるプリペイドカードを備えている。
【０００３】
先行技術の説明
現在、プリペイドカードは各種の不正行為を受けるおそれがある。不正行為の第一のタイプは、許可なくカードを複製することからなり、クローニングという用語がこの作業の特徴付けるためによく使われる。不正行為の第二のタイプは、カードに付与されたデータ、とくにカードに書き込まれた貸方金額を変更することからなる。これらの不正行為に対抗するため、暗号通信法を利用しているが、それは一方では認証手段を用いてカードの認証を保証する、および／または、デジタル署名を用いてデータの認証を保証するためであり、また他方では、暗号化を用いてデータの機密性を保証するためである。暗号通信法は、二つのエンティティ、つまり検査と検査対象を使用し、そして対称または非対称でありうる。対称な場合には、二つのエンティティは全く同じ情報、とくに秘密鍵を共有し、非対称の場合には、二つのエンティティの一方が一対の鍵を有し、その一方は秘密鍵であり他方は公開鍵である；共有される秘密鍵はない。多くのシステムにおいて、対称暗号通信法だけがプリペイドカードには用いられているが、それは非対称暗号通信法が低速で高価だからである。対称暗号通信法において開発された第一の認証メカニズムは、各カードごとに異なる証明書を、一度だけ計算し、それをカードのメモリに保存すること、取引の度にそれを読取ること、そしてすでに割り当てられた証明書が保存されている取引を引き受けるネットワークのアプリケーションに問い合わせてそれを確認することからなる。これらのメカニズムは不完全な保護を保証する。実際、証明書は、不正に見張られたり、複製されたり、リプレイ攻撃されうるが、というのは所与のカードについて常に同一であるためである。リロードが可能なプリペイドカードの場合は二つのリロードの間、あるいはリロードできないプリペイドカードの寿命期間の間に、行われる認証のわずかな回数を考慮するように、受動的認証メカニズムは、命令の認証または肯定応答用に、および／またはデータの認証用に、秘密鍵を介入させるメカニズムに置き換えられまたは補完されている。秘密鍵は、各カードごとに異なり、はじめにカードに書き込まれ、またはリロード可能なカードの場合はリロードの際にカードに再度書き込まれるが、該秘密鍵は、認証の度に証明書を計算するためにカード自体によって使用される。
【０００４】
これらメカニズムの第一のものは、フランス特許ＦＲ  ８９  ０９７３４の対象となった。開示された方法は、非線形関数を決定することからなり、この関数はアプリケーションに知られ、また状態のオートマンの形式で電子チップに埋め込まれる。認証の際に、電子チップとアプリケーションはある証明書を計算するが、該証明書は各認証で決定された引き数のリストに関数を適用された結果である；引き数のリストはある変数を含むことができ、該変数は各認証への適用によって決定されたデータ、電子チップに含まれるデータ、および電子チップとアプリケーションに知られていている秘密鍵である。電子チップによって計算された証明書がアプリケーションによって計算された証明書と同一である場合、電子チップは真正であると判断され、電子チップとアプリケーションの間の取引が許可される。
【０００５】
能動的認証によるカード保護の第二のメカニズムは、限定された認証回数についての無条件のセキュリティを保証する認証コードの使用に基づく論理関数を利用するが、これはフランス特許ＦＲ  ９５  １２１４４の対象になっており、またＣＡＲＤＩＳ’９８の議事録に掲載された論文“Ｓｏｌｕｔｉｏｎｓ  ｆｏｒ  Ｌｏｗ  Ｃｏｓｔ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ａｎｄ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ”にも記載されている。このような論理関数の使用はリプレイ攻撃に対する保護および秘密鍵の管理された消耗とを保証する。本発明において見当されるメモリーカードに基づく用途では、秘密鍵、およびカードが受信した変数としてのパラメータ、また場合によってはカードへの、あるいはカードが受信した内部データに依存する線形論理関数を有利には利用することができる。フランス特許ＦＲ  ９５  １２１４４に記載された論理関数群は、同期式のカードの制約に特に適した特定の場合をなし、二進ベクトル間の２を法とするスカラー積の計算を利用する。
【０００６】
上述の二つのメカニズムそれぞれは、特定の長所と短所を有する。第一のメカニズムに関しては、使用された非線形関数の情報セキュリティの仮説（現状の知識では証明不能）に基づいており、ワイヤードロジック式チップの低い計算性能によって課されたとても大きな制約は、通常の秘密鍵式アルゴリズムと同じくらい広い安全性の余地を許容せず、またそのために、使用された非線形関数の詳細な仕様の漏洩がリスクを示しうる。第二のメカニズムに関しては、認証回数がある閾値を超えない限りは、証明可能なセキュリティを得られる利点があり、そのため使用された線形関数の漏洩に結びつくリスクはない、しかしながら、逆にこの解決法に固有の、チップの寿命（あるいはリロードが可能なカードの場合は、二つのリロードの間）のために認証機能の使用回数を厳密に制限する必要性が、あるアプリケーションにとっては満たすことが困難な制約を示し得る。くわえて、ワイヤードロジック式チップに対してではなく、これらチップの検査のために使用されるセキュリティモジュールに対する攻撃は、不正行為者が、偶然に得られた正しい応答の十分な数が、選択したカード番号に組み合わされた秘密が彼に提供されるまで、無作為の応答を確認モジュールに提供するものであるが、該攻撃は、第二のメカニズムの場合、防止することがいっそう困難である。
【０００７】
発明の要約
したがって、本発明の目的によって解決されるべき技術的問題は、不正行為に対して使用者の電子チップの保護方法を提供することであって、該方法は以下の過程：
−アプリケーションに知られ、電子チップに埋め込まれた論理関数ｇを決定し、
−電子チップとアプリケーションにだけ知られ、かつ電子チップに秘密に保持された、第一の秘密鍵Ｋを電子チップに割り当て、
−電子チップの認証の度に、アプリケーションによって変数と呼ばれる変動する入力ワードＲを生成し、
−少なくとも変数Ｒと秘密鍵Ｋを含む引き数のリストに適用された論理関数ｇの結果である証明書を、電子チップとアプリケーションによって計算する、
過程を含み、そして高いセキュリティを保証するものである。
【０００８】
提示された技術的課題に対する解決法は、本発明によれば、前記方法においてさらに、以下の過程を含むことからなる：
−アプリケーションに知られ、かつ電子チップに埋め込まれた非線形関数ｆを決定し、
−電子チップとアプリケーションにだけ知られ、かつ電子チップに秘密に保持された第二の秘密鍵Ｋ’を電子チップに割り当て、
−電子チップの認証の度に、秘密鍵Ｋ’の少なくとも一部を含む引き数リストに適用された非線形関数ｆを用いて、マスクＭを決定し、
−マスクされた証明書の値だけをアプリケーションに利用可能にするために、マスクＭを用いて証明書の値を隠し、
−電子チップによって計算された証明書の隠された値をアプリケーションによって確認する。
【０００９】
このように、電子チップとアプリケーションの間の取引における不正行為に対する電子チップ保護に関する本発明による方法は、電子チップによって計算された証明書Ｓの値を隠すことであるが、これはアプリケーションがそれを読取ってその値を確認するために、電子チップが真正であるか決定する前に行う；証明書Ｓの計算とマスクＭの決定はそれぞれ、電子チップに埋め込まれた第一の鍵に依存する論理関数と、同じく電子チップに埋め込まれた第二の鍵に依存する非線形関数を介入させてなされ、関数と鍵はアプリケーションに知られている。
【００１０】
本発明に合致した方法は提示された課題を解決するが、それは電子チップによって計算された証明書の値Ｓが、平文で利用可能ではなく、隠された形式であるからである。したがって、不正行為者は電子チップとアプリケーションの間で交換された計算結果を単純に傍受したり、それを後でリプレイ攻撃したりすることはできない。該不正行為者は、証明書の計算を可能にする論理関数と第一の鍵の値、およびマスクの決定に介入する非線形関数と第二の鍵の値を知る必要がある。
【００１１】
アプリケーションは隠された値の正確さを確認するが、それは証明書とマスクＭの値を計算した後に、マスクＭによって証明書の値を隠し、そして電子チップによって計算された値とこの隠された値を比較することからなるか、あるいはマスクの逆関数を用いて電子チップによって計算された隠された証明書のマスクを外し、そしてマスクを外した値とアプリケーションによって計算された証明書の値を比較することによる。比較された値が同一であるとき、電子チップは真正であると判断され、チップとアプリケーションの間の取引が許可される。
【００１２】
有利な方法では、ある特定の実施態様は、カードの認証とデータの認証を証明書の計算に特定のデータ値を介入させることで、同時に保証することを可能にする。第一の場合、これらのデータは電子チップに記憶され、そしてチップの番号によって、あるいは電子チップに組み合わされた貸方によって構成され得る。第二の場合、これらのデータは、認証作業の際に、アプリケーションによってチップに書き込まれる。
【００１３】
独立した鍵ＫとＫ’を用いることが望ましいが、鍵Ｋから鍵Ｋ’を計算することを可能にする関数の形式で依存関係が存在しうる。電子チップに対する鍵の割り当ては、製造の終わりでのチップの個別化の際、あるいはリロード可能な電子チップの場合は電子チップのリロード作業の際に実施される。
【００１４】
別の特定の実施態様によれば、鍵ＫとＫ’の決定は、電子チップの番号とマスター秘密コードを入力の引き数とする多様化方法のアプリケーションによって実施されることができ、このことが有利には、アプリケーションがチップの番号を読取った後に各電子チップの秘密鍵を再構成することを可能にする；このときチップの秘密鍵の保存はまったく必要ない。
【００１５】
別の特定の実施態様によれば、鍵Ｋは、シーケンスＫ［ｉ］にまとめられた所定のビット数のワードである；各シーケンスＫ［ｉ］のビット数は、鍵Ｋ以外の入力の引き数のビット数に等しく、そしてある全体として取られ、論理関数ｇは、決定されたシーケンスＫ［ｉ］のビットのそれぞれと鍵Ｋ以外の入力の引き数のビットの間の２を法とするスカラー積を実施することからなる。
【００１６】
非線形関数ｆは、入力の引き数として、鍵Ｋ’あるいは変数Ｒ、あるいは電子チップの内部データＤ、あるいはアプリケーションによって電子チップに提供されたデータＤ’、あるいはこれらの組み合わせを有することができる；各引き数は、不正行為者が乗り越えなければならない新たな障害となる。
【００１７】
別の特定の実施態様によれば、変数Ｒは、アプリケーションによって生成された乱数からアプリケーションによって決定され、そして変数Ｒはアプリケーションによって電子チップに伝達される。
【００１８】
別の特定の実施態様によれば、変数Ｒは、アプリケーション（２）によって、または電子チップによって生成された連続する整数の列から決定される。
【００１９】
別の特定の実施態様によれば、非線形関数ｆはさらに入力引き数として、認証の際の電子チップの状態に依存する少なくとも一つのパラメータｃを有する。この態様の第一の変型例によれば、パラメータｃの値は少なくとも、電子チップに含まれ、かつ認証の度に増分する、カウンタの値から計算される。この態様の第二の変型例によれば、パラメータｃの値は少なくとも、電子チップに含まれ、かつ認証の度に変数Ｒだけ増分するカウンタの値から計算される。
【００２０】
別の特定の実施態様によれば、マスクＭによる証明書のマスキングは、少なくとも暗号化関数、とくにビット対ビットの排他的論理和演算を用いて計算される。
【００２１】
別の特定の実施態様によれば、電子チップの認証回数は、アプリケーションによって決定され、かつ電子チップに書き込まれた最大値Ｖに制限される。この態様の変型例によれば、電子チップは認証の度に増分されるカウンタを備え、そしてカウンタの値が最大値Ｖに達する際に、電子チップはいっさいの認証計算を停止する。
【００２２】
図面の簡単な説明
本発明のその他の特徴と利点は、非制限的な例として示された特定の実施態様の付属の図面を参照して、以下の説明を読むことによっていっそう明らかになるだろう。
【００２３】
図１は、本発明による方法の概略図である。
【００２４】
図２は、非線形関数ｆの概略図である。
【００２５】
実施態様の説明
図１は、アプリケーション２と電子チップ１の間の取引において、不正行為に対する使用者の電子チップ１保護の、本発明による方法を概略的に示している。
【００２６】
アプリケーション２は、非監視セルフサービス端末に、完全または部分的に移転することができるが、それは公衆電話または公共交通機関の回転改札口などのようなものである。使用者は、例えばプリペイドカードに埋め込まれた電子チップ１を保有するが、該チップはアプリケーション２との取引成立を可能にするものである。これらの取引を構成するのは、電話通信の確立、自動販売機における物品の支払い、パーキングメータからの駐車場所の賃貸、公共交通機関または基盤施設の利用提供のようなサービスへの支払い、などである。
【００２７】
本方法は、電子チップ１の認証を可能にする。電子チップ１は個別化されるが、それはその製造の際、また場合によってはリロード作業の際で、識別番号ｉと対象であるアプリケーションに結びつけられたデータＤの初期値による；値Ｄは一般的には、所与のアプリケーション２のための電子チップ１に付けられた貸方を表している。
【００２８】
本方法は、この個別化作業の際に、あるいは電子チップ１の販売に先立つ作業の際に、電子チップ１、あるいはアプリケーション２の認証に必要な初期条件を決定することから成る。これら初期条件に含まれるのは、論理関数ｇ、非線形関数ｆ、第一の秘密鍵Ｋと第二の秘密鍵Ｋ’の決定３である。論理関数ｇは、アプリケーション２に知られ、かつ「ＯＲ」、「排他的論理和」、「ＡＮＤ」、「ＮＡＮＤ」回路などの、論理回路４の形式で電子チップ１に埋め込まれている。
【００２９】
非線形関数ｆは、シフトレジスタを形成するレジスタの連続から形成された回路５の形式で埋め込まれることができるが、該シフトレジスタはメモリおよび排他的論理和演算に組み合わされている；かかる関数は「状態のオートマトン」と呼ばれ、一例を図２にあげた。この例によれば、関数ｆを構成するのは、第一の排他的論理和演算６、四つのフリップフロップｒ０からｒ３と四つの排他的論理和演算７から１０を含む４ビットのシフトレジスタ、およびサイズが１６×４ビットのメモリ１１である。各排他的論理和演算６から１０は、二つの入力と一つの出力を有する。各フリップフロップｒ０からｒ３は、一つのデータ入力、二つのデータ出力および図示されていない一つのクロック入力を有する。メモリ１１は、四つの入力、四つの出力および図示されていない一つのクロック入力を有する。入力引き数ｅ5，ｅ6は、この実施態様によれば、少なくとも第二の秘密鍵Ｋ’の一部と変数Ｒを含むが、第一の排他的論理和演算の入力の一つにある。第一の排他的論理和演算６の出力は、第二の排他的論理和演算７の第一の入力に接続されている。フリップフロップｒ０、ｒ１、ｒ２とｒ３の入力は、排他的論理和演算７から１０の出力に接続されている。フリップフロップｒ０、ｒ１とｒ２の第一の出力は、排他的論理和演算子から１０の第一の入力に接続されている。フリップフロップｒ０、ｒ１、ｒ２とｒ３の第二の出力は、メモリ１１のある入力に接続されている。排他的論理和演算子７から１０の第二の入力は、メモリ１１の出力に接続されている。フリップフロップｒ３の第一の出力は、引き数ｅ5，ｅ6に適用された関数ｆによって計算されたマスクＭの値を与えるが、該引き数は、この実施態様によれば、少なくとも第二の秘密鍵Ｋ’の一部と変数Ｒを含む。電子チップ１またはアプリケーション２の各認証に、入力の引き数のビット数に等しいクロックビートの数が対応する；マスクＭのビットは、各クロックビートごとに直列で出力１２に出力される。
【００３０】
第一の鍵Ｋは、一般的には電子チップに個別に割り当てられるが、典型的には数十から数千ビットのワードからなる；このワードはアプリケーションに知られ、かつ電子チップ１に秘密に保持される。しかしながら、本方法の特定の実施態様によれば、アプリケーションは鍵Ｋ自体ではなく、マスターと呼ばれる秘密を記憶する。このマスター秘密は、多様化と呼ばれる方法によって、チップの識別番号ｉから鍵Ｋを再構成することを可能にするものである。
【００３１】
本方法の実施態様を問わず、鍵Ｋは典型的には、ＰＲＯＭなどの読取り専用メモリ１３のチップに保存される。とくに、電子チップ１がリロード可能なタイプの場合、それはリロード可能なプリペイドカードに埋め込まれたチップの場合であるが、読取り専用メモリは、ＥＥＰＲＯＭのように書き込みもできる。
【００３２】
第二の鍵Ｋ’は、鍵Ｋと同様に、数ビットのワードの形式をとる。鍵ＫとＫ’はチップに記憶されるが、典型的にはアドレスの異なる同一メモリ１３内であり、Ｋ’（Ｋそれぞれ）のビットの決定は、場合によっては、鍵Ｋ（Ｋ’それぞれ）に依存することがある。
【００３３】
個別化作業の後、電子チップ１は販売され、ユーザーはアプリケーション２との取引を始めることができる。図１の概略図に示した認証方法は、アプリケーション２によって電子チップ１を認証することからなる。
【００３４】
本方法の第一の過程では、アプリケーションは変数と呼ばれるワードＲを生成する。ワードＲは、リプレイ攻撃のいっさいの試みを防止するために決定されたビット数を含んでいる；典型的には、ビット数は数十ビット程度である。ワードＲは、乱数生成器または擬乱数生成器によって生成される。特定の実施態様によれば、連続して生成されたワードＲは、連続する整数の列からなることができる。ワードＲは、証明書Ｓの計算のための入力の引き数である。電子チップ１がワードＲにアクセスできるように、アプリケーション２はチップ１に書き込み１４を実施するか、チップ１はアプリケーション２にワードＲを読みにくる。チップ１とアプリケーション２の間の交換は、チップ１の個別化の際に設定されたプロトコルに従って実施される；値Ｒは例えば、符号化されうる。ワードＲは、電子チップ１のバッファメモリ１５、ならびにアプリケーション２に一時的に保存される。
【００３５】
本方法の第二の過程において、一方のアプリケーション２と他方のチップ１が、それぞれＳとＳｐで示された証明書を計算する１６，１７。証明書Ｓ、Ｓｐそれぞれは、少なくとも変数Ｒと鍵Ｋを含む引き数ｅ1，ｅ2のリストに適用された論理関数ｇによって実施された計算の結果である。本方法の特定の実施態様によれば、引き数ｅ1，ｅ2のリストはさらに、電子チップ１の識別番号ｉ、もしくは電子チップ１に含まれる一つまたは複数のデータＤ、もしくは認証の前にアプリケーションによって生成され、かつ電子チップ１に書き込まれた一つまたは複数のデータＤ’、もしくは上記の引き数の組み合わせを含んでいる。
【００３６】
第三の過程において、本方法は非線形関数ｆを用いてマスクＭを決定する１８，１９ことからなる。マスクＭは、図２について先に述べたような、引き数ｅ5，ｅ6のリストに適用された非線形関数ｆの結果である。マスクＭはビットの所定の数ｍからなるが、それは典型的には約十ビットに等しい。数ｍが、証明書Ｓのビット数に等しい実施態様の利点は、隠された証明書が、証明書Ｓの値に関わるいっさいの情報を完全に開示しないことである；このことは、マスクＭの長さｍが証明書Ｓの長さより短いときには、該当しない。
【００３７】
本方法の第四の過程において、電子チップ１はマスクＭを用いて計算した証明書Ｓｐの値を隠す２０。第一の実施態様において、マスキング２０は暗号化関数を用いて計算される。暗号化関数は、ある値の集合に対して、別の値の集合を対応させる鍵によってパラメータ化された全単射関数である；例えば、関数Ｆ：ｘ→ｘ＋ｋ（２を法とする）、ここでｘ＝０または１かつｋ＝０または１は、暗号化関数として使用できる。暗号化関数は、証明書ＳｐとマスクＭの間の排他的論理和演算をなすことができる。マスキング作業の結果は、隠された証明書Ｓｐｍの値を与え、該値は電子チップ１のバッファメモリ２１に一時的に保存される。
【００３８】
本方法の第五の過程において、アプリケーションはバッファメモリ２１の読取り２２を実施するか、チップ１がアプリケーション２に隠された証明書Ｓｐｍを書き込みにくる。チップ１とアプリケーション２の間の交換は、変数Ｒの交換のために使用されたプロトコルと類似のプロトコルに従って実施されることができる。ついでアプリケーション２は、チップ１によって計算された隠された証明書の値Ｓｐｍを確認するが、それは自ら計算した証明書の値Ｓとの比較２３による。比較２３を実施するために、図示したように、アプリケーション２はマスクＭを用いて証明書の値Ｓを隠す２４が、それは隠された値Ｓｍを得て、それを値Ｓｐｍと比較２３するためで、あるいはアプリケーション２は、値Ｓｐを得て、それを値Ｓと比較するためにマスクＭの逆関数を介入させて、値Ｓｐｍのマスクを外す。
【００３９】
図１と２に関して先に記載した方法のある変型例は、有利には特定の不正の試みに対処することができるが、該試みは電子チップによるアプリケーションの認証の助けによって、電子チップに対するアプリケーションの機能を模倣することからなる。この変型によれば、アプリケーションが先に実施した作業は、電子チップによって、またその反対にも実施される。したがって、
−アプリケーションの認証の度に、変数と呼ばれる変動する入力ワードＲが、好ましくは、電子チップによって生成され、
−アプリケーションは、隠された証明書の値だけを電子チップに利用可能にするために、マスクＭを用いて、証明書とマスクを計算し、
−一方で電子チップに、他方でアプリケーションによって計算された証明書の値の比較作業は、電子チップによって実行される。
【００４０】
本発明はさらに、アプリケーションとの取引のための電子チップも対象とするが、この取引は本発明による方法を利用する。チップは以下を含む：
−第一の秘密鍵Ｋと第二の秘密鍵Ｋ’を保存するための、ＰＲＯＭまたはＥＥＰＲＯＭなどの非揮発性メモリ、
−証明書Ｓｐを計算するため、およびマスクＭを計算するための、マイクロプロセッサ、プログラマブル論理回路（英語の用語によるＥＰＬＤまたはＰＡＬ）などの第一の電子回路、
−論理関数ｇと非線形関数ｆが埋め込まれた集積回路、
−マスクＭで証明書を隠すための、マイクロプロセッサ、プログラム式論理回路（英語の用語によるＥＰＬＤまたはＰＡＬ）などの第二の電子回路。
【００４１】
本発明は、さらにこのような電子チップを備えるプリペイドカードをも対象とする。
【００４２】
本発明はさらに、このような電子チップとの取引のための装置も対象とするが、この取引は本発明による方法を利用する。装置は以下を含む：
−電子チップの秘密鍵Ｋ、Ｋ’、論理関数ｇおよび非線形関数ｆを記憶するための、記憶手段、
−証明書Ｓを計算するため、およびマスクＭを計算するための、計算手段、
−電子チップによって計算された証明書の隠された値Ｓｐｍの確認のための確認手段。
【００４３】
装置は、公衆電話、公共サービスへのアクセス端末（地下鉄の回転改札口、図書館への回転入場口、など）、パーキングメータなどの設備に含まれる。
【図面の簡単な説明】
【図１】  本発明による方法の概略図である。
【図２】  非線形関数ｆの概略図である。
【図１】
0004659148.tif 000002
【図２】
0004659148.tif 000003