(57)【要約】【課題】  データの正当性を簡単にチェックできるようにすること。【解決手段】  所定量のデータＤ（１），Ｄ（２）・・Ｄ（ｎ）に対して、ＣＲＣ処理を行ってＣＲＣ値（１），ＣＲＣ値（２）・・ＣＲＣ値（ｎ）値を算出し、そのＣＲＣ値（１），ＣＲＣ値（２）・・ＣＲＣ値（ｎ）に対して、順次発生される乱数値Ｒ（１），Ｒ（２）・・Ｒ（ｎ）に応じた回数、ＣＲＣ処理を行って、次のデータに付加するｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）を生成するようにした。【選択図】        図５
2005044185.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも、所定量のデータに対して、ＣＲＣ処理を行ってＣＲＣ値を算出し、
上記ＣＲＣ値に対して、Ｙ回、ＣＲＣ処理を行って、次のデータに付加するチェック値を生成するようにしたことを特徴とするデータ処理方法。
【請求項２】
上記Ｙ回は、順次発生される乱数値により決定され、上記チェック値の生成処理ごとに変化されることを特徴とする請求項１に記載のデータ処理方法。
【請求項３】
上記所定量のデータが記憶されるデータ領域には、上記データと、上記データのＣＲＣ値、及び一つ前のデータ領域に記憶されたデータのＣＲＣ値から生成されたチェック値が記憶されることを特徴とする請求項１に記載のデータ処理方法。
【請求項４】
所定量のデータごとにＣＲＣ値とチェック値が付加されているデータのデータ検査方法として、
データに付加されているＣＲＣ値に対して、Ｙ回、ＣＲＣ処理を行って求めた演算値と、次の所定量のデータに付加されているチェック値とを比較することで、データの検査を行うようにしたことを特徴とするデータ検査方法。
【請求項５】
上記Ｙ回は、順次発生される乱数値により決定され、上記チェック値の生成処理ごとに変化されることを特徴とする請求項４に記載のデータ検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを伝送或いは記録する際のデータ処理方法と、そのようなデータ処理方法により処理を行ったデータのデータ検査方法に関するものである。
【背景技術】
【０００２】
近年、データの伝送や記録、再生などの各種データ処理を行うことができるデータ処理装置が開発されている。
上記したようなデータ処理装置では、例えば重要度の高いデータを伝送したり、或いは記憶するため、データの秘密保持性を高めるための技術が提案されている。
例えば、下記特許文献１には、所定の情報に複数の改ざん防止対策を施して秘密保持性を高めるようにした技術が開示されている。
【０００３】
【特許文献１】特開平０９−００９２４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記したようなデータ処理装置では、例えばデータの伝送中又は保存中に悪意の第３者によって改ざんされる恐れがあった。このため、伝送或いは保存中のデータの正当性を簡単にチェックできるチェック方法が望まれていた。
【課題を解決するための手段】
【０００５】
そこで、本発明は、上記したような点を鑑みてなされたものであり、本発明のデータ処理方法は、少なくとも、所定量のデータに対して、ＣＲＣ処理を行ってＣＲＣ値を算出し、そのＣＲＣ値に対して、Ｙ回、ＣＲＣ処理を行って、次のデータに付加するチェック値を生成するようにした。
【０００６】
このような本発明によれば、所定量のデータに対して、ＣＲＣ処理を行ってＣＲＣ値を算出し、そのＣＲＣ値に対して、順次発生される乱数値により決定される回数（Ｙ回）だけ、ＣＲＣ処理を行い、次のデータに付加するチェック値を生成して、データに付加しておくようにしている。これにより、第３者によりデータが改ざんされてたとしても、データに付加したチェック値によりデータの改ざんを発見することが可能になる。
【０００７】
また本発明の所定量のデータごとにＣＲＣ値とチェック値が付加されているデータのデータ検査方法は、データに付加されているＣＲＣ値に対して、Ｙ回、ＣＲＣ処理を行って求めた演算値と、次の所定量のデータに付加されているチェック値とを比較することでデータの検査を行うようにした。
【０００８】
このような本発明によれば、例えばデータを読み出すときは、データに付加されているＣＲＣ値に対して、順次発生される乱数値により決定される回数（Ｙ回）だけ、ＣＲＣ処理を行って求めた演算値と、次の所定量のデータに付加されているチェック値の比較を行えば、データの改ざん等が行われているかどうか判別することが可能になる。
【発明の効果】
【０００９】
以上、説明したように、本発明のデータ処理方法によれば、所定量のデータに対して、ＣＲＣ処理を行ってＣＲＣ値を算出し、そのＣＲＣ値に対して、順次発生される乱数値により決定される回数（Ｙ回）だけ、ＣＲＣ処理を行い、次のデータに付加するチェック値を生成するようにしているため、データの伝送中又は保存中のデータの破壊や悪意の第３者によりデータが改ざんされたとしても容易に発見することができ、データの正当性を簡単に検査することが可能になる。
【００１０】
また、本発明のデータ検査方法によれば、例えばデータを読み出すときは、データに付加されているＣＲＣ値に対して、順次発生される乱数値により決定される回数（Ｙ回）だけ、ＣＲＣ処理を行って求めた演算値と、次のデータに付加されているチェック値と比較すれば、データの伝送中又は保存中のデータの破壊や悪意の第３者によりデータの改ざんを検査することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について説明する。
図１は、本実施の形態としてのデータ処理方法、及びデータ検査方法を備えたデータ処理装置の構成を示した図である。
この図１に示すデータ処理装置１は、データの伝送や記録、再生を行うことができる電子機器などに搭載される。
データ処理装置１は、少なくともＣＰＵなどにより構成されたマイクロコンピュータ（以下、「マイコン」という）２と、メモリ３が設けられており、マイコン２は、各種データをメモリ３に書き込んだり、或いはメモリ３に記憶されているデータの読み出しを行うことが可能とされる。
【００１２】
また、データ処理装置１は、ケーブル４を介して、同様の機能を備えたデータ処理装置１０が接続された場合には、データ処理装置１，１０間でデータ伝送が可能とされる。
また、データ処理装置１，１０は、通信回線５を介して接続することも可能である。通信回線５としては、有線又は無線の公衆回線網や専用回線が考えられ、例えばインターネット、衛星通信網、光ファイバー網、その他各種の通信回線を適用することが考えられる。
【００１３】
また、データ処理装置１では、各種データを伝送或いは記録するときは、実際のデータに誤り符号を付加するようにしている。これにより、伝送或いは記録、再生の過程で、データに誤りが発生した場合でも、誤り符号を利用して元のデータを推定するように構成されている。このため、マイコン２には、伝送、或いは記録しようとするデータに誤り符号を付加するための機能ブロックとして、よく知られているＣＲＣ（cyclic redundancy check）方式の誤り検出機能回路が設けられている。
【００１４】
ＣＲＣ方式は、例えばデータを伝送或いは記録するときに、データに対して予め決められた生成多項式により演算を行い、その演算結果として得られる、例えば２バイトのＣＲＣコード（以下、「ＣＲＣ値」という）を、データに付加して伝送或いは記録しておくことで、伝送時或いは記録時における誤り検出を行うようにしている。
ＣＲＣ方式に用いられる生成多項式は各種提案されており、例えばＣＲＣ−ＣＣＩＴＴ（国際電信電話諮問機関）の勧告による生成多項式（Ｘ16＋Ｘ12＋Ｘ5＋１）などがよく知られている。また、ＣＲＣ方式の誤り検出機能回路は、比較的簡単な回路で実現できるため、マイコン２のＣＰＵにも容易に実装可能とされる。
【００１５】
図２は、データ処理装置１のマイコン２に設けられているＣＲＣブロックの構成を示した図である。
この図２に示すデータ切出部１１は、マイコン２に入力される実際のデータを所定バイト（byte）のデータ単位で切り出して順次データバッファ１２に出力するようにされる。
データバッファ１２は、データ切出部１１から入力される切出データＤを一時的に保持すると共に、保持した切出データＤを１バイトずつＣＲＣ演算部１３に出力するようにされる。
【００１６】
ＣＲＣ演算部１３は、例えばシフトレジスタなどにより構成され、１バイトのデータが入力されると、この１バイトのデータと上記生成多項式とから、例えば２バイトのＣＲＣ値を生成するようにされる。なお、ＣＲＣ演算部１３の生成多項式は、上記した生成多項式に限定されるものはでない。
また、このようなＣＲＣ演算部１３において、所定バイトの切出データＤに対応したＣＲＣ値を生成するには、データバッファ１２から切出データＤを１バイトずつ連続的に入力していくことで、所定バイトの切出データＤを全て入力し終えた時点で、切出データＤに対応するＣＲＣ値が生成されることになる。
【００１７】
そして本実施の形態では、ＣＲＣ演算部１３で生成した所定バイトの切出データＤに対応したＣＲＣ値を、さらにＣＲＣ演算部１３に戻し、このＣＲＣ値に対して乱数値発生部１５からの乱数値Ｒに応じた回数（Ｙ回）だけ、再度ＣＲＣ演算を行って、ＣＲＣ値の誤りを検出するための所定バイトのチェック値（以下、「ｓｉｇ値」という）を生成するようにしている。なお、ＣＲＣ演算部１３におけるｓｉｇ値の演算方法については後述する。
【００１８】
データ書込部１４は、データバッファ１２から送られてくる切出データＤと、ＣＲＣ演算部１３おいて生成されたＣＲＣ値やｓｉｇ値を所定のタイミングでもってメモリ３に書き込むようにされる。
【００１９】
乱数値発生部１５は、予め決められた乱数テーブル又は計算式などを有しており、乱数値の基になる基データを、乱数テーブルや計算式に当てはめることで、乱数値Ｒ（１），Ｒ（２）・・Ｒ（ｎ）を順次発生するようにされる。
この場合、乱数値Ｒ（１），Ｒ（２）・・Ｒ（ｎ）は、ＣＲＣ演算部１３において行われるｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）の生成処理ごとに変化した値になる。
乱数値発生部１５は、基データが同じであれば、常に同じ乱数パターンで乱数値Ｒ（１），Ｒ（２）・・Ｒ（ｎ）を発生するものとされる。
【００２０】
なお、乱数値発生部１５の乱数テーブルや計算式及び基データなどは、例えばマイコン２内に予め保持しておくようにしても良いし、伝送ケーブル４や通信回線５を介して取得するようにしても良い。
ただし、データ処理装置１，１０間でデータ伝送を行う場合には、データ処理装置１，１０が同一の乱数パターンで乱数値Ｒ（１），Ｒ（２）・・Ｒ（ｎ）を発生するように、乱数値発生部１５の乱数テーブルや計算式及び基データ等は同じにしておく必要がある。
【００２１】
このように本実施の形態のデータ処理装置１においては、入力される実際のデータをデータ切出部１１で所定バイト数の切出データＤ（１），Ｄ（２）・・Ｄ（ｎ）にしてデータバッファ１２から順々にＣＲＣ演算部１３に入力し、各切出データＤ（１），Ｄ（２）・・Ｄ（ｎ）ごとのＣＲＣ値（１），ＣＲＣ値（２）・・ＣＲＣ値（ｎ）を生成するようにしている。
そして、このＣＲＣ演算部１３で生成したＣＲＣ値（１），ＣＲＣ値（２）・・ＣＲＣ値（ｎ）から、ＣＲＣ値（１），ＣＲＣ値（２）・・ＣＲＣ値（ｎ）を検査（チェック）するためのｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）を生成するようにしている。
そして、入力データをメモリ３に書き込むときは、切出データＤ（１），Ｄ（２）・・Ｄ（ｎ）と、そのＣＲＣ値（１），ＣＲＣ値（２）・・ＣＲＣ値（ｎ）と共に、ｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）をメモリ３に書き込むようにしている。
【００２２】
ここで、ＣＲＣ演算部１３におけるチェック値の演算方法を図３を用いて説明しておく。
図３は、図２に示したＣＲＣ演算部１３においてＣＲＣ値からチェック値を生成するブロックの構成を示した図である。
この図３に示す演算ブロック２１は、１バイトの入力データにＣＲＣ演算を行うブロックであり、本実施の形態では、この演算ブロック２１で生成した切出データＤ（１），Ｄ（２）・・Ｄ（ｎ）ごとのＣＲＣ値（１），ＣＲＣ値（２）・・ＣＲＣ値（ｎ）に対して、乱数値発生部１５からの乱数値Ｒ（１），Ｒ（２）・・Ｒ（ｎ）に応じた回数だけ、ＣＲＣ処理を行って、チェック値（ｓｉｇ値）Ｓ（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）を算出するようにしている。
【００２３】
例えば、演算ブロック２１において、ＣＲＣ値（１）のｓｉｇ値（１）を求めるときには、演算ブロック２１から出力されるＣＲＣ値（１）が判別ブロック２２に入力される。
判別ブロック２２は、演算ブロック２１から入力されるＣＲＣ値（１）に対して、演算ブロック２１において乱数値Ｒ（１）に応じた回数だけＣＲＣ演算が行われたかどうかの判別を行う。
ここで、否定結果が得られた時、即ち、乱数値Ｒ（１）に応じた回数だけＣＲＣ演算が行われいないと判別した時は、演算ブロック２１からの入力値を演算ブロック２１にフィードバックするようにされる。
そして、判別ブロック２２において肯定結果が得られた時、即ち、演算ブロック２１においてＣＲＣ値（１）に対して乱数値Ｒ（１）に応じた回数だけＣＲＣ演算が行われたと判別した時に、演算ブロック２１から入力される入力値をｓｉｇ値（１）として出力するようにしている。
以降は、演算ブロック２１から順々に入力されるＣＲＣ値（２）・・ＣＲＣ値（ｎ）に対して同様の処理を施してｓｉｇ値（２）・・ｓｉｇ値（ｎ）を求めるようにされる。
【００２４】
図４は、本実施の形態のデータ処理装置１のメモリ３のデータ記憶時におけるデータ構造の一例を模式的に示した図である。
本実施の形態のデータ処理装置１では、実際に入力されるデータをメモリ３に書き込むときは、切出データＤ（１），Ｄ（２）・・Ｄ（ｎ）と、これら切出データＤ（１），Ｄ（２）・・Ｄ（ｎ）ごとのＣＲＣ値（１），ＣＲＣ値（２）・・ＣＲＣ値（ｎ）と、これらＣＲＣ値（１），ＣＲＣ値（２）・・ＣＲＣ値（ｎ）から求めたｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）をメモリ３に書き込むようにしている。
【００２５】
その場合、先ず、メモリ３の１行目には、切出データＤ（１）と、そのＣＲＣ値（１）を書き込むようにしている。
このとき、メモリ３の１行目の先頭に位置するｓｉｇ値を書き込むためのデータ領域を使用せずに、切出データのデータ領域から切出データＤ（１）、ＣＲＣ値（１）の順で書き込みを行い、ｓｉｇ値（１）については、２行目のｓｉｇ値を書き込むためのデータ領域に対して、次の切出データＤ（２）、ＣＲＣ値（２）を書き込む時に、切出データＤ（２）、ＣＲＣ値（２）と共にｓｉｇ値（１）を書き込むようにしている。したがって、このときのメモリ３の２行目には、その先頭からｓｉｇ値（１）、切出データＤ（２）、ＣＲＣ値（２）の順で書き込みを行うようにしている。
【００２６】
そして次の３行目のデータ領域には、先頭からｓｉｇ値（２）、切出データＤ（３）、ＣＲＣ値（３）の順に書き込みを行い、最終的には、図４に示すようにｎ＋１行目のデータ領域の先頭に最後のｓｉｇ値（ｎ）を書き込むようにしている。
【００２７】
このように、メモリ３にｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）を書き込むときは、ｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）を次の切出データＤ（２），Ｄ（３）・・を先頭に付加して書き込むようにすると、ＣＲＣ演算処理とメモリ３へのデータ書込処理を並行して効率よく行うことができるため、データ処理を高速で行うことできる。
【００２８】
なお、本実施の形態では、ｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）をメモリ３に書き込むときは、ｓｉｇ値（１）をデータＤ（２）の先頭に、ｓｉｇ値（２）をデータＤ（３）の先頭に付加するようにしているが、これはあくまでも一例であり、ｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ（ｎ−１）は、データＤ（２），データＤ（３）・・データＤ（ｎ）のデータ領域であれば、必ずしも各データＤ（２）・・データＤ（ｎ）の先頭に付加する必要はない。
【００２９】
また、本実施の形態のデータ処理装置１においては、上記のようにしてメモリ３に書き込んだデータを読み出すときは、メモリ３に記憶されているＣＲＣ値（１），ＣＲＣ値（２）・・ＣＲＣ値（ｎ）と、ｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）を用いて、メモリ３に記憶されているデータＤ（１），Ｄ（２）・・Ｄ（ｎ）のチェックを行うようにしている。つまり、メモリ３に記憶されているデータＤ（１），Ｄ（２）・・Ｄ（ｎ）が悪意の第３者による改ざんや、データ破壊などが無い、正当なデータであるかどうかのチェックを行うようにしている。
【００３０】
このため、データ処理装置１は、メモリ３から読み出したＣＲＣ値（１），ＣＲＣ値（２）・・ＣＲＣ値（ｎ）に対して、乱数値発生部１５の乱数値Ｒ（１），Ｒ（２）・・Ｒ（ｎ）に応じた回数だけ再度ＣＲＣ処理を行い、その結果得られる演算値Ｘ（１），Ｘ（２）・・Ｘ（ｎ）と、メモリ３から読み出したｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）を比較することで、データのチェックを行うようにしている。
【００３１】
メモリ３に記憶されている正当性チェックのためのｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）は、切出データＤ（１），Ｄ（２）・・Ｄ（ｎ）をメモリ３に書き込むときに求めたＣＲＣ値（１），ＣＲＣ値（２）・・ＣＲＣ値（ｎ）と、乱数値発生部１５からの乱数値Ｒ（１），Ｒ（２）・・Ｒ（ｎ）とから毎回作成するようにしている。このため、上記したような算出方法、及び乱数値Ｒ（１），Ｒ（２）・・Ｒ（ｎ）を知らない第３者がｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）を求めることは殆ど不可能になる。
【００３２】
従って、仮に悪意の第３者によってメモリ３内のデータが読みとられ、第３者によってデータとＣＲＣ値が改ざんされたとしても、ｓｉｇ値（１），ｓｉｇ値（２）・・ｓｉｇ値（ｎ）までは改ざんすることはできないので、上記のようなデータチェックを行えば、メモリ３のデータが正当なデータであるかどうかチェックすることができる。
【００３３】
また、例えばメモリ３に記憶されているデータが何らかの要因によって破壊された場合でも、上記したようなデータチェックにより、データが破壊されているかどうかチェックすることが可能になる。
【００３４】
さらに、例えばメモリ３に記憶されているデータの更新を行うために、メモリ３にデータが記憶されている状態のもとで、新たなデータの上書きを行った際に、その途中で何らかの障害が発生し、メモリ３のデータ更新が途中で中断した場合でも、上記したデータチェックを行えば、メモリ３の、どの行に記憶されているデータが誤っているかチェックすることが可能になるので、どの行までデータの更新が終了しているか容易に把握することが可能になる。
従って、再度、データの更新を行う際には、更新が行われていないデータについてのみ、データの上書きを行うことが可能になる。
【００３５】
以下、これまで説明したメモリ３にデータを書き込むときの処理の一例を図５に示すフローチャートを用いて具体的に説明する。
この場合、マイコン２は、先ず、ステップＳ１０１において、変数ｎに対して「１」を代入する。そして続くステップＳ１０２において、データバッファ１２を介して入力される切出データＤ（１）をＣＲＣ演算部１３に１バイトずつ入力してＣＲＣ演算を行い、切出データＤ（１）のＣＲＣ値（１）を求める。
【００３６】
次に、ステップＳ１０３において、切出データＤ（１）と、２バイトのＣＲＣ値（１）のデータを、メモリ３の１行目のデータ領域に書き込むように制御する。
このとき、マイコン２は、図４に示したようにメモリ３の１行目の先頭の２バイト分のデータ領域にデータを書き込むことなく、３バイト目のデータ領域からデータを書き込むように制御を行うようにする。
【００３７】
次いで、マイコン２は、ステップＳ１０４において、マイコン２内の乱数値発生部１５から乱数値Ｒ（１）を取得した後、ステップＳ１０５において、上記ステップＳ１０２で求めたＣＲＣ値（１）に対して乱数値Ｒ（１）に応じた回数だけＣＲＣ演算を行い、その演算結果として算出される値をｓｉｇ値（１）として保持しておくようにする。
【００３８】
次に、ステップＳ１０６においては、変数ｎの値を「ｎ＋１」した後、ステップＳ１０７において、次の切出データＤ（２）にＣＲＣ演算を行ってＣＲＣ値（２）を得るようにする。
そして続くステップＳ１０８において、上記ステップＳ１０５において保持したｓｉｇ値（１）と、切出データＤ（２）、及びＣＲＣ値（２）をメモリ３の第２行目のデータ領域の先頭位置から書き込むように制御を行う。
【００３９】
そして次のステップＳ１０９において、全てのデータの書き込みが終了したかどうかの判別を行い、全てのデータの書き込みが終了していなければ、ステップＳ１０４に戻り、ステップＳ１０４からの処理を実行するようにされる。
このようなステップＳ１０４からの処理は、ステップＳ１０９において、全てのデータの書き込みが終了したと判別するまで行う。
そしてステップＳ１０９において、全てのデータの書き込みが終了したと判別した場合には、ステップＳ１１０に進み、ステップＳ１１０において、最後に求めたｓｉｇ値（ｎ）の値をメモリ３のｎ＋１行目の先頭から書き込んで処理を終えることになる。これにより、メモリ３には、図４に示すようなデータ構造でデータの書き込みを行うことができる。
【００４０】
次に、上記のようにしてメモリ３に書き込んだデータの検査処理の一例を図６に示すフローチャートを用いて説明する。
この場合、マイコン２は、ステップＳ２０１において、変数ｎに対して「１」を代入した後、続くステップＳ２０２において、乱数値発生部１５から乱数値Ｒ（１）を取得する。
そして、ステップＳ２０３において、メモリ３から読出対象とされるデータのＣＲＣ値（１）、ｓｉｇ値（１）を読み出しを行い、続くステップＳ２０４において、ＣＲＣ値（１）に対して乱数値Ｒ（１）に応じた回数だけＣＲＣ演算を行って、演算値Ｘ（１）を求める。
続くステップＳ２０５において、演算値Ｘ（１）と、メモリ３から読み出したｓｉｇ値（１）とが一致するかどうかの判別を行い、演算値Ｘ（１）とｓｉｇ値（１）が一致したときはメモリ３に記憶されているデータＤ（１）は正当であると判断してステップＳ２０６に進む。
【００４１】
そして続く、ステップＳ２０６においては、変数ｎの値を「ｎ＋１」した後、ステップＳ２０７において、変数ｎが最大値ｎmaxに到達したがどうかの判別を行う。つまりここでは、メモリ３に記憶されている読出対象とされるデータの全てのＣＲＣ値（ｎ）から求めた演算値Ｘ（ｎ）と、メモリ３から読み出したｓｉｇ値（ｎ）との比較が全て行われたかどうかの判別を行い、全ての比較を行ったと判別したときにステップＳ２０８に進む。そして、この場合は、読出対象とされるデータは正当なデータである、即ち、読出対象とされるデータは改ざんや破壊のないデータとしてデータ検査処理を終えることになる。
【００４２】
これに対して、ステップＳ２０５において、ＣＲＣ値（ｎ）から算出した演算値Ｘ（ｎ）と、メモリ３から読み出したｓｉｇ値（ｎ）が一致しないと判別した時は、ステップＳ２０９に進み、この場合は、読出対象とされるデータが正当なデータでない、即ち、読出対象とされるデータは改ざんや破壊などがあるデータとしてデータ検査処理を終えることになる。
【００４３】
また、この場合、ステップＳ２０５の判別処理によって、ステップＳ２０９においてメモリ３の、どの行に記憶されているデータＤ（ｎ）が正当なデータでなく不当なデータであることが分かるので、ステップＳ２０９の処理を行った後、ステップＳ２０６に戻り、読出対象とされる全てのデータの検査処理を継続して行うようにすれば、メモリ３のどの行に記憶されているデータを行単位で正当なデータかどうかの判別を行うことが可能になる。
【００４４】
なお、本実施の形態では、例えばケーブル４や通信回線５を介してデータ処理装置１０に伝送する場合も、送信側のデータ処理装置１で上記したようなデータ処理を行い、受信側のデータ処理装置１０で上記したデータ検査処理を行うようにすれば、伝送中におけるデータの改ざんを検出することが可能になる。
【００４５】
また、本実施の形態では、データ切出部１１で切り出した切出データＤからＣＲＣ値を求めるようにしているが、ＣＲＣ値は、１つ前のＣＲＣ値のｓｉｇ値とデータＤから求めるようにしても良い。例えばＣＲＣ値（２）をｓｉｇ値（１）とデータＤ（２）からＣＲＣ値（２）を求めるようにしても良い。この場合は、悪意の第３者はＣＲＣの値を求めることはより困難になるので、第３者によるデータの改ざんをより確実に発見することができるようになる。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施の形態としてのデータ処理装置の構成を示した図である。
【図２】マイコンに設けられているＣＲＣ機能ブロックの構成を示した図である。
【図３】チェック値の演算方法を説明するための図である。
【図４】メモリのデータ構造を模式的に示した図である。
【図５】メモリにデータを書き込むときのデータ処理を示したフローチャートである。
【図６】メモリに記憶されているデータの検査処理を示したフローチャートである。
【符号の説明】
【００４７】
１  １０  データ処理装置、２  マイコン、３  メモリ、４  ケーブル、５  通信回線、１１  データ切出部、１２  データバッファ、１３  ＣＲＣ演算部、１４  データ書込部、１５  乱数値発生部、２１  演算ブロック、２２  判別ブロック
【図１】
2005044185.tif 000003
【図２】
2005044185.tif 000004
【図３】
2005044185.tif 000005
【図４】
2005044185.tif 000006
【図５】
2005044185.tif 000007
【図６】
2005044185.tif 000008