(57)【要約】【課題】署名された電子文書を公開する際に、プライバシー情報や秘密情報など公開できない箇所を削除するなどの方法でマスキングを行うと、電子文書の署名が有効でなくなってしまい、電子文書の正当性を保証できない。【解決手段】対象となる電子文書をいくつかの部分に分割し、それぞれの部分に対してハッシュ値または署名値を求める。求めた複数のハッシュ値または署名値に対して署名を行うことで、署名の有効のままで元になる電子文書をマスキングすることができる。また、複数のハッシュ値または署名値を用いて、元の電子文書を検証することによってマスキングした箇所が確認できる。【選択図】  図１０
2004364070.tif 000002
【特許請求の範囲】
【請求項１】
電子文書を、任意または固定長の２つ以上の部分文書に分割したデータを作成するデータ作成装置と、
前記部分文書それぞれの正当性を確認するための情報を生成し、生成した複数の、前記部分文書の正当性を確認するための情報の集合体に対して署名を行う署名装置と、
前記署名の対象となった電子文書を、前記部分文書単位で、削除または変更するマスキング装置と、
前記マスキングされた電子文書の正当性を検証する検証装置とを備える電子文書管理システム。
【請求項２】
請求項１に記載の電子文書管理システムであって、
前記検証装置は、
前記部分文書の正当性を確認するための情報の集合体を検証することにより、前記電子文書全体の正当性を確認し、
各々の前記部分文書の正当性を確認するための情報を検証することにより、検証対象となっている前記電子文書の部分文書の正当性を確認し、前記電子文書が部分的に削除または変更されているかどうかを確認する。
【請求項３】
請求項２に記載の電子文書管理システムであって、
前記検証装置は、前記検証結果を表示部に表示することにより、検証者に、前記電子文書全体の正当性を保証しつつ、部分的に削除または変更されているかどうかを通知する。
【請求項４】
請求項１に記載の電子文書管理システムであって、
前記データ作成装置は、前記部分文書の前および／または後に、区切り記号を挿入することにより、前記分割を行う。
【請求項５】
請求項４に記載の電子文書管理システムであって、
前記電子文書は、構造化言語を用いて作成された文書であり、前記部分文書は、前記構造化文書の構造化単位であり、前記区切り記号は、前記構造化言語のタグである。
【請求項６】
請求項２に記載の電子文書管理システムであって、
部分文書の正当性を確認できる情報とは、ハッシュ関数を用いて生成した当該部分文書のハッシュ値である。
【請求項７】
請求項２に記載の電子文書管理システムであって、
部分文書の正当性を確認できる情報とは、当該部分文書の署名である。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル署名技術とディジタル署名検証技術を用いた文書管理システムに関する。
【０００２】
【従来の技術】
公開鍵暗号技術では、１セットで２つの鍵が用いられる。一方の鍵で暗号化されたものはもう一方の鍵で復号化することが可能である。このとき、暗号化した鍵では暗号を解くことができず、対となるもう一方の鍵でのみ復号化が可能である。公開鍵暗号技術を利用する場合、一方の鍵は秘密鍵（Ｐｒｉｖａｔｅ  Ｋｅｙ）として秘密に保管されてディジタル署名（以下、署名という）の生成や暗号解読の際に使用される。もう一方の鍵は、公開鍵として公開され署名の検証や暗号化に用いられる。
【０００３】
公開鍵暗号を署名に使用する場合、通常、はじめに署名対象となる電子文書をＳＨＡ−１などのアルゴリズムを利用したハッシュ関数を用いてハッシュ値と呼ばれるダイジェスト値（特徴値ともいう）を求める。次にこのハッシュ値を秘密鍵で暗号化して署名値とする。
【０００４】
署名の検証を行うには、公開鍵で署名値を復号化して電子文書のハッシュ値に戻す。次に電子文書のハッシュ値を計算して、この値と比較する。電子文書に改竄が無ければ二つのハッシュ値は一致する。改竄があれば電子文書から求めたハッシュ値が変化して二つの値は一致しない。この作業を行うことによって電子文書に改竄があったかどうかの判定が行える。
【０００５】
この公開鍵を利用した署名方法の応用として、ＸＭＬ署名がある。ＸＭＬ署名における署名自体は対象となるデータのダイジェスト値を求め、秘密鍵で暗号化して行うことから、従来の技術と同様である。この署名法ではＸＭＬタグを利用して、分割したデータなどへ署名を行うことができる。さらに、データの部分署名や多重署名などが行える。ＸＭＬ署名では、前述の署名がデータすべてに１つの署名を行うのに比べて、複雑な署名が行える。
【０００６】
ほかの署名方法として分割署名方法がある。この署名方法では署名対象となる電子文書を分割し、分割した部分ごとに署名を行う。従来の署名方法では（例えば、特許文献１参照）、分割したデータに署名を行って保管する方法が記述されている。データを部分ごとに署名することで、部分ごとに独立して参照、編集することを可能にしている。
【０００７】
【特許文献１】
特開２００１−１６７０８６号公報
【０００８】
【発明が解決しようとする課題】
公的な機関が情報公開の請求にしたがって紙の文書を公開する際などに、プライバシー情報を含む場合にはその部分を黒く塗りつぶすなどのマスキング処理を行い、文書を部分的に非公開とする。電子文書（以下、単に文書ともいう）においてもプライバシー情報の部分を除いた文書データを公開することができる。しかし、公開請求した文書に署名がされていた場合、課題が発生する。プライバシー保護のために過去に署名された電子文書を部分的にマスキングすると、文書の改竄を行ったことと同じになり過去の署名の有効性が失われてしまう。これはマスキングすることによって文書のハッシュ値が変化し、署名が保証するハッシュ値と対応がつかないからである。
【０００９】
上記の課題を解決するための方法のひとつとして、再署名を行う方法と、上述の分割署名を行う方法がある。
【００１０】
再署名の場合は、電子文書のマスキングを行った後で改めて署名を行い、修正時点での署名を施す。しかし、この方法だと文書作成時の署名が無効となってしまい、作成物の署名者とマスキングをする者が異なる場合や、署名時刻が一致しないことについて問題が発生する。
【００１１】
特許文献１に記載された分割署名方法で署名されたデータにマスキングを行うと、マスキングを行った部分に施された署名が不正なものとなるが、分割した他の部分の署名は正当で検証に成功する。しかし、データ全体の対応関係に関してマスキング処理前からの正当性が保証できる署名がされていないので、分割した単位ごとにデータの順番などを変更しても、署名の検証で検出できないため、課題となる。
【００１２】
【課題を解決するための手段】
本発明は、電子文書を、その公開の際に、部分的に非公開とする場合であっても、電子文書が作成された際に施された署名により、当該文書の正当性が検証できる技術を提供する。
【００１３】
本発明のシステムは、署名の対象となる電子文書を、任意および／または固定長の２つ以上の部分文書に分割する。この際、分割したＸＭＬなど構造化言語のタグを用いて汎用性を持たせて分割するか、分割のために専用の区切りを挿入して分割を行う。この２つ以上の部分文書それぞれに対して、その正当性を確認するための情報を生成し、生成した正当性を確認するための情報の集合体に対して署名を行うことで電子文書に対する署名の効果を持たせ全体の正当性を確認する署名技術を用いる署名機能を備えている。
【００１４】
また、この署名機能で署名された電子文書について、分割された部分文書単位に、削除または変更することによって電子文書の部分的な隠蔽（マスキング）を行うマスキング機能を備えている。また、この部分文書をマスキング単位という。
【００１５】
さらに、この署名機能で署名された電子文書に於いて、正当性を確認するための情報の集合体に対する署名の検証によって電子文書全体の正当性を確認し、集合体に含まれるそれぞれの正当性を確認するための情報が、部分文書から生成する正当性を確認するための情報と比較し、等しい場合は電子文書が部分的に改竄されていないことを確認し、異なる場合は電子文書が部分的に隠蔽（マスキング）されていることを確認することによって、電子文書に対する正当性の検証を行う検証機能を備える。
【００１６】
そして、上記正当性を確認するための情報は、ハッシュ関数を用いて部分文書（マスキング単位）から生成したハッシュ値か、または、部分文書の署名のいずれかを用いることができる。
【００１７】
より具体的には、本発明のシステムは、その一態様において、署名後でもマスキングが可能となるように、電子文書を部分文書に分割したマスキング前データを作成するデータ作成装置と、部分文書から正当性を確認するための情報とその集合体に対する署名からなる署名関連データを作成する署名装置と、一つ以上の部分文書の削除または変更によりマスキングして、マスキング後データを作成するマスキング装置と、署名関連データでマスキング前データまたはマスキング後データを検証して電子文書の正当性を確認する検証機能とマスキング前データまたはマスキング後データと署名関連データを検証結果とともに表示するデータ表示機能とを備える検証装置と、からなる。
【００１８】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態について説明する。
【００１９】
図１は、本実施例における、マスキング可能な署名技術を用いた電子文書管理システム１０の全体構成図である。
【００２０】
図１のマスキング可能な署名技術を用いたシステム１０はネットワーク２０で繋がれた次の４つの装置で構成される。一つ目がデータ作成装置１１で、元データ１から、署名後でもマスキングが可能となるマスキング前データ２を作成するデータ作成機能を持つデータ作成部２１と、マスキング前データ２を表示するデータ表示機能を持つデータ表示部２２を備える。
【００２１】
二つ目が署名装置１２で、マスキング前データ２へ署名して署名関連データ４を作成する署名機能を持つ署名部２３と、署名関連データ４でマスキング前データ２を検証してデータの有効性を確認する署名検証機能をもつ署名検証部２４と、マスキング前データ２と署名関連データ４を署名検証結果とともに表示するデータ表示機能を持つ表示部２５を備える。
【００２２】
三つ目がマスキング装置１３で、マスキング前データ２またはマスキング後データ６の部分的な削除または変更によりマスキングして新たなマスキング後データ６を作成するマスキング機能を持つマスキング部２６と、署名関連データ４でマスキング前データ２またはマスキング後データ６を検証してデータの有効性を確認する署名検証機能を持つ署名検証部２７と、マスキング前データ２またはマスキング後データ６と署名関連データ４を署名検証結果とともに表示するデータ表示機能を持つ表示部２８を備える。
【００２３】
四つ目が検証装置１４で、マスキング前データ２またはマスキング後データ６と署名関連データ４を署名検証結果とともに表示するデータ表示機能を持つデータ表示部２９と、署名関連データ４でマスキング前データ２またはマスキング後データ６を検証してデータの有効性を確認する検証機能を持つ検証部３０を備える。
【００２４】
上記データ作成装置１１、署名装置１２、マスキング装置１３、検証装置１４は、基本ソフトウェア（オペレーティングシステムともいう）上でアプリケーションソフトウェアが動作する、少なくともマイクロプロセッサと、ハードディスクなどの二次記憶装置と、メモリと、キーボードやマウスなどの入力装置と、表示出力装置を備え、その他状況に合わせてＧＰＵなどのプロセッサや、着脱可能な記憶媒体の読み書き装置もしくは、ネットワークインターフェースなどの入出力装置を備えた一般的なコンピュータ上に実現される。
【００２５】
データ作成装置１１では基本ソフトウェア上で動作するアプリケーションを利用することによって、マスキング可能な署名技術で署名可能なデータ形式でデータを作成・編集・変換を行うことができる。データ作成装置１１では、元データ１を編集または作成して、これを、署名後にマスキングが可能な形式であるマスキング前データ２に変換して表示する。このうちの、データの編集作成を行うのがデータ作成部２１で、そのために必要な表示を行う部分が表示部２２である。また、データ作成装置１１で扱うデータは、基本ソフトウェアが提供する二次記憶装置や着脱可能な記憶媒体へのアクセス機能を利用することで適時読み込みと保存を行う。さらに、ネットワーク２０を利用して署名装置１２とデータの送受信を行う。
【００２６】
署名装置１２では基本ソフトウェア上で動作するアプリケーションを利用することによって、マスキング可能な署名技術で署名を行うことができる。署名装置１２では、データ作成装置１１で作成されたマスキング前データ２に署名操作を行って署名関連データ４を作成し、次にマスキング前データ２とまとめて全データ３を作成して表示し、必要なら署名検証を行う。このうちの署名を行うのが署名部２３で、署名検証を行うのが署名検証部２４である。また、署名や検証結果の表示を行うのが表示部２５である。また、署名装置１２で扱うデータは、基本ソフトウェアが提供する二次記憶装置へのアクセス機能を利用することで適時読み込みと保存をする。さらに、ネットワーク２０を利用してデータ作成装置１１およびマスキング装置１３とデータの送受信を行う。
【００２７】
マスキング装置１３では基本ソフトウェア上で動作するアプリケーションを利用することによって、マスキング可能な署名技術で署名を行ったデータを公開するために、非公開とすべき情報をマスキングする処理を行うことができる。マスキング装置１３では、署名装置１２で作成された全データ３のマスキング前データ２の必要箇所をマスキングしてマスキング後データ６を作成し、次に署名関連データ４とまとめて公開データ５を作成して表示し、必要なら署名検証を行う。このうちのマスキングを行うのがマスキング部２６で、署名検証を行うのが署名検証部２７である。また、マスキングや検証結果の表示を行うのが表示部２８である。また、マスキング装置１３で扱うデータは、基本ソフトウェアが提供する二次記憶装置へのアクセス機能を利用することで適時読み込みと保存をする。さらに、ネットワーク２０を利用してデータ署名装置１２および検証装置１４とデータの送受信を行う。
【００２８】
検証装置１４では基本ソフトウェア上で動作するアプリケーションを利用することによって、マスキングが行われて公開されたデータを表示して確認することができる。マスキング装置１３で作成された公開データ５の署名検証を行った上で表示する。また、検証装置１４で扱うデータは、基本ソフトウェアが提供する二次記憶装置へのアクセス機能を利用することで適時読み込みと保存をする。さらに、ネットワーク２０を利用してマスキング装置１３とデータの送受信を行う。
【００２９】
以下に説明する各処理は、上記ハードディスクまたはメモリに格納された一つ以上のプログラムを、基本ソフトウェアの管理のもと、マイクロプロセッサが読み出して実行することにより、各装置１１〜１４上で実現されるものである。
【００３０】
各プログラムは、あらかじめ、上記コンピュータのメモリ内に格納されていても良いし、必要なときに、当該コンピュータが利用可能な、着脱可能な記憶媒体または通信媒体（すなわち通信回線または通信回線上の搬送波）を介して、上記メモリに導入されてもよい。
【００３１】
図２はシステムで扱うマスキング前データ２と署名関連データ４について詳細を示す。マスキング可能な署名の対象である元データ１は任意の文書データである。元データ１をマスキング前データ２に変換する際は、元データ１を複数のマスキング単位３００に分割する。図２では例として４つのマスキング単位３００ａ〜３００ｄに分割してあるが、分割は任意の箇所で任意の数だけ行うことができる。分割した箇所と署名データとの対応関係がわかるように、マスキング単位３００の前後またはどちらか一方に、区切り３０１ａ〜３０１ｄを作成して挿入する。
【００３２】
一連のマスキング単位３００と区切り３０１をまとめてマスキング前データ２として保存する。マスキング前データ２をマスキング可能な方法で署名する際は、署名関連データ４ａもしくは署名関連データ４ｂを作成する２つの方法が選択できる。
【００３３】
署名関連データ４ａはマスキング前データ２を構成するマスキング単位３００ａ〜３００ｄそれぞれのハッシュ値と対応情報３０２ａ〜３０２ｄを求め、それらの集合体に対して署名値３０３ａを求めることにより、作成する。署名関連データ４ｂはマスキング前データ２を構成するマスキング単位３００ａ〜３００ｄそれぞれの署名値と対応情報３０４ａ〜３０４ｄを求め、それらの集合体に対して署名値３０３ｂを求めることにより、作成する。このマスキング前データ２と署名関連データ４ａまたは、マスキング前データ２と署名関連データ４ｂをまとめて全データ３として保存を行う。
【００３４】
図３はシステムで扱うマスキング後データ６について詳細を示す。全データ３のマスキング前データ２のマスキング単位３００ａ〜３００ｄのうちマスキングが必要な部分に対して、データの消去または変更を行い、マスキング後データ６を作成する。例として、マスキング単位３００ｂを３００ｂ’として変更してある。署名関連データ４とともに公開データ５として保存する。
【００３５】
署名の検証を行うには、署名関連データ４ａまたは４ｂをもちいて検証する。はじめに署名値３０３ａまたは３０３ｂの署名を検証し、検証が失敗すれば署名対象となったマスキング前データ２またはマスキング後データ６全体の変更があったとする。署名値３０３ａまたは３０３ｂの署名検証が成功した場合は、ハッシュ値と対応情報３０２または、署名値と対応情報３０４を用いてマスキング単位３００ごとに検証を行う。ハッシュ値と対応情報３０２で検証を行う場合は、対応するマスキング単位３００のハッシュ値とハッシュ値と対応情報３０２のハッシュ値と比較を行い、同じなら検証の成功、異なるならば検証失敗となる。署名値と対応情報３０４で検証を行う場合は、対応するマスキング単位３００を署名値と対応情報３０２の署名値で検証を行いう。マスキング単位３００の検証が成功した場合は、文書に署名がされてから改ざんがされていなかったことがわかる。一方、検証が失敗した場合は、そのマスキング単位３００がマスキングされたか改ざんされたことがわかる。
【００３６】
図４は、データ作成装置１１で使用する、データ作成部２１のフローチャート図である。各ステップにおける動作を記述するが、すべてのステップの任意のタイミングで、ネットワーク２０や入出力装置を利用してデータの保存と読み込みを行うことができる。
【００３７】
ステップ１１１に於いてデータ作成部２１で使用される元データ１があるかどうか判定を行う。元となるデータがある場合はステップ１１３に進む。元となるデータが無い場合はデータを作成または編集するためにステップ１１２に進む。
【００３８】
ステップ１１２に於いてマスキング可能な署名形式で署名可能なデータである、マスキング前データ２の元データ１を作成する。データを外部から入力して、元データ１として用いることもできる。元データ１を作成したらステップ１１３に進む。
【００３９】
ステップ１１３では元データのデータ形式を判定する。元データがマークアップ言語など構造化されたデータである場合、ステップ１１４へ進み、そうでない場合はステップ１１５へ進む。
【００４０】
ステップ１１４では、マークアップ言語などで構造化されたデータは、構造化のタグなどを区切りとして、そのままマスキング前データ２として使用することができるので、更なる分割の必要が無い場合がある。そのため、小さなマスキング単位３００への分割を行うかどうかの選択が行い、分割を行う場合はステップ１１５へ進み、必要が無い場合はデータ作成部２１での処理を終了する。
【００４１】
ステップ１１５においては、元データ１をマスキング単位３００となる小さな部分に区切って分割を行い、ステップ１１６に進む。分割方法は固定長・可変長の任意の選択が可能である。
【００４２】
ステップ１１６では、マスキング単位３００に分割した元データ１の区切りの場所がわかるようにするための分割情報をマークアップ言語のタグまたはその他区切りとなるデータを使用して作成する。分割情報を作成したらステップ１１７に進む。
【００４３】
ステップ１１７では、分割情報を元データ１に挿入してマスキング前データ２を作成し、データ作成部２１におけるステップを終了する。
【００４４】
図５は、データ作成装置１１で使用する、表示部２２のフローチャート図である。各ステップにおける動作を記述するが、すべてのステップの任意のタイミングで、ネットワーク２０や入出力装置を利用してデータの保存と読み込みを行うことができる。
【００４５】
ステップ１２１では表示するデータが元データ１かマスキング前データ２であるか判断する。マスキング前データ２であった場合はステップ１２２へ進み、マスキング前データ２でなく元データ１であった場合はステップ１２３に進む。
【００４６】
ステップ１２２では、表示するマスキング前データ２の区切りを検出し、ステップ１２３に進む。
【００４７】
ステップ１２３は、元データ１のマスキング単位３００が視覚的にわかるように区切りを入れてマスキング前データ２またはマスキング後データ６を表示し、表示部２２におけるステップを終了する。
【００４８】
図６は、署名装置１２で使用する、署名部２３のフローチャート図である。各ステップにおける動作を記述するが、すべてのステップの任意のタイミングで、ネットワーク２０や入出力装置を利用してデータの保存と読み込みを行うことができる。
【００４９】
ステップ１３１は、マスキング前データ２へ署名を行う範囲を１つまたは複数個の区切りで区切られた部分（以下、マスキング単位３００という）を選択する。
【００５０】
ステップ１３２は、ステップ１３１で選択した範囲に対しての署名技術を選択する。署名技術としては、マスキング単位３００ごとにハッシュ値のみを求める方法と、マスキング単位３００ごとに署名を行う方法がある。ハッシュ値を求める場合はステップ１３３に進み、署名を行う場合はステップ１３４に進む。
【００５１】
ステップ１３３は、ステップ１３１で選択した範囲のマスキング単位３００すべてに対してハッシュ値を求め、ステップ１３４に進む。
【００５２】
ステップ１３４は、ステップ１３１で選択した範囲のマスキング単位３００すべてに対して署名し、署名値を求める。署名値を求めステップ１３５に進む。
【００５３】
ステップ１３５は、ステップ１３３またはステップ１３４で求めたハッシュ値または署名値の集合体を作成し、ステップ１３６に進む。
【００５４】
ステップ１３６は、ステップ１３５で作成した集合体に対して署名を行う。
【００５５】
ステップ１３７は、ステップ１３５で求めた集合体と、ステップ１３６で求めた署名値が含まれる、署名関連データ４を作成する。マスキング前データ２と署名関連データ４とをまとめて全データ３として保管し、署名部２３におけるステップを終了する。
【００５６】
署名装置１２の署名検証部２４の動作を、図７のフローチャートを用いて説明する。各ステップにおける動作を記述するが、すべてのステップの任意のタイミングで、ネットワーク２０や入出力装置を利用してデータの保存と読み込みを行うことができる。
【００５７】
ステップ１４１は、全データ３または公開データ５に含まれる署名関連データ４におけるハッシュ値または署名値の集合体に対する署名の検証を行う。署名検証が成功すればハッシュ値または署名値の集合体の正当性が保証され、全データ３に含まれるマスキング前データ２の検証が行える。署名検証に失敗すると、ハッシュ値または署名値の集合体の正当性が保証できないため、マスキング前データ２の正当性も保証できない。検証作業を行った後ステップ１４２に進む。
【００５８】
ステップ１４２は、ステップ１４１で行った署名検証が成功したかどうか判別し、成功した場合はステップ１４３に進み、失敗した場合はステップ１４７に進む。
【００５９】
ステップ１４３は、署名関連データ４から、署名技術がマスキング単位３００に対するハッシュ値を用いる場合か署名を行う場合かの判別を行う。ハッシュ値を用いる方法の場合、ステップ１４４に進み、署名を行う場合は１４６に進む。
【００６０】
ステップ１４４では、ステップ１４３と同様に、マスキング前データ２のマスキング単位３００すべてに対してハッシュ値を求め、ステップ１４５に進む。
【００６１】
ステップ１４５は、ステップ１４２の署名検証で保証されたハッシュ値と、ステップ１４４で求めたハッシュ値の比較によって、マスキング単位３００の検証を行う。２つのハッシュ値が等しければ、対応するマスキング単位３００に対してマスキングや改竄が行われておらず、正当性が保証される。一方、２つのハッシュ値が異なれば、対応するマスキング単位３００に対してマスキングや改竄が行われていることになる。検証後、ステップ１４７に進む。
【００６２】
ステップ１４６では、ステップ１４２の署名検証で保証された署名値を用いて、対応するハッシュ単位の署名検証を行う。署名検証が成功すれば、対応するマスキング単位３００に対してマスキングや改竄が行われておらず、正当性が保証される。一方、署名検証が成功すれば、対応するマスキング単位３００に対してマスキングや改竄が行われていることになる。検証後、ステップ１４７に進む。
【００６３】
ステップ１４７では、ステップ１４５またはステップ１４６でのマスキング単位３００に対する検証をまとめて結果を作成する。
【００６４】
署名装置１２の表示部２５の動作を図８のフローチャートを用いて説明する。各ステップにおける動作を記述するが、すべてのステップの任意のタイミングで、ネットワーク２０や入出力装置を利用してデータの保存と読み込みを行うことができる。
【００６５】
ステップ１５１では表示するマスキング前データ２に署名関連データがあり、署名が行われているか判断する。署名が行われていた場合はステップ１５２へ進み、署名が行われていない場合はステップ１５３に進む。
【００６６】
ステップ１５２では、表示するマスキング前データ２の署名を検証するために署名検証部２４を使用して署名の検証を行い、署名の検証結果を得る。その後、ステップ１５３に進む。
【００６７】
ステップ１５３は、元データ１のマスキング単位３００が視覚的にわかるように区切りを入れてマスキング前データ２を表示し、なおかつ、署名の検証が成功した箇所が視覚的にわかるように表示色を変えて表示し、表示部２５におけるステップを終了する。
【００６８】
図９は、マスキング装置１３のマスキング部２６のフローチャート図である。各ステップにおける動作を記述するが、すべてのステップの任意のタイミングで、ネットワーク２０や入出力装置を利用してデータの保存と読み込みを行うことができる。
【００６９】
ステップ１６１は、全データ３に含まれるマスキング前データ２のマスキングを行うマスキング単位３００を選択し、ステップ１６２に進む。
【００７０】
ステップ１６２は、ステップ１６１で選択した範囲を変更・隠蔽してマスキングを行う。マスキングを行うには選択箇所のデータを削除すればよいが、「マスキングが行われた」などのデータと置き換えることも可能である。ステップ１６３に進む。
【００７１】
ステップ１６３は、ステップ１６１およびステップ１６２を繰り返すための判断を行うステップで、ステップ１６２でマスキングを行ったマスキング単位３００以外にも、マスキングを行う箇所がある場合、繰り返しを選択してステップ１６１に戻る。マスキングを行うマスキング単位３００がこれ以上ない場合はステップ１６４に進む。
【００７２】
ステップ１６４では、ステップ１６４までに行われたマスキング単位３００を反映し、マスキング後データ６を作成する。マスキング後データ６と署名関連データ４をまとめて公開データ５として保管し、マスキング部２５におけるステップを終了する。
【００７３】
マスキング装置１３の署名検証部２７の動作を、図７のフローチャートを用いて説明する。各ステップにおける動作を記述するが、すべてのステップの任意のタイミングで、ネットワーク２０や入出力装置を利用してデータの保存と読み込みを行うことができる。
【００７４】
ステップ１４１は、全データ３または公開データ５に含まれる署名関連データ４におけるハッシュ値または署名値の集合体に対する署名の検証を行う。署名検証が成功すればハッシュ値または署名値の集合体の正当性が保証され、全データ３のマスキング前データ２または公開データ５のマスキング後データ６の検証が行える。署名検証に失敗すると、ハッシュ値または署名値の集合体の正当性が保証できないため、マスキング前データ２またはマスキング後データ６の正当性も保証できない。検証作業を行った後ステップ１４２に進む。
【００７５】
ステップ１４２は、ステップ１４１で行った署名検証が成功したかどうか判別し、成功した場合はステップ１４３に進み、失敗した場合はステップ１４７に進む。
【００７６】
ステップ１４３は、署名関連データ４から、署名技術がマスキング単位３００に対するハッシュ値を用いる場合か署名を行う場合かの判別を行う。ハッシュ値を用いる方法の場合、ステップ１４４に進み、署名を行う場合は１４６に進む。
【００７７】
ステップ１４４では、ステップ１３３と同様に、マスキング前データ２またはマスキング後データ６のマスキング単位３００すべてに対してハッシュ値を求め、ステップ１４５に進む
ステップ１４５は、ステップ１４２の署名検証で保証されたハッシュ値と、ステップ１４４で求めたハッシュ値の比較によって、マスキング単位３００の検証を行う。２つのハッシュ値が等しければ、対応するマスキング単位３００に対してマスキングや改竄が行われておらず、正当性が保証される。一方、２つのハッシュ値が異なれば、対応するマスキング単位３００に対してマスキングや改竄が行われていることになる。検証後ステップ１４７に進む。
【００７８】
ステップ１４６では、ステップ１４２の署名検証で保証された署名値を用いて、対応するハッシュ単位の署名検証を行う。署名検証が成功すれば、対応するマスキング単位３００に対してマスキングや改竄が行われておらず、正当性が保証される。一方、署名検証が成功すれば、対応するマスキング単位３００に対してマスキングや改竄が行われていることになる。検証後ステップ１４７に進む。
【００７９】
ステップ１４７では、ステップ１４５またはステップ１４６でのマスキング単位３００に対する検証をまとめて結果を作成する。
【００８０】
マスキング装置１３の表示部２８の動作を図８のフローチャートを用いて説明する。各ステップにおける動作を記述するが、すべてのステップの任意のタイミングで、ネットワーク２０や入出力装置を利用してデータの保存と読み込みを行うことができる。
【００８１】
ステップ１５１では表示する全データ３のマスキング前データ２または公開データ５のマスキング後データ６に署名関連データ４があり、署名が行われているか確認する。署名が行われていた場合はステップ１５２へ進み、署名が行われていない場合はステップ１５３に進む。
【００８２】
ステップ１５２では、表示する全データ３のマスキング前データ２または公開データ５のマスキング後データ６の署名を検証するために署名検証部２７を使用して署名の検証を行い、署名の検証結果を得る。その後、ステップ１５３に進む。
【００８３】
ステップ１５３は、元データ１のマスキング単位３００が視覚的にわかるように区切りを入れて全データ３のマスキング前データ２または公開データ５のマスキング後データ６を表示し、なおかつ、署名の検証が成功した箇所とマスキングがされていた箇所が視覚的にわかるように表示色を変えて表示し、表示部２８におけるステップを終了する。
【００８４】
検証装置１４の検証部３０の動作を、図７のフローチャートを用いて説明する。各ステップにおける動作を記述するが、すべてのステップの任意のタイミングで、ネットワーク２０や入出力装置を利用してデータの保存と読み込みを行うことができる。
【００８５】
ステップ１４１は、公開データ５に含まれる署名関連データ４におけるハッシュ値または署名値の集合体に対する署名の検証を行う。署名検証が成功すればハッシュ値または署名値の集合体の正当性が保証され、全データ３または公開データ５に含まれるマスキング後データ６の検証が行える。署名検証に失敗すると、ハッシュ値または署名値の集合体の正当性が保証できないため、マスキング後データ６の正当性も保証できない。検証作業を行った後ステップ１４２に進む。
【００８６】
ステップ１４２は、ステップ１４１で行った署名検証が成功したかどうか判別し、成功した場合はステップ１４３に進み、失敗した場合はステップ１４７に進む。
【００８７】
ステップ１４３は、署名関連データ４から、署名技術がマスキング単位３００に対するハッシュ値を用いる場合か署名を行う場合かの判別を行う。ハッシュ値を用いる方法の場合、ステップ１４４に進み、署名を行う場合は１４６に進む。
【００８８】
ステップ１４４では、ステップ１４３と同様に、マスキング後データ６のマスキング単位３００すべてに対してハッシュ値を求め、ステップ１４５に進む
ステップ１４５は、ステップ１４２の署名検証で保証されたハッシュ値と、ステップ１４４で求めたハッシュ値の比較によって、マスキング単位３００の検証を行う。２つのハッシュ値が等しければ、対応するマスキング単位３００に対してマスキングや改竄が行われておらず、正当性が保証される。一方、２つのハッシュ値が異なれば、対応するマスキング単位３００に対してマスキングや改竄が行われていることになる。検証後ステップ１４７に進む。
【００８９】
ステップ１４６では、ステップ１４２の署名検証で保証された署名値を用いて、対応するハッシュ単位の署名検証を行う。署名検証が成功すれば、対応するマスキング単位３００に対してマスキングや改竄が行われておらず、正当性が保証される。一方、署名検証が成功すれば、対応するマスキング単位３００に対してマスキングや改竄が行われていることになる。検証後ステップ１４７に進む。
【００９０】
ステップ１４７では、ステップ１４５またはステップ１４６でのマスキング単位３００に対する検証をまとめて結果を作成する。
【００９１】
検証装置１４の表示部２９の動作を、図８のフローチャートを用いて説明する。各ステップにおける動作を記述するが、すべてのステップの任意のタイミングで、ネットワーク２０や入出力装置を利用してデータの保存と読み込みを行うことができる。
【００９２】
ステップ１５１では表示するマスキング後データ６に署名関連データがあり、署名が行われているか確認する。署名が行われていた場合はステップ１５２へ進み、署名が行われていない場合はステップ１５３に進む。
【００９３】
ステップ１５２では、表示するマスキング後データ６の署名を検証するために検証部３０を使用して署名の検証を行い、署名の検証結果を得る。その後、ステップ１５３に進む。
【００９４】
ステップ１５３は、元データ１のマスキング単位３００が視覚的にわかるように区切りを入れてマスキング後データ６を表示し、なおかつ、署名がされていた場合は、署名の検証が成功した箇所とマスキングがされていた箇所が視覚的にわかるように表示色を変えて表示し、表示部２９におけるステップを終了する。
【００９５】
このように、本実施例のシステムでは、署名を行った時の署名が有効な状態で電子文書の一部分をマスキングすることが可能であり、さらに、マスキングを行った場所が特定できる。この特徴を利用して、署名つき文書を公開する際の問題に対応することができる。図１４の電子文書管理システム１０では、公的機関の担当官である電子文書作成者２０１がデータ作成装置１１でマスキング前データ２を作成、保存し、ネットワーク２０を通じて電子文書責任者２０２に渡す。公的機関の処分権者である電子文書責任者２０２は署名装置１２でマスキング前データ２にマスキング後も署名可能な署名技術で署名を行い、全データ３として保管する。そして、情報公開法によって一般の公開要求者から保管してある全データ３の公開の要求があり、プライバシー情報の保護などの目的で全データ３をマスキング（部分的に隠蔽）することが必要な場合、公的機関の情報公開窓口の担当者である公開者はマスキング装置１３で保管してあった全データ３をネットワーク２０経由で読み込み、このうち必要な箇所をマスキングして公開データ５を作成して公開要求者にネットワーク２０を通じて公開する。公開要求者は受け取った公開データ５を検証装置１４で表示し、内容の確認を行う。
【００９６】
なお、本実施例の電子文書管理システム１０の構成は、上記実施例に限られるものではなく、たとえば、各装置内の各処理部単位に異なる装置上に実現されて、互いにネットワークで接続されても良い。
【００９７】
【発明の効果】
本発明によれば、管理する電子文書に対して、署名後の電子文書の部分的な隠蔽および／または変更によるマスキングを可能にしつつ、正当性の保証と、マスキングをした箇所の検出を行うことができる。
【図面の簡単な説明】
【図１】実施形態における、署名付き電子文書管理システムのシステム構成を示す図である。
【図２】実施形態における、マスキング前データ２と署名関連データ４の図である。
【図３】実施形態における、マスキング後データ６の図である。
【図４】実施形態における、データ作成装置１１のデータ作成部２１の動作フロー図である。
【図５】実施形態における、データ作成装置１１の表示部２２の動作フロー図である。
【図６】実施形態における、署名装置１２の署名部２３の動作フロー図である。
【図７】実施形態における、署名装置１２の署名検証部２４とマスキング装置１３の署名検証部２７と検証装置１４の検証部３０の動作フロー図である。
【図８】実施形態における、署名装置１２の表示部２５と、マスキング装置１３の表示部２８と、検証装置１４の表示部２９の動作フロー図である。
【図９】実施形態における、マスキング装置１３のマスキング部２６の動作フロー図である。
【図１０】実施形態における、署名付き電子文書管理システムの使用例を示す図である。
【符号の説明】
１・・・元データ、２・・・マスキング前データ、３・・・全データ、４・・・署名関連データ、４ａ・・・署名関連データ、４ｂ・・・署名関連データ、５・・・公開データ、６・・・マスキング後データ、１０・・・システム、１１・・・データ作成装置、１２・・・署名装置、１３・・・マスキング装置、１４・・・検証装置、２０・・・ネットワーク、２１・・・データ作成部、２２・・・表示部、２３・・・署名部、２４・・・署名検証部、２５・・・表示部、２６・・・マスキング部、２７・・・署名検証部、２８・・・表示部、２９・・・表示部、３０・・・検証部、２０１・・・電子文書作成者、２０２・・・電子文書責任者、２０３・・・公開者、２０４・・・公開要求者、３００・・・マスキング単位、３００ａ・・・マスキング単位、３００ｂ・・・マスキング単位、３００ｂ’・・・マスキング単位、３００ｃ・・・マスキング単位、３００ｄ・・・マスキング単位、３０１・・・区切り、３０１ａ・・・区切り、３０１ｂ・・・区切り、３０１ｃ・・・区切り、３０１ｄ・・・区切り、３０２・・・ハッシュ値と対応情報、３０２ａ・・・ハッシュ値と対応情報、３０２ｂ・・・ハッシュ値と対応情報、３０２ｃ・・・ハッシュ値と対応情報、３０２ｄ・・・ハッシュ値と対応情報、３０３・・・署名値、３０３ａ・・・署名値、３０３ｂ・・・署名値、３０４・・・署名値と対応情報、３０４ａ・・・署名値と対応情報、３０４ｂ・・・署名値と対応情報、３０４ｃ・・・署名値と対応情報、３０４ｄ・・・署名値と対応情報。
【図１】
2004364070.tif 000003
【図２】
2004364070.tif 000004
【図３】
2004364070.tif 000005
【図４】
2004364070.tif 000006
【図５】
2004364070.tif 000007
【図６】
2004364070.tif 000008
【図７】
2004364070.tif 000009
【図８】
2004364070.tif 000010
【図９】
2004364070.tif 000011
【図１０】
2004364070.tif 000012