(57)【要約】【課題】電子署名のための鍵が不要となったり、鍵の更新が必要となった場合でも電子署名の生成および検証処理に必要な領域を低減し、かつ電子署名の検証処理を容易に行うこと。【解決手段】入力される文書データに対して複数の署名者が生成した多重署名を管理する多重署名装置であって、多重署名に、特定の署名者の署名情報が含まれているか否かを判定する判定部１０４と、多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、特定の署名者による署名生成時に文書からハッシュ関数Ｈにより生成した中間情報に基づいて、多重署名の中から特定の署名者の署名情報を消去する署名消去部１０４とを備えた。【選択図】        図１
2005333382.tif 000002
【特許請求の範囲】
【請求項１】
入力される文書データに対して複数の署名者が生成した多重署名を管理する多重署名管理装置であって、
前記多重署名に、特定の署名者の署名情報が含まれているか否かを判定する判定手段と、
前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記特定の署名者による署名生成時に前記文書データから予め定められた処理により生成した中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名情報を消去する署名消去手段と、
を備えたことを特徴とする多重署名管理装置。
【請求項２】
前記署名消去手段は、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、常に、前記中間情報に基づいて前記多重署名の中から前記特定の署名者の署名情報を消去することを特徴とする請求項１に記載の多重署名管理装置。
【請求項３】
前記中間情報を記憶する中間情報記憶手段を更に備え、
前記署名消去手段は、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記中間情報記憶手段に記憶された前記中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名情報を消去することを特徴とする請求項１または２に記載の多重署名管理装置。
【請求項４】
前記特定の署名情報を消去するか否かを利用者に問い合わせる問い合わせ手段をさらに備え、
前記前記署名消去手段は、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定され、かつ前記問い合わせ手段によって前記特定の署名情報を消去する旨の指示があった場合に、前記中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名情報を消去することを特徴とする請求項１に記載の多重署名管理装置。
【請求項５】
現在日時を取得する現在日時取得手段をさらに備え、
前記前記署名消去手段は、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定され、かつ前記現在日時取得手段によって取得した現在日時が、前記特定の署名者による署名情報の生成日時から予め定められた期間が経過している場合に、前記中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名情報を消去することを特徴とする請求項１に記載の多重署名管理装置。
【請求項６】
前記入力された文書データに対して暗号化処理を施し、暗号化文書情報を生成する演算手段と、
前記署名消去手段は、前記判定手段によって前記暗号化文書情報を含む前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記演算手段によって生成された前記暗号化文書情報と前記中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名情報を消去することを特徴とする請求項１〜５のいずれか一つに記載の多重署名管理装置。
【請求項７】
署名者の鍵情報を記憶する鍵記憶手段を更に備え、
前記演算手段は、前記入力された文書データに前記鍵記憶手段に記憶された鍵情報で一方向性関数を施して前記暗号化文書情報として認証子情報を生成し、
前記署名消去手段は、前記判定手段によって前記認証子情報を含む前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記演算手段によって生成された前記認証子情報を前記鍵記憶手段に記憶された鍵情報によって復号化した前記中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名情報を消去することを特徴とする請求項６に記載の多重署名管理装置。
【請求項８】
入力される文書データに対して複数の署名者による多重署名を生成する多重署名生成装置であって、
前記多重署名に、特定の署名者の署名情報が含まれているか否かを判定する判定手段と、
前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記特定の署名者による署名生成時に前記文書データから予め定められた処理により生成した中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名を消去した中間多重署名情報を生成する署名消去手段と、
前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記署名消去手段によって生成された前記中間多重署名情報と前記入力された文書データとから新たな多重署名を生成する署名生成手段と、
を備えたことを特徴とする多重署名生成装置。
【請求項９】
前記署名生成手段は、さらに、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていないと判定された場合に、前記多重署名と前記入力された文書データとから新たな多重署名を生成することを特徴とする請求項８に記載の多重署名生成装置。
【請求項１０】
前記署名消去手段は、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、常に、前記中間情報に基づいて前記中間多重署名情報を生成し、
前記署名生成手段は、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、常に、前記署名消去手段によって生成された前記中間多重署名情報と前記入力された文書データとから新たな多重署名を生成することを特徴とする請求項８または９に記載の多重署名生成装置。
【請求項１１】
前記署名生成手段は、さらに前記多重署名に新たな多重署名を生成するか否かを示す署名生成情報に基づいて新たな多重署名を生成するか否かを判定し、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定され、かつ前記署名生成情報が新たな多重署名を生成する旨である場合に、前記署名消去手段によって生成された前記中間多重署名情報と前記入力された文書データとから新たな多重署名を生成することを特徴とする請求項８または９に記載の多重署名生成装置。
【請求項１２】
前記多重署名は、前記署名生成情報を含んでおり、
前記署名生成手段は、前記多重署名に含まれる前記署名生成情報に基づいて新たな多重署名を生成するか否かを判定することを特徴とする請求項１１に記載の多重署名生成装置。
【請求項１３】
利用者に対して新たな多重署名を生成するか否か問い合わせ、新たな多重署名を生成するか否かの指示を前記署名生成情報として取得する問い合わせ手段をさらに備え、
前記署名生成手段は、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定され、かつ前記問い合わせ手段によって取得した署名生成情報が新たな多重署名を生成する旨の指示である場合に、前記署名消去手段によって生成された前記中間多重署名情報と前記入力された文書データとから新たな多重署名を生成することを特徴とする請求項１１に記載の多重署名生成装置。
【請求項１４】
現在日時を取得する現在日時取得手段をさらに備え、
前記前記署名消去手段は、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定され、かつ前記現在日時取得手段によって取得した現在日時が前記特定の署名者による署名情報の生成日時から予め定められた期間が経過している場合に、前記署名消去手段によって生成された前記中間多重署名情報と前記入力された文書データとから新たな多重署名を生成することを特徴とする請求項８または９に記載の多重署名生成装置。
【請求項１５】
前記入力された文書データに対して暗号化処理を施し、暗号化文書情報を生成する演算手段と、
前記署名消去手段は、前記判定手段によって前記暗号化文書情報を含む前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記演算手段によって生成された前記暗号化文書情報と前記中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名情報を消去して前記中間多重署名情報を生成し、
前記署名生成手段は、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記中間多重署名情報と、前記演算手段によって前記入力された文書データを暗号化処理を施して生成された暗号化文書情報とから新たな多重署名を生成することを特徴とする請求項８〜１４のいずれか一つに記載の多重署名生成装置。
【請求項１６】
署名者の鍵情報を記憶する鍵記憶手段を更に備え、
前記入力された文書データに前記鍵記憶手段に記憶された鍵情報で一方向性関数を施して前記暗号化文書情報として認証子情報を生成し、
前記署名消去手段は、前記判定手段によって前記認証子情報を含む前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記演算手段によって生成された前記認証子情報を前記鍵記憶手段に記憶された鍵情報によって復号化した前記中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名情報を消去して前記中間多重署名情報を生成し、
前記署名生成手段は、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記中間多重署名情報と、前記演算手段によって前記入力された文書データに前記鍵情報で前記一方向性関数を施して生成された認証子情報とから新たな多重署名を生成することを特徴とする請求項１５に記載の多重署名生成装置。
【請求項１７】
入力される文書データに対して複数の署名者が生成した多重署名を管理する多重署名管理プログラムであって、
前記多重署名に、特定の署名者の署名情報が含まれているか否かを判定する判定手順と、
前記判定手順によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記特定の署名者による署名生成時に前記文書データから予め定められた処理により生成した中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名情報を消去する署名消去手順と、
をコンピュータに実行させることを特徴とする多重署名管理プログラム。
【請求項１８】
入力される文書データに対して複数の署名者による多重署名を生成する多重署名生成プログラムであって、
前記多重署名に、特定の署名者の署名情報が含まれているか否かを判定する判定手順と、
前記判定手順によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記特定の署名者による署名生成時に前記文書データから予め定められた処理により生成した中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名を消去した中間多重署名情報を生成する署名消去手順と、
前記判定手順によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記署名消去手段によって生成された前記中間多重署名情報と前記入力された文書データとから新たな多重署名を生成する署名生成手順と、
をコンピュータに実行させることを特徴とする多重署名生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の署名者がある文書データに対して順次電子署名生成処理を行うことにより生成される単一の多重署名を管理、生成する多重署名管理装置、多重署名生成装置、多重署名管理プログラムおよび多重署名生成プログラムに関し、特に多重署名の中の特定の署名者の署名情報を消去または更新することができる多重署名管理装置、多重署名生成装置、多重署名管理プログラムおよび多重署名生成プログラムに関する。
【背景技術】
【０００２】
文書データに対する電子署名を応用したものとして、多重署名方式が一般的に知られている。この多重署名方式とは、ある文書データに対して複数の署名者が順次電子署名生成処理を施すことにより、単一の電子署名を生成する技術である。多重署名方式は、例えば、ある組織内で文書データを回覧して順次承認のための捺印を行うというシステムを電子的に実現するための技術に用いられる。
【０００３】
この多重署名方式は、ある文書データに対して各署名者がそれぞれ電子署名を生成して、生成された各電子署名を連結する場合に比べて、生成された単一の多重署名のサイズが，各署名者がそれぞれ署名を生成してそれらを連結して得られるデータのサイズよりも小さくすることができる。
【０００４】
近年、この多重署名方式の一方式である統括署名方式 (Aggregate Signature) が提案されている。多重署名方式が各署名者がはじめから多重署名を構成する目的で署名生成演算を行うのに対して、統括署名方式は、統括署名は、各署名者が単独で検証可能な署名を生成した後、必要に応じて複数の電子署名を単一の署名に統括するものである。
【０００５】
このような多重署名方式の代表的な方式としては、楕円曲線上の離散対数問題の困難性に基づくＥｌＧａｍａｌ署名方式を利用した多重署名法が開示されている（例えば、特許文献１参照）。
【０００６】
【特許文献１】特開平１０−１５３９５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このような多重署名の方式を利用している場合において、例えば、多重署名に関与した署名者の秘密鍵の漏洩により当該署名者が鍵を更新して過去に使用していた秘密鍵を破棄する必要がある場合や、ある部門で多重署名を生成したが他の部門に異動したことにより、署名権限がなくなってしまった署名者の秘密鍵を破棄する場合等、鍵の更新が必要となってくる場合がある。
【０００８】
このように過去に生成した多重署名に対して鍵の更新が必要な場合に、従来の多重署名方式では、無効となった鍵に対する署名の正当性の検証をしなければならず、無効になった鍵と、当該鍵の署名検証において必要となるデータを保存する保存領域と、無効となった署名の検証を行う検証処理が必要となる。
【０００９】
また、無効となった鍵を破棄する場合には、多重署名の検証が不可能になるため、署名権限を有する署名者の間で新たに多重署名を生成する必要がある。
【００１０】
また、従来の多重署名方式は、異なる署名者が一つの多重署名を生成することを目的として考えられているが、現実には同一の署名者が複数回多重署名に関与する場合が考えられる。
【００１１】
例えば、複数の医療機関が患者のカルテを共用し、カルテの内容を更新するたびに当該機関の署名を生成するシステムにおいて、署名の保存領域削減のために多重署名方式を用いる場合である。この場合、例えば、ある患者が、まず医療機関Ａで診察を受けて医療機関Ａの署名を受け取り、次に医療機関Ａとは異なる医療機関Ｂで診察を受けて署名を受け取った後、再度、医療機関Ａの診察を受ける場合等が該当する。
【００１２】
このような例の場合には、医療機関Ａの署名が２回、医療機関Ｂの署名が１回反映された多重署名を構成することにより従来の多重署名方式を利用することが可能である。
【００１３】
しかしながら、従来の多重署名方式では、例えば署名の検証時に、検証鍵を特定できるようにするために、各署名者が署名生成時に自らの識別子を添付するなど、署名順番が進むたびに署名者の情報を付加する場合がある。このため、上記の例では、医療機関Ａの情報を２回保存するための保存領域が必要となり、必要な領域のサイズが大きくなる。
【００１４】
また、医療機関Ａの検証鍵を用いる署名検証処理を２回行う必要があり、多重署名の検証処理に時間を要する。
【００１５】
複数種類の商店で特典に関するポイントカードを共用する場合等にも同様の課題が考えられる。例えば、家電量販店と音楽ＣＤのレンタル業者、あるいは航空会社と観光協会あるいは観光施設等、今後、異業種間で単一のポイントカードを共有する場合に、予め事業者の企業で共通のサーバを用意して顧客情報を管理する代わりに、顧客が有するポイントカードの中に、特典ポイントとポイントを発行した事業社の署名を保存し、多重署名方式を利用することにより、署名の保存領域を削減することが可能となる。
【００１６】
しかしながら、同一の事業社で複数回取引を行う場合には、医療機関の例と同様に、同一事業社の情報を取引回数分だけ保存する保存領域が必要となり、また同一事業社の署名を複数回検証する署名検証処理が過大なものとなる。
【００１７】
このように、従来の多重署名方式の技術では、同一の署名者が複数回署名生成処理を行う場合に、同一の署名者の署名であるにもかかわらず、同一の署名者の署名回数分だけ保存領域が必要となり、必要な記憶領域が増大するという問題がある。
【００１８】
また、同一の署名者が複数回署名を行う場合には、同一の署名者の署名であるにもかかわらず、署名検証処理に労力を要するという問題がある。
【００１９】
本発明は、上記に鑑みてなされたものであって、多重署名において、電子署名のための鍵が不要となったり、あるいは更新が必要となった場合でも電子署名の生成および検証処理に必要な領域を低減することができるとともに、電子署名の検証処理を容易に行うことができる多重署名管理装置、多重署名生成装置、多重署名管理プログラムおよび多重署名生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
上述した課題を解決し、目的を達成するために、本発明は、入力される文書データに対して複数の署名者が生成した多重署名を管理する多重署名管理装置であって、前記多重署名に、特定の署名者の署名情報が含まれているか否かを判定する判定手段と、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記特定の署名者による署名生成時に前記文書データから予め定められた処理により生成した中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名情報を消去する署名消去手段と、を備えたことを特徴とする。
【００２１】
また、本発明は、入力される文書データに対して複数の署名者による多重署名を生成する多重署名生成装置であって、前記多重署名に、特定の署名者の署名情報が含まれているか否かを判定する判定手段と、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記特定の署名者による署名生成時に前記文書データから予め定められた処理により生成した中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名を消去した中間多重署名情報を生成する署名消去手段と、前記判定手段によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記署名消去手段によって生成された前記中間多重署名情報と前記入力された文書データとから新たな多重署名を生成する署名生成手段と、を備えたことを特徴とする。
【００２２】
また、本発明は、入力される文書データに対して複数の署名者が生成した多重署名を管理する多重署名管理プログラムであって、前記多重署名に、特定の署名者の署名情報が含まれているか否かを判定する判定手順と、前記判定手順によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記特定の署名者による署名生成時に前記文書データから予め定められた処理により生成した中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名情報を消去する署名消去手順と、をコンピュータに実行させることを特徴とする。
【００２３】
また、本発明は、入力される文書データに対して複数の署名者による多重署名を生成する多重署名生成プログラムであって、前記多重署名に、特定の署名者の署名情報が含まれているか否かを判定する判定手順と、前記判定手順によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記特定の署名者による署名生成時に前記文書データから予め定められた処理により生成した中間情報に基づいて、前記多重署名の中から前記特定の署名者の署名を消去した中間多重署名情報を生成する署名消去手順と、前記判定手順によって前記多重署名の中に特定の署名者の署名情報が含まれていると判定された場合に、前記署名消去手段によって生成された前記中間多重署名情報と前記入力された文書データとから新たな多重署名を生成する署名生成手順と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、多重署名の中から不要となった鍵に対応した署名情報を消去することができるので、不要となった鍵や署名情報に関連した付加情報を記憶する保存領域等電子署名の生成および検証処理に必要な領域を低減することができるとともに、多重署名の検証処理を容易に行うことができるという効果を奏する。
【００２５】
また、本発明によれば、多重署名の中から過去に生成した署名情報を消去した後、必要に応じて過去の文書データも含めた新たな文書データに対して署名を生成することができるので、多重署名の中から更新したい署名情報が有る場合でも、署名者が複数回生成する付加情報を記憶する保存領域等電子署名の生成および検証処理に必要な領域を低減することができるとともに、多重署名の検証処理を容易に行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００２６】
以下に添付図面を参照して、この発明にかかる多重署名管理装置、多重署名生成装置、多重署名管理プログラムおよび多重署名生成プログラムの最良な実施の形態を詳細に説明する。
【００２７】
（実施の形態１）
実施の形態１にかかる多重署名装置は、文書データに対する多重署名の中から、過去に多重署名の生成に関与した各署名者の中で秘密鍵が不要になった署名者の電子署名を消去するものであり、本発明の多重署名管理装置を適用したものである。
【００２８】
本実施の形態の多重署名装置は、文書データに対する署名を生成して他の多重署名装置に送信する処理と、文書データに対する多重署名を検証する処理と、多重署名を管理して特定の署名者の署名を消去する処理を行えるようになっている。
【００２９】
本実施の形態では、複数の多重署名装置がインターネットなどのネットワークに接続された形態となっている。そして、各多重署名装置において、署名者が文書データに対する電子署名を生成してネットワーク上の他の多重署名装置に文書データと多重署名を送信する。文書データと多重署名を受信した当該他の多重署名装置において受信した文書データに対する多重署名の検証処理を行った後、当該他の多重署名装置が保持する秘密鍵を利用して多重署名を生成し、ネットワーク上の他の多重署名装置に送信するような処理が行われる。
【００３０】
また、特定の署名者の秘密鍵が無効になった等で不要になった場合には、その署名者またはその多重署名装置のシステム管理者が自己が利用する多重署名装置において、多重署名から自己の署名を消去する処理を行うことができるようになっている。
【００３１】
なお、署名の生成処理、多重署名の検証処理、署名の消去を含む多重署名の管理処理をそれぞれ別個の装置で行うように構成してもよい。
【００３２】
図１は、実施の形態１にかかる多重署名装置の機能的構成を示すブロック図である。本実施の形態の多重署名装置は、図１に示すように、入出力部１０１と、署名生成部１０２と、署名検証部１０３と、判定部１０４と、関数演算部１０５と、署名消去部１０６と、記憶部１０７とを主に備えている。
【００３３】
入出力部１０１は、他の多重署名装置との間で文書データおよび文書データに対する多重署名の入出力を行うものである。
【００３４】
署名生成部１０２は、文書データに対して署名を生成するものである。署名検証部１０３は、入出力部１０１によって入力された文書データに対する多重署名の検証を行うものである。
【００３５】
判定部１０４は、入出力部１０１によって入力された多重署名に、署名の消去を行おうとする特定の署名者の署名が含まれているかを判定するものである。
【００３６】
関数演算部１０５は、文書データに対しランダムな関数値を出力するものであり、本実施の形態では、一方向性関数としてのハッシュ関数Ｈを用いて文書データの認証子（ハッシュ値）を演算する。ここで、ハッシュ関数Ｈとは、任意のサイズの通信文のすべてのビットに依存した方法で演算を行って固定長の関数値を出力する関数であって、任意の与えられた通信文ＭとＨ（Ｍ）に対して、Ｈ（Ｍ）＝Ｈ（Ｘ）となるような他の通信文Ｘを見つけることが非常に困難な関数をいう。ハッシュ関数Ｈとしては、例えば、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ＃５）やＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  ＃１）等を使用することができる。なお、文書データの認証子（ハッシュ値）は本発明における暗号化文書情報および認証子情報に相当する。
【００３７】
多重署名の中から、入力された文書データに対する多重署名に関与した署名者のうち特定の署名者の署名を消去する処理を行うものである。  記憶部１０７は、多重署名装置の利用者である署名者の秘密鍵を格納するメモリであり、本発明における鍵記憶手段に相当する。
【００３８】
次に、以上のように構成された本実施の形態の多重署名装置による多重署名処理について説明する。
【００３９】
図２は、本実施の形態の多重署名装置におけるＬ人の署名者による多重署名方式の概念を示す説明図である。図２に示すように、署名順番が１番目の署名者であるユーザ１が文書Ｍに対する署名σ1を生成した後、署名順番が２番目の署名者であるユーザ２に文書Ｍと署名σ1を送信する。ユーザ２  は、文書Ｍに対する署名として、署名σ1を利用して署名σ2を生成する．ここで、署名σ2は、ユーザ１とユーザ２が共に文書Ｍに対して承認したことを保証する署名であり、単にユーザ１の署名署名σ1とユーザ２の署名σ2を連結したデータよりもサイズを小さくしている。以後、同様の処理を署名順番がＬ番の署名者であるユーザＬまで行い、多重署名σLを生成する。
【００４０】
ここで、多重署名方式には、代表的な機能として、文書可変性（Message Flexibility）、署名順番可変性（Order Flexibility）、署名順番検証可能性（Order Verifiability）という付加機能がある。多重署名方式が文書可変であるとは、複数のユーザが文書を回覧する際に、文書に更新や変更を加えながら多重署名を生成できることをいう。
【００４１】
署名順番可変性とは、署名生成の段階まで署名順番を自由に変更できることをいう。署名順番検証可能性とは、多重署名の検証処理において、署名を生成した署名者の順番が検証可能であることをいう。ある多重署名方式が署名順番検証可能であり、Ｌ人の署名者により生成された多重署名が受理されるとき、検証者は、２番目の署名順番を持つ署名者が、文書を承認したことに加えて、署名順番が１番目の署名者が文書に対して署名を生成したという事実も承認している、ということを確認できる。
【００４２】
図３は、文書可変性の概念を示す説明図である。まず、署名順番が１番目の署名者であるユーザ１は、文書Ｍ1に対して署名σ1を生成する。次に、署名順番が２番目の署名者であるユーザ２は、文書Ｍ1に更新または変更を加え、差分情報を文書Ｍ2とし、文書Ｍ1と文書Ｍ2に対して署名σ1を利用して署名σ2を生成する。ここで、署名σ2は、ユーザ１が文書Ｍ1に、ユーザ２が文書Ｍ1と文書Ｍ2に対して承認したことを保証する署名である。以後、同様の処理を署名順番がＬ番の署名者ユーザＬまで行い、多重署名σLを生成する。
【００４３】
本実施の形態にかかる多重署名装置は、文書可変性、署名順番可変性および署名順番検証可能性を備えた多重署名方式を採用している。
【００４４】
本実施の形態では、Ｂｏｎｅｈ等（D.Boneh and C. Gentry and B. Lynn and H. Shacham, "Aggregate and Verifiability Encrypted Signature form Biliner Maps", Advances in Cryptology - EUROCRYPT 2003 , Springer-Verlag, 2003, Lecture Notes in Computer Science 2656）  に開示されている統括署名方式を採用しているが、その他の多重署名方式についても同様に本発明の多重署名管理装置，多重署名生成装置を適用することが可能である。
【００４５】
ここで、各署名者は識別情報ＩＤ［ｉ］を有しており、このＩＤ［ｉ］におけるｉは、署名生成順番ｉと同一視して考えることとする。一般には、識別子の順番で署名順番が決定されるわけではないが、署名順番と当該署名順番で署名生成を行う署名者の識別情報を対応付けることにより、識別子と署名順番を同一視することが可能である。
署名者の識別情報ＩＤ［ｉ］は、署名順番可変性を有する本実施の形態にかかる多重署名法の多重署名検証において、どの署名者の公開鍵をどの順番で作用させればよいかを把握する上で重要な情報となる。署名者の識別子は、署名に添付させて送信することができるが、本実施の形態において、文書可変性の性質を利用し、前の署名順番の署名者から受け取った文書データに自分が承認する文書データと自己の識別情報を添付して新たな文書データとして署名生成処理を実行し、新たな文書データを次の署名順番の署名者に送信することが可能である。
【００４６】
本実施の形態で使用するハッシュ関数Ｈと、関数の入出力データのサイズについて説明する．署名生成、署名検証および署名消去の演算には、Boneh等（D. Boneh and C. Gentry and B. Lynn and H. Shacham, "Aggregate and Verifiability Encrypted Signature form Biliner Maps", Advances in Cryptology - EUROCRYPT 2003 , Springer-Verlag, 2003, Lecture Notes in Computer Science 2656）に従って、一般の群論上で行う。より具体的には、Boneh等が示しているように、楕円曲線を利用して構成することも可能である。
【００４７】
楕円曲線の一般論については，J. H. Silverman (J. H. Silverman, “The Arithmetic of Elliptic Curves” , Graduate Texts in Mathematics 106, Springer-Verlag,  1986) に詳しい．本発明の実施形態を楕円曲線を用いて構成する際の演算はBoneh等(D. Boneh and B. Lynn and H. Shacham, "Short Signatures from the Weil Pairing ", Advances in Cryptology - ASIACRYPT 2001 , Springer-Verlag, 2001, Lecture Notes in Computer Science 2248, pages 514--532) および Washington (“Elliptic Curves -Number Theory and Cryptography−”, CHAPMAN & HALL/CRC, 2003) に詳述されている。
【００４８】
Boneh等（D. Boneh and C. Gentry and B. Lynn and H. Shacham, "Aggregate and Verifiability Encrypted Signature form Biliner Maps", Advances in Cryptology - EUROCRYPT 2003 , Springer-Verlag, 2003, Lecture Notes in Computer Science 2656）に従い、ｐ，ｑをｐ＝２ｑ＋１を満たす素数の組とする。Ｇ１，Ｇ２，ＧＴを位数ｑの群とし、Ｇ１，Ｇ２の生成元をそれぞれｇ１，ｇ２で表す。
【００４９】
ｅをＧ１×Ｇ２からＧＴへの双線形写像、Ｈを任意の長さのデータをＧ１に写すハッシュ関数とする。双線形写像ｅは、ｕ∈Ｇ１，ｖ∈Ｇ２，ａ，ｂ∈Ｚに対して  ｅ（ｕａ，ｖｂ）＝ｅ（ｕ，ｖ）ａｂ  （双線形性），ｅ（ｇ１，ｇ２）≠１  （非退化），を満たす。
【００５０】
楕円曲線を利用する場合には、ｅはヴェイユ・ペアリングまたはテイト・ペアリングを用いる。ヴェイユペアリングの計算方法は、Washington（“Elliptic Curves -Number Theory and Cryptography-", CHAPMAN & HALL/CRC, 2003）に詳述されている。また、テイト・ペアリングの計算方法は，伊豆等（伊豆哲也，高木剛，“テイト・ペアリングの高速計算法  （ＭＯＶ  次数が大きい場合）”，電子情報通信学会情報セキュリティ研究会，信学技報Vol.102 No.744,ISEC2002-143）に詳述されている。
【００５１】
識別情報ＩＤ［ｉ］を有する各署名者は，ｘiを｛０，１，…，ｑ−１｝からランダムに選び、Ｉi＝ｇxiを公開鍵とし、ｘiを秘密鍵として保持する。ハッシュ関数Ｈは任意のサイズのデータをｇ’で生成される群の元に写す関数であり、ｇ’はｇが生成する群には含まれないものとする。
【００５２】
このような前提のもと、本実施の形態にかかる多重署名装置では、次のように署名生成処理が行われる。署名順番がｉ番目の署名生成装置は，入出力部１０１からｉ−１番目の署名者が出力した文書データＭと署名σi-1と識別情報ＩＤとｉ番目の署名者が署名を付加する文書Ｍiを受け渡される。そして、関数演算部１０５によって、受け渡された文書Ｍiのハッシュ関数値Ｈ（Ｍi）を計算し、Ｈ（Ｍi）と記憶部１０７に記憶されている秘密鍵ｘiを利用して署名生成部１０２によって数１式に示す署名を計算する。そして、Ｍ＝Ｍ｜｜Ｍiとσiと識別情報ＩＤ＝ＩＤ｜｜ＩＤiを入出力部１０１から出力する。
【００５３】
【数１】
2005333382.tif 000003
【００５４】
次に、本実施の形態にかかる多重署名装置では、次のように署名検証処理が行われる。入出力部１０１によって他の多重署名装置から文書データＭ＝Ｍ1｜｜・・・｜｜ＭLと署名σLと識別情報ＩＤ＝ＩＤ1｜｜ＩＤ2｜｜・・・｜｜ＩＤLを受信する。そして、入出力部１０１から入力された公開情報ｇ、識別情報ＩＤiにより特定される各署名者の公開鍵Ｉi、関数演算部１０５によって計算される各文書Ｍiのハッシュ値Ｈ（Ｍi）、署名σLを署名検証部１０３に入力し、数２式が成立するか否かを判断する。
【００５５】
【数２】
2005333382.tif 000004
【００５６】
ここで、ｉは多重署名に関与した署名者の識別子ＩＤ［ｉ］に対応している。そして、成立する場合には署名を受理し、成立しない場合には、署名を棄却する。
【００５７】
ここで，多重署名が正常に生成されている場合に、署名検証処理において署名が受理されることは以下のように確認することができる。
【００５８】
Ｌ’人の署名者により正常に生成された多重署名は、数３式で示される。
【００５９】
【数３】
2005333382.tif 000005
【００６０】
署名検証の際に成立するか否かが判断される数２式の検証式は、数４式のように導かれる。
【００６１】
【数４】
2005333382.tif 000006
【００６２】
次に、実施の形態１にかかる多重署名装置による署名消去処理について説明する。図４は、実施の形態１にかかる多重署名装置による署名消去処理の手順を示すフローチャートである。本実施の形態では、過去に文書データの多重署名に関与した署名者が、自己の秘密鍵が無効になったため、自己が署名を行った多重署名装置において、自己の署名を多重署名の中から消去する処理を考える。
【００６３】
まず、入出力部１０１により文書Ｍ＝Ｍ1｜｜・・・｜｜ＭLと多重署名σLと識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［Ｌ］を読み込む（ステップＳ４０１）。そして、判定部１０４によって、入力された多重署名の中に、この多重署名装置による署名の消去を行おうとしている署名者の署名情報が含まれるか否かを、署名に添付されている識別情報を基に判断する（ステップＳ４０２）。
【００６４】
そして、多重署名の中に署名者の署名情報がi番目の署名情報として含まれると判断された場合には（ステップＳ４０２：Ｙｅｓ）、自己が変更した該当文書Ｍiに対して関数演算部１０５によってハッシュ値Ｈ（Ｍi）（文書データＭiの認証子）を計算する（ステップＳ４０３）。そして、署名消去部１０６によって、ハッシュ値Ｈ（Ｍi）と記憶部１０７に記憶されている自己の秘密鍵ｘiを用いて数５式に示す中間情報を生成し、生成された中間情報を用いて数５式に示す逆演算により署名σLを置き換える（ステップＳ４０４）。このとき、文書の中のＭiと識別情報ＩＤの中の自らの識別子ＩＤ[ｉ]とを削除して、文書と識別子を更新し、入出力部１０１によって置き換えた署名と共に出力する（ステップＳ４０５）。
【００６５】
【数５】
2005333382.tif 000007
【００６６】
一方、ステップＳ４０２において、多重署名の中に署名者の署名情報が含まれないと判断された場合には（ステップＳ４０２：Ｎｏ）、署名σLを変更せずにそのまま出力する（ステップ４０５）。
【００６７】
このような処理により、例えば、署名者の秘密鍵が漏洩した場合等、該署名者あるいは管理者が本実施の形態にかかる多重署名装置により漏洩した秘密鍵に対応する署名を多重署名の中から削除することができる。
【００６８】
このように本実施の形態にかかる多重署名装置では、多重署名の中から不要となった鍵に対応した署名を消去することができるので、不要となった鍵や署名に関連した付加情報を記憶する保存領域のサイズを低減することができるとともに、多重署名の検証処理を容易に行うことができる。
【００６９】
（実施の形態２）
実施の形態１の多重署名装置では、署名消去部１０６は、文書データのハッシュ値Ｈ（Ｍi）と記憶部１０７に記憶された秘密鍵ｘiを利用して数５式に示す中間情報を計算していたが、本実施の形態では、過去に署名者が署名生成処理で計算した中間情報を記憶部１０７に記憶しておき、署名消去処理の際に記憶部１０７に記憶されている中間情報を用いて署名を置換するものである。
【００７０】
実施の形態２にかかる多重署名装置の構成は、実施の形態１の多重署名装置の構成と同様である。ここで、記憶部１０７は、本発明における中間情報記憶手段に相当する。
【００７１】
本実施の形態では、署名生成処理の際に、文書Ｍiのハッシュ関数値Ｈ（Ｍi）を計算し、秘密鍵ｘiを用いて数１式に示す中間情報を生成した後、生成した中間情報を記憶部１０７に保存しておく。なお、多重署名の検証処理については実施の形態１の多重署名装置による検証処理と同様に行われる。
【００７２】
次に、本実施の形態にかかる多重署名装置による署名消去処理について説明する。図５は、実施の形態２にかかる多重署名装置による署名消去処理の手順を示すフローチャートである。
【００７３】
本実施の形態では、実施の形態１と同様に、入出力部１０１による文書Ｍ＝Ｍ1｜｜・・・｜｜ＭLと多重署名σLと識別子ＩＤ＝ＩＤ[1]｜｜・・・｜｜ＩＤ［Ｌ］を読み込み（ステップＳ５０１）、判定部１０４で多重署名の中から署名者の署名情報が含まれるか否かを識別子により判断する（ステップＳ５０２）。
【００７４】
そして、多重署名の中に署名者の署名情報がｉ番目の署名情報として含まれると判断された場合には（ステップＳ５０２：Ｙｅｓ）、署名消去部１０６により記憶部１０７に記憶された中間情報（数５式参照）を読み出して（ステップＳ５０３）、読み出した中間情報を用いて署名σLを数５式と同様に置き換える（ステップＳ５０４）。
【００７５】
このように実施の形態２にかかる多重署名装置では、多重署名の中から中間情報を利用して署名を消去する際に、過去に生成して保存しておいた中間情報を利用しているので、署名消去処理における演算処理が少なくなり、署名消去処理の速度を向上させることができる。
【００７６】
（実施の形態３）
実施の形態１および２にかかる多重署名装置では、署名消去処理の際に、多重署名に特定の署名者の情報が含まれる場合、常に、当該署名者の署名が消去されていたが、この実施の形態３にかかる多重署名装置では、多重署名に特定の署名者の情報が含まれる場合でも利用者の指示により選択的に署名を消去するものである。
【００７７】
図６は、実施の形態３にかかる多重署名装置の機能的構成を示すブロック図である。本実施の形態の多重署名装置は、図６に示すように、入出力部１０１と、署名生成部１０２と、署名検証部１０３と、判定部１０４と、関数演算部１０５と、署名消去部６０６と、問い合わせ部６０１と、記憶部１０７とを主に備えている。ここで、入出力部１０１、署名生成部１０２、署名検証部１０３、判定部１０４、関数演算部１０５、記憶部１０７の機能は実施の形態１の多重署名装置と同様である。
【００７８】
問い合わせ部６０１は、判定部１０４によって署名σLが署名を消去する特定の署名者の署名情報を含んでいると判断された場合に、署名を消去するか否かを利用者（署名者または管理者）にメッセージ等を表示装置（図示せず）に表示して問い合わせ、署名を消去するかまたは消去しないかの指示を入力する処理を行う。
【００７９】
署名消去部６０６は、問い合わせ部６０１によって利用者から署名を消去する旨の指示が入力された場合に、入力された文書データに対する多重署名に関与した署名者の中で、署名の消去を行おうとする特定の署名者の署名を消去する処理を行うものである。
【００８０】
次に、本実施の形態にかかる多重署名装置による署名消去処理について説明する。なお、署名の生成処理および検証処理については実施の形態１の多重署名装置による各処理と同様に行われる。
【００８１】
図７は、実施の形態３にかかる多重署名装置による署名消去処理の手順を示すフローチャートである。
【００８２】
本実施の形態では、実施の形態１と同様に、入出力部１０１による文書Ｍ＝Ｍ1｜｜・・・｜｜ＭLと多重署名σLと識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［Ｌ］を読み込み（ステップＳ７０１）、判定部１０４で多重署名の中から署名者の署名情報が含まれるか否かを識別子により判断する（ステップＳ７０２）。
【００８３】
そして、多重署名の中に署名者の署名情報がｉ番目の署名情報として含まれると判断された場合には（ステップＳ７０２：Ｙｅｓ）、問い合わせ部６０１によって、署名を消去するか否かを利用者（署名者または管理者）に問い合わせ、署名を消去するかまたは消去しないかの指示待ちとなる（ステップＳ７０３）。
【００８４】
そして、署名消去部６０６は、問い合わせ部６０１から署名を消去する旨の指示が入力されたか否かを判断する（ステップＳ７０４）。そして、署名を消去しない旨の指示があった場合には（ステップＳ７０４：Ｎｏ）、署名を変更せずに、署名σLをそのまま出力する（ステップＳ７０７）。
【００８５】
一方、ステップＳ７０４において、署名を消去する旨の指示があった場合には（ステップＳ７０４：Ｙｅｓ）、自己が変更した該当文書Ｍiに対して関数演算部１０５によってハッシュ値Ｈ（Ｍi）を計算する（ステップＳ７０５）。そして、署名消去部１０６によって、ハッシュ値Ｈ（Ｍi）と記憶部１０７に記憶されている自己の秘密鍵ｘiを用いて数５式に示す中間情報を生成し、生成された中間情報を用いて数５式に示す逆演算により署名σLを置き換え、（ステップＳ７０６）、入出力部１０１によって置き換えた署名を変更した文書と識別子と共に出力する（ステップＳ７０７）。
【００８６】
【数５】
2005333382.tif 000008
【００８７】
このように本実施の形態にかかる多重署名装置では、多重署名に特定の署名者の情報が含まれる場合でも利用者の指示により選択的に署名を消去しているので、利用者の意図を反映して署名の消去を行うことができる。
【００８８】
（実施の形態４）
実施の形態３にかかる多重署名装置では、多重署名に特定の署名者の情報が含まれる場合に利用者の指示により選択的に署名を消去していたが、この実施の形態４にかかる多重署名装置では、署名生成時から一定期間経過していた場合に署名を消去するものである。
【００８９】
図８は、実施の形態４にかかる多重署名装置の機能的構成を示すブロック図である。本実施の形態の多重署名装置は、図１０に示すように、入出力部１０１と、署名生成部１０２と、署名検証部１０３と、判定部１０４と、関数演算部１０５と、署名消去部８０６と、現在日時取得部８０１と、記憶部１０７とを主に備えている。ここで、入出力部１０１、署名生成部１０２、署名検証部１０３、判定部１０４、関数演算部１０５、記憶部１０７の機能は実施の形態１の多重署名装置と同様である。
【００９０】
現在日時取得部８０１は、判定部１０４によって署名σLが署名を消去する特定の署名者の署名情報を含んでいると判断された場合に、現在の日時を取得する処理を行う。
【００９１】
署名消去部８０６は、現在日時取得部８０１によって取得した現在日時が多重署名に含まれる特定の署名者の署名生成日時から一定時間経過している場合に入力された文書データに対する多重署名に関与した署名者の中で、特定の署名者の署名を消去する処理を行うものである。
【００９２】
本実施の形態にかかる多重署名装置では、署名の生成処理において、署名の生成日時を付加情報として文書データと多重署名とともに他の多重署名装置に送信するものとする。
【００９３】
次に、本実施の形態にかかる多重署名装置による署名消去処理について説明する。なお、署名の検証処理については実施の形態１の多重署名装置による各処理と同様に行われる。
【００９４】
図９は、実施の形態４にかかる多重署名装置による署名消去処理の手順を示すフローチャートである。
【００９５】
本実施の形態では、実施の形態１と同様に、入出力部１０１による文書Ｍ＝Ｍ1｜｜・・・｜｜ＭLと多重署名σLと識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［Ｌ］を読み込み（ステップＳ９０１）、判定部１０４で多重署名の中から署名者の署名情報が含まれるか否かを識別子により判断する（ステップＳ９０２）。
【００９６】
そして、多重署名の中に署名者の署名情報がｉ番目の署名情報として含まれると判断された場合には（ステップＳ９０２：Ｙｅｓ）、現在日時取得部８０１により現在日時を取得する（ステップＳ９０３）。
【００９７】
そして、署名消去部８０６は、取得した現在日時が付加情報の署名生成日時から一定時間経過しているか否かを判断する（ステップＳ９０４）。ここで、一定時間とは、任意に定めることができ、例えば、１ヶ月、半年、１年等を一定時間とすることが可能である。
【００９８】
そして、署名消去部８０６によって署名生成日時から一定時間経過していないと判断された場合には（ステップＳ９０４：Ｎｏ）、署名を変更せずに、署名σLをそのまま出力する（ステップＳ９０７）。
【００９９】
一方、ステップＳ９０４において、署名生成日時から一定時間経過していると判断された場合には（ステップＳ９０４：Ｙｅｓ）、自己が変更した該当文書Ｍiに対して関数演算部１０５によってハッシュ値Ｈ（Ｍi）を計算する（ステップＳ９０５）。そして、署名消去部１０６によって、ハッシュ値Ｈ（Ｍi）と記憶部１０７に記憶されている自己の秘密鍵ｘiを用いて数５式に示す中間情報を生成し、生成された中間情報を用いて数５式に示す逆演算により署名σLを置き換え（ステップＳ９０６）、入出力部１０１によって置き換えた署名を出力する（ステップＳ９０７）。
【０１００】
【数５】
2005333382.tif 000009
【０１０１】
このように本実施の形態にかかる多重署名装置では、多重署名に特定の署名者の情報が含まれる場合であって、署名生成日時から一定時間経過した署名を消去しているので、不要になって相当期間経過した署名を自動的に消去することができる。
【０１０２】
なお、実施の形態３および４では、多重署名からの署名の消去を、利用者の指示、署名日時からの経過時間を判断して選択的に行う場合について説明したが、この他の条件によって選択的に署名の消去を行うように構成してもよい。
【０１０３】
（実施の形態５）
実施の形態１〜４にかかる多重署名装置は、特定の署名者の署名を多重署名から消去するものであったが、この実施の形態５にかかる多重署名装置では、さらに当該特定の署名者の署名を新たな署名に更新することができるものであり、本発明の多重署名生成装置を適用したものである。
【０１０４】
本実施の形態の多重署名装置は、文書データに対する署名を生成または更新して他の多重署名装置に送信する処理と、文書データに対する多重署名を検証する処理と、多重署名を管理して特定の署名者の署名を消去する処理を行えるようになっている。
【０１０５】
また、本実施の形態では、複数の多重署名装置がインターネットなどのネットワークに接続された形態となっている。そして、各多重署名装置において、署名者が文書データに対する電子署名を生成してネットワーク上の他の多重署名装置に文書データと多重署名を送信する。文書データと多重署名を受信した当該他の多重署名装置において受信した文書データに対する多重署名の検証処理を行って、電子署名を生成し、ネットワーク上の他の多重署名装置に送信するような処理が行われる。
【０１０６】
また、特定の署名者の署名の更新が必要になった場合には、その署名者またはその多重署名装置のシステム管理者が自己が利用する多重署名装置において、多重署名から自己の署名を更新する処理を行うことができるようになっている。
【０１０７】
なお、署名の生成および更新処理、多重署名の検証処理、署名の管理処理をそれぞれ別個の装置で行うように構成してもよい。
【０１０８】
図１０は、実施の形態５にかかる多重署名装置の機能的構成を示すブロック図である。本実施の形態の多重署名装置は、図１０に示すように、入出力部１０１と、署名生成部１００２と、署名検証部１０３と、判定部１０４と、関数演算部１０５と、署名消去部１００６と、記憶部１０７とを主に備えている。ここで、入出力部１０１、署名検証部１０３、関数演算部１０５、記憶部１０７の機能は実施の形態１の多重署名装置と同様である。
【０１０９】
判定部１０４は、入出力部１０１によって入力された多重署名に、署名の更新を行おうとする特定の署名者の署名が含まれているかを判定するものである。
【０１１０】
署名消去部１００６は、多重署名の中から、入力された文書データに対する多重署名に関与した署名者のうち特定の署名者の署名を消去した中間多重署名情報を生成する処理を行うものである。
【０１１１】
署名生成部１００２は、文書データに対して署名を生成するものである。また、署名生成部１００２は、入力された文書データに対する多重署名に関与した署名者のうち特定の署名者の署名を更新して新たな署名を生成する処理を行うものである。具体的には、署名生成部１００２は、署名消去部１００６によって生成された中間多重署名情報から新たな署名を生成する処理を行う。
【０１１２】
次に、本実施の形態にかかる多重署名装置による署名更新処理について説明する。なお、署名の生成処理および検証処理については実施の形態１の多重署名装置による各処理と同様に行われる。
【０１１３】
図１１は、実施の形態５にかかる多重署名装置による署名消去処理の手順を示すフローチャートである。
【０１１４】
まず、入出力部１０１により文書Ｍ＝Ｍ1｜｜・・・｜｜ＭLと多重署名σLと識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［Ｌ］と署名を付加すべき文書データＭi’と読み込む（ステップＳ１１０１）。そして、判定部１０４によって、入力された多重署名σLの中に、この多重署名装置による署名の更新を行おうとしている署名者の署名情報が含まれるか否かを判断する（ステップＳ１１０２）。
【０１１５】
そして、多重署名の中に署名者の署名情報が、ｉ番目の署名情報として含まれると判断された場合には（ステップＳ１１０２：Ｙｅｓ）、自己が変更した該当文書Ｍiに対して関数演算部１０５によってハッシュ値Ｈ（Ｍi）を計算する（ステップＳ１１０３）。そして、署名消去部１０６によって、ハッシュ値Ｈ（Ｍi）と記憶部１０７に記憶されている自己の秘密鍵ｘiを用いて数５式に示す中間情報を生成し、生成された中間情報を用いて数５式に示す逆演算により署名σLを置き換え（ステップＳ１１０４）、この置き換えた署名σLを中間多重署名情報とする。この中間多重署名情報は、特定の署名者の署名を消去した多重署名となる。このとき、文書からＭiを、識別子からＩＤ［ｉ］を削除して、文書Ｍ＝Ｍ1｜｜・・・Ｍi-1｜｜Ｍi+1｜｜・・・｜｜ＭL、識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［ｉ−１］｜｜ＩＤ［ｉ＋１］｜｜・・・｜｜ＩＤ［Ｌ］に置き換える。
【０１１６】
【数５】
2005333382.tif 000010
【０１１７】
一方、ステップＳ１１０２において、多重署名の中に署名者の署名情報が含まれないと判断された場合には（ステップＳ１１０２：Ｎｏ）、署名σLを変更せずにそのまま中間多重署名情報とする。
【０１１８】
次に、署名生成部１００２によって、署名をつけるべき文書Ｍi’に対して関数演算部１０５によって計算したＨ（Ｍi’）と中間多重署名情報σLと記憶部１０７に記憶されている秘密鍵ｘiとから、数６式に示す演算を行い、新たな署名σL’を計算し（ステップＳ１１０５）、入出力部１０１によって、文書データＭ＝Ｍ1｜｜・・・｜｜Ｍi-1｜｜Ｍi+1｜｜・・・｜｜ＭL’｜｜Ｍi’と新たな署名σL’と識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［ｉ−１］｜｜ＩＤ［ｉ＋１］｜｜・・・｜｜ＩＤ［Ｌ］｜｜ＩＤ［ｉ］を出力する（ステップＳ１１０６）。
【０１１９】
【数６】
2005333382.tif 000011
【０１２０】
このような処理によって、多重署名の中の特定の署名者の署名が更新されることになる。
【０１２１】
このように本実施の形態にかかる多重署名装置では、多重署名の中から過去に生成した署名情報を消去した後、必要に応じて過去の文書データも含めた新たな文書データに対して署名を生成することができるので、多重署名の中から更新したい署名が有る場合でも、署名者が複数回生成する付加情報を記憶する保存領域等の電子署名の生成および検証処理に必要な領域を低減することができるとともに、多重署名の検証処理を容易に行うことができる。
【０１２２】
例えば、医療機関において、患者が医療機関Ａに２度目に診察に訪れた際に、医療機関Ａが使用する多重署名装置は、多重署名の中に以前自らが署名生成を行ったか否かを判定し、１度目の診察の際の署名を削除し、２度目の診察に対して新たに署名を生成する。このとき、文書可変性を満たす多重署名方式においては、新たに署名を生成する際に、過去に生成した署名に対応した日付情報を含む文書と，患者が２度目に診察に訪れた際の日付と診察結果とを新たな文書とみなして多重署名を生成することによって、過去の文書に対する保証を失うことなく、付加情報と検証コストを削減することができる。
【０１２３】
（実施の形態６）
実施の形態５にかかる多重署名装置では、署名更新処理の際に、多重署名に特定の署名者の情報が含まれる場合、常に、当該署名者の署名が更新されていたが、この実施の形態６にかかる多重署名装置では、多重署名に特定の署名者の情報が含まれる場合に、単に署名の消去のみの処理と署名の更新処理とを選択的に行うものである。
【０１２４】
実施の形態６にかかる多重署名装置の構成は、実施の形態５の多重署名装置の構成と同様である。
【０１２５】
本実施の形態にかかる多重署名装置では、文書データおよび多重署名とともに署名を更新して新たに署名を生成するか否かを示す署名生成ビットも入力されるようになっている。この署名生成ビットが「０」のときは、新たな文書に署名を生成しない、「１」のときは新たな文書に署名を生成する、を意味するようになっている。ここで、署名生成ビットは本発明における署名生成情報に相当する。
【０１２６】
次に、本実施の形態にかかる多重署名装置による署名更新処理について説明する。なお、署名の生成処理および検証処理については実施の形態１の多重署名装置による各処理と同様に行われる。
【０１２７】
図１２は、実施の形態６にかかる多重署名装置による署名更新処理の手順を示すフローチャートである。
【０１２８】
本実施の形態では、実施の形態５と同様に、入出力部１０１による文書データＭ＝Ｍ1｜｜・・・｜｜ＭL，文書データＭi’と多重署名σLと識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［Ｌ］の読み込みから中間多重署名情報σLの生成までの処理（ステップＳ１２０１〜Ｓ１２０４）については、実施の形態５における署名更新処理（ステップＳ１１０１〜Ｓ１１０４）と同様に行われる。
【０１２９】
中間多重署名情報σLが生成されたら、署名生成ビットの値を調べる（ステップＳ１２０５）。そして、署名生成ビットが「１」である場合には、署名生成部１００２によって、署名をつけるべき文書Ｍi’に対して関数演算部１０５によって計算したＨ（Ｍi’）と中間多重署名情報σLと記憶部１０７に記憶されている秘密鍵ｘiとから、数６式に示す演算を行い、新たな署名σL’を計算し（ステップＳ１２０６）、入出力部１０１によって、文書データＭ＝Ｍ1｜｜・・・｜｜Ｍi-1｜｜Ｍi+1｜｜・・・｜｜ＭL｜｜Ｍi’と新たな署名σL’と識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［ｉ−１］｜｜ＩＤ［ｉ＋１］｜｜・・・｜｜ＩＤ［Ｌ］｜｜ＩＤ［ｉ］を出力する（ステップＳ１２０７）。
【０１３０】
【数６】
2005333382.tif 000012
【０１３１】
一方、ステップ１２０５において、署名生成ビットが「０」である場合には、署名を消去した状態の多重署名である中間多重署名情報を署名σL’とし（ステップＳ１２０７）、このσL’を出力する（ステップＳ１２０８）。このため、署名生成ビットが「０」である場合には、多重署名の中から特定の署名者の署名の消去のみが行われ、その署名の更新は行われないことになる。
【０１３２】
このように本実施の形態にかかる多重署名装置では、署名生成ビットによって多重署名の中の署名を更新するか否かを決定しているので、署名の更新を選択的に行うことが可能となる。
【０１３３】
（実施の形態７）
実施の形態６にかかる多重署名装置では、名生成ビットによって多重署名の中の署名を更新するか署名の消去のみとするかを決定し署名更新を選択的に行っていたが、この実施の形態７にかかる多重署名装置では、利用者の指示により署名の更新と消去を選択的に行うものである。
【０１３４】
図１３は、実施の形態７にかかる多重署名装置の機能的構成を示すブロック図である。本実施の形態の多重署名装置は、図１３に示すように、入出力部１０１と、署名生成部１３０２と、署名検証部１０３と、判定部１０４と、関数演算部１０５と、署名消去部１００６と、問い合わせ部１３０１と、記憶部１０７とを主に備えている。ここで、入出力部１０１、署名検証部１０３、署名消去部１００６、判定部１０４、関数演算部１０５、記憶部１０７の機能は実施の形態５の多重署名装置と同様である。
【０１３５】
問い合わせ部１３０１は、署名を更新するか否か、すなわち新たな署名を生成するか否かを利用者（署名者またはシステム管理者）にメッセージ等を表示装置（図示せず）に表示して問い合わせ、新たな署名を生成するかまたは生成しないかの指示を署名生成情報として入力する処理を行う。
【０１３６】
署名生成部１３０２は、問い合わせ部１３０１によって利用者から新たな署名を生成する旨の指示が署名生成情報として入力された場合に、署名消去部１００６によって生成された中間多重署名情報から新たな署名を生成し、問い合わせ部１３０１によって利用者から新たな署名を生成しない旨の指示を入力した場合には、中間多重署名情報をそのまま出力対象の署名とする処理を行うものである。
【０１３７】
次に、本実施の形態にかかる多重署名装置による署名更新処理について説明する。なお、署名の生成処理および検証処理については実施の形態１の多重署名装置による各処理と同様に行われる。
【０１３８】
図１４は、実施の形態７にかかる多重署名装置による署名更新処理の手順を示すフローチャートである。
【０１３９】
本実施の形態では、実施の形態５と同様に、入出力部１０１による文書データＭ＝Ｍ1｜｜・・・｜｜ＭL，文書データＭi’と多重署名σLと識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［Ｌ］の読み込みから中間多重署名情報σLの生成までの処理（ステップＳ１４０１〜Ｓ１４０４）については、実施の形態５における署名更新処理（ステップＳ１１０１〜Ｓ１１０４）と同様に行われる。
【０１４０】
中間多重署名情報σLが生成されたら、問い合わせ部１３０１によって、新たな署名を生成するか否かを利用者（署名者またはシステム管理者）に問い合わせ、新た署名を生成するかまたは生成しないかの指示を示す署名生成情報の入力待ちとなる（ステップＳ１４０５）。
【０１４１】
そして、署名生成部１３０２は、問い合わせ部１３０１から新た署名を生成する旨の指示を示す署名生成情報が入力されたか否かを判断する（ステップＳ１４０６）。そして、新たな署名を生成する旨の指示があった場合には（ステップＳ１４０６：Ｙｅｓ）、署名生成部１３０２によって、署名をつけるべき文書Ｍi’に対して関数演算部１０５によって計算したＨ（Ｍi’）と中間多重署名情報σLと記憶部１０７に記憶されている秘密鍵ｘiとから、数６式に示す演算を行い、新たな署名σL’を計算し（ステップＳ１４０７）、入出力部１０１によって、文書データＭ＝Ｍ1｜｜・・・｜｜Ｍi-1｜｜Ｍi+1｜｜・・・｜｜ＭL｜｜Ｍi’と新たな署名σL’と識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［ｉ−１］｜｜ＩＤ［ｉ＋１］｜｜・・・｜｜ＩＤ［Ｌ］｜｜ＩＤ［ｉ］を出力する（ステップＳ１４０９）。
【０１４２】
【数６】
2005333382.tif 000013
【０１４３】
一方、ステップ１４０６において、新たな署名を生成しない旨の指示があった場合には（ステップ１４０６：Ｎｏ）、署名を消去した状態の多重署名である中間多重署名情報を署名σL’とし（ステップＳ１４０８）、このσL’を文書Ｍ＝Ｍ1｜｜・・・｜｜Ｍi-1｜｜Ｍi+1｜｜・・・｜｜ＭLと識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［ｉ-１］｜｜ＩＤ［ｉ+１］｜｜・・・｜｜ＩＤ［Ｌ］とともに出力する（ステップＳ１４０９）。このため、署名生成ビットが「０」である場合には、多重署名の中から特定の署名者の署名の消去のみが行われ、その署名の更新は行われないことになる。
【０１４４】
このように本実施の形態にかかる多重署名装置では、利用者からの指示により多重署名の中の署名を更新するか否かを決定しているので、署名の更新を利用者の意図を反映して選択的に行うことが可能となる。
【０１４５】
（実施の形態８）
実施の形態７にかかる多重署名装置では、利用者の指示により選択的に署名を更新していたが、この実施の形態８にかかる多重署名装置では、署名生成時から一定期間経過していた場合に署名を更新するものである。
【０１４６】
図１５は、実施の形態７にかかる多重署名装置の機能的構成を示すブロック図である。本実施の形態の多重署名装置は、図１５に示すように、入出力部１０１と、署名生成部１５０２と、署名検証部１０３と、判定部１０４と、関数演算部１０５と、署名消去部１００６と、現在日時取得部１５０１と、記憶部１０７とを主に備えている。ここで、入出力部１０１、署名検証部１０３、署名消去部１００６、判定部１０４、関数演算部１０５、記憶部１０７の機能は実施の形態５の多重署名装置と同様である。
【０１４７】
現在日時取得部１５０１は、判定部１０４によって署名σLが署名を消去する特定の署名者の署名情報を含んでいると判断された場合に、現在の日時を取得する処理を行う。
【０１４８】
署名生成部１５０２は、現在日時取得部８０１によって取得した現在日時が多重署名に含まれる特定の署名者の署名生成日時から一定時間経過している場合に、署名消去部１００６によって生成された中間多重署名情報から新たな署名を生成し、一定時間を経過していない場合には、中間多重署名情報をそのまま出力対象の署名とする処理を行うものである。
【０１４９】
本実施の形態にかかる多重署名装置では、署名の生成処理において、署名の生成日時を付加情報として文書データと多重署名とともに他の多重署名装置に送信するものとする。
【０１５０】
次に、本実施の形態にかかる多重署名装置による署名更新処理について説明する。なお、署名の生成処理および検証処理については実施の形態１の多重署名装置による各処理と同様に行われる。
【０１５１】
図１６は、実施の形態８にかかる多重署名装置による署名更新処理の手順を示すフローチャートである。
【０１５２】
本実施の形態では、実施の形態５と同様に、入出力部１０１による文書データＭ＝Ｍ1｜｜・・・｜｜ＭL，文書データＭi’と多重署名σLと識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［Ｌ］の読み込みから中間多重署名情報σLの生成までの処理（ステップＳ１６０１〜Ｓ１６０４）については、実施の形態５における署名更新処理（ステップＳ１１０１〜Ｓ１１０４）と同様に行われる。
【０１５３】
中間多重署名情報σLが生成されたら、現在日時取得部１５０１により現在日時を取得する（ステップＳ１６０５）。
【０１５４】
そして、署名生成部１５０２は、取得した現在日時が付加情報の署名生成日時から一定時間経過しているか否かを判断する（ステップＳ１６０６）。ここで、一定時間とは、任意に定めることができ、例えば、１ヶ月、半年、１年等を一定時間とすることが可能である。
【０１５５】
そして、署名生成部１５０２によって署名生成日時から一定時間経過していると判断された場合には（ステップＳ１６０６：Ｙｅｓ）、署名生成部１５０２によって、署名をつけるべき文書Ｍi’に対して関数演算部１０５によって計算したＨ（Ｍi’）と中間多重署名情報σLと記憶部１０７に記憶されている秘密鍵ｘiとから、数６式に示す演算を行い、新たな署名σL’を計算し（ステップＳ１６０７）、入出力部１０１によって、文書データＭ＝Ｍ1｜｜・・・｜｜Ｍi-1｜｜Ｍi+1｜｜・・・｜｜ＭL｜｜Ｍi’と新たな署名σL’と識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［ｉ-１］｜｜ＩＤ［ｉ+１］｜｜・・・｜｜ＩＤ［Ｌ］｜｜ＩＤ［ｉ］を出力する（ステップＳ１６０９）。
【０１５６】
【数６】
2005333382.tif 000014
【０１５７】
一方、ステップ１６０６において、現在日時が署名生成日時から一定時間経過していないと判断された場合には（ステップ１６０６：Ｎｏ）、署名を消去した状態の多重署名である中間多重署名情報を署名σL’とし（ステップＳ１６０８）、このσL’を文書データＭ＝Ｍ1｜｜・・・｜｜Ｍi-1｜｜Ｍi+1｜｜・・・｜｜ＭLと識別子ＩＤ＝ＩＤ［1］｜｜・・・｜｜ＩＤ［ｉ-１］｜｜ＩＤ［ｉ+１］｜｜・・・｜｜ＩＤ［Ｌ］とともに出力する（ステップＳ１６０９）。このため、現在日時が署名生成日時から一定時間経過していない場合には、多重署名の中から特定の署名者の署名の消去のみが行われ、その署名の更新は行われないことになる。
【０１５８】
このように本実施の形態にかかる多重署名装置では、署名生成日時から一定時間経過した場合に署名を更新しているので、不要になって相当期間経過した署名を自動的に更新することができる。
【０１５９】
なお、実施の形態６〜８では、多重署名の中の署名の更新を、署名生成ビットの値、利用者の指示、署名日時からの経過時間を判断して選択的に行う場合について説明したが、この他の条件によって選択的に署名の更新を行うように構成してもよい。
また、上記実施の形態１〜８では、関数演算部１０５は、入力された文書データのハッシュ値を演算し、このハッシュ値を署名の消去や更新に利用していたが、これに限定されるものではなく、例えば、関数演算部１０５によって入力された文書データを所定の鍵で暗号化し、暗号化した文書データを署名の消去や更新に利用するように構成することができる。
【０１６０】
以上説明した実施の形態１〜８にかかる多重署名装置は、ＣＰＵなどの制御装置と、ＲＯＭ（Read Only Memory）やＲＡＭなどの記憶装置と、ＨＤＤ、ＣＤドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１６１】
実施の形態１〜８にかかる多重署名装置で実行される多重署名管理プログラムおよび多重署名生成プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１６２】
また、実施の形態１〜８にかかる多重署名装置で実行される多重署名管理プログラムおよび多重署名生成プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、実施の形態１〜８にかかる多重署名装置で実行される多重署名管理プログラムおよび多重署名生成プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１６３】
また、実施の形態１〜８にかかる多重署名装置で実行される多重署名管理プログラムおよび多重署名生成プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１６４】
実施の形態１〜８にかかる多重署名装置で実行される多重署名管理プログラムおよび多重署名生成プログラムは、機能的構成において上述した各部（入出力部、署名生成部、署名検証部、判定部、関数演算部、署名消去部、問い合わせ部、現在日時取得部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体から多重署名管理プログラムおよび多重署名生成プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、入出力部、署名生成部、署名検証部、判定部、関数演算部、署名消去部、問い合わせ部、現在日時取得部が主記憶装置上に生成されるようになっている。
【０１６５】
なお、実施の形態１〜８では、説明を簡単にするため，Bonehら (D. Boneh and C. Gentry and B. Lynn and H. Shacham, "Aggregate and Verifiability Encrypted Signature form Biliner Maps", Advances in Cryptology - EUROCRYPT 2003 , Springer-Verlag, 2003, Lecture Notes in Computer Science 2656) が提案した多重署名方式に署名消去処理および署名更新処理を適用した場合について説明したが、Boneh等が提案した本来の統括署名方式としての処理を行った後に生成される統括署名に対しても、本発明の多重署名管理装置による署名消去処理および署名更新処理を適用することができる。
【産業上の利用可能性】
【０１６６】
多重署名管理装置、多重署名生成装置、多重署名管理プログラムおよび多重署名生成プログラムは、例えば文書データの回覧や承認を電子署名によって行う多重署名管理装置、多重署名生成装置、多重署名管理プログラムおよび多重署名生成プログラムに適している。
【図面の簡単な説明】
【０１６７】
【図１】実施の形態１にかかる多重署名装置の機能的構成を示すブロック図である。
【図２】実施の形態１の多重署名装置におけるＬ人の署名者による多重署名方式の概念を示す説明図である。
【図３】文書可変性の概念を示す説明図である。
【図４】実施の形態１にかかる多重署名装置による署名消去処理の手順を示すフローチャートである。
【図５】実施の形態２にかかる多重署名装置による署名消去処理の手順を示すフローチャートである。
【図６】実施の形態３にかかる多重署名装置の機能的構成を示すブロック図である。
【図７】実施の形態３にかかる多重署名装置による署名消去処理の手順を示すフローチャートである。
【図８】実施の形態４にかかる多重署名装置の機能的構成を示すブロック図である。
【図９】実施の形態４にかかる多重署名装置による署名消去処理の手順を示すフローチャートである。
【図１０】実施の形態５にかかる多重署名装置の機能的構成を示すブロック図である。
【図１１】実施の形態５にかかる多重署名装置による署名消去処理の手順を示すフローチャートである。
【図１２】実施の形態６にかかる多重署名装置による署名更新処理の手順を示すフローチャートである。
【図１３】実施の形態７にかかる多重署名装置の機能的構成を示すブロック図である。
【図１４】実施の形態７にかかる多重署名装置による署名更新処理の手順を示すフローチャートである。
【図１５】実施の形態７にかかる多重署名装置の機能的構成を示すブロック図である。
【図１６】実施の形態８にかかる多重署名装置による署名更新処理の手順を示すフローチャートである。
【符号の説明】
【０１６８】
１０１  入出力部
１０２，１００２，１３０２，１５０２  署名生成部
１０３  署名検証部
１０４  判定部
１０５  関数演算部
１０６，８０６，１００６  署名消去部
１０７  記憶部
６０１，１３０１  問い合わせ部
８０１，１５０１  現在日時取得部
【図１】
2005333382.tif 000015
【図２】
2005333382.tif 000016
【図３】
2005333382.tif 000017
【図４】
2005333382.tif 000018
【図５】
2005333382.tif 000019
【図６】
2005333382.tif 000020
【図７】
2005333382.tif 000021
【図８】
2005333382.tif 000022
【図９】
2005333382.tif 000023
【図１０】
2005333382.tif 000024
【図１１】
2005333382.tif 000025
【図１２】
2005333382.tif 000026
【図１３】
2005333382.tif 000027
【図１４】
2005333382.tif 000028
【図１５】
2005333382.tif 000029
【図１６】
2005333382.tif 000030