電子文書のデータ構造および電子文書作成装置および電子文書改変検出装置
【課題】 電子署名を用いることなく、電子文書の改変の有無を見出すことができるようにするとともに、改変された文字の箇所を見出すことができるようにする。
【解決手段】 1バイトのうち7ビットに個々の文字を特定するための固有のビットデータを割り当てるとともに残り1ビットを冗長ビットにして1バイト又は2バイトを単位として個々の文字をビットデータで表現するようにしている文字コードを用いて、文書化対象文字列に含まれる各文字を前記文字コードのビットデータで表現することにより作成される電子文書のデータ構造であって、作成される電子文書の各文字のビットデータにおける冗長ビットには、前記文書化対象文字列のビットデータを参照して秘密情報生成アルゴリズムを用いることにより算出される秘密情報が埋め込まれるようにする。
【解決手段】 1バイトのうち7ビットに個々の文字を特定するための固有のビットデータを割り当てるとともに残り1ビットを冗長ビットにして1バイト又は2バイトを単位として個々の文字をビットデータで表現するようにしている文字コードを用いて、文書化対象文字列に含まれる各文字を前記文字コードのビットデータで表現することにより作成される電子文書のデータ構造であって、作成される電子文書の各文字のビットデータにおける冗長ビットには、前記文書化対象文字列のビットデータを参照して秘密情報生成アルゴリズムを用いることにより算出される秘密情報が埋め込まれるようにする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字情報を電子データ(ビットデータ)で表現することにより作成される電子文書のデータ構造に関し、さらに詳細には電子データに秘密情報が埋め込まれた電子文書のデータ構造に関する。
また、本発明は上述したデータ構造の電子文書を作成する電子文書作成装置および作成した電子文書について改変の有無を検出する電子文書改変検出装置に関する。
ここで電子文書とは、パーソナルコンピュータの表示画面に文字情報を表示する場合や、文字情報を紙に印字して印刷文書を作成する場合の電子データ(ビットデータ)であり、テキスト形式で作成された文書データやマイクロソフト社のパソコン用ワープロソフトで作成されたワード形式で作成された文書データは電子文書に含まれる。
【背景技術】
【0002】
コンピュータ装置は、文書作成用アプリケーションソフト(ワープロソフト)を起動することにより、電子文書を作成することができる。電子文書は、複製・編集・配布・保管が容易であり、また、適当なフォントを用いて印刷することにより、誰もが読みやすい印刷文書を作成することができるので、広く普及しているが、その一方で、電子文書の一部が改変されたとしても、その痕跡が残らない。そのため、原本性(改変されていないこと、正真性)の証明、保証が要求される場合がある。
【0003】
原本性を証明する手段としてはいわゆる電子署名(デジタル署名)による方法が知られており、例えば、電子文書の作成者が秘密鍵で署名の作成を行い、電子文書の鑑定者が公開鍵で署名の検証を行うことにより、電子文書に対する改変の有無を確認できるようにしている(例えば特許文献1参照)。
【特許文献1】再公表特許2002−23903号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、原本性を担保するために電子署名を行うとなると、電子文書以外にいわゆる公開鍵暗号方式での鍵の管理や手続きを行う必要があり、手間がかかる。
【0005】
また、電子署名により、文書が改変されていることが検出できるとしても、電子文書中のどの文字が改変されたかまでを特定することは困難である。改変の対象が文書ではなく画像の場合には、画像を形成する各画素に透かし情報を付加しておくことにより、いずれかの画素が改変されることによってその画素の透かし情報も変化することから、画像に付加された透かし情報の変化を検出することにより、改変を発見することができる。しかしながら、改変の対象が文書の場合は、文書自体は画素単位で作成されるものではないため、画素単位での透かし情報を埋め込むことはできない。文書の場合は文字単位で改変されるので、文字を改変されたとしても改変された文字で作られる文章が、文章として意味をなす場合は、改変を検出することが困難である。
【0006】
そこで、本発明は、電子署名を用いることなく、電子文書の改変の有無を見出すことができるようにするための電子文書のデータ構造、およびそのようなデータ構造を用いた電子文書作成装置、電子文書改変検出装置を提供することを目的とする。
また、本発明は、改変がなされた場合に、改変の有無を検出するだけではなく、改変された文字の箇所を見出すことができるようにするための電子文書のデータ構造、およびそのようなデータ構造を用いた電子文書作成装置、電子文書改変検出装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために本発明は、電子文書を構成する各文字の電子データ(ビットデータ)自体に、改変の有無を検出するために用いる秘密情報を埋め込むようにしている。
すなわち、本発明にかかる電子文書のデータ構造は、1バイト(8ビット)のうち7ビットに個々の文字を特定するための固有のビットデータを割り当てるとともに残り1ビットを冗長ビットにして1バイト又は2バイトを単位として個々の文字をビットデータで表現するようにしている文字コードを用いて、文書化対象文字列に含まれる各文字を前記文字コードのビットデータで表現することにより作成される電子文書のデータ構造であって、
作成される電子文書の各文字のビットデータにおける冗長ビットには、前記文書化対象文字列のビットデータを参照して秘密情報生成アルゴリズムを用いることにより算出される秘密情報が埋め込まれるようにしている。
【0008】
本発明によれば、電子文書のデータ構造が、各文字をビットデータで表現したときの冗長ビットに、秘密情報が埋め込まれたデータ構造を有している。この秘密情報は、文書化対象文字列のビットデータを参照して所定の秘密情報生成アルゴリズムにより算出するようにしてある。
したがって、電子文書が当初の状態から改変された場合に、改変後の文字列について再び秘密情報生成アルゴリズムにより秘密情報を算出し、冗長ビットに埋め込まれた秘密情報と照合することによって、ビットデータが変化した場合には、その文字列が改変されたものであると判定することができる。
【0009】
上記発明において、文字コードはASCIIコード、又は、JISコードであることが好ましい。
本発明に用いられる文字は、8ビットのビットデータで表現される1バイト文字、又は16ビットのビットデータで表現される2バイト文字である。
このうち1バイト文字は、8ビット中の7ビットに個々の文字を特定するためのデジタル値(ビットデータ)が割り当てられ、残りの1ビットは文字特定に用いられず、冗長ビット(デジタル値が常に0又は常に1)となっていることを要する。2バイト文字は、第1バイト(8ビット)と第2バイト(8ビット)とからなり、第1バイト目と第2バイト目がそれぞれ8ビット中の7ビットに個々の文字を特定するためのデジタル値(ビットデータ)が割り当てられ、第1バイト、第2バイトにおけるそれぞれの残りの1ビットは文字特定に用いられず、冗長ビットとなっていることを要する。
このような条件を満たす文字コードは、具体的には、1バイト文字としてASCIIコードで表現される文字、1バイト文字と2バイト文字とを含むJISコード(JIS X 0208、JIS X 0212等)で表現される文字が該当する。
なお、同様の冗長ビットを有する文字コードであれば、他の外国語用の文字コードであってもよい。
【0010】
また、上記発明において、各文字の冗長ビットに埋め込まれる秘密情報は、各文字のビットデータ近傍に並ぶビットデータに基づいて算出される秘密情報であることが好ましい。
これによれば、各文字の冗長ビットに埋め込まれる秘密情報が、当該文字のビットデータ近傍に並ぶビットデータに基づいて算出される。そのため、ある文字に改変(文字変更、文字追加、文字削除)がなされた場合には、当該改変された文字のビットデータを用いて秘密情報が算出されることとなる近傍の文字の冗長ビットに埋め込まれた秘密情報に影響が及ぶことになる。これら近傍の文字の冗長ビットに埋め込まれた秘密情報に連続して影響が及んでいるので、連続する冗長ビットのいずれかに変化があれば、改変があったと判定することができる。さらに、少なくとも秘密情報が変化した冗長ビットの近傍の文字に改変があったことが検出できるので、改変の有無だけでなく、改変の概略箇所についても特定することができる。
【0011】
また、別の観点からなされた本発明の電子文書作成装置は、上記のデータ構造を有する秘密情報付きの電子文書を作成する電子文書作成装置であって、文字コードを記憶する文字コード記憶部と、文書化対象文字列について前記文字コードを参照することにより、文書化対象文字列をビットデータで表現した基本電子文書を作成する基本電子文書作成部と、
作成された基本電子文書における各文字のビットデータに対し、基本電子文書のビットデータを参照して秘密情報生成アルゴリズムを用いることにより各文字の秘密情報を算出し、算出された秘密情報を基本電子文書の各文字の冗長ビットに埋め込んで基本電子文書から秘密情報付き電子文書を作成する秘密情報埋め込み部とを備えるようにしている。
【0012】
本発明によれば、基本電子文書作成部は、文字コードを参照することにより、秘密情報を埋め込もうとする元の文字列である文書化対象文字列から、文書化対象文字列をビットデータで表現した基本電子文書を作成する。続いて、秘密情報埋め込み部は、作成した基本電子文書のビットデータを参照して秘密情報生成アルゴリズムを用いることにより各文字の冗長ビットに埋め込む秘密情報を算出し、算出した秘密情報を基本電子文書の各文字の冗長ビットに埋め込んで基本電子文書から秘密情報付き電子文書を作成する。
これにより、基本電子文書の冗長ビットに秘密情報を埋め込んだ秘密情報付き電子文書を作成することができる。
【0013】
上記電子文書作成装置において、秘密情報生成アルゴリズムは、基本電子文書の各文字の冗長ビットに埋め込む秘密情報を算出する際に、個々の文字の秘密情報を当該文字のビットデータ近傍に並ぶビットデータを参照して算出するようにしてもよい。
これによれば、各文字の冗長ビットに埋め込まれる秘密情報が、当該文字のビットデータ近傍に並ぶビットデータに基づいて算出される。そのため、ある文字に改変(文字変更、文字追加、文字削除)がなされた場合には、上述したように、近傍の文字の冗長ビットに埋め込まれた秘密情報に連続して影響が及んでいるので、連続する冗長ビットのいずれかに変化があれば、改変があったと判定することができ、改変の概略箇所についても特定することができる。
【0014】
また、別の観点からなされた本発明の電子文書改変検出装置は、上記のデータ構造を有する秘密情報付き電子文書について改変の有無を鑑定する電子文書改変検出装置であって、前記文字コードを記憶する文字コード記憶部と、鑑定対象となる電子文書の現在のビットデータを抽出するビットデータ抽出部と、電子文書から抽出された現在のビットデータに対し秘密情報生成アルゴリズムを用いることにより現在の電子文書の各文字の冗長ビットに埋め込まれるべき秘密情報を算出する現在秘密情報算出部と、電子文書から抽出された現在のビットデータのうちで各文字の冗長ビットに埋め込まれている埋め込み秘密情報を抽出する埋め込み秘密情報抽出部と、電子文書の各文字についての現在埋め込まれるべき秘密情報と冗長ビットに埋め込まれている埋め込み秘密情報とを照合して改変の有無を検出する改変検出部とを備えるようにしている。
【0015】
これによれば、ビットデータ抽出部が、鑑定対象となる電子文書の現在のビットデータを抽出し、現在秘密情報算出部が、抽出した現在のビットデータに対して、秘密情報生成アルゴリズムを用いることにより、再度、現在の電子文書の各文字の冗長ビットに埋め込まれるべき秘密情報を算出する。この埋め込まれるべき秘密情報は、改変がなければ、冗長ビットに埋め込まれている秘密情報と同じ値となる。一方、埋め込み秘密情報抽出部は、電子文書から抽出された現在の各文字の冗長ビットに既に埋め込まれている埋め込み秘密情報を抽出する。そして、現在の電子文書について埋め込まれるべき秘密情報と、冗長ビットに既に埋め込まれている埋め込み秘密情報とを照合する。これらが一致していれば、現在のビットデータが当初のビットデータと一致していると考えられるので、改変がなかったものと判定できる。これに対し、いずれかの秘密情報が不一致の場合は、現在のビットデータと当初のビットデータが異なるものであったこととなり、改変があったと判定される。
【0016】
上記電子文書改変検出装置において、秘密情報生成アルゴリズムは、電子文書の現在の各文字の冗長ビットに埋め込まれるべき秘密情報を算出する際に、個々の文字の秘密情報を当該文字のビットデータ近傍に並ぶビットデータを参照して算出するようにしてもよい。
これによれば、各文字の冗長ビットに埋め込まれる秘密情報が、当該文字のビットデータ近傍に並ぶビットデータに基づいて算出される。そのため、ある文字に改変(文字変更、文字追加、文字削除)がなされた場合には、上述したように、近傍の文字の冗長ビットに埋め込まれた秘密情報に連続して影響が及んでいるので、連続する冗長ビットのいずれかに変化があれば、改変があったと判定することができ、改変の概略箇所についても特定することができる。
【発明の効果】
【0017】
この発明によれば、電子文書において、電子署名を用いることなく、電子文書の改変の有無を見出すことができる。
また、改変がなされた場合に、改変の有無を検出するだけではなく、改変された文字の概略箇所を見出すことができる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の一実施形態について、図面を用いて説明する。ここでは、文字コードとしてJISコードを使用するものとする。なお、本発明は、以下に説明する実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々の態様が含まれることは言うまでもない。
【0019】
(電子文書のデータ構造)
図1は、本発明の一実施形態である電子文書のデータ構造を示す説明図であり、図2はJISコードで表現した1バイト文字と2バイト文字のデータ構造を示す図である。
図2に示すように、JISコードでは、英数字は1バイト(8ビット)、漢字は2バイト(16ビット)で表現される。いずれも各バイト単位の第8ビット目の1ビット分が常に0であり、英数字では7ビット、漢字では14ビットでそれぞれの文字が識別される。
すなわち、文字を識別するために用いられていない1ビット分は、冗長ビットとなっている。
【0020】
JISコードで表現された電子文書のデータ構造は、図1(a)に示すように、各文字の1バイト(8ビット)分を縦1列に並べることで、1バイト文字は縦1列横8列、2バイト文字は縦2列横8列のビットデータで表現することができる。このようなビット行列で文字列を表現することにより、文字列は、各文字の第8ビット目、すなわち冗長ビット分を最上段にして横方向に並ぶことになる。
なお、1バイト文字のみの文字列、あるいは2バイト文字のみの文字列では、このとおりであるが、1バイト文字と2バイト文字とが混じり合う文字列では、切り換わりのための制御コードが必要になる。すなわち、1バイト文字と2バイト文字との境界には、1バイト文字から2バイト文字に切り換わること示す制御コード、あるいは2バイト文字から1バイト文字に切り換わることを示す制御コードが含まれることになる。これらの制御コードは1バイト文字と同じデータ構造を有する。しかし、この場合は、特定のビットデータを有するこれら制御コードを識別して、これを無視し、これらの制御コードを除去した文字列のデータ構造をすればよい。以下の説明では、制御コードを含まない(あるいは除去した)ビットデータであるものとする。
【0021】
そして、最上段の冗長ビットには、本来のJISコードによる文字列であれば、0が並んでいるのであるが(図1(a)参照)、本発明の電子文書のデータ構造では、図1(b)に示すように、各バイトの冗長ビットに、文字の書き換え、加筆、削除を検出するための秘密情報として、ハッシュ値Hn、Hn+1、・・・(Hn、Hn+1については後述する)が埋め込まれる。この秘密情報は、電子文書自体のビットデータを参照して算出したものであり、電子文書のいずれかのビットデータが改変されれば秘密情報の値が変化するため、この変化を検出することにより、改変の有無が判定できるデータ構造になっている。
【0022】
(秘密情報生成アルゴリズム)
次に、冗長ビットに埋め込まれる秘密情報の演算方法(秘密情報生成アルゴリズム)について説明する。秘密情報は、電子文書のいずれかのビットデータの改変があった場合に、改変前と改変後とで秘密情報の値が変化し、その変化を検出することができるものであればよいが、ここでは、ハッシュ値を秘密情報として用いる秘密情報生成アルゴリズムの一例について説明する。
図3は、冗長ビットに埋め込まれる秘密情報の算出方法を説明する図である。
秘密情報が埋め込まれる前の電子文書(基本電子文書という)におけるn番目のバイトをCn、秘密情報が埋め込まれた後の電子文書(秘密情報付き電子文書という)におけるn番目のバイトをCn’とする。
【0023】
このとき、図3において斜線引きによって示すビットデータの部分、すなわちn−m番目からn−1番目までのmバイト(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’)とCnの冗長ビット(第8ビット)を除いた7ビットとのビットデータから算出されるハッシュ値Hn(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)を、図中で網掛けによって示すn番目のバイトCnの冗長ビット(第8ビット)の値として算出し、これを埋め込むことでCn’を得る。
ここで求めているハッシュ値Hnは、大きさが1ビットの値(0又は1)であることから、例えば128ビットのハッシュ値を出力するハッシュ関数「MD5」や、160ビットのハッシュ値を出力するハッシュ関数「SHA−1」等のような周知のハッシュ関数の出力値を元にして、最終的に1ビットのハッシュ値Hnを求めるようにしている。
具体的には、例えば、ハッシュ関数「SHA−1」により出力される160ビットすべてのビット値の総和を求めて、それが偶数か奇数かで1ビットの値を定めるようにすることができる。
【0024】
上記演算によってn番目のバイトCn’が定まると、続いて、図4に示すようにn+1番目の基本電子文書のバイトCn+1について秘密情報付き電子文書のバイトCn+1’を求める。このときは、n番目のバイトCn’において先ほど冗長ビットに埋め込まれた秘密情報であるハッシュ値Hn(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)も含めてハッシュ関数「SHA−1」による同様の演算が行なわれることになる。
【0025】
なお、文頭のmバイト(C1、C2、・・・、Cm)については、例えば、文頭にさらに1バイトのデータC1をm個付け加えて、基本電子文書の文頭部分のバイトが(C1、C1・・・、C1、C2、・・・、Cn)であるものとして、このときのm番目のバイトから上記演算を行うようにする。あるいは、文末のmバイト分が文頭に付け加えられているとして同様の演算を行うようにしてもよい。
そして、すべてのバイトCnについて、秘密情報を埋め込んだCn’を求めることにより、秘密情報付き電子文書を完成する。
【0026】
このようにして作成された秘密情報付き電子文書に対して、改変の有無を検出する鑑定を行う場合にも秘密情報生成プログラムを用いる。鑑定対象となる電子文書(現在の電子文書という)に対し、再び上述した秘密情報生成プログラムを用いて、現在の電子文書についてn番目のバイトCn’の冗長ビットに埋め込まれるべき秘密情報Hn”(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)を算出する。
そして、現在の電子文書におけるn番目のバイトCn’の冗長ビットに既に埋め込まれている秘密情報の値Hn(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)と、再び算出した各バイトに埋め込まれるべき秘密情報Hn”(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)とを比較することにより、これらの一致、不一致により改変の有無を判定することができる。
【0027】
(改変の検出)
次に、改変検出の具体例について説明する。図5(a)は、図中×印で示すように、文字改変がビットデータ中のn番目のバイトCn’においてなされた場合を説明する図である。改変の影響は、図5(a)に示すn番目のバイトCn’のハッシュ値Hn”(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)から、図5(b)に示すn+m番目のバイトCn+m’のハッシュ値Hn+m”(Cn’、Cn+1’、・・・、Cn−2’、Cn+m−1’、Cn+m)までのm+1個のバイトCn’、・・・、Cn+m’のハッシュ値に及ぶことになる。ただし、ハッシュ値に影響が及ぶ場合であっても、必ずしもハッシュ値が変化するとは限らない。
【0028】
すなわち、冗長ビットに埋め込まれているハッシュ値Hn(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)や、改変検出のために再び算出されるハッシュ値Hn”(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)は、いずれもデジタル値からなる1ビットデータである。改変の影響が及んだ部分のハッシュ値は0又は1のいずれかになり、図5(c)に示すように、一致する場合(○)と不一致の場合(×)とが半々であり、ハッシュ値が衝突する確率が1/2である。したがって、n番目のバイトCn’における改変の有無は、バイトCn’1つだけのハッシュ値の比較による判定では、1/2の確率で誤る可能性がある。しかしながら、改変の影響が及ぶ(m+1)個のバイトCn’、・・・、Cn+m’のすべてについてハッシュ値を比較すれば、いずれか1つのバイトで改変が確認できればよいので、誤った判定をする確率は1/2m+1になる。
例えば、mを8とすれば、誤って判定する確率は1/512となり、ほぼ間違いなく改変を判定することができる。そして、この場合は、9バイト((m+1)バイト)分のビットデータで表現される文字のいずれかに改変があることになるので、2バイト文字なら近傍の5字、1バイト文字なら近傍の10文字のなかに改変があると判定できる。
【0029】
なお、m値を大きくすれば、さらに改変を発見する確率を高くすることができるが、その分、改変があった可能性がある文字の範囲が大きくなることになる。
以上の説明は、文字が変更された場合であるが、文字の変更ではなく、文字を追加した場合も同様である。
【0030】
図6(a)は、図中×印で示すように、連続する複数のバイトのビットデータが改変(あるいは追加)された場合を説明する図である。これは、具体的には複数の連続する文字が改変あるいは追加された場合に相当する。
文字改変がビットデータ中のn番目のバイトCn’からn+k−1番目のバイトCn+k−1’までのk個においてなされた場合に、その影響は、図6(a)に示すn番目のバイトCn’のハッシュ値Hn”(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)から、図6(b)に示すn+m+k−1番目のバイトCn+m+k−1’のハッシュ値Hn+m+k−1”(Cn+k−1’、Cn+k’、・・・、Cn+m+k−2’、Cn+m+k−1)までのバイトCn’、・・・、Cn+m+k−1’のハッシュ値に影響を及ぼすことになる。
すなわち図6(c)に示すように、m+k個のバイトCn’、・・・、Cn+m+k−1’それぞれについて、ハッシュ値が1/2の確率で相違することになる。
この場合は、これらm+k個のバイトCn’、・・・、Cn+m+k−1’のすべてについてハッシュ値の比較を行うことにより、少なくともいずれかのバイトによって改変を発見する確率は1/2m+kになる。そして、この場合は、(m+k)バイト分のビットデータで表現される文字のいずれかに改変があると判定できる。
【0031】
図7(a)は、文字のビットデータがバイト単位で削除される場合を説明する図である。これは、具体的には文字削除による改変がなされた場合に相当する。ここでは、n番目のバイトCn’が削除されているものとする。
この場合、改変の影響は、図7(a)に示すn番目のバイトCn+1’のハッシュ値Hn+1”(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn+1)から、図7(b)に示すn+m番目のバイトCn+m’のハッシュ値Hn+m”(Cn−1’、Cn+1’、・・・、Cn+m−1’、Cn+m)までのm個のバイトCn+1’、・・・、Cn+m’のハッシュ値に及ぶことになる。
すなわち図7(c)に示すように、m個のバイトCn+1’、・・・、Cn+m’それぞれについて、ハッシュ値が1/2の確率で相違することになる。
この場合は、これらm個のバイトCn+1’、・・・、Cn+m’のすべてについてハッシュ値の比較を行うことにより、少なくともいずれかのバイトによって改変を発見する確率は1/2mになる。そして、この場合は、mバイト分のビットデータで表現される文字のいずれかの前後の文字が削除されたと判定できる。
【0032】
(電子文書作成装置)
次に、秘密情報付き電子文書を作成するための電子文書作成装置について説明する。図8は、本発明の一実施形態である電子文書作成装置の構成を示すブロック図である。
この電子文書作成装置10は、ROM、RAM、HDD等のメモリ20、制御部(CPU)30、キーボード、マウス、あるいはデータ読取装置等のデータ入力機能を有する入力装置(入力部)40、液晶パネル等の表示装置(表示部)50を含み、いわゆるパーソナルコンピュータのハードウェアを有している。
【0033】
本発明の秘密情報付き電子文書作成機能を実現するための構成を、機能ブロックに分けて説明すると、本装置は、文字コード記憶部21、秘密情報生成アルゴリズム22、基本文書作成部31、秘密情報埋込部32、入力部40、表示部50の各ブロックにより構成される。
【0034】
文字コード記憶部21は、英数字や漢字、ひらがな、カタカナ等の文字を、ビットデータで表現するための対応付けを行う文字コードであるASCIIコードやJISコードを記憶する。
秘密情報生成アルゴリズム22は、図3で説明したように、電子文書の文字列のビットデータから秘密情報として冗長ビットに埋め込むハッシュ値を算出する演算を実行するプログラムを記憶する。
基本文書作成部31は、入力部40から入力された文書化対象文字列45を、文字コードを参照してビットデータで表現した基本電子文書を作成する。
秘密情報埋込部32は、基本電子文書のビットデータに対して、上述した秘密情報生成アルゴリズムを実行して秘密情報を算出し、冗長ビットに埋め込む処理を行う。
入力部40は、電子文書作成対象となる文書化対象文字列をキー入力、あるいは記憶媒体から読み取ることにより入力する。
表示部50は、処理対象となる電子文書について文字で表示し、各種操作に必要な表示を行う。
【0035】
次に、その装置による処理動作について、図9のフローチャートを用いて説明する。
まず、入力された文書化対象文字列について、文字コードを参照してビットデータ化する(S101)。これにより、ビットデータで表現された基本電子文書が作成される。
続いて、秘密情報生成アルゴリズムを実行して基本電子文書から秘密情報付き電子文書を作成する(S102)。このステップでは、秘密情報生成アルゴリズムを実行することによる秘密情報の算出(S102a)と、算出した秘密情報の埋め込み作業(S102b)とを順次、交互に行う。このようにして、すべての冗長ビットに秘密情報を埋め込んでいく。
【0036】
(電子文書改変検出装置)
次に、秘密情報付き電子文書について改変の有無を鑑定するための電子文書改変検出装置について説明する。図10は、本発明の一実施形態である電子文書改変検出装置の構成を示すブロック図である。なお、上述した電子文書作成装置と同じものについては、同符号を付すことにより、説明の一部を省略する。
この電子文書化改変検出装置11は、ROM、RAM、HDD等のメモリ20、制御部(CPU)60、キーボード、マウス、あるいはデータ読取装置等のデータ入力機能を有する入力装置(入力部)40、液晶パネル等の表示装置(表示部)50を含み、いわゆるパーソナルコンピュータのハードウェアを有している。
【0037】
本発明の改変検出機能を実現するための構成を、機能ブロックに分けて説明すると、本装置11は、文字コード記憶部21、秘密情報生成アルゴリズム22、ビットデータ抽出部61、埋込秘密情報抽出部62、現在秘密情報算出部63、改変検出部64、入力部40、表示部50の各ブロックにより構成される。
【0038】
ビットデータ抽出部61は、入力部40から入力された鑑定対象文書45に対し、文字コードを参照することにより、鑑定対象電子文書をビットデータ65で表現する。
埋込秘密情報抽出部62は、ビットデータ65のうち、冗長ビットに埋め込まれている埋込秘密情報を抽出する。
現在秘密情報算出部63は、鑑定対象電子文書のビットデータに対し、再度秘密情報生成アルゴリズムを実行して、現在のビットデータによって埋め込むべき秘密情報を算出する。
改変検出部64は、埋込秘密情報抽出部部62により抽出された埋込秘密情報と、現在秘密情報算出部63により算出された現在のビットデータによって埋め込むべき秘密情報
との比較を行い、一致するか否かで改変の有無を検出する。
入力部40は、改変対象電子文書45をキー入力、あるいは記憶媒体から読み取ることにより入力する。
表示部50は、処理対象となる電子文書について文字で表示し、各種操作に必要な表示を行し、さらに改変検出部64で検出した改変部分を、文字コードを参照して改変位置を示すようにして表示する。
【0039】
次に、この装置11による処理動作について、図11のフローチャートを用いて説明する。
まず、入力された鑑定対象電子文書について、文字コードを参照して鑑定対象電子文書のビットデータを抽出する(S201)。これにより、ビットデータで表現された鑑定対象電子文書が作成される。
続いて、図3で説明した秘密情報生成アルゴリズムを実行して、鑑定対象電子文書の現在のビットデータに対し、埋め込まれるべき秘密情報を算出する(S202)。
続いて、抽出した鑑定対象電子文書のビットデータの冗長ビットから、既に埋め込まれてある埋込秘密情報を抽出する(S203)。
続いて、現在のビットデータによって埋め込まれるべき秘密情報と、既に埋め込まれてある秘密情報との比較照合を行う(S204)。
これら2つの秘密情報について比較の結果、一致しているか否かによって、改変の有無を検出する(S205)。検出された改変情報は、表示部により表示される。
【0040】
図12は、改変部分を検出して表示部50に表示したときの画面表示の例を示す図である。ここでは、原文の「情報」という文字を、改ざん文では「文字」に改変し、「動画・」という文字を削除している。そのため、改変検出結果の表示には、「文字」に相当する部分が改変された可能性があるので、「□□」により改変の有無と、概略位置とを示し、「画像・」の後の文字が削除された可能性があるので、「■」により削除の有無と、概略位置とを示している。
【産業上の利用可能性】
【0041】
本発明は、電子文書の改変の有無、改変位置の特定を行うことができる電子文書の作成装置、改変検出装置において利用することができる。
【図面の簡単な説明】
【0042】
【図1】本発明の一実施形態である電子文書のデータ構造を説明する図。
【図2】本発明で用いられる1バイト文字、2バイト文字のデータ構造を説明する図。
【図3】本発明で用いられる秘密情報生成アルゴリズムの一例を説明する図。
【図4】本発明で用いられる秘密情報生成アルゴリズムの一例を説明する図。
【図5】秘密情報による改変検出を説明する図(1文字改変、1文字追加の場合)。
【図6】秘密情報による改変検出を説明する図(複数文字改変、複数文字追加の場合)。
【図7】秘密情報による改変検出を説明する図(1バイト削除の場合)。
【図8】本発明の一実施形態である電子文書作成装置の構成を示すブロック構成図。
【図9】図8の電子文書作成装置による動作を説明するフローチャート。
【図10】本発明の一実施形態である電子文書改変検出装置の構成を示すブロック構成図。
【図11】図10の電子文書改変検出装置による動作を説明するフローチャート。
【図12】電子文書改変検出装置により検出例を説明する図。
【符号の説明】
【0043】
10: 電子文書作成装置
11: 電子文書改変検出装置
21: 文字コード記憶部
22: 秘密情報生成アルゴリズム
31: 基本電子文書作成部
32: 秘密情報埋込部
61: ビットデータ抽出部
62: 埋込秘密情報抽出部
63: 現在秘密情報抽出部
64: 改変検出部
【技術分野】
【0001】
本発明は、文字情報を電子データ(ビットデータ)で表現することにより作成される電子文書のデータ構造に関し、さらに詳細には電子データに秘密情報が埋め込まれた電子文書のデータ構造に関する。
また、本発明は上述したデータ構造の電子文書を作成する電子文書作成装置および作成した電子文書について改変の有無を検出する電子文書改変検出装置に関する。
ここで電子文書とは、パーソナルコンピュータの表示画面に文字情報を表示する場合や、文字情報を紙に印字して印刷文書を作成する場合の電子データ(ビットデータ)であり、テキスト形式で作成された文書データやマイクロソフト社のパソコン用ワープロソフトで作成されたワード形式で作成された文書データは電子文書に含まれる。
【背景技術】
【0002】
コンピュータ装置は、文書作成用アプリケーションソフト(ワープロソフト)を起動することにより、電子文書を作成することができる。電子文書は、複製・編集・配布・保管が容易であり、また、適当なフォントを用いて印刷することにより、誰もが読みやすい印刷文書を作成することができるので、広く普及しているが、その一方で、電子文書の一部が改変されたとしても、その痕跡が残らない。そのため、原本性(改変されていないこと、正真性)の証明、保証が要求される場合がある。
【0003】
原本性を証明する手段としてはいわゆる電子署名(デジタル署名)による方法が知られており、例えば、電子文書の作成者が秘密鍵で署名の作成を行い、電子文書の鑑定者が公開鍵で署名の検証を行うことにより、電子文書に対する改変の有無を確認できるようにしている(例えば特許文献1参照)。
【特許文献1】再公表特許2002−23903号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、原本性を担保するために電子署名を行うとなると、電子文書以外にいわゆる公開鍵暗号方式での鍵の管理や手続きを行う必要があり、手間がかかる。
【0005】
また、電子署名により、文書が改変されていることが検出できるとしても、電子文書中のどの文字が改変されたかまでを特定することは困難である。改変の対象が文書ではなく画像の場合には、画像を形成する各画素に透かし情報を付加しておくことにより、いずれかの画素が改変されることによってその画素の透かし情報も変化することから、画像に付加された透かし情報の変化を検出することにより、改変を発見することができる。しかしながら、改変の対象が文書の場合は、文書自体は画素単位で作成されるものではないため、画素単位での透かし情報を埋め込むことはできない。文書の場合は文字単位で改変されるので、文字を改変されたとしても改変された文字で作られる文章が、文章として意味をなす場合は、改変を検出することが困難である。
【0006】
そこで、本発明は、電子署名を用いることなく、電子文書の改変の有無を見出すことができるようにするための電子文書のデータ構造、およびそのようなデータ構造を用いた電子文書作成装置、電子文書改変検出装置を提供することを目的とする。
また、本発明は、改変がなされた場合に、改変の有無を検出するだけではなく、改変された文字の箇所を見出すことができるようにするための電子文書のデータ構造、およびそのようなデータ構造を用いた電子文書作成装置、電子文書改変検出装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために本発明は、電子文書を構成する各文字の電子データ(ビットデータ)自体に、改変の有無を検出するために用いる秘密情報を埋め込むようにしている。
すなわち、本発明にかかる電子文書のデータ構造は、1バイト(8ビット)のうち7ビットに個々の文字を特定するための固有のビットデータを割り当てるとともに残り1ビットを冗長ビットにして1バイト又は2バイトを単位として個々の文字をビットデータで表現するようにしている文字コードを用いて、文書化対象文字列に含まれる各文字を前記文字コードのビットデータで表現することにより作成される電子文書のデータ構造であって、
作成される電子文書の各文字のビットデータにおける冗長ビットには、前記文書化対象文字列のビットデータを参照して秘密情報生成アルゴリズムを用いることにより算出される秘密情報が埋め込まれるようにしている。
【0008】
本発明によれば、電子文書のデータ構造が、各文字をビットデータで表現したときの冗長ビットに、秘密情報が埋め込まれたデータ構造を有している。この秘密情報は、文書化対象文字列のビットデータを参照して所定の秘密情報生成アルゴリズムにより算出するようにしてある。
したがって、電子文書が当初の状態から改変された場合に、改変後の文字列について再び秘密情報生成アルゴリズムにより秘密情報を算出し、冗長ビットに埋め込まれた秘密情報と照合することによって、ビットデータが変化した場合には、その文字列が改変されたものであると判定することができる。
【0009】
上記発明において、文字コードはASCIIコード、又は、JISコードであることが好ましい。
本発明に用いられる文字は、8ビットのビットデータで表現される1バイト文字、又は16ビットのビットデータで表現される2バイト文字である。
このうち1バイト文字は、8ビット中の7ビットに個々の文字を特定するためのデジタル値(ビットデータ)が割り当てられ、残りの1ビットは文字特定に用いられず、冗長ビット(デジタル値が常に0又は常に1)となっていることを要する。2バイト文字は、第1バイト(8ビット)と第2バイト(8ビット)とからなり、第1バイト目と第2バイト目がそれぞれ8ビット中の7ビットに個々の文字を特定するためのデジタル値(ビットデータ)が割り当てられ、第1バイト、第2バイトにおけるそれぞれの残りの1ビットは文字特定に用いられず、冗長ビットとなっていることを要する。
このような条件を満たす文字コードは、具体的には、1バイト文字としてASCIIコードで表現される文字、1バイト文字と2バイト文字とを含むJISコード(JIS X 0208、JIS X 0212等)で表現される文字が該当する。
なお、同様の冗長ビットを有する文字コードであれば、他の外国語用の文字コードであってもよい。
【0010】
また、上記発明において、各文字の冗長ビットに埋め込まれる秘密情報は、各文字のビットデータ近傍に並ぶビットデータに基づいて算出される秘密情報であることが好ましい。
これによれば、各文字の冗長ビットに埋め込まれる秘密情報が、当該文字のビットデータ近傍に並ぶビットデータに基づいて算出される。そのため、ある文字に改変(文字変更、文字追加、文字削除)がなされた場合には、当該改変された文字のビットデータを用いて秘密情報が算出されることとなる近傍の文字の冗長ビットに埋め込まれた秘密情報に影響が及ぶことになる。これら近傍の文字の冗長ビットに埋め込まれた秘密情報に連続して影響が及んでいるので、連続する冗長ビットのいずれかに変化があれば、改変があったと判定することができる。さらに、少なくとも秘密情報が変化した冗長ビットの近傍の文字に改変があったことが検出できるので、改変の有無だけでなく、改変の概略箇所についても特定することができる。
【0011】
また、別の観点からなされた本発明の電子文書作成装置は、上記のデータ構造を有する秘密情報付きの電子文書を作成する電子文書作成装置であって、文字コードを記憶する文字コード記憶部と、文書化対象文字列について前記文字コードを参照することにより、文書化対象文字列をビットデータで表現した基本電子文書を作成する基本電子文書作成部と、
作成された基本電子文書における各文字のビットデータに対し、基本電子文書のビットデータを参照して秘密情報生成アルゴリズムを用いることにより各文字の秘密情報を算出し、算出された秘密情報を基本電子文書の各文字の冗長ビットに埋め込んで基本電子文書から秘密情報付き電子文書を作成する秘密情報埋め込み部とを備えるようにしている。
【0012】
本発明によれば、基本電子文書作成部は、文字コードを参照することにより、秘密情報を埋め込もうとする元の文字列である文書化対象文字列から、文書化対象文字列をビットデータで表現した基本電子文書を作成する。続いて、秘密情報埋め込み部は、作成した基本電子文書のビットデータを参照して秘密情報生成アルゴリズムを用いることにより各文字の冗長ビットに埋め込む秘密情報を算出し、算出した秘密情報を基本電子文書の各文字の冗長ビットに埋め込んで基本電子文書から秘密情報付き電子文書を作成する。
これにより、基本電子文書の冗長ビットに秘密情報を埋め込んだ秘密情報付き電子文書を作成することができる。
【0013】
上記電子文書作成装置において、秘密情報生成アルゴリズムは、基本電子文書の各文字の冗長ビットに埋め込む秘密情報を算出する際に、個々の文字の秘密情報を当該文字のビットデータ近傍に並ぶビットデータを参照して算出するようにしてもよい。
これによれば、各文字の冗長ビットに埋め込まれる秘密情報が、当該文字のビットデータ近傍に並ぶビットデータに基づいて算出される。そのため、ある文字に改変(文字変更、文字追加、文字削除)がなされた場合には、上述したように、近傍の文字の冗長ビットに埋め込まれた秘密情報に連続して影響が及んでいるので、連続する冗長ビットのいずれかに変化があれば、改変があったと判定することができ、改変の概略箇所についても特定することができる。
【0014】
また、別の観点からなされた本発明の電子文書改変検出装置は、上記のデータ構造を有する秘密情報付き電子文書について改変の有無を鑑定する電子文書改変検出装置であって、前記文字コードを記憶する文字コード記憶部と、鑑定対象となる電子文書の現在のビットデータを抽出するビットデータ抽出部と、電子文書から抽出された現在のビットデータに対し秘密情報生成アルゴリズムを用いることにより現在の電子文書の各文字の冗長ビットに埋め込まれるべき秘密情報を算出する現在秘密情報算出部と、電子文書から抽出された現在のビットデータのうちで各文字の冗長ビットに埋め込まれている埋め込み秘密情報を抽出する埋め込み秘密情報抽出部と、電子文書の各文字についての現在埋め込まれるべき秘密情報と冗長ビットに埋め込まれている埋め込み秘密情報とを照合して改変の有無を検出する改変検出部とを備えるようにしている。
【0015】
これによれば、ビットデータ抽出部が、鑑定対象となる電子文書の現在のビットデータを抽出し、現在秘密情報算出部が、抽出した現在のビットデータに対して、秘密情報生成アルゴリズムを用いることにより、再度、現在の電子文書の各文字の冗長ビットに埋め込まれるべき秘密情報を算出する。この埋め込まれるべき秘密情報は、改変がなければ、冗長ビットに埋め込まれている秘密情報と同じ値となる。一方、埋め込み秘密情報抽出部は、電子文書から抽出された現在の各文字の冗長ビットに既に埋め込まれている埋め込み秘密情報を抽出する。そして、現在の電子文書について埋め込まれるべき秘密情報と、冗長ビットに既に埋め込まれている埋め込み秘密情報とを照合する。これらが一致していれば、現在のビットデータが当初のビットデータと一致していると考えられるので、改変がなかったものと判定できる。これに対し、いずれかの秘密情報が不一致の場合は、現在のビットデータと当初のビットデータが異なるものであったこととなり、改変があったと判定される。
【0016】
上記電子文書改変検出装置において、秘密情報生成アルゴリズムは、電子文書の現在の各文字の冗長ビットに埋め込まれるべき秘密情報を算出する際に、個々の文字の秘密情報を当該文字のビットデータ近傍に並ぶビットデータを参照して算出するようにしてもよい。
これによれば、各文字の冗長ビットに埋め込まれる秘密情報が、当該文字のビットデータ近傍に並ぶビットデータに基づいて算出される。そのため、ある文字に改変(文字変更、文字追加、文字削除)がなされた場合には、上述したように、近傍の文字の冗長ビットに埋め込まれた秘密情報に連続して影響が及んでいるので、連続する冗長ビットのいずれかに変化があれば、改変があったと判定することができ、改変の概略箇所についても特定することができる。
【発明の効果】
【0017】
この発明によれば、電子文書において、電子署名を用いることなく、電子文書の改変の有無を見出すことができる。
また、改変がなされた場合に、改変の有無を検出するだけではなく、改変された文字の概略箇所を見出すことができる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の一実施形態について、図面を用いて説明する。ここでは、文字コードとしてJISコードを使用するものとする。なお、本発明は、以下に説明する実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々の態様が含まれることは言うまでもない。
【0019】
(電子文書のデータ構造)
図1は、本発明の一実施形態である電子文書のデータ構造を示す説明図であり、図2はJISコードで表現した1バイト文字と2バイト文字のデータ構造を示す図である。
図2に示すように、JISコードでは、英数字は1バイト(8ビット)、漢字は2バイト(16ビット)で表現される。いずれも各バイト単位の第8ビット目の1ビット分が常に0であり、英数字では7ビット、漢字では14ビットでそれぞれの文字が識別される。
すなわち、文字を識別するために用いられていない1ビット分は、冗長ビットとなっている。
【0020】
JISコードで表現された電子文書のデータ構造は、図1(a)に示すように、各文字の1バイト(8ビット)分を縦1列に並べることで、1バイト文字は縦1列横8列、2バイト文字は縦2列横8列のビットデータで表現することができる。このようなビット行列で文字列を表現することにより、文字列は、各文字の第8ビット目、すなわち冗長ビット分を最上段にして横方向に並ぶことになる。
なお、1バイト文字のみの文字列、あるいは2バイト文字のみの文字列では、このとおりであるが、1バイト文字と2バイト文字とが混じり合う文字列では、切り換わりのための制御コードが必要になる。すなわち、1バイト文字と2バイト文字との境界には、1バイト文字から2バイト文字に切り換わること示す制御コード、あるいは2バイト文字から1バイト文字に切り換わることを示す制御コードが含まれることになる。これらの制御コードは1バイト文字と同じデータ構造を有する。しかし、この場合は、特定のビットデータを有するこれら制御コードを識別して、これを無視し、これらの制御コードを除去した文字列のデータ構造をすればよい。以下の説明では、制御コードを含まない(あるいは除去した)ビットデータであるものとする。
【0021】
そして、最上段の冗長ビットには、本来のJISコードによる文字列であれば、0が並んでいるのであるが(図1(a)参照)、本発明の電子文書のデータ構造では、図1(b)に示すように、各バイトの冗長ビットに、文字の書き換え、加筆、削除を検出するための秘密情報として、ハッシュ値Hn、Hn+1、・・・(Hn、Hn+1については後述する)が埋め込まれる。この秘密情報は、電子文書自体のビットデータを参照して算出したものであり、電子文書のいずれかのビットデータが改変されれば秘密情報の値が変化するため、この変化を検出することにより、改変の有無が判定できるデータ構造になっている。
【0022】
(秘密情報生成アルゴリズム)
次に、冗長ビットに埋め込まれる秘密情報の演算方法(秘密情報生成アルゴリズム)について説明する。秘密情報は、電子文書のいずれかのビットデータの改変があった場合に、改変前と改変後とで秘密情報の値が変化し、その変化を検出することができるものであればよいが、ここでは、ハッシュ値を秘密情報として用いる秘密情報生成アルゴリズムの一例について説明する。
図3は、冗長ビットに埋め込まれる秘密情報の算出方法を説明する図である。
秘密情報が埋め込まれる前の電子文書(基本電子文書という)におけるn番目のバイトをCn、秘密情報が埋め込まれた後の電子文書(秘密情報付き電子文書という)におけるn番目のバイトをCn’とする。
【0023】
このとき、図3において斜線引きによって示すビットデータの部分、すなわちn−m番目からn−1番目までのmバイト(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’)とCnの冗長ビット(第8ビット)を除いた7ビットとのビットデータから算出されるハッシュ値Hn(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)を、図中で網掛けによって示すn番目のバイトCnの冗長ビット(第8ビット)の値として算出し、これを埋め込むことでCn’を得る。
ここで求めているハッシュ値Hnは、大きさが1ビットの値(0又は1)であることから、例えば128ビットのハッシュ値を出力するハッシュ関数「MD5」や、160ビットのハッシュ値を出力するハッシュ関数「SHA−1」等のような周知のハッシュ関数の出力値を元にして、最終的に1ビットのハッシュ値Hnを求めるようにしている。
具体的には、例えば、ハッシュ関数「SHA−1」により出力される160ビットすべてのビット値の総和を求めて、それが偶数か奇数かで1ビットの値を定めるようにすることができる。
【0024】
上記演算によってn番目のバイトCn’が定まると、続いて、図4に示すようにn+1番目の基本電子文書のバイトCn+1について秘密情報付き電子文書のバイトCn+1’を求める。このときは、n番目のバイトCn’において先ほど冗長ビットに埋め込まれた秘密情報であるハッシュ値Hn(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)も含めてハッシュ関数「SHA−1」による同様の演算が行なわれることになる。
【0025】
なお、文頭のmバイト(C1、C2、・・・、Cm)については、例えば、文頭にさらに1バイトのデータC1をm個付け加えて、基本電子文書の文頭部分のバイトが(C1、C1・・・、C1、C2、・・・、Cn)であるものとして、このときのm番目のバイトから上記演算を行うようにする。あるいは、文末のmバイト分が文頭に付け加えられているとして同様の演算を行うようにしてもよい。
そして、すべてのバイトCnについて、秘密情報を埋め込んだCn’を求めることにより、秘密情報付き電子文書を完成する。
【0026】
このようにして作成された秘密情報付き電子文書に対して、改変の有無を検出する鑑定を行う場合にも秘密情報生成プログラムを用いる。鑑定対象となる電子文書(現在の電子文書という)に対し、再び上述した秘密情報生成プログラムを用いて、現在の電子文書についてn番目のバイトCn’の冗長ビットに埋め込まれるべき秘密情報Hn”(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)を算出する。
そして、現在の電子文書におけるn番目のバイトCn’の冗長ビットに既に埋め込まれている秘密情報の値Hn(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)と、再び算出した各バイトに埋め込まれるべき秘密情報Hn”(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)とを比較することにより、これらの一致、不一致により改変の有無を判定することができる。
【0027】
(改変の検出)
次に、改変検出の具体例について説明する。図5(a)は、図中×印で示すように、文字改変がビットデータ中のn番目のバイトCn’においてなされた場合を説明する図である。改変の影響は、図5(a)に示すn番目のバイトCn’のハッシュ値Hn”(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)から、図5(b)に示すn+m番目のバイトCn+m’のハッシュ値Hn+m”(Cn’、Cn+1’、・・・、Cn−2’、Cn+m−1’、Cn+m)までのm+1個のバイトCn’、・・・、Cn+m’のハッシュ値に及ぶことになる。ただし、ハッシュ値に影響が及ぶ場合であっても、必ずしもハッシュ値が変化するとは限らない。
【0028】
すなわち、冗長ビットに埋め込まれているハッシュ値Hn(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)や、改変検出のために再び算出されるハッシュ値Hn”(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)は、いずれもデジタル値からなる1ビットデータである。改変の影響が及んだ部分のハッシュ値は0又は1のいずれかになり、図5(c)に示すように、一致する場合(○)と不一致の場合(×)とが半々であり、ハッシュ値が衝突する確率が1/2である。したがって、n番目のバイトCn’における改変の有無は、バイトCn’1つだけのハッシュ値の比較による判定では、1/2の確率で誤る可能性がある。しかしながら、改変の影響が及ぶ(m+1)個のバイトCn’、・・・、Cn+m’のすべてについてハッシュ値を比較すれば、いずれか1つのバイトで改変が確認できればよいので、誤った判定をする確率は1/2m+1になる。
例えば、mを8とすれば、誤って判定する確率は1/512となり、ほぼ間違いなく改変を判定することができる。そして、この場合は、9バイト((m+1)バイト)分のビットデータで表現される文字のいずれかに改変があることになるので、2バイト文字なら近傍の5字、1バイト文字なら近傍の10文字のなかに改変があると判定できる。
【0029】
なお、m値を大きくすれば、さらに改変を発見する確率を高くすることができるが、その分、改変があった可能性がある文字の範囲が大きくなることになる。
以上の説明は、文字が変更された場合であるが、文字の変更ではなく、文字を追加した場合も同様である。
【0030】
図6(a)は、図中×印で示すように、連続する複数のバイトのビットデータが改変(あるいは追加)された場合を説明する図である。これは、具体的には複数の連続する文字が改変あるいは追加された場合に相当する。
文字改変がビットデータ中のn番目のバイトCn’からn+k−1番目のバイトCn+k−1’までのk個においてなされた場合に、その影響は、図6(a)に示すn番目のバイトCn’のハッシュ値Hn”(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn)から、図6(b)に示すn+m+k−1番目のバイトCn+m+k−1’のハッシュ値Hn+m+k−1”(Cn+k−1’、Cn+k’、・・・、Cn+m+k−2’、Cn+m+k−1)までのバイトCn’、・・・、Cn+m+k−1’のハッシュ値に影響を及ぼすことになる。
すなわち図6(c)に示すように、m+k個のバイトCn’、・・・、Cn+m+k−1’それぞれについて、ハッシュ値が1/2の確率で相違することになる。
この場合は、これらm+k個のバイトCn’、・・・、Cn+m+k−1’のすべてについてハッシュ値の比較を行うことにより、少なくともいずれかのバイトによって改変を発見する確率は1/2m+kになる。そして、この場合は、(m+k)バイト分のビットデータで表現される文字のいずれかに改変があると判定できる。
【0031】
図7(a)は、文字のビットデータがバイト単位で削除される場合を説明する図である。これは、具体的には文字削除による改変がなされた場合に相当する。ここでは、n番目のバイトCn’が削除されているものとする。
この場合、改変の影響は、図7(a)に示すn番目のバイトCn+1’のハッシュ値Hn+1”(Cn−m’、Cn−m+1’、・・・、Cn−2’、Cn−1’、Cn+1)から、図7(b)に示すn+m番目のバイトCn+m’のハッシュ値Hn+m”(Cn−1’、Cn+1’、・・・、Cn+m−1’、Cn+m)までのm個のバイトCn+1’、・・・、Cn+m’のハッシュ値に及ぶことになる。
すなわち図7(c)に示すように、m個のバイトCn+1’、・・・、Cn+m’それぞれについて、ハッシュ値が1/2の確率で相違することになる。
この場合は、これらm個のバイトCn+1’、・・・、Cn+m’のすべてについてハッシュ値の比較を行うことにより、少なくともいずれかのバイトによって改変を発見する確率は1/2mになる。そして、この場合は、mバイト分のビットデータで表現される文字のいずれかの前後の文字が削除されたと判定できる。
【0032】
(電子文書作成装置)
次に、秘密情報付き電子文書を作成するための電子文書作成装置について説明する。図8は、本発明の一実施形態である電子文書作成装置の構成を示すブロック図である。
この電子文書作成装置10は、ROM、RAM、HDD等のメモリ20、制御部(CPU)30、キーボード、マウス、あるいはデータ読取装置等のデータ入力機能を有する入力装置(入力部)40、液晶パネル等の表示装置(表示部)50を含み、いわゆるパーソナルコンピュータのハードウェアを有している。
【0033】
本発明の秘密情報付き電子文書作成機能を実現するための構成を、機能ブロックに分けて説明すると、本装置は、文字コード記憶部21、秘密情報生成アルゴリズム22、基本文書作成部31、秘密情報埋込部32、入力部40、表示部50の各ブロックにより構成される。
【0034】
文字コード記憶部21は、英数字や漢字、ひらがな、カタカナ等の文字を、ビットデータで表現するための対応付けを行う文字コードであるASCIIコードやJISコードを記憶する。
秘密情報生成アルゴリズム22は、図3で説明したように、電子文書の文字列のビットデータから秘密情報として冗長ビットに埋め込むハッシュ値を算出する演算を実行するプログラムを記憶する。
基本文書作成部31は、入力部40から入力された文書化対象文字列45を、文字コードを参照してビットデータで表現した基本電子文書を作成する。
秘密情報埋込部32は、基本電子文書のビットデータに対して、上述した秘密情報生成アルゴリズムを実行して秘密情報を算出し、冗長ビットに埋め込む処理を行う。
入力部40は、電子文書作成対象となる文書化対象文字列をキー入力、あるいは記憶媒体から読み取ることにより入力する。
表示部50は、処理対象となる電子文書について文字で表示し、各種操作に必要な表示を行う。
【0035】
次に、その装置による処理動作について、図9のフローチャートを用いて説明する。
まず、入力された文書化対象文字列について、文字コードを参照してビットデータ化する(S101)。これにより、ビットデータで表現された基本電子文書が作成される。
続いて、秘密情報生成アルゴリズムを実行して基本電子文書から秘密情報付き電子文書を作成する(S102)。このステップでは、秘密情報生成アルゴリズムを実行することによる秘密情報の算出(S102a)と、算出した秘密情報の埋め込み作業(S102b)とを順次、交互に行う。このようにして、すべての冗長ビットに秘密情報を埋め込んでいく。
【0036】
(電子文書改変検出装置)
次に、秘密情報付き電子文書について改変の有無を鑑定するための電子文書改変検出装置について説明する。図10は、本発明の一実施形態である電子文書改変検出装置の構成を示すブロック図である。なお、上述した電子文書作成装置と同じものについては、同符号を付すことにより、説明の一部を省略する。
この電子文書化改変検出装置11は、ROM、RAM、HDD等のメモリ20、制御部(CPU)60、キーボード、マウス、あるいはデータ読取装置等のデータ入力機能を有する入力装置(入力部)40、液晶パネル等の表示装置(表示部)50を含み、いわゆるパーソナルコンピュータのハードウェアを有している。
【0037】
本発明の改変検出機能を実現するための構成を、機能ブロックに分けて説明すると、本装置11は、文字コード記憶部21、秘密情報生成アルゴリズム22、ビットデータ抽出部61、埋込秘密情報抽出部62、現在秘密情報算出部63、改変検出部64、入力部40、表示部50の各ブロックにより構成される。
【0038】
ビットデータ抽出部61は、入力部40から入力された鑑定対象文書45に対し、文字コードを参照することにより、鑑定対象電子文書をビットデータ65で表現する。
埋込秘密情報抽出部62は、ビットデータ65のうち、冗長ビットに埋め込まれている埋込秘密情報を抽出する。
現在秘密情報算出部63は、鑑定対象電子文書のビットデータに対し、再度秘密情報生成アルゴリズムを実行して、現在のビットデータによって埋め込むべき秘密情報を算出する。
改変検出部64は、埋込秘密情報抽出部部62により抽出された埋込秘密情報と、現在秘密情報算出部63により算出された現在のビットデータによって埋め込むべき秘密情報
との比較を行い、一致するか否かで改変の有無を検出する。
入力部40は、改変対象電子文書45をキー入力、あるいは記憶媒体から読み取ることにより入力する。
表示部50は、処理対象となる電子文書について文字で表示し、各種操作に必要な表示を行し、さらに改変検出部64で検出した改変部分を、文字コードを参照して改変位置を示すようにして表示する。
【0039】
次に、この装置11による処理動作について、図11のフローチャートを用いて説明する。
まず、入力された鑑定対象電子文書について、文字コードを参照して鑑定対象電子文書のビットデータを抽出する(S201)。これにより、ビットデータで表現された鑑定対象電子文書が作成される。
続いて、図3で説明した秘密情報生成アルゴリズムを実行して、鑑定対象電子文書の現在のビットデータに対し、埋め込まれるべき秘密情報を算出する(S202)。
続いて、抽出した鑑定対象電子文書のビットデータの冗長ビットから、既に埋め込まれてある埋込秘密情報を抽出する(S203)。
続いて、現在のビットデータによって埋め込まれるべき秘密情報と、既に埋め込まれてある秘密情報との比較照合を行う(S204)。
これら2つの秘密情報について比較の結果、一致しているか否かによって、改変の有無を検出する(S205)。検出された改変情報は、表示部により表示される。
【0040】
図12は、改変部分を検出して表示部50に表示したときの画面表示の例を示す図である。ここでは、原文の「情報」という文字を、改ざん文では「文字」に改変し、「動画・」という文字を削除している。そのため、改変検出結果の表示には、「文字」に相当する部分が改変された可能性があるので、「□□」により改変の有無と、概略位置とを示し、「画像・」の後の文字が削除された可能性があるので、「■」により削除の有無と、概略位置とを示している。
【産業上の利用可能性】
【0041】
本発明は、電子文書の改変の有無、改変位置の特定を行うことができる電子文書の作成装置、改変検出装置において利用することができる。
【図面の簡単な説明】
【0042】
【図1】本発明の一実施形態である電子文書のデータ構造を説明する図。
【図2】本発明で用いられる1バイト文字、2バイト文字のデータ構造を説明する図。
【図3】本発明で用いられる秘密情報生成アルゴリズムの一例を説明する図。
【図4】本発明で用いられる秘密情報生成アルゴリズムの一例を説明する図。
【図5】秘密情報による改変検出を説明する図(1文字改変、1文字追加の場合)。
【図6】秘密情報による改変検出を説明する図(複数文字改変、複数文字追加の場合)。
【図7】秘密情報による改変検出を説明する図(1バイト削除の場合)。
【図8】本発明の一実施形態である電子文書作成装置の構成を示すブロック構成図。
【図9】図8の電子文書作成装置による動作を説明するフローチャート。
【図10】本発明の一実施形態である電子文書改変検出装置の構成を示すブロック構成図。
【図11】図10の電子文書改変検出装置による動作を説明するフローチャート。
【図12】電子文書改変検出装置により検出例を説明する図。
【符号の説明】
【0043】
10: 電子文書作成装置
11: 電子文書改変検出装置
21: 文字コード記憶部
22: 秘密情報生成アルゴリズム
31: 基本電子文書作成部
32: 秘密情報埋込部
61: ビットデータ抽出部
62: 埋込秘密情報抽出部
63: 現在秘密情報抽出部
64: 改変検出部
【特許請求の範囲】
【請求項1】
1バイト(8ビット)のうち7ビットに個々の文字を特定するための固有のビットデータを割り当てるとともに残り1ビットを冗長ビットにして1バイト又は2バイトを単位として個々の文字をビットデータで表現するようにしている文字コードを用いて、文書化対象文字列に含まれる各文字を前記文字コードのビットデータで表現することにより作成される電子文書のデータ構造であって、
作成される電子文書の各文字のビットデータにおける冗長ビットには、前記文書化対象文字列のビットデータを参照して秘密情報生成アルゴリズムを用いることにより算出される秘密情報が埋め込まれていることを特徴とする電子文書のデータ構造。
【請求項2】
文字コードがASCIIコード、またはJISコードである請求項1に記載の電子文書のデータ構造。
【請求項3】
各文字の冗長ビットに埋め込まれる秘密情報は、各文字のビットデータ近傍に並ぶビットデータに基づいて算出される秘密情報であることを特徴とする請求項1に記載の電子文書のデータ構造。
【請求項4】
請求項1〜請求項3のいずれかに記載のデータ構造を有する秘密情報付きの電子文書を作成する電子文書作成装置であって、
前記文字コードを記憶する文字コード記憶部と、
文書化対象文字列について前記文字コードを参照することにより、文書化対象文字列をビットデータで表現した基本電子文書を作成する基本電子文書作成部と、
作成された基本電子文書における各文字のビットデータに対し、基本電子文書のビットデータを参照して秘密情報生成アルゴリズムを用いることにより各文字の秘密情報を算出し、算出された秘密情報を基本電子文書の各文字の冗長ビットに埋め込んで基本電子文書から秘密情報付き電子文書を作成する秘密情報埋め込み部とを備えたことを特徴とする電子文書作成装置。
【請求項5】
秘密情報生成アルゴリズムは、基本電子文書の各文字の冗長ビットに埋め込む秘密情報を算出する際に、個々の文字の秘密情報を当該文字のビットデータ近傍に並ぶビットデータを参照して算出することを特徴とする請求項4に記載の電子文書作成装置。
【請求項6】
請求項1〜請求項3のいずれかに記載のデータ構造を有する秘密情報付き電子文書について改変の有無を鑑定する電子文書改変検出装置であって、
前記文字コードを記憶する文字コード記憶部と、
鑑定対象となる電子文書の現在のビットデータを抽出するビットデータ抽出部と、
電子文書から抽出された現在のビットデータに対し秘密情報生成アルゴリズムを用いることにより現在の電子文書の各文字の冗長ビットに埋め込まれるべき秘密情報を算出する現在秘密情報算出部と、
電子文書から抽出された現在のビットデータのうちで各文字の冗長ビットに埋め込まれている埋め込み秘密情報を抽出する埋め込み秘密情報抽出部と、
電子文書の各文字についての現在埋め込まれるべき秘密情報と冗長ビットに埋め込まれている埋め込み秘密情報とを照合して改変の有無を検出する改変検出部とを備えたことを特徴とする電子文書改変検出装置。
【請求項7】
秘密情報生成アルゴリズムは、電子文書の現在の各文字の冗長ビット埋め込まれるべき秘密情報を算出する際に、個々の文字の秘密情報を当該文字のビットデータ近傍に並ぶビットデータを参照して算出することを特徴とする請求項6に記載の電子文書改変検出装置。
【請求項1】
1バイト(8ビット)のうち7ビットに個々の文字を特定するための固有のビットデータを割り当てるとともに残り1ビットを冗長ビットにして1バイト又は2バイトを単位として個々の文字をビットデータで表現するようにしている文字コードを用いて、文書化対象文字列に含まれる各文字を前記文字コードのビットデータで表現することにより作成される電子文書のデータ構造であって、
作成される電子文書の各文字のビットデータにおける冗長ビットには、前記文書化対象文字列のビットデータを参照して秘密情報生成アルゴリズムを用いることにより算出される秘密情報が埋め込まれていることを特徴とする電子文書のデータ構造。
【請求項2】
文字コードがASCIIコード、またはJISコードである請求項1に記載の電子文書のデータ構造。
【請求項3】
各文字の冗長ビットに埋め込まれる秘密情報は、各文字のビットデータ近傍に並ぶビットデータに基づいて算出される秘密情報であることを特徴とする請求項1に記載の電子文書のデータ構造。
【請求項4】
請求項1〜請求項3のいずれかに記載のデータ構造を有する秘密情報付きの電子文書を作成する電子文書作成装置であって、
前記文字コードを記憶する文字コード記憶部と、
文書化対象文字列について前記文字コードを参照することにより、文書化対象文字列をビットデータで表現した基本電子文書を作成する基本電子文書作成部と、
作成された基本電子文書における各文字のビットデータに対し、基本電子文書のビットデータを参照して秘密情報生成アルゴリズムを用いることにより各文字の秘密情報を算出し、算出された秘密情報を基本電子文書の各文字の冗長ビットに埋め込んで基本電子文書から秘密情報付き電子文書を作成する秘密情報埋め込み部とを備えたことを特徴とする電子文書作成装置。
【請求項5】
秘密情報生成アルゴリズムは、基本電子文書の各文字の冗長ビットに埋め込む秘密情報を算出する際に、個々の文字の秘密情報を当該文字のビットデータ近傍に並ぶビットデータを参照して算出することを特徴とする請求項4に記載の電子文書作成装置。
【請求項6】
請求項1〜請求項3のいずれかに記載のデータ構造を有する秘密情報付き電子文書について改変の有無を鑑定する電子文書改変検出装置であって、
前記文字コードを記憶する文字コード記憶部と、
鑑定対象となる電子文書の現在のビットデータを抽出するビットデータ抽出部と、
電子文書から抽出された現在のビットデータに対し秘密情報生成アルゴリズムを用いることにより現在の電子文書の各文字の冗長ビットに埋め込まれるべき秘密情報を算出する現在秘密情報算出部と、
電子文書から抽出された現在のビットデータのうちで各文字の冗長ビットに埋め込まれている埋め込み秘密情報を抽出する埋め込み秘密情報抽出部と、
電子文書の各文字についての現在埋め込まれるべき秘密情報と冗長ビットに埋め込まれている埋め込み秘密情報とを照合して改変の有無を検出する改変検出部とを備えたことを特徴とする電子文書改変検出装置。
【請求項7】
秘密情報生成アルゴリズムは、電子文書の現在の各文字の冗長ビット埋め込まれるべき秘密情報を算出する際に、個々の文字の秘密情報を当該文字のビットデータ近傍に並ぶビットデータを参照して算出することを特徴とする請求項6に記載の電子文書改変検出装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2007−58315(P2007−58315A)
【公開日】平成19年3月8日(2007.3.8)
【国際特許分類】
【出願番号】特願2005−240028(P2005−240028)
【出願日】平成17年8月22日(2005.8.22)
【出願人】(505127721)公立大学法人大阪府立大学 (688)
【Fターム(参考)】
【公開日】平成19年3月8日(2007.3.8)
【国際特許分類】
【出願日】平成17年8月22日(2005.8.22)
【出願人】(505127721)公立大学法人大阪府立大学 (688)
【Fターム(参考)】
[ Back to top ]