(57)【特許請求の範囲】
【請求項１】
電子文書の作成又は更新を行うための文書処理手段と、
前記文書処理手段を通じて、前記電子文書に対して行われた更新の履歴を抽出し、更新履歴情報として前記電子文書と関連付けて保存する更新履歴作成手段と、を備え、
前記更新履歴情報は、更新前の電子文書と更新後の電子文書と間の差分情報、及び、前記差分情報を対象データとして作成された電子署名を含むことを特徴とする電子文書処理装置。
【請求項２】
前記更新履歴情報は、更新作業毎に作成され、当該更新履歴情報が、当該電子文書に対して行われた何度目の更新作業に対応するかを示す世代情報を含むことを特徴とする請求項１に記載の電子文書処理装置。
【請求項３】
前記更新履歴作成手段は、前記更新履歴情報を、前記電子文書の本文データと別個の情報として前記電子文書中に含めることを特徴とする請求項１又は２に記載の電子文書処理装置。
【請求項４】
前記文書処理手段は、更新後の電子文書を本文データとして保存するとともに、前記更新後の電子文書を対象データとして作成された電子署名を前記電子文書中に含めて保存することを特徴とする請求項１乃至３のいずれか一項に記載の電子文書処理装置。
【請求項５】
電子文書を読み込んで表示するための表示手段と、
前記電子文書と、前記電子文書に関連する更新履歴情報とに基づいて、更新作業によって作成された過去の世代の電子文書を復元する文書復元手段と、を備え、
前記更新履歴情報は、更新前の電子文書と更新後の電子文書との差分情報、及び、当該差分情報を対象データとして作成された電子署名を含み、
前記文書復元手段は、前記電子署名の検証に成功した場合にのみ前記電子文書の復元を実行することを特徴とする電子文書処理装置。
【請求項６】
前記電子文書は、更新後の電子文書を対象データとして作成された電子署名を含み、
前記文書復元手段は、復元した電子文書を利用して、当該世代の電子文書に対応する電子署名を検証する検証手段をさらに備えることを特徴とする請求項５に記載の電子文書処理装置。
【請求項７】
復元すべき電子文書の世代の指定を入力するための指定手段をさらに備え、
前記文書復元手段は、前記指定手段により指定された世代の電子文書を復元することを特徴とする請求項５又は６に記載の電子文書処理装置。
【請求項８】
電子文書の作成又は更新を行うための文書処理手段と、
前記文書処理手段を通じて、前記電子文書に対して行われた更新の履歴を抽出し、更新履歴情報として前記電子文書と関連付けて保存する更新履歴作成手段と、を備える電子文書処理装置としてコンピュータを機能させ、
前記更新履歴情報は、更新前の電子文書と更新後の電子文書と間の差分情報、及び、前記差分情報を対象データとして作成された電子署名を含むことを特徴とするコンピュータプログラム。
【請求項９】
前記更新履歴情報は、更新作業毎に作成され、当該更新履歴情報が、当該電子文書に対して行われた何度目の更新作業に対応するかを示す世代情報を含むことを特徴とする請求項８に記載のコンピュータプログラム。
【請求項１０】
前記更新履歴作成手段は、前記更新履歴情報を、前記電子文書の本文データと別個の情報として前記電子文書中に含めることを特徴とする請求項８又は９に記載のコンピュータプログラム。
【請求項１１】
前記文書処理手段は、更新後の電子文書を本文データとして保存するとともに、前記更新後の電子文書を対象データとして作成された電子署名を前記電子文書中に含めて保存することを特徴とする請求項８乃至１０のいずれか一項に記載のコンピュータプログラム。
【請求項１２】
電子文書を読み込んで表示するための表示手段と、
前記電子文書と、前記電子文書に関連する更新履歴情報とに基づいて、更新作業によって作成された過去の世代の電子文書を復元する文書復元手段と、を備える電子文書処理装置としてコンピュータを機能させ、
前記更新履歴情報は、更新前の電子文書と更新後の電子文書との差分情報、及び、当該差分情報を対象データとして作成された電子署名を含み、
前記文書復元手段は、前記電子署名の検証に成功した場合にのみ前記電子文書の復元を実行することを特徴とするコンピュータプログラム。
【請求項１３】
前記電子文書は、更新後の電子文書を対象データとして作成された電子署名を含み、
前記文書復元手段は、復元した電子文書を利用して、当該世代の電子文書に対応する電子署名を検証する検証手段をさらに備えることを特徴とする請求項１２に記載のコンピュータプログラム。
【請求項１４】
復元すべき電子文書の世代の指定を入力するための指定手段をさらに備え、
前記文書復元手段は、前記指定手段により指定された世代の電子文書を復元することを特徴とする請求項１２又は１３に記載のコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子計算機による電子文書の処理に関し、特に電子文書の管理及び情報保証方法に関する。
【０００２】
【従来の技術】
近年では、多くの文書、書類が電子文書として流通している。電子文書は、通常、その内容について比較的頻繁に更新や修正など（以下、「更新」と呼ぶ。）が行われうる。例えば、１つの電子文書について、立場の異なるユーザが電子文書を回覧し、各人がそれぞれ更新を行うことがある。そのような場合、１つの電子文書に対して、不特定多数の更新作業が行われる。
【０００３】
【発明が解決しようとする課題】
しかし、何回更新が行われたとしても、一般的には最新の世代の電子文書のみが保存される。従って、その電子文書単体から、更新が行われた各世代の電子文書の状態を復元することは不可能であり、そのため電子文書の流通において、その電子文書について過去に誰がどのような更新を行ったかを正確に把握することは困難であった。
【０００４】
一方、各更新世代の電子文書の状態を把握するためには、各世代における更新後のバージョンの電子文書を全て保存、退避しておけば良いのであるが、そうすると、各文書間で変更がなされていない冗長部分を含んでしまい、データ保存に使用する記憶容量を浪費することになりかねない。また、同一の電子文書についての複数世代の文書データを整理して記憶する必要が生じ、管理が煩雑となってしまう。
【０００５】
また、電子文書に対して作成者や更新作業者などが電子署名を付して内容の保証を行う場合には、電子文書自体の内容に更新を加えてしまうと、それより前の世代の更新において付された電子署名は検証不能となってしまう。即ち、ある世代においては、更新後の文書内容に対して電子署名が付されて保存されるが、次の世代での更新によってさらに文書内容に変更が生じると、１世代前の電子署名の作成対象となった文書内容自体が存在しなくなるため、その世代において付された電子署名の検証はできなくなる。よって、複数の世代に渡って更新がなされた場合は、過去の更新世代において付された電子署名を検証することは不可能となってしまい、結局、電子署名を付す意味がなくなってしまう。これにより、過去の更新世代における文書内容の更新が、正当な修正などによりなされたものか、それとも悪意により改竄されたものなのかを電子署名の検証により調べることができなくなるというセキュリティ上重大な問題が生じ、結局電子文書の情報保証が困難となっていた。
【０００６】
本発明は、以上の点に鑑みてなされたものであり、複数回にわたり更新された電子文書の各世代における文書内容を復元すること、及び、その世代において付された電子署名を正しく検証することを可能として、信頼性の高い電子文書の情報保証を実現することを課題とする。
【０００７】
【課題を解決するための手段】
本発明の１つの観点では、電子文書処理装置において、電子文書の作成又は更新を行うための文書処理手段と、前記文書処理手段を通じて、前記電子文書に対して行われた更新の履歴を抽出し、更新履歴情報として前記電子文書と関連付けて保存する更新履歴作成手段と、を備える。前記更新履歴情報は、更新前の電子文書と更新後の電子文書と間の差分情報、及び、前記差分情報を対象データとして作成された電子署名を含む。
【０００８】
上記の電子文書処理装置によれば、利用者は電子文書を新規に作成し、又は、既に作成済みの電子文書の更新を行う。利用者が電子文書の内容を変更、修正などすることにより、電子文書を更新した場合には、その更新の履歴が抽出され、更新履歴情報として電子文書と関連付けて保存される。よって、更新履歴情報を参照することにより、過去の更新前後の電子文書を復元することが可能となる。
【００１０】
上記の電子文書処理装置の一態様では、前記更新履歴情報は、更新作業毎に作成され、当該更新履歴情報が、当該電子文書に対して行われた何度目の更新作業に対応するかを示す世代情報を含むことができる。これにより、更新履歴情報利用して目標の世代まで遡るように復元を行うことができる。
【００１１】
上記の電子文書処理装置のさらに他の一態様では、前記更新履歴作成手段は、前記更新履歴情報を、前記電子文書の本文データと別個の情報として前記電子文書中に含めてもよい。
【００１２】
上記の電子文書処理装置のさらに他の一態様では、前記文書処理手段は、更新後の電子文書を本文データとして保存するとともに、前記更新後の電子文書を対象データとして作成された電子署名を前記電子文書中に含めて保存することができる。
【００１３】
本発明の他の観点では、電子文書処理装置において、電子文書を読み込んで表示するための表示手段と、前記電子文書と、前記電子文書に関連する更新履歴情報とに基づいて、更新作業によって作成された過去の世代の電子文書を復元する文書復元手段と、を備える。
【００１４】
上記の電子文書処理装置によれば、利用者は既に作成済みであり、かつ、何回かの更新済みの電子文書を読み込む。そして、電子文書と、更新履歴情報とを利用して、過去のある世代の電子文書を復元する。また、前記更新履歴情報は、更新前の電子文書と更新後の電子文書との差分情報、及び、当該差分情報を対象データとして作成された電子署名を含み、前記文書復元手段は、前記履歴保証電子署名の検証に成功した場合にのみ前記電子文書の復元を実行する。これによれば、保存されている差分情報が正しいものである場合にのみ電子文書の復元が実行される。
【００１５】
上記の電子文書処理装置の一態様では、前記電子文書は、更新後の電子文書を対象データとして作成された電子署名を含み、前記文書復元手段は、復元した電子文書を利用して、当該世代の電子文書に対応する電子署名を検証する検証手段をさらに備える。これにより、特定の世代の電子文書の内容を復元して確認することに加え、その世代の更新処理が正当に行われたか否かを電子署名の検証により確認することができる。
【００１７】
上記の電子文書処理装置のさらに他の一態様では、復元すべき電子文書の世代の指定を入力するための指定手段をさらに備え、前記文書復元手段は、前記指定手段により指定された世代の電子文書を復元する。この態様によれば、利用者が指定した世代の電子署名を復元することができる。
【００１８】
また、本発明のさらに他の観点では、コンピュータプログラムは、電子文書の作成又は更新を行うための文書処理手段と、前記文書処理手段を通じて、前記電子文書に対して行われた更新の履歴を抽出し、更新履歴情報として前記電子文書と関連付けて保存する更新履歴作成手段と、を備える電子文書処理装置としてコンピュータを機能させる。前記更新履歴情報は、更新前の電子文書と更新後の電子文書と間の差分情報、及び、前記差分情報を対象データとして作成された電子署名を含む。
【００１９】
また、本発明のさらに他の観点では、コンピュータプログラムは、電子文書を読み込んで表示するための表示手段と、前記電子文書と、前記電子文書に関連する更新履歴情報とに基づいて、更新作業によって作成された過去の世代の電子文書を復元する文書復元手段と、を備える電子文書処理装置としてコンピュータを機能させる。また、前記更新履歴情報は、更新前の電子文書と更新後の電子文書との差分情報、及び、当該差分情報を対象データとして作成された電子署名を含み、前記文書復元手段は、前記履歴保証電子署名の検証に成功した場合にのみ前記電子文書の復元を実行する。
【００２０】
上記のコンピュータプログラムを、端末装置やサーバ装置などのコンピュータ上で実行することにより、当該コンピュータを前述の電子文書処理装置として機能させることができる。また、同様に前述の種々の態様を採用することもできる。
【００２１】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施の形態について説明する。
【００２２】
［電子文書処理装置］
本発明の電子文書処理装置は、個人利用者宅や企業などに設置されたパーソナルコンピュータやサーバ装置など、電子文書の処理を行うための端末装置において、後述するプログラムを実行することにより実現される。
【００２３】
電子文書を利用する環境としては、例えば利用者が官公庁や企業などに提出する申込書、申請書その他の各種電子文書を作成し、インターネットなどのネットワークを利用して官公庁や企業などへ提出する場合が考えられる。その際、利用者は自宅又は勤務先などに設置されたコンピュータや端末装置において必要な電子文書を作成、更新などすることができる。また、官公庁や企業側では、サーバ装置や端末装置などにおいてネットワークを通じて受領した電子文書を復元し、電子署名の検証などを行うことができる。
【００２４】
本発明の電子文書処理装置は、電子文書を最初から作成することに加え、文書更新処理と文書復元処理を行うことができる。文書更新処理は、電子文書の更新履歴を保存する処理であり、図１（ａ）にその概要を示す。利用者は、端末装置などを利用して、電子文書処理プログラム７を実行する。電子文書処理プログラム７は、基本的な機能として、電子文書を閲覧するためのブラウザ機能８と、利用者が必要事項を入力するための文書作成機能９とに加え、さらに更新履歴作成機能１０を備える。
【００２５】
更新履歴作成機能１０は、図１（ａ）に概念的に示すように、利用者が既に作成済みの電子文書２０の更新（即ち、文書内容の変更、修正など）を行った場合に、更新履歴情報２５を作成し、電子文書２０に添付したり、電子文書２０内に含めたりして保存する処理を行う。具体的には、利用者が電子文書処理プログラム７を実行して既存の電子文書２０を読み出し、必要な変更や修正などを施すと、変更後の電子文書２０を保存するとともに、加えられた変更内容などを示す更新履歴情報２５を作成する。そして、更新履歴情報２５を電子文書２０中に組み込むか、又は、電子文書２０とデータ上一体化するなどして、電子文書２０と関連付けて保存する。
【００２６】
一方、文書復元処理は、文書更新処理により作成された更新履歴情報２５を利用して、更新が行われる前の状態の電子文書を復元する処理であり、図１（ｂ）にその概要を示す。利用者は、端末装置などを利用して電子文書処理プログラム１１を実行する。電子文書処理プログラム１１は、基本的な機能として、電子文書を閲覧するためのブラウザ機能１２と、利用者が必要事項を入力するための文書作成機能１３とを備え、さらに電子文書復元機能１５を備える。
【００２７】
電子文書復元機能１５は、図１（ｂ）に示すように、更新履歴情報２５を利用して、更新が行われる前の状態の電子文書２０を復元する。具体的には、利用者が電子文書処理プログラム１１を実行して既存の電子文書２０を読み出し、その電子文書２０と、それに付属する更新履歴情報２５に基づいて更新前の状態の電子文書２０を復元する。
【００２８】
［電子文書の構造］
次に、電子文書と更新履歴情報について詳しく説明する。図２に、電子文書２０のデータ構造例を示す。電子文書２０は、本文２１と、１つ又は複数の電子署名２２と、更新履歴情報２５とを含む。本文２１は電子文書２０の内容に対応する部分である。例えば、電子文書２０が所定の報告書である場合には、その報告書における報告内容の記述が本文２１に含まれることになる。
【００２９】
電子署名２２は、電子文書２０の作成者、及び、更新作業を行った者（「更新作業者」と呼ぶ。）が、自ら行った作成内容や更新内容について責任を負うことを明示するために付す。具体的には、まず、電子文書２０の作成者が電子署名２２を付し、その後、更新がなされる度に更新作業者による電子署名２２が付加されていく。こうして、行われた更新作業の数だけ、電子署名２２が追加されていくことになる。
【００３０】
更新履歴情報２５は、電子文書２０に対して行われた更新処理毎に作成された更新記録２６を含む。即ち、電子文書２０に対して更新処理がｎ回行われた場合には、第１世代から第ｎ世代までのｎ個の更新記録２６が更新履歴情報２５に含まれることになる。
【００３１】
各世代の更新記録２６は、更新差分情報２７と、履歴保証署名２８とを含んで構成される。ここで、更新差分情報２７は、更新前の本文２１の内容と、更新後の本文２１の内容との相違を示す情報であり、実際のデータとしては更新前の本文２１のデータと更新後の本文２１のデータとの間の差分データである。
【００３２】
履歴書保証署名２８は、更新世代毎に作成され、その世代の更新処理により作成された更新差分情報２７が改竄されていないことを保証する意味を持つ署名であり、更新作業者がその更新の際に作成された更新差分情報２７に基づいて作成する電子署名である。
【００３３】
従って、図２においては電子署名２２と履歴保証署名２８の２種類の電子署名が存在するが、両者は異なるものである。電子署名２２は、本文２１に対してある更新作業者が所定の更新作業を行った場合に、更新後の本文２１の内容を保証する意味を持つものであり、具体的には更新後の本文２１を署名対象データ（電子署名を作成する対象となるデータ）として作成される。これに対し、履歴保証署名２８は、その世代の更新作業において作成された更新差分情報２７の内容について更新作業者が保証する意味を持つものであり、具体的にはその世代の更新差分情報２７を署名対象データとして作成される。
【００３４】
［電子署名］
次に、本願の理解を容易にするために、電子署名について簡単に説明しておく。電子署名とは、保護の対象となる文書その他のデータに対する改竄などを検出可能とすることにより、そのデータの内容を保証する手法である。電子署名は、署名対象データを特定して付与される。例えば公開鍵暗号方式の場合、電子署名の作成は、署名対象データのハッシュ値を計算し、得られたハッシュ値を署名者の所持する秘密鍵により暗号化することにより行われる。電子署名は、そのような暗号化により得られたデータ自体である。秘密鍵は署名者のみが所持するので、作成された電子署名はその秘密鍵に依存するデータとなっている。こうして得られた電子署名は、一般的には署名対象データとともに、検証を行う第三者へ提供される。
【００３５】
一方、署名対象データと電子署名を取得した第三者は、その署名対象データのハッシュ値を算出する。また、電子署名を署名者の公開鍵により復号してハッシュ値を求め、署名対象データから算出したハッシュ値と比較する。両者が一致すれば、取得した署名対象データには改竄などがなされていないことがわかる。逆に、第三者に渡された署名対象データに対して改竄などがなされている場合は、その署名対象データから算出したハッシュ値と、電子署名を復号して得られるハッシュ値は一致しない。こうして、電子署名の検証が行われる。
【００３６】
このように、電子署名は、その電子署名の署名対象データがなければ検証することができない。よって、本発明の文書復元処理では、過去の任意の世代における更新作業の適否などを調査する際、更新履歴情報２５中の更新差分情報２７を利用して目的の世代の電子文書を復元し、それを利用してその世代における電子署名を検証する。
【００３７】
［文書更新処理］
次に、文書更新処理の流れについて図３を参照して説明する。図３は、文書更新処理のフローチャートである。なお、文書更新処理が実行される際には、既に作成済みの電子文書２０が存在するものとする。また、文書更新処理を実行するために、利用者は端末装置などにおいて図１（ａ）に示す電子文書処理プログラムを実行する。
【００３８】
まず、電子文書２０の更新を行う利用者は、端末装置において電子文書処理プログラムを実行し、ブラウザ機能８及び文書作成機能９を利用して更新対象となる電子文書２０を読み込む（ステップＳ１）。そして、電子文書２０中の本文２１に対して、追加、削除などの必要な編集を行う（ステップＳ２）。
【００３９】
利用者による編集作業が終了すると、電子文書処理プログラム７の更新履歴作成機能１０が動作して、更新前後の本文２１の差分データを抽出し、更新差分情報２７として一時的に保存する（ステップＳ３）。
【００４０】
次に、更新履歴作成機能１０により、更新後の本文２１を署名対象データとし、更新作業者の秘密鍵を利用して電子署名２２が作成され、電子文書２０中に含められる（ステップＳ４）。さらに、ステップＳ３で作成された更新差分情報２７を署名対象データとし、その更新作業者の秘密鍵を使用して履歴保証署名２８が作成される（ステップＳ５）。
【００４１】
最後に、更新差分情報２７と履歴保証署名２８をまとめてその世代の更新記録２６を構成し、電子文書２０に含める（ステップＳ６）。こうして、１回の更新作業が完了し、それに対応する更新記録２６が更新履歴情報２５として電子文書２０に含められる。その後、更新作業が繰り返し行われると、更新作業のたびに更新差分情報２７及び履歴保証署名２８を含む更新記録２６が作成され、更新履歴情報２５の一部として電子文書２０に追加されていく。
【００４２】
［文書復元処理］
次に、図２乃至図４を参照して、文書復元処理について説明する。いま、ｎ世代前の更新作業について調査の必要が生じ、ｎ世代前の電子署名を検証するものとする。ｎ世代前の電子署名を検証するためには、ｎ世代前の電子文書の状態を復元しなければならない。従って、現在の電子文書２０ａと更新履歴情報２５を利用して、ｎ世代前まで順に遡って電子文書２０を復元していくことになる。
【００４３】
具体的には、図４に示すように、まず１世代前の更新記録２６から更新差分情報２７を取得する。更新差分情報２７は、その世代においてなされた更新前後の電子文書の差分データであるので、現在の電子文書２０ａの本文２１と更新差分情報２７とにより、１世代前の電子文書２０ｂが復元される。
【００４４】
次に、２世代前の更新記録２６から更新差分情報２７を取得し、それと１世代前の電子文書２０ｂの本文２１とにより、２世代前の電子文書２０ｃが復元される。この処理を繰り返すことにより、ｎ世代前の電子文書２０ｎが復元される。こうして、ｎ世代前の電子文書２０ｎが復元できると、それに基づいて、ｎ世代前の電子署名２２を検証することができる。
【００４５】
次に、図５を参照して文書復元処理の流れを説明する。図５は、文書復元処理のフローチャートである。文書復元処理が実行される際には、既に数回の更新済みの電子文書２０が存在するものとする。また、文書復元処理を実行するために、利用者は端末装置などにおいて図１（ｂ）に示す電子文書処理プログラム１１を実行する。
【００４６】
まず、ｎ世代前の電子文書２０を復元する利用者は、端末装置において電子文書処理プログラム１１を実行し、ブラウザ機能８及び文書作成機能９を利用して復元の対象となる電子文書２０を読み込む（ステップＳ１１）。次に、電子文書復元機能１５を実行することにより以下の処理を行う。即ち、１世代前の更新記録２６から更新保証署名２８を抽出し、検証を行う（ステップＳ１２）。この検証は、１世代前の更新差分情報２７から算出したハッシュ値と、履歴保証署名２８をその世代の更新作業者の公開鍵により復号して得られたハッシュ値とを比較することにより行われる。こうして、履歴保証署名２８の検証が完了すると、１世代前の更新差分情報を取得し（ステップＳ１３）、電子文書２０の本文２１と１世代前の更新差分情報とに基づいて１世代前の電子文書２０を復元する（ステップＳ１４）。
【００４７】
次に、そうして得られた電子文書が、目標であるｎ世代前の電子文書であるか否かが判定される（ステップＳ１５）。この例では、未だｎ世代前の電子文書は得られていないので、処理はステップＳ１２に戻り、更に１世代前の更新記録２６を利用して、ステップＳ１２〜Ｓ１４の処理を実行する。こうして、目標であるｎ世代前の電子文書が復元されるまで、ステップＳ１２〜Ｓ１４の処理が繰り返し実行される。
【００４８】
そして、ｎ世代前の電子文書２０が復元されると（ステップＳ１５；Yes）、ｎ世代前の電子署名の検証を行う（ステップＳ１６）。即ち、復元されたｎ世代前の電子文書のハッシュ値を算出するとともに、電子文書２０からｎ世代前の電子署名２２を抽出して復号することによりハッシュ値を算出し、両者を比較する。両者が一致すれば、ｎ世代前の更新処理は正当であることがわかる。
【００４９】
なお、こうして電子文書を復元して電子署名を検証する場合には、復元した世代以前の全ての電子署名を検証することが望ましい。これは、ある世代の電子署名の検証が成功したとしても、その世代以前に付与された電子署名が正しいとは言えないためである。
【００５０】
例えば、いま、５世代分の更新が行われた電子文書について、３世代前の電子署名を検証するものとすると、まず、上述の手順で目標の世代（つまり、３世代前）の電子署名を復元し、次に復元した電子文書を利用して３世代前の電子署名を検証する。この検証に成功した場合、続いて４世代前の電子署名を検証し、成功したらさらに５世代前の電子署名を検証する。こうして、３世代前から５世代前までの全ての電子署名の検証に成功することにより、３世代前の電子文書が改竄されていないことを保証できることになる。
【００５１】
また、図５の例ではステップＳ１２において履歴保証署名を検証してからステップＳ１３〜Ｓ１４の復元処理を実行しているが、ステップＳ１２における履歴保証署名の検証を省略することもできる。
【００５２】
［実施例］
次に、電子文書及び更新履歴情報の例を説明する。図６は、更新記録２６の一例である。この例では、電子文書２０はＸＭＬ文書として構成されている。よって、本文２１のみならず、電子署名や更新履歴情報２５もＸＭＬ文書により記述されている。
【００５３】
図６は、ある１世代分の更新記録２６の例である。ＸＭＬ文書では、＜  ＞で示される開始タグと、＜／  ＞で示される終了タグに挟まれた状態で文書内容が記述される。
【００５４】
図６の例では、<Generation Seq="1">と</Generation>で挟まれる部分が１つの世代の更新記録となっている。また、<Actions Id "Act_1">と</Actions>で挟まれる部分が更新差分情報２７であり、下から２行目の<dsig:....>の部分が履歴保証署名２８である。
【００５５】
更新差分情報２７は、図６中の記述例２７ａに示すように、１つの更新作業がタグ<Update>と</Update>により挟まれる１分で記述される。具体的には、欄外に示される例２７ａに示すように、文書内容の変更の対象となるノードの親ノード（ParentNode、本例では<xxx Id ="target_1"/>）を指定し、更新前の状態をタグ<before>と</before>で示し、更新後の状態をタグ<after>と</after>で示す。更新差分情報２７は、この記述により電子文書中の更新前の状態と更新後の状態を記録する。更新箇所が複数ある場合は、<Update>と</Update>で挟まれる記述がその個数だけ含まれることになる。
【００５６】
ここでノードとは、ＸＭＬ文書中のタグで囲まれた部分を指し、タグが入れ子になる場合には、ノードがツリー（tree）構造に構成される。図７に、ＸＭＬ文書におけるノードとデータの更新の関係を示す。例えば、図７の左上に示される「データの削除」の例７０では、黒丸で示されるノード７０ｂ（<aaa Id="a"/>）を削除すると、記述７０ａが更新差分情報として作成される。記述７０ａでは、削除すべきノード７０ｂの親ノード（本例では<xxx Id ="target_1"/>）を指定し、タグ<before>と</before>で更新前の状態を記述し、タグ<after>と</after>で更新後の状態を記述している。
【００５７】
一方、図７の右上に示される「データの追加」の例７１では、親ノード（本例では<xxx Id ="target_1"/>）の下に黒丸で示すノード７１ｂ（<bbb Id="b"/>）を追加している。その際の記述は記述例７１ａのようになる。また、記述例７２に示すように、ノード（<aaa Id="a"/>）を削除して、ノード（<bbb Id="b"/>）を追加すると、更新差分情報２７中の記述はデータの削除の例７０とデータの追加の例７１とを組み合わせた記述例７２ｂのようになる。
【００５８】
更新前後における電子文書の記述例を図８乃至図１０に示す。図８は、作成後、更新がされていない状態の１つの電子文書例である。なお、この電子文書は、記述内容として「いろはにほへとちりぬるを」を含んでいる。
【００５９】
これに対し、１回目の更新処理をとして、まず「ちりぬるを」の部分を削除し、次に、残った「いろはにほへと」を「いろはにほへとちりぬるを」とを置換する更新を行うと、図９に示す更新記録２６が電子文書２０に付加される。更新記録部分２６は更新差分情報２７を含み、<Update Seg="1"...>と</Update>で挟まれた記述部分において、「ちりぬるを」が削除されている。次に、<Update Seg="2"...>と</Update>で挟まれた記述部分において「いろはにほへと」が一旦削除され、その代わりに「いろはにほへとちりぬるを」が挿入されている。
【００６０】
また、更新差分情報２７に対する履歴保証署名２８が挿入されている。また、この更新の結果、本文２１は最終的に「いろはにほへとちりぬるを」に更新されている。
【００６１】
図９に示す１回目の更新後、さらに２回目の更新として、「いろはにほへとちりぬるを」を削除して「いろはにほへとちりぬるをわかよたれそつねならむ」を挿入すると、電子文書の記述は図１０に示すようになる。図１０において、電子文書２０には、１回目の更新に関する更新記録２７と、２回目の更新記録２７が含まれている。また、２回目の更新により、本文２１は最終的に「いろはにほへとちりぬるをわかよたれそつねならむ」に変更されている。
【００６２】
なお、図８乃至１０に示した例は、説明の便宜上、当初（更新前）の電子文書の本文を「いろはにほへとちりぬるを」のみの単純なものとしたので、電子文書全体においては更新履歴情報２５の占める割合が大きくなっているが、実際の電子文書では、本文の記述は本例と比べてずっと多いので、相対的に更新履歴情報の占める割合は本文に対してかなり小さくなる。よって、差分情報のみを電子文書に含めて保存することにより、データ容量を増大させることなく、過去の複数世代に渡る更新履歴を確実に復元することが可能となる。
【００６３】
【発明の効果】
以上説明したように、本発明によれば、世代を遡ることにより目標である世代の電子文書を復元し、それを利用してその世代の電子署名を検証することができる。よって、１つの電子文書について複数回の更新がなされている場合でも、そのうちの任意の世代における電子文書を復元し、かつ、その世代における電子署名を検証することができ、信頼性のある電子文書保証を実現することが可能となる。
【００６４】
また、過去の電子文書の復元を行うために文書更新処理において作成される更新履歴情報は、各世代における更新前後の差分データであるので、各世代毎に電子文書をそのまま保存しておく場合と比べて一般的にデータ容量をかなり小さくすることができる。よって、少ない記憶データで、多数の世代に渡る電子文書を復元可能に保存しておくことができる。
【図面の簡単な説明】
【図１】本発明の電子文書処理装置による文書更新処理及び文書復元処理の概要を示す図である。
【図２】電子文書のデータ構造例を示す。
【図３】文書更新処理のフローチャートである。
【図４】文書復元処理を説明する図である。
【図５】文書復元処理のフローチャートである。
【図６】更新履歴情報の記述例を示す。
【図７】更新記録の記述方法を説明する図である。
【図８】未更新の電子文書の記述例である。
【図９】１回目の更新後の電子文書の記述例である。
【図１０】２回目の更新後の電子文書の記述例である。
【符号の説明】
７、１１  電子文書処理プログラム
８、１２  ブラウザ機能
９、１３  文書作成機能
１０  更新履歴作成機能
１５  電子文書復元機能
２０  電子文書
２１  本文
２２  電子署名
２５  更新履歴情報
２６  更新記録
２７  更新差分情報
２８  履歴保証署名
【図１】
0003948964.tif 000002
【図２】
0003948964.tif 000003
【図３】
0003948964.tif 000004
【図４】
0003948964.tif 000005
【図５】
0003948964.tif 000006
【図６】
0003948964.tif 000007
【図７】
0003948964.tif 000008
【図８】
0003948964.tif 000009
【図９】
0003948964.tif 000010
【図１０】
0003948964.tif 000011