JP4220661B2 - 電子文書改竄検出方法及びその装置 - Google Patents
電子文書改竄検出方法及びその装置 Download PDFInfo
- Publication number
- JP4220661B2 JP4220661B2 JP2000220017A JP2000220017A JP4220661B2 JP 4220661 B2 JP4220661 B2 JP 4220661B2 JP 2000220017 A JP2000220017 A JP 2000220017A JP 2000220017 A JP2000220017 A JP 2000220017A JP 4220661 B2 JP4220661 B2 JP 4220661B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- electronic document
- value
- falsification detection
- image data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Facsimile Image Signal Circuits (AREA)
- Storage Device Security (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Description
【発明の属する技術分野】
本発明は、電子文書に対する改竄を検出するための技術に関するものである。
【0002】
【従来の技術】
一般に、電子化された文書は改竄されても、その痕跡が残りにくいため、電子文書を利用する場合には、そのデータの信憑性に対する保証が不可欠である。
【0003】
そこで、従来では、データの信憑性を保証するために、デジタル署名や、ハッシュ関数を用いたメッセージダイジェストなどの技術が提案されている。
【0004】
【発明が解決しようとする課題】
しかしながら、このような従来の技術では、電子文書が改竄された場合に、改竄されたこと自体は検出することが可能であるが、電子文書のどの部分が改竄されたかについては検出することは困難であった。
【0005】
従って、本発明の目的は、上記した従来技術の問題点を解決し、電子文書が改竄されても、その改竄された部分を検出することが可能な電子文書改竄検出方法を提供することにある。
【0006】
【課題を解決するための手段およびその作用・効果】
上記した目的の少なくとも一部を達成するために、本発明の電子文書改竄検出前処理方法は、電子文書に対する改竄を検出するための前処理を行う電子文書改竄検出前処理方法であって、
(a)前記電子文書を表す多値画像データに含まれるデータを、1以上の画素を単位とする複数のブロックに分割する工程と、
(b)分割した各ブロック毎に、そのブロックに含まれる画素の値を用いて、そのブロックに含まれる画素のビットの値の和が奇数であるか偶数であるかを求める演算を行う工程と、
(c)各ブロック毎に、前記演算結果が所定の条件を満たしているか否かを判定する工程と、
(d)前記演算結果が前記所定の条件を満たしていないブロックについては、演算結果が前記所定の条件を満たし得るように、そのブロックに含まれる少なくとも1つの画素の値を変更する工程と、
を備えることを要旨とする。
【0007】
このような本発明の電子文書改竄検出前処理方法では、電子文書を表す多値画像データに含まれるデータを、1以上の画素を単位とする複数のブロックに分割し、その分割した各ブロック毎に、そのブロックに含まれる画素の値を用いて、そのブロックに含まれる画素のビットの値の和が奇数であるか偶数であるかを求める演算を行う。そして、各ブロック毎に、その演算結果が所定の条件を満たしているか否かを判定し、その演算結果が上記の所定の条件を満たしていないブロックについては、演算結果がその条件を満たすように、そのブロックに含まれる少なくとも1つの画素の値を変更する。この結果、すべてのブロックの演算結果は所定の条件を満たすことになる。
【0008】
しかしながら、このような前処理の施された多値画像データについて、その多値画像データの表す電子文書の内容が改竄されると、その改竄部分に該当するブロックは、その改竄によって演算結果が所定の条件を満たさなくなる。従って、この演算結果が所定の条件を満たさないブロックを検出することによって、改竄部分を特定することができる。
【0009】
よって、本発明によれば、電子文書を表す多値画像データに対して、上記のような前処理を施すことにより、その後、その多値画像データがコンピュータネットワークなどを介して転送される途中で、そのデータの表す電子文書の内容が改竄されても、改竄の有無だけでなく、改竄された部分も容易に検出することができる。従って、電子文書を利用する場合のデータの信憑性を保証することができ、改竄などの不正行為の未然防止につなげることができる。
【0010】
本発明の電子文書改竄検出前処理方法において、前記多値画像データに含まれる前記データは、画素における或るビットの値を表すビットプレーンのデータであることが好ましい。
【0011】
このようなビットプレーンのデータを用いることによって、各ブロック毎に行う演算は簡単で済む。
【0012】
本発明の電子文書改竄検出前処理方法において、前記ビットプレーンのデータは、比較的下位のビットの値を表すビットプレーンのデータであることが好ましい。
【0013】
このように、比較的下位のビットプレーンのデータを用いることにより、工程(d)で画素の値を変更する場合でも、下位ビットの値の変更となるため、画素の濃度値に与える影響が少なくて済む。
【0014】
本発明の電子文書改竄検出前処理方法において、前記多値画像データに含まれる前記データは、画素における複数のビットの値をそれぞれ表す複数のビットプレーンを統合したデータであることが好ましい。
【0015】
本発明の電子文書改竄検出前処理方法において、前記所定の条件は、前記演算結果が偶数であることが好ましい。
【0016】
このように、いわゆる偶数パリティとする場合には、電子文書において、情報を持たないビット値「0」の連続した領域がかなりの部分を占める場合でも、ノイズの増大を防ぐことが可能となる。
【0017】
本発明の電子文書改竄検出前処理方法において、前記所定の条件は、前記演算結果が偶数であってもよい。
【0018】
本発明の電子文書改竄検出前処理方法において、
(e)前記工程(a)〜(d)の各処理を施した前記多値画像データに、前記ブロックに関する情報を電子透かしで埋め込む工程をさらに備えることが好ましい。
【0019】
また、本発明の電子文書改竄検出前処理方法において、
(e)前記ブロックに関する情報を暗号化すると共に、該情報を、前記工程(a)〜(d)の各処理を施した前記多値画像データに付加する工程をさらに備えることが好ましい。
【0020】
さらにまた、本発明の電子文書改竄検出前処理方法において、
(e)前記ブロックに関する情報を暗号化すると共に、該情報を、前記工程(a)〜(d)の各処理を施した前記多値画像データに電子透かしで埋め込む工程をさらに備えることが好ましい。
【0021】
このように、多値画像データに対し、ブロックに関する情報を電子透かしで埋め込んだり、暗号化して付加したり、暗号化した上で電子透かしで埋め込んだりすることにより、不正な意図を有する者が、そのブロック情報を取得するのが困難となり、電子文書に対し、ブロック構造を考慮した巧妙な改竄を行うことは不可能となる。また、電子文書の内容が改竄された場合でも、ブロック情報まで破壊されるのを回避することができる。また、暗号や電子透かしの存在によって、その電子文書に対するデータの信憑性をさらに保証することができる。
【0022】
本発明の電子文書改竄検出方法は、電子文書に対する改竄を検出する電子文書改竄検出方法であって、
(a)前記電子文書を表す多値画像データに含まれるデータを、1以上の画素を単位とする複数のブロックに分割する工程と、
(b)分割した各ブロック毎に、そのブロックに含まれる画素の値を用いて、そのブロックに含まれる画素のビットの値の和が奇数であるか偶数であるかを求める演算を行う工程と、
(c)各ブロック毎に、前記演算結果が所定の条件を満たしているか否かを判定する工程と、
(d)前記演算結果が前記所定の条件を満たしていないブロックについて、前記電子文書における該ブロックに関わる部分が改竄された部分であると特定する工程と、
を備えることを要旨とする。
【0023】
このような本発明の電子文書改竄検出前処理方法では、電子文書を表す多値画像データに含まれるデータを、1以上の画素を単位とする複数のブロックに分割し、その分割した各ブロック毎に、そのブロックに含まれる画素の値を用いて、そのブロックに含まれる画素のビットの値の和が奇数であるか偶数であるかを求める演算を行い、各ブロック毎に、その演算結果が所定の条件を満たしているか否かを判定する。このとき、上記多値画像データに、前述したような前処理が施されている場合には、すべてのブロックの演算結果は所定の条件を満たすことになる。しかしながら、上記多値画像データの表す電子文書の内容が改竄されているとすると、その改竄部分に該当するブロックは、その改竄によって演算結果が所定の条件を満たさない。そこで、上記した判定の結果、演算結果が所定の条件を満たしていないブロックについては、電子文書におけるそのブロックに関わる部分が改竄された部分であると特定する。
【0024】
よって、前述したような前処理の施された多値画像データについて、そのデータの表す電子文書の内容が改竄されても、本発明の電子文書改竄検出方法を用いることにより、改竄の有無だけでなく、改竄された部分も容易に検出することができる。従って、電子文書を利用する場合のデータの信憑性を保証することができ、改竄などの不正行為の未然防止につなげることができる。
【0025】
本発明の電子文書改竄検出方法において、
(e)前記多値画像データに、前記ブロックに関する情報が電子透かしで埋め込まれている場合に、前記多値画像データから前記情報を取り出す工程をさらに備えることが好ましい。
【0026】
本発明の電子文書改竄検出方法において、
(e)前記多値画像データに、前記ブロックに関する情報が暗号化されて付加されている場合に、前記多値画像データから前記情報を取り出して復号化する工程をさらに備えることが好ましい。
【0027】
本発明の電子文書改竄検出方法において、
(e)前記多値画像データに、前記ブロックに関する情報が暗号化されて電子透かしで埋め込まれている場合に、前記多値画像データから前記情報を取り出して復号化する工程をさらに備えることが好ましい。
【0028】
このような工程を備えることによって、ブロックに関する情報を例え知らなくても、多値画像データからその情報を取得することができる。
【0029】
なお、本発明は、上記した電子文書改竄検出前処理方法や電子文書改竄検出方法などの方法発明の態様に限ることなく、電子文書改竄検出前処理装置や電子文書改竄検出装置などの装置の発明としての態様や、それら方法や装置を構築するためのコンピュータプログラムを記録した記録媒体としての態様で実現することも可能である。また、さらには、上記コンピュータプログラムを含み搬送波内に具現化されたデータ信号や、上記コンピュータプログラム自体など、種々の態様で実現することも可能である。
【0030】
【発明の実施の形態】
以下、本発明の実施の形態を実施例に基づいて説明する。
A.装置の全体構成
はじめに、本発明の一実施例としての電子文書改竄検出装置10の構成について図1を用いて説明する。図1は、本実施例において電子文書改竄検出前処理及び電子文書改竄検出処理を実行する電子文書改竄検出装置10の構成を示すブロック図である。この電子文書改竄検出装置10は、CPU22と、RAM24と、ROM26と、キーボード30と、マウス32と、CRTなどから成る表示装置34と、ハードディスク装置36と、ネットワークカードやモデムなどから成る通信装置38と、画像を読み取るスキャナ39と、これらの各要素を接続するバス40と、を備えるコンピュータである。なお、図1では各種のインターフェイス回路は省略されている。通信装置38は、図示しない通信回線を介してコンピュータネットワークに接続されている。コンピュータネットワークの図示しないサーバは、通信回線を介してコンピュータプログラムを電子文書改竄検出装置10に供給するプログラム供給装置としての機能を有する。
【0031】
RAM24には、対象となる電子文書を表す多値画像データからビットプレーンを抽出するビットプレーン抽出部41と、抽出したビットプレーンのデータを、複数のブロックに分割するブロック分割部42と、分割した各ブロック毎に、そのブロックに含まれる画素のビット値を用いて演算を行い、そのブロックのパリティ値を求めるパリティ演算部43と、各ブロック毎に、求めたパリティ値が予め設定されたパリティ制御値と一致しているか否かを判定する条件判定部44と、改竄検出前処理において、パリティ値がパリティ制御値と一致していないブロックについて、そのブロックに含まれる画素のビット値を変更するビット値変更部45と、改竄検出処理において、パリティ値がパリティ制御値と一致していないブロックについて、電子文書におけるそのブロックに関わる部分が改竄されていることを検出する改竄検出部46の、各機能を実現するためのコンピュータプログラムが格納されている。ビットプレーン抽出部41、ブロック分割部42、パリティ演算部43、条件判定部44、ビット値変更部45、及び改竄検出部46の機能については後で詳しく説明する。
【0032】
これらの各部41〜46の機能を実現するコンピュータプログラムは、フレキシブルディスクやCD−ROM等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。コンピュータは、その記録媒体からコンピュータプログラムを読み取って内部記憶装置または外部記憶装置に転送する。あるいは、通信経路を介してコンピュータにコンピュータプログラムを供給するようにしてもよい。コンピュータプログラムの機能を実現する時には、内部記憶装置に格納されたコンピュータプログラムがコンピュータのマイクロプロセッサによって実行される。また、記録媒体に記録されたコンピュータプログラムをコンピュータが読み取って直接実行するようにしてもよい。
【0033】
この明細書において、コンピュータとは、ハードウェア装置とオペレーションシステムとを含む概念であり、オペレーションシステムの制御の下で動作するハードウェア装置を意味している。また、オペレーションシステムが不要でアプリケーションプログラム単独またはファームウェア単独でハードウェア装置を動作させるような場合には、そのハードウェア装置自体がコンピュータに相当する。ハードウェア装置は、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とを少なくとも備えている。例えば、ディジタルカメラやスキャナなどの電子機器に、CPUやROMなどが組み込まれていて、これら電子機器がコンピュータとしての機能を有する場合も、これら電子機器はコンピュータの概念に当然に含まれる。コンピュータプログラムは、このようなコンピュータに、上述の各手段の機能を実現させるプログラムコードを含んでいる。なお、上述の機能の一部は、アプリケーションプログラムでなく、オペレーションシステムによって実現されていても良い。更に、電子透かしの埋め込み処理や復号処理を行なうプログラムは、画像処理を行なうプログラムに対して、プラグインの形式で付加されるものとしてもよい。
【0034】
なお、この発明における「記録媒体」としては、フレキシブルディスクやCD−ROM、光磁気ディスク、ICカード、ROMカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置(RAMやROMなどのメモリ)および外部記憶装置等の、コンピュータが読取り可能な種々の媒体を利用することができる。
【0035】
B.電子文書改竄検出前処理
図2は図1のビットプレーン抽出部41、ブロック分割部42、パリティ演算部43、条件判定部44、及びビット値変更部45が行う電子文書改竄検出前処理の手順を示すフローチャートである。この処理は、ビットプレーン抽出部41、ブロック分割部42、パリティ演算部43、条件判定部44、及びビット値変更部45の処理として実現されている。
【0036】
この処理が行われる前提として、ハードディスク装置36内には、この処理の対象となる電子文書を表す多値画像データが格納されている。このような多値画像データは、例えば、印刷文書をスキャナ39によって読み取ったり、あるいは、ワープロソフトなどにより表示装置34の画面上に文書を表示した際に、その表示データを抽出したりすることにより、得ることができる。
【0037】
本実施例では、このように、一般的に2値画像として扱われる電子文書のデータを2ビット以上を有する多値画像のデータに変換することで、コンテンツに冗長性を持たせ、そこに改竄検出の工夫を施すものである。
【0038】
そこで、図2に示すように、改竄検出の前処理が起動されると、まず、ビットプレーン抽出部41は、対象となる多値画像データをハードディスク装置36から読み出し(ステップS102)、その多値画像データからビットプレーンのデータを抽出する(ステップS104)。
【0039】
ここで、読み出した多値画像データの表す多値画像をAとすると、その多値画像Aを構成する各画素の値a(x,y)は、式(1)によって表される。
【0040】
【数1】
【0041】
但し、dは多値画像データのビット数であり、nは多値画像Aのx方向の画素数であり、mは同じく多値画像Aのy方向の画素数である。また、ai(x,y)(但し、0≦i≦d−1)は、画素値a(x,y)を2進数で表現したときに、2iの重みを持つビット値である。
【0042】
また、このビット値ai(x,y)から成る平面Aiをビットプレーンと称し、式(2)によって表される。
【0043】
【数2】
【0044】
例えば、読み出した多値画像データのビット数dが4であるとすると、下位ビットから順番に4枚のビットプレーンA0,A1,A2,A3が成立することになる。
【0045】
図3は4ビットの多値画像データから4枚のビットプレーンが成立する様子を示す説明図である。図3において、(a)は4ビットの多値画像データで表される多値画像Aであり、(b)はその多値画像Aから抽出される4枚のビットプレーンA0,A1,A2,A3である。なお、図3では、図面を見やすくするために、多値画像Aを構成する画素はa(0,0)〜a(2,2)の9つの画素しか示していないが、実際には、x方向にn個、y方向にm個の合計n×m個の画素が存在している。
【0046】
図3(a)において、例えば、(0,0)の位置にある画素の値a(0,0)は、「6」であるので、式(1)に従うと、次のように表される。
【0047】
a(0,0)=6=0・23+1・22+1・21+0・20
従って、画素値a(0,0)の各ビット値は、上位ビットから順番に、a3(0,0)=0,a2(0,0)=1,a1(0,0)=1,a0(0,0)=0となる。
【0048】
よって、図3(b)に示すように、ビットプレーンA3における(0,0)の値はビット値a3(0,0)=0となり、ビットプレーンA2における(0,0)の値はa2(0,0)=1となり、ビットプレーンA1における(0,0)の値はa1(0,0)=1となり、ビットプレーンA0における(0,0)の値はa0(0,0)=0となる。
【0049】
以上、(0,0)の位置にある画素を代表例として説明したが、他の位置(x,y)にある画素についても同様に、各ビット値a3(x,y),a2(x,y),a1(x,y),a0(x,y)がそれぞれ得られ、各ビットプレーンA3,A2,A2,A0における(x,y)の値を構成する。
【0050】
以上のようにして、ビットプレーン抽出部41は、読み出した多値画像データから各ビットプレーンのデータを抽出する。
【0051】
次に、ブロック分割部42は、抽出した4つのビットプレーンのデータのうち、或るビットプレーンのデータを複数のブロックに分割する(ステップS106)。このとき、1つのブロックは、図4に示すように、x方向にN個、y方向にN個の合計N×N個の画素から成るブロックとし、各ブロックは、1行毎に、x方向に画素N/2個分ずれるように分割される。図4はビットプレーンを複数のブロックに分割したときのブロック分割構造を示す説明図である。図4において、Bij(j=0〜7)は、ビットプレーンAiの分割されたブロックを示している。
【0052】
図5は多値画像Aから4つのビットプレーンA0〜A3を抽出し、さらに複数のブロックに分割した様子を示す説明図である。図5において、(a)は多値画像Aを構成している複数の画素を示し、(b)は4つのビットプレーンA0〜A3が複数のブロックに分割されている様子を示している。
【0053】
図5(b)に示すように、例えば、N=2であるとすると、1つのブロックは、2×2の合計4個の画素から成るブロックとなり、1行毎にx方向に1画素ずつずれることになる。
【0054】
続いて、パリティ演算部43は、分割した複数のブロックのうち、或るブロックを選択し、そのブロックに含まれるN×N個の画素のビット値を用いて、そのブロックのパリティ値を下記の演算により求める(ステップS108)。
【0055】
即ち、対象となるブロックBijとし、そのブロックBijの基点となる左上隅の位置を(xj,yj)とすると、そのブロックBijのパリティ値Pbij(xj,yj)は、式(3)により求められる。
【0056】
【数3】
【0057】
例えば、今、ステップS106で選択したビットプレーンが最上位ビットに対応するA3であり、そのビットプレーンA3における各画素のビット値が、図6(a)に示す如くであるとする。
【0058】
図6はビットプレーンA3の各ブロックに対して行われる処理の手順を示す説明図である。
【0059】
対象となるブロックがB30である場合、図6(a)に示すように、4つの画素のビット値は、左上,右上,左下,右下の順に、(1,0,1,1)であるため、そのブロックB30のパリティ値Pb30(x0,y0)は、式(3)に従うと、次のように表される。
【0060】
Pb30(x0,y0)=(1+0+1+1)mod2=1
【0061】
また、対象となるブロックがB31である場合、図6(a)に示すように、4つの画素のビット値は、(0,0,0,0)であるため、そのブロックB31のパリティ値Pb31(x1,y1)は、式(3)に従うと、次のように表される。
【0062】
Pb31(x1,y1)=(0+0+0+0)mod2=0
【0063】
同様に、残りの6つのブロックB32〜B37のパリティ値Pb32(x2,y2)〜Pb37(x7,y7)も、次のように表される。
【0064】
Pb32(x2,y2)=(0+1+0+1)mod2=0
Pb33(x3,y3)=(1+1+0+1)mod2=1
Pb34(x4,y4)=(1+0+1+0)mod2=0
Pb35(x5,y5)=(0+0+0+0)mod2=0
Pb36(x6,y6)=(0+1+0+0)mod2=1
Pb37(x7,y7)=(1+0+1+1)mod2=1
【0065】
以上の結果、各ブロックのパリティ値は、図6(b)に示すごとくになる。
【0066】
次に、条件判定部44は、演算により求めたそのブロックのパリティ値が、予め設定されたパリティ制御値と一致しているか否かを判定する(ステップS110)。パリティ制御値Cは、「0」か「1」の何れかを設定することができる。本実施例では、背景色を低レベルの濃度値、改竄検出の対象部分を高レベルの濃度値として、パリティ検出を行うために、パリティ制御値をC=0に設定する。このように、パリティ制御値をC=0に設定することにより、ノイズの増大を防ぐことが可能となる。なぜなら、電子文書では、一般に、ビットプレーン上において、情報を持たないビット値「0」の連続した領域が、かなりの部分を占めるため、仮に、パリティ制御値をC=1に設定すると、その「0」の連続した領域が、奇数パリティに制御されてしまって(即ち、1ブロック中の4つの画素のうち、何れかの画素のビット値が「0」から「1」に変更されてしまって)、その「0」の連続した領域の中に、情報を持ったビット値「1」の点が出現することになり、ノイズが増大するように見えるからである。
【0067】
但し、本発明は、パリティ制御値をC=0に限定するものではなく、C=1を採り得ることは言うまでもない。また、パリティ制御値は、ビットプレーン毎にその設定を変えるようにしても良い。
【0068】
さて、図6(b)に示したとおり、ビットプレーンA3における各ブロックB30〜B37のパリティ値は、(1,0,0,1,0,0,1,1)であるので、上記の判定の結果、パリティ値がパリティ制御値C=0と一致しないのは、B30,B33,B36,B37の4つのブロックであり、それ以外のブロックはすべて一致する。
【0069】
そこで、一致すると判定されたブロックについては、そのまま何も処理を施さないが、一致しないと判定された上記4つのブロックについては、ビット値変更部45が、次のような処理を施す。
【0070】
即ち、ビット値変更部45は、パリティ値がパリティ制御値と一致していないブロックについて、そのブロック内の4つの画素のうち、何れか1つの画素のビット値を「0」から「1」に、または、「1」から「0」に変更する(ステップS112)。なお、4つの画素のうち、ビット値を変更すべき画素としては、電子文書に記載されている文字におけるエッジの部分に相当する画素を優先的に選ぶようにする。これは、ビット値の変更によって生じるノイズの違和感を局限するためである。
【0071】
そこで、一致しないと判定された上記4つのブロックのうち、例えば、ブロックB30については、図6(c)に示すように、そのブロック内の4つの画素のうち、左下の画素のビット値を「1」から「0」に変更する。すると、そのブロックB30の変更後のパリティ値Pb30(x0,y0)は、次のように表され、そのパリティ値はパリティ制御値C=0と一致することになる。
【0072】
Pb30(x0,y0)=(1+0+0+1)mod2=0
【0073】
なお、図6(c),(d)において、斜体の数字は、その値が変更されたことを示している。
【0074】
そして、残り3つのブロックについても同様に、ブロックB33については、右下の画素のビット値を「1」から「0」に、ブロックB36については、右上の画素のビット値を「1」から「0」に、ブロックB37については、左下の画素のビット値を「1」から「0」に、それぞれ変更する。すると、それらB33,B36,B37の変更後のパリティ値Pb33(x3,y3),Pb36(x6,y6),Pb37(x7,y7)も、それぞれ、次のように表され、そのパリティ値は何れもパリティ制御値C=0と一致することになる。
【0075】
Pb33(x3,y3)=(1+1+0+0)mod2=0
Pb36(x6,y6)=(0+0+0+0)mod2=0
Pb37(x7,y7)=(1+0+1+0)mod2=0
【0076】
こうして、選択したビットプレーンA3におけるすべてのブロックについて処理が終了する(ステップS114)と、すべてのブロックのパリティ値は、図6(d)に示すように、パリティ制御値C=0と一致するようになる。
【0077】
続いて、次のビットプレーンA2を選択し、上記したステップS106からS114までの処理を繰り返す。
【0078】
図7はビットプレーンA2の各ブロックに対して行われる処理の手順を示す説明図である。
【0079】
ビットプレーンA2における各画素のビット値が、図7(a)に示す如くであるとすると、各ブロックB20〜B27のパリティ値Pb20(x0,y0)〜Pb27(x7,y7)は、次のように表される。
【0080】
Pb20(x0,y0)=(1+1+1+1)mod2=0
Pb21(x1,y1)=(0+0+1+1)mod2=0
Pb22(x2,y2)=(0+1+1+1)mod2=1
Pb23(x3,y3)=(1+1+1+1)mod2=0
Pb24(x4,y4)=(1+1+1+1)mod2=0
Pb25(x5,y5)=(0+0+0+0)mod2=0
Pb26(x6,y6)=(1+1+0+1)mod2=1
Pb27(x7,y7)=(1+1+1+1)mod2=0
【0081】
以上の結果、各ブロックのパリティ値は、図7(b)に示すごとくになる。
【0082】
そこで、次に、各ブロックB20〜B27におけるパリティ値をパリティ制御値C=0と比較すると、パリティ値は(0,0,1,0,0,0,1,0)であるので、パリティ値がパリティ制御値と一致しないのは、B22,B26の2つのブロックである。
【0083】
続いて、一致しないと判定された2つのブロックB22,B26のうち、例えば、ブロックB22については、図7(c)に示すように、右下の画素のビット値を「1」から「0」に、ブロックB26についても、右下の画素のビット値を「1」から「0」に、それぞれ変更する。すると、それらB22,B36の変更後のパリティ値Pb22(x2,y2),Pb26(x6,y6)は、それぞれ、次のように表され、そのパリティ値は何れもパリティ制御値C=0と一致することになる。
【0084】
Pb22(x2,y2)=(0+1+1+0)mod2=0
Pb26(x6,y6)=(1+1+0+0)mod2=0
【0085】
こうして、選択したビットプレーンA2におけるすべてのブロックについて処理が終了すると、すべてのブロックのパリティ値は、図7(d)に示すように、パリティ制御値C=0と一致するようになる。
【0086】
同様に、残りの2つのビットプレーンA1,A0についても、それぞれ、上記したステップS106からS114までの処理を繰り返す。すると、ビットプレーンA1,A0におけるすべてのブロックについて、上記処理が終了した段階で、すべてのブロックのパリティ値はパリティ制御値C=0と一致するようになる。
【0087】
以上のようにして、抽出した4つのすべてのビットプレーンについて、処理が終了したら(ステップS116)、次に、ビットプレーン抽出部41は、ステップS104の処理とは逆の処理を行って、4つのすべてのビットプレーンのデータを合成して、多値画像データを復元する(ステップS118)。
【0088】
続いて、ブロック分割部42が、ステップ106で分割したブロックに関する情報を暗号化した上で、電子透かしによって、復元した多値画像データに埋め込む(ステップS120)。ブロックに関する情報とは、具体的には、ブロックのサイズ(即ち、x方向にN画素分、y方向にN画素分の大きさ)や、各ブロックの1行毎のずれ量(即ち、x方向に画素N/2個分のずれ)などである。
【0089】
以上によって、図2に示した一連の改竄検出前処理は終了する。
【0090】
このようにして改竄検出前処理の施された多値画像データは、その後、通信装置38からコンピュータネットワークを介して、その電子文書を必要とする利用者に送信される。
【0091】
C.電子文書改竄検出処理
一方、受信側においても、図1に示した装置と同様の装置が用意されており、上記のようにして送信された多値画像データは、コンピュータネットワークを介して通信装置38で受信され、ハードディスク装置36に格納される。
【0092】
このように、多値画像データが送信側から受信側にコンピュータネットワークを介して転送される場合、そのデータは様々なネットワークを通過することになるため、その転送途中で、不正な意図を有する者によって、そのデータの表す電子文書の内容が改竄される場合があり得る。そこで、受信側では、図1に示した装置によって、受信しハードディスク装置36に格納された多値画像データに対し、下記に述べるような改竄検出処理を施す。
【0093】
図8は図1のビットプレーン抽出部41、ブロック分割部42、パリティ演算部43、条件判定部44、及び改竄検出部46が行う電子文書改竄検出処理の手順を示すフローチャートである。この処理は、ビットプレーン抽出部41、ブロック分割部42、パリティ演算部43、条件判定部44、及び改竄検出部46の処理として実現されている。
【0094】
そこで、図8に示すように、この改竄検出処理が起動されると、まず、ブロック分割部42が、対象となる多値画像データをハードディスク装置36から読み出し(ステップS202)、その読み出した多値画像データから、埋め込まれている電子透かしを取り出し、そこに記載されている暗号化された情報を復号化して、ブロックに関する情報を取得する(ステップS204)。ブロック情報としては、前述したとおり、ブロックのサイズ(即ち、x方向にN画素分、y方向にN画素分の大きさ)や、各ブロックの1行毎のずれ量(即ち、x方向に画素N/2個分のずれ)などが取得される。
【0095】
次に、ビットプレーン抽出部41は、上記した多値画像データからビットプレーンのデータを抽出し(ステップS206)、続いて、ブロック分割部42が、抽出した4つのビットプレーンのデータのうち、或るビットプレーンのデータを選択し、ステップS204で取得したブロック情報に基づいて、その選択したビットプレーンを複数のブロックに分割する(ステップS208)。
【0096】
そして、パリティ演算部43は、分割した複数のブロックのうち、或るブロックを選択し、そのブロックに含まれるN×N個の画素のビット値を用いて、そのブロックのパリティ値を前述の式(3)に示した演算により求める(ステップS210)。次に、条件判定部44は、演算により求めたそのブロックのパリティ値が、予め設定されたパリティ制御値と一致しているか否かを判定する(ステップS212)。なお、本実施例では、前述したとおり、パリティ制御値はC=0に設定されている。
【0097】
判定の結果、一致すると判定されたブロックについては、そのまま何も処理しないが、一致しないと判定されたブロックについては、改竄検出部46が、そのブロックを改竄された部分であると特定し、別に用意された改竄部分表示データにおいて、そのブロックに×印を付する(ステップS214)。
【0098】
例えば、今、ステップS208で選択したビットプレーンが最上位ビットに対応するA3であり、そのビットプレーンA3における各画素のビット値と、分割した各ブロックが、図9(a)に示す如くであるとする。
【0099】
図9はビットプレーンA3の各ブロックに対して行われる処理の手順を示す説明図である。
【0100】
図9(a)において、斜線ハッチで示された画素は、転送途中で、不正な意図を有する者によって、改竄された画素である。
【0101】
そこで、各ブロックB30〜B37のパリティ値Pb30(x0,y0)〜Pb37(x7,y7)を、式(3)に従って求めると、次のように表される。
【0102】
Pb30(x0,y0)=(1+0+0+1)mod2=0
Pb31(x1,y1)=(0+0+0+0)mod2=0
Pb32(x2,y2)=(0+1+1+0)mod2=0
Pb33(x3,y3)=(1+1+1+1)mod2=1
Pb34(x4,y4)=(1+0+1+0)mod2=0
Pb35(x5,y5)=(0+1+0+0)mod2=1
Pb36(x6,y6)=(1+0+0+0)mod2=1
Pb37(x7,y7)=(1+0+0+1)mod2=0
【0103】
以上の結果、各ブロックのパリティ値は、図9(b)に示すごとくになる。そこで、さらに、各ブロックのパリティ値をパリティ制御値C=0と比較して、一致しているか否かを判定すると、パリティ値がパリティ制御値C=0と一致していないのは、B33,B35,B36の3つのブロックであることがわかる。
【0104】
従って、これら一致していない3つのブロックについては、改竄された画素が含まれており、改竄された部分であるとして、図9(c)に示すように、別に用意された改竄部分表示データにおいて、そのブロックの部分に×印を付する。
【0105】
こうして、選択したビットプレーンA3におけるすべてのブロックについて処理が終了する(ステップS216)と、続いて、次のビットプレーンA2を選択し、上記したステップS208からS216までの処理を繰り返す。
【0106】
図10はビットプレーンA2の各ブロックに対して行われる処理の手順を示す説明図である。
【0107】
ビットプレーンA2における各画素のビット値が、図10(a)に示す如くであるとすると、各ブロックB20〜B27のパリティ値Pb20(x0,y0)〜Pb27(x7,y7)は、次のように表される。
【0108】
Pb20(x0,y0)=(1+1+1+1)mod2=0
Pb21(x1,y1)=(0+0+1+1)mod2=0
Pb22(x2,y2)=(0+1+1+0)mod2=0
Pb23(x3,y3)=(1+1+1+1)mod2=0
Pb24(x4,y4)=(1+1+1+0)mod2=1
Pb25(x5,y5)=(0+0+0+0)mod2=0
Pb26(x6,y6)=(1+1+0+1)mod2=1
Pb27(x7,y7)=(1+1+0+1)mod2=1
【0109】
以上の結果、各ブロックのパリティ値は、図10(b)に示すごとくになる。そこで、さらに、各ブロックのパリティ値をパリティ制御値C=0と比較して、一致しているか否かを判定すると、パリティ値がパリティ制御値C=0と一致していないのは、B24,B26,B27の3つのブロックであることがわかる。
【0110】
従って、これら一致していない3つのブロックについては、改竄された画素が含まれており、改竄された部分であるとして、図10(c)に示すように、別に用意された改竄部分表示データにおいて、そのブロックの部分に×印を付する。
【0111】
同様に、残りの2つのビットプレーンA1,A0についても、それぞれ、上記したステップS208からS216までの処理を繰り返す。その結果、ビットプレーンA1,A0についても、同様の改竄部分表示データを得ることができる。
【0112】
以上のようにして、抽出した4つのすべてのビットプレーンについて、処理が終了したら(ステップS218)、次に、改竄検出部46は、4つのビットプレーンについてそれぞれ得られた改竄部分表示データに基づいて、各ビットプレーン毎に、改竄部分表示画面(図示せず)を表示装置34に表示させる(ステップS220)。
以上により、図8に示した一連の改竄検出処理は終了する。
【0113】
D.改竄検出の実験結果
次に、実験を行って、上記した電子文書改竄検出前処理や電子文書改竄検出処理により、改竄された電子文書について、その改竄部分を検出できるかどうかを、実際に検討した。
【0114】
D−1.実験1
実験1では、まず、ワープロソフトにより表示装置34の画面上に文書を表示した際に、その表示データを抽出し、その抽出した多値画像データに対して、図2に示した電子文書改竄検出前処理を行った。そして、次に、その多値画像データの示す電子文書に対して改竄を施し、続いて、図8に示した電子文書改竄検出処理を行って、その改竄部分が検出できるかどうかについて検討した。なお、この実験1では、分割するブロックのサイズがN=50の場合とN=20の場合とに分けて実験を行い、両者の場合とも、同様の改竄を施すようにした。
【0115】
図11は改竄前の電子文書を示す説明図、図12はブロックサイズがN=50の場合における改竄後の電子文書とその改竄部分の検出結果を示す説明図、図13はブロックサイズがN=20の場合における改竄後の電子文書とその改竄部分の検出結果を示す説明図である。図12,図13において、(a)は改竄後の電子文書を示し、(b)は改竄部分の検出結果を示している。
【0116】
図11と図12(a)及び図13(a)とを比較すれば明らかなように、電子文書中において、「¥ 25,000」の部分のうち、2箇所が改竄されて(具体的には、万の位の「2」が削除されると共に、百の位の「0」が「5」に変更されている。)、結果として、「¥ 5,500」となっている。
【0117】
これに対し、ブロックサイズがN=50の場合は、図12(b)に示すように、改竄された2箇所に、それぞれ、改竄部分を表す×印が2つずつ表示されている。一方、ブロックサイズがN=20の場合は、図13(b)に示すように、改竄された2箇所のうち、変更された部分に多数の×印が表示されている。しかしながら、削除された部分には×印は表示されていない。これは、次の理由による。本実施例で用いているパリティ検出は、本来、「1」,「0」がx,y方向に或る程度分散していないと、精度よく検出することは難しい。従って、電子文書に記載された文字のエッジ部分では精度よく検出することができるが、文字の内部では精度よく検出することができない。即ち、上記したブロックサイズがN=20の場合、ブロックサイズが小さいために、電子文書に記載された文字の内部に、それらブロックが含まれてしまい、それにより、精度よく検出することができなかったのである。
【0118】
よって、分割するブロックのサイズは、電子文書に記載されている文字のサイズに応じて設定するのが好ましい。
【0119】
D−2.実験2
実験2では、まず、印刷文書をスキャナ39によって読み取って、それにより得られた多値画像データに対して、図2に示した電子文書改竄検出前処理を行った。そして、次に、その多値画像データの示す電子文書に対して改竄を施し、図8に示した電子文書改竄検出処理を行って、その改竄部分が検出できるかどうかについて検討した。なお、この実験2では、分割するブロックのサイズはN=20とした。
【0120】
図14は改竄前の電子文書を示す説明図、図15はブロックサイズがN=20の場合における改竄後の電子文書とその改竄部分の検出結果を示す説明図である。図15において、(a)は改竄後の電子文書を示し、(b)は改竄部分の検出結果を示している。
【0121】
図14と図15(a)とを比較すれば明らかなように、電子文書中において、「30127−7272628」の部分のうち、2箇所が改竄されて(具体的には、前半5桁の後尾の「7」が「1」に変更されると共に、後半6桁の先頭の「7」が削除されている。)、結果として、「30121− 272628」となっている。
【0122】
これに対し、改竄検出の結果としては、図15(b)に示すように、改竄された2箇所に、それぞれ、改竄部分を表す×印が多数表示され、改竄部分を精度よく検出していることがわかる。
【0123】
このように、スキャナで読み取って得られた多値画像データは、スキャナで読み取る際に、濃度値が不特定に変化し、ノイズも混入するという特徴を有する。これらのランダムな歪によって、すべてのブロック内には、ビット値が「1」となる画素が存在するため、ブロックサイズを気にすることなく、本実施例で用いているパリティ検出を適用することができる。図15(b)に示した結果からも明らかなように、本実施例で用いているパリティ検出は、このようなノイズが混在するスキャナ読み取り画像データに対して、より好適に適用することができる。
【0124】
E.実施例の効果
以上説明したように、本実施例によれば、電子文書を表す多値画像データに対し、図2に示した電子文書改竄検出前処理さえ行っておけば、その後、その多値画像データがコンピュータネットワークなどを介して転送される途中で、そのデータの表す電子文書の内容が改竄されても、図8に示した電子文書改竄検出処理を行うことによって、改竄の有無だけでなく、改竄された部分も容易に検出することができる。従って、電子文書を利用する場合のデータの信憑性を保証することができ、改竄などの不正行為の未然防止につなげることができる。
【0125】
また、本実施例では、ブロックに関する情報を暗号化した上で電子透かしで埋め込んでいるため、不正な意図を有する者が、そのブロック情報を取得するのは困難であり、電子文書に対し、ブロック構造を考慮した巧妙な改竄を行うことは不可能となる。また、電子文書の内容が改竄された場合でも、ブロック情報は埋め込まれているので、ブロック情報まで破壊されることを回避することができる。また、暗号や電子透かしの存在によって、その電子文書に対するデータの信憑性をさらに保証することができる。
【0126】
F.変形例
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0127】
F−1.変形例1
上記した実施例においては、多値画像データから抽出した4つのすべてのビットプレーンのデータに対して、それぞれ、一連の処理(即ち、図2のステップS106〜S114、図8のステップS208〜S216の処理)を施したが、本発明はこれに限定されるものではなく、一部のビットプレーンのデータに対してのみ、そのような処理を施すようにしても良い。その場合には、最終的に、それら一部のビットプレーンについてのみ、検出した改竄部分の表示を行うことができる。
【0128】
また、図2に示した電子文書改竄検出前処理では、パリティ値がバリティ制御値と一致いないブロックについては、ブロック内の画素のビット値を変更することになる(ステップS112)。しかし、そのビットプレーンが多値画像データにおける上位ビットのビットプレーン(例えば、図3(b),図5(b)に示すA3やA2など)である場合には、下位ビットのビットプレーン(例えば、図3(b),図5(b)に示すA1やA0など)の場合に比較して、そのような画素のビット値の変更は、その画素の濃度値に与える影響が大きい。
【0129】
即ち、多値画像データが4ビットである場合、或る画素の濃度値は4ビットで表現されることになる。従って、その画素の濃度値が「1111」であるとすると、その4ビットのうち、最下位ビットのビット値を「0」に変更しても、その画素の濃度値は「1110」となってほとんど変化がないが、最上位ビットのビット値を「0」に変更すると、その画素の濃度値は「0111」となって大きく変わってしまうことになるからである。
【0130】
従って、一部のビットプレーンのデータに対してのみ、上記実施例に示した処理(即ち、図2のステップS106〜S114の処理)を行う場合には、比較的下位ビットのビットプレーンについて行う方が、濃度値に与える影響が少ないので、好ましい。
【0131】
F−2.変形例2
上記した実施例では、各ビットプレーン毎に複数のブロックに分割し、各々のブロックのパリティ値を求めていたが、本発明は、これに限定されるものではない。
【0132】
図16はブロックの分割の仕方として種々の方法を説明するための説明図である。
【0133】
即ち、上記した実施例では、図16(a)に示すように、多値画像データから抽出された4つのビットプレーンA0〜A3について、各ビットプレーンAi毎に、複数のブロックBijに分割していた。
【0134】
しかしながら、図16(b)に示すように、4つのすべてのビットプレーンA0〜A3を統合し、その統合したビットプレーンについて、ブロック分割を行い、ブロックBjのような、4つのビットプレーンのビット値を含むブロックを得るようにしてもよい。また、図16(c)に示すように、4つのビットプレーンA0〜A3のうち、任意の2つのビットプレーンAi,Apを統合し、その統合したビットプレーンについて、ブロック分割を行い、ブロックB’jのような、2つのビットプレーンのビット値を含むブロックを得るようにしてもよい。
【0135】
なお、図16(a),(b),(c)に示すブロックBij,Bj,B’jは、何れも、2×2の合計4個の画素から成っている。しかし、図16(a)に示すブロックBijには、上記した実施例で説明したとおり、ai(xj,yj),ai(xj+1,yj),ai(xj,yj+1),ai(xj+1,yj+1)の4つのビット値しか含まないのに対し、図16(b)に示すブロックBjには、上述したとおり、ビットプレーンA3の4つのビット値a3(xj,yj),a3(xj+1,yj),a3(xj,yj+1),a3(xj+1,yj+1)と、ビットプレーンA2の4つのビット値a2(xj,yj),a2(xj+1,yj),a2(xj,yj+1),a2(xj+1,yj+1)と、ビットプレーンA1の4つのビット値a1(xj,yj),a1(xj+1,yj),a1(xj,yj+1),a1(xj+1,yj+1)と、ビットプレーンA0の4つのビット値a0(xj,yj),a0(xj+1,yj),a0(xj,yj+1),a0(xj+1,yj+1)の合計16個のビット値を含むことになる。また、図16(c)に示すブロックB’jには、ビットプレーンAiの4つのビット値ai(xj,yj),ai(xj+1,yj),ai(xj,yj+1),ai(xj+1,yj+1)と、ビットプレーンApの4つのビット値ap(xj,yj),ap(xj+1,yj),ap(xj,yj+1),ap(xj+1,yj+1)の合計8つのビット値を含むことになる。
【0136】
よって、図16(a)に示すブロックBijのパリティ値は、上記した4つのビット値の和を2で除した余りであった(式(3)参照)のに対し、図16(b)に示すブロックBjのパリティ値は、上記した16個のビット値の和を2で除した余りとなり、図16(c)に示すブロックB’jのパリティ値は、上記した8つのビット値の和を2で除した余りとなる。
【0137】
このように、1つのビットプレーンについて、ブロック分割を行ってもよいし、また、複数のビットプレーンを統合し、その統合したビットプレーンに対してブロック分割を行ってもよく、少なくとも、各ブロックは、1以上の画素を単位とするブロックであればよい。
【0138】
また、図16(b),(c)に示すブロックBj,B’jの場合、上記のごとく得られパリティ値がパリティ制御値と一致しない場合、ブロック内の何れか1つビット値を変更することになるが、画素の濃度値にできる限り影響を与えないようにするために、図16(b)に示すブロックBjでは、最下位ビットのビットプレーンA0のビット値を、図16(c)に示すブロックB’jでは、下位ビットの方のビットプレーンのビット値を、それぞれ、変更することが好ましい。
【0139】
また、上記した実施例では、x,y方向に対するブロックの形状は、正方形であったが、本発明はこれに限定されるものではなく、任意の四辺形であっても良く、また、図17に示すように、任意の三角形であってもよい。また、その他、多角形であってもよく、いかなる形状であってもよい。図17はブロックの分割の仕方として他の例を示す説明図である。
【0140】
F−3.変形例3
上記した実施例では、改竄部分を検出するための手法として、パリティ検出を利用したが、本発明は、これに限定されるものではなく、例えば、ハミング(Hamming),巡回(cyclic),BCH(Bose-Chaudhuri-Hocquenghem),ファイア(Fire)など、種々の符号誤り検出や符号誤り訂正の手法を利用することができる。
【0141】
また、このような他の手法を利用する場合には、当然に、図2のステップS108や図8のステップS210で行う演算や、ステップS110やステップS212で判定の基準となる条件として、それぞれ、その手法に対応した演算や条件が適用されることになる。
【0142】
F−4.変形例4
上記した実施例では、ブロックに関する情報は、暗号化した上で電子透かしにより多値画像データに埋め込まれていたが、本発明は、これに限定されるものではない。
例えば、ブロックに関する情報を暗号化することなく、そのまま、電子透かしで多値画像データに埋め込むようにしても良い。その場合、受信側では、多値画像データから、埋め込まれたブロック情報をそのまま取り出すようにする。
また、ブロック情報を暗号化して、多値画像データに埋め込まずに、単に付加するようにしても良い。その場合、受信側では、多値画像データから、付加されたブロック情報を取り出し、復号化するようにする。
このように、ブロック情報は、多値画像データに、どのような形態で組み込ませるようにしてもよい。
【図面の簡単な説明】
【図1】本発明の一実施例として電子文書改竄検出前処理及び電子文書改竄検出処理を実行する電子文書改竄検出装置10の構成を示すブロック図である。
【図2】図1のビットプレーン抽出部41、ブロック分割部42、パリティ演算部43、条件判定部44、及びビット値変更部45が行う電子文書改竄検出前処理の手順を示すフローチャートである。
【図3】4ビットの多値画像データから4枚のビットプレーンが成立する様子を示す説明図である。
【図4】ビットプレーンを複数のブロックに分割したときのブロック分割構造を示す説明図である。
【図5】多値画像Aから4つのビットプレーンA0〜A3を抽出し、さらに複数のブロックに分割した様子を示す説明図である。
【図6】ビットプレーンA3の各ブロックに対して行われる処理の手順を示す説明図である。
【図7】ビットプレーンA2の各ブロックに対して行われる処理の手順を示す説明図である。
【図8】図1のビットプレーン抽出部41、ブロック分割部42、パリティ演算部43、条件判定部44、及び改竄検出部46が行う電子文書改竄検出処理の手順を示すフローチャートである。
【図9】ビットプレーンA3の各ブロックに対して行われる処理の手順を示す説明図である。
【図10】ビットプレーンA2の各ブロックに対して行われる処理の手順を示す説明図である。
【図11】改竄前の電子文書を示す説明図である。
【図12】ブロックサイズがN=50の場合における改竄後の電子文書とその改竄部分の検出結果を示す説明図である。
【図13】ブロックサイズがN=20の場合における改竄後の電子文書とその改竄部分の検出結果を示す説明図である。
【図14】改竄前の電子文書を示す説明図である。
【図15】ブロックサイズがN=20の場合における改竄後の電子文書とその改竄部分の検出結果を示す説明図である。
【図16】ブロックの分割の仕方として種々の方法を説明するための説明図である。
【図17】ブロックの分割の仕方として他の例を示す説明図である。
【符号の説明】
10…電子文書改竄検出装置
22…CPU
24…RAM
26…ROM
30…キーボード
32…マウス
34…表示装置
36…ハードディスク装置
38…通信装置
39…スキャナ
40…バス
41…ビットプレーン抽出部
42…ブロック分割部
43…パリティ演算部
44…条件判定部
45…ビット値変更部
46…改竄検出部
Claims (17)
- 電子文書に対する改竄を検出するための前処理を行う電子文書改竄検出前処理方法であって、
(a)前記電子文書を表す多値画像データに含まれるデータを、1以上の画素を単位とする複数のブロックに分割する工程と、
(b)分割した各ブロック毎に、そのブロックに含まれる画素の値を用いて、そのブロックに含まれる画素のビットの値の和が奇数であるか偶数であるかを求める演算を行う工程と、
(c)各ブロック毎に、前記演算結果が所定の条件を満たしているか否かを判定する工程と、
(d)前記演算結果が前記所定の条件を満たしていないブロックについては、演算結果が前記所定の条件を満たし得るように、そのブロックに含まれる少なくとも1つの画素の値を変更する工程と、
を備える電子文書改竄検出前処理方法。 - 請求項1に記載の電子文書改竄検出前処理方法において、
前記多値画像データに含まれる前記データは、画素における或るビットの値を表すビットプレーンのデータであることを特徴とする電子文書改竄検出前処理方法。 - 請求項2に記載の電子文書改竄検出前処理方法において、
前記ビットプレーンのデータは、比較的下位のビットの値を表すビットプレーンのデータであることを特徴とする電子文書改竄検出前処理方法。 - 請求項1に記載の電子文書改竄検出前処理方法において、
前記多値画像データに含まれる前記データは、画素における複数のビットの値をそれぞれ表す複数のビットプレーンを統合したデータであることを特徴とする電子文書改竄検出前処理方法。 - 請求項1に記載の電子文書改竄検出前処理方法において、
前記所定の条件は、前記演算結果が偶数であることを特徴とする電子文書改竄検出前処理方法。 - 請求項1に記載の電子文書改竄検出前処理方法において、
前記所定の条件は、前記演算結果が奇数であることを特徴とする電子文書改竄検出前処理方法。 - 請求項1に記載の電子文書改竄検出前処理方法において、
(e)前記工程(a)〜(d)の各処理を施した前記多値画像データに、前記ブロックに関する情報を電子透かしで埋め込む工程
をさらに備える電子文書改竄検出前処理方法。 - 請求項1に記載の電子文書改竄検出前処理方法において、
(e)前記ブロックに関する情報を暗号化すると共に、該情報を、前記工程(a)〜(d)の各処理を施した前記多値画像データに付加する工程
をさらに備える電子文書改竄検出前処理方法。 - 請求項1に記載の電子文書改竄検出前処理方法において、
(e)前記ブロックに関する情報を暗号化すると共に、該情報を、前記工程(a)〜(d)の各処理を施した前記多値画像データに電子透かしで埋め込む工程
をさらに備える電子文書改竄検出前処理方法。 - 電子文書に対する改竄を検出する電子文書改竄検出方法であって、
(a)前記電子文書を表す多値画像データに含まれるデータを、1以上の画素を単位とする複数のブロックに分割する工程と、
(b)分割した各ブロック毎に、そのブロックに含まれる画素の値を用いて、そのブロックに含まれる画素のビットの値の和が奇数であるか偶数であるかを求める演算を行う工程と、
(c)各ブロック毎に、前記演算結果が所定の条件を満たしているか否かを判定する工程と、
(d)前記演算結果が前記所定の条件を満たしていないブロックについて、前記電子文書における該ブロックに関わる部分が改竄された部分であると特定する工程と、
を備える電子文書改竄検出方法。 - 請求項10に記載の電子文書改竄検出方法において、
(e)前記多値画像データに、前記ブロックに関する情報が電子透かしで埋め込まれている場合に、前記多値画像データから前記情報を取り出す工程
をさらに備える電子文書改竄検出前処理方法。 - 請求項10に記載の電子文書改竄検出方法において、
(e)前記多値画像データに、前記ブロックに関する情報が暗号化されて付加されている場合に、前記多値画像データから前記情報を取り出して復号化する工程
をさらに備える電子文書改竄検出前処理方法。 - 請求項10に記載の電子文書改竄検出方法において、
(e)前記多値画像データに、前記ブロックに関する情報が暗号化されて電子透かしで埋め込まれている場合に、前記多値画像データから前記情報を取り出して復号化する工程
をさらに備える電子文書改竄検出前処理方法。 - 電子文書に対する改竄を検出するための前処理を行う電子文書改竄検出前処理装置であって、
前記電子文書を表す多値画像データに含まれるデータを、1以上の画素を単位とする複数のブロックに分割するブロック分割手段と、
分割した各ブロック毎に、そのブロックに含まれる画素の値を用いて、そのブロックに含まれる画素のビットの値の和が奇数であるか偶数であるかを求める演算を行う演算手段と、
各ブロック毎に、前記演算結果が所定の条件を満たしているか否かを判定する条件判定手段と、
前記演算結果が前記所定の条件を満たしていないブロックについては、演算結果が前記所定の条件を満たし得るように、そのブロックに含まれる少なくとも1つの画素の値を変更する値変更手段と、
を備える電子文書改竄検出前処理装置。 - 電子文書に対する改竄を検出する電子文書改竄検出装置であって、
前記電子文書を表す多値画像データに含まれるデータを、1以上の画素を単位とする複数のブロックに分割するブロック分割手段と、
分割した各ブロック毎に、そのブロックに含まれる画素の値を用いて、そのブロックに含まれる画素のビットの値の和が奇数であるか偶数であるかを求める演算を行う演算手段と、
各ブロック毎に、前記演算結果が所定の条件を満たしているか否かを判定する条件判定手段と、
前記演算結果が前記所定の条件を満たしていないブロックについて、前記電子文書における該ブロックに関わる部分が改竄された部分であると特定する改竄部分特定手段と、
を備える電子文書改竄検出装置。 - 電子文書に対する改竄を検出すべく前処理を行わせるためのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記電子文書を表す多値画像データに含まれるデータを、1以上の画素を単位とする複数のブロックに分割する機能と、
分割した各ブロック毎に、そのブロックに含まれる画素の値を用いて、そのブロックに含まれる画素のビットの値の和が奇数であるか偶数であるかを求める演算を行う機能と、
各ブロック毎に、前記演算結果が所定の条件を満たしているか否かを判定する機能と、
前記演算結果が前記所定の条件を満たしていないブロックについては、演算結果が前記所定の条件を満たし得るように、そのブロックに含まれる少なくとも1つの画素の値を変更する機能と、
を前記コンピュータに実現させるためのコンピュータプログラムを記録した記録媒体。 - 電子文書に対する改竄を検出させるためのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記電子文書を表す多値画像データに含まれるデータを、1以上の画素を単位とする複数のブロックに分割する機能と、
分割した各ブロック毎に、そのブロックに含まれる画素の値を用いて、そのブロックに含まれる画素のビットの値の和が奇数であるか偶数であるかを求める演算を行う機能と、
各ブロック毎に、前記演算結果が所定の条件を満たしているか否かを判定する機能と、
前記演算結果が前記所定の条件を満たしていないブロックについて、前記電子文書における該ブロックに関わる部分が改竄された部分であると特定する機能と、
を前記コンピュータに実現させるためのコンピュータプログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000220017A JP4220661B2 (ja) | 2000-07-21 | 2000-07-21 | 電子文書改竄検出方法及びその装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000220017A JP4220661B2 (ja) | 2000-07-21 | 2000-07-21 | 電子文書改竄検出方法及びその装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002044429A JP2002044429A (ja) | 2002-02-08 |
JP4220661B2 true JP4220661B2 (ja) | 2009-02-04 |
Family
ID=18714698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000220017A Expired - Fee Related JP4220661B2 (ja) | 2000-07-21 | 2000-07-21 | 電子文書改竄検出方法及びその装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4220661B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3804012B2 (ja) | 2002-03-08 | 2006-08-02 | 沖電気工業株式会社 | 文書画像の改ざん判定方法及びシステム、並びにその制御用プログラム |
JP3773482B2 (ja) * | 2002-10-30 | 2006-05-10 | 独立行政法人科学技術振興機構 | 改ざん検出方法、改ざん検出プログラム及びそのプログラムを記録した記録媒体 |
JP3922369B2 (ja) * | 2003-01-21 | 2007-05-30 | 日本ビクター株式会社 | 埋め込み情報の記録装置及び再生装置並びに記録用プログラム及び再生用プログラム |
JP2005012530A (ja) | 2003-06-19 | 2005-01-13 | Ricoh Co Ltd | 改ざん検証用文書作成システム、改ざん検証システムおよび改ざん防止システム |
SG120173A1 (en) * | 2004-08-17 | 2006-03-28 | Sony Corp | Methods and apparatus for watermarking digital data |
JP5340029B2 (ja) * | 2008-06-27 | 2013-11-13 | キヤノン株式会社 | 情報処理装置及びその制御方法、検証装置及びその制御方法 |
JP6958241B2 (ja) * | 2017-10-31 | 2021-11-02 | 富士通株式会社 | 変更検出プログラム、変更検出方法および変更検出装置 |
-
2000
- 2000-07-21 JP JP2000220017A patent/JP4220661B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002044429A (ja) | 2002-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fridrich et al. | New fragile authentication watermark for images | |
US7146502B2 (en) | Information processing apparatus and its control method, computer program, and storage medium | |
Chen et al. | A fuzzy c-means clustering-based fragile watermarking scheme for image authentication | |
US7100050B1 (en) | Secured signal modification and verification with privacy control | |
US7324662B2 (en) | Method, software, and device for hiding data in binary image, while preserving image quality | |
EP1291819A2 (en) | Digital watermark embeddig | |
WO1999057885A1 (en) | Digital authentication with analog documents | |
Cheung et al. | A sequential quantization strategy for data embedding and integrity verification | |
US7440584B2 (en) | System and method for marking data and document distribution | |
Singh et al. | An efficient fragile watermarking scheme with multilevel tamper detection and recovery based on dynamic domain selection | |
CN113988242A (zh) | 基于多区域的防伪码生成与校验方法、系统、设备及介质 | |
JP4220661B2 (ja) | 電子文書改竄検出方法及びその装置 | |
JP4426617B2 (ja) | 符号化されたドットを使用したドキュメントの改ざん検知方法 | |
CN111881425A (zh) | 图片版权认证方法、装置及存储介质 | |
JP2000156781A (ja) | 電子透かし埋め込み装置、不正検知装置及びコンピュータ読み取り可能な記憶媒体 | |
JP4167372B2 (ja) | 電子透かしの埋め込み方法、抽出方法、不可視化方法、及び可視化方法並びに埋め込み装置 | |
Puhan et al. | Binary document image watermarking for secure authentication using perceptual modeling | |
CN114493976A (zh) | 一种基于脆弱水印的jpeg图像篡改检测方法 | |
JP3854804B2 (ja) | 情報処理装置及びその制御方法及びコンピュータプログラム及び記憶媒体 | |
JP2003110842A (ja) | 画像処理装置及び方法及び記録媒体 | |
US11954756B1 (en) | Anti-leak digital document marking system and method using distributed ledger | |
US20040123100A1 (en) | Certificate issuing method and certificate verifying method | |
JP2000155718A (ja) | 著作権保護装置及びコンピュータ読み取り可能な記憶媒体 | |
Chang et al. | Fragile watermarking scheme for digital image authentication using pixel difference | |
Chotikakamthorn et al. | Digital watermarking technique for image authentication by neighbouring block similarity measure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070713 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080704 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080715 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080903 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20081028 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081114 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121121 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121121 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131121 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |