説明

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

【課題】署名時および抽出時のデータ量を削減しながらも電子文書の完全性を保証することができる電子署名方法を提供する。
【解決手段】 対象となる電子文書を複数の部分文書(mi)に分割し、電子文書に対する署名となる署名値sと改定用の署名値tの2値の組を有し(s、t)、署名tは乱数を用いた初期化を行う(t=gr)一方、署名sは署名tに各部分文書のハッシュ値全てを2度累乗したものに、電子署名を施し(s=tΠhihi)、部分文書の改定においては、改定状態に応じて署名tに部分文書ハッシュ値に基づいた値を重畳し、また部分文書を削除する場合にその部分文書を消去し、墨塗りを行う場合は、その部分文書をハッシュ値に置き換える。

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

【特許請求の範囲】
【請求項1】
コンピュータが実行する電子署名方法であって、
前記コンピュータが、
対象となる電子文書を複数の部分文書(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を更新する
ことを特徴とする電子署名方法。
【請求項2】
請求項1に記載の電子署名方法において、
前記部分文書の状態が墨塗り可能で削除可能な状態において、前記改定用の署名t、および部分文書の状態miとした場合に、
前記部分文書を墨塗り禁止で削除可能な状態に改定する場合、前記署名tはthiと改定され、前記部分文書の状態miはそのままであり、
前記部分文書を墨塗り可能で削除可能な状態に改定する場合、前記署名tはtdiと改定され、前記部分文書の状態miはそのままであり、
前記部分文書を墨塗り禁止で削除禁止な状態に改定する場合、前記署名tはthidiと改定され、前記部分文書の状態miはそのままであり、
前記部分文書を墨塗り済みで削除可能な状態に改定する場合、前記署名tはそのままであり、前記部分文書の状態miがhiと改定され、
前記部分文書を墨塗り済みで削除禁止な状態に改定する場合、前記署名tはtdiと改定され、前記部分文書の状態miがhiと改定され、
前記部分文書を削除する状態に改定する場合は、前記署名tはthihiと改定され、前記部分文書の状態miは削除される
電子署名方法。
【請求項3】
請求項2に記載の電子署名方法において、
前記部分文書それぞれに、いずれの状態であるかを判別するための状態設定を行うことを特徴とする電子署名方法。
【請求項4】
請求項1に記載の電子署名方法において、
署名tは乱数による初期化を行う(t=gr)ことを特徴とする電子署名方法。
【請求項5】
請求項1に記載の電子署名方法において、
署名sと、改定された署名tとに基づいて、前記電子文書の改定が、電子署名者により作成された電子文書に対して行われたことを検証する電子署名方法。
【請求項6】
電子署名方法をコンピュータに実行させる電子署名プログラムであって、
電子文書と、該電子文書に対する署名となる署名値sと初期化された部分文書の改定用の署名値tの組を受信するとともに、前記署名値sは、前記署名tに各部分文書のハッシュ値全てを2度累乗したものに、電子署名を施した(s=Sig(tΠhihi))電子署名の組を受信し、
部分文書の改定時において、
部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、署名tに削除される部分文書のハッシュ値で2度累乗し(t→thihi)、墨塗り禁止とされている場合は、署名tに削除される部分文書のハッシュ値で累乗を行い、ともに、削除する部分文書を消去し、
部分文書の削除を禁止する場合は、署名tに削除を禁止する部分文書を2度ハッシュ関数にかけた値(di = H(H(mi)))で累乗し(t→tdi)、
部分文書の墨塗りを禁止する場合は、署名tに墨塗りを禁止する部分文書のハッシュ値で累乗し(t→thi)、
署名tを更新する
ことをコンピュータに実行させる電子署名プログラム。
【請求項7】
コンピュータにより電子署名を実行する電子署名装置であって、
電子文書と、該電子文書に対する署名となる署名値sと初期化された部分文書の改定用の署名値tの組を受信するとともに、前記署名値sは、前記署名tに各部分文書のハッシュ値全てを2度累乗したものに、電子署名を施した(s=Sig(tΠhihi))電子署名の組を受信する受信手段と、
部分文書の改定時において、対象となる電子文書を複数の部分文書(mi)に分割し、部分文書の削除を行う場合は、墨塗り禁止とされている場合を除き、署名tに削除される部分文書のハッシュ値で2度累乗し(t→thihi)、墨塗り禁止とされている場合は、署名tに削除される部分文書のハッシュ値で1度累乗し(t→thi)、共に削除する部分文書を消去し、部分文書の墨塗りを行う場合は、部分文書をそのハッシュ値で置き換え(mi→hi)、部分文書の削除を禁止する場合は、署名tに削除を禁止する部分文書を2度ハッシュ関数にかけた値(di = H(H(mi)))で累乗し(t→tdi)、部分文書の墨塗りを禁止する場合は、署名tに墨塗りを禁止する部分文書のハッシュ値で累乗し(t→thi)、署名tを更新する電子文書改定手段と
を備える電子署名装置。

【図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−157784(P2010−157784A)
【公開日】平成22年7月15日(2010.7.15)
【国際特許分類】
【出願番号】特願2008−333358(P2008−333358)
【出願日】平成20年12月26日(2008.12.26)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】