(57)【要約】検証プロトコルにおいてベリファイアのタスクを軽減すること。本発明は、公開鍵を用いた暗号化タスクの実行方法に関する。本発明の方法は、メッセージ認証、識別または電子サインメカニズムを組み込む安全な電子トランザクションにおいて、エンティティＢを具備し、ベリファイアの計算負荷を軽減するために使用することができる。前記方法は、検証ステップに関するベリファイアの確信レベルを減じることなく、必ずしも信頼できない外部のエンティティＣに計算の一部を委任することにある。更に具体的には、本方法は、少なくともステップ６が外部のエンティティＣによって実行できるように、検証タスクを少なくとも二つのステップ６および８に分けることにある。特に、本方法は、ＲＳＡ電子サインシステムに適合すると共に、別々のアルゴリズムに基づくメッセージ認証プロトコルに適合する。
2005508514.tif 000002
【特許請求の範囲】
【請求項１】
秘密鍵を与えられた第１エンティティ（Ａ）と第２エンティティ（Ｂ）との間で交換される少なくとも一つのデジタルデータアイテムに関する公開鍵を用いて暗号化タスクを実行するための方法であって、
前記暗号化タスクは、少なくとも、
前記データアイテムの部分的イメージを得るために前記公開鍵の全部または一部を用いてオープンデジタル処理に前記データアイテムを委ねる仲介エンティティ（Ｃ）によって実行される第１ステップ（６，１５）と、
前記データアイテムに関する前記暗号化タスクを達成するような方法で前記公開鍵の全部または一部を用いてパブリックデジタル処理に前記部分的イメージを委ねる第２エンティティ（Ｂ）によって実行される第２ステップ（８，１７）と、
の二つのステップに分けられることを特徴とする方法。
【請求項２】
前記仲介エンティティ（Ｃ）は、前記第２エンティティ（Ｂ）が駐在する物理装置とは別の物理装置に駐在することを特徴とする請求項１に記載された暗号化タスクを実行する方法。
【請求項３】
前記仲介エンティティ（Ｃ）は、前記第１エンティティ（Ａ）が駐在する物理装置に駐在することを特徴とする請求項１または２の何れか１項に記載された暗号化タスクを実行する方法。
【請求項４】
前記暗号化タスクが、第２エンティティ（Ｂ）による第１エンティティ（Ａ）の識別を含み、第１整数（ｒ）であって第１エンティティ（Ａ）における秘密デジタル処理に委ねられる前記デジタルデータアイテムが、伝送される第２整数（ｘ）を与え、且つ、第２整数（ｘ）を受信した第２エンティティ（Ｂ）から受信した第３整数（ｅ）を用い且つ秘密鍵を用いて第４の整数（ｙ）を与え、且つ、
オープンデジタル処理は、本質的に、公開鍵の全部または一部を用いて前記第４整数（ｙ）を第５整数（ｙ’）に変換することにあり、
パブリックデジタル処理は、本質的に、前記第１エンティティ（Ａ）の識別に有利に完結する値（ｙ”）が前記第２整数（ｘ）に等しい場合に、前記第１エンティティ（Ａ）の識別に有利に完結する前記値（ｙ”）を得るために、前記公開鍵の全部または一部を用いて前記第５整数（ｙ’）を変換することにあることを特徴とする請求項１ないし３の何れか１項に記載された暗号化タスクを実行する方法。
【請求項５】
前記公開鍵が、モジュラス（ｎ）、ベース（ｇ）、セキュリティパラメータ（ｖ）から構成される三つの整数のトリプル(triple)であり、且つ秘密鍵が第６整数（ｓ）であり、秘密デジタル処理が、ベース（ｇ）を、公開鍵の第１累乗（ｒ）モジューロモジュラス（ｎ）に増加させ、そして第４整数（ｙ）を得るために第３整数（ｅ）に第６整数（ｓ）を乗じた積を第１整数（ｒ）に加算するとしたときに、
第２累乗（ａ）モジューロモジュラス（ｎ）にベース（ｇ）を増加させるために、１よりも厳密に大きな第７整数（ｂ）で除算された第４整数（ｙ）の整数商（ａ）がオープンデジタル処理において使用され、
ベース（ｇ）の第４累乗（ｅ）モジューロモジュラス（ｎ）が乗算された第３累乗（ｂ）に前記第５整数（ｙ’）を増加させるために、前記第７整数（ｂ）がパブリックデジタル処理において使用されることを特徴とする請求項４に記載された暗号化タスクを実行する方法。
【請求項６】
前記暗号化タスクが、電子サインの検証を含み、秘密鍵を用いて第１エンティティ（Ａ）における秘密デジタル処理に委ねられる数（ｍ＊）である前記デジタルデータアイテムがサイン（ｚ）を与え、且つ、
オープンデジタル処理は、本質的に、前記公開鍵の第１部分を用いて前記サイン（ｚ）をサイン部分イメージ（ｚ’）に変換することにあり、
パブリックデジタル処置は、本質的に、正当なサインに有利に完結する値（ｚ”）が前記数（ｍ＊）に等しい場合に、正当なサインに有利に完結する前記値（ｚ”）を得るために、前記公開鍵の第２部分を用いて前記サイン部分イメージ（ｚ’）を変換することにあることを特徴とする請求項１ないし３の何れか１項に記載された暗号化タスクを実行する方法。
【請求項７】
前記公開鍵が整数（ｎ，ｖ）のペアであると共に、前記秘密鍵が第３整数（ｓ）であり、前記秘密デジタル処理が、前記公開鍵の第１累乗（ｓ）モジューロ第１整数（ｎ）に前記数（ｍ＊）を増加させることにあるとしたときに、
第２累乗（ａ）モジューロ第１整数（ｎ）に前記サイン（ｚ）を増加させるために、前記公開鍵の第２整数（ｖ）よりも厳密に小さく且つ１よりも厳密に大きな第４整数（ａ）がオープンデジタル処理において使用され、
前第３累乗（ｂ）モジューロ第１整数（ｎ）に前記サイン部分イメージ（ｚ’）を増加させるために、記第４整数（ａ）による前記第２整数（ｖ）のユークリッド除算の商に等しい第５整数（ｂ）がパブリックデジタル処理において使用されることを特徴とする請求項６に記載された暗号化タスクを実行する方法。
【請求項８】
前記暗号化タスクが、第２エンティティ（Ｂ）による認証を含み、第１エンティティ（Ａ）によって伝送されたメッセージを含み、第１エンティティ（Ａ）における秘密デジタル処理に委ねられる第１整数（ｒ）である前記デジタルデータアイテムが、第３整数（ｍ）を得るためにメッセージ（Ｍ）と組み合わせてハッシュ関数(Ｈ)に委ねられる第２整数（ｘ）と、伝送される第３整数（ｍ）およびメッセージ（Ｍ）と、第３整数（ｍ）を受信した第２エンティティ（Ｂ）から受信した第４整数（ｅ）を用い且つ秘密鍵を用いて第１エンティティ（Ａ）における秘密デジタル処理に委ねられて第５の整数（ｙ）を与える第１整数（ｒ）とを与え、且つ、
オープンデジタル処理は、本質的に、公開鍵の全部または一部を用いて前記第５整数（ｙ）を第６整数（ｙ’）に変換することにあり、
パブリックデジタル処理は、本質的に、メッセージ（Ｍ）と組み合わせてハッシュ関数（Ｈ）に委ねられる第１値（ｙ”）を得るために公開鍵の全部または一部を用いて前記第６整数（ｙ’）を変換することにあり、正当なメッセージ認証に有利に完結する第２値（ｘ’）が前記第３整数に等しい場合に、正当なメッセージ認証に有利に完結する前記第２値（ｘ’）を与えることを特徴とする請求項１ないし３の何れか１項に記載された暗号化タスクを実行する方法。
【請求項９】
前記公開鍵が、モジュラス（ｎ）、ベース（ｇ）、セキュリティパラメータ（ｖ）から構成される三つの整数のトリプルであり、且つ秘密鍵が第７整数（ｓ）であり、秘密デジタル処理が、ベース（ｇ）を、公開鍵の第１累乗（ｒ）モジューロモジュラス（ｎ）に増加させ、そして第５整数（ｙ）を得るために第４整数（ｅ）に第７整数（ｓ）を乗じた積を第１整数（ｒ）に加算するとしたときに、
第２累乗（ａ）モジューロモジュラス（ｎ）にベース（ｇ）を増加させるために、１よりも厳密に大きな第８整数（ｂ）で除算された第５整数（ｙ）の整数商（ａ）がオープンデジタル処理において使用され、
ベース（ｇ）の第４累乗（ｅ）モジューロモジュラス（ｎ）が乗算された第３累乗（ｂ）に前記第６整数（ｙ’）を増加させるために、前記第８整数（ｂ）がパブリックデジタル処理において使用されることを特徴とする請求項８に記載された暗号化タスクを実行する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の技術分野は暗号化の分野である。暗号化は、２又はそれ以上のエンティティ(entities)間のトランザクションを保護することにおいてアプリケーションを見出す。これらのアプリケーションの中から、メッセージ暗号化方法、識別(identification)方法、電子サイン(electronic signing)方法、あるいはメッセージ認証方法が見出される。暗号化方法は、本来、受信者のみが解読できるような方法でメッセージを暗号化することにある。識別方法は、本来、送信エンティティ(sending entity)の身元(identity)を検証することにある。電子サイン方法は、本来、メッセージがそのメッセージを生成したエンティティによってサインされたというようなものであることを検証することにある。メッセージ認証方法は、本来、受信されたメッセージが既知の身元の送信エンティティによって実際に送信されたことを検証することにある。
【０００２】
さらに詳しくは、本発明の技術分野は、いわゆる公開鍵(public key)暗号化の分野である。暗号化方法は、多くの場合プローバ(prover)と呼ばれる第１エンティティが、公開鍵が関連づけられた秘密鍵(private key)を用いて第１デジタル操作を秘密に実行する例で知られている。これらの操作の１又はそれ以上の実行結果は、多くの場合ベリファイア(verifier)と呼ばれる第２エンティティに伝送される。そして、ベリファイアは、第１操作が秘密鍵を用いて実際に実行されたことを検証する第２操作を、公開鍵を用いて実行する。これらの方法は、メッセージを認証またはサインするため、または他に第１エンティティを認証するために有用であり、後の例では識別(identification)について述べる。逆に、暗号化方法はまた、第２エンティティが公開鍵を用いてメッセージを暗号化することから始めることで知られている。そして、関連づけられた秘密鍵を保持する第１エンティティのみがそのメッセージを解読することができる。
【０００３】
いわゆるゼロ知識暗号化方法(zero knowledge cryptographic methods)において、検証は、立証された方法で且つ科学団体によって完全に妥当であると認知された前提の下で、プロトコルに従って進行し、秘密鍵については一切明らかにしない。
本発明がアプリケーションを見出すことに関する公知の方法のうち、ＲＳＡ(Rivest, Shamir, Adleman)アルゴリズムまたはいわゆる離散対数問題(discrete logarithm problem)に基づくものについて述べられるであろう。
【背景技術】
【０００４】
公開鍵暗号化は、とりわけ、例えばバンクカード(bank card)または電子財布(electronic purse)による電子決済(electronic payment)に有用である。近接決済(proximity payment)の場合においては、決済端末は全く同時刻に公共の場に設置されていなければならならず、従って公開鍵暗号化方法の使用を促し、そして、安価でなければならないことにより、限られた計算能力を有するチップの使用を促す。オンライン決済の場合においては、業者のサーバまたは決済サーバ（または他に仲介サーバ）は、或る時刻に大量の検証(verification)を同時に実行させられる可能性がある。双方の場合において、検証タスク(verification task)、即ち公開鍵を使用する暗号化タスクを軽減することを可能にする解決策を見つけることが望ましい。
【０００５】
公知の方法において、公開鍵暗号化は、極めて大きな整数の取り扱いから逆関数を取り出すことにおける整数の理論による困難性に基づいている。欠点は、十分なセキュリティを保証するために、公開鍵の使用が通常大きな数による相当量のユークリッド除算および相当量の乗算を必要とすることであり、その演算(operation)は対応する量の計算資源を消費する。
【０００６】
ベリファイア(verifier)のより大きな又はより小さな作業負荷の評価のような様々な評価基準の関数に従って検証(verification)のレベルを調節することを考えることは可能である。この解決策に関する問題は、この検証(verification)に合うかもしれない確信(conviction)が同じ割合で修正されることである。しかしながら、あるアプリケーションは、強い確信(strong conviction)を検証(verification)に合わせる能力を必要とする。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の第１の目的は、送信エンティティ及びまたはこのエンティティによって送信されたデータの信憑性について後(the latter)の確信のレベルを減じることなく、実行されるべき計算量を低減することにより、検証プロトコル(verification protocols)においてベリファイアのタスクを軽減することである。
【０００８】
本発明の第２の目的は、限られた計算能力を有する超小型回路を用いて、削減された時間で伝送を実行することを可能にすることである。
【課題を解決するための手段】
【０００９】
これを達成するため、本発明は、秘密鍵を与えられた第１エンティティと第２エンティティとの間で交換される少なくとも一つのデジタルデータアイテムに関する公開鍵を用いて暗号化タスクを実行する方法に関する。本方法は、上記暗号化タスクが、少なくとも、
前記データアイテムの部分的イメージを得るために前記公開鍵の全部または一部を用いてオープンデジタル処理に前記データアイテムを委ねる仲介エンティティによって実行される第１ステップと、
前記データアイテムに関する前記暗号化タスクを達成するような方法で前記公開鍵の全部または一部を用いてパブリックデジタル処理に前記部分的イメージを委ねる第２エンティティによって実行される第２ステップと、
の二つのステップに分けられることで特徴づけられる。
【００１０】
本方法は、第２エンティティからなるベリファイアが、その一部を仲介エンティティに委任することによってそれ自身の作業負荷を低減するために、ベリファイアに利用可能なものよりも多くの計算手段を与えられるか、ベリファイアよりも少ないトランザクションに参加することを可能にする。
【００１１】
デジタル処理は、自由にアクセス可能である点においてオープンである。後のエンティティのエンティティ(the latter entity)が公開鍵を用いた暗号化タスクにおいて部分的に介在し、そしてもし仲介エンティティが部分的イメージを害したとすれば、暗号化タスクの失敗をもたらし、第２エンティティが暗号化タスクを終了するので、仲介エンティティは、ベリファイアが関係している限り、信頼できるエンティティである必要はない。暗号化タスクが検証(verification)である場合、検証が承認(confirm)されたか拒否(deny)されたかどうかによって、ｙｅｓまたはｎｏで終了する。この場合、仲介エンティティは、ｎｏをｙｅｓに変えることはできない。第１ステップが公開鍵の全部または一部を用いて実行され、そしてオープンデジタル処理に委ねられたデータアイテムがまた第１エンティティにより秘密デジタル処理に委ねられるので、仲介エンティティとのやりとりはオープンワールド(open world)内でなされてもよい。
【００１２】
有利に、本方法は、第２エンティティが駐在する物理装置とは別個の物理装置に仲介エンティティが駐在することで特徴づけられる。
【００１３】
そして第２エンティティは、第１エンティティから受信したデータアイテムを、仲介エンティティを受け入れる任意のパワフルな計算装置に伝送する。計算装置は部分的イメージを第２エンティティに返す。オープンネットワーク上では、仲介エンティティは、第１エンティティから直接的にデータアイテムを受信する委任されたサーバ（プロキシサーバ）で受け入れられる。
【００１４】
さらに有利に、第２エンティティが、多くの第１エンティティに関して多くの暗号化タスクを実行するために適用される場合、本方法は、第１エンティティが駐在する物理装置に仲介エンティティが駐在することで特徴づけられる。
【００１５】
セキュリティ特性(security properties)を損なうことなく作業負荷の一部をベリファイア(verifier)からプローバ(prover)に移すことは、初期プロトコル(initial protocol)の特別な変形を特定することに等しい。
【００１６】
さらに詳しくは、本発明は、前記暗号化タスクが、第２エンティティによる第１エンティティの識別(identification)を含み、第１整数であって第１エンティティにおける秘密デジタル処理に委ねられる前記デジタルデータアイテムが、伝送される第２整数を与え、且つ、第２整数を受信した第２エンティティから受信した第３整数を用い且つ秘密鍵を用いて第４の整数を与えることで特徴づけられ、且つ、この処理において、
オープンデジタル処理は、本質的に、公開鍵の第１部分を用いて前記第４整数を第５整数に変換することにあり、
パブリックデジタル処理は、本質的に、前記第１エンティティの識別に有利に完結する値が前記第２整数に等しい場合に、前記第１エンティティの識別に有利に完結する値を得るために、前記公開鍵の第２部分を用いて前記第５整数を変換することにあることで特徴づけられる。
【００１７】
別に、本発明は、さらに詳しくは、前記暗号化タスクが、電子サイン(electronic signature)の検証(verification)を含み、秘密鍵を用いて第１エンティティにおける秘密デジタル処理に委ねられる数である前記デジタルデータアイテムがサイン(signature)を与えることで特徴づけられ、且つ、
オープンデジタル処理は、本質的に、前記公開鍵の第１部分を用いて前記サインをサイン部分イメージ(signature partial image)に変換することにあり、
パブリックデジタル処置は、本質的に、正当なサイン(valid signature)に有利に完結する値が前記数に等しい場合に、正当なサイン(valid signature)に有利に完結する前記値を得るために、前記公開鍵の第２部分を用いて前記サイン部分イメージを変換することにあることで特徴づけられる。
【００１８】
さらに別に、本方法は、さらに詳しくは、前記暗号化タスクが、第２エンティティによるメッセージ認証を含み、第１エンティティによって伝送されたメッセージを含み、第１エンティティにおける秘密デジタル処理に委ねられる第１整数である前記デジタルデータアイテムが、第３整数を得るためにメッセージと組み合わせてハッシュ関数(hush function)に委ねられる第２整数と、伝送される第３整数およびメッセージと、第３整数を受信した第２エンティティから受信した第４整数を用い且つ秘密鍵を用いて第１エンティティにおける秘密デジタル処理に委ねられて第５の整数を与える第１整数とを与え、且つ、
オープンデジタル処理は、本質的に、公開鍵の全部または一部を用いて前記第５整数を第６整数に変換することにあり、
パブリックデジタル処理は、本質的に、メッセージと組み合わせてハッシュ関数(hush function)に委ねられる第１値を得るために公開鍵の全部または一部を用いて前記第６整数を変換することにあり、正当なメッセージ認証(valid message authentication)に有利に完結する第２値が前記第３整数に等しい場合に、正当なメッセージ認証(valid message authentication)に有利に完結する前記第２値を与えることで特徴づけられる。
【００１９】
本発明の他の詳細および利点は、添付図面を参照して次に述べられる本発明の実施から一層よく理解されるであろう。その添付図面において、図１は、電子サイン方法における本発明の代表的実施を示し、図２から４は、識別方法における本発明の代表的実施を示し、図５は、認証方法における本発明の代表的実施を示す。
【発明を実施するための最良の形態】
【００２０】
図１は、電子サイン(electronic signing)方法における本発明の第１の代表的実施を示す。電子サインの本方法は、例えば、Rivert、ShamirおよびAdlemanにより説明されたＲＳＡサインアルゴリズム(“A method for obtaining digital signatures and public-key cryptosystems”, CACM, Vol.21 No.2, Feb. 1978, pp.120-126)を使用する。公知の方法において、ＲＳＡアルゴリズムは、ペア（ｎ，ｖ）からなる公開鍵(public key)の使用および秘密鍵(private key)ｓの使用を基にしている。ここで、ｎは、通常、秘密が保持された二つの素数ｐおよびｑの積(product)であり、ｖは、積（ｐ−１）（ｑ−１）についての素数である。
【００２１】
デジタル形式において、２進法の文字列(binary string)からなるメッセージｍは、この点について整数と考えられる。メッセージｍに電子的にサインするためのステップ１において、通常、第１エンティティ(first entity)Ａは、ｎよりも小さな整数ｍ＊を得るために、ハッシュ関数Ｈをメッセージｍに適用し、それからハッシュ関数の結果のフォーマッティング(formatting)をする。このフォーマッティングは、通常、数ｎを符号化するビット数に等しいビット数で整数がコード化されるような方法で、ハッシュ関数の結果として生じる２進数ワード(binary word)に全てゼロではないビットを付け加わえる。
【００２２】
エンティティＡは、次に、整数ｍ＊の累乗ｓモジューロｎに等しい電子サイン(electronic signature)ｚを生成する。電子サインｚは、従って累乗ｓに増加された整数ｍ＊を数ｎによりユークリッド除算した余りに等しい。数ｎは極めて大きく且つエンティティＡのみが値ｓを知っているので、実際にはＡ以外のエンティティが次の式を満足する整数ｚを生成することは不可能である。
ｚ＝（ｍ＊）ｓ（ｍｏｄｕｌｏ  ｎ）
ステップ１は、メッセージｍおよびその電子サインｚを送信して終了する。
【００２３】
第２エンティティ(second entity)によるメッセージｍおよびその電子サインの受信は、ステップ３を起動するトランジション(transition)２を有効にする。ステップ３では、エンティティＢは、数ｍ＊を局所的に再取得するために、ハッシュ関数Ｈをメッセージｍに適用する。
【００２４】
本発明によれば、ステップ４は、公開鍵の値ｖを次の形式に分解する。
ａ・ｂ＋ｃ＝ｖ
ここで、整数ａおよびｂは１よりも厳密に大きい。整数ｃは例えば余りであり、もしそれが存在すれば、ｖをｂでユークリッド除算したものである。
【００２５】
仲介エンティティＣによるサインｚの受信は、ステップ６を起動するトランジション５を有効にする。ステップ６において、エンティティＣは、サインｚモジューロｎのａ乗に等しいサイン部分値(signature partial value)ｚ’を生成する。ステップ６は、サイン部分値ｚ’を送信して終了し、そして必要であれば、整数ｂおよびｃの値を送信して終了する。
【００２６】
エンティティＢによるサイン部分値ｚ’の受信並びに値ｂおよびｃの受信は、ステップ８を起動するトランジション７を有効にする。ステップ８において、エンティティＢは、ｃ乗に増加されたサイン値ｚと、ｂ乗に増加(rise)されたサイン部分値ｚ’のプロダクトモジューロｎに等しい整数ｚ”を生成する。ここで、通例の慣習は、１に等しいゼロイクスポーネント(zero exponent)を用いて累乗(power)を定義する。
【００２７】
次に、エンティティＢは、整数ｚ”が整数ｍ＊に等しいかどうかをステップ８においてテストする。この場合、受信されたメッセージｍは、実際にエンティティＡによってサインされたものである。
【００２８】
具体的に言うと、二つの整数のｎによる除算の二つの余りの積のｎによる除算の余りが、これら二つの整数の積のｎによる除算の余りに等しいとすれば、次のことが得られる。
2005508514.tif 000003
【００２９】
セキュリティがステップ６により減少される可能性が少ないか又はないので、仲介エンティティＣは、信頼のあるエンティティである必要はない。具体的に言うと、ｍ＊の値について、累乗ａモジューロｎにサイン値ｚを増加(rise)することによる以外に、ｍ＊に等しいｚ”の値を計算することを可能にする累乗ｂにそれを増加するような数ｚ’を見つけ出すことは実際には不可能である。
【００３０】
図１を参照して述べた代表的な実施において、エンティティＢのチャージ(charge)の下での暗号化タスクは、受信されたメッセージｍが実際にエンティティＡによってサインされたという事実の検証である。もしサインｚモジューロｎの累乗ｖへの増加が数ｍ＊に等しければ、この検証は肯定的(positive)である。累乗ｖへの増加のための計算時間は、実質的にビットにおけるｖのサイズに比例する。この暗号化タスク、さらに詳しくは累乗ｖへの増加の計算は、本明細書ではステップ６および８に割り当てられている。
【００３１】
仲介エンティティＣは、サインｚの累乗ｖへの増加の計算のパートであるステップ６において実行する。エンティティＢは、サインｚの累乗ｖへの増加の計算の相補的パートであるステップ８において実行する。エンティティＢにより実行される計算時間は、実質的にｂ＋ｃに比例する。従って、エンティティＢに必要とされる計算能力は、実質的にファクタａで除算することにより低減される。エンティティＢに必要とされる計算能力はまた、もし数ｃがゼロであれば低減される。これは、数ｖを二つの整数ａおよびｂの積に分解することが可能であるような場合である。
【００３２】
図１に表されたエンティティＣは、ステップ４を実行し、そしてトランジション５を有効にした後にステップ６を実行する。ステップ４は、メッセージｍをそのサインｚと共にそれぞれ送信して実行される必要はない。ｖの与えられた値について、もしｃがゼロでなければ、数ａ，ｂ，ｃが、エンティティＡ，Ｂ，Ｃとは関係なく、ただ一度だけ計算される。そしてエンティティＣは、単に番号ａを知ることを要するのみである。そしてエンティティＢは、もしｃがゼロでなければ、単に数ｂおよび数ｃを知ることを要するのみである。この場合、数ｂおよびｃは、ステップ６で送信されず、そしてサイン部分値ｚ’のトランジション７の簡単な受信により有効(enable)とされる。
【００３３】
有利に、エンティティＣはエンティティＢが駐在する装置とは別個の物理装置に駐在する。従って、エンティティＢが駐在する物理装置は、エンティティＢが暗号化タスクの全体を実行するとすれば備えるであろうものと比較して、低減された計算手段を備えることができる。
【００３４】
エンティティＣは、エンティティＡが駐在するものとは別個の物理装置、またはエンティティＡと同じ物理装置に駐在することができる。
【００３５】
エンティティＡおよびＣが一つの又は同じ物理装置に駐在する場合には、数ａ，ｂあるいはｃは、この物理装置に保存される。もしｃがゼロでなければ、エンティティＡおよびＣが駐在する物理装置は、メッセージｍ、サインｚ、部分的サインｚ’、および数ｂ，ｃを送信する。もしｃがゼロであれば、エンティティＡおよびＣが駐在する物理装置は、メッセージｍ、部分的サインｚ’、および数ｂを送信する。
【００３６】
図１を参照してまさに説明した代表的実施は、任意のエンティティによってサインされた任意のメッセージの検証に適合する。
【００３７】
プローバの（ｎ，ｖ）を証明(certificate)する公開鍵の検証を促進することも同様に有利である。証明(certificate)は、証明機関によって計算された電子的サインであり、プローバの公開鍵および身元(identity)に関係し、従って後者(the latter)が証明機関の公開検証を保持するという条件で、任意の他のエンティティによって検証されるかもしれない方法でそれらを関連づけている。
【００３８】
この証明もまたＲＳＡアルゴリズムを用いて計算されれば、証明を検証するために暗号化タスクの上述した分解(decomposition)は、証明を受け取るエンティティＢにおける検証計算の促進を可能にする。さらに一般に、もし証明が本発明が適合するサインスキームを用いて計算すれば、電子サインを検証するためにこの証明を使用するベリファイア(verifier)による証明の検証に本発明を適用することは有益である。
【００３９】
図２は、識別(identification)の方法における本発明の第２の代表的実施を示す。本識別方法は、例えば１９９５年８月１１および１９９８年２月６日にそれぞれ公開された特許出願ＦＲ２７１６０５８およびＦＲ２７５２１２２で述べられているような個々のアルゴリズムに基づくゼロ知識プロトコル(zero knowledge protocol)を使用する。個々のアルゴリズムは、整数ｓからなる秘密鍵と、三つの整数（ｎ，ｖ，ｇ）からなる公開鍵とを使用することに基づいている。秘密鍵ｓは、身元を証明しなければならないエンティティＡによって秘密に保持される。公開鍵（ｎ，ｖ，ｇ）は、エネィティＡの身元を検証しなければならない任意のエンティティに伝送される。公開鍵の伝送は、例えば、本発明による方法を用いて予め有利に検証される証明を用いて実行される。公開鍵において、モジュラス(modulus)と呼ばれる整数ｎは、因数分解アルゴリズムを存在させることを考慮して、実際には不可能な因数分解を与えるのに十分に大きな素数の積である。ベース(base)と呼ばれる整数ｇは、ｘが区間[０，ｎ−１]を通るとき、数ｇｘモジューロｎからなるセットのようなものであり、この区間の後のサイズ(consequent size of this interval)のサブセットである。整数ｖは、次の関係を満足するセキュリティパラメータである。
V = g-s(modulo n)
この関係は、ｖ，ｇおよびｎが分かっても、ｓの値を得ることは実際には可能でないようなものである。
【００４０】
それ自体を識別するために、エンティティＡはステップ９を起動する。ステップ９において、エンティティＡは、数ｓよりも極めて大きなランダムまたは擬似ランダム数ｒを生成する。続いて、エンティティＡは、ｇの累乗ｒモジューロｎに等しい整数ｘを生成する。ステップは、この整数ｘを送信して終了する。
【００４１】
エンティティＢによる数ｘの受信は、ステップ１１を起動するトランジション１
を有効にする。
ステップ１１において、エンティティＢは、区間[０，ｕ−１]から整数ｅを生成し、それからその数ｅを送信する。
エンティティＡによる数ｅの受信は、ステップ１３を起動するトランジション１２を有効にする。
【００４２】
ステップ１３において、エンティティＡは、数ｓと数ｅとの積と数ｒとの和に等しい数ｙを生成する。続いて、エンティティＡは、数ｙを、数ｒ，ｓ，ｅとは異なる整数の一次結合(linear combination)の形式に分解する。例えば、エンティティＡは、１よりも厳密に大きな整数ｂによる数ｙの除算を実行する。商ａおよび余りｃは、次の一次結合を得ることを可能にする。
y = a・b+c
そしてエンティティＡは、整数ａ，ｂ，ｃを送信する。
【００４３】
除算は、例えば、ユークリッド除算である。数ｂは、通常、数ａによって定まる商が１よりも厳密に大きくなるように選ばれる。数ｙの除算は、必ずしもエンティティＡにおいて行われる必要ななく、例えばエンティティＣ又はエンティティＢのような他の場所において行われてもよい。
【００４４】
仲介エンティティＣによる数ａの受信は、ステップ１５を起動するトランジション１４を有効にする。
ステップ１５において、エンティティＣは、ベースｇを累乗モジューロモジュラスｎに増加し、且つそのイクスポーネントを整数ａとすることにより、数ｙの部分イメージ(partial image)、即ち数ｙ’を生成する。そしてエンティティＣは、整数ｙ’を送信する。
エンティティＢによる整数ｂおよびｃの受信および整数ｙ’の受信はステップ１７を起動するトランジション１６を有効にする。
【００４５】
ステップ１７において、エンティティＢは、数ｙ’をイクスポーネント累乗ｂに増加し、ベースｇをイクスポーネント累乗ｃに増加し、セキュリティパラメータｖをイクスポーネント累乗ｅに増加し、そして整数ｙ”を生成するために得られた三つの累乗のプロダクトモジューロｎを計算する。プロダクトモジューロｎの項が、それぞれモジューロｎを考慮したこれらの項のプロダクトモジューロｎに等しいという事実を使用することは可能である。
【００４６】
そしてエンティティＢは、数ｙ”が予め受信された数ｘに等しいかどうかを検証する。もし等しければ、エンティティＢは、数ｘを確かに送信した存在としてエンティティＡを識別する。
具体的に言えば、もしエンティティＡが数ｘを送信したものであれば、
2005508514.tif 000004
である。
【００４７】
エンティティＡによって秘密に保持されている秘密鍵が対応する因数分解を知ることなく、ｙ’ｂ・ｇｃ・ｖｅ（ｍｏｄｕｌｏ  ｎ）がｘに等しくなるようなｎ，ｖ，ｇ，およびｃおよび数ｙ’を見つけ出すことは実際には不可能であるので、必ずしも信頼できるエンティティではない外部のエンティティによってステップ１５が実行されることによって、セキュリティは損なわれない。
【００４８】
整数を符号化するためのビットの標準的な量ｋ、すなわち２進ベースで整数を分解するのに必要とされるビットの最小量を考慮すると、イクスポーネントがこの整数であるところの累乗モジューロｎに増加するための通常知られる手順は、ビット数ｋに比例する量の乗算モジューロｎ(a quantity of multiplications modulo n)を実行する。
【００４９】
仲介エンティティＣを用いることなく、エンティティＢは、次の式を通じてｙ”を計算するためにｒ＋ｓ・ｅに等しい数ｙを受信する。
y”=gy・ve (modulo n)
ｇを累乗ｙに増加するためにエンティティＢによって実行される乗算モジューロｎの量は、標準の形式で数ｒ＋ｓ・ｅを符号化するのに必要とされるビット数に比例し、即ちａ・ｂ＋ｃである。
【００５０】
エンティティＣにおいて多くの乗算モジューロｎを実行し、そしてそれは標準の形式で数ａを符号化するために必要とされるビット数に比例することにより、エンティティＢは、標準の形式で数ｂを符号化するために必要とされるビット数に比例する量の乗算モジューロｎだけ行えばよく、そしてそれには、おそらく、標準の形式で数ｃを符号化するために必要とされるビット数に比例する量の乗算モジューロｎが付け加えられる。このようにエンティティＢにおいて達成される乗算モジューロｎの節約(saving)は、エンティティＢにおける身元(identity)の検証(verification)を促進することを可能にする。
【００５１】
図３は、エンティティＢにおける暗号化タスクの実行をさらに促進するために、図２を参照して述べた方法の変形を示す。
エンティティＢによる数ｂおよびｃの受信は、ステップを起動するトランジション１８を有効にする。
ステップ１９において、エンティティＢは、イクスポーネントとして数ｃを有するベースｇの累乗のプロダクトモジューロｎ、およびイクスポーネントとして数ｅを有するセキュリティパラメータｖの累乗のプロダクトモジューロｎに等しい数ｚを生成する。
【００５２】
そしてトランジション１６は、数ｙ’の受信により有効にされる。ステップ１７において、エンティティＢは、イクスポーネントとして数ｂを有する数ｙ’の累乗のｚ倍のプロダクトモジューロｎに等しい数ｙ”を生成する。
数ｙ’を受信する以前のステップ１９の実行は、ステップ１５および１９の実行の並列化を可能にする。
【００５３】
図４は、図２を参照して述べられた方法の他の変形を示し、エンティティＢが多くのエンティティＡを識別しなければならないときに特に有用である。そしてエンティティＣは、エンティティＡと全く同一の物理装置に駐在する。これは、エンティティＡにステップ１３に続いてステップ１５を直ちに実行させることを意味する。ステップ１３において、エンティティＡは、数ｂおよびｃを外部に送信する。ステップ１５において、エンティティＡは数ｙ’を直ちに送信する。
【００５４】
図５は、メッセージ認証の方法における本発明の第３の代表的な実施を表す。このメッセージ認証の方法は、例えば、図２から４を参照して述べられた方法に使用されるものに類似したプロトコルを使用する。
メッセージＭがエンティティＡによって送信された真正のメッセージであることを検証することができるようにメッセージＭをエンティティＢに送信するために、エンティティＡはステップ２０を有効にする。
【００５５】
ステップ２０において、エンティティＡは、数ｓよりも非常に大きなランダムまたは擬似ランダム数を生成する。整数ｒは、エンティティＡによって秘密に保持される。エンティティＡは、ｇの累乗ｒモジューロｎに等しい整数ｘを生成する。エンティティＡは、整数ｍを得るために、整数ｘのハッシュ関数およびメッセージＭのハッシュ関数に等しい数ｍを生成する。そしてエンティティＡは、整数ｍおよびメッセージＭを送信する。
【００５６】
エンティティＢによる数ｍおよびメッセージＭの受信は、ステップ１１を起動するトランジション２１を有効にする。本方法は、図２から４を参照して述べられたそれらの一つと同じ方法で作動(run)して実行(execute)するステップおよびトランジション１１〜１６の列(string)を具備する。
【００５７】
そしてトランジション１６が有効になると、ステップ２２が起動する。ステップ２２において、エンティティＢは、図２〜４の一つを参照して述べられたステップ１７と同じ方法で整数ｙ”を生成する。そしてエンティティＢは、数ｙ”のハッシュ関数およびメセージＭのハッシュ関数に等しい数ｘ’を生成し、それから数ｘ’を数ｍと比較する。Ｈ（ｘ，Ｍ）がＨ（ｙ”，Ｍ）に等しくなるようにｙ”に等しい数ｘを生成することはエンティティＡのみが可能であるので、数ｘ’および数ｍが等しいということは、メッセージＭを伝送したのは確かにエンティティＡであることをエンティティＢに保証する。
【００５８】
要約すると、本方法は、識別または電子サインの、メッセージ認証のメカニズムを組み込む安全な電子トランザクションにおいて、エンティティＢから構成されるベリファイアの計算負荷を減少させることを可能にする。
【００５９】
それは、ベリファイアが検証(verification)ステップに由来しているという確信を減じることなく、必ずしも信頼できない外部のエンティティＣにこれらの計算の一部を委任することにある。さらに正確には、それは、少なくともステップ（６，１５）が外部のエンティティＣによって実行できるような方法で、検証(verification)タスクを少なくとも二つのステップ（６，１５）および（８，１７）に分けることにある。本方法は、特に、ＲＳＡ(Rivest, Shamir, Adleman)電子サインスキームに適合すると共に、別々のアルゴリズムに基づくメッセージ認証プロトコルに適合する。
【図面の簡単な説明】
【００６０】
【図１】電子サイン方法における本発明の代表的実施を示す図である。
【図２】識別方法における本発明の代表的実施を示す図である。
【図３】識別方法における本発明の代表的実施を示す図である。
【図４】識別方法における本発明の代表的実施を示す図である。
【図５】認証方法における本発明の代表的実施を示す図である。
【符号の説明】
【００６１】
１，３，４，６，８，９，１１，１３，１５，１７，１９，２０，２２  ステップ
２，５，７，１０，１２，１４，１６，１８，２１  トランジション
【国際公開パンフレット】
2005508514.tif 000005
2005508514.tif 000006
2005508514.tif 000007
2005508514.tif 000008
2005508514.tif 000009
2005508514.tif 000010
2005508514.tif 000011
2005508514.tif 000012
2005508514.tif 000013
2005508514.tif 000014
2005508514.tif 000015
2005508514.tif 000016
2005508514.tif 000017
2005508514.tif 000018
2005508514.tif 000019
2005508514.tif 000020
2005508514.tif 000021
2005508514.tif 000022
2005508514.tif 000023
2005508514.tif 000024
2005508514.tif 000025
2005508514.tif 000026
2005508514.tif 000027
2005508514.tif 000028
2005508514.tif 000029
2005508514.tif 000030
2005508514.tif 000031
【国際調査報告】
2005508514.tif 000032
2005508514.tif 000033