JP2007226610A - プログラム正当性検証装置 - Google Patents

プログラム正当性検証装置 Download PDF

Info

Publication number
JP2007226610A
JP2007226610A JP2006048031A JP2006048031A JP2007226610A JP 2007226610 A JP2007226610 A JP 2007226610A JP 2006048031 A JP2006048031 A JP 2006048031A JP 2006048031 A JP2006048031 A JP 2006048031A JP 2007226610 A JP2007226610 A JP 2007226610A
Authority
JP
Japan
Prior art keywords
program
result
memory
data
held
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
JP2006048031A
Other languages
English (en)
Other versions
JP4732921B2 (ja
Inventor
Tatsuyoshi Nakamura
達喜 中村
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.)
Alpine Electronics Inc
Original Assignee
Alpine Electronics Inc
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 Alpine Electronics Inc filed Critical Alpine Electronics Inc
Priority to JP2006048031A priority Critical patent/JP4732921B2/ja
Publication of JP2007226610A publication Critical patent/JP2007226610A/ja
Application granted granted Critical
Publication of JP4732921B2 publication Critical patent/JP4732921B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】プログラムの正当性の検証を迅速に行うことによって正当なプログラムをすみやかに実行することができ、ひいては、システムの起動時間を短縮化することができる「プログラム正当性検証装置」を提供すること。
【解決手段】メモリ2に保持されたプログラム5に対して所定の演算を行うグラフィックアクセラレータ4を備え、メモリ2に保持されたプログラムが正当な場合における所定の演算によって得られる結果を予め用意しておき、グラフィックアクセラレータ4によるメモリ2に保持されたプログラム5に対する所定の演算の結果が、前記予め用意された結果と一致する場合に、メモリ2に保持されたプログラム5が正当であるとみなすように形成されていること。
【選択図】図1

Description

本発明は、プログラム正当性検証装置に係り、特に、メモリに保持されたプログラムの正当性を検証するのに好適なプログラム正当性検証装置に関する。
従来から、OS等のプログラム本体を起動する前には、CPUが、ブートローダ等のプログラムを実行することによって、FlashROMやRAM等のメモリに展開されて保持された状態のプログラム本体(すなわちプログラム本体イメージ)が破損しているか否かを検証するプログラム本体イメージの正当性の検証を行っていた。
このプログラム本体イメージの正当性の検証には、いわゆるチェックサムが用いられ、CPUは、プログラム本体イメージのチェックサムを計算し、この計算結果を予め記憶された正しいチェックサムと照合するようになっていた。
この照合の結果、CPUは、チェックサムの計算結果と、予め記憶された正しいチェックサムとが一致する場合には、プログラム本体イメージが破損のない正当なものであるとみなし、一致しない場合には、プログラム本体イメージが正当でない(破損している)とみなすようになっていた。
そして、CPUは、プログラム本体イメージが正当である場合には、プログラム本体を実行し、プログラム本体イメージが正当でない(破損している)場合には、プログラム本体を、2次記憶メモリ等から復元するようになっていた。
特開平5−324370号公報
しかしながら、近年は、プログラムの複雑化にともなうプログラム本体イメージの巨大化により、チェックサムの計算によるプログラム本体イメージの正当性の検証に長い時間がかかり、これによって、プログラム本体の実行が遅延されるといった問題が生じていた。
例えば、従来は、プログラム本体イメージは破損していないにもかかわらず、チェックサムの計算に要する時間によって、チェックサムの計算の開始からプログラム本体の実行までに数秒程度の時間がかかってしまうことがあった。
そこで、本発明は、このような問題点に鑑みなされたものであり、プログラムの正当性の検証を迅速に行うことによって正当なプログラムをすみやかに実行することができ、ひいては、システムの起動時間を短縮することができるプログラム正当性検証装置を提供することを目的とするものである。
前述した目的を達成するため、本発明に係るプログラム正当性検証装置は、メモリに保持されたプログラムの正当性を検証するプログラム正当性検証装置であって、前記メモリに保持されたプログラムに対して所定の演算を行うグラフィックアクセラレータを備え、前記メモリに保持されたプログラムが正当な場合における前記所定の演算によって得られる結果を予め用意しておき、前記グラフィックアクセラレータによる前記メモリに保持されたプログラムに対する前記所定の演算の結果が、前記予め用意された結果と一致する場合に、前記メモリに保持されたプログラムが正当であるとみなすように形成されていることを特徴としている。そして、このような構成によれば、グラフィックアクセラレータにより、メモリに保持されたプログラムに対して、このプログラムを画像として扱った所定の演算を行い、この所定の演算の結果が予め用意された結果(正当なプログラムに対応する結果)と一致するか否かに基づいて、メモリに保持されたプログラムの正当性を迅速に検証することが可能となる。
また、本発明に係るプログラム正当性検証装置は、前記所定の演算が、排他的論理和(XOR)を含むことを特徴としている。そして、このような構成によれば、演算が簡便かつプログラムの破損の検出に好適な演算結果を得ることができる排他的論理和を用いることによって、メモリに保持されたプログラムの正当性をより迅速かつ適切に検証することが可能となる。
さらに、本発明に係るプログラム正当性検証装置は、前記所定の演算が、ラスタ演算(raster operation)とされていることを特徴としている。そして、このような構成によれば、メモリに保持されたプログラムの正当性を、ラスタ演算を用いてさらに高速に検証することが可能となる。
さらにまた、本発明に係るプログラム正当性検証装置は、前記所定の演算に用いられる設定された初期値を有するデータが格納されたワークメモリを用意するように形成され、前記グラフィックアクセラレータが、前記メモリに保持されたプログラムにおける1ブロック分のプログラムと、前記ワークメモリに格納された前記データの全部または一部を読み込み、読み込まれた前記1ブロック分のプログラムと前記データの全部または一部を用いて論理演算を行い、この論理演算の結果を前記ワークメモリに格納して前記ワークメモリに格納された前記データを更新するといった一連の処理を、前記メモリに保持されたプログラムにおけるすべてのブロックに至るまで順次繰り返すことによって、前記所定の演算を行うように形成され、前記一連の処理の繰り返しによって前記ワークメモリに最終的に格納された前記データが、前記所定の演算の結果とされていることを特徴としている。そして、このような構成によれば、一般的なグラフィックアクセラレータが備えているソースデータとデスティネーションデータとの論理演算を行う機能を活用して、メモリに保持されたプログラムをソースデータとし、ワークメモリに格納されたデータをデスティネーションデータとした論理演算を含む一連の処理(換言すれば、ワークメモリへの描画)を繰り返すことによって所定の演算を行うことが可能となる。この所定の演算の結果は、ワークメモリに最終的に格納されたデータ(換言すれば、ワークメモリへの最終描画結果)として取得することができる。そして、このようにして取得された所定の演算の結果と、予め用意された結果との一致の有無に基づいて、メモリに保持されたプログラムの正当性をより正確に検証することが可能となる。
また、本発明に係るプログラム正当性検証装置は、前記所定の演算の結果と、前記予め用意された結果とが、それぞれ、複数個の画素データによって形成され、前記グラフィックアクセラレータが、前記所定の演算の結果と前記予め用意された結果との排他的論理和を、双方の結果における互いに対応する画素データの組ごとに計算するように形成され、この排他的論理和の計算結果が、すべての画素データの組において0に相当する結果となる場合に、前記所定の演算の結果が前記予め用意された結果と一致すると判定して、前記メモリに保持されたプログラムが正当であるとみなすように形成されていることを特徴としている。そして、このような構成によれば、グラフィックアクセラレータにより、所定の演算の結果と予め用意された結果との排他的論理和を計算することで、メモリに保持されたプログラムの正当性を容易に検証することが可能となる。
さらに、本発明に係るプログラム正当性検証装置は、前記所定の演算の結果と、前記予め用意された結果とが、それぞれ、複数個の画素データによって形成され、前記予め用意された結果におけるすべての画素データが、0に相当するデータとされ、前記ワークメモリに格納された前記データの前記初期値が、前記予め用意された結果に対応する値とされ、前記メモリに保持されたプログラムに対する前記所定の演算の結果におけるすべての画素データが0に相当するデータとなる場合に、前記所定の演算の結果が前記予め用意された結果と一致すると判定して、前記メモリに保持されたプログラムが正当であるとみなすように形成されていることを特徴としている。そして、このような構成によれば、グラフィックアクセラレータによる所定の演算の結果におけるすべての画素データが0に相当するデータとなるか否かに基づいて、メモリに保持されたプログラムの正当性をさらに迅速に検証することが可能となる。
本発明に係るプログラム正当性検証装置によれば、グラフィックアクセラレータの演算機能を用いてメモリに保持されたプログラムの正当性の検証を迅速に行うことによって、正当なプログラムをすみやかに実行することができ、ひいては、システムの起動時間を短縮することができる。
さらに、本発明によれば、グラフィックアクセラレータの演算機能を用いてメモリに保持されたプログラムの正当性の検証を行うことによって、CPUの負担を軽減してCPUに空き時間を確保することができるので、メモリに保持されたプログラムの正当性の検証が行われている最中においても、既に正当であるとみなされたプログラムをCPUによってすみやかに実行することができる。
以下、本発明に係るプログラム正当性検証装置の実施形態について、図1乃至図3を参照して説明する。
図1は、本実施形態におけるプログラム正当性検証装置1のハードウェア構成を示したものであり、この図1に示すように、本実施形態におけるプログラム正当性検証装置1は、FlashROMやRAM等のメモリ2と、CPU3と、グラフィックアクセラレータ4とを有している。
メモリ2には、ハードディスクドライブ等の図示しない記憶装置から読み込まれたプログラムとしてのOS等のプログラム本体が、プログラム本体イメージとして保持されている。なお、プログラム本体を記憶装置から読み込んでメモリ2に保持する処理は、ブートローダ等のプログラム本体以外のプログラムによって行われるようになっている。
グラフィックアクセラレータ4は、メモリ2に保持されたプログラム本体イメージに対して、このプログラム本体イメージを画像として扱った所定の演算を行い、演算結果(以下、所定演算結果と称する)をメモリ2に格納するようになっている。
また、メモリ2には、予め用意された結果として、メモリ2に保持されたプログラム本体イメージが正当な場合(破損がない場合)における前記所定の演算によって得られる結果(以下、正当結果と称する)が格納されている。
CPU3は、所定演算結果が正当結果と一致する場合に、メモリ2に保持されたプログラム本体イメージが正当であるとみなすようになっている。
具体的には、図2に示すように、グラフィックアクセラレータ4は、前記所定の演算の際に、プログラム本体イメージ5を、複数個のブロックに分割された1ブロック分のプログラム本体イメージ5a〜5eの集合として認識するようになっている。なお、図2におけるプログラム本体イメージ5は、第1番目の1ブロック分のプログラム本体イメージ5aから第5番目の1ブロック分のプログラム本体イメージ5eまでの5個の1ブロック分のプログラム本体イメージ5a〜5eによって構成されている。また、図2に示すように、プログラム本体イメージ5は、2進数の場合には、0または1の値によって表現することができる。
グラフィックアクセラレータ4は、このようなプログラム本体イメージ5を前記所定の演算の際に画像として扱い、1ブロック分のプログラム本体イメージ5a〜5eを、複数個の画素データの集合として捉えるようになっている。
例えば、1ブロック分のプログラム本体イメージ5a〜5eを、64行×64列(512Byte)のデータと仮定し、グラフィックアクセラレータ4が、1Bitで1画素を表すと仮定した場合には、1ブロック分のプログラム本体イメージ5a〜5eは、4096個分の画素データからなる白黒(2値)画像として捉えることができる。
この場合、1ブロック分のプログラム本体イメージ5a〜5eにおける「1」の値をとるデータは、白黒画像における白色の画素データとして捉えられ、1ブロック分のプログラム本体イメージ5a〜5eにおける「0」の値をとるデータは、黒色の画素データとして捉えられる。
また、図2に示すように、メモリ2内には、CPU3によってワークメモリ7が用意されており、このワークメモリ7には、前記所定の演算に用いられる所定の初期値が設定されたデータが格納されている。
このワークメモリ7に格納されたデータ(以下、ワークメモリ内データ8と称する)は、複数個の画素データによって形成されている。
本実施形態において、ワークメモリ内データ8の初期値は、ワークメモリ内データ8におけるすべての画素データが、1画素を1Bitで表現する場合における「0」に相当する黒色のデータとなるような値(以下、初期値0と称する)とされている。
したがって、図2に示すように、初期値0のワークメモリ内データ8は、全面黒色の画像として表現される。
また、本実施形態において、ワークメモリ内データ8は、1ブロック分のプログラム本体イメージ5a〜5eとデータのサイズが同一とされており、ワークメモリ内データ8の画素データの個数は、1ブロック分のプログラム本体イメージにおける画素データの個数と同行同列の同数とされている。
さらに、図2に示すように、メモリ2内の領域には、前述した正当結果9が予め格納されており、この正当結果9は、ワークメモリ内データ8と同行同列の同数の画素データによって形成されている。
グラフィックアクセラレータ4は、前記所定の演算を開始すると、図2における(1)の番号が付された矢印に示すように、メモリ2から、第1番目の1ブロック分のプログラム本体イメージ5aを読み込むようになっている。
また、このとき、グラフィックアクセラレータ4は、図2における(2)の番号が付された矢印に示すように、ワークメモリ7から、初期値0が設定されたワークメモリ内データ8を読み込むようになっている。
そして、グラフィックアクセラレータ4は、図2における(3)の番号に示すように、読み込まれた1ブロック分のプログラム本体イメージ5aと、ワークメモリ内データ8との間で、互いに対応する同行同列に位置する画素データの組ごとに、論理演算としての排他的論理和(XOR)を計算するようになっている。
例えば、1ブロック分のプログラム本体イメージ5aにおける第m行第n列目の画素データは、ワークメモリ内データ8における第m行第n列目の画素データとの間で排他的論理和が計算されるようになっている。
ここで、排他的論理和は、1Bitのデータで考えると、演算に係る2つのデータの値が互いに等しい場合(「0」同士または「1」同士の場合)には0となり、互いに異なる場合(一方が「0」、他方が「1」の場合)には1となる。したがって、例えば、1ブロック分のプログラム本体イメージ5aにおける第m行第n列目の画素データが、「1」に相当する白色のデータで、ワークメモリ内データ8における第m行第n列目の画素データが、「0」に相当する黒色のデータの場合には、排他的論理和は「1」に相当する白色のデータとなる。
なお、この排他的論理和は、1つの画素データが1Bitで表現される場合には、ラスタ演算となる。
そして、グラフィックアクセラレータ4は、図2における(4)の番号が付された矢印に示すように、前記画素データの組ごとの排他的論理和の結果を、ワークメモリ7におけるワークメモリ内データ8を読み込んだ位置と同じ位置に格納(上書き)するようになっている。
例えば、第m行第n列目の画素データの組を用いた排他的論理和の結果は、ワークメモリ7における第m行第n列目の画素の位置に格納されることになる。
これにより、図2に示すように、ワークメモリ内データ8が更新され、第1回目の排他的論理和の結果が、ワークメモリ7内に白黒画像として描画されることになる。
次に、グラフィックアクセラレータ4は、図2における(5)の番号が付された矢印に示すように、メモリ2から第2番目の1ブロック分のプログラム本体イメージ5bを読み込むようになっている。
そして、グラフィックアクセラレータ4は、この第2番目の1ブロック分のプログラム本体イメージ5bに対しても、第1番目のときと同様に、ワークメモリ内データ8との排他的論理和を互いに対応する同行同列に位置する画素データの組ごとに計算し、その結果をワークメモリ7に格納するようになっている。
このような一連の処理が、第5番目(最後)のプログラム本体イメージ5eに至るまで順次繰り返し行われることによって、前記所定演算結果として、ワークメモリ7に最終的に格納されたワークメモリ内データ8(最終描画結果)が取得されるようになっている。
そして、CPU3は、図2における(6)の番号が付された矢印に示すように、ワークメモリ7に格納された所定演算結果と、正当結果9とを比較し、双方の結果が一致する場合には、メモリ2に格納されたプログラム本体イメージ5が破損のない正当なものであるとみなすようになっている。
このように、本実施形態においては、グラフィックアクセラレータ4により、メモリ2に保持されたプログラム本体イメージ5に対して、このプログラム本体イメージ5を画像として扱った所定の演算を行い、所定演算結果が正当結果9と一致するか否かに基づいて、メモリ2に保持されたプログラム本体イメージの正当性を迅速に検証することが可能となる。
また、前述した排他的論理和は、演算が簡便である上に、所定演算結果が「0」に相当する黒色のデータに偏りやすい論理積(AND)や、所定演算結果が「1」に相当する白色のデータに偏りやすい論理和(OR)の場合に比べて、黒色のデータと白色のデータとが混在する白黒画像を得やすい演算であるため、プログラム本体イメージ5の破損を検出しやすい。したがって、このような排他的論理和を含む前記所定の演算を行うことによって、メモリ2に保持されたプログラム本体イメージ5の正当性をより迅速かつ適切に検証することが可能となる。
さらに、一般的なグラフィックアクセラレータ4が備えているソースデータとデスティネーションデータとの論理演算を行う機能を活用して、メモリ2に保持されたプログラム本体イメージ5をソースデータとし、ワークメモリ内データ8をデスティネーションデータとした排他的論理和を簡便に実行することが可能となる。
より好ましい実施形態としては、CPU3により、グラフィックアクセラレータ4に、所定演算結果と正当結果9との排他的論理和を互いに対応する同行同列に位置する画素データの組ごとに計算させるようにする。
そして、この排他的論理和の結果が、すべての画素データの組において「0」に相当する黒色のデータとなる場合に、CPU3により、所定演算結果が正当結果9と一致すると判定し、メモリ2に格納されたプログラム本体イメージ5が正当であるとみなすようにする。
このようにすれば、メモリ2に格納されたプログラム本体イメージ5の正当性をさらに簡便に検証することが可能となる。
次に、本実施形態の作用について図3を参照して説明する。
なお、初期状態において、メモリ2には、プログラム本体イメージ5がハードディスクドライブ等から読み込まれて保持されているものとする。
そして、初期状態から、メモリ2に保持されたプログラム本体イメージ5の正当性の検証処理を開始すると、CPU3は、図3のステップ1(ST1)において、ブートローダ等を用いて初期値0のワークメモリ内データ8が格納されたワークメモリ7を用意する。そして、メモリ2に格納されたプログラム本体イメージ5をソースデータとし、ワークメモリ内データ8をデスティネーションデータとして、グラフィックアクセラレータ4をセットアップする。
次いで、ステップ2(ST2)において、グラフィックアクセラレータ4は、メモリ2から読み込む1ブロック分のプログラム本体イメージ5a〜5eのブロック番号jを1に設定してステップ3(ST3)に進む。
次いで、ステップ3(ST3)において、グラフィックアクセラレータ4は、メモリ2から、第j番目(ST3の直後においては第1番目)の1ブロック分のプログラム本体イメージ5a〜5eを読み込む。
次いで、ステップ4(ST4)において、グラフィックアクセラレータ4は、ワークメモリ7からワークメモリ内データ8を読み込む。このステップ4(ST4)の処理は、ステップ3(ST3)と同時に行うようにしてもよい。
次いで、ステップ5(ST5)において、グラフィックアクセラレータ4は、ステップ3(ST3)において読み込んだ1ブロック分のプログラム本体イメージ5a〜5eと、ステップ4(ST4)において読み込んだワークメモリ内データ8との排他的論理和(XOR)を、互いに対応する画素データの組ごとに計算する。
次いで、ステップ6(ST6)において、グラフィックアクセラレータ4は、ステップ5(ST5)における排他的論理和の計算結果をワークメモリ7に格納する。
次いで、ステップ7(ST7)において、グラフィックアクセラレータ4は、ステップ5(ST5)における排他的論理和が行われた1ブロック分のプログラム本体イメージ5a〜5eのブロック番号jが、最後のブロックの番号(j=5)であるか否かを判定し、j=5の場合には、ステップ8(ST8)に進み、そうでない場合(j<5の場合)には、ステップ9(ST9)に進む。
ステップ8(ST8)に進む場合は、ステップ6までの処理によって前記所定の演算が完了したことになる。
一方、ステップ9(ST9)に進む場合には、未だに前記所定の演算が完了していないことになる。この場合は、ステップ9(ST9)において、jの値を1つ増やしてステップ3(ST3)に戻り、j=5となるまで、ステップ3(ST3)〜ステップ7(ST7)およびステップ9(ST9)の処理を繰り返す。
次いで、ステップ8(ST8)において、CPU3は、ステップ6(ST6)によって取得された所定演算結果が、メモリ2に保持された正当結果9と一致するか否かを判定し、一致する場合には、ステップ10(ST10)に進み、一致しない場合には、ステップ11(ST11)に進む。
ステップ10(ST10)において、CPU3は、メモリ2に保持されたプログラム本体イメージ5が正当であると判定して正当性の検証処理を終了する。
一方、ステップ11(ST11)において、CPU3は、メモリ2に保持されたプログラム本体イメージ5が正当でない(破損がある)と判定して正当性の検証処理を終了する。
以上述べたように、本実施形態によれば、グラフィックアクセラレータ4の演算機能を用いてメモリ2に保持されたプログラム本体イメージ5の検証を迅速に行うことができる結果、正当なプログラムをすみやかに実行することができ、ひいては、システムの起動時間を短縮することができる。
さらに、発明によれば、グラフィックアクセラレータ4の演算機能を用いてメモリ2に保持されたプログラム本体イメージ5の正当性の検証を行うことにより、CPU3の負担を軽減してCPU3に空き時間を確保することができるので、メモリ2に保持されたプログラム本体イメージ5の正当性の検証が行われている最中においても、既に正当であるとみなされたプログラム本体イメージ5をCPU3によってすみやかに実行することができる。
なお、本発明は、前述した実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
例えば、前述した実施形態においては、前記所定の演算の際に、初期値0のワークメモリ内データ8を用いたが、本発明は、このような構成に限定されるものではない。例えば、正当結果9におけるすべての画素データを0に相当する黒色のデータとし、ワークメモリ内データ8の初期値を、これに対応する値にしてもよい。
このようにすれば、所定演算結果におけるすべての画素データが0に相当する黒色のデータとなるか否かに基づいて、メモリ2に保持されたプログラム本体イメージ5が正当であるか否かを判定することができるため、前述した実施形態のように所定演算結果と正当結果9との排他的論理和を計算する場合よりも演算回数を削減することができる。この結果、メモリ2に保持されたプログラム本体イメージ5の正当性の検証をさらに迅速に行うことが可能となる。
また、前述した実施形態においては、1ブロック分のプログラム本体イメージ5a〜5eとワークメモリ内データ8とのサイズが同一であるが、ワークメモリ内データ8のサイズを1ブロック分のプログラム本体イメージ5a〜5eのサイズよりも大きくしてもよい。この場合、前述した排他的論理和の計算は、1ブロック分のプログラム本体イメージ5a〜5eと、ワークメモリ内データ8の一部(1ブロック分のプログラム本体イメージ5a〜5eと同一サイズ分のデータ)との間で行い、その排他的論理和の結果を上書きすることによって、ワークメモリ内データ8の一部を更新するようにすればよい。なお、この場合、ワークメモリ内データ8におけるどの位置にある一部のデータを排他的論理和に用いるのか、また、ワークメモリ内データ8におけるどの位置にあるデータを排他的論理和の結果によって更新するのかについては、コンセプトに応じて種々変更することができる。
このようにすれば、ワークメモリ内データ8のデータ量を多くすることができるので、プログラム本体イメージ5の破損をさらに容易に検出することが可能となる。
さらに、前述した実施形態においては、1画素が1Bitで表現されているが、1画素が、8Bitや16Bit等の複数のBit数で表現されたものであってもよい。この場合には、前記所定の演算の際に、プログラム本体イメージ5における8Bitまたは16Bit分のデータが、1画素として捉えられることになる。
さらにまた、本発明を車載用ナビゲーションシステムに適用すれば、車載用ナビゲーションシステムをすみやかに起動することができる。
本発明に係るプログラム正当性検証装置の実施形態ににおいて、ハードウェア構成を示すブロック図 本発明に係るプログラム正当性検証装置の実施形態において、図1よりも詳細な構成を示すブロック図 本発明に係るプログラム正当性検証装置の実施形態を示すフローチャート
符号の説明
1 プログラム正当性検証装置
2 メモリ
3 CPU
4 グラフィックアクセラレータ4
5 プログラム本体イメージ
7 ワークメモリ7
8 ワークメモリ内データ
9 正当結果

