(57)【要約】  電子文書の真正を検証させる文書検証プログラムにおいて、まず、電子文書の入力を受け付け、入力された電子文書を任意の構成要素に分割する。そして、分割された構成要素の電子文書における出現位置に関する順序に従って真正乱数または擬似乱数を各構成要素に割り当てる。このように、電子文書を、当該電子文書を構成する部分文書の順序交換や転写（コピー）などの改変がおこなわれた場合であっても真正性を検証することができる状態にする。
2008015740.tif 000002
【特許請求の範囲】
【請求項１】
電子文書の真正を検証させる文書検証プログラムであって、
前記電子文書の入力を受け付けさせる入力工程と、
前記入力工程によって入力された電子文書を任意の構成要素に分割させる分割工程と、
前記分割工程によって分割された構成要素の前記電子文書における出現位置に関する順序に従って真正乱数または擬似乱数（以下、「乱数」という）を前記各構成要素に割り当てさせる割当工程と、
をコンピュータに実行させることを特徴とする文書検証プログラム。
【請求項２】
前記割当工程は、前記分割工程によって分割された各構成要素に、当該各構成要素において共通する真正乱数または擬似乱数（以下、「共通乱数」という）を割り当てさせることを特徴とする請求項１に記載の文書検証プログラム。
【請求項３】
前記構成要素ごとの電子署名を生成させる生成工程と、
前記生成工程によって生成された電子署名を対応する構成要素に対して設定させる設定工程と、
を前記コンピュータに実行させることを特徴とする請求項１に記載の文書検証プログラム。
【請求項４】
前記電子文書を構成する任意の構成要素の指定を受け付けさせる指定工程と、
前記指定工程によって指定された任意の構成要素を前記電子文書の中から抽出させる抽出工程と、
を前記コンピュータに実行させることを特徴とする請求項１〜３のいずれか一つに記載の文書検証プログラム。
【請求項５】
前記抽出工程によって抽出された任意の構成要素によって構成される電子文書の入力を受け付けさせる抽出文書入力工程と、
前記抽出文書入力工程によって入力された各構成要素に割り当てられた乱数が、前記電子文書における前記各構成要素の出現位置に関する順序に従っているか否かを判定させる判定工程と、
前記判定工程の判定結果に基づいて前記電子文書の真正を検証させる検証工程と、
前記検証工程の検証結果を出力させる出力工程と、
を前記コンピュータに実行させることを特徴とする請求項４に記載の文書検証プログラム。
【請求項６】
前記判定工程は、前記任意の構成要素に対してそれぞれ設定された電子署名に基づいて、前記各構成要素の正当性を判定させることを特徴とする請求項５に記載の文書検証プログラム。
【請求項７】
前記判定工程は、前記割当工程によって各構成要素に割り当てられた共通乱数が、前記抽出工程によって抽出された任意の構成要素において共通であるか否かを判定させることを特徴とする請求項５に記載の文書検証プログラム。
【請求項８】
前記生成工程は、前記構成要素ごとの電子署名を集約した集約電子署名を生成させ、
前記判定工程は、前記生成工程によって生成された集約電子署名に基づいて、前記抽出工程によって抽出された任意の構成要素によって構成される電子文書の正当性を判定させることを特徴とする請求項５に記載の文書検証プログラム。
【請求項９】
前記生成工程は、前記構成要素ごとの電子署名を集約した集約電子署名を生成させ、
前記電子文書を構成する構成要素のうち、強制開示する部分文書の指定を受け付けさせる強制開示指定工程と、
前記強制開示指定工程によって指定された構成要素に設定されている電子署名を削除させる削除工程と、
を前記コンピュータに実行させることを特徴とする請求項４に記載の文書検証プログラム。
【請求項１０】
請求項１〜９のいずれか一つに記載の文書検証プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【請求項１１】
電子文書の真正を検証する文書検証方法であって、
前記電子文書の入力を受け付ける入力工程と、
前記入力工程によって入力された電子文書を任意の構成要素に分割する分割工程と、
前記分割工程によって分割された構成要素の前記電子文書における出現位置に関する順序に従って真正乱数または擬似乱数を前記各構成要素に割り当てる割当工程と、
を含むことを特徴とする文書検証方法。
【請求項１２】
電子文書の真正を検証する文書検証装置であって、
前記電子文書の入力を受け付ける入力手段と、
前記入力手段によって入力された電子文書を任意の構成要素に分割する分割手段と、
前記分割手段によって分割された構成要素の前記電子文書における出現位置に関する順序に従って真正乱数または擬似乱数を前記各構成要素に割り当てる割当手段と、
を備えることを特徴とする文書検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、電子文書の真正を検証する文書検証プログラム、記録媒体、文書検証方法および文書検証装置に関する。
【背景技術】
【０００２】
従来、電子文書の真正を検証する技術として、電子署名を用いた技術が提供されている。この電子署名技術は、電子文書ごとに電子署名を付与することによって、電子文書の作成者を認証するとともに、電子文書の正当性を判断することができ、電子文書の真正性を保証する技術である。【０００３】
一方で、この電子署名技術を利用した場合、不正なユーザによる改ざんを防ぐという点においては非常に有用であるが、電子文書の有効活用という点においては問題があった。なぜなら、電子署名技術においては、電子文書に対して何らかの編集をおこなった場合、編集後の電子文書の正当性が保証されないこととなる。【０００４】
このため、電子文書に公開不可能な情報や不要な情報が含まれている場合であっても、電子文書の中から削除するなどの編集をおこなうことができず、ユーザの利便性を著しく低下させる要因となっていた。これにともない、電子文書に対する編集が可能でかつ、不正なユーザによる改ざんから電子文書を保護することができる技術が望まれている。【０００５】
たとえば、電子文書を部分文書に分割し、部分文書ごとに公開・非公開を指定することにより、非公開の部分文書に対して墨塗りを施す技術が提供されている（たとえば、下記非特許文献１参照。）。この墨塗り署名技術を用いることにより、電子文書における公開部分に対する完全性と、非公開部分に対する秘匿性を保証する。【０００６】
また、電子文書を部分文書に分割し、部分文書ごとに電子署名を付加させる技術が提供されている（たとえば、下記特許文献１参照。）。そして、部分文書ごとに公開・非公開を指定することにより、非公開の部分文書を削除し、電子文書における公開部分に対する完全性を保証する。【０００７】
ここで、上記従来技術により抽出された電子文書について説明する。図１６は、従来技術における電子署名技術の一例を示す説明図である。図１６に示すように、オリジナル文書１６００が部分文書（たとえば、「鈴木太郎」）に分割され、各部分文書に電子署名が付されている。【０００８】
墨塗り文書１６０１は、上記非特許文献１による技術により、オリジナル文書１６００のうち秘匿性を有する部分文書が墨塗りされている。【０００９】
また、抽出文書１６０２は、上記特許文献１による技術により、オリジナル文書１６００の中から任意の部分文書が抽出されている。【００１０】
【特許文献１】特開２００６−６０７２２号公報
【非特許文献１】宮崎邦彦、岩村充、松本勉、佐々木良一、吉浦裕、手塚悟、今井秀樹著「開示条件を制御可能な電子文書墨塗り技術」２００４年暗号と情報セキュリティシンポジウム予稿集
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述した非特許文献１の従来技術では、非公開部分として指定された部分文書に墨塗りが施されたとしても、墨塗り箇所の長さが推定可能である。このため、墨塗りされた部分文書の文字数を推定することができる可能性があり、秘匿性を保証することができない場合があるという問題があった。【００１２】
ここで、上述した問題点を具体的に説明する。図１６に示す墨塗り文書１６０１が公開された場合、具体的な年齢を特定することはできないが「５歳の鈴木二郎」の他に６歳以上の家族が３人、墨塗り文書１６０１に記述されていることを推定することができる。このように、秘匿性を有する部分文書に墨塗りを施した場合であっても、完全に秘匿性を保証することができないという問題があった。【００１３】
また、上述した特許文献１の従来技術では、電子文書を構成する各部分文書に付加された電子署名によって各部分文書の完全性が保証された場合には、真正な電子文書であると認証されてしまう。このため、電子文書を構成する部分文書の不正な順序交換や転写（コピー）がおこなわれたとしても、真正な電子文書であると認証してしまう場合があるという問題があった。【００１４】
ここで、上述した問題点を具体的に説明する。図１６に示す抽出文書１６０２には、オリジナル文書の中から抽出された、「鈴木太郎」および「３５歳」の部分文書が記述されている。上述した従来技術では、各部分文書に付加された電子署名によって真正を検証するため、抽出文書１６０２が真正であると判断される。【００１５】
しかしながら、オリジナル文書１６００に記述されている「鈴木太郎」の年齢（３８歳）と、抽出文書１６０２に記述されている「鈴木太郎」の年齢（３５歳）は一致していない。すなわち、抽出文書１６０２は、改ざんがおこなわれた電子文書であり、真正な電子文書ではない。このように、オリジナル文書１６００に対して、内容（名前や年齢のすり替えなど）の改ざんがおこなわれたとしても、抽出文書１６０２を真正な電子文書として認証してしまうという問題があった。【００１６】
この発明は、上述した従来技術による問題点を解消するため、電子文書を構成する部分文書の順序交換などの改変がおこなわれた場合であっても、改変後における電子文書の真正性の検証をおこなうことができる文書検証プログラム、記録媒体、文書検証方法および文書検証装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上述した課題を解決し、目的を達成するため、この発明にかかる文書検証プログラム、記録媒体、文書検証方法および文書検証装置は、電子文書の真正を検証させる文書検証プログラム、記録媒体、文書検証方法および文書検証装置であって、前記電子文書の入力を受け付け、入力された電子文書を任意の構成要素に分割し、分割された構成要素の前記電子文書における出現位置に関する順序に従って真正乱数または擬似乱数（以下、「乱数」という）を前記各構成要素に割り当てることを特徴とする。【００１８】
この発明によれば、電子文書を構成する構成要素の順序交換などの改変がおこなわれた場合であっても、改変後における電子文書の真正性の検証をおこなうことができる。【００１９】
また、上記発明において、分割された各構成要素に、当該各構成要素において共通する真正乱数または擬似乱数（以下、「共通乱数」という）を割り当てるようにしてもよい。【００２０】
この発明によれば、他の電子文書から構成要素を転写する改変がおこなわれた場合であっても、改変後における電子文書の真正性の検証をおこなうことができる。【００２１】
また、上記発明において、前記構成要素ごとの電子署名を生成し、生成された電子署名を対応する構成要素に対して設定するようにしてもよい。【００２２】
この発明によれば、構成要素ごとに設定された電子署名によって各構成要素の正当性を判断することができ、当該各構成要素の完全性を保証することができる。【００２３】
また、上記発明において、前記電子文書を構成する任意の構成要素の指定を受け付け、指定された任意の構成要素を前記電子文書の中から抽出するようにしてもよい。【００２４】
この発明によれば、電子文書の中から任意の構成要素を抽出することができる。【００２５】
また、上記発明において、抽出された任意の構成要素によって構成される電子文書の入力を受け付け、入力された各構成要素に割り当てられた乱数が、前記電子文書における前記各構成要素の出現位置に関する順序に従っているか否かを判定し、この判定結果に基づいて前記電子文書の真正を検証し、この検証結果を出力するようにしてもよい。【００２６】
この発明によれば、電子文書を構成する構成要素の順序交換などの改変がおこなわれた場合であっても、改変後における電子文書の真正性の検証をおこなうことができる。【００２７】
また、上記発明において、前記任意の構成要素に対してそれぞれ設定された電子署名に基づいて、前記各構成要素の正当性を判定するようにしてもよい。【００２８】
この発明によれば、構成要素ごとに設定された電子署名によって各構成要素の正当性を判断することができ、当該各構成要素の完全性を保証することができる。【００２９】
また、上記発明において、各構成要素に割り当てられた共通乱数が、抽出された任意の構成要素において共通であるか否かを判定するようにしてもよい。【００３０】
この発明によれば、他の電子文書から構成要素を転写する改変がおこなわれた場合であっても、改変後における電子文書の真正性の検証をおこなうことができる。【００３１】
また、上記発明において、前記構成要素ごとの電子署名を集約した集約電子署名を生成し、生成された集約電子署名に基づいて、抽出された任意の構成要素によって構成される電子文書の正当性を判定するようにしてもよい。【００３２】
この発明によれば、集約電子署名によって電子文書の正当性を判断することができ、当該電子文書の完全性を保証することができる。【００３３】
また、上記発明において、前記構成要素ごとの電子署名を集約した集約電子署名を生成し、前記電子文書を構成する構成要素のうち、強制開示する部分文書の指定を受け付け、指定された構成要素に設定されている電子署名を削除するようにしてもよい。【００３４】
この発明によれば、電子文書における任意の構成要素を強制開示させる、すなわち、以降において削除することができない構成要素として指定することができる。
【発明の効果】
【００３５】
本発明にかかる文書検証プログラム、記録媒体、文書検証方法および文書検証装置によれば、電子文書を構成する部分文書の順序交換などの改変がおこなわれた場合であっても、改変後における電子文書の真正性の検証をおこなうことができるという効果を奏する。
【図面の簡単な説明】
【００３６】
【図１】図１は、この発明の実施の形態１にかかる電子文書公開システムのシステム構成図である。
【図２】図２は、この発明の実施の形態１にかかる文書検証装置のハードウェア構成を示すブロック図である。
【図３】図３は、この発明の実施の形態１にかかる文書検証装置の機能的構成を示すブロック図である。
【図４】図４は、電子署名が付加されたオリジナル文書の一例を示す説明図である。
【図５】図５は、この発明の実施の形態１にかかる文書検証装置において実行される電子署名生成処理手順を示すフローチャートである。
【図６】図６は、この発明の実施の形態１にかかる文書検証装置において実行される電子文書抽出処理手順を示すフローチャートである。
【図７】図７は、電子文書抽出処理によってオリジナル文書の中から部分文書が抽出された一例を示す説明図である。
【図８】図８は、偽造抽出文書の一例を示す説明図である。
【図９】図９は、部分文書の順序交換および転写がおこなわれた場合の一例を示す説明図である。
【図１０】図１０は、この発明の実施の形態１にかかる文書検証装置において実行される電子文書検証処理の手順を示すフローチャートである。
【図１１】図１１は、この発明の実施の形態２にかかる文書検証装置において実行される電子署名生成処理手順を示すフローチャートである。
【図１２】図１２は、この発明の実施の形態２にかかる文書検証装置において実行される電子文書抽出処理手順を示すフローチャートである。
【図１３】図１３は、この発明の実施の形態２にかかる文書検証装置において実行される電子文書検証処理の手順を示すフローチャートである。
【図１４】図１４は、この発明の実施の形態３にかかる文書検証装置において実行される電子文書抽出処理手順を示すフローチャートである。
【図１５】図１５は、強制開示する部分文書が設定されたオリジナル文書および抽出文書の一例を示す説明図である。
【図１６】図１６は、従来技術における電子署名技術の一例を示す説明図である。
【符号の説明】
【００３７】
１００  電子文書公開システム
１０１，１０２  文書検証装置
１０３  ネットワーク
３０１  入力部
３０２  分割部
３０３  割当部
３０４  生成部
３０５  設定部
３０６  指定部
３０７  抽出部
３０８  判定部
３０９  検証部
３１０  出力部
３１１  強制開示指定部
３１２  削除部
【発明を実施するための最良の形態】
【００３８】
以下に添付図面を参照して、この発明にかかる文書検証プログラム、記録媒体、文書検証方法および文書検証装置の好適な実施の形態を詳細に説明する。【００３９】
（実施の形態１）
（電子文書公開システム１００のシステム構成）
まず、この発明の実施の形態１にかかる電子文書公開システムのシステム構成について説明する。図１は、この発明の実施の形態１にかかる電子文書公開システムのシステム構成図である。【００４０】
図１に示すように、電子文書公開システム１００は、情報を公開する側のユーザが利用する文書検証装置１０１および情報公開を請求する側のユーザが利用する文書検証装置１０２によって構成されている。文書検証装置１０１および文書検証装置１０２は、ネットワーク１０３を介して接続されている。【００４１】
電子文書公開システム１００において公開される電子文書は、たとえば、教育機関から発行される電子成績表や行政機関から発行される電子戸籍台帳など秘匿性の高い個人情報が挙げられる。電子文書公開システム１００では、これら個人情報の秘匿性を保証するとともに、改ざんがおこなわれた個人情報の真正を検証可能なシステムである。【００４２】
情報公開側の文書検証装置１０１は、公開情報となる電子成績表や電子戸籍台帳を作成することができる。また、文書検証装置１０１は、作成した電子文書（たとえば、電子成績表や電子戸籍台帳）の真正を検証することができる状態に加工して電子文書ＤＢに保存する。【００４３】
以下、文書検証装置１０１において、真正の検証が可能な状態に加工する対象となる電子文書をオリジナル文書という。なお、電子文書を加工する際の具体的な説明および電子文書ＤＢの具体的な保存内容については後述する。【００４４】
また、文書検証装置１０１は、文書検証装置１０２から情報公開請求を示す要求信号を受信した場合、該当する電子文書（真正の検証が可能な電子文書）を電子文書ＤＢの中から検索する。そして、検索した電子文書を開示文書として文書検証装置１０２に送信する。また、文書検証装置１０１は、検索結果（検索された電子文書）を文書検証装置１０２に送信する場合、当該検索結果に含まれる秘匿性を有する文書を削除することができる。【００４５】
秘匿性を有する文書とは、たとえば、個人情報保護の観点から公開すべき情報ではない情報や、国家機密にかかる情報などである。文書検証装置１０１のユーザは、オリジナル文書における任意の情報を指定することにより、公開しない情報を削除することができる。この場合、文書検証装置１０１は、オリジナル文書から公開すべきではない情報を削除した開示文書（抽出文書）を作成し、作成した開示文書を文書検証装置１０２に送信する。【００４６】
情報請求側の文書検証装置１０２は、情報公開側の文書検証装置１０１に対して情報公開請求を示す要求信号を送信することができる。そして、文書検証装置１０２は、要求信号を送信した結果、文書検証装置１０１から開示文書を受信する。また、文書検証装置１０２は、受信した開示文書の真正を検証することができる。すなわち、情報の保護などの観点から削除された部分を除き、公開された情報が真正であるかを情報請求側の文書検証装置１０２において検証することができる。【００４７】
文書検証装置１０２のユーザは、開示文書における任意の情報を指定することにより、所望の情報のみを取得することもできる。このように、情報公開を請求したユーザは、開示文書の内容を任意に改変することができる。【００４８】
たとえば、ある教育機関の学生であるユーザが、当該教育機関に設置されている文書検証装置１０１に対して電子成績表の公開請求をする。その結果、ユーザは、請求した電子成績表を取得することができ、当該電子成績表の内容を任意に改変することができる。具体的には、たとえば、電子成績表の中から成績の悪い科目に関する内容を削除したり、成績の良い科目の点数を成績の悪い点数に転写するなどの不正な改変をおこなうことができる。【００４９】
このように、ユーザによって任意に内容が改変された情報は、文書検証装置（たとえば、文書検証装置１０１，１０２）において、真正を検証することができ、不正な改変がおこなわれていないか否かを検証することができる。【００５０】
ここでは、電子成績表や電子戸籍台帳などの個人情報の作成元のユーザが利用する装置を文書検証装置１０１とし、情報公開を請求する側のユーザが利用する装置を文書検証装置１０２としたが、文書検証装置１０２において何らかの情報を作成し、文書検証装置１０１を利用するユーザに公開するようにしてもよい。【００５１】
（文書検証装置のハードウェア構成）
つぎに、この発明の実施の形態１にかかる文書検証装置（たとえば、図１に示す文書検証装置１０１，１０２）のハードウェア構成について説明する。図２は、この発明の実施の形態１にかかる文書検証装置のハードウェア構成を示すブロック図である。【００５２】
図２において、文書検証装置は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ（ハードディスクドライブ）２０４と、ＨＤ（ハードディスク）２０５と、ＦＤＤ（フレキシブルディスクドライブ）２０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）２０７と、ディスプレイ２０８と、Ｉ／Ｆ（インターフェース）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３とを備えている。また、各構成部は、バス２００によってそれぞれ接続されている。【００５３】
ここで、ＣＰＵ２０１は、文書検証装置（たとえば、図１に示す文書検証装置１０１，１０２）の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムや後述する電子署名生成処理、電子文書抽出処理および電子文書検証処理に関する文書検証プログラムなどのプログラムを記録している。ＲＡＭ２０３は、ＣＰＵ２０１のワークウェアとして使用される。【００５４】
ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２０５に対するデータのリード／ライトを制御する。ＨＤ２０５は、ＨＤＤ２０４の制御で書き込まれたデータを記憶する。ＨＤ２０５には、たとえば、図１に示す電子文書ＤＢが構築されている。【００５５】
ＦＤＤ２０６は、ＣＰＵ２０１の制御にしたがってＦＤ２０７に対するデータのリード／ライトを制御する。ＦＤ２０７は、ＦＤＤ２０６の制御で書き込まれたデータを記憶したり、ＦＤ２０７に記憶されたデータを文書検証装置に読み取らせたりする。【００５６】
また、着脱可能な記録媒体として、ＦＤ２０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリカードなどであってもよい。ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８には、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。【００５７】
Ｉ／Ｆ２０９は、通信回線を通じてインターネットなどのネットワーク１０３に接続され、このネットワーク１０３を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク１０３と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。【００５８】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様の機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。【００５９】
スキャナ２１２は、画像を光学的に読み取り、文書検証装置内に画像データを読み込む。なお、スキャナ２１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ２１３は、画像データや電子文書を印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタなどを採用することができる。【００６０】
（文書検証装置の機能的構成）
つぎに、この発明の実施の形態１にかかる文書検証装置（たとえば、図１に示す文書検証装置１０１，１０２）の機能的構成について説明する。図３は、この発明の実施の形態１にかかる文書検証装置の機能的構成を示すブロック図である。図３において、文書検証装置は、入力部３０１と、分割部３０２と、割当部３０３と、生成部３０４と、設定部３０５と、指定部３０６と、抽出部３０７と、判定部３０８と、検証部３０９と、強制開示指定部３１１と、削除部３１２と、から構成されている。【００６１】
入力部３０１は、電子文書の入力を受け付ける。ここで、電子文書とは、コンピュータ上で扱われる文書の総称であり、文書作成アプリケーションなどを用いて作成された電子データである。電子文書としては、たとえば、電子成績表や電子戸籍台帳などの秘匿性を有する個人情報などが挙げられる。なお、電子文書は、文書検証装置において作成されるようにしてもよいし、他の装置において作成されるようにしてもよい。他の装置において電子文書が作成された場合は、インターネットなどのネットワーク１０３を介して文書検証装置に取得される。【００６２】
分割部３０２は、入力部３０１によって入力された電子文書を任意の構成要素に分割する。任意の構成要素とは、電子文書の先頭（ここでは、入力された電子文書が読み込まれる際の先頭を意味する）から１バイトごとに一つの構成要素としてもよいし、文や単語ごとに一つの構成要素としてもよい。【００６３】
また、電子文書がＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）言語などによって記述された文書であれば、当該文書を構成する最小構成要素を一つの構成要素としてもよい。【００６４】
割当部３０３は、分割部３０２によって分割された構成要素の電子文書における出現位置に関する順序に従って真正乱数または擬似乱数（以下、「乱数」という）を各構成要素に割り当てる。出現位置に関する順序とは、電子文書における各構成要素の配置によって定義される順序である。具体的には、たとえば、文書検証装置において電子文書が読み込まれる際の読み込み順に従って昇順または降順となるように乱数を各構成要素に割り当てるようにしてもよい。【００６５】
ここで、真正乱数とは、規則性のない不規則な数列に含まれる各要素である。具体的には、ランダムな物理現象を利用することにより、真正乱数を発生させる。また、擬似乱数とは、確定的な計算によって求められる数列ではあるが規則性のない乱数列のように見える数列に含まれる各要素を示す。具体的には、擬似乱数とは、コンピュータ上で生成される可能な限り予測困難な乱数であり、生成される数値の不偏性を高めたものである。この擬似乱数は、たとえば、擬似乱数生成器（擬似乱数生成法）を用いて生成することができる。擬似乱数生成器とは、多項式時間の計算機が乱数と識別不能な列を出力することができる機器である。【００６６】
生成された乱数を昇順または降順になるように各構成要素に割り当てる。たとえば、電子文書における出現位置に関する順序に従って、乱数の値が順に大きくなるように各構成要素に乱数を割り当てる。なお、乱数の具体的な生成方法および割り当て方法については後述する。【００６７】
また、割当部３０３は、分割部３０２によって分割された各構成要素に、当該各構成要素において共通する乱数（以下、「共通乱数」という）を割り当てるようにしてもよい。共通乱数は、電子文書ごとに予測不可能に設定された乱数であり、当該電子文書を構成する構成要素すべてに共通する値である。なお、共通乱数は、たとえば、上記擬似乱数生成器などを用いて生成される。【００６８】
生成部３０４は、分割部３０２によって分割された構成要素ごとの電子署名を生成する。ここで、電子署名とは、データ（電子文書）の正当性の認証をおこなうための方式、または、電子文書に付加される署名情報である。電子署名は、たとえば、公開鍵暗号方式を利用することによって実現することができる。具体的には、電子署名は、電子文書を通信相手に送信する際に、自分が電子データを送信した本人であることを通信相手に証明したい場合に利用される技術である。【００６９】
すなわち、電子署名は、物理的な署名（印鑑など）と同様に、電子文書の正しい作成者と当該電子文書の正当性（改ざんがおこなわれていないこと）を証明するためのものである。さらに、電子署名は、本人しか作成することができないものであり、その電子署名の正当性は任意のユーザによって検証可能なものである。【００７０】
これを実現するために、たとえば、公開鍵暗号の原理を利用する。具体的には、署名文（電子署名が付加された電子文書）を作成できるのが秘密鍵（署名鍵）を有するユーザだけであることを利用する。また、公開鍵（検証鍵）は、検証が任意のユーザによっておこなうことができるように公開する。【００７１】
ここで、電子署名の作成から検証までの一連の流れを説明する。電子署名の作成者（以下、「送信者」という）は、公開鍵暗号方式に従ってあらかじめ公開鍵と秘密鍵を作成する。そして、秘密鍵を自分だけの秘密にし、公開鍵のみを通信相手に公開する。送信者は、署名したい電子文書に対し、秘密鍵を用いて電子署名を作成する。【００７２】
つぎに、送信者は、元の電子文書に電子署名を付加して通信相手（以下、「受信者」という）に送信する。受信者は、元の電子文書と電子署名を受信することとなる。そして、受信者は、送信者から公開されている公開鍵で電子署名を検証する。【００７３】
受信者は、元の電子文書および公開鍵から得られる値と、電子署名から得られる値とが一致するか否かを検証する。このとき、これらの値が一致した場合に、電子文書および送信者の正当性が証明される。一方、値が一致しなければ、電子文書または電子署名が改ざんされたことを検知することができる。【００７４】
なお、公開鍵（検証鍵）は、公開されていても正当であることが保証されていなければならないため、信頼できる機関によって公開鍵に署名を施すことが考えられる。また、電子署名を実現する具体的な方式としては、たとえば、素因数分解に基づくＲＳＡ署名方式やＥＳＩＧＮ署名、離散対数に基づくエルガマル署名やＤＳＡ署名、楕円離散対数に基づく楕円エルガマル署名や楕円ＤＳＡ署名などがある。【００７５】
また、生成部３０４は、構成要素ごとの電子署名を集約した集約電子署名を生成するようにしてもよい。集約電子署名は、構成要素ごとに生成された電子署名をひとまとめにしたものである。具体的には、たとえば、集約電子署名は、各構成要素の電子署名の積によって構成されていてもよいし、各構成要素の電子署名の和によって構成されていてもよい。【００７６】
設定部３０５は、生成部３０４によって生成された構成要素ごとの電子署名を対応する構成要素に対して設定する。具体的には、たとえば、設定部３０５は、生成部３０４によって生成された構成要素ごとの電子署名を対応する構成要素に関連付けて電子文書ＤＢに記録する。【００７７】
指定部３０６は、電子文書を構成する任意の構成要素の指定を受け付ける。具体的には、文書検証装置のユーザが、キーボード２１０やマウス２１１を操作することによって、電子文書を構成する任意の構成要素を指定する。なお、ここでの電子文書を構成する各構成要素には、乱数が割り当てられており、対応する電子署名が設定されている。【００７８】
抽出部３０７は、指定部３０６によって指定された任意の構成要素を電子文書の中から抽出する。具体的には、抽出部３０７は、指定部３０６によって指定された任意の構成要素を、当該構成要素に割り当てられた乱数とともに抽出する。以下、抽出された構成要素によって構成される電子文書を「抽出文書」という。【００７９】
なお、電子文書における抽出部３０７によって抽出された構成要素以外の他の構成要素を、当該他の構成要素に割り当てられた乱数とともに削除するように構成してもよい。この場合、他の構成要素にそれぞれ設定されている電子署名も削除される。【００８０】
さらに、生成部３０４によって生成された集約電子署名から、他の構成要素に設定されている電子署名を削除するようにしてもよい。具体的には、たとえば、各構成要素に設定された電子署名の積によって集約電子署名が構成されている場合は、集約電子署名を他の構成要素に設定されている電子署名で除算する。【００８１】
また、入力部３０１は、抽出部３０７によって抽出された任意の構成要素によって構成される電子文書の入力を受け付けるようにしてもよい。具体的には、入力部３０１は、真正性の検証対象となる抽出文書の入力を受け付ける。【００８２】
判定部３０８は、入力部３０１によって入力された各構成要素に割り当てられた乱数が、電子文書における各構成要素の出現位置に関する順序に従っているか否かを判定する。具体的には、判定部３０８は、電子文書を構成する各構成要素に割り当てられた乱数が、当該電子文書における各構成要素の出現位置に関する順序に従って昇順または降順となっているか否かを判定する。【００８３】
また、判定部３０８は、抽出部３０７によって抽出された任意の構成要素に対してそれぞれ設定された電子署名に基づいて、各構成要素の正当性を判定するようにしてもよい。具体的には、判定部３０８は、任意の構成要素に対してそれぞれ設定された電子署名を検証し、その検証に合格するか否かを判定する。たとえば、任意の構成要素に対してそれぞれ設定された電子署名を復号化し、この復号結果と当該任意の構成要素とが一致するか否かを判定する。【００８４】
さらに、判定部３０８は、割当部３０３によって各構成要素に割り当てられた共通乱数が、抽出部３０７によって抽出された任意の構成要素において共通であるか否かを判定するようにしてもよい。【００８５】
また、判定部３０８は、生成部３０４によって生成された集約電子署名に基づいて、抽出部３０７によって抽出された任意の構成要素によって構成される電子文書の正当性を判定するようにしてもよい。ここでの集約電子署名は、抽出部３０７によって抽出された構成要素以外の他の構成要素に設定されている電子署名が削除されたものである。具体的には、集約電子署名が検証に合格するか否かを判定する。【００８６】
検証部３０９は、判定部３０８の判定結果に基づいて電子文書の真正を検証する。具体的には、たとえば、検証部３０９は、判定部３０８によって各構成要素に割り当てられた乱数が、電子文書における当該各構成要素の出現位置に関する順序に従っていると判定された場合に、電子文書が真正であると検証する。【００８７】
また、検証部３０９は、判定部３０８によって各構成要素が正当であると判定された場合に、電子文書が真正であると検証するようにしてもよい。さらに、検証部３０９は、各構成要素に割り当てられた共通乱数が、任意の構成要素において共通であった場合に、電子文書が真正であると検証するようにしてもよい。【００８８】
出力部３１０は、検証部３０９の検証結果を出力する。具体的には、検証部３０９によって電子文書が真正であると検証された場合、検証成功を示す検証結果を出力する。また、検証部３０９によって電子文書が真正ではないと検証された場合、検証失敗を示す検証結果を出力するようにしてもよい。【００８９】
強制開示指定部３１１は、電子文書を構成する構成要素のうち、強制開示する部分文書の指定を受け付ける。ここで、強制開示する部分文書とは、削除することができない部分文書であり、抽出部３０７によって電子文書の中から強制的に抽出される部分文書である。【００９０】
削除部３１２は、強制開示指定部３１１によって指定された構成要素に設定されている電子署名を削除する。すなわち、削除部３１２によって電子署名が削除されることにより、強制開示指定部３１１によって指定された構成要素は電子署名が設定されていない状態となる。この場合、判定部３０８は、電子署名が設定されていない構成要素に関する正当性の判定をおこなわない。【００９１】
なお、入力部３０１、分割部３０２、割当部３０３、生成部３０４、設定部３０５、指定部３０６、抽出部３０７、判定部３０８、検証部３０９、出力部３１０、強制開示指定部３１１および削除部３１２は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ＨＤ２０５などの記録媒体に記録されているプログラムをＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。【００９２】
（文書検証装置の各種処理の手順）
つぎに、文書検証装置において実行される各種処理の手順について説明する。まず、電子文書を真正の検証が可能な状態に加工する際の電子署名付加処理について説明する。この電子署名付加処理は、具体的には、図１に示す文書検証装置１０１のような情報の公開側の装置において実行される処理である。【００９３】
ここでは、まず、文書検証装置において実行される電子署名生成処理によって電子署名が付加された電子文書について説明する。図４は、電子署名が付加されたオリジナル文書の一例を示す説明図である。図４に示すように、電子文書であるオリジナル文書が、部分文書（ここでは、個々の単語を部分文書とする）に分割されている。【００９４】
そして、分割された各部分文書に、乱数を用いて予測不可能な文書ＩＤおよび部分文書ＩＤが追加されている。ここでは、文書ＩＤおよび部分文書ＩＤが追加されたオリジナル文書を「ＩＤを追加したオリジナル文書」という。【００９５】
文書ＩＤは、オリジナル文書ごとに設定された値であり、一つのオリジナル文書を構成する部分文書すべてに追加される値である。ここでは、各部分文書に共通して追加されている「３５」が文書ＩＤである。なお、文書ＩＤは、上述した割当部３０３によって電子文書を構成する構成要素に割り当てられた共通乱数に相当する。【００９６】
また、部分文書ＩＤは、部分文書ごとに異なる値であり、オリジナル文書を構成する部分文書の出現位置に関する順序に従って昇順となるように各部分文書に追加されている。ここでは、オリジナル文書を構成する最も左側の部分文書（「Ｔｈｉｓ」）から順に、乱数を用いた部分文書ＩＤが昇順（「０２」→「２８」→「３９」→「５６」→「８７」）となるように各部分文書に追加されている。なお、部分文書ＩＤは、上述した割当部３０３によって電子文書における出現位置に関する順序に従って各構成要素に割り当てられた乱数に相当する。【００９７】
さらに、オリジナル文書を構成する各部分文書には、部分文書ごとに生成された電子署名が付加されている。ここでは、部分文書（単語）ごとに生成された電子署名σ1〜σ5が、それぞれ対応する部分文書に付加されている。具体的には、たとえば、部分文書「Ｔｈｉｓ」には、電子署名「σ1」が付加されている。なお、電子署名は、上述した生成部３０４によって電子文書を構成する構成要素ごとに生成された電子署名に相当する。【００９８】
（文書検証装置の電子署名生成処理の手順）
つぎに、文書検証装置において実行される電子署名生成処理の手順について説明する。図５は、この発明の実施の形態１にかかる文書検証装置において実行される電子署名生成処理手順を示すフローチャートである。図５のフローチャートにおいて、文書検証装置は、まず、オリジナル文書の入力を受け付けたか否かを判断する（ステップＳ５０１）。【００９９】
オリジナル文書は、教育機関の職員によって作成される電子成績表や行政機関の職員によって作成される電子戸籍台帳など秘匿性の高い個人情報などである。このオリジナル文書は、文書検証装置において作成される構成としてもよいし、他の装置から取得されるように構成してもよい。【０１００】
ここで、オリジナル文書が入力されるのを待って、入力を受け付けた場合（ステップＳ５０１：Ｙｅｓ）、入力されたオリジナル文書を部分文書に分割する（ステップＳ５０２）。部分文書は、オリジナル文書を構成する構成要素であり、任意に定義可能である。具体的には、たとえば、図４に示すように、オリジナル文書を構成する個々の単語を部分文書として当該オリジナル文書を分割するようにしてもよい。【０１０１】
つぎに、ステップＳ５０２において分割された各部分文書に文書ＩＤおよび部分文書ＩＤを追加する（ステップＳ５０３）。文書ＩＤは、オリジナル文書ごとに設定された値であり、乱数を用いて予測不可能に設定される。また、部分文書ＩＤは、分割された部分文書ごとに設定された値であり、乱数を用いて予測不可能に設定される。【０１０２】
文書ＩＤおよび部分文書ＩＤとして設定される乱数は、上述した擬似乱数生成器などを用いて生成される。そして、生成された乱数を用いて、オリジナル文書を構成するすべての部分文書に共通する文書ＩＤを追加するとともに、各部分文書にそれぞれ異なる部分文書ＩＤを昇順となるように追加する。【０１０３】
また、「文書ＩＤおよび部分文書ＩＤを追加する」とは、実際に文書ＩＤおよび部分文書ＩＤをオリジナル文書に追加して記述することとしてもよいし、各部分文書と当該各部分文書に関する文書ＩＤおよび部分文書ＩＤとを関連付けることとしてもよい。【０１０４】
ここで、各部分文書にそれぞれ異なる部分文書ＩＤを昇順（または、降順）となるように追加する追加方法の一例について説明する。たとえば、擬似乱数生成器によって生成された乱数を部分文書ＩＤとして各部分文書に追加する。この場合、各部分文書に追加された乱数が昇順（または降順）となるまで、乱数生成および各部分文書への追加を繰り返す。【０１０５】
また、他の一例としては、あらかじめ分割された部分文書の個数分の乱数を生成し、生成した乱数を昇順または降順となるように並び替えて（ソート）から、各部分文書へ追加するようにしてもよい。この場合、入力された元データから固定長の乱数を生成することができるハッシュ関数を用いて部分文書の個数分の乱数を生成するようにしてもよい。【０１０６】
図５のフローチャートの説明に戻り、つぎに、ステップＳ５０２において分割された部分文書ごとの電子署名を算出する（ステップＳ５０４）。電子署名の算出方式としては、上述したＲＳＡ署名、エルガマル署名およびＤＳＡ署名などがある。【０１０７】
そして、算出された電子署名をそれぞれ対応する部分文書に付加する（ステップＳ５０５）。具体的には、部分文書ごとに算出された電子署名をそれぞれ対応する部分文書に関連付けて設定し、電子署名が付加された電子文書（オリジナル文書）を作成する。【０１０８】
最後に、電子署名が付加されたオリジナル文書を電子文書ＤＢに保存して（ステップＳ５０６）、本フローチャートによる一連の処理を終了する。電子文書ＤＢは、ＨＤ２０５などの記録媒体に構築されたデータベースである。【０１０９】
電子文書ＤＢには、電子署名が付加されたオリジナル文書とともに、ステップＳ５０３において追加された文書ＩＤおよび部分文書ＩＤが各部分文書に関連付けられて記憶されている。具体的には、たとえば、電子文書ＤＢには、図４に示すオリジナル文書、ＩＤが追加されたオリジナル文書および付加された電子署名が記憶されている。【０１１０】
なお、ステップＳ５０４およびステップＳ５０５における処理は、ステップＳ５０２においてオリジナル文書を部分文書に分割した後であれば、任意のタイミングでおこなうことができる。たとえば、ステップＳ５０３において文書ＩＤおよび部分文書ＩＤを追加する前に、本フローチャートにおけるステップＳ５０４およびステップＳ５０５の処理をおこなうようにしてもよい。【０１１１】
これにより、電子文書を当該電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても真正性を検証することができる状態にすることができる。【０１１２】
（文書検証装置の電子文書抽出処理の手順）
つぎに、文書検証装置において実行される電子文書抽出処理の手順について説明する。文書検証装置のユーザは、上述した電子署名生成処理によって電子署名が付加された電子文書の中から、所望の情報のみを抽出することができる。なお、電子署名が付加された電子文書には、文書ＩＤおよび部分文書ＩＤが追加されている。具体的には、たとえば、国家機密などが含まれる電子公的文書の中から、公開可能な情報のみを抽出することができる。【０１１３】
図６は、この発明の実施の形態１にかかる文書検証装置において実行される電子文書抽出処理手順を示すフローチャートである。図６のフローチャートにおいて、文書検証装置は、まず、電子署名が付加されたオリジナル文書の入力を受け付ける（ステップＳ６０１）。【０１１４】
つぎに、オリジナル文書を構成する任意の部分文書の指定を受け付けたか否かを判断する（ステップＳ６０２）。具体的には、たとえば、ユーザは、キーボード２１０やマウス２１１を操作して、ディスプレイ２０８に表示されたオリジナル文書の中から抽出する任意の部分文書を指定する。【０１１５】
ここで、任意の部分文書の指定を受け付けるのを待って、受け付けた場合（ステップＳ６０２：Ｙｅｓ）、指定された部分文書以外の他の部分文書および当該他の部分文書に付加されている電子署名を削除する（ステップＳ６０３）。具体的には、抽出文書として指定されていない部分文書を削除（追加されている文書ＩＤおよび部分文書ＩＤも削除される）するとともに、当該各部分文書に付加されている電子署名を削除する。【０１１６】
最後に、指定された部分文書をオリジナル文書の中から抽出して（ステップＳ６０４）、本フローチャートによる一連の処理を終了する。【０１１７】
これにより、電子文書における任意の部分文書を指定することにより、当該電子文書の中から任意の部分文書を抽出することができる。【０１１８】
ここで、図４に示す電子署名が付加されたオリジナル文書の中から、ユーザによって任意に指定された部分文書が抽出されたときの電子文書について説明する。図７は、電子文書抽出処理によってオリジナル文書の中から部分文書が抽出された一例を示す説明図である。ここでは、２人のユーザによって抽出がおこなわれた場合の一例について説明する。【０１１９】
図７に示すように、１人目のユーザが、抽出する部分文書として「ｉｓ」以外の部分文書を指定した場合、図４に示すオリジナル文書の中から「ｉｓ」以外の部分文書（抽出文書７０１）が抽出される。この場合、図４に示すＩＤを追加したオリジナル文書の中から、「ｉｓ」に関するデータが削除されるとともに、「ｉｓ」に付加された電子署名「σ2」が削除される。【０１２０】
つづいて、２人目のユーザが抽出する部分文書として「ａ」以外の部分文書を指定した場合、抽出文書７０１の中から「ａ」以外の部分文書が抽出される。この場合、抽出文書７０１の中から、「ａ」に関するデータが削除されるとともに、「ａ」に付加された電子署名「σ3」が削除される。【０１２１】
なお、上述した電子文書抽出処理によって実行される改変の他に、電子文書を構成する部分文書の順序交換や転写（コピー）などの改変が各文書検証装置や電子文書編集装置においておこなわれる可能性がある。このような改変を検知するために、電子文書を構成する各部分文書に文書ＩＤおよび部分文書ＩＤが追加されている。以下、文書ＩＤおよび部分文書ＩＤの意義について説明する。【０１２２】
（文書ＩＤの意義）
まず、図５に示すフローチャートのステップＳ５０３において追加される文書ＩＤの意義について説明する。図８は、偽造抽出文書の一例を示す説明図である。図８に示すように、不正な編集（抽出）がおこなわれていない正当な抽出文書８０１の場合、各部分文書に追加されている文書ＩＤがすべての部分文書において共通の値となっている。具体的には、文書ＩＤとして追加された「３５」が、すべての部分文書において共通となっている。【０１２３】
これに対して、たとえば、他の電子文書から部分文書を転写するなど、不正に部分文書の抽出がおこなわれた偽造抽出文書８０２の場合、各部分文書に追加されている文書ＩＤがすべての部分文書において共通となっていない。具体的には、他の電子文書から転写された「Ｔｈａｔ」に追加されている文書ＩＤ「４８」が他の部分文書に追加されている文書ＩＤ「３５」と異なる。【０１２４】
このように、抽出文書を構成する各部分文書に追加された文書ＩＤが共通であるか否かを判断することによって抽出文書の正当性を検知することができ、他の電子文書からの部分文書の転写を防ぐことができる。【０１２５】
（部分文書ＩＤの意義）
つぎに、図５に示すフローチャートのステップＳ５０３において追加される部分文書ＩＤの意義について説明する。図９は、部分文書の順序交換および転写がおこなわれた場合の一例を示す説明図である。抽出文書９０１は、図４に示すオリジナル文書から正当に部分文書の抽出がおこなわれた場合の電子文書を示している。【０１２６】
偽造抽出文書９０２は、正当に部分文書の抽出がおこなわれた抽出文書９０１を用いて作成された電子文書である。具体的には、抽出文書９０１を構成する部分文書の順序交換をおこなうことによって、不正な抽出文書である偽造抽出文書９０２が作成されている。【０１２７】
この偽造抽出文書９０２の正当性を検知するためには、各部分文書に追加された部分文書ＩＤが昇順となっているか否かを判断する。偽造抽出文書９０２において、各部分文書に追加された部分文書ＩＤの順序は「０２」→「８７」→「５６」となっており、昇順となっていない。このため、偽造抽出文書９０２は、不当に抽出された電子文書であることを検知することができる。【０１２８】
また、偽造抽出文書９０３は、正当に部分文書の抽出がおこなわれた抽出文書９０１を用いて作成された電子文書である。具体的には、抽出文書９０１内からの部分文書の転写（コピー）をおこなうことによって、不正な抽出文書である偽造抽出文書９０３が作成されている。【０１２９】
この偽造抽出文書９０３の正当性を検知する場合も、各部分文書に追加された部分文書ＩＤが昇順となっているか否かを判断する。偽造抽出文書９０３において、各部分文書に追加された部分文書ＩＤの順序は「０２」→「５６」→「５６」となっており、昇順となっていない。このため、偽造抽出文書９０３は、不当に抽出された電子文書であることを検知することができる。【０１３０】
このようにして、抽出文書を構成する各部分文書に追加された部分文書ＩＤが昇順となっているか否かを判定することにより、同一抽出文書内における部分文書の順序交換および転写を検知することができる。なお、部分文書の抽出（削除）がおこなわれた場合であっても部分文書ＩＤの昇順は維持されるため、部分文書の順序交換および転写の検知に影響を与えることはない。【０１３１】
（文書検証装置の電子文書検証処理の手順）
つぎに、文書検証装置において実行される電子文書検証処理の手順について説明する。図１０は、この発明の実施の形態１にかかる文書検証装置において実行される電子文書検証処理の手順を示すフローチャートである。【０１３２】
図１０に示すフローチャートにおいて、まず、抽出文書の入力を受け付けたか否かを判断する（ステップＳ１００１）。抽出文書とは、上述した電子文書抽出処理によって抽出された電子文書である。また、抽出後に何らかの改変がおこなわれた電子文書についても、ここでは抽出文書とする。【０１３３】
ここで、抽出文書が入力されるのを待って、入力を受け付けた場合（ステップＳ１００１：Ｙｅｓ）、抽出文書を構成する各部分文書に追加されている文書ＩＤがすべて同じ値であるか否かを判断する（ステップＳ１００２）。【０１３４】
そして、各部分文書に追加された文書ＩＤがすべて同じ値であった場合（ステップＳ１００２：Ｙｅｓ）、各部分文書に追加された部分文書ＩＤが昇順となっているか否かを判断する（ステップＳ１００３）。具体的には、各部分文書に追加された部分文書ＩＤが、抽出文書を構成する部分文書の構成順に値が大きくなっているか否かを判断する。【０１３５】
ここで、各部分文書に追加された部分文書ＩＤが昇順となっている場合（ステップＳ１００３：Ｙｅｓ）は、各部分文書に付加されている電子署名に基づいて、抽出文書を構成するすべての部分文書が正当であるか否かを判断する（ステップＳ１００４）。具体的には、抽出文書を構成する部分文書にそれぞれ付加されている電子署名を検証し、その結果を判断することにより、各部分文書の正当性を判断する。【０１３６】
そして、すべての部分文書が正当であった場合（ステップＳ１００４：Ｙｅｓ）、抽出文書の検証成功を示す検証結果を出力して（ステップＳ１００５）、本フローチャートによる一連の処理を終了する。【０１３７】
また、ステップＳ１００２において、各部分文書に追加された文書ＩＤがすべて同じ値ではない場合（ステップＳ１００２：Ｎｏ）は、検証失敗を示す検証結果を出力して（ステップＳ１００６）、本フローチャートによる一連の処理を終了する。【０１３８】
さらに、ステップＳ１００３において、各部分文書に追加された部分文書ＩＤが昇順となっていない場合（ステップＳ１００３：Ｎｏ）は、検証失敗を示す検証結果を出力して（ステップＳ１００６）、本フローチャートによる一連の処理を終了する。【０１３９】
また、ステップＳ１００４において、すべての部分文書が正当ではなかった場合（ステップＳ１００４：Ｎｏ）は、検証失敗を示す検証結果を出力して（ステップＳ１００６）、本フローチャートによる一連の処理を終了する。【０１４０】
これにより、電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても、抽出文書の真正性を検証することができる。【０１４１】
以上説明したように、この発明の実施の形態１にかかる文書検証装置によれば、電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても、改変後の電子文書（抽出文書）の真正性を検証することができる。【０１４２】
具体的には、電子文書を構成する部分文書ごとに付加された電子署名によって各部分文書の正当性を判断することができる。また、電子文書を構成する各部分文書に追加された部分文書ＩＤが昇順（または、降順）となっているか否かを判定することにより、同一電子文書内における部分文書の順序交換および転写を検知することができる。さらに、電子文書を構成する各部分文書に追加された文書ＩＤが共通であるか否かを判断することによって電子文書の正当性を検知することができる。【０１４３】
（実施の形態２）
つぎに、上述した文書検証装置の実施の形態２について説明する。実施の形態２では、文書検証装置の電子署名生成処理において、部分文書ごとに算出された電子署名を集約した集約電子署名を算出し、この集約電子署名を用いて電子文書の検証をおこなう。【０１４４】
（文書検証装置の電子署名生成処理の手順）
まず、文書検証装置において実行される電子署名生成処理の手順について説明する。図１１は、この発明の実施の形態２にかかる文書検証装置において実行される電子署名生成処理手順を示すフローチャートである。図１１のフローチャートにおいて、文書検証装置は、まず、オリジナル文書の入力を受け付けたか否かを判断する（ステップＳ１１０１）。【０１４５】
ここで、オリジナル文書が入力されるのを待って、入力を受け付けた場合（ステップＳ１１０１：Ｙｅｓ）、入力されたオリジナル文書を部分文書に分割する（ステップＳ１１０２）。そして、分割された各部分文書に文書ＩＤおよび部分文書ＩＤを追加する（ステップＳ１１０３）。具体的には、予測不可能な乱数を文書ＩＤおよび部分文書ＩＤとして追加する。また、部分文書ＩＤについては、各部分文書の出現位置に従って昇順となるように乱数を追加する。【０１４６】
つぎに、ステップＳ１１０２において分割された部分文書ごとの電子署名を算出する（ステップＳ１１０４）。そして、算出された電子署名をそれぞれ対応する部分文書に付加する（ステップＳ１１０５）。【０１４７】
つぎに、部分文書ごとに算出された電子署名を集約した集約電子署名を算出する（ステップＳ１１０６）。具体的には、集約電子署名は、ステップＳ１１０４において算出された各部分文書の電子署名を乗算することによって算出される。たとえば、ステップＳ１１０４において算出された各部分文書の電子署名が「σ1〜σ5」であった場合、集約電子署名σは、「σ＝σ1×σ2×σ3×σ4×σ5」となる。【０１４８】
最後に、電子署名が付加されたオリジナル文書を、ステップＳ１１０６において算出された集約電子署名とともに電子文書ＤＢに保存して（ステップＳ１１０７）、本フローチャートによる一連の処理を終了する。【０１４９】
なお、ステップＳ１１０６における処理は、ステップＳ１１０４において各部分文書の電子署名が算出された後であればよく、ステップＳ１１０５において電子署名を付加する前におこなうようにしてもよい。【０１５０】
これにより、電子文書を当該電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても真正性を検証することができる状態にすることができる。【０１５１】
（文書検証装置の電子文書抽出処理の手順）
つぎに、文書検証装置において実行される電子文書抽出処理の手順について説明する。図１２は、この発明の実施の形態２にかかる文書検証装置において実行される電子文書抽出処理手順を示すフローチャートである。【０１５２】
図１２のフローチャートにおいて、文書検証装置は、まず、電子署名が付加されたオリジナル文書および集約電子署名の入力を受け付ける（ステップＳ１２０１）。つぎに、オリジナル文書を構成する任意の部分文書の指定を受け付けたか否かを判断する（ステップＳ１２０２）。【０１５３】
ここで、任意の部分文書の指定を受け付けるのを待って、受け付けた場合（ステップＳ１２０２：Ｙｅｓ）、指定された部分文書以外の他の部分文書および当該他の部分文書に付加されている電子署名を削除する（ステップＳ１２０３）。つぎに、ステップＳ１２０１において入力された集約電子署名に対して、指定された任意の部分文書以外の他の部分文書に付加されている電子署名を除算する（ステップＳ１２０４）。【０１５４】
具体的には、たとえば、オリジナル文書を構成する部分文書に付加された電子署名が「σ1〜σ5」であり、指定された部分文書に付加された電子署名が「σ1、σ3、σ4、σ5」であった場合、集約電子署名σから指定された部分文書以外の他の部分文書に付加された電子署名「σ2」を除算する。この場合、集約電子署名σは、「σ＝σ1×σ3×σ4×σ5」となる。【０１５５】
最後に、指定された部分文書をオリジナル文書の中から抽出して（ステップＳ１２０５）、本フローチャートによる一連の処理を終了する。なお、ステップＳ１２０３およびステップＳ１２０４における処理は、同時に実行されるようにしてもよいし、逆の順番で実行されるようにしてもよい。【０１５６】
これにより、電子文書における任意の部分文書を指定することにより、当該電子文書の中から任意の部分文書を抽出することができる。【０１５７】
（文書検証装置の電子文書検証処理の手順）
つぎに、文書検証装置において実行される電子文書検証処理の手順について説明する。図１３は、この発明の実施の形態２にかかる文書検証装置において実行される電子文書検証処理の手順を示すフローチャートである。【０１５８】
図１３に示すフローチャートにおいて、文書検証装置は、まず、抽出文書および集約電子署名の入力を受け付けたか否かを判断する（ステップＳ１３０１）。ここで、抽出文書および集約電子署名が入力されるのを待って、入力を受け付けた場合（ステップＳ１３０１：Ｙｅｓ）、抽出文書を構成する各部分文書に追加されている文書ＩＤがすべて同じ値であるか否かを判断する（ステップＳ１３０２）。【０１５９】
そして、各部分文書に追加された文書ＩＤがすべて同じ値であった場合（ステップＳ１３０２：Ｙｅｓ）、各部分文書に追加された部分文書ＩＤが昇順となっているか否かを判断する（ステップＳ１３０３）。具体的には、各部分文書に追加された部分文書ＩＤが、抽出文書を構成する部分文書の構成順に値が大きくなっているか否かを判断する。【０１６０】
ここで、各部分文書に追加された部分文書ＩＤが昇順となっている場合（ステップＳ１３０３：Ｙｅｓ）は、ステップＳ１３０１において入力された集約電子署名に基づいて、抽出文書が正当であるか否かを判断する（ステップＳ１３０４）。具体的には、集約電子署名を用いて、抽出文書の正当性を判断する。【０１６１】
そして、抽出文書が正当であった場合（ステップＳ１３０４：Ｙｅｓ）、抽出文書の検証成功を示す検証結果を出力して（ステップＳ１３０５）、本フローチャートによる一連の処理を終了する。【０１６２】
また、ステップＳ１３０２において、各部分文書に追加された文書ＩＤがすべて同じ値ではない場合（ステップＳ１３０２：Ｎｏ）は、検証失敗を示す検証結果を出力して（ステップＳ１３０６）、本フローチャートによる一連の処理を終了する。【０１６３】
さらに、ステップＳ１３０３において、各部分文書に追加された部分文書ＩＤが昇順となっていない場合（ステップＳ１３０３：Ｎｏ）は、検証失敗を示す検証結果を出力して（ステップＳ１３０６）、本フローチャートによる一連の処理を終了する。【０１６４】
また、ステップＳ１３０４において、抽出文書が正当ではなかった場合（ステップＳ１３０４：Ｎｏ）は、検証失敗を示す検証結果を出力して（ステップＳ１３０６）、本フローチャートによる一連の処理を終了する。【０１６５】
これにより、電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても、抽出文書の真正性を検証することができる。また、抽出文書の正当性を判断する際に集約電子署名を用いることによって、電子文書検証処理の簡略化を図ることができる。【０１６６】
以上説明したように、この発明の実施の形態２にかかる文書検証装置によれば、電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても、改変後の電子文書（抽出文書）の真正性を検証することができる。また、電子文書の正当性を判断する際に当該電子文書ごとに生成された集約電子署名を用いることによって、電子文書検証処理の簡略化を図ることができる。【０１６７】
（実施の形態３）
つぎに、上述した文書検証装置の実施の形態３について説明する。実施の形態３では、電子文書を構成する部分文書のうち、任意の部分文書に対して強制開示の特性（プロパティ）を設定することができる。すなわち、ユーザ（抽出者）の意思にかかわらず電子文書の中の特定の情報を、強制的に開示（削除することができない）させる設定をおこなうことができる。【０１６８】
なお、文書検証装置の電子署名生成処理の手順については、上述した実施の形態２にかかる文書検証装置の電子署名生成処理の手順と同様のため説明を省略する。【０１６９】
（文書検証装置の電子文書抽出処理の手順）
つぎに、文書検証装置において実行される電子文書抽出処理の手順について説明する。図１４は、この発明の実施の形態３にかかる文書検証装置において実行される電子文書抽出処理手順を示すフローチャートである。【０１７０】
図１４のフローチャートにおいて、文書検証装置は、まず、電子署名が付加されたオリジナル文書および集約電子署名の入力を受け付ける（ステップＳ１４０１）。つぎに、強制開示する部分文書の指定を受け付けたか否かを判断する（ステップＳ１４０２）。【０１７１】
強制開示する部分文書とは、ユーザが抽出する部分文書として指定することなく強制的に抽出される部分文書であり、削除することができない部分文書を示す。ステップＳ１４０２において、強制開示する部分文書の指定を受け付けた場合（ステップＳ１４０２：Ｙｅｓ）、指定された部分文書を強制開示する部分文書に設定するとともに、強制開示する部分文書に付加されている電子署名を削除する（ステップＳ１４０３）。【０１７２】
具体的には、たとえば、オリジナル文書を構成する部分文書「部分文書１〜部分文書５」にそれぞれ対応する電子署名「σ1〜σ5」が付加されている。このとき、強制開示する部分文書として部分文書４が指定された場合、部分文書４に付加された電子署名「σ4」を削除する。【０１７３】
なお、強制開示する部分文書として設定された部分文書は、この後、つぎのユーザによって電子文書抽出処理が実行される場合においても、抽出する部分文書として指定することなく強制的に抽出（強制開示）される。【０１７４】
つぎに、抽出する部分文書の指定を受け付けたか否かを判断する（ステップＳ１４０４）。ここで、抽出する部分文書の指定を受け付けるのを待って、受け付けた場合（ステップＳ１４０４：Ｙｅｓ）、指定された部分文書以外の他の部分文書および当該他の部分文書に付加されている電子署名を削除する（ステップＳ１４０５）。なお、ステップＳ１４０２において、強制開示する部分文書の指定を受け付けなかった場合（ステップＳ１４０２：Ｎｏ）は、ステップＳ１４０４に移行する。【０１７５】
このとき、ステップＳ１４０２において強制開示する部分文書として指定された部分文書は、ステップＳ１４０４において抽出文書として指定されなかった場合であっても削除されない。なお、強制開示する部分文書に付加されている電子署名は、ステップＳ１４０３において削除されている。【０１７６】
つぎに、ステップＳ１４０１において入力された集約電子署名に、指定された任意の部分文書以外の他の部分文書に付加された電子署名を除算する（ステップＳ１４０６）。具体的には、たとえば、集約電子署名σが「σ＝σ1×σ2×σ3×σ4×σ5」であり、抽出する部分文書として指定された部分文書以外の他の部分文書（削除する部分文書２）に付加されている電子署名が「σ2」であった場合、集約電子署名σは、「σ＝σ1×σ3×σ4×σ5」となる。このとき、強制開示する部分文書として設定された部分文書４に付加されている電子署名σ4をσに除算しない。【０１７７】
最後に、ステップＳ１４０４において指定された部分文書をオリジナル文書の中から抽出して（ステップＳ１４０７）、本フローチャートによる一連の処理を終了する。【０１７８】
このように、電子文書における任意の部分文書を指定することにより、当該電子文書の中から任意の部分文書を抽出することができる。また、強制開示する部分文書の設定をおこなうことによって、以降の電子文書抽出処理において当該部分文書の削除を禁止する（強制的に抽出される）ことができる。【０１７９】
ここで、強制開示する部分文書が設定された電子文書から部分文書を抽出する場合の概要を図１５を用いて説明する。図１５は、強制開示する部分文書が設定されたオリジナル文書および抽出文書の一例を示す説明図である。図１５に示すように、オリジナル文書を構成する部分文書１〜５にそれぞれ対応する電子署名σ1〜σ5が付加されている。また、このときの集約電子署名σは、電子署名σ1〜σ5の積で示される。【０１８０】
このとき、強制開示する部分文書として部分文書４が設定された場合、部分文書４に付加されていた電子署名σ4が削除される。さらに、抽出する部分文書として部分文書１、部分文書３および部分文書５が指定された場合、抽出文書および強制開示する部分文書として指定されていない部分文書２が、部分文書２に付加されている電子署名σ2とともに削除される。【０１８１】
そして、結果的に抽出文書としてオリジナル文書から抽出されることとなる電子文書は、部分文書１、部分文書３、部分文書４および部分文書５となる。また、このときの集約電子署名σは、削除される部分文書２に付加されていたσ2が除算した「σ＝σ1×σ3×σ4×σ5」となる。【０１８２】
（文書検証装置の電子文書検証処理の手順）
つぎに、文書検証装置において実行される電子文書検証処理の手順について説明する。実施の形態３にかかる文書検証装置の電子文書検証処理は、上述した実施の形態２にかかる文書検証装置の電子文書検証処理の手順とほぼ同様のため、異なる部分についてのみ説明する。【０１８３】
ここでは、上述した実施の形態２にかかる文書検証装置の電子文書検証処理に加えて、入力された抽出文書を構成する各部分文書に付加された個別の電子署名に基づいて、抽出文書の正当性を判断する工程を含む構成とすることができる。【０１８４】
具体的には、たとえば、図１３に示すフローチャートにおいて、ステップＳ１３０４の工程の前に、各部分文書に付加された個別の電子署名に基づいて、抽出文書を構成する各部分文書の正当性を判断する工程を追加する。そして、各部分文書ごとの電子署名により、部分文書の正当性を判断し、一つでも不当な改変がおこなわれた部分文書が存在した場合は、検証失敗を示す検証結果を出力する。【０１８５】
なお、この工程を追加した場合であっても、強制開示する部分文書に付加されていた電子署名は削除されているため、この強制開示する部分文書に関する電子署名による正当性の判断はおこなわれない。このため、強制開示する部分文書に付加されていた電子署名が電子文書検証処理に影響を及ぼすことなく、正常な電子文書検証処理を実行することができる。【０１８６】
これにより、電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても、抽出文書の真正性を検証することができる。【０１８７】
以上説明したように、この発明の実施の形態３にかかる文書検証装置によれば、電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても、改変後の電子文書（抽出文書）の真正性を検証することができる。また、強制開示する部分文書の設定をおこなうことによって、以降の電子文書抽出処理において当該部分文書の削除を禁止する（強制的に抽出される）ことができる。【０１８８】
なお、本実施の形態で説明した文書検証方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【０１８９】
以上のように、本発明にかかる文書検証プログラム、記録媒体、文書検証方法および文書検証装置は、電子文書の真正を検証する技術に有用であり、特に、電子文書を構成する部分文書の順序交換を不可能にする文書検証技術に適している。
【図１】
2008015740.tif 000003
【図２】
2008015740.tif 000004
【図３】
2008015740.tif 000005
【図４】
2008015740.tif 000006
【図５】
2008015740.tif 000007
【図６】
2008015740.tif 000008
【図７】
2008015740.tif 000009
【図８】
2008015740.tif 000010
【図９】
2008015740.tif 000011
【図１０】
2008015740.tif 000012
【図１１】
2008015740.tif 000013
【図１２】
2008015740.tif 000014
【図１３】
2008015740.tif 000015
【図１４】
2008015740.tif 000016
【図１５】
2008015740.tif 000017
【図１６】
2008015740.tif 000018
【手続補正書】
【提出日】平成20年10月17日(2008.10.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
電子文書の真正を検証させる文書検証プログラムであって、
前記電子文書の入力を受け付けさせる入力工程と、
前記入力工程によって入力された電子文書を任意の構成要素に分割させる分割工程と、
前記分割工程によって分割された構成要素の前記電子文書における出現位置に関する順序に従って真正乱数または擬似乱数（以下、「乱数」という）を前記各構成要素に割り当てさせる割当工程と、
をコンピュータに実行させることを特徴とする文書検証プログラム。
【請求項２】
前記構成要素ごとの電子署名を生成させる生成工程と、
前記生成工程によって生成された電子署名を対応する構成要素に対して設定させる設定工程と、
を前記コンピュータに実行させることを特徴とする請求項１に記載の文書検証プログラム。
【請求項３】
前記電子文書を構成する任意の構成要素の指定を受け付けさせる指定工程と、
前記指定工程によって指定された任意の構成要素を前記電子文書の中から抽出させる抽出工程と、
を前記コンピュータに実行させることを特徴とする請求項１または２に記載の文書検証プログラム。
【請求項４】
請求項１〜３のいずれか一つに記載の文書検証プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【請求項５】
電子文書の真正を検証する文書検証方法であって、
前記電子文書の入力を受け付ける入力工程と、
前記入力工程によって入力された電子文書を任意の構成要素に分割する分割工程と、
前記分割工程によって分割された構成要素の前記電子文書における出現位置に関する順序に従って真正乱数または擬似乱数を前記各構成要素に割り当てる割当工程と、
を含むことを特徴とする文書検証方法。
【請求項６】
電子文書の真正を検証する文書検証装置であって、
前記電子文書の入力を受け付ける入力手段と、
前記入力手段によって入力された電子文書を任意の構成要素に分割する分割手段と、
前記分割手段によって分割された構成要素の前記電子文書における出現位置に関する順序に従って真正乱数または擬似乱数を前記各構成要素に割り当てる割当手段と、
を備えることを特徴とする文書検証装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、電子文書の真正を検証する文書検証プログラム、記録媒体、文書検証方法および文書検証装置に関する。
【背景技術】
【０００２】
従来、電子文書の真正を検証する技術として、電子署名を用いた技術が提供されている。この電子署名技術は、電子文書ごとに電子署名を付与することによって、電子文書の作成者を認証するとともに、電子文書の正当性を判断することができ、電子文書の真正性を保証する技術である。
【０００３】
一方で、この電子署名技術を利用した場合、不正なユーザによる改ざんを防ぐという点においては非常に有用であるが、電子文書の有効活用という点においては問題があった。なぜなら、電子署名技術においては、電子文書に対して何らかの編集をおこなった場合、編集後の電子文書の正当性が保証されないこととなる。
【０００４】
このため、電子文書に公開不可能な情報や不要な情報が含まれている場合であっても、電子文書の中から削除するなどの編集をおこなうことができず、ユーザの利便性を著しく低下させる要因となっていた。これにともない、電子文書に対する編集が可能でかつ、不正なユーザによる改ざんから電子文書を保護することができる技術が望まれている。
【０００５】
たとえば、電子文書を部分文書に分割し、部分文書ごとに公開・非公開を指定することにより、非公開の部分文書に対して墨塗りを施す技術が提供されている（たとえば、下記非特許文献１参照。）。この墨塗り署名技術を用いることにより、電子文書における公開部分に対する完全性と、非公開部分に対する秘匿性を保証する。
【０００６】
また、電子文書を部分文書に分割し、部分文書ごとに電子署名を付加させる技術が提供されている（たとえば、下記特許文献１参照。）。そして、部分文書ごとに公開・非公開を指定することにより、非公開の部分文書を削除し、電子文書における公開部分に対する完全性を保証する。
【０００７】
ここで、上記従来技術により抽出された電子文書について説明する。図１６は、従来技術における電子署名技術の一例を示す説明図である。図１６に示すように、オリジナル文書１６００が部分文書（たとえば、「鈴木太郎」）に分割され、各部分文書に電子署名が付されている。
【０００８】
墨塗り文書１６０１は、上記非特許文献１による技術により、オリジナル文書１６００のうち秘匿性を有する部分文書が墨塗りされている。
【０００９】
また、抽出文書１６０２は、上記特許文献１による技術により、オリジナル文書１６００の中から任意の部分文書が抽出されている。
【００１０】
【特許文献１】特開２００６−６０７２２号公報
【非特許文献１】宮崎邦彦、岩村充、松本勉、佐々木良一、吉浦裕、手塚悟、今井秀樹著「開示条件を制御可能な電子文書墨塗り技術」２００４年暗号と情報セキュリティシンポジウム予稿集
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述した非特許文献１の従来技術では、非公開部分として指定された部分文書に墨塗りが施されたとしても、墨塗り箇所の長さが推定可能である。このため、墨塗りされた部分文書の文字数を推定することができる可能性があり、秘匿性を保証することができない場合があるという問題があった。
【００１２】
ここで、上述した問題点を具体的に説明する。図１６に示す墨塗り文書１６０１が公開された場合、具体的な年齢を特定することはできないが「５歳の鈴木二郎」の他に６歳以上の家族が３人、墨塗り文書１６０１に記述されていることを推定することができる。このように、秘匿性を有する部分文書に墨塗りを施した場合であっても、完全に秘匿性を保証することができないという問題があった。
【００１３】
また、上述した特許文献１の従来技術では、電子文書を構成する各部分文書に付加された電子署名によって各部分文書の完全性が保証された場合には、真正な電子文書であると認証されてしまう。このため、電子文書を構成する部分文書の不正な順序交換や転写（コピー）がおこなわれたとしても、真正な電子文書であると認証してしまう場合があるという問題があった。
【００１４】
ここで、上述した問題点を具体的に説明する。図１６に示す抽出文書１６０２には、オリジナル文書の中から抽出された、「鈴木太郎」および「３５歳」の部分文書が記述されている。上述した従来技術では、各部分文書に付加された電子署名によって真正を検証するため、抽出文書１６０２が真正であると判断される。
【００１５】
しかしながら、オリジナル文書１６００に記述されている「鈴木太郎」の年齢（３８歳）と、抽出文書１６０２に記述されている「鈴木太郎」の年齢（３５歳）は一致していない。すなわち、抽出文書１６０２は、改ざんがおこなわれた電子文書であり、真正な電子文書ではない。このように、オリジナル文書１６００に対して、内容（名前や年齢のすり替えなど）の改ざんがおこなわれたとしても、抽出文書１６０２を真正な電子文書として認証してしまうという問題があった。
【００１６】
この発明は、上述した従来技術による問題点を解消するため、電子文書を構成する部分文書の順序交換などの改変がおこなわれた場合であっても、改変後における電子文書の真正性の検証をおこなうことができる文書検証プログラム、記録媒体、文書検証方法および文書検証装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上述した課題を解決し、目的を達成するため、この発明にかかる文書検証プログラム、記録媒体、文書検証方法および文書検証装置は、電子文書の真正を検証させる文書検証プログラム、記録媒体、文書検証方法および文書検証装置であって、前記電子文書の入力を受け付け、入力された電子文書を任意の構成要素に分割し、分割された構成要素の前記電子文書における出現位置に関する順序に従って真正乱数または擬似乱数（以下、「乱数」という）を前記各構成要素に割り当てることを特徴とする。
【００１８】
この発明によれば、電子文書を構成する構成要素の順序交換などの改変がおこなわれた場合であっても、改変後における電子文書の真正性の検証をおこなうことができる。
【００１９】
また、上記発明において、分割された各構成要素に、当該各構成要素において共通する真正乱数または擬似乱数（以下、「共通乱数」という）を割り当てるようにしてもよい。
【００２０】
この発明によれば、他の電子文書から構成要素を転写する改変がおこなわれた場合であっても、改変後における電子文書の真正性の検証をおこなうことができる。
【００２１】
また、上記発明において、前記構成要素ごとの電子署名を生成し、生成された電子署名を対応する構成要素に対して設定するようにしてもよい。
【００２２】
この発明によれば、構成要素ごとに設定された電子署名によって各構成要素の正当性を判断することができ、当該各構成要素の完全性を保証することができる。
【００２３】
また、上記発明において、前記電子文書を構成する任意の構成要素の指定を受け付け、指定された任意の構成要素を前記電子文書の中から抽出するようにしてもよい。
【００２４】
この発明によれば、電子文書の中から任意の構成要素を抽出することができる。
【００２５】
また、上記発明において、抽出された任意の構成要素によって構成される電子文書の入力を受け付け、入力された各構成要素に割り当てられた乱数が、前記電子文書における前記各構成要素の出現位置に関する順序に従っているか否かを判定し、この判定結果に基づいて前記電子文書の真正を検証し、この検証結果を出力するようにしてもよい。
【００２６】
この発明によれば、電子文書を構成する構成要素の順序交換などの改変がおこなわれた場合であっても、改変後における電子文書の真正性の検証をおこなうことができる。
【００２７】
また、上記発明において、前記任意の構成要素に対してそれぞれ設定された電子署名に基づいて、前記各構成要素の正当性を判定するようにしてもよい。
【００２８】
この発明によれば、構成要素ごとに設定された電子署名によって各構成要素の正当性を判断することができ、当該各構成要素の完全性を保証することができる。
【００２９】
また、上記発明において、各構成要素に割り当てられた共通乱数が、抽出された任意の構成要素において共通であるか否かを判定するようにしてもよい。
【００３０】
この発明によれば、他の電子文書から構成要素を転写する改変がおこなわれた場合であっても、改変後における電子文書の真正性の検証をおこなうことができる。
【００３１】
また、上記発明において、前記構成要素ごとの電子署名を集約した集約電子署名を生成し、生成された集約電子署名に基づいて、抽出された任意の構成要素によって構成される電子文書の正当性を判定するようにしてもよい。
【００３２】
この発明によれば、集約電子署名によって電子文書の正当性を判断することができ、当該電子文書の完全性を保証することができる。
【００３３】
また、上記発明において、前記構成要素ごとの電子署名を集約した集約電子署名を生成し、前記電子文書を構成する構成要素のうち、強制開示する部分文書の指定を受け付け、指定された構成要素に設定されている電子署名を削除するようにしてもよい。
【００３４】
この発明によれば、電子文書における任意の構成要素を強制開示させる、すなわち、以降において削除することができない構成要素として指定することができる。
【発明の効果】
【００３５】
本発明にかかる文書検証プログラム、記録媒体、文書検証方法および文書検証装置によれば、電子文書を構成する部分文書の順序交換などの改変がおこなわれた場合であっても、改変後における電子文書の真正性の検証をおこなうことができるという効果を奏する。
【発明を実施するための最良の形態】
【００３６】
以下に添付図面を参照して、この発明にかかる文書検証プログラム、記録媒体、文書検証方法および文書検証装置の好適な実施の形態を詳細に説明する。
【００３７】
（実施の形態１）
（電子文書公開システム１００のシステム構成）
まず、この発明の実施の形態１にかかる電子文書公開システムのシステム構成について説明する。図１は、この発明の実施の形態１にかかる電子文書公開システムのシステム構成図である。
【００３８】
図１に示すように、電子文書公開システム１００は、情報を公開する側のユーザが利用する文書検証装置１０１および情報公開を請求する側のユーザが利用する文書検証装置１０２によって構成されている。文書検証装置１０１および文書検証装置１０２は、ネットワーク１０３を介して接続されている。
【００３９】
電子文書公開システム１００において公開される電子文書は、たとえば、教育機関から発行される電子成績表や行政機関から発行される電子戸籍台帳など秘匿性の高い個人情報が挙げられる。電子文書公開システム１００では、これら個人情報の秘匿性を保証するとともに、改ざんがおこなわれた個人情報の真正を検証可能なシステムである。
【００４０】
情報公開側の文書検証装置１０１は、公開情報となる電子成績表や電子戸籍台帳を作成することができる。また、文書検証装置１０１は、作成した電子文書（たとえば、電子成績表や電子戸籍台帳）の真正を検証することができる状態に加工して電子文書ＤＢに保存する。
【００４１】
以下、文書検証装置１０１において、真正の検証が可能な状態に加工する対象となる電子文書をオリジナル文書という。なお、電子文書を加工する際の具体的な説明および電子文書ＤＢの具体的な保存内容については後述する。
【００４２】
また、文書検証装置１０１は、文書検証装置１０２から情報公開請求を示す要求信号を受信した場合、該当する電子文書（真正の検証が可能な電子文書）を電子文書ＤＢの中から検索する。そして、検索した電子文書を開示文書として文書検証装置１０２に送信する。また、文書検証装置１０１は、検索結果（検索された電子文書）を文書検証装置１０２に送信する場合、当該検索結果に含まれる秘匿性を有する文書を削除することができる。
【００４３】
秘匿性を有する文書とは、たとえば、個人情報保護の観点から公開すべき情報ではない情報や、国家機密にかかる情報などである。文書検証装置１０１のユーザは、オリジナル文書における任意の情報を指定することにより、公開しない情報を削除することができる。この場合、文書検証装置１０１は、オリジナル文書から公開すべきではない情報を削除した開示文書（抽出文書）を作成し、作成した開示文書を文書検証装置１０２に送信する。
【００４４】
情報請求側の文書検証装置１０２は、情報公開側の文書検証装置１０１に対して情報公開請求を示す要求信号を送信することができる。そして、文書検証装置１０２は、要求信号を送信した結果、文書検証装置１０１から開示文書を受信する。また、文書検証装置１０２は、受信した開示文書の真正を検証することができる。すなわち、情報の保護などの観点から削除された部分を除き、公開された情報が真正であるかを情報請求側の文書検証装置１０２において検証することができる。
【００４５】
文書検証装置１０２のユーザは、開示文書における任意の情報を指定することにより、所望の情報のみを取得することもできる。このように、情報公開を請求したユーザは、開示文書の内容を任意に改変することができる。
【００４６】
たとえば、ある教育機関の学生であるユーザが、当該教育機関に設置されている文書検証装置１０１に対して電子成績表の公開請求をする。その結果、ユーザは、請求した電子成績表を取得することができ、当該電子成績表の内容を任意に改変することができる。具体的には、たとえば、電子成績表の中から成績の悪い科目に関する内容を削除したり、成績の良い科目の点数を成績の悪い点数に転写するなどの不正な改変をおこなうことができる。
【００４７】
このように、ユーザによって任意に内容が改変された情報は、文書検証装置（たとえば、文書検証装置１０１，１０２）において、真正を検証することができ、不正な改変がおこなわれていないか否かを検証することができる。
【００４８】
ここでは、電子成績表や電子戸籍台帳などの個人情報の作成元のユーザが利用する装置を文書検証装置１０１とし、情報公開を請求する側のユーザが利用する装置を文書検証装置１０２としたが、文書検証装置１０２において何らかの情報を作成し、文書検証装置１０１を利用するユーザに公開するようにしてもよい。
【００４９】
（文書検証装置のハードウェア構成）
つぎに、この発明の実施の形態１にかかる文書検証装置（たとえば、図１に示す文書検証装置１０１，１０２）のハードウェア構成について説明する。図２は、この発明の実施の形態１にかかる文書検証装置のハードウェア構成を示すブロック図である。
【００５０】
図２において、文書検証装置は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ（ハードディスクドライブ）２０４と、ＨＤ（ハードディスク）２０５と、ＦＤＤ（フレキシブルディスクドライブ）２０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）２０７と、ディスプレイ２０８と、Ｉ／Ｆ（インターフェース）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３とを備えている。また、各構成部は、バス２００によってそれぞれ接続されている。
【００５１】
ここで、ＣＰＵ２０１は、文書検証装置（たとえば、図１に示す文書検証装置１０１，１０２）の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムや後述する電子署名生成処理、電子文書抽出処理および電子文書検証処理に関する文書検証プログラムなどのプログラムを記録している。ＲＡＭ２０３は、ＣＰＵ２０１のワークウェアとして使用される。
【００５２】
ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２０５に対するデータのリード／ライトを制御する。ＨＤ２０５は、ＨＤＤ２０４の制御で書き込まれたデータを記憶する。ＨＤ２０５には、たとえば、図１に示す電子文書ＤＢが構築されている。
【００５３】
ＦＤＤ２０６は、ＣＰＵ２０１の制御にしたがってＦＤ２０７に対するデータのリード／ライトを制御する。ＦＤ２０７は、ＦＤＤ２０６の制御で書き込まれたデータを記憶したり、ＦＤ２０７に記憶されたデータを文書検証装置に読み取らせたりする。
【００５４】
また、着脱可能な記録媒体として、ＦＤ２０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリカードなどであってもよい。ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８には、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００５５】
Ｉ／Ｆ２０９は、通信回線を通じてインターネットなどのネットワーク１０３に接続され、このネットワーク１０３を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク１０３と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００５６】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様の機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００５７】
スキャナ２１２は、画像を光学的に読み取り、文書検証装置内に画像データを読み込む。なお、スキャナ２１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ２１３は、画像データや電子文書を印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタなどを採用することができる。
【００５８】
（文書検証装置の機能的構成）
つぎに、この発明の実施の形態１にかかる文書検証装置（たとえば、図１に示す文書検証装置１０１，１０２）の機能的構成について説明する。図３は、この発明の実施の形態１にかかる文書検証装置の機能的構成を示すブロック図である。図３において、文書検証装置は、入力部３０１と、分割部３０２と、割当部３０３と、生成部３０４と、設定部３０５と、指定部３０６と、抽出部３０７と、判定部３０８と、検証部３０９と、強制開示指定部３１１と、削除部３１２と、から構成されている。
【００５９】
入力部３０１は、電子文書の入力を受け付ける。ここで、電子文書とは、コンピュータ上で扱われる文書の総称であり、文書作成アプリケーションなどを用いて作成された電子データである。電子文書としては、たとえば、電子成績表や電子戸籍台帳などの秘匿性を有する個人情報などが挙げられる。なお、電子文書は、文書検証装置において作成されるようにしてもよいし、他の装置において作成されるようにしてもよい。他の装置において電子文書が作成された場合は、インターネットなどのネットワーク１０３を介して文書検証装置に取得される。
【００６０】
分割部３０２は、入力部３０１によって入力された電子文書を任意の構成要素に分割する。任意の構成要素とは、電子文書の先頭（ここでは、入力された電子文書が読み込まれる際の先頭を意味する）から１バイトごとに一つの構成要素としてもよいし、文や単語ごとに一つの構成要素としてもよい。
【００６１】
また、電子文書がＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）言語などによって記述された文書であれば、当該文書を構成する最小構成要素を一つの構成要素としてもよい。
【００６２】
割当部３０３は、分割部３０２によって分割された構成要素の電子文書における出現位置に関する順序に従って真正乱数または擬似乱数（以下、「乱数」という）を各構成要素に割り当てる。出現位置に関する順序とは、電子文書における各構成要素の配置によって定義される順序である。具体的には、たとえば、文書検証装置において電子文書が読み込まれる際の読み込み順に従って昇順または降順となるように乱数を各構成要素に割り当てるようにしてもよい。
【００６３】
ここで、真正乱数とは、規則性のない不規則な数列に含まれる各要素である。具体的には、ランダムな物理現象を利用することにより、真正乱数を発生させる。また、擬似乱数とは、確定的な計算によって求められる数列ではあるが規則性のない乱数列のように見える数列に含まれる各要素を示す。具体的には、擬似乱数とは、コンピュータ上で生成される可能な限り予測困難な乱数であり、生成される数値の不偏性を高めたものである。この擬似乱数は、たとえば、擬似乱数生成器（擬似乱数生成法）を用いて生成することができる。擬似乱数生成器とは、多項式時間の計算機が乱数と識別不能な列を出力することができる機器である。
【００６４】
生成された乱数を昇順または降順になるように各構成要素に割り当てる。たとえば、電子文書における出現位置に関する順序に従って、乱数の値が順に大きくなるように各構成要素に乱数を割り当てる。なお、乱数の具体的な生成方法および割り当て方法については後述する。
【００６５】
また、割当部３０３は、分割部３０２によって分割された各構成要素に、当該各構成要素において共通する乱数（以下、「共通乱数」という）を割り当てるようにしてもよい。共通乱数は、電子文書ごとに予測不可能に設定された乱数であり、当該電子文書を構成する構成要素すべてに共通する値である。なお、共通乱数は、たとえば、上記擬似乱数生成器などを用いて生成される。
【００６６】
生成部３０４は、分割部３０２によって分割された構成要素ごとの電子署名を生成する。ここで、電子署名とは、データ（電子文書）の正当性の認証をおこなうための方式、または、電子文書に付加される署名情報である。電子署名は、たとえば、公開鍵暗号方式を利用することによって実現することができる。具体的には、電子署名は、電子文書を通信相手に送信する際に、自分が電子データを送信した本人であることを通信相手に証明したい場合に利用される技術である。
【００６７】
すなわち、電子署名は、物理的な署名（印鑑など）と同様に、電子文書の正しい作成者と当該電子文書の正当性（改ざんがおこなわれていないこと）を証明するためのものである。さらに、電子署名は、本人しか作成することができないものであり、その電子署名の正当性は任意のユーザによって検証可能なものである。
【００６８】
これを実現するために、たとえば、公開鍵暗号の原理を利用する。具体的には、署名文（電子署名が付加された電子文書）を作成できるのが秘密鍵（署名鍵）を有するユーザだけであることを利用する。また、公開鍵（検証鍵）は、検証が任意のユーザによっておこなうことができるように公開する。
【００６９】
ここで、電子署名の作成から検証までの一連の流れを説明する。電子署名の作成者（以下、「送信者」という）は、公開鍵暗号方式に従ってあらかじめ公開鍵と秘密鍵を作成する。そして、秘密鍵を自分だけの秘密にし、公開鍵のみを通信相手に公開する。送信者は、署名したい電子文書に対し、秘密鍵を用いて電子署名を作成する。
【００７０】
つぎに、送信者は、元の電子文書に電子署名を付加して通信相手（以下、「受信者」という）に送信する。受信者は、元の電子文書と電子署名を受信することとなる。そして、受信者は、送信者から公開されている公開鍵で電子署名を検証する。
【００７１】
受信者は、元の電子文書および公開鍵から得られる値と、電子署名から得られる値とが一致するか否かを検証する。このとき、これらの値が一致した場合に、電子文書および送信者の正当性が証明される。一方、値が一致しなければ、電子文書または電子署名が改ざんされたことを検知することができる。
【００７２】
なお、公開鍵（検証鍵）は、公開されていても正当であることが保証されていなければならないため、信頼できる機関によって公開鍵に署名を施すことが考えられる。また、電子署名を実現する具体的な方式としては、たとえば、素因数分解に基づくＲＳＡ署名方式やＥＳＩＧＮ署名、離散対数に基づくエルガマル署名やＤＳＡ署名、楕円離散対数に基づく楕円エルガマル署名や楕円ＤＳＡ署名などがある。
【００７３】
また、生成部３０４は、構成要素ごとの電子署名を集約した集約電子署名を生成するようにしてもよい。集約電子署名は、構成要素ごとに生成された電子署名をひとまとめにしたものである。具体的には、たとえば、集約電子署名は、各構成要素の電子署名の積によって構成されていてもよいし、各構成要素の電子署名の和によって構成されていてもよい。
【００７４】
設定部３０５は、生成部３０４によって生成された構成要素ごとの電子署名を対応する構成要素に対して設定する。具体的には、たとえば、設定部３０５は、生成部３０４によって生成された構成要素ごとの電子署名を対応する構成要素に関連付けて電子文書ＤＢに記録する。
【００７５】
指定部３０６は、電子文書を構成する任意の構成要素の指定を受け付ける。具体的には、文書検証装置のユーザが、キーボード２１０やマウス２１１を操作することによって、電子文書を構成する任意の構成要素を指定する。なお、ここでの電子文書を構成する各構成要素には、乱数が割り当てられており、対応する電子署名が設定されている。
【００７６】
抽出部３０７は、指定部３０６によって指定された任意の構成要素を電子文書の中から抽出する。具体的には、抽出部３０７は、指定部３０６によって指定された任意の構成要素を、当該構成要素に割り当てられた乱数とともに抽出する。以下、抽出された構成要素によって構成される電子文書を「抽出文書」という。
【００７７】
なお、電子文書における抽出部３０７によって抽出された構成要素以外の他の構成要素を、当該他の構成要素に割り当てられた乱数とともに削除するように構成してもよい。この場合、他の構成要素にそれぞれ設定されている電子署名も削除される。
【００７８】
さらに、生成部３０４によって生成された集約電子署名から、他の構成要素に設定されている電子署名を削除するようにしてもよい。具体的には、たとえば、各構成要素に設定された電子署名の積によって集約電子署名が構成されている場合は、集約電子署名を他の構成要素に設定されている電子署名で除算する。
【００７９】
また、入力部３０１は、抽出部３０７によって抽出された任意の構成要素によって構成される電子文書の入力を受け付けるようにしてもよい。具体的には、入力部３０１は、真正性の検証対象となる抽出文書の入力を受け付ける。
【００８０】
判定部３０８は、入力部３０１によって入力された各構成要素に割り当てられた乱数が、電子文書における各構成要素の出現位置に関する順序に従っているか否かを判定する。具体的には、判定部３０８は、電子文書を構成する各構成要素に割り当てられた乱数が、当該電子文書における各構成要素の出現位置に関する順序に従って昇順または降順となっているか否かを判定する。
【００８１】
また、判定部３０８は、抽出部３０７によって抽出された任意の構成要素に対してそれぞれ設定された電子署名に基づいて、各構成要素の正当性を判定するようにしてもよい。具体的には、判定部３０８は、任意の構成要素に対してそれぞれ設定された電子署名を検証し、その検証に合格するか否かを判定する。たとえば、任意の構成要素に対してそれぞれ設定された電子署名を復号化し、この復号結果と当該任意の構成要素とが一致するか否かを判定する。
【００８２】
さらに、判定部３０８は、割当部３０３によって各構成要素に割り当てられた共通乱数が、抽出部３０７によって抽出された任意の構成要素において共通であるか否かを判定するようにしてもよい。
【００８３】
また、判定部３０８は、生成部３０４によって生成された集約電子署名に基づいて、抽出部３０７によって抽出された任意の構成要素によって構成される電子文書の正当性を判定するようにしてもよい。ここでの集約電子署名は、抽出部３０７によって抽出された構成要素以外の他の構成要素に設定されている電子署名が削除されたものである。具体的には、集約電子署名が検証に合格するか否かを判定する。
【００８４】
検証部３０９は、判定部３０８の判定結果に基づいて電子文書の真正を検証する。具体的には、たとえば、検証部３０９は、判定部３０８によって各構成要素に割り当てられた乱数が、電子文書における当該各構成要素の出現位置に関する順序に従っていると判定された場合に、電子文書が真正であると検証する。
【００８５】
また、検証部３０９は、判定部３０８によって各構成要素が正当であると判定された場合に、電子文書が真正であると検証するようにしてもよい。さらに、検証部３０９は、各構成要素に割り当てられた共通乱数が、任意の構成要素において共通であった場合に、電子文書が真正であると検証するようにしてもよい。
【００８６】
出力部３１０は、検証部３０９の検証結果を出力する。具体的には、検証部３０９によって電子文書が真正であると検証された場合、検証成功を示す検証結果を出力する。また、検証部３０９によって電子文書が真正ではないと検証された場合、検証失敗を示す検証結果を出力するようにしてもよい。
【００８７】
強制開示指定部３１１は、電子文書を構成する構成要素のうち、強制開示する部分文書の指定を受け付ける。ここで、強制開示する部分文書とは、削除することができない部分文書であり、抽出部３０７によって電子文書の中から強制的に抽出される部分文書である。
【００８８】
削除部３１２は、強制開示指定部３１１によって指定された構成要素に設定されている電子署名を削除する。すなわち、削除部３１２によって電子署名が削除されることにより、強制開示指定部３１１によって指定された構成要素は電子署名が設定されていない状態となる。この場合、判定部３０８は、電子署名が設定されていない構成要素に関する正当性の判定をおこなわない。
【００８９】
なお、入力部３０１、分割部３０２、割当部３０３、生成部３０４、設定部３０５、指定部３０６、抽出部３０７、判定部３０８、検証部３０９、出力部３１０、強制開示指定部３１１および削除部３１２は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ＨＤ２０５などの記録媒体に記録されているプログラムをＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【００９０】
（文書検証装置の各種処理の手順）
つぎに、文書検証装置において実行される各種処理の手順について説明する。まず、電子文書を真正の検証が可能な状態に加工する際の電子署名付加処理について説明する。この電子署名付加処理は、具体的には、図１に示す文書検証装置１０１のような情報の公開側の装置において実行される処理である。
【００９１】
ここでは、まず、文書検証装置において実行される電子署名生成処理によって電子署名が付加された電子文書について説明する。図４は、電子署名が付加されたオリジナル文書の一例を示す説明図である。図４に示すように、電子文書であるオリジナル文書が、部分文書（ここでは、個々の単語を部分文書とする）に分割されている。
【００９２】
そして、分割された各部分文書に、乱数を用いて予測不可能な文書ＩＤおよび部分文書ＩＤが追加されている。ここでは、文書ＩＤおよび部分文書ＩＤが追加されたオリジナル文書を「ＩＤを追加したオリジナル文書」という。
【００９３】
文書ＩＤは、オリジナル文書ごとに設定された値であり、一つのオリジナル文書を構成する部分文書すべてに追加される値である。ここでは、各部分文書に共通して追加されている「３５」が文書ＩＤである。なお、文書ＩＤは、上述した割当部３０３によって電子文書を構成する構成要素に割り当てられた共通乱数に相当する。
【００９４】
また、部分文書ＩＤは、部分文書ごとに異なる値であり、オリジナル文書を構成する部分文書の出現位置に関する順序に従って昇順となるように各部分文書に追加されている。ここでは、オリジナル文書を構成する最も左側の部分文書（「Ｔｈｉｓ」）から順に、乱数を用いた部分文書ＩＤが昇順（「０２」→「２８」→「３９」→「５６」→「８７」）となるように各部分文書に追加されている。なお、部分文書ＩＤは、上述した割当部３０３によって電子文書における出現位置に関する順序に従って各構成要素に割り当てられた乱数に相当する。
【００９５】
さらに、オリジナル文書を構成する各部分文書には、部分文書ごとに生成された電子署名が付加されている。ここでは、部分文書（単語）ごとに生成された電子署名σ1〜σ5が、それぞれ対応する部分文書に付加されている。具体的には、たとえば、部分文書「Ｔｈｉｓ」には、電子署名「σ1」が付加されている。なお、電子署名は、上述した生成部３
０４によって電子文書を構成する構成要素ごとに生成された電子署名に相当する。
【００９６】
（文書検証装置の電子署名生成処理の手順）
つぎに、文書検証装置において実行される電子署名生成処理の手順について説明する。図５は、この発明の実施の形態１にかかる文書検証装置において実行される電子署名生成処理手順を示すフローチャートである。図５のフローチャートにおいて、文書検証装置は、まず、オリジナル文書の入力を受け付けたか否かを判断する（ステップＳ５０１）。
【００９７】
オリジナル文書は、教育機関の職員によって作成される電子成績表や行政機関の職員によって作成される電子戸籍台帳など秘匿性の高い個人情報などである。このオリジナル文書は、文書検証装置において作成される構成としてもよいし、他の装置から取得されるように構成してもよい。
【００９８】
ここで、オリジナル文書が入力されるのを待って、入力を受け付けた場合（ステップＳ５０１：Ｙｅｓ）、入力されたオリジナル文書を部分文書に分割する（ステップＳ５０２）。部分文書は、オリジナル文書を構成する構成要素であり、任意に定義可能である。具体的には、たとえば、図４に示すように、オリジナル文書を構成する個々の単語を部分文書として当該オリジナル文書を分割するようにしてもよい。
【００９９】
つぎに、ステップＳ５０２において分割された各部分文書に文書ＩＤおよび部分文書ＩＤを追加する（ステップＳ５０３）。文書ＩＤは、オリジナル文書ごとに設定された値であり、乱数を用いて予測不可能に設定される。また、部分文書ＩＤは、分割された部分文書ごとに設定された値であり、乱数を用いて予測不可能に設定される。
【０１００】
文書ＩＤおよび部分文書ＩＤとして設定される乱数は、上述した擬似乱数生成器などを用いて生成される。そして、生成された乱数を用いて、オリジナル文書を構成するすべての部分文書に共通する文書ＩＤを追加するとともに、各部分文書にそれぞれ異なる部分文書ＩＤを昇順となるように追加する。
【０１０１】
また、「文書ＩＤおよび部分文書ＩＤを追加する」とは、実際に文書ＩＤおよび部分文書ＩＤをオリジナル文書に追加して記述することとしてもよいし、各部分文書と当該各部分文書に関する文書ＩＤおよび部分文書ＩＤとを関連付けることとしてもよい。
【０１０２】
ここで、各部分文書にそれぞれ異なる部分文書ＩＤを昇順（または、降順）となるように追加する追加方法の一例について説明する。たとえば、擬似乱数生成器によって生成された乱数を部分文書ＩＤとして各部分文書に追加する。この場合、各部分文書に追加された乱数が昇順（または降順）となるまで、乱数生成および各部分文書への追加を繰り返す。
【０１０３】
また、他の一例としては、あらかじめ分割された部分文書の個数分の乱数を生成し、生成した乱数を昇順または降順となるように並び替えて（ソート）から、各部分文書へ追加するようにしてもよい。この場合、入力された元データから固定長の乱数を生成することができるハッシュ関数を用いて部分文書の個数分の乱数を生成するようにしてもよい。
【０１０４】
図５のフローチャートの説明に戻り、つぎに、ステップＳ５０２において分割された部分文書ごとの電子署名を算出する（ステップＳ５０４）。電子署名の算出方式としては、上述したＲＳＡ署名、エルガマル署名およびＤＳＡ署名などがある。
【０１０５】
そして、算出された電子署名をそれぞれ対応する部分文書に付加する（ステップＳ５０５）。具体的には、部分文書ごとに算出された電子署名をそれぞれ対応する部分文書に関連付けて設定し、電子署名が付加された電子文書（オリジナル文書）を作成する。
【０１０６】
最後に、電子署名が付加されたオリジナル文書を電子文書ＤＢに保存して（ステップＳ５０６）、本フローチャートによる一連の処理を終了する。電子文書ＤＢは、ＨＤ２０５などの記録媒体に構築されたデータベースである。
【０１０７】
電子文書ＤＢには、電子署名が付加されたオリジナル文書とともに、ステップＳ５０３において追加された文書ＩＤおよび部分文書ＩＤが各部分文書に関連付けられて記憶されている。具体的には、たとえば、電子文書ＤＢには、図４に示すオリジナル文書、ＩＤが追加されたオリジナル文書および付加された電子署名が記憶されている。
【０１０８】
なお、ステップＳ５０４およびステップＳ５０５における処理は、ステップＳ５０２においてオリジナル文書を部分文書に分割した後であれば、任意のタイミングでおこなうことができる。たとえば、ステップＳ５０３において文書ＩＤおよび部分文書ＩＤを追加する前に、本フローチャートにおけるステップＳ５０４およびステップＳ５０５の処理をおこなうようにしてもよい。
【０１０９】
これにより、電子文書を当該電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても真正性を検証することができる状態にすることができる。
【０１１０】
（文書検証装置の電子文書抽出処理の手順）
つぎに、文書検証装置において実行される電子文書抽出処理の手順について説明する。文書検証装置のユーザは、上述した電子署名生成処理によって電子署名が付加された電子文書の中から、所望の情報のみを抽出することができる。なお、電子署名が付加された電子文書には、文書ＩＤおよび部分文書ＩＤが追加されている。具体的には、たとえば、国家機密などが含まれる電子公的文書の中から、公開可能な情報のみを抽出することができる。
【０１１１】
図６は、この発明の実施の形態１にかかる文書検証装置において実行される電子文書抽出処理手順を示すフローチャートである。図６のフローチャートにおいて、文書検証装置は、まず、電子署名が付加されたオリジナル文書の入力を受け付ける（ステップＳ６０１）。
【０１１２】
つぎに、オリジナル文書を構成する任意の部分文書の指定を受け付けたか否かを判断する（ステップＳ６０２）。具体的には、たとえば、ユーザは、キーボード２１０やマウス２１１を操作して、ディスプレイ２０８に表示されたオリジナル文書の中から抽出する任意の部分文書を指定する。
【０１１３】
ここで、任意の部分文書の指定を受け付けるのを待って、受け付けた場合（ステップＳ６０２：Ｙｅｓ）、指定された部分文書以外の他の部分文書および当該他の部分文書に付加されている電子署名を削除する（ステップＳ６０３）。具体的には、抽出文書として指定されていない部分文書を削除（追加されている文書ＩＤおよび部分文書ＩＤも削除される）するとともに、当該各部分文書に付加されている電子署名を削除する。
【０１１４】
最後に、指定された部分文書をオリジナル文書の中から抽出して（ステップＳ６０４）、本フローチャートによる一連の処理を終了する。
【０１１５】
これにより、電子文書における任意の部分文書を指定することにより、当該電子文書の中から任意の部分文書を抽出することができる。
【０１１６】
ここで、図４に示す電子署名が付加されたオリジナル文書の中から、ユーザによって任意に指定された部分文書が抽出されたときの電子文書について説明する。図７は、電子文書抽出処理によってオリジナル文書の中から部分文書が抽出された一例を示す説明図である。ここでは、２人のユーザによって抽出がおこなわれた場合の一例について説明する。
【０１１７】
図７に示すように、１人目のユーザが、抽出する部分文書として「ｉｓ」以外の部分文書を指定した場合、図４に示すオリジナル文書の中から「ｉｓ」以外の部分文書（抽出文書７０１）が抽出される。この場合、図４に示すＩＤを追加したオリジナル文書の中から、「ｉｓ」に関するデータが削除されるとともに、「ｉｓ」に付加された電子署名「σ2
」が削除される。
【０１１８】
つづいて、２人目のユーザが抽出する部分文書として「ａ」以外の部分文書を指定した場合、抽出文書７０１の中から「ａ」以外の部分文書が抽出される。この場合、抽出文書７０１の中から、「ａ」に関するデータが削除されるとともに、「ａ」に付加された電子署名「σ3」が削除される。
【０１１９】
なお、上述した電子文書抽出処理によって実行される改変の他に、電子文書を構成する部分文書の順序交換や転写（コピー）などの改変が各文書検証装置や電子文書編集装置においておこなわれる可能性がある。このような改変を検知するために、電子文書を構成する各部分文書に文書ＩＤおよび部分文書ＩＤが追加されている。以下、文書ＩＤおよび部分文書ＩＤの意義について説明する。
【０１２０】
（文書ＩＤの意義）
まず、図５に示すフローチャートのステップＳ５０３において追加される文書ＩＤの意義について説明する。図８は、偽造抽出文書の一例を示す説明図である。図８に示すように、不正な編集（抽出）がおこなわれていない正当な抽出文書８０１の場合、各部分文書に追加されている文書ＩＤがすべての部分文書において共通の値となっている。具体的には、文書ＩＤとして追加された「３５」が、すべての部分文書において共通となっている。
【０１２１】
これに対して、たとえば、他の電子文書から部分文書を転写するなど、不正に部分文書の抽出がおこなわれた偽造抽出文書８０２の場合、各部分文書に追加されている文書ＩＤがすべての部分文書において共通となっていない。具体的には、他の電子文書から転写された「Ｔｈａｔ」に追加されている文書ＩＤ「４８」が他の部分文書に追加されている文書ＩＤ「３５」と異なる。
【０１２２】
このように、抽出文書を構成する各部分文書に追加された文書ＩＤが共通であるか否かを判断することによって抽出文書の正当性を検知することができ、他の電子文書からの部分文書の転写を防ぐことができる。
【０１２３】
（部分文書ＩＤの意義）
つぎに、図５に示すフローチャートのステップＳ５０３において追加される部分文書ＩＤの意義について説明する。図９は、部分文書の順序交換および転写がおこなわれた場合の一例を示す説明図である。抽出文書９０１は、図４に示すオリジナル文書から正当に部分文書の抽出がおこなわれた場合の電子文書を示している。
【０１２４】
偽造抽出文書９０２は、正当に部分文書の抽出がおこなわれた抽出文書９０１を用いて作成された電子文書である。具体的には、抽出文書９０１を構成する部分文書の順序交換をおこなうことによって、不正な抽出文書である偽造抽出文書９０２が作成されている。
【０１２５】
この偽造抽出文書９０２の正当性を検知するためには、各部分文書に追加された部分文書ＩＤが昇順となっているか否かを判断する。偽造抽出文書９０２において、各部分文書に追加された部分文書ＩＤの順序は「０２」→「８７」→「５６」となっており、昇順となっていない。このため、偽造抽出文書９０２は、不当に抽出された電子文書であることを検知することができる。
【０１２６】
また、偽造抽出文書９０３は、正当に部分文書の抽出がおこなわれた抽出文書９０１を用いて作成された電子文書である。具体的には、抽出文書９０１内からの部分文書の転写（コピー）をおこなうことによって、不正な抽出文書である偽造抽出文書９０３が作成されている。
【０１２７】
この偽造抽出文書９０３の正当性を検知する場合も、各部分文書に追加された部分文書ＩＤが昇順となっているか否かを判断する。偽造抽出文書９０３において、各部分文書に追加された部分文書ＩＤの順序は「０２」→「５６」→「５６」となっており、昇順となっていない。このため、偽造抽出文書９０３は、不当に抽出された電子文書であることを検知することができる。
【０１２８】
このようにして、抽出文書を構成する各部分文書に追加された部分文書ＩＤが昇順となっているか否かを判定することにより、同一抽出文書内における部分文書の順序交換および転写を検知することができる。なお、部分文書の抽出（削除）がおこなわれた場合であっても部分文書ＩＤの昇順は維持されるため、部分文書の順序交換および転写の検知に影響を与えることはない。
【０１２９】
（文書検証装置の電子文書検証処理の手順）
つぎに、文書検証装置において実行される電子文書検証処理の手順について説明する。図１０は、この発明の実施の形態１にかかる文書検証装置において実行される電子文書検証処理の手順を示すフローチャートである。
【０１３０】
図１０に示すフローチャートにおいて、まず、抽出文書の入力を受け付けたか否かを判断する（ステップＳ１００１）。抽出文書とは、上述した電子文書抽出処理によって抽出された電子文書である。また、抽出後に何らかの改変がおこなわれた電子文書についても、ここでは抽出文書とする。
【０１３１】
ここで、抽出文書が入力されるのを待って、入力を受け付けた場合（ステップＳ１００１：Ｙｅｓ）、抽出文書を構成する各部分文書に追加されている文書ＩＤがすべて同じ値であるか否かを判断する（ステップＳ１００２）。
【０１３２】
そして、各部分文書に追加された文書ＩＤがすべて同じ値であった場合（ステップＳ１００２：Ｙｅｓ）、各部分文書に追加された部分文書ＩＤが昇順となっているか否かを判断する（ステップＳ１００３）。具体的には、各部分文書に追加された部分文書ＩＤが、抽出文書を構成する部分文書の構成順に値が大きくなっているか否かを判断する。
【０１３３】
ここで、各部分文書に追加された部分文書ＩＤが昇順となっている場合（ステップＳ１００３：Ｙｅｓ）は、各部分文書に付加されている電子署名に基づいて、抽出文書を構成するすべての部分文書が正当であるか否かを判断する（ステップＳ１００４）。具体的には、抽出文書を構成する部分文書にそれぞれ付加されている電子署名を検証し、その結果を判断することにより、各部分文書の正当性を判断する。
【０１３４】
そして、すべての部分文書が正当であった場合（ステップＳ１００４：Ｙｅｓ）、抽出文書の検証成功を示す検証結果を出力して（ステップＳ１００５）、本フローチャートによる一連の処理を終了する。
【０１３５】
また、ステップＳ１００２において、各部分文書に追加された文書ＩＤがすべて同じ値ではない場合（ステップＳ１００２：Ｎｏ）は、検証失敗を示す検証結果を出力して（ステップＳ１００６）、本フローチャートによる一連の処理を終了する。
【０１３６】
さらに、ステップＳ１００３において、各部分文書に追加された部分文書ＩＤが昇順となっていない場合（ステップＳ１００３：Ｎｏ）は、検証失敗を示す検証結果を出力して（ステップＳ１００６）、本フローチャートによる一連の処理を終了する。
【０１３７】
また、ステップＳ１００４において、すべての部分文書が正当ではなかった場合（ステップＳ１００４：Ｎｏ）は、検証失敗を示す検証結果を出力して（ステップＳ１００６）、本フローチャートによる一連の処理を終了する。
【０１３８】
これにより、電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても、抽出文書の真正性を検証することができる。
【０１３９】
以上説明したように、この発明の実施の形態１にかかる文書検証装置によれば、電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても、改変後の電子文書（抽出文書）の真正性を検証することができる。
【０１４０】
具体的には、電子文書を構成する部分文書ごとに付加された電子署名によって各部分文書の正当性を判断することができる。また、電子文書を構成する各部分文書に追加された部分文書ＩＤが昇順（または、降順）となっているか否かを判定することにより、同一電子文書内における部分文書の順序交換および転写を検知することができる。さらに、電子文書を構成する各部分文書に追加された文書ＩＤが共通であるか否かを判断することによって電子文書の正当性を検知することができる。
【０１４１】
（実施の形態２）
つぎに、上述した文書検証装置の実施の形態２について説明する。実施の形態２では、文書検証装置の電子署名生成処理において、部分文書ごとに算出された電子署名を集約した集約電子署名を算出し、この集約電子署名を用いて電子文書の検証をおこなう。
【０１４２】
（文書検証装置の電子署名生成処理の手順）
まず、文書検証装置において実行される電子署名生成処理の手順について説明する。図１１は、この発明の実施の形態２にかかる文書検証装置において実行される電子署名生成処理手順を示すフローチャートである。図１１のフローチャートにおいて、文書検証装置は、まず、オリジナル文書の入力を受け付けたか否かを判断する（ステップＳ１１０１）。
【０１４３】
ここで、オリジナル文書が入力されるのを待って、入力を受け付けた場合（ステップＳ１１０１：Ｙｅｓ）、入力されたオリジナル文書を部分文書に分割する（ステップＳ１１０２）。そして、分割された各部分文書に文書ＩＤおよび部分文書ＩＤを追加する（ステップＳ１１０３）。具体的には、予測不可能な乱数を文書ＩＤおよび部分文書ＩＤとして追加する。また、部分文書ＩＤについては、各部分文書の出現位置に従って昇順となるように乱数を追加する。
【０１４４】
つぎに、ステップＳ１１０２において分割された部分文書ごとの電子署名を算出する（ステップＳ１１０４）。そして、算出された電子署名をそれぞれ対応する部分文書に付加する（ステップＳ１１０５）。
【０１４５】
つぎに、部分文書ごとに算出された電子署名を集約した集約電子署名を算出する（ステップＳ１１０６）。具体的には、集約電子署名は、ステップＳ１１０４において算出された各部分文書の電子署名を乗算することによって算出される。たとえば、ステップＳ１１０４において算出された各部分文書の電子署名が「σ1〜σ5」であった場合、集約電子署名σは、「σ＝σ1×σ2×σ3×σ4×σ5」となる。
【０１４６】
最後に、電子署名が付加されたオリジナル文書を、ステップＳ１１０６において算出された集約電子署名とともに電子文書ＤＢに保存して（ステップＳ１１０７）、本フローチャートによる一連の処理を終了する。
【０１４７】
なお、ステップＳ１１０６における処理は、ステップＳ１１０４において各部分文書の電子署名が算出された後であればよく、ステップＳ１１０５において電子署名を付加する前におこなうようにしてもよい。
【０１４８】
これにより、電子文書を当該電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても真正性を検証することができる状態にすることができる。
【０１４９】
（文書検証装置の電子文書抽出処理の手順）
つぎに、文書検証装置において実行される電子文書抽出処理の手順について説明する。図１２は、この発明の実施の形態２にかかる文書検証装置において実行される電子文書抽出処理手順を示すフローチャートである。
【０１５０】
図１２のフローチャートにおいて、文書検証装置は、まず、電子署名が付加されたオリジナル文書および集約電子署名の入力を受け付ける（ステップＳ１２０１）。つぎに、オリジナル文書を構成する任意の部分文書の指定を受け付けたか否かを判断する（ステップＳ１２０２）。
【０１５１】
ここで、任意の部分文書の指定を受け付けるのを待って、受け付けた場合（ステップＳ１２０２：Ｙｅｓ）、指定された部分文書以外の他の部分文書および当該他の部分文書に付加されている電子署名を削除する（ステップＳ１２０３）。つぎに、ステップＳ１２０１において入力された集約電子署名に対して、指定された任意の部分文書以外の他の部分文書に付加されている電子署名を除算する（ステップＳ１２０４）。
【０１５２】
具体的には、たとえば、オリジナル文書を構成する部分文書に付加された電子署名が「σ1〜σ5」であり、指定された部分文書に付加された電子署名が「σ1、σ3、σ4、σ5」であった場合、集約電子署名σから指定された部分文書以外の他の部分文書に付加された電子署名「σ2」を除算する。この場合、集約電子署名σは、「σ＝σ1×σ3×σ4×σ5
」となる。
【０１５３】
最後に、指定された部分文書をオリジナル文書の中から抽出して（ステップＳ１２０５）、本フローチャートによる一連の処理を終了する。なお、ステップＳ１２０３およびステップＳ１２０４における処理は、同時に実行されるようにしてもよいし、逆の順番で実行されるようにしてもよい。
【０１５４】
これにより、電子文書における任意の部分文書を指定することにより、当該電子文書の中から任意の部分文書を抽出することができる。
【０１５５】
（文書検証装置の電子文書検証処理の手順）
つぎに、文書検証装置において実行される電子文書検証処理の手順について説明する。図１３は、この発明の実施の形態２にかかる文書検証装置において実行される電子文書検証処理の手順を示すフローチャートである。
【０１５６】
図１３に示すフローチャートにおいて、文書検証装置は、まず、抽出文書および集約電子署名の入力を受け付けたか否かを判断する（ステップＳ１３０１）。ここで、抽出文書および集約電子署名が入力されるのを待って、入力を受け付けた場合（ステップＳ１３０１：Ｙｅｓ）、抽出文書を構成する各部分文書に追加されている文書ＩＤがすべて同じ値であるか否かを判断する（ステップＳ１３０２）。
【０１５７】
そして、各部分文書に追加された文書ＩＤがすべて同じ値であった場合（ステップＳ１３０２：Ｙｅｓ）、各部分文書に追加された部分文書ＩＤが昇順となっているか否かを判断する（ステップＳ１３０３）。具体的には、各部分文書に追加された部分文書ＩＤが、抽出文書を構成する部分文書の構成順に値が大きくなっているか否かを判断する。
【０１５８】
ここで、各部分文書に追加された部分文書ＩＤが昇順となっている場合（ステップＳ１３０３：Ｙｅｓ）は、ステップＳ１３０１において入力された集約電子署名に基づいて、抽出文書が正当であるか否かを判断する（ステップＳ１３０４）。具体的には、集約電子署名を用いて、抽出文書の正当性を判断する。
【０１５９】
そして、抽出文書が正当であった場合（ステップＳ１３０４：Ｙｅｓ）、抽出文書の検証成功を示す検証結果を出力して（ステップＳ１３０５）、本フローチャートによる一連の処理を終了する。
【０１６０】
また、ステップＳ１３０２において、各部分文書に追加された文書ＩＤがすべて同じ値ではない場合（ステップＳ１３０２：Ｎｏ）は、検証失敗を示す検証結果を出力して（ステップＳ１３０６）、本フローチャートによる一連の処理を終了する。
【０１６１】
さらに、ステップＳ１３０３において、各部分文書に追加された部分文書ＩＤが昇順となっていない場合（ステップＳ１３０３：Ｎｏ）は、検証失敗を示す検証結果を出力して（ステップＳ１３０６）、本フローチャートによる一連の処理を終了する。
【０１６２】
また、ステップＳ１３０４において、抽出文書が正当ではなかった場合（ステップＳ１３０４：Ｎｏ）は、検証失敗を示す検証結果を出力して（ステップＳ１３０６）、本フローチャートによる一連の処理を終了する。
【０１６３】
これにより、電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても、抽出文書の真正性を検証することができる。また、抽出文書の正当性を判断する際に集約電子署名を用いることによって、電子文書検証処理の簡略化を図ることができる。
【０１６４】
以上説明したように、この発明の実施の形態２にかかる文書検証装置によれば、電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても、改変後の電子文書（抽出文書）の真正性を検証することができる。また、電子文書の正当性を判断する際に当該電子文書ごとに生成された集約電子署名を用いることによって、電子文書検証処理の簡略化を図ることができる。
【０１６５】
（実施の形態３）
つぎに、上述した文書検証装置の実施の形態３について説明する。実施の形態３では、電子文書を構成する部分文書のうち、任意の部分文書に対して強制開示の特性（プロパティ）を設定することができる。すなわち、ユーザ（抽出者）の意思にかかわらず電子文書の中の特定の情報を、強制的に開示（削除することができない）させる設定をおこなうことができる。
【０１６６】
なお、文書検証装置の電子署名生成処理の手順については、上述した実施の形態２にかかる文書検証装置の電子署名生成処理の手順と同様のため説明を省略する。
【０１６７】
（文書検証装置の電子文書抽出処理の手順）
つぎに、文書検証装置において実行される電子文書抽出処理の手順について説明する。図１４は、この発明の実施の形態３にかかる文書検証装置において実行される電子文書抽出処理手順を示すフローチャートである。
【０１６８】
図１４のフローチャートにおいて、文書検証装置は、まず、電子署名が付加されたオリジナル文書および集約電子署名の入力を受け付ける（ステップＳ１４０１）。つぎに、強制開示する部分文書の指定を受け付けたか否かを判断する（ステップＳ１４０２）。
【０１６９】
強制開示する部分文書とは、ユーザが抽出する部分文書として指定することなく強制的に抽出される部分文書であり、削除することができない部分文書を示す。ステップＳ１４０２において、強制開示する部分文書の指定を受け付けた場合（ステップＳ１４０２：Ｙｅｓ）、指定された部分文書を強制開示する部分文書に設定するとともに、強制開示する部分文書に付加されている電子署名を削除する（ステップＳ１４０３）。
【０１７０】
具体的には、たとえば、オリジナル文書を構成する部分文書「部分文書１〜部分文書５」にそれぞれ対応する電子署名「σ1〜σ5」が付加されている。このとき、強制開示する部分文書として部分文書４が指定された場合、部分文書４に付加された電子署名「σ4」
を削除する。
【０１７１】
なお、強制開示する部分文書として設定された部分文書は、この後、つぎのユーザによって電子文書抽出処理が実行される場合においても、抽出する部分文書として指定することなく強制的に抽出（強制開示）される。
【０１７２】
つぎに、抽出する部分文書の指定を受け付けたか否かを判断する（ステップＳ１４０４）。ここで、抽出する部分文書の指定を受け付けるのを待って、受け付けた場合（ステップＳ１４０４：Ｙｅｓ）、指定された部分文書以外の他の部分文書および当該他の部分文書に付加されている電子署名を削除する（ステップＳ１４０５）。なお、ステップＳ１４０２において、強制開示する部分文書の指定を受け付けなかった場合（ステップＳ１４０２：Ｎｏ）は、ステップＳ１４０４に移行する。
【０１７３】
このとき、ステップＳ１４０２において強制開示する部分文書として指定された部分文書は、ステップＳ１４０４において抽出文書として指定されなかった場合であっても削除されない。なお、強制開示する部分文書に付加されている電子署名は、ステップＳ１４０３において削除されている。
【０１７４】
つぎに、ステップＳ１４０１において入力された集約電子署名に、指定された任意の部分文書以外の他の部分文書に付加された電子署名を除算する（ステップＳ１４０６）。具体的には、たとえば、集約電子署名σが「σ＝σ1×σ2×σ3×σ4×σ5」であり、抽出
する部分文書として指定された部分文書以外の他の部分文書（削除する部分文書２）に付加されている電子署名が「σ2」であった場合、集約電子署名σは、「σ＝σ1×σ3×σ4×σ5」となる。このとき、強制開示する部分文書として設定された部分文書４に付加さ
れている電子署名σ4をσに除算しない。
【０１７５】
最後に、ステップＳ１４０４において指定された部分文書をオリジナル文書の中から抽出して（ステップＳ１４０７）、本フローチャートによる一連の処理を終了する。
【０１７６】
このように、電子文書における任意の部分文書を指定することにより、当該電子文書の中から任意の部分文書を抽出することができる。また、強制開示する部分文書の設定をおこなうことによって、以降の電子文書抽出処理において当該部分文書の削除を禁止する（強制的に抽出される）ことができる。
【０１７７】
ここで、強制開示する部分文書が設定された電子文書から部分文書を抽出する場合の概要を図１５を用いて説明する。図１５は、強制開示する部分文書が設定されたオリジナル文書および抽出文書の一例を示す説明図である。図１５に示すように、オリジナル文書を構成する部分文書１〜５にそれぞれ対応する電子署名σ1〜σ5が付加されている。また、このときの集約電子署名σは、電子署名σ1〜σ5の積で示される。
【０１７８】
このとき、強制開示する部分文書として部分文書４が設定された場合、部分文書４に付加されていた電子署名σ4が削除される。さらに、抽出する部分文書として部分文書１、
部分文書３および部分文書５が指定された場合、抽出文書および強制開示する部分文書として指定されていない部分文書２が、部分文書２に付加されている電子署名σ2とともに
削除される。
【０１７９】
そして、結果的に抽出文書としてオリジナル文書から抽出されることとなる電子文書は、部分文書１、部分文書３、部分文書４および部分文書５となる。また、このときの集約電子署名σは、削除される部分文書２に付加されていたσ2が除算した「σ＝σ1×σ3×
σ4×σ5」となる。
【０１８０】
（文書検証装置の電子文書検証処理の手順）
つぎに、文書検証装置において実行される電子文書検証処理の手順について説明する。実施の形態３にかかる文書検証装置の電子文書検証処理は、上述した実施の形態２にかかる文書検証装置の電子文書検証処理の手順とほぼ同様のため、異なる部分についてのみ説明する。
【０１８１】
ここでは、上述した実施の形態２にかかる文書検証装置の電子文書検証処理に加えて、入力された抽出文書を構成する各部分文書に付加された個別の電子署名に基づいて、抽出文書の正当性を判断する工程を含む構成とすることができる。
【０１８２】
具体的には、たとえば、図１３に示すフローチャートにおいて、ステップＳ１３０４の工程の前に、各部分文書に付加された個別の電子署名に基づいて、抽出文書を構成する各部分文書の正当性を判断する工程を追加する。そして、各部分文書ごとの電子署名により、部分文書の正当性を判断し、一つでも不当な改変がおこなわれた部分文書が存在した場合は、検証失敗を示す検証結果を出力する。
【０１８３】
なお、この工程を追加した場合であっても、強制開示する部分文書に付加されていた電子署名は削除されているため、この強制開示する部分文書に関する電子署名による正当性の判断はおこなわれない。このため、強制開示する部分文書に付加されていた電子署名が電子文書検証処理に影響を及ぼすことなく、正常な電子文書検証処理を実行することができる。
【０１８４】
これにより、電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても、抽出文書の真正性を検証することができる。
【０１８５】
以上説明したように、この発明の実施の形態３にかかる文書検証装置によれば、電子文書を構成する部分文書の順序交換や転写などの改変がおこなわれた場合であっても、改変後の電子文書（抽出文書）の真正性を検証することができる。また、強制開示する部分文書の設定をおこなうことによって、以降の電子文書抽出処理において当該部分文書の削除を禁止する（強制的に抽出される）ことができる。
【０１８６】
なお、本実施の形態で説明した文書検証方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１８７】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１８８】
（付記１）電子文書の真正を検証させる文書検証プログラムであって、
前記電子文書の入力を受け付けさせる入力工程と、
前記入力工程によって入力された電子文書を任意の構成要素に分割させる分割工程と、
前記分割工程によって分割された構成要素の前記電子文書における出現位置に関する順序に従って真正乱数または擬似乱数（以下、「乱数」という）を前記各構成要素に割り当てさせる割当工程と、
をコンピュータに実行させることを特徴とする文書検証プログラム。
【０１８９】
（付記２）前記割当工程は、前記分割工程によって分割された各構成要素に、当該各構成要素において共通する真正乱数または擬似乱数（以下、「共通乱数」という）を割り当てさせることを特徴とする付記１に記載の文書検証プログラム。
【０１９０】
（付記３）前記構成要素ごとの電子署名を生成させる生成工程と、
前記生成工程によって生成された電子署名を対応する構成要素に対して設定させる設定工程と、
を前記コンピュータに実行させることを特徴とする付記１に記載の文書検証プログラム。
【０１９１】
（付記４）前記電子文書を構成する任意の構成要素の指定を受け付けさせる指定工程と、
前記指定工程によって指定された任意の構成要素を前記電子文書の中から抽出させる抽出工程と、
を前記コンピュータに実行させることを特徴とする付記１〜３のいずれか一つに記載の文書検証プログラム。
【０１９２】
（付記５）前記抽出工程によって抽出された任意の構成要素によって構成される電子文書の入力を受け付けさせる抽出文書入力工程と、
前記抽出文書入力工程によって入力された各構成要素に割り当てられた乱数が、前記電子文書における前記各構成要素の出現位置に関する順序に従っているか否かを判定させる判定工程と、
前記判定工程の判定結果に基づいて前記電子文書の真正を検証させる検証工程と、
前記検証工程の検証結果を出力させる出力工程と、
を前記コンピュータに実行させることを特徴とする付記４に記載の文書検証プログラム。
【０１９３】
（付記６）前記判定工程は、前記任意の構成要素に対してそれぞれ設定された電子署名に基づいて、前記各構成要素の正当性を判定させることを特徴とする付記５に記載の文書検証プログラム。
【０１９４】
（付記７）前記判定工程は、前記割当工程によって各構成要素に割り当てられた共通乱数が、前記抽出工程によって抽出された任意の構成要素において共通であるか否かを判定させることを特徴とする付記５に記載の文書検証プログラム。
【０１９５】
（付記８）前記生成工程は、前記構成要素ごとの電子署名を集約した集約電子署名を生成させ、
前記判定工程は、前記生成工程によって生成された集約電子署名に基づいて、前記抽出工程によって抽出された任意の構成要素によって構成される電子文書の正当性を判定させることを特徴とする付記５に記載の文書検証プログラム。
【０１９６】
（付記９）前記生成工程は、前記構成要素ごとの電子署名を集約した集約電子署名を生成させ、
前記電子文書を構成する構成要素のうち、強制開示する部分文書の指定を受け付けさせる強制開示指定工程と、
前記強制開示指定工程によって指定された構成要素に設定されている電子署名を削除させる削除工程と、
を前記コンピュータに実行させることを特徴とする付記４に記載の文書検証プログラム。
【０１９７】
（付記１０）付記１〜９のいずれか一つに記載の文書検証プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【０１９８】
（付記１１）電子文書の真正を検証する文書検証方法であって、
前記電子文書の入力を受け付ける入力工程と、
前記入力工程によって入力された電子文書を任意の構成要素に分割する分割工程と、
前記分割工程によって分割された構成要素の前記電子文書における出現位置に関する順序に従って真正乱数または擬似乱数を前記各構成要素に割り当てる割当工程と、
を含むことを特徴とする文書検証方法。
【０１９９】
（付記１２）電子文書の真正を検証する文書検証装置であって、
前記電子文書の入力を受け付ける入力手段と、
前記入力手段によって入力された電子文書を任意の構成要素に分割する分割手段と、
前記分割手段によって分割された構成要素の前記電子文書における出現位置に関する順序に従って真正乱数または擬似乱数を前記各構成要素に割り当てる割当手段と、
を備えることを特徴とする文書検証装置。
【産業上の利用可能性】
【０２００】
以上のように、本発明にかかる文書検証プログラム、記録媒体、文書検証方法および文書検証装置は、電子文書の真正を検証する技術に有用であり、特に、電子文書を構成する部分文書の順序交換を不可能にする文書検証技術に適している。
【図面の簡単な説明】
【０２０１】
【図１】図１は、この発明の実施の形態１にかかる電子文書公開システムのシステム構成図である。
【図２】図２は、この発明の実施の形態１にかかる文書検証装置のハードウェア構成を示すブロック図である。
【図３】図３は、この発明の実施の形態１にかかる文書検証装置の機能的構成を示すブロック図である。
【図４】図４は、電子署名が付加されたオリジナル文書の一例を示す説明図である。
【図５】図５は、この発明の実施の形態１にかかる文書検証装置において実行される電子署名生成処理手順を示すフローチャートである。
【図６】図６は、この発明の実施の形態１にかかる文書検証装置において実行される電子文書抽出処理手順を示すフローチャートである。
【図７】図７は、電子文書抽出処理によってオリジナル文書の中から部分文書が抽出された一例を示す説明図である。
【図８】図８は、偽造抽出文書の一例を示す説明図である。
【図９】図９は、部分文書の順序交換および転写がおこなわれた場合の一例を示す説明図である。
【図１０】図１０は、この発明の実施の形態１にかかる文書検証装置において実行される電子文書検証処理の手順を示すフローチャートである。
【図１１】図１１は、この発明の実施の形態２にかかる文書検証装置において実行される電子署名生成処理手順を示すフローチャートである。
【図１２】図１２は、この発明の実施の形態２にかかる文書検証装置において実行される電子文書抽出処理手順を示すフローチャートである。
【図１３】図１３は、この発明の実施の形態２にかかる文書検証装置において実行される電子文書検証処理の手順を示すフローチャートである。
【図１４】図１４は、この発明の実施の形態３にかかる文書検証装置において実行される電子文書抽出処理手順を示すフローチャートである。
【図１５】図１５は、強制開示する部分文書が設定されたオリジナル文書および抽出文書の一例を示す説明図である。
【図１６】図１６は、従来技術における電子署名技術の一例を示す説明図である。
【符号の説明】
【０２０２】
１００  電子文書公開システム
１０１，１０２  文書検証装置
１０３  ネットワーク
３０１  入力部
３０２  分割部
３０３  割当部
３０４  生成部
３０５  設定部
３０６  指定部
３０７  抽出部
３０８  判定部
３０９  検証部
３１０  出力部
３１１  強制開示指定部
３１２  削除部
【国際調査報告】
2008015740.tif 000019
2008015740.tif 000020
2008015740.tif 000021