(57)【要約】【課題】署名時および抽出時のデータ量を削減しながらも電子文書の完全性を保証することができる電子署名方法を提供する。【解決手段】ハッシュ関数Ｇを用い、各部分文書ｍｉを用いて得られるハッシュ値であるＧｉを生成し、前記電子文書に対する署名となる電子署名σ＝ｖΠ1/GiGiを生成し、ハッシュ関数Ｇと同一又は異なるハッシュ関数Ｈを用いて、電子文書の部分文書の改訂状態に対応して電子署名σを改訂し、検証時においては、ｖｅｒｉｆｙσを部分文書の改訂状態に基づいて改訂し、σとｖｅｒｉｆｙσを比較して検証を行う。【選択図】図９
2010164874.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが実行する電子署名方法であって、
前記コンピュータが、
整数ｖを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書（ｍｉ）に分割し、
ハッシュ関数Ｇを用い、各部分文書ｍｉを用いて得られるハッシュ値であるＧｉを生成し、前記電子文書に対する署名となる電子署名σ＝ｖΠ1/GiGiを生成し、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で２度累乗し（σ→σGiGi）、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い（σ→σGi）、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Ｇｉで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Ｇと同一又は異なるハッシュ関数Ｈを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Ｈｉを累乗し（σ→σHi）、
部分文書の墨塗りを禁止する場合は、電子署名シグマに墨塗りを禁止する部分文書を用いて得られるハッシュ値Ｈｉで累乗し（σ→σHi）、
電子署名σを更新する
ことを特徴とする電子署名方法。
【請求項２】
請求項１に記載の電子署名方法において、
前記部分文書の状態が墨塗り可能で削除可能な状態において、前記電子署名σ、およびハッシュ関数がとられる部分文書をｄｉとした場合に、
前記部分文書を墨塗り禁止で削除可能な状態に改訂する場合、前記電子署名シグマはσGiと改訂され、ハッシュ関数がとられる前記部分文書ｄｉの状態はそのままであり、
前記部分文書を墨塗り可能で削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書ｄｉの状態はそのままであり、
前記部分文書を墨塗り禁止で削除禁止な状態に改訂する場合、前記電子署名σはσGiHiと改訂され、ハッシュ関数がとられる前記部分文書ｄｉの状態はそのままであり、
前記部分文書を墨塗り済みで削除可能な状態に改訂する場合、前記電子署名σはそのままであり、ハッシュ関数がとられる前記部分文書ｄｉの状態がＧｉと改訂され、
前記部分文書を墨塗り済みで削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書ｄｉの状態がＧｉと改訂され、
前記部分文書を削除する状態に改訂する場合は、前記電子署名σはσGiGiと改訂され、ハッシュ関数がとられる前記部分文書ｄｉの状態は削除される
電子署名方法。
【請求項３】
請求項２に記載の電子署名方法において、
前記部分文書それぞれに、いずれの状態であるかを判別するための状態設定を行うことを特徴とする電子署名方法。
【請求項４】
請求項１に記載の電子署名方法において、
前記ハッシュ関数が取られる前記部分文書ｄｉは、
ｄｉ＝ＩＤ｜｜ＩＤｉ｜｜ｍｉ
で表され、ここで、｜｜はその前後のデータの連結を表し、ＩＤは全ての部分文書に共通の乱数であり、ＩＤｉは部分文書に固有の乱数であることを特徴とする電子署名方法。
【請求項５】
請求項１に記載の電子署名方法において、
電子署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証するに際して、
前記部分文書ｄｉの状態が墨塗り禁止且つ削除禁止となっている場合、部分文書ｄｉからハッシュ値Ｇｉ及びハッシュ値Ｈｉを計算し、σを該σにＧｉを累乗したもの（σGi）とするとともに、ｖを該ｖにＨｉを累乗したもの（ｖHi）とし、
前記部分文書ｄｉの状態が墨塗り可能且つ削除禁止となっている場合、部分文書ｄｉからハッシュ値Ｇｉ及びハッシュ値Ｈｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とするとともに、ｖを該ｖにＨｉを累乗したもの（ｖHi）とし、
前記部分文書ｄｉの状態が墨塗り済み且つ削除禁止となっている場合、部分文書ｄｉからハッシュ値Ｈｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とするとともに、ｖを該ｖにＨｉを累乗したもの（σHi）とし、
前記部分文書ｄｉの状態が墨塗り禁止且つ削除可能となっている場合、部分文書ｄｉからハッシュ値Ｇｉを計算し、σを該σにＧｉを累乗したもの（σGi）とし、
前記部分文書ｄｉの状態が墨塗り可能且つ削除可能となっている場合、部分文書ｄｉからハッシュ値Ｇｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とし、
前記部分文書ｄｉの状態が墨塗り済み、且つ削除可能となっている場合、部分文書ｄｉからハッシュ値Ｇｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とし、
Ｖｅｒｉｆｙσ=ｖを検証することを特徴とする電子署名方法。
【請求項６】
電子署名方法をコンピュータに実行させる電子署名プログラムであって、
電子文書と、該電子文書に対する署名となる電子署名σ＝ｖΠ1/GiGiとを受信するとともに、前記電子署名σは、電子署名整数ｖを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書（ｍｉ）に分割し、ハッシュ関数Ｇを用い、各部分文書を用いて得られるハッシュ値であるＧｉを生成し、前記電子文書に対する署名となる電子署名σ＝ｖΠ1/GiGiを生成して生成されたものを受信し、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で２度累乗し（σ→σGiGi）、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い（σ→σGi）、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Ｇｉで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Ｇと同一又は異なるハッシュ関数Ｈを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Ｈｉを累乗し（σ→σHi）、
部分文書の墨塗りを禁止する場合は、電子署名シグマに墨塗りを禁止する部分文書を用いて得られるハッシュ値Ｈｉで累乗し（σ→σHi）、
電子署名σを更新する
ことをコンピュータに実行させる電子署名プログラム。
【請求項７】
コンピュータが実行する電子署名装置であって、
電子文書と、該電子文書に対する署名となる電子署名σ＝ｖΠ1/GiGiとを受信するとともに、前記電子署名σは、電子署名整数ｖを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書（ｍｉ）に分割し、ハッシュ関数Ｇを用い、各部分文書ｍｉを用いて得られるハッシュ値であるＧｉを生成し、前記電子文書に対する署名となる電子署名σ＝ｖΠ1/GiGiを生成して生成されたものを受信する受信手段と、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で２度累乗し（σ→σGiGi）、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い（σ→σGi）、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Ｇｉで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Ｇと同一又は異なるハッシュ関数Ｈを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Ｈｉを累乗し（σ→σHi）、
部分文書の墨塗りを禁止する場合は、電子署名σに墨塗りを禁止する部分文書を用いて得られるハッシュ値Ｈｉで累乗し（σ→σHi）、
電子署名σを更新する改訂更新手段と
を備える電子署名装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書の完全性を保証する電子署名方法、電子署名プログラムおよび電子署名装置に関し、特に少ないデータ量で部分文書の必要な設定状態および遷移状態を示すことができる技術に関するものである。
【背景技術】
【０００２】
電子文書の完全性を保証する技術として電子署名がある。電子文書の利用・活用を進める上では、署名された電子文書の一部を取り出したい（抽出したい）というニーズは多い。しかし、一般的な電子署名ではこのような抽出は文書の改ざんに当たるため、完全性の保証が出来ない。これを解決する技術として、墨塗り署名や削除署名という部分抽出可能な電子署名の応用技術がある。これらは、抽出を行っても、その部分の完全性を保証することができる。
【０００３】
ここで、抽出署名を定義する。一般の電子署名は、署名を行う署名者と検証を行う検証者の二者モデルで定義する。これに対し、抽出署名では、図２０に示すように、署名を行う署名者、署名者の署名した文書から一部分を抽出する抽出者、抽出された文書を検証する検証者の三者モデルを使用する。署名者が何らかの方法で文書に署名を行う。そして、その文書および署名を抽出者が受け取る。抽出者は、受け取った文書の一部を抽出し、それに伴う抽出情報の生成や署名のアップデートを行う。そしてその抽出された文書および署名と抽出情報を検証者が受け取る。検証者は抽出された文書および署名と抽出情報から、その抽出文書が、署名者が署名を行った文書の一部であることを検証する。以上の流れを満たすことができる署名方式を抽出署名と定義する。
【０００４】
墨塗り署名や、削除署名を行うには事前に文書を複数の部分文書に分割し、それらの部分文書に対して署名処理または署名処理の一部を行う。従来の墨塗り署名、削除署名では、署名時に署名の情報が部分文書の数に比例して膨大になったり、抽出時に抽出する部分文書の数や削除する部分文書の数に比例した抽出情報を持たなければならなかったりした。そのため、大きな文書の一部を抽出するために、大量の署名情報や、大量の抽出情報を持たなければならず、非常に効率が悪かった。
【０００５】
墨塗り署名の代表として、下記の特許文献１に開示された署名方式（以下、この署名方式をＳＵＭＩ−４とする）があげられる。この署名方式では、署名は部分文書の数によらず１つだけであるが、抽出時に削除する部分文書のハッシュ値群を持たなければならならないため、抽出情報が削除部分文書数に比例して増大してしまう。
【０００６】
これを図２１を参照して説明する。署名時に、署名者は文書情報Ｍを部分文書情報ｍ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つの署名とすることが可能となり、署名データ量の削減が可能となる。
【００１２】
現在、アグリゲート署名の構成方法としては、文献 A. Lysyanskaya, et al., "Sequential Aggregate Signatures from Trapdoor Permutations," EUROCRYPT 2004, LNCS 3027, pp. 74-90, 2004 に記載の、ＲＳＡ署名をベースとしたシーケンシャルアグリゲート署名と、文献 D. Boneh, et al., "Aggregate and Verifiably Encrypted Signature from Bilinear Ｍaps," EUROCRYPT 2003, LNCS 2656, pp.416-432, 2003 に記載の、楕円曲線暗号技術の一つであるペアリングをベースとしたジェネラルアグリゲート署名の２つが知られている。上記削除署名で使用されているのはジェネラルアグリゲート署名である。
【００１３】
さらに、ＲＳＡアキュムレータという技術が文献 J. Benaloh, and Ｍ. de Ｍare, "One-way Accumulator ＲＳＡ 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/GiGiを生成し、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で２度累乗し（σ→σGiGi）、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い（σ→σGi）、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Ｇｉで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Ｇと同一又は異なるハッシュ関数Ｈを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Ｈｉを累乗し（σ→σHi）、
部分文書の墨塗りを禁止する場合は、電子署名シグマに墨塗りを禁止する部分文書を用いて得られるハッシュ値Ｈｉで累乗し（σ→σHi）、
電子署名σを更新する。
【００３１】
また、電子署名方法をコンピュータに実行させる電子署名プログラムは、
電子文書と、該電子文書に対する署名となる電子署名σ＝Sig(ｖΠ1/GiGi)とを受信するとともに、前記電子署名σは、電子署名整数ｖを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書（ｍｉ）に分割し、ハッシュ関数Ｇを用い、各部分文書を用いて得られるハッシュ値であるＧｉを生成し、前記電子文書に対する署名となる電子署名σ＝Sig(ｖΠ1/GiGi)を生成して生成されたものを受信し、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で２度累乗し（σ→σGiGi）、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い（σ→σGi）、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Ｇｉで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Ｇと同一又は異なるハッシュ関数Ｈを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Ｈｉを累乗し（σ→σHi）、
部分文書の墨塗りを禁止する場合は、電子署名σに墨塗りを禁止する部分文書を用いて得られるハッシュ値Ｈｉで累乗し（σ→σHi）、
電子署名σを更新することをコンピュータに実行させる。
【００３２】
コンピュータが実行する電子署名装置は、電子文書と、該電子文書に対する署名となる電子署名σ＝ｖΠ1/GiGiとを受信するとともに、前記電子署名σは、電子署名整数ｖを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書（ｍｉ）に分割し、ハッシュ関数Ｇを用い、各部分文書を用いて得られるハッシュ値であるＧｉを生成し、前記電子文書に対する署名となる電子署名σ＝ｖΠ1/GiGiを生成して生成されたものを受信する受信手段と、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で２度累乗し（σ→σGiGi）、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い（σ→σGi）、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Ｇｉで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Ｇと同一又は異なるハッシュ関数Ｈを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Ｈｉを累乗し（σ→σHi）、
部分文書の墨塗りを禁止する場合は、電子署名σに墨塗りを禁止する部分文書を用いて得られるハッシュ値Ｈｉで累乗し（σ→σHi）、
電子署名σを更新する改訂更新手段とを備える。
【発明の効果】
【００３３】
署名時および改訂時のデータ量を削減し、一つの電子署名データを保持して電子文書の完全性を保証することができる電子署名方法、電子署名プログラムおよび電子署名方法を提供することができる。
【図面の簡単な説明】
【００３４】
【図１】実施の形態の全体システム構成図である。
【図２】実施の形態の電子文書管理装置のハードウェア構成を示す説明図である。
【図３】署名処理の電子文書管理装置（電子署名装置）１０１の機能ブロック図である。
【図４】改訂処理の電子文書管理装置（電子署名装置）１０２の機能ブロック図である。
【図５】検証処理の電子文書管理装置（電子署名装置）１０３の機能ブロック図である。
【図６】署名処理の手順を示すフローチャート（その１）である。
【図７】署名処理の手順を示すフローチャート（その２）である。
【図８】改訂処理の手順を示すフローチャート（その１）である。
【図９】改訂処理の手順を示すフローチャート（その２）である。
【図１０】改訂処理の手順を示すフローチャート（その３）である。
【図１１】改訂処理の手順を示すフローチャート（その４）である。
【図１２】改訂処理の手順を示すフローチャート（その５）である。
【図１３】改訂処理の手順を示すフローチャート（その６）である。
【図１４】改訂処理の手順を示すフローチャート（その７）である。
【図１５】改訂処理の手順を示すフローチャート（その８）である。
【図１６】検証処理の手順を示すフローチャート（その１）である。
【図１７】検証処理の手順を示すフローチャート（その２）である。
【図１８】実施の形態により、実現される７状態を示す図である。
【図１９】実施の形態の遷移の状態を示す図である。
【図２０】抽出署名の概念を模式的に示す図である。
【図２１】従来の墨塗り署名方式の問題点を示す図である。
【図２２】従来の削除署名方式の問題点を示す図である。
【図２３】通常の電子署名の概念を模式的に示す図である。
【図２４】アグリゲート署名の概念を模式的に示す図である。
【図２５】従来の部分文書状態および状態遷移を示す図である。
【図２６】従来の部分文書状態が７つ示されない場合の問題点を示す図である。
【図２７】前提技術１の署名方式の概念を示す図である。
【図２８】前提技術２の部分文書状態および状態遷移を示す図である。
【図２９】前提技術２の部分文書状態の表現方式を示す説明図である。
【図３０】実施の形態の概念を示す概念図である。
【発明を実施するための形態】
【００３５】
（前提技術１）
以下、本発明の前提技術に係る署名方式について説明する。
［墨塗り署名へのＲＳＡアキュムレータ導入］
まず、墨塗り署名の処理の一部にＲＳＡアキュムレータを導入する。図２１を使って説明する。図２１の墨塗り署名では、ＩＤ付部分文書のハッシュ値に対して署名しているが、これは、各ＩＤ付部分文書Ｍ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は任意の署名アルゴリズムを利用できる。
【００４１】
このように、前提技術１では、署名を（ｓ、ｔ）の２個持ち、署名ｔは乱数を利用して初期化（ｔ= ｇr）し、署名ｓは署名ｔの初期値に各部分文書のハッシュ値全てを累乗したものに、一般的な電子署名を施したものである（ｓ= Ｓｉｇ(ｔΠhi））。部分文書の削除を行う場合、署名ｔに削除される部分文書ハッシュ値で累乗し（ｔ→ｔhi）、削除する部分文書を消去する（ｍｉ→×）。一方部分文書の墨塗りを行う場合は、部分文書をそのハッシュ値で置き換える（ｍｉ→ｈｉ、ｈｉ＝Ｈ（ｍｉ））ようにしている。
【００４２】
しかし、上述した前提技術１では、後述する図２８の図表６００のうち、ＳＡＤＡ、ＳＤＡ、Ｄの３個の状態とＴ５、Ｔ６、Ｔ１２の３個の状態遷移しか実現できないこととなる。
【００４３】
（前提技術２）
そこで、本発明者らは、前提技術２を提案している。
ここでは、電子文書Ｍを構成する各構成要素は、当該構成要素と当該構成要素に規定されている第１の電子署名と第２の電子署名との組み合わせによって特定される各種の状態を有している。具体的には、隠蔽可能でかつ削除可能な状態、隠蔽禁止でかつ削除可能な状態、隠蔽禁止でかつ削除禁止な状態、隠蔽可能でかつ削除禁止な状態、隠蔽済みでかつ削除禁止な状態、隠蔽済みでかつ削除可能な状態および削除済みの状態のいずれかの状態を有している。
【００４４】
たとえば、ある構成要素が隠蔽可能でかつ削除可能な状態であった場合、改訂者は、この構成要素を任意に隠蔽または削除することができる。ここで、隠蔽とは、たとえば、墨塗り処理などを施すことにより、閲覧者によって認識することができない状態にすることである。削除とは、閲覧者によってその存在を把握することができない状態にすることである。
【００４５】
この前提技術２にかかる電子文書管理装置によれば、電子文書Ｍを、該電子文書Ｍの真正を検証可能に保持しつつ、該電子文書Ｍを構成する構成要素に対して、隠蔽禁止でかつ削除可能な状態に設定する改訂をおこなうことができる。さらに、隠蔽禁止でかつ削除可能な状態に設定された構成要素を、隠蔽禁止でかつ削除禁止な状態、または、削除済みの状態に設定することができる。
【００４６】
ここで、電子文書Ｍを構成する各部分文書の状態および状態遷移について説明する。図２８は、部分文書状態および状態遷移を示す図表である。なお、部分文書とは、上述した電子文書を構成する構成要素に相当する。
【００４７】
図２８において、図表６００には、電子文書Ｍを構成する各部分文書に設定可能な部分文書の状態が表現されている。ここでは、墨塗り可能でかつ削除可能な状態を『ＳＡＤＡ』、墨塗り禁止でかつ削除可能な状態を『ＳＰＤＡ』、墨塗り禁止でかつ削除禁止な状態を『ＳＰＤＰ』、墨塗り可能でかつ削除禁止な状態を『ＳＡＤＰ』、墨塗り済みでかつ削除可能な状態を『ＳＤＡ』、墨塗り済みでかつ削除禁止な状態を『ＳＤＰ』、削除済みの状態を『Ｄ』と表記する。
【００４８】
また、図表６００には、状態間の遷移をあらわす状態遷移として、１２個の状態遷移Ｔ１〜Ｔ１２が表現されている。これら状態遷移Ｔ１〜Ｔ１２は、改訂者によって各部分文書に対する改訂をおこなう際に、当該各部分文書の状態を他の状態に設定することができる状態遷移をあらわしている。
【００４９】
ここで、状態遷移Ｔ１を例に挙げると、墨塗り可能でかつ削除可能な状態である『ＳＡＤＡ』から、墨塗り禁止でかつ削除可能な状態である『ＳＰＤＡ』への遷移をあらわしている。また、状態遷移Ｔ７を例に挙げると、墨塗り禁止でかつ削除可能な状態である『ＳＰＤＡ』から、墨塗り禁止でかつ削除禁止な状態である『ＳＰＤＰ』への遷移をあらわしている。
【００５０】
このように、前提技術２では、複数の構成要素(部分文書)からなり、構成要素ごとに、当該構成要素固有の第１の電子署名および第２の電子署名が規定され、かつ前記各第１の電子署名を集約した集約電子署名が関連付けられている電子文書を取得する。そして、その電子文書のうち隠蔽禁止対象となる構成要素の指定を受け付け、隠蔽禁止対象に指定された構成要素と当該構成要素に規定されている第１の電子署名および第２の電子署名の双方とが存在する場合、当該構成要素が隠蔽可能でかつ削除可能な状態であると判断し、隠蔽可能でかつ削除可能な状態であると判断された場合、前記隠蔽禁止対象となる構成要素に規定されている第２の電子署名を削除する（図２８のＳＡＤＡ → ＳＰＤＡの状態遷移）。
【００５１】
また、電子文書のうち削除禁止対象となる構成要素の指定を受け付け、削除禁止対象に指定された構成要素と当該構成要素に規定されている第１の電子署名とが存在する場合、当該構成要素が削除可能な状態であると判断し、削除可能な状態であると判断された場合、前記削除禁止対象となる構成要素に規定されている第１の電子署名を削除することが可能である(図２８のＳＰＤＡ→ＳＰＤＰの状態遷移)。
【００５２】
また、電子文書のうち削除対象となる構成要素の指定を受け付け、削除対象に指定された構成要素と当該構成要素に規定されている前記第１の電子署名とが存在する場合、当該構成要素が削除可能な状態であると判断し、削除可能な状態であると判断された場合、削除対象となる構成要素に規定されている第１の電子署名を集約電子署名の中から削除するとともに、構成要素および当該構成要素に規定されている第１の電子署名を削除することが可能である(図２８のＳＰＤＡ→Ｄの状態遷移)。
【００５３】
さらに、前提技術２によれば、電子文書を構成する構成要素を、隠蔽可能でかつ削除可能な状態から隠蔽禁止でかつ削除可能な状態に設定することができる。さらに、隠蔽禁止でかつ削除可能な状態に設定されたその構成要素を、隠蔽禁止でかつ削除可能な状態または削除済みの状態に設定することができる。
同様に、図２８に示す構成要素(部分文書)の７状態と１２状態遷移を図２９に示すように、第１の電子署名と第２の電子署名と集約電子署名との状態で表現可能である。
【００５４】
前提技術２によれば、改訂対象となる構成要素が、隠蔽禁止、削除禁止および削除済みのいずれかに改訂された改訂文書を取得し、前記第１の電子署名、前記第２の電子署名および前記集約電子署名に基づいて、前記改訂文書の真正を検証し、その検証結果を出力する。そして、改訂対象に指定された構成要素の状態が隠蔽禁止、削除禁止および削除済みのいずれかの状態に設定された場合であっても、当該改訂対象を含む改訂文書の真正性を検証することができる。
【００５５】
一方、前提技術２によれば、管理するデータ量が多大になる。例えば、１０００ページからなる文書を１ページ毎に上述の状態管理する場合、第１の部分署名を１０００個、第２の部分署名を１０００個、第１の集約電子署名を１個、第２の集約電子署名を１個と、合計２００２個の電子署名情報を保持する必要がある。つまり、部分文書数をn個とすると、署名情報は２ｎ＋２個保持する必要がある。もし、この文書に対して、１文字単位の詳細な制御を実施したい場合、部分文書数は数百倍となり、それに応じて署名情報量も数百倍となってしまう。さらに、このような詳細な制御を行う場合、対象となる部分文書の情報量は小さくなるのに対して、１個当たりの署名情報量は変化しない。そのため、詳細な制御を行う場合、元の文書よりも署名情報量の方が大きくなってしまうという問題もある。
【００５６】
（前提技術３）
そこで、本発明者らはさらに、前提技術３を提案している。
この前提技術３は、対象となる電子文書を複数の部分文書（ｍｉ）に分割し、電子文書に対する署名となる署名ｓと部分文書の改訂用の署名ｔとについて、署名ｔは初期化を行う一方、署名ｓは署名ｔに各部分文書のハッシュ値全てを２度累乗したものに、電子署名を施し（ｓ＝Sig(ｔΠhihi)）、部分文書の改訂時において、部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、署名ｔに削除される部分文書のハッシュ値で２度累乗し（ｔ→ｔhihi）、墨塗り禁止とされている場合は、署名ｔに削除される部分文書のハッシュ値で累乗を行い、ともに、削除する部分文書を消去し、部分文書の墨塗りを行う場合は、部分文書をそのハッシュ値で置き換え（ｍｉ→ｈｉ）、部分文書の削除を禁止する場合は、署名ｔに削除を禁止する部分文書を２度ハッシュ関数にかけた値（ｄｉ = Ｈ（Ｈ（mｉ）））で累乗し（ｔ→ｔdi）、部分文書の墨塗りを禁止する場合は、署名ｔに墨塗りを禁止する部分文書のハッシュ値で累乗し（ｔ→ｔhi）、署名ｔを更新するようにする。
【００５７】
より具体的には、例えば、部分文書の状態が墨塗り可能で削除可能な状態において、改訂用の署名ｔ、および部分文書の状態ｍｉとした場合に、部分文書を墨塗り禁止で削除可能な状態に改訂する場合、署名ｔはｔhiと改訂され、部分文書の状態ｍｉはそのままであり、部分文書を墨塗り可能で削除可能な状態に改訂する場合、署名ｔはｔdiと改訂され、前記部分文書の状態ｍｉはそのままであり、部分文書を墨塗り禁止で削除禁止な状態に改訂する場合、署名ｔはｔhidiと改訂され、部分文書の状態ｍｉはそのままであり、部分文書を墨塗り済みで削除可能な状態に改訂する場合、署名ｔはそのままであり、部分文書の状態ｍｉがｈｉと改訂され、部分文書を墨塗り済みで削除禁止な状態に改訂する場合、署名ｔはｔdiと改訂され、部分文書の状態ｍｉがｈｉと改訂され、部分文書を削除する状態に改訂する場合は、署名ｔはｔhihiと改訂され、部分文書の状態ｍｉは削除されるようにしている。
【００５８】
この場合、部分文書それぞれには、いずれの状態であるかを判別するための状態設定を行っており、検証時には、リカバリー方式を採用し、この状態設定に基づいて部分文書から初期化状態にあるｔを同様に更新してゆき、文書の改訂が正当に行われているか否かを検証する。
【００５９】
図３０に上述した前提技術３の概念を示している。
すなわち、図３０においては、Ｓ１において、対象となる電子文書を複数の部分文書（ｍｉ）に分割し、電子文書に対する署名となる署名ｓと部分文書の改訂用の署名ｔとについて、署名ｔは初期化を行う一方、署名ｓは署名ｔに各部分文書のハッシュ値全てを２度累乗したものに、電子署名を施し（ｓ＝ｔΠhihi）ている。
【００６０】
また、Ｓ２において、部分文書(ｍ３)を削除する場合又は墨塗りされている部分（ハッシュ値に置き換えられているハッシュ値ｈ３）を削除する場合は、墨塗り禁止とされている場合を除き、署名ｔに削除される部分の文書のハッシュ値で２度累乗し（ｔ→ｔ’＝ｔh3h3）、墨塗り禁止とされている場合は、署名ｔに削除される部分文書のハッシュ値で累乗を行い（ｔ→ｔh3）、ともに部分文書(ｍ３)またはハッシュ値（ｈ３）を消去する。
また、Ｓ３において、部分文書（ｍ５）の墨塗りを行う場合は、部分文書をそのハッシュ値で置き換える（ｍ５→ｈ５）。
また、Ｓ４において、部分文書（ｍ４）の削除を禁止する場合は、署名ｔに削除を禁止する部分文書を２度ハッシュ関数にかけた値（ｄｉ = Ｈ（Ｈ（mｉ）））で累乗（ｔ→ｔd4）する。
【００６１】
また、Ｓ５において、部分文書（ｍ６）の墨塗りを禁止する場合は、署名ｔに墨塗りを禁止する部分文書のハッシュ値で累乗する（ｔ→ｔh4）。
このように署名ｔを更新する。
そして、検証時においては、例えば、Ｓ６に示されるようにｖ＝Ｖｅｒｉｆｙ（ｓ）として、削除禁止とされている部分文書についてのｖΠdiの値と、墨塗り禁止とされていない部分文書についてのｔ’ΠhiΠhiの値を比較して、検証を行う。
【００６２】
以上の説明より明らかなように、前提技術３によれば、部分文書を墨塗り禁止でかつ削除可能な状態に設定可能で、かつ署名情報量が部分文書数に比例せず、常に２個（ｓ，ｔ）で実現可能であることより、より柔軟な電子文書の改訂を実現し、ユーザの利便性の向上を図ることができるという効果を奏する。すなわち、前提技術３によれば、２個のデータ（ｓ，ｔ）を保持して、上述の７個の状態と１２個の状態遷移を部分文書数に比例しない署名情報量で実現できる。
【００６３】
しかし、かかる前提技術３においても、２個のデータを保持するため、可能ならば１個のデータにすることができれば、データの保持量を最少とすることが可能である。以下、本発明者らが実現したデータ量の削減について、本発明の実施の形態として説明する。
【００６４】
（実施の形態）
（電子文書管理システム１００のシステム構成）
以下、実施の形態にかかる電子署名装置（電子文書管理システム）のシステム構成について説明する。図１は、この実施の形態にかかる電子文書管理システムのシステム構成図である。
【００６５】
図１において、電子文書管理システム１００は、複数の電子文書管理装置１０１，１０２，１０３（図１では３台）が、インターネット、ＬＡＮ、ＷＡＮなどのネットワーク１１０を介して相互に通信可能に接続されている。
【００６６】
電子文書管理装置１０１は、電子文書Ｍに電子署名を施す署名者が使用するコンピュータ装置である。署名者は、この電子文書管理装置１０１を使用して、真正性を保証するための電子署名を電子文書Ｍに施すことができる。具体的には、署名者の秘密鍵を用いて生成された電子署名を電子文書Ｍに付与する。
【００６７】
この電子文書Ｍは、行政機関から発行される電子戸籍台帳、医療機関から発行される電子カルテおよび教育機関から発行される電子成績表などの秘匿性を有する情報である。また、各市町村の行政機関に対して公開請求することができる公文書などであってもよい。
【００６８】
電子文書管理装置１０２は、電子署名が施された電子文書Ｍを改訂する改訂者が使用するコンピュータ装置である。改訂者は、この電子文書管理装置１０２を使用して、電子文書Ｍを構成する部分文書の状態を変更（改訂）することにより、改訂文書Ｒを作成することができる。このとき電子文書管理装置１０２は部分文書をどのような状態に改訂したかを示す改訂状態を部分文書に対応して付すことができる。
【００６９】
電子文書管理装置１０３は、改訂文書Ｒの真正性を検証する検証者が使用するコンピュータ装置である。検証者は、この電子文書管理装置１０３を利用して、改訂文書Ｒの真正性を検証することができる。このとき、第三者機関から発行される公開鍵を用いて、改訂文書Ｒの真正性を検証する。
【００７０】
なお、署名者、改訂者および検証者が使用するコンピュータ装置を、それぞれ電子文書管理装置１０１，１０２，１０３としたが、これに限らない。たとえば、１台のコンピュータ装置（たとえば、電子文書管理装置１０１）を使用して、署名、改訂および検証を行うこととしてもよい。また、電子文書Ｍの改訂は、複数の改訂者によって追加的に行われることとしてもよい。
【００７１】
ここで、電子文書Ｍの署名、改訂および検証の一連の流れを説明する。まず、電子文書管理装置１０１において、電子文書Ｍに対して、署名者による電子署名が施される。このあと、電子文書管理装置１０２において、電子署名が施された電子文書Ｍに対して、何らかの改訂がおこなわれる。そして、検証者による公開請求などに応じて、改訂文書Ｒが電子文書管理装置１０２から電子文書管理装置１０３に送信され、電子文書管理装置１０３において、改訂文書Ｒの真正性が検証される。
【００７２】
たとえば、電子文書管理装置１０３を利用して、ある市町村の行政機関に設置されている電子文書管理装置１０２に対して公害問題に関する公文書の公開請求をしたとする。その結果、電子文書管理装置１０３のユーザは、公害問題に関する公文書を取得することができ、当該公文書を閲覧することができる。
【００７３】
このとき、行政機関の職員は、電子文書管理装置１０２を利用し公開する公文書に記載されている内容に対して各種属性を設定することができる。たとえば、電子文書管理装置１０１で作成・署名された公文書に対し、公開義務のある大気汚染や水質汚濁の現状については強制開示する文書として設定し、実際に公害による被害を受けた被害者の氏名を墨塗りする文書として設定し、さらに、被害者の住所が記載された箇所については削除する文書として設定することができる。
【００７４】
このように、電子文書管理装置１０３のユーザは、公開する公文書の中の任意の文書に対して各種属性を設定することができる。また、各種属性を設定するなどの改変がおこなわれた公文書の真正性については、たとえば、電子文書管理装置１０３において検証することができ、不正な改変がおこなわれていないか否かを検証することができる。
【００７５】
[電子文書管理装置のハードウェア構成]
まず、この実施の形態にかかる電子文書管理装置１０１，１０２，１０３（以下、単に「電子文書管理装置１０１」とする）のハードウェア構成について説明する。図２は、この発明の実施の形態にかかる電子文書管理装置のハードウェア構成を示す説明図である。
【００７６】
図２において、電子文書管理装置１０１は、コンピュータ本体２１０と、入力装置２２０と、出力装置２３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ，ＷＡＮやインターネットなどのネットワーク１１０に接続可能である。
【００７７】
コンピュータ本体２１０は、ＣＰＵ、メモリ、インターフェースを有する。ＣＰＵは、電子文書管理装置１０１の全体の制御を司る。メモリは、ＲＯＭ、ＲＡＭ、ＨＤ、光ディスク２１１、フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。
【００７８】
また、メモリには各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク２１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク２１１およびフラッシュメモリはコンピュータ本体２１０に対し着脱自在である。インターフェースは、入力装置２２０からの入力、出力装置２３０への出力、ネットワーク１１０に対する送受信の制御を行う。
【００７９】
また、入力装置２２０としては、キーボード２２１、マウス２２２、スキャナ２２３などがある。キーボード２２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式であってもよい。マウス２２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。スキャナ２２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体２１０内のメモリに格納される。なお、スキャナ２２３にＯＣＲ機能を持たせてもよい。
【００８０】
また、出力装置２３０としては、ディスプレイ２３１、スピーカ２３２、プリンタ２３３などがある。ディスプレイ２３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ２３２は、効果音や読み上げ音などの音声を出力する。また、プリンタ２３３は、画像データや文書データを印刷する。
【００８１】
[署名者の電子文書管理装置１０１]
つぎに、実施の形態にかかる署名者の電子文書管理装置１０１の機能的構成について説明する。図３は、この発明の実施の形態にかかる電子文書管理装置の機能的構成を示すブロック図である。図３において、電子文書管理装置１０１は、受信手段を備えた入力部Ｃ０１と、分割部Ｃ０２と、ハッシュ部Ｃ０３と、乱数生成部Ｃ０４と、判定部Ｃ０５と、署名部Ｃ０６と、送信手段を備えた出力部Ｃ０７と、から構成されている。これら各部は、必要に応じてコンピュータ内に設けられた記憶部であるメモリを共用または専用することができる。
【００８２】
これら各機能Ｃ０１〜Ｃ０７は、記憶領域に格納された当該機能に関するプログラムをＣＰＵに実行させることにより、当該機能を実現することができる。また、各機能Ｃ０１〜Ｃ０７からの出力データはメモリ等により構築される記憶領域に保持される。また、図３中矢印で示した接続先の機能的構成は、接続元の機能からの出力データを記憶領域から読み込んで、当該機能に関するプログラムをＣＰＵに実行させる。
【００８３】
まず、入力部Ｃ０１は、入力された電子文書Ｍをうけ、分割部Ｃ０２で複数の部分文書｛ｍｉ｝に分割する。次にハッシュ部Ｃ０３は、各部分文書ごとに、乱数生成部Ｃ０４から全ての部分文書に共通の乱数ＩＤと部分文書に固有の乱数ＩＤｉを受け取り、ｄｉ＝ＩＤ||ＩＤｉ||ｍｉに対して値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）を計算し、判定部Ｃ０５はＧｉが素数であるかを判定し、Ｇｉが素数でなければ、乱数生成部Ｃ０４における部分文書に固有の乱数ＩＤｉに戻る。
【００８４】
ここで記号ｘ||ｙはデータｘとデータｙの連結を表している。また部分文書に固有の乱数ＩＤｉが部分文書の順番に対して昇順（または降順）になっていなければ、乱数生成部Ｃ０４における部分文書に固有の乱数ＩＤｉに戻る。そして、署名部Ｃ０６では、秘密鍵ＳＫを使用して、全ての部分文書に対する署名
σ＝ｖΠ1/GiGi
を計算し、出力部Ｃ０７から文書Ｄ＝｛ｄｉ｝と署名σを出力する。
なお、秘密鍵の生成においては、２つの同じビット長の素数ｐとｑを秘密鍵として生成し、合成数Ｎ＝ｐ×ｑを生成し、１以上Ｎ未満の整数ｖを公開鍵として生成している。
【００８５】
ここで、電子文書Ｍは、コンピュータ上で扱われる文書の総称であり、文書作成アプリケーションなどを用いて作成された電子データである。ここで、電子署名とは、電子文書の正当性を認証するために当該電子文書に付与される署名情報である。すなわち、電子署名は、物理的な署名（印鑑など）と同様に、電子文書の正しい作成者と当該電子文書の真正性（改ざんが行われていないこと）を証明するためのものである。また、公開鍵暗号の原理などを利用することにより、任意のユーザによって電子署名の正当性を検証可能にすることができる。
【００８６】
この電子文書Ｍを構成する各構成要素は、署名σと部分文書の状態により特定される各種の状態を有している。具体的には、隠蔽可能でかつ削除可能な状態（ＳＡＤＡ）、隠蔽禁止でかつ削除可能な状態（ＳＰＤＡ）、隠蔽禁止でかつ削除禁止な状態（ＳＰＤＰ）、隠蔽可能でかつ削除禁止な状態（ＳＡＤＰ）、隠蔽済みでかつ削除禁止な状態（ＳＤＰ）、隠蔽済みでかつ削除可能な状態（ＳＤＡ）および削除済み（Ｄ）の状態のいずれかの状態を有している。
【００８７】
たとえば、ある構成要素が隠蔽可能でかつ削除可能（ＳＡＤＡ）な状態であった場合、改訂者は、この構成要素を任意に隠蔽または削除することができる。ここで、隠蔽とは、たとえば、墨塗り処理などを施すことにより、閲覧者によって認識することができない状態にすることである。削除とは、閲覧者によってその存在を把握することができない状態にすることである。
【００８８】
電子文書管理装置１０１で処理された段階では、全て隠蔽可能で且つ削除可能（ＳＡＤＡ）な状態である。なお、この電子文書Ｍは、電子文書管理装置１０１において作成されてもよく、また、他のコンピュータ装置において作成されてもよい。他のコンピュータ装置において電子文書Ｍが作成された場合、入力部Ｃ０１は、インターネットなどのネットワーク１１０を介して他のコンピュータ装置から電子文書Ｍを取得することとなる。
【００８９】
[改訂者の電子文書管理装置１０２]
つぎに、実施の形態にかかる改訂者の電子文書管理装置１０２の機能的構成について説明する。図４は、電子文書管理装置１０２の機能的構成を示すブロック図である。図４において、電子文書管理装置１０２は、受信手段を構成する入力部Ｄ０１と、分割部Ｄ０２と、指定部Ｄ０３と、判断部Ｄ０４と、改訂部Ｄ０５と、設定部Ｄ０６と、送信手段を構成する出力部Ｄ０７と、ハッシュ部Ｄ０８と、重畳部Ｄ０９と、から構成されている。
【００９０】
これら各機能Ｄ０１〜Ｄ０９は、記憶領域に格納された当該機能に関するプログラムをＣＰＵに実行させることにより、当該機能を実現することができる。また、各機能Ｄ０１〜Ｄ０７からの出力データは記憶領域に保持される。また、図４中矢印で示した接続先の機能的構成は、接続元の機能からの出力データを記憶領域から読み込んで、当該機能に関するプログラムをＣＰＵに実行させる。
【００９１】
まず、入力部Ｄ０１は、１０１で署名処理された電子文書Ｄ、署名σを受信し、分割部Ｄ０２で文書を複数の部分文書｛ｄｉ｝に分割する。
【００９２】
指定手段を構成する指定部Ｄ０３は、入力部Ｄ０１によって取得され、分割部Ｄ０２で分割された部分文書ｄｉのうち隠蔽禁止対象となる構成要素の指定を受け付ける機能を有する。具体的には、たとえば、図２に示したキーボード２２１やマウス２２２などの入力装置２２０を改訂者が操作することによって、隠蔽禁止対象となる構成要素の指定を受け付ける。
【００９３】
判断部Ｄ０４は、指定部Ｄ０３によって隠蔽禁止対象に指定された部分文書の状態から、当該部分文書が隠蔽可能か隠蔽禁止か、あるいは削除可能か削除禁止かという状態を判断する機能を有する。この判断を行うためには、何らかの状態を表す情報を別途持つこともできるし、部分文書の署名検証機能により、判断を行っても良い。
【００９４】
改訂部Ｄ０５は、判断部Ｄ０４によって隠蔽可能であると判断された場合、隠蔽禁止対象となる部分文書に対して値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）をハッシュ部Ｄ０８で計算し、入力部Ｄ０１に入力された署名σに重畳部Ｄ０９を使用して重畳する（σ←σGi）。
【００９５】
設定部Ｄ０６は、改訂部Ｄ０５によって改訂された結果、隠蔽禁止対象となる部分文書を、隠蔽可能から隠蔽禁止な状態に設定する機能を有する。すなわち、隠蔽禁止対象となる隠蔽可能でかつ削除可能な状態（ＳＡＤＡ）の部分文書の情報で署名σが改訂された場合、当該部分文書を隠蔽禁止でかつ削除可能（ＳＰＤＡ）な状態に設定する。この結果、隠蔽禁止対象に指定された隠蔽可能でかつ削除可能な状態（ＳＡＤＡ）の構成要素は、削除することはできるが隠蔽することができない隠蔽禁止でかつ削除可能な状態（ＳＰＤＡ）となる。また、隠蔽禁止対象となる隠蔽可能でかつ削除禁止な状態（ＳＡＤＰ）の部分文書の情報で署名σが改訂された場合、当該部分文書を隠蔽禁止でかつ削除禁止（ＳＰＤＰ）な状態に設定する。この結果、隠蔽禁止対象に指定された隠蔽可能でかつ削除禁止な状態（ＳＡＤＰ）の構成要素は、隠蔽することも削除することもできない隠蔽禁止でかつ削除禁止な状態（ＳＰＤＰ）となる。
【００９６】
また、指定部Ｄ０３は、部分文書ｄｉのうち隠蔽対象となる部分文書の指定を受け付けることとしてもよい。改訂部Ｄ０５は、判断部Ｄ０４によって隠蔽可能な状態であると判断された場合、隠蔽対象となる部分文書に対して値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮをハッシュ部Ｄ０８を使用して計算し、部分文書ｄｉを値Ｇｉによって置き換える。この結果、隠蔽対象に指定された隠蔽可能な状態の部分文書は、隠蔽された隠蔽済みの状態となる。
【００９７】
指定部Ｄ０３は、部分文書ｄｉのうち削除禁止対象となる部分文書の指定を受け付けることとしてもよい。改訂部Ｄ０５は、判断部Ｄ０４によって削除可能な状態であると判断された場合、削除禁止対象となる部分文書に対するハッシュ値Ｈｉ＝Ｈ（Ｇｉ）＝Ｈ（ＩＤ||ＩＤｉ||ＧＮ（ｄｉ））をハッシュ部Ｄ０８を二回使用して計算し、入力部Ｄ０１に入力された署名σに重畳部Ｄ０９を使用して重畳する（σ←σHi）。この結果、削除禁止対象に指定された削除可能な状態の部分文書は、削除することができない削除禁止の状態となる。
【００９８】
改訂部Ｄ０５は、判断部Ｄ０４によって削除可能でかつ隠蔽可能な状態（ＳＡＤＡ）であると判断された場合、削除対象となる部分文書に対して値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）をハッシュ部Ｄ０８で計算し、入力部Ｄ０１に入力された署名σに重畳部Ｄ０９を使用してそのハッシュ値を２回重畳する（σ←σGiGi）。
【００９９】
また、改訂部Ｄ０５は、判断部Ｄ０４によって削除可能でかつ隠蔽禁止の状態（ＳＰＤＡ）であると判断された場合、削除対象となる部分文書に対して値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）をハッシュ部Ｄ０８で計算し、入力部Ｄ０１に入力された署名σに重畳部Ｄ０９を使用してハッシュ値を重畳する（σ←σGi）。
【０１００】
また、改訂部Ｄ０５は、判断部Ｄ０４によって削除可能でかつ隠蔽済みの状態（ＳＤＡ）であると判断された場合、削除対象となる部分文書は値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）となっているので、入力部Ｄ０１に入力された署名σに重畳部Ｄ０９を使用してハッシュ値を２回重畳する（σ←σGiGi）。
【０１０１】
また、設定部Ｄ０６は、改訂部Ｄ０５によって削除された結果、削除対象となる部分文書を、削除可能な状態から削除済みの状態に設定し、部分文書ｄｉ自体を削除する。この結果、削除対象に指定された削除可能な状態の部分文書は、電子文書Ｍの中から削除された削除済みの状態（Ｄ）となる。
【０１０２】
なお、上述した隠蔽禁止対象となる部分文書の指定と、削除禁止対象および削除対象となる部分文書の指定とは、それぞれ異なる電子文書管理装置１０２において行われてもよい。すなわち、一方の電子文書管理装置１０２において、隠蔽可能でかつ削除可能な状態（ＳＡＤＡ）の部分文書を隠蔽禁止対象として指定し、他方の電子文書管理装置１０２において、部分文書でかつ削除可能な状態に設定された部分文書を削除禁止対象または削除対象として指定する。
【０１０３】
出力部Ｄ０７は、設定部Ｄ０６によって改訂・設定された電子文書Ｍ（後述する改訂文書Ｒ）および署名σを出力する機能を有する。出力部Ｄ０７による出力形式は、外部のコンピュータ装置（たとえば、電子文書管理装置１０２，１０３）、プリンタ２３３での印刷出力、メモリへのデータ出力（保存）のいずれであってもよい。
【０１０４】
また、入力部Ｄ０１は、改訂対象となる部分文書が、既に改訂された改訂文書Ｒを取得する機能を有する。具体的には、設定部Ｄ０６によって構成要素の状態が設定された改訂文書Ｒを取得する機能を有する。改訂文書Ｒは、電子文書Ｍを構成する構成要素に対して改訂が行われた電子データである。たとえば、隠蔽禁止対象に指定された構成要素の状態が、隠蔽可能でかつ削除可能な状態（ＳＡＤＡ）から隠蔽禁止でかつ削除可能な状態（ＳＰＤＡ）に設定された改訂文書Ｒである。
【０１０５】
この改訂文書Ｒは、検証者から改訂者に対して改訂文書Ｒの公開請求があった場合に、改訂者の電子文書管理装置１０２から検証者の電子文書管理装置１０３に送信（出力）されることとなる。そして、検証者の電子文書管理１０３の入力部Ｅ０１により、改訂者の電子文書管理装置１０２から送信された改訂文書Ｒを取得する。
【０１０６】
[検証者の電子文書管理装置１０３]
つぎに、実施の形態にかかる検証者電子文書管理装置１０３の機能的構成について説明する。図５は、電子文書管理装置１０３の機能的構成を示すブロック図である。図５において、電子文書管理装置１０３は、受信手段を構成する入力部Ｅ０１と、分割部Ｅ０２と、判断部Ｅ０３と、検証部Ｅ０４と、送信手段を構成する出力部Ｅ０５と、ハッシュ部Ｅ０６と、重畳部Ｅ０７と、署名件勝負Ｅ０８と、から構成されている。
【０１０７】
これら各機能Ｅ０１〜Ｅ０８は、記憶領域に格納された当該機能に関するプログラムをＣＰＵに実行させることにより、当該機能を実現することができる。また、各機能Ｅ０１〜Ｅ０８からの出力データは記憶領域に保持される。また、図５中矢印で示した接続先の機能的構成は、接続元の機能からの出力データを記憶領域から読み込んで、当該機能に関するプログラムをＣＰＵに実行させる。
【０１０８】
入力部Ｅ０１は、電子文書管理装置１０１、１０２で署名処理された電子文書Ｍもしくは改訂文書Ｒ、署名σを受信し、分割部Ｅ０２で文書を複数の部分文書｛ｄｉ｝に分割する。ここで、全ての部分文書に共通の乱数ＩＤに等しくない値が含まれている、または、各部分文書に固有の乱数ＩＤｉが昇順（または降順）となっていない場合には、署名は正当でない（ＮＧ）と判断し、出力部Ｅ０５からその署名検証の結果を正当でない（ＮＧ）と出力（送信）する。
【０１０９】
判断部Ｅ０３は、各部分文書の状態から、当該部分文書が隠蔽可能か隠蔽禁止か、あるいは削除可能か削除禁止かという状態を判断する機能を有する。この判断を行うためには、何らかの状態を表す情報を別途持つこともできるし、部分文書の署名検証機能により、判断を行っても良い。
【０１１０】
検証部Ｅ０４は、判断部Ｅ０３によってある部分文書が隠蔽可能かつ削除可能な状態（ＳＡＤＡ）と判断された場合、その対象となる部分文書に対して値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）をハッシュ部Ｅ０６を使用して計算し、入力部Ｅ０１に入力された（もしくは検証部Ｅ０４で改訂された）署名σに重畳部Ｅ０７を使用してハッシュ値を２回重畳する（σ←σGiGi）。
【０１１１】
また、検証部Ｅ０４は、判断部Ｅ０３によってある部分文書が隠蔽禁止かつ削除可能な状態（ＳＰＤＡ）と判断された場合、その対象となる部分文書に対して値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）を、ハッシュ部Ｅ０６を使用して計算し、入力部Ｅ０１に入力された（もしくは検証部Ｅ０４で改訂された）署名σに重畳部Ｅ０７を使用してハッシュ値を重畳する（σ←σGi）。
【０１１２】
また、検証部Ｅ０４は、判断部Ｅ０３によってある部分文書が隠蔽済みで削除可能な状態（ＳＤＡ）と判断された場合、その対象となる部分文書は値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）に置き換わっているので、そのハッシュ値そのままを使用し、入力部Ｅ０１に入力された（もしくは検証部Ｅ０４で改訂された）署名σに重畳部Ｅ０７を使用してハッシュ値を２回重畳する（σ←σGiGi）。
【０１１３】
また、検証部Ｅ０４は、判断部Ｅ０３によってある部分文書が削除禁止かつ隠蔽可能な状態（ＳＡＤＰ）と判断された場合、その対象となる部分文書に対して値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）とハッシュ値Ｈｉ＝Ｈ（Ｇｉ)を、ハッシュ部Ｅ０６を使用して計算し、入力部Ｅ０１に入力された（もしくは検証部Ｅ０４で改訂された）署名σに重畳部Ｅ０７を使用して値Ｇｉを２回重畳する（σ←σGiGi）。また、公開鍵ＰＫに含まれる（もしくは検証部Ｅ０４で改訂された）値ｖに重畳部Ｅ０７を使用してハッシュ値Ｈｉを重畳する(ｖ←ｖHi)。
【０１１４】
また、検証部Ｅ０４は、判断部Ｅ０３によってある部分文書が削除禁止かつ隠蔽禁止な状態（ＳＰＤＰ）と判断された場合、その対象となる部分文書に対して値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）とハッシュ値Ｈｉ＝Ｈ（Ｇｉ) を、ハッシュ部Ｅ０６を使用して計算し、入力部Ｅ０１に入力された（もしくは検証部Ｅ０４で改訂された）署名σに重畳部Ｅ０７を使用して値Ｇｉを重畳する（σ←σGi）。また、公開鍵ＰＫに含まれる（もしくは検証部Ｅ０４で改訂された）値ｖに重畳部Ｅ０７を使用してハッシュ値Ｈｉを重畳する(ｖ←ｖHi)。
【０１１５】
また、検証部Ｅ０４は、判断部Ｅ０３によってある部分文書が削除禁止かつ隠蔽済みな状態（ＳＤＰ）と判断された場合、その対象となる部分文書が値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）で置き換えられているので、さらにそのハッシュ値Ｈｉ＝Ｈ（Ｇｉ)を、ハッシュ部Ｅ０６を使用して計算し、入力部Ｅ０１に入力された（もしくは検証部Ｅ０４で改訂された）署名σに重畳部Ｅ０７を使用して値Ｇｉを２回重畳する（σ←σGiGi）。また、公開鍵ＰＫに含まれる（もしくは検証部Ｅ０４で改訂された）値ｖに重畳部Ｅ０７を使用してハッシュ値Ｈｉを重畳する(ｖ←ｖHi)。
【０１１６】
署名検証部Ｅ０８は、検証部Ｅ０４で改訂された署名σと値ｖを比較し、同じ値の場合、署名は正当（ＯＫ）と判定し、異なる場合、署名は正当でない（ＮＧ）と判定する。
【０１１７】
出力部Ｅ０５は、署名検証部Ｅ０８の判定結果を出力する機能を有する。出力部Ｅ０５による出力形式は、外部のコンピュータ装置（たとえば、電子文書管理装置１０２，１０３）、プリンタ２３３での印刷出力、メモリへのデータ出力（保存）のいずれであってもよい。
【０１１８】
[署名処理の手順]
つぎに、文書管理装置１０１において実行される電子文書署名処理の手順について説明する。図６、図７は、この発明の文書管理装置において実行される電子文書署名処理の手順を示すフローチャートである。
【０１１９】
図６、図７において、まず、文書管理装置の入力部Ｃ０１により、文書の入力を受け付けたか否かを判断する(Ｔ１)。ここで、文書Ｍが入力されるのを待って、
入力された場合、分割部Ｃ０２により、文書を構成する各部分文書｛ｍｉ｝に分割する（Ｔ２）。同時に、乱数生成部Ｃ０４で乱数ＩＤを生成（Ｔ３）する。
【０１２０】
次に、各部分文書全てに対して次の処理を繰り返し行う（Ｔ４）。もし、未処理の部分文書が無ければ、署名部Ｃ０６において電子署名σ＝ｖΠ1/GiGiを計算し（Ｔ５）、出力部Ｃ０７を用いて文書Ｍと署名σを出力（送信）して(Ｔ６)、署名処理を終了する。
【０１２１】
未処理の部分文書がある場合、選択された部分文書ｍｉに対して、乱数生成部Ｃ０４はこの部分文書に固有の乱数ＩＤｉを生成し、ハッシュ部Ｃ０３を用い、ｄｉ＝ＩＤ||ＩＤｉ||ｍｉに対する値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）を計算する（Ｔ８）。
【０１２２】
次に判定部Ｃ０５において、Ｇｉが素数であるかを判定し、素数でない場合には部分文書に固有の乱数ＩＤｉの生成に戻る（Ｔ９）。また判定部Ｃ０５において、ＩＤｉが昇順（または降順）であるかを判定し、そうなっていない場合には部分文書に固有の乱数ＩＤｉの生成に戻る（Ｔ１０）。
【０１２３】
最後に、該部分文書ｄｉの状態を隠蔽可能且つ削除可能（ＳＡＤＡ）に設定する（Ｔ１１）。以上の処理を全ての部分文書について繰り返し行う。
【０１２４】
[改訂処理の手順]
つぎに、文書管理装置１０２において実行される電子文書署名処理の手順について説明する。図８は電子文書改訂処理の手順を示すフローチャートである。
【０１２５】
図８において、まず、文書管理装置の入力部Ｄ０１により、署名済みの文書と署名の入力を受け付けたか否かを判断する（Ｕ１）。ここで、文書Ｍと署名σが入力されるのを待って、入力された場合、分割部Ｄ０２により、文書を構成する各部分文書｛ｄｉ｝に分割する（Ｕ２）。
【０１２６】
ここで、入力は署名済み文書Ｍだけではなく、改訂済み文書Ｒも受け付ける。署名済み文書Ｍの場合は各部分文書の状態は全て隠蔽可能かつ削除可能な状態（ＳＡＤＡ）であるが、改訂済文書Ｒの場合は、部分文書は隠蔽禁止かつ削除禁止（ＳＰＤＰ）、隠蔽可能かつ削除禁止（ＳＡＤＰ）、隠蔽済みかつ削除禁止（ＳＤＰ）、隠蔽禁止かつ削除可能（ＳＰＤＡ）、隠蔽可能かつ削除可能（ＳＡＤＡ）、隠蔽済みかつ削除可能（ＳＤＡ）、の６状態を保持しうる。なお、削除済みという状態（Ｄ）では部分文書が削除されるので、改訂済み文書Ｒの部分文書の状態としての、削除済みの状態（Ｄ）はとりえない。
【０１２７】
次に、各部分文書全てに対して次の処理を繰り返し行う（Ｕ３）。もし、未処理の部分文書が無ければ、改訂文書Ｒと改訂済みの署名σを出力して（Ｕ４）署名処理を終了する。
【０１２８】
部分文書毎の繰り返し処理では、指定部Ｄ０３で各部分文書の状態改訂について入力されると、指定された状態によって、次の［Ａ］〜［Ｇ］の処理に分岐する（Ｕ５）。隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）への移行が指定された場合は処理［Ａ］、隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）への移行が指定された場合は処理［Ｂ］、隠蔽済みかつ削除禁止の状態（ＳＤＰ）への移行が指定された場合は処理［Ｃ］、隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）への移行が指定された場合は処理［Ｄ］、隠蔽可能かつ削除可能の状態（ＳＡＤＡ）への移行が指定された場合は処理［Ｅ］、隠蔽済みかつ削除可能の状態（ＳＤＡ）への移行が指定された場合は処理［Ｆ］、削除の状態（Ｄ）が指定された場合は処理［Ｇ］を実施する。
【０１２９】
これらの分岐処理の後(Ｆ００１)、エラーが検出されれば、出力部Ｄ０７からエラーを出力して（Ｕ６，Ｕ７）処理を停止する。以上の処理を全ての部分文書に対して実施する。以下、ステップＵ５の処理について説明する。
【０１３０】
処理［Ａ］:
処理Ａでは、図９に示すように、まず判断部Ｄ０４で現在の部分文書の状態を判断し、隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）、隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）、隠蔽済みかつ削除禁止の状態（ＳＤＰ）、隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）、隠蔽可能かつ削除可能の状態（ＳＡＤＡ）、隠蔽済みかつ削除可能の状態（ＳＤＡ）、の６状態によって処理を分岐する。
【０１３１】
部分文書ｄｉの状態が隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）ならば、変更はないのでそのまま元の処理(Ｆ００１)へ復帰する。
【０１３２】
部分文書ｄｉの状態が隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）ならば、ハッシュ部Ｄ０８で部分文書ｄｉから値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）を計算する（Ｕ１１）。そして、重畳部Ｄ０９で、署名σと値Ｇｉを重畳し、σ←σGiと改訂する（Ｕ１２）。最後に改訂後の部分文書の状態を隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）に設定して（Ｕ１３）元の処理(Ｆ００１)へ復帰する。
【０１３３】
部分文書ｄｉの状態が隠蔽済みかつ削除禁止の状態（ＳＤＰ）ならば、隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１３４】
部分文書ｄｉの状態が隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）ならば、ハッシュ部Ｄ０８で部分文書ｄｉからハッシュ値Ｈｉ＝Ｈ（ＩＤ||ＩＤｉ||ＧＮ（ｄｉ））を計算する（Ｕ１４）。そして、重畳部Ｄ０９で、署名σとハッシュ値Ｈｉを重畳し、σ←σHiと改訂する（Ｕ１５）。最後に改訂後の部分文書の状態を隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）に設定して（Ｕ１６）元の処理(Ｆ００１)へ復帰する。
【０１３５】
部分文書ｄｉの状態が隠蔽可能かつ削除可能の状態（ＳＡＤＡ）ならば、ハッシュ部Ｄ０８で部分文書ｄｉから値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）とハッシュ値Ｈｉ＝Ｈ（ＩＤ||ＩＤｉ||ＧＮ（ｄｉ））を計算する（Ｕ１７）。そして、重畳部Ｄ０９で、署名σと値Ｇｉ，ハッシュ値Ｈｉを重畳し、σ←σGiHiとを改訂する（Ｕ１８）。最後に改訂後の部分文書の状態を隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）に設定して（Ｕ１９）元の処理(Ｆ００１)へ復帰する。
【０１３６】
部分文書ｄｉの状態が隠蔽済みかつ削除可能の状態（ＳＤＡ）ならば、隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１３７】
処理［Ｂ］
図１０に示すように、処理Ｂでは、部分文書ｄｉの状態が隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）ならば、隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１３８】
部分文書ｄｉの状態が隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）ならば、変更はないのでそのまま元の処理(Ｆ００１)へ復帰する。
【０１３９】
部分文書ｄｉの状態が隠蔽済みかつ削除禁止の状態（ＳＤＰ）ならば、隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１４０】
部分文書ｄｉの状態が隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）ならば、隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１４１】
部分文書ｄｉの状態が隠蔽可能かつ削除可能の状態（ＳＡＤＡ）ならば、ハッシュ部Ｄ０８で部分文書ｄｉからハッシュ値Ｈｉ＝Ｈ（ＩＤ||ＩＤｉ||ＧＮ（ｄｉ））を計算する（Ｕ２１）。そして、重畳部Ｄ０９で、署名σとハッシュ値Ｈｉを重畳し、σ←σHiと改訂する（Ｕ２２）。最後に改訂後の部分文書の状態を隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）に設定して（Ｕ２３）元の処理(Ｆ００１)へ復帰する。
【０１４２】
部分文書ｄｉの状態が隠蔽済みかつ削除可能の状態（ＳＤＡ）ならば、隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１４３】
処理［Ｃ］
処理Ｃでは、図１１に示すように、部分文書ｄｉの状態が隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）ならば、隠蔽済みかつ削除禁止の状態（ＳＤＰ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１４４】
部分文書ｄｉの状態が隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）ならば、ハッシュ部Ｄ０８で部分文書ｄｉから値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）を計算し（Ｕ３１）、部分文書をｄｉ←Ｇｉと改訂する（Ｕ３２）。最後に改訂後の部分文書の状態を隠蔽済みかつ削除禁止の状態（ＳＤＰ）に設定して（Ｕ３２）元の処理(Ｆ００１)へ復帰する。
【０１４５】
部分文書ｄｉの状態が隠蔽済みかつ削除禁止の状態（ＳＤＰ）ならば、変更はないのでそのまま元の処理(Ｆ００１)へ復帰する。
【０１４６】
部分文書ｄｉの状態が隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）ならば、隠蔽済みかつ削除禁止の状態（ＳＤＰ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１４７】
部分文書ｄｉの状態が隠蔽可能・削除可能の状態（ＳＡＤＡ）ならば、ハッシュ部Ｄ０８で部分文書ｄｉから値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）とハッシュ値Ｈｉ＝Ｈ（Ｇｉ）を計算する（Ｕ３４）。そして、重畳部Ｄ０９で、署名σとハッシュ値Ｈｉを重畳し、σ←σHiと改訂する（Ｕ３５）。また部分文書をｄｉ←Ｇｉと改訂する（Ｕ３６）。最後に改訂後の部分文書の状態を隠蔽済みかつ削除禁止の状態（ＳＤＰ）に設定して（Ｕ３７）元の処理(Ｆ００１)へ復帰する。
【０１４８】
部分文書ｄｉの状態が隠蔽済みかつ削除可能の状態（ＳＤＡ）ならば、部分文書ｄｉは既にＧｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）に改訂されているので、ハッシュ部Ｄ０８で部分文書ｄｉのハッシュ値Ｈｉ＝Ｈ（ｄｉ）を計算する（Ｕ３８）。そして、重畳部Ｄ０９で、署名σとハッシュ値Ｈｉを重畳し、σ←σHiと改訂する（Ｕ３９）。最後に改訂後の部分文書の状態を隠蔽済・削除禁止の状態（ＳＤＰ）に設定して（Ｕ４０）元の処理(Ｆ００１)へ復帰する。
【０１４９】
処理［Ｄ］
処理Ｄでは、図１２に示すように、部分文書ｄｉの状態が隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）ならば、隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１５０】
部分文書ｄｉの状態が隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）ならば、隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１５１】
部分文書ｄｉの状態が隠蔽済みかつ削除禁止の状態（ＳＤＰ）ならば、隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１５２】
部分文書ｄｉの状態が隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）ならば、変更はないのでそのまま元の処理(Ｆ００１)へ復帰する。
【０１５３】
部分文書ｄｉの状態が隠蔽可能かつ削除可能の状態（ＳＡＤＡ）ならば、ハッシュ部Ｄ０８で部分文書ｄｉから値Ｇｉ＝ＩＤ|||ＩＤｉ||ＧＮ（ｄｉ）を計算する（Ｕ４１）。そして、重畳部Ｄ０９で、署名σと値Ｇｉを重畳し、σ←σGiと改訂する（Ｕ４２）。最後に改訂後の部分文書の状態を隠蔽禁止かつ削除可能（ＳＰＤＡ）に設定して元の処理(Ｆ００１)へ復帰する。
【０１５４】
部分文書ｄｉの状態が隠蔽済みかつ削除可能の状態（ＳＤＡ）ならば、隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１５５】
処理［Ｅ］
処理Ｅでは、図１３に示すように、部分文書ｄｉの状態が隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）ならば、隠蔽可能かつ削除可能の状態（ＳＡＤＡ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１５６】
部分文書ｄｉの状態が隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）ならば、隠蔽可能かつ削除可能の状態（ＳＡＤＡ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１５７】
部分文書ｄｉの状態が隠蔽済みかつ削除禁止の状態（ＳＤＰ）ならば、隠蔽可能かつ削除可能の状態（ＳＡＤＡ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１５８】
部分文書ｄｉの状態が隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）ならば、隠蔽可能かつ削除可能の状態（ＳＡＤＡ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１５９】
部分文書ｄｉの状態が隠蔽可能かつ削除可能の状態（ＳＡＤＡ）ならば、変更はないのでそのまま元の処理(Ｆ００１)へ復帰する。
【０１６０】
部分文書ｄｉの状態が隠蔽済みかつ削除可能の状態（ＳＤＡ）ならば、隠蔽可能かつ削除可能の状態（ＳＡＤＡ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１６１】
処理［Ｆ］
処理Ｆでは、図１４に示すように、部分文書ｄｉの状態が隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）ならば、隠蔽済みかつ削除可能の状態（ＳＤＡ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１６２】
部分文書ｄｉの状態が隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）ならば、隠蔽済みかつ削除可能の状態（ＳＤＡ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１６３】
部分文書ｄｉの状態が隠蔽済みかつ削除禁止の状態（ＳＤＰ）ならば、隠蔽済みかつ削除可能の状態（ＳＤＡ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１６４】
部分文書ｄｉの状態が隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）ならば、隠蔽済みかつ削除可能の状態（ＳＤＡ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１６５】
部分文書ｄｉの状態が隠蔽可能かつ削除可能の状態（ＳＡＤＡ）ならば、ハッシュ部Ｄ０８で部分文書ｄｉから値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）を計算し（Ｕ６１）、部分文書をｄｉ←Ｇｉと改訂する（Ｕ６２）。最後に改訂後の部分文書の状態を隠蔽禁止かつ削除可能の状態（ＳＤＡ）に設定して（Ｕ６３）元の処理(Ｆ００１)へ復帰する。
【０１６６】
部分文書ｄｉの状態が隠蔽済みかつ削除可能の状態（ＳＤＡ）ならば、変更はないのでそのまま元の処理(Ｆ００１)へ復帰する。
【０１６７】
処理［Ｇ］
処理Ｇでは、図１５に示すように、部分文書ｄｉの状態が隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）ならば、削除済みの状態（Ｄ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１６８】
部分文書ｄｉの状態が隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）ならば、削除済みの状態（Ｄ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１６９】
部分文書ｄｉの状態が隠蔽済みかつ削除禁止の状態（ＳＤＰ）ならば、削除済みの状態（Ｄ）への変更はできないため、エラーとして処理(Ｆ００１)へ復帰する。
【０１７０】
部分文書ｄｉの状態が隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）ならば、ハッシュ部Ｄ０８で部分文書ｄｉから値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）を計算する（Ｕ７１）。そして、重畳部Ｄ０９で、署名σと値Ｇｉを重畳し、σ←σGiとを改訂する（Ｕ７２）。また、部分文書ｄｉを削除する（Ｕ７３）。最後に状態を削除して（Ｕ７４）元の処理(Ｆ００１)へ復帰する。
【０１７１】
部分文書ｄｉの状態が隠蔽可能かつ削除可能の状態（ＳＡＤＡ）ならば、ハッシュ部Ｄ０８で部分文書ｄｉから値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）を計算する（Ｕ７５）。そして、重畳部Ｄ０９で、署名σと値ＧｉＧｉを重畳し、σ←σGiGiとを改訂する（Ｕ７６）。また、部分文書ｄｉを削除する（Ｕ７７）。最後に状態を削除して（Ｕ７８）元の処理(Ｆ００１)へ復帰する。
【０１７２】
部分文書ｄｉの状態が隠蔽済みかつ削除可能の状態（ＳＤＡ）ならば、部分文書ｄｉは既にＧｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）に改訂されているので、重畳部Ｄ０９で、署名σと値ＧｉＧｉを重畳し、σ←σGiGiと改訂する（Ｕ７９）。また、部分文書ｄｉを削除する（Ｕ８０）。最後に状態を削除して（Ｕ８１）元の処理(Ｆ００１)へ復帰する。
【０１７３】
なお、ここで示したフローでは、指定部Ｄ０３で改訂後の部分文書の状態を指定してから、判断部Ｄ０４で現在の部分文書の状態を判断して、処理しているが、判断部Ｄ０４の処理を指定部Ｄ０３の処理より前に行い、指定部の処理で、部分文書の状態に応じて、エラーとなる状態を選択できないようにすることも可能である。
【０１７４】
[検証処理の手順]
つぎに、文書管理装置１０３において実行される電子文書署名処理の手順について説明する。図１６は、文書管理装置において実行される電子文書改訂処理の手順を示すフローチャートである。
【０１７５】
図１６において、まず、文書管理装置の入力部Ｅ０１により、署名済みの文書と署名の入力を受け付けたか否かを判断する（Ｖ１）。ここで、文書Ｍと署名σが入力されるのを待って、入力された場合、分割部Ｅ０２により、文書を構成する各部分文書に分割する（Ｖ２）。ここで、入力は署名済み文書Ｍだけではなく、改訂済み文書Ｒも受け付ける。
【０１７６】
次に判断部Ｅ０３は、各部分文書に共通する値ＩＤを比較し、全て同じ値であるかをチェックする（Ｖ３）。異なる値のＩＤがあれば、署名書は正当でないと判断し、出力部Ｅ０５においてＮＧを出力して（Ｖ７）検証処理を終了する。また判断部Ｅ０３は、各部分文書に固有の値ＩＤｉが昇順（または降順）となっているかをチェックする（Ｖ３）。そうなっていなければ、署名書は正当でないと判断し、出力部Ｅ０５においてＮＧを出力して（Ｖ７）検証処理を終了する。
【０１７７】
署名済み文書Ｍの場合は各部分文書の状態は全て隠蔽可能かつ削除可能な状態（ＳＡＤＡ）であるが、改訂済文書Ｒの場合は、部分文書は隠蔽禁止かつ削除禁止（ＳＰＤＰ）、隠蔽可能かつ削除禁止（ＳＡＤＰ）、隠蔽済みかつ削除禁止（ＳＤＰ）、隠蔽禁止かつ削除可能（ＳＰＤＡ）、隠蔽可能かつ削除可能（ＳＡＤＡ）、隠蔽済みかつ削除可能（ＳＤＡ）、の６状態を保持しうる。なお、削除済みという状態（Ｄ）では部分文書が削除されるので、改訂済み文書Ｒの部分文書の状態として、削除済みの状態（Ｄ）は取り得ない。
【０１７８】
次に、各部分文書に対して次の処理を繰り返し行う（Ｖ４）。もし、未処理の部分文書が無ければ、署名検証部Ｅ０９で改訂された署名σと値ｖが同じ値かどうか判定し（Ｖ５）、σ＝ｖの場合は署名が正当ということでＯＫを（Ｖ６）、σ≠ｖの場合は署名が正当でないということでＮＧを（Ｖ７）出力部Ｅ０５から出力し、検証処理を終了する。
【０１７９】
部分文書毎の繰り返し処理では、図１７に示すように、まず判断Ｅ０３で現在の部分文書の状態を判断し、隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）、隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）、隠蔽済みかつ削除禁止の状態（ＳＤＰ）、隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）、隠蔽可能かつ削除可能の状態（ＳＡＤＡ）、隠蔽済みかつ削除可能の状態（ＳＤＡ）、の６状態によって処理を分岐する。
【０１８０】
部分文書ｄｉの状態が隠蔽禁止かつ削除禁止の状態（ＳＰＤＰ）ならば、ハッシュ部Ｅ０６で部分文書ｄｉから値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）とハッシュ値Ｈｉ＝Ｈ（Ｇｉ）を計算する（Ｖ１１）。そして、重畳部Ｅ０７で、署名σと値Ｇｉを重畳し、σ←σGiと改訂する（Ｖ１２）。また、重畳部Ｅ０７で、公開鍵に含まれる（または重畳部Ｅ０７で改訂された）値ｖとハッシュ値Ｈｉを重畳し、ｖ←ｖHiと改訂する（Ｖ１３）。その後、元の処理(Ｆ００２)へ復帰する。
【０１８１】
部分文書ｄｉの状態が隠蔽可能かつ削除禁止の状態（ＳＡＤＰ）ならば、ハッシュ部Ｅ０６で部分文書ｄｉから値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）とハッシュ値Ｈｉ＝Ｈ（Ｇｉ）を計算する（Ｖ２１）。そして、重畳部Ｅ０７で、署名σと値ＧｉＧｉを重畳し、σ←σGiGiと改訂する（Ｖ２２）。また、重畳部Ｅ０７で、公開鍵に含まれる（または重畳部Ｅ０７で改訂された）値ｖとハッシュ値Ｈｉを重畳し、ｖ←ｖHiと改訂する（Ｖ２３）。その後、元の処理(Ｆ００２)へ復帰する。
【０１８２】
部分文書ｄｉの状態が隠蔽済みかつ削除禁止の状態（ＳＤＰ）ならば、部分文書ｄｉは既にＧｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）に置き換えられているので、ハッシュ部Ｅ０６で部分文書ｄｉからハッシュ値Ｈｉ＝Ｈ（ｄｉ）を計算する（Ｖ３１）。そして、重畳部Ｅ０７で、署名σとハッシュ値Ｈｉを重畳し、σ←σGiGi（＝σdidi）改訂する（Ｖ３２）。また、重畳部Ｅ０７で、公開鍵に含まれる（または重畳部Ｅ０７で改訂された）ｖとハッシュ値Ｈｉを重畳し、ｖ←ｖHiと改訂する（Ｖ３３）。その後、元の処理(Ｆ００２)へ復帰する。
【０１８３】
部分文書ｄｉの状態が隠蔽禁止かつ削除可能の状態（ＳＰＤＡ）ならば、ハッシュ部Ｅ０６で部分文書ｄｉから値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）を計算する（Ｖ４１）。そして、重畳部Ｅ０７で、署名σと値Ｇｉを重畳し、σ←σGiと改訂する（Ｖ４２）。その後、状態を削除して元の処理(Ｆ００２)へ復帰する。
【０１８４】
部分文書ｄｉの状態が隠蔽可能かつ削除可能の状態（ＳＡＤＡ）ならば、ハッシュ部Ｅ０６で部分文書ｄｉから値Ｇｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）を計算する（Ｖ５１）。そして、重畳部Ｅ０７で、署名σと値ＧｉＧｉを重畳し、σ←σGiGi（＝σdidi）と改訂する（Ｖ５２）。その後、状態を削除して元の処理(Ｆ００２)へ復帰する。
【０１８５】
部分文書ｄｉの状態が隠蔽済みかつ削除可能の状態（ＳＤＡ）ならば、部分文書ｄｉは既にＧｉ＝ＩＤ||ＩＤｉ||ＧＮ（ｄｉ）に置き換えられているので、重畳部Ｅ０７で、署名σと値Ｇｉを重畳し、σ←σGiと改訂する（Ｖ６１）。その後、状態を削除して元の処理(Ｆ００２)へ復帰する。
【０１８６】
以上の実施の形態により、実現される部分文書の７状態を図１８に示し、遷移の状態を図１９に示す。
【０１８７】
以上の説明より明らかなように、本実施の形態によれば、部分文書に対して７つの状態に設定可能で、かつ署名情報量が部分文書数に比例せず、常に１個の電子署名データの保持で検証が可能である。従って、より柔軟な電子文書の改訂を実現し、ユーザの利便性の向上を図ることができるという効果を奏する。
【０１８８】
なお、上記の実施の形態で図示したフローチャートやステップに示された各動作をコンピュータにより実行させるプログラムを提供することにより、本発明の署名プログラムを提供することができる。これらプログラムはコンピュータにより読取可能な媒体に記録されてコンピュータにより実行させることができる。コンピュータは、パーソナルコンピュータのようなホスト装置、試験装置のコントローラ、記憶装置のＭＰＵやＣＰＵのようなコントローラなどを含む。ここで、コンピュータにより読取可能な媒体としては、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【０１８９】
以上、本発明の実施の形態によれば、以下の付記で示す技術的思想が開示されている。
（付記１）
コンピュータが実行する電子署名方法であって、
前記コンピュータが、
整数ｖを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書（ｍｉ）に分割し、
ハッシュ関数Ｇを用い、各部分文書ｍｉを用いて得られるハッシュ値であるＧｉを生成し、前記電子文書に対する署名となる電子署名σ＝ｖΠ1/GiGiを生成し、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で２度累乗し（σ→σGiGi）、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い（σ→σGi）、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Ｇｉで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Ｇと同一又は異なるハッシュ関数Ｈを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Ｈｉを累乗し（σ→σHi）、
部分文書の墨塗りを禁止する場合は、電子署名σに墨塗りを禁止する部分文書を用いて得られるハッシュ値Ｈｉで累乗し（σ→σHi）、
電子署名σを更新する
ことを特徴とする電子署名方法。
（付記２）
付記１に記載の電子署名方法において、
前記部分文書の状態が墨塗り可能で削除可能な状態において、前記電子署名σ、およびハッシュ関数がとられる部分文書の状態をｄｉとした場合に、
前記部分文書を墨塗り禁止で削除可能な状態に改訂する場合、前記電子署名σはσGiと改訂され、ハッシュ関数がとられる前記部分文書の状態ｄｉはそのままであり、
前記部分文書を墨塗り可能で削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書の状態ｄｉはそのままであり、
前記部分文書を墨塗り禁止で削除禁止な状態に改訂する場合、前記電子署名σはσGiHiと改訂され、ハッシュ関数がとられる前記部分文書の状態ｄｉはそのままであり、
前記部分文書を墨塗り済みで削除可能な状態に改訂する場合、前記電子署名σはそのままであり、ハッシュ関数がとられる前記部分文書の状態ｄｉがＧｉと改訂され、
前記部分文書を墨塗り済みで削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書の状態ｄｉがＧｉと改訂され、
前記部分文書を削除する状態に改訂する場合は、前記電子署名σはσGiGiと改訂され、ハッシュ関数がとられる前記部分文書の状態ｄｉは削除される
電子署名方法。
（付記３）
付記２に記載の電子署名方法において、
前記部分文書それぞれに、いずれの状態であるかを判別するための状態設定を行うことを特徴とする電子署名方法。
（付記４）
付記１に記載の電子署名方法において、
前記ハッシュ関数が取られる前記部分文書の状態ｄｉは、
ｄｉ＝ＩＤ｜｜ＩＤｉ｜｜ｍｉ
で表され、ここで、｜｜はその前後のデータの連結を表し、ＩＤは全ての部分文書に共通の乱数であり、ＩＤｉは部分文書に固有の乱数であることを特徴とする電子署名方法。
（付記５）
付記１に記載の電子署名方法において、
署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証する電子署名方法。
（付記６）
付記１に記載の電子署名方法において、
署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証するに際して、
前記部分文書の状態ｄｉが墨塗り禁止且つ削除禁止となっている場合、部分文書ｄｉからハッシュ値Ｇｉ及びハッシュ値Ｈｉを計算し、σを該σにＧｉを累乗したもの（σGi）とするとともに、ｖを該ｖにＨｉを累乗したもの（ｖHi）とし、
前記部分文書の状態ｄｉが墨塗り可能且つ削除禁止となっている場合、部分文書ｄｉからハッシュ値Ｇｉ及びハッシュ値Ｈｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とするとともに、ｖを該ｖにＨｉを累乗したもの（ｖHi）とし、
前記部分文書の状態ｄｉが墨塗り済み且つ削除禁止となっている場合、部分文書ｄｉからハッシュ値Ｈｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とするとともに、ｖを該ｖにＨｉを累乗したもの（σHi）とし、
前記部分文書の状態ｄｉが墨塗り禁止且つ削除可能となっている場合、部分文書ｄｉからハッシュ値Ｇｉを計算し、σを該σにＧｉを累乗したもの（σGi）とし、
前記部分文書の状態ｄｉが墨塗り可能且つ削除可能となっている場合、部分文書ｄｉからハッシュ値Ｇｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とし、
前記部分文書の状態ｄｉが墨塗り済み、且つ削除可能となっている場合、部分文書ｄｉからハッシュ値Ｇｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とし、
Ｖｅｒｉｆｙσ=ｖを検証することを特徴とする電子署名方法。
（付記７）
付記１に記載の電子署名方法において、
２つの同じビット長の素数ｐとｑを秘密鍵として生成し、合成数Ｎ＝ｐ×ｑを生成し、１以上Ｎ未満の整数ｖを公開鍵として生成することを特徴とする電子署名方法。
（付記８）
電子署名方法をコンピュータに実行させる電子署名プログラムであって、
電子文書と、該電子文書に対する署名となる電子署名σ＝ｖΠ1/GiGiとを受信するとともに、前記電子署名σは、電子署名整数ｖを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書（ｍｉ）に分割し、ハッシュ関数Ｇを用い、各部分文書ｍｉを用いて得られるハッシュ値であるＧｉを生成し、前記電子文書に対する署名となる電子署名σ＝ｖΠ1/GiGiを生成して生成されたものを受信し、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で２度累乗し（σ→σGiGi）、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い（σ→σGi）、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Ｇｉで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Ｇと同一又は異なるハッシュ関数Ｈを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Ｈｉを累乗し（σ→σHi）、
部分文書の墨塗りを禁止する場合は、電子署名σに墨塗りを禁止する部分文書を用いて得られるハッシュ値Ｈｉで累乗し（σ→σHi）、
電子署名σを更新する
ことをコンピュータに実行させる電子署名プログラム。
（付記９）
付記８に記載の電子署名プログラムにおいて、
前記部分文書の状態が墨塗り可能で削除可能な状態において、前記電子署名σ、およびハッシュ関数がとられる部分文書の状態をｄｉとした場合に、
前記部分文書を墨塗り禁止で削除可能な状態に改訂する場合、前記電子署名σはσGiと改訂され、ハッシュ関数がとられる前記部分文書の状態ｄｉはそのままであり、
前記部分文書を墨塗り可能で削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書の状態ｄｉはそのままであり、
前記部分文書を墨塗り禁止で削除禁止な状態に改訂する場合、前記電子署名σはσGiHiと改訂され、ハッシュ関数がとられる前記部分文書の状態ｄｉはそのままであり、
前記部分文書を墨塗り済みで削除可能な状態に改訂する場合、前記電子署名σはそのままであり、ハッシュ関数がとられる前記部分文書の状態ｄｉがＧｉと改訂され、
前記部分文書を墨塗り済みで削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書の状態ｄｉがＧｉと改訂され、
前記部分文書を削除する状態に改訂する場合は、前記電子署名σはσGiGiと改訂され、ハッシュ関数がとられる前記部分文書の状態ｄｉは削除される
ことをコンピュータに実行させる電子署名プログラム。
（付記１０）
付記８に記載の電子署名プログラムにおいて、
前記部分文書それぞれに、いずれの状態であるかを判別するための状態設定を行うことをコンピュータに実行させることを特徴とする電子署名プログラム。
（付記１１）
付記８に記載の電子署名プログラムにおいて、
前記ハッシュ関数が取られる前記部分文書の状態ｄｉは、
ｄｉ＝ＩＤ｜｜ＩＤｉ｜｜ｍｉ
で表され、ここで、｜｜はその前後のデータの連結を表し、ＩＤは全ての部分文書に共通の乱数であり、ＩＤｉは部分文書に固有の乱数であることを特徴とする電子署名プログラム。
（付記１２）
付記８に記載の電子署名プログラムにおいて、
署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証することをコンピュータに実行させる電子署名プログラム。
（付記１３）
付記８に記載の電子署名プログラムにおいて、
署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証するに際して、
ハッシュ関数がとられる前記部分文書ｄｉの状態が墨塗り禁止且つ削除禁止となっている場合、部分文書ｄｉからハッシュ値Ｇｉ及びハッシュ値Ｈｉを計算し、σを該σにＧｉを累乗したもの（σGi）とするとともに、ｖを該ｖにＨｉを累乗したもの（ｖHi）とし、
前記部分文書ｄｉの状態が墨塗り可能且つ削除禁止となっている場合、部分文書ｄｉからハッシュ値Ｇｉ及びハッシュ値Ｈｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とするとともに、ｖを該ｖにＨｉを累乗したもの（ｖHi）とし、
前記部分文書ｄｉの状態が墨塗り済み且つ削除禁止となっている場合、部分文書ｄｉからハッシュ値Ｈｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とするとともに、ｖを該ｖにＨｉを累乗したもの（σHi）とし、
前記部分文書ｄｉの状態が墨塗り禁止且つ削除可能となっている場合、部分文書ｄｉからハッシュ値Ｇｉを計算し、σを該σにＧｉを累乗したもの（σGi）とし、
前記部分文書ｄｉの状態が墨塗り可能且つ削除可能となっている場合、部分文書ｄｉからハッシュ値Ｇｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とし、
前記部分文書ｄｉの状態が墨塗り済み、且つ削除可能となっている場合、部分文書ｄｉからハッシュ値Ｇｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とし、
Ｖｅｒｉｆｙσ=ｖを検証することをコンピュータに実行させることを特徴とする電子署名プログラム。
（付記１４）
付記８に記載の電子署名プログラムにおいて、
２つの同じビット長の素数ｐとｑを秘密鍵として生成し、合成数Ｎ＝ｐ×ｑを生成し、１以上Ｎ未満の整数ｖを公開鍵として生成することをコンピュータに実行させることを特徴とする電子署名プログラム。
（付記１５）
コンピュータが実行する電子署名装置であって、
電子文書と、該電子文書に対する署名となる電子署名σ＝ｖΠ1/GiGiとを受信するとともに、前記電子署名σは、電子署名整数ｖを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書（ｍｉ）に分割し、ハッシュ関数Ｇを用い、各部分文書ｍｉを用いて得られるハッシュ値であるＧｉを生成し、前記電子文書に対する署名となる電子署名σ＝ｖΠ1/GiGiを生成して生成されたものを受信する受信手段と、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で２度累乗し（σ→σGiGi）、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い（σ→σGi）、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Ｇｉで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Ｇと同一又は異なるハッシュ関数Ｈを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Ｈｉを累乗し（σ→σHi）、
部分文書の墨塗りを禁止する場合は、電子署名σに墨塗りを禁止する部分文書を用いて得られるハッシュ値Ｈｉで累乗し（σ→σHi）、
電子署名σを更新する改訂更新手段と
を備える電子署名装置。
（付記１６）
付記１５に記載の電子署名装置において、
前記部分文書の状態が墨塗り可能で削除可能な状態において、前記電子署名σ、およびハッシュ関数がとられる部分文書ｄｉの状態をとした場合に、
前記部分文書を墨塗り禁止で削除可能な状態に改訂する場合、前記電子署名σはσGiと改訂され、ハッシュ関数がとられる前記部分文書ｄｉの状態はそのままであり、
前記部分文書を墨塗り可能で削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書ｄｉの状態はそのままであり、
前記部分文書を墨塗り禁止で削除禁止な状態に改訂する場合、前記電子署名σはσGiHiと改訂され、ハッシュ関数がとられる前記部分文書ｄｉの状態はそのままであり、
前記部分文書を墨塗り済みで削除可能な状態に改訂する場合、前記電子署名σはそのままであり、ハッシュ関数がとられる前記部分文書ｄｉの状態がＧｉと改訂され、
前記部分文書を墨塗り済みで削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書ｄｉの状態がＧｉと改訂され、
前記部分文書を削除する状態に改訂する場合は、前記電子署名σはσGiGiと改訂され、ハッシュ関数がとられる前記部分文書ｄｉの状態は削除される
ことを特徴とする電子署名装置。
（付記１７）
付記１５に記載の電子署名装置において、
前記部分文書それぞれに、いずれの状態であるかを判別するための状態設定を行う状態設定手段を備えることを特徴とする電子署名装置。
（付記１８）
付記１５に記載の電子署名装置において、
前記ハッシュ関数が取られる前記部分文書ｄｉの状態は、
ｄｉ＝ＩＤ｜｜ＩＤｉ｜｜ｍｉ
で表され、ここで、｜｜はその前後のデータの連結を表し、ＩＤは全ての部分文書に共通の乱数であり、ＩＤｉは部分文書に固有の乱数であることを特徴とする電子署名装置。
（付記１９）
付記１５に記載の電子署名装置において、
署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証する検証手段を備えることを特徴とする電子署名装置。
（付記２０）
付記１５に記載の電子署名装置において、
署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証するに際して、
前記部分文書ｄｉの状態が墨塗り禁止且つ削除禁止となっている場合、部分文書ｄｉからハッシュ値Ｇｉ及びハッシュ値Ｈｉを計算し、σを該σにＧｉを累乗したもの（σGi）とするとともに、ｖを該ｖにＨｉを累乗したもの（ｖHi）とし、
前記部分文書ｄｉの状態が墨塗り可能且つ削除禁止となっている場合、部分文書ｄｉからハッシュ値Ｇｉ及びハッシュ値Ｈｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とするとともに、ｖを該ｖにＨｉを累乗したもの（ｖHi）とし、
前記部分文書ｄｉの状態が墨塗り済み且つ削除禁止となっている場合、部分文書ｄｉからハッシュ値Ｈｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とするとともに、ｖを該ｖにＨｉを累乗したもの（σHi）とし、
前記部分文書ｄｉの状態が墨塗り禁止且つ削除可能となっている場合、部分文書ｄｉからハッシュ値Ｇｉを計算し、σを該σにＧｉを累乗したもの（σGi）とし、
前記部分文書ｄｉの状態が墨塗り可能且つ削除可能となっている場合、部分文書ｄｉからハッシュ値Ｇｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とし、
前記部分文書ｄｉの状態が墨塗り済み、且つ削除可能となっている場合、部分文書ｄｉからハッシュ値Ｇｉを計算し、σを該σにＧｉを二度累乗したもの（σGiGi）とし、
Ｖｅｒｉｆｙσ=ｖを検証する検証手段を備えることを特徴とする電子署名装置。
（付記２１）
付記１５に記載の電子署名装置において、
２つの同じビット長の素数ｐとｑを秘密鍵として生成し、合成数Ｎ＝ｐ×ｑを生成し、１以上Ｎ未満の整数ｖを公開鍵として生成することを特徴とする電子署名装置。
【符号の説明】
【０１９０】
１００  電子文書管理システム、１０１，１０２，１０３  電子文書管理装置、１１０  ネットワーク、Ｃ０１  入力部、Ｃ０２  分割部、Ｃ０３  ハッシュ部、Ｃ０４  乱数生成部、Ｃ０５  判定部、Ｃ０６  署名部、Ｃ０７  出力部、Ｄ０１  入力部、Ｄ０２  分割部、Ｄ０３  指定部、Ｄ０４  判断部、Ｄ０５  改訂部、Ｄ０６  設定部、Ｄ０７  出力部、Ｄ０８  ハッシュ部、Ｄ０９  重畳部、Ｅ０１  入力部、Ｅ０２  分割部、Ｅ０３  判断部、Ｅ０４  検証部、Ｅ０５  出力部、Ｅ０６  ハッシュ部、Ｅ０７  重畳部、Ｅ０８  署名検証部。
【図１】
2010164874.tif 000003
【図２】
2010164874.tif 000004
【図３】
2010164874.tif 000005
【図４】
2010164874.tif 000006
【図５】
2010164874.tif 000007
【図６】
2010164874.tif 000008
【図７】
2010164874.tif 000009
【図８】
2010164874.tif 000010
【図９】
2010164874.tif 000011
【図１０】
2010164874.tif 000012
【図１１】
2010164874.tif 000013
【図１２】
2010164874.tif 000014
【図１３】
2010164874.tif 000015
【図１４】
2010164874.tif 000016
【図１５】
2010164874.tif 000017
【図１６】
2010164874.tif 000018
【図１７】
2010164874.tif 000019
【図１８】
2010164874.tif 000020
【図１９】
2010164874.tif 000021
【図２０】
2010164874.tif 000022
【図２１】
2010164874.tif 000023
【図２２】
2010164874.tif 000024
【図２３】
2010164874.tif 000025
【図２４】
2010164874.tif 000026
【図２５】
2010164874.tif 000027
【図２６】
2010164874.tif 000028
【図２７】
2010164874.tif 000029
【図２８】
2010164874.tif 000030
【図２９】
2010164874.tif 000031
【図３０】
2010164874.tif 000032