Claims (6)

  1. メモリに保持されたプログラムの正当性を検証するプログラム正当性検証装置であって、
    前記メモリに保持されたプログラムに対して所定の演算を行うグラフィックアクセラレータを備え、前記メモリに保持されたプログラムが正当な場合における前記所定の演算によって得られる結果を予め用意しておき、前記グラフィックアクセラレータによる前記メモリに保持されたプログラムに対する前記所定の演算の結果が、前記予め用意された結果と一致する場合に、前記メモリに保持されたプログラムが正当であるとみなすように形成されていること
    を特徴とするプログラム正当性検証装置。
  2. 前記所定の演算が、排他的論理和を含むことを特徴とする請求項1に記載のプログラム正当性検証装置。
  3. 前記所定の演算が、ラスタ演算とされていることを特徴とする請求項1または請求項2に記載のプログラム正当性検証装置。
  4. 前記所定の演算に用いられる設定された初期値を有するデータが格納されたワークメモリを用意するように形成され、
    前記グラフィックアクセラレータが、前記メモリに保持されたプログラムにおける1ブロック分のプログラムと、前記ワークメモリに格納された前記データの全部または一部を読み込み、読み込まれた前記1ブロック分のプログラムと前記データの全部または一部を用いて論理演算を行い、この論理演算の結果を前記ワークメモリに格納して前記ワークメモリに格納された前記データを更新するといった一連の処理を、前記メモリに保持されたプログラムにおけるすべてのブロックに至るまで順次繰り返すことによって、前記所定の演算を行うように形成され、
    前記一連の処理の繰り返しによって前記ワークメモリに最終的に格納された前記データが、前記所定の演算の結果とされていること
    を特徴とする請求項1乃至請求項3のいずれか1項に記載のプログラム正当性検証装置。
  5. 前記所定の演算の結果と、前記予め用意された結果とが、それぞれ、複数個の画素データによって形成され、
    前記グラフィックアクセラレータが、前記所定の演算の結果と前記予め用意された結果との排他的論理和を、双方の結果における互いに対応する画素データの組ごとに計算するように形成され、
    この排他的論理和の計算結果が、すべての画素データの組において0に相当する結果となる場合に、前記所定の演算の結果が前記予め用意された結果と一致すると判定して、前記メモリに保持されたプログラムが正当であるとみなすように形成されていることを特徴とする請求項4に記載のプログラム正当性検証装置。
  6. 前記所定の演算の結果と、前記予め用意された結果とが、それぞれ、複数個の画素データによって形成され、
    前記予め用意された結果におけるすべての画素データが、0に相当するデータとされ、
    前記ワークメモリに格納された前記データの前記初期値が、前記予め用意された結果に対応する値とされ、
    前記メモリに保持されたプログラムに対する前記所定の演算の結果におけるすべての画素データが0に相当するデータとなる場合に、前記所定の演算の結果が前記予め用意された結果と一致すると判定して、前記メモリに保持されたプログラムが正当であるとみなすように形成されていることを特徴とする請求項4に記載のプログラム正当性検証装置。
JP2006048031A 2006-02-24 2006-02-24 プログラム正当性検証装置 Expired - Fee Related JP4732921B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006048031A JP4732921B2 (ja) 2006-02-24 2006-02-24 プログラム正当性検証装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006048031A JP4732921B2 (ja) 2006-02-24 2006-02-24 プログラム正当性検証装置

Publications (2)

Publication Number Publication Date
JP2007226610A true JP2007226610A (ja) 2007-09-06
JP4732921B2 JP4732921B2 (ja) 2011-07-27

Family

ID=38548364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006048031A Expired - Fee Related JP4732921B2 (ja) 2006-02-24 2006-02-24 プログラム正当性検証装置

Country Status (1)

Country Link
JP (1) JP4732921B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019020872A (ja) * 2017-07-13 2019-02-07 株式会社デンソー 電子制御装置、プログラム改ざん検知方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62245375A (ja) * 1986-04-11 1987-10-26 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 拡張ラスタ演算回路を有する表示システム
JP2002236600A (ja) * 2001-02-08 2002-08-23 Nagano Fujitsu Component Kk 演算装置及びその暴走検出方法
JP2006053787A (ja) * 2004-08-12 2006-02-23 Ntt Docomo Inc プログラム実行装置及びプログラム実行方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62245375A (ja) * 1986-04-11 1987-10-26 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 拡張ラスタ演算回路を有する表示システム
JP2002236600A (ja) * 2001-02-08 2002-08-23 Nagano Fujitsu Component Kk 演算装置及びその暴走検出方法
JP2006053787A (ja) * 2004-08-12 2006-02-23 Ntt Docomo Inc プログラム実行装置及びプログラム実行方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019020872A (ja) * 2017-07-13 2019-02-07 株式会社デンソー 電子制御装置、プログラム改ざん検知方法

