JP4534447B2 - デジタルデータの改竄検出プログラム,改竄検出方法並びに改竄検出装置 - Google Patents

デジタルデータの改竄検出プログラム,改竄検出方法並びに改竄検出装置 Download PDF

Info

Publication number
JP4534447B2
JP4534447B2 JP2003286455A JP2003286455A JP4534447B2 JP 4534447 B2 JP4534447 B2 JP 4534447B2 JP 2003286455 A JP2003286455 A JP 2003286455A JP 2003286455 A JP2003286455 A JP 2003286455A JP 4534447 B2 JP4534447 B2 JP 4534447B2
Authority
JP
Japan
Prior art keywords
data
address
value
digital data
reference address
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
Application number
JP2003286455A
Other languages
English (en)
Other versions
JP2005056159A (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.)
Nissan Motor Co Ltd
Original Assignee
Nissan Motor Co 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 Nissan Motor Co Ltd filed Critical Nissan Motor Co Ltd
Priority to JP2003286455A priority Critical patent/JP4534447B2/ja
Publication of JP2005056159A publication Critical patent/JP2005056159A/ja
Application granted granted Critical
Publication of JP4534447B2 publication Critical patent/JP4534447B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、デジタルデータの改竄を簡便かつ高精度に検出する技術に関する。
近年の自動車では、車載コントロールユニットにより、エンジン,ブレーキなどが電子制御されている。エンジン制御においては、機関出力と排気性状との両立を図るべく、種々の実験などを通じて得られた最適な制御データが用いられている。一方、市場の一部においては、排気性状が低下することも省みずに、機関出力のみを向上させるべく、最適に設定された制御データを書き換える不法改造が行われていることも否めない。このため、北米では、排気規制強化の一環として、コントロールユニットの不法改造を防止すべく、改竄検出用の照合値(CVN;Calibration Verification Number)を出力することを義務付けている。
従来では、プログラム(制御データも含む)のチェックサムを照合値として出力していたが、チェックサムでは次のような不具合があった。即ち、チェックサムは、プログラムデータを単純に加算した総和なので、加減算した分をダミーデータなどで打ち消すようにすれば、照合値を変えずにプログラムの改竄が可能であった。このため、チェックサム方式では、プログラムの改竄を高精度に検出することはできなかった。そこで、本願出願人は、各アドレスに格納されたデータ値をアドレスとみなし、そのアドレスに格納されたデータ値に対して所定演算を施して照合値を演算することで、デジタルデータの改竄を検出する技術(特許文献1)を提案した。
特開2003−58424号公報
しかしながら、かかる従来技術においては、図13のA部に示すように、異なるアドレスに格納されているデータ値が同一であれば、その参照先が同じアドレスとなることから、必ずしもデジタルデータの全アドレスを対象として照合値が算出されないこととなる。このため、参照先とはならないデータ値を書き換えたときには、その改竄を検出できないおそれがあった。また、デジタルデータにおいては、連続する未使用領域には、同図に示すように、同一値が格納されることが一般的である。このため、同図のB部に示すように、改竄前後のデータ値がこのような未使用領域を夫々示していれば、改竄の有無にかかわらず照合値が変わらないことから、その改竄を検出できないおそれがあった。
そこで、本発明は以上のような従来の問題点に鑑み、照合値の演算処理に要する負荷増大を抑制しつつ、デジタルデータの全アドレスから照合値を演算することで、デジタルデータの改竄を簡便かつ高精度に検出できるようにしたデジタルデータの改竄検出技術を提供することを目的とする。
このため、デジタルデータの改竄検出プログラムに係る発明において、請求項1記載の発明では、デジタルデータの各アドレスに格納された第1データ値を順次読み出す第1のデータ読出機能と、前記第1データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記デジタルデータのアドレスを示す第1参照アドレスを生成する第1の参照アドレス生成機能と、前記第1参照アドレスに格納されている第2データ値を読み出す第2のデータ読出機能と、前記第1データ値及び前記第2データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、改竄検出用の照合値を演算する照合値演算機能と、をコンピュータに実現させることを特徴とする。
請求項2記載の発明では、前記第1の参照アドレス生成機能は、前記第1データ値及びそのアドレス値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記第1参照アドレスを生成することを特徴とする。
請求項3記載の発明では、前記第1参照アドレスに格納されている前記第2データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記デジタルデータのアドレスを示す第2参照アドレスを生成する第2の参照アドレス生成機能を備え、前記照合値演算機能は、前記第1データ値、並びに、前記第2データ値及び前記第2参照アドレスに格納されている第3データ値のうち、少なくとも前記第1データ値と前記第3データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、改竄検出用の照合値を演算することを特徴とする。
請求項4記載の発明では、前記第1の参照アドレス生成機能は、前記第1データ値が格納されているアドレスを起点として、そこから連続する複数アドレスに格納されている各データ値を並べて前記第1参照アドレスを生成するとともに、前記複数アドレスの数、前記複数アドレスに格納されている各データ値を並べた時のバイト数によってデジタルデータのアドレスを表現可能な数であることを特徴とする。
請求項5記載の発明では、前記第1の参照アドレス生成機能は、前記デジタルデータのアドレスを示すポインタから連続する複数アドレスに格納されている各データ値を並べて前記第1参照アドレスを生成すると共に、前記第1参照アドレスを生成するたびに所定範囲の数値を順番に出力するカウンタに基づき、カウンタが示す数値だけ前記ポインタを進め、前記複数アドレスの数、前記複数アドレスに格納されている各データ値を並べた時のバイト数によってデジタルデータのアドレスを表現可能な数であることを特徴とする。
また、コンピュータによって実行されるデジタルデータの改竄検出方法に係る発明において、請求項6記載の発明では、デジタルデータの各アドレスに格納された第1データ値を順次読み出す第1のデータ読出工程と、前記第1データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記デジタルデータのアドレスを示す第1参照アドレスを生成する第1の参照アドレス生成工程と、前記第1参照アドレスに格納されている第2データ値を読み出す第2のデータ読出工程と、前記第1データ値及び前記第2データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、改竄検出用の照合値を演算する照合値演算工程と、がコンピュータ上で実行されることを特徴とする。
請求項7記載の発明では、前記第1の参照アドレス生成工程は、前記第1データ値及びそのアドレス値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記第1参照アドレスを生成することを特徴とする。
請求項8記載の発明では、コンピュータによって実行され、前記第1参照アドレスに格納されている前記第2データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記デジタルデータのアドレスを示す第2参照アドレスを生成する第2の参照アドレス生成工程を備え、前記照合値演算工程は、前記第1データ値、並びに、前記第2データ値及び前記第2参照アドレスに格納されている第3データ値のうち、少なくとも前記第1データ値と前記第3データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、改竄検出用の照合値を演算することを特徴とする。
請求項9記載の発明では、前記第1の参照アドレス生成工程は、前記第1データ値が格納されるアドレスを起点として、そこから連続する複数アドレスに格納されている各データ値を並べて前記第1参照アドレスを生成し、前記複数アドレスの数、前記複数アドレスに格納されている各データ値を並べた時のバイト数によってデジタルデータのアドレスを表現可能な数であることを特徴とする。
請求項10記載の発明では、前記第1の参照アドレス生成工程は、前記デジタルデータのアドレスを示すポインタから連続する複数アドレスに格納されている各データ値を並べて前記第1参照アドレスを生成すると共に、前記第1参照アドレスを生成するたびに所定範囲の数値を順番に出力するカウンタに基づき、カウンタが示す数値だけ前記ポインタを進め、前記複数アドレスの数、前記複数アドレスに格納されている各データ値を並べた時のバイト数によってデジタルデータのアドレスを表現可能な数であることを特徴とする。
一方、デジタルデータの改竄検出装置に係る発明において、請求項11記載の発明では、デジタルデータの改竄を改竄検出用の照合値に基づいて検出する改竄検出装置において、デジタルデータの各アドレスに格納された第1データ値を順次読み出す第1のデータ読出手段と、前記第1データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記デジタルデータのアドレスを示す第1参照アドレスを生成する第1の参照アドレス生成手段と、前記第1参照アドレスに格納されている第2データ値を読み出す第2のデータ読出手段と、前記第1データ値及び前記第2データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、改竄検出用の照合値を演算する照合値演算手段と、を含んで構成されたことを特徴とする。
請求項12記載の発明では、前記第1の参照アドレス生成手段は、前記第1データ値及びそのアドレス値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記第1参照アドレスを生成することを特徴とする
請求項13記載の発明では、前記第1参照アドレスに格納されている前記第2データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記デジタルデータのアドレスを示す第2参照アドレスを生成する第2の参照アドレス生成手段を備え、前記照合値演算手段は、前記第1データ値、並びに、前記第2データ値及び前記第2参照アドレスに格納されている第3データ値のうち、少なくとも前記第1データ値と前記第3データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、改竄検出用の照合値を演算することを特徴とする。
請求項14記載の発明では、前記第1の参照アドレス生成手段は、前記第1データ値が格納されるアドレスを起点として、そこから連続する複数アドレスに格納されている各データ値を並べて前記第1参照アドレスを生成し、前記複数アドレスの数、前記複数アドレスに格納されている各データ値を並べた時のバイト数によってデジタルデータのアドレスを表現可能な数であることを特徴とする。
請求項15記載の発明では、前記第1の参照アドレス生成手段は、前記デジタルデータのアドレスを示すポインタから連続する複数アドレスに格納されている各データ値を並べて前記第1参照アドレスを生成すると共に、前記第1参照アドレスを生成するたびに所定範囲の数値を順番に出力するカウンタに基づき、カウンタが示す数値だけ前記ポインタを進め、前記複数アドレスの数、前記複数アドレスに格納されている各データ値を並べた時のバイト数によってデジタルデータのアドレスを表現可能な数であることを特徴とする。
請求項1、6又は11記載の発明によれば、デジタルデータの各アドレスに格納された第1データ値から、デジタルデータのアドレスを示す第1参照アドレスが生成される。そして、各アドレスに格納された第1データ値及び第1参照アドレスに格納されている第2データ値から、改竄検出用の照合値が演算される。このため、照合値には、デジタルデータの先頭アドレスから最終アドレスに格納されるすべてのデータ値が反映されることとなり、連続するアドレスに同一値が格納されていても、その改竄を簡便かつ高精度に検出することができる。
請求項2、7又は12記載の発明によれば、第1参照アドレスは、デジタルデータの各アドレスに格納された第1データ値及びそのアドレス値から生成される。このため、参照アドレスの生成方法は、簡便であるにもかかわらず、これを推測することを困難とすることができる。
請求項3、8又は13記載の発明によれば、第1参照アドレスに格納された第2データ値から、デジタルデータのアドレスを示す第2参照アドレスが生成される。そして、第1データ値、並びに、第2データ値及び第2参照アドレスに格納されている第3データ値のうち、少なくとも第1データ値と第3データ値とから、改竄検出用の照合値が演算される。このため、照合値の演算方法は、簡便であるにもかかわらず、これを推測することを一層困難とすることができる。
請求項4、9又は14記載の発明によれば、第1参照アドレスは、第1データ値が格納されるアドレスを起点として、そこから連続する複数アドレスに格納されている各データ値を並べて生成される。このため、1バイトでは表現できないアドレスについても、そこに格納されているデータ値を参照することが可能となり、広大なアドレスを有するデジタルデータであっても、その改竄を検出することができる。
請求項5、10又は15記載の発明によれば、第1参照アドレスは、デジタルデータのアドレスを示すポインタから連続する複数アドレスに格納されている各データ値を並べて生成されると共に、第1参照アドレスを生成するたびに所定範囲の数値を順番に出力するカウンタに基づき、カウンタが示す数値だけポインタを進める。このため、参照アドレスの生成方法の推測が一層困難になると共に、1バイトでは表現できないアドレスについても、そこに格納されているデータ値を参照することが可能となり、広大なアドレスを有するデジタルデータであっても、その改竄を検出することができる。
以下、添付された図面を参照して本発明を詳述する。
図1は、本発明を具現化したデジタルデータの改竄検出装置(以下「改竄検出装置」という)の基本構成を示す。改竄検出装置は、少なくとも中央処理装置(CPU)とメモリとを備えたコンピュータ上に構築され、メモリにロードされたプログラムにより各種機能がソフトウエア的に実現される。
改竄検出装置10は、アドレスカウンタ12と、アドレス生成部14と、照合値演算部16と、出力部18と、を含んで構成される。また、改竄検出装置10による改竄検出対象たるデジタルデータは、ハードディスク,ROM,CD-ROM,DVD-ROMなどのコンピュータ読取可能な記憶媒体20に記憶される。ここで、デジタルデータの種類としては、コンピュータプログラム,自動車の各種制御に用いられる制御プログラム及びデータ,デジタル著作物などが挙げられる。
アドレスカウンタ12は、記憶媒体20において改竄検出対象たるデジタルデータのアドレスADR1を示す。デジタルデータの改竄検出処理を開始するときには、アドレスカウンタ12は、改竄検出対象たるデジタルデータの先頭アドレスを示し、処理進行に伴ってそのアドレスが順次カウントアップされる。ここで、記憶媒体20に複数のデジタルデータが記憶されていることを想定し、その中から任意のデジタルデータを選択可能とすることが望ましい。このときには、アドレスカウンタ12は、選択されたデジタルデータの先頭アドレスを示すこととなる。
アドレス生成部14では、アドレスカウンタ12が示すアドレスADR1に基づいて、記憶媒体20から、アドレスADR1に格納されているデータ値Data1が読み出される。そして、読み出されたデータ値Data1に対して、四則演算を任意に組み合わせた所定演算が施され、デジタルデータの参照アドレスADR2が生成される。なお、アドレス生成部14により、第1のデータ読出機能,工程及び手段、並びに、第1の参照アドレス生成機能,工程及び手段が夫々実現される。
照合値演算部16では、アドレスカウンタ12が示すアドレスADR1及びアドレス生成部14により生成された参照アドレスADR2に基づいて、記憶媒体20から、アドレスADR1及び参照アドレスADR2に格納されているデータ値Data1及びData2が夫々読み出される。そして、読み出されたデータ値Data1及びData2に対して、四則演算を任意に組み合わせた所定演算が施され、改竄検出用照合値CVNが演算される。なお、照合値演算部16により、第2のデータ読出機能,工程及び手段、並びに、照合値演算機能,工程及び手段が夫々実現される。
出力部18は、照合値演算部16により演算された照合値CVNを可視的に出力すべく、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などの表示装置,プリンタなどの印刷装置から構成される。ここで、出力部18には、改竄検出対象となるデジタルデータの照合基準値、即ち、改竄がなされていないときの照合値を併せて出力することが望ましい。
次に、改竄検出装置10における処理概要について、図2に示すフローチャートを参照しつつ説明する。
ステップ1(図では「S1」と略記する。以下同様)では、アドレスカウンタ12が示すアドレスADR1に、デジタルデータの先頭アドレスが設定される。即ち、ユーザによりデジタルデータが指定されたときには、アドレスADR1には、記憶媒体20におけるそのデジタルデータの先頭アドレスが設定される。一方、記憶媒体20にデジタルデータが1つのみ記憶されているときには、記憶媒体20の先頭アドレスが設定される。
ステップ2では、改竄検出用照合値CVNが0に初期化される。
ステップ3では、記憶媒体20から、アドレスADR1に格納されているデータ値Data1が読み出される。なお、ステップ3の処理が、第1のデータ読出機能,工程及び手段に夫々該当する。
ステップ4では、読み出されたデータ値Data1に対して、後述する各種所定演算が施され、デジタルデータの参照アドレスADR2が生成される。なお、ステップ4の処理が、第1の参照アドレス生成機能,工程及び手段に夫々該当する。
ステップ5では、記憶媒体20から、参照アドレスADR2に格納されているデータ値Data2が読み出される。なお、ステップ5の処理が、第2のデータ読出機能,工程及び手段に夫々該当する。
ステップ6では、読み出されたデータ値Data1及びData2に対して、後述する各種所定演算が施され、照合値CVNの照合要素Data3が演算される。
ステップ7では、照合値CVNに対して照合要素Data3が加算される。
ステップ8では、照合値CVNの演算が終了したか否か、即ち、改竄検出対象たるデジタルデータの最終アドレスまで処理が終了したか否かが判定される。そして、照合値CVNの演算が終了したならばステップ9へと進み(Yes)、出力部18に照合値CVNが出力される。一方、照合値CVNの演算が終了していなければステップ10へと進み(No)、アドレスADR1がカウントアップされた後、ステップ3へと戻る。なお、ステップ6〜ステップ8における一連の処理が、照合値演算機能,工程及び手段に夫々該当する。
なお、照合値CVNを出力する代わりに、照合値CVNが照合基準値と一致しなければ、デジタルデータが改竄されたと判定し、その旨を出力部18に出力するようにしてもよい。
次に、改竄検出用照合値CVNの各種演算方法について説明する。
(第1実施例)
第1実施例では、図3に示すように、アドレスARD1に格納されるデータ値Data1は、参照アドレスADR2そのものを示しているとみなし、そこに格納されているデータ値Data2を読み込む。そして、データ値Data1及びData2を単純に加算し、照合要素Data3を演算した後、照合値CVNに対して照合要素Data3を加算する。このような処理を、改竄検出対象たるデジタルデータの先頭アドレスから最終アドレスまで順次繰り返すことで、最終的な照合値CVNを演算する。なお、図示するアドレス値及びデータ値は、特に断らない限り、10進法で表わしているものとする(以下同様)。
照合要素Data3の演算方法について、同図に示す具体例をもって説明すると、アドレスADR1=0001に格納されているデータ値Data1=3は、参照アドレスADR2そのものを示しているので、参照アドレスADR2=0003となる。そして、参照アドレスADR2=0003に格納されているデータ値Data2は「13」であるので、データ値Data1及びData2が加算され、照合要素Data3=Data1+Data2=3+13=16となる。
ここで、アドレス「0006」におけるデータ値が「37」から「39」に改竄されたとする。背景技術において参照した特許文献1に開示される技術(以下「従来方式」という)では、データ値Data1が参照アドレスADR2を示す点については本発明と同様であるが、参照アドレスADR2に格納されているデータ値Data2そのものを照合要素Data3としていたため、連続するアドレス0030〜0049に同一値「10」が格納されていると、改竄前後における照合要素Data3は夫々「10」となって、改竄内容が反映されなかった。しかし、本発明による改竄検出技術(以下「本方式」という)によれば、照合要素Data3は、改竄前では「37+10=47」であるのに対して、改竄後では「39+10=49」となって、改竄内容が反映されることとなる。
(第2実施例)
第2実施例では、第1実施例における演算方法に加え、図4に示すように、データ値Data1に対して任意の四則演算、例えば、2を乗算することで、参照アドレスADR2を生成するようにする。このとき、コンピュータでは乗除算にある程度の時間がかかることを考慮し、論理シフトで代替される「2n倍(nは整数)」とすることが望ましい。即ち、アドレスADR1=0000に格納されているデータ値Data1=1に2を乗算し、参照アドレスADR2=0002を生成する。参照アドレスADR2=0002に格納されているデータ値Data2は「37」であるので、データ値Data1及びData2を加算し、照合要素Data3=Data1+Data2=1+37=38を求める。
ここで、アドレス「0006」におけるデータ値が「17」から「23」に改竄されたとする。従来方式では、改竄前後における照合要素Data3は夫々「10」となって、改竄内容が反映されなかった。しかし、本方式によれば、照合要素Data3は、改竄前では「17+10=27」であるのに対して、改竄後では「23+10=33」となって、改竄内容が反映されることとなる。
(第3実施例)
第3実施例では、第1実施例における演算方法に加え、図5に示すように、照合要素Data3を演算するときに、参照アドレスADR2に格納されているデータ値Data2に対して任意の四則演算、例えば、8を減算するようにする。即ち、アドレスADR1=0000に格納されているデータ値Data1=2から参照アドレスADR2=0002を生成すると共に、そこに格納されているデータ値Data2=37を読み込む。また、データ値Data1=2に対して、データ値Data2=37から8を減算した値を加算し、照合要素Data3=Data1+(Data2-8)=1+(37-8)=30を求める。
ここで、アドレス「0006」におけるデータ値が「34」から「46」に改竄されたとする。従来方式では、改竄前後における照合要素Data3は夫々「10」となって、改竄内容が反映されなかった。しかし、本方式によれば、照合要素Data3は、改竄前では「34+(10-8)=36」であるのに対して、改竄後では「46+(10-8)=48」となって、改竄内容が反映されることとなる。
(第4実施例)
第4実施例では、第1実施例における演算方法に加え、図6に示すように、データ値Data1に対して任意の四則演算、例えば、2を加算して参照アドレスADR2を生成すると共に、照合要素Data3を演算するときに、参照アドレスADR2に格納されているデータ値Data2に対して任意の四則演算、例えば、3を乗算するようにする。即ち、アドレスADR1=0000に格納されているデータ値Data1=1に対して2を加算して参照アドレスADR2=0003を生成すると共に、そこに格納されているデータ値Data2=13を読み込む。また、データ値Data1=1に対して、データ値Data2=13に3を乗算した値を加算し、照合要素Data3=Data1+Data2×3=1+13×3=40を求める。
ここで、アドレス「0006」におけるデータ値が「32」から「44」に改竄されたとする。従来方式では、改竄前後における照合要素Data3は夫々「10」となって、改竄内容が反映されなかった。しかし、本方式によれば、照合要素Data3は、改竄前では「32+10×3=62」であるのに対して、改竄後では「44+10×3=74」となって、改竄内容が反映されることとなる。
(第5実施例)
第5実施例では、第1実施例における演算方法に加え、図7に示すように、データ値Data1に対して任意の四則演算、例えば、2を加算することで、参照アドレスADR2を生成すると共に、照合要素Data3を演算するときに、データ値Data1及びData2に対して所定の四則演算、例えば、2及び3を夫々乗算するようにする。即ち、アドレスADR1=0000に格納されているデータ値Data1=1に対して2を加算して参照アドレスADR2=0003を生成すると共に、そこに格納されているデータ値Data2=13を読み込む。また、データ値Data1=3に2を乗算した値に対して、データ値Data2=13に3を乗算した値を加算し、照合要素Data3=Data1×2+Data2×3=1×2+13×3=41を求める。
ここで、アドレス「0006」におけるデータ値が「32」から「44」に改竄されたとする。従来方式では、改竄前後における照合要素Data3は夫々「10」となって、改竄内容が反映されなかった。しかし、本方式によれば、照合要素Data3は、改竄前では「32×2+10×3=94」であるのに対して、改竄後では「44×2+10×3=118」となって、改竄内容が反映されることとなる。
(第6実施例)
第6実施例では、第1実施例における演算方法に加え、図8に示すように、データ値Data1に対してアドレスADR1を加算することで、参照アドレスADR2を生成するようにする。即ち、アドレスADR1=0001のときには、そこに格納されているデータ値Data1=3に対してアドレスADR1=0001を加算することで、参照アドレスADR2=0001+0003=0004を生成する。そして、データ値Data1=3に対して、参照アドレスADR2=0004に格納されているデータ値Data2=29を加算し、照合要素Data3=Data1+Data2=3+29=32を求める。
ここで、アドレス「0006」におけるデータ値が「37」から「39」に改竄されたとする。従来方式では、改竄前後における照合要素Data3は夫々「10」となって、改竄内容が反映されなかった。しかし、本方式によれば、照合要素Data3は、改竄前では「37+10=47」であるのに対して、改竄後では「39+10=49」となって、改竄内容が反映されることとなる。
(第7実施例)
第7実施例では、第1実施例における演算方法に加え、図9に示すように、データ値Data1に対してアドレスADR1を加算して参照アドレスADR2を生成すると共に、データ値Data1及びData2、並びに、データ値Data2が示すアドレスに格納されているデータ値を加算することで、照合要素Data3を演算するようにする。即ち、アドレスADR1=0001のときには、そこに格納されているデータ値Data1=3に対してアドレスADR1=0001を加算することで、参照アドレスADR2=0001+0003=0004を生成する。また、参照アドレスADR2=0004に格納されているデータ値Data2=29をアドレス値とみなして、アドレス「0029」に格納されているデータ値「12」を読み込む。そして、データ値Data1,Data2及び「12」を加算することで、照合要素Data3=Data1+Data2+12=3+29+12=44を求める。
ここで、アドレス「0006」におけるデータ値が「37」から「39」に改竄されたとする。従来方式では、改竄前後における照合要素Data3は夫々「10」となって、改竄内容が反映されなかった。しかし、本方式によれば、照合要素Data3は、改竄前では「37+10+23=70」であるのに対して、改竄後では「39+10+23=72」となって、改竄内容が反映されることとなる。なお、ここでは、3つのデータ値を全て利用することによって照合要素を算出しているが、このうち2つのデータ値(第1のデータ読出機能により読み出されたデータ値と、第2の参照アドレス生成機能により生成された参照アドレスに格納されたデータ値)を利用して照合要素を算出してもよい。
以上説明した第1実施例〜第7実施例によれば、照合要素Data3を積算した照合値CVNには、デジタルデータの先頭アドレスから最終アドレスに格納されるすべてのデータ値が反映されるため、連続するアドレスに同一値が格納されていても、その改竄を簡便かつ高精度に検出することができる。そして、第1実施例を基本として、第2実施例〜第7実施例を少なくとも1つ組み合わせるようにすれば、演算方法が簡単であるにもかかわらず、照合値CVNがどのような方法で演算されているのか推測することが極めて困難となる。このため、悪意を持ってデジタルデータを改竄しようとする者が、例えば、ダミーデータを書き換えることで照合値CVNの辻褄を合わせようとしようとしても、現実的には不可能となってしまう。従って、本方式によれば、デジタルデータの1バイトを書き換えただけでも、その辻褄を合わせることが困難であることから、その改竄を高精度に検出することができる。
ところで、デジタルデータは、1バイトで表現されるアドレス(0〜255)により参照可能であるとは限らない。このため、複数バイトでなければ表現できないアドレスに対して参照可能とすべく、次に示すようなアドレス生成方法を適用することが望ましい。なお、以下に示す例では、3バイトで表現できるアドレスを参照すると共に、アドレス及びデータ値が16進法で表わされているものとする。
図10は、アドレス生成方法の第1実施例を示す。
第1実施例では、アドレスADR1が示すアドレス、換言すると、データ値Data1が格納されているアドレスを起点として、そこから連続する複数アドレス(本実施例では4バイト)に格納されたデータ値から、参照アドレスADR2を生成するようにする。即ち、図示の例では、アドレスADR1=0000のときには、アドレス「0000〜0003」に格納されている4バイト「FFFF4003」が読み出され、最上位バイトをマスクすべく公知のマスク処理が施され、参照アドレスADR2として「00FF4003」を生成する。そして、参照アドレスADR2が示すアドレスからデータ値を読み出すことで、最大FFFFFFバイト(16メガバイト)のデジタルデータの改竄を検出することができる。なお、かかるアドレス生成方法は、参照アドレスADR2の生成に限らず、データ値Data2から参照アドレスを生成するときにも適用可能である(以下同様)。
図11は、アドレス生成方法の第2実施例を示す。
第2実施例では、第1実施例を基本として、アドレス生成方法の推測を困難とすべく、複数アドレスに格納されるデータ値を所定規則に則って並べ替えたものから、参照アドレスADR2を生成するようにする。即ち、図示の例では、アドレスADR1=0000のときには、アドレス「0000〜0003」に格納されている4バイト「FFFF4003」が読み出され、その上位2バイトと下位2バイトが入れ換えられた後、第1実施例と同様なマスク処理が施され、参照アドレスADR2として「0003FFFF」を生成する。
図12は、アドレス生成方法の第3実施例を示す。
第3実施例では、アドレス生成方法の推測を一層困難とすべく、デジタルデータの先頭アドレスから最終アドレスのすべてのアドレスから、規則性をもって参照アドレスADR2を生成するようにする。即ち、アドレス生成用のポインタを用い、そのポインタから連続する複数アドレスに格納されたデータ値から参照アドレスADR2を生成すると共に、参照アドレスADR2を生成するたびに、ポインタを所定規則に則って更新するようにする。ここで、ポインタを更新する所定規則としては、例えば、1〜4を繰り返すカウンタを用い、ポインタをそのカウンタが示す値だけ進めるようにする。
図示の例では、1回目のアドレス生成においては、ポインタは「000000」を示すので、アドレス[000000」から連続した4バイトが読み出された後、ポインタが「000000」から「1」だけ進められて「000001」となる。2回目のアドレス生成においては、ポインタは「000001」を示すので、アドレス「000002」から連続した4バイトが読み出され、ポインタが「000001」から「2」だけ進められ「000003」となる。3回目のアドレス生成においては、ポインタは「000003」を示すので、アドレス「000003」から連続した4バイトが読み出され、ポインタが「000003」から「3」だけ進められ「000006」となる。4回目のアドレス生成においては、ポインタは「000006」を示すので、アドレス「000006」から連続した4バイトが読み出され、ポインタが「000006」から「4」だけ進められ「00000A」となる。このようなアドレス生成処理を順次繰り返し、デジタルデータのすべてのアドレスから参照アドレスが生成される。
なお、アドレス生成方法の第1実施例〜第3実施例においては、デジタルデータの最終アドレス以降のデータ値を参照する必要が生じたときには、その後に先頭アドレスからのデータ値が続いているものとして処理するようにすればよい。
かかるアドレス生成方法によれば、1バイトでは表現できないアドレスも参照することが可能となり、デジタルデータの改竄検出の実効を図ることができる。また、アドレス生成方法が推測され難くなることから、デジタルデータの改竄もより困難となる。
本発明を具現化した改竄検出装置の構成図 改竄検出装置における処理内容の概要を示すフローチャート 改竄検出用照合値CVNの演算方法の第1実施例を示す説明図 改竄検出用照合値CVNの演算方法の第2実施例を示す説明図 改竄検出用照合値CVNの演算方法の第3実施例を示す説明図 改竄検出用照合値CVNの演算方法の第4実施例を示す説明図 改竄検出用照合値CVNの演算方法の第5実施例を示す説明図 改竄検出用照合値CVNの演算方法の第6実施例を示す説明図 改竄検出用照合値CVNの演算方法の第7実施例を示す説明図 アドレス生成方法の第1実施例を示す説明図 アドレス生成方法の第2実施例を示す説明図 アドレス生成方法の第3実施例を示す説明図 従来方式における不具合を示す説明図
符号の説明
10 改竄検出装置
12 アドレスカウンタ
14 アドレス生成部
16 照合値演算部
18 出力部
20 記憶媒体

Claims (15)

  1. デジタルデータの改竄を改竄検出用の照合値に基づいて検出する改竄検出プログラムにおいて、
    デジタルデータの各アドレスに格納された第1データ値を順次読み出す第1のデータ読出機能と、
    前記第1データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記デジタルデータのアドレスを示す第1参照アドレスを生成する第1の参照アドレス生成機能と、
    前記第1参照アドレスに格納されている第2データ値を読み出す第2のデータ読出機能と、
    前記第1データ値及び前記第2データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、改竄検出用の照合値を演算する照合値演算機能と、
    をコンピュータに実現させるためのデジタルデータの改竄検出プログラム。
  2. 前記第1の参照アドレス生成機能は、前記第1データ値及びそのアドレス値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記第1参照アドレスを生成することを特徴とする請求項1記載のデジタルデータの改竄検出プログラム。
  3. 前記第1参照アドレスに格納されている前記第2データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記デジタルデータのアドレスを示す第2参照アドレスを生成する第2の参照アドレス生成機能を備え、
    前記照合値演算機能は、前記第1データ値、並びに、前記第2データ値及び前記第2参照アドレスに格納されている第3データ値のうち、少なくとも前記第1データ値と前記第3データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、改竄検出用の照合値を演算することを特徴とする請求項1又は2に記載のデジタルデータの改竄検出プログラム。
  4. 前記第1の参照アドレス生成機能は、前記第1データ値が格納されているアドレスを起点として、そこから連続する複数アドレスに格納されている各データ値を並べて前記第1参照アドレスを生成し
    前記複数アドレスの数、前記複数アドレスに格納されている各データ値を並べた時のバイト数によってデジタルデータのアドレスを表現可能な数であることを特徴とする請求項1又は2に記載のデジタルデータの改竄検出プログラム。
  5. 前記第1の参照アドレス生成機能は、前記デジタルデータのアドレスを示すポインタから連続する複数アドレスに格納されている各データ値を並べて前記第1参照アドレスを生成すると共に、前記第1参照アドレスを生成するたびに所定範囲の数値を順番に出力するカウンタに基づき、カウンタが示す数値だけ前記ポインタを進め、
    前記複数アドレスの数は、前記複数アドレスに格納されている各データ値を並べた時のバイト数によってデジタルデータのアドレスを表現可能な数であることを特徴とする請求項1又は2に記載のデジタルデータの改竄検出プログラム。
  6. コンピュータによって実行され、デジタルデータの改竄を改竄検出用の照合値に基づいて検出する改竄検出方法において、
    デジタルデータの各アドレスに格納された第1データ値を順次読み出す第1のデータ読出工程と、
    前記第1データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記デジタルデータのアドレスを示す第1参照アドレスを生成する第1の参照アドレス生成工程と、
    前記第1参照アドレスに格納されている第2データ値を読み出す第2のデータ読出工程と、
    前記第1データ値及び前記第2データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、改竄検出用の照合値を演算する照合値演算工程と、
    がコンピュータ上で実行されることを特徴とするデジタルデータの改竄検出方法。
  7. 前記第1の参照アドレス生成工程は、前記第1データ値及びそのアドレス値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記第1参照アドレスを生成することを特徴とする請求項6記載のデジタルデータの改竄検出方法。
  8. 前記コンピュータによって実行され、前記第1参照アドレスに格納されている前記第2データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記デジタルデータのアドレスを示す第2参照アドレスを生成する第2の参照アドレス生成工程を備え、
    前記照合値演算工程は、前記第1データ値、並びに、前記第2データ値及び前記第2参照アドレスに格納されている第3データ値のうち、少なくとも前記第1データ値と前記第3データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、改竄検出用の照合値を演算することを特徴とする請求項6又は7に記載のデジタルデータの改竄検出方法。
  9. 前記第1の参照アドレス生成工程は、前記第1データ値が格納されるアドレスを起点として、そこから連続する複数アドレスに格納されている各データ値を並べて前記第1参照アドレスを生成し、
    前記複数アドレスの数は、前記複数アドレスに格納されている各データ値を並べた時のバイト数によってデジタルデータのアドレスを表現可能な数であることを特徴とする請求項6又は7に記載のデジタルデータの改竄検出方法。
  10. 前記第1の参照アドレス生成工程は、前記デジタルデータのアドレスを示すポインタから連続する複数アドレスに格納されている各データ値を並べて前記第1参照アドレスを生成すると共に、前記第1参照アドレスを生成するたびに所定範囲の数値を順番に出力するカウンタに基づき、カウンタが示す数
    値だけ前記ポインタを進め、
    前記複数アドレスの数は、前記複数アドレスに格納されている各データ値を並べた時のバイト数によってデジタルデータのアドレスを表現可能な数であることを特徴とする請求項6又は7に記載のデジタルデータの改竄検出方法。
  11. デジタルデータの改竄を改竄検出用の照合値に基づいて検出する改竄検出装置において、
    デジタルデータの各アドレスに格納された第1データ値を順次読み出す第1のデータ読出手段と、
    前記第1データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記デジタルデータのアドレスを示す第1参照アドレスを生成する第1の参照アドレス生成手段と、
    前記第1参照アドレスに格納されている第2データ値を読み出す第2のデータ読出手段と、
    前記第1データ値及び前記第2データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、改竄検出用の照合値を演算する照合値演算手段と、
    を含んで構成されたことを特徴とするデジタルデータの改竄検出装置。
  12. 前記第1の参照アドレス生成手段は、前記第1データ値及びそのアドレス値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記第1参照アドレスを生成することを特徴とする請求項11記載のデジタルデータの改竄検出装置。
  13. 前記第1参照アドレスに格納されている前記第2データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、前記デジタルデータのアドレスを示す第2参照アドレスを生成する第2の参照アドレス生成手段を備え、
    前記照合値演算手段は、前記第1データ値、並びに、前記第2データ値及び前記第2参照アドレスに格納されている第3データ値のうち、少なくとも前記第1データ値と前記第3データ値に対して四則演算を任意に組み合わせた所定演算を施すことで、改竄検出用の照合値を演算することを特徴とする請求項11又は12に記載のデジタルデータの改竄検出装置。
  14. 前記第1の参照アドレス生成手段は、前記第1データ値が格納されるアドレスを起点として、そこから連続する複数アドレスに格納されている各データ値を並べて前記第1参照アドレスを生成し、
    前記複数アドレスの数は、前記複数アドレスに格納されている各データ値を並べた時のバイト数によってデジタルデータのアドレスを表現可能な数であることを特徴とする請求項11又は12に記載のデジタルデータの改竄検出装置。
  15. 前記第1の参照アドレス生成手段は、前記デジタルデータのアドレスを示すポインタから連続する複数アドレスに格納されている各データ値を並べて前記第1参照アドレスを生成すると共に、前記第1参照アドレスを生成するたびに所定範囲の数値を順番に出力するカウンタに基づき、カウンタが示す数値だけ前記ポインタを進め、
    前記複数アドレスの数は、前記複数アドレスに格納されている各データ値を並べた時のバイト数によってデジタルデータのアドレスを表現可能な数であることを特徴とする請求項11又は12に記載のデジタルデータの改竄検出装置。
JP2003286455A 2003-08-05 2003-08-05 デジタルデータの改竄検出プログラム,改竄検出方法並びに改竄検出装置 Expired - Fee Related JP4534447B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003286455A JP4534447B2 (ja) 2003-08-05 2003-08-05 デジタルデータの改竄検出プログラム,改竄検出方法並びに改竄検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003286455A JP4534447B2 (ja) 2003-08-05 2003-08-05 デジタルデータの改竄検出プログラム,改竄検出方法並びに改竄検出装置

Publications (2)

Publication Number Publication Date
JP2005056159A JP2005056159A (ja) 2005-03-03
JP4534447B2 true JP4534447B2 (ja) 2010-09-01

Family

ID=34365742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003286455A Expired - Fee Related JP4534447B2 (ja) 2003-08-05 2003-08-05 デジタルデータの改竄検出プログラム,改竄検出方法並びに改竄検出装置

Country Status (1)

Country Link
JP (1) JP4534447B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7412544B2 (ja) * 2020-05-07 2024-01-12 三菱電機株式会社 車載ネットワークシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03237253A (ja) * 1990-02-09 1991-10-23 Nippondenso Co Ltd 自動車用制御装置
JP2003016727A (ja) * 2001-06-29 2003-01-17 Kenwood Corp 記憶装置の検査データ改ざん防止装置及び改ざん防止方法
JP2003058424A (ja) * 2001-08-14 2003-02-28 Nissan Motor Co Ltd デジタルデータの改竄検出プログラム,改竄検出方法並びに改竄検出装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03237253A (ja) * 1990-02-09 1991-10-23 Nippondenso Co Ltd 自動車用制御装置
JP2003016727A (ja) * 2001-06-29 2003-01-17 Kenwood Corp 記憶装置の検査データ改ざん防止装置及び改ざん防止方法
JP2003058424A (ja) * 2001-08-14 2003-02-28 Nissan Motor Co Ltd デジタルデータの改竄検出プログラム,改竄検出方法並びに改竄検出装置

Also Published As

Publication number Publication date
JP2005056159A (ja) 2005-03-03

Similar Documents

Publication Publication Date Title
JP4966636B2 (ja) 座標入力装置
JP2006053894A (ja) ユーザ指定のスプレッドシート関数のサポート
Ainsworth et al. Guaranteed computable bounds on quantities of interest in finite element computations
WO2016039076A1 (ja) プログラム検査装置、ソフトウェア検査装置、sat制約条件データ、記憶媒体
CN102289612A (zh) 用于安全协处理器中的n元局部性的系统和方法
JP2013513120A5 (ja)
EP1687930B1 (en) Randomized modular reduction method and hardware therefor
US20020194579A1 (en) Code verification system and method
EP2047366B1 (en) A method of dynamic protection of data during the execution of a software code in intermediate language in a digital apparatus
WO2008016493A1 (en) Detection of memory leaks
Khan et al. Robust a posteriori error estimators for mixed approximation of nearly incompressible elasticity
JP2009512930A (ja) 疑似乱数の生成方法
CN110046505B (zh) 容器安全加固方法、系统及存储介质
JP4534447B2 (ja) デジタルデータの改竄検出プログラム,改竄検出方法並びに改竄検出装置
JP3867530B2 (ja) デジタルデータの改竄検出プログラム,改竄検出方法並びに改竄検出装置
CN110766402A (zh) 交易顺序依赖漏洞检测方法、系统、电子装置及存储介质
JP4228706B2 (ja) 電子制御装置及び該電子制御装置の記憶装置
JP4529964B2 (ja) シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
US20120023580A1 (en) Method for detecting an attack by fault injection into a memory device, and corresponding detection system
JP6494887B1 (ja) 検査装置、検査方法及び検査プログラム
US20070233771A1 (en) Calculation apparatus and storage medium in which calculation program is stored
Elghaoui et al. Mixed spectral-boundary element embedding algorithms for the Navier–Stokes equations in the vorticity-stream function formulation
JP2005307752A (ja) 燃費関連情報表示装置
CN112416477B (zh) 信号转换方法、装置、计算机设备和存储介质
Vukotić On norms of composition operators acting on Bergman spaces

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060628

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080319

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080331

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100219

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

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

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

Free format text: PAYMENT UNTIL: 20130625

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

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees