(57)【特許請求の範囲】
【請求項１】
コンピュータが実行する電子署名方法であって、
前記コンピュータが、
対象となる電子文書を複数に分割した文書である部分文書の入力を入力部より受け付け、部分文書保持部に保持し、
前記入力された部分文書ごとに各部分文書の署名情報をそれぞれ計算し、該計算した各部分文書の署名情報を重畳した計算結果である前記対象となる電子文書の署名本体の署名値ｓと、部分文書を削除する場合の署名として用いる削除用の署名の初期値である署名値ｔとの２値の組からなる署名（ｓ，ｔ）を生成して署名データ保持部に保持し、
前記分割した複数の部分文書のうちいずれかの部分文書を前記部分文書保持部から抽出する場合に、
抽出する部分文書以外の削除する部分文書の署名情報をそれぞれ計算し、該計算した各部分文書の署名情報を削除用の署名値ｔに重畳して新たな署名値ｔ’を計算し、該署名値ｔ’により、前記署名データ保持部に保持されている署名（ｓ、ｔ）を署名（ｓ，ｔ’）に更新する
ことを特徴とする電子署名方法。
【請求項２】
請求項１に記載の電子署名方法において、
前記抽出された部分文書の署名情報と更新された署名（ｓ，ｔ’）とに基づいて署名の検証を行う電子署名方法。
【請求項３】
請求項１に記載の電子署名方法において、
さらに、対象となる電子文書の文書ＩＤとして用いる署名値ｒを用い、署名本体となる署名値ｓと削除用の署名の初期値である署名値ｔとの３値の組からなる署名（ｒ，ｓ，ｔ）を生成して署名データ保持部に保持し、
前記分割した複数の部分文書のうちいずれかの部分文書を前記部分文書保持部から抽出する場合には、前記署名データ保持部に保持されている署名（ｒ、ｓ、ｔ）を署名（ｒ，ｓ，ｔ’）に更新する
ことを特徴とする電子署名方法。
【請求項４】
請求項３に記載の電子署名方法において、
抽出された部分文書の署名情報と更新された署名（ｒ，ｓ，ｔ２）とに基づいて署名の検証を行う電子署名方法。
【請求項５】
請求項１乃至請求項４のいずれかに記載の電子署名方法において、
各部分文書に対する署名情報は、部分文書に部分文書ＩＤを結合したＩＤ付部分文書のハッシュ値である電子署名方法。
【請求項６】
コンピュータに電子署名処理を実行させる電子署名プログラムであって、
前記コンピュータに、
対象となる電子文書を複数に分割した文書である部分文書の入力を入力部より受け付け、部分文書保持部に保存させ、
前記入力された部分文書ごとに各部分文書の署名情報をそれぞれ計算させ、該計算させた各部分文書の署名情報を重畳した計算結果である前記対象となる電子文書の署名本体の署名値ｓと、部分文書を削除する場合の署名として用いる削除用の署名の初期値である署名値ｔとの２値の組からなる署名（ｓ，ｔ）を生成して署名データ保持部に保持させ、
前記分割した複数の部分文書のうちいずれかの部分文書を前記部分文書保持部から抽出する場合に、
抽出する部分文書以外の削除する部分文書の署名情報をそれぞれ計算させ、該計算させた各部分文書の署名情報を削除用の署名値ｔに重畳して新たな署名値ｔ’を計算させ、該署名値ｔ’により、前記署名データ保持部に保持されている署名（ｓ、ｔ）を署名（ｓ，ｔ’）に更新させる
ことを特徴とする電子署名プログラム。
【請求項７】
対象となる電子文書を複数に分割した文書である部分文書の入力を入力部より受け付け、部分文書保持部に保持する分割手段と、
前記入力された部分文書ごとに各部分文書の署名情報をそれぞれ計算し、該計算した各部分文書の署名情報を重畳した計算結果である前記対象となる電子文書の署名本体の署名値ｓと、部分文書を削除する場合の署名として用いる削除用の署名の初期値である署名値ｔとの２値の組からなる署名（ｓ，ｔ）を生成して署名データ保持部に保持する署名生成手段と、
前記分割手段によって前記分割した複数の部分文書のうちいずれかの部分文書を前記部分文書保持部から抽出する場合に、
抽出する部分文書以外の削除する部分文書の署名情報をそれぞれ計算し、該計算した各部分文書の署名情報を削除用の署名値ｔに重畳して新たな署名値ｔ’を計算し、該署名値ｔ’により、前記署名データ保持部に保持されている署名（ｓ、ｔ）を署名（ｓ，ｔ’）に更新する署名更新手段と、
を有することを特徴とする電子署名装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書や画像、音声等の電子的な情報の作成者や確認者を保証する電子署名技術に関する。特に、「墨塗り署名」や「削除署名」といった、署名を行った情報の一部を取り出しても元の情報の一部であることを署名によって保証できる、電子署名方式、電子署名プログラムおよび電子署名装置に関するものである。
【背景技術】
【０００２】
電子文書の完全性を保証する技術として電子署名がある。電子文書の利用・活用を進める上では、署名された電子文書の一部を取り出したい（抽出したい）というニーズは多い。しかし、一般的な電子署名ではこのような抽出は文書の改ざんに当たるため、完全性の保証が出来ない。これを解決する技術として、墨塗り署名や削除署名という部分抽出可能な電子署名の応用技術がある。これらは、抽出を行っても、その部分の完全性を保証することができる。
【０００３】
ここで、抽出署名を定義する。一般の電子署名は、署名を行う署名者と検証を行う検証者の二者モデルで定義する。これに対し、抽出署名では、図１に示すように、署名を行う署名者、署名者の署名した文書から一部分を抽出する抽出者、抽出された文書を検証する検証者の三者モデルを使用する。署名者が何らかの方法で文書に署名を行う。そして、その文書および署名を抽出者が受け取る。抽出者は、受け取った文書の一部を抽出し、それに伴う抽出情報の生成や署名のアップデートを行う。そしてその抽出された文書および署名と抽出情報を検証者が受け取る。検証者は抽出された文書および署名と抽出情報から、その抽出文書が、署名者が署名を行った文書の一部であることを検証する。以上の流れを満たすことができる署名方式を抽出署名と定義する。
【０００４】
墨塗り署名や、削除署名を行うには事前に文書を複数の部分文書に分割し、それらの部分文書に対して署名処理または署名処理の一部を行う。従来の墨塗り署名、削除署名では、署名時に署名の情報が部分文書の数に比例して膨大になったり、抽出時に抽出する部分文書の数や削除する部分文書の数に比例した抽出情報を持たなければならなかったりした。そのため、大きな文書の一部を抽出するために、大量の署名情報や、大量の抽出情報を持たなければならず、非常に効率が悪かった。
【０００５】
墨塗り署名の代表として、下記の特許文献１に開示された署名方式（以下、この署名方式をＳＵＭＩ−４とする）があげられる。この署名方式では、署名は部分文書の数によらず１つだけであるが、抽出時に削除する部分文書のハッシュ値群を持たなければならならないため、抽出情報が削除部分文書数に比例して増大してしまう。
【０００６】
これを図２を参照して説明する。署名時に、署名者は文書情報Ｍを部分文書情報ｍ1〜ｍ4に分割し、それぞれの部分文書情報に部分文書ＩＤ情報ＩＤ1〜ＩＤ4を付加してＩＤ付部分文書Ｍ1〜Ｍ4を生成する。そしてハッシュ値ｈ1〜ｈ4を計算し、そのハッシュ値ｈ1〜ｈ4に対して署名を行い（署名σ）、ＩＤ付部分文書Ｍ1〜Ｍ4と署名σを抽出者に送付する。抽出時には、抽出者は抽出するＩＤ付部分文書を決定する。ここでは、ＩＤ付部分文書Ｍ2を抽出するものとする。そして、削除する（抽出しない）ＩＤ付部分文書Ｍ1，Ｍ3，Ｍ4のハッシュ値ｈ1，ｈ3，ｈ4を計算し、ｈ1，Ｍ2，ｈ3，ｈ4と署名者の署名σを公開する。つまり、削除するＩＤ付部分文書Ｍ1，Ｍ3，Ｍ4の代わりにハッシュ値ｈ1，ｈ3，ｈ4が公開される。署名検証時、検証者は公開されているＩＤ付部分文書情報Ｍ2からハッシュ値ｈ2を計算することで、公開されているｈ1，ｈ3，ｈ4と併せてハッシュ値ｈ1〜ｈ4を復元し、署名σで検証を行う。署名σは署名者がハッシュ値ｈ1〜ｈ4に対して付与した署名であるので、検証者は抽出されたＩＤ付部分文書Ｍ2が署名者により署名が施された文書Ｍの一部分であることを検証することができる。ここで、抽出を行う場合、削除するＩＤ付部分文書の代わりにそのハッシュ値を公開しなければ、検証者が検証することができない。そのため、削除する部分文書の数に比例した情報（以下、これを抽出情報とする）を保持しなければならず、削除するＩＤ付部分文書の数が大きくなると、保持しなければならない抽出情報が大きくなってしまうという問題があった。
【０００７】
また、削除署名の代表として、下記の特許文献２に開示された署名方式（以下、この署名方式をＳＵＭＩ−６とする）があげられる。この署名方式では、署名時に各部分文書に対する部分署名とそれを重畳した全体署名を持たなければならない。そのため、署名情報が部分文書数に比例して増大してしまうという問題がある。
【０００８】
これを図３を参照して説明する。図２と同様に、署名時に、署名者は文書情報Ｍを部分文書情ｍ1〜ｍ4に分割し、それぞれの部分文書情報に部分文書ＩＤ情報ＩＤ1〜ＩＤ4を付加してＩＤ付部分文書Ｍ1〜Ｍ4を生成する。そしてハッシュ値ｈ1〜ｈ4を計算し、後述するアグリゲート署名で部分署名σ1〜σ4を計算し、部分署名σ1〜σ4を重畳して全体署名σを作成する。最後に、ＩＤ付部分文書Ｍ1〜Ｍ4と部分署名σ1〜σ4、および全体署名σを抽出者に送付する。抽出時に、抽出者は抽出するＩＤ付部分文書を決定する。ここでは、ＩＤ付部分文書Ｍ2を抽出するものとする。抽出しないＩＤ付部分文書Ｍ1，Ｍ3，Ｍ4を削除し、それに対応する部分署名σ1，σ3，σ4を利用して全体署名σからσ1，σ3，σ4の情報を削除して全体署名をσ’に更新する。最後に、抽出したＩＤ付部分文書Ｍ2とその部分署名σ2、および更新した全体署名σ’を公開する。署名検証時には、検証者は公開されているＩＤ付部分文書情報Ｍ2と更新された全体署名σ’で検証を行う。署名σ’は署名者の全体署名σから抽出者が削除したＩＤ付部分文書Ｍ1，Ｍ3，Ｍ4の部分署名の情報が削除されているため、検証者は抽出されたＩＤ付部分文書Ｍ2が、署名者が署名を施した文書Ｍの一部分であることを検証することができる。
【０００９】
ここで、この方式では、署名を行う場合、部分署名情報を付加しなければ抽出を行うことができない。そのため、署名する部分文書の数に比例した署名情報を保持しなければならず、署名するＩＤ付部分文書の数が大きくなると、保持しなければならない署名情報が大きくなってしまうという問題があった。
【００１０】
すなわち、墨塗り署名ベースの抽出においては、署名時の署名は1個（データ量小）であるものの、抽出時には署名時の署名の他に削除する部分文書の数だけの抽出情報を持たなければならず（データ量大）、削除署名ベースの抽出においては、抽出時は抽出文書とその個別署名および更新した全体署名で済むが（データ量小）、署名時には署名（全体署名）の他に部分文書の数だけ情報（個別署名）を持たなければならない（データ量大）という問題を抱えている。
【００１１】
一方で、アグリゲート署名という電子署名の応用技術が存在する。アグリゲート署名は、電子文書流通等で１つもしくは複数の文書に対する署名を1人もしくは複数の署名者により付与しなければならない場合に、署名を重畳することで署名データ量を削減できる技術として注目されている。
アグリゲート署名の代表的な特徴を示す。複数の文書を複数人で署名する場合、図４に示されるように、通常の電子署名を用いると署名データは文書の数だけ必要となる。これに対して、アグリゲート署名を用いれば、図５に示されるように、各文書の署名を重畳（アグリゲーション）して1つの署名とすることが可能となり、署名データ量の削減が可能となる。
【００１２】
現在、アグリゲート署名の構成方法としては、文献A.Lysyanskaya, et.al., "Sequential Aggregate Signatures froＭ Trapdoor PerＭutations," EUROCRYPT 2004, LNCS 3027, pp. 74-90, 2004に記載の、ＲＳＡ署名をベースとしたシーケンシャルアグリゲート署名と、文献D.Bone, et.al., "Aggregate and Verifiably Encrypted Signature froＭ Bilinear Ｍaps," EUROCRYPT 2003, LNCS 2656, pp.416-432, 2003に記載の、楕円曲線暗号技術の一つであるペアリングをベースとしたジェネラルアグリゲート署名の２つが知られている。上記削除署名で使用されているのはジェネラルアグリゲート署名である。
【００１３】
また、署名の一部だけが重畳できるＳｃｈｎｏｒｒ署名という署名方式が特許文献３に開示されている。Ｓｃｈｎｏｒｒ署名は以下のように定義されている。
素数ｐとその生成元ｇ、および生成元の位数ｑが共通パラメータとして公開されている。また、署名者の秘密鍵と公開鍵のペアを（ｓｋ，ｐｋ）、ｐｋ＝ｇsk mod ｐ（０＜ｓｋ＜ｑ）とし、ｐｋは署名者の公開鍵として公開される。
署名対象文書Ｍに署名を行う場合、署名者は乱数ｋを発生させ（秘密とする）、署名σ＝（ｒ，ｓ）＝（ｇk mod ｐ，ｓｋ×Ｈ（ｒ||Ｍ）＋ｋ mod ｑ）を計算する。ここで、Ｈ（ｘ）は値ｘに対するハッシュ値、ｘ||ｙは値ｘとｙの連結（concatenation）を表す。署名検証時は、ｇs mod ｐとｐｋH(r||M)×ｒ mod ｐが同じ値になれば署名有効、異なれば署名無効と判断する。
【００１４】
Ｓｃｈｎｏｒｒ署名の重畳を図６で説明する。Ｓｃｈｎｏｒｒ署名では署名値がσ＝（ｒ，ｓ）の２値で表現される。ある文書Ａに対するＳｃｈｎｏｒｒ署名をσA＝（ｒA，ｓA）、文書Ｂに対するＳｃｈｎｏｒｒ署名をσB＝（ｒB，ｓB）とする。この場合、文書Ａと署名σA、文書Ｂと署名σBの検証が個別に可能なことに加えて、各署名のｓ側の値を重畳しても署名検証が可能である。つまり、文書Ａ、文書Ｂ、署名σAB＝（ｒA，ｒB，ｓAB）で文書ＡおよびＢの署名検証を行うことができる。ここで、ｓAB＝ｓA×ｓB mod ｐで計算する。また、重畳時の署名検証はｇsAB mod ｐ とｐｋH(rA||M)×ｒA×ｐｋH(rB||M)×ｒB mod ｐが同じ値になれば署名有効、異なれば署名無効と判断する。このようにＳｃｈｎｏｒｒ署名では、署名のｓ側の値を重畳することが可能なため、アグリゲート署名より削減率は低いが、必要な署名データ量を削減することができる。
【００１５】
さらに、ＲＳＡアキュムレータという技術が文献J. Benaloh, and Ｍ. de Ｍare, "One-way accuＭulatoＲＳＡ decentralized alternative to digital signatures," EUROCRYPT ‘93, LNCS 765, pp.274-285, Springer-Verlag, 1994に記載されている。ＲＳＡアキュムレータとは、ＲＳＡ暗号をベースにしたハッシュ関数の一種で、重畳機能を持つ。ＲＳＡ暗号で用いられるように二つの素数ｐ，ｑの積であるＮを使用する。そして、Ｎと互いに素な元ｇ、および、元ｇの位数φ＝ＬＣＭ（ｐ−１）(ｑ−１）を使用する。ＲＳＡアキュムレータはＲＳＡ仮定という安全性の元に、擬似可換という性質を持つ。擬似可換とは、全てのｘ∈Ｘかつ全てのｙ１，ｙ２∈Ｙにおいて、関数ｆ：Ｘ×Ｙ→Ｘが以下の性質を満たすならば、関数ｆは擬似可換の性質をもつという。
ｆ（ｆ（ｘ，ｙ１），ｙ２）＝ｆ（ｘ，ｙ２），ｙ１）
【００１６】
つまり、関数ｆを何度も繰り返し適用する場合に、ｙに対してその順序を変更可能（可換）であるという性質をもつ。上記の文献におけるＲＳＡアキュムレータは、関数ｆを
ｆN（ｘ、ｙ）＝ｘH(y) mod Ｎ
で実現している。ここで、Ｈは一方向性のハッシュ関数（ＳＨＡ１等）である。
ＲＳＡアキュムレータでは、
ｇH(y1)×H(y2) mod Ｎ＝（ｇH(y1) mod Ｎ）H(y2) mod Ｎ
＝（ｇH(y2) mod Ｎ）H(y1) mod Ｎ
が成り立つ。つまり、ハッシュ値の順不同の重畳が可能となる。これに加えて、ＲＳＡアキュムレータは一方向性を持つため、（ｇH(y) mod Ｎ）とＨ（ｙ），Ｎから、ｘを計算することは困難である（ＲＳＡ仮定）。
【００１７】
【特許文献１】特開２００４−３６４０７０号公報
【特許文献２】特開２００６−６０７２２号公報
【特許文献３】特許第２６６６１９１号
【発明の開示】
【発明が解決しようとする課題】
【００１８】
このように、従来の署名方式では、電子文書の抽出部分の完全性を保証するために署名時または抽出時のデータ量が大きくなるという問題点があった。
本発明はこのような問題点を解消するためになされたもので、署名時および抽出時のデータ量を削減しながらも電子文書の抽出部分の完全性を保証することができる電子署名方法を提供することを目的とする。
また、本発明は、このような電子署名方法をコンピュータに実行させる電子署名プログラムおよび電子署名装置を提供することも目的としている。
【課題を解決するための手段】
【００１９】
本発明に係る電子署名方法は、コンピュータが実行する電子署名方法であって、前記コンピュータが、対象となる電子文書を複数に分割した文書である部分文書の入力を入力部より受け付け、部分文書保持部に保持し、前記入力された部分文書ごとに各部分文書の署名情報をそれぞれ計算し、該計算した各部分文書の署名情報を重畳した計算結果である前記対象となる電子文書の署名本体の署名値ｓと、部分文書を削除する場合の署名として用いる削除用の署名の初期値である署名値ｔとの２値の組からなる署名（ｓ，ｔ）を生成して署名データ保持部に保持し、前記分割した複数の部分文書のうちいずれかの部分文書を前記部分文書保持部から抽出する場合に、抽出する部分文書以外の削除する部分文書の署名情報をそれぞれ計算し、該計算した各部分文書の署名情報を削除用の署名値ｔに重畳して新たな署名値ｔ’を計算し、該署名値ｔ’により、前記署名データ保持部に保持されている署名（ｓ、ｔ）を署名（ｓ，ｔ’）に更新する方法である。
【００２０】
本発明の一態様は、さらに、対象となる電子文書の文書ＩＤとして用いる署名値ｒを用い、署名本体となる署名値ｓと削除用の署名の初期値である署名値ｔとの３値の組からなる署名（ｒ，ｓ，ｔ）を生成して署名データ保持部に保持し、前記分割した複数の部分文書のうちいずれかの部分文書を前記部分文書保持部から抽出する場合には、前記署名データ保持部に保持されている署名（ｒ、ｓ、ｔ）を署名（ｒ，ｓ，ｔ’）に更新する方法である。
【００２１】
本発明の一態様は、コンピュータに電子署名処理を実行させる電子署名プログラムであって、前記コンピュータに、対象となる電子文書を複数に分割した文書である部分文書の入力を入力部より受け付け、部分文書保持部に保存させ、前記入力された部分文書ごとに各部分文書の署名情報をそれぞれ計算させ、該計算させた各部分文書の署名情報を重畳した計算結果である前記対象となる電子文書の署名本体の署名値ｓと、部分文書を削除する場合の署名として用いる削除用の署名の初期値である署名値ｔとの２値の組からなる署名（ｓ，ｔ）を生成して署名データ保持部に保持させ、前記分割した複数の部分文書のうちいずれかの部分文書を前記部分文書保持部から抽出する場合に、抽出する部分文書以外の削除する部分文書の署名情報をそれぞれ計算させ、該計算させた各部分文書の署名情報を削除用の署名値ｔに重畳して新たな署名値ｔ’を計算させ、該署名値ｔ’により、前記署名データ保持部に保持されている署名（ｓ、ｔ）を署名（ｓ，ｔ’）に更新させるものである。
【００２２】
また、本発明の一態様は、対象となる電子文書を複数に分割した文書である部分文書の入力を入力部より受け付け、部分文書保持部に保持する分割手段と、前記入力された部分文書ごとに各部分文書の署名情報をそれぞれ計算し、該計算した各部分文書の署名情報を重畳した計算結果である前記対象となる電子文書の署名本体の署名値ｓと、部分文書を削除する場合の署名として用いる削除用の署名の初期値である署名値ｔとの２値の組からなる署名（ｓ，ｔ）を生成して署名データ保持部に保持する署名生成手段と、前記分割手段によって前記分割した複数の部分文書のうちいずれかの部分文書を前記部分文書保持部から抽出する場合に、抽出する部分文書以外の削除する部分文書の署名情報をそれぞれ計算し、該計算した各部分文書の署名情報を削除用の署名値ｔに重畳して新たな署名値ｔ’を計算し、該署名値ｔ’により、前記署名データ保持部に保持されている署名（ｓ、ｔ）を署名（ｓ，ｔ’）に更新する署名更新手段と、を有するものである。
【発明の効果】
【００２３】
この発明によれば、署名時および抽出時のデータ量を削減しながらも電子文書の抽出部分の完全性を保証することができる電子署名方法、電子署名プログラムおよび電子署名方法を提供することができる。
【発明を実施するための最良の形態】
【００２４】
本発明の署名方式について説明する。
［墨塗り署名へのＲＳＡアキュムレータ導入］
まず、墨塗り署名の処理の一部にＲＳＡアキュムレータを導入する。図２を使って説明する。図２の墨塗り署名では、ＩＤ付部分文書のハッシュ値に対して署名しているが、これは、各ＩＤ付部分文書Ｍ1〜Ｍ4のハッシュ値ｈ1〜ｈ4を互いに連結した値ｈ1||ｈ2||ｈ3||ｈ4（||は連結を表す）に対して署名を行っている。これをσ＝Sign（Ｈ（ｈ1||ｈ2||ｈ3||ｈ4））と書くこととする。ハッシュ値を連結して署名すれば、ｈ1〜ｈ4の情報全てに対して完全性が担保できるが、Ｈ（ｈ1||ｈ2||ｈ3||ｈ4）部分に擬似可換性がないため、例えばＨ（ｈ1||ｈ2||ｈ3）とｈ4からＨ（ｈ1||ｈ2||ｈ3||ｈ4）を生成することはできない。署名確認にはVerify（σ，Ｈ（ｈ1||ｈ2||ｈ3||ｈ4））とＨ（ｈ1||ｈ2||ｈ3||ｈ4）が必要なため、Ｈ（ｈ1||ｈ2||ｈ3）とｈ4からでは署名確認はできないことになる。
【００２５】
そこで、この部分にＲＳＡアキュムレータを導入する。Ｈ（ｈ1||ｈ2||ｈ3||ｈ4）の代わりにｇh1×h2×h3×h4 mod Ｎとすると、署名はσ＝Sign（ｇh1×h2×h3×h4 mod Ｎ）となる。そうすれば、ＲＳＡアキュムレータの擬似可換性から、
（ｇh1×h2×h3 mod Ｎ）h4 mod Ｎ＝ｇh1×h2×h3×h4 mod Ｎ
となるため、（ｇh1×h2×h3 mod Ｎ）とｈ4から署名確認Verify（σ，ｇh1×h2×h3×h4 mod Ｎ）が可能となる。
【００２６】
［削除用署名の導入］
単純にハッシュ値の連結をＲＳＡアキュムレータに変更するだけでは情報量の削減にはつながらない。情報量を削減するために削除用の署名を導入する。署名を区別するために、ＲＳＡアキュムレータへの署名をｓ＝Sign（ｇh1×h2×h3×h4 mod Ｎ）とする。そして、削除用の署名をｔとし、このｓとｔの二つで署名σ＝（ｓ，ｔ）と呼ぶことにする。
【００２７】
図７に、本発明の署名方式の概念を示す。
署名者は、図２の墨塗り署名と同様にＩＤ付部分文書Ｍ1〜Ｍ4を作成し、個別の部分ハッシュ値ｈ1〜ｈ4を作成する。ＲＳＡアキュムレータを使用してこれらのハッシュ値ｈ1〜ｈ4を重畳し、ｓ＝Sign（ｇh1×h2×h3×h4 mod Ｎ）を計算する。そして、削除用の署名の初期値としてｔ＝ｇをセットし、署名σ＝（ｓ，ｔ）を出力する。
抽出者は、図１の墨塗り署名と同様に、削除する（抽出しない）ＩＤ付部分文書Ｍ1，Ｍ3，Ｍ4のハッシュ値ｈ1，ｈ3，ｈ4を計算する。そして、削除用の署名ｔをｔ’＝ｇh1×h3×h4 mod Ｎにアップデートし、ＩＤ付部分文書Ｍ2と共にσ’＝（ｓ，ｔ’）を公開する。
検証者は、公開されたＭ2からハッシュ値ｈ2を計算し、σ’＝（ｓ，ｔ’）とｈ2から、
Verify（ｓ，ｔ’h2 mod Ｎ）＝Verify（ｓ，ｇh1×h2×h3×h4 mod Ｎ）
とすることで検証を行う。
【００２８】
このようにＲＳＡアキュムレータを使用した削除用署名への重畳により、墨塗り署名で問題となっていた墨塗り時のハッシュ値保持を大幅に削減することができる。
ここで、SignとVerifyは任意の署名アルゴリズムを利用できる。例えば、ＲＳＡ署名を用いる場合は、ＲＳＡ署名のパラメータ（公開鍵や秘密鍵、証明書等）以外に、ＲＳＡアキュムレータのパラメータ（ｇ，Ｎ）が必要となる。
そこで、署名アルゴリズムにＳｃｈｎｏｒｒ署名をベースとして、ＲＳＡアキュムレータまでを組み合わせた抽出署名方式を構成する。この方式を用いれば、別途ＲＳＡアキュムレータ用のパラメータを管理することなく、通常のＲＳＡ暗号のＰＫＩ証明書を利用することが可能になる。
【００２９】
［ＲＳＡ仮定上でのＳｃｈｎｏｒｒ署名の定義］
Ｓｃｈｎｏｒｒ署名方式を改良し、署名情報と抽出情報共に重畳可能な署名方式を実現する。
まず、Ｓｃｈｎｏｒｒ署名をＲＳＡ仮定の基で定義する。Ｓｃｈｎｏｒｒ署名は、公開する共通パラメータとして素数ｐとその生成元ｇ、および生成元の位数ｑを使用する。本改良では、素数ｐの代わりに、ＲＳＡ暗号で用いられるように二つの素数ｐ，ｑの積であるＮを使用する。そして、Ｎと互いに素な元ｇ、および、元ｇの位数φ＝ＬＣＭ（ｐ−１)(ｑ−１)を使用する。ここで、Ｓｃｈｎｏｒｒ署名と異なり、Ｎおよびｇは共通パラメータではなく、署名者の公開鍵とする。またφは署名者の秘密鍵のひとつとする。
次にＳｃｈｎｏｒｒ署名と同様に、署名者の（ｓｋ，ｐｋ）を定義する。（ｓｋ，ｐｋ）を、ｐｋ＝ｇsk mod Ｎ（０＜ｓｋ＜φ）と定義し、ｓｋを署名者の秘密鍵のひとつとするが、本発明方式においては、ｐｋは必ずしも公開する必要はない（厳密に言えば、ＲＳＡ仮定上でのＳｃｈｎｏｒｒ署名では公開する必要はあるが、抽出可能な署名方式である本発明では必ずしも公開の必要は無い）。公開する場合は、Ｎおよびｇと共にｐｋは署名者の公開鍵とする。公開しない場合は、署名者の公開鍵はＮおよびｇの二つである。
署名および署名確認はＳｃｈｎｏｒｒ署名と同様である。
署名対象文書Ｍに署名を行う場合、署名者は乱数kを発生させ（秘密とする）、署名σ＝（ｒ，ｓ）＝（ｇk mod Ｎ，ｓｋ×Ｈ（ｒ||Ｍ）＋ｋ mod φ）を計算する。ここで、Ｈ（ｘ）は値ｘに対するハッシュ値、ｘ||ｙは値ｘとｙの連結を表す。署名検証時は、ｇs mod ＮとｐｋH(r||M)×ｒ mod φが同じ値になれば署名有効、異なれば署名無効と判断する。
【００３０】
［ＲＳＡ仮定上のＳｃｈｎｏｒｒ署名を拡張した本発明の方式概要］
上記で定義したＲＳＡ仮定上のＳｃｈｎｏｒｒ署名を拡張して、本発明の署名方式を定義する。
ＲＳＡ仮定上のＳｃｈｎｏｒｒ署名からの拡張部分は、以下の通りである。
（１）署名は（ｒ，ｓ）の２個から（ｒ，ｓ，ｔ）の３個に変更する。
（２）署名対象文書Ｍが１個からそれをｎ個に分割したｎ個の部分文書が対象となる。
（３）署名値ｒは文書ＩＤとして使用する。
（４）部分文書の署名情報は、署名本体となる署名値ｓに重畳する。
（５）削除情報（抽出情報）は、削除用の署名値ｔに重畳する。
【００３１】
図８に、本発明の署名方式の概要を示す。この署名方式を、署名生成時、抽出時、署名確認時に分けて具体的に説明する。
［署名生成時］
以下に図９のフローチャートを参照して署名生成アルゴリズムを示す。
（１）署名者は、ステップＳ１で、文書Ｍをｎ個の部分文書｛ｍi（０≦ｉ≦ｎ−１）｝に分割し、ステップＳ２で、これらの部分文書に部分文書ＩＤ｛ＩＤi（０≦ｉ≦ｎ−１）｝を結合してＩＤ付部分文書Ｍi＝ＩＤi||ｍi（０≦ｉ≦ｎ−１）を生成する。
（２）ステップＳ３で、一時的な秘密鍵ｋをφ未満の乱数で生成する（０＜ｋ＜φ）。
（３）ステップＳ４で、文書ＩＤとして署名値ｒ＝ｇk mod Ｎを計算する。
（４）署名者は、ステップＳ５で、署名値ｒとハッシュ関数により各ＩＤ付部分文書Ｍiのハッシュ値ｈi＝Ｈ（ｒ||Ｍi）を計算する。
（５）ステップＳ６で、署名本体である署名値ｓ＝ｓｋ×Π0≦i≦n-1ｈi＋ｋ mod φを計算する。ここで部分文書の署名情報は署名本体となる署名値ｓにΠ0≦i≦n-1ｈiの形で重畳されていることとなる。
（６）ステップＳ７で、削除情報の格納用に署名値ｔを用意し、その初期値をｔ＝ｐｋとする。
（７）ステップＳ８で、ＩＤ付部分文書集合Ｍi（０≦ｉ≦ｎ−１）｝と署名σ＝（ｒ，ｓ，ｔ）を出力する。
上述した署名値ｓの生成過程を模式的に図示すると、図１０のようになり、署名値ｒおよびｔの生成過程を模式的に図示すると、図１１のようになる。
【００３２】
［抽出時］
次に、図１２のフローチャートを参照して部分文書の抽出アルゴリズムを示す。
（１）抽出者は、まずステップＳ１１で、抽出文書番号集合ξを決定する。ここで、抽出される部分文書Ｍ’はＭ’＝｛Ｍi（ｉ⊂ξ）｝、削除される部分文書Ｍ’’はＭ’’＝｛Ｍi（ｉ？ξ）｝と表現できる。
（２）抽出者は、ステップＳ１２で、署名値ｒを計算し、続くステップＳ１３で、各削除される部分文書｛Ｍi（ｉ？ξ）｝のハッシュ値｛ｈｉ＝Ｈ（ｒ||Ｍi）(ｉ？ξ）｝を計算する。
（３）ステップＳ１４で、削除される部分文書の情報を署名値ｔに重畳し、署名値ｔを次式で表される署名値ｔ’に更新する。
【００３３】
【数１】
0004477678.tif 000002
【００３４】
（４）そして、ステップＳ１５で、抽出されたＩＤ付部分文書集合｛Ｍi（ｉ⊂ξ）｝と更新した署名σ’＝（ｒ，ｓ，ｔ’）を出力する。
上述した署名値ｔの更新過程を模式的に図示すると、図１３のようになる。
【００３５】
［署名検証時］
図１４のフローチャートを参照して部分文書の署名検証アルゴリズムを示す。
（１）確認者は、ステップＳ２１で、抽出されたＩＤ付部分文書｛Ｍi（ｉ⊂ξ）｝と更新した署名σ’＝（ｒ，ｓ，ｔ’）を受け取る。
（２）確認者は、ステップＳ２２で、署名値ｒを計算し、続くステップＳ２３で、抽出されたＩＤ付部分文書｛Ｍ（ｉ⊂ξ）｝のハッシュ値｛ｈi＝Ｈ（ｒ||Ｍi）(ｉ⊂ξ）｝を計算する。
（３）ステップＳ２４で、署名値ｔ’と署名者の公開鍵Ｎとハッシュ値ｈiから、次式で表される右辺の値を計算する。
【００３６】
【数２】
0004477678.tif 000003
【００３７】
（４）ステップＳ２５で、署名値ｓと署名者の公開鍵ｇおよびＮを使用して、左辺＝ｇs mod Ｎの値を計算する。
（５）ステップＳ２６で、右辺値と左辺値を比較し、両者が互いに等しい場合は、ステップＳ２７で、署名有効を出力し、一方、互いに異なる場合は、ステップＳ２８で、署名無効を出力する。
上述した右辺と左辺の計算過程を模式的に図示すると、図１５のようになり、右辺と左辺の比較過程を模式的に図示すると、図１６のようになる。
【００３８】
実施の形態１
本発明の署名方式を実現するための署名装置の構成を図１７に示す。この装置は、データ保持部と演算部からなる。データ保持部は、部分文書保持部１１、ハッシュ値保持部１２、パラメータ保持部１３、署名データ保持部１４、署名検証データ保持部１５で構成される。パラメータ保持部１３は秘密情報保持部と公開情報保持部からなり、秘密情報保持部はｓｋ，φ，kの３つのパラメータを保持する。公開情報保持部はＮ，ｇ，ｐｋの３つのパラメータを保持する。署名データ保持部１４は３つの署名値ｒ，ｓ，ｔを保持する。署名検証データ保持部１５は左辺と右辺の２つの値を保持する。
演算部は、乱数生成部２１、ハッシュ計算部２２、冪乗剰余計算部２３、部分ＩＤ付与部２４、比較部２５、出力部２６、入力部２７からなる。冪乗剰余計算部２３は内部に乗算剰余計算部を保持し、乗算剰余演算のみの実行も可能である。
【００３９】
そして、部分文書保持部１１、ハッシュ値保持部１２、パラメータ保持部１３、署名データ保持部１４、乱数生成部２１、ハッシュ計算部２２、冪乗剰余計算部２３、部分ＩＤ付与部２４によりこの発明の署名生成部が形成されている。また、部分文書保持部１１、ハッシュ値保持部１２、パラメータ保持部１３、署名データ保持部１４、ハッシュ計算部２２、冪乗剰余計算部２３によりこの発明の署名更新部が形成されている。さらに、部分文書保持部１１、ハッシュ値保持部１２、パラメータ保持部１３、署名データ保持部１４、署名検証データ保持部１５、ハッシュ計算部２２、冪乗剰余計算部２３、比較部２５によりこの発明の署名検証部が形成されている。
【００４０】
まず、署名発行処理について説明する。署名者は署名者の秘密情報ｓｋ，φおよび公開情報Ｎ，ｇ，ｐｋを入力部２７から入力してパラメータ保持部１３に保存する。また、署名対象データである部分文書ｍ1〜ｍn（図１０ではｍ4）を入力部２７から入力して部分文書保持部１１に保存する。次に、乱数生成部２１にパラメータφを入力して０より大きくかつφ未満の乱数ｋを生成し、その値をパラメータ保持部１３に保存する。そして、パラメータｇ，ｋ，Ｎを冪乗剰余計算部２３に入力し、冪乗剰余計算ｒ＝ｇk mod Ｎを計算し、その結果を署名データ保持部１４のｒに保存する（図１１）。次に、パラメータｐｋを署名データ保持部１４のtにコピーする（図１１）。さらに、部分文書保持部１１の各部分文書ｍiを部分ＩＤ付与部２４に入力し、部分文書ｍiにＩＤを付与してＩＤ付部分文書Ｍiとし、部分文書保持部１１に保存する（ｍiに上書きする）。この操作を全ての部分文書に対して実施する。
【００４１】
次に、ＩＤ付部分文書Ｍiおよび署名ｒをハッシュ計算部２２に入力し、ＩＤ付部分文書Ｍiと署名ｒを結合したものに対するハッシュ値ｈiを計算し、ハッシュ値保持部１２に保存する。この動作を全てのＩＤ付部分文書Ｍiに対して実施する。次に、パラメータｓｋ，ｋ，φを冪乗剰余計算部２３に入力し、各ハッシュ値ｈiを順次入力して行き、署名ｓ＝ｓｋ×Πｈi＋ｋ mod φを計算する。ここで、この処理は、最初にｓｋとｈ0の乗算剰余を行い、その結果とｈ1を乗算剰余し、・・・という順で計算を行う構成が考えられる。そして、署名ｓを署名データ保持部１４の「ｓ」に保存する（図１０）。最後に、出力部２６より署名値（ｒ，ｓ，ｔ）とＩＤ付部分文書Ｍ1〜Ｍnを出力する。
【００４２】
次に、抽出処理について説明する。抽出者は、署名者の公開パラメータＮおよびｇを入力部２７から入力してパラメータ保持部１３に保持する。また、署名者の署名のうちｒ，ｔを入力して署名データ保持部１４に保存すると共に、削除するＩＤ付部分文書を入力部２７から入力して部分文書保持部１１に保存する。その後、ＩＤ付部分文書Ｍiと署名値ｒをハッシュ計算部２２に入力し、ＩＤ付部分文書Ｍiと署名ｒを結合したものに対するハッシュ値ｈiを計算し、ハッシュ値保持部１２に保存する。この操作を削除する部分文書全てに対して実施する。
【００４３】
次に、署名ｔおよびパラメータＮを冪乗剰余計算部２３に入力し、順にハッシュ値ｈiを入力していくことで、更新した署名ｔ’＝ｔΠhi mod Ｎを計算する。ここで、この処理は、最初にtのｈx1乗を計算し、その結果のｈx2乗を計算し、・・・という順で計算を行う構成が考えられる。ここでｘ１，ｘ２，・・・は削除するＩＤ付部分文書に対するハッシュ値を示すものとする。そして、更新したｔ’を署名データ保持部１４のｔに保存し、出力部２６からｔ’を出力する。なお、入力で署名（ｒ，ｓ，ｔ）全てを入力し、出力で更新したｔ’を含む全ての署名（ｒ，ｓ，ｔ’）を出力しても良い。
【００４４】
署名検証処理について説明する。検証者は、署名者の公開パラメータＮおよびｇを入力部２７から入力してパラメータ保持部１３に保持する。また、抽出者により更新された署名ｒ，ｓ，ｔ’を入力部２７から入力して署名データ保持部１４に保存すると共に、抽出者が公開した抽出されたＩＤ付部分文書を入力部２７から入力して部分文書保持部１１に保存する。その後、ＩＤ付部分文書Ｍiと署名値ｒをハッシュ計算部２２に入力し、ＩＤ付部分文書ｍiと署名ｒを結合したものに対するハッシュ値ｈiを計算してハッシュ値保持部１２に保存する。
【００４５】
そして、署名ｒ，ｔ’，パラメータＮを冪乗剰余計算部２３に入力し、順にハッシュ値ｈiを入力していくことで、更新した署名の「右辺」＝ｔ’Πhi ｒ mod Ｎを計算する。このとき、最初にｔのｈy1乗を計算し、その結果のｈy2乗を計算し、・・・という順で計算を行い、最後にｒと乗算剰余を行う構成が考えられる。ここでｙ１，ｙ２，・・・は抽出されたＩＤ付部分文書に対するハッシュ値を示すものとする。計算した「右辺」は署名検証データ保持部１５の「右辺」に保存する（図１５）。
【００４６】
次に、署名ｓとパラメータｇおよびＮを冪乗剰余計算部２３に入力し、「左辺」＝ｇ’ mod Ｎを計算し、結果を署名検証データ保持部１５の「左辺」に保存する（図１５）。最後に、「右辺」と「左辺」を比較部２５に入力して、これらの値の比較を行い、互いに等しい場合は、署名有効を、異なる場合は、署名無効を出力部２６から出力する（図１６）。
【００４７】
実施の形態２
本発明の署名方式と従来の署名方式を、動画の切り出しに適用して比較する。従来方式として、上記の特許文献１に開示されたＳＵＭＩ−４と、その抽出情報の削減法である特願２００７−１２０４８号明細書に記載された方式（以下、動画ＰＩＡＴとする）を使用する。なお、動画への署名方法については、動画ＰＩＡＴで述べられている方式を使用する。
図１８に示すように、動画に対してＳＵＭＩ−４で署名を行う場合、署名時は署名1個を保持するだけである。抽出時は、抽出情報として、削除した動画フレームの数だけハッシュ値を保持する必要がある。動画ＰＩＡＴでは、この抽出情報であるハッシュ値を二分木で管理することにより、保持しなければならないハッシュ値の数を削減している。
【００４８】
一方、本発明の署名方式では、図１９に示すように、署名時は、署名（ｒ，ｓ，ｔ）を保持するだけであり、抽出時も、署名（ｒ，ｓ，ｔ’）を保持するだけでよく、抽出情報は不要である。
例えば、秒間３０フレームでＴＶ１時間を録画し、そのうち３０分を抽出、フレームごとに抽出できるよう署名を行う場合を考える。全フレームは１０８０００であり、抽出するのは５４０００フレームである。この場合、各方式で保持するデータ量を以下の表１に示す。
【００４９】
【表１】
0004477678.tif 000004
【００５０】
このように、本発明の署名方式では、抽出時のデータ量を大幅に削減することができる。また、抽出箇所は抽出個数によって、データ量が変化しないため、署名情報（抽出情報を含む）の管理が他の方式と比較して極めて容易である。
【００５１】
実施の形態３
本発明の署名方式における署名生成アルゴリズムを拡張することで、容易に削除署名を実現することができる。図２０を参照して、削除署名を構成する場合の署名生成アルゴリズムを以下に示す。
（１）署名者は文書Ｍをｎ個の部分文書ｍi（０≦ｉ≦ｎ−１）に分割する。そして、それに部分文書ＩＤ｛ＩＤi（０≦ｉ≦ｎ−１）｝を結合して、ＩＤ付部分文書Ｍi＝ＩＤi||ｍi（０≦ｉ≦ｎ−１）を生成する。
（２）一時的な秘密鍵ｋをφ未満の乱数で生成する（０＜ｋ＜φ）。
（３）マスク値ｚを乱数で生成する（０＜ｚ＜φ）。
（４）文書ＩＤとして署名値ｒ＝ｇk mod Ｎを計算する。
【００５２】
（５）署名者は、署名値ｒとハッシュ関数により各ＩＤ付部分文書Ｍiのハッシュ値ｈiｉ＝Ｈ（ｒ||Ｍi）を計算する。
（６）署名本体である署名値ｓ＝ｚ×ｓｋ×Π0≦i≦n-1ｈi＋ｋ mod φを計算する。ここで部分文書の署名情報は署名値ｓにΠ0≦i≦n-1ｈiの形で重畳されていることとなる。
（７）削除情報の格納用に署名値tを用意し、その初期値をｔ＝ｐｋzとする。
（８）ＩＤ付部分文書集合｛Ｍi（０≦ｉ≦ｎ−１）｝と署名σ＝（ｒ，ｓ，ｔ）を出力する。
【００５３】
ここで部分文書ＩＤiは、シーケンシャルではなく、昇順または降順の乱数とする。
署名生成アルゴリズムを上記のように設定すると、抽出を行った場合に、更新されたｔから元の文書や部分文書ＩＤの情報を求めることはできないので、削除署名を構成できたことになる。
【００５４】
実施の形態４
本発明の署名方式は、墨塗り署名との互換性を持つ。本発明の署名方式で、抽出時に削除するＩＤ付部分文書の情報を署名ｔに重畳する代わりに、削除するＩＤ付部分文書のハッシュ値を公開することにより、墨塗り署名と抽出署名の共存が可能となる。また、実施例３に示したように、本発明の署名方式により削除署名を構成した場合は、削除署名と墨塗り署名の両立も可能である。
【００５５】
実施の形態５
本発明の署名方式は、ＲＳＡ仮定上のＳｃｈｎｏｒｒ署名の拡張であり、署名者の秘密情報としてｓｋ，φ、公開情報としてＮ，ｇ，（ｐｋ）を持たなければならない。現状のＰＫＩではＲＳＡかＤＳＡをサポートしているものがほとんどであり、今すぐに本発明の署名方式を現状のＰＫＩで使用することは困難である。しかし、現状のＰＫＩの情報を本方式のパラメータに変換することにより、現状のＰＫＩを利用して本発明の署名方式を使用することが可能となる。
【００５６】
現状のＰＫＩにおけるＲＳＡ暗号の公開情報は法Ｎと公開鍵ｅである。また、秘密情報は、秘密鍵ｄ、法Ｎを構成する素数ｐ，ｑ（Ｎ＝ｐ×ｑ）、高速演算のためのパラメータｄp＝ｄ mod （ｐ−１）、ｄq＝ｄ mod （ｑ−１）、ｑi＝ｑ-1 mod ｐである。ここで任意のデータＤに対して、Ｄed≡Ｄ mod Ｎが成り立つ。
ＲＳＡ暗号のパラメータを本発明の署名方式で利用できるように変換する。本発明の署名方式はＲＳＡ仮定上の署名方式であるので、ＲＳＡのＮはそのまま利用可能である。また秘密情報φはｇの位数であるが、φ＝ＬＣＭ（ｐ−１）(ｑ−１)で定義される値のため、現状のＲＳＡのパラメータｐ，ｑから計算可能である。そのため、ｓｋとｇおよびｐｋが、ＲＳＡのパラメータから変換できれば良い。
【００５７】
本発明の署名方式におけるｓｋは、０＜ｓｋ＜φの任意の値である。またｇは生成元であるので、Ｎと互いに素な数（つまりｐ，ｑ以外）であれば任意に選択できる。ｐｋはｐｋ＝ｇsk mod Ｎの関係を満たせばよい。一方、ＲＳＡパラメータｅとｄはｅ×ｄ≡１ mod φ（つまり任意のデータＤに対してＤed≡Ｄ mod Ｎ）の関係がある。ＲＳＡと本発明の署名方式の秘密鍵と公開鍵を同じ値とする（つまりｓｋ＝ｄ，ｐｋ＝ｅ）と、ｐｋ＝ｇsk mod Ｎからｅ＝ｇd mod Ｎ、つまりｇ＝ｅe mod Ｎが導出される。
以上のことから、ｓｋ＝ｄ、ｐｋ＝ｅ、Ｎ＝Ｎ、φ＝ＬＣＭ（ｐ−１）(ｑ−１)、ｇ＝ｅe mod Ｎを用いることで、現状のＰＫＩのＲＳＡパラメータを利用して、本発明の署名方式を使用することが可能となる。
【００５８】
本発明の署名方式によれば、署名時も抽出時も小さなデータ量で抽出部分の完全性が保証される抽出署名を実現することができる。部分文書数や抽出文書数によらず署名量は３個と一定でよい。そのため、署名時に文書を最小単位（例えばバイト単位）に分割して署名を行っておけば、任意のサイズで文書の抽出が可能になる。
例えば、部分文書１００個から５０個の部分文書を抽出する場合、従来の墨塗り署名で実現する場合には、署名時のデータ量は１０１個、抽出時のデータは１０１個であり、従来の削除署名で実現する場合には、署名時のデータは２０１個、抽出時のデータは１０１個である。これに対して本発明の署名方式では、署名時のデータが１０３個、抽出時のデータが５３個と、従来の方式に比べて１／２程度に削減できる。これは、部分文書数が増大したり、抽出部分文書数が減少したりすると、一層効果が顕著になる。
【００５９】
なお、上記の実施の形態で図示したフローチャートやステップに示された各動作をコンピュータにより実行させるプログラムを提供することにより、本発明の署名プログラムを提供することができる。これらプログラムはコンピュータにより読取可能な媒体に記録されてコンピュータにより実行させることができる。コンピュータは、パーソナルコンピュータのようなホスト装置、試験装置のコントローラ、記憶装置のＭＰＵやＣＰＵのようなコントローラなどを含む。ここで、コンピュータにより読取可能な媒体としては、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【００６０】
以上、本発明の実施の形態によれば、以下の付記で示す技術的思想が開示されている。
（付記１）  コンピュータが実行する電子署名方法であって、
前記コンピュータが、
対象となる電子文書を複数に分割した文書である部分文書の入力を入力部より受け付け、部分文書保持部に保持し、
前記入力された部分文書ごとに各部分文書の署名情報をそれぞれ計算し、該計算した各部分文書の署名情報を重畳した計算結果である前記対象となる電子文書の署名本体の署名値ｓと、部分文書を削除する場合の署名として用いる削除用の署名の初期値である署名値ｔとの２値の組からなる署名（ｓ，ｔ）を生成して署名データ保持部に保持し、
前記分割した複数の部分文書のうちいずれかの部分文書を前記部分文書保持部から抽出する場合に、
抽出する部分文書以外の削除する部分文書の署名情報をそれぞれ計算し、該計算した各部分文書の署名情報を削除用の署名値ｔに重畳して新たな署名値ｔ’を計算し、該署名値ｔ’により、前記署名データ保持部に保持されている署名（ｓ、ｔ）を署名（ｓ，ｔ’）に更新する
ことを特徴とする電子署名方法。
（付記２）  付記１に記載の電子署名方法において、
前記抽出された部分文書の署名情報と更新された署名（ｓ，ｔ’）とに基づいて署名の検証を行う電子署名方法。
（付記３）  付記１に記載の電子署名方法において、
さらに、対象となる電子文書の文書ＩＤとして用いる署名値ｒを用い、署名本体となる署名値ｓと削除用の署名の初期値である署名値ｔとの３値の組からなる署名（ｒ，ｓ，ｔ）を生成して署名データ保持部に保持し、
前記分割した複数の部分文書のうちいずれかの部分文書を前記部分文書保持部から抽出する場合には、前記署名データ保持部に保持されている署名（ｒ、ｓ、ｔ）を署名（ｒ，ｓ，ｔ’）に更新する
ことを特徴とする電子署名方法。
（付記４）  付記３に記載の電子署名方法において、
抽出された部分文書の署名情報と更新された署名（ｒ，ｓ，ｔ２）とに基づいて署名の検証を行う電子署名方法。
（付記５）  付記３または付記４に記載の電子署名方法において、
文書ＩＤとして用いる署名値ｒは、署名者の公開鍵と秘密鍵から算出される電子署名方法。
（付記６）  付記３に記載の電子署名方法において、
秘密鍵は、署名者により発生された乱数ｋからなる電子署名方法。
（付記７）  付記６に記載の電子署名方法において、
二つの素数ｐ，ｑの積であるＮと、Ｎと互いに素な元ｇを署名者の公開鍵とし、元ｇの位数φ＝ＬＣＭ（ｐ−１)(ｑ−１)未満の乱数ｋを秘密鍵として、署名値ｒ＝ｇk mod Ｎが算出される電子署名方法。
（付記８）  付記７に記載の電子署名方法において、
署名値ｔ’と公開鍵Ｎと抽出されたＩＤ付部分文書のハッシュ値ｈiから算出される右辺＝ｔ’Πhi ｒ mod Ｎの値と、署名値ｓと公開鍵ｇおよびＮから算出される左辺＝ｇs mod Ｎの値を比較することにより署名の検証を行う電子署名方法。
（付記９）  付記８に記載の電子署名方法において、
右辺の値と左辺の値が互いに等しいときに署名有効、異なるときに署名無効を出力する電子署名方法。
（付記１０）  付記１乃至付記９のいずれかに記載の電子署名方法において、
乱数で生成されたマスク値ｚを用いて署名本体となる署名値ｓを算出することにより削除署名を実現する電子署名方法。
（付記１１）  付記１乃至付記９のいずれかに記載の電子署名方法において、
部分文書の抽出時に削除する部分文書の削除情報を削除用の署名値ｔに重畳する代わりに、削除する部分文書のハッシュ値を公開することにより墨塗り署名を実現する電子署名方法。
（付記１２）  コンピュータに電子署名処理を実行させる電子署名プログラムであって、
前記コンピュータに、
対象となる電子文書を複数に分割した文書である部分文書の入力を入力部より受け付け、部分文書保持部に保存させ、
前記入力された部分文書ごとに各部分文書の署名情報をそれぞれ計算させ、該計算させた各部分文書の署名情報を重畳した計算結果である前記対象となる電子文書の署名本体の署名値ｓと、部分文書を削除する場合の署名として用いる削除用の署名の初期値である署名値ｔとの２値の組からなる署名（ｓ，ｔ）を生成して署名データ保持部に保持させ、
前記分割した複数の部分文書のうちいずれかの部分文書を前記部分文書保持部から抽出する場合に、
抽出する部分文書以外の削除する部分文書の署名情報をそれぞれ計算させ、該計算させた各部分文書の署名情報を削除用の署名値ｔに重畳して新たな署名値ｔ’を計算させ、該署名値ｔ’により、前記署名データ保持部に保持されている署名（ｓ、ｔ）を署名（ｓ，ｔ’）に更新させる
ことを特徴とする電子署名プログラム。
（付記１３）  対象となる電子文書を複数に分割した文書である部分文書の入力を入力部より受け付け、部分文書保持部に保持する分割手段と、
前記入力された部分文書ごとに各部分文書の署名情報をそれぞれ計算し、該計算した各部分文書の署名情報を重畳した計算結果である前記対象となる電子文書の署名本体の署名値ｓと、部分文書を削除する場合の署名として用いる削除用の署名の初期値である署名値ｔとの２値の組からなる署名（ｓ，ｔ）を生成して署名データ保持部に保持する署名生成手段と、
前記分割手段によって前記分割した複数の部分文書のうちいずれかの部分文書を前記部分文書保持部から抽出する場合に、
抽出する部分文書以外の削除する部分文書の署名情報をそれぞれ計算し、該計算した各部分文書の署名情報を削除用の署名値ｔに重畳して新たな署名値ｔ’を計算し、該署名値ｔ’により、前記署名データ保持部に保持されている署名（ｓ、ｔ）を署名（ｓ，ｔ’）に更新する署名更新手段と、
を有することを特徴とする電子署名装置。
【図面の簡単な説明】
【００６１】
【図１】抽出署名の概念を模式的に示す図である。
【図２】従来の墨塗り署名方式の問題点を示す図である。
【図３】従来の削除署名方式の問題点を示す図である。
【図４】通常の電子署名の概念を模式的に示す図である。
【図５】アグリゲート署名の概念を模式的に示す図である。
【図６】Ｓｃｈｎｏｒｒ署名の概念を模式的に示す図である。
【図７】本発明の署名方式の概念を示す図である。
【図８】本発明の署名方式の概要を示す図である。
【図９】本発明における署名生成アルゴリズムを示すフローチャートである。
【図１０】署名値ｓの生成過程を模式的に示す図である。
【図１１】署名値ｒおよびｔの生成過程を模式的に示す図である。
【図１２】本発明における抽出アルゴリズムを示すフローチャートである。
【図１３】署名値ｔの更新過程を模式的に示す図である。
【図１４】本発明における署名確認アルゴリズムを示すフローチャートである。
【図１５】右辺と左辺の計算過程を模式的に示す図である。
【図１６】右辺と左辺の比較過程を模式的に示す図である。
【図１７】本発明の署名方式を実現するための署名装置の構成を示すブロック図である。
【図１８】従来の署名方式を動画の切り出しに適用した様子を示す図である。
【図１９】本発明の署名方式を動画の切り出しに適用した様子を示す図である。
【図２０】削除署名を構成する場合の本発明の署名方式の概要を示す図である。
【符号の説明】
【００６２】
１１  部分文書保持部、１２  ハッシュ値保持部、１３  パラメータ保持部、１４  署名データ保持部、１５  署名検証データ保持部、２１  乱数生成部、２２  ハッシュ計算部、２３  冪乗剰余計算部、２４  部分ＩＤ付与部、２５  比較部、２６  出力部、２７  入力部。
【図１】
0004477678.tif 000005
【図２】
0004477678.tif 000006
【図３】
0004477678.tif 000007
【図４】
0004477678.tif 000008
【図５】
0004477678.tif 000009
【図６】
0004477678.tif 000010
【図７】
0004477678.tif 000011
【図８】
0004477678.tif 000012
【図９】
0004477678.tif 000013
【図１０】
0004477678.tif 000014
【図１１】
0004477678.tif 000015
【図１２】
0004477678.tif 000016
【図１３】
0004477678.tif 000017
【図１４】
0004477678.tif 000018
【図１５】
0004477678.tif 000019
【図１６】
0004477678.tif 000020
【図１７】
0004477678.tif 000021
【図１８】
0004477678.tif 000022
【図１９】
0004477678.tif 000023
【図２０】
0004477678.tif 000024