Also Published As

Publication number Publication date
JP4732921B2 (ja) 2011-07-27

Similar Documents

Publication Publication Date Title
JP4160625B1 (ja) 誤り検出制御システム
US10832639B2 (en) Method of and apparatus for generating a signature representative of the content of an array of data
EP3534288A3 (en) Methods and systems for token-based anchoring of a physical object in a distributed ledger environment
US8774451B2 (en) Method and apparatus for embedding a watermark image in a host image
TW200638200A (en) System and method for reducing memory requirements of firmware and providing secure updates and storage areas for firmware
US20150324590A1 (en) Method for protecting data
CN107111695B (zh) 模型反合谋水印
CN107392316B (zh) 网络训练方法、装置、计算设备及计算机存储介质
JP4732921B2 (ja) プログラム正当性検証装置
US11960608B2 (en) Fast secure booting method and system
US10708064B2 (en) Semiconductor device, boot method, and boot program
US20070240089A1 (en) Apparatus and method for correcting layout pattern data
US20100208947A1 (en) Registration Device, Checking Device, Program, and Data Structure
JP2000089622A5 (ja)
CN111415288A (zh) 数字水印嵌入、检测方法和装置
JP2023078578A (ja) 画像処理装置、学習システム、および、学習方法
US7783691B2 (en) Sharing of a logic operator having a work register
CN118067614B (zh) 汽车零部件的缺陷检测方法、装置、设备及存储介质
US20190347385A1 (en) Security methods and systems by code mutation
US20150242192A1 (en) Method and system for hardening of cfg flattening
US7483595B2 (en) Image processing method and device
EP1591886A2 (en) Register management in a simulation environment
CN111420406A (zh) 一种通过内存清零实现防止游戏外挂的方法及其系统
JP2006053848A (ja) 情報処理装置およびプログラム更新方法
JP2008146118A (ja) コンピュータシステムにおけるデータベースの更新と回復の方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080417

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110401

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

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

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

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4732921

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees