JP6958241B2 - 変更検出プログラム、変更検出方法および変更検出装置 - Google Patents

変更検出プログラム、変更検出方法および変更検出装置 Download PDF

Info

Publication number
JP6958241B2
JP6958241B2 JP2017211285A JP2017211285A JP6958241B2 JP 6958241 B2 JP6958241 B2 JP 6958241B2 JP 2017211285 A JP2017211285 A JP 2017211285A JP 2017211285 A JP2017211285 A JP 2017211285A JP 6958241 B2 JP6958241 B2 JP 6958241B2
Authority
JP
Japan
Prior art keywords
document
acquired
index information
index
information
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.)
Active
Application number
JP2017211285A
Other languages
English (en)
Other versions
JP2019082967A (ja
Inventor
片岡 正弘
元才 秀嶋
泰裕 鈴木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017211285A priority Critical patent/JP6958241B2/ja
Priority to US16/171,873 priority patent/US10956599B2/en
Publication of JP2019082967A publication Critical patent/JP2019082967A/ja
Application granted granted Critical
Publication of JP6958241B2 publication Critical patent/JP6958241B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/123Storage facilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、変更検出プログラム等に関する。
従来、検証対象となる文書について、変更の有無を判定する場合には、ハッシュ関数が用いられている。例えば、従来技術では、原本の文書全体のハッシュ値と、検証対象となる文書全体のハッシュ値とを比較し、各ハッシュ値が異なる場合に、検証対象となる文書のいずれかの部分に変更があると判定する。また、従来技術では、文書に変更があると判定した後に、変更された文書の変更箇所を特定する処理を実行する。
特開2007−052698号公報 特開2013−125445号公報
しかしながら、上述した従来技術では、文書全体についてのハッシュ関数等を用いた演算を行うことなく、変更有無、および、変更箇所の検出を行うことができないという問題がある。
従来技術のように、文書全体についてハッシュ関数を用いると、文書のサイズに応じた計算量が必要となる。また、ハッシュ値の比較により変更有りと判定した場合には、別途、他の方法により変更箇所を特定することになり、計算コストが大きくなる。
なお、従来の転置インデックスでは、転置インデックスのサイズを抑制するために、ストップワード(stop word)を除外する処理を行っている。このため、文書が変更されても、文書と転置インデックスとの間に齟齬が生じるとは限らず、必ずしも、変更を検知することができない。
1つの側面では、本発明は、文書に対して行われた変更有無、および、変更箇所の検出を行うことができる変更検出プログラム、変更検出方法および変更検出装置を提供することを目的とする。
第1の案では、コンピュータに次の処理を実行させる。コンピュータは、記憶部に記憶された文書を取得する。コンピュータは、取得した文書に基づき、文書に含まれる単語、文字又は符号のいずれかの情報の文書における出現位置を該情報に対応付けるインデックス情報を生成する。コンピュータは、文書を特定する情報に対応付けて記憶部に記憶されたインデックス情報を参照して、取得した文書を特定する情報に対応付けられたインデックス情報を取得する。コンピュータは、生成したインデックス情報と、取得したインデックス情報との比較結果に基づき、取得した文書に対して行われた変更の有無を判定する。コンピュータは、変更が有る場合には、生成したインデックス情報と、取得したインデックス情報との比較結果に基づき、取得した文書における変更の箇所を検出する。
文書全体についてのハッシュ関数等を用いた演算を行うことなく、変更有無、および、変更箇所の検出を行うことができる。
図1は、本実施例に係る変更検出装置の処理を説明するための図である。 図2は、本実施例に係るファイルのデータ構造の一例を示す図である。 図3は、本実施例に係る動的辞書のデータ構造の一例を示す図である。 図4は、本実施例に係る変更検出装置の構成を示す機能ブロック図である。 図5は、インデックスのデータ構造の一例を示す図である。 図6は、生成部がインデックスを生成する処理の一例を説明するための図である。 図7は、判定部の処理を説明するための図である。 図8は、本実施例に係る変更検出装置の処理手順を示すフローチャートである。 図9は、変更検出装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
以下に、本願の開示する変更検出プログラム、変更検出方法および変更検出装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、本実施例に係る変更検出装置の処理を説明するための図である。前提として、例えば、第1の外部装置がファイルF1を生成し、ネットワークを介して第2の外部装置に送信する。たとえば、変更検出装置は、第2の外部装置に到達するまでに、ファイルF1を取得し、ファイルF1が変更(改竄)されているか否かを判定する。第1の外部装置および第2の外部装置の図示を省略する。たとえば、変更検出装置が、第1の外部装置からファイルF1を受信した段階では改竄されていなくても、変更検出装置が、ファイルF1を保持している間に、マルチウェアなどにより改竄される場合がある。
図1に示すように、変更検出装置が、第2の外部装置から取得するファイルF1には、文書データ1と、第1のインデックス2aと、第1のハッシュ値3aとが含まれる。
文書データ1は、複数の文字列(単語)からなる文書のデータである。
第1のインデックス2aは、文書データ1を符号化した場合における符号と、符号の出現位置とを対応づけた転置インデックスである。
変更検出装置は、ファイルF1を受信した際に、第1のインデックス2a、第1のハッシュ値3aを生成する。変更検出装置が、第1のインデックス2aを生成する処理の一例について説明する。変更検出装置は、文書データ1を、所定の符号化方法で符号化することで、符号化データを生成する。例えば、所定の符号化方法は、静的辞書および動的辞書を用いて単語単位で符号化を行う方法である。静的辞書は、出現頻度の高い単語と符号とを対応付けた情報である。変更検出装置は、符号化の対象となる単語が、静的辞書に存在する場合には、静的辞書に登録された符号と単語との関係から、単語を符号化する。
一方、変更検出装置は、符号化の対象となる単語が、静的辞書に存在しない場合には、かかる単語を動的辞書に登録して、動的符号を割り当てることで、符号化を行う。例えば、動的符号は、単語の出現に応じて割り当てられるものである。
変更検出装置は、文書データ1の符号化データを走査し、符号と、符号の出現位置とを対応づけることで、第1のインデックス2aを生成する。変更検出装置は、予め、第1のインデックス2aを算出しておくものとする。
第1のハッシュ値3aは、第1のインデックス2aを、所定のハッシュ関数に入力することで算出されるハッシュ値である。例えば、所定のハッシュ関数は、MD5(Message Digest Algorithm 5)等のハッシュ関数に対応する。第1のハッシュ値3aは、予め(ファイルF1の受信時等に)、変更検出装置により算出される。
続いて、変更検出装置の変更検出時の処理の一例について説明する。たとえば、変更検出装置は、ファイルF1を第2の外部装置に送信するタイミング等に、変更検出の処理を実行してもよい。まず、変更検出装置は、ステップS10の処理を実行する。変更検出装置は、ファイルF1に含まれる文書データ1を基にして、第2のインデックス2bを新たに生成する。変更検出装置が、第2のインデックス2bを新たに生成する処理は、上記の第1のインデックス2a、第1のハッシュ値3aを生成するタイミングとは異なるタイミングである。たとえば、変更検出装置は、文書データ1を所定の符号化方法で符号化することで、符号化データを生成し、符号化データに含まれる符号と、符号の出現位置とを対応付けた第2のインデックス(転置インデックス)2bを生成する。
変更検出装置は、ファイルF1に含まれる第1のインデックス2a(予め算出しておいたインデックス)と、新たに算出した第2のインデックス2bとを比較する。変更検出装置は、第1のインデックス2aと、第2のインデックス2bとが「不一致」となる場合には、第1のインデックス2aの符号と符号の位置とが、符号化データに対応していないことを意味するので、符号化データ(文書データ1)が変更されていると判定する。また、変更検出装置は、第1のインデックス2aと、第2のインデックス2bとの相違部分に基づいて、文書データ1の変更箇所を判定する。また、第2のインデックス2bは、第1のインデックス2aを生成する際に用いた符号化方法で符号化されたものと同様の符号化データに対して生成されるものである。
変更検出装置は、ステップS10の処理において、第1のインデックス2aと、第2のインデックス2bとが「一致」する場合には、ステップS11の処理に移行する。例えば、文書データ1が変更されており、さらに、変更された文書データ1に合わせて、第1のインデックス2aが変更されている場合には、第1のインデックス2aと第2のインデックス2bとの比較によって、変更を検出することができないためである。
ステップS11の処理について説明する。変更検出装置は、第2のインデックス2bを、所定のハッシュ関数に入力することで、第2のハッシュ値3bを算出する。変更検出装置が利用する所定のハッシュ関数は、変更検出装置が、第1のハッシュ値3aを算出した場合に利用したハッシュ関数と同一であるものとする。
変更検出装置は、第1のハッシュ値3aと、第2のハッシュ値3bとを比較する。変更検出装置は、第1のハッシュ値3aと、第2のハッシュ値3bとが「不一致」となる場合には、文書データ1および第1のインデックス2aが変更されていると判定する。一方、変更検出装置は、第1のハッシュ値3aと、第2のハッシュ値3bとが「一致」する場合には、文書データ1が変更されていないと判定する。
上記のように、変更検出装置は、第1のインデックス2aおよび第2のインデックス2bの比較結果を基にして、文書データ1の変更有無および変更箇所を特定する。このため、従来技術のように、文書データ1全体に対するハッシュ値を演算しなくても、変更有無を特定でき、さらに、変更箇所を特定することができる。たとえば、変更検出装置の記憶部に記憶した文書データ1が、マルチウェアなどにより改竄されたことを検出することができる。
また、第1のインデックス2aおよび第2のインデックス2bが一致する場合でも次のケースがある。すなわち、文書データ1が変更されており、さらに、変更された文書データ1に合わせて、第1のインデックス2aが変更されている場合には、第1のインデックス2aと第2のインデックス2bとの比較によって、変更を検出することができない。この問題に対応するべく、変更検出装置は、第2のインデックス2bを基にして、第2のハッシュ値3bを演算し、第1のハッシュ値3aと第2のハッシュ値3bとの比較により、変更を検出する。第2のハッシュ値3bは、文書データ1全体のハッシュ値ではなく、第2のインデックス2bのハッシュ値であるため、計算量を削減しつつ、変更を検出することができる。
図2は、本実施例に係るファイルのデータ構造の一例を示す図である。図1で説明したように、ファイルF1は、第1の外部装置により生成され、第2の外部装置に送信されるものとする。図2に示すように、ファイルF1は、ヘッダ部10aと、データ領域10bと、トレーラ部10cとを有する。ヘッダ部10aは、文書データに含まれる単語の出現頻度の情報等が含まれる。データ領域10bは、文書データ1を格納する領域である。
トレーラ部10cは、動的辞書11と、第1のインデックス2aと、第1のハッシュ値3aとを有する。動的辞書11は、文書データ1を符号化する場合に用いられる辞書である。
図3は、本実施例に係る動的辞書のデータ構造の一例を示す図である。図3に示すように、動的辞書11は、動的ビットフィルタD1と、動的辞書部D2と、バッファD3とを有する。
動的ビットフィルタD1は、2グラムと、ビットマップと、第1ポインタとを有する。動的辞書部D2は、動的符号と、第2ポインタと、連鎖領域とを対応付ける。バッファD3は、動的符号により符号化される前の単語を格納する。
動的ビットフィルタD1の2グラムは、2文字の文字列(あるいは2つの単語)を示す情報である。ビットマップは、2グラムの文字列に対応するビットマップを示す。例えば、「aa」に対応するビットマップは「0_0_0_0_0」となる。第1ポインタは、ビットマップに対応する動的符号の位置を示すポインタである。
例えば、動的辞書11に登録する単語が「able△」である場合には、2グラム「ab」、「bl」、「le」、「e△」に対応するビットマップをそれぞれ組み合わせる。ビットマップの各桁において、すべてのビットマップの値が0となっている場合には、組み合わせたビットマップの該当する桁を「0」とする。これに対して、「1」が一つでも含まれる場合には該当する桁を「1」に設定することで、ビットマップを組み合わせる。
例えば、「ab」のビットマップが「1_0_0_0_0」、「bl」のビットマップが「0_1_0_0_0」、「le」のビットマップが「0_0_1_0_0」、「e△」のビットマップが「0_0_0_1_0」とする。この場合には、各ビットマップを組み合わせたビットマップは「1_1_1_1_0」となる。
動的辞書部D2の動的符号は、バッファD3に格納された単語に割り当てられた符号である。第2ポインタは、動的符号に対応する単語が格納されたバッファD3の位置を示す情報である。例えば、動的符号「A000h」に対応する第2ポインタは、バッファD3に格納された「Mickey」の先頭位置を示す。すなわち、単語「Mickey」は、動的符号「A000h」に動的符号化されていることを意味する。
動的辞書部D2の連鎖領域は、該当する文字列等がビットフィルタのポインタから連鎖しているか否かを示す情報である。該当する文字列等が連鎖していない場合には、連鎖領域に「NULL」が設定される。
図4は、本実施例に係る変更検出装置の構成を示す機能ブロック図である。図4に示すように、この変更検出装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
通信部110は、第1の外部装置、第2の外部装置、その他の外部装置との間で、ネットワークを介してデータ通信を実行する通信装置である。後述する制御部150は、通信部110を介して、第1の外部装置、第2の外部装置、その他の外部装置とデータをやり取りする。
入力部120は、変更検出装置100に各種のデータを入力するための入力装置である。入力部120は、例えば、キーボードやマウス、タッチパネル等の入力装置に対応する。
表示部130は、制御部150から出力するデータを表示する表示装置である。表示部130は、液晶ディスプレイやタッチパネル等に対応する。
記憶部140は、ファイルF1と、符号化データ141と、第2のインデックス2bと、第2のハッシュ値3bとを有する。記憶部140は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
ファイルF1は、第1の外部装置により生成され、第1の外部装置から第2の外部装置に送信された符号化ファイルである。ファイルF1に関する説明は、図2で説明したファイルF1に関する説明と同様である。
符号化データ141は、変更検出装置100は、所定の符号化方法により、文書データ1を符号化することで生成されるデータである。
第2のインデックス2bは、ファイルF1の文書データ1を符号化した符号化データ141を基にして、変更検出装置100が新たに生成する転置インデックスである。図5は、インデックスのデータ構造の一例を示す図である。ここでは、インデックスとして、第2のインデックス2bのデータ構造について説明する。なお、文書データ1に変更がなければ、第1のインデックス2aと、第2のインデックス2bとは同一のインデックスとなる。
図5に示すように、この第2のインデックス2bは、符号化データ141に含まれる符号と、オフセットとを対応付ける。符号は、静的辞書により符号化された静的符号、または、動的辞書11により符号化された動的符号に対応する。オフセットは、符号化データ141上の該当する符号の位置を示すものである。
一例として、符号「A000h」について説明する。図5において、符号「A000h」に対応するフラグ「1」が、オフセット「59」の位置に立っている。このため、符号「A000h」が、符号化データ141に含まれる符号のうち、先頭から59番目に位置する符号であることを示す。なお、順番をカウントする場合には、1つの単語に対応する符号をひとくくりとする。
第2のハッシュ値3bは、第2のインデックス2bを、所定のハッシュ関数に入力することで算出されるハッシュ値である。所定のハッシュ関数は、第1の外部装置が第1のハッシュ値3aを算出する場合に用いたハッシュ関数と同一である。
図4の説明に戻る。制御部150は、受信部151、生成部152、判定部153、通知部154を有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
受信部151は、第2の外部装置から、変更検出の対象として、ファイルF1を受信する処理部である。受信部151は、受信したファイルF1を、記憶部140に格納する。
生成部152は、ファイルF1のデータ領域10bに格納された文書データ1を基にして、符号化データ141を生成し、符号化データ141を基にして、第2のインデックス2bを生成する処理部である。なお、生成部152が、第1のインデックス2a、第1のハッシュ値3aを算出する処理は、後述する第2のインデックス2b、第2のハッシュ値3bを生成する処理と同様である。なお、生成部152は、先に、第1のインデックス2a、第1のハッシュ値3aを生成しておくものとする。また、生成部152は、第1のインデックス2a、第1のハッシュ値3aを生成した場合でも、符号化前の文書データ1を残しておくものとする。
生成部152が、文書データ1を符号化する処理の一例について説明する。生成部152は、静的辞書および動的辞書11を用いて、文書データ1を符号化する。たとえば、生成部152は、文書データ1の文字列(単語)と、静的辞書の単語とを比較し、静的辞書にヒットする文字列に付いては、ヒットした文字列に対応づけられた符号によって、該当する文字列を置き換える処理を行う。また、生成部152は、静的辞書にヒットしない文字列については、動的辞書11と、文字列との比較を行い、動的辞書11に登録された該当文字列に対応する動的符号によって、該当文字列を置き換える処理を行う。生成部152は、上記処理を行うことで、符号化データ141を生成する。
生成部152が、符号化データ141を基にして、第2のインデックス2bを生成する処理について説明する。例えば、生成部152は、符号化データ141を走査し、各符号の位置(オフセット)を特定する。生成部152は、符号と、オフセットとを対応付けることで、第2のインデックス2bを生成する。
図6は、生成部がインデックスを生成する処理の一例を説明するための図である。ここでは一例として、文書データ1を符号化した符号化データを、符号化データ141とする。生成部152が符号化データ141を参照すると、符号「A000h」が「59」番目に位置し、符号「A100h」が「31」番目に位置する。また、符号「A200h」が「12」番目に位置し、符号「A300h」が「4」番目に位置する。
この場合には、生成部152は、第2のインデックス2bに符号「A000h」を登録し、この符号「A000h」に対応するオフセット「59」にフラグ「1」を設定する。生成部152は、第2のインデックス2bに符号「A100h」を登録し、この符号「A100h」に対応するオフセット「31」にフラグ「1」を設定する。生成部152は、第2のインデックス2bに符号「A200h」を登録し、この符号「A200h」に対応するオフセット「12」にフラグ「1」を設定する。生成部152は、第2のインデックス2bに符号「A300h」を登録し、この符号「A300h」に対応するオフセット「4」にフラグ「1」を設定する。
判定部153は、第1のインデックス2aと、第2のインデックス2bとを比較して、文書データ1の変更有無および変更箇所を判定する処理部である。判定部153は、判定結果を、通知部154に出力する。以下において、判定部153が実行する第1処理と、第2処理とを説明する。
判定部153が実行する第1処理について説明する。判定部153は、ファイルF1のトレーラ部10cに格納された第1のインデックス2aを取得する。判定部153は、取得した第1のインデックス2aと、第2のインデックス2bとを比較する。
図7は、判定部の処理を説明するための図である。図7に示す例では、第1のインデックス2aと、第2のインデックス2bとを比較すると、第1のインデックス2aと第2のインデックス2bとが「不一致」となる。具体的には、第2のインデックス2bには、符号「A100h」のオフセット「31」にフラグ「1」が設定されているが、第1のインデックス2aには、符号「A100h」のオフセット「31」にフラグが設定されていない。このため、判定部153は、符号化データ141が「変更されている」と判定する。具体的には、変更前の符号化データ141’のオフセット「31」に存在していた符号が、「A100h」に変更されていると判定する。
また、判定部153は、変更されているオフセットの位置を基にして、文書データ1の変更箇所を検出する。たとえば、判定部153は、文書データ1と、符号化データ141とを比較し、変更されているオフセットの位置の符号に対応する文字列の位置を、文書データ1上において特定し、変更箇所として検出する。
一方、判定部153は、第1のインデックス2aと、第2のインデックス2bとが「一致」する場合には、第2処理に移行する。
判定部153が実行する第2処理について説明する。判定部153は、ファイルF1のトレーラ部10cに格納された第1のハッシュ値3aを取得する。また、判定部153は、第2のインデックス2bを所定のハッシュ関数に入力することで、第2のハッシュ値3bを算出し、記憶部140に格納する。
判定部153は、第1のハッシュ値3aと第2のハッシュ値3bとを比較し、「一致」する場合には、文書データ1に変更はないと判定する。これに対して、判定部153は、第1のハッシュ値3aと第2のハッシュ値3bとが「不一致」となる場合には、文書データ1および第1のインデックス2aに変更があると判定する。
通知部154は、判定部153の判定結果を表示部130に表示させる処理部である。また、通知部154は、判定部153の判定結果を、第2の外部装置に通知しても良い。
次に、本実施例に係る変更検出装置100の処理手順について説明する。図8は、本実施例に係る変更検出装置の処理手順を示すフローチャートである。図8に示すように、変更検出装置100の受信部151は、第2の外部装置からファイルF1を受信し、ファイルF1を記憶部140に格納する(ステップS101)。
変更検出装置100の生成部152は、ファイルF1に含まれる文書データ1を符号化して符号化データ141を生成し、第1のインデックス2aおよび第1のハッシュ値3aを算出する(ステップS102)。生成部152は、再度、ファイルF1に含まれる文書データを符号化し、符号化データ141を基にして、第2のインデックス2bを新たに生成する(ステップS103)。たとえば、生成部152は、ファイルF1の情報を、第2の外部装置に送信するタイミングにおいて、ステップS103以降の処理を行う。
変更検出装置100の判定部153は、第1のインデックス2aと第2のインデックス2bとを比較する(ステップS104)。判定部153は、第1のインデックス2aと第2のインデックス2bとが一致する場合には(ステップS105,Yes)、ステップS109に移行する。判定部153は、第1のインデックス2aと第2のインデックス2bとが一致しない場合には(ステップS105,No)、ステップS106に移行する。
判定部153は、文書データ1に変更があると判定する(ステップS106)。判定部153は、比較結果を基にして、変更箇所を特定する(ステップS107)。変更検出装置100の通知部154は、変更箇所を通知する(ステップS108)。
判定部153は、第2のインデックス2bを基にして、第2のハッシュ値3bを演算する(ステップS109)。判定部153は、第1のハッシュ値3aと第2のハッシュ値3bとを比較する(ステップS110)。判定部153は、第1のハッシュ値3aと第2のハッシュ値3bとが一致する場合には(ステップS111,Yes)、変更なしと判定し(ステップS112)、ステップS114に移行する。
一方、判定部153は、第1のハッシュ値3aと第2のハッシュ値3bとが一致しない場合には(ステップS111,No)、文書データ1および第1のインデックス2aに変更があると判定する(ステップS113)。通知部154は、判定結果を通知する(ステップS114)。
次に、本実施例に係る変更検出装置100の効果について説明する。変更検出装置100は、文書データ1が変更されているか否かを判定する場合に、文書データ1を符号化した符号化データ141から第2のインデックス2bを生成し、第1のインデックス2aと第2のインデックス2bとの比較結果に基づいて、文書データ1が変更されているか否かを判定する。このため、従来技術のように、文書データ1全体に対するハッシュ値を演算しなくても、変更有無を特定できる。
また、第1のインデックス2aおよび第2のインデックス2bは、文書データ1を符号化した符号化データ141に含まれる符号それぞれの位置に関する情報を有している。このため、変更検出装置100は、第1のインデックス2aおよび第2のインデックス2bを比較することで、文書データ1全体に対するハッシュ値を演算しなくても、変更有無および変更箇所を特定できる。
なお、第1のインデックス2aおよび第2のインデックス2bが一致する場合でも次のケースがある。すなわち、文書データ1が変更されており、さらに、変更された文書データ1に対応する符号化データ141に合わせて、第1のインデックス2aが変更されている場合には、第1のインデックス2aと第2のインデックス2bとの比較によって、変更を検出することができない。この問題に対応するべく、変更検出装置100は、第2のインデックス2bを基にして、第2のハッシュ値3bを演算し、第1のハッシュ値3aと第2のハッシュ値3bとの比較により、変更を検出する。第2のハッシュ値3bは、符号化データ1全体のハッシュ値ではなく、第2のインデックス2bのハッシュ値であるため、計算量を削減しつつ、変更を検出することができる。
ところで、第1の外部装置が、ファイルF1を生成した場合に、ファイルF1のトレーラ部10cに格納した動的辞書11の情報を、変更検出装置100に通知しておいても良い。変更検出装置100は、第2の外部装置から取得したファイルF1のトレーラ部10cに格納された動的辞書11の情報と、第1の外部装置から受信しておいた動的辞書11の情報とを比較して、動的辞書11に変更が存在するか否かを更に判定しても良い。変更検出装置100は、上記処理を実行することで、動的辞書の改竄を効率的に検出することができる。
次に、上記実施例に示した変更検出装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図9は、変更検出装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図9に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る読み取り装置204と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置205とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201〜207は、バス208に接続される。
ハードディスク装置207は、生成プログラム207a、判定プログラム207bを有する。CPU201は、生成プログラム207a、判定プログラム207bを読み出してRAM206に展開する。
生成プログラム207aは、生成プロセス206aとして機能する。判定プログラム207bは、判定プロセス206bとして機能する。生成プロセス206aの処理は、生成部152の処理に対応する。判定プロセス206bの処理は、判定部153の処理に対応する。
なお、各プログラム207a,207bについては、必ずしも最初からハードディスク装置207に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム207a,207bを読み出して実行するようにしても良い。なお、実施例では、第1のインデックス及び第2のインデックスを転置インデックスとしていたが、本発明は、これに限定されるものではない。転置インデックスの代わりに、インデックスを用いても良い。
また、本実施例では一例として、変更検出装置100が、第1のインデックス2aおよび第1のハッシュ値3aを生成していたが、これに限定されるものではなく、第1の外部装置が生成してもよい。変更検出装置100は、第1の外部装置からファイルF1を受信した際に、第2のインデックス2bを生成して、上記の変更検出の処理を実行することで、第1の外部装置から、変更検出装置100に送信されるまでの間に、ファイルF1が改竄されているか否かを判定することができる。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
記憶部に記憶された文書を取得し、
取得した前記文書に基づき、前記文書に含まれる単語、文字又は符号のいずれかの情報の前記文書における出現位置を該情報に対応付けるインデックス情報を生成し、
文書を特定する情報に対応付けて記憶部に記憶されたインデックス情報を参照して、取得した前記文書を特定する情報に対応付けられたインデックス情報を取得し、
生成した前記インデックス情報と、取得した前記インデックス情報との比較結果に基づき、取得した前記文書に対して行われた変更の有無を判定し、
前記変更が有る場合には、生成した前記インデックス情報と、取得した前記インデックス情報との比較結果に基づき、取得した前記文書における前記変更の箇所を検出する、
処理を実行させることを特徴とする変更検出プログラム。
(付記2)前記記憶部に記憶された前記インデックス情報は、生成した前記インデックス情報とは別に、取得した前記文書を特定する情報により特定される文書を基に生成されたインデックス情報である、
ことを特徴とする付記1に記載の変更検出プログラム。
(付記3)前記インデックス情報を生成する処理は、取得した前記文書を符号化した符号化文書を生成し、前記符号化文書に含まれる符号と符号の位置とを対応づけることで、前記インデックス情報を生成することを特徴とする付記1または2に記載の変更検出プログラム。
(付記4)前記判定する処理は、生成した前記インデックス情報と、取得した前記インデックス情報とが一致しない場合に、取得した前記インデックス情報のハッシュ値を算出し、取得した前記インデックス情報の前記ハッシュ値と、生成した前記インデックス情報のハッシュ値との比較結果を基にして、前記変更があるか否かを判定することを特徴とする付記1、2または3に記載の変更検出プログラム。
(付記5)前記インデックス情報を生成する処理は、動的辞書を更に用いて、取得した前記文書を符号化することで、符号化文書を生成することを特徴とする付記1から4のいずれか一つに記載の変更検出プログラム。
(付記6)コンピュータが実行する変更検出方法であって、
記憶部に記憶された文書を取得し、
取得した前記文書に基づき、前記文書に含まれる単語、文字又は符号のいずれかの情報の前記文書における出現位置を該情報に対応付けるインデックス情報を生成し、
文書を特定する情報に対応付けて記憶部に記憶されたインデックス情報を参照して、取得した前記文書を特定する情報に対応付けられたインデックス情報を取得し、
生成した前記インデックス情報と、取得した前記インデックス情報との比較結果に基づき、取得した前記文書に対して行われた変更の有無を判定し、
前記変更が有る場合には、生成した前記インデックス情報と、取得した前記インデックス情報との比較結果に基づき、取得した前記文書における前記変更の箇所を検出する、
処理を実行することを特徴とする変更検出方法。
(付記7)前記記憶部に記憶された前記インデックス情報は、生成した前記インデックス情報とは別に、取得した前記文書を特定する情報により特定される文書を基に生成されたインデックス情報である、
ことを特徴とする付記6に記載の変更検出方法。
(付記8)前記インデックス情報を生成する処理は、取得した前記文書を符号化した符号化文書を生成し、前記符号化文書に含まれる符号と符号の位置とを対応づけることで、前記インデックス情報を生成することを特徴とする付記6または7に記載の変更検出方法。
(付記9)前記判定する処理は、生成した前記インデックス情報と、取得した前記インデックス情報とが一致しない場合に、取得した前記インデックス情報のハッシュ値を算出し、取得した前記インデックス情報の前記ハッシュ値と、生成した前記インデックス情報のハッシュ値との比較結果を基にして、前記変更があるか否かを判定することを特徴とする付記6、7または8に記載の変更検出方法。
(付記10)前記インデックス情報を生成する処理は、動的辞書を更に用いて、取得した前記文書を符号化することで、符号化文書を生成することを特徴とする付記6から9のいずれか一つに記載の変更検出方法。
(付記11)記憶部に記憶された文書を取得し、取得した前記文書に基づき、前記文書に含まれる単語、文字又は符号のいずれかの情報の前記文書における出現位置を該情報に対応付けるインデックス情報を生成する生成部と、
文書を特定する情報に対応付けて記憶部に記憶されたインデックス情報を参照して、取得した前記文書を特定する情報に対応付けられたインデックス情報を取得し、
生成した前記インデックス情報と、取得した前記インデックス情報との比較結果に基づき、取得した前記文書に対して行われた変更の有無を判定し、
前記変更が有る場合には、生成した前記インデックス情報と、取得した前記インデックス情報との比較結果に基づき、取得した前記文書における前記変更の箇所を検出する判定部と
を有することを特徴とする変更検出装置。
(付記12)前記記憶部に記憶された前記インデックス情報は、生成した前記インデックス情報とは別に、取得した前記文書を特定する情報により特定される文書を基に生成されたインデックス情報である、ことを特徴とする付記11に記載の変更検出装置。
(付記13)前記生成部は、取得した前記文書を符号化した符号化文書を生成し、前記符号化文書に含まれる符号と符号の位置とを対応づけることで、前記インデックス情報を生成することを特徴とする付記11または12に記載の変更検出装置。
(付記14)前記判定部は、生成した前記インデックス情報と、取得した前記インデックス情報とが一致しない場合に、取得した前記インデックス情報のハッシュ値を算出し、取得した前記インデックス情報の前記ハッシュ値と、生成した前記インデックス情報のハッシュ値との比較結果を基にして、前記変更があるか否かを判定することを特徴とする付記11、12または13に記載の変更検出装置。
(付記15)前記生成部は、動的辞書を更に用いて、取得した前記文書を符号化することで、符号化文書を生成することを特徴とする付記11から14のいずれか一つに記載の変更検出装置。
100 変更検出装置
110 通信部
120 入力部
130 表示部
140 記憶部
150 制御部

Claims (7)

  1. コンピュータに、
    記憶部に記憶された文書を取得し、
    取得した前記文書に基づき、前記文書に含まれる単語、文字又は符号のいずれかの情報の前記文書における出現位置を該情報に対応付けるインデックス情報を生成し、
    文書を特定する情報に対応付けて記憶部に記憶されたインデックス情報を参照して、取得した前記文書を特定する情報に対応付けられたインデックス情報を取得し、
    生成した前記インデックス情報と、取得した前記インデックス情報との比較結果に基づき、取得した前記文書に対して行われた変更の有無を判定し、
    前記変更が有る場合には、生成した前記インデックス情報と、取得した前記インデックス情報との比較結果に基づき、取得した前記文書における前記変更の箇所を検出する、
    処理を実行させることを特徴とする変更検出プログラム。
  2. 前記記憶部に記憶された前記インデックス情報は、生成した前記インデックス情報とは別に、取得した前記文書を特定する情報により特定される文書を基に生成されたインデックス情報である、
    ことを特徴とする請求項1に記載の変更検出プログラム。
  3. 前記インデックス情報を生成する処理は、取得した前記文書を符号化した符号化文書を生成し、前記符号化文書に含まれる符号と符号の位置とを対応づけることで、前記インデックス情報を生成することを特徴とする請求項1または2に記載の変更検出プログラム。
  4. 前記判定する処理は、生成した前記インデックス情報と、取得した前記インデックス情報とが一致しない場合に、取得した前記インデックス情報のハッシュ値を算出し、取得した前記インデックス情報の前記ハッシュ値と、生成した前記インデックス情報のハッシュ値との比較結果を基にして、前記変更があるか否かを判定することを特徴とする請求項1、2または3に記載の変更検出プログラム。
  5. 前記インデックス情報を生成する処理は、動的辞書を更に用いて、取得した前記文書を符号化することで、符号化文書を生成することを特徴とする請求項1から4のいずれか一つに記載の変更検出プログラム。
  6. コンピュータが実行する変更検出方法であって、
    記憶部に記憶された文書を取得し、
    取得した前記文書に基づき、前記文書に含まれる単語、文字又は符号のいずれかの情報の前記文書における出現位置を該情報に対応付けるインデックス情報を生成し、
    文書を特定する情報に対応付けて記憶部に記憶されたインデックス情報を参照して、取得した前記文書を特定する情報に対応付けられたインデックス情報を取得し、
    生成した前記インデックス情報と、取得した前記インデックス情報との比較結果に基づき、取得した前記文書に対して行われた変更の有無を判定し、
    前記変更が有る場合には、生成した前記インデックス情報と、取得した前記インデックス情報との比較結果に基づき、取得した前記文書における前記変更の箇所を検出する、
    処理を実行することを特徴とする変更検出方法。
  7. 記憶部に記憶された文書を取得し、取得した前記文書に基づき、前記文書に含まれる単語、文字又は符号のいずれかの情報の前記文書における出現位置を該情報に対応付けるインデックス情報を生成する生成部と、
    文書を特定する情報に対応付けて記憶部に記憶されたインデックス情報を参照して、取得した前記文書を特定する情報に対応付けられたインデックス情報を取得し、
    生成した前記インデックス情報と、取得した前記インデックス情報との比較結果に基づき、取得した前記文書に対して行われた変更の有無を判定し、
    前記変更が有る場合には、生成した前記インデックス情報と、取得した前記インデックス情報との比較結果に基づき、取得した前記文書における前記変更の箇所を検出する判定部と
    を有することを特徴とする変更検出装置。
JP2017211285A 2017-10-31 2017-10-31 変更検出プログラム、変更検出方法および変更検出装置 Active JP6958241B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017211285A JP6958241B2 (ja) 2017-10-31 2017-10-31 変更検出プログラム、変更検出方法および変更検出装置
US16/171,873 US10956599B2 (en) 2017-10-31 2018-10-26 Non-transitory computer readable recording medium, alteration detection method, and alteration detection apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017211285A JP6958241B2 (ja) 2017-10-31 2017-10-31 変更検出プログラム、変更検出方法および変更検出装置

Publications (2)

Publication Number Publication Date
JP2019082967A JP2019082967A (ja) 2019-05-30
JP6958241B2 true JP6958241B2 (ja) 2021-11-02

Family

ID=66243970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017211285A Active JP6958241B2 (ja) 2017-10-31 2017-10-31 変更検出プログラム、変更検出方法および変更検出装置

Country Status (2)

Country Link
US (1) US10956599B2 (ja)
JP (1) JP6958241B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023023736A (ja) * 2021-08-06 2023-02-16 株式会社デンソー データ真正証明システム及びデータ真正証明方法
CN118575175A (zh) * 2022-01-11 2024-08-30 日本电信电话株式会社 检测装置、检测方法以及检测程序

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4220661B2 (ja) * 2000-07-21 2009-02-04 興和株式会社 電子文書改竄検出方法及びその装置
US7302576B2 (en) * 2002-01-07 2007-11-27 Xerox Corporation Systems and methods for authenticating documents
US7240205B2 (en) * 2002-01-07 2007-07-03 Xerox Corporation Systems and methods for verifying documents
WO2004098171A1 (ja) * 2003-04-25 2004-11-11 Oki Electric Industry Co., Ltd. 透かし情報検出方法
EP1752879A1 (en) * 2004-05-13 2007-02-14 Matsushita Electric Industrial Co., Ltd. File management device, file management method, file management program, and computer-readable recording medium containing the file management program
JP4631398B2 (ja) * 2004-11-04 2011-02-16 富士ゼロックス株式会社 文書管理装置、および文書管理方法、並びにコンピュータ・プログラム
JP4722620B2 (ja) 2005-08-19 2011-07-13 Kddi株式会社 暗号化文書検索方法および暗号化文書検索システム
JP2008097395A (ja) * 2006-10-13 2008-04-24 Renesas Technology Corp プログラム設計情報提供システムおよびその提供方法
JP4237813B2 (ja) * 2008-05-26 2009-03-11 株式会社東芝 構造化文書管理システム
JP2013125445A (ja) 2011-12-15 2013-06-24 Toshiba Corp 暗号化された文書の転置インデックス作成方法及び転置インデックスを使用する検索方法
US9230011B1 (en) * 2012-11-30 2016-01-05 Amazon Technologies, Inc. Index-based querying of archived data sets
US9230383B2 (en) * 2012-12-28 2016-01-05 Konica Minolta Laboratory U.S.A., Inc. Document image compression method and its application in document authentication
JP6507657B2 (ja) * 2015-01-15 2019-05-08 富士通株式会社 類似性判定装置、類似性判定方法および類似性判定プログラム
EP3390067B9 (en) * 2015-12-17 2021-09-01 Sicpa Holding Sa Security element, security arrangement, method for its production and authentication method using the same
JP6662169B2 (ja) * 2016-04-18 2020-03-11 富士通株式会社 符号化プログラム、符号化方法、符号化装置、検索プログラム、検索方法および検索装置

Also Published As

Publication number Publication date
JP2019082967A (ja) 2019-05-30
US20190130126A1 (en) 2019-05-02
US10956599B2 (en) 2021-03-23

Similar Documents

Publication Publication Date Title
JP6790270B2 (ja) ブロックチェーンベースのデータ処理方法およびデバイス
US8510608B2 (en) Generating PUF error correcting code using redundant hardware
US10929527B2 (en) Methods and arrangements for implicit integrity
US10848326B2 (en) System and method for collision detection
US10572651B2 (en) Key generating method and apparatus using characteristic of memory
US10846099B2 (en) Selecting a boot loader on an electronic device
US12015703B2 (en) Electronic device for user authentication, server, and control method therefor
KR102006242B1 (ko) 바이너리 파일에 기초하여 오픈소스 소프트웨어 패키지를 식별하는 방법 및 시스템
US20210359833A1 (en) Providing access to a hardware resource based on a canary value
JP7038185B2 (ja) レジスタ内容のインテグリティを検証するシステム、および、その方法
JP6958241B2 (ja) 変更検出プログラム、変更検出方法および変更検出装置
CN112001376B (zh) 基于开源组件的指纹识别方法、装置、设备及存储介质
CN110738513B (zh) 一种用于生成、验证兑换码的方法和装置
JP7003433B2 (ja) 変更検出プログラム、変更検出方法および変更検出装置
JP6488954B2 (ja) 暗号データ処理方法、暗号データ処理システム、暗号データ処理装置および暗号データ処理プログラム
KR101526500B1 (ko) 정보 엔트로피를 이용한 악성 의심 웹사이트 탐지 방법 및 시스템
KR102498265B1 (ko) 프라이버시 보호 애플리케이션 및 장치 오류 검출
US11531785B2 (en) PUF-based data integrity
US10771095B2 (en) Data processing device, data processing method, and computer readable medium
US12119073B2 (en) Integrated circuit and operation method and inspection method thereof
WO2017185432A1 (zh) 基于汉明距离种类数目的隐写分析方法及装置
JP5398353B2 (ja) ハッシュ値演算装置、ハッシュ値演算方法及びハッシュ値演算プログラム
US12067152B2 (en) Verification device, verification system, verification method, and verification program
US20210192049A1 (en) Electronic device and method of updating software
WO2022120572A1 (zh) 一种篡改验证方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210615

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210920

R150 Certificate of patent or registration of utility model

Ref document number: 6958241

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150