説明

電子制御装置及びデータ保護システム

【課題】 データ転送の際データの保護を行う。
【解決手段】 データの書き込みが行え、あらかじめ復号のためのデータを格納している不揮発性ROMを備え、通常時は前記不揮発性ROMに書き込まれているデータで制御を行い、書き込み時には前記不揮発性ROM内のデータの一部もしくは全ての書き換えを行う電子制御装置である。また、新規データを転送する際、転送する新規データは複数のMAC(メッセージ認証コード)を付加し、CBCモードにて暗号化を行う暗号化手段により暗号処理を施されており、当該電子制御装置は転送された暗号データを不揮発性ROMにあらかじめ格納されているデータを利用して復号化処理を行う復号化手段と、復号されたデータが正規のデータであるかどうかを付加されているMACによって認証を行う認証手段とを備えることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ転送時のセキュリティや認証などを含む電子制御装置及びデータ保護システムに関するものである。
【背景技術】
【0002】
近年、インターネットなどのネットワーク(インターネット)の普及とともに、データの配信やソフトウェアのアップグレードなどがネットワークを介してユーザに提供するシステムの構築が提案されている。これらの情報には重要なデータが含まれていることがあるので、情報の漏洩や不正コピー、改竄などが大きな問題となっている。そのため、これらの問題を防ぐためにいくつかの情報保護、認証技術が開発されている。その一つとして、MAC(メッセージ認証コード)認証技術がある。MACは慣用暗号によって生成される短い固定長のデータで、メッセージに付加される。この技術では、通信にかかわる2つの主体AとBが、共有鍵Kを共有することを前提としている。AがBにメッセージを送る際には、メッセージと鍵の関数であるMAC=C(M,K)を計算する。そして、メッセージとMACが受信者に送られる。受信者は受け取ったメッセージに対して、同じ鍵を使って同じ計算を行い、新たなMACを計算し、受け取ったMACと計算されたMACが一致すれば、そのメッセージは送信中に変化しなかったことを意味する。
【0003】
この技術を使用することで現在以下のようなことが行われている。
【0004】
データの配信やソフトウェアなどのアップグレードをネットワークを介して提供する際、そのデータにMACを付加し、さらに暗号化を施してからデータの転送を行う。データを受け取る受信端末は暗号用および認証用それぞれの共通鍵を有しており、データを受信すると受信端末内のRAMにおいて復号および認証を行うことができる。認証によりデータが改竄されていないことがわかると受信端末はデータの書き換えもしくはソフトウェアのアップグレードを開始する。また、2つの共有鍵(暗号用、認証用)は受信端末から取り出すことができないので、受信端末へのデータ転送中の情報漏洩を防ぐことができ、かつ受信端末は付加されているMACにより情報の改竄を検知することができるため、誤ったデータの書き換えを防ぐことができる。
【特許文献1】特開2002−108710号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記従来例では平文データ全体に対して1つのMACを付加し、さらに暗号化を施した暗号データを受信端末に転送していることから以下のような欠点があった。
【0006】
受信端末はRAM上で受信データの復号および認証を行う。復号データの認証は復号データからMACを計算し付加されているMACと一致するか否かで行う。このことから、認証が終了してからデータの書き換えを行おうとすると、受信端末はRAM上に受信データ全てを保有し、この受信データの復号および認証を行わなければならない。もし、受信データのデータ量が大きいとRAMは全てのデータを保有することが困難になるという問題が生じる。また、この問題を解決するためにデータの送信をブロック(MACの付加および暗号化を行ったデータを数byteごとに区切る)単位にすることが考えられる。これを行うと受信端末はブロックごとに復号およびMAC(途中段階のMAC)の計算を行い復号データの書き込みを行う。そして、最後のブロックにおいて復号およびMAC(最終的なMAC)の計算を行い復号データの書き込み及びこれまで書き込んだ復号データの認証を行う。この方法をとると小さなRAM領域においても復号および認証を行うことができるが、認証はデータを全て書き込んでからでなければ行うことができずデータの認証をリアルタイム(データが書き換えられているところを書き込みが行われる前に検知)に実行することはできなくなる。これでは、データのリカバリーに時間がかかってしまう。
【0007】
本発明は、上述の問題点に着目してなされたものであって、プリンタ装置にデータを送信する際、データの内容を容易に読み取れないように保護し、ノイズまたは意図的な行為により転送データの一部もしくは全てが書き換えられたときや、データの中抜けや入れ替えが行われたときにそのバグを早期に発見でき、システムの破壊を免れることができる電子制御装置及びデータ保護システムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本出願にかかわる第1の発明は入力されたデータの演算処理を行うCPUと、あらかじめデータを格納する書き換え可能な不揮発性ROMと、前記CPUの作業領域として使用されるRAMと、データの送受信を行うI/Oポートとを備え、通常時は前記不揮発性ROMに書き込まれているプログラムで制御を行い、書き込み時には前記I/Oポートにより受信した暗号データを前記不揮発性ROMに格納されているデータにより復号化を行う復号手段と、前記暗号データが正規のデータであるかどうか前記不揮発性ROMに格納されているデータにより認証を行う認証手段とを備える電子制御装置であって、
前記不揮発性ROMは通常時実行する通常プログラムと受信したデータを復号するための復号プログラムと復号したデータが正規のデータであるか認証を行う認証プログラムと前記不揮発性ROMの書き換えを行うための書き換えプログラムと復号時に使用するデータと認証時に使用するデータを格納し、前記暗号データは1つの平分データに複数のMAC(メッセージ認証コード)を付加しCBC(cipher block chaining)モードを使用して暗号化を行ったデータであり、
また、前記復号手段は前記暗号データの復号を行うことを特徴とし、前記認証手段は前記MACによって認証を行うことを特徴とする電子制御装置。
【0009】
第1の発明によると、電子制御装置に次々に転送された暗号データブロックに対して、あらかじめ不揮発性ROMに格納されている共通鍵1やS−box(入力されたデータを非線形で出力するための行列)を利用してこれを復号化する。この復号データからMAC部分を省いたデータが転送する前のデータブロックと一致するかどうかを確認するために復号データのMAC部分を省いたデータに共通鍵2を使用してMAC処理を行いそれにより得たMACと復号データのMAC部分とを比較して認証を行う。この認証で一致していなければエラーを検出し、一致していればMAC部分を省いた復号データを不揮発性ROMに書き込む。全ての暗号データブロックおいてこの処理を行う。これにより、少ないRAM領域においても処理することが出来かつ、認証をリアルタイムに行うことができる。
【0010】
前記暗号データブロックは共通鍵2を使用してMACを複数個付加し、これに共通鍵1を使用して暗号化処理を行ったものである。また、ブロックの単位はMACごとに区切った単位である。
【0011】
また、本出願にかかわる第2の発明は前記復号時に使用するデータはCBCモードにて暗号化を行うときに使用する初期値ベクトルと鍵とS−box(入力されたデータを非線形で出力するための行列)であり、前記復号手段は前記初期値ベクトルと前記鍵と前期S−boxを使用して復号を行うことを特徴とする請求項1記載の電子制御装置。
【0012】
あらかじめROMに格納されている初期値ベクトルを使用することで転送された暗号データの最初のブロック(MAC付加単位の最初のブロックからMACを抜いたもの)が抜け落ちていたとしても、それを検知することができる。
【0013】
また、本出願にかかわる第3の発明は前記平分データは暗号化を行うデータの先頭に当該データのバイト数を添付したデータであり、前期復号手段は前記添付されているバイト数だけ前記暗号データの復号を行うことを特徴とした請求項1または2に記載の電子制御装置。
【0014】
これにより、転送される暗号データが途中で切れていても、それを検知することができる。
【0015】
また、本出願にかかわる第4の発明は平分に複数のMACを付加し、CBCモードにて暗号化を行った暗号データを請求項1、2、3いずれかに記載の電子制御装置へ送信することを特徴としたデータ保護システム。
【0016】
これにより、データの転送中に情報の漏洩を防ぐことができ、かつ情報の改竄が行われたとしても電子制御装置がその改竄を検知することができるデータの保護システムを提供する。
【発明の効果】
【0017】
以上説明したように、本発明によれば、不揮発性ROMにデータを転送する際、データの漏洩を防ぐことができ、何らかの要因でデータを書き換えられた場合においても、それを発見しシステムの破壊を免れることができる。また、複数のMACを付加することで認証の単位が小さくなり小さなRAM領域においてもリアルタイム(不揮発性ROMに復号データを書き込む前に)にデータの改竄を検知することができる。さらに、CBCモードを使用していることからデータの入れ替えや中抜けにも対応する。
【発明を実施するための最良の形態】
【0018】
以下、本発明を実施するための最良の形態について、図を参照しながら説明する。
【実施例1】
【0019】
図1は第1の実施形態に係わるデータ転送システムのシステム構成およびプリンタ装置01のハードウェア構成図である。また、図4は図1のデータ転送システムに係わるデータ保護システムである。図1のデータ転送システムはデータを要求するプリンタ装置01と、このプリンタ装置からの要求を受け、インターネット05を介してデータのやり取りを行うPC04とで構成されている。ここで、このプリンタ装置01はプリンタ装置01の制御を行うための制御ユニット02と、図2のようなデータの演算処理を行うCPU11と、CPU11が実行するプログラムやデータを記憶するROM12と、CPU11の作業領域として使用されるRAM13と、データの送受信を行うI/Oポート14とがワンチップ化されていて、PC04からのデータを受信するワンチップCPU03とで構成されている。
【0020】
また、図2のROMは図3のような、電源を立ち上げたときに走り出すブートプログラム21と、プリンタ装置01のプログラムを書き換えるための書き込みプログラム22と、プリンタ装置01の制御を行うための制御プログラム23と、図2のワンチップCPU03に送られてきたデータの復号化を行うための復号プログラム24と、図2のワンチップCPU03に送られてきたデータの認証を行うための認証プログラム25と、復号化に使用する初期値ベクトル26と、復号化や認証に使用するデータであるS−box27(入力されたデータを非線形で出力するための行列)と、復号化に使用するデータである鍵a28と、認証に使用するデータである鍵a29とを格納している。
【0021】
次に、電子制御装置に転送される暗号データの暗号化手段と制御装置が受信した暗号データの復号手段、認証手段および書き込み手段を図4で説明する。
【0022】
図1のインターネット05を介してPC04にデータをダウンロードする際、データは図4の暗号化手段31のような暗号化処理が行われてからデータの転送が行われる。PC04に転送されたデータは次にワンチップCPU03に転送され図4の復号化手段32のような処理を施した後、認証手段33により認証を行ってから書き込み手段34によってデータのROMへの書き込みを行う。ここで、制御装置が実際に行う処理は復号手段32と認証手段33と書き込み手段34のみである。
【0023】
図4において平文は暗号化を行う前の元のデータ(40byte)、byte数データは平文の全データ数(ここでは40byte)、MAC(A、B、C)はデータAとBに鍵Cを使用したMACデータ、暗号文は入力データを暗号化したデータ、復号文は暗号文を復号化したデータ、暗号処理入力バイトは8byte、MAC認証単位は16byte(MACの付加分を考えると24byte)、MAC処理に使用する鍵は鍵a、暗号化、復号化に使用する鍵は鍵bである。
【0024】
暗号化手段31は平文の先頭に当該平文のバイト数データ(ここでは40byte)を添付する。ここでの平文1〜5および添付したバイト数データはそれぞれ8byteである。これは暗号化処理の入力データを8byteとしたためである。
【0025】

【0026】
次に、出来上がったデータ(MACを付加したデータ72byte)をCBCモードにて暗号化する。(ここで使用される鍵bと初期値ベクトルは図2のROMにあらかじめ格納しておく。)これにより得た暗号データをPC04にダウンロードし、さらにワンチップCPU03にデータ転送を行う。PC04からワンチップCPU03への1回のデータ転送byteは認証単位(ここでは24byte)で決定する。転送されたデータは復号手段32、認証手段33、書き込み手段34を経たのち次のデータ転送を行う。この処理をデータ全ての書き込みが終わるかエラーが発生するまで行う。復号手段32はワンチップCPUにて暗号データを受信する。受信したデータはあらかじめROM12に格納されている初期値ベクトル26と鍵b29により復号化される。認証手段33は復号化されたデータである復号文のMAC部分であろう8byte(ここでは、復号文3、6、9)を取り除いたデータに対してあらかじめROM12に格納されている鍵aを使用してMACを作成する。作成したMACと復号文のMAC部分であろうデータとを比較して一致していれば書き込み手段34を実行し一致しなければエラーを検出する。書き込み手段34は最初に受信した認証単位(暗号文1〜3までの24byte)のデータの場合だけ処理が異なる。最初の24byteデータの頭8byte(復号文1)は平文のバイト数が格納されている。つまり、ROMへ書き込みを行うべきデータ量が格納されているので、まずはそのデータを取り出す。このバイト数データから後何回データの転送および書き込みを行うかを計算して、バイト数データとMAC部分以外の転送データ(ここでは復号文2)の書き込みを行う。転送回数が複数である場合データの転送要求を出す。最初に受信したデータ以外の場合はMAC部分以外の復号データの書き込みを行いデータの転送要求を出す。この処理を転送回数分行う。
【0027】
このように図4の構成によると、データに対して暗号化を施していることからPC04にデータをダウンロード中にその内容を読み取られることはなく、またPC04にデータをダウンロード中もしくはワンチップCPU03にデータの転送中にノイズがのりデータの一部もしくは全てに変化が生じたり、故意にデータの書き換えが行われたりすると、認証手段33でのMAC比較が一致しなくなりデータの改竄が行われたことを検知することができる。また、CBCモードを使用していることから暗号文の認証単位による前後関係が発生する。これから、認証単位でのデータの入れ替えやデータの中抜けが発生したときもそれを検知することができる。さらに、小さなバイト単位で認証を行えることからRAMに一度に取り込むデータ量を少なくすることができ、かつ認証を行ってからデータの書き込みを行うことができる。これによりリアルタイムにデータの認証および書き込みが可能になる。
【0028】
次に、データの転送からデータの書き込みまでのフローを図6のフローチャートに示しそれを説明する。
【0029】
1.認証単位バイト数(ここでは24byte)だけデータを受信する。
【0030】
2.Init_vec(CBCモードにて復号するデータに排他的論理輪を行うデータ)にROM内に格納されている初期値ベクトルを代入する。
【0031】
3.鍵bとInit_vecを使用して受信したデータ(24byte)を復号化する。
【0032】
4.復号したデータの先頭16byteに鍵aを使用してMACを作成する。
【0033】
5.復号したデータ後ろ8byteと作成したMACを比較して一致していれば6に進み、一致していなければデータの改竄を検知してerrorを出力する。
【0034】
6.countに復号したデータ先頭8byte(全平文byte数ここでは40)を入力する。
【0035】
7.count≦0であれば書き込みを終了しcount≦0でなければ8へ進む。
【0036】
8.復号したデータ9〜16byte目を書き込む。
【0037】
9.count=count−8。
【0038】
10.count≦0であれば書き込みを終了しcount≦0でなければ11へ進む。
【0039】
11.Init_vecに17〜24byte目を代入し初期値ベクトルを更新する。
【0040】
12.次のデータ24byteを受信する。
【0041】
13.鍵bとInit_vecを使用して受信したデータ(24byte)を復号化する。
【0042】
14.復号したデータの先頭16byteに鍵aを使用してMACを作成する。
【0043】
15.復号したデータ後ろ8byteと作成したMACを比較して一致していれば16に進み、一致していなければデータの改竄を検知してerrorを出力する。
【0044】
16.復号したデータ1〜8byte目を書き込む。
【0045】
17.count=count−8。
【0046】
18.count≦0であれば書き込みを終了しcount≦0でなければ19へ進む。
【0047】
19.復号したデータ9〜16byte目を書き込む。
【0048】
20.count=count−8。
【0049】
21.count≦0であれば書き込みを終了しcount≦0でなければ11へ戻る。
【実施例2】
【0050】
図1は第1の実施形態に係わるデータ転送システムのシステム構成およびプリンタ装置01のハードウェア構成図である。また、図7は図1のデータ転送システムに係わるデータ保護システムである。図1のデータ転送システムはデータを要求するプリンタ装置01と、このプリンタ装置からの要求を受け、インターネット05を介してデータのやり取りを行うPC04とで構成されている。ここで、このプリンタ装置01はプリンタ装置01の制御を行うための制御ユニット02と、図2のようなデータの演算処理を行うCPU11と、CPU11が実行するプログラムやデータを記憶するROM12と、CPU11の作業領域として使用されるRAM13と、データの送受信を行うI/Oポート14とがワンチップ化されていて、PC04からのデータを受信するワンチップCPU03とで構成されている。
【0051】
また、図2のROMは図3のような、電源を立ち上げたときに走り出すブートプログラム21と、プリンタ装置01のプログラムを書き換えるための書き込みプログラム22と、プリンタ装置01の制御を行うための制御プログラム23と、図2のワンチップCPU03に送られてきたデータの復号化を行うための復号プログラム24と、図2のワンチップCPU03に送られてきたデータの認証を行うための認証プログラム25と、復号化に使用する初期値ベクトル26と、復号化や認証に使用するデータであるS−box27(入力されたデータを非線形で出力するための行列)と、復号化に使用するデータである鍵a28と、認証に使用するデータである鍵a29とを格納している。
【0052】
次に、電子制御装置に転送される暗号データの暗号化手段と制御装置が受信した暗号データの復号手段、認証手段および書き込み手段を図7で説明する。
【0053】
図1のインターネット05を介してPC04にデータをダウンロードする際、データは図7の暗号化手段61のような暗号化処理が行われてからデータの転送が行われる。PC04に転送されたデータは次にワンチップCPU03に転送され図7の認証手段63により認証を行ってから復号化手段62のような処理を施した後、書き込み手段64によってデータのROMへの書き込みを行う。ここで、制御装置が実際に行う処理は復号手段62と認証手段63と書き込み手段64のみである。
【0054】
図7において平文は暗号化を行う前の元のデータ(40byte)、byte数データは平文の全データ数(ここでは40byte)、MAC(A、B、C)はデータAとBに鍵Cを使用したMACデータ、暗号文は入力データを暗号化したデータ、復号文は暗号文を復号化したデータ、暗号処理入力バイトは8byte、MAC認証単位は16byte(MACの付加分を考えると24byte)、MAC処理に使用する鍵は鍵a、暗号化、復号化に使用する鍵は鍵bである。
【0055】
暗号化手段61は平文の先頭に当該平文のバイト数データ(ここでは40byte)を添付する。ここでの平文1〜5および添付したバイト数データはそれぞれ8byteである。これは暗号化処理の入力データを8byteとしたためである。
【0056】

【0057】
次に得た暗号データをPC04にダウンロードし、さらにワンチップCPU03にデータ転送を行う。PC04からワンチップCPU03への1回のデータ転送byteは認証単位(ここでは24byte)で決定する。転送されたデータは認証手段63、復号手段62、書き込み手段64を経たのち次のデータ転送を行う。この処理をデータ全ての書き込みが終わるかエラーが発生するまで行う。認証手段63はワンチップCPUにて暗号データを受信する。受信したデータのMAC部分であろう8byte(ここでは、復号文3、6、9)を取り除いたデータに対してあらかじめROM12に格納されている鍵aを使用してMACを作成する。作成したMACと受信データのMAC部分であろうデータとを比較して一致していれば復号化手段62を実行すし、一致しなければエラーを検出する。復号化手段62は受信データのMAC部分を取り除いたデータをあらかじめROM12に格納されている初期値ベクトル26と鍵b29を用いて(初期値ベクトルを用いるのは1回目の転送のときのみで、それ以降は1つ手前の暗号文8byteを用いる)復号化する。書き込み手段34は最初に受信した認証単位(暗号文1〜3までの24byte)のデータの場合だけ処理が異なる。最初の24byteデータの頭8byte(復号文1)は平文のバイト数が格納されている。つまり、ROMへ書き込みを行うべきデータ量が格納されているので、まずはそのデータを取り出す。このバイト数データから後何回データの転送および書き込みを行うかを計算して、バイト数データとMAC部分以外の転送データ(ここでは復号文2)の書き込みを行う。転送回数が複数である場合データの転送要求を出す。最初に受信したデータ以外の場合はMAC部分以外の復号データの書き込みを行いデータの転送要求を出す。この処理を転送回数分行う。
【0058】
このように図7の構成によると、データに対して暗号化を施していることからPC04にデータをダウンロード中にその内容を読み取られることはなく、またPC04にデータをダウンロード中もしくはワンチップCPU03にデータの転送中にノイズがのりデータの一部もしくは全てに変化が生じたり、故意にデータの書き換えが行われたりすると、認証手段63でのMAC比較が一致しなくなりデータの改竄が行われたことを検知することができる。また、CBCモードを使用していることから暗号文の認証単位による前後関係が発生する。これから、認証単位でのデータの入れ替えやデータの中抜けが発生したときもそれを検知することができる。さらに、小さなバイト単位で認証を行えることからRAMに一度に取り込むデータ量を少なくすることができ、かつ認証を行ってからデータの書き込みを行うことができる。これによりリアルタイムにデータの認証および書き込みが可能になる。
【0059】
次に、データの転送からデータの書き込みまでのフローを図8のフローチャートに示しそれを説明する。
【0060】
1.証単位バイト数(ここでは24byte)だけデータを受信する。
【0061】
2.Init_vec(CBCモードにて復号するデータに排他的論理輪を行うデータ)にROM内に格納されている初期値ベクトルを代入する。
【0062】
3.転送データの先頭16byteに鍵aを使用してMACを作成する。
【0063】
4.転送データ後ろ8byte(MACが付加されているであろうデータ)と作成したMACを比較して一致していれば5に進み、一致していなければデータの改竄を検知してerrorを出力する。
【0064】
5.鍵bとInit_vecを使用して受信した転送データ先頭16byteを復号化する。
【0065】
6.countに復号したデータ先頭8byte(全平文byte数ここでは40)を入力する。
【0066】
7.count≦0であれば書き込みを終了しcount≦0でなければ8へ進む。
【0067】
8.復号したデータ9〜16byte目を書き込む。
【0068】
9.count=count−8。
【0069】
10.count≦0であれば書き込みを終了しcount≦0でなければ11へ進む。
【0070】
11.Init_vecに転送データ9〜16byte目を代入し初期値ベクトルを更新する。
【0071】
12.次のデータ24byteを受信する。
【0072】
13.転送データの先頭16byteに鍵aを使用してMACを作成する。
【0073】
14.転送データ後ろ8byte(MACが付加されているであろうデータ)と作成したMACを比較して一致していれば15に進み、一致していなければデータの改竄を検知してerrorを出力する。
【0074】
15.鍵bとInit_vecを使用して受信した転送データ先頭16byteを復号化する。
【0075】
16.復号したデータ1〜8byte目を書き込む。
【0076】
17.count=count−8。
【0077】
18.count≦0であれば書き込みを終了しcount≦0でなければ19へ進む。
【0078】
19.復号したデータ9〜16byte目を書き込む。
【0079】
20.count=count−8。
【0080】
21.count≦0であれば書き込みを終了しcount≦0でなければ11へ戻る。
【図面の簡単な説明】
【0081】
【図1】本発明の第1および第2の実施例に係わるデータ転送システムのシステム構成およびプリンタ装置のハードウェア構成図である。
【図2】本発明の第1および第2の実施例に係わる制御ユニットを大まかに説明する図である。
【図3】図2のROMに格納されているデータの図である。
【図4】本発明の第1の実施例に係わるデータ保護システムの構成を大まかに説明する図である。
【図5】MAC処理を大まかに説明する図である。
【図6】本発明の第1の実施例に係わるデータ保護システムの動作をフローチャートにしたものである。
【図7】本発明の第2の実施例に係わるデータ保護システムの構成を大まかに説明した図である。
【図8】本発明の第2の実施例に係わるデータ保護システムの動作をフローチャートにしたものである。
【符号の説明】
【0082】
01 プリンタ装置
02 制御ユニット
03 ワンチップCPU
04 PC
05 インターネット
11 CPU
12 ROM
13 RAM
14 I/Oポート
21 ブートプログラム
22 書き込みプログラム
23 制御プログラム
24 復号プログラム
25 認証プログラム
26 初期値ベクトル
27 S−box
28 鍵a
29 鍵b
31 暗号化手段
32 復号化手段
33 認証手段
34 書き込み手段
61 暗号化手段
62 復号化手段
63 認証手段
64 書き込み手段

【特許請求の範囲】
【請求項1】
入力されたデータの演算処理を行うCPUと、あらかじめデータを格納する書き換え可能な不揮発性ROMと、前記CPUの作業領域として使用されるRAMと、データの送受信を行うI/Oポートとを備え、通常時は前記不揮発性ROMに書き込まれているプログラムで制御を行い、書き込み時には前記I/Oポートにより受信した暗号データを前記不揮発性ROMに格納されているデータにより復号化を行う復号手段と、前記暗号データが正規のデータであるかどうか前記不揮発性ROMに格納されているデータにより認証を行う認証手段とを備える電子制御装置であって、
前記不揮発性ROMは通常時実行する通常プログラムと受信したデータを復号するための復号プログラムと復号したデータが正規のデータであるか認証を行う認証プログラムと前記不揮発性ROMの書き換えを行うための書き換えプログラムと復号時に使用するデータと認証時に使用するデータを格納し、前記暗号データは1つの平分データに複数のMAC(メッセージ認証コード)を付加しCBC(cipher block chaining)モードを使用して暗号化を行ったデータであり、
また、前記復号手段は前記暗号データの復号を行うことを特徴とし、前記認証手段は前記MACによって認証を行うことを特徴とする電子制御装置。
【請求項2】
前記復号時に使用するデータはCBCモードにて暗号化を行うときに使用する初期値ベクトルと鍵とS−box(入力されたデータを非線形で出力するための行列)であり、前記復号手段は前記初期値ベクトルと前記鍵と前期S−boxを使用して復号を行うことを特徴とする請求項1記載の電子制御装置。
【請求項3】
前記平分データは暗号化を行うデータの先頭に当該データのバイト数を添付したデータであり、前期復号手段は前記添付されているバイト数だけ前記暗号データの復号を行うことを特徴とした請求項1または2に記載の電子制御装置。
【請求項4】
平分に複数のMACを付加し、CBCモードにて暗号化を行った暗号データを請求項1、2、3いずれかに記載の電子制御装置へ送信することを特徴としたデータ保護システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−165874(P2006−165874A)
【公開日】平成18年6月22日(2006.6.22)
【国際特許分類】
【出願番号】特願2004−352856(P2004−352856)
【出願日】平成16年12月6日(2004.12.6)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】