(57)【特許請求の範囲】
【請求項１】
端末装置ｊと証明書発行装置Ｑがネットワークで接続された情報通信システムであって、
前記端末装置ｊは、
素数ｐと０以上ｐ未満の整数の集合かつ素数ｐと互いに素である整数の集合の要素であり且つ位数（ｐ−１）のαとを含む公開パラメータを用いて、秘密鍵ｓj及び公開鍵ｖjのペアを生成する生成手段と、
前記公開鍵ｖjを公開する公開手段とを有し、
前記証明書発行装置Ｑは、
前記公開パラメータ、前記公開鍵ｖj、乱数ｋ、前記証明書発行装置Ｑに対する秘密鍵ｓQ、及び式ｒ＝ｖjkｍｏｄｐを用いて、平文ｍに対する署名ｒ，ｓを生成する生成手段と、
前記平文ｍと署名ｒ，ｓを前記端末装置ｊに送信する送信手段とを有し、
さらに、前記端末装置ｊは、
前記秘密鍵ｓjと、式ｓj’＝ｓ・ｓj-1ｍｏｄ（ｐ−１）を用いて、ｓj’を計算する計算手段と、
前記計算されたｓj’、署名ｒ、平文ｍと前記証明書発行装置に対する公開鍵ｖQを用いて、前記平文ｍの署名が正しいかを確認する確認手段と、
前記計算されたｓj’を秘密鍵として、公開鍵暗号による暗号を行う暗号手段とを有することを特徴とする情報通信システム。
【請求項２】
前記公開パラメータは、さらにハッシュ関数Ｈ0を含むことを特徴とする請求項１記載の情報通信システム。
【請求項３】
前記端末装置ｊの暗号手段は、前記計算手段で計算されたｓj’を秘密鍵として、ディジタル情報に対する署名を生成する署名生成手段であることを特徴とする請求項１記載の情報通信システム。
【請求項４】
前記端末装置ｊの暗号手段は、αH0(m)・ｖQ-rｍｏｄｐを公開鍵として暗号化された暗号文を、前記計算手段で計算されたｓj’を秘密鍵として用いて復号する復号手段であることを特徴とする請求項２記載の情報通信システム。
【請求項５】
前記ネットワークに端末装置ｋが接続されており、
前記端末装置ｋは、αH0(m)・ｖQ-rｍｏｄｐを前記端末装置ｊの公開鍵として、公開鍵暗号による暗号を行う暗号手段を有することを特徴とする請求項２記載の情報通信システム。
【請求項６】
前記証明書発行装置Ｑの前記生成手段は、さらに式ｓ＝（Ｈ0（ｍ）−ｓQ・ｒ）・ｋ-1ｍｏｄ（ｐ−１）を用いて、署名ｓを生成することを特徴とする請求項２〜５の何れか１項に記載の情報通信システム。
【請求項７】
前記公開パラメータは、さらに（ｐ−１）を割り切る素数ｑを含み、前記証明書発行装置Ｑの前記生成手段は、さらに式ｓ＝（Ｈ0（ｍ）−ｓQ・ｒ）・ｋ-1ｍｏｄｑを用いて、署名ｓを生成することを特徴とする請求項２〜５の何れか１項に記載の情報通信システム。
【請求項８】
前記証明書発行装置Ｑの前記生成手段は、さらに式ｓ＝ｓQ・ｒ・ｋ-1ｍｏｄ（ｐ−１）を用いて、署名ｓを生成することを特徴とする請求項１〜５の何れか１項に記載の情報通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、公開鍵暗号を用いたディジタル署名方式を利用した情報通信システムに関する。
【０００２】
【従来の技術】
例えば、コンピュータと通信ネットワークの発展と広範な普及に伴い、従来は通信ネットワーク上で実現できなかった社会的活動等、多様な機能が実現できるようになった。
しかしながらその反面、誰が、いつ、どこで、何を行ったのかを容易に把握される場合があった。
そこで、これを防ぐために、匿名で通信処理を行うことで、プライバシーを保護し、且つ通信ネットワーク上で多様な機能を実現する方法が提案されている。
【０００３】
このような方法としては、例えば、公開鍵暗号を用いた方法があり、これにより、送信者は、通信内容を意図する受信者のみに送信でき、しかも受信者は、受信した通信内容の送信者が誰であるかを確実に確認することが可能となる。
そして、この方法を適用したものとしては、特願平８−１０８２２５号に開示されているディジタル署名方式及びそれを用いた情報通信システムがある。
【０００４】
ここで、「暗号」及び「匿名公開鍵証明書」について具体的に説明する。
【０００５】
（１）「暗号」
まず、「暗号」とは、情報の意味が当事者以外にには認識できないように情報を変換することをいう。そして、この暗号においては、元の文（変換されていない文）を「平文」といい、その平文を第三者に意味の分からない文（暗号文）に変換することを「暗号化」といい、その変換の手順を「暗号アルゴリズム」という。
平文及び暗号文は、テキストデータに限られるものではなく、音声や画像等、あらゆる情報を想定している。
暗号化は、「暗号化鍵」と呼ばれるパラメータに依存する変換である。そして、その暗号化で得られた暗号文を当事者が元の平文に戻すことを「復号」といい、その復号の際には、「復号鍵」と呼ばれる暗号化鍵に対応するパラメータが用いられる。一方、当事者以外の第三者が暗号文を元の平文に戻すこと、或いは、復号鍵を見いだすことを「解読」という。
【０００６】
上述のような暗号では暗号の安全性を、暗号化に用いる暗号化鍵或いは復号に用いる復号鍵に帰着させており、それらの鍵を知らなければ、たとえ暗号アルゴリズムを知っていても、平文は得られないようになっている。
したがって、所定の暗号化を行う装置（暗号装置）の製造者でも、解読不可能な暗号化を実現することができる。
【０００７】
また、暗号には、多くの暗号アルゴリズムがある。そこで、例えば、暗号化鍵を公開できるか否かの観点から、暗号を、非対称暗号（公開鍵暗号）と対称暗号（共通鍵暗号）の２つに分類して説明する。
【０００８】
（１−１）「非対称暗号（公開鍵暗号）」
「非対称暗号」とは、「公開鍵暗号」とも呼ばれ、暗号化鍵と復号鍵が異なり、暗号化鍵から復号鍵が容易に計算して得られないようになっており、また、暗号化鍵を公開し、復号鍵を秘密に保持して使用される暗号のことをいう。
このような非対称暗号は、以下のような特徴を持っている。
特徴１：暗号化鍵と復号鍵が異なり、暗号化鍵が公開されるため、暗号化鍵を秘密に配送する必要がなく、その鍵の配送が容易である。
特徴２：各利用者の暗号化鍵は公開されるため、各利用者は、各自の復号鍵のみ秘密に保持しておけばよい。
特徴３：送信されてきた通信文の送信者が偽者でないこと、及びその通信文が改ざんされていないことを受信者が確認するための認証（ディジタル署名）機能を実現できる。
【０００９】
ここで、暗号機能と上述の認証機能を実現できる非対称暗号としては、ＲＳＡ暗号（R.L.Rivest,A.Shamir and L.Adleman,"A method of obtaining digital signatures and public key cryptosystems,"Communications of ACM,Vol.21,No.2,pp.120-126,1978 ）や、ＥｌＧａｍａｌ暗号（T.E.ElGamal,"A public key cryptosystem and a signature scheme based on discrete logarithms,"IEEE Transaction on Information Theory,Vol.IT-31,No.4,pp.496-472,1985 ）が知られている。
また、認証機能を実現できる非対称暗号としては、Ｆｉａｔ−Ｓｈａｍｉｒ暗号（A.Fiat,A.Shamir,"How to prove yourself:practical solutions of identification and signature problrms,"Proc.of CRYPTO'86,1987 ）や、Ｓｃｈｎｏｒｒ暗号（C.P.Schnorr,"Efficient signature generation by smart cards,"Journal of Cryptology,vol.4,pp.161-174,1991 ）が知られている。
【００１０】
例えば、ＥｌＧａｍａｌ暗号における暗号化、復号、認証（ディジタル署名）の生成、及びその検証について具体的に説明する。
【００１１】
まず、「Ｚ」を整数全体の集合、「Ｚp 」を０以上ｐ未満の整数の集合、「Ｚp ＼｛０｝」をＺp から０を除いた集合、「Ｚp * 」をＺp の要素且つｐと互いに素である整数の集合として表すものとする。
また、整数Ａ，Ｂ，Ｃに対して、
Ａ＝ＢｍｏｄＣ
なる関係が成り立つとき、ＢをＣで割ったときの余りがＡであること（任意の整数ｋが存在し、「Ｂ＝ｋ・Ｃ＋Ａ」が成り立つこと）を意味し、
Ａ≡Ｂ（ｍｏｄＣ）
なる関係が成り立つとき、ＡをＣで割ったときの余りと、ＢをＣで割ったときの余りとが等しいことを意味するものとする。
さらに、通信相手と共通の公開パラメータとしては、素数ｐ、Ｚp * の要素であり且つ位数ｐ−１のα、及び一方向性ハッシュ関数Ｈ0 ：Ｚ→Ｚp ＼｛０｝を用いる。また、任意のユーザｉの復号鍵（秘密鍵）を「ｓi ∈Ｚp-1 」とし、暗号化鍵（公開鍵）を「ｖi ＝αSiｍｏｄｐ」とする。
尚、「一方向性ハッシュ関数」とは、衝突を起こしにくい圧縮関数のことである。すなわち、「一方向性ハッシュ関数」とは、任意の長さのビット列を出力する関数であり、同じ出力となる入力を見つけることが困難である、という特徴を持っている。
【００１２】
▲１▼暗号化
そこで、ユーザｊが平文（メッセージ）ｍ（∈Ｚp ）を暗号化してユーザｉに対して送信する場合、ユーザｊ用端末装置では、以下のステップ１〜ステップ４の手順でその処理が行われる。
尚、メッセージｍがＺp の要素でない場合、すなわちｐ以上の数値の場合には、そのメッセージｍをＺp の要素となるようにブロック分割され、各ブロックに対して、以下の手順の暗号化が行われる。
ステップ１：ユーザｊ用端末装置は、乱数ｋを生成する。
ステップ２：ユーザｊ用端末装置は、
Ｃ1 ＝αk ｍｏｄｐ
なる計算を行う。
ステップ３：ユーザｊ用端末装置は、
Ｃ2 ＝ｍ・ｖi k ｍｏｄｐ
なる計算を行う。
ステップ４：ユーザｊ用端末装置は、ステップ２及び３の計算結果Ｃ1 及びＣ2 を、ユーザｉ用端末装置に対して送信する。
【００１３】
▲２▼復号
上記▲１▼暗号化により、ユーザｊ用端末装置からユーザｉ用端末装置には、Ｃ1 及びＣ2 が送信される。そして、ユーザｉ用端末装置は、ユーザｊ用端末装置から送信されてきたＣ1 及びＣ2 を用いて、メッセージｍを、
ｍ＝Ｃ2 ／Ｃ1 Siｍｏｄｐ
なる計算により求める。
【００１４】
▲３▼ディジタル署名の生成
上記▲２▼復号により得られたメッセージｍ（∈Ｚ）に対して、ユーザｉ用端末装置がディジタル署名を生成する場合、ユーザｉ用端末装置では、以下のステップ１〜ステップ４の手順でその処理が行われる。
尚、上記▲１▼暗号化で述べたように、メッセージｍをブロック分割する場合もあるが、ここでは、一方向性ハッシュ関数を用いる場合を説明する。
ステップ１：ユーザｉ用端末装置は、乱数ｋ（∈Ｚp-1 * ）を生成する。
ステップ２：ユーザｉ用端末装置は、
ｒ＝αk ｍｏｄｐ
なる計算を行う。
ステップ３：ユーザｉ用端末装置は、
ｓ＝（Ｈ0 （ｍ）−ｓi ・ｒ）・ｋ-1ｍｏｄ（ｐ−１）
なる計算を行う。
ステップ４：ユーザｉ用端末装置は、ステップ２及び３の計算結果ｒ及びｓを、検証者に対して送信する。
【００１５】
▲４▼ディジタル署名の検証
そして、上記▲３▼ディジタル署名の生成により得られたディジタル署名を、ユーザｉ用端末装置が検証する場合、ユーザｉ用端末装置は、
αH0(m) ≡ｖi r ・ｒS （ｍｏｄｐ）
なる関係が成り立つか否かを確認する。
【００１６】
（１−２）「対称暗号（共通鍵暗号）」
一方、「対称暗号」とは、「共通鍵暗号」とも呼ばれ、暗号化鍵と復号鍵が同一である暗号のことをいう。また、１９７０年後半に上述した非対称暗号（公開鍵暗号）が現れてから、従来から存在するこの対称暗号は、「慣用暗号」とも呼ばれるようになった。
このような対称暗号は、適当な長さの文字列（ブロック）毎に同じ暗号化鍵で暗号化するブロック暗号と、文字列又はビット毎に暗号化鍵を変えて暗号化するストリーム暗号とに分類される。
ブロック暗号としては、文字の順序を置き換えて暗号化する転置式暗号や、文字を他の文字に換える換字式暗号等があり、ＤＥＳ（Data Encryption Standard）や、ＦＥＡＬ（Fast data Encipherment Algorithm）といった商用暗号として広く用いられている。
ストリーム暗号は、メッセージに乱数をＸＯＲ（排他論理和）して、その内容を攪乱する暗号であり、このストリーム暗号としては、無限周期の乱数列を１回限りの使い捨て鍵として用いるバーナム暗号が知られている。
【００１７】
尚、上述した（１）暗号の更なる詳細は、「暗号理論入門」（岡本栄司著：共立出版）や、「Applied cryptography second edition:protocols,algorithms,and source code in C 」（Schneier著）、「John Wiley&Sons,Inc 」等に述べられている。
【００１８】
（２）「匿名公開鍵証明書」
つぎに、「匿名公開鍵証明書」とは、上述した（１−１）非対称暗号（公開鍵暗号）等において、任意のユーザと、そのユーザの公開鍵（暗号化鍵）との対応を保証するものである。
具体的には、「Certification Authority 」と呼ばれる信頼できる特別なユーザ（以下、ＣＡと言う）が、他のユーザ（以下、ユーザｊとする）の身元を、例えば、パスポートで確認し、ユーザｊの識別情報ＩＤ（氏名、性別、生年月日等の個人識別情報）、その公開鍵及び有効期限等を内容とするメッセージに対するディジタル署名を生成する。このディジタル署名が「匿名公開鍵証明書」である。
ＣＡの公開鍵は、誰でも確実に入手できるようになされており、ＣＡにて生成されたディジタル署名を検証することは容易である。これにより、例えば、ユーザｋがユーザｊと通信する際に、ユーザｊに対応する公開鍵を容易に且つ確実に確認することができると共に、他のユーザがユーザｊになりすますことを防ぎながら、公開鍵暗号による通信を可能とすることができる。
【００１９】
また、「匿名公開鍵証明書」とは、上述の匿名公開鍵証明書のユーザが、どこの誰であるかを分からないようにしたものでもある。これにより、プライバシー保護を要する用途、例えば、ある特別なサービスを受けることができる資格を有するが、身元を明かすことを防ぎたい場合に用いることができる。これを適用したものとしては、例えば、特願平８−１０８２２６号に開示されているグループ署名と呼ばれる特殊なディジタル署名方式がある。
【００２０】
上述のような匿名公開鍵証明書を適用したものとしては、例えば、特願平８−１０８２２５号に開示されている通信システムがある。
この通信システムでは、図５に示すようなステップＳ５００〜Ｓ５０４の処理が行われる。
以下、ステップＳ５００〜Ｓ５０４について具体的に説明する。
尚、以下の説明における各記号（「Ｚ」や「Ｚp 」等）は、上述したＥｌＧａｍａｌ暗号の説明での各記号と同様に定義して用いるものとする。
【００２１】
ステップＳ５００：
先ず、システム共通の公開パラメータＰＶ（Public Vaiues ）としては、素数ｐ、位数ｑ（但し、ｑ｜ｐ−１）、Ｚp * の要素であり且つ位数ｑのα、一方向性ハッシュ関数Ｈ1 ：Ｚq ×Ｚ→｛０，・・・，２t −１｝を用いる。
すなわち、ｑは、ｐ−１を割り切り、ｘ∈Ｚq ＼｛０｝に対してαx ≡１（ｍｏｄｐ）ではなく、且つｘ＝ｑに対してαx ≡１（ｍｏｄｐ）であり、Ｈ1 は、Ｚq の要素とＺの要素を入力とし２t −１以下の非負整数を出力する。
そして、これらのパラメータは、この通信システムに参加している全てのユーザがアクセスすることができ、且つ不当な改ざん等が起こらないように適切に管理されている公開データベースＰＤ（Public Database ）に登録されているものとする。
そこで、証明書発行者（authority ）Ｑ用端末装置７０は、復号鍵（秘密鍵）ｓQ と、暗号化鍵（公開鍵）ｖQ （ｖQ ＝α-sQ ｍｏｄｐ）とを生成し、公開鍵ｖQ を公開データベースＰＤに登録する。
また、ユーザ（User）ｊ用端末装置８０は、復号鍵（秘密鍵）ｓj と、暗号化鍵（公開鍵）ｖj （ｖj ＝α-sj ｍｏｄｐ）とを生成し、公開鍵ｖj を公開データベースＰＤに登録する。
【００２２】
ステップＳ５０１：匿名公開鍵証明書の生成
次に、証明書発行者Ｑ用端末装置７０は、ユーザｊの公開鍵ｖj を、乱数（random number ）ｒを用いて変換したｚを求め、このｚに対する署名（Ｓｃｈｎｏｒｒ暗号によるディジタル署名）を生成する。
具体的には、証明書発行者Ｑ用端末装置７０は、乱数（秘密の乱数）ｒ（ｒ∈Ｚq ＼｛０｝）を選択し、
ｘ＝αr ｍｏｄｐ
ｚ＝ｖj r ｍｏｄｐ
ｅ＝Ｈ1 （ｘ，ｚj ）
ｙ＝ｒ＋ｅ・ｓQ ｍｏｄｑ
なる計算を行う。このＳｃｈｎｏｒｒ暗号によるディジタル署名（ｙ，ｅ，ｚ）が匿名公開鍵証明書である。
【００２３】
ステップＳ５０２：匿名公開鍵証明書の配送
次に、証明書発行者Ｑ用端末装置７０は、上述のステップＳ５０１にて生成した匿名公開鍵証明書（ｙ，ｅ，ｚ）を、ユーザｊ用端末装置８０に対して送信する。
これを受けたユーザｊ用端末装置８０は、ｅ及びｚを、
ｅ＝Ｈ1 （αy ・ｖQ e ｍｏｄｐ，ｚ）
ｚ＝（αy ・ｖQ e ｍｏｄｐ）-Sj ｍｏｄｐ
が成り立つことを確認する。
尚、ここでは、ｘ＝αy ・ｖQ e ｍｏｄｐが成り立つことにより、表記の簡略化のためにｘを用いるものとする。
【００２４】
ステップＳ５０３：公開鍵暗号の利用
次に、ユーザｊ用端末装置８０は、αとｖj の代わりにｘとｚを用いて、離散対数問題に基づく公開鍵暗号を利用する。
例えば、Ｓｃｈｎｏｒｒ暗号によるディジタル署名を利用する場合、メッセージｍに対して、以下のようにしてディジタル署名を生成する。
すなわち、ユーザｊ用端末装置８０は、秘密の乱数ｒj （ｒj ∈Ｚq * ）を選択し、
ｘj ＝ｘrjｍｏｄｐ
ｅj ＝ｈ（ｘj ，ｍ）
ｙj ＝ｒj ＋ｅj ・ｓj ｍｏｄｑ
なる計算を行う。そして、ユーザｊ用端末装置８０は、メッセージｍと共に、（（ｙ，ｅ，ｚ），ｙj ，ｅj ，ｍ）をディジタル署名として、必要な相手に対して送信する。
【００２５】
ステップＳ５０４：署名確認
そして、上述のステップＳ５０３にて送信されたディジタル署名（（ｙ，ｅ，ｚ），ｙj ，ｅj ，ｍ）の受信者（通信相手（Verifier））ｉ用端末装置９０は、先ず、上述のステップＳ５０２における
ｅ＝Ｈ1 （αy ・ｖQ e ｍｏｄｐ，ｚ）
なる式を確認し、次に、
ｅj ＝Ｈ1 （ｘyj・ｚejｍｏｄｐ，ｍ）
なる式を確認する。
これらの確認ができた場合に、受信者ｉ用端末装置９０は、メッセージｍに対するディジタル署名は証明書発行者Ｑにより選ばれたユーザによって生成されたディジタル署名である、と認識する。
【００２６】
【発明が解決しようとする課題】
ところで、上記図５の通信システムで説明したような従来の匿名公開鍵証明書では、匿名性が満たされている。すなわち、任意の匿名公開鍵証明書がどのユーザに対応するものであるのかが分からないようになっている。このような匿名性は、以下の２つの仮定に基づくものである。
【００２７】
仮定１：離散対数問題
「Ｇ」を有限群とし、「α」をその生成元とする。また、「ｖ」をＧの元とし、底Ａに対するｖの離散対数を「ｌｏｇ［α］ｖ」とする。
そこで、Ｇの位数（元の個数）が充分大きい場合、離散対数ｌｏｇ［α］ｖを求めることは困難となる。
【００２８】
仮定２：離散対数の比較問題
「ｒ」と「ｓ」をＧのランダムな元とする。
そこで、α、ｖ＝αs 、ｘ＝αr 、ｚ＝αrsが与えられたとき、Ｇの位数が充分大きく、ｒとｓが未知である場合、ｌｏｇ［α］ｖとｌｏｇ［ｘ］ｚが等しいか否かを判別することはできない。
【００２９】
上述のような仮定１及び仮定２が成り立つことにより、匿名公開鍵証明書は匿名性が満たされる。
【００３０】
しかしながら、従来では、仮定２のみを解くアルゴリズムが見いだされ、仮定１は成り立つが仮定２が成り立たず、匿名公開鍵証明書の匿名性が無くなる場合があった。
【００３１】
具体的にはまず、仮定１の離散対数問題を解くことは、現在までの研究成果によれば非常に難しいとされ、安全性の根拠として用いることは妥当であると考えられている。すなわち、このような離散対数問題が解ければ、仮定２の離散対数の比較問題も解けることになる。これにより、仮定２を解くことは、仮定１を解くことと同じくらい易しい、或いは、仮定１を解くことよりも易しい、ということがわかる。
したがって、この仮定２を解くことが仮定１を解くことよりどの程度易しいかは、現在のところ不明であるが、仮定２のみを解くアルゴリズムが見いだされた場合、仮定１は成り立つが仮定２が成り立たなくなるという事態が考えられる。このような場合に、上述した匿名公開鍵証明書の匿名性が無くなる。
【００３２】
そこで、本発明は、上記の欠点を除去するために成されたもので、如何なる場合でも匿名性を確実に保つことができるディジタル署名方式を用いた情報通信システムを提供することを目的とする。
【００３３】
【課題を解決するための手段】
本発明に係る情報通信システムは、端末装置ｊと証明書発行装置Ｑがネットワークで接続された情報通信システムであって、前記端末装置ｊは、素数ｐと０以上ｐ未満の整数の集合かつ素数ｐと互いに素である整数の集合の要素であり且つ位数（ｐ−１）のαとを含む公開パラメータを用いて、秘密鍵ｓj及び公開鍵ｖjのペアを生成する生成手段と、前記公開鍵ｖjを公開する公開手段とを有し、前記証明書発行装置Ｑは、前記公開パラメータ、前記公開鍵ｖj、乱数ｋ、前記証明書発行装置Ｑに対する秘密鍵ｓQ、及び式ｒ＝ｖjkｍｏｄｐを用いて、平文ｍに対する署名ｒ，ｓを生成する生成手段と、前記平文ｍと署名ｒ，ｓを前記端末装置ｊに送信する送信手段とを有し、さらに、前記端末装置ｊは、前記秘密鍵ｓjと、式ｓj’＝ｓ・ｓj-1ｍｏｄ（ｐ−１）を用いて、ｓj’を計算する計算手段と、前記計算されたｓj’、署名ｒ、平文ｍと前記証明書発行装置に対する公開鍵ｖQを用いて、前記平文ｍの署名が正しいかを確認する確認手段と、前記計算されたｓj’を秘密鍵として、公開鍵暗号による暗号を行う暗号手段とを有することを特徴とする。
【００４９】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【００５０】
まず、第１の実施の形態について説明する。
【００５１】
本発明に係るディジタル署名方式は、例えば、図１に示すような通信システム１００により実施され、この通信システム１００は、本発明に係る情報通信システムを適用したものでもある。
【００５２】
すなわち、通信システム１００では、証明書発行者Ｑ用端末装置２０と、ユーザｊ，ｉ，ｋを含む複数のユーザ用端末装置３０、４０、５０、・・・とがネットワーク１０上で接続されており、各端末装置は、ネットワーク１０を介して互いに通信するようになされている。また、通信システム１００には、各ユーザに共通の公開パラメータＰＶ（Public Values ）が管理されている公開データベースＰＤ（Public Database ）が設けられている。
【００５３】
証明書発行者Ｑ用端末装置２０は、証明書発行者Ｑ固有の秘密鍵ｓQ （秘密情報）及び公開鍵ｖQ （公開情報）を生成する公開鍵生成部２１と、秘密鍵ｓQ 及び公開パラメータＰＶを用いて平文ｍに対する署名（匿名公開鍵証明書）を生成する署名生成部２２とを備えている。
【００５４】
一方、ユーザ用端末装置３０、４０、５０、・・・は、各々同様の構成としている。
例えば、ユーザｊ用端末装置３０は、ユーザｊ固有の秘密鍵ｓj 及び公開鍵ｖj を生成する公開鍵生成部３１と、平文ｍと上記署名の対応関係が正しいか否かを判別する判別部３２と、新たな署名を生成する署名生成部３３とを備えている。
また、ユーザｊ用端末装置３０は、新たな署名を確認する確認部３５と、確認部３５で確認された新たな署名を用いて平文を暗号化する暗号化部３６と、確認部３５で確認された新たな署名を用いて暗号文を復号する復号部３４とを備えている。
【００５５】
以下、上述のような通信システム１００の動作を上記図１及び図２を用いて説明する。
尚、上記図２中の記号は、上記図５と同様の表記規則に従うものとする。
【００５６】
ステップＳ２００：
先ず、通信システム１００の共通のデータとして、大きな素数ｐ、Ｚp * の要素であり且つ位数ｐ−１のα、一方向性ハッシュ関数Ｈ0 ：Ｚ→Ｚp ＼｛０｝を用いる。
尚、ｐは、例えば、「ｐ＞２512 」とする。
これらのパラメータ（公開パラメータＰＶ（Public Values ））は、通信システム１００に参加している全てのユーザがアクセスすることができ、且つ不当な改ざん等が起こらないように適切に管理されている公開データベースＰＤ（Public Database ）に登録されているものとする。
そこで、証明書発行者（authority ）Ｑ用端末装置２０は、公開鍵生成部２１により、秘密鍵（復号鍵）ｓQ （∈Ｚp-1 * ）と、公開鍵（暗号化鍵）ｖQ （＝αsQｍｏｄｐ）とを生成し、公開鍵ｖQ を公開データベースＰＤに登録する。
また、任意のユーザ用端末装置（ここではユーザ（User）ｊ用端末装置３０とする）は、公開鍵生成部３１により、秘密鍵（復号鍵）ｓj （∈Ｚp-1 * ）と、公開鍵（暗号化鍵）ｖj （＝αsjｍｏｄｐ）とを生成し、公開鍵ｖj を公開データベースＰＤに登録する。
【００５７】
ステップＳ２０１：匿名公開鍵証明書の生成
証明書発行者Ｑ用端末装置２０は、署名生成部２２により、ユーザｊの公開鍵ｖj を、乱数（random number ）ｋを用いて変換したｒを求め、平文ｍに対する署名（例えば、ＥｌＧａｍａｌ暗号によるディジタル署名）を生成する。
具体的には、署名生成部２２は、乱数（秘密の乱数）ｋ（ｋ∈Ｚp-1 * ）を選択し、
ｒ＝ｖj k ｍｏｄｐ
ｓ＝（Ｈ0 （ｍ）−ｓQ ・ｒ）・ｋ-1ｍｏｄ（ｐ−１）
なる計算を行う。この平文ｍに対するＥｌＧａｍａｌ暗号によるディジタル署名ｒ，ｓが匿名公開鍵証明書である。また、平文ｍは、その匿名公開鍵証明書の種類を示すパラメータとして使用できる。
尚、匿名公開鍵証明書の種類を示すパラメータとしては、平文ｍ或いはＨ0 （ｍ）の代わりに、予め決められた固定値を使用してもよい。
【００５８】
ステップＳ２０２：匿名公開鍵証明書の配送
次に、証明書発行者Ｑ用端末装置２０は、署名生成部２２で生成したディジタル署名ｒ，ｓと、その種類を示すパラメータｍとを匿名公開鍵証明書（ｍ，ｒ，ｓ）として、ユーザｊ用端末装置３０に対して送信する。
【００５９】
ステップＳ２０３：
これを受けたユーザｊ用端末装置３０は、判別部３２により、
ｓj ’＝ｓ・ｓj -1ｍｏｄ（ｐ−１）
を求め、
αH0(m) ≡ｖQ r ・ｒsj' （ｍｏｄｐ）
が成り立つことを確認する。
【００６０】
ステップＳ２０４：公開鍵暗号の利用
そして、ユーザｊ用端末装置３０は、
αH0(m) ・ｖQ -r≡ｒsj' （ｍｏｄｐ）
により、「ｒ」を底、「αH0(m) ・ｖQ -rｍｏｄｐ」を公開鍵、「ｓj ’」を秘密鍵として、離散対数問題に基づく公開鍵暗号を利用する。
【００６１】
そこで、例えば、ＥｌＧａｍａｌ暗号によるディジタル署名を利用する場合について説明する。
【００６２】
ステップＳ２０４（１）：ディジタル署名の生成
ユーザｊ用端末装置３０は、署名生成部３３により、平文ｍ’に対する署名を以下のようにして生成する。
▲１▼署名生成部３３は、乱数ｋ’（∈Ｚp-1 * ）を生成する。
▲２▼署名生成部３３は、
ｒ’＝αk'ｍｏｄｐ
を計算する。
▲３▼署名生成部３３は、
ｓ’＝（Ｈ0 （ｍ’）−ｓj ’・ｒ）・（ｋ’）-1ｍｏｄ（ｐ−１）
を計算する。
▲４▼そして、ユーザｊ用端末装置３０は、ｍ’と、署名生成部３３で得られたｒ’及びｓ’を、証明書発行者Ｑ用端末装置２０からの匿名公開鍵証明書（ｍ，ｒ）と共に通信相手（ここではユーザｉ用端末装置４０とする）に対して送信する。
【００６３】
ステップＳ２０４（２）：署名検証
これを受けたユーザｉ用端末装置４０は、確認部４５により、
ｒH0(m')≡（αH0(m) ・ｖQ -r）r'・（ｒ’）s'（ｍｏｄｐ）
なる式が成立するかを確認する。
そして、ユーザｉ用端末装置４０は、この確認ができた場合に、ｍ’に対する署名は証明書発行者Ｑによって選ばれたユーザによって生成された署名であることを認識する。
【００６４】
また、上述のステップＳ２０４：公開鍵暗号の利用としては、暗号化にも利用することができる。
そこで、例えば、ユーザｋ用端末装置５０において、ＥｌＧａｍａｌ暗号による暗号化を行う場合について説明する。
【００６５】
暗号化：
ユーザｋ用端末装置５０は、暗号化部５６により、平文ｍ”を以下のようにして暗号化する。
▲１▼暗号化部５６は、乱数ｋ”を生成する。
▲２▼暗号化部５６は、
Ｃ1 ＝ｒk"ｍｏｄｐ
を計算する。
▲３▼暗号化部５６は、
Ｃ2 ＝ｍ”・（αH0(m) ・ｖQ -rｍｏｄｐ）k"ｍｏｄｐ
を計算する。
▲４▼そして、ユーザｋ用端末装置５０は、暗号化部５６で得られたＣ1 及びＣ2 を、ユーザｊ用端末装置３０に対して送信する。
【００６６】
復号：
これを受けたユーザｊ用端末装置３０は、復号部３４により、
ｍ”＝Ｃ2 ／Ｃ1 sj' ｍｏｄｐ
なる計算を行って、平文ｍ”を得る。
【００６７】
尚、上述のステップＳ２０４：公開鍵暗号の利用として、ＥｌＧａｍａｌ暗号を用いたものを説明したが、これに限らず、離散対数問題に基づく公開鍵暗号等を用いたものにも利用することができる。
【００６８】
つぎに、第２の実施の形態について説明する。
【００６９】
この第２の実施の形態では、上述した第１の実施の形態における通信システム１００に、ＥｌＧａｍａｌ暗号のディジタル署名方式の変形版を適用する。
このため、第１の実施の形態では、ＥｌＧａｍａｌ暗号でｐ−１を用いて法演算を行うのに対して、第２の実施の形態では、素数ｑ（ｑはｐ−１を割り切る）を用いて法演算を行うという点が異なる。
【００７０】
尚、この第２の実施の形態を実施する通信システム１００の構成については、上述した第１の実施の形態と同様であるため、その詳細な説明は省略する。
以下、第１の実施の形態と異なる点についてのみ、図３を用いて具体的に説明する。
【００７１】
ステップＳ３００：
先ず、通信システム１００の共通のデータとして、大きな素数ｐ、ｑ（ｑはｐ−１を割り切る）、Ｚp * の要素であり且つ位数ｑのα、一方向性ハッシュ関数Ｈ0 ：Ｚ→Ｚq ＼｛０｝、Ｈ1 ：Ｚq ×Ｚ→｛０，・・・，２t −１｝を用いる。
尚、ここでは、例えば、「ｐ＞２512 」、「ｑ＞２160 」、「ｔ＞７２」とする。
これらのパラメータ（公開パラメータＰＶ）は、通信システム１００に参加している全てのユーザがアクセスすることができ、且つ不当な改ざん等が起こらないように適切に管理されている公開データベースＰＤに登録されているものとする。
そこで、証明書発行者Ｑ用端末装置２０は、公開鍵生成部２１により、秘密鍵ｓQ （∈Ｚq ＼｛０｝）と、公開鍵ｖQ （＝αsQｍｏｄｐ）とを生成し、公開鍵ｖQ を公開データベースＰＤに登録する。
また、任意のユーザ用端末装置（ここではユーザ（User）ｊ用端末装置３０とする）は、公開鍵生成部３１により、秘密鍵ｓj （∈Ｚq ＼｛０｝）と、公開鍵ｖj （＝αsjｍｏｄｐ）とを生成し、公開鍵ｖj を公開データベースＰＤに登録する。
【００７２】
ステップＳ３０１：匿名公開鍵証明書の生成
証明書発行者Ｑ用端末装置２０は、署名生成部２２により、ユーザｊの公開鍵ｖj を、乱数（random number ）ｋを用いて変換したｒを求め、平文ｍに対する署名（例えば、ＥｌＧａｍａｌ暗号によるディジタル署名）を生成する。
具体的には、署名生成部２２は、乱数（秘密の乱数）ｋ（ｋ∈Ｚq ＼｛０｝）を選択し、
ｒ＝ｖj k ｍｏｄｐ
ｓ＝（Ｈ0 （ｍ）−ｓQ ・ｒ）・ｋ-1ｍｏｄｑ
なる計算を行う。この平文ｍに対するＥｌＧａｍａｌ暗号によるディジタル署名ｒ，ｓが匿名公開鍵証明書である。また、平文ｍは、その匿名公開鍵証明書の種類を示すパラメータとして使用できる。
尚、匿名公開鍵証明書の種類を示すパラメータとしては、平文ｍ或いはＨ0 （ｍ）の代わりに、予め決められた固定値を使用してもよい。
【００７３】
ステップＳ３０２：匿名公開鍵証明書の配送
次に、証明書発行者Ｑ用端末装置２０は、署名生成部２２で生成したディジタル署名ｒ，ｓと、その種類を示すパラメータｍとを匿名公開鍵証明書（ｍ，ｒ，ｓ）として、ユーザｊ用端末装置３０に対して送信する。
【００７４】
ステップＳ３０３：
これを受けたユーザｊ用端末装置３０は、判別部３２により、
ｓj ’＝ｓ・ｓj -1ｍｏｄｑ
を求め、
αH0(m) ≡ｖQ r ・ｒsj' （ｍｏｄｐ）
が成り立つことを確認する。
【００７５】
ステップＳ３０４：公開鍵暗号の利用
そして、ユーザｊ用端末装置３０は、
αH0(m) ・ｖQ -r≡ｒsj' （ｍｏｄｐ）
により、「ｒ」を底、「αH0(m) ・ｖQ -rｍｏｄｐ」を公開鍵、「ｓj ’」を秘密鍵として、離散対数問題に基づく公開鍵暗号を利用する。
【００７６】
そこで、例えば、Ｓｃｈｏｎｏｒｒ暗号によるディジタル署名を利用する場合について説明する。
【００７７】
ステップＳ３０４（１）：ディジタル署名の生成
ユーザｊ用端末装置３０は、署名生成部３３により、平文ｍ’に対する署名を以下のようにして生成する。
▲１▼署名生成部３３は、乱数ｋ’（∈Ｚq ＼｛０｝）を生成する。
▲２▼署名生成部３３は、
ｘ＝ｒk'ｍｏｄｐ
を計算する。
▲３▼署名生成部３３は、
ｅ＝Ｈ1 （ｘ，ｍ’）
を計算する。
▲４▼署名生成部３３は、
ｙ＝ｋ’−ｅ・ｓj ’ｍｏｄｑ
を計算する。
▲５▼そして、ユーザｊ用端末装置３０は、ｍ’と、署名生成部３３で得られたｅ及びｙを、証明書発行者Ｑ用端末装置２０からの匿名公開鍵証明書（ｍ，ｒ）と共に通信相手（ここではユーザｉ用端末装置４０とする）に対して送信する。
【００７８】
ステップＳ３０４（２）：署名検証
これを受けたユーザｉ用端末装置４０は、確認部４５により、
ｅ＝Ｈ1 （ｒy ・（αH0(m')・ｖQ -r）e ｍｏｄｐ，ｍ’）
なる式が成立するかを確認する。
そして、ユーザｉ用端末装置４０は、この確認ができた場合に、ｍ’に対する署名は、証明書発行者Ｑによって選ばれたユーザによって生成された署名であることを認識する。
【００７９】
また、上述のステップＳ３０４：公開鍵暗号の利用としては、暗号化にも利用することができる。
そこで、例えば、ユーザｋ用端末装置５０において、ＥｌＧａｍａｌ暗号による暗号化を行う場合について説明する。
【００８０】
暗号化：
ユーザｋ用端末装置５０は、暗号化部５６により、平文ｍ”を以下のようにして暗号化する。
▲１▼暗号化部５６は、乱数ｋ”を生成する。
▲２▼暗号化部５６は、
Ｃ1 ＝ｒk"ｍｏｄｐ
を計算する。
▲３▼暗号化部５６は、
Ｃ2 ＝ｍ”・（αH0(m) ・ｖQ -rｍｏｄｐ）k"ｍｏｄｐ
を計算する。
▲４▼そして、ユーザｋ用端末装置５０は、暗号化部５６で得られたＣ1 及びＣ2 を、ユーザｊ用端末装置３０に対して送信する。
【００８１】
復号：
これを受けたユーザｊ用端末装置３０は、復号部３４により、
ｍ”＝Ｃ2 ／Ｃ1 sj' ｍｏｄｐ
なる計算を行って、平文ｍ”を得る。
【００８２】
尚、上述のステップＳ３０４：公開鍵暗号の利用として、Ｓｃｈｎｏｒｒ暗号やＥｌＧａｍａｌ暗号を用いたものを説明したが、これに限らず、離散対数問題に基づく公開鍵暗号等を用いたものにも利用することができる。
【００８３】
つぎに、第３の実施の形態について説明する。
【００８４】
この第３の実施の形態では、上述した第１の実施の形態における通信システム１００に、ＥｌＧａｍａｌ暗号のディジタル署名方式の変形版を適用する。
すなわち、第３の実施の形態では、第１の実施の形態と同様に、匿名公開鍵証明書において平文ｍ（平文ｍを元に計算して得たＨ0 （ｍ））を用いる際に、Ｈ0 （ｍ）＝０とする。
【００８５】
尚、この第３の実施の形態を実施する通信システム１００の構成については、上述した第１の実施の形態と同様であるため、その詳細な説明は省略する。
以下、第１の実施の形態と異なる点についてのみ、図４を用いて具体的に説明する。
【００８６】
ステップＳ４００：
先ず、通信システム１００の共通のデータとして、素数ｐ、Ｚp * の要素であり且つ位数ｐ−１のα、一方向性ハッシュ関数Ｈ0 ：Ｚ→Ｚp ＼｛０｝を用いる。
尚、ｐは、例えば、「ｐ＞２512 」とする。
これらのパラメータ（公開パラメータＰＶ）は、通信システム１００に参加している全てのユーザがアクセスすることができ、且つ不当な改ざん等が起こらないように適切に管理されている公開データベースＰＤに登録されているものとする。
そこで、証明書発行者Ｑ用端末装置２０は、公開鍵生成部２１により、秘密鍵ｓQ （∈Ｚp-1 * ）と、公開鍵ｖQ （＝αsQｍｏｄｐ）とを生成し、公開鍵ｖQ を公開データベースＰＤに登録する。
また、任意のユーザ用端末装置（ここではユーザ（User）ｊ用端末装置３０とする）は、公開鍵生成部３１により、秘密鍵ｓj （∈Ｚp-1 * ）と、公開鍵ｖj （＝αsjｍｏｄｐ）とを生成し、公開鍵ｖj を公開データベースＰＤに登録する。
【００８７】
ステップＳ４０１：匿名公開鍵証明書の生成
証明書発行者Ｑ用端末装置２０は、署名生成部２２により、ユーザｊの公開鍵ｖj を、乱数（random number ）ｋを用いて変換したｒを求め、Ｅｌｇａｍａｌ暗号のディジタル署名の変形版、例えば、平文ｍをハッシュ関数の入力とした結果が「０」となるＥｌＧａｍａｌ暗号の署名を生成する。
具体的には、署名生成部２２は、乱数（秘密の乱数）ｋ（ｋ∈Ｚp-1 * ）を選択し、
ｒ＝ｖj k ｍｏｄｐ
ｓ＝ｓQ ・ｒ・ｋ-1ｍｏｄ（ｐ−１）
なる計算を行う。このディジタル署名ｒ，ｓが匿名公開鍵証明書である。
【００８８】
ステップＳ４０２：匿名公開鍵証明書の配送
次に、証明書発行者Ｑ用端末装置２０は、署名生成部２２で生成したディジタル署名ｒ，ｓを匿名公開鍵証明書（ｒ，ｓ）として、ユーザｊ用端末装置３０に対して送信する。
【００８９】
ステップＳ４０３：
これを受けたユーザｊ用端末装置３０は、判別部３２により、
ｓj ’＝ｓ・ｓj -1ｍｏｄ（ｐ−１）
を求め、
ｖQ r ≡ｒsj' （ｍｏｄｐ）
が成り立つことを確認する。
【００９０】
ステップＳ４０４：公開鍵暗号の利用
そして、ユーザｊ用端末装置３０は、
ｖQ r ≡ｒsj' （ｍｏｄｐ）
により、「ｒ」を底、「ｖQ r ｍｏｄｐ」を公開鍵、「ｓj ’」を秘密鍵として、離散対数問題に基づく公開鍵暗号を利用する。
【００９１】
そこで、例えば、ＥｌＧａｍａｌ暗号によるディジタル署名を利用する場合について説明する。
【００９２】
ステップＳ４０４（１）：ディジタル署名の生成
ユーザｊ用端末装置３０は、署名生成部３３により、平文ｍ’に対する署名を以下のようにして生成する。
▲１▼署名生成部３３は、乱数ｋ’（∈Ｚp-1 * ）を生成する。
▲２▼署名生成部３３は、
ｒ’＝αk'ｍｏｄｐ
を計算する。
▲３▼署名生成部３３は、
ｓ’＝（Ｈ（ｍ’）−ｓj ’・ｒ）・（ｋ’）-1ｍｏｄ（ｐ−１）
を計算する。
▲４▼そして、ユーザｊ用端末装置３０は、ｍ’と、署名生成部３３で得られたｒ’及びｓ’を、証明書発行者Ｑ用端末装置２０からの匿名公開鍵証明書（ｍ，ｒ）と共に通信相手（ここではユーザｉ用端末装置４０とする）に対して送信する。
【００９３】
ステップＳ４０４（２）：署名検証
これを受けたユーザｉ用端末装置４０は、確認部４５により、
ｒH0(m')≡（ｖQ r ）r'・（ｒ’）s'（ｍｏｄｐ）
なる式が成立するかを確認する。
そして、ユーザｉ用端末装置４０は、この確認ができた場合に、ｍ’に対する署名は、証明書発行者Ｑによって選ばれたユーザによって生成された署名であることを認識する。
【００９４】
また、上述のステップＳ４０４：公開鍵暗号の利用としては、暗号化にも利用することができる。
そこで、例えば、ユーザｋ用端末装置５０において、ＥｌＧａｍａｌ暗号による暗号化を行う場合について説明する。
【００９５】
暗号化：
ユーザｋ用端末装置５０は、暗号化部５６により、平文ｍ”を以下のようにして暗号化する。
▲１▼暗号化部５６は、乱数ｋ”を生成する。
▲２▼暗号化部５６は、
Ｃ1 ＝ｒk"ｍｏｄｐ
を計算する。
▲３▼暗号化部５６は、
Ｃ2 ＝ｍ”・（ｖQ r ｍｏｄｐ）k"ｍｏｄｐ
を計算する。
▲４▼そして、ユーザｋ用端末装置５０は、暗号化部５６で得られたＣ1 及びＣ2 を、ユーザｊ用端末装置３０に対して送信する。
【００９６】
復号：
これを受けたユーザｊ用端末装置３０は、復号部３４により、
ｍ”＝Ｃ2 ／Ｃ1 sj' ｍｏｄｐ
なる計算を行って、平文ｍ”を得る。
【００９７】
尚、上述のステップＳ４０４：公開鍵暗号の利用として、ＥｌＧａｍａｌ暗号を用いたものを説明したが、これに限らず、離散対数問題に基づく公開鍵暗号等を用いたものにも利用することができる。
【００９８】
上述のように、本発明においては、ｐは素数、αの位数はｐ−１、ｒ≡ｖj k ≡αsjk （ｍａｄｐ）であり、ｓj ∈Ｚp-1 * 、ｋ∈Ｚp-1 * である。或いは、ｐとｑが素数で、ｑはｐ−１を割り切り、αの位数がｑ、ｒ≡ｖj k ≡αsjk （ｍａｄｐ）であり、ｓj ∈Ｚq ＼｛０｝、ｋ∈Ｚq ＼｛０｝である。
したがって、任意のｒが与えられたとき、そのｒは、どのユーザの公開鍵からも計算して得ることができる値であり、実際に使用されたｋの値が分からない限りは、どのユーザの公開鍵から計算して得られたのかは全く特定することができない。換言すれば、匿名公開鍵証明書である署名ｒには、どのユーザの匿名公開鍵証明書であるかを特定するための情報が一切含まれない。これにより、計算量的な上述した仮定２によってではなく、情報量的に匿名性が実現されており、仮定２が成り立たなくなる事態が起きたとしても、匿名性を確実に保つことができる。このため、プライバシー保護に関する安全性を向上させることができる。
【００９９】
また、上述した何れの実施の形態においても、以下のように運用することで、プライバシー保護に関する安全性をさらに向上させることができる。
▲１▼証明書発行者Ｑ用端末装置２０は、任意のユーザ用端末装置（例えば、ユーザｊ用端末装置３０）に対して毎回異なる乱数ｋを用いた匿名公開鍵証明書を生成してユーザｊ用端末装置３０に対して送信する。
▲２▼これを受けたユーザｊ用端末装置３０は、ディジタル署名を生成せずに、１つの匿名公開証明書を異なる平文に対して使用する。
このような、匿名公開鍵証明書を使用する方式（One-time Certificates 、使い捨て証明書方式）により、任意のディジタル署名を生成したユーザと、それとは別のディジタル署名を生成したユーザとが、同一のユーザであるか否かを判別することは、証明書発行者Ｑと、上記任意のディジタル署名を生成したユーザ以外のユーザとにとって、情報量的に非常に困難、すなわち不可能である。したがって、ユーザの匿名性は情報量的に保たれるため、プライバシー保護に関する安全性をさらに向上させることができる。
【０１００】
【発明の効果】
以上説明したように本発明によれば、匿名公開鍵証明書である署名には、どのユーザの匿名公開鍵証明書であるかを特定するための情報が一切含まれない。これにより、計算量的な上述した仮定２によってではなく、情報量的に匿名性が実現されており、仮定２が成り立たなくなる事態が起きたとしても、匿名性を確実に保つことができる。したがって、プライバシー保護に関する安全性を向上させることができる。
【図面の簡単な説明】
【図１】第１の実施の形態において、本発明に係る情報通信システムを適用した通信システムの構成を示すブロック図である。
【図２】上記通信システムにおけるディジタル署名方式を説明するための図である。
【図３】第２の実施の形態において、上記通信システムにおけるディジタル署名方式を説明するための図である。
【図４】第３の実施の形態において、上記通信システムにおけるディジタル署名方式を説明するための図である。
【図５】従来のディジタル署名方式を説明するための図である。
【符号の説明】
１０    ネットワーク
２０    証明書発行者用端末装置
２１    公開鍵生成部
２２    署名生成部
３０〜５０    ユーザ用端末装置
３１    公開鍵生成部
３２    判別部
３３    署名生成部
３４    復号部
３５、４５    確認部
３６、５６    暗号化部
【図１】
0003862397.tif 000002
【図２】
0003862397.tif 000003
【図３】
0003862397.tif 000004
【図４】
0003862397.tif 000005
【図５】
0003862397.tif 000006