(58)【調査した分野】(Int.Cl.,DB名)
前記編集部は、所定期間における参照回数が所定値を下回る基準データ及び該基準データに対応する暗号文を、前記参照テーブルから削除する請求項4に記載の電子制御装置。
前記編集部は、前記生成部が参照回数の多い基準データを早く探し出すことができるように、前記参照回数に応じて前記参照テーブルを編集する請求項4に記載の電子制御装置。
【発明を実施するための形態】
【0013】
図面を参照しながら、複数の実施形態を説明する。複数の実施形態において、機能的に及び/又は構造的に対応する部分には同一の参照符号を付与する。
【0014】
(第1実施形態)
先ず、
図1に基づき、本実施形態の電子制御装置を備える通信システムについて説明する。
【0015】
図1に示す通信システム10は、CANバス20及び複数の電子制御装置(Electronic Control Unit)30を備えている。CANは、バス型ネットワークを採用したシリアル通信プロトコルである。以下、電子制御装置30を、ECU30と示す。複数のECU30(ノード)は、CANバス20に接続されている。本実施形態では、車両に搭載された複数のECU30が、CANバス20にノードとして接続されて、車載ネットワークが構築されている。
【0016】
ECU30は、メッセージの正当性をメッセージ認証コードに基づいて判断する。以下、メッセージ認証コードを、MACと示す。
【0017】
次に、
図2に基づき、データフレームについて説明する。
【0018】
図2に示すように、データフレームは、IDフィールドやデータフィールドを含んでいる。それ以外にも、図示しないCRCフィールドなどを含んでいる。メッセージは、送信可能な状態のデータフレームに相当する。IDフィールドには、メッセージの種類及び優先度を示す識別情報であるIDが設定される。たとえば受信側のECU30は、IDを参照することで、自身が処理する必要のあるデータか否かを判断する。
【0019】
データフィールドには、メッセージ本体及びMACが設定される。メッセージ本体は、保護対象データと、再送攻撃(リプレイ攻撃)を防ぐための耐再送攻撃データを含む。保護対象データは、車両の特定の機能、たとえば制御機能や監視機能に関する情報である。すなわち、保護すべき情報である。保護対象データとして、たとえばエンジン回転数に関する情報や、アクチュエータの駆動を指示する情報などがある。
【0020】
耐再送攻撃データは、保護対象データに続いて設定される。耐再送攻撃データは、メッセージ本体の末尾に設定される。耐再送攻撃データは、送受信の双方で決まった規則で更新されるデータである。耐再送攻撃データは、送受信で同様に更新される。本実施形態では、CANバス20に接続された複数のECU30において、決まった規則で更新される。このため、メッセージ本体の保護対象データが同じでも、MACを異ならせることができる。
【0021】
具体的には、CANバス20に接続された不正機器によりメッセージが盗聴され、後にこのメッセージがCANバス20に再送された場合、再送されたメッセージの耐再送データは盗聴時に設定されたものである。再送時には、ECU30において耐再送攻撃データが更新されており、これによりMACの値が異なるため、再送されたメッセージが不正メッセージであると判断することができる。
【0022】
次に、
図3〜
図5に基づき、本実施形態のECU30(電子制御装置)について説明する。以下に説明する構成は、複数のECU30で同じとなっている。
【0023】
図3に示すように、ECU30は、マイコン31を有している。マイコン31は、CPU、ROM、RAM、フラッシュメモリ、レジスタ、及び入出力インターフェースなどを備えて構成されている。マイコン31において、CPUが、RAMやレジスタの一時記憶機能を利用しつつ、ROMに予め記憶された制御プログラムにしたがって、所定の処理を実行する。マイコン31は、ソフトウェア制御により、所定の処理を実行する。マイコン31は、受信したメッセージの正当性を検証する機能部として、受信部32、MAC生成部33、共通鍵記憶部34、参照テーブル記憶部35、及び判定部36を備えている。
【0024】
受信部32は、他のECU30から送信されたメッセージを受信する。受信部32は、受信したメッセージのIDに基づいて、受信したECU30(自身)の処理対象であり、且つ、MACによる認証が必要な対象であるかを判断する。メッセージを送信した他のECU30が、他の装置に相当する。
【0025】
MAC生成部33は、受信したメッセージが、処理対象であり、且つ、MACによる認証対象である場合に、共通鍵を用いてMACを生成する。MAC生成部33が、MACを生成する生成部に相当する。共通鍵は、送受信の装置間で共通な暗号鍵である。共通鍵は、共通鍵記憶部34に記憶されている。MAC生成部33は、条件に応じて、通常処理によるMAC生成と、参照暗号文を用いたMAC生成とを切り替えて実行する。
【0026】
先ず、通常処理について説明する。MAC生成部33は、ブロック暗号ベース認証アルゴリズムを適用してMACを生成する。本実施形態では、CMAC(Cipher based MAC)を適用する。通常処理は、CMACとして知られた手法である。
【0027】
MAC生成部33は、先ずメッセージ本体を、
図4に示すように一定の長さ(所定ビット)を有する複数のブロックM
1、M
2、…、M
n*に分割する。以下、一定の長さを暗号長と示す。M
n*が暗号長を満たす場合、
図4に示すように、M
n*と共通鍵Kとの排他的論理和(XOR)を、最終ブロックM
nとする。一方、M
n*が暗号長に満たない場合、図示を省略するが、空きビットに先頭を1、以降を0とするデータをパディング(付け足し)する。そして、パディングしたM
n*と共通鍵Kとの排他的論理和(XOR)を、最終ブロックM
nとする。
【0028】
なお、
図4は、以下の公知の先行文献より引用した。
NIST, Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication, Special Publication 800-38B.
MAC生成部33は、最初(1番目)のブロックM
1から、共通鍵Kを用いて暗号化処理CIPH
Kを実行する。i番目(iは2以上の正数)のブロックについては、(i−1)番目の暗号化処理CIPH
Kの結果との排他的論理和を計算し、この排他的論理和を共通鍵Kを用いて暗号化処理CIPH
Kする。
図5に示す例では、最終ブロックM
nと(n−1)番目のブロックM
n−1の暗号化処理CIPH
Kの結果との排他的論理和を計算し、この排他的論理和を共通鍵Kを用いて暗号化処理CIPH
Kする。そして、暗号化処理CIPH
Kにより得られたビット列を、左からMACサイズであるTlenビット分、切り出す処理を実行し、得られた値TをMAC値とする。通常処理では、ブロック数と同じn回分の暗号化処理CIPH
Kを実行して、MACを生成する。
【0029】
より詳しくは、MAC生成部33が、M
n*が暗号長を満たす場合に、共通鍵Kより算出される副鍵K1を用いてMACを生成する。M
n*が暗号長に満たない場合に、共通鍵Kより算出される副鍵K2を用いてMACを生成する。しかしながら、本実施形態では、便宜上、副鍵と共通鍵との区別をせず、単に共通鍵として記載する。このため、
図4においても、副鍵K1ではなく共通鍵Kと示している。
【0030】
次に、参照暗号文を用いた処理について説明する。上記したように、データフィールドには、メッセージ本体の末尾に耐再送攻撃データが設定されている。したがって、少なくとも最終ブロックM
nには、耐再送攻撃データが含まれる。また、耐再送攻撃データは、所定の規則で更新されるデータである。したがって、耐再送攻撃データを含むブロックを共通鍵Kを用いて暗号化処理CIPH
Kした結果は、常に同じとはならない。一方、保護対象データのみを含むブロックについては、データが同じであれば、共通鍵Kを用いて暗号化処理CIPH
Kした結果も同じとなる。
【0031】
そこで、保護対象データのみを含むブロックであって、最初のブロックM
1からj番目(jは2以上の正数)のブロックM
jまでを基準ブロックとし、該基準ブロックの保護対象データを基準データとする。そして、基準データと、ブロックM
jまでの共通鍵Kを用いた暗号化処理CIPH
Kの結果、すなわち上記した通常処理によるMACの途中演算結果である暗号文との対応関係を示す参照テーブルが、参照テーブル記憶部35に記憶されている。基準データは平文であり、途中演算結果はその暗号文である。参照テーブル記憶部35が、参照テーブルを記憶する記憶部に相当する。
【0032】
本実施形態では、
図5に示すように、最終ブロックM
nのみに耐再送攻撃データが含まれている。保護対象データは、最初のブロックM
1から最終ブロックM
nまで含まれている。そして、(n−1)番目のブロックM
n−1までの保護対象データを基準データとしている。すなわち、保護対象データのみを含むすべてのブロックのデータを、基準データとしている。また、(n−1)番目のブロックM
n−1までの暗号化処理CIPH
Kの結果を、基準データに対応する途中演算結果としている。参照テーブルは、固定値として予め記憶されている。
【0033】
MAC生成部33は、メッセージ本体の基準データ、換言すれば基準データが格納されたブロックを抽出する。そして、抽出した基準データが参照テーブルに登録されているか探査する。受信したメッセージの基準データが参照テーブルに登録されている場合、対応する途中演算結果の暗号文を参照する。すなわち、この暗号文を(n−1)番目のブロックM
n−1までの暗号化処理CIPH
Kの結果として用いる。そして、参照した暗号文と、最終ブロックM
nとの排他的論理和を計算し、この排他的論理和を、共通鍵Kを用いて暗号化処理CIPH
Kする。以降は、通常処理と同じ処理を実行する。すなわち、暗号化処理CIPH
Kにより得られたビット列を、左からMACサイズであるTlenビット分、切り出す処理を実行し、得られた値TをMAC値とする。
【0034】
このように、参照暗号文を用いた処理では、参照テーブルに登録された基準データに対応する途中演算結果(暗号文)を参照することで、通常処理よりも少ない回数の演算で、MACを生成する。本実施形態では、2回の排他的論理和と1回の暗号化処理CIPH
Kにより、MACを生成する。
【0035】
判定部36は、受信したメッセージが、処理対象であり、且つ、MACによる認証対象である場合に、MAC生成部33により生成されたMACと、受信部32により受信されたメッセージのデータフィールドに設定されたMACとを比較する。そして、両MACが一致するか否かを判定する。
【0036】
さらにマイコン31は、メッセージを送信する機能部として、上記したMAC生成部33及び共通鍵記憶部34に加えて、メッセージ本体生成部37、フレーム生成部38、及び送信部39を備えている。
【0037】
メッセージ本体生成部37は、ECU30がメッセージを送信する際に、メッセージ本体を生成する。すなわち、保護対象データ及び耐再送攻撃データを生成する。MAC生成部33は、メッセージ本体生成部37により生成されたメッセージ本体について、上記した通常処理、すなわち共通鍵を用いた暗号化処理を実行することで、MACを生成する。
【0038】
フレーム生成部38は、データフレームのデータフィールドに、メッセージ本体生成部37により生成されたメッセージ本体及びMAC生成部33により生成されたMACを設定する。また、IDフィールドにIDを設定する、これら処理により、送信可能なデータフレーム、すなわちメッセージを生成する。そして、送信部39から、CANバス20に対してメッセージを送信する。
【0039】
次に、
図6に基づき、マイコン31が実行する受信処理について説明する。
【0040】
受信部32がメッセージを受信し、受信したメッセージが、処理対象であり、且つ、MACによる認証対象である場合に、以下に示す処理を実行する。
【0041】
先ずMAC生成部33が、受信したメッセージのデータフィールドに設定されたメッセージ本体から、基準データを抽出する(ステップS10)。次いで、MAC生成部33は、参照テーブルを探査し(ステップS20)、抽出した基準データが、参照テーブルに登録されているか否かを判定する(ステップS30)
ステップS30において参照テーブルに登録されていると判定すると、MAC生成部33は、参照テーブルから抽出した基準データに対応する暗号文、すなわち途中演算結果を参照する(ステップS40)。そして、上記した参照暗号文を用いた処理を実行して、MACを生成する(ステップS50)。
【0042】
本実施形態では、参照した暗号文を(n−1)番目のブロックM
n−1までの暗号化処理CIPH
Kの結果として用い、最終ブロックM
nとの排他的論理和を計算する。そして、この排他的論理和を共通鍵Kを用いて暗号化処理CIPH
Kし、暗号化処理CIPH
Kにより得られたビット列を、左からMACサイズであるTlenビット分、切り出す処理を実行してMACを生成する。
【0043】
一方、ステップS30において登録されていないと判定すると、MAC生成部33は、上記した通常処理を実行して、MACを生成する(ステップS60)。
【0044】
ステップS50又はステップS60の処理が終了すると、次いで判定部36が、ステップS50又はステップS60の処理により生成されたMACが、受信したメッセージのデータフィールドに設定されたMACと一致するか否かを判定する(ステップS70)。
【0045】
ステップS70において一致すると判定すると、判定部36は、受信したメッセージが正当なメッセージであると判断する(ステップS80)。このとき、判定部36は、たとえば正当であることを示す信号を出力する。これにより、ECU30は、受信したメッセージの保護対象データを用いた処理を実行することとなる。
【0046】
ステップS70において一致しないと判定すると、判定部36は、受信したメッセージが不正なメッセージであると判断する(ステップS90)。このとき、判定部36は、不正であることを示す信号を出力する。これにより、ECU30は、受信したメッセージを処理しない。そして、ステップS80又はステップS90の処理が終了すると、一連の受信処理を終了する。
【0047】
次に、本実施形態のECU30及び通信システム10の効果について説明する。
【0048】
上記したように、耐再送攻撃データは、メッセージ本体の末尾に設定されている。そこで、保護対象データのみを含むブロックであって、最初のブロックM
1からj番目のブロックM
jまでを基準ブロックとし、該基準ブロックの保護対象データを基準データとする。ECU30には、基準データと、ブロックM
jまでの共通鍵Kを用いた暗号化処理CIPH
Kの結果であるMACの途中演算結果(暗号文)との対応関係が、参照テーブルとして記憶されている。
【0049】
ECU30は、受信したメッセージの基準データが参照テーブルに登録されている場合、対応する途中演算結果の暗号文を参照する。すなわち、この暗号文をj番目のブロックM
jまでの暗号化処理CIPH
Kの結果として用いる。そして、参照した暗号文と、(j+1)番目のブロックM
j+1との排他的論理和を計算し、この排他的論理和を、共通鍵Kを用いて暗号化処理CIPH
Kする。以降は、通常処理と同じ処理を実行する。
【0050】
このように、本実施形態のECU30によれば、受信したメッセージの基準データが参照テーブルに登録されている場合に、参照テーブルの途中演算結果(暗号文)を参照するため、通常処理の排他的論理和及び暗号化処理CIPH
Kの一部を省略し、通常処理よりも少ない演算で、MACを生成することができる。したがって、メッセージの正当性を検証でき、且つ、処理負荷を低減することができる。
【0051】
また、保護対象データのみを含むすべてのブロックのデータを、基準データとしている。換言すれば、保護対象データのみを含むすべてのブロックを基準ブロックとしている。したがって、通常処理に対してより少ない演算で、MACを生成することができる。特に本実施形態では、n個のブロックのうち、最終ブロックM
nのみに耐再送攻撃データが含まれており、その他のブロックのデータを基準データとしている。したがって、2回の排他的論理和と1回の暗号化処理CIPH
Kにより、MACを生成することができる。このように、処理負荷を効果的に低減することができる。
【0052】
また、参照テーブルは、変更されない固定値として、予め参照テーブル記憶部35に記憶されている。これによっても、処理負荷を低減することができる。
【0053】
(第2実施形態)
本実施形態は、先行実施形態を参照できる。このため、先行実施形態に示した通信システム10及びECU30と共通する部分についての説明は省略する。
【0054】
図7に示すように、本実施形態のECU30は、参照テーブルを編集する編集部40をさらに備えている。編集部40は、マイコン31の機能部として構成されている。編集部40は、受信回数が所定値以上となった未登録の基準データ及び該基準データに対応する途中演算結果を、参照テーブル記憶部35の参照テーブルに追加登録する編集処理を実行する。参照テーブル記憶部35は、フラッシュメモリ等の書き換え可能な不揮発性メモリにて構成されている。
【0055】
編集部40は、たとえば初期的に参照テーブルに登録されていない基準データ及び該基準データに対応する途中演算結果を、上記基準データの受信回数(抽出回数)と関連付けて、たとえばRAMに記憶する。編集部40は、MAC生成部33から、抽出された基準データと、通常処理による基準データ分の途中演算結果を取得する。受信回数は、MAC生成部33が基準データを抽出し、MACを生成する毎に更新される。受信回数については、MAC生成部33側で計数してもよいし、編集部40側で計数してもよい。
【0056】
図8は、マイコン31が実行する受信処理を示している。ステップS65の処理が追加されている点が、先行実施形態(
図6)と異なる。
図8では、ステップS60の処理が終了した後に、参照テーブルを編集する処理を実行する(ステップS65)。このタイミングで、MAC生成部33からステップS10で抽出した基準データ及び該基準データに対応する途中演算結果を取得し、受信回数と関連付けてRAMに記憶する。そして、受信回数が所定値以上となった未登録の基準データ及び該基準データに対応する途中演算結果があれば、RAMから参照テーブルに追加登録する。そして、一連の処理を終了する。受信回数が所定値以上となった未登録の基準データがなければ、追加登録をせずに処理を終了する。
【0057】
たとえば
図9では、初期的に参照テーブルに登録されていない基準データとして、RAMに4つのデータが記憶されている。このうち、3つの基準データについては、すでに所定値である500回を超えており、参照テーブルに追加登録されている。ステップS65のタイミングで、未登録の基準データDDDDDDの受信回数が所定値に到達したため、基準データDDDDDD及び対応する途中演算結果WWWWWWを参照テーブルに追加登録する。
【0058】
このように、本実施形態によれば、参照テーブルに初期的に登録されていなくても、受信頻度が増加した基準データ及び対応する途中演算結果を、参照テーブルに追加登録することができる。したがって、途中で受信頻度が増加する場合でも、処理負荷を低減することができる。
【0059】
なお、編集処理を実行するタイミングは、
図8に示した例に限定されない。MAC生成部33から基準データ及び途中演算結果を取得可能なタイミングであればよい。したがって、ステップS60以降であればよい。たとえば、ステップS80又はステップS90の処理終了後に、編集処理を実行してもよい。
【0060】
RAMにおいて、参照テーブルに追加登録された基準データ及び対応する途中演算結果については、削除してもよい。
【0061】
初期的に参照テーブルに登録されている基準データ及び対応する途中演算結果についてもRAMに記憶させ、受信回数を更新するようにしてもよい。すなわち、ステップS10で抽出されるすべての基準データ及び該基準データに対応する途中演算結果をRAMに記憶するようにしてもよい。登録済みの基準データについては、MAC生成部33から、抽出された基準データ及び参照された途中演算結果を取得することとなる。
【0062】
(第3実施形態)
本実施形態は、先行実施形態を参照できる。このため、先行実施形態に示した通信システム10及びECU30と共通する部分についての説明は省略する。
【0063】
本実施形態において、編集部40は、所定期間におけるMAC生成部33による参照回数が所定値を下回る基準データ及び該基準データに対応する途中演算結果を、参照テーブルから削除する編集処理を実行する。参照回数は、MAC生成部33が参照テーブルから途中演算結果を参照する度に更新される。参照回数は、MAC生成部33によって計数される。そして、
図10に示すように、基準データに関連付けられて参照テーブルに記憶される。MAC生成部33は、例えばステップS40の処理において、途中演算結果(暗号文)を参照するとともに、参照した途中演算結果に対応する参照テーブルの参照回数をインクリメント(+1)する。
【0064】
編集部40は、記した所定期間ごと、すなわち所定の周期で編集処理を実行する。編集部40は、参照テーブルの参照回数が所定値を下回る基準データ及び該基準データに対応する途中演算結果があれば、参照テーブルから削除する。そして、参照テーブルの参照回数をクリアする。
図10では、基準データDDDDDDの受信回数が所定値である500回を下回ったため、基準データDDDDDD及び対応する途中演算結果WWWWWWを参照テーブルから削除する。また、他の基準データについて参照回数をクリアする。
【0065】
このように、本実施形態によれば、参照頻度が低下した基準データ及び対応する途中演算結果を、参照テーブルから削除することができる。これにより、参照テーブルの探査時間を短縮することができる。
【0066】
なお、所定の時間を所定期間としても良い。たとえば受信部32が受信するメッセージの総数が一定値に達する期間を所定期間としてもよい。
【0067】
(第4実施形態)
本実施形態は、先行実施形態を参照できる。このため、先行実施形態に示した通信システム10及びECU30と共通する部分についての説明は省略する。
【0068】
本実施形態において、編集部40は、MAC生成部33による参照回数の多い基準データを早く探し出すことができるように、参照回数に応じて参照テーブルを編集する処理を実行する。ここでも、参照回数は、MAC生成部33が参照テーブルから途中演算結果を参照する度に更新される。参照回数は、MAC生成部33によって計数される。そして、
図11に示すように、基準データに関連付けられて参照テーブルに記憶される。MAC生成部33は、例えばステップS40の処理において、途中演算結果(暗号文)を参照するとともに、参照した途中演算結果に対応する参照テーブルの参照回数をインクリメント(+1)する。
【0069】
編集部40は、たとえば所定の周期で、編集処理を実行する。編集部40は、参照テーブルの参照回数に応じて、基準データ及び対応する途中演算結果を並び替える。具体的には、
図11に示すように、参照回数の多い途中演算結果に対応する基準データほど探査順が早くなるように、基準データ及び対応する途中演算結果を並び替える。
【0070】
このように、本実施形態によれば、参照回数に応じて参照テーブルを編集することができる。これにより、参照テーブルの探査時間を短縮することができる。
【0071】
なお、編集処理を実行するタイミングは、上記した例に限定されない。MAC生成部33により参照テーブルの参照回数が更新される毎に、すなわち受信処理を実行する毎に、編集処理を実行してもよい。たとえばステップS80又はステップS90の処理が終了した後に、編集処理を実行してもよい。
【0072】
(第5実施形態)
本実施形態は、先行実施形態を参照できる。このため、先行実施形態に示した通信システム10及びECU30と共通する部分についての説明は省略する。
【0073】
本実施形態では、受信したメッセージの基準データが所定長さ以下の場合、MAC生成部33が、参照テーブルを探査することなく、通常処理によってMACを生成する。
【0074】
図12は、マイコン31が実行する受信処理を示している。ステップS15の処理が追加されている点が、先行実施形態(
図6)と異なる。
図12では、ステップS10の処理が終了した後に、MAC生成部33が、抽出した基準データが所定長さ以上であるか否かを判定する(ステップS15)。
【0075】
ここで、基準データが所定長さ以上であると、途中演算結果(暗号文)を参照したほうが通常処理よりも処理負荷が低くなる。一方、基準データが所定長さ未満であると、途中演算結果を参照したほうが通常処理よりも処理負荷が高くなる。このように、処理負荷を考慮して所定長さが設定され、予めメモリに記憶されている。
【0076】
ステップS15において所定長さ以上であると判定すると、MAC生成部33は、ステップS20以降の処理を実行する。すなわち、参照テーブルを探査し、抽出した基準データが登録されている場合に、途中演算結果(暗号文)を参照してMACを生成する。基準データが登録されていない場合には、通常処理を実行してMACを生成する。
【0077】
一方、ステップS15において所定長さ未満であると判定すると、ステップS20及びステップS30の処理を実行することなく、ステップS60の処理、すなわち通常処理を実行してMACを生成する。
【0078】
このように、本実施形態によれば、基準データが長い場合に参照暗号文による処理を実行し、基準データが短い場合に通常処理を実行する。このように、基準データの長さに応じてMAC生成の処理を切り替えることができる。
【0079】
この明細書の開示は、例示された実施形態に制限されない。開示は、例示された実施形態と、それらに基づく当業者による変形態様を包含する。たとえば、開示は、実施形態において示された要素の組み合わせに限定されない。開示は、多様な組み合わせによって実施可能である。開示される技術的範囲は、実施形態の記載に限定されない。開示されるいくつかの技術的範囲は、特許請求の範囲の記載によって示され、さらに特許請求の範囲の記載と均等の意味及び範囲内でのすべての変更を含むものと解されるべきである。
【0080】
受信部32、MAC生成部33、共通鍵記憶部34、参照テーブル記憶部35、判定部36、メッセージ本体生成部37、フレーム生成部38、送信部39、及び編集部40が、マイコン31の機能部として構成される例を示したが、これに限定されない。実体的なメモリ装置に記録されたソフトウェア及びそれを実行するコンピュータ、ソフトウェアのみ、ハードウェアのみ、あるいはそれらの組合せによって提供することができる。ハードウェアである回路によって提供される場合、それは多数の論理回路を含むデジタル回路、またはアナログ回路によって提供することができる。
【0081】
しかしながら、MAC生成部33は、通常処理時に、排他的論理和及び暗号化処理CIPH
Kをそれぞれ複数回実行する。したがって、ハードウェアで構成すると、コストが高くなる。これに対し、本実施形態に示すように、マイコン31の機能部とすると、コストを低減しつつ、処理負荷を低減することができる。