説明

電子署名方法、電子署名プログラムおよび電子署名装置

【課題】署名時および抽出時のデータ量を削減しながらも電子文書の完全性を保証することができる電子署名方法を提供する。
【解決手段】ハッシュ関数Gを用い、各部分文書miを用いて得られるハッシュ値であるGiを生成し、前記電子文書に対する署名となる電子署名σ=vΠ1/GiGiを生成し、ハッシュ関数Gと同一又は異なるハッシュ関数Hを用いて、電子文書の部分文書の改訂状態に対応して電子署名σを改訂し、検証時においては、verifyσを部分文書の改訂状態に基づいて改訂し、σとverifyσを比較して検証を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子文書の完全性を保証する電子署名方法、電子署名プログラムおよび電子署名装置に関し、特に少ないデータ量で部分文書の必要な設定状態および遷移状態を示すことができる技術に関するものである。
【背景技術】
【0002】
電子文書の完全性を保証する技術として電子署名がある。電子文書の利用・活用を進める上では、署名された電子文書の一部を取り出したい(抽出したい)というニーズは多い。しかし、一般的な電子署名ではこのような抽出は文書の改ざんに当たるため、完全性の保証が出来ない。これを解決する技術として、墨塗り署名や削除署名という部分抽出可能な電子署名の応用技術がある。これらは、抽出を行っても、その部分の完全性を保証することができる。
【0003】
ここで、抽出署名を定義する。一般の電子署名は、署名を行う署名者と検証を行う検証者の二者モデルで定義する。これに対し、抽出署名では、図20に示すように、署名を行う署名者、署名者の署名した文書から一部分を抽出する抽出者、抽出された文書を検証する検証者の三者モデルを使用する。署名者が何らかの方法で文書に署名を行う。そして、その文書および署名を抽出者が受け取る。抽出者は、受け取った文書の一部を抽出し、それに伴う抽出情報の生成や署名のアップデートを行う。そしてその抽出された文書および署名と抽出情報を検証者が受け取る。検証者は抽出された文書および署名と抽出情報から、その抽出文書が、署名者が署名を行った文書の一部であることを検証する。以上の流れを満たすことができる署名方式を抽出署名と定義する。
【0004】
墨塗り署名や、削除署名を行うには事前に文書を複数の部分文書に分割し、それらの部分文書に対して署名処理または署名処理の一部を行う。従来の墨塗り署名、削除署名では、署名時に署名の情報が部分文書の数に比例して膨大になったり、抽出時に抽出する部分文書の数や削除する部分文書の数に比例した抽出情報を持たなければならなかったりした。そのため、大きな文書の一部を抽出するために、大量の署名情報や、大量の抽出情報を持たなければならず、非常に効率が悪かった。
【0005】
墨塗り署名の代表として、下記の特許文献1に開示された署名方式(以下、この署名方式をSUMI−4とする)があげられる。この署名方式では、署名は部分文書の数によらず1つだけであるが、抽出時に削除する部分文書のハッシュ値群を持たなければならならないため、抽出情報が削除部分文書数に比例して増大してしまう。
【0006】
これを図21を参照して説明する。署名時に、署名者は文書情報Mを部分文書情報m1〜m4に分割し、それぞれの部分文書情報に部分文書ID情報ID1〜ID4を付加してID付部分文書M1〜M4を生成する。そしてハッシュ値h1〜h4を計算し、そのハッシュ値h1〜h4に対して署名を行い(署名σ)、ID付部分文書M1〜M4と署名σを抽出者に送付する。抽出時には、抽出者は抽出するID付部分文書を決定する。ここでは、ID付部分文書M2を抽出するものとする。そして、削除する(抽出しない)ID付部分文書M1,M3,M4のハッシュ値h1,h3,h4を計算し、h1,M2,h3,h4と署名者の署名σを公開する。つまり、削除するID付部分文書M1,M3,M4の代わりにハッシュ値h1,h3,h4が公開される。署名検証時、検証者は公開されているID付部分文書情報M2からハッシュ値h2を計算することで、公開されているh1,h3,h4と併せてハッシュ値h1〜h4を復元し、署名σで検証を行う。署名σは署名者がハッシュ値h1〜h4に対して付与した署名であるので、検証者は抽出されたID付部分文書M2が署名者により署名が施された文書Mの一部分であることを検証することができる。ここで、抽出を行う場合、削除するID付部分文書の代わりにそのハッシュ値を公開しなければ、検証者が検証することができない。そのため、削除する部分文書の数に比例した情報(以下、これを抽出情報とする)を保持しなければならず、削除するID付部分文書の数が大きくなると、保持しなければならない抽出情報が大きくなってしまう。
【0007】
また、削除署名の代表として、下記の特許文献2に開示された署名方式(以下、この署名方式をSUMI−6とする)があげられる。この署名方式では、署名時に各部分文書に対する部分署名とそれを重畳した全体署名を持たなければならない。そのため、署名情報が部分文書数に比例して増大してしまうという問題がある。
【0008】
これを図22を参照して説明する。図21と同様に、署名時に、署名者は文書情報Mを部分文書情報m1〜m4に分割し、それぞれの部分文書情報に部分文書ID情報ID1〜ID4を付加してID付部分文書M1〜M4を生成する。そしてハッシュ値h1〜h4を計算し、後述するアグリゲート署名で部分署名σ1〜σ4を計算し、部分署名σ1〜σ4を重畳して全体署名σを作成する。最後に、ID付部分文書M1〜M4と部分署名σ1〜σ4、および全体署名σを抽出者に送付する。抽出時に、抽出者は抽出するID付部分文書を決定する。ここでは、ID付部分文書M2を抽出するものとする。抽出しないID付部分文書M1,M3,M4を削除し、それに対応する部分署名σ1,σ3,σ4を利用して全体署名σからσ1,σ3,σ4の情報を削除して全体署名をσ’に更新する。最後に、抽出したID付部分文書M2とその部分署名σ2、および更新した全体署名σ’を公開する。署名検証時には、検証者は公開されているID付部分文書情報M2と更新された全体署名σ’で検証を行う。署名σ’は署名者の全体署名σから抽出者が削除したID付部分文書M1,M3,M4の部分署名の情報が削除されているため、検証者は抽出されたID付部分文書M2が、署名者が署名を施した文書Mの一部分であることを検証することができる。
【0009】
ここで、この方式では、署名を行う場合、部分署名情報を付加しなければ抽出を行うことができない。そのため、署名する部分文書の数に比例した署名情報を保持しなければならず、署名するID付部分文書の数が大きくなると、保持しなければならない署名情報が大きくなってしまう。
【0010】
すなわち、墨塗り署名ベースの抽出においては、署名時の署名は1個(データ量小)であるものの、抽出時には署名時の署名の他に削除する部分文書の数だけの抽出情報を持たなければならず(データ量大)、削除署名ベースの抽出においては、抽出時は抽出文書とその個別署名および更新した全体署名で済むが(データ量小)、署名時には署名(全体署名)の他に部分文書の数だけ情報(個別署名)を持たなければならない(データ量大)という問題を抱えている。
【0011】
一方で、アグリゲート署名という電子署名の応用技術が存在する。アグリゲート署名は、電子文書流通等で1つもしくは複数の文書に対する署名を1人もしくは複数の署名者により付与しなければならない場合に、署名を重畳することで署名データ量を削減できる技術として注目されている。
アグリゲート署名の代表的な特徴を示す。複数の文書を複数人で署名する場合、図23に示されるように、通常の電子署名を用いると署名データは文書の数だけ必要となる。これに対して、アグリゲート署名を用いれば、図24に示されるように、各文書の署名を重畳(アグリゲーション)して1つの署名とすることが可能となり、署名データ量の削減が可能となる。
【0012】
現在、アグリゲート署名の構成方法としては、文献 A. Lysyanskaya, et al., "Sequential Aggregate Signatures from Trapdoor Permutations," EUROCRYPT 2004, LNCS 3027, pp. 74-90, 2004 に記載の、RSA署名をベースとしたシーケンシャルアグリゲート署名と、文献 D. Boneh, et al., "Aggregate and Verifiably Encrypted Signature from Bilinear Maps," EUROCRYPT 2003, LNCS 2656, pp.416-432, 2003 に記載の、楕円曲線暗号技術の一つであるペアリングをベースとしたジェネラルアグリゲート署名の2つが知られている。上記削除署名で使用されているのはジェネラルアグリゲート署名である。
【0013】
さらに、RSAアキュムレータという技術が文献 J. Benaloh, and M. de Mare, "One-way Accumulator RSA decentralized alternative to digital signatures," EUROCRYPT ‘93, LNCS 765, pp.274-285, Springer-Verlag, 1994に記載されている。RSAアキュムレータとは、RSA暗号をベースにしたハッシュ関数の一種で、重畳機能を持つ。RSA暗号で用いられるように二つの素数p,qの積であるNを使用する。そして、Nと互いに素な元g、および、元gの位数φ=LCM(p−1)(q−1)を使用する。RSAアキュムレータはRSA仮定という安全性の元に、擬似可換という性質を持つ。擬似可換とは、全てのx∈Xかつ全てのy1,y2∈Yにおいて、関数f:X×Y→Xが以下の性質を満たすならば、関数fは擬似可換の性質をもつという。
f(f(x,y1),y2)=f(x,y2),y1)
【0014】
つまり、関数fを何度も繰り返し適用する場合に、yに対してその順序を変更可能(可換)であるという性質をもつ。上記の文献におけるRSAアキュムレータは、関数fを
N(x、y)=xH(y) mod N
で実現している。ここで、Hは一方向性のハッシュ関数(SHA1等)である。
RSAアキュムレータでは、
H(y1)×H(y2) mod N=(gH(y1) mod N)H(y2) mod N
=(gH(y2) mod N)H(y1) mod N
が成り立つ。つまり、ハッシュ値の順不同の重畳が可能となる。これに加えて、RSAアキュムレータは一方向性を持つため、(gH(y) mod N)とH(y),Nから、xを計算することは困難である(RSA仮定)。
【0015】
ところで、上述した墨塗り署名技術、削除署名技術、墨塗り・削除署名技術において、各部分文書に対して、墨塗りおよび削除に関する各種の状態を設定することができる。ここで、非特許文献1に記載された墨塗り・削除署名技術を例に挙げて、各部分文書に対して設定される各種の状態について説明する。
【0016】
図25は、従来技術における部分文書状態および状態遷移を示す図表である。図25において、図表3400には、各部分文書に設定可能な各種の状態が表現されている。具体的には、墨塗り(Sanitization)および削除(Deletion)に関する、禁止(Prohibited)、可能(Allowed)、済み(Sanitized or Deleted)の属性の組み合わせによって6個の状態が表現されている。
【0017】
ここでは、これら6個の状態をそれぞれ、SADA(墨塗り可能、削除可能)、SPDP(墨塗り禁止、削除禁止)、SADP(墨塗り可能、削除禁止)、SDA(墨塗り済み、削除可能)、SDP(墨塗り済み、削除禁止)およびD(削除済み)と表記する。
【0018】
また、これらの状態間の遷移をあらわす状態遷移として、9個の状態遷移Ta〜Tiが表現されている。たとえば、状態遷移Taは、墨塗り可能でかつ削除可能な状態であるSADAから墨塗り禁止でかつ削除禁止な状態であるSPDPへの遷移をあらわしている。
【0019】
これら6個の状態および9個の状態遷移は、単に部分文書に対するプロパティとして設定されているのではなく、データの保持手法によって物理的に設定されている。これにより、部分文書を、公開、非公開および改訂の可否に応じて各種の状態に設定することができ、プロパティの誤設定などによる電子文書の情報漏洩を防ぐことができる。
【先行技術文献】
【特許文献】
【0020】
【特許文献1】特開2004−364070号公報
【特許文献2】特開2006−60722号公報
【特許文献3】特許第2666191号
【非特許文献】
【0021】
【非特許文献1】佐野誠、伊豆哲也、國廣昇、太田和夫、武仲正彦著「部分情報の墨塗りと削除が可能な電子署名方式について」2007年暗号と情報セキュリティシンポジウム予稿集
【発明の概要】
【発明が解決しようとする課題】
【0022】
しかしながら、上述した従来技術によれば、部分文書を、墨塗り禁止でかつ削除可能な状態(SPDA)に設定する改訂をおこなうことができなかった。このため、何らかの理由により削除は許可するが墨塗りは禁止する部分文書が存在する場合に、当該部分文書を墨塗り禁止でかつ削除可能な状態に設定することができず、ユーザの利便性を低下させているという問題があった。
【0023】
ここで、上述した従来技術の問題点を具体的に説明する。図26は、従来技術の問題点の一例を示す説明図である。図26において、オリジナル文書3510は、ある市(○×市)が実施した公共工事の入札結果をあらわす電子文書である。具体的には、1ページ目には、最終的な落札者の名称(○○建設)および落札額(五拾万円)を含む情報が記載されている。
【0024】
2ページ目には、他の入札者の名称(△△建設)および入札額(四拾万円)を含む情報が記載されている。3ページ目には、他の入札者の名称(××建設)および入札額(三拾万円)を含む情報が記載されている。また、このオリジナル文書3510には、○×市の公印を示す電子署名Xが付与されている。ここでは、各ページ1〜3を部分文書P1〜P3とする。
【0025】
入札結果の公開請求があった場合、オリジナル文書3510をそのまま公開すると、部分文書P2および部分文書P3に記載されている入札者の名称や入札額などの個人情報が公開されてしまう。このような場合、個人情報の保護を考慮して、オリジナル文書3510の部分的な秘匿が必要となる。
【0026】
そこで、墨塗り・削除署名技術を利用してオリジナル文書3510を改訂し、部分的な情報秘匿を実現する。改訂文書3520は、オリジナル文書3510から秘匿性を有する個人情報が削除された電子文書である。この改訂文書3520が公開された場合、秘匿性を有する個人情報が削除されているため、閲覧者は、部分文書P2,P3の具体的な内容を特定することができない。つまり、個人情報は適切に保護されており、この改訂文書3520は望ましいものとなっている。
【0027】
また、改訂文書3530は、オリジナル文書3510における秘匿性を有する個人情報が墨塗りされた電子文書である。この改訂文書3530が公開された場合、秘匿性を有する個人情報は墨塗りされているため、閲覧者は、部分文書P2,P3の具体的な内容を特定することができない。しかし、墨塗りされている部分文書P2,P3をもとに入札者数を推定することができるなど、完全に秘匿性を保証することができず、この改訂文書3530は必ずしも望ましいものとなっていない場合があった。
【0028】
このような状況を回避するために、オリジナル文書3510の作成時に、部分文書P2,P3を墨塗り禁止でかつ削除可能な状態(SPDA)に設定することで、部分文書P2,P3を隠蔽する手段として、墨塗りを選択することを防ぐ技術が求められていた。
【0029】
ここでは、上述した従来技術による問題点を解消するため、署名時および改訂時において、電子文書の検証のためのデータ量を削減し、一つの電子署名データを保持することにより、電子文書の完全性を担保することができる電子署名技術を提供することを目的とする。
【課題を解決するための手段】
【0030】
上述した課題を解決するため、コンピュータが実行する電子署名方法であって、前記コンピュータが、整数vを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書(mi)に分割し、ハッシュ関数Gを用い、各部分文書miを用いて得られるハッシュ値であるGiを生成し、前記電子文書に対する署名となる電子署名σ=vΠ1/GiGiを生成し、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で2度累乗し(σ→σGiGi)、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い(σ→σGi)、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Giで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Gと同一又は異なるハッシュ関数Hを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Hiを累乗し(σ→σHi)、
部分文書の墨塗りを禁止する場合は、電子署名シグマに墨塗りを禁止する部分文書を用いて得られるハッシュ値Hiで累乗し(σ→σHi)、
電子署名σを更新する。
【0031】
また、電子署名方法をコンピュータに実行させる電子署名プログラムは、
電子文書と、該電子文書に対する署名となる電子署名σ=Sig(vΠ1/GiGi)とを受信するとともに、前記電子署名σは、電子署名整数vを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書(mi)に分割し、ハッシュ関数Gを用い、各部分文書を用いて得られるハッシュ値であるGiを生成し、前記電子文書に対する署名となる電子署名σ=Sig(vΠ1/GiGi)を生成して生成されたものを受信し、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で2度累乗し(σ→σGiGi)、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い(σ→σGi)、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Giで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Gと同一又は異なるハッシュ関数Hを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Hiを累乗し(σ→σHi)、
部分文書の墨塗りを禁止する場合は、電子署名σに墨塗りを禁止する部分文書を用いて得られるハッシュ値Hiで累乗し(σ→σHi)、
電子署名σを更新することをコンピュータに実行させる。
【0032】
コンピュータが実行する電子署名装置は、電子文書と、該電子文書に対する署名となる電子署名σ=vΠ1/GiGiとを受信するとともに、前記電子署名σは、電子署名整数vを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書(mi)に分割し、ハッシュ関数Gを用い、各部分文書を用いて得られるハッシュ値であるGiを生成し、前記電子文書に対する署名となる電子署名σ=vΠ1/GiGiを生成して生成されたものを受信する受信手段と、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で2度累乗し(σ→σGiGi)、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い(σ→σGi)、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Giで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Gと同一又は異なるハッシュ関数Hを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Hiを累乗し(σ→σHi)、
部分文書の墨塗りを禁止する場合は、電子署名σに墨塗りを禁止する部分文書を用いて得られるハッシュ値Hiで累乗し(σ→σHi)、
電子署名σを更新する改訂更新手段とを備える。
【発明の効果】
【0033】
署名時および改訂時のデータ量を削減し、一つの電子署名データを保持して電子文書の完全性を保証することができる電子署名方法、電子署名プログラムおよび電子署名方法を提供することができる。
【図面の簡単な説明】
【0034】
【図1】実施の形態の全体システム構成図である。
【図2】実施の形態の電子文書管理装置のハードウェア構成を示す説明図である。
【図3】署名処理の電子文書管理装置(電子署名装置)101の機能ブロック図である。
【図4】改訂処理の電子文書管理装置(電子署名装置)102の機能ブロック図である。
【図5】検証処理の電子文書管理装置(電子署名装置)103の機能ブロック図である。
【図6】署名処理の手順を示すフローチャート(その1)である。
【図7】署名処理の手順を示すフローチャート(その2)である。
【図8】改訂処理の手順を示すフローチャート(その1)である。
【図9】改訂処理の手順を示すフローチャート(その2)である。
【図10】改訂処理の手順を示すフローチャート(その3)である。
【図11】改訂処理の手順を示すフローチャート(その4)である。
【図12】改訂処理の手順を示すフローチャート(その5)である。
【図13】改訂処理の手順を示すフローチャート(その6)である。
【図14】改訂処理の手順を示すフローチャート(その7)である。
【図15】改訂処理の手順を示すフローチャート(その8)である。
【図16】検証処理の手順を示すフローチャート(その1)である。
【図17】検証処理の手順を示すフローチャート(その2)である。
【図18】実施の形態により、実現される7状態を示す図である。
【図19】実施の形態の遷移の状態を示す図である。
【図20】抽出署名の概念を模式的に示す図である。
【図21】従来の墨塗り署名方式の問題点を示す図である。
【図22】従来の削除署名方式の問題点を示す図である。
【図23】通常の電子署名の概念を模式的に示す図である。
【図24】アグリゲート署名の概念を模式的に示す図である。
【図25】従来の部分文書状態および状態遷移を示す図である。
【図26】従来の部分文書状態が7つ示されない場合の問題点を示す図である。
【図27】前提技術1の署名方式の概念を示す図である。
【図28】前提技術2の部分文書状態および状態遷移を示す図である。
【図29】前提技術2の部分文書状態の表現方式を示す説明図である。
【図30】実施の形態の概念を示す概念図である。
【発明を実施するための形態】
【0035】
(前提技術1)
以下、本発明の前提技術に係る署名方式について説明する。
[墨塗り署名へのRSAアキュムレータ導入]
まず、墨塗り署名の処理の一部にRSAアキュムレータを導入する。図21を使って説明する。図21の墨塗り署名では、ID付部分文書のハッシュ値に対して署名しているが、これは、各ID付部分文書M1〜M4のハッシュ値h1〜h4を互いに連結した値h1||h2||h3||h4(||は連結を表す)に対して署名を行っている。これをσ=Sign(H(h1||h2||h3||h4))と書くこととする。ハッシュ値を連結して署名すれば、h1〜h4の情報全てに対して完全性が担保できるが、H(h1||h2||h3||h4)部分に擬似可換性がないため、例えばH(h1||h2||h3)とh4からH(h1||h2||h3||h4)を生成することはできない。署名確認にはVerify(σ,H(h1||h2||h3||h4))とH(h1||h2||h3||h4)が必要なため、H(h1||h2||h3)とh4からでは署名確認はできないことになる。
【0036】
そこで、この部分にRSAアキュムレータを導入する。H(h1||h2||h3||h4)の代わりにgh1×h2×h3×h4 mod Nとすると、署名はσ=Sign(gh1×h2×h3×h4 mod N)となる。そうすれば、RSAアキュムレータの擬似可換性から、(gh1×h2×h3 mod N)h4 mod N=gh1×h2×h3×h4 mod N となるため、(gh1×h2×h3 mod N)とh4から署名確認 Verify(σ,gh1×h2×h3×h4 mod N)が可能となる。
【0037】
[削除用署名の導入]
単純にハッシュ値の連結をRSAアキュムレータに変更するだけでは情報量の削減にはつながらない。情報量を削減するために削除用の署名を導入する。署名を区別するために、RSAアキュムレータへの署名をs=Sign(gh1×h2×h3×h4 mod N)とする。そして、削除用の署名をtとし、このsとtの二つで署名σ=(s,t)と呼ぶことにする。
【0038】
図27に、前提技術1の電子署名の概念を示す。
署名者は、図21の墨塗り署名と同様にID付部分文書M1〜M4を作成し、個別の部分ハッシュ値h1〜h4を作成する。RSAアキュムレータを使用してこれらのハッシュ値h1〜h4を重畳し、s=Sign(gh1×h2×h3×h4 mod N)を計算する。そして、削除用の署名の初期値としてt=gをセットし、署名σ=(s,t)を出力する。
【0039】
抽出者は、図21の墨塗り署名と同様に、削除する(抽出しない)ID付部分文書M1,M3,M4のハッシュ値h1,h3,h4を計算する。そして、削除用の署名tをt’=th1×h3×h4 mod Nにアップデートし、ID付部分文書M2と共にσ’=(s,t’)を公開する。検証者は、公開されたM2からハッシュ値h2を計算し、σ’=(s,t’)とh2から、
Verify(s,t’h2 mod N)=Verify(s,gh1×h2×h3×h4 mod N)
とすることで検証を行う。
【0040】
このようにRSAアキュムレータを使用した削除用署名への重畳により、墨塗り署名で問題となっていた墨塗り時のハッシュ値保持を大幅に削減することができる。ここで、SignとVerifyは任意の署名アルゴリズムを利用できる。
【0041】
このように、前提技術1では、署名を(s、t)の2個持ち、署名tは乱数を利用して初期化(t= gr)し、署名sは署名tの初期値に各部分文書のハッシュ値全てを累乗したものに、一般的な電子署名を施したものである(s= Sig(tΠhi))。部分文書の削除を行う場合、署名tに削除される部分文書ハッシュ値で累乗し(t→thi)、削除する部分文書を消去する(mi→×)。一方部分文書の墨塗りを行う場合は、部分文書をそのハッシュ値で置き換える(mi→hi、hi=H(mi))ようにしている。
【0042】
しかし、上述した前提技術1では、後述する図28の図表600のうち、SADA、SDA、Dの3個の状態とT5、T6、T12の3個の状態遷移しか実現できないこととなる。
【0043】
(前提技術2)
そこで、本発明者らは、前提技術2を提案している。
ここでは、電子文書Mを構成する各構成要素は、当該構成要素と当該構成要素に規定されている第1の電子署名と第2の電子署名との組み合わせによって特定される各種の状態を有している。具体的には、隠蔽可能でかつ削除可能な状態、隠蔽禁止でかつ削除可能な状態、隠蔽禁止でかつ削除禁止な状態、隠蔽可能でかつ削除禁止な状態、隠蔽済みでかつ削除禁止な状態、隠蔽済みでかつ削除可能な状態および削除済みの状態のいずれかの状態を有している。
【0044】
たとえば、ある構成要素が隠蔽可能でかつ削除可能な状態であった場合、改訂者は、この構成要素を任意に隠蔽または削除することができる。ここで、隠蔽とは、たとえば、墨塗り処理などを施すことにより、閲覧者によって認識することができない状態にすることである。削除とは、閲覧者によってその存在を把握することができない状態にすることである。
【0045】
この前提技術2にかかる電子文書管理装置によれば、電子文書Mを、該電子文書Mの真正を検証可能に保持しつつ、該電子文書Mを構成する構成要素に対して、隠蔽禁止でかつ削除可能な状態に設定する改訂をおこなうことができる。さらに、隠蔽禁止でかつ削除可能な状態に設定された構成要素を、隠蔽禁止でかつ削除禁止な状態、または、削除済みの状態に設定することができる。
【0046】
ここで、電子文書Mを構成する各部分文書の状態および状態遷移について説明する。図28は、部分文書状態および状態遷移を示す図表である。なお、部分文書とは、上述した電子文書を構成する構成要素に相当する。
【0047】
図28において、図表600には、電子文書Mを構成する各部分文書に設定可能な部分文書の状態が表現されている。ここでは、墨塗り可能でかつ削除可能な状態を『SADA』、墨塗り禁止でかつ削除可能な状態を『SPDA』、墨塗り禁止でかつ削除禁止な状態を『SPDP』、墨塗り可能でかつ削除禁止な状態を『SADP』、墨塗り済みでかつ削除可能な状態を『SDA』、墨塗り済みでかつ削除禁止な状態を『SDP』、削除済みの状態を『D』と表記する。
【0048】
また、図表600には、状態間の遷移をあらわす状態遷移として、12個の状態遷移T1〜T12が表現されている。これら状態遷移T1〜T12は、改訂者によって各部分文書に対する改訂をおこなう際に、当該各部分文書の状態を他の状態に設定することができる状態遷移をあらわしている。
【0049】
ここで、状態遷移T1を例に挙げると、墨塗り可能でかつ削除可能な状態である『SADA』から、墨塗り禁止でかつ削除可能な状態である『SPDA』への遷移をあらわしている。また、状態遷移T7を例に挙げると、墨塗り禁止でかつ削除可能な状態である『SPDA』から、墨塗り禁止でかつ削除禁止な状態である『SPDP』への遷移をあらわしている。
【0050】
このように、前提技術2では、複数の構成要素(部分文書)からなり、構成要素ごとに、当該構成要素固有の第1の電子署名および第2の電子署名が規定され、かつ前記各第1の電子署名を集約した集約電子署名が関連付けられている電子文書を取得する。そして、その電子文書のうち隠蔽禁止対象となる構成要素の指定を受け付け、隠蔽禁止対象に指定された構成要素と当該構成要素に規定されている第1の電子署名および第2の電子署名の双方とが存在する場合、当該構成要素が隠蔽可能でかつ削除可能な状態であると判断し、隠蔽可能でかつ削除可能な状態であると判断された場合、前記隠蔽禁止対象となる構成要素に規定されている第2の電子署名を削除する(図28のSADA → SPDAの状態遷移)。
【0051】
また、電子文書のうち削除禁止対象となる構成要素の指定を受け付け、削除禁止対象に指定された構成要素と当該構成要素に規定されている第1の電子署名とが存在する場合、当該構成要素が削除可能な状態であると判断し、削除可能な状態であると判断された場合、前記削除禁止対象となる構成要素に規定されている第1の電子署名を削除することが可能である(図28のSPDA→SPDPの状態遷移)。
【0052】
また、電子文書のうち削除対象となる構成要素の指定を受け付け、削除対象に指定された構成要素と当該構成要素に規定されている前記第1の電子署名とが存在する場合、当該構成要素が削除可能な状態であると判断し、削除可能な状態であると判断された場合、削除対象となる構成要素に規定されている第1の電子署名を集約電子署名の中から削除するとともに、構成要素および当該構成要素に規定されている第1の電子署名を削除することが可能である(図28のSPDA→Dの状態遷移)。
【0053】
さらに、前提技術2によれば、電子文書を構成する構成要素を、隠蔽可能でかつ削除可能な状態から隠蔽禁止でかつ削除可能な状態に設定することができる。さらに、隠蔽禁止でかつ削除可能な状態に設定されたその構成要素を、隠蔽禁止でかつ削除可能な状態または削除済みの状態に設定することができる。
同様に、図28に示す構成要素(部分文書)の7状態と12状態遷移を図29に示すように、第1の電子署名と第2の電子署名と集約電子署名との状態で表現可能である。
【0054】
前提技術2によれば、改訂対象となる構成要素が、隠蔽禁止、削除禁止および削除済みのいずれかに改訂された改訂文書を取得し、前記第1の電子署名、前記第2の電子署名および前記集約電子署名に基づいて、前記改訂文書の真正を検証し、その検証結果を出力する。そして、改訂対象に指定された構成要素の状態が隠蔽禁止、削除禁止および削除済みのいずれかの状態に設定された場合であっても、当該改訂対象を含む改訂文書の真正性を検証することができる。
【0055】
一方、前提技術2によれば、管理するデータ量が多大になる。例えば、1000ページからなる文書を1ページ毎に上述の状態管理する場合、第1の部分署名を1000個、第2の部分署名を1000個、第1の集約電子署名を1個、第2の集約電子署名を1個と、合計2002個の電子署名情報を保持する必要がある。つまり、部分文書数をn個とすると、署名情報は2n+2個保持する必要がある。もし、この文書に対して、1文字単位の詳細な制御を実施したい場合、部分文書数は数百倍となり、それに応じて署名情報量も数百倍となってしまう。さらに、このような詳細な制御を行う場合、対象となる部分文書の情報量は小さくなるのに対して、1個当たりの署名情報量は変化しない。そのため、詳細な制御を行う場合、元の文書よりも署名情報量の方が大きくなってしまうという問題もある。
【0056】
(前提技術3)
そこで、本発明者らはさらに、前提技術3を提案している。
この前提技術3は、対象となる電子文書を複数の部分文書(mi)に分割し、電子文書に対する署名となる署名sと部分文書の改訂用の署名tとについて、署名tは初期化を行う一方、署名sは署名tに各部分文書のハッシュ値全てを2度累乗したものに、電子署名を施し(s=Sig(tΠhihi))、部分文書の改訂時において、部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、署名tに削除される部分文書のハッシュ値で2度累乗し(t→thihi)、墨塗り禁止とされている場合は、署名tに削除される部分文書のハッシュ値で累乗を行い、ともに、削除する部分文書を消去し、部分文書の墨塗りを行う場合は、部分文書をそのハッシュ値で置き換え(mi→hi)、部分文書の削除を禁止する場合は、署名tに削除を禁止する部分文書を2度ハッシュ関数にかけた値(di = H(H(mi)))で累乗し(t→tdi)、部分文書の墨塗りを禁止する場合は、署名tに墨塗りを禁止する部分文書のハッシュ値で累乗し(t→thi)、署名tを更新するようにする。
【0057】
より具体的には、例えば、部分文書の状態が墨塗り可能で削除可能な状態において、改訂用の署名t、および部分文書の状態miとした場合に、部分文書を墨塗り禁止で削除可能な状態に改訂する場合、署名tはthiと改訂され、部分文書の状態miはそのままであり、部分文書を墨塗り可能で削除可能な状態に改訂する場合、署名tはtdiと改訂され、前記部分文書の状態miはそのままであり、部分文書を墨塗り禁止で削除禁止な状態に改訂する場合、署名tはthidiと改訂され、部分文書の状態miはそのままであり、部分文書を墨塗り済みで削除可能な状態に改訂する場合、署名tはそのままであり、部分文書の状態miがhiと改訂され、部分文書を墨塗り済みで削除禁止な状態に改訂する場合、署名tはtdiと改訂され、部分文書の状態miがhiと改訂され、部分文書を削除する状態に改訂する場合は、署名tはthihiと改訂され、部分文書の状態miは削除されるようにしている。
【0058】
この場合、部分文書それぞれには、いずれの状態であるかを判別するための状態設定を行っており、検証時には、リカバリー方式を採用し、この状態設定に基づいて部分文書から初期化状態にあるtを同様に更新してゆき、文書の改訂が正当に行われているか否かを検証する。
【0059】
図30に上述した前提技術3の概念を示している。
すなわち、図30においては、S1において、対象となる電子文書を複数の部分文書(mi)に分割し、電子文書に対する署名となる署名sと部分文書の改訂用の署名tとについて、署名tは初期化を行う一方、署名sは署名tに各部分文書のハッシュ値全てを2度累乗したものに、電子署名を施し(s=tΠhihi)ている。
【0060】
また、S2において、部分文書(m3)を削除する場合又は墨塗りされている部分(ハッシュ値に置き換えられているハッシュ値h3)を削除する場合は、墨塗り禁止とされている場合を除き、署名tに削除される部分の文書のハッシュ値で2度累乗し(t→t’=th3h3)、墨塗り禁止とされている場合は、署名tに削除される部分文書のハッシュ値で累乗を行い(t→th3)、ともに部分文書(m3)またはハッシュ値(h3)を消去する。
また、S3において、部分文書(m5)の墨塗りを行う場合は、部分文書をそのハッシュ値で置き換える(m5→h5)。
また、S4において、部分文書(m4)の削除を禁止する場合は、署名tに削除を禁止する部分文書を2度ハッシュ関数にかけた値(di = H(H(mi)))で累乗(t→td4)する。
【0061】
また、S5において、部分文書(m6)の墨塗りを禁止する場合は、署名tに墨塗りを禁止する部分文書のハッシュ値で累乗する(t→th4)。
このように署名tを更新する。
そして、検証時においては、例えば、S6に示されるようにv=Verify(s)として、削除禁止とされている部分文書についてのvΠdiの値と、墨塗り禁止とされていない部分文書についてのt’ΠhiΠhiの値を比較して、検証を行う。
【0062】
以上の説明より明らかなように、前提技術3によれば、部分文書を墨塗り禁止でかつ削除可能な状態に設定可能で、かつ署名情報量が部分文書数に比例せず、常に2個(s,t)で実現可能であることより、より柔軟な電子文書の改訂を実現し、ユーザの利便性の向上を図ることができるという効果を奏する。すなわち、前提技術3によれば、2個のデータ(s,t)を保持して、上述の7個の状態と12個の状態遷移を部分文書数に比例しない署名情報量で実現できる。
【0063】
しかし、かかる前提技術3においても、2個のデータを保持するため、可能ならば1個のデータにすることができれば、データの保持量を最少とすることが可能である。以下、本発明者らが実現したデータ量の削減について、本発明の実施の形態として説明する。
【0064】
(実施の形態)
(電子文書管理システム100のシステム構成)
以下、実施の形態にかかる電子署名装置(電子文書管理システム)のシステム構成について説明する。図1は、この実施の形態にかかる電子文書管理システムのシステム構成図である。
【0065】
図1において、電子文書管理システム100は、複数の電子文書管理装置101,102,103(図1では3台)が、インターネット、LAN、WANなどのネットワーク110を介して相互に通信可能に接続されている。
【0066】
電子文書管理装置101は、電子文書Mに電子署名を施す署名者が使用するコンピュータ装置である。署名者は、この電子文書管理装置101を使用して、真正性を保証するための電子署名を電子文書Mに施すことができる。具体的には、署名者の秘密鍵を用いて生成された電子署名を電子文書Mに付与する。
【0067】
この電子文書Mは、行政機関から発行される電子戸籍台帳、医療機関から発行される電子カルテおよび教育機関から発行される電子成績表などの秘匿性を有する情報である。また、各市町村の行政機関に対して公開請求することができる公文書などであってもよい。
【0068】
電子文書管理装置102は、電子署名が施された電子文書Mを改訂する改訂者が使用するコンピュータ装置である。改訂者は、この電子文書管理装置102を使用して、電子文書Mを構成する部分文書の状態を変更(改訂)することにより、改訂文書Rを作成することができる。このとき電子文書管理装置102は部分文書をどのような状態に改訂したかを示す改訂状態を部分文書に対応して付すことができる。
【0069】
電子文書管理装置103は、改訂文書Rの真正性を検証する検証者が使用するコンピュータ装置である。検証者は、この電子文書管理装置103を利用して、改訂文書Rの真正性を検証することができる。このとき、第三者機関から発行される公開鍵を用いて、改訂文書Rの真正性を検証する。
【0070】
なお、署名者、改訂者および検証者が使用するコンピュータ装置を、それぞれ電子文書管理装置101,102,103としたが、これに限らない。たとえば、1台のコンピュータ装置(たとえば、電子文書管理装置101)を使用して、署名、改訂および検証を行うこととしてもよい。また、電子文書Mの改訂は、複数の改訂者によって追加的に行われることとしてもよい。
【0071】
ここで、電子文書Mの署名、改訂および検証の一連の流れを説明する。まず、電子文書管理装置101において、電子文書Mに対して、署名者による電子署名が施される。このあと、電子文書管理装置102において、電子署名が施された電子文書Mに対して、何らかの改訂がおこなわれる。そして、検証者による公開請求などに応じて、改訂文書Rが電子文書管理装置102から電子文書管理装置103に送信され、電子文書管理装置103において、改訂文書Rの真正性が検証される。
【0072】
たとえば、電子文書管理装置103を利用して、ある市町村の行政機関に設置されている電子文書管理装置102に対して公害問題に関する公文書の公開請求をしたとする。その結果、電子文書管理装置103のユーザは、公害問題に関する公文書を取得することができ、当該公文書を閲覧することができる。
【0073】
このとき、行政機関の職員は、電子文書管理装置102を利用し公開する公文書に記載されている内容に対して各種属性を設定することができる。たとえば、電子文書管理装置101で作成・署名された公文書に対し、公開義務のある大気汚染や水質汚濁の現状については強制開示する文書として設定し、実際に公害による被害を受けた被害者の氏名を墨塗りする文書として設定し、さらに、被害者の住所が記載された箇所については削除する文書として設定することができる。
【0074】
このように、電子文書管理装置103のユーザは、公開する公文書の中の任意の文書に対して各種属性を設定することができる。また、各種属性を設定するなどの改変がおこなわれた公文書の真正性については、たとえば、電子文書管理装置103において検証することができ、不正な改変がおこなわれていないか否かを検証することができる。
【0075】
[電子文書管理装置のハードウェア構成]
まず、この実施の形態にかかる電子文書管理装置101,102,103(以下、単に「電子文書管理装置101」とする)のハードウェア構成について説明する。図2は、この発明の実施の形態にかかる電子文書管理装置のハードウェア構成を示す説明図である。
【0076】
図2において、電子文書管理装置101は、コンピュータ本体210と、入力装置220と、出力装置230と、から構成されており、不図示のルータやモデムを介してLAN,WANやインターネットなどのネットワーク110に接続可能である。
【0077】
コンピュータ本体210は、CPU、メモリ、インターフェースを有する。CPUは、電子文書管理装置101の全体の制御を司る。メモリは、ROM、RAM、HD、光ディスク211、フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
【0078】
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク211はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク211およびフラッシュメモリはコンピュータ本体210に対し着脱自在である。インターフェースは、入力装置220からの入力、出力装置230への出力、ネットワーク110に対する送受信の制御を行う。
【0079】
また、入力装置220としては、キーボード221、マウス222、スキャナ223などがある。キーボード221は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式であってもよい。マウス222は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。スキャナ223は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体210内のメモリに格納される。なお、スキャナ223にOCR機能を持たせてもよい。
【0080】
また、出力装置230としては、ディスプレイ231、スピーカ232、プリンタ233などがある。ディスプレイ231は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ232は、効果音や読み上げ音などの音声を出力する。また、プリンタ233は、画像データや文書データを印刷する。
【0081】
[署名者の電子文書管理装置101]
つぎに、実施の形態にかかる署名者の電子文書管理装置101の機能的構成について説明する。図3は、この発明の実施の形態にかかる電子文書管理装置の機能的構成を示すブロック図である。図3において、電子文書管理装置101は、受信手段を備えた入力部C01と、分割部C02と、ハッシュ部C03と、乱数生成部C04と、判定部C05と、署名部C06と、送信手段を備えた出力部C07と、から構成されている。これら各部は、必要に応じてコンピュータ内に設けられた記憶部であるメモリを共用または専用することができる。
【0082】
これら各機能C01〜C07は、記憶領域に格納された当該機能に関するプログラムをCPUに実行させることにより、当該機能を実現することができる。また、各機能C01〜C07からの出力データはメモリ等により構築される記憶領域に保持される。また、図3中矢印で示した接続先の機能的構成は、接続元の機能からの出力データを記憶領域から読み込んで、当該機能に関するプログラムをCPUに実行させる。
【0083】
まず、入力部C01は、入力された電子文書Mをうけ、分割部C02で複数の部分文書{mi}に分割する。次にハッシュ部C03は、各部分文書ごとに、乱数生成部C04から全ての部分文書に共通の乱数IDと部分文書に固有の乱数IDiを受け取り、di=ID||IDi||miに対して値Gi=ID||IDi||GN(di)を計算し、判定部C05はGiが素数であるかを判定し、Giが素数でなければ、乱数生成部C04における部分文書に固有の乱数IDiに戻る。
【0084】
ここで記号x||yはデータxとデータyの連結を表している。また部分文書に固有の乱数IDiが部分文書の順番に対して昇順(または降順)になっていなければ、乱数生成部C04における部分文書に固有の乱数IDiに戻る。そして、署名部C06では、秘密鍵SKを使用して、全ての部分文書に対する署名
σ=vΠ1/GiGi
を計算し、出力部C07から文書D={di}と署名σを出力する。
なお、秘密鍵の生成においては、2つの同じビット長の素数pとqを秘密鍵として生成し、合成数N=p×qを生成し、1以上N未満の整数vを公開鍵として生成している。
【0085】
ここで、電子文書Mは、コンピュータ上で扱われる文書の総称であり、文書作成アプリケーションなどを用いて作成された電子データである。ここで、電子署名とは、電子文書の正当性を認証するために当該電子文書に付与される署名情報である。すなわち、電子署名は、物理的な署名(印鑑など)と同様に、電子文書の正しい作成者と当該電子文書の真正性(改ざんが行われていないこと)を証明するためのものである。また、公開鍵暗号の原理などを利用することにより、任意のユーザによって電子署名の正当性を検証可能にすることができる。
【0086】
この電子文書Mを構成する各構成要素は、署名σと部分文書の状態により特定される各種の状態を有している。具体的には、隠蔽可能でかつ削除可能な状態(SADA)、隠蔽禁止でかつ削除可能な状態(SPDA)、隠蔽禁止でかつ削除禁止な状態(SPDP)、隠蔽可能でかつ削除禁止な状態(SADP)、隠蔽済みでかつ削除禁止な状態(SDP)、隠蔽済みでかつ削除可能な状態(SDA)および削除済み(D)の状態のいずれかの状態を有している。
【0087】
たとえば、ある構成要素が隠蔽可能でかつ削除可能(SADA)な状態であった場合、改訂者は、この構成要素を任意に隠蔽または削除することができる。ここで、隠蔽とは、たとえば、墨塗り処理などを施すことにより、閲覧者によって認識することができない状態にすることである。削除とは、閲覧者によってその存在を把握することができない状態にすることである。
【0088】
電子文書管理装置101で処理された段階では、全て隠蔽可能で且つ削除可能(SADA)な状態である。なお、この電子文書Mは、電子文書管理装置101において作成されてもよく、また、他のコンピュータ装置において作成されてもよい。他のコンピュータ装置において電子文書Mが作成された場合、入力部C01は、インターネットなどのネットワーク110を介して他のコンピュータ装置から電子文書Mを取得することとなる。
【0089】
[改訂者の電子文書管理装置102]
つぎに、実施の形態にかかる改訂者の電子文書管理装置102の機能的構成について説明する。図4は、電子文書管理装置102の機能的構成を示すブロック図である。図4において、電子文書管理装置102は、受信手段を構成する入力部D01と、分割部D02と、指定部D03と、判断部D04と、改訂部D05と、設定部D06と、送信手段を構成する出力部D07と、ハッシュ部D08と、重畳部D09と、から構成されている。
【0090】
これら各機能D01〜D09は、記憶領域に格納された当該機能に関するプログラムをCPUに実行させることにより、当該機能を実現することができる。また、各機能D01〜D07からの出力データは記憶領域に保持される。また、図4中矢印で示した接続先の機能的構成は、接続元の機能からの出力データを記憶領域から読み込んで、当該機能に関するプログラムをCPUに実行させる。
【0091】
まず、入力部D01は、101で署名処理された電子文書D、署名σを受信し、分割部D02で文書を複数の部分文書{di}に分割する。
【0092】
指定手段を構成する指定部D03は、入力部D01によって取得され、分割部D02で分割された部分文書diのうち隠蔽禁止対象となる構成要素の指定を受け付ける機能を有する。具体的には、たとえば、図2に示したキーボード221やマウス222などの入力装置220を改訂者が操作することによって、隠蔽禁止対象となる構成要素の指定を受け付ける。
【0093】
判断部D04は、指定部D03によって隠蔽禁止対象に指定された部分文書の状態から、当該部分文書が隠蔽可能か隠蔽禁止か、あるいは削除可能か削除禁止かという状態を判断する機能を有する。この判断を行うためには、何らかの状態を表す情報を別途持つこともできるし、部分文書の署名検証機能により、判断を行っても良い。
【0094】
改訂部D05は、判断部D04によって隠蔽可能であると判断された場合、隠蔽禁止対象となる部分文書に対して値Gi=ID||IDi||GN(di)をハッシュ部D08で計算し、入力部D01に入力された署名σに重畳部D09を使用して重畳する(σ←σGi)。
【0095】
設定部D06は、改訂部D05によって改訂された結果、隠蔽禁止対象となる部分文書を、隠蔽可能から隠蔽禁止な状態に設定する機能を有する。すなわち、隠蔽禁止対象となる隠蔽可能でかつ削除可能な状態(SADA)の部分文書の情報で署名σが改訂された場合、当該部分文書を隠蔽禁止でかつ削除可能(SPDA)な状態に設定する。この結果、隠蔽禁止対象に指定された隠蔽可能でかつ削除可能な状態(SADA)の構成要素は、削除することはできるが隠蔽することができない隠蔽禁止でかつ削除可能な状態(SPDA)となる。また、隠蔽禁止対象となる隠蔽可能でかつ削除禁止な状態(SADP)の部分文書の情報で署名σが改訂された場合、当該部分文書を隠蔽禁止でかつ削除禁止(SPDP)な状態に設定する。この結果、隠蔽禁止対象に指定された隠蔽可能でかつ削除禁止な状態(SADP)の構成要素は、隠蔽することも削除することもできない隠蔽禁止でかつ削除禁止な状態(SPDP)となる。
【0096】
また、指定部D03は、部分文書diのうち隠蔽対象となる部分文書の指定を受け付けることとしてもよい。改訂部D05は、判断部D04によって隠蔽可能な状態であると判断された場合、隠蔽対象となる部分文書に対して値Gi=ID||IDi||GNをハッシュ部D08を使用して計算し、部分文書diを値Giによって置き換える。この結果、隠蔽対象に指定された隠蔽可能な状態の部分文書は、隠蔽された隠蔽済みの状態となる。
【0097】
指定部D03は、部分文書diのうち削除禁止対象となる部分文書の指定を受け付けることとしてもよい。改訂部D05は、判断部D04によって削除可能な状態であると判断された場合、削除禁止対象となる部分文書に対するハッシュ値Hi=H(Gi)=H(ID||IDi||GN(di))をハッシュ部D08を二回使用して計算し、入力部D01に入力された署名σに重畳部D09を使用して重畳する(σ←σHi)。この結果、削除禁止対象に指定された削除可能な状態の部分文書は、削除することができない削除禁止の状態となる。
【0098】
改訂部D05は、判断部D04によって削除可能でかつ隠蔽可能な状態(SADA)であると判断された場合、削除対象となる部分文書に対して値Gi=ID||IDi||GN(di)をハッシュ部D08で計算し、入力部D01に入力された署名σに重畳部D09を使用してそのハッシュ値を2回重畳する(σ←σGiGi)。
【0099】
また、改訂部D05は、判断部D04によって削除可能でかつ隠蔽禁止の状態(SPDA)であると判断された場合、削除対象となる部分文書に対して値Gi=ID||IDi||GN(di)をハッシュ部D08で計算し、入力部D01に入力された署名σに重畳部D09を使用してハッシュ値を重畳する(σ←σGi)。
【0100】
また、改訂部D05は、判断部D04によって削除可能でかつ隠蔽済みの状態(SDA)であると判断された場合、削除対象となる部分文書は値Gi=ID||IDi||GN(di)となっているので、入力部D01に入力された署名σに重畳部D09を使用してハッシュ値を2回重畳する(σ←σGiGi)。
【0101】
また、設定部D06は、改訂部D05によって削除された結果、削除対象となる部分文書を、削除可能な状態から削除済みの状態に設定し、部分文書di自体を削除する。この結果、削除対象に指定された削除可能な状態の部分文書は、電子文書Mの中から削除された削除済みの状態(D)となる。
【0102】
なお、上述した隠蔽禁止対象となる部分文書の指定と、削除禁止対象および削除対象となる部分文書の指定とは、それぞれ異なる電子文書管理装置102において行われてもよい。すなわち、一方の電子文書管理装置102において、隠蔽可能でかつ削除可能な状態(SADA)の部分文書を隠蔽禁止対象として指定し、他方の電子文書管理装置102において、部分文書でかつ削除可能な状態に設定された部分文書を削除禁止対象または削除対象として指定する。
【0103】
出力部D07は、設定部D06によって改訂・設定された電子文書M(後述する改訂文書R)および署名σを出力する機能を有する。出力部D07による出力形式は、外部のコンピュータ装置(たとえば、電子文書管理装置102,103)、プリンタ233での印刷出力、メモリへのデータ出力(保存)のいずれであってもよい。
【0104】
また、入力部D01は、改訂対象となる部分文書が、既に改訂された改訂文書Rを取得する機能を有する。具体的には、設定部D06によって構成要素の状態が設定された改訂文書Rを取得する機能を有する。改訂文書Rは、電子文書Mを構成する構成要素に対して改訂が行われた電子データである。たとえば、隠蔽禁止対象に指定された構成要素の状態が、隠蔽可能でかつ削除可能な状態(SADA)から隠蔽禁止でかつ削除可能な状態(SPDA)に設定された改訂文書Rである。
【0105】
この改訂文書Rは、検証者から改訂者に対して改訂文書Rの公開請求があった場合に、改訂者の電子文書管理装置102から検証者の電子文書管理装置103に送信(出力)されることとなる。そして、検証者の電子文書管理103の入力部E01により、改訂者の電子文書管理装置102から送信された改訂文書Rを取得する。
【0106】
[検証者の電子文書管理装置103]
つぎに、実施の形態にかかる検証者電子文書管理装置103の機能的構成について説明する。図5は、電子文書管理装置103の機能的構成を示すブロック図である。図5において、電子文書管理装置103は、受信手段を構成する入力部E01と、分割部E02と、判断部E03と、検証部E04と、送信手段を構成する出力部E05と、ハッシュ部E06と、重畳部E07と、署名件勝負E08と、から構成されている。
【0107】
これら各機能E01〜E08は、記憶領域に格納された当該機能に関するプログラムをCPUに実行させることにより、当該機能を実現することができる。また、各機能E01〜E08からの出力データは記憶領域に保持される。また、図5中矢印で示した接続先の機能的構成は、接続元の機能からの出力データを記憶領域から読み込んで、当該機能に関するプログラムをCPUに実行させる。
【0108】
入力部E01は、電子文書管理装置101、102で署名処理された電子文書Mもしくは改訂文書R、署名σを受信し、分割部E02で文書を複数の部分文書{di}に分割する。ここで、全ての部分文書に共通の乱数IDに等しくない値が含まれている、または、各部分文書に固有の乱数IDiが昇順(または降順)となっていない場合には、署名は正当でない(NG)と判断し、出力部E05からその署名検証の結果を正当でない(NG)と出力(送信)する。
【0109】
判断部E03は、各部分文書の状態から、当該部分文書が隠蔽可能か隠蔽禁止か、あるいは削除可能か削除禁止かという状態を判断する機能を有する。この判断を行うためには、何らかの状態を表す情報を別途持つこともできるし、部分文書の署名検証機能により、判断を行っても良い。
【0110】
検証部E04は、判断部E03によってある部分文書が隠蔽可能かつ削除可能な状態(SADA)と判断された場合、その対象となる部分文書に対して値Gi=ID||IDi||GN(di)をハッシュ部E06を使用して計算し、入力部E01に入力された(もしくは検証部E04で改訂された)署名σに重畳部E07を使用してハッシュ値を2回重畳する(σ←σGiGi)。
【0111】
また、検証部E04は、判断部E03によってある部分文書が隠蔽禁止かつ削除可能な状態(SPDA)と判断された場合、その対象となる部分文書に対して値Gi=ID||IDi||GN(di)を、ハッシュ部E06を使用して計算し、入力部E01に入力された(もしくは検証部E04で改訂された)署名σに重畳部E07を使用してハッシュ値を重畳する(σ←σGi)。
【0112】
また、検証部E04は、判断部E03によってある部分文書が隠蔽済みで削除可能な状態(SDA)と判断された場合、その対象となる部分文書は値Gi=ID||IDi||GN(di)に置き換わっているので、そのハッシュ値そのままを使用し、入力部E01に入力された(もしくは検証部E04で改訂された)署名σに重畳部E07を使用してハッシュ値を2回重畳する(σ←σGiGi)。
【0113】
また、検証部E04は、判断部E03によってある部分文書が削除禁止かつ隠蔽可能な状態(SADP)と判断された場合、その対象となる部分文書に対して値Gi=ID||IDi||GN(di)とハッシュ値Hi=H(Gi)を、ハッシュ部E06を使用して計算し、入力部E01に入力された(もしくは検証部E04で改訂された)署名σに重畳部E07を使用して値Giを2回重畳する(σ←σGiGi)。また、公開鍵PKに含まれる(もしくは検証部E04で改訂された)値vに重畳部E07を使用してハッシュ値Hiを重畳する(v←vHi)。
【0114】
また、検証部E04は、判断部E03によってある部分文書が削除禁止かつ隠蔽禁止な状態(SPDP)と判断された場合、その対象となる部分文書に対して値Gi=ID||IDi||GN(di)とハッシュ値Hi=H(Gi) を、ハッシュ部E06を使用して計算し、入力部E01に入力された(もしくは検証部E04で改訂された)署名σに重畳部E07を使用して値Giを重畳する(σ←σGi)。また、公開鍵PKに含まれる(もしくは検証部E04で改訂された)値vに重畳部E07を使用してハッシュ値Hiを重畳する(v←vHi)。
【0115】
また、検証部E04は、判断部E03によってある部分文書が削除禁止かつ隠蔽済みな状態(SDP)と判断された場合、その対象となる部分文書が値Gi=ID||IDi||GN(di)で置き換えられているので、さらにそのハッシュ値Hi=H(Gi)を、ハッシュ部E06を使用して計算し、入力部E01に入力された(もしくは検証部E04で改訂された)署名σに重畳部E07を使用して値Giを2回重畳する(σ←σGiGi)。また、公開鍵PKに含まれる(もしくは検証部E04で改訂された)値vに重畳部E07を使用してハッシュ値Hiを重畳する(v←vHi)。
【0116】
署名検証部E08は、検証部E04で改訂された署名σと値vを比較し、同じ値の場合、署名は正当(OK)と判定し、異なる場合、署名は正当でない(NG)と判定する。
【0117】
出力部E05は、署名検証部E08の判定結果を出力する機能を有する。出力部E05による出力形式は、外部のコンピュータ装置(たとえば、電子文書管理装置102,103)、プリンタ233での印刷出力、メモリへのデータ出力(保存)のいずれであってもよい。
【0118】
[署名処理の手順]
つぎに、文書管理装置101において実行される電子文書署名処理の手順について説明する。図6、図7は、この発明の文書管理装置において実行される電子文書署名処理の手順を示すフローチャートである。
【0119】
図6、図7において、まず、文書管理装置の入力部C01により、文書の入力を受け付けたか否かを判断する(T1)。ここで、文書Mが入力されるのを待って、
入力された場合、分割部C02により、文書を構成する各部分文書{mi}に分割する(T2)。同時に、乱数生成部C04で乱数IDを生成(T3)する。
【0120】
次に、各部分文書全てに対して次の処理を繰り返し行う(T4)。もし、未処理の部分文書が無ければ、署名部C06において電子署名σ=vΠ1/GiGiを計算し(T5)、出力部C07を用いて文書Mと署名σを出力(送信)して(T6)、署名処理を終了する。
【0121】
未処理の部分文書がある場合、選択された部分文書miに対して、乱数生成部C04はこの部分文書に固有の乱数IDiを生成し、ハッシュ部C03を用い、di=ID||IDi||miに対する値Gi=ID||IDi||GN(di)を計算する(T8)。
【0122】
次に判定部C05において、Giが素数であるかを判定し、素数でない場合には部分文書に固有の乱数IDiの生成に戻る(T9)。また判定部C05において、IDiが昇順(または降順)であるかを判定し、そうなっていない場合には部分文書に固有の乱数IDiの生成に戻る(T10)。
【0123】
最後に、該部分文書diの状態を隠蔽可能且つ削除可能(SADA)に設定する(T11)。以上の処理を全ての部分文書について繰り返し行う。
【0124】
[改訂処理の手順]
つぎに、文書管理装置102において実行される電子文書署名処理の手順について説明する。図8は電子文書改訂処理の手順を示すフローチャートである。
【0125】
図8において、まず、文書管理装置の入力部D01により、署名済みの文書と署名の入力を受け付けたか否かを判断する(U1)。ここで、文書Mと署名σが入力されるのを待って、入力された場合、分割部D02により、文書を構成する各部分文書{di}に分割する(U2)。
【0126】
ここで、入力は署名済み文書Mだけではなく、改訂済み文書Rも受け付ける。署名済み文書Mの場合は各部分文書の状態は全て隠蔽可能かつ削除可能な状態(SADA)であるが、改訂済文書Rの場合は、部分文書は隠蔽禁止かつ削除禁止(SPDP)、隠蔽可能かつ削除禁止(SADP)、隠蔽済みかつ削除禁止(SDP)、隠蔽禁止かつ削除可能(SPDA)、隠蔽可能かつ削除可能(SADA)、隠蔽済みかつ削除可能(SDA)、の6状態を保持しうる。なお、削除済みという状態(D)では部分文書が削除されるので、改訂済み文書Rの部分文書の状態としての、削除済みの状態(D)はとりえない。
【0127】
次に、各部分文書全てに対して次の処理を繰り返し行う(U3)。もし、未処理の部分文書が無ければ、改訂文書Rと改訂済みの署名σを出力して(U4)署名処理を終了する。
【0128】
部分文書毎の繰り返し処理では、指定部D03で各部分文書の状態改訂について入力されると、指定された状態によって、次の[A]〜[G]の処理に分岐する(U5)。隠蔽禁止かつ削除禁止の状態(SPDP)への移行が指定された場合は処理[A]、隠蔽可能かつ削除禁止の状態(SADP)への移行が指定された場合は処理[B]、隠蔽済みかつ削除禁止の状態(SDP)への移行が指定された場合は処理[C]、隠蔽禁止かつ削除可能の状態(SPDA)への移行が指定された場合は処理[D]、隠蔽可能かつ削除可能の状態(SADA)への移行が指定された場合は処理[E]、隠蔽済みかつ削除可能の状態(SDA)への移行が指定された場合は処理[F]、削除の状態(D)が指定された場合は処理[G]を実施する。
【0129】
これらの分岐処理の後(F001)、エラーが検出されれば、出力部D07からエラーを出力して(U6,U7)処理を停止する。以上の処理を全ての部分文書に対して実施する。以下、ステップU5の処理について説明する。
【0130】
処理[A]:
処理Aでは、図9に示すように、まず判断部D04で現在の部分文書の状態を判断し、隠蔽禁止かつ削除禁止の状態(SPDP)、隠蔽可能かつ削除禁止の状態(SADP)、隠蔽済みかつ削除禁止の状態(SDP)、隠蔽禁止かつ削除可能の状態(SPDA)、隠蔽可能かつ削除可能の状態(SADA)、隠蔽済みかつ削除可能の状態(SDA)、の6状態によって処理を分岐する。
【0131】
部分文書diの状態が隠蔽禁止かつ削除禁止の状態(SPDP)ならば、変更はないのでそのまま元の処理(F001)へ復帰する。
【0132】
部分文書diの状態が隠蔽可能かつ削除禁止の状態(SADP)ならば、ハッシュ部D08で部分文書diから値Gi=ID||IDi||GN(di)を計算する(U11)。そして、重畳部D09で、署名σと値Giを重畳し、σ←σGiと改訂する(U12)。最後に改訂後の部分文書の状態を隠蔽禁止かつ削除禁止の状態(SPDP)に設定して(U13)元の処理(F001)へ復帰する。
【0133】
部分文書diの状態が隠蔽済みかつ削除禁止の状態(SDP)ならば、隠蔽禁止かつ削除禁止の状態(SPDP)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0134】
部分文書diの状態が隠蔽禁止かつ削除可能の状態(SPDA)ならば、ハッシュ部D08で部分文書diからハッシュ値Hi=H(ID||IDi||GN(di))を計算する(U14)。そして、重畳部D09で、署名σとハッシュ値Hiを重畳し、σ←σHiと改訂する(U15)。最後に改訂後の部分文書の状態を隠蔽禁止かつ削除禁止の状態(SPDP)に設定して(U16)元の処理(F001)へ復帰する。
【0135】
部分文書diの状態が隠蔽可能かつ削除可能の状態(SADA)ならば、ハッシュ部D08で部分文書diから値Gi=ID||IDi||GN(di)とハッシュ値Hi=H(ID||IDi||GN(di))を計算する(U17)。そして、重畳部D09で、署名σと値Gi,ハッシュ値Hiを重畳し、σ←σGiHiとを改訂する(U18)。最後に改訂後の部分文書の状態を隠蔽禁止かつ削除禁止の状態(SPDP)に設定して(U19)元の処理(F001)へ復帰する。
【0136】
部分文書diの状態が隠蔽済みかつ削除可能の状態(SDA)ならば、隠蔽禁止かつ削除禁止の状態(SPDP)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0137】
処理[B]
図10に示すように、処理Bでは、部分文書diの状態が隠蔽禁止かつ削除禁止の状態(SPDP)ならば、隠蔽可能かつ削除禁止の状態(SADP)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0138】
部分文書diの状態が隠蔽可能かつ削除禁止の状態(SADP)ならば、変更はないのでそのまま元の処理(F001)へ復帰する。
【0139】
部分文書diの状態が隠蔽済みかつ削除禁止の状態(SDP)ならば、隠蔽可能かつ削除禁止の状態(SADP)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0140】
部分文書diの状態が隠蔽禁止かつ削除可能の状態(SPDA)ならば、隠蔽可能かつ削除禁止の状態(SADP)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0141】
部分文書diの状態が隠蔽可能かつ削除可能の状態(SADA)ならば、ハッシュ部D08で部分文書diからハッシュ値Hi=H(ID||IDi||GN(di))を計算する(U21)。そして、重畳部D09で、署名σとハッシュ値Hiを重畳し、σ←σHiと改訂する(U22)。最後に改訂後の部分文書の状態を隠蔽可能かつ削除禁止の状態(SADP)に設定して(U23)元の処理(F001)へ復帰する。
【0142】
部分文書diの状態が隠蔽済みかつ削除可能の状態(SDA)ならば、隠蔽可能かつ削除禁止の状態(SADP)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0143】
処理[C]
処理Cでは、図11に示すように、部分文書diの状態が隠蔽禁止かつ削除禁止の状態(SPDP)ならば、隠蔽済みかつ削除禁止の状態(SDP)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0144】
部分文書diの状態が隠蔽可能かつ削除禁止の状態(SADP)ならば、ハッシュ部D08で部分文書diから値Gi=ID||IDi||GN(di)を計算し(U31)、部分文書をdi←Giと改訂する(U32)。最後に改訂後の部分文書の状態を隠蔽済みかつ削除禁止の状態(SDP)に設定して(U32)元の処理(F001)へ復帰する。
【0145】
部分文書diの状態が隠蔽済みかつ削除禁止の状態(SDP)ならば、変更はないのでそのまま元の処理(F001)へ復帰する。
【0146】
部分文書diの状態が隠蔽禁止かつ削除可能の状態(SPDA)ならば、隠蔽済みかつ削除禁止の状態(SDP)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0147】
部分文書diの状態が隠蔽可能・削除可能の状態(SADA)ならば、ハッシュ部D08で部分文書diから値Gi=ID||IDi||GN(di)とハッシュ値Hi=H(Gi)を計算する(U34)。そして、重畳部D09で、署名σとハッシュ値Hiを重畳し、σ←σHiと改訂する(U35)。また部分文書をdi←Giと改訂する(U36)。最後に改訂後の部分文書の状態を隠蔽済みかつ削除禁止の状態(SDP)に設定して(U37)元の処理(F001)へ復帰する。
【0148】
部分文書diの状態が隠蔽済みかつ削除可能の状態(SDA)ならば、部分文書diは既にGi=ID||IDi||GN(di)に改訂されているので、ハッシュ部D08で部分文書diのハッシュ値Hi=H(di)を計算する(U38)。そして、重畳部D09で、署名σとハッシュ値Hiを重畳し、σ←σHiと改訂する(U39)。最後に改訂後の部分文書の状態を隠蔽済・削除禁止の状態(SDP)に設定して(U40)元の処理(F001)へ復帰する。
【0149】
処理[D]
処理Dでは、図12に示すように、部分文書diの状態が隠蔽禁止かつ削除禁止の状態(SPDP)ならば、隠蔽禁止かつ削除可能の状態(SPDA)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0150】
部分文書diの状態が隠蔽可能かつ削除禁止の状態(SADP)ならば、隠蔽禁止かつ削除可能の状態(SPDA)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0151】
部分文書diの状態が隠蔽済みかつ削除禁止の状態(SDP)ならば、隠蔽禁止かつ削除可能の状態(SPDA)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0152】
部分文書diの状態が隠蔽禁止かつ削除可能の状態(SPDA)ならば、変更はないのでそのまま元の処理(F001)へ復帰する。
【0153】
部分文書diの状態が隠蔽可能かつ削除可能の状態(SADA)ならば、ハッシュ部D08で部分文書diから値Gi=ID|||IDi||GN(di)を計算する(U41)。そして、重畳部D09で、署名σと値Giを重畳し、σ←σGiと改訂する(U42)。最後に改訂後の部分文書の状態を隠蔽禁止かつ削除可能(SPDA)に設定して元の処理(F001)へ復帰する。
【0154】
部分文書diの状態が隠蔽済みかつ削除可能の状態(SDA)ならば、隠蔽禁止かつ削除可能の状態(SPDA)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0155】
処理[E]
処理Eでは、図13に示すように、部分文書diの状態が隠蔽禁止かつ削除禁止の状態(SPDP)ならば、隠蔽可能かつ削除可能の状態(SADA)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0156】
部分文書diの状態が隠蔽可能かつ削除禁止の状態(SADP)ならば、隠蔽可能かつ削除可能の状態(SADA)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0157】
部分文書diの状態が隠蔽済みかつ削除禁止の状態(SDP)ならば、隠蔽可能かつ削除可能の状態(SADA)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0158】
部分文書diの状態が隠蔽禁止かつ削除可能の状態(SPDA)ならば、隠蔽可能かつ削除可能の状態(SADA)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0159】
部分文書diの状態が隠蔽可能かつ削除可能の状態(SADA)ならば、変更はないのでそのまま元の処理(F001)へ復帰する。
【0160】
部分文書diの状態が隠蔽済みかつ削除可能の状態(SDA)ならば、隠蔽可能かつ削除可能の状態(SADA)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0161】
処理[F]
処理Fでは、図14に示すように、部分文書diの状態が隠蔽禁止かつ削除禁止の状態(SPDP)ならば、隠蔽済みかつ削除可能の状態(SDA)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0162】
部分文書diの状態が隠蔽可能かつ削除禁止の状態(SADP)ならば、隠蔽済みかつ削除可能の状態(SDA)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0163】
部分文書diの状態が隠蔽済みかつ削除禁止の状態(SDP)ならば、隠蔽済みかつ削除可能の状態(SDA)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0164】
部分文書diの状態が隠蔽禁止かつ削除可能の状態(SPDA)ならば、隠蔽済みかつ削除可能の状態(SDA)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0165】
部分文書diの状態が隠蔽可能かつ削除可能の状態(SADA)ならば、ハッシュ部D08で部分文書diから値Gi=ID||IDi||GN(di)を計算し(U61)、部分文書をdi←Giと改訂する(U62)。最後に改訂後の部分文書の状態を隠蔽禁止かつ削除可能の状態(SDA)に設定して(U63)元の処理(F001)へ復帰する。
【0166】
部分文書diの状態が隠蔽済みかつ削除可能の状態(SDA)ならば、変更はないのでそのまま元の処理(F001)へ復帰する。
【0167】
処理[G]
処理Gでは、図15に示すように、部分文書diの状態が隠蔽禁止かつ削除禁止の状態(SPDP)ならば、削除済みの状態(D)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0168】
部分文書diの状態が隠蔽可能かつ削除禁止の状態(SADP)ならば、削除済みの状態(D)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0169】
部分文書diの状態が隠蔽済みかつ削除禁止の状態(SDP)ならば、削除済みの状態(D)への変更はできないため、エラーとして処理(F001)へ復帰する。
【0170】
部分文書diの状態が隠蔽禁止かつ削除可能の状態(SPDA)ならば、ハッシュ部D08で部分文書diから値Gi=ID||IDi||GN(di)を計算する(U71)。そして、重畳部D09で、署名σと値Giを重畳し、σ←σGiとを改訂する(U72)。また、部分文書diを削除する(U73)。最後に状態を削除して(U74)元の処理(F001)へ復帰する。
【0171】
部分文書diの状態が隠蔽可能かつ削除可能の状態(SADA)ならば、ハッシュ部D08で部分文書diから値Gi=ID||IDi||GN(di)を計算する(U75)。そして、重畳部D09で、署名σと値GiGiを重畳し、σ←σGiGiとを改訂する(U76)。また、部分文書diを削除する(U77)。最後に状態を削除して(U78)元の処理(F001)へ復帰する。
【0172】
部分文書diの状態が隠蔽済みかつ削除可能の状態(SDA)ならば、部分文書diは既にGi=ID||IDi||GN(di)に改訂されているので、重畳部D09で、署名σと値GiGiを重畳し、σ←σGiGiと改訂する(U79)。また、部分文書diを削除する(U80)。最後に状態を削除して(U81)元の処理(F001)へ復帰する。
【0173】
なお、ここで示したフローでは、指定部D03で改訂後の部分文書の状態を指定してから、判断部D04で現在の部分文書の状態を判断して、処理しているが、判断部D04の処理を指定部D03の処理より前に行い、指定部の処理で、部分文書の状態に応じて、エラーとなる状態を選択できないようにすることも可能である。
【0174】
[検証処理の手順]
つぎに、文書管理装置103において実行される電子文書署名処理の手順について説明する。図16は、文書管理装置において実行される電子文書改訂処理の手順を示すフローチャートである。
【0175】
図16において、まず、文書管理装置の入力部E01により、署名済みの文書と署名の入力を受け付けたか否かを判断する(V1)。ここで、文書Mと署名σが入力されるのを待って、入力された場合、分割部E02により、文書を構成する各部分文書に分割する(V2)。ここで、入力は署名済み文書Mだけではなく、改訂済み文書Rも受け付ける。
【0176】
次に判断部E03は、各部分文書に共通する値IDを比較し、全て同じ値であるかをチェックする(V3)。異なる値のIDがあれば、署名書は正当でないと判断し、出力部E05においてNGを出力して(V7)検証処理を終了する。また判断部E03は、各部分文書に固有の値IDiが昇順(または降順)となっているかをチェックする(V3)。そうなっていなければ、署名書は正当でないと判断し、出力部E05においてNGを出力して(V7)検証処理を終了する。
【0177】
署名済み文書Mの場合は各部分文書の状態は全て隠蔽可能かつ削除可能な状態(SADA)であるが、改訂済文書Rの場合は、部分文書は隠蔽禁止かつ削除禁止(SPDP)、隠蔽可能かつ削除禁止(SADP)、隠蔽済みかつ削除禁止(SDP)、隠蔽禁止かつ削除可能(SPDA)、隠蔽可能かつ削除可能(SADA)、隠蔽済みかつ削除可能(SDA)、の6状態を保持しうる。なお、削除済みという状態(D)では部分文書が削除されるので、改訂済み文書Rの部分文書の状態として、削除済みの状態(D)は取り得ない。
【0178】
次に、各部分文書に対して次の処理を繰り返し行う(V4)。もし、未処理の部分文書が無ければ、署名検証部E09で改訂された署名σと値vが同じ値かどうか判定し(V5)、σ=vの場合は署名が正当ということでOKを(V6)、σ≠vの場合は署名が正当でないということでNGを(V7)出力部E05から出力し、検証処理を終了する。
【0179】
部分文書毎の繰り返し処理では、図17に示すように、まず判断E03で現在の部分文書の状態を判断し、隠蔽禁止かつ削除禁止の状態(SPDP)、隠蔽可能かつ削除禁止の状態(SADP)、隠蔽済みかつ削除禁止の状態(SDP)、隠蔽禁止かつ削除可能の状態(SPDA)、隠蔽可能かつ削除可能の状態(SADA)、隠蔽済みかつ削除可能の状態(SDA)、の6状態によって処理を分岐する。
【0180】
部分文書diの状態が隠蔽禁止かつ削除禁止の状態(SPDP)ならば、ハッシュ部E06で部分文書diから値Gi=ID||IDi||GN(di)とハッシュ値Hi=H(Gi)を計算する(V11)。そして、重畳部E07で、署名σと値Giを重畳し、σ←σGiと改訂する(V12)。また、重畳部E07で、公開鍵に含まれる(または重畳部E07で改訂された)値vとハッシュ値Hiを重畳し、v←vHiと改訂する(V13)。その後、元の処理(F002)へ復帰する。
【0181】
部分文書diの状態が隠蔽可能かつ削除禁止の状態(SADP)ならば、ハッシュ部E06で部分文書diから値Gi=ID||IDi||GN(di)とハッシュ値Hi=H(Gi)を計算する(V21)。そして、重畳部E07で、署名σと値GiGiを重畳し、σ←σGiGiと改訂する(V22)。また、重畳部E07で、公開鍵に含まれる(または重畳部E07で改訂された)値vとハッシュ値Hiを重畳し、v←vHiと改訂する(V23)。その後、元の処理(F002)へ復帰する。
【0182】
部分文書diの状態が隠蔽済みかつ削除禁止の状態(SDP)ならば、部分文書diは既にGi=ID||IDi||GN(di)に置き換えられているので、ハッシュ部E06で部分文書diからハッシュ値Hi=H(di)を計算する(V31)。そして、重畳部E07で、署名σとハッシュ値Hiを重畳し、σ←σGiGi(=σdidi)改訂する(V32)。また、重畳部E07で、公開鍵に含まれる(または重畳部E07で改訂された)vとハッシュ値Hiを重畳し、v←vHiと改訂する(V33)。その後、元の処理(F002)へ復帰する。
【0183】
部分文書diの状態が隠蔽禁止かつ削除可能の状態(SPDA)ならば、ハッシュ部E06で部分文書diから値Gi=ID||IDi||GN(di)を計算する(V41)。そして、重畳部E07で、署名σと値Giを重畳し、σ←σGiと改訂する(V42)。その後、状態を削除して元の処理(F002)へ復帰する。
【0184】
部分文書diの状態が隠蔽可能かつ削除可能の状態(SADA)ならば、ハッシュ部E06で部分文書diから値Gi=ID||IDi||GN(di)を計算する(V51)。そして、重畳部E07で、署名σと値GiGiを重畳し、σ←σGiGi(=σdidi)と改訂する(V52)。その後、状態を削除して元の処理(F002)へ復帰する。
【0185】
部分文書diの状態が隠蔽済みかつ削除可能の状態(SDA)ならば、部分文書diは既にGi=ID||IDi||GN(di)に置き換えられているので、重畳部E07で、署名σと値Giを重畳し、σ←σGiと改訂する(V61)。その後、状態を削除して元の処理(F002)へ復帰する。
【0186】
以上の実施の形態により、実現される部分文書の7状態を図18に示し、遷移の状態を図19に示す。
【0187】
以上の説明より明らかなように、本実施の形態によれば、部分文書に対して7つの状態に設定可能で、かつ署名情報量が部分文書数に比例せず、常に1個の電子署名データの保持で検証が可能である。従って、より柔軟な電子文書の改訂を実現し、ユーザの利便性の向上を図ることができるという効果を奏する。
【0188】
なお、上記の実施の形態で図示したフローチャートやステップに示された各動作をコンピュータにより実行させるプログラムを提供することにより、本発明の署名プログラムを提供することができる。これらプログラムはコンピュータにより読取可能な媒体に記録されてコンピュータにより実行させることができる。コンピュータは、パーソナルコンピュータのようなホスト装置、試験装置のコントローラ、記憶装置のMPUやCPUのようなコントローラなどを含む。ここで、コンピュータにより読取可能な媒体としては、CD−ROMやフレキシブルディスク、DVDディスク、光磁気ディスク、ICカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【0189】
以上、本発明の実施の形態によれば、以下の付記で示す技術的思想が開示されている。
(付記1)
コンピュータが実行する電子署名方法であって、
前記コンピュータが、
整数vを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書(mi)に分割し、
ハッシュ関数Gを用い、各部分文書miを用いて得られるハッシュ値であるGiを生成し、前記電子文書に対する署名となる電子署名σ=vΠ1/GiGiを生成し、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で2度累乗し(σ→σGiGi)、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い(σ→σGi)、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Giで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Gと同一又は異なるハッシュ関数Hを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Hiを累乗し(σ→σHi)、
部分文書の墨塗りを禁止する場合は、電子署名σに墨塗りを禁止する部分文書を用いて得られるハッシュ値Hiで累乗し(σ→σHi)、
電子署名σを更新する
ことを特徴とする電子署名方法。
(付記2)
付記1に記載の電子署名方法において、
前記部分文書の状態が墨塗り可能で削除可能な状態において、前記電子署名σ、およびハッシュ関数がとられる部分文書の状態をdiとした場合に、
前記部分文書を墨塗り禁止で削除可能な状態に改訂する場合、前記電子署名σはσGiと改訂され、ハッシュ関数がとられる前記部分文書の状態diはそのままであり、
前記部分文書を墨塗り可能で削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書の状態diはそのままであり、
前記部分文書を墨塗り禁止で削除禁止な状態に改訂する場合、前記電子署名σはσGiHiと改訂され、ハッシュ関数がとられる前記部分文書の状態diはそのままであり、
前記部分文書を墨塗り済みで削除可能な状態に改訂する場合、前記電子署名σはそのままであり、ハッシュ関数がとられる前記部分文書の状態diがGiと改訂され、
前記部分文書を墨塗り済みで削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書の状態diがGiと改訂され、
前記部分文書を削除する状態に改訂する場合は、前記電子署名σはσGiGiと改訂され、ハッシュ関数がとられる前記部分文書の状態diは削除される
電子署名方法。
(付記3)
付記2に記載の電子署名方法において、
前記部分文書それぞれに、いずれの状態であるかを判別するための状態設定を行うことを特徴とする電子署名方法。
(付記4)
付記1に記載の電子署名方法において、
前記ハッシュ関数が取られる前記部分文書の状態diは、
di=ID||IDi||mi
で表され、ここで、||はその前後のデータの連結を表し、IDは全ての部分文書に共通の乱数であり、IDiは部分文書に固有の乱数であることを特徴とする電子署名方法。
(付記5)
付記1に記載の電子署名方法において、
署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証する電子署名方法。
(付記6)
付記1に記載の電子署名方法において、
署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証するに際して、
前記部分文書の状態diが墨塗り禁止且つ削除禁止となっている場合、部分文書diからハッシュ値Gi及びハッシュ値Hiを計算し、σを該σにGiを累乗したもの(σGi)とするとともに、vを該vにHiを累乗したもの(vHi)とし、
前記部分文書の状態diが墨塗り可能且つ削除禁止となっている場合、部分文書diからハッシュ値Gi及びハッシュ値Hiを計算し、σを該σにGiを二度累乗したもの(σGiGi)とするとともに、vを該vにHiを累乗したもの(vHi)とし、
前記部分文書の状態diが墨塗り済み且つ削除禁止となっている場合、部分文書diからハッシュ値Hiを計算し、σを該σにGiを二度累乗したもの(σGiGi)とするとともに、vを該vにHiを累乗したもの(σHi)とし、
前記部分文書の状態diが墨塗り禁止且つ削除可能となっている場合、部分文書diからハッシュ値Giを計算し、σを該σにGiを累乗したもの(σGi)とし、
前記部分文書の状態diが墨塗り可能且つ削除可能となっている場合、部分文書diからハッシュ値Giを計算し、σを該σにGiを二度累乗したもの(σGiGi)とし、
前記部分文書の状態diが墨塗り済み、且つ削除可能となっている場合、部分文書diからハッシュ値Giを計算し、σを該σにGiを二度累乗したもの(σGiGi)とし、
Verifyσ=vを検証することを特徴とする電子署名方法。
(付記7)
付記1に記載の電子署名方法において、
2つの同じビット長の素数pとqを秘密鍵として生成し、合成数N=p×qを生成し、1以上N未満の整数vを公開鍵として生成することを特徴とする電子署名方法。
(付記8)
電子署名方法をコンピュータに実行させる電子署名プログラムであって、
電子文書と、該電子文書に対する署名となる電子署名σ=vΠ1/GiGiとを受信するとともに、前記電子署名σは、電子署名整数vを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書(mi)に分割し、ハッシュ関数Gを用い、各部分文書miを用いて得られるハッシュ値であるGiを生成し、前記電子文書に対する署名となる電子署名σ=vΠ1/GiGiを生成して生成されたものを受信し、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で2度累乗し(σ→σGiGi)、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い(σ→σGi)、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Giで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Gと同一又は異なるハッシュ関数Hを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Hiを累乗し(σ→σHi)、
部分文書の墨塗りを禁止する場合は、電子署名σに墨塗りを禁止する部分文書を用いて得られるハッシュ値Hiで累乗し(σ→σHi)、
電子署名σを更新する
ことをコンピュータに実行させる電子署名プログラム。
(付記9)
付記8に記載の電子署名プログラムにおいて、
前記部分文書の状態が墨塗り可能で削除可能な状態において、前記電子署名σ、およびハッシュ関数がとられる部分文書の状態をdiとした場合に、
前記部分文書を墨塗り禁止で削除可能な状態に改訂する場合、前記電子署名σはσGiと改訂され、ハッシュ関数がとられる前記部分文書の状態diはそのままであり、
前記部分文書を墨塗り可能で削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書の状態diはそのままであり、
前記部分文書を墨塗り禁止で削除禁止な状態に改訂する場合、前記電子署名σはσGiHiと改訂され、ハッシュ関数がとられる前記部分文書の状態diはそのままであり、
前記部分文書を墨塗り済みで削除可能な状態に改訂する場合、前記電子署名σはそのままであり、ハッシュ関数がとられる前記部分文書の状態diがGiと改訂され、
前記部分文書を墨塗り済みで削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書の状態diがGiと改訂され、
前記部分文書を削除する状態に改訂する場合は、前記電子署名σはσGiGiと改訂され、ハッシュ関数がとられる前記部分文書の状態diは削除される
ことをコンピュータに実行させる電子署名プログラム。
(付記10)
付記8に記載の電子署名プログラムにおいて、
前記部分文書それぞれに、いずれの状態であるかを判別するための状態設定を行うことをコンピュータに実行させることを特徴とする電子署名プログラム。
(付記11)
付記8に記載の電子署名プログラムにおいて、
前記ハッシュ関数が取られる前記部分文書の状態diは、
di=ID||IDi||mi
で表され、ここで、||はその前後のデータの連結を表し、IDは全ての部分文書に共通の乱数であり、IDiは部分文書に固有の乱数であることを特徴とする電子署名プログラム。
(付記12)
付記8に記載の電子署名プログラムにおいて、
署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証することをコンピュータに実行させる電子署名プログラム。
(付記13)
付記8に記載の電子署名プログラムにおいて、
署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証するに際して、
ハッシュ関数がとられる前記部分文書diの状態が墨塗り禁止且つ削除禁止となっている場合、部分文書diからハッシュ値Gi及びハッシュ値Hiを計算し、σを該σにGiを累乗したもの(σGi)とするとともに、vを該vにHiを累乗したもの(vHi)とし、
前記部分文書diの状態が墨塗り可能且つ削除禁止となっている場合、部分文書diからハッシュ値Gi及びハッシュ値Hiを計算し、σを該σにGiを二度累乗したもの(σGiGi)とするとともに、vを該vにHiを累乗したもの(vHi)とし、
前記部分文書diの状態が墨塗り済み且つ削除禁止となっている場合、部分文書diからハッシュ値Hiを計算し、σを該σにGiを二度累乗したもの(σGiGi)とするとともに、vを該vにHiを累乗したもの(σHi)とし、
前記部分文書diの状態が墨塗り禁止且つ削除可能となっている場合、部分文書diからハッシュ値Giを計算し、σを該σにGiを累乗したもの(σGi)とし、
前記部分文書diの状態が墨塗り可能且つ削除可能となっている場合、部分文書diからハッシュ値Giを計算し、σを該σにGiを二度累乗したもの(σGiGi)とし、
前記部分文書diの状態が墨塗り済み、且つ削除可能となっている場合、部分文書diからハッシュ値Giを計算し、σを該σにGiを二度累乗したもの(σGiGi)とし、
Verifyσ=vを検証することをコンピュータに実行させることを特徴とする電子署名プログラム。
(付記14)
付記8に記載の電子署名プログラムにおいて、
2つの同じビット長の素数pとqを秘密鍵として生成し、合成数N=p×qを生成し、1以上N未満の整数vを公開鍵として生成することをコンピュータに実行させることを特徴とする電子署名プログラム。
(付記15)
コンピュータが実行する電子署名装置であって、
電子文書と、該電子文書に対する署名となる電子署名σ=vΠ1/GiGiとを受信するとともに、前記電子署名σは、電子署名整数vを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書(mi)に分割し、ハッシュ関数Gを用い、各部分文書miを用いて得られるハッシュ値であるGiを生成し、前記電子文書に対する署名となる電子署名σ=vΠ1/GiGiを生成して生成されたものを受信する受信手段と、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で2度累乗し(σ→σGiGi)、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い(σ→σGi)、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Giで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Gと同一又は異なるハッシュ関数Hを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Hiを累乗し(σ→σHi)、
部分文書の墨塗りを禁止する場合は、電子署名σに墨塗りを禁止する部分文書を用いて得られるハッシュ値Hiで累乗し(σ→σHi)、
電子署名σを更新する改訂更新手段と
を備える電子署名装置。
(付記16)
付記15に記載の電子署名装置において、
前記部分文書の状態が墨塗り可能で削除可能な状態において、前記電子署名σ、およびハッシュ関数がとられる部分文書diの状態をとした場合に、
前記部分文書を墨塗り禁止で削除可能な状態に改訂する場合、前記電子署名σはσGiと改訂され、ハッシュ関数がとられる前記部分文書diの状態はそのままであり、
前記部分文書を墨塗り可能で削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書diの状態はそのままであり、
前記部分文書を墨塗り禁止で削除禁止な状態に改訂する場合、前記電子署名σはσGiHiと改訂され、ハッシュ関数がとられる前記部分文書diの状態はそのままであり、
前記部分文書を墨塗り済みで削除可能な状態に改訂する場合、前記電子署名σはそのままであり、ハッシュ関数がとられる前記部分文書diの状態がGiと改訂され、
前記部分文書を墨塗り済みで削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書diの状態がGiと改訂され、
前記部分文書を削除する状態に改訂する場合は、前記電子署名σはσGiGiと改訂され、ハッシュ関数がとられる前記部分文書diの状態は削除される
ことを特徴とする電子署名装置。
(付記17)
付記15に記載の電子署名装置において、
前記部分文書それぞれに、いずれの状態であるかを判別するための状態設定を行う状態設定手段を備えることを特徴とする電子署名装置。
(付記18)
付記15に記載の電子署名装置において、
前記ハッシュ関数が取られる前記部分文書diの状態は、
di=ID||IDi||mi
で表され、ここで、||はその前後のデータの連結を表し、IDは全ての部分文書に共通の乱数であり、IDiは部分文書に固有の乱数であることを特徴とする電子署名装置。
(付記19)
付記15に記載の電子署名装置において、
署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証する検証手段を備えることを特徴とする電子署名装置。
(付記20)
付記15に記載の電子署名装置において、
署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証するに際して、
前記部分文書diの状態が墨塗り禁止且つ削除禁止となっている場合、部分文書diからハッシュ値Gi及びハッシュ値Hiを計算し、σを該σにGiを累乗したもの(σGi)とするとともに、vを該vにHiを累乗したもの(vHi)とし、
前記部分文書diの状態が墨塗り可能且つ削除禁止となっている場合、部分文書diからハッシュ値Gi及びハッシュ値Hiを計算し、σを該σにGiを二度累乗したもの(σGiGi)とするとともに、vを該vにHiを累乗したもの(vHi)とし、
前記部分文書diの状態が墨塗り済み且つ削除禁止となっている場合、部分文書diからハッシュ値Hiを計算し、σを該σにGiを二度累乗したもの(σGiGi)とするとともに、vを該vにHiを累乗したもの(σHi)とし、
前記部分文書diの状態が墨塗り禁止且つ削除可能となっている場合、部分文書diからハッシュ値Giを計算し、σを該σにGiを累乗したもの(σGi)とし、
前記部分文書diの状態が墨塗り可能且つ削除可能となっている場合、部分文書diからハッシュ値Giを計算し、σを該σにGiを二度累乗したもの(σGiGi)とし、
前記部分文書diの状態が墨塗り済み、且つ削除可能となっている場合、部分文書diからハッシュ値Giを計算し、σを該σにGiを二度累乗したもの(σGiGi)とし、
Verifyσ=vを検証する検証手段を備えることを特徴とする電子署名装置。
(付記21)
付記15に記載の電子署名装置において、
2つの同じビット長の素数pとqを秘密鍵として生成し、合成数N=p×qを生成し、1以上N未満の整数vを公開鍵として生成することを特徴とする電子署名装置。
【符号の説明】
【0190】
100 電子文書管理システム、101,102,103 電子文書管理装置、110 ネットワーク、C01 入力部、C02 分割部、C03 ハッシュ部、C04 乱数生成部、C05 判定部、C06 署名部、C07 出力部、D01 入力部、D02 分割部、D03 指定部、D04 判断部、D05 改訂部、D06 設定部、D07 出力部、D08 ハッシュ部、D09 重畳部、E01 入力部、E02 分割部、E03 判断部、E04 検証部、E05 出力部、E06 ハッシュ部、E07 重畳部、E08 署名検証部。

