(57)【要約】【課題】多項式にエンティティのＩＤ情報を代入することにより、エンティティのＩＤ情報から変換される公開情報（公開鍵）を容易に求めることができる公開鍵暗号方法及び署名方法を提供する。【解決手段】センタ１は、一次以上の多項式関数を設定すると共にペアリングを定義できる楕円曲線上の点を選択し、これらの情報を公開鍵として公開する。送信側のエンティティＶにおいて、受信側のエンティティＵのＩＤ情報ｕを多項式関数に代入した関数値と選択された楕円曲線上の点とを使用して、平文ｍから暗号文Ｃ1 ，Ｃ2 を作成する。エンティティＵにおいて、自身のＩＤ情報ｕに基づく秘密鍵ＫU を用い、楕円曲線上のペアリングを利用して、暗号文Ｃ1 ，Ｃ2 を平文ｍに復号する。【選択図】        図２
2004201124.tif 000002
【特許請求の範囲】
【請求項１】
暗号文を受信するエンティティを特定する特定情報に基づく公開鍵を使用して暗号文を作成する公開鍵暗号方法において、多項式に前記特定情報を代入して得られる結果とペアリングを定義できる代数曲線上の点とを使用して前記暗号文を作成することを特徴とする公開鍵暗号方法。
【請求項２】
暗号文を受信するエンティティを特定する特定情報に基づく公開鍵を使用して暗号文を作成する公開鍵暗号方法において、多項式関数を設定し、ペアリングを定義できる代数曲線上の点を選択し、設定した前記多項式関数に前記特定情報を代入して得られる関数値と選択した前記点とを使用して前記暗号文を作成することを特徴とする公開鍵暗号方法。
【請求項３】
複数のエンティティが属するグループについて、該グループに対する暗号文及び前記複数のエンティティ夫々に対する暗号文を独立的に作成する公開鍵暗号方法において、前記グループを特定する特定情報及び前記複数のエンティティ夫々を特定する特定情報を使用することを特徴とする公開鍵暗号方法。
【請求項４】
第１のエンティティにて作成する署名データを第２のエンティティにて検証する署名方法において、前記第１のエンティティを特定する特定情報を多項式に代入して得られる結果とペアリングを定義できる代数曲線上の点とを使用して前記署名データの作成・検証を行うことを特徴とする署名方法。
【請求項５】
第１のエンティティにて作成する署名データを第２のエンティティにて検証する署名方法において、多項式関数を設定し、ペアリングを定義できる代数曲線上の点を選択し、設定した前記多項式関数に前記第１のエンティティを特定する特定情報を代入して得られる関数値と選択した前記点とを使用して前記署名データの作成・検証を行うことを特徴とする署名方法。
【請求項６】
複数のエンティティが属するグループについて、前記グループに属するエンティティにて作成する署名データを前記グループに属する他のエンティティまたは前記グループに属しないエンティティにて検証する署名方法において、前記グループを特定する特定情報及び前記署名データを作成する前記エンティティを特定する特定情報を使用することを特徴とする署名方法。
【請求項７】
送信すべき情報である平文を暗号文に暗号化する暗号化処理、及び、送信された暗号文を平文に復号する復号処理を、複数のエンティティ間で相互に行う暗号通信システムにおいて、公開鍵と各エンティティを特定する特定情報に基づく各エンティティの秘密鍵とを生成するセンタと、送信対象のエンティティの特定情報に基づく公開鍵を用いて前記暗号化処理を行うと共に、自身の秘密鍵を用いて前記復号処理を行う複数のエンティティとを有しており、前記センタにて、多項式関数を設定すると共にペアリングを定義できる代数曲線上の点を選択し、各エンティティにて、設定した前記多項式関数に前記特定情報を代入して得られる関数値と選択した前記点とを使用して前記暗号文を作成するようにしたことを特徴とする暗号通信システム。
【請求項８】
コンピュータに、公開鍵暗号方式また署名方式に用いる公開鍵及び秘密鍵を生成させるためのコンピュータプログラムにおいて、コンピュータに、多項式関数を設定させるステップと、コンピュータに、ペアリングを定義できる代数曲線上の点を選択させるステップとを有することを特徴とするコンピュータプログラム。
【請求項９】
コンピュータに、暗号文を受信するエンティティを特定する特定情報に基づく公開鍵を使用して暗号文を作成させるためのコンピュータプログラムにおいて、コンピュータに、多項式関数及びペアリングを定義できる代数曲線上の点を入力させるステップと、コンピュータに、前記多項式関数に前記特定情報を代入して関数値を得させるステップと、コンピュータに、得た関数値と前記点とを使用して前記暗号文を作成させるステップとを有することを特徴とするコンピュータプログラム。
【請求項１０】
コンピュータに、署名データを作成するエンティティを特定する特定情報を用いて前記署名データを作成させるためのコンピュータプログラムにおいて、コンピュータに、多項式関数及びペアリングを定義できる代数曲線上の点を入力させるステップと、コンピュータに、前記多項式関数に前記特定情報を代入して関数値を得させるステップと、コンピュータに、得た関数値と前記点とを使用して前記署名データを作成させるステップとを有することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エンティティを特定する特定情報（以下、ＩＤ（Identity）情報という）を用いて暗号化処理及び復号処理を行う公開鍵暗号方法、エンティティのＩＤ情報を用いて署名データの作成処理及び検証処理を行う署名方法、この公開鍵暗号方法を利用した暗号通信システム、並びに、これらの方法をコンピュータに実行させるためのコンピュータプログラムに関する。
【０００２】
【従来の技術】
高度情報化社会と呼ばれる現代社会では、コンピュータネットワークを基盤として、ビジネス上の重要な文書・画像情報が電子的な情報という形で伝送通信されて処理される。このような電子情報は、容易に複写が可能である、複写物とオリジナルとの区別が困難であるという性質があり、情報保全の問題が重要視されている。特に、「コンピュータリソースの共有」，「マルチアクセス」，「広域化」の各要素を満たすコンピュータネットワークの実現が高度情報化社会の確立に不可欠であるが、これは当事者間の情報保全の問題とは矛盾する要素を含んでいる。このような矛盾を解消するための有効な手法として、人類の過去の歴史上主として軍事，外交面で用いられてきた暗号技術が注目されている。
【０００３】
暗号とは、情報の意味が当事者以外には理解できないように情報を交換することである。暗号において、誰でも理解できる元の文（平文）を第三者には意味がわからない文（暗号文）に変換することが暗号化であり、また、暗号文を平文に戻すことが復号であり、この暗号化と復号との全過程をまとめて暗号系と呼ぶ。暗号化の過程及び復号の過程には、それぞれ暗号化鍵及び復号鍵と呼ばれる秘密の情報が用いられる。復号時には秘密の復号鍵が必要であるので、この復号鍵を知っている者のみが暗号文を復号でき、暗号化によって情報の秘密性が維持され得る。
【０００４】
暗号化鍵と復号鍵とは、等しくても良いし、異なっていても良い。両者の鍵が等しい暗号系は、共通鍵暗号系と呼ばれ、米国商務省標準局が採用したＤＥＳ（Data Encryption Standards)はその典型例である。また、両者の鍵が異なる暗号系の一例として、公開鍵暗号系と呼ばれる暗号系が提案された。この公開鍵暗号系は、暗号系を利用する各エンティティが暗号化鍵と復号鍵とを一対ずつ作成し、暗号化鍵を公開鍵リストにて公開し、復号鍵のみを秘密に保持するという暗号系である。公開鍵暗号系では、この一対となる暗号化鍵と復号鍵とが異なり、一方向性関数を利用することによって暗号化鍵から復号鍵を割り出せないという特徴を持たせている。
【０００５】
公開鍵暗号系は、暗号化鍵を公開するという画期的な暗号系であって、高度情報化社会の確立に必要な上述した３つの要素に適合するものであり、情報通信技術の分野等での利用を図るべく、その研究が活発に行われ、典型的な公開鍵暗号系としてＲＳＡ暗号系が提案された。このＲＳＡ暗号系は、一方向性関数として素因数分解の困難さを利用して実現されている。また、離散対数問題を解くことの困難さ（離散対数問題）を利用した公開鍵暗号系も種々の手法が提案されてきた。
【０００６】
また、各エンティティの住所，氏名，電子メールのアドレス等の個人を特定するＩＤ情報を利用する暗号系が提案された。この暗号系では、ＩＤ情報に基づいて送受信エンティティ間で共通の暗号化・復号鍵を生成する。また、このＩＤ情報に基づく暗号技法には、（１）暗号文通信に先立って送受信エンティティ間での予備通信を必要とする方式と、（２）暗号文通信に先立って送受信エンティティ間での予備通信を必要としない方式とがある。特に、（２）の手法は予備通信が不要であるので、エンティティの利便性が高く、将来の暗号系の中枢をなすものと考えられている。
【０００７】
この（２）の手法による暗号系は、ＩＤ−ＮＩＫＳ（ID-based non-interactive key sharing scheme)と呼ばれており、通信相手のＩＤ情報を用いて予備通信を行うことなく暗号化・復号鍵を共有する方式を採用している。ＩＤ−ＮＩＫＳは、送受信エンティティ間で公開鍵，秘密鍵を交換する必要がなく、また鍵のリスト及び第三者によるサービスも必要としない方式であり、任意のエンティティ間で安全に通信を行える。
【０００８】
上述した公開鍵暗号系では、例えばＲＳＡ暗号系の場合にその公開鍵の長さは現在の電話番号の十数倍となり、極めて煩雑である。これに対して、ＩＤ−ＮＩＫＳでは、各ＩＤ情報を名簿という形式で登録しておけば、この名簿を参照して任意のエンティティとの間で共通鍵を生成することができる。従って、ＩＤ−ＮＩＫＳのシステムが安全に実現されれば、多数のエンティティが加入するコンピュータネットワーク上で便利な暗号系を構築できる。このような理由により、ＩＤ−ＮＩＫＳが将来の暗号系の中心になると期待されている。
【０００９】
そこで、本発明者等は、各エンティティのＩＤ情報を使用して、楕円曲線上のペアリングに基づいて予備通信を行うことなく両エンティティ間で容易に共通鍵を共有し合える鍵共有方法、この鍵共有方法を用いた暗号通信システムを提案している（例えば、特許文献１参照）。
【００１０】
【特許文献１】
特開２００２−２６８９２号公報
【００１１】
【発明が解決しようとする課題】
本発明者等は、特許文献１のような鍵共有方式（ＩＤ−ＮＩＫＳ）を提案した後も、楕円曲線上のペアリングを用いた各エンティティのＩＤ情報に基づく公開鍵暗号方式及び署名方式の研究を続けている。
【００１２】
本発明は斯かる事情に鑑みてなされたものであり、多項式にエンティティのＩＤ情報を代入することにより、エンティティのＩＤ情報から変換される公開情報（公開鍵）を容易に求めることができる公開鍵暗号方法及び署名方法、その公開鍵暗号方法を利用した暗号通信システム、並びに、これらの方法をコンピュータに実行させるためのコンピュータプログラムを提供することを目的とする。
【００１３】
本発明の他の目的は、グループのＩＤ情報及びグループに属する複数のエンティティ夫々のＩＤ情報を使用することにより、グループに対する暗号文または署名データとそのグループに属する複数のエンティティ夫々に対する暗号文または署名データとを独立的に容易に作成できる公開鍵暗号方法または署名方法を提供することにある。
【００１４】
【課題を解決するための手段】
請求項１に係る公開鍵暗号方法は、暗号文を受信するエンティティを特定する特定情報に基づく公開鍵を使用して暗号文を作成する公開鍵暗号方法において、多項式に前記特定情報を代入して得られる結果とペアリングを定義できる代数曲線上の点とを使用して前記暗号文を作成することを特徴とする。
【００１５】
請求項２に係る公開鍵暗号方法は、暗号文を受信するエンティティを特定する特定情報に基づく公開鍵を使用して暗号文を作成する公開鍵暗号方法において、多項式関数を設定し、ペアリングを定義できる代数曲線上の点を選択し、設定した前記多項式関数に前記特定情報を代入して得られる関数値と選択した前記点とを使用して前記暗号文を作成することを特徴とする。
【００１６】
請求項３に係る公開鍵暗号方法は、複数のエンティティが属するグループについて、該グループに対する暗号文及び前記複数のエンティティ夫々に対する暗号文を独立的に作成する公開鍵暗号方法において、前記グループを特定する特定情報及び前記複数のエンティティ夫々を特定する特定情報を使用することを特徴とする。
【００１７】
請求項４に係る署名方法は、第１のエンティティにて作成する署名データを第２のエンティティにて検証する署名方法において、前記第１のエンティティを特定する特定情報を多項式に代入して得られる結果とペアリングを定義できる代数曲線上の点とを使用して前記署名データの作成・検証を行うことを特徴とする。
【００１８】
請求項５に係る署名方法は、第１のエンティティにて作成する署名データを第２のエンティティにて検証する署名方法において、多項式関数を設定し、ペアリングを定義できる代数曲線上の点を選択し、設定した前記多項式関数に前記第１のエンティティを特定する特定情報を代入して得られる関数値と選択した前記点とを使用して前記署名データの作成・検証を行うことを特徴とする。
【００１９】
請求項６に係る署名方法は、複数のエンティティが属するグループについて、前記グループに属するエンティティにて作成する署名データを前記グループに属する他のエンティティまたは前記グループに属しないエンティティにて検証する署名方法において、前記グループを特定する特定情報及び前記署名データを作成する前記エンティティを特定する特定情報を使用することを特徴とする。
【００２０】
請求項７に係る暗号通信システムは、送信すべき情報である平文を暗号文に暗号化する暗号化処理、及び、送信された暗号文を平文に復号する復号処理を、複数のエンティティ間で相互に行う暗号通信システムにおいて、公開鍵と各エンティティを特定する特定情報に基づく各エンティティの秘密鍵とを生成するセンタと、送信対象のエンティティの特定情報に基づく公開鍵を用いて前記暗号化処理を行うと共に、自身の秘密鍵を用いて前記復号処理を行う複数のエンティティとを有しており、前記センタにて、多項式関数を設定すると共にペアリングを定義できる代数曲線上の点を選択し、各エンティティにて、設定した前記多項式関数に前記特定情報を代入して得られる関数値と選択した前記点とを使用して前記暗号文を作成するようにしたことを特徴とする。
【００２１】
請求項８に係るコンピュータプログラムは、コンピュータに、公開鍵暗号方式また署名方式に用いる公開鍵及び秘密鍵を生成させるためのコンピュータプログラムにおいて、コンピュータに、多項式関数を設定させるステップと、コンピュータに、ペアリングを定義できる代数曲線上の点を選択させるステップとを有することを特徴とする。
【００２２】
請求項９に係るコンピュータプログラムは、コンピュータに、暗号文を受信するエンティティを特定する特定情報に基づく公開鍵を使用して暗号文を作成させるためのコンピュータプログラムにおいて、コンピュータに、多項式関数及びペアリングを定義できる代数曲線上の点を入力させるステップと、コンピュータに、前記多項式関数に前記特定情報を代入して関数値を得させるステップと、コンピュータに、得た関数値と前記点とを使用して前記暗号文を作成させるステップとを有することを特徴とする。
【００２３】
請求項１０に係るコンピュータプログラムは、コンピュータに、署名データを作成するエンティティを特定する特定情報を用いて前記署名データを作成させるためのコンピュータプログラムにおいて、コンピュータに、多項式関数及びペアリングを定義できる代数曲線上の点を入力させるステップと、コンピュータに、前記多項式関数に前記特定情報を代入して関数値を得させるステップと、コンピュータに、得た関数値と前記点とを使用して前記署名データを作成させるステップとを有することを特徴とする。
【００２４】
本発明の公開鍵暗号方法にあっては、多項式関数が設定されると共にペアリングを定義できる代数曲線上の点が選択され、暗号文を受信するエンティティのＩＤ情報がその多項式関数に代入されて得られる関数値と代数曲線上の選択した点とを使用して暗号文が作成される。よって、エンティティのＩＤ情報から代数曲線を用いて変換される公開鍵がより容易に求められる。
【００２５】
本発明の署名方法にあっては、多項式関数が設定されると共にペアリングを定義できる代数曲線上の点が選択され、署名データを作成するエンティティのＩＤ情報がその多項式関数に代入されて得られる関数値と代数曲線上の選択した点とを使用して署名データが作成される。よって、エンティティのＩＤ情報から代数曲線を用いて変換される公開鍵がより容易に求められる。
【００２６】
本発明の公開鍵暗号方法または署名方法にあっては、グループのＩＤ情報及びグループに属する複数のエンティティ夫々のＩＤ情報が使用されて、グループに対する暗号文または署名データとそのグループに属する複数のエンティティ夫々に対する暗号文または署名データとが独立的に作成される。よって、これらの暗号文または署名データが容易に作成される。
【００２７】
【発明の実施の形態】
本発明の実施の形態について具体的に説明する。
まず、本発明で用いる楕円曲線のベイユペアリングの基本的性質を述べる。有限体ベクトルＦq 上で定義された楕円曲線をＥ／ベクトルＦq で表し、この楕円曲線をＥ／ベクトルＦq のベクトルＦq 上で有理点がなす群をＥ（ベクトルＦq ）と表す。ここでは、この楕円曲線の群Ｅ（ベクトルＦq ）の部分群にｎねじれ部分群Ｅ［ｎ］が含まれるものとする。
【００２８】
楕円曲線上のペアリングは、楕円曲線上の二つのｎねじれ点Ｐ，Ｑ∈Ｅ［ｎ］からベクトルＦq 上の位数ｎの乗法群への写像である。ペアリングには、以下に示すような性質が存在する。なお、ｅn （  ，  ）はペアリングを表す。
【００２９】
（非退化）
ある点Ｐ∈Ｅ［ｎ］と任意の点Ｑ∈Ｅ［ｎ］とに対して、
ｅn （Ｐ，Ｑ）＝１が成立するとき、Ｐ＝０である。
（反対称）
任意の点Ｐ，Ｑ∈Ｅ［ｎ］に対して、
ｅn （Ｐ，Ｑ）＝ｅn （Ｑ，Ｐ）-1が成立する。
（双線形）
任意の点Ｐ，Ｑ，Ｒ∈Ｅ［ｎ］に対して、
ｅn （Ｐ＋Ｑ，Ｒ）＝ｅn （Ｐ，Ｒ）ｅn （Ｑ，Ｒ），
ｅn （Ｐ，Ｑ＋Ｒ）＝ｅn （Ｐ，Ｑ）ｅn （Ｐ，Ｒ）
が成立する。
【００３０】
楕円曲線上のペアリングを暗号方式に適用する場合、十分な安全性を確保するために、利用する楕円曲線とそのｎねじれ部分群とを以下の条件を満たすように選ぶ必要がある。
（１）ｎは１６０ビット以上の素数を因数に持つ。
（２）ｑは２1024以上である。
（３）ベクトルＦq の部分体について次の条件を満たす。
【００３１】
【数１】
2004201124.tif 000003
【００３２】
以下の説明では、これらの（１）〜（３）の条件を満たす楕円曲線を、ペアリングの計算が可能な安全な楕円曲線と称する。また、以下では簡単のためにｎを素数とする。
【００３３】
（第１実施の形態：ＩＤ情報に基づく公開鍵暗号方法）
図１は、本発明の暗号通信システムの構成を示す模式図である。情報の隠匿を信頼できるセンタ１が設定されており、このセンタ１としては、例えば社会の公的機関を該当できる。このセンタ１と、この暗号通信システムを利用するユーザとしての複数の各エンティティＡ，Ｂ，…，Ｚとは、秘密通信路２ａ，２ｂ，…，２ｚにより接続されており、これらの秘密通信路２ａ，２ｂ，…，２ｚを介してセンタ１から秘密の鍵情報（秘密鍵ＫA ，ＫB ，…，ＫZ ）が各エンティティＡ，Ｂ，…，Ｚへ配布されるようになっている。また、二つのエンティティの間には通信路３ab，３az，３bz，…が設けられており、この通信路３ab，３az，３bz，…を介して通信情報を暗号化した暗号文が互いのエンティティ間で伝送されるようになっている。
【００３４】
次に、暗号通信システムにおけるエンティティ間の情報通信について説明する。図２は、二つのエンティティＶ，Ｕ間における情報の通信状態を示す模式図である。図２の例は、エンティティＶで平文（メッセージ）ｍを暗号文Ｃ1 ，Ｃ2 に暗号化してそれをエンティティＵへ伝送し、エンティティＵでその暗号文Ｃ1 ，Ｃ2 を元の平文（メッセージ）ｍに復号する場合を示している。なお、エンティティとしては、人間、装置、機械、プログラム、または、それらを構成要素としたシステムなど多様なものがあり、これらの何れの間であっても、本発明は適用可能である。
【００３５】
センタ１は、公開情報であるベクトルＨを含む各種の公開鍵を生成する公開鍵生成部１ａと、各エンティティＶ，Ｕの秘密鍵ＫV ，ＫU を求める秘密鍵生成部１ｂと、生成した秘密鍵ＫV ，ＫU を各エンティティＶ，Ｕへ配布する秘密鍵配布部１ｃとを備えている。
【００３６】
送信側であるエンティティＶの暗号化装置１０は、センタ１から秘密鍵ＫV を受け取る秘密鍵受取部１１と、乱数ｒを生成する乱数生成部１２と、平文ｍを暗号文Ｃ1 ，Ｃ2 に暗号化する暗号化部１３と、作成した暗号文Ｃ1 ，Ｃ2 を通信路５０へ送り出す暗号文送出部１４とを備えている。
【００３７】
また、送信側であるエンティティＵの復号装置２０は、センタ１から秘密鍵ＫU を受け取る秘密鍵受取部２１と、通信路５０から暗号文Ｃ1 ，Ｃ2 を受け取る暗号文受取部２２と、暗号文Ｃ1 ，Ｃ2 を平文ｍに復号する復号部２３と、復号した平文ｍを出力する平文出力部２４とを備えている。
【００３８】
次に、動作について説明する。図３はセンタ１での処理の動作手順を示すフローチャート、図４はエンティティＶ（送信側）での暗号化処理の動作手順を示すフローチャート、図５はエンティティＵ（受信側）での復号処理の動作手順を示すフローチャートである。
【００３９】
まず、センタ１において、ペアリングが計算可能な安全な楕円曲線が生成され（ステップＳ１）、ｎねじれ点ＰとＱとがランダムに選ばれる（ステップＳ２）。但し、ｅn （Ｐ，Ｑ）≠１とならないように、点Ｐ，Ｑが選択される。次いで、下記式（１）に示すようなｄ次の多項式関数ｆ（ｘ）が生成される（ステップＳ３）。なお、式（１）において、最高次の係数ａd は１で良く、また、ｄ＝１つまり一次式であっても良い。
ｆ（ｘ）＝ａd ｘd ＋ａd-1 ｘd-1 ＋・・・＋ａ1 ｘ＋ａ0     …（１）
【００４０】
センタ１において、下記式（２）に示すようなベクトルＨが計算され、そのベクトルＨが公開情報として公開される（ステップＳ４）。また、エンティティＶ，ＵのＩＤ情報ｖ，ｕを用いて、秘密鍵ＫV ，ＫU が下記式（３），（４）に示すように生成されて（ステップＳ５）、各エンティティＶ，Ｕへ配布される（ステップＳ６）。
【００４１】
【数２】
2004201124.tif 000004
【００４２】
エンティティＶでは、乱数ｒが乱数生成部１２にて生成され（ステップＳ１１）、エンティティＵのＩＤ情報ｕとセンタ１の公開情報ベクトルＨと乱数ｒとを用いて、下記式（５），（６）に示すように平文ｍから暗号文Ｃ1 ，Ｃ2 が暗号化部１３にて作成される（ステップＳ１２，１３）。なお、式（６）における演算記号は、例えば公開鍵暗号でのビット毎のＥＸＯＲ（排他的論理和）を表す．
【００４３】
【数３】
2004201124.tif 000005
【００４４】
なお、上記暗号文Ｃ2 におけるｅn （Ｐ，Ｑ）は、エンティティＶのＩＤ情報ｖとエンティティＶの秘密鍵ＫV とセンタ１の公開情報ベクトルＨとを用いて、以下のように算出できる。
【００４５】
【数４】
2004201124.tif 000006
【００４６】
作成された暗号文Ｃ1 ，Ｃ2 は、暗号文送出部１４から通信路５０を介してエンティティＵへ伝送される（ステップＳ１４）。
【００４７】
通信路５０を伝送された暗号文Ｃ1 ，Ｃ2 は、エンティティＵの暗号文受取部２２で受け取られる（ステップＳ２１）。エンティティＵでは、復号部２３において、自身の秘密鍵ＫU を用いて、下記式（７）に示すように暗号文Ｃ1 ，Ｃ2 が平文ｍに復号される（ステップＳ２２）。
【００４８】
【数５】
2004201124.tif 000007
【００４９】
以上のようにして、比較的簡単なアルゴリズムによって、暗号文により情報通信を安全に行える。
【００５０】
なお、上述した第１実施の形態では、エンティティＶ（送信側）がセンタ１に登録されており、自身の秘密鍵ＫV を利用してｅn （Ｐ，Ｑ）を求めるようにしたが、このｅn （Ｐ，Ｑ）がセンタ１からの公開情報として公開されている場合には、エンティティＶ（送信側）はセンタ１に登録されていなくても暗号文を作成することができる。
【００５１】
（第２実施の形態：ＩＤ情報に基づく署名方法）
次に、第１実施の形態で説明した公開鍵暗号方式と同様の手法を用いる、ＩＤ情報に基づく署名方式について説明する。
【００５２】
図６は、二つのエンティティＵ，Ｖ間における署名システムを示す模式図である。図６の例は、エンティティＵが署名データを作成し、エンティティＶがその署名データを検証する場合を示している。
【００５３】
センタ１は、第１実施の形態と同様の公開鍵生成部１ａ，秘密鍵生成部１ｂ及び秘密鍵配布部１ｃを備えている。
【００５４】
署名側であるエンティティＵの署名装置３０は、センタ１から秘密鍵ＫU を受け取る秘密鍵受取部３１と、乱数を生成する乱数生成部３２と、各種の公開鍵と自身のＩＤ情報ｕと自身の秘密鍵ＫU とを用いて署名データを作成する署名データ作成部３３とを備えている。また、検証側であるエンティティＶの検証装置４０は、センタ１から秘密鍵ＫV を受け取る秘密鍵受取部４１と、エンティティＵからの署名データを検証する署名データ検証部４２とを備えている。
【００５５】
次に、動作について説明する。図７はセンタ１での処理の動作手順を示すフローチャート、図８は署名データを作成するエンティティＵ（署名側）での署名処理の動作手順を示すフローチャート、図９は署名データを検証するエンティティＶ（検証側）での検証処理の動作手順を示すフローチャートである。
【００５６】
まず、センタ１において、第１実施の形態と同様に、ペアリングが計算可能な安全な楕円曲線が生成され（ステップＳ３１）、ｎねじれ点ＰとＱとがランダムに選ばれる（ステップＳ３２）。次いで、上記式（１）に示すようなｄ次の多項式関数ｆ（ｘ）が生成される（ステップＳ３３）。各種（後述する各手法によって異なる）の公開鍵が公開情報として公開される（ステップＳ３４）。また、エンティティＵ，ＶのＩＤ情報ｕ，ｖを用いて、秘密鍵ＫU ，ＫV が前記式（４），（３）に示すように生成されて（ステップＳ３５）、各エンティティＵ，Ｖへ配布される（ステップＳ３６）。
【００５７】
エンティティＵでは、乱数ｋが乱数生成部３２にて生成され（ステップＳ４１）、エンティティＵのＩＤ情報ｕ及び秘密鍵ＫU と各種の公開鍵（公開情報）と乱数ｋとを用いて、署名データ作成部３３にて署名データが作成される（ステップＳ４２）。作成された署名データは、エンティティＶへ送られる（ステップＳ４３）。
【００５８】
作成された署名データは、エンティティＶで受け取られ（ステップＳ５１）、署名データ検証部４２において、自身及びエンティティＵのＩＤ情報ｖ及びｕと自身の秘密鍵ＫV と各種の公開鍵（公開情報）とを用いて、その署名データが検証される（ステップＳ５２）。
【００５９】
次に、本発明の署名方法の具体例（第１例〜第６例）について説明する。署名方式の代表的な型として、ElGamal 型とSchnorr 型とが知られており、以下ではこれらの型を中心にして説明する。
【００６０】
〔第１例〕（ElGamal 型のＩ）
第１実施の形態でのセンタ１における公開鍵に、Ｐ∈Ｅ［ｎ］を追加する。センタの公開鍵ベクトルＨと任意のエンティティＣのＩＤ情報ｃとから、下記式（８）のようにｆ（ｃ）Ｑを計算することができる。更に、自身の秘密鍵ＫC を用いてエンティティＣは下記式（９）のようにｅn （Ｐ，Ｑ）を計算することが可能である。つまり、自身の秘密鍵を持っている任意のエンティティはｅn （Ｐ，Ｑ）を計算できる。
【００６１】
【数６】
2004201124.tif 000008
【００６２】
具体的な署名及び検証は以下のように行う。なお、センタ１は、一方向性関数であるハッシュ関数ｈ（・）を公開鍵として公開する。
【００６３】
署名：（署名データ（Ｒ，Ｓ））エンティティＵにおいて、乱数ｋ∈Ｚn が生成され（Ｓ４１）、下記式（10），（11）のように署名データ（Ｒ，Ｓ）が作成される（Ｓ４２）。作成された署名データ（Ｒ，Ｓ）がエンティティＶへ送られる（Ｓ４３）。但し、ｘはＲのｘ座標を表す。
【００６４】
【数７】
2004201124.tif 000009
【００６５】
検証：エンティティＶにおいて、署名データ（Ｒ，Ｓ）が受け取られ（Ｓ５１）、下記式（12）に示すｖ1 と下記式（13）に示すｖ2 とが等しいことが確かめられて、署名データの検証が行われる（Ｓ５２）。
【００６６】
【数８】
2004201124.tif 000010
【００６７】
〔第２例〕（Schnorr 型のＩ）
第１実施の形態でのセンタ１における公開鍵に、Ｐ∈Ｅ［ｎ］を追加する。具体的な署名及び検証は以下のように行う。なお、センタ１は、ハッシュ関数ｈ（・）を公開鍵として公開する。
【００６８】
署名：（署名データ（ｅ，Ｓ））エンティティＵにおいて、乱数ｋ∈Ｚn が生成され（Ｓ４１）、下記式（14）のような中間データｒが計算された後、下記式（15），（16）のように署名データ（ｅ，Ｓ）が作成される（Ｓ４２）。なお、署名データｅは、式（15）で示す如く、平文ｍと中間データｒとの連接のハッシュ値として求められる。作成された署名データ（ｅ，Ｓ）がエンティティＶへ送られる（Ｓ４３）。
【００６９】
【数９】
2004201124.tif 000011
【００７０】
検証：エンティティＶにおいて、署名データ（ｅ，Ｓ）が受け取られ（Ｓ５１）、下記式（17），（18）の成立が確かめられて、署名データの検証が行われる（Ｓ５２）。
【００７１】
【数１０】
2004201124.tif 000012
【００７２】
〔第３例〕（ElGamal 型のII）
この第３例の方式では、Ｐを用いないので、このＰをセンタ１の秘密情報として使用することができる。具体的な署名及び検証は以下のように行う。なお、センタ１は、ハッシュ関数ｈ（・）を公開鍵として公開する。
【００７３】
署名：（署名データ（ベクトルＲ，Ｓ））エンティティＵにおいて、乱数ｋ∈Ｚn が生成され（Ｓ４１）、下記式（19），（20）のように署名データ（ベクトルＲ，Ｓ）が作成される（Ｓ４２）。作成された署名データ（ベクトルＲ，Ｓ）がエンティティＶへ送られる（Ｓ４３）。但し、ｘはｋＨ0 のｘ座標を表す。
【００７４】
【数１１】
2004201124.tif 000013
【００７５】
検証：エンティティＶにおいて、署名データ（ベクトルＲ，Ｓ）が受け取られ（Ｓ５１）、以下の関係の成立が確かめられて、署名データの検証が行われる（Ｓ５２）。まず、ベクトルＲより下記式（21）のようにｋｆ（ｖ）Ｑが求められ、次に、下記式（22），（23），（24）のようにｗ1 ，ｗ2 ，ｗ3 が得られる。そして、下記式（25）の成立により、署名データ（ベクトルＲ，Ｓ）の正当性が検証される。
【００７６】
【数１２】
2004201124.tif 000014
【００７７】
〔第４例〕（Schnorr 型のII）
この第４例の方式では、第３例と同様、Ｐを用いないので、このＰをセンタ１の秘密情報として使用することができる。具体的な署名及び検証は以下のように行う。なお、センタ１は、ハッシュ関数ｈ（・）を公開鍵として公開する。
【００７８】
署名：（署名データ（ｅ，Ｓ））エンティティＵにおいて、乱数ｋ∈Ｚn が生成され（Ｓ４１）、下記式（26）のような中間データｒが計算された後、下記式（27），（28）のように署名データ（ｅ，Ｓ）が作成される（Ｓ４２）。作成された署名データ（ｅ，Ｓ）がエンティティＶへ送られる（Ｓ４３）。
【００７９】
【数１３】
2004201124.tif 000015
【００８０】
検証：エンティティＶにおいて、署名データ（ｅ，Ｓ）が受け取られ（Ｓ５１）、以下のようにして、署名データの検証が行われる（Ｓ５２）。まず、下記式（29）に従ってｗが求められ、次に、下記式（30）が成立することにより、署名データ（ｅ，Ｓ）と平文ｍとの正当性が検証される。
【００８１】
【数１４】
2004201124.tif 000016
【００８２】
〔第５例〕（ElGamal 型のIII)
この第５例の方式では、Ｐをセンタ１の公開鍵とする。この方式の特徴は、署名データの検証時に必ず自身の秘密鍵を必要とする点にある。具体的な署名及び検証は以下のように行う。なお、センタ１は、ハッシュ関数ｈ（・）を公開鍵として公開する。
【００８３】
署名：（署名データ（ベクトルＲ，Ｓ））エンティティＵにおいて、乱数ｋ∈Ｚn が生成され（Ｓ４１）、下記式（31），（32）のように署名データ（ベクトルＲ，Ｓ）が作成される（Ｓ４２）。作成された署名データ（ベクトルＲ，Ｓ）がエンティティＶへ送られる（Ｓ４３）。但し、ｘはｋＨ0 のｘ座標を表す。
【００８４】
【数１５】
2004201124.tif 000017
【００８５】
検証：エンティティＶにおいて、署名データ（ベクトルＲ，Ｓ）が受け取られ（Ｓ５１）、以下の関係の成立が確かめられて、署名データの検証が行われる（Ｓ５２）。下記式（33），（34），（35）のようにｗ1 ，ｗ2 ，ｗ3 が計算された後、下記式（36）の成立により、署名データ（ベクトルＲ，Ｓ）の正当性が検証される。
【００８６】
【数１６】
2004201124.tif 000018
【００８７】
〔第６例〕（その他の型）
この第６例の方式での具体的な署名及び検証は以下のように行う。なお、センタ１は、ハッシュ関数ｈ（・）を公開鍵として公開する。
【００８８】
署名：エンティティＵにおいて、乱数ｋ，ｒ∈Ｚn が生成され（Ｓ４１）、ハッシュ関数ｈ（・）を用いて平文ｍに対応する楕円曲線上のｎねじれ点Ｍ＝ｈ（ｍ）が計算される。そして、平文ｍに対する署名データ（Ｓ1 ，Ｓ2 ，ベクトルＳ3 ）が、エンティティＵの秘密鍵ＰU （エンティティＵのＩＤ情報ｕを楕円曲線上のｎねじれ点Ｐに写像したもの）と、センタの公開情報ｈ（・），ベクトルＨとを用いて、下記式（37），（38），（39）のように作成される（Ｓ４２）。作成された署名データ（Ｓ1 ，Ｓ2 ，ベクトルＳ3 ）がエンティティＶへ送られる（Ｓ４３）。
【００８９】
【数１７】
2004201124.tif 000019
【００９０】
検証：エンティティＶにおいて、署名データ（Ｓ1 ，Ｓ2 ，ベクトルＳ3 ）が受け取られ（Ｓ５１）、平文ｍからＭ＝ｈ（ｍ）が得られた後、エンティティＶの秘密鍵ＰV を用いて、下記式（40）の成立が確かめられて、署名データの検証が行われる（Ｓ５２）。
【００９１】
【数１８】
2004201124.tif 000020
【００９２】
なお、上述した第２実施の形態では、エンティティＶ（検証側）がセンタ１に登録されており、自身の秘密鍵ＫV を利用してｅn （Ｐ，Ｑ）を求めるようにしたが、このｅn （Ｐ，Ｑ）がセンタ１からの公開情報として公開されている場合には、エンティティＶ（検証側）はセンタ１に登録されていなくても署名データの検証を行うことができる。
【００９３】
（第３実施の形態）
次に、第２実施の形態とは異なる秘密鍵及び公開鍵を使用する第３実施の形態の署名方法について、ElGamal 型（第７例）とSchnorr 型（第８例）とを例として説明する。なお、第３実施の形態における署名装置及び検証装置の構成、並びに、センタ処理，署名処理及び検証処理の動作手順は、第２実施の形態（図６〜図９）と同様であるのでそれらの説明は省略する。
【００９４】
〔第７例〕（ElGamal 型）
準備：信頼がおけるセンタにて、ペアリングの計算が可能な安全な楕円曲線が生成され、エンティティＵ（署名側）のＩＤ情報ｕがその楕円曲線上のｎねじれ点ＰU に変換されると共に、ハッシュ関数ｈ（・）が公開される。また、センタにて、秘密鍵ｙ∈Ｚn が生成され、ｎねじれ点Ｑ∈Ｅ［ｎ］を用いて、Ｑ，ｙＱが計算されて公開される。更に、センタにて、エンティティＵのＩＤ情報ｕからエンティティＵの秘密鍵ＫU ＝ｙＰU が計算されて、この秘密鍵ＫU がエンティティＵへ送られる。
【００９５】
署名：（署名データ（Ｒ，Ｓ））エンティティＵにおいて、乱数ｋ∈Ｚn が生成され、下記式（41），（42）のように署名データ（Ｒ，Ｓ）が作成される。作成された署名データ（Ｒ，Ｓ）がエンティティＶへ送られる。但し、ｘはＲのｘ座標である。
【００９６】
【数１９】
2004201124.tif 000021
【００９７】
検証：エンティティＶにおいて、署名データ（Ｒ，Ｓ）が受け取られ、下記式（43）の成立が確かめられて、署名データの検証が行われる。
【００９８】
【数２０】
2004201124.tif 000022
【００９９】
〔第８例〕（Schnorr 型）
準備：センタにおける準備処理は、第７例と同様である。
【０１００】
署名：（署名データ（ｅ，Ｓ））エンティティＵにおいて、乱数ｋ∈Ｚn が生成され、下記式（44）のような中間データｒが計算された後、下記式（45），（46）のように署名データ（ｅ，Ｓ）が作成される。作成された署名データ（ｅ，Ｓ）がエンティティＶへ送られる。
【０１０１】
【数２１】
2004201124.tif 000023
【０１０２】
検証：エンティティＶにおいて、署名データ（ｅ，Ｓ）が受け取られ、下記式（47），（48）の成立が確かめられて、署名データの検証が行われる。
【０１０３】
【数２２】
2004201124.tif 000024
【０１０４】
（第４実施の形態）
次に、複数のエンティティにて構成されるグループを考慮した公開鍵暗号方法及び署名方法について説明する。なお、第４実施の形態の公開鍵暗号方法における暗号化装置及び復号装置の構成、並びに、センタ処理，暗号化処理及び復号処理の動作手順は、第１実施の形態（図２〜図５）と同様であり、また、第４実施の形態の署名方法における署名装置及び検証装置の構成、並びに、センタ処理，署名処理及び検証処理の動作手順は、第２実施の形態（図６〜図９）と同様であるので、それらの説明は省略する。
【０１０５】
第４実施の形態にあっては、第１，第２実施の形態で述べたようなセンタ秘密の多項式関数を、各エンティティ用とグループ用との２組生成する。具体的には、下記式（49）に示すような各エンティティ用のｄ次の多項式関数ｆ（ｘ）（上記式（１）と同様）と、下記式（50）に示すようなグループ用のｚ次の多項式関数ｔ（ｘ）とが生成される。
ｆ（ｘ）＝ａd ｘd ＋ａd-1 ｘd-1 ＋・・・＋ａ1 ｘ＋ａ0     …（49）
ｔ（ｘ）＝ｂzｘz＋ｂz-1 ｘz-1 ＋・・・＋ｂ1 ｘ＋ｂ0     …（50）
【０１０６】
エンティティＵがグループＧに属しているとする。また、エンティティＵのＩＤ情報をｕ、グループＧのＩＤ情報をｇとする。この場合、エンティティＵの秘密鍵ＫUGは下記式（51）で与えられ、センタで計算される。また、センタが公開する公開情報としてのグループＧの公開鍵は下記式（52）で与えられ、エンティティＵのための情報（公開する必要はない）は下記式（53）で与えられ、何れもセンタで計算される。
【０１０７】
【数２３】
2004201124.tif 000025
【０１０８】
以下、公開鍵暗号方法（第９例及び第１０例）並びに署名方法（第１１例〜第１４例）の具体例について説明する。
【０１０９】
〔第９例〕（ＩＤ情報に基づくグループへの公開鍵暗号方法）
グループＧに属するエンティティであれば、誰でも復号可能であるグループＧへの公開鍵暗号方法について説明する。この例は、一つのグループＧに属する全てのエンティティへ同じ暗号文を送付する場合に好適である。
【０１１０】
暗号化：送信エンティティ（送信側）において、乱数ｒ∈Ｚn が生成され、グループＧへの暗号文として下記式（54），（55）のようなＣi ，Ｃd+1 が作成される。ｅn （Ｐ，Ｑ）は、送信エンティティのＩＤ情報及び秘密鍵とセンタの公開情報とから計算することができる。
【０１１１】
【数２４】
2004201124.tif 000026
【０１１２】
復号：グループＧに属する任意のエンティティＵ（受信側）において、下記式（56）に従って、暗号文Ｃi ，Ｃd+1 から平文ｍが復号される。
【０１１３】
【数２５】
2004201124.tif 000027
【０１１４】
〔第１０例〕（ＩＤ情報に基づく各エンティティへの公開鍵暗号方法）
第９例と同様の秘密鍵及び公開鍵を用いて、グループＧに属する特定のエンティティＵへ暗号文を送付する例について説明する。グループＧに属するエンティティＵ（受信側）への暗号化及びエンティティＵでの復号は、第１実施の形態と同様に行うことができる。
【０１１５】
暗号化：送信エンティティ（送信側）において、乱数ｒ∈Ｚn が生成され、エンティティＵへの暗号文として下記式（57），（58）のようなＣ1 ，Ｃ2 が作成される。
【０１１６】
【数２６】
2004201124.tif 000028
【０１１７】
復号：エンティティＵ側において、下記式（59）に従って、暗号文Ｃ1 ，Ｃ2 から平文ｍが復号される。
【０１１８】
【数２７】
2004201124.tif 000029
【０１１９】
〔第１１例〕（ＩＤ情報に基づくグループ署名方法：Schnorr 型）
署名データからは、グループ内のどのエンティティが署名したかは特定できないが、そのグループに属するエンティティが署名したということを検証できる署名方法について説明する。
【０１２０】
署名：エンティティＵ（署名側）において、乱数ｋ∈Ｚn が生成され、下記式（60）のような中間データｒが計算された後、下記式（61），（62）のようにグループＧの署名データ（ｅ，Ｓi ）が作成される。ｅn （Ｐ，Ｑ）は、エンティティＵのＩＤ情報及び秘密鍵とセンタの公開情報とから計算することができる。
【０１２１】
【数２８】
2004201124.tif 000030
【０１２２】
検証：グループＧ′に属する任意のエンティティＶ（検証側）において、まず、下記式（63），（64）に従ってｅn （Ｐ，Ｑ），ｗが求められ、次に、下記式（65）により、署名データ（ｅ，Ｓi ）の正当性が検証される。
【０１２３】
【数２９】
2004201124.tif 000031
【０１２４】
第１１例は、下記式（66）を満たすｕ′をＩＤ情報に持つエンティティＵ′（署名側）がこのｘ′とｋとを選択した場合、全く同じ署名データになるという性質を有している。従って、署名データからは署名エンティティを特定できないという特徴を有している。
ｘｆ（ｕ）≡ｘ′ｆ（ｕ′）    （mod ｎ）    …（66）
グループＧの秘密鍵ＫG ＝（１／ｔ（ｇ））ＰとエンティティＵの秘密鍵ＫU ＝（１／ｆ（ｕ））Ｐとを両方持てば同等の機能を有するように考えられるが、この第１１例ではグループの秘密鍵とエンティティの秘密鍵とを分離できないため、夫々の秘密鍵を各別に譲渡したりすることは不可能である。
【０１２５】
〔第１２例〕（ＩＤ情報に基づくグループ署名方法：ElGamal 型）
検証エンティティをグループに属するエンティティに限定する署名方法について説明する。この第１２例の方法では、Ｐをセンタの公開鍵とする。
【０１２６】
署名：エンティティＵ（署名側）において、乱数ｋ∈Ｚn が生成され、下記式（67），（68）のようにグループＧの署名データ（ベクトルＲ，Ｓ）が作成される。但し、ｘはｋＵ0 のｘ座標を表す。
【０１２７】
【数３０】
2004201124.tif 000032
【０１２８】
検証：グループＧに属する任意のエンティティＶ（検証側）において、まず、下記式（69）に従ってｋｆ（ｕ）ｔ（ｇ）Ｑが求められ、次に、下記式（70），（71），（72）のようにｗ1 ，ｗ2 ，ｗ3 が計算された後、下記式（73）の成立により、署名データ（ベクトルＲ，Ｓ）の正当性が検証される。
【０１２９】
【数３１】
2004201124.tif 000033
【０１３０】
〔第１３例〕（ＩＤ情報に基づくエンティティ署名方法：Schnorr 型Ｉ）
第１１例における署名方法を以下のように変更することにより、エンティティＵ（署名側）の署名データを得ることができる。
【０１３１】
署名：エンティティＵ（署名側）において、乱数ｋ∈Ｚn が生成され、下記式（74）のような中間データｒが計算された後、下記式（75），（76）のようにエンティティＵの署名データ（ｅ，Ｓi ）が作成される。ｅn （Ｐ，Ｑ）は、エンティティＵのＩＤ情報及び秘密鍵とセンタの公開情報とから計算することができる。
【０１３２】
【数３２】
2004201124.tif 000034
【０１３３】
検証：グループＧ′に属する任意のエンティティＶ（検証側）において、まず、下記式（77），（78）に従ってｅn （Ｐ，Ｑ），ｗが求められ、次に、下記式（79）により、署名データ（ｅ，Ｓi ）の正当性が検証される。
【０１３４】
【数３３】
2004201124.tif 000035
【０１３５】
〔第１４例〕（ＩＤ情報に基づくエンティティ署名方法：Schnorr 型II）
第１３例における署名方法を以下のように変更することにより、検証エンティティをグループＧに属するエンティティに限定することができる。
【０１３６】
署名：エンティティＵ（署名側）において、乱数ｋ∈Ｚn が生成され、下記式（80）のような中間データｒが計算された後、下記式（81），（82）のようにエンティティＵの署名データ（ｅ，Ｓi ）が作成される。ｅn （Ｐ，Ｑ）は、エンティティＵのＩＤ情報及び秘密鍵とセンタの公開情報とから計算することができる。
【０１３７】
【数３４】
2004201124.tif 000036
【０１３８】
検証：グループＧに属する任意のエンティティＶ（検証側）において、まず、下記式（83），（84）に従ってｅn （Ｐ，Ｑ）x ，ｗが求められ、次に、下記式（85）により、署名データ（ｅ，Ｓi ）の正当性が検証される。
【０１３９】
【数３５】
2004201124.tif 000037
【０１４０】
この第１４例の方式では、エンティティＶ（検証側）の秘密鍵ＫVGが検証時に不可欠であり、しかも、同じグループに属するエンティティＶでなければｅn （Ｐ，Ｑ）x を計算できないため、エンティティＶをエンティティＵ（署名側）と同じグループＧに属するエンティティに限定することができる。
【０１４１】
なお、上述した例では代数曲線として楕円曲線を用いる場合について説明したが、超楕円曲線を用いる場合にあっても、同様のペアリングを定義できるので、簡単に拡張することができる。
【０１４２】
ここで、前述した暗号化装置１０，復号装置２０のハードウェアの構成例について図１０を参照して説明する。
【０１４３】
暗号化装置１０は、ＣＰＵ５１，通信部５２，操作部５３，表示部５４，ＲＯＭ５５，ＲＡＭ５６，鍵格納部５７等を備えている。ＣＰＵ５１は、バス５８を介して暗号化装置１０の上記ハードウェア各部と接続されていて、それらを制御すると共に、ＲＯＭ５５に格納された暗号化処理のコンピュータプログラムに従って、種々のソフトウェア的機能を実行する。通信部５２は、通信路５０を介した送信・受信処理を実行する。操作部５３は、ユーザによる暗号化すべき平文の入力等の外部からの操作を受け付ける。表示部５４は、入力された暗号化すべき平文等を表示する。ＲＯＭ５５は、暗号化装置１０の上述した暗号化処理の動作に必要な種々のソフトウェアのコンピュータプログラムを予め格納している。ＲＡＭ５６は、ＳＲＡＭまたはフラッシュメモリ等で構成され、暗号化処理の動作時に発生する一時的なデータを記憶する。鍵格納部５７は、上述したベクトルＨを含む公開鍵を格納している。
【０１４４】
一方、復号装置２０は、ＣＰＵ６１，通信部６２，操作部６３，表示部６４，ＲＯＭ６５，ＲＡＭ６６，鍵格納部６７，出力部６８等を備えている。ＣＰＵ６１は、バス６９を介して復号装置２０の上記ハードウェア各部と接続されていて、それらを制御すると共に、ＲＯＭ６５に格納された復号処理のコンピュータプログラムに従って、種々のソフトウェア的機能を実行する。通信部６２は、通信路５０を介した送信・受信処理を実行する。操作部６３は、ユーザによる外部からの操作を受け付ける。表示部６４は、復号結果等を表示する。ＲＯＭ６５は、復号装置２０の上述した復号処理の動作に必要な種々のソフトウェアのコンピュータプログラムを予め格納している。ＲＡＭ６６は、ＳＲＡＭまたはフラッシュメモリ等で構成され、復号処理の動作時に発生する一時的なデータを記憶する。鍵格納部６７は、上述した秘密鍵及び公開鍵を格納している。出力部６８は、復号した平文を出力する。
【０１４５】
次に、前述した署名装置３０，検証装置４０のハードウェアの構成例について図１１を参照して説明する。
【０１４６】
署名装置３０は、ＣＰＵ７１，操作部７２，表示部７３，ＲＯＭ７４，ＲＡＭ７５，鍵格納部７６等を備えている。ＣＰＵ７１は、バス７７を介して署名装置３０の上記ハードウェア各部と接続されていて、それらを制御すると共に、ＲＯＭ７４に格納された署名処理のコンピュータプログラムに従って、種々のソフトウェア的機能を実行する。操作部７２は、ユーザによる外部からの操作を受け付ける。表示部７３は、署名データ等を表示する。ＲＯＭ７４は、署名装置３０の上述した署名処理の動作に必要な種々のソフトウェアのコンピュータプログラムを予め格納している。ＲＡＭ７５は、ＳＲＡＭまたはフラッシュメモリ等で構成され、署名処理の動作時に発生する一時的なデータを記憶する。鍵格納部７６は、上述したベクトルＨを含む公開鍵を格納している。
【０１４７】
一方、検証装置４０は、ＣＰＵ８１，操作部８２，表示部８３，ＲＯＭ８４，ＲＡＭ８５，鍵格納部８６，出力部８７等を備えている。ＣＰＵ８１は、バス８８を介して検証装置４０の上記ハードウェア各部と接続されていて、それらを制御すると共に、ＲＯＭ８４に格納された検証処理のコンピュータプログラムに従って、種々のソフトウェア的機能を実行する。操作部８２は、ユーザによる外部からの操作を受け付ける。表示部８３は、検証結果等を表示する。ＲＯＭ８４は、検証装置４０の上述した検証処理の動作に必要な種々のソフトウェアのコンピュータプログラムを予め格納している。ＲＡＭ８５は、ＳＲＡＭまたはフラッシュメモリ等で構成され、検証処理の動作時に発生する一時的なデータを記憶する。鍵格納部８６は、上述した秘密鍵及び公開鍵を格納している。出力部８７は、署名データの検証結果を出力する。
【０１４８】
図１２は、本発明の記録媒体の実施の形態の構成を示す図である。ここに例示するコンピュータプログラムは、上述した第１〜第４実施の形態にあって、公開鍵及び秘密鍵を生成する鍵生成処理、暗号文を作成する暗号化処理、暗号文を復号する復号処理、署名データを作成する署名処理、または、署名データを検証する検証処理を含んでおり、以下に説明する記録媒体に記録されている。なお、コンピュータ９０は、センタ１側か、または、各エンティティ側に設けられている。
【０１４９】
図１２において、コンピュータ９０とオンライン接続する記録媒体９１は、コンピュータ９０の設置場所から隔たって設置される例えばＷＷＷ(World Wide Web)のサーバコンピュータを用いてなり、記録媒体９１には前述の如きコンピュータプログラム９１ａが記録されている。記録媒体９１から通信線等の伝送媒体９４を介して読み出されたコンピュータプログラム９１ａがコンピュータ９０を制御することにより、コンピュータ９０が上述した処理のいずれかを実行する。
【０１５０】
コンピュータ９０の内部に設けられた記録媒体９２は、内蔵設置される例えばハードディスクドライブまたはＲＯＭ（図１０のＲＯＭ５５またはＲＯＭ６５、図１１のＲＯＭ７４またはＲＯＭ８４に相当）等を用いてなり、記録媒体９２には前述の如きコンピュータプログラム９２ａが記録されている。記録媒体９２から読み出されたコンピュータプログラム９２ａがコンピュータ９０を制御することにより、コンピュータ９０が上述した処理のいずれかを実行する。
【０１５１】
コンピュータ９０に設けられたディスクドライブ９０ａに装填して使用される記録媒体９３は、運搬可能な例えば光磁気ディスク，ＣＤ−ＲＯＭまたはフレキシブルディスク等を用いてなり、記録媒体９３には前述の如きプログラム９３ａが記録されている。記録媒体９３から読み出されたコンピュータプログラム９３ａがコンピュータ９０を制御することにより、コンピュータ９０が上述した処理のいずれかを実行する。
【０１５２】
【発明の効果】
以上詳述したように、本発明の公開鍵暗号方法では、多項式関数を設定すると共にペアリングを定義できる代数曲線上の点を選択し、暗号文を受信するエンティティのＩＤ情報をその多項式関数に代入して得られる関数値と代数曲線上の選択した点とを使用して暗号文を作成するようにしたので、エンティティのＩＤ情報から代数曲線を用いて変換される公開鍵をより容易に求めることができる。
【０１５３】
また、本発明の署名方法では、多項式関数を設定すると共にペアリングを定義できる代数曲線上の点を選択し、署名データを作成するエンティティのＩＤ情報をその多項式関数に代入して得られる関数値と代数曲線上の選択した点とを使用して署名データを作成するようにしたので、エンティティのＩＤ情報から代数曲線を用いて変換される公開鍵をより容易に求めることができる。
【０１５４】
更に、本発明の公開鍵暗号方法または署名方法では、グループのＩＤ情報及びグループに属する複数のエンティティ夫々のＩＤ情報を使用して、グループに対する暗号文または署名データとそのグループに属する複数のエンティティ夫々に対する暗号文または署名データとを独立的に作成するようにしたので、これらの暗号文または署名データを容易に作成することができる。
【図面の簡単な説明】
【図１】本発明の暗号通信システムの構成を示す模式図である。
【図２】二つのエンティティ間における情報の通信状態を示す模式図である。
【図３】センタでの処理の動作手順を示すフローチャートである。
【図４】送信側のエンティティでの暗号化処理の動作手順を示すフローチャートである。
【図５】受信側のエンティティでの復号処理の動作手順を示すフローチャートである。
【図６】二つのエンティティ間における署名システムを示す模式図である。
【図７】センタでの処理の動作手順を示すフローチャートである。
【図８】署名側のエンティティでの署名処理の動作手順を示すフローチャートである。
【図９】検証側のエンティティでの検証処理の動作手順を示すフローチャートである。
【図１０】暗号化装置及び復号装置のハードウェア構成例を示す図である。
【図１１】署名装置及び検証装置のハードウェア構成例を示す図である。
【図１２】記録媒体の実施の形態の構成を示す図である。
【符号の説明】
１  センタ
１ａ  公開鍵生成部
１ｂ  秘密鍵生成部
１０  暗号化装置
１３  暗号化部
２０  復号装置
２３  復号部
３０  署名装置
３３  署名データ作成部
４０  検証装置
４２  署名データ検証部
５０  通信路
９０  コンピュータ
９１，９２，９３  記録媒体
９１ａ，９２ａ，９３ａ  コンピュータプログラム
Ａ，Ｂ，Ｕ，Ｖ，Ｚ  エンティティ
【図１】
2004201124.tif 000038
【図２】
2004201124.tif 000039
【図３】
2004201124.tif 000040
【図４】
2004201124.tif 000041
【図５】
2004201124.tif 000042
【図６】
2004201124.tif 000043
【図７】
2004201124.tif 000044
【図８】
2004201124.tif 000045
【図９】
2004201124.tif 000046
【図１０】
2004201124.tif 000047
【図１１】
2004201124.tif 000048
【図１２】
2004201124.tif 000049