(57)【特許請求の範囲】
【請求項１】
チップ・カードに属する第１マイクロコンピュータに対して、セキュリティ・モジュールに属する第２マイクロコンピュータ内のシークレット(S)を転送する方法であって、これら第１及び第２マイクロコンピュータが相互に反復認証を行い、
ａ）第１法(n)、第１確認指数(v)及び第１署名指数(s)から構成された第１公開・キィを有するカードの発行資格を持つ第１当局によって、前記チップ・カードが与えられ、各カードが、信用状(Crc)のサインによって得られる信用供与(Bc)によって規定され、そのサインは、前記第１公開・キィによって検証することができるものであり、
ｂ）第２法(n’)、第２確認指数(v’)及び第２署名指数(s’)から構成された第２公開・キィを有するカードの発行資格を持つ第２当局によって、前記セキュリティ・モジュールが与えられ、前記セキュリティ・モジュールが、が、信用状(Crm)のサインによって得られる信用供与(Bm)によって規定され、そのサインは、前記第２公開・キィによって検証することができるものであり、
ｃ）前記第１及び第２マイクロコンピュータが、共通の過渡的キィを形成するに適した有限集合の指数の使用に予めパブリック的に合意した方法において、
Ａ）前記カードのマイクロコンピュータによって実現され、このマイクロコンピュータが、指数関数(X)、オプション・メッセージ(M)並びに(X)及び(M)のサインを計算し、このサインは、前記第１公開・キィによって検証することができるものである、第１計算段階と、
Ｂ）前記カードのマイクロコンピュータが、前記セキュリティ・モジュールのマイクロコンピュータに対して第１証明を転送し、その第１証明が、前記カードの信用状(Crc)と、前記指数関数(X)と、前記オプション・メッセージ(M)と、(X)及び(M)のサインとを具える、第１データ転送動作と、
Ｃ）前記セキュリティ・モジュールのマイクロコンピュータによって実現され、このマイクロコンピュータが、前記第１公開・キィの助けにより証明が受信されたか否か及び前記カードによって正しくサインされたか否かを確認し、サインがなされている場合、受信した指数関数(X)及び前記セキュリティ・モジュールの指数(y)から共通の過渡的キィ(K)を計算し、次いで、オプション・メッセージ(M’)及び指数(y)の自身の指数関数(Y)を計算し、その後、前記共通の過渡的キィ(K)及び前記シークレット(S)から、転送すべきクリプトグラム（暗号：C）を生成するとともに、(M’),(Y)及び(C)に対するサインを生成する第２計算段階と、
Ｄ）前記セキュリティモジュールのマイクロコンピュータが、前記カードのマイクロコンピュータに対して第２証明を転送し、その第２証明が、前記モジュールの信用状(Crm)と、(Y),(M’)及び(C)と、(Y),(M’)及び(C)に対するサインとを具える、第２データ転送動作と、
Ｅ）前記カードのマイクロコンピュータによって実現され、このマイクロコンピュータが、前記第２公開・キィの助けにより証明が受信されたか否か及び前記マイクロコンピュータによって正しくサインされたか否かを確認し、サインがなされている場合、受信した前記指数関数(Y)及び前記カードの指数(x)から前記共通の過渡的キィ(K)を計算し、これによって前記クリプトグラム（暗号：C）から前記シークレット(S)を取り出すことができるようにする第３計算段階とを具え、
カードのマイクロコンピュータにより実行される第１計算段階では、
ａ）カードのマイクロコンピュータは、指数ｘを任意に選択し、選ばれた有限集合での自分自身の指数関数(X)を計算することと、
ｂ）カードのマイクロコンピュータは、値Ｘ及びセキュリティ・モジュールのマイクロコンピュータに送達するべきメッセージＭに署名し、これを実行するために、mod* n の整数の集合から１つの元ｒを選定し、この元のｖ乗をmod* nで計算し、その結果は初期証拠Ｔb （Ｔb ＝ｒv mod* n）とすることと、
ｃ）カードのマイクロコンピュータは、指数関数(X)とオプショナル・メッセージ(M)と初期証拠 (Ｔb)とを含むビット列に、圧縮関数("Hash")を適用することと、
ｄ）その結果から、カードのマイクロコンピュータは、圧縮の結果のビットを選択することにより０からv−1 までの間の値を持つ初期疑似チャレンジdb（db＝select(Hash(X,M,Tb))）を造り出すことと、
ｅ）カードのマイクロコンピュータは、元ｒに信用供与(Bc)のdb乗を掛けた積をmod* nで計算し、その結果は答Ｄ（Ｄ＝ｒBcdb mod* n）とすることとが行われ、
カードとセキュリティ・モジュールとの間の第１のデータ転送では、送達された第１の証明は、カードの信用状(Crc),指数関数(X),オプショナル・メッセージ(M),初期疑似チャレンジ(db)及び答(D)を含むビット列であり、初期擬似チャレンジ(db)及び答(D)が(X)及び(M)のサインを形成することを特徴とする方法。
【請求項２】
第１オーソリティと第２オーソリティとは一つの同一のものであることを特徴とする請求項１に記載の方法。
【請求項３】
─各カードが、信用状の冗長度(J＝Red(Crc))により得られる代表値(Jc)によって定義され、資格を与えられたオーソリティは、代表値(Jc)をmod* nで-s乗し、その結果は信用供与(Bc)（JcBcv mod * n ＝1）であり、
─セキュリティ・モジュールが、信用状のレターの冗長度 (Jm＝Red(Crm)) により得られる代表値(Jc)によって定義され、資格を与えられたオーソリティは、代表値(Jm)を mod* n'で-s'乗し、その結果は信用供与(Bm)（JmBmv mod * n'＝1）であることを特徴とする請求項１に記載の方法。
【請求項４】
セキュリティ・モジュールのマイクロコンピュータにより実行される第２計算段階では、
ａ）セキュリティ・モジュールのマイクロコンピュータは、答(D)のｖ乗に代表値(Jc)のdb乗を掛けた積をmod* nで計算し、その結果は最終証拠Ｔf（Ｔf＝Ｄv Jcdb mod* n）とすることと、
ｂ）セキュリティ・モジュールのマイクロコンピュータは、指数関数(X)とオプショナル・メッセージ(M)と最終証拠(Ｔf)とを含むビット列に圧縮関数("Hash")を適用し、またマイクロコンピュータは、カードが為したのと同じやり方で最終疑似チャレンジ(df)（df＝select(Hash(X,M,Tf))を得るためにビットを選定することと、
ｃ）セキュリティ・モジュールのマイクロコンピュータは、カードのマイクロコンピュータが指数関数(X)とメッセージ(M)とに正しくサインしたこと及びそれが受け取った第１の証明が正確であることを示すところの、最終疑似チャレンジ(df)と初期疑似チャレンジ(db)とが等しい場合には、そしてその場合に限り、処理動作の継続を容認することと、
ｄ）セキュリティ・モジュールのマイクロコンピュータは、指数(y)を任意に選択するとともに選択された有限集合での指数(y)の指数関数(Y)を計算することを計算することとによって、それ自体の指数関数(Y)を計算し、
ｅ）セキュリティ・モジュールのマイクロコンピュータは、受信した指数関数(X)を前記セキュリティ・モジュールの指数（ｙ）でべき乗することによって、共通の過渡的キィ(K)を計算することと、
ｆ）セキュリティ・モジュールのマイクロコンピュータは、共通の過渡的キィ(K)とシークレット(S)との援けを借りてクリプトグラム(C)を計算することと、
ｇ）セキュリティ・モジュールのマイクロコンピュータは、指数関数(Y)とカードに転送されるべきもう一つのオプショナル・メッセージ(M')とクリプトグラム(C) とにサインし、これを実行するために、mod* n'の整数の集合から１つの元(r')を無作為に選定し、この元のv'乗を mod* n'で計算し、その結果は初期証拠Ｔb'（Ｔb'＝r' v'mod * n'）とすることと、
ｈ）セキュリティ・モジュールのマイクロコンピュータは、指数関数(Y)とオプショナル・メッセージ(M')とクリプトグラム(C) と初期証拠(Ｔb')とを含むビット列に、圧縮関数("Hash")を適用する（Hash(X,M',C,Tb)）ことと、
ｉ）この圧縮の結果から、セキュリティ・モジュールのマイクロコンピュータは、０からv'-1 までの間の値を持つ初期疑似チャレンジ(db')（db' ＝select(Hash(X,M',C,Tb'))）を造り出すことと、
ｊ）セキュリティ・モジュールのマイクロコンピュータは、元(r')にモジュールの信用供与(Bm)のdb' 乗を掛けた積を mod* n'で計算し、その結果は答Ｄ'(Ｄ'＝ｒ'Bm db'mod* n')とすることとが行われ、
セキュリティ・モジュールとカードとの間の第２のデータ転送では、セキュリティ・モジュールのマイクロコンピュータは、カードのマイクロコンピュータに向かって、モジュールの信用状(Crm),自身の指数関数(Y),オプショナル・メッセージ(M'),クリプトグラム(C),初期疑似チャレンジ(db')及び答(D')を含むビット列により構成される第２の証明を送達し、初期擬似チャレンジ(db’)及び答(D’)が(Y),(M’)及び(C)のサインを形成することを特徴とする請求項３記載の方法。
【請求項５】
カードのマイクロコンピュータにより実行される第３計算段階では、
ａ）カードのマイクロコンピュータは、答(D')のv'乗とモジュールの信用状(Crm)に対応するモジュールの代表値(Jm)のdb' 乗とを掛けた積をmod* n'で計算し、その結果は最終証拠Ｔf'（Ｔf'＝D' v' Jmdb'mod * n'）とすることと、
ｂ）カードのマイクロコンピュータは、値(Y,M',C)と最終証拠(Ｔf') とを含むビット列に圧縮関数"Hash"を適用し、またマイクロコンピュータは、セキュリティ・モジュールが為したのと同じやり方でビットを選定し、こうして最終疑似チャレンジ(df')（df' ＝(Hash(Y,M',C,Tf'))を得ることと、
ｃ）カードのマイクロコンピュータは、セキュリティ・モジュールのマイクロコンピュータが(Y,M',C)に有効にサインしたこと及びそれが送達した証明が正確であることを示すところの、最終疑似チャレンジ(df') と初期疑似チャレンジ(db')とが等しい場合には、そしてその場合に限り、処理動作の継続を容認することと、
ｄ）カードのマイクロコンピュータは、受信した指数関数（Y）を前記カードの指数(x)でべき乗することによって、共通の過渡的キィ(K)を計算し、前記クリプトグラム(C)からシークレット(S)を取り出すために共通の過渡的キィ(K)を用いることとを行うことを特徴とする請求項４に記載の方法。
【請求項６】
複数のカードに属する第１マイクロコンピュータのシークレットを、セキュリティ・モジュールが属する第２マイクロコンピュータから非インタラクティブ転送する方法であって、これら第１及び第２マイクロコンピュータが、共通の過渡的キィを確立するのに適切な集合セットの指数の使用に対して予め物理的に同意した方法において、
−各カードに対して、第１証明が予めディレクトリに書き込まれ、これによって、ディレクトリが、互いに相違するカードの全ての証明を有し、第１法(n)、第１確認指数(v)及び第１署名指数(s)から構成された第１公開キィが、各チップ・カードに設けられ、各カードが、信用状(Crc)のサインによって得られる信用供与(Bc)によって規定され、そのサインは、前記第１公開・キィによって検証することができるものであり、カードの第１証明が、前記カードの信用状(Crc)と、計算された指数関数(X)と、オプション・メッセージ(M)と、(X)及び(M)のサインとを具え、そのサインは、前記第１公開・キィによって検証することができるものであり、
−第２法(n’)、第２確認指数(v’)及び第２署名指数(s’)から構成された第２公開キィが、前記セキュリティ・モジュールに設けられ、前記セキュリティ・モジュールが、信用状(Crm)のサインによって得られる信用供与(Bm)によって規定され、そのサインは、前記第２公開・キィによって検証することができるものであり、
−前記セキュリティ・モジュールのマイクロコンピュータが、前記ディレクトリの第１証明を読み出し、前記第１公開・キィの助けにより証明が受信されたか否か及び前記カードによって正しくサインされたか否かを確認し、サインがなされている場合、受信した指数関数(X)及び前記セキュリティ・モジュールの指数(y)から共通の過渡的キィ(K)を計算し、次いで、オプション・メッセージ(M’)及び指数(y)の自身の指数関数(Y)を計算し、その後、前記共通の過渡的キィ(K)及び前記シークレット(S)から、転送すべきクリプトグラム（暗号：C）を生成するとともに、(M’),(Y)及び(C)に対するサインを生成し、
−前記セキュリティ・モジュールのマイクロコンピュータが、前記証明を前記ディレクトリに入力したカードのマイクロコンピュータに対して第２証明を転送し、その第２証明が、前記モジュールの信用状(Crm)と、(Y),(M’)及び(C)と、(Y),(M’)及び(C)に対するサインとを具え、
−前記カードのマイクロコンピュータが、前記第２公開・キィの助けにより証明が受信されたか否か及び前記マイクロコンピュータによって正しくサインされたか否かを確認し、サインがなされている場合、受信した前記指数関数(Y)及び前記カードの指数(x)から前記共通の過渡的キィ(K)を計算し、これによって前記クリプトグラム（暗号：C）から前記シークレット(S)を取り出すことができるようにし、
カードのマイクロコンピュータにより実行される第１計算段階では、
ａ）カードのマイクロコンピュータは、指数ｘを任意に選択し、選ばれた有限集合での自分自身の指数関数(X)を計算することと、
ｂ）カードのマイクロコンピュータは、値Ｘ及びセキュリティ・モジュールのマイクロコンピュータに送達するべきメッセージＭに署名し、これを実行するために、mod* n の整数の集合から１つの元ｒを選定し、この元のｖ乗をmod* nで計算し、その結果は初期証拠Ｔb （Ｔb ＝ｒv mod* n）とすることと、
ｃ）カードのマイクロコンピュータは、指数関数(X)とオプショナル・メッセージ(M)と初期証拠 (Ｔb)とを含むビット列に、圧縮関数("Hash")を適用することと、
ｄ）その結果から、カードのマイクロコンピュータは、圧縮の結果のビットを選択することにより０からv−1 までの間の値を持つ初期疑似チャレンジdb（Hash(X,M,Tb)，db＝select(Hash(X,M,Tb))）を造り出すことと、
ｅ）カードのマイクロコンピュータは、元ｒに信用供与(Bc)のdb乗を掛けた積をmod* nで計算し、その結果は答Ｄ（Ｄ＝ｒBcdb mod* n）とすることとが行われ、
カードによってディレクトリに書き込まれる第１の証明は、カードの信用状(Crc),指数関数(X),オプショナル・メッセージ(M),初期疑似チャレンジ(db)及び答(D)を含むビット列であり、初期擬似チャレンジ(db)及び答(D)が(X)及び(M)のサインを形成することを特徴とする方法。
【請求項７】
２つのマイクロコンピュータによって利用される有限集合の指数が、有限体の指数であり、前記有限体が、ｐを標数、ｑを原始元とするものであり、次でカードのマイクロコンピュータが第１計算段（Ａ）内で、ｐより小なる正の指数（ｘ）をランダムに選択し、対応する指数関数（Ｘ＝ａx mod ｐ）を計算し、セキュリティ モジュールのマイクロコンピュータが、第２計算段（Ｃ）内で、ｐより小なる正の整数（ｙ）を選択し、対応する指数関数（Ｙ＝ａy mod ｐ）を計算し、指数関数（Ｘ）を指数（ｙ）でべき乗して、（ａx ）y mod ｐを求め、これにより共通の過渡的キィを形成し、次でカードのマイクロコンピュータは、第３計算段（Ｅ）で、指数関数（Ｙ）を指数（ｘ）でべき乗して、すなわち（ａy ）x mod ｐを求め、これを共通の過渡的キィとする請求項１ないし５のいずれか１項に記載の方法。
【請求項８】
セキュリティ モジュールのマイクロコンピュータが、共通の過渡的キィ（Ｋ）及びシークレット（Ｓ）より、（Ｓ）と（Ｋ）との排他的オア演算によって暗号（Ｃ）を計算し、カードのマイクロコンピュータが、共通の過渡的キィ（Ｋ）より受信したこの暗号（Ｃ）を用い、（Ｃ）と（Ｋ）との同一の排他的オア演算を行って、シークレット（Ｓ）を抽出することを特徴とする請求項１ないし７のいずれか１項に記載の方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、２つのマイクロコンピュータ間でシークレット(secret)を転送する方法を提供することを、その目的として有する。
本発明は、一般に「チップ・カード(chip cards)」と呼ばれ、多数の適用範囲（いわゆる「多用途」又は「多目的」カード）に分解できるようなマイクロコンピュータ・カードの、実現とその利用のために用いられる。
【０００２】
【従来の技術】
これらのカードが抱えている問題の１つは、端末機とも呼ばれるマイクロプロセッサの具えるセキュリティ・モデュールから、シークレットすなわち命令(command) を、マイクロコンピュータ・カードに転送することである。
【０００３】
今日この問題を解決するのに用いられる技術は、シークレット鍵(secret key)の階層(hierarchy) を持つシークレット鍵の暗号記法演算方式(cryptographic algorithms)を使用することである。これらのカードの発行者は、カード毎に異なるデータ（例えばチップの一連番号又はカード所持者の口座番号等）の関数としてカードに第２番目の鍵(secondary keys)としての多様性が与えられているマスター・キイの管理権(disposal)を持つ。
【０００４】
従って今日発行されているチップ（特定個人用としたB0モードのマスクM4）をもつ各銀行カードは、多様化されたキイを具えている。各セキュリティ・モデュールはマスター・キイの管理権を持つ。内部的には、各セキュリティ・モデュールは、自分自身でアドレスするカードの多様化されたキイを改作して、然る後にこのキイを受信した結果を確認し且つそれが制御する行動を防護するために利用する。
【０００５】
もっと最近のマスクでは、各カード中に暗号記法的鍵(cryptographic keys)の組が１つ（又は複数）ある。データの起原を保証するのに用いられる鍵（無欠陥キイ -integrity keys) は、データの秘密性を防護するのに使われる鍵（機密保持キイ -confidentiality keys) とは異なるものである。これは、多数の用途に共用されている BULL CP8 及びPHILIPS の開発したPC2, MP 及び TB100というマスクの場合である。
【０００６】
いくつかの応用の間で共用できるカードでは、１つのマスター・ファイル(master file -略してMF) がデディケイテッド・ファイル(dedicated files -略してDF) を造り出すことができる。多用途カードを有効なものとするには、カードを発行したオーソリティ(authority) は、カードのリソーセズ(resources) の一部分をデディケイテッド・ファイルへの権限の一部分に割り当てることによって、デディケイテッド・ファイルへの権限の一部分を委任する必要がある。従っていくつかのデディケイテッド・ファイルは、そのうちの１つのセキュリティが他のもののセキュリティに影響することなく、同一のカードの中に共存することが可能でなければならない。
【０００７】
現在の処、発行者のマスター・キイは、チップ・カードの新用途を開放するためにセキュリティ・モデュール中で作用するように、作られなければならない。そうすると、サービス提供者の第１のキイは、カードの発行者に属するキイの防護の下に、カードに送達される。
【０００８】
比較的無名のセキュリティのモデュールで寧ろ不十分にしか制御されていない環境中に多数ばらまかれているものの中にマスター・キイを入れ込むことは、或いは第三者の、たとえそれがカードの発行者であっても、のシークレットの制御の下に実際のシークレットをばらまくことは、寧ろ危険である。
【０００９】
【発明が解決しようとする課題】
本発明は、かようなシークレット鍵の階層とデディケイトする行動に起因する束縛とを避ける方法を提供する。そうするとセキュリティ・モデュールは、カードと全く同様に特定個人用とされる。しかし、この構造はチップ・カードのセキュリティ・アーキテクチュアにとって極めて重要なマスター・ファイル及びデディケイテッド・ファイル（MF及びDF）を侵害しない。
【００１０】
本発明を詳述する前に、この種の技術で習慣的に実行されている既知のツールがどんなものであるかを簡単に想起して置こう。更に詳しい情報については、本出願人に与えられたフランス国特許第FR-A-2 620 248号明細書 “Procedes d'authentification d'accreditations ou de messages a apport nul de connaissance et de signature de messages" 及びこれに相当する1990年２月22日に出願された米国特許出願第 488,371号、並びに其処に記載の多数の引用文献を参照されたい、なおそれらはすべて本出願の引用文献とされる。
【００１１】
現在フランスでは、チップ・カードの認証(authentification)を完全なものとするのに、身元の確認(identity)及び公開キイ技術(public key technique)に基づく方法が使われる。その精確な説明は “Specifications et normes de la carte a memoire bancaire"と題する文献に記述されている。該文献（1984年１月発行、第１版）はパリー(29, rue de Lisbonne, Paris,16eme)所在の “Groupement des Cartes Bancaires"から入手できる。
【００１２】
各チップ・カードは、身元確認値(identification value)を含んでいる。それはビット列の形で書かれた整数である。この整数は、それをチェックする確認器(verifier)で、銀行当局(bank authority)により公開されたキイを利用して読み取られる。この整数を３乗し、銀行当局により公開された数ｎで割り算した剰余を付けると、前半と後半とが同一のビット列を見出さなければならない筈である。前半、後半の各々には、カードの他の場所で読み取ることの出来るいくつかの情報コンポネント、すなわち所持者の銀行口座番号、チップ・カードの一連番号、有効期間、利用者コード等が存在する。これらの情報コンポネントを符号化するビット列が、用語の広い意味における身元の確認を構成する。
【００１３】
利用できるチップは関連の算術計算を実行するのに十分な容量を持たないので、認証値の点検はカードの外部で実行される。
【００１４】
しかし現在、チップ・カードの新しいコンポネントの開発は、その最終段階にまで来ている。このコンポネントと共に、公開キイ数字に基づくいくつかの技術が実用に適するまでになっている、更に特定すれば、
─それらをキイの中に入れ込むことを許容する有限体での指数化、
─信用供与の計算を許容するディジタル署名、
─信用供与のお蔭で認証と署名とを許容するゼロ知識技術
等の技術である。
【００１５】
１．有限集合での指数化(exponentiation in finite sets)
有限集合での指数化は、２つのセキュリティ・マイクロコンピュータにとって、その無欠陥性は保証されているが機密保持性は保証されていないリンクを経由して、共通のシークレット鍵を確立することを可能にさせる。この手順が最初に記述されたのは、“IEEE Transactions on Information Theory" 誌1976年11月号,Vol.IT-22,644-654ページ所載のWhitfield DIFFIE及びMartin HELLMANによる“New Directions in Cryptography"という論文においてである。この方法では、２つのセキュリティ・マイクロコンピュータは、掛け算の交換律を持つ大きな有限集合の使用について公に合意が得られている。この集合は：
─ 500ビット以上の素数ｐを特徴として持つ有限体、指数化の底(base)は体の素元(primitive element)aである（すなわちｐを法とする逐次冪乗が体のすべての元を表す）、該素数は、(p-1)/2 もまた素数であり且つｂを少なくとも20ビットとするとき２512 ±b の形であることを好適とし、底ａはバイト(byte)で表されることを好適とする；
─1000番目の拡大(extension) 以上の２による拡大体、指数化の底は原始多項式の根である；
─有限体上の楕円曲線の点集合；
であろう。
【００１６】
説明のために、第１の実例について以下に考察する。発呼者は、この利用について標準値がないであろう場合に対して選ばれたパラメータａ及びｐを被呼側に指示できることに注意されたい。
【００１７】
各セキュリティ・マイクロコンピュータは、指数として使用されるであろうｐより小さい正の整数を、無作為に且つ秘密に選定する。ｘ及びｙはこうして選定された２つの指数であることに注意されたい。各マイクロコンピュータは対応する指数関数、すなわちそれぞれ
Ｘ＝ａx mod p
Ｙ＝ａy mod p
を計算する。
【００１８】
その次に、マイクロコンピュータはそれぞれの結果を交換し、各々が受け取った値を自身の秘密指数で冪乗する。指数関数は交換律が成り立つから、２つのセキュリティ・マイクロコンピュータは、共通のシークレット鍵Ｋに到達する。
Ｋ＝Ｘy mod p ＝ａxy mod p
Ｋ＝Ｙx mod p ＝ａyx mod p
【００１９】
３番目のマイクロプロセッサが、交換値Ｘ及びＹに気付いても鍵Ｋを見出すことには成功しないだろう、と云うのは、今考えている大きな有限集合では、指数関数がどのように変換されなければならないかが分からないからである。離散的な対数の計算のためのすべての既知のアルゴリズムは、有限集合の次数が増加すると急速に役に立たなくなる。
【００２０】
兎も角リンクに挿入された３番目のマイクロコンピュータが、一方では鍵Ｋ′を、また他方では鍵Ｋ″を、セキュリティ・マイクロコンピュータには気付かれることなく構成できるということに注意しなければならない。使用に適するようにするためには、プロトコルは認証手続(authentification procedure)又は署名(signature) により完成されなければならない。
【００２１】
２．公開キイ・ディジタル署名図式(public-key digital signature diagrams) 情報の電子交換におけるディジタル署名は、在来の郵便における手書きの署名と等価である。
【００２２】
すべての公開キイ・ディジタル署名組織では、シークレット鍵は通信文(messages)にサインするために「署名動作 (signature operation)」中に有効とされ、公開キイは署名を確認するために「確認動作(verification operation)」中に有効とされる。結果として１対の鍵が、「シークレット署名キイ」と「公開確認キイ」とによって構成される。
【００２３】
２つの型式のディジタル署名組織が明確に定義され、同一であることが確認される：
─確認動作がその入力エレメントとして通信文を必要とする時は、図式は「付録付署名組織(signature with appendix organization)」である、付録の計算は圧縮関数(compression function)を利用する、
─確認動作が通信文とその特定の冗長度、時に「通信文の影(message shadow)」と呼ばれるもの、とを同時に明らかにする時は、組織は「通信文再構築署名組織(signature organization re-establishing the message)」である。
【００２４】
後者の場合には通信文は、時に「通信文の刻印(imprint of a message)」と呼ばれる別のもっと長い通信文を圧縮した結果であるかも知れない。通信文に 128ビットの刻印を与える圧縮関数を適用し、然る後に刻印に通信文を再構築する署名組織を適用することにより、「刻印付署名(signature with imprint)」組織を実現することが好適に可能であって、これは付録付署名組織の特別の場合である。研究の過程で作られたいくつかの配列は、２つの動作を明瞭に区別することをその目的として持つ：該２つの動作というのは、通信文にサインすることと通信文の刻印にサインすることとの２つである。
【００２５】
現在、国際標準化機関(ISO) は、通信文再構築署名組織(ISO/CEI DIS 9796)と、ディジタル署名用圧縮関数(ISO/CEI DP 10118)とを定義(define)している。この両者について以下に詳述する。
【００２６】
2.1  署名図式(signature diagram) ISO/CEI DIS 9796
サインをすべき主体(entity)は、密かに且つ機密保護の下に１対のキイを具えている。これらのキイは、国際規格ISO/CEI DIS 9796 “Schema de signature numerique retablissant le message"の規定するところに従って選定するのを好適とする。これはアルゴリズムRSA(発明者 RIVEST,SHAMIR及びADLEMAN の名前を取ってこう名付けた) から導かれる。それは偶数の羃指数に適用され、ｎを法とする整数環の n/2より小さい元に作用する。この集合は加法律及び乗法律を具えた環状の構造である。この環の中の演算は“mod* n"と記すことにする。
【００２７】
算術的モデュールｎは、無作為に選出され秘密に保たれている２つの奇素数の積である。もし確認の羃指数が偶数ならば、２つの素数のうちの一方は８を法として３と合同であり、もう一方は８を法として７と合同である。その算術的モデュールは２の(k−1)乗とｋ乗との間に含まれるような唯一つの整数ｋが存在する。従って算術的モデュールは最上位ビット(most significant bit)が１で且つ最下位ビット(least significant bit) が１であるようなｋビットの数字列により符号化される。公開確認キイは算術的モデュールｎと確認羃指数ｖとを含む。シークレット署名キイは署名羃指数ｓを含む。
【００２８】
サインされるべき通信文は長さの限定されたビット列である。７つの最上位ゼロ(most significant zero) に０を埋め込むことにより、ｚバイト(bytes) 数字列が得られる。サインされるべき通信文の最大長は算術的モデュールの長さの関数である：16ｚは k＋2 より小さいか等しいに違いない。
【００２９】
ｔという数が、2tバイトの数字列が(k−2)ビットより長いか等しくなるような最小の整数として定義される。通信文の正確な限界をマークしながら、ｔバイトを得るためにｚバイトを繰り返してたまたま拡大することにより、また長さを２倍にするためにｔ個の冗長度バイトを挿入して導入することにより、「冗長度のある通信文」を符号化する2tバイトの数字列が得られる。
【００３０】
然る後に、冗長度のある通信文の、最下位の４ビット単位(least significant quartet) を強制的に６にするために置き換えた最下位バイトとは別に、最上位ビット１とこれに続く(k−2)個の最下位ビットを持つ(k−1)ビットの数字列を構築する。これらの予防策（最上位ビットの１と最下位の４ビット単位の６）は、アルゴリズムRSA に対するいくつかの既知の攻撃に対抗することを可能とする。この(k−1)ビットの数字列は「冗長度のある整数」を符号化する。
【００３１】
代表元(representative element)は、ｖが偶数で且つ整数のヤコービの記号(Jacobi symbol) が算術的モデュールｎに関して -1 であるときを除いて、整数に等しい。この場合には、それは整数を２で割ったものに等しい。従って、指数ｖが偶数のときには、代表元の算術的モデュールｎに関するヤコービの記号は、因数のうちの一方が８を法として３と合同であり、もう一方が８を法として７と合同であるという束縛を考慮に入れて、強制的に +1 とする。これらの予防策は、以前の予防策が偶数の羃指数の使用を許容することを完全なものとする。
【００３２】
代表元を mod* n でｓ乗することによって、オーソリティは通信文の署名を得る。
【００３３】
署名を確認するためには、それを mod* n でｖ乗することが必要である。然る後に、最上位ビットの１と最下位の４ビット単位の６を持つ(k−1)ビットの数字列により符号化された冗長度のある整数を再確立する必要がある。更にその後で、冗長度のある整数の(k−2)個の最下位ビットを持ち且つ15の最上位ゼロを０にする 2t バイトの数字列を再確立する必要がある。最後に、署名が許容された時に再確立された通信文がそこから抽出される前に、これらの 2t バイトの冗長度を試験する必要がある。
【００３４】
2.2  圧縮関数(compression functions)
無欠陥性（認証及び署名）を防護することを意図した多くのメカニズムでは、任意のビット列を所与の長さの限定されたビット列に変換する疑似ランダム関数(pseudo-random functions) を必要とする。そのような関数は
─通信文をその刻印(print) がサインされる前に刻印に戻す（例えば、規準ISO/CEI DIS 9796に従って）
─データ・エレメント列を刻印又は疑似ランダム関数による疑似チャレンジ(pseudo-challenge)に戻す
─無作為選択を装い、底の値を種々に変化させ、又はそれを漏らすことなくある１つの値に係わる
のに利用されることができる。
【００３５】
これらの圧縮関数は衝突の生起に影響されてはならない。このことは、出力点で同じ結果を与えるような２つのビット列を入力点で見出すことは実際上不可能に違いないことを意味する。
【００３６】
ある種の命題(certain propositions)、例えばマサチューセッツ工科大学のRon RIVESTが設計したアルゴリズムMD4 (“RSA Security Incorporated"社発行の “Message Digest Algorithm")は特に魅力的で、これは 128ビット又は 256ビットで結果を与えるものである。
【００３７】
３．ゼロ知識技術(Zero-knowledge techniques)
「ゼロ知識技術」なる概念は、1985年５月に“Proceedings of the 17th STOC,ACM Symposium on Theory of Computing"291-304ページ所載のShafi GOLDWASSER,Silvio MICALI及びCharlie RACKOFF による“The Knowledge Complexity of Interactive Proof" という文献で導入されている。
【００３８】
これらの技術は、フランスで使用され、各種チップ・カードの認証を完全なものとするその方法（認証値及び証明付身元確認）の自然の展開を許容する。
【００３９】
今日、銀行カードの認証値及び電話カードの証明付身元確認は、バンク・オーソリティ又はフランス・テレコムの公開キイのお蔭でそれらを制御する確認器で読み取られる。
【００４０】
将来は、各応用例に対して、セキュリティ・マイクロコンピュータは、公開「信用状」(public “credential")Cr 及び秘密の信用供与Ｂをそれに割り当ててあるだろう。信用供与の量はいくつかのデータ・エレメント：すなわち名前（所持者、カード発行オーソリティ）、有効期間、利用できるサービス、及びマイクロコンピュータの一連番号等を含む有限長のビット列である。信用供与は信用状の署名によって得られる。
【００４１】
ゼロ知識技術は、セキュリティ・マイクロコンピュータにとっては、答えを漏らすことなく複雑な問題を解いていると他のマイクロコンピュータに信じさせることを可能にする。従ってその答え（実際には信用状の署名によって得られた信用供与）は、秘密を公表することなく必要な回数だけ用いることができる。
【００４２】
以上を要約すると、あるオーソリティがセキュリティ・マイクロコンピュータに与信し、該セキュリティ・マイクロコンピュータはその後で、それらの身元確認及び実際には屡々他のセキュリティ・マイクロコンピュータである確認器へのそれらの権利を証明する。
【００４３】
オーソリティは公開確認キイで特徴付けられる。該オーソリティは対応する署名キイを使用し且つその秘密を維持しなければならない。
【００４４】
セキュリティ・マイクロコンピュータはその信用状で特徴付けられる。該セキュリティ・マイクロコンピュータは対応する信用状を使用し且つその秘密を維持しなければならない。
【００４５】
確認器は無名(anonymous) である。それはデータの公開されたエレメント：すなわちオーソリティにより公開された確認キイ及びセキュリティ・マイクロコンピュータにより出力された信用供与、を知り且つこれを使用することをのみ要する。
【００４６】
この技術を更に詳細に説明するには、
─オーソリティがシークレット・マイクロコンピュータに与信するのに用いる信用供与動作(accredition operation),
─その過程で確認器がセキュリティ・マイクロコンピュータを認証するところの相互に作用し合う認証(interactive authentification),
─サインする動作と確認する動作とを含む付録を用いてのディジタル署名図式(organization for digital signation),
を逐次記述しなければならない。
【００４７】
3.1  信用供与動作(accredition operation)
与信を行うオーソリティは密かに且つ秘密裡に１対のキイを、規格ISO/CEI DIS 9796 “Schema de signature numerique retablissant le message"に従って与えられる。公開キイは算術的モデュールｎと確認指数ｖとを含み、シークレット鍵は署名指数ｓを含む。算術的モデュールｎはｋビットの連鎖(string)として上述のように符号化される。
【００４８】
オーソリティは密かに且つ秘密裡に、ISO/CEI DIS 9796の規定に従って、但しシークレット指数ｓを -s に置き換えて、（規格9796でサインされる通信文に対応する）与信量から信用供与を計算する。代表値Ｊ（規格9796中の代表元に対応する）を mod* n で -s 乗することにより、オーソリティは与信Ｂを得る。記号 mod* n はその意味として、ｎで割り算した剰余を取り、然る後にこの剰余又はそのｎに対する補数のうちのいずれか小さい方を保存する、という意味を持つ。
【００４９】
信用供与Ｂ、代表値Ｊ及び信用状Crは、以下に示す方程式を確認する。該方程式中で関数“Red" は、規格ISO/CEI DIS 9796に所定の規約であって、信用状からの代表値（それぞれ規格DIS 9796で「代表元(representative element)」及び「割当てられた通信文(assigned message)」とされるもの）を構築するための規約を要約したものである。その結果として、信用供与Ｂは、その他のすべてのパラメータは公開であるような、すなわちＪは信用状Crから得られる代表値、ｖ及びｎは発行するオーソリティの公開キイであるような方程式の秘密の解と考えることができる。その方程式とは、
Ｊ＝Red(Cr) 及び  ＪＢv  mod* n ＝１
である。
【００５０】
オーソリティは密かに且つ秘密裡に信用状Cr及び信用供与Ｂをマイクロコンピュータに投入する。この動作は、刻文(inscription) がマスター・ファイル(MF)中に実行されたときは「エミッション(emission)」と呼ばれ、デディケイテッド・ファイル(DF)中に実行されたときは「デレゲーション(delegation)」と呼ばれる。信用供与は、オーソリティ及び関係のセキュリティ・マイクロコンピュータ以外のすべてのファイルに対して秘密が保持されなければならない。従ってセキュリティ・マイクロコンピュータは、信用状Crを出力することにより、対応の信用供与Ｂを知ることを主張(claim) する。
【００５１】
先に引用したフランス国特許第FR-A-2 620 248号明細書は、かような信用供与が、いかにしてセキュリティ・マイクロコンピュータを認証し、また、いかにしてこのセキュリティ・マイクロコンピュータが受け取り又は送達するサイン又は通信文を認証するかを示している。この認証は発明者の名前を取ってGUILLOU-QUISQUATER又はGQと名付けられ、以下に詳述するように、４つの段階(stages)及び３つの交換点(exchanges) で実行される。
【００５２】
3.2  ４つの段階及び３つの交換点での認証GQ
─信用状Crを発行するセキュリティ・マイクロコンピュータは、 mod* n の整数の集合から１つの元ｒを無作為に選出する、それから元ｒのｖ乗を mod* n で計算する。その結果は初期証拠(initial evidence)Ｔb である；マイクロコンピュータは初期証拠Ｔb を確認器(verifier)に転送する,
─然る後に確認器はチャレンジ(challenge) ｄを０ないし v−1 から無作為に選出し、これをマイクロコンピュータに転送する，
─セキュリティ・マイクロコンピュータは、元ｒと秘密信用供与Ｂのｄ乗との積を mod* n で計算する；その結果は答Ｄである；マイクロコンピュータは答Ｄを確認器に転送する,
─確認器は、信用状Crに対応する答Ｄのｖ乗と代表値Ｊのｄ乗との積を mod* n で計算する；その結果は最終証拠(final evidence)Ｔf である；最終証拠Ｔf が初期証拠Ｔb'と等しいときは認証は成功(successful)である.
【００５３】
結果として次の関係式が得られる：
Ｔb ＝ｒV  mod* n
Ｄ＝ｒＢd  mod* n
Ｊ＝ Red(Cr)
Ｔf ＝Ｄv ｊd  mod* n
【００５４】
3.3  付録付ディジタル署名の図式(scheme)GQ
図式GQはまた付録付ディジタル署名のためにも用いることができる。すべての署名図式は署名動作と確認動作とから成る：
【００５５】
署名の動作：
─信用状Crを持つセキュリティ・マイクロコンピュータは、 mod* n の整数の集合から１つの元ｒを無作為に選出する、それから元のｖ乗を mod* n で計算する；その結果は初期証拠Ｔb である，
─然る後にマイクロコンピュータは、確認器に転送されるべき通信文Ｍと初期証拠Ｔb とを含むビット列に圧縮関数“Hash"を適用する；この圧縮の結果に基づいて、マイクロコンピュータは、例えば最下位ビットを選ぶことにより、０から v−1 までの間の値を持つ初期疑似チャレンジ(initial pseudo-challenge)dbを造り出す；最後にマイクロコンピュータは元ｒと秘密信用供与Ｂのdb乗との積を
mod* n で計算する；その結果は答Ｄである。
【００５６】
従って次の関係式が成り立つ：
Ｔb ＝ｒV  mod* n ；db＝select(Hash(Ｍ, Ｔb)) ；
Ｄ＝ｒＢdb mod* n
【００５７】
通信文Ｍにサインする付録(appendix)は、信用状Crと初期疑似チャレンジdbと答Ｄとから成る。
【００５８】
確認動作：
─確認器は信用状Crに対応する答Ｄのｖ乗と代表値Ｊのdb乗との積を mod* n で計算する；その結果は最終証拠Ｔf である，
─然る後に確認器は、受け取った通信文Ｍと最終証拠Ｔf とを含むビット列に圧縮関数“Hash"を適用する；確認器は、マイクロコンピュータがやったのと同じやり方でビットを選ぶことにより、最終疑似チャレンジdfを造り出す。
【００５９】
結果的に次の関係式が成り立つ：
Ｊ＝ Red(Cr)；Ｔf ＝Ｄv Ｊdb mod* n
df＝select(Hash(Ｍ, Ｔf))
【００６０】
署名は、最終疑似チャレンジdfが初期疑似チャレンジdbに等しいとき、そしてそのときに限り、受け入れられる。
【００６１】
図式GQはいくつかの刊行物に既に掲げられている:
─ Springer Verlag発行の“Proceedings of Eurocript '88,Lecture Notes in Computer Sciences",Vol.330, 123-128ページ所載 L.GUILLOU及びJ.J.QUISQUATERによる“A practical zero-knowledge protocol fitted to security microprocessor minimizing both transmission and memory".
─ Springer Verlag発行の“Proceedings of Crypto'88,Lecture Notes in Computer Sciences",Vol.403, 216-231ページ所載 L.GUILLOU及びJ.J.QUISQUATERによる“A paradoxical identity-based signature scheme resulting from zero-knowledge".
─“Proceedings de Securicom'89,Paris",1989年３月,149-158ページ所載J.J.QUISQUATER及びL.GUILLOU による“Des procedes d'authentification bases sur une publication de problemes complexes dont les solutions maintenues secretes constituent autant d'accreditations".等の諸文献がそれである。
【００６２】
これら先行技術の引用資料に拠って、本発明により解決する問題は、前述したように、シークレットを転送する問題及び前以て共有した秘密なしに且つ共通のクリプトグラフィック・アルゴリズム(cryptographic algorithm) なしに相互認証を樹立した２つのマイクロコンピュータ間の行動を制御する問題、のいずれか一方又は双方である、と理解して、以下に本発明を説明する。
【００６３】
本発明による方法は、チップ・カードに属する第１マイクロコンピュータに対して、セキュリティ・モジュールに属する第２マイクロコンピュータ内のシークレット(S)を転送する方法であって、これら第１及び第２マイクロコンピュータが相互に反復認証を行い、
ａ）第１法(n)、第１確認指数(v)及び第１署名指数(s)から構成された第１公開・キィを有するカードの発行資格を持つ第１当局によって、前記チップ・カードが与えられ、各カードが、信用状(Crc)のサインによって得られる信用供与(Bc)によって規定され、そのサインは、前記第１公開・キィによって検証することができるものであり、
ｂ）第２法(n’)、第２確認指数(v’)及び第２署名指数(s’)から構成された第２公開・キィを有するカードの発行資格を持つ第２当局によって、前記セキュリティ・モジュールが与えられ、前記セキュリティ・モジュールが、が、信用状(Crm)のサインによって得られる信用供与(Bm)によって規定され、そのサインは、前記第２公開・キィによって検証することができるものであり、
ｃ）前記第１及び第２マイクロコンピュータが、共通の過渡的キィを形成するに適した有限集合の指数の使用に予めパブリック的に合意した方法において、
Ａ）前記カードのマイクロコンピュータによって実現され、このマイクロコンピュータが、指数関数(X)、オプション・メッセージ(M)並びに(X)及び(M)のサインを計算し、このサインは、前記第１公開・キィによって検証することができるものである、第１計算段階と、
Ｂ）前記カードのマイクロコンピュータが、前記セキュリティ・モジュールのマイクロコンピュータに対して第１証明を転送し、その第１証明が、前記カードの信用状(Crc)と、前記指数関数(X)と、前記オプション・メッセージ(M)と、(X)及び(M)のサインとを具える、第１データ転送動作と、
Ｃ）前記セキュリティ・モジュールのマイクロコンピュータによって実現され、このマイクロコンピュータが、前記第１公開・キィの助けにより証明が受信されたか否か及び前記カードによって正しくサインされたか否かを確認し、サインがなされている場合、受信した指数関数(X)及び前記セキュリティ・モジュールの指数(y)から共通の過渡的キィ(K)を計算し、次いで、オプション・メッセージ(M’)及び指数(y)の自身の指数関数(Y)を計算し、その後、前記共通の過渡的キィ(K)及び前記シークレット(S)から、転送すべきクリプトグラム（暗号：C）を生成するとともに、(M’),(Y)及び(C)に対するサインを生成する第２計算段階と、
Ｄ）前記セキュリティモジュールのマイクロコンピュータが、前記カードのマイクロコンピュータに対して第２証明を転送し、その第２証明が、前記モジュールの信用状(Crm)と、(Y),(M’)及び(C)と、(Y),(M’)及び(C)に対するサインとを具える、第２データ転送動作と、
Ｅ）前記カードのマイクロコンピュータによって実現され、このマイクロコンピュータが、前記第２公開・キィの助けにより証明が受信されたか否か及び前記マイクロコンピュータによって正しくサインされたか否かを確認し、サインがなされている場合、受信した前記指数関数(Y)の指数を計算して、前記共通の過渡的キィ(K)を付与し、これによって前記クリプトグラム（暗号：C）から前記シークレット(S)を取り出すことができるようにする第３計算段階とを具え、
カードのマイクロコンピュータにより実行される第１計算段階では、
ａ）カードのマイクロコンピュータは、指数ｘを任意に選択し、選ばれた有限集合での自分自身の指数関数(X)を計算することと、
ｂ）カードのマイクロコンピュータは、値Ｘ及びセキュリティ・モジュールのマイクロコンピュータに送達するべきメッセージＭに署名し、これを実行するために、mod* n の整数の集合から１つの元ｒを選定し、この元のｖ乗をmod* nで計算し、その結果は初期証拠Ｔb （Ｔb ＝ｒv mod* n）とすることと、
ｃ）カードのマイクロコンピュータは、指数関数(X)とオプショナル・メッセージ(M)と初期証拠 (Ｔb)とを含むビット列に、圧縮関数("Hash")を適用することと、
ｄ）その結果から、カードのマイクロコンピュータは、圧縮の結果のビットを選択することにより０からv−1 までの間の値を持つ初期疑似チャレンジdb（Hash(X,M,Tb)，db＝select(Hash(X,M,Tb))）を造り出すことと、
ｅ）カードのマイクロコンピュータは、元ｒに信用供与(Bc)のdb乗を掛けた積をmod* nで計算し、その結果は答Ｄ（Ｄ＝ｒBcdb mod* n）とすることとが行われ、
カードとセキュリティ・モジュールとの間の第１のデータ転送では、送達された第１の証明は、カードの信用状(Crc),指数関数(X),オプショナル・メッセージ(M),初期疑似チャレンジ(db)及び答(D)を含むビット列であり、初期擬似チャレンジ(db)及び答(D)が(X)及び(M)のサインを形成することを特徴とする。
【００６４】
明らかに、第１および第２のオーソリティが１つで同じである場合には、このオーソリティは単一のパブリック  キーを使用しうるのみで、この場合、第１および第２のキーは混合（amalgamate）される。
【００６５】
２つのマイクロコンピュータ用として使用される有限集合上の指数は、その特性に対して体の原始エレメントであるベース（基数）ａと整数ｐを有する有限体上の指数であることが好ましく、この場合、カードのマイクロコンピュータは、第１計算ステージＡにおいて、ｐより小さい正の指数Ｘを無作為に選定して、対応する指数（Ｘ＝ａx mod ｐ）を計算し、その後セキュリティ  モジュールのマイクロコンピュータは第２計算ステージＣにおいて、ｐより小さい正の整数ｙを選定して、対応する指数（Ｘ＝ａy mod ｐ）を計算し、かつ指数Ｘのｙ乗、すなわち（ａx ）y mod ｐを生成して共通変換キー（common transitory key ）を構成させる。ついで、カードのマイクロコンピュータは、第３計算ステージＥにおいて、指数ＹのＸ乗、すなわち（ａy ）x mod ｐを生成して、共通キーを与える。
【００６６】
また、セキュリティ  モジュールのマイクロコンピュータは排他的論理和オペレーションによるシークレットおよび共通変換キーをベースにして暗号を計算し、カードのマイクロコンピュータは同じ排他的論理和オペレーションによる共通変換キーをベースにして受信した暗号からシークレットを抽出することが好ましい。
【００６７】
以下非限定実施例により本発明の特徴につき説明する。
【００６８】
チップ  カードのインターフェースは国際標準シリーズ ISO/CEI 7816,“Cartes a circuit(s) integre(s) a contacts ”、特に、1989年９月発行の国際標準 ISO/CEI 7816-3 “Cartes a circuit(s) integre(s) a contacts, Section 3：Signaux electroniques et protocoles de transmission ”により標準化されている。
【００６９】
この標準には、５バイトの見出し（ヘッダ）を有するイクステリア（exterior）からコマンドが得られる旨規定されている。カードは手続上のバイトにより反応し、その後、単一の方向において若干数のデータ  バイトが変換され、最後に、カードはコマンドの終りにおいてその状態を与える２つのバイトによりコマンドを終了する。
【００７０】
その結果、データがカード内に入る操作を行っている間の“エンタリング（entoring）”コマンドとデータがカードから離れる操作を行っている間の“リービング（leaving ）”コマンドとは異なるコマンドとなる。
【００７１】
したがって、前記標準のわく組のなかで本発明方法を実現するため、カードは始めにリービング  コマンドの制御のもと、セキュリティ  モジュールに向かってサーティフィケート（certificate ）を発出し、その後、エンタリング  コマンドの制御のもとセキュリティ  モジュールにより発出されるサーティフィケートを受信する。実際上には、セキュリティ  モジュールもチップ  カードの形状で実現される。次に、セキュリティ  モジュールはエンタリング  コマンドの制御のもと、カードにより発出されるサーティフィケートを受信した後、リービング  コマンドの制御のもと、その行先に対するカードを有するサーティフィケートを発出する。この場合、カードおよびセキュリティ  モジュールを受信するマシンのセキュリティ（機密性）にも、これらのマシン間で使用される接続のセキュリティにも危ぶむ理由は存在しない。
【００７２】
かくして、例のついでに選定した特定ケースの場合、本発明手順の種々のステージは以下のように表わすことができる。
Ａ）チップ  カードにより行われる第１ステージ
チップ  カードはｐ（有限集合の最初の数）より小さい正の指数Ｘを無作為に選定し、対応する指数Ｘを計算する。
Ｘ＝ａx mod ｐ
【００７３】
その後、カードはセキュリティ  モジュールに伝送すべきメッセージＭおよび値Ｘをサインする。これがため、カードは整数の集合 mod* ｎから無作動にエレメントｒを選定し、このエレメントｒのＶ乗の mod* ｎを計算する。その結果を初期証拠（initial evidence）Ｔb とする。その後、カードは指数Ｘ、任意選択メッセージＭおよび初期証拠Ｔb を含むビット列に圧縮ファンクション“ハッシュ（Hash）”を供給する。次に、この結果から、カードは例えばその最下位ビットを選定することにより、０ないしＶ−１の値を有する初期擬似チャレンジ（initial pseudo-challenge）ｄｂを生成し、最後に、カードはエレメントｒとそのシークレット  信用供与（secret accredition）Ｂc のｄｂ乗との積の mod* n を計算する。その結果をアンサーＤとする。
【００７４】
したがって、以下の関係式が成立する。
Ｔb ＝ｒV  mod* n ；
ｄｂ＝select（Hash（Ｘ, Ｍ, Ｔb ））；
Ｄ＝ｒＢc db mod* ｎ
【００７５】
Ｂ）第１データ  トランスファ
チップ  カードは信用状（credential）Ｃre, 値Ｘ，任意選択メッセージＭ、初期擬似チャレンジｄｂおよびアンサーＤを含むビット列であるサーティフィケートをセキュリティ  モジュールに対して伝送し、次に２つのデータ  エレメントｄｂおよびＤはＸおよびＭをサインする。
【００７６】
Ｃ）セキュリティ  モジュールにより行われる第２計算ステージ
セキュリティ  モジュールは信用状Ｃrcに対応する表示（リプレゼンタティブ）Ｊc のｄｂ乗とアンサーＤのＶ乗との積 mod* ｎを計算する。その結果を最終証拠（final evidence）Ｔf とする。その後、セキュリティ  モジュールは指数Ｘ、任意選択メッセージＭおよび最終証拠Ｔf を含むビット列に圧縮ファンクション“ハッシュ（Hash）”を供給する。最終模擬チャレンジｄf はカードにより行われたと同じ方法でビットを選定することにより得られる。
【００７７】
かくして、次の関係式が成立する。
Ｊc ＝Red （Ｃrc）；
Ｔf ＝Ｄv Ｊc db mod* n ；
ｄf ＝select（Hash（Ｘ, Ｍ, Ｔf ））
【００７８】
セキュリティ  モジュールは、最終擬似チャレンジｄf が実際上初期擬似チレレンジｄb に等しい場合のみ処理操作を続けることに同意する。この場合にはチップ  カードは適正にＸおよびＭをサインし、それが発出したサーティフィケートは正しい。
【００７９】
次に、セキュリティ  モジュールはＰより小さい正の指数ｙを無作為に選定し、対応する指数Ｙを計算した後、メンバー内で指数Ｘをｙ乗して共通変換キーＫを得る。前記変換キーＫはHash（Ｋ，１）、Hash（Ｋ，２）、Hash（Ｋ，３）、……による圧縮ファクションの結果としての多様化（ダイバージフィケーション）により拡張することができる。その後、セキュリティ  モジュールはそのときカードに伝送される暗号を計算する。例えば暗号Ｃは共通変換キーＫおよびシークレットＳの排他的論理和から得られる。
【００８０】
かくして、次の関係式が成立する。
Ｙ＝ａy mod ｐ；
Ｋ＝Ｘy mod ｐ＝ａxy mod  ｐ；
Ｃ＝（ＳとＫとの排他的論理和）
【００８１】
次に、セキュリティ  モジュールは有用なデータ、すなわち指数Ｙ、カードに伝送すべき他の任意選択メッセージＭ′および信号Ｃをサインする。これがため、セキュリティ  モジュールは整数の集合 mod* ｎから無作為にエレメントｒ′を選定し、このエレメントのＶ乗の mod* ｎ′を計算する。その結果として初期証拠Ｔb ′を得る。
【００８２】
次に、セキュリティ  モジュールは指数ｙ、任意選択メッセージＭ′、暗号Ｃおよび初期証拠Ｔb ′を含むビット列に圧縮ファンクション“ハッシュ（Hash）”を供給する。この圧縮の結果、セキュリティ  モジュールは、例えば最下位ビットを選定することにより０ないしＶ′−１の値を有する初期擬似チャレンジｄｂ′を生成する。最後に、セキュリティ  モジュールはエレメントｒ′とそのシークレット  信用供与Ｂm のｄｂ′乗との積の mod* ｎ′を計算し、その結果としてアンサーＤ′を得る。
【００８３】
かくして、次の関係式が成立する。
Ｔb ′＝ｒ′v' mod* ｎ′；
ｄｂ′＝select（Hash（Ｘ，Ｍ′，Ｃ，Ｔb ′））
Ｄ′＝ｒ′Ｂm db' mod * ｎ
【００８４】
Ｄ）第２データ  トランスファ
セキュリティ  モジュールは信用状Ｔrm、指数Ｙ、任意選択メッセージＭ′、暗号Ｃ、初期擬似チャレンジｄｂ′およびアンサーＤ′を含むビット列であるサーティフィケートをカードに対し伝送する。次に、２つのデータ  エレメントｄｂ′およびＤ′は値Ｙ，Ｍ′およびＣをサインする。この場合、カードは指数Ｘを知るのみであり、したがってシークレットＳのみを初期構成することができる。
【００８５】
Ｅ）カードにより行われる第３計算ステージ
カードはアンサーＤ′のＶ′乗と信用状Ｃrmに対応する表示（リプレゼンタティブ）Ｊm のｄｂ′乗との積の mod* ｎ′を計算し、その結果として最終証拠Ｔf ′を得る。
【００８６】
その後、カードは値Ｙ，Ｍ′，Ｃおよび最終証拠Ｔf ′を含むビット列に圧縮ファンクション“ハッシュ（Hash）”を供給する。最終擬似チャレンジｄf ′はセキュリティ  モジュールにより行われたと同じ方法でビットを選定することにより得られる。
【００８７】
かくして、次の関係式が成立する。
Ｊm ＝Red （Ｃrm）；
Ｔf ′＝Ｄ′v'Ｊm db'  mod* ｎ′；
ｄf ′＝select（Hash（Ｙ，Ｍ′，Ｃ，Ｔf ′））
【００８８】
カードは最終擬似チャレンジｄf ′が初期擬似チャレンジｄｂ′に等しい場合のみ処理操作を続けることに同意する。そうである場合には、セキュリティ  モジュールは実際上、Ｙ，Ｍ′およびＣをサインし、それが発出したサーティフィケートは正確である。
【００８９】
カードは選定された体においては指数ＹをＸ乗して共通の変換シークレット
キーＫを得る。前記変換キーＫはセキュリティ  モジュールにおけると同じ方法で任意選択的に拡張される。その後、カードは暗号Ｃおよび共通変換キーＫの排他的論理和オペレーションによりシークレットＳを再構成する。
【００９０】
最後に、カードはモジュールにより制御される作動、例えば爾後における計算を目的としたシークレットＳの新しいキーとしてのメモリへの書込み操作を行う。
【００９１】
かくして、次の関係式が成立する。
Ｋ＝Ｙ* mod ｐ＝ａxy mod  ｐ；
Ｓ＝（ＣとＫとの排他的論理和）
【００９２】
上述の手順にディレクトリ（登録簿）の使用により相互作用なしにセキュリティ  モジュールからチップ  カードへのシークレットの転送（トランスファ）を可能にするため僅かに修正することができる。実際上、ラジオ包装においては、セキュリティ  モジュールをカード間の相互作用は不可能である。さらに、加入者を管理する構成要素（エンティティ）は随意にユーザのカードに影響する上方ファイル、一種のディレクトリを有する。したがって、ディレクトリへの書込みが第１ステージ（Ａ）および第１データ  トランスファ（Ｂ）に対応し、ディレクトリの使用が第２計算ステージ（Ｃ）、第２データ  トランスファ（Ｄ）および第３計算ステージ（Ｅ）に対応するという条件で上述の方法を使用できることは好都合である。
【００９３】
これらの変形は特に放送分野での利用に好都合であるが、支払いシステムや電子メールの分野でも等しく有用であることが証明されている。
【００９４】
放送分野での利用方法およびタイトル  マネジング  メッセージの受信に関しては、米国特許第4,947,428 号に対応する文書ＦＲ−Ａ−2,632,148 号を参照されたい。
【００９５】
第１変形においては、各カードはそれ独自のサーティフィケートをディレクトリ内に記入する。
【００９６】
第２変形においては、セキュリティ  モジュールを管理するオーソリティは共同のサーティフィケートをディレクトリ内に記入し、各カードにグループ内のランクを割当て、共通の指数Ｘを固定させることにより、グループのカードを１つづつオーソライズする。放送中に、実際上グループ当り数百または数千のカード集団を有するカード群内に延在する共有のコモンキーを利用することができる。この場合には、グループの各カードはグループのアドレス、グループの指数およびグループ内のランキングを有する。また、セキュリティ  モジュールにより生成されるサーティフィケートを表象するメッセージＭ′には、
−グールプのカードが実行しなければならない作動（例えば、加入の更新）；
−サーティフィケートをアドレスする（グループのアドレス）カード  グループの標識；
−およびグループに割当てられた最大のランクに等しいかそれより高いビット数を有する索引付け体
が列挙される。
【００９７】
次に、ノンインタラクティブ  トランスファ法（non-interactive transfer method ）に戻ること、その主要ステージは以下のようになる。
【００９８】
共同のサーティフィケートを形成するためオーソリティはグループの指数として前もって指数Ｘを固定させた他のセキュリティ  モジュールを使用する。この場合には、任意選択メッセージＭはグループを構成する種々のカードを描写する情報成分を含む。グループに新しいカードを付加する場合には、新しい共同サーティフィケートを生成して管理センターのファイルを更新することで充分である。
【００９９】
セキュリティ  モジュールから発出する共同サーティフィケートを受信するカードは、このサーティフィケートがそれが属するグループにアドレスされ、かつそのランクに対応するビットが実際に索引付き（indexing）体内で活性状態にある場合に、意図する行動がそれにより既に行われたかどうかをチェックされ、その場合にはそれのみがサーティフィケートを使用する。
【０１００】
次に、ノンインタラクティブ  トランスファ法は以下のような主要ステージを含む。
Ａ）グループを創設したオーソリティまたはチップ  カードによるディレクトリ（登録簿）への書込み
【０１０１】
サーティフィケートの生成は前述の第１ステージＡ）に対応する。ここで、カードによる個別サーティフィケートの形成に関するこれらの計算を要約して復習する。
−  チップ  カードはｐより小さい正の指数Ｘを無作為に選定し、対応する指数Ｘ＝mod ｐを計算する。
−  チップ  カードは値Ｘおよびセキュリティ  モジュールに伝送すべき任意のメッセージＭをサインする。これがため、それは整数の集合 mod* ｎから無作為にエレメントｒを選定し、このエレメントのＶ乗の mod* ｎを計算し、その結果初期証拠Ｔb を得る。
−  カードは指数Ｘ、任意選択メッセージＭおよび初期証拠Ｔb を含むビット列に圧縮ファンクション“ハッシュ（Hash）”を供給する。
−  その結果からカードは、例えば、最下位ビットを選定することにより初期擬似チャレンジｄｂを生成する。
−  カードはエレメントｒとそのシークレット  信用供与Ｂc のｄｂ乗との積の
mod* ｎを計算し、その結果としてアンサーＤを得る。
−  チップ  カードは信用状Ｃrc、値Ｘ、任意選択メッセージＭ、初期擬似チャレンジｄｂおよびアンサーＤを含むビット列であるサーティフィケートをディレクトリに記入し、次に、２つのエレメントｄｂおよびＤにＸおよびＭをサイ
ンする。
【０１０２】
チップ  カードは明らかに、例えば限定された妥当な日付や使用に課せられる制限のような任意選択メッセージＭ内に表象（figuring）されるいくつかの情報成分ならびにシークレット指数Ｘをそのメモリ内に記憶させなければならない。
【０１０３】
かくして、ディレクトリは任意の瞬時に検証可能な個別および共同のサーティフィケートの集合により構成される。
【０１０４】
Ｂ）その機密性（シークレット）分配のためのセキュリティ  モジュールによる
ディレクトリの使用
ディレクトリの使用は２つのステージで行われる。まず始めに、ディレクトリ内に存在するサーティフィケートの検証があり、その後で、１つのカードまたはカード群に作用を及ぼすサーティフィケートの生成を行う。第１ステージは条件付であり、ディレクトリのサーティフィケートはこれが必要な場合のみ検証される。
【０１０５】
この場合、行われ種々のオペレーションは以下のとおりである。
ａ）セキュリティ  モジュールによるディレクトリのサーティフィケートの検証
−  セキュリティ  モジュールは信用状Ｃrcに対応する表示（リプレゼンタティブ）Ｊc のｄｂ乗とアンサーＤのＶ乗との積の mod* ｎを計算し、その結果と
して最終証拠Ｔf を得る。
−  セキュリティ  モジュールは指数Ｘ、任意選択メッセージＭおよび最終証拠Ｔf を含むビット列に圧縮ファンクション“ハッシュ（Hash）”を供給する。最終擬似チャレンジｄｂはカードの場合と同じような方法でビットを選定することにより得られる。
−  セキュリティ  モジュールは最終擬似チャレンジｄｆが実際上初期擬似チャレンジｄｂに等しい場合のみ継続に同意する。チップ  カードは適正にＸおよびＭをサインし、ディレクトリのサーティフィケートは正確である。
【０１０６】
ｂ）チップ  カードまたはカード群に作用を及ぼすためのサーティフィケートの準備
−  セキュリティ  モジュールはｐより小さい正の指数ｙを無作為に選定して、対応する指数Ｙを計算し、その後メンバー内でＸをｙ乗して共通変換キーＫを得る。前記変換キーＫはハッシュ（Ｋ，１）、ハッシュ（Ｋ，２）、ハッシュ（Ｋ，３）、……による圧縮ファンクションの結果としての多様化（ダイバージフィケーション）により拡張することができる。
−  セキュリティ  モジュールはカードに伝送される暗号を計算する。（例えば、暗号Ｃはは共通変換キーＫおよびシークレットＳの排他的論理和オペレーションから得られる。
−  最後に、セキュリティ  モジュールは有用なデータ、すなわち指数Ｙ、カードに伝送すべき他の任意選択メッセージＭ′および暗号Ｃをサインする。これがため、セキュリティ  モジュールは整数の集合 mod* ｎ′から無作為にエレメントｒ′を選定し、このエレメントのＶ乗の mod* ｎ′を計算し、その結果として初期証拠Ｔb ′を得る。
−  セキュリティ  モジュールは指数ｙ、任意選択メッセージＭ′、信号Ｃならびに例えば最下位ビットを選定することにより０ないしＶ′−１の値を有する初期証拠ｄｂ′を含むビット列に“ハッシュ（Hash）”圧縮ファンクションを供給する。
−  セキュリティ  モジュールはエレメントｒ′とそのシークレット  信用供与Ｂm のｄｂ′乗との積の mod* ｎ′を計算し、その結果としてアンサーＤ′を得る。
【０１０７】
ｃ）セキュリティ  モジュールからチップ  カードまたはカード群へのサーティフィケートの伝送
−  セキュリティ  モジュールは信用状Ｃrm、指数Ｙ、任意選択メッセージＭ′、暗号Ｃ、初期擬似チャレンジｄｂ′およびアンサーＤ′を含むビット列であるサーティフィケートを発出する。２つのエレメントｄｂ′およびＤ′は値Ｙ，Ｍ′およびＣをサインする。シークレットＳを回復するため利用可能な指数Ｘを有することが必要である。
【０１０８】
ｄ）チップ  カードによるサーティフィケートの使用
−  サーティフィケートを共同的に使用する場合は、サーティフィケートが１つのグループに関係する場合およびグループ内のそのランクに対応するインデックスが活性状態にある場合、カードはコマンドされたアクションがまだ実行されていないものと考える。
−  次に、カードはレスポンス（右管）Ｄ′のＶ′乗と信用状Ｃrmに対応する表示（リプレゼンタティブ）Ｊm のｄｂ′乗との積の mod* ｎ′を計算し、その結果として最終証拠Ｔf ′を得る。
−  カードは値Ｙ，Ｍ′，Ｃおよび最終証拠Ｔf ′を含むビット列に圧縮ファクション“ハッシュ（Hash）”を供給する。最終擬似チャレンジｄf ′はセキュリティ  モジュールにより行われたと同じ方法でビットを選定することにより得られる。
−  カードは最終擬似チャレンジｄf ′が初期擬似チャレンジｄｂ′に等しい場合のみ、処理操作を続けることに同意する。この場合は、セキュリティ  モジュールは実際上Ｙ，Ｍ′およびＣをサインし、それが発出したサーティフィケートは正確である。
−  カードは体において指数ＹをＸ乗して共通変換キーＫを得る。前記変換キーＫはセキュリティ  モジュールにより行われたと同じ方法で任意選択的に拡張される。
−  カードはセキュリティ  モジュールにより行われたと同じように、暗号Ｃおよび共通変換キーＫの排他的論理和オペレーションによりシークレットＳを再構成する。
−  最後に、カードはモジュールによりコマンドされる作動、例えば、爾後における計算を目的としたシークレットＳの新しいキーとしてのメモリへの書込み操作を行う。
【０１０９】
このように限定されたディレクトリはその権利を管理するためセキュリティモジュールにより使用可能である。実際上、放送分野において、きわめて頻繁に起る情報管理の問題はカードにおける権利の管理に関するものであるが、ここではこれらの権利の管理のためシークレットを伝送するを要しない。この後者のメカニズムは前述のメカニズムを単純化したものと考えることができる。それは記号（キグネーシャ）ＧＱの直接適用であり、前述のメカニズムを完成させるものである。
【０１１０】
カードは公共確認キー（public verficiation key ）を発行したオーソリティにより認可され、かつ目的（objective ）および妥当性周期（validity period ）の見地から所望の信任状（credential）を提供するセキュリティ  モジュールにより発出されるサーティフィケートを受容する。
【０１１１】
カードにグループ内で組織化され、各カードはグループ内のランクを有する。セキュリティ  モジュールにより発行されるサーティフィケート内にあるメッセージＭ′は、少なくともグループ内に割当てられた最大ランク数のビット  体およびグループのアドレスをカウントとする。かくして、各カードは、メッセージがそのグループに関係する場合およびメッセージがグループ内のそれに関係する場合は、そのランクに対応するビットのステージに応じて認識することができる。
【０１１２】
さらに、メッセージＭ′は、例えば、記述の更新、信用状の銘記、後刻使用すべきチケットの準備いい等、カードにおいて引受けるべき行動を規定する。セキュリティ  モジュールの信用状の場合は、モジュールが引受ける権利を与えれた行動をオーソリティが明確に定義している。