JP2010044609A - データ改ざん検出装置、データ改ざん検出方法、およびデータ改ざん検出プログラム - Google Patents

データ改ざん検出装置、データ改ざん検出方法、およびデータ改ざん検出プログラム Download PDF

Info

Publication number
JP2010044609A
JP2010044609A JP2008208480A JP2008208480A JP2010044609A JP 2010044609 A JP2010044609 A JP 2010044609A JP 2008208480 A JP2008208480 A JP 2008208480A JP 2008208480 A JP2008208480 A JP 2008208480A JP 2010044609 A JP2010044609 A JP 2010044609A
Authority
JP
Japan
Prior art keywords
data
nth
remaining
composite
length
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.)
Granted
Application number
JP2008208480A
Other languages
English (en)
Other versions
JP4924568B2 (ja
Inventor
Kazuaki Suzuki
和明 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008208480A priority Critical patent/JP4924568B2/ja
Publication of JP2010044609A publication Critical patent/JP2010044609A/ja
Application granted granted Critical
Publication of JP4924568B2 publication Critical patent/JP4924568B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】複数の独立した異なるデータによって構成される一組のデータ対の関連付けを維持し、データの改ざんがあってもそのことを検出可能な改ざん検出装置などを提供する。
【解決手段】本発明に係る改ざん検出装置1は、一意的に関連づけられる必要のある第1および第2のデータ101〜102の改ざんを検出する改ざん検出装置であって、第1のデータと第2のデータとをXOR(排他的論理和)演算して合成データ104を生成する演算部103と、合成データを記憶する記憶部205とを有し、演算部が第1のデータと第2のデータのうち一方のデータと合成データとをXOR演算して他方のデータを生成する。
【選択図】図2

Description

本発明は、複数の独立したデータによって構成されるデータ対に関し、特にそのようなデータ対の改ざんの検出に係るデータ改ざん検出装置等に関する。
たとえば仕様書とレビュー記録、身分証明書と指紋データなどのように、複数の独立したデータを一対のものとして管理し、それらのデータが改ざんされた場合にそのことを容易に検出可能であることが必要である場合がある。そのために専用のデータ管理システムを構築するのは、該データを利用する全てのユーザが利用可能なものである必要があるので、関係者が多い場合にはコスト面での課題が大きい。このため、既存のデータ保存システムを有効に活用し、かつ巨大な計算機システムを必要とせずに、データ対の改ざんを検出可能な管理方式が求められている。
これに関連する技術文献として、次の各々が開示されている。特許文献1には、メモリ素子上で2進数表現されたデータに対してデータ秘匿性を向上するスクランブル回路がけ記載されている。特許文献2および3には、登録文書に含まれる文字をデータベース化して検索可能とする文書管理装置が記載されている。
特許文献4には、データの内容を示す識別子が同一内容を示すか否かを判定する同定処理について記載されている。特許文献5には、電子メール本文の内容に関連する文書を当該電子メールに添付するための方法について記載されている。
特開2004−361986号公報 特開平08−161357号公報 特開平10−040256号公報 特開平11−203185号公報 特許第4062579号公報
複数の独立した異なるデータによって構成される一組のデータ対で、その関連付けを維持しなければならない場合、通常の各々のデータの識別子の組を管理するという方法がとられる。この方法自体は特別なものではなく、特殊な処理を特に必要とはしない。
しかし、データ対を構成するデータ自体はそれぞれに独立したデータであるため、それぞれを編集して更新することが可能である。そのため、人為的なミス、あるいは故意等により、本来のデータの関連づけを維持できなくなる危険性がある。
たとえば、仕様書Aとデータ対を構成するレビュー記録表αがある場合、仕様書Aを更新してA’とした場合にそれに対応してレビュー記録表αが更新されないと、この時点で正しい関連付けが破壊されたことになる。このように、独立した異なるデータによってデータ対を構成した場合の関連づけ情報は、一方に改ざんが発生した場合にそのことを検出できず、その関連付けを完全に維持することができるものではなかった。
ハッシュ関数を用いるなどしてデータそのものの改ざんを検知する方法はある。しかしながら、ハッシュ値の組を管理するだけではデータ対の関連付けまで完全に維持できるものではない。たとえば、ハッシュ値を管理する組み合わせデータそのものを改ざんされた場合には、その関連付けを維持することはできない。
上述の特許文献1は、特定のハードウェアの構成を前提とするものであるので、上記の問題を解決することはできない。また特許文献2〜5はいずれも、文書内に文字として表現された内容の「関連性」についてのものである。上記のように複数の独立した異なるデータによって構成されるデータ対の「関連性」は、文字として表現された内容の「関連性」とは異なるものである。即ち、特許文献1〜5のいずれの技術も、上記の問題に対して適用できるものではない。
本発明の目的は、複数の独立した異なるデータによって構成される一組のデータ対の関連付けを維持し、一方のデータに改ざんがあってもそのことを検出可能なデータ改ざん検出装置、データ改ざん検出方法およびそのプログラムを提供することにある。
上記目的を達成するため、本発明に係るデータ改ざん検出装置は、一意的に関連づけられる必要のある第1および第2のデータの改ざんを検出するデータ改ざん検出装置であって、第1のデータと第2のデータとをXOR(排他的論理和)演算して合成データを生成する演算部と、合成データを記憶する記憶部とを有し、演算部が、第1のデータと第2のデータのうち一方のデータと合成データとをXOR演算して他方のデータを生成することを特徴とする。
上記目的を達成するため、本発明に係るデータ改ざん検出方法は、一意的に関連づけられる必要のある第1および第2のデータの改ざんを検出するデータ改ざん検出方法であって、第1のデータと第2のデータとをXOR(排他的論理和)演算して合成データを生成し、合成データを記憶し、第1のデータと第2のデータのうち一方のデータと合成データとをXOR演算して他方のデータを生成することを特徴とする。
上記目的を達成するため、本発明に係るデータ改ざん検出プログラムは、一意的に関連づけられる必要のある第1および第2のデータの改ざんを検出する改ざん検出装置を形成するコンピュータに、第1のデータと第2のデータとをXOR(排他的論理和)演算して合成データを生成する手順と、合成データを記憶する手順と、第1のデータと第2のデータのうち一方のデータと合成データとをXOR演算して他方のデータを生成する手順とを実行させることを特徴とする。
本発明は、上述したように第1および第2のデータをXOR(排他的論理和)演算して生成した合成データに、さらに第1のデータと第2のデータのうち一方のデータをXOR演算して他方のデータを生成するので、特殊な計算を特に必要とはせずに、記憶保持している他方のデータと生成されたデータとを比較することによって、第1もしくは第2のデータに改ざんがあったことを検出可能である。これによって、複数の独立した異なるデータによって構成される一組のデータ対の関連付けを維持し、データの改ざんがあってもそのことを検出可能であるという、従来にない優れたデータ改ざん検出装置、データ改ざん検出方法およびそのプログラムを提供することができる。
[第1の実施形態]
以下、本発明の実施形態の構成について添付図に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るデータ改ざん検出装置1は、図1〜2に示すように、第1のデータ(文書A101)と第2のデータ(文書B102)とをXOR(排他的論理和)演算して合成データ(COM(A,B)104)を生成する演算部(演算装置103)と、合成データを記憶する記憶部(作業用データ保存部205)とを有する。その上で演算部(演算装置103)は、合成データ(COM(A,B)104)と第1のデータと第2のデータのうちの一方のデータとをXOR演算して他方のデータを生成する。
そして、演算部(演算装置103)は、次の処理を行う合成部204を備える。合成部204は、一方のデータ(文書B102)が他方のデータ(文書A101)より短い場合、他方のデータ(文書A101)から一方のデータ(文書B102)と同一のデータ長を第1の部分データとして切り出し、残りを第1の残データとし、と一方のデータ(文書B102)とをXOR演算して得られた第1の合成データを記憶部(作業用データ保存部205)に保存する。
以後は、nを2以上の自然数とすると、第n−1の残データが一方のデータより長い場合、第n−1の残データから一方のデータ(文書B102)とデータ長が同一の第nの部分データを切り出し、その残りを第nの残データとして、第nの部分データと一方のデータ(文書B102)とをXOR演算して得られた第nの合成データを記憶部に保存するという処理を繰り返す。
第nの部分データが一方のデータ(文書B102)よりも短くなれば一方のデータ(文書B102)から第nの部分データと同一のデータ長を切り出した第n+1の部分データと第nの部分データとをXOR演算して得られた第n+1の合成データを記憶部に保存する。
そして、第1〜第n+1の合成データを切り出し順に従って連結して、合成データ(COM(A,B)104)を生成する。
そして、この合成部204は、合成データ(COM(A,B)104)から一方のデータ(文書B102)と同一のデータ長を切り出して一方のデータ(文書B102)とXOR演算する処理を繰り返し、これらのXOR演算によって得られたデータを切り出し順に従って連結することによって他方のデータ(文書A101)を生成することができる。この処理は第1および第2のデータ101〜102から合成データ(COM(A,B)104)を生成する際の処理と同一でよい。
ここで演算部(演算装置103)は、第1および第2のデータ101〜102に、それぞれのデータ長およびファイル名を表すデータを連結する整形部203を備えるようにし、合成部204は整形部203がデータ長およびファイル名を表すデータを連結したデータに対して前述の処理を行うようにすることもできる。
このようにすることにより、合成データ(COM(A,B)104)と一方のデータ(文書B102)とがあれば、他方のデータ(文書A101)を生成することのできるデータ改ざん検出装置1を得ることができる。以下、これをさらに詳述する。
[基本原理]
関連付けるべき計算機上のデータ対をAおよびBとする。この二つのデータはコンピュータ上では2進数列として表現されている。データA、Bの2進数表現(バイナリデータ)を各々BIN(A)、BIN(B)とする。また、二つのデータの2進数列の長さをLEN(BIN(A))、LEN(BIN(B))とする。説明を容易にするために、LEN(BIN(A))=LEN(BIN(B))であるとする。
ここで、この二つのデータに対して排他的論理和(演算子XOR)を計算する。データAおよびデータBに対する合成をCOM(A、B)=BIN(A) XOR BIN(B)と表現する。このとき、COM(A、B)は二つのデータAおよびBのおのおのの情報を完全に含む情報であり、XORの代数的性質を用いることでデータAとCOM(A、B)を用いることでデータBを復元できる。具体的には、BIN(B)=COM(A、B) XOR BIN(A)である。
同様に、データBとCOM(A、B)を用いることでデータAを復元できる。逆にデータA、Bと異なるデータでは、対となるデータを復元することができない。たとえば、データAの変更A’とCOM(A、B)を用いてもデータBを復元することはできない。
このCOM(A、B)を用いて、二つのデータを管理することで、従来の課題を解決する。
以下に示す本発明の実施形態では、仕様書とそのレビュー記録票を例に取って説明する。たとえば、仕様書Aのある特定のバージョン(以下単に仕様書Aと記する)とそれに対するレビュー記録表Bはその内容も含めて対として管理されていなければ意味を成さない。そこで、仕様書Aに対してレビュー記録表Bを関連付ける。具体的には、仕様書Asレビュー記録表Bの各々のバイナリデータであるBIN(A)およびBIN(B)に対して、次の演算を行う。
f=COM(A、B)= BIN(A) XOR BIN(B)
仕様書Aについて、そのレビュー記録の存在およびレビュー記録表の内容を確認しようとする場合は、該仕様書Aのデータと前述のfとを用いて以下の演算を実行する。
B=COM(f、A)=COM(A、B) XOR BIN(A)
このように管理対象となる文書を計算機上に表現された二進数列として排他的論理和を直接演算することで、関連する二つの文書の完全に一元的管理できる。本実施形態では、説明を簡単にするため、管理対象を文書データとして説明するが、管理対象となるデータは文書に限らず、コンピュータ上でバイナリデータとして表現されるデータなら何でもよい。
なお、BIN(A) XOR BIN(B)というXOR演算を行う場合、BIN(A)とBIN(B)の2進数列の長さは必ず同一である必要がある。BIN(A)とBIN(B)の2進数列の長さが異なる場合の処理は後述する。
以下、これをさらに詳述する。
図1は本発明の第1の実施形態に係るデータ改ざん検出装置1の構成を示す概略構成図である。データ改ざん検出装置1は、データ対をなす文書A101と文書B102を管理対象とし、それらから合成データを算出するコンピュータ装置である演算装置103を要部として構成されている。符号104は、演算装置103によって算出された合成データとしてのCOM(A,B)104を示す。この合成データCOM(A,B)は、上述の通りCOM(A、B)=BIN(A) XOR BIN(B)である。
図2は、図1に示した演算部(演算装置103)の構成をより詳細に表す概略構成図である。演算装置103は、CPU、RAM、OSなどを含むコンピュータで、コンピュータプログラムを実行する主体であり、列長算出部201、ファイル名抽出部202、整形部203、合成部204、作業用データ保存部205といった各機能部を実行する。作業用データ保存部205は不揮発性メモリ(ハードディスク、フラッシュメモリなど)によって構成される。
列長算出部201は、管理対象(処理対象)となる文書A101および文書B102の二進数列の長さ(ビット長)、即ち前述のLEN(BIN(A))およびLEN(BIN(B))を算出する。ファイル名抽出部202は、文書A101および文書B102の文書名を抽出する。ここで、文書A101および文書B102の文書名を各々NAM(A)およびNAM(B)と表記する。
整形部203は、列長算出部201によって算出されたLEN(BIN(A))およびLEN(BIN(B))と、ファイル名抽出部202によって抽出されたNAM(A)およびNAM(B)と、各文書の2進数表現BIN(A)およびBIN(B)とを連結して、作業用データ300を生成し、不揮発性メモリである作業用データ保存部205に保存する。
図3は、図2で示した整形部203が生成する作業用データ300の構成を示す説明図である。列長301は、列長算出部201によって算出されたL1=LEN(BIN(A))もしくはLEN(BIN(B))である。ファイル名302は、ファイル名抽出部202によって抽出されたNAM(A)もしくはNAM(B)である。ボディ303は、各文書の2進数表現BIN(A)もしくはBIN(B)である。列長301およびファイル名302は原則として固定長データであるのに対して、ボディ303はデータに応じて長さが変わる可変長データである。
以後、文書A101に対して生成された作業用データ300を整形済文書A101bといい、文書B102に対して生成された作業用データ300を整形済文書B102bという。整形部203は逆に、作業用データ300から列長301およびファイル名302を取り除き、整形前のデータであるボディ303にファイル名302を付けて元のファイル(文書A101もしくは文書B102)を生成することも可能である。
合成部204は、文書A101および文書B102の作業用データ300に対して後述のような排他的論理和演算と判断処理とを実行し、最終的な結果を出力する。
なお、列長算出部201の行うビット長の算出、ファイル名抽出部202の行うファイル名の抽出、整形部203の行うデータの連結、合成部204の行う排他的論理和演算、および作業用データ保存部205の行うデータの保存については、通常の演算手法を利用して行うことができる。
(合成データの生成)
図4は、図1および図2に示した演算装置103が実行する処理を表すフローチャートである。なお、図4では管理対象を2つの文書であるとして説明しているが、3つ以上の管理対象文書に対しては、2つの管理対象に対して実施した本発明の動作の結果得られた合成データをひとつの管理対象文書とみなして、3つ目の文書との間で処理を行い、以降同様に必要な文書数だけ処理を繰り返せばよい。
まず演算部(演算装置103)は、管理対象である文書A101および文書B102を処理系内に取り込む(ステップS401)。取り込まれたこれらの文書に対してファイル名抽出部202がファイル名の抽出(ステップS402)、続いて列長算出部201が列長の算出の処理を行う(ステップS403)。なお、ステップS402とS403は、実行される順番が逆になってもよい。
整形部203が、管理対象である文書A101および文書B102が作業用データ保存部205に読み込まれたことを確認し(ステップS404)、読み込まれていなければステップS401に戻る。確認後、文書A101および文書B102に対して整形部203が図3に示した形式の作業用データ300(整形済文書A101bおよびB102b)を作成し、作業用データ保存部205に保存する(ステップS405)。
合成部204は、管理対象である文書A101および文書B102に対して整形処理が完了したことを確認し(ステップS406)、完了していなければステップS405に戻る。確認後、文書A101および文書B102を整形した整形済文書A101bおよびB102bに対して合成部204が排他的論理和により後述の演算処理を実行する(ステップS407)。
図5は、図4で示したステップS407の処理をより詳細に説明するフローチャートである。図6は、作業用データ保存部205に保存されているステップS407の処理対象となる整形済文書A101bおよびB102bに対する処理の状態を表す説明図である。図6(a)は、整形済文書A101bおよびB102bの初期状態を示し、図6(b)は図5のステップS506〜507の1回目の処理について示す。また図6(c)は図5のステップS511の処理について示す。
以後、説明の便宜上、整形済文書A101bの方が、整形済文書B102bより長いものとして説明する。整形済文書B102bの方が長い場合は、以下の説明で整形済文書A101bとB102bとが入れ替わるだけで、方法そのものに違いはない。先頭の文字を0文字目とし、整形済文書A101bと整形済文書B102bの各々の最終文字をMaxA,MaxB字目とする。
合成部204がまず、図6に示した整形済文書A101bおよびB102bを作業用データ保存部205から読み込む(ステップS501)。合成部204は整形済文書A101bおよびB102bが正常に読み込まれたことを確認し(ステップS502)、正常に読み込まれなければステップS501に戻る。確認後、読み込まれた整形済文書A101bとB102bとの間でデータ長を比較する(ステップS503)。この比較の結果、は整形済文書A101bおよびB102bのうち、データ長のより長い方を単純にBINと定義し、より短い方をpivotと定義する(ステップS504または505)。ここでは、整形済文書A101bがBIN、整形済文書B102bがpivotとなる。
続いて合成部204は、pivotの大きさに合わせてBINを部分数列として切り出し(ステップS506)、切り出されたBINの一部とpivotとの間のXORを演算し、その結果をCom(n)として作業用データ保存部205に記憶する(ステップS507)。ここで、BINに対してi文字目からk文字目までの部分数列を切り出す処理をPart関数として定義すると、ステップS506の処理は以下の数1として表現できる。なお、iの初期値は0、kの初期値はMaxB=LEN(BIN(pivot))、nの初期値は0である。また、BIN、pivotとも、先頭の文字を0文字目とする。
Figure 2010044609
続いて合成部204は、BINの未処理部分数列の長さがpivotより短くなったか否かを判断し(ステップS508)、短くなっていなければステップS507で算出されたXORの値を作業用データ保存部205に記憶し(ステップS509)、BINから処理済みの部分を取り除き、i=k,k=k+LEN(BIN(pivot)),n=n+1としてi,kおよびnの値を置き換え(ステップS510)、ステップS506からの処理を繰り返す。
ステップS508で、BINの未処理部分数列の長さがpivotより短くなっていれば、今度はpivotの長さをBINの未処理部分数列の長さに切断して、BINの未処理部分数列と切断されたpivotに対して排他的論理和を実行して、算出されたXORの値を作業用データ保存部205に記憶する(ステップS511)。
ステップS511まででBINの全ての部分に対して排他的論理和Com(n)の算出が終わった後、作業用データ保存部205に一時記憶されていたCom(n)の値を取り出し、処理した時間順に連結する処理を行う(ステップS512)。ここで連結された数値が、合成処理結果COM(A、B)である。なお、Com(n)の各々の値のデータ長は、最後にステップS511で実行されたCom(n)を除いて、全てpivotのデータ長と同一である。従って、データの連結に当たっては、区切りのために特定の文字を挿入する必要は特にない。
前述のように図6(c)は、作業用データ保存部205に保存されている整形済文書A101bおよびB102bに対する、図5のステップS511の処理の状態を表す。この図6(c)で説明している例では、ステップS506〜510のループの2回目で、BINの未処理部分の長さが、pivotよりも短くなっている。ここでステップS508の判断に基づいて、ステップS511の処理に進んだ例について、図6(c)では説明しているのである。
換言すれば、図5に示した処理は、BINを先頭からpivotと同一のデータ長に切り出してはpivotとの間のXORを演算して結果をCom(n)として保存するという処理を繰り返し、BINの残りがpivotよりも短くなった場合に限って、今度はpivotをBINの残りと同一のデータ長に切り出してpivotとの間のXORを演算してこれもCom(n)として保存するというものである。そして、XORを演算して得られた値であるCom(n)を、処理した時間順に連結して、最終的にBINと同一データ長の合成データCOM(A、B)104を得る。
(データの復元)
図7は、図4〜5で述べた処理で合成部204によって生成された合成処理結果COM(A、B)104を利用して、図1〜2に示した改ざん検出装置1によって元のデータを復元する処理について説明するフローチャートである。ここでは、文書B102のバイナリデータであるBIN(B)と、合成処理結果COM(A、B)104とを利用して、BIN(A)を再生する。
まず演算部(演算装置103)は、BIN(B)と、合成処理結果COM(A、B)104のデータを作業用データ保存部205に読み込む(ステップS701)。ここで読み込まれたデータが未整形のデータである場合は、これに対して作業用データである整形済文書B102bを作成する。この処理では、図4の402〜405と同一の処理を実行して、整形済文書B102bを生成する(ステップS702〜704)。未整形データでなければ、そのまま作業用データ保存部205にとどめる。
この、整形済文書B102bとCOM(A、B)という2つのデータに対して、合成部204がステップS407(または図5)と同一の合成処理を実行する。排他的論理和(XOR)の性質より、COM(A、B)に整形済文書B102bをXOR演算すれば整形済文書A101bのデータが再現される。
図5〜6で説明したようにCOM(A、B)が整形済文書B102bよりも長い場合、COM(A、B)をBINとし、整形済文書B102bをpivotとして、図5で説明した処理と同様に、pivotの長さごとに合成処理結果COM(A、B)を切断して、それらに対して順番にXOR pivotの演算を行っていき、その結果として得られた文字列を連結すれば整形済文書A101bが得られる。
再現された整形済文書A101bから、整形部203が、列長301とファイル名302を取り除き(ステップS705〜708)、ボディ303の部分をファイル名データ302のファイル名でファイルとすれば(ステップS709)、元の文書A101が生成される。列長301とファイル名302は、いずれも図3で示したように固定長データであるので、整形部203は、整形済文書A101bの先頭から所定のデータ長を取り除けば、ボディ303、つまり元の文書A101を得ることができる。
(全体的な動作)
次に、上記の第1の実施形態の全体的な動作について説明する。本発明の第1の実施形態に係る改ざん検出装置1は、第1のデータ(文書A101)と第2のデータ(文書B102)とをXOR(排他的論理和)演算して合成データ(COM(A,B)104)を生成し、この合成データ(COM(A,B)104)を記憶し、合成データ(COM(A,B)104)と第2のデータ(文書B102)とをXOR演算して第1のデータ(文書A101)を生成するものである。
ここで、一方のデータ(文書B102)が他方のデータ(文書A101)より短い場合、他方のデータ(文書A101)から一方のデータ(文書B102)と同一のデータを第1の部分データとして切り出して残りを第1の残データとし、第1の部分データと一方のデータとをXOR演算し(図5:ステップS506〜507)、その結果として得られた第1の合成データを保存する(図5:ステップS509〜510)。
以後、nを2以上の自然数とすると、第n−1の残データが一方のデータより長い場合、第n−1の残データから一方のデータとデータ長が同一の第nの部分データを切り出し、その残りを第nの残データとして、第nの部分データと一方のデータとをXOR演算して得られた第nの合成データを保存するという処理を繰り返す(図5:ステップS506〜510)。
ここで、第nの残データが一方のデータよりも短くなった場合には(図5:ステップS508)、一方のデータから第nの残データとデータ長が同一の第n+1の部分データを切り出し、これと第nの残データとをXOR演算して得られた第n+1の合成データを保存する(図5:ステップS511)。
そして、これらの第1〜第n+1の合成データを切り出し順に従って連結することによって合成データ(COM(A,B)104)を生成する(図5:ステップS512)。
上記と同様の処理で、合成データ(COM(A,B)104)から第2のデータ(文書B102)と同一のデータ長を切り出してXOR演算する処理を繰り返し、それらのXOR演算によって得られたデータを連結することによって第1のデータ(文書A101)を生成する(図7:ステップS407、または図5)ようにすることもできる。
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータである改ざん検出装置1に実行させるようにしてもよい。
以上説明したように、本発明においては、以上のような動作を行うことにより、次に記載するような効果を奏する。
第1のデータと第2のデータのうち一方のデータをXOR演算して他方のデータを生成することにより、特殊な計算を特に必要とはせずに、記憶保持している他方のデータと生成されたデータとを比較することによって、第1もしくは第2のデータに改ざんがあったことを検出可能である。
即ち、仕様書とレビュー記録などのような必ず対とならなければ意味をなさないデータに対して、排他的論理和の演算が可能な演算装置であれば可能である動作で、偽造などを容易に検出することができる。この動作は、巨大な計算機システムなどを必要とするものではない。ここでいう「対とならなければ意味をなさないデータ」は、必ずしも文書内に文字として表現された内容において「関連性」を持ったものである必要はない。
たとえば、仕様書を原本のまま管理し、人間の目で判読可能な状況を保ちつつ、レビュー記録表を合成として管理することで、仕様書の版数に一致したレビュー記録表を確実に保持することができるようになる。
また、本実施形態によれば簡単な代数的演算により一対となるデータの生成が可能で、かつ生成されたデータは通常のファイルとして管理可能であるので、ファイルシステムや言語などに依存することはなく、またデータの種類などについても問わずに適用することが可能である。
[第2の実施形態]
図8は、本発明の第2の実施形態に係るデータ改ざん検出装置800を示す概略構成図である。本実施形態に係るデータ改ざん検出装置800は、身分証明書801とそれに対応する生体認証データ802とからなるデータ対を管理対象とする。生体認証データ802としては、たとえば指紋、虹彩などを利用することができる。生成された合成データ804は、身分証明書801に添付される。
身分証明書801と生体認証データ802は、いずれもバイナリデータとして表現可能であるので、前述の第1の実施形態と全く同一の構成の演算装置103によって、合成データ804を生成して、前述の第1の実施形態と全く同一の処理を行い、それによって身分証明書801と生体認証データ802のうちのいずれかまたは両方が改ざんされたことを検知することができる。この効果もまた、前述の第1の実施形態と全く同一である。
合成データ804そのものは人間の目で判読可能なものではないので、合成自体を有意に改ざん/改変することは困難である。従って、合成データ804自体は秘匿される必要がないので、管理対象となるデータ、ここでは身分証明書801自身に合成データ804を記録として保持させても特に問題はない。具体的には、磁気ストライプや2次元バーコードなどを利用して、合成データ804を身分証明書801に添付するようにすることができる。
たとえば身分証明書801がパスポートである場合、当該パスポートそのものが改ざん/成りすまし検知機能を備えることになるので、発行国の管理するデータを参照するという手間をかけずに正当性の確認が可能となる。
これら以外にも、バイナリデータとして表現可能なデータであり、かつ一対一で対応させる必要があるデータであれば、本発明の第1および第2の実施形態を適用することができる。ファイルシステムや言語などには特に依存しない。
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
バイナリデータとして表現可能で、かつ一対一で対応させる必要があるデータ対をなすデータであれば、種類を問わずに適用することができる。また、ファイルシステムや言語などにも依存しない。たとえば文書管理、情報管理、ID管理などの用途に特に適している。
本発明の第1の実施形態に係るデータ改ざん検出装置1の構成を示す概略構成図である。 図1に示した演算装置103の構成をより詳細に表す概略構成図である。 図2で示した整形部203が生成する作業用データ300の構成を示す説明図である。 図1および図2に示した演算装置103が実行する処理を表すフローチャートである。 図4で示したステップS407の処理をより詳細に説明するフローチャートである。 作業用データ保存部205に保存されているステップS407の処理対象となる整形済文書A101bおよびB102bに対する処理の状態を表す説明図である。図6(a)は整形済文書A101bおよびB102bの初期状態を示し、図6(b)は図5のステップS506〜507の1回目の処理について示し、図6(c)は図5のステップS511の処理について示す。 図4〜5で述べた処理で合成部204によって生成された合成処理結果COM(A、B)104を利用して、図1〜2に示したデータ改ざん検出装置1によって元のデータを復元する処理について説明するフローチャートである。 本発明の第2の実施形態に係るデータ改ざん検出装置800を示す概略構成図である。
符号の説明
1、800 データ改ざん検出装置
101 文書A
102 文書B
101b 整形済文書A
102b 整形済文書B
103 演算装置
104 COM(A,B)
201 列長算出部
202 ファイル名抽出部
203 整形部
204 合成部
205 作業用データ保存部
300 作業用データ
301 列長
302 ファイル名
303 ボディ
801 身分証明書
802 生体認証データ
804 合成データ

Claims (10)

  1. 一意的に関連づけられるべき第1および第2のデータの改ざんを検出するデータ改ざん検出装置であって、
    前記第1のデータと第2のデータとをXOR(排他的論理和)演算して合成データを生成する演算部と、前記合成データを記憶する記憶部とを有し、
    前記演算部が、前記第1のデータと第2のデータのうち一方のデータと前記合成データとをXOR演算して前記他方のデータを生成することを特徴とするデータ改ざん検出装置。
  2. 前記演算部が、前記合成データを生成する際、
    前記一方のデータが前記他方のデータより短い場合、前記他方のデータから前記一方のデータと同一のデータ長を第1の部分データとして切り出して残りを第1の残データとし、前記第1の部分データと前記一方のデータとをXOR演算して得られた第1の合成データを前記記憶部に保存し、
    以後、nを2以上の自然数とすると、前記第n−1の残データが前記一方のデータより長い場合、前記第n−1の残データから前記一方のデータとデータ長が同一の第nの部分データを切り出し、その残りを第nの残データとして、前記第nの部分データと前記一方のデータとをXOR演算して得られた第nの合成データを前記記憶部に保存する処理を繰り返し、
    前記第nの残データが前記一方のデータよりも短くなった場合に、前記一方のデータから前記第nの残データと同一のデータ長を切り出した第n+1の部分データと前記第nの残データとをXOR演算して得られた第n+1の合成データを前記記憶部に保存し、
    前記第1ないし第n+1の合成データを切り出し順に従って連結することによって前記合成データを生成する合成部を有する
    ことを特徴とする、請求項1に記載のデータ改ざん検出装置。
  3. 前記合成部が、前記合成データから前記一方のデータと同一のデータ長を切り出して前記一方のデータとXOR演算する処理を繰り返すと共に、前記XOR演算によって得られたデータを切り出し順に従って連結することによって前記他方のデータを生成するデータ復元機能を備えていることを特徴とする、請求項2に記載のデータ改ざん検出装置。
  4. 前記演算部が、
    前記第1および第2の各データに、それぞれのデータ長およびファイル名を表す情報を連結する連結整形部を有し、
    この連結整形部によってデータ長およびファイル名を表す情報を連結してなる前記第1および第2のデータに対して前記合成部が前記XOR演算を行うことを特徴とする、請求項2に記載のデータ改ざん検出装置。
  5. 前記第2のデータが生体認証データであり、前記合成データが前記第1のデータに添付されていることを特徴とする、請求項1に記載のデータ改ざん検出装置。
  6. 一意的に関連づけられるべき第1および第2のデータの改ざんを検出するデータ改ざん検出方法であって、
    前記第1のデータと第2のデータとをXOR(排他的論理和)演算して合成データを生成し、
    前記合成データを記憶し、
    前記第1のデータと第2のデータのうち一方のデータと前記合成データとをXOR演算して前記他方のデータを生成することを特徴とするデータ改ざん検出方法。
  7. 前記合成データを生成する処理が、
    前記一方のデータが前記他方のデータより短い場合、前記他方のデータから前記一方のデータと同一のデータ長を第1の部分データとして切り出して残りを第1の残データとし、
    前記第1の部分データと前記一方のデータとをXOR演算して得られた第1の合成データを保存し、
    以後、nを2以上の自然数とすると、前記第n−1の残データが前記一方のデータより長い場合、前記第n−1の残データから前記一方のデータとデータ長が同一の第nの部分データを切り出し、その残りを第nの残データとして、前記第nの部分データと前記一方のデータとをXOR演算して得られた第nの合成データを保存する処理を繰り返し、
    前記第nの残データが前記一方のデータよりも短くなった場合に、前記一方のデータから前記第nの残データと同一のデータ長を切り出した第n+1の部分データと前記第nの残データとをXOR演算して得られた第n+1の合成データを保存し、
    前記第1ないし第n+1の合成データを切り出し順に従って連結することによって前記合成データを生成する
    ことを特徴とする、請求項6に記載のデータ改ざん検出方法。
  8. 前記合成データから前記一方のデータと同一のデータ長を切り出してXOR演算する処理を繰り返すと共に、
    前記XOR演算によって得られたデータを切り出し順に従って連結することによって前記他方のデータを復元することを特徴とする、請求項7に記載のデータ改ざん検出方法。
  9. 一意的に関連づけられるべき第1および第2のデータの改ざんを検出する改ざん検出装置を形成するコンピュータに、
    前記第1のデータと第2のデータとをXOR(排他的論理和)演算して合成データを生成する手順と、
    前記合成データを記憶する手順と、
    前記第1のデータと第2のデータのうち一方のデータと前記合成データとをXOR演算して前記他方のデータを生成する手順と
    を実行させることを特徴とするデータ改ざん検出プログラム。
  10. 前記合成データを生成する手順が、
    前記一方のデータが前記他方のデータより短い場合、前記他方のデータから前記一方のデータと同一のデータ長を第1の部分データとして切り出して残りを第1の残データとする手順と、
    前記第1の部分データと前記一方のデータとをXOR演算して得られた第1の合成データを保存する手順と、
    以後、nを2以上の自然数とすると、前記第n−1の残データが前記一方のデータより長い場合、前記第n−1の残データから前記一方のデータとデータ長が同一の第nの部分データを切り出し、その残りを第nの残データとして、前記第nの部分データと前記一方のデータとをXOR演算して得られた第nの合成データを保存する処理を繰り返す手順と、
    前記第nの残データが前記一方のデータよりも短くなった場合に、前記一方のデータから前記第nの残データと同一のデータ長を切り出した第n+1の部分データと前記第nの残データとをXOR演算して得られた第n+1の合成データを保存する手順と、
    前記第1ないし第n+1の合成データを切り出し順に従って連結することによって前記合成データを生成する手順と
    を実行させることを特徴とする、請求項9に記載のデータ改ざん検出プログラム。
JP2008208480A 2008-08-13 2008-08-13 データ改ざん検出装置、データ改ざん検出方法、およびデータ改ざん検出プログラム Expired - Fee Related JP4924568B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008208480A JP4924568B2 (ja) 2008-08-13 2008-08-13 データ改ざん検出装置、データ改ざん検出方法、およびデータ改ざん検出プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008208480A JP4924568B2 (ja) 2008-08-13 2008-08-13 データ改ざん検出装置、データ改ざん検出方法、およびデータ改ざん検出プログラム

Publications (2)

Publication Number Publication Date
JP2010044609A true JP2010044609A (ja) 2010-02-25
JP4924568B2 JP4924568B2 (ja) 2012-04-25

Family

ID=42015938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008208480A Expired - Fee Related JP4924568B2 (ja) 2008-08-13 2008-08-13 データ改ざん検出装置、データ改ざん検出方法、およびデータ改ざん検出プログラム

Country Status (1)

Country Link
JP (1) JP4924568B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63313255A (ja) * 1987-06-16 1988-12-21 Ricoh Co Ltd 計算機システムにおけるデ−タ機密保護方法
JPH11203185A (ja) * 1998-01-13 1999-07-30 Nec Corp 伝送装置監視装置における二重化データベース比較方法
JP2002084273A (ja) * 2000-09-07 2002-03-22 Aesop:Kk 電子認証方式
JP2005100205A (ja) * 2003-09-26 2005-04-14 Dainippon Printing Co Ltd 非接触icタグのデータ暗号化・復号化方法およびシステムおよび非接触icタグ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63313255A (ja) * 1987-06-16 1988-12-21 Ricoh Co Ltd 計算機システムにおけるデ−タ機密保護方法
JPH11203185A (ja) * 1998-01-13 1999-07-30 Nec Corp 伝送装置監視装置における二重化データベース比較方法
JP2002084273A (ja) * 2000-09-07 2002-03-22 Aesop:Kk 電子認証方式
JP2005100205A (ja) * 2003-09-26 2005-04-14 Dainippon Printing Co Ltd 非接触icタグのデータ暗号化・復号化方法およびシステムおよび非接触icタグ

Also Published As

Publication number Publication date
JP4924568B2 (ja) 2012-04-25

Similar Documents

Publication Publication Date Title
EP2105860B1 (en) Method and apparatus for verifying integrity of redacted documents
US6640294B2 (en) Data integrity check method using cumulative hash function
CN110457873A (zh) 一种水印嵌入与检测方法及装置
CN111475574B (zh) 一种基于区块链的数据采集装置
CN113065169B (zh) 一种文件存证方法、装置及设备
CN104063731A (zh) 一种采用数字水印技术的二维码防伪印刷及验证方法
CN116235169A (zh) 文本数据的数字水印
JPH03151738A (ja) 検証用データ生成装置
CN112434319A (zh) 一种用于电子文件的数据加密方法及装置
Saracevic et al. Implementation of encryption and data hiding in E-health application
CN112769567A (zh) 一种区块链hd私钥找回方法
Mehta et al. A novel approach as multi-place watermarking for security in database
KR20120055070A (ko) 영상의 무결성 검증 및 복구 가능한 무손실 디지털 워터마킹 시스템 및 방법
Kumar et al. SIGNIFICANCE of hash value generation in digital forensic: A case study
JP4924568B2 (ja) データ改ざん検出装置、データ改ざん検出方法、およびデータ改ざん検出プログラム
Lin et al. A copyright protection scheme based on PDF
EP2012269B1 (en) Method for embedding a multi-bit digital watermark in media data
CN112910638A (zh) 一种区块链系统密钥的找回方法
CN114547562B (zh) 文本水印添加及应用的方法和装置
CN107291763B (zh) 电子文档的管理方法及管理装置
JP6273224B2 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法
Dandass et al. An empirical analysis of disk sector hashes for data carving
Bellafqira et al. A blockchain-enhanced reversible watermarking framework for end-to-end data traceability in federated learning systems
Das et al. A secured key-based digital text passing system through color image pixels
CN118279117B (zh) 教育考试图像的水印隐写、识别方法及系统

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111209

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: 20120110

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: 20120123

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees