(57)【特許請求の範囲】
【請求項１】
文書作成者装置と、墨塗り者装置と、検証者装置とを含んで構成される電子文書の真正性保証システムであって、
前記文書作成者装置と、前記墨塗り者装置と、前記検証者装置とは、それぞれ、CPUとメモリとを備えた計算機上において、前記メモリに格納されたプログラムを前記CPUが実行することにより具現化され、
前記文書作成者装置は、擬似乱数生成器と署名生成処理手段を備え、
前記署名生成処理手段は、
真正性の保証対象となる電子文書を複数の構成要素に分割し、
第一の乱数シード値を生成し、
複数の前記構成要素各々について、前記擬似乱数生成器を用いて前記第一の乱数シード値から、秘匿用乱数を生成し、
生成した前記秘匿用乱数を、対応する前記構成要素に結合し、
前記秘匿用乱数が結合された前記構成要素各々に対し、第一の暗号学的ハッシュ関数を用いてハッシュ値を計算し、
複数の、第一の暗号学的ハッシュ関数を用いて計算した前記ハッシュ値を、第二の暗号学的ハッシュ関数を用いて演算し、一つの第一のデータを生成し、
前記第一の乱数シード値とは異なる第二の乱数シード値を生成し、
複数の前記構成要素各々について、前記擬似乱数生成器を用いて前記第二の乱数シード値から、墨データ用乱数を生成し、
前記墨データ用乱数おのおのに対し、第三の暗号学的ハッシュ関数を用いてハッシュ値を計算し、
複数の、第三の暗号学的ハッシュ関数を用いて計算した前記ハッシュ値を、第四の暗号学的ハッシュ関数を用いて演算し、一つの第二のデータを生成し、
当該文書作成者装置の使用者の秘密鍵を用いて、前記第一のデータと前記第二のデータとに対し、電子署名を付与し、
前記真正性の保証対象となる電子文書と、前記電子署名と、前記第一の乱数シード値と、前記第二の乱数シード値と、を含む開示対象文書を作成し、
前記墨塗り者装置は、擬似乱数生成器と、開示箇所決定手段と、開示文書作成手段と、を備え、
前記開示箇所決定手段は、
前記文書作成者装置が作成した前記開示対象文書に含まれる、前記真正性の保証対象となる電子文書の前記構成要素各々に対し、不開示、開示かつ墨塗り禁止、または、開示かつ墨塗り許可のいずれか一つを設定し、
前記開示文書作成手段は、
前記秘匿用乱数のうち、開示かつ墨塗り禁止または開示かつ墨塗り許可を設定された前記構成要素に対応する前記秘匿用乱数を生成可能で、かつ、不開示を設定された前記構成要素に対応する前記秘匿用乱数を生成できない、一つまたは複数の第三の乱数シード値と、
前記墨データ用乱数のうち、不開示または開示かつ墨塗り許可を設定された前記構成要素に対応する前記墨データ用乱数を生成可能で、かつ、開示かつ墨塗り禁止を設定された前記構成要素に対応する前記墨データ用乱数を生成できない、一つまたは複数の第四の乱数シード値と、
ひとつまたは複数の、不開示を設定され前記秘匿用乱数が結合された前記構成要素に対し、前記第一の暗号学的ハッシュ関数を用いて計算した第一のハッシュ値と、
ひとつまたは複数の、開示かつ墨塗り禁止を設定された前記構成要素に対応する墨データ用乱数に対し、前記第三の暗号学的ハッシュ関数を用いて計算した第二のハッシュ値と、
開示かつ墨塗り禁止または開示かつ墨塗り許可が設定された前記構成要素と、
前記電子署名と、を含む開示文書を作成し、
前記検証者装置は、開示文書検証手段を備え、
前記開示文書検証手段は、
前記墨塗り者装置が作成した前記開示文書の、前記開示かつ墨塗り禁止または開示かつ墨塗り許可を設定された構成要素各々について、前記開示文書に含まれる前記第三の乱数シード値から、前記秘匿用乱数を生成し、
生成した前記秘匿用乱数を対応する前記開示かつ墨塗り禁止または開示かつ墨塗り許可を設定された構成要素に結合し、
前記秘匿用乱数が結合された、開示かつ墨塗り禁止または開示かつ墨塗り許可を設定された前記構成要素に対して前記第一の暗号学的ハッシュ関数を用いて計算したハッシュ値と、前記開示文書に含まれる前記第一のハッシュ値とを、前記第二の暗号学的ハッシュ関数を用いて演算し、一つの第三のデータを生成し、
前記開示文書の、前記不開示または開示かつ墨塗り許可を設定された構成要素各々について、前記開示文書に含まれる前記第四の乱数シード値から、前記墨データ用乱数を生成し、
生成された前記墨データ用乱数に対して、前記第三の暗号学的ハッシュ関数を用いて計算したハッシュ値と、前記開示文書に含まれる前記第二のハッシュ値とを、前記第四の暗号学的ハッシュ関数を用いて演算し、一つの第四のデータを生成し、
前記秘密鍵に対応する公開鍵ならびに、前記第三のデータおよび前記第四のデータを用いて、前記電子署名を検証し、前記開示文書の真正性を検証する
ことを特徴とする電子文書の真正性保証システム。
【請求項２】
請求項１に記載の電子文書の真正性保証システムにおいて、
前記文書作成者装置は、
前記擬似乱数生成器は、入力長の２倍の長さの乱数を生成するものであり、
（あ）前記擬似乱数生成器を用いて、一つ以上の前記第一の乱数シード値から、２倍の長さの乱数を生成し、
（い）前記２倍の長さの乱数の半分ずつを、各々、新たな前記第一の乱数シード値とし、
（う）前記（い）の結果、前記第一の乱数シード値の数が、前記構成要素の数に満たない場合は、前記（あ）に戻り、
（え）前記（い）の結果、前記第一の乱数シード値の数が、前記構成要素の数に達したら、前記第一の乱数シード値の各々を前記秘匿用乱数とし、
（お）前記擬似乱数生成器を用いて、一つ以上の前記第二の乱数シード値から、２倍の長さの乱数を生成し、
（か）前記２倍の長さの乱数の半分ずつを、各々、新たな前記第二の乱数シード値とし、
（き）前記（か）の結果、前記第二の乱数シード値の数が、前記構成要素の数に満たない場合は、前記（お）に戻り、
（く）前記（か）の結果、前記第二の乱数シード値の数が、前記構成要素の数に達したら、前記第二の乱数シード値の各々を前記墨データ用乱数とする
ことを特徴とする電子文書の真正性保証システム。
【請求項３】
請求項１または２に記載の電子文書の真正性保証システムにおいて、
前記文書作成者装置は、
複数の、前記第一の暗号学的ハッシュ関数を用いて計算した前記ハッシュ値の各々を第一の演算対象とし、
（け）前記第一の演算対象の二つずつを一つの第二の演算対象とし、
（こ）各々の前記第二の演算対象を、前記第二の暗号学的ハッシュ関数を用いて演算し、前記第一の演算対象と同じ長さの一つのハッシュ値を計算して新たな第一の演算対象とし、
（さ）前記（こ）の結果、前記第一の演算対象が複数の場合は、前記（け）に戻り、
（し）前記（こ）の結果、前記第一の演算対象が一つの場合は、当該第一の演算対象を前記一つの第一のデータとし、
複数の、前記第三の暗号学的ハッシュ関数を用いて計算した前記ハッシュ値の各々を第三の演算対象とし、
（す）前記第三の演算対象の二つずつを一つの第四の演算対象とし、
（せ）各々の前記第四の演算対象を、前記第四の暗号学的ハッシュ関数を用いて演算し、前記第三の演算対象と同じ長さの一つのハッシュ値を計算して新たな第三の演算対象とし、
（そ）前記（せ）の結果、前記第三の演算対象が複数の場合は、前記（す）に戻り、
（た）前記（せ）の結果、前記第三の演算対象が一つの場合は、当該第三の演算対象を前記一つの第二のデータとする
ことを特徴とする電子文書の真正性保証システム。
【請求項４】
請求項１ないし３いずれか一に記載の電子文書の真正性保証システムにおいて、
前記第一の暗号学的ハッシュ関数と、前記第二の暗号学的ハッシュ関数と、前記第三の暗号学的ハッシュ関数と、前記第四の暗号学的ハッシュ関数と、は同一である
ことを特徴とする電子文書の真正性保証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子データの真正性保証技術に関する。
【背景技術】
【０００２】
従来、電子文書等の電子データの真正性保証を行う技術として、電子署名（ディジタル署名ともいう）技術がある。（例えば、非特許文献１参照）。
【０００３】
また、構造化された電子文書の各エンティティを電子署名つきで参照・編集可能な構造化文書として取り出す技術がある。（例えば、特許文献１参照）。
【０００４】
また、所有者とは異なる署名者によってあらかじめ署名が付与された所有者(owner)が所有する文書から、署名者が許可した部分については削除可能であり、また削除したあとの署名付き文書の有効性が確認可能な技術がある。（例えば、非特許文献２参照）。
【０００５】
【非特許文献１】Bruce Schneier著「Applied Cryptography: Protocols, Algorithms, and Source Code in C, Second Edition」 John Wiley & Sons、(October 18, 1995), pp. 483-502
【非特許文献２】Ron Steinfeld, Laurence Bull, Yuliang Zheng著, "Content Extraction Signatures",  In International Conference on Information Security and Cryptology ICISC 2001, volume 2288 of LNCS, pp. 285-304, Berlin, 2001. Springer-Verlag, (2001)
【非特許文献３】Robert Johnson, David Molnar, Dawn Song, David Wagner著, Homomorphic Signature Schemes. In Proceedings of the RSA Security Conference Cryptographers Track, pp. 244-262, February 2002
【非特許文献４】Kunihiko MIYAZAKI, Mitsuru IWAMURA, Tsutomu MATSUMOTO, Ryoichi SASAKI, Hiroshi YOSHIURA, Satoru TEZUKA, Hideki IMAI, "Digitally Signed Document Sanitizing Scheme with Disclosure Condition Control", IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences 2005 E88-A(1):239-246, (2005)
【特許文献１】特開2001-167086号公報(第17図)
【発明の開示】
【発明が解決しようとする課題】
【０００６】
電子文書の安全性を支える重要な技術である現在の電子署名技術は、電子文書に対する１ビットの改変であっても検知できるように設計されている。この性質は、不正者による改ざんから電子文書を守るという意味では、非常に有用であるが、電子文書の有効活用という観点からは、一切の加工が許されなくなるため、逆に障害となりうる。
【０００７】
この問題を端的に示す利用場面としては、行政機関等における情報公開が挙げられる。たとえば，次のような電子署名の利用形態が想定される。
【０００８】
すなわち、行政機関において、職員が職務上作成した文書（行政文書）は、作成者を明らかにし、また、改ざんを防止するために、電子署名を付された上で保管される。この文書が情報公開法に基づき開示されるときに、そこに記述された個人情報や国家安全情報が削除や墨塗りなどの処理により部分的に非公開された上で開示される。
【０００９】
従来の電子署名技術では、上記の一連の手続きに従って開示された文書の真正性、すなわち、文書作成者が誰であるか、また開示された文書はもともと作成された文書と同一であるか、を確認することができない。なぜなら、情報公開の過程で、文書の一部が削除されているからである。悪意による改ざんであろうと、プライバシー情報の保護のための個人情報削除であろうと、署名対象文書に対し、なんらかの改変が加えられた、という点では変わらない。結果として、従来の電子署名技術の利用では、「公開された文書の真正性保証」と、「プライバシー情報の保護」という２つの重要なセキュリティ要件を両立できず、どちらかをあきらめざるをえない。
【００１０】
情報公開制度が、行政機関のアカウンタビリティ（説明責任）を果たすための制度であるということを考えると、個人情報等が削除された後の開示用の文書からでも、元々の行政文書との同一性を検証できることが望ましい。
【００１１】
特許文献１は、電子文書の各エンティティのデータと、電子署名データとの対応付けに関わる技術については開示しているが、電子文書編集後に、元の電子署名を変更することなく、元の文書の真正性を確認することについては、開示していない。
【００１２】
したがって、真正性保証対象文書に対する適切な改変を許容する電子文書の真正性保証技術、言い換えると電子文書編集後に、元の電子署名を変更することなく、元の文書の真正性を確認可能な技術が望まれている。
【００１３】
非特許文献２は、所有者(owner)が所有する、所有者とは異なる署名者によってあらかじめ署名が付与された文書から、署名者が許可した部分については削除可能であり、また削除したあとの署名付き文書の有効性が確認可能な技術については開示しているが、情報公開制度に適した技術は開示していない。
【００１４】
例えば、情報公開の場合には、署名者とは異なる開示文書作成者が、署名者が作成または内容を確認したオリジナル文書の開示部分を決定し、開示不適当な部分については情報を削除し、開示すべき部分については、さらにその内容に応じて、第３者による更なる削除を許容または防止可能な状態で情報を開示することが望まれる。しかし、非特許文献２は、このような、開示文書作成者が第３者による再改変の許可または防止を選択可能な技術については開示していない。
【００１５】
非特許文献３は、署名者によってあらかじめ署名が付与された文書から部分的な削除が可能な、他の方法を開示している。この技術によれば、非特許文献２に開示された技術に比べ、署名のデータサイズを削減できる。しかし、非特許文献２に開示と同様、開示文書作成者が第３者による再改変の許可または防止を選択可能な技術については開示していない。
【００１６】
したがって、真正性保証対象文書に対する適切な改変を施した文書の利用形態および要求される要件に合わせた情報公開方法および公開システムが望まれている。
【００１７】
非特許文献４は、開示文書作成者が、第３者による再改変の許可または防止を選択可能な技術を開示しているが、署名のデータサイズを削減する方法については開示していない。
【００１８】
したがって、開示文書作成者が、第３者による再改変の許可または防止を選択可能で、さらに、署名のデータサイズを削減する方法が望まれている。
【課題を解決するための手段】
【００１９】
本発明は、真正性保証対象文書に対する適切な改変を許容する電子文書の真正性保証技術と文書管理システムを提供する。
【００２０】
本発明は、その一態様において、電子文書を構成要素に分割し、ひとつまたは複数のシード値から擬似乱数生成関数を用いて、その構成要素各々に対し、乱数を生成して結合し、乱数が結合された構成要素に対し、暗号学的ハッシュ関数を用いてハッシュ値を計算し、計算されたハッシュ値を、さらに該暗号学的ハッシュ関数と同一または異なる暗号学的ハッシュ関数を用いて結合し、結合されたデータに対し電子署名を付与する電子署名方法を提供する。
【００２１】
すなわち、本発明による電子文書の真正性保証方法は、作成者装置は、真正性の保証対象となる電子文書を複数の構成要素に分割し、第一の乱数シード値を生成し、複数の前記構成要素おのおのに対し、第一の乱数のシード値から擬似乱数生成器を用いて前記複数の構成要素おのおのに対して生成した秘匿用乱数を結合し、前記秘匿用乱数が結合された構成要素おのおのに対し、第一の暗号学的ハッシュ関数を用いて第一のハッシュ値を計算し、計算された複数の第一のハッシュ値を、第二の暗号学的ハッシュ関数を用いて結合した第一のデータを生成し、前記シード値とは異なる第二の乱数シード値を生成し、複数の前記構成要素各々に対し、第二の乱数のシード値から擬似乱数生成器を用いて前記複数の構成要素おのおのに対して墨データ用乱数を生成し、生成された墨データ用乱数おのおのに対し、第三の暗号学的ハッシュ関数を用いて第二のハッシュ値を計算し、計算された複数の第二のハッシュ値を、第四の暗号学的ハッシュ関数を用いて結合した第二のデータを生成し、前記第一のデータと前記第二のデータとに対し、電子署名を付与する、ことを特徴とする。
【００２２】
さらに、本発明による電子文書の真正性保証方法において、墨塗り者装置は、前記構成要素各々に対し、不開示、開示かつ墨塗り禁止、または、開示かつ墨塗り許可のいずれか一つを設定し、開示かつ墨塗り禁止または開示かつ墨塗り許可を設定された要素に対応する秘匿用乱数を生成可能な一つまたは複数の第一の乱数シード値と、不開示または開示かつ墨塗り許可を設定された要素に対応する墨データ用乱数を生成可能な一つまたは複数の第二の乱数シード値と、ひとつまたは複数の不開示を設定された要素と当該要素に対応する秘匿用乱数とから計算された第一のハッシュ値と、ひとつまたは複数の開示かつ墨塗り禁止を設定された要素と当該要素に対応する墨データ用乱数とから計算された第二のハッシュ値と、開示かつ墨塗り禁止または開示かつ墨塗り許可が設定された要素と、前記電子署名とからなるデータを生成することを特徴とする。
【００２３】
さらに、本発明による電子文書の真正性保証方法において、検証者装置は、前記開示かつ墨塗り禁止または開示かつ墨塗り許可を設定された要素に対応する秘匿用乱数を生成可能な一つまたは複数の乱数シードから、前記擬似乱数生成器を用いて、前記開示かつ墨塗り禁止または開示かつ墨塗り許可を設定された要素に対応する秘匿用乱数を生成、結合し、前記秘匿用乱数が結合された前記開示かつ墨塗り禁止または開示かつ墨塗り許可を設定された構成要素に対し、前記第一の暗号学的ハッシュ関数を用いて計算された前記第一のハッシュ値と、前記ひとつまたは複数の不開示を設定された要素と当該要素に対応する秘匿用乱数とから計算された第一のハッシュ値とを、前記第二のハッシュ関数を用いて結合した第三のデータを生成し、前記不開示または開示かつ墨塗り許可を設定された要素に対応する墨データ用乱数を生成可能な一つまたは複数の乱数シードから、前記擬似乱数生成器を用いて、前記不開示または開示かつ墨塗り許可を設定された要素に対応する墨データ用乱数を生成し、生成された墨データ用乱数から前記第三の暗号学的ハッシュ関数を用いて計算された第二のハッシュ値と、前記ひとつまたは複数の開示かつ墨塗り禁止を設定された要素と当該要素に対応する墨データ用乱数とから計算された第二のハッシュ値とを、前記第四のハッシュ関数を用いて結合した第四のデータを生成し、前記第三のデータと前記第四のデータとを用いて、前記電子署名を検証することを特徴とする。
【発明の効果】
【００２４】
本発明によれば、部分情報を削除後であっても電子文書の真正性が検証可能であってデータサイズが削減可能な電子文書の真正性保証方法が提供される。また、個人情報等の重要情報の機密性と開示文書の真正性を保証可能な情報公開システムが提供される。
【発明を実施するための最良の形態】
【００２５】
図１は、本発明を、情報公開システムに適用した複数の実施形態におけるシステムの概略構成図である。なお、以下では、本発明を行政機関の情報公開システムに適用した例を挙げているが、行政機関以外の組織や個人における情報公開システムにも同様に本発明を適用可能である。
【００２６】
図示するように、本システムは、ネットワーク１０１を介して、情報公開側である行政機関の職員が利用する、オリジナル文書作成者装置１０２、文書管理装置１０３、開示文書作成者装置１０４の各装置と、情報公開の請求側と検証側である一般市民が利用する受信者装置１０５が接続されている。
【００２７】
なお、以下の実施形態では、行政機関の職員が利用する、オリジナル文書作成者装置１０２、文書管理装置１０３、開示文書作成者装置１０４の各装置と、一般市民が利用する受信者装置１０５が、同一のネットワーク１０１に接続されている例を説明しているが、これとは異なる接続形態であってもよい。たとえば、行政機関の職員が利用する、オリジナル文書作成者装置１０２、文書管理装置１０３、開示文書作成者装置１０４の各装置が、当該行政機関のLAN(Local Area Network)に接続されており、当該LANが、ゲートウェイサーバを介して、一般市民が利用する受信者装置１０５が接続されているネットワーク１０１に接続されるようになっていてもよい。このような接続形態をとった場合、行政機関のLANは、ゲートウェイサーバにより、外部ネットワーク１０１からの不正アクセス等の攻撃から防御できることになるため、情報セキュリティの観点からは好ましい。
【００２８】
オリジナル文書作成者装置１０２は、行政機関の職員であるオリジナル文書作成者が、電子データとして行政文書（職務上作成する文書）を作成し、作成した行政文書に対し、電子署名を付与したのち、文書管理装置１０３に署名付き行政文書を要求するために利用される。以下の各形態の説明では、以降、オリジナル文書作成者が署名を付す対象とした行政文書のことを、オリジナル文書１０６と呼ぶ。なお、以下の各形態では、オリジナル文書の作成と、オリジナル文書１０６への署名の付与を、ともにオリジナル文書作成者装置において行う例を示すが、これとは異なり、オリジナル文書の作成とオリジナル文書への署名を行う装置とを分け、ネットワーク１０１や可搬な記憶媒体を用いて、これらの装置間でオリジナル文書１０６の受け渡しを行うようにしてもよい。
【００２９】
文書管理装置１０３は、オリジナル文書作成者装置１０２から要求を受けて、オリジナル文書作成者装置１０２で作成された署名付きオリジナル文書１０７を保管する。また、開示文書作成者装置１０４からの要求を受けて、あらかじめ保管していた開示対象となる署名付きオリジナル文書１０７を、開示文書作成者装置１０２に送信する。なお、オリジナル文書作成者装置１０２からの保管要求受付時と、開示文書作成者装置１０４からの開示対象文書送信要求受付時には、適切なユーザ認証処理等を行うことによって、アクセス制御を行うことが、情報セキュリティの観点からは好ましい。
【００３０】
開示文書作成者装置１０４は、受信者装置１０５の利用者である一般市民などの操作による情報公開請求を受けて、当該情報公開請求に応じた開示対象文書を検索し、当該開示対象文書である署名付きオリジナル文書１０７の送信を文書管理装置１０３に要求する。次に、開示文書作成者装置１０４の操作者の操作により、文書管理装置１０３から受信した署名付きオリジナル文書１０７に含まれる情報のうち、個人情報保護や、国家機密にかかわる情報の保護の観点から、公開に不適切な情報を取り除いた開示文書１０８を作成し、作成した開示文書を受信者装置１０５に対し公開する。
【００３１】
このとき、オリジナル文書１０６に付された署名が、従来の電子署名技術によって生成された署名である場合、「公開に不適切な情報の削除」であっても、オリジナル文書１０６に対する不正な改ざんがあった場合と同様に、署名検証の際に検証に失敗するという結果になってしまう。実施形態では、不適切な情報削除後であっても検証可能な、あらたな電子署名技術を適用する。
【００３２】
公開する方法は、たとえば、電子メールで送信する、行政機関または他の機関が運用するWebサーバにアップロードするなど、任意に設計すればよい。Webサーバにアップロードする方法の場合は、情報公開請求を行った受信者装置１０５の利用者以外の一般市民であっても、公開された情報を閲覧できるというメリットがある。
【００３３】
なお、実施形態では、一般市民からの情報公開請求受付、開示対象文書の検索、開示対象文書の文書管理装置１０３への要求、開示文書１０８の作成、開示文書１０８の公開を、同一の開示文書作成者装置１０５において行う例を示すが、これとは異なっていてもよい。たとえば、一般市民からの情報公開請求受付、開示対象文書の検索、開示対象文書の文書管理装置１０３への要求、を開示文書作成者装置１０５とは異なる、別の装置において行い、開示文書１０８の作成と開示文書１０８の公開を開示文書作成者装置１０５で行うようにしてもよい。
【００３４】
受信者装置１０５は、利用者である一般市民が、行政機関に対し情報公開請求を行い、その結果公開された開示文書１０８の真正性を検証するために利用される。受信者装置１０５は、開示文書作成装置１０４に対し、開示対象文書を特定するのに必要な情報を送信し、情報公開を請求する。また、公開された開示文書１０８とオリジナル文書１０６の内容とが、情報の保護の観点から取り除かれた部分（非開示部分）を除き、同一であるかどうかを検証する。
【００３５】
また、受信者装置１０５は、公開された開示文書１０８を、利用者が閲覧できるように、非開示部分が黒く塗りつぶされた（以下、墨塗りされたという）状態で表示または印刷を行う。
【００３６】
なお実施形態では、情報公開請求と、開示文書１０８の真正性検証を、同一の受信者装置１０５で行う例を示すが、これとは異なっていてもよい。たとえば、情報公開請求を、受信者装置１０５とは別の装置で行い、その結果公開された開示文書１０８の真正性検証を、受信者装置１０５で行うようにしてもよい。
【００３７】
図２は、以下の各形態におけるオリジナル文書作成者装置１０２の概略構成を示した図である。
【００３８】
オリジナル文書作成者装置１０２は、CPU２０１と、CPU２０１のワークエリアとして機能するRAM２０２と、ハードディスク装置などの外部記憶装置２０３と、CD-ROMやFDなどの可搬性を有する記憶媒体２０５からデータを読取る読取り装置２０４と、キーボードやマウスなどの入力装置２０６と、ディスプレイなどの表示装置２０７と、ネットワークを介して他の装置と通信を行うための通信装置２０８と、上述した各構成要素間のデータ送受を司るインターフェイス２０９を備えた、一般的な構成を有する電子計算機２１０で構築することができる。
【００３９】
オリジナル文書作成者装置１０２の外部記憶装置２０３に格納されるのは、オリジナル文書作成PG（プログラム）２２１と署名生成PG（プログラム）２２２と文書保管要求PG（プログラム）２２３である。これらのプログラムは、RAM２０２上にロードされ、CPU２０１が実行することにより、それぞれオリジナル文書作成処理部２４１、署名生成処理部２４２、文書保管要求処理部２４３というプロセスとして具現化される。そのほか、これらの各処理部の入出力となるデータ（オリジナル文書１０６、署名つきオリジナル文書１０７、署名用秘密鍵２１１）などが格納される。なお、署名用秘密鍵２１１はセキュリティの観点から特に厳重な管理が求められる。そのため、他のデータが格納された外部記憶装置とは異なる耐タンパ性のある装置内に格納してもよい。
【００４０】
文書管理装置１０３、開示文書作成者装置１０４、受信者装置１０５も、オリジナル文書作成者装置１０２と同様の構成を備える。ただし、文書管理装置１０３の外部記憶装置には、文書保管PG（プログラム）２２４と、開示対象文書送信PG（プログラム）２２５が格納され、また保管を要求された署名つきオリジナル文書が格納される。また、開示文書作成者装置１０４の外部記憶装置には、情報公開請求受付PG（プログラム）２２６、開示対象文書検索PG（プログラム）２２７、開示対象文書要求PG（プログラム）２２８、開示箇所決定PG（プログラム）２２９、開示文書作成PG（プログラム）２３０、開示文書公開PG（プログラム）２３１が格納される。また、受信者装置１０５の外部記憶装置には、情報公開請求PG（プログラム）２３２、開示文書検証PG（プログラム）２３３が格納される。
【００４１】
なお、以下の各形態の説明では、各プログラムは、あらかじめ、外部記憶装置２０３に格納されているものとしたが、必要なときに、FD、CDROMなどの他の記憶媒体と読取り装置２０４、または、通信装置２０８と通信媒体であるインターネットなどのネットワークまたはネットワークを伝搬する搬送波を介して、上記外部インターフェイスを介して外部記憶装置２０３またはRAM２０２に導入されてもよい。
【００４２】
図３は、以下の各形態において、オリジナル文書である行政文書を作成し、文書管理装置に保管するときの概要を示したフロー図である。なお、オリジナル文書を作成し保管する段階においては、将来的に情報公開請求を受けたときに、文書管理装置に保管された文書のうち、どの部分が公開されるべき情報であり、どの部分が公開されるべきでない情報であるかを、決定できるとは限らない。一般には、決定できないことが多いと考えられる。なお、各ステップ中の括弧内に、当該ステップの処理を行うプログラム名を示す。
オリジナル文書作成・保管フロー：（オリジナル文書作成者装置１０２の処理）
３０１：はじめ
３０２：オリジナル文書を作成（オリジナル文書作成PG２２１）
３０３：作成したオリジナル文書に対し署名を生成（署名生成PG２２２）
３０４：署名つきオリジナル文書を文書管理装置１０３に送信し登録を要求（文書保管要求PG２２３）（文書管理装置１０３の処理）
３０５：受信した署名付きオリジナル文書を登録（文書保管PG２２４）
３０６：おわり
図４は、以下の各形態において、一般市民からの情報公開請求を受けて、情報公開されるときの概要を示したフロー図である。なお、各ステップ中の括弧内に、当該ステップの処理を行うプログラム名を示す。
情報公開フロー：（受信者装置１０５の処理）
４０１：はじめ
４０２：開示文書作成者装置１０４に対し、情報公開を要求するために、公開を希望する情報の範囲を特定可能な情報を送信（情報公開請求PG２３２）（開示文書作成者装置１０４の処理）
４０３：公開を希望する情報の範囲を特定する情報を受信し（情報公開請求受付PG２２６）、その範囲を特定する情報に基づき開示すべき文書を検索し（開示対象文書検索PG２２７）、文書管理装置１０３に当該文書を要求（開示対象文書要求PG２２８）（文書管理装置１０３の処理）
４０４：要求された開示すべき署名つきオリジナル文書を開示文書作成装置１０４に送信（開示対象文書送信PG２２５）（開示文書作成者装置１０４の処理）
４０５：受信した署名つきオリジナル文書の内容を、あらかじめ定められた情報開示ポリシに照らして確認し、開示適当な箇所を決定し（開示箇所決定PG２２９）、個人情報や国家機密にかかわる情報などの開示不適当な情報が漏洩しないようにするための非開示処理を施した開示文書を作成し（開示文書作成PG２３０）、当該開示文書を受信者装置１０５に送信（開示文書公開PG２３１）（受信者装置１０５の処理）
４０６：受信した開示文書の真正性を検証（開示文書検証PG２３３）
４０７：おわり
以上に概要を示した情報公開システムにおいて、特に注意すべきなのは、開示文書の真正性の保証と、開示不適当な情報の削除の両立である。
【００４３】
開示文書がオリジナル文書と必ず同一であるような運用形態であれば、オリジナル文書作成者が、公知の電子署名技術を適用し、オリジナル文書にあらかじめ署名を付与しておけば、受信者は、開示文書（この場合はオリジナル文書と同一データ）の真正性を、公知の電子署名検証技術を適用することによって確認可能である。
【００４４】
しかし、本実施形態で述べるような情報公開システムにおいては、オリジナル文書と、開示文書が同一とは限らない。なぜなら、オリジナル文書には、情報公開時点では、開示することが不適当な情報（例：個人のプライバシーにかかわる情報、国家安全保障上公開すべきでない情報など）が含まれている可能性があるため、これらの情報は非開示にされ、開示文書からは取り除かれる（i.e.墨塗りされる）必要があるからである。この場合の墨塗りのような情報公開の観点からは、適切あるいは必須と考えられるオリジナル文書に対する変更であっても、公知の電子署名技術では、悪意をもった第三者による改ざんを受けた場合と同様に、「検証できない」という結果しか得られない。
【００４５】
また、ネットワークトラフィックの増大を避けるという観点からは、電子署名等の真正性保証のためのデータはできるだけサイズが小さい方が好ましい。
【００４６】
したがって、開示文書の真正性の保証と、開示不適当な情報の削除の両立が可能で、データサイズの小さい、新たな電子文書の真正性保証技術が求められる。
【００４７】
本実施形態における電子文書の真正性保証技術に望まれる性質は、以下の通りである。また、これらの性質を満たした上で、さらにデータサイズが小さいほうが好ましい。
（性質１）開示文書に非開示部分が含まれていても検証が可能であり、非開示部分以外に改変がなければ検証に成功すること。
（性質２）開示文書にオリジナル文書に対する墨塗り以外の改変があったときには検証が失敗すること。
（性質３）開示文書から非開示部分に関する情報が推定できないこと。
（性質４）開示文書の非開示部分の情報を推定しようとする攻撃者にとって、開示文書がその推定結果の正当性を保証する情報として利用できないこと。
（性質５）開示文書に対する更なる墨塗りを防止可能であること。
（性質６）開示文書に対する更なる墨塗りを許容するか防止するかを開示文書作成者が選択可能であること。
【００４８】
上記の性質１は、公知の電子署名技術では達成できなかった点であるが、情報公開のようにオリジナル文書作成後になんらかの（適切な）変更が起こりうる場合には、必要となる要件である。
【００４９】
上記の性質２は、許される適切な改変（すなわち墨塗り）と、その他の改変を区別するための条件である。
【００５０】
上記の性質３は、非開示部分（墨塗り部分）から情報が漏洩しないことを意味する。たとえば、非開示部分の情報を暗号技術等によって隠して（暗号文として）公開する、という方法の場合には、当該暗号文が容易に解読されないように設計しなければならない。
【００５１】
上記の性質４は、たとえ非開示部分（墨塗り部分）が推定されたとしてもそれを否認できるようにすることを意味する。たとえば、オリジナル文書が「容疑者Ａは犯行を否認した」であり、開示文書が「容疑者＊＊＊＊は犯行を否認した」であったとする（すなわち開示文書作成者により個人情報であるＡの指名は非開示にされたとする）。この開示文書を見た攻撃者（受信者を含む）が、前後の文脈あるいは他の情報等から、「＊＊＊＊」は「Ａ」ではないかと推定し、＊＊＊＊部分にＡの氏名を仮に当てはめて検証を試みたとする。もし、この検証が成功したとすると、開示文書が、『「＊＊＊＊」は「Ａ」である』という推定結果を保証する情報として利用されるおそれがある。なぜなら「Ａ」以外の文字列で「＊＊＊＊」を当てはめたときに検証が成功する文字列が見出せる確率が事実上無視できる程度に小さくなる署名方法であったとすると、「Ａ」であることを否認するのは困難であるからである。
【００５２】
上記の性質５は、次のような不正を防止するために設けた性質である。たとえば、図１に示した情報公開システムの場合に、開示文書作成者装置１０４から受信者装置１０５に対して送られる開示文書が、ネットワーク１０１上で、改変される恐れがある場合、不正者は開示文書に含まれる情報のうち不正者にとって都合の悪い情報を削除、すなわち追加的に墨塗りしたうえで、受信者装置１０５に送りつけることができる。この場合、受信者からみると、本来の開示文書と、不正者によって追加墨塗りされた開示文書とを区別できない（i.e.どちらもオリジナル文書の一部であることを確認できる）ため、情報公開の本来の目的からすると望ましいとはいえない。
【００５３】
上記の性質６は、性質５に加え、さらに、適用場面によっては、開示文書のうち、ある部分は追加墨塗りを防止したいが、別のある部分は追加墨塗りを許容したいというも考えられるために、設けた性質である。なお、第６の性質を満たせば、開示文書作成者が開示文書全他に対して、追加墨塗りを防止するように設定することにより、開示文書に対する更なる墨塗りを防止可能となるため、第５の性質も満たす。
【００５４】
本実施形態においては、上記の各性質を満たす電子文書の真正性保証技術として適用しうる方法を開示する。
【００５５】
どのように実現するかを説明するために、オリジナル文書作成者装置１０２で動作する署名生成PG２２２と、開示文書作成者装置１０４で動作する開示文書作成PG２３０と、受信者装置１０５で動作する開示文書検証PG２３３の詳細について述べる。
【００５６】
なお、以下では、ハッシュ関数を利用する。本実施形態で利用するハッシュ関数とは、「任意長のデータを入力とし、固定長のデータを出力するような関数で、（１）出力からもとの入力を算出できない（一方向性）、（２）同じ出力を与える２つの入力を見つけることができない（衝突困難性）、という特徴を持つもの」である。具体的な例としては、たとえば、ＳＨＡ−１やＳＨＡ−２５６，３８４，５１２やＭＤ５として知られているものがある。
【００５７】
図５は、第１の実施形態に従った署名生成PG２２２の処理フローを示した図である。
５０１：はじめ
５０２：オリジナル文書を構成要素（以降、ブロックと呼ぶ）に分割する。構成要素をどのように定めるかについては、たとえばオリジナル文書の先頭から１バイトごとにひとつの構成要素として定めてもよいし、あるいは、XML(eXtensible Markup Language)を使って記述された文書のようにあらかじめ構造化された文書であれば、その最小構成要素を利用してもよい。以下、オリジナル文書をＮ個のブロックの列とみなす
５０３：乱数Ｒを生成する
５０４：Ｒをシードとし、オリジナル文書であるＮブロックそれぞれに対し、擬似乱数生成器を使い、木構造に従って乱数を生成する。木構造に従って乱数を生成する方法の詳細については後述する
５０５：Ｎ個のブロックそれぞれに対し、ブロックのデータとそのブロックに対して生成された乱数を結合したデータ（これを乱数つきブロックと呼ぶ）を生成する
５０６：Ｎ個の乱数付きブロックそれぞれに対し、ハッシュ関数を用いて、Ｎ個のハッシュ値X_iを計算する（これを乱数付きブロックハッシュと呼ぶ）
５０７：Ｎ個の乱数付きブロックハッシュから、ハッシュ関数を使い、木構造に従って１つのハッシュ値Ｘを計算する。木構造に従って一つのハッシュ値を計算する方法の詳細については後述する
５０８：乱数Ｓを生成する
５０９：Ｓをシードとして、オリジナル文書であるＮブロックそれぞれに対し、ステップ５０４と同様にして、木構造に従って乱数を生成する。これを「墨ブロック」と呼ぶ（合計Ｎ個の墨ブロックが生成される）
５１０：Ｎ個の墨ブロックそれぞれに対し、ハッシュ関数を用いて、Ｎ個のハッシュ値Y_iを計算する（これを墨ブロックハッシュと呼ぶ）
５１１：Ｎ個のを墨ブロックハッシュから、ステップ５０７と同様に、ハッシュ関数を使い、木構造に従って１つのハッシュ値Ｙを計算する。
５１２：ＸとＹを結合したデータＸ｜｜Ｙに対してオリジナル文書作成者の秘密鍵を用いて署名ＳＩＧを生成する
５１３：ＲとＳとオリジナル文書と署名ＳＩＧからなるデータを、署名付きオリジナル文書とする
５１４：おわり
上記ステップ５０４、５０９に述べた木構造に従って乱数を生成する方法の詳細は次の通りである。図８は、乱数の生成手順を模式的に示した図である。ＰＲＮＧを入力長の２倍の長さの乱数を生成する擬似乱数生成器とする。ｒ＿｛ｂ｝を入力としたときの出力をｒ＿｛ｂ０｝｜｜ｒ＿｛ｂ１｝＝ＲＰＮＧ（ｒ＿｛ｂ｝）とあらわす。なおここでｂは０と１から構成される任意長の文字列を表す（以降も同様）。また”ｂ０”、”ｂ１”はそれぞれ文字列ｂに文字”０”，”１”をつなげたものを表す。以降の記述では、文字列ｂと、ｂを２進数表記としてみたときの数値と同一視することがある。すなわち例えば文字列”０１０１”を数値５と同一視する。ＲＰＮＧを用いて、まずｒ（８１）からｒ＿０（８１０）とｒ＿１（８１１）を生成する。次にｒ＿０（８１０）とｒ＿１（８１１）からｒ＿００（８１００），ｒ＿０１（８１０１），ｒ＿１０（８１１０），ｒ＿１１（８１１１）を生成する。同様に、木構造（二分木）にしたがってPRNGを繰り返し適用し、最終的にｒ＿０００（８１０００）〜ｒ＿１１１（８１１１１）を生成する。以上の手順に従い、シードＲ（またはＳ）からＮ個の乱数を生成する。
【００５８】
上記ステップ５０７、５１１に述べた木構造に従って一つのハッシュ値を計算する方法の詳細は以下の通りである。図９は、ハッシュ値の計算手順を模式的に示した図である。ＨＡＳＨをハッシュ関数とする。ｘ＿｛ｂ｝＝ＨＡＳＨ（ｘ＿｛ｂ０｝｜｜ｘ＿｛ｂ１｝）とあらわす。まず、Ｎ個の値Ｘ＿０００（９１０００）〜ｘ＿１１１（９１１１１）を２つずつ入力としＨＡＳＨを用いて、ｘ＿００（９１００）〜ｘ＿１１（９１１１）を計算する。次に、これらを２つずつ入力とし再びＨＡＳＨを用いてｘ＿０（９１０），ｘ＿１（９１１）を計算する。木構造（二分木）にしたがってHASHを繰り返し適用し、最終的に１個のハッシュ値ｘ（９１）を計算する。以上の手順に従い、Ｎ個の乱数付きブロックハッシュＸ＿ｉ（または墨ブロックハッシュＹ＿ｉ）からハッシュ値Ｘ（またはＹ）を計算する。
【００５９】
なお上記ステップ５０６，５０７，５１０，５１１の各ステップで使うハッシュ関数は同一のものを用いてもよいし、それぞれ異なるものを用いてもよい。複数のハッシュ関数を用いた場合には、後述の開示文書作成PGと開示文書検証PG中で用いるハッシュ関数も同様に対応する複数のハッシュ関数を用いればよい。同一のものを用いた場合は、実装が容易になるという利点がある。また異なるものを用いた場合は、ある一つのハッシュ関数に脆弱性が見つかった場合であっても、それが及ぼす悪影響を局在化できる可能性がある。
【００６０】
図６は、第１の実施形態に従った開示文書作成PG２３０の処理フローを示した図である。
６０１：はじめ
６０２：開示対象である署名付きオリジナル文書の中から、開示不適切な情報を含むブロック（不開示ブロック）を検索
６０３：検索されたブロック以外の各ブロックについて、「追加墨塗りを許容する」（墨塗り可能ブロック）か「追加墨塗りを防止する」（墨塗り不可能ブロック）か、を決定
６０４：空の乱数シードリストを用意する
６０５：Ｒ＿｛ｂ｝＝Ｒとする
６０６：Ｒ＿｛ｂ｝をシードとして木構造に従って乱数を生成したときに、不開示ブロックに対応する乱数が生成できるかどうかをチェックする。生成できない場合には、Ｒ＿｛ｂ｝を乱数シードリストに追加してステップ６０７へ。生成できる場合には、Ｒ＿｛ｂ｝＝Ｒ＿｛ｂ０｝とＲ＿｛ｂ｝＝Ｒ＿｛ｂ１｝の両方についてステップ６０６のチェックを行う
６０７：空の墨シードリストを用意する
６０８：Ｓ＿｛ｂ｝＝Ｓとする
６０９：Ｓ＿｛ｂ｝をシードとして木構造に従って乱数を生成したときに、墨塗り不可能ブロックに対応する乱数が生成できるかどうかをチェックする。生成できない場合には、Ｓ＿｛ｂ｝を墨シードリストに追加してステップ６１０へ。生成できる場合には、Ｓ＿｛ｂ｝＝Ｓ＿｛ｂ０｝とＳ＿｛ｂ｝＝Ｓ＿｛ｂ１｝の両方についてステップ６０９のチェックを行う
６１０：乱数付きブロック向けの空のハッシュ値リストを用意する
６１１：乱数シードリストに乱数シードＲ＿｛ｂ０｝が含まれていて、かつ、Ｒ＿｛ｂ１？｝（ここで？は”０”または”１”からなる１文字以上の任意の文字列）が含まれていなければ、乱数付きブロックハッシュからハッシュ関数を利用してＸ＿｛ｂ１｝を計算し、乱数付きブロック向けハッシュ値リストに追加する。また乱数シードリストに乱数シードＲ＿｛ｂ１｝が含まれていて、かつ、Ｒ＿｛ｂ０？｝（ここで？は”０”または”１”からなる１文字以上の任意の文字列）が含まれていなければ、乱数付きブロックハッシュからハッシュ関数を利用してＸ＿｛ｂ０｝を計算し、乱数付きブロック向けハッシュ値リストに追加する。なお、Ｘ＿｛ｂ１｝やＸ＿｛ｂ０｝は署名生成時と同様にして署名つきメッセージから算出可能である
６１２：墨ブロック向けの空のハッシュ値リストを用意する
６１３：墨シードリストに乱数シードＳ＿｛ｂ０｝が含まれていて、かつ、Ｓ＿｛ｂ１？｝（ここで？は”０”または”１”からなる１文字以上の任意の文字列）が含まれていなければ、墨ブロックハッシュからハッシュ関数を利用してＹ＿｛ｂ１｝を計算し、墨ブロック向けハッシュ値リストに追加する。また乱数シードリストに乱数シードＲ＿｛ｂ１｝が含まれていて、かつ、Ｓ＿｛ｂ０？｝（ここで？は”０”または”１”からなる１文字以上の任意の文字列）が含まれていなければ、、墨ブロックハッシュからハッシュ関数を利用してＹ＿｛ｂ０｝を計算し、墨ブロック向けハッシュ値リストに追加する。なお、Ｙ＿｛ｂ１｝やＹ＿｛ｂ０｝は署名生成時と同様にして署名つきメッセージから算出可能である
６１４：オリジナル文書から不開示ブロックを除いたものと、乱数シードリストに含まれる値と、墨シードリストに含まれる値と、乱数付きブロック向けハッシュ値リストに含まれる値と、墨ブロック向けハッシュ値リストに含まれる値と、署名からなるデータを、開示文書として出力する
６１５：おわり
図７は、第１の実施形態に従った開示文書検証PG２３３の処理フローを示した図である。
７０１：はじめ
７０２：開示文書（オリジナル文書から不開示ブロックを除いたものと、乱数シードリストに含まれる値と、墨シードリストに含まれる値と、乱数付きブロック向けハッシュ値リストに含まれる値と、墨ブロック向けハッシュ値リストに含まれる値と、署名からなる）から、ハッシュ値Ｘとハッシュ値Ｙを計算する。なお、ハッシュ値Ｘとハッシュ値Ｙの計算方法の詳細は後述する。
７０３：Ｘ｜｜Ｙに対して、オリジナル文書作成者の公開鍵を用いて検証し、検証結果を出力する。なお、検証に利用するオリジナル文書作成者の公開鍵は、たとえば、開示文書とともに開示文書作成者装置１０４から送られてくるようにしてもよいし、オリジナル文書作成者装置１０２から、必要に応じて入手可能であるようにしておいてもよい。公開鍵は、公知のPKI(Public-key infrastructure)技術を適用して発行された、確かにオリジナル文書作成者のものであることを確認可能な公開鍵証明書つきで利用可能であることが望ましい
７０４：おわり
上記ステップ７０２におけるハッシュ値Ｘとハッシュ値Ｙの計算は次のように行えばよい。まず、開示ブロック（ｉ．ｅ．墨塗り可能ブロックまたは墨塗り不可能ブロックのどちらか）に対応する乱数を、乱数シードリストに含まれる値から木構造に従って算出し、これと開示ブロックとから、乱数付きブロックを構成する。さらに乱数付きブロックからハッシュ関数を用いて、乱数付きブロックハッシュを算出する。次に乱数付きブロックハッシュから木構造に従ってハッシュ値Ｘを、署名生成時と同様にして、算出する。ただし、署名生成時と異なり、不開示ブロックに対応する乱数付きブロックハッシュの代わりに、乱数付きブロック向けハッシュリストの値を用いる。同様に、乱数シードリストの代わりに墨シードリストを、乱数付きブロック向けハッシュリストの代わりに、墨ブロック向けハッシュ値リストを用いて、ハッシュ値Ｙを算出する。なお、以上の手順の過程において、開示ブロックについては、対応する乱数が算出できること、不開示ブロックまたは墨塗り可能ブロックについては、対応する墨ブロックが算出できること、を確認する。確認できない場合には、検証失敗を出力する。（図５に示した署名生成処理と、図６に示した開示文書作成処理に従って作成された開示文書の場合には、これらのブロックが算出できることを確認可能である。）
図１０は、本実施形態に示した手順に従い作成された開示文書１０８の構成を模式的に示した図である。オリジナル文書である「ＭＥＳＳＡＧＥ１」（１文字ずつ８個のブロックから構成されているものとする）に対して署名ＳＩＧされた署名付きオリジナル文書のうち、３，４，７文字目の「Ｓ」「Ｓ」「Ｅ」を不開示とし、１，２文字目の「Ｍ」「Ｅ」を墨塗り不可に設定した場合の開示文書を示している。ここで、開示文書に含まれる乱数シードリストに含まれる値は、Ｒ＿００，Ｒ＿１０，Ｒ＿１１１の３つであり、墨シードリストに含まれる値は、Ｓ＿１，Ｓ＿０１の２つである。また、乱数付きブロック向けハッシュ値リストに含まれるのは、Ｘ＿０１，Ｘ＿１１０の２つであり、墨ブロック向けハッシュ値リストに含まれるのは、Ｙ＿００である。これらの値から図１０中の「×印」をつけた乱数を算出することは著しく困難であり、事実上不可能である。
【００６１】
以上に述べた電子文書の真正性保証技術が、上記の（性質１）〜（性質６）を満たすことを説明する。
【００６２】
本実施形態では、開示文書は、オリジナル文書から不開示ブロックを除いたものと、乱数シードリストに含まれる値と、墨シードリストに含まれる値と、乱数付きブロック向けハッシュ値リストに含まれる値と、墨ブロック向けハッシュ値リストに含まれる値と、署名からなる。（性質１）を満たすことについては、上記の検証手順の説明中に述べたとおりである。
【００６３】
またハッシュ関数の衝突困難性により、オリジナル文書ブロックをハッシュ値ブロックに置き換える以外の変更は困難である。したがって（性質２）も満たす。
【００６４】
また、開示文書に含まれる、開示不適当な情報に依存する情報は、開示不適当なブロックに関するブロックのハッシュ値と、そのハッシュ値に依存して生成された署名のみである。したがって、ハッシュ関数の一方向性により、（性質３）を満たすことがわかる。
【００６５】
さらに、前後の文脈等から開示不適当なブロックを推測した攻撃者が、推測が正しかったかどうかを、ハッシュ値を比較して調べることは困難である。なぜなら、仮に推測したブロックの情報が正しかったとしても、結合される乱数が正しくなければハッシュ値が一致しないからである。また、乱数は前後の文脈等とは無関係に生成されるため、乱数を推測することは著しく困難であり、事実上、不可能である。したがって第４の実施形態は（性質４）も満たす。
【００６６】
本実施形態に示した方法によれば、あるブロックについて墨塗りを許容するか防止するかは、当該ブロックに対応する墨ブロックを生成できるようにするか否かによって設定可能である。またあるブロックに対応する墨ブロックが生成できないようにした場合、すなわち、墨ブロックの値である乱数を生成するためのシード値を含めないように開示文書を生成した場合に、当該墨ブロックの値を推測するのは、ハッシュ関数の一方向性により困難である。したがって（性質５）(性質６）も満たす。
【００６７】
さらに、本実施形態に示した方法によれば、公知の非特許文献４に開示された方法と比較し、データサイズを削減可能である。なぜなら、非特許文献４に開示された方法では、開示文書として、乱数付きブロックや墨ブロックを構成するために必要な乱数を各ブロックに個別に与えているのに対し、本実施形態に示した方法では、（複数の）必要な乱数を生成するためのシード値を与えているためである。また、非特許文献４に開示された方法では、開示文書として、乱数付きブロックハッシュや墨ブロックハッシュをブロックごとに個別に与えているのに対し、これらを木構造に従ってハッシュ関数を使ってまとめたハッシュ値を与えているためである。
【００６８】
以上に述べた実施形態では、情報公開制度を例に挙げて説明をしたが、本発明はこれに限定されるものではない。
【００６９】
以上に述べた実施形態では、電子署名技術をベースとして電子文書の真正性保証技術を構成した例を示したが、これと異なっていてもよい。たとえば、信頼できる第三者機関が存在する場合には、電子署名技術によらず、オリジナル文書作成者が、あらかじめ当該第三者機関装置にオリジナル文書（またはそのハッシュ値など）を預託しておき、受信者が当該第三者機関装置に開示文書の真正性を問い合わせるようにしてもよい。この場合であっても、本実施形態の説明で述べた実施形態は適用可能である。たとえば、各方法で署名対象としたデータ（すなわち署名つきオリジナル文書のうちの署名以外のデータ）を、第三者機関装置に預託するようにすればよい。
【００７０】
また、以上に述べた実施形態では、主としてオリジナル文書が、構成要素であるブロックがシーケンシャルに並んだ構成をとっている場合を例にとって説明したが、これとは異なる構成をとっていてもよい。たとえば、XML(eXtensible Markup Language)などの構造化された文書フォーマットを使ってオリジナル文書が記述されている場合、各要素間に階層関係があると見ることができる。すなわち、Ａという要素名の開始タグと終了タグで囲まれた領域に、Ｂという要素名の開始タグ、終了タグが含まれている場合には、ＡはＢの親要素と見ることができる。このような階層構造がある場合には、その階層構造に応じて電子文書の真正性保証技術を設計してもよい。
【００７１】
また、本実施形態では、オリジナル文書を、互いに共通部分を持たない構成要素に分割して（ステップ５０２）署名生成を行う例を示したが、共通部分をもつ構成要素に分割してもよい。この場合であっても、本実施形態の説明で述べた実施形態は適用可能である。
【００７２】
なお、上記の実施形態では、非開示部分は墨塗り、すなわち、黒く塗りつぶした状態で開示する、と述べたが、このほかの方法により非開示処理を行っても良い。
【００７３】
なお、上記実施形態は行政文書を対象として説明したが、これに限定されるものではなく、署名付与後に署名対象部分の適切な改変が望まれることがあるさまざま電子文書に適用可能である。
【００７４】
また、電子文書に限らず、より一般に、画像データ、動画データ、音楽データなどのディジタルデータに対しても適用可能である。この場合のブロックの設定は、それぞれのディジタルデータの構造に合わせて、適切に設定すればよい。
【００７５】
なお、本発明は、上述した実施形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【００７６】
【図１】実施形態を実現するネットワークシステムの概略構成を例示した図である。
【図２】実施形態におけるオリジナル文書作成者装置１０２を実現する計算機の概略構成を例示した図である。
【図３】実施形態におけるオリジナル文書作成・保管時のフローを例示する図である。
【図４】実施形態における情報公開時のフローを例示する図である。
【図５】実施形態に従った署名生成PG２２２の処理フローを例示する図である。
【図６】実施形態に従った開示文書作成PG２３０の処理フローを例示する図である。
【図７】実施形態に従った開示文書検証PG２３３の処理フローを例示する図である。
【図８】実施形態に従った開示文書作成PG２３０の処理における乱数の生成方法を模式的に例示する図である。
【図９】実施形態に従った開示文書作成PG２３０の処理におけるハッシュ値の計算方法を模式的に例示する図である。
【図１０】実施形態に従った開示文書の構成を模式的に例示する図である。
【符号の説明】
【００７７】
１０１：ネットワーク、１０２：オリジナル文書作成者装置、１０３：文書管理装置、１０４：開示文書作成者装置、１０５：受信者装置、１０６：オリジナル文書、１０７：署名つきオリジナル文書、１０８：開示文書。
【図１】
0004622811.tif 000002
【図２】
0004622811.tif 000003
【図３】
0004622811.tif 000004
【図４】
0004622811.tif 000005
【図５】
0004622811.tif 000006
【図６】
0004622811.tif 000007
【図７】
0004622811.tif 000008
【図８】
0004622811.tif 000009
【図９】
0004622811.tif 000010
【図１０】
0004622811.tif 000011