(57)【要約】【課題】  外部メモリに格納されるデータの不正改竄を確実に防止することができる演算処理装置を提供する。【解決手段】  外部メモリ１００に格納されているデータが再度取り込まれた際に、データ真正性確認部１５で、乱数発生器１２で発生させた乱数を用いた１回目のデータ演算処理をデータ演算処理部１３に行なわせて得られたハッシュ値と不揮発性メモリ１４に記録されているハッシュ値とを比較することによりデータの真正性を確認し、さらにデータ演算処理部１３に、再度取り込まれたデータに対し発生させた新たな乱数を用いた２回目のデータ演算処理を行なわせて、その新たな乱数とその２回目のデータ演算処理により得られたハッシュ値とをペアにして不揮発メモリ１４に記録する。【選択図】    図１
2006338098.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する外部メモリから、該外部メモリに格納されたデータを取り込んで該データに基づく演算処理を行なう演算処理装置において、
所定のイベントの発生ごとに前記外部メモリから該外部メモリに格納されたデータを取り込むデータ取込部と、
乱数発生器と、
前記外部メモリから取り込んだデータに、前記乱数発生器で発生させた乱数を用いたデータ加工処理と該データ加工処理後のデータに対するハッシュ処理とのペアからなるデータ演算処理を行なうデータ演算処理部と、
前記データ演算処理部で用いた乱数と該乱数を用いたデータ演算処理により得られたハッシュ値とをペアにして記録しておく不揮発性メモリと、
前記外部メモリから該外部メモリに格納されているデータが再度取り込まれた際に、前記データ演算処理部に、再度取り込まれたデータに対し前記不揮発性メモリに記録されている乱数を用いた１回目のデータ演算処理を行なわせて該１回目のデータ演算処理により得られたハッシュ値と前記不揮発性メモリに記録されているハッシュ値とを比較することによりデータの真正性を確認し、さらに前記データ演算処理部に、前記再度取り込まれたデータに対し前記乱数発生器で発生させた新たな乱数を用いた２回目のデータ演算処理を行なわせて、該新たな乱数と該２回目のデータ演算処理により得られたハッシュ値とをペアにして前記不揮発性メモリに記録するデータ真正性確認部と、
前記データ真正性確認部により真正性が確認されたデータに基づく演算処理を行なう演算処理部とを備えたことを特徴とする演算処理装置。
【請求項２】
前記外部メモリがデータを上書き自在に格納する外部メモリであり、該記外部メモリに格納されたデータが暗号化されたデータであって、
前記データ取込部により前記外部メモリから取り込まれたデータに対し、前記不揮発性メモリに格納されている乱数をキーとして復号化処理を行なう復号化処理部と、
前記復号化処理部により復号化されたデータに対し、前記乱数発生器で発生させた新たな乱数をキーとして暗号化処理を行なって前記外部メモリに書き戻すデータ演算処理部とを備え、
前記データ真正性確認部は、前記データ演算処理部に、前記復号化処理部により復号化処理が行なわれる前の、暗号化されたデータに対し、前記１回目のハッシュ処理を行なわせるとともに、前記データ演算処理部により暗号化処理が行なわれた後の、暗号化されたデータに対し、前記２回目のハッシュ処理を行なわせるものであることを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記不揮発性メモリが、乱数と該乱数を用いたデータ演算処理により得られたハッシュ値とのペアを複数ぺア記録しておくものであり、
前記データ真正性確認部が、
前記外部メモリから該外部メモリに格納されているデータが再度取り込まれた際に、前記データ演算処理部に、再度取り込まれたデータに対し前記不揮発性メモリに記録されている複数の乱数それぞれを用いた１回目のデータ演算処理を行なわせて該１回目のデータ演算処理により得られた複数のハッシュ値と前記不揮発性メモリに記録されている複数のハッシュ値とを比較することによりデータの真正性を確認し、さらに前記乱数発生器に複数の新たな乱数を発生させ前記データ演算処理部に、前記再度取り込まれたデータに対し該複数の新たな乱数それぞれを用いた２回目のデータ演算処理を行なわせて、該複数の新たな乱数と、該２回目のデータ演算処理により得られた複数のハッシュ値とを、互いに対応する乱数とハッシュ値をペアにして前記不揮発性メモリに複数ペア記録するものであることを特徴とする請求項１記載の演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを格納する外部メモリから、その外部メモリに格納されたデータを取り込んでそのデータに基づく演算処理を行なう演算処理装置に関する。
【背景技術】
【０００２】
従来より、上述した演算処理装置において、外部メモリに格納されるデータの不正改竄を防止するために、可変長のデータである原文を圧縮して固定長のデータ（ハッシュ値）に変換するハッシュ関数を用いた技術が知られている。ハッシュ関数の代表的的なアルゴリズムとしては、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）およびＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  １）が知られている。ハッシュ関数は、以下の性質を有する。
１）基本的に、原文が異なれば、その原文から得られるハッシュ値は異なる。
２）ハッシュ関数は一方向の処理関数であり、原文からハッシュ値を得ることは簡単であるが、ハッシュ値から原文を得ることは困難である。
【０００３】
ここで、データが改竄された場合、ハッシュ値も異なるものが得られる。このため、改竄される前のハッシュ値が分かっていれば、データが改竄されたか否かを判定することができる。このことを利用して、例えば、特許文献１には、乱数とハッシュ値を連結した連結データを用いて、データが改竄されたか否かを判定する技術が提案されている。また、特許文献２には、遊戯用のプログラムデータと送信情報との双方にハッシュ関数を施して得られた演算結果に基づいて、遊戯用のプログラムデータが改竄されたか否かを判定する技術が提案されている。
【特許文献１】特開２０００―３２２２５３号公報
【特許文献２】特開平１１―２８５５８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ハッシュ関数では、データの内容が異なる場合であっても、同じハッシュ値が得られる場合がある。ここで、外部メモリに格納されたデータを取り込んでそのデータに基づく演算処理を行なう演算処理装置において、その外部メモリは、本来必要なデータ量に対して十分大きな容量を有する場合が多い。即ち、外部メモリは、余分なメモリ容量を有する場合が多く、この余分なメモリ容量を第三者が操作することで、改竄される前のデータと同じハッシュ値を持つデータに改竄することができる場合がある。従って、外部メモリに格納されるデータの不正改竄を防止する点に欠けるという問題がある。
【０００５】
本発明は、上記事情に鑑み、外部メモリに格納されるデータの不正改竄を確実に防止することができる演算処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成する本発明の演算処理装置は、データを格納する外部メモリから、その外部メモリに格納されたデータを取り込んでそのデータに基づく演算処理を行なう演算処理装置において、
所定のイベントの発生ごとに上記外部メモリからその外部メモリに格納されたデータを取り込むデータ取込部と、
乱数発生器と、
上記外部メモリから取り込んだデータに、上記乱数発生器で発生させた乱数を用いたデータ加工処理とそのデータ加工処理後のデータに対するハッシュ処理とのペアからなるデータ演算処理を行なうデータ演算処理部と、
上記データ演算処理部で用いた乱数とその乱数を用いたデータ演算処理により得られたハッシュ値とをペアにして記録しておく不揮発性メモリと、
上記外部メモリからその外部メモリに格納されているデータが再度取り込まれた際に、上記データ演算処理部に、再度取り込まれたデータに対し上記不揮発性メモリに記録されている乱数を用いた１回目のデータ演算処理を行なわせてその１回目のデータ演算処理により得られたハッシュ値と上記不揮発性メモリに記録されているハッシュ値とを比較することによりデータの真正性を確認し、さらに上記データ演算処理部に、上記再度取り込まれたデータに対し上記乱数発生器で発生させた新たな乱数を用いた２回目のデータ演算処理を行なわせて、その新たな乱数とその２回目のデータ演算処理により得られたハッシュ値とをペアにして上記不揮発性メモリに記録するデータ真正性確認部と、
上記データ真正性確認部により真正性が確認されたデータに基づく演算処理を行なう演算処理部とを備えたことを特徴とする。
【０００７】
従来の演算処理装置では、外部メモリに格納されたデータの真正性（ａｕｔｈｅｎｔｉｃｉｔｙ）、即ちデータの信憑性を確認するにあたり、常に同じハッシュ値が用いられる。ここで、ハッシュ関数のアルゴリズムでは、データの内容が異なる場合であっても、同じハッシュ値が得られる場合がある。このため、第三者は、外部メモリに格納されたデータを解析してこのハッシュ値を知り、このハッシュ値と同じハッシュ値を持つように、外部メモリの余分なメモリ容量を操作することで、データを改竄することができる場合がある。従って、従来の演算処理装置では、外部メモリに格納されるデータの不正改竄を防止する点に欠けるという問題がある。
【０００８】
本発明の演算処理装置は、上記データ演算処理部で用いた乱数とその乱数を用いたデータ演算処理により得られたハッシュ値とをペアにして記録しておき、外部メモリに格納されているデータが再度取り込まれた際に、記録されている乱数を用いた１回目のデータ演算処理を行なわせてその１回目のデータ演算処理により得られたハッシュ値と記録されているハッシュ値とを比較することによりデータの真正性を確認する。さらに、再度取り込まれたデータに対し発生させた新たな乱数を用いた２回目のデータ演算処理を行なわせて、その新たな乱数とその２回目のデータ演算処理により得られたハッシュ値とをペアにして記録する。このため、所定のイベントの発生ごとに（例えば、電源が投入される度に）、異なるハッシュ値を用いて、外部メモリから取り込まれるデータに対して、そのデータの真正性を確認することができる。従って、外部メモリに格納されるデータの不正改竄を確実に防止することができる。
【０００９】
ここで、上記外部メモリがデータを上書き自在に格納する外部メモリであり、その外部メモリに格納されたデータが暗号化されたデータであって、
上記データ取込部により上記外部メモリから取り込まれたデータに対し、上記不揮発性メモリに格納されている乱数をキーとして復号化処理を行なう復号化処理部と、
上記復号化処理部により復号化されたデータに対し、上記乱数発生器で発生させた新たな乱数をキーとして暗号化処理を行なって上記外部メモリに書き戻すデータ演算処理部とを備え、
上記データ真正性確認部は、上記データ演算処理部に、上記復号化処理部により復号化処理が行なわれる前の、暗号化されたデータに対し、上記１回目のハッシュ処理を行なわせるとともに、上記データ演算処理部により暗号化処理が行なわれた後の、暗号化されたデータに対し、上記２回目のハッシュ処理を行なわさせるものであることが好ましい。
【００１０】
このようにすると、所定のイベント発生ごとに、外部メモリに格納された暗号化データが新たな乱数をキーとして暗号化されたデータに書き換えられるため、外部メモリに格納されているデータが常に同じデータである場合と比較し、データの解析が困難となり、改竄に使用することができるデータ領域の特定も困難となる。また、このように暗号化されたデータに対してハッシュ処理が行なわれるため、得られるハッシュ値の範囲は広く、従って外部メモリに格納されるデータの不正改竄をさらに確実に防止することができる。
【００１１】
また、上記不揮発性メモリが、乱数とその乱数を用いたデータ演算処理により得られたハッシュ値とのペアを複数ぺア記録しておくものであり、
上記データ真正性確認部が、
上記外部メモリからその外部メモリに格納されているデータが再度取り込まれた際に、上記データ演算処理部に、再度取り込まれたデータに対し上記不揮発性メモリに記録されている複数の乱数それぞれを用いた１回目のデータ演算処理を行なわせてその１回目のデータ演算処理により得られた複数のハッシュ値と上記不揮発性メモリに記録されている複数のハッシュ値とを比較することによりデータの真正性を確認し、さらに上記乱数発生器に複数の新たな乱数を発生させ上記データ演算処理部に、上記再度取り込まれたデータに対しそれら複数の新たな乱数それぞれを用いた２回目のデータ演算処理を行なわせて、それら複数の新たな乱数と、その２回目のデータ演算処理により得られた複数のハッシュ値とを、互いに対応する乱数とハッシュ値をペアにして上記不揮発性メモリに複数ペア記録するものであることも好ましい態様である。
【００１２】
このようにすると、複数の異なるハッシュ値を用いて、外部メモリから取り込まれるデータの真正性を確認することができる。従って、外部メモリに格納されるデータの不正改竄をさらに確実に防止することができる。
【発明の効果】
【００１３】
本発明の演算処理装置によれば、外部メモリに格納されるデータの不正改竄を確実に防止することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の実施の形態を説明する。
【００１５】
図１は、本発明の第１実施形態の演算処理装置を示す図である。
【００１６】
図１に示す演算処理装置１０は、データを上書き自在に格納する外部メモリ１００から、その外部メモリ１００に格納されたデータを取り込んでそのデータに基づく演算処理を行なう演算処理装置である。尚、ここでは、データを上書き自在に格納する外部メモリ１００の例で説明するが、本発明にいう外部メモリは、データの書き換えが不能なメモリであってもよい。
【００１７】
この演算処理装置１０には、電源の投入（本発明にいう所定のイベントの発生に相当）ごとに外部メモリ１００からその外部メモリ１００に格納されたデータを取り込むＲＡＭ１１（本発明にいうデータ取込部に相当）が備えられている。
【００１８】
また、この演算処理装置１０には、乱数発生器１２が備えられている。
【００１９】
さらに、この演算処理装置１０には、外部メモリ１００から取り込んだデータに、乱数発生器１２で発生させた乱数を用いたデータ加工処理とそのデータ加工処理後のデータに対するハッシュ処理とのペアからなるデータ演算処理を行なうデータ演算処理部１３が備えられている。ここでのデータ加工処理とは、例えば暗号化処理のことをいう。
【００２０】
また、この演算処理装置１０には、データ演算処理部１３で用いた乱数とその乱数を用いたデータ演算処理により得られたハッシュ値とをペアにして記録しておく不揮発性メモリ１４が備えられている。
【００２１】
さらに、この演算処理装置１０には、データ真正性確認部１５が備えられている。このデータ真正性確認部１５は、外部メモリ１００からその外部メモリ１００に格納されているデータが再度取り込まれた際に、データ演算処理部１３に、再度取り込まれたデータに対し不揮発性メモリ１４に記録されている乱数を用いた１回目のデータ演算処理を行なわせてその１回目のデータ演算処理により得られたハッシュ値と不揮発性メモリ１４に記録されているハッシュ値とを比較することによりデータの真正性を確認する。さらに、このデータ真正性確認部１５は、データ演算処理部１３に、再度取り込まれたデータに対し乱数発生器１２で発生させた新たな乱数を用いた２回目のデータ演算処理を行なわせて、その新たな乱数と２回目のデータ演算処理により得られたハッシュ値とをペアにして不揮発性メモリ１４に記録する。
【００２２】
また、この演算処理装置１０には、データ真正性確認部１５により真正性が確認されたデータに基づく演算処理を行なう演算処理部１６も備えられている。
【００２３】
さらに、この演算処理装置１０には、演算処理装置１０の動作を制御するＣＰＵ１７が備えられている。
【００２４】
このように構成された演算処理装置１０において、不揮発メモリ１４には、初期設定によりデータの真正性が確認された後、乱数発生器１２で発生させた乱数とその乱数を用いたデータ演算処理により得られたデータに対するハッシュ値とのペアが記憶されているものとする。この状態で電源が投入されると、演算処理装置１０が起動され、以下の手順で処理が行なわれる。
【００２５】
先ず、手順１において、ＣＰＵ１７により外部メモリ１００に格納されたデータ（外部データと称する）を読み出してＲＡＭ１１に取り込む。
【００２６】
次に、手順２において、データ真正性確認部１５により不揮発メモリ１４に記録された乱数とハッシュ値を読み出す。
【００２７】
さらに、手順３において、データ真正性確認部１５により、ＲＡＭ１１内の外部データに対し、乱数を用いた１回目のデータ演算処理をデータ演算処理部１３に行なわせる。次いで、得られたハッシュ値と不揮発メモリ１４から読み出したハッシュ値とを比較する。ここで、得られたハッシュ値と不揮発メモリ１４から読み出したハッシュ値との比較結果が異なる場合は、外部データが改竄されているため、処理を停止する。一方、得られたハッシュ値が期待通り（得られたハッシュ値と不揮発メモリ１４から読み出したハッシュ値との比較結果が同じ）であれば、外部データは改竄されていないため、手順４に進む。
【００２８】
手順４では、次回のハッシュ計算用に、乱数発生器１２で新たに乱数を発生する。また、同時にデータ真正性確認部１５で、この乱数を用いた２回目のデータ演算処理を行なって、新たな乱数とこのデータ演算処理により得られたハッシュ値とをペアにして不揮発性メモリ１４に記録する。尚、手順２で読み出された乱数とハッシュ値データはこの時点で消去される。以降、演算処理装置１０が起動されるたびに、手順１から手順４の処理を繰り返し実行する。
【００２９】
第１実施形態の演算処理装置１０は、データ演算処理部１３で用いた乱数とその乱数を用いたデータ演算処理により得られたハッシュ値とをペアにして不揮発性メモリ１４に記録しておき、外部メモリ１００に格納されているデータが再度取り込まれた際に、記録されている乱数を用いた１回目のデータ演算処理を行なわせてその１回目のデータ演算処理により得られたハッシュ値と記録されているハッシュ値とを比較することによりデータの真正性を確認する。さらに、再度取り込まれたデータに対し発生させた新たな乱数を用いた２回目のデータ演算処理を行なわせて、その新たな乱数とその２回目のデータ演算処理により得られたハッシュ値とをペアにして記録するものである。このため、演算処理装置１０に電源が投入されて起動されるたびに異なるハッシュ値を用いて、外部メモリ１００から取り込まれるデータに対して、そのデータの真正性が確認される。従って、外部メモリ１００に格納されるデータの不正改竄を確実に防止することができる。
【００３０】
上述した例では、乱数を用いたデータの加工処理としてデータを暗号化する処理を用いたが、乱数をデータに付加する等の処理でも可能である。このようにすると、データを暗号化するための処理を省くことができる。
【００３１】
図２は、本発明の第２実施形態の演算処理装置を示す図である。
【００３２】
尚、図１に示す演算処理装置１０の構成要素と同じ構成要素には同一の符号を付し、異なる点について説明する。
【００３３】
図２に示す演算処理装置２０は、図１に示す演算処理装置１０と比較し、復号化処理部２１が追加されている点と、データ真正性確認部１５がデータ真正性確認部２５に置き換えられている点とが異なっている。また、外部メモリ１００は、書き換え可能なメモリであって、暗号化されたデータが格納されている。
【００３４】
復号化処理部２１は、ＲＡＭ１１により外部メモリ１００から取り込まれたデータに対し、不揮発性メモリ１４に格納されている乱数をキーとして復号化処理を行なう。
【００３５】
データ演算処理部１３は、復号化処理部２１により復号化されたデータに対し、乱数発生器１２で発生させた新たな乱数をキーとして暗号化処理を行なって外部メモリ１００に書き戻す。
【００３６】
データ真正性確認部２５は、データ演算処理部１３に、復号化処理部２１により復号化処理が行なわれる前の、暗号化されたデータに対し、１回目のハッシュ処理を行なわせるとともに、復号化されたデータが再び新たな乱数により暗号化処理が行なわれた後の、暗号化されたデータに対し、２回目のハッシュ処理を行なわせる。
【００３７】
このように構成された演算処理装置２０において、不揮発メモリ１４には、初期設定によりデータの真正性が確認された後、乱数発生器１２で発生させた乱数とデータ演算処理部１３でその乱数を用いたデータ演算処理（暗号化処理＋ハッシュ処理）により得られたハッシュ値とのペアが記憶されているものとする。また、外部メモリ１００にはその暗号化処理により得られた暗号化データが格納されているものとする。この状態で電源が投入されると、演算処理装置２０が起動されて以下の手順で処理が行なわれる。
【００３８】
先ず、手順１において、ＣＰＵ１７により外部メモリ１００に格納されたデータ（外部データと称する）を読み出してＲＡＭ１１に取り込む。
【００３９】
次に、手順２において、データ真正性確認部２５により不揮発メモリ１４に記録された乱数とハッシュ値を読み出す。
【００４０】
さらに、手順３において、ＲＡＭ１１内の暗号化された外部データを、データ演算処理部１３で１回目のハッシュ処理を行なう。次いで、データ真正性確認部２５で、得られたハッシュ値と不揮発メモリ１４から読み出したハッシュ値とを比較する。ここで、得られたハッシュ値と不揮発メモリ１４から読み出したハッシュ値との比較結果が異なる場合は、外部データが改竄されているため、処理を停止する。一方、得られたハッシュ値が期待通りであれば、外部データは改竄されていないため、手順４に進む。
【００４１】
手順４では、次回のハッシュ計算用に、乱数発生器１２で新たに乱数を発生する。また、同時にこの乱数をキーとして復号化処理部２１で復号化された外部データを暗号化し、暗号化したデータに対して２回目のハッシュ処理を行なって、この暗号化されたデータに対するハッシュ値を得る。
【００４２】
手順５では、外部メモリ１００に、手順４で暗号化されたデータを上書きする。
【００４３】
手順６では、手順４で得られた乱数とハッシュ値を、次回のデータの真正性の確認に用いるため、不揮発性メモリ１４に記録する。
【００４４】
以降、演算処理装置２０が起動されるたびに、手順１から手順６の処理を繰り返し実行する。
【００４５】
第２実施形態の演算処理装置２０では、この演算処理装置２０に電源が投入されて起動されるたびに、外部メモリ１００に格納されている暗号化データが書き換えられるため、換言すれば原文の殆どの部分が毎回異なった乱数をキーとして暗号化されて書き換えられるため、データの解析が困難となり、改竄に使用することができるデータ領域の特定も困難となる。また、このように暗号化されたデータに対してハッシュ処理が行なわれるため、得られるハッシュ値の範囲は広く、従って外部メモリ１００に格納されるデータの不正改竄をさらに確実に防止することができる。さらに、上記手順１から手順６の処理を繰り返し実行した後に、演算処理装置２０を使用すると、第三者による外部データの改竄が極めて困難になる。
【００４６】
図３は、本発明の第３実施形態の演算処理装置を示す図である。
【００４７】
図３に示す演算処理装置３０を構成する不揮発性メモリ３４は、乱数とその乱数を用いたデータ演算処理により得られたハッシュ値とのペアを複数ぺア記録しておくメモリである。
【００４８】
また、この演算処理装置３０を構成するデータ真正性確認部３５は、外部メモリ１００からその外部メモリ１００に格納されているデータが再度取り込まれた際に、データ演算処理部３３に、再度取り込まれたデータに対し不揮発性メモリ３４に記録されている複数の乱数それぞれを用いた１回目のデータ演算処理を行なわせて１回目のデータ演算処理により得られた複数のハッシュ値と不揮発性メモリ３４に記録されている複数のハッシュ値とを比較することによりデータの真正性を確認する。尚、ここでは、データを上書き自在に格納する外部メモリ１００の例で説明するが、本発明にいう外部メモリは、データの書き換えが不能なメモリであってもよい。
【００４９】
さらに、このデータ真正性確認部３５は、乱数発生器３２に複数の新たな乱数を発生させデータ演算処理部３３に、再度取り込まれたデータに対し複数の新たな乱数それぞれを用いた２回目のデータ演算処理を行なわせて、複数の新たな乱数と、２回目のデータ演算処理により得られた複数のハッシュ値とを、互いに対応する乱数とハッシュ値をペアにして不揮発性メモリ３４に複数ペア記録する。
【００５０】
このように構成された演算処理装置３０において、初期設定により不揮発メモリ３４に乱数とハッシュ値とのペアが記憶された状態で電源が投入されると、演算処理装置３０が起動されて以下の手順で処理が行なわれる。
【００５１】
先ず、手順１において、ＣＰＵ１７により外部メモリ１００に格納されたデータ（外部データと称する）を読み出してＲＡＭ１１に取り込む。
【００５２】
次に、手順２において、データ真正性確認部３５により不揮発メモリ３４に記録された乱数とハッシュ値のペアを複数読み出す。
【００５３】
さらに、手順３において、データ真正性確認部３５により、ＲＡＭ１１内の外部データに対し、複数の乱数それぞれを用いたデータ演算処理をデータ演算処理部３３に行なわせる。このようにして得られた複数のハッシュ値と不揮発メモリ３４から読み出した複数のハッシュ値とを比較する。ここで、得られた複数のハッシュ値と不揮発メモリ３４から読み出した複数のハッシュ値との比較結果が異なる場合は、外部データが改竄されているため、処理を停止する。一方、得られた複数のハッシュ値それぞれが期待通りであれば、外部データは改竄されていないため、手順４に進む。
【００５４】
手順４では、次回のデータ演算処理用に、乱数発生器３２で複数の新たな乱数を発生する。また、同時にデータ真正性確認部３５で、これら複数の乱数それぞれを用いたデータ演算処理を行なって、複数の新たな乱数とこのデータ演算処理により得られた複数のハッシュ値とを、互いに対応する乱数とハッシュ値とをペアにして不揮発性メモリ３４に複数ペア記録する。以降、演算処理装置３０が起動されるたびに、手順１から手順４の処理を繰り返し実行する。
【００５５】
このように、第３実施形態の演算処理装置３０では、複数の異なるハッシュ値を用いて、外部メモリ１００から取り込まれるデータの真正性の確認が行なわれる。従って、外部メモリ１００に格納されるデータの不正改竄をさらに確実に防止することができる。
【図面の簡単な説明】
【００５６】
【図１】本発明の第１実施形態の演算処理装置を示す図である。
【図２】本発明の第２実施形態の演算処理装置を示す図である。
【図３】本発明の第３実施形態の演算処理装置を示す図である。
【符号の説明】
【００５７】
１０，２０，３０  演算処理装置
１１  ＲＡＭ
１２，３２  乱数発生器
１３，３３  データ演算処理部
１４，３４  不揮発性メモリ
１５，２５，３５  データ真正性確認部
１６  演算処理部
１７  ＣＰＵ
２１  復号化処理部
１００  外部メモリ
【図１】
2006338098.tif 000003
【図２】
2006338098.tif 000004
【図３】
2006338098.tif 000005