(57)【要約】【課題】  電子署名を用いることなく、電子文書の改変の有無を見出すことができるようにするとともに、改変された文字の箇所を見出すことができるようにする。【解決手段】  １バイトのうち７ビットに個々の文字を特定するための固有のビットデータを割り当てるとともに残り１ビットを冗長ビットにして１バイト又は２バイトを単位として個々の文字をビットデータで表現するようにしている文字コードを用いて、文書化対象文字列に含まれる各文字を前記文字コードのビットデータで表現することにより作成される電子文書のデータ構造であって、作成される電子文書の各文字のビットデータにおける冗長ビットには、前記文書化対象文字列のビットデータを参照して秘密情報生成アルゴリズムを用いることにより算出される秘密情報が埋め込まれるようにする。【選択図】図１
2007058315.tif 000002
【特許請求の範囲】
【請求項１】
１バイト（８ビット）のうち７ビットに個々の文字を特定するための固有のビットデータを割り当てるとともに残り１ビットを冗長ビットにして１バイト又は２バイトを単位として個々の文字をビットデータで表現するようにしている文字コードを用いて、文書化対象文字列に含まれる各文字を前記文字コードのビットデータで表現することにより作成される電子文書のデータ構造であって、
作成される電子文書の各文字のビットデータにおける冗長ビットには、前記文書化対象文字列のビットデータを参照して秘密情報生成アルゴリズムを用いることにより算出される秘密情報が埋め込まれていることを特徴とする電子文書のデータ構造。
【請求項２】
文字コードがＡＳＣＩＩコード、またはＪＩＳコードである請求項１に記載の電子文書のデータ構造。
【請求項３】
各文字の冗長ビットに埋め込まれる秘密情報は、各文字のビットデータ近傍に並ぶビットデータに基づいて算出される秘密情報であることを特徴とする請求項１に記載の電子文書のデータ構造。
【請求項４】
請求項１〜請求項３のいずれかに記載のデータ構造を有する秘密情報付きの電子文書を作成する電子文書作成装置であって、
前記文字コードを記憶する文字コード記憶部と、
文書化対象文字列について前記文字コードを参照することにより、文書化対象文字列をビットデータで表現した基本電子文書を作成する基本電子文書作成部と、
作成された基本電子文書における各文字のビットデータに対し、基本電子文書のビットデータを参照して秘密情報生成アルゴリズムを用いることにより各文字の秘密情報を算出し、算出された秘密情報を基本電子文書の各文字の冗長ビットに埋め込んで基本電子文書から秘密情報付き電子文書を作成する秘密情報埋め込み部とを備えたことを特徴とする電子文書作成装置。
【請求項５】
秘密情報生成アルゴリズムは、基本電子文書の各文字の冗長ビットに埋め込む秘密情報を算出する際に、個々の文字の秘密情報を当該文字のビットデータ近傍に並ぶビットデータを参照して算出することを特徴とする請求項４に記載の電子文書作成装置。
【請求項６】
請求項１〜請求項３のいずれかに記載のデータ構造を有する秘密情報付き電子文書について改変の有無を鑑定する電子文書改変検出装置であって、
前記文字コードを記憶する文字コード記憶部と、
鑑定対象となる電子文書の現在のビットデータを抽出するビットデータ抽出部と、
電子文書から抽出された現在のビットデータに対し秘密情報生成アルゴリズムを用いることにより現在の電子文書の各文字の冗長ビットに埋め込まれるべき秘密情報を算出する現在秘密情報算出部と、
電子文書から抽出された現在のビットデータのうちで各文字の冗長ビットに埋め込まれている埋め込み秘密情報を抽出する埋め込み秘密情報抽出部と、
電子文書の各文字についての現在埋め込まれるべき秘密情報と冗長ビットに埋め込まれている埋め込み秘密情報とを照合して改変の有無を検出する改変検出部とを備えたことを特徴とする電子文書改変検出装置。
【請求項７】
秘密情報生成アルゴリズムは、電子文書の現在の各文字の冗長ビット埋め込まれるべき秘密情報を算出する際に、個々の文字の秘密情報を当該文字のビットデータ近傍に並ぶビットデータを参照して算出することを特徴とする請求項６に記載の電子文書改変検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字情報を電子データ（ビットデータ）で表現することにより作成される電子文書のデータ構造に関し、さらに詳細には電子データに秘密情報が埋め込まれた電子文書のデータ構造に関する。
また、本発明は上述したデータ構造の電子文書を作成する電子文書作成装置および作成した電子文書について改変の有無を検出する電子文書改変検出装置に関する。
ここで電子文書とは、パーソナルコンピュータの表示画面に文字情報を表示する場合や、文字情報を紙に印字して印刷文書を作成する場合の電子データ（ビットデータ）であり、テキスト形式で作成された文書データやマイクロソフト社のパソコン用ワープロソフトで作成されたワード形式で作成された文書データは電子文書に含まれる。
【背景技術】
【０００２】
コンピュータ装置は、文書作成用アプリケーションソフト（ワープロソフト）を起動することにより、電子文書を作成することができる。電子文書は、複製・編集・配布・保管が容易であり、また、適当なフォントを用いて印刷することにより、誰もが読みやすい印刷文書を作成することができるので、広く普及しているが、その一方で、電子文書の一部が改変されたとしても、その痕跡が残らない。そのため、原本性（改変されていないこと、正真性）の証明、保証が要求される場合がある。
【０００３】
原本性を証明する手段としてはいわゆる電子署名（デジタル署名）による方法が知られており、例えば、電子文書の作成者が秘密鍵で署名の作成を行い、電子文書の鑑定者が公開鍵で署名の検証を行うことにより、電子文書に対する改変の有無を確認できるようにしている（例えば特許文献１参照）。
【特許文献１】再公表特許２００２−２３９０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、原本性を担保するために電子署名を行うとなると、電子文書以外にいわゆる公開鍵暗号方式での鍵の管理や手続きを行う必要があり、手間がかかる。
【０００５】
また、電子署名により、文書が改変されていることが検出できるとしても、電子文書中のどの文字が改変されたかまでを特定することは困難である。改変の対象が文書ではなく画像の場合には、画像を形成する各画素に透かし情報を付加しておくことにより、いずれかの画素が改変されることによってその画素の透かし情報も変化することから、画像に付加された透かし情報の変化を検出することにより、改変を発見することができる。しかしながら、改変の対象が文書の場合は、文書自体は画素単位で作成されるものではないため、画素単位での透かし情報を埋め込むことはできない。文書の場合は文字単位で改変されるので、文字を改変されたとしても改変された文字で作られる文章が、文章として意味をなす場合は、改変を検出することが困難である。
【０００６】
そこで、本発明は、電子署名を用いることなく、電子文書の改変の有無を見出すことができるようにするための電子文書のデータ構造、およびそのようなデータ構造を用いた電子文書作成装置、電子文書改変検出装置を提供することを目的とする。
また、本発明は、改変がなされた場合に、改変の有無を検出するだけではなく、改変された文字の箇所を見出すことができるようにするための電子文書のデータ構造、およびそのようなデータ構造を用いた電子文書作成装置、電子文書改変検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明は、電子文書を構成する各文字の電子データ（ビットデータ）自体に、改変の有無を検出するために用いる秘密情報を埋め込むようにしている。
すなわち、本発明にかかる電子文書のデータ構造は、１バイト（８ビット）のうち７ビットに個々の文字を特定するための固有のビットデータを割り当てるとともに残り１ビットを冗長ビットにして１バイト又は２バイトを単位として個々の文字をビットデータで表現するようにしている文字コードを用いて、文書化対象文字列に含まれる各文字を前記文字コードのビットデータで表現することにより作成される電子文書のデータ構造であって、
作成される電子文書の各文字のビットデータにおける冗長ビットには、前記文書化対象文字列のビットデータを参照して秘密情報生成アルゴリズムを用いることにより算出される秘密情報が埋め込まれるようにしている。
【０００８】
本発明によれば、電子文書のデータ構造が、各文字をビットデータで表現したときの冗長ビットに、秘密情報が埋め込まれたデータ構造を有している。この秘密情報は、文書化対象文字列のビットデータを参照して所定の秘密情報生成アルゴリズムにより算出するようにしてある。
したがって、電子文書が当初の状態から改変された場合に、改変後の文字列について再び秘密情報生成アルゴリズムにより秘密情報を算出し、冗長ビットに埋め込まれた秘密情報と照合することによって、ビットデータが変化した場合には、その文字列が改変されたものであると判定することができる。
【０００９】
上記発明において、文字コードはＡＳＣＩＩコード、又は、ＪＩＳコードであることが好ましい。
本発明に用いられる文字は、８ビットのビットデータで表現される１バイト文字、又は１６ビットのビットデータで表現される２バイト文字である。
このうち１バイト文字は、８ビット中の７ビットに個々の文字を特定するためのデジタル値（ビットデータ）が割り当てられ、残りの１ビットは文字特定に用いられず、冗長ビット（デジタル値が常に０又は常に１）となっていることを要する。２バイト文字は、第１バイト（８ビット）と第２バイト（８ビット）とからなり、第１バイト目と第２バイト目がそれぞれ８ビット中の７ビットに個々の文字を特定するためのデジタル値（ビットデータ）が割り当てられ、第１バイト、第２バイトにおけるそれぞれの残りの１ビットは文字特定に用いられず、冗長ビットとなっていることを要する。
このような条件を満たす文字コードは、具体的には、１バイト文字としてＡＳＣＩＩコードで表現される文字、１バイト文字と２バイト文字とを含むＪＩＳコード（ＪＩＳ  Ｘ  ０２０８、ＪＩＳ  Ｘ  ０２１２等）で表現される文字が該当する。
なお、同様の冗長ビットを有する文字コードであれば、他の外国語用の文字コードであってもよい。
【００１０】
また、上記発明において、各文字の冗長ビットに埋め込まれる秘密情報は、各文字のビットデータ近傍に並ぶビットデータに基づいて算出される秘密情報であることが好ましい。
これによれば、各文字の冗長ビットに埋め込まれる秘密情報が、当該文字のビットデータ近傍に並ぶビットデータに基づいて算出される。そのため、ある文字に改変（文字変更、文字追加、文字削除）がなされた場合には、当該改変された文字のビットデータを用いて秘密情報が算出されることとなる近傍の文字の冗長ビットに埋め込まれた秘密情報に影響が及ぶことになる。これら近傍の文字の冗長ビットに埋め込まれた秘密情報に連続して影響が及んでいるので、連続する冗長ビットのいずれかに変化があれば、改変があったと判定することができる。さらに、少なくとも秘密情報が変化した冗長ビットの近傍の文字に改変があったことが検出できるので、改変の有無だけでなく、改変の概略箇所についても特定することができる。
【００１１】
また、別の観点からなされた本発明の電子文書作成装置は、上記のデータ構造を有する秘密情報付きの電子文書を作成する電子文書作成装置であって、文字コードを記憶する文字コード記憶部と、文書化対象文字列について前記文字コードを参照することにより、文書化対象文字列をビットデータで表現した基本電子文書を作成する基本電子文書作成部と、
作成された基本電子文書における各文字のビットデータに対し、基本電子文書のビットデータを参照して秘密情報生成アルゴリズムを用いることにより各文字の秘密情報を算出し、算出された秘密情報を基本電子文書の各文字の冗長ビットに埋め込んで基本電子文書から秘密情報付き電子文書を作成する秘密情報埋め込み部とを備えるようにしている。
【００１２】
本発明によれば、基本電子文書作成部は、文字コードを参照することにより、秘密情報を埋め込もうとする元の文字列である文書化対象文字列から、文書化対象文字列をビットデータで表現した基本電子文書を作成する。続いて、秘密情報埋め込み部は、作成した基本電子文書のビットデータを参照して秘密情報生成アルゴリズムを用いることにより各文字の冗長ビットに埋め込む秘密情報を算出し、算出した秘密情報を基本電子文書の各文字の冗長ビットに埋め込んで基本電子文書から秘密情報付き電子文書を作成する。
これにより、基本電子文書の冗長ビットに秘密情報を埋め込んだ秘密情報付き電子文書を作成することができる。
【００１３】
上記電子文書作成装置において、秘密情報生成アルゴリズムは、基本電子文書の各文字の冗長ビットに埋め込む秘密情報を算出する際に、個々の文字の秘密情報を当該文字のビットデータ近傍に並ぶビットデータを参照して算出するようにしてもよい。
これによれば、各文字の冗長ビットに埋め込まれる秘密情報が、当該文字のビットデータ近傍に並ぶビットデータに基づいて算出される。そのため、ある文字に改変（文字変更、文字追加、文字削除）がなされた場合には、上述したように、近傍の文字の冗長ビットに埋め込まれた秘密情報に連続して影響が及んでいるので、連続する冗長ビットのいずれかに変化があれば、改変があったと判定することができ、改変の概略箇所についても特定することができる。
【００１４】
また、別の観点からなされた本発明の電子文書改変検出装置は、上記のデータ構造を有する秘密情報付き電子文書について改変の有無を鑑定する電子文書改変検出装置であって、前記文字コードを記憶する文字コード記憶部と、鑑定対象となる電子文書の現在のビットデータを抽出するビットデータ抽出部と、電子文書から抽出された現在のビットデータに対し秘密情報生成アルゴリズムを用いることにより現在の電子文書の各文字の冗長ビットに埋め込まれるべき秘密情報を算出する現在秘密情報算出部と、電子文書から抽出された現在のビットデータのうちで各文字の冗長ビットに埋め込まれている埋め込み秘密情報を抽出する埋め込み秘密情報抽出部と、電子文書の各文字についての現在埋め込まれるべき秘密情報と冗長ビットに埋め込まれている埋め込み秘密情報とを照合して改変の有無を検出する改変検出部とを備えるようにしている。
【００１５】
これによれば、ビットデータ抽出部が、鑑定対象となる電子文書の現在のビットデータを抽出し、現在秘密情報算出部が、抽出した現在のビットデータに対して、秘密情報生成アルゴリズムを用いることにより、再度、現在の電子文書の各文字の冗長ビットに埋め込まれるべき秘密情報を算出する。この埋め込まれるべき秘密情報は、改変がなければ、冗長ビットに埋め込まれている秘密情報と同じ値となる。一方、埋め込み秘密情報抽出部は、電子文書から抽出された現在の各文字の冗長ビットに既に埋め込まれている埋め込み秘密情報を抽出する。そして、現在の電子文書について埋め込まれるべき秘密情報と、冗長ビットに既に埋め込まれている埋め込み秘密情報とを照合する。これらが一致していれば、現在のビットデータが当初のビットデータと一致していると考えられるので、改変がなかったものと判定できる。これに対し、いずれかの秘密情報が不一致の場合は、現在のビットデータと当初のビットデータが異なるものであったこととなり、改変があったと判定される。
【００１６】
上記電子文書改変検出装置において、秘密情報生成アルゴリズムは、電子文書の現在の各文字の冗長ビットに埋め込まれるべき秘密情報を算出する際に、個々の文字の秘密情報を当該文字のビットデータ近傍に並ぶビットデータを参照して算出するようにしてもよい。
これによれば、各文字の冗長ビットに埋め込まれる秘密情報が、当該文字のビットデータ近傍に並ぶビットデータに基づいて算出される。そのため、ある文字に改変（文字変更、文字追加、文字削除）がなされた場合には、上述したように、近傍の文字の冗長ビットに埋め込まれた秘密情報に連続して影響が及んでいるので、連続する冗長ビットのいずれかに変化があれば、改変があったと判定することができ、改変の概略箇所についても特定することができる。
【発明の効果】
【００１７】
この発明によれば、電子文書において、電子署名を用いることなく、電子文書の改変の有無を見出すことができる。
また、改変がなされた場合に、改変の有無を検出するだけではなく、改変された文字の概略箇所を見出すことができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の一実施形態について、図面を用いて説明する。ここでは、文字コードとしてＪＩＳコードを使用するものとする。なお、本発明は、以下に説明する実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々の態様が含まれることは言うまでもない。
【００１９】
（電子文書のデータ構造）
図１は、本発明の一実施形態である電子文書のデータ構造を示す説明図であり、図２はＪＩＳコードで表現した１バイト文字と２バイト文字のデータ構造を示す図である。
図２に示すように、ＪＩＳコードでは、英数字は１バイト（８ビット）、漢字は２バイト（１６ビット）で表現される。いずれも各バイト単位の第８ビット目の１ビット分が常に０であり、英数字では７ビット、漢字では１４ビットでそれぞれの文字が識別される。
すなわち、文字を識別するために用いられていない１ビット分は、冗長ビットとなっている。
【００２０】
ＪＩＳコードで表現された電子文書のデータ構造は、図１（ａ）に示すように、各文字の１バイト（８ビット）分を縦１列に並べることで、１バイト文字は縦１列横８列、２バイト文字は縦２列横８列のビットデータで表現することができる。このようなビット行列で文字列を表現することにより、文字列は、各文字の第８ビット目、すなわち冗長ビット分を最上段にして横方向に並ぶことになる。
なお、１バイト文字のみの文字列、あるいは２バイト文字のみの文字列では、このとおりであるが、１バイト文字と２バイト文字とが混じり合う文字列では、切り換わりのための制御コードが必要になる。すなわち、１バイト文字と２バイト文字との境界には、１バイト文字から２バイト文字に切り換わること示す制御コード、あるいは２バイト文字から１バイト文字に切り換わることを示す制御コードが含まれることになる。これらの制御コードは１バイト文字と同じデータ構造を有する。しかし、この場合は、特定のビットデータを有するこれら制御コードを識別して、これを無視し、これらの制御コードを除去した文字列のデータ構造をすればよい。以下の説明では、制御コードを含まない（あるいは除去した）ビットデータであるものとする。
【００２１】
そして、最上段の冗長ビットには、本来のＪＩＳコードによる文字列であれば、０が並んでいるのであるが（図１（ａ）参照）、本発明の電子文書のデータ構造では、図１（ｂ）に示すように、各バイトの冗長ビットに、文字の書き換え、加筆、削除を検出するための秘密情報として、ハッシュ値Ｈｎ、Ｈｎ＋１、・・・（Ｈｎ、Ｈｎ＋１については後述する）が埋め込まれる。この秘密情報は、電子文書自体のビットデータを参照して算出したものであり、電子文書のいずれかのビットデータが改変されれば秘密情報の値が変化するため、この変化を検出することにより、改変の有無が判定できるデータ構造になっている。
【００２２】
（秘密情報生成アルゴリズム）
次に、冗長ビットに埋め込まれる秘密情報の演算方法（秘密情報生成アルゴリズム）について説明する。秘密情報は、電子文書のいずれかのビットデータの改変があった場合に、改変前と改変後とで秘密情報の値が変化し、その変化を検出することができるものであればよいが、ここでは、ハッシュ値を秘密情報として用いる秘密情報生成アルゴリズムの一例について説明する。
図３は、冗長ビットに埋め込まれる秘密情報の算出方法を説明する図である。
秘密情報が埋め込まれる前の電子文書（基本電子文書という）におけるｎ番目のバイトをＣｎ、秘密情報が埋め込まれた後の電子文書（秘密情報付き電子文書という）におけるｎ番目のバイトをＣｎ’とする。
【００２３】
このとき、図３において斜線引きによって示すビットデータの部分、すなわちｎ−ｍ番目からｎ−１番目までのｍバイト（Ｃｎ−ｍ’、Ｃｎ−ｍ＋１’、・・・、Ｃｎ−２’、Ｃｎ−１’）とＣｎの冗長ビット（第８ビット）を除いた７ビットとのビットデータから算出されるハッシュ値Ｈｎ（Ｃｎ−ｍ’、Ｃｎ−ｍ＋１’、・・・、Ｃｎ−２’、Ｃｎ−１’、Ｃｎ）を、図中で網掛けによって示すｎ番目のバイトＣｎの冗長ビット（第８ビット）の値として算出し、これを埋め込むことでＣｎ’を得る。
ここで求めているハッシュ値Ｈｎは、大きさが１ビットの値（０又は１）であることから、例えば１２８ビットのハッシュ値を出力するハッシュ関数「ＭＤ５」や、１６０ビットのハッシュ値を出力するハッシュ関数「ＳＨＡ−１」等のような周知のハッシュ関数の出力値を元にして、最終的に１ビットのハッシュ値Ｈｎを求めるようにしている。
具体的には、例えば、ハッシュ関数「ＳＨＡ−１」により出力される１６０ビットすべてのビット値の総和を求めて、それが偶数か奇数かで１ビットの値を定めるようにすることができる。
【００２４】
上記演算によってｎ番目のバイトＣｎ’が定まると、続いて、図４に示すようにｎ＋１番目の基本電子文書のバイトＣｎ＋１について秘密情報付き電子文書のバイトＣｎ＋１’を求める。このときは、ｎ番目のバイトＣｎ’において先ほど冗長ビットに埋め込まれた秘密情報であるハッシュ値Ｈｎ（Ｃｎ−ｍ’、Ｃｎ−ｍ＋１’、・・・、Ｃｎ−２’、Ｃｎ−１’、Ｃｎ）も含めてハッシュ関数「ＳＨＡ−１」による同様の演算が行なわれることになる。
【００２５】
なお、文頭のｍバイト（Ｃ１、Ｃ２、・・・、Ｃｍ）については、例えば、文頭にさらに１バイトのデータＣ１をｍ個付け加えて、基本電子文書の文頭部分のバイトが（Ｃ１、Ｃ１・・・、Ｃ１、Ｃ２、・・・、Ｃｎ）であるものとして、このときのｍ番目のバイトから上記演算を行うようにする。あるいは、文末のｍバイト分が文頭に付け加えられているとして同様の演算を行うようにしてもよい。
そして、すべてのバイトＣｎについて、秘密情報を埋め込んだＣｎ’を求めることにより、秘密情報付き電子文書を完成する。
【００２６】
このようにして作成された秘密情報付き電子文書に対して、改変の有無を検出する鑑定を行う場合にも秘密情報生成プログラムを用いる。鑑定対象となる電子文書（現在の電子文書という）に対し、再び上述した秘密情報生成プログラムを用いて、現在の電子文書についてｎ番目のバイトＣｎ’の冗長ビットに埋め込まれるべき秘密情報Ｈｎ”（Ｃｎ−ｍ’、Ｃｎ−ｍ＋１’、・・・、Ｃｎ−２’、Ｃｎ−１’、Ｃｎ）を算出する。
そして、現在の電子文書におけるｎ番目のバイトＣｎ’の冗長ビットに既に埋め込まれている秘密情報の値Ｈｎ（Ｃｎ−ｍ’、Ｃｎ−ｍ＋１’、・・・、Ｃｎ−２’、Ｃｎ−１’、Ｃｎ）と、再び算出した各バイトに埋め込まれるべき秘密情報Ｈｎ”（Ｃｎ−ｍ’、Ｃｎ−ｍ＋１’、・・・、Ｃｎ−２’、Ｃｎ−１’、Ｃｎ）とを比較することにより、これらの一致、不一致により改変の有無を判定することができる。
【００２７】
（改変の検出）
次に、改変検出の具体例について説明する。図５（ａ）は、図中×印で示すように、文字改変がビットデータ中のｎ番目のバイトＣｎ’においてなされた場合を説明する図である。改変の影響は、図５（ａ）に示すｎ番目のバイトＣｎ’のハッシュ値Ｈｎ”（Ｃｎ−ｍ’、Ｃｎ−ｍ＋１’、・・・、Ｃｎ−２’、Ｃｎ−１’、Ｃｎ）から、図５（ｂ）に示すｎ＋ｍ番目のバイトＣｎ＋ｍ’のハッシュ値Ｈｎ＋ｍ”（Ｃｎ’、Ｃｎ＋１’、・・・、Ｃｎ−２’、Ｃｎ＋ｍ−１’、Ｃｎ＋ｍ）までのｍ＋１個のバイトＣｎ’、・・・、Ｃｎ＋ｍ’のハッシュ値に及ぶことになる。ただし、ハッシュ値に影響が及ぶ場合であっても、必ずしもハッシュ値が変化するとは限らない。
【００２８】
すなわち、冗長ビットに埋め込まれているハッシュ値Ｈｎ（Ｃｎ−ｍ’、Ｃｎ−ｍ＋１’、・・・、Ｃｎ−２’、Ｃｎ−１’、Ｃｎ）や、改変検出のために再び算出されるハッシュ値Ｈｎ”（Ｃｎ−ｍ’、Ｃｎ−ｍ＋１’、・・・、Ｃｎ−２’、Ｃｎ−１’、Ｃｎ）は、いずれもデジタル値からなる１ビットデータである。改変の影響が及んだ部分のハッシュ値は０又は１のいずれかになり、図５（ｃ）に示すように、一致する場合（○）と不一致の場合（×）とが半々であり、ハッシュ値が衝突する確率が１／２である。したがって、ｎ番目のバイトＣｎ’における改変の有無は、バイトＣｎ’１つだけのハッシュ値の比較による判定では、１／２の確率で誤る可能性がある。しかしながら、改変の影響が及ぶ（ｍ＋１）個のバイトＣｎ’、・・・、Ｃｎ＋ｍ’のすべてについてハッシュ値を比較すれば、いずれか１つのバイトで改変が確認できればよいので、誤った判定をする確率は１／２ｍ＋１になる。
例えば、ｍを８とすれば、誤って判定する確率は１／５１２となり、ほぼ間違いなく改変を判定することができる。そして、この場合は、９バイト（（ｍ＋１）バイト）分のビットデータで表現される文字のいずれかに改変があることになるので、２バイト文字なら近傍の５字、１バイト文字なら近傍の１０文字のなかに改変があると判定できる。
【００２９】
なお、ｍ値を大きくすれば、さらに改変を発見する確率を高くすることができるが、その分、改変があった可能性がある文字の範囲が大きくなることになる。
以上の説明は、文字が変更された場合であるが、文字の変更ではなく、文字を追加した場合も同様である。
【００３０】
図６（ａ）は、図中×印で示すように、連続する複数のバイトのビットデータが改変（あるいは追加）された場合を説明する図である。これは、具体的には複数の連続する文字が改変あるいは追加された場合に相当する。
文字改変がビットデータ中のｎ番目のバイトＣｎ’からｎ＋ｋ−１番目のバイトＣｎ＋ｋ−１’までのｋ個においてなされた場合に、その影響は、図６（ａ）に示すｎ番目のバイトＣｎ’のハッシュ値Ｈｎ”（Ｃｎ−ｍ’、Ｃｎ−ｍ＋１’、・・・、Ｃｎ−２’、Ｃｎ−１’、Ｃｎ）から、図６（ｂ）に示すｎ＋ｍ＋ｋ−１番目のバイトＣｎ＋ｍ＋ｋ−１’のハッシュ値Ｈｎ＋ｍ＋ｋ−１”（Ｃｎ＋ｋ−１’、Ｃｎ＋ｋ’、・・・、Ｃｎ＋ｍ＋ｋ−２’、Ｃｎ＋ｍ＋ｋ−１）までのバイトＣｎ’、・・・、Ｃｎ＋ｍ＋ｋ−１’のハッシュ値に影響を及ぼすことになる。
すなわち図６（ｃ）に示すように、ｍ＋ｋ個のバイトＣｎ’、・・・、Ｃｎ＋ｍ＋ｋ−１’それぞれについて、ハッシュ値が１／２の確率で相違することになる。
この場合は、これらｍ＋ｋ個のバイトＣｎ’、・・・、Ｃｎ＋ｍ＋ｋ−１’のすべてについてハッシュ値の比較を行うことにより、少なくともいずれかのバイトによって改変を発見する確率は１／２ｍ＋ｋになる。そして、この場合は、（ｍ＋ｋ）バイト分のビットデータで表現される文字のいずれかに改変があると判定できる。
【００３１】
図７（ａ）は、文字のビットデータがバイト単位で削除される場合を説明する図である。これは、具体的には文字削除による改変がなされた場合に相当する。ここでは、ｎ番目のバイトＣｎ’が削除されているものとする。
この場合、改変の影響は、図７（ａ）に示すｎ番目のバイトＣｎ＋１’のハッシュ値Ｈｎ＋１”（Ｃｎ−ｍ’、Ｃｎ−ｍ＋１’、・・・、Ｃｎ−２’、Ｃｎ−１’、Ｃｎ＋１）から、図７（ｂ）に示すｎ＋ｍ番目のバイトＣｎ＋ｍ’のハッシュ値Ｈｎ＋ｍ”（Ｃｎ−１’、Ｃｎ＋１’、・・・、Ｃｎ＋ｍ−１’、Ｃｎ＋ｍ）までのｍ個のバイトＣｎ＋１’、・・・、Ｃｎ＋ｍ’のハッシュ値に及ぶことになる。
すなわち図７（ｃ）に示すように、ｍ個のバイトＣｎ＋１’、・・・、Ｃｎ＋ｍ’それぞれについて、ハッシュ値が１／２の確率で相違することになる。
この場合は、これらｍ個のバイトＣｎ＋１’、・・・、Ｃｎ＋ｍ’のすべてについてハッシュ値の比較を行うことにより、少なくともいずれかのバイトによって改変を発見する確率は１／２ｍになる。そして、この場合は、ｍバイト分のビットデータで表現される文字のいずれかの前後の文字が削除されたと判定できる。
【００３２】
（電子文書作成装置）
次に、秘密情報付き電子文書を作成するための電子文書作成装置について説明する。図８は、本発明の一実施形態である電子文書作成装置の構成を示すブロック図である。
この電子文書作成装置１０は、ＲＯＭ、ＲＡＭ、ＨＤＤ等のメモリ２０、制御部（ＣＰＵ）３０、キーボード、マウス、あるいはデータ読取装置等のデータ入力機能を有する入力装置（入力部）４０、液晶パネル等の表示装置（表示部）５０を含み、いわゆるパーソナルコンピュータのハードウェアを有している。
【００３３】
本発明の秘密情報付き電子文書作成機能を実現するための構成を、機能ブロックに分けて説明すると、本装置は、文字コード記憶部２１、秘密情報生成アルゴリズム２２、基本文書作成部３１、秘密情報埋込部３２、入力部４０、表示部５０の各ブロックにより構成される。
【００３４】
文字コード記憶部２１は、英数字や漢字、ひらがな、カタカナ等の文字を、ビットデータで表現するための対応付けを行う文字コードであるＡＳＣＩＩコードやＪＩＳコードを記憶する。
秘密情報生成アルゴリズム２２は、図３で説明したように、電子文書の文字列のビットデータから秘密情報として冗長ビットに埋め込むハッシュ値を算出する演算を実行するプログラムを記憶する。
基本文書作成部３１は、入力部４０から入力された文書化対象文字列４５を、文字コードを参照してビットデータで表現した基本電子文書を作成する。
秘密情報埋込部３２は、基本電子文書のビットデータに対して、上述した秘密情報生成アルゴリズムを実行して秘密情報を算出し、冗長ビットに埋め込む処理を行う。
入力部４０は、電子文書作成対象となる文書化対象文字列をキー入力、あるいは記憶媒体から読み取ることにより入力する。
表示部５０は、処理対象となる電子文書について文字で表示し、各種操作に必要な表示を行う。
【００３５】
次に、その装置による処理動作について、図９のフローチャートを用いて説明する。
まず、入力された文書化対象文字列について、文字コードを参照してビットデータ化する（Ｓ１０１）。これにより、ビットデータで表現された基本電子文書が作成される。
続いて、秘密情報生成アルゴリズムを実行して基本電子文書から秘密情報付き電子文書を作成する（Ｓ１０２）。このステップでは、秘密情報生成アルゴリズムを実行することによる秘密情報の算出（Ｓ１０２ａ）と、算出した秘密情報の埋め込み作業（Ｓ１０２ｂ）とを順次、交互に行う。このようにして、すべての冗長ビットに秘密情報を埋め込んでいく。
【００３６】
（電子文書改変検出装置）
次に、秘密情報付き電子文書について改変の有無を鑑定するための電子文書改変検出装置について説明する。図１０は、本発明の一実施形態である電子文書改変検出装置の構成を示すブロック図である。なお、上述した電子文書作成装置と同じものについては、同符号を付すことにより、説明の一部を省略する。
この電子文書化改変検出装置１１は、ＲＯＭ、ＲＡＭ、ＨＤＤ等のメモリ２０、制御部（ＣＰＵ）６０、キーボード、マウス、あるいはデータ読取装置等のデータ入力機能を有する入力装置（入力部）４０、液晶パネル等の表示装置（表示部）５０を含み、いわゆるパーソナルコンピュータのハードウェアを有している。
【００３７】
本発明の改変検出機能を実現するための構成を、機能ブロックに分けて説明すると、本装置１１は、文字コード記憶部２１、秘密情報生成アルゴリズム２２、ビットデータ抽出部６１、埋込秘密情報抽出部６２、現在秘密情報算出部６３、改変検出部６４、入力部４０、表示部５０の各ブロックにより構成される。
【００３８】
ビットデータ抽出部６１は、入力部４０から入力された鑑定対象文書４５に対し、文字コードを参照することにより、鑑定対象電子文書をビットデータ６５で表現する。
埋込秘密情報抽出部６２は、ビットデータ６５のうち、冗長ビットに埋め込まれている埋込秘密情報を抽出する。
現在秘密情報算出部６３は、鑑定対象電子文書のビットデータに対し、再度秘密情報生成アルゴリズムを実行して、現在のビットデータによって埋め込むべき秘密情報を算出する。
改変検出部６４は、埋込秘密情報抽出部部６２により抽出された埋込秘密情報と、現在秘密情報算出部６３により算出された現在のビットデータによって埋め込むべき秘密情報
との比較を行い、一致するか否かで改変の有無を検出する。
入力部４０は、改変対象電子文書４５をキー入力、あるいは記憶媒体から読み取ることにより入力する。
表示部５０は、処理対象となる電子文書について文字で表示し、各種操作に必要な表示を行し、さらに改変検出部６４で検出した改変部分を、文字コードを参照して改変位置を示すようにして表示する。
【００３９】
次に、この装置１１による処理動作について、図１１のフローチャートを用いて説明する。
まず、入力された鑑定対象電子文書について、文字コードを参照して鑑定対象電子文書のビットデータを抽出する（Ｓ２０１）。これにより、ビットデータで表現された鑑定対象電子文書が作成される。
続いて、図３で説明した秘密情報生成アルゴリズムを実行して、鑑定対象電子文書の現在のビットデータに対し、埋め込まれるべき秘密情報を算出する（Ｓ２０２）。
続いて、抽出した鑑定対象電子文書のビットデータの冗長ビットから、既に埋め込まれてある埋込秘密情報を抽出する（Ｓ２０３）。
続いて、現在のビットデータによって埋め込まれるべき秘密情報と、既に埋め込まれてある秘密情報との比較照合を行う（Ｓ２０４）。
これら２つの秘密情報について比較の結果、一致しているか否かによって、改変の有無を検出する（Ｓ２０５）。検出された改変情報は、表示部により表示される。
【００４０】
図１２は、改変部分を検出して表示部５０に表示したときの画面表示の例を示す図である。ここでは、原文の「情報」という文字を、改ざん文では「文字」に改変し、「動画・」という文字を削除している。そのため、改変検出結果の表示には、「文字」に相当する部分が改変された可能性があるので、「□□」により改変の有無と、概略位置とを示し、「画像・」の後の文字が削除された可能性があるので、「■」により削除の有無と、概略位置とを示している。
【産業上の利用可能性】
【００４１】
本発明は、電子文書の改変の有無、改変位置の特定を行うことができる電子文書の作成装置、改変検出装置において利用することができる。
【図面の簡単な説明】
【００４２】
【図１】本発明の一実施形態である電子文書のデータ構造を説明する図。
【図２】本発明で用いられる１バイト文字、２バイト文字のデータ構造を説明する図。
【図３】本発明で用いられる秘密情報生成アルゴリズムの一例を説明する図。
【図４】本発明で用いられる秘密情報生成アルゴリズムの一例を説明する図。
【図５】秘密情報による改変検出を説明する図（１文字改変、１文字追加の場合）。
【図６】秘密情報による改変検出を説明する図（複数文字改変、複数文字追加の場合）。
【図７】秘密情報による改変検出を説明する図（１バイト削除の場合）。
【図８】本発明の一実施形態である電子文書作成装置の構成を示すブロック構成図。
【図９】図８の電子文書作成装置による動作を説明するフローチャート。
【図１０】本発明の一実施形態である電子文書改変検出装置の構成を示すブロック構成図。
【図１１】図１０の電子文書改変検出装置による動作を説明するフローチャート。
【図１２】電子文書改変検出装置により検出例を説明する図。
【符号の説明】
【００４３】
１０：    電子文書作成装置
１１：    電子文書改変検出装置
２１：    文字コード記憶部
２２：    秘密情報生成アルゴリズム
３１：    基本電子文書作成部
３２：    秘密情報埋込部
６１：    ビットデータ抽出部
６２：    埋込秘密情報抽出部
６３：    現在秘密情報抽出部
６４：    改変検出部
【図１】
2007058315.tif 000003
【図２】
2007058315.tif 000004
【図３】
2007058315.tif 000005
【図４】
2007058315.tif 000006
【図５】
2007058315.tif 000007
【図６】
2007058315.tif 000008
【図７】
2007058315.tif 000009
【図８】
2007058315.tif 000010
【図９】
2007058315.tif 000011
【図１０】
2007058315.tif 000012
【図１１】
2007058315.tif 000013
【図１２】
2007058315.tif 000014