(57)【特許請求の範囲】
【請求項１】
デジタルデータが記憶された記憶装置から、該デジタルデータの各アドレスに格納される値を順次読み出し、その値に対して第１の所定演算を施した演算値を求める演算値算出機能と、
該演算値算出機能により求められた演算値をデジタルデータのアドレスとみなして、前記デジタルデータの該アドレスに格納される値に対して第２の所定演算を施し、改竄検出用の照合値を求める照合値演算機能と、
をコンピュータに実現させるためのデジタルデータの改竄検出プログラム。
【請求項２】
前記第１の所定演算は、前記デジタルデータの各アドレスに格納される値を演算値とするものであることを特徴とする請求項１記載のデジタルデータの改竄検出プログラム。
【請求項３】
前記第１の所定演算は、前記デジタルデータの各アドレス周辺に格納される複数の値に対して四則演算を施すものであることを特徴とする請求項１記載のデジタルデータの改竄検出プログラム。
【請求項４】
前記照合値演算機能は、前記演算値算出機能により求められた演算値を、前記デジタルデータの絶対アドレスを示すものとみなして、改竄検出用の照合値を求めることを特徴とする請求項１〜請求項３のいずれか１つに記載のデジタルデータの改竄検出プログラム。
【請求項５】
前記照合値演算機能は、前記演算値算出機能により求められた演算値を、前記デジタルデータの相対アドレスを示すものとみなして、改竄検出用の照合値を求めることを特徴とする請求項１〜請求項３のいずれか１つに記載のデジタルデータの改竄検出プログラム。
【請求項６】
前記照合値演算機能により演算された照合値に基づいて、前記デジタルデータの改竄が行われたか否かを判定する改竄判定機能をさらにコンピュータに実現させることを特徴とする請求項１〜請求項５のいずれか１つに記載のデジタルデータの改竄検出プログラム。
【請求項７】
前記改竄判定機能により改竄が行われたと判定されたときに、その旨を出力する改竄出力機能をさらにコンピュータに実現させることを特徴とする請求項６記載のデジタルデータの改竄検出プログラム。
【請求項８】
デジタルデータが記憶された記憶装置から、該デジタルデータの各アドレスに格納される値を順次読み出し、その値に対して第１の所定演算を施した演算値を求める演算値算出工程と、
該演算値算出工程により求められた演算値をデジタルデータのアドレスとみなして、前記デジタルデータの該アドレスに格納される値に対して第２の所定演算を施し、改竄検出用の照合値を求める照合値演算工程と、
をコンピュータに実行させることを特徴とするデジタルデータの改竄検出方法。
【請求項９】
前記第１の所定演算は、前記デジタルデータの各アドレスに格納される値を演算値とするものであることを特徴とする請求項８記載のデジタルデータの改竄検出方法。
【請求項１０】
前記第１の所定演算は、前記デジタルデータの各アドレス周辺に格納される複数の値に対して四則演算を施すものであることを特徴とする請求項８記載のデジタルデータの改竄検出方法。
【請求項１１】
前記照合値演算工程は、前記演算値算出工程により求められた演算値を、前記デジタルデータの絶対アドレスを示すものとみなして、改竄検出用の照合値を求めることを特徴とする請求項８〜請求項１０のいずれか１つに記載のデジタルデータの改竄検出方法。
【請求項１２】
前記照合値演算工程は、前記演算値算出工程により求められた演算値を、前記デジタルデータの相対アドレスを示すものとみなして、改竄検出用の照合値を求めることを特徴とする請求項８〜請求項１０のいずれか１つに記載のデジタルデータの改竄検出方法。
【請求項１３】
前記照合値演算工程により演算された照合値に基づいて、前記デジタルデータの改竄が行われたか否かを判定する改竄判定工程をさらにコンピュータに実行させることを特徴とする請求項８〜請求項１２のいずれか１つに記載のデジタルデータの改竄検出方法。
【請求項１４】
前記改竄判定工程により改竄が行われたと判定されたときに、その旨を出力する改竄出力工程をさらにコンピュータに実行させることを特徴とする請求項１３記載のデジタルデータの改竄検出方法。
【請求項１５】
デジタルデータの各アドレスに格納される値から、該デジタルデータのアドレスを生成するアドレス演算を行うアドレス演算手段と、
該アドレス演算手段により生成された各アドレスに格納される値に対して所定演算を施し、改竄検出用の照合値を求める照合値演算手段と、
を含んで構成されたことを特徴とするデジタルデータの改竄検出装置。
【請求項１６】
前記アドレス演算手段は、前記デジタルデータの各アドレスに格納される値を、該デジタルデータのアドレスとすることを特徴とする請求項１５記載のデジタルデータの改竄検出装置。
【請求項１７】
前記アドレス演算手段は、前記デジタルデータの各アドレス周辺に格納される複数の値に対して四則演算を施し、該デジタルデータのアドレスを生成することを特徴とする請求項１５記載のデジタルデータの改竄検出装置。
【請求項１８】
前記照合値演算手段は、前記アドレス演算手段により生成されたアドレスを、前記デジタルデータの絶対アドレスを示すものとして、改竄検出用の照合値を求めることを特徴とする請求項１５〜請求項１７のいずれか１つに記載のデジタルデータの改竄検出装置。
【請求項１９】
前記照合値演算手段は、前記アドレス演算手段により生成されたアドレスを、前記デジタルデータの相対アドレスを示すものとして、改竄検出用の照合値を求めることを特徴とする請求項１５〜請求項１７のいずれか１つに記載のデジタルデータの改竄検出装置。
【請求項２０】
前記照合値演算手段により演算された照合値に基づいて、前記デジタルデータの改竄が行われたか否かを判定する改竄判定手段を備えたことを特徴とする請求項１５〜請求項１９のいずれか１つに記載のデジタルデータの改竄検出装置。
【請求項２１】
前記改竄判定手段により改竄が行われたと判定されたときに、その旨を出力する改竄出力手段を備えたことを特徴とする請求項２０記載のデジタルデータの改竄検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタルデータの改竄を簡便かつ高精度に検出する技術に関する。
【０００２】
【従来の技術】
近年の自動車は、車載のコントロールユニットにより、エンジン制御，ブレーキ制御などが電子的に行われている。エンジン制御においては、機関出力と排気性状との両立を図るべく、種々の実験などを通して得られた最適な制御データが用いられている。一方、市場の一部においては、排気性状が低下することも配慮せずに、機関出力のみを向上させるべく、最適に設定された制御データを書き換える不法改造が行われていることも否めない。このため北米では、排気規制強化の一環として、コントロールユニットの不法改造を防止すべく、ＣＶＮ（Calibration Verification Number）を端末装置に出力することを義務付けている。
【０００３】
【発明が解決しようとする課題】
従来では、プログラム（制御データも含む）のチェックサムをＣＶＮとして出力しているが、次のような問題があった。即ち、チェックサムは、プログラムデータを単純に加算した総和なので、加減算した分をダミーデータなどで打ち消すようにすれば、ＣＶＮを変えずにプログラムの改竄が可能であった。このため、チェックサム方式では、プログラムの改竄を高精度に検出することはできなかった。また、チェックサム方式の他、例えば、特開平８−１３７７６２号公報に開示されるパリティチェック方式も提案されているが、プログラムの改竄を簡便かつ高精度に検出することは困難であった。
【０００４】
そこで、本発明は以上のような従来の問題点に鑑み、デジタルデータ値をアドレス値に変換し、そのアドレスに格納されているデジタルデータ値に対して所定演算を施して照合値を算出することで、デジタルデータの改竄を簡便かつ高精度に検出できるようにしたデジタルデータの改竄検出技術を提供することを目的とする。
【０００５】
【課題を解決するための手段】
このため、請求項１記載のデジタルデータの改竄検出プログラムに係る発明では、デジタルデータが記憶された記憶装置から、該デジタルデータの各アドレスに格納される値を順次読み出し、その値に対して第１の所定演算を施した演算値を求める演算値算出機能と、該演算値算出機能により求められた演算値をデジタルデータのアドレスとみなして、前記デジタルデータの該アドレスに格納される値に対して第２の所定演算を施し、改竄検出用の照合値を求める照合値演算機能と、をコンピュータに実現させることを特徴とする。
【０００６】
請求項２記載のデジタルデータの改竄検出プログラムに係る発明では、前記第１の所定演算は、前記デジタルデータの各アドレスに格納される値を演算値とするものであることを特徴とする。
請求項３記載のデジタルデータの改竄検出プログラムに係る発明では、前記第１の所定演算は、前記デジタルデータの各アドレス周辺に格納される複数の値に対して四則演算を施すものであることを特徴とする。
【０００７】
請求項４記載のデジタルデータの改竄検出プログラムに係る発明では、前記照合値演算機能は、前記演算値算出機能により求められた演算値を、前記デジタルデータの絶対アドレスを示すものとみなして、改竄検出用の照合値を求めることを特徴とする。
請求項５記載のデジタルデータの改竄検出プログラムに係る発明では、前記照合値演算機能は、前記演算値算出機能により求められた演算値を、前記デジタルデータの相対アドレスを示すものとみなして、改竄検出用の照合値を求めることを特徴とする。
【０００８】
請求項６記載のデジタルデータの改竄検出プログラムに係る発明では、前記照合値演算機能により演算された照合値に基づいて、前記デジタルデータの改竄が行われたか否かを判定する改竄判定機能をさらにコンピュータに実現させることを特徴とする。
請求項７記載のデジタルデータの改竄検出プログラムに係る発明では、前記改竄判定機能により改竄が行われたと判定されたときに、その旨を出力する改竄出力機能をさらにコンピュータに実現させることを特徴とする。
【０００９】
請求項８記載のデジタルデータの改竄検出方法に係る発明では、デジタルデータが記憶された記憶装置から、該デジタルデータの各アドレスに格納される値を順次読み出し、その値に対して第１の所定演算を施した演算値を求める演算値算出工程と、該演算値算出工程により求められた演算値をデジタルデータのアドレスとみなして、前記デジタルデータの該アドレスに格納される値に対して第２の所定演算を施し、改竄検出用の照合値を求める照合値演算工程と、をコンピュータに実行させることを特徴とする。
【００１０】
請求項９記載のデジタルデータの改竄検出方法に係る発明では、前記第１の所定演算は、前記デジタルデータの各アドレスに格納される値を演算値とするものであることを特徴とする。
請求項１０記載のデジタルデータの改竄検出方法に係る発明では、前記第１の所定演算は、前記デジタルデータの各アドレス周辺に格納される複数の値に対して四則演算を施すものであることを特徴とする。
【００１１】
請求項１１記載のデジタルデータの改竄検出方法に係る発明では、前記照合値演算工程は、前記演算値算出工程により求められた演算値を、前記デジタルデータの絶対アドレスを示すものとみなして、改竄検出用の照合値を求めることを特徴とする。
請求項１２記載のデジタルデータの改竄検出方法に係る発明では、前記照合値演算工程は、前記演算値算出工程により求められた演算値を、前記デジタルデータの相対アドレスを示すものとみなして、改竄検出用の照合値を求めることを特徴とする。
【００１２】
請求項１３記載のデジタルデータの改竄検出方法に係る発明では、前記照合値演算工程により演算された照合値に基づいて、前記デジタルデータの改竄が行われたか否かを判定する改竄判定工程をさらにコンピュータに実行させることを特徴とする。
請求項１４記載のデジタルデータの改竄検出方法に係る発明では、前記改竄判定工程により改竄が行われたと判定されたときに、その旨を出力する改竄出力工程をさらにコンピュータに実行させることを特徴とする。
【００１３】
請求項１５記載のデジタルデータの改竄検出装置に係る発明では、デジタルデータの各アドレスに格納される値から、該デジタルデータのアドレスを生成するアドレス演算を行うアドレス演算手段と、該アドレス演算手段により生成された各アドレスに格納される値に対して所定演算を施し、改竄検出用の照合値を求める照合値演算手段と、を含んで構成されたことを特徴とする。
【００１４】
請求項１６記載のデジタルデータの改竄検出装置に係る発明では、前記アドレス演算手段は、前記デジタルデータの各アドレスに格納される値を、該デジタルデータのアドレスとすることを特徴とする。
請求項１７記載のデジタルデータの改竄検出装置に係る発明では、前記アドレス演算手段は、前記デジタルデータの各アドレス周辺に格納される複数の値に対して四則演算を施し、該デジタルデータのアドレスを生成することを特徴とする。
【００１５】
請求項１８記載のデジタルデータの改竄検出装置に係る発明では、前記照合値演算手段は、前記アドレス演算手段により生成されたアドレスを、前記デジタルデータの絶対アドレスを示すものとして、改竄検出用の照合値を求めることを特徴とする。
請求項１９記載のデジタルデータの改竄検出装置に係る発明では、前記照合値演算手段は、前記アドレス演算手段により生成されたアドレスを、前記デジタルデータの相対アドレスを示すものとして、改竄検出用の照合値を求めることを特徴とする。
【００１６】
請求項２０記載のデジタルデータの改竄検出装置に係る発明では、前記照合値演算手段により演算された照合値に基づいて、前記デジタルデータの改竄が行われたか否かを判定する改竄判定手段を備えたことを特徴とする。
請求項２１記載のデジタルデータの改竄検出装置に係る発明では、前記改竄判定手段により改竄が行われたと判定されたときに、その旨を出力する改竄出力手段を備えたことを特徴とする。
【００１７】
ここで、各請求項に記載された発明の作用について説明する。
請求項１及び８に記載の発明によれば、先ず、デジタルデータの各アドレスに格納される値に対して第１の所定演算が施された演算値が求められる。そして、求められた演算値をデジタルデータのアドレスとみなして、デジタルデータのそのアドレスに格納される値に対して第２の所定演算が施され、改竄検出用の照合値が求められる。一方、請求項１５に記載の発明によれば、先ず、デジタルデータの各アドレスに格納される値からデジタルデータのアドレスを生成するアドレス演算が行われる。そして、生成された各アドレスに格納される値に対して所定演算が施され、改竄検出用の照合値が求められる。即ち、デジタルデータ値がアドレス値に変換され、そのアドレスに格納されているデジタルデータに基づいて照合値が求められる。このため、デジタルデータの一部を書き換えただけでも、その影響がデジタルデータ全体に波及するので、改竄検出用の照合値が正しい値とはかけ離れたものとなる。また、デジタルデータの改竄を覆い隠すためには、デジタルデータ全体に亘ってその値を書き換える必要があり、デジタルデータ自体を意味のないものとしてしまう。
【００１８】
請求項２，９及び１６に記載の発明によれば、アドレス演算は、デジタルデータの各アドレスに格納される値を、デジタルデータのアドレスとすることで行われる。このため、アドレス演算が極めて簡単なものとなり、アドレス演算に要する処理負荷が著しく軽減される。なお、アドレス演算が簡単であっても、デジタルデータの各アドレスに格納される値がそのまま照合値を演算するために使用されないので、改竄を覆い隠すことはおいそれとはできない。
【００１９】
請求項３，１０及び１７に記載の発明によれば、アドレス演算は、デジタルデータの各アドレス周辺に格納される複数の値に対して四則演算を施すことで行われる。このため、四則演算の組み合わせを種々変更することで、アドレス演算を複雑にすることができ、デジタルデータの改竄が一層困難となる。
請求項４，１１及び１８に記載の発明によれば、改竄検出用の照合値は、求められた演算値又はアドレスを、デジタルデータの絶対アドレスを示すものとみなして求められる。このため、アドレッシングが極めて簡単なものとなり、アドレッシングに要する処理負荷が著しく軽減される。
【００２０】
請求項５，１２及び１９に記載の発明によれば、改竄検出用の照合値は、求められた演算値又はアドレスを、デジタルデータの相対アドレスを示すものとみなして求められる。このため、絶対アドレスを用いる方法と比べてアドレッシングが多少複雑になるが、処理内容の解析が著しく困難となり、デジタルデータの改竄が一層困難となる。
【００２１】
請求項６，１３及び２０に記載の発明によれば、改竄検出用の照合値に基づいて、デジタルデータの改竄が行われたか否かが自動的に判定される。ここで、デジタルデータの改竄が行われたか否かは、例えば、改竄が行われていないときの照合基準値と照合値とを比較することで判定可能である。
請求項７，１４及び２１に記載の発明によれば、デジタルデータの改竄が行われたと判定されると、その旨が出力される。このため、デジタルデータの改竄検出作業を行う作業者は、出力結果を見るだけでよく、その労力が軽減される。
【００２２】
【発明の効果】
以上説明したように、請求項１，８及び１５に記載の発明によれば、デジタルデータの一部を書き換えただけでも、改竄検出用の照合値が正しい値とはかけ離れたものとなるので、デジタルデータの改竄を簡便かつ高精度に検出することができる。
【００２３】
請求項２，９及び１６に記載の発明によれば、アドレス演算が極めて簡単なものとなり、アドレス演算に要する処理負荷を著しく軽減させることができる。
請求項３，１０及び１７に記載の発明によれば、四則演算の組み合わせを種々変更することで、アドレス演算を複雑にすることができ、デジタルデータの改竄を一層困難とすることができる。
【００２４】
請求項４，１１及び１８に記載の発明によれば、アドレッシングが極めて簡単なものとなり、アドレッシングに要する処理負荷を著しく軽減させることができる。
請求項５，１２及び１９に記載の発明によれば、処理内容の解析が著しく困難となり、デジタルデータの改竄を一層困難とすることができる。
【００２５】
請求項６，１３及び２０に記載の発明によれば、デジタルデータの改竄が行われたか否かを自動的に判定することができる。
請求項７，１４及び２１に記載の発明によれば、デジタルデータの改竄検出に要する労力を軽減させることができる。
【００２６】
【発明の実施の形態】
以下、添付された図面を参照して本発明を詳述する。
図１は、本発明を具現化したデジタルデータの改竄検出装置（以下「改竄検出装置」という）を示す。改竄検出装置１０は、少なくとも中央処理装置（ＣＰＵ）とメモリとを備えたコンピュータ上に構築され、メモリにロードされたプログラムによって各種機能が実現される。
【００２７】
改竄検出装置１０は、アドレスカウンタ１２と、アドレス演算部１４と、照合値演算部１６と、出力部１８と、を含んで構成される。また、改竄検出装置１０による改竄検出対象となるデジタルデータは、ハードディスク，ＲＯＭ，ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭなどの記憶装置２０に記憶される。ここで、デジタルデータとしては、例えば、コンピュータプログラム，自動車の各種制御に用いられる制御プログラム及び制御マップ，デジタル著作物などが含まれる。
【００２８】
アドレスカウンタ１２は、記憶装置２０におけるデジタルデータのアドレスADR1を示す。デジタルデータの改竄検出処理を開始するときには、アドレスカウンタ１２は、改竄検出対象となるデジタルデータの先頭アドレスを示し、処理進行に伴いそのアドレスが順次カウントアップされる。ここで、記憶装置２０に複数のデジタルデータが記憶されている場合を想定し、その中から任意の１つを選択指定できるようにすることが望ましい。この場合、アドレスカウンタ１２は、選択指定されたデジタルデータの先頭アドレスを示すこととなる。
【００２９】
アドレス演算部１４では、アドレスカウンタ１２が示すアドレスADR1に基づいて、記憶装置２０から、アドレスADR1に格納されているデジタルデータData1が読み出される。そして、読み出されたデジタルデータData1に対して、四則演算などの所定演算が施され、デジタルデータのアドレスを示すものとみなされる演算値、即ち、改竄検出用の照合値を演算する基準となるデジタルデータのアドレスADR2が生成される。なお、アドレス演算部１４により、演算値算出機能，演算値算出工程及びアドレス演算手段が実現される。
【００３０】
照合値演算部１６では、アドレス演算部１４により生成されたアドレスADR2に基づいて、記憶装置２０から、アドレスADR2に格納されているデジタルデータData2が読み出される。そして、読み出されたデジタルデータData2に対して、積算などの所定演算が施され、改竄検出用の照合値が演算される。なお、照合値演算部１６により、照合値演算機能，照合値演算工程及び照合値演算手段が実現される。
【００３１】
出力部１８は、照合値演算部１６により演算された照合値を可視的に出力すべく、ＣＲＴ（Cathode Ray Tube）やＬＣＤ（Liquid Crystal Display）などの表示装置，プリンタなどの印刷装置から構成される。ここで、出力部１８には、改竄検出対象となるデジタルデータの照合基準値（改竄がない場合の照合値）を併せて出力することが望ましい。なお、出力部１８により、改竄出力機能，改竄出力工程及び改竄出力手段が実現される。
【００３２】
次に、かかる構成からなる改竄検出装置１０の作用について、図２に示すフローチャートを参照しつつ説明する。
ステップ１（図では「Ｓ１」と略記する。以下同様）では、アドレスカウンタ１２が示すデジタルデータのアドレスADR1が設定される。即ち、ユーザによりデジタルデータが選択指定された場合には、アドレスADR1には、記憶装置２０におけるそのデジタルデータの先頭アドレスが設定される。一方、記憶装置２０にデジタルデータが１つのみ記憶されている場合には、アドレスADR1には、記憶装置２０の先頭アドレスが設定される。
【００３３】
ステップ２では、改竄検出用の照合値CVNが０に初期化される。
ステップ３では、記憶装置２０から、アドレスADR1に格納されているデジタルデータData1が読み出される。
ステップ４では、読み出されたデジタルデータData1に対して所定演算が施され、照合値CVNを演算する基準となるデジタルデータのアドレスADR2が生成される。ここで、所定演算としては、デジタルデータData1をそのままアドレスADR2とする演算も含まれる。なお、ステップ３及びステップ４における処理が、演算値算出機能，演算値算出工程及びアドレス演算手段に該当する。
【００３４】
ステップ５では、記憶装置２０から、アドレスADR2に格納されているデジタルデータData2が読み出される。
ステップ６では、照合値CVNの積算を行うべく、照合値CVNに対してデジタルデータData2が加算される。なお、ステップ５及びステップ６における処理が、照合値演算機能，照合値演算工程及び照合値演算手段に該当する。
【００３５】
ステップ７では、照合値CVNの演算が終了したか否か、即ち、改竄検出対象となるデジタルデータの最後まで処理が終了したか否かが判定される。そして、照合値CVNの演算が終了したならばステップ８へと進み（Ｙｅｓ）、出力部１８に照合値CVNが出力される。一方、照合値CVNの演算が終了していなければステップ９へと進み（Ｎｏ）、アドレスADR1がカウントアップされる。
【００３６】
なお、照合値を出力する代わりに、照合値が照合基準値と一致しないときに、デジタルデータの改竄が行われたと判定し、その旨を出力部１８に出力するようにしてもよい。この場合、改竄判定処理が、改竄判定機能，改竄判定工程及び改竄判定手段に該当する。
次に、図３に示すデジタルデータを用いて、改竄検出装置１０において、改竄検出用の照合値がどのように演算されるかを説明する。なお、改竄検出装置１０の初期状態においては、アドレスカウンタ１２が示すアドレスADR1には１が設定されているものとする。
（第１実施例）
第１実施例では、図４に示すように、アドレスADR1に格納されているデジタルデータData1を絶対アドレスADR2として、そこに格納されているデジタルデータData2により照合値CVNが演算される。
【００３７】
即ち、アドレスADR1＝１のときには、アドレス１に格納されているデジタルデータが読み出され、これがデジタルデータData1（５）となる。デジタルデータData1は、改竄検出用の照合値を演算する基準となるデジタルデータ（以下「基準データ」という）の絶対アドレスADR2を示しているので、アドレス５に格納されているデジタルデータが読み出され、これがデジタルデータData2（７）となる。そして、照合値CVN（０）に対してデジタルデータData2が加算され、照合値CVNが「７」となる。
【００３８】
アドレスADR1=２のときには、アドレス２に格納されているデジタルデータが読み出され、これがデジタルデータData1（７）となる。デジタルデータData1は基準データの絶対アドレスADR2を示しているので、アドレス７に格納されているデジタルデータが読み出され、これがデジタルデータData2（１０）となる。そして、照合値CVN（７）に対してデジタルデータData2が加算され、照合値CVNが「１７」となる。
【００３９】
このような処理を順次繰り返すと、照合値CVNが「６０」となる。そして、この照合値CVNと照合基準値とを比較することで、デジタルデータが改竄されたか否かが検出される。
ここで、デジタルデータの改竄による照合値の変化について説明する。
図５に示すように、アドレス５のデジタルデータが「７」から「６」に書き換えられたとする。アドレスADR1＝１のときには、図６に示すように、アドレス１に格納されているデジタルデータが読み出され、これがデジタルデータData1（５）となる。デジタルデータData1は基準データの絶対アドレスADR2を示しているので、アドレス５に格納されているデジタルデータが読み出され、これがデジタルデータData2（６）となる。そして、照合値CVN（０）に対してデジタルデータData2が加算され、照合値CVNが「６」となる。このような処理をデジタルデータの最後まで繰り返すと、照合値CVNが「５２」となる。従って、照合値CVNは照合基準値（６０）と異なるので、デジタルデータが改竄されたことが検出される。
【００４０】
デジタルデータの改竄が検出されないようにするためには、照合値CVNを照合基準値に一致させるべく、アドレス５以外のデジタルデータを書き換えて辻褄を合わせなければならない。アドレス５に格納されているデジタルデータが基準データの絶対アドレスADR2として用いられるとき、その基準データは本来「７」であるから、アドレス６におけるデジタルデータを「７」に書き換えなければならない。しかし、図６に示す例では、アドレスADR1＝５のとき、アドレス６に格納されているデジタルデータが基準データとして用いられるので、アドレス５及び６以外のデジタルデータをさらに書き換える必要がある。そこで、他のアドレスにおけるデジタルデータを書き換えると、この書き換えにより、さらに他のアドレスを書き換える必要が生じてしまう。
【００４１】
従って、デジタルデータの一部を書き換えた場合でも、その書き換えが検出されないようにするためには、デジタルデータの全域に亘ってその値を書き換える必要があり、おいそれとは辻褄を合わせることができない。また、デジタルデータの全域に亘ってその値を書き換えると、デジタルデータ自体が意味のないものとなってしまうため、書き換えの目的が達成できず、その改竄が極めて困難であるともいえる。
（第２実施例）
第２実施例では、図７に示すように、アドレスADR1に格納されているデジタルデータData1を相対アドレスとして、アドレスADR1に対する絶対アドレスADR2を求め、そこに格納されているデジタルデータData2により照合値CVNが演算される。
【００４２】
即ち、アドレスADR1＝１のときには、アドレス１に格納されているデジタルデータが読み出され、これがデジタルデータData1（５）となる。デジタルデータData1は、アドレスADR1（１）に対する相対アドレスを示しているので、アドレスADR1に対するアドレス演算により、基準データの絶対アドレスADR2（６）が算出される。基準データの絶対アドレスADR2が算出されると、アドレス６に格納されているデジタルデータが読み出され、これがデジタルデータData2（５）となる。そして、照合値CVN（０）に対してデジタルデータData2が加算され、照合値CVNが「５」となる。このような処理を順次繰り返すことで、デジタルデータの照合値CVNが「５４」となる。
（第３実施例）
第３実施例では、図８に示すように、アドレスADR1及びこれに連続するアドレスに格納されているデジタルデータData1の和を絶対アドレスADR2として、そこに格納されているデジタルデータData2により照合値CVNが演算される。
【００４３】
即ち、アドレスADR1＝１のときには、アドレス１及び２に格納されているデジタルデータが読み出され、これがデジタルデータData1（５，７）となる。デジタルデータData1の和は、基準データの絶対アドレスADR2を示しているので、アドレス２に格納されているデジタルデータが読み出され、これがデジタルデータData2（７）となる。ここで、デジタルデータData1の和は、５＋７＝１２となるが、アドレス１２はデジタルデータの範囲外を示しているので、デジタルデータの範囲内を示すように、例えば、モジュロ演算により調整されて「２」となる。これは、デジタルデータの値がその範囲外となったときも同様である。そして、照合値（０）に対してデジタルデータData2が加算され、照合値CVNが「７」となる。
【００４４】
アドレスADR1＝２のときには、アドレス２及び３に格納されているデジタルデータが読み出され、これがデジタルデータData1（７，２）となる。デジタルデータData1の和は、基準データの絶対アドレスADR2を示しているので、アドレス９（７＋２）に格納されているデジタルデータが読み出され、これがデジタルデータData2（３）となる。そして、照合値（７）に対してデジタルデータData2が加算され、照合値CVNが「１０」となる。
【００４５】
このような処理を順次繰り返すことで、デジタルデータの照合値CVNが「５６」となる。
（第４実施例）
第４実施例では、図９に示すように、アドレスADR1及びこれに連続するアドレスに格納されているデジタルデータData1の差を相対アドレスとして、アドレスADR1に対する絶対アドレスADR2を求め、そこに格納されているデジタルデータData2により照合値CVNが演算される。
【００４６】
即ち、アドレスADR1＝１のときには、アドレス１及び２に格納されているデジタルデータが読み出され、これがデジタルデータData1（５，７）となる。デジタルデータData1の差（７−５＝２）は、アドレスADR1（１）に対する相対アドレスを示しているので、アドレスADR1に対するアドレス演算により、基準データの絶対アドレスADR2（３）が算出される。基準データの絶対アドレスADR2が算出されると、アドレス３に格納されているデジタルデータが読み出され、これがデジタルデータData2（２）となる。そして、照合値CVN（０）に対してデジタルデータData2が加算され、照合値CVNが「２」となる。このような処理を順次繰り返すことで、デジタルデータの照合値CVNが「５１」となる。
【００４７】
従って、本発明による改竄検出技術によれば、デジタルデータの一部を書き換えただけでも、その影響がデジタルデータ全体に波及するため、その検出が高精度に行われる。この場合、デジタルデータの照合値は、デジタルデータから生成されたアドレスに格納された値に基づいて求められるため、アドレス演算が極めて簡単なものであっても、そのアドレス演算が解析され難いという特徴がある。このため、悪意を持ってデジタルデータを改竄した者が、改竄された事実を覆い隠そうとしても、その行為に要する労力が極めて大であるばかりでなく、デジタルデータ自体を意味のないものとしてしまう。
【００４８】
かかる構成からなる改竄検出装置１０は、例えば、自動車のコントロールユニットの改竄を検出したり、コンピュータプログラムの改竄を検出することに利用可能である。
ここで、自動車のコントロールユニットの改竄を検出する場合には、本発明に係る改竄検出装置１０をコントロールユニット上に構築し、自己診断を行うように構成してもよい。そして、コントロールユニットの改竄が検出されたときには、例えば、ダッシュパネルに取り付けられた警告灯を点灯させたり、エンジンが始動できないように制御してもよい。このようにすれば、自動車の排気性状が低下する不法改造を効果的に防止することができる。
【００４９】
このような機能を実現するプログラムを、例えば、磁気テープ，磁気ディスク，磁気ドラム，ＩＣカード，ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ等のコンピュータ読取可能な記録媒体に記録しておけば、本発明に係る改竄検出プログラムを市場に流通させることができる。そして、かかる記録媒体を取得した者は、一般的なコンピュータを利用して、本発明に係る改竄検出装置を容易に構築することができる。
【００５０】
また、インターネットに接続されたサーバ上に、本発明に係る改竄検出プログラムを登録させておけば、電気通信回線を介して、かかるプログラムをダウンロードすることで、本発明に係る改竄検出装置を容易に構築することができる。
【図面の簡単な説明】
【図１】本発明を具現化した改竄検出装置の構成図
【図２】改竄検出装置の処理内容を示すフローチャート
【図３】改竄検出対象となるデジタルデータの一例を示す説明図
【図４】照合値演算処理の第１実施例を示す説明図
【図５】デジタルデータの改竄例を示す説明図
【図６】改竄されたデジタルデータの照合値演算処理の説明図
【図７】照合値演算処理の第２実施例を示す説明図
【図８】照合値演算処理の第３実施例を示す説明図
【図９】照合値演算処理の第４実施例を示す説明図
【符号の説明】
１０  改竄検出装置
１２  アドレスカウンタ
１４  アドレス演算部
１６  照合値演算部
１８  出力部
２０  記憶装置
【図１】
0003867530.tif 000002
【図２】
0003867530.tif 000003
【図３】
0003867530.tif 000004
【図４】
0003867530.tif 000005
【図５】
0003867530.tif 000006
【図６】
0003867530.tif 000007
【図７】
0003867530.tif 000008
【図８】
0003867530.tif 000009
【図９】
0003867530.tif 000010