【特許請求の範囲】
【請求項1】
コンピュータが実行する電子署名方法であって、
前記コンピュータが、
整数vを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書(mi)に分割し、
ハッシュ関数Gを用い、各部分文書miを用いて得られるハッシュ値であるGiを生成し、前記電子文書に対する署名となる電子署名σ=vΠ1/GiGiを生成し、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で2度累乗し(σ→σGiGi)、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い(σ→σGi)、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Giで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Gと同一又は異なるハッシュ関数Hを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Hiを累乗し(σ→σHi)、
部分文書の墨塗りを禁止する場合は、電子署名シグマに墨塗りを禁止する部分文書を用いて得られるハッシュ値Hiで累乗し(σ→σHi)、
電子署名σを更新する
ことを特徴とする電子署名方法。
【請求項2】
請求項1に記載の電子署名方法において、
前記部分文書の状態が墨塗り可能で削除可能な状態において、前記電子署名σ、およびハッシュ関数がとられる部分文書をdiとした場合に、
前記部分文書を墨塗り禁止で削除可能な状態に改訂する場合、前記電子署名シグマはσGiと改訂され、ハッシュ関数がとられる前記部分文書diの状態はそのままであり、
前記部分文書を墨塗り可能で削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書diの状態はそのままであり、
前記部分文書を墨塗り禁止で削除禁止な状態に改訂する場合、前記電子署名σはσGiHiと改訂され、ハッシュ関数がとられる前記部分文書diの状態はそのままであり、
前記部分文書を墨塗り済みで削除可能な状態に改訂する場合、前記電子署名σはそのままであり、ハッシュ関数がとられる前記部分文書diの状態がGiと改訂され、
前記部分文書を墨塗り済みで削除禁止な状態に改訂する場合、前記電子署名σはσHiと改訂され、ハッシュ関数がとられる前記部分文書diの状態がGiと改訂され、
前記部分文書を削除する状態に改訂する場合は、前記電子署名σはσGiGiと改訂され、ハッシュ関数がとられる前記部分文書diの状態は削除される
電子署名方法。
【請求項3】
請求項2に記載の電子署名方法において、
前記部分文書それぞれに、いずれの状態であるかを判別するための状態設定を行うことを特徴とする電子署名方法。
【請求項4】
請求項1に記載の電子署名方法において、
前記ハッシュ関数が取られる前記部分文書diは、
di=ID||IDi||mi
で表され、ここで、||はその前後のデータの連結を表し、IDは全ての部分文書に共通の乱数であり、IDiは部分文書に固有の乱数であることを特徴とする電子署名方法。
【請求項5】
請求項1に記載の電子署名方法において、
電子署名σに基づいて、前記電子文書の改訂が、電子署名者により作成された電子文書に対して行われたことを検証するに際して、
前記部分文書diの状態が墨塗り禁止且つ削除禁止となっている場合、部分文書diからハッシュ値Gi及びハッシュ値Hiを計算し、σを該σにGiを累乗したもの(σGi)とするとともに、vを該vにHiを累乗したもの(vHi)とし、
前記部分文書diの状態が墨塗り可能且つ削除禁止となっている場合、部分文書diからハッシュ値Gi及びハッシュ値Hiを計算し、σを該σにGiを二度累乗したもの(σGiGi)とするとともに、vを該vにHiを累乗したもの(vHi)とし、
前記部分文書diの状態が墨塗り済み且つ削除禁止となっている場合、部分文書diからハッシュ値Hiを計算し、σを該σにGiを二度累乗したもの(σGiGi)とするとともに、vを該vにHiを累乗したもの(σHi)とし、
前記部分文書diの状態が墨塗り禁止且つ削除可能となっている場合、部分文書diからハッシュ値Giを計算し、σを該σにGiを累乗したもの(σGi)とし、
前記部分文書diの状態が墨塗り可能且つ削除可能となっている場合、部分文書diからハッシュ値Giを計算し、σを該σにGiを二度累乗したもの(σGiGi)とし、
前記部分文書diの状態が墨塗り済み、且つ削除可能となっている場合、部分文書diからハッシュ値Giを計算し、σを該σにGiを二度累乗したもの(σGiGi)とし、
Verifyσ=vを検証することを特徴とする電子署名方法。
【請求項6】
電子署名方法をコンピュータに実行させる電子署名プログラムであって、
電子文書と、該電子文書に対する署名となる電子署名σ=vΠ1/GiGiとを受信するとともに、前記電子署名σは、電子署名整数vを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書(mi)に分割し、ハッシュ関数Gを用い、各部分文書を用いて得られるハッシュ値であるGiを生成し、前記電子文書に対する署名となる電子署名σ=vΠ1/GiGiを生成して生成されたものを受信し、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で2度累乗し(σ→σGiGi)、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い(σ→σGi)、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Giで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Gと同一又は異なるハッシュ関数Hを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Hiを累乗し(σ→σHi)、
部分文書の墨塗りを禁止する場合は、電子署名シグマに墨塗りを禁止する部分文書を用いて得られるハッシュ値Hiで累乗し(σ→σHi)、
電子署名σを更新する
ことをコンピュータに実行させる電子署名プログラム。
【請求項7】
コンピュータが実行する電子署名装置であって、
電子文書と、該電子文書に対する署名となる電子署名σ=vΠ1/GiGiとを受信するとともに、前記電子署名σは、電子署名整数vを公開鍵として生成するとともに、対象となる電子文書を複数の部分文書(mi)に分割し、ハッシュ関数Gを用い、各部分文書miを用いて得られるハッシュ値であるGiを生成し、前記電子文書に対する署名となる電子署名σ=vΠ1/GiGiを生成して生成されたものを受信する受信手段と、
前記電子文書の部分文書についての改訂時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、電子署名σに削除される部分文書を用いて得られるハッシュ値で2度累乗し(σ→σGiGi)、墨塗り禁止とされている場合は、電子署名σに削除される部分文書を用いて得られるハッシュ値で累乗を行い(σ→σGi)、ともに、ハッシュ関数が取られて削除される部分文書を消去し、
部分文書の墨塗りを行う場合は、その部分文書に対応する部分を、部分文書を用いて得られるハッシュ値Giで置き換え、
部分文書の削除を禁止する場合は、ハッシュ関数Gと同一又は異なるハッシュ関数Hを用い、電子署名σに削除を禁止する部分文書を用いて得られるハッシュ値Hiを累乗し(σ→σHi)、
部分文書の墨塗りを禁止する場合は、電子署名σに墨塗りを禁止する部分文書を用いて得られるハッシュ値Hiで累乗し(σ→σHi)、
電子署名σを更新する改訂更新手段と
を備える電子署名装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate


【公開番号】特開2010−164874(P2010−164874A)
【公開日】平成22年7月29日(2010.7.29)
【国際特許分類】
【出願番号】特願2009−8465(P2009−8465)
【出願日】平成21年1月19日(2009.1.19)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】