特許第6958114号(P6958114)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーの特許一覧

<>
  • 特許6958114-電子制御装置 図000002
  • 特許6958114-電子制御装置 図000003
  • 特許6958114-電子制御装置 図000004
  • 特許6958114-電子制御装置 図000005
  • 特許6958114-電子制御装置 図000006
  • 特許6958114-電子制御装置 図000007
  • 特許6958114-電子制御装置 図000008
  • 特許6958114-電子制御装置 図000009
  • 特許6958114-電子制御装置 図000010
  • 特許6958114-電子制御装置 図000011
  • 特許6958114-電子制御装置 図000012
  • 特許6958114-電子制御装置 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6958114
(24)【登録日】2021年10月11日
(45)【発行日】2021年11月2日
(54)【発明の名称】電子制御装置
(51)【国際特許分類】
   H04L 9/32 20060101AFI20211021BHJP
   G09C 1/00 20060101ALI20211021BHJP
【FI】
   H04L9/00 675A
   G09C1/00 640D
【請求項の数】7
【全頁数】15
(21)【出願番号】特願2017-161571(P2017-161571)
(22)【出願日】2017年8月24日
(65)【公開番号】特開2019-41228(P2019-41228A)
(43)【公開日】2019年3月14日
【審査請求日】2020年7月17日
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】100106149
【弁理士】
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【弁理士】
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【弁理士】
【氏名又は名称】久保 貴則
(72)【発明者】
【氏名】増江 俊行
【審査官】 児玉 崇晶
(56)【参考文献】
【文献】 特開2013−115570(JP,A)
【文献】 国際公開第2013/065241(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
他の装置とともにネットワークに接続される電子制御装置であって、
前記他の装置から送信され、保護対象である保護対象データに続いて再送攻撃を防ぐためのデータが設定されたメッセージ本体と、前記メッセージ本体に基づいて算出されたメッセージ認証コードと、を含むメッセージを受信する受信部(32)と、
前記受信部により受信された前記メッセージのうちの前記メッセージ本体を、一定の長さを有する複数のブロックに分割し、共通鍵を用いた演算によりメッセージ認証コードを生成する生成部(33)と、
前記生成部により生成された前記メッセージ認証コードと、前記受信部により受信された前記メッセージに含まれる前記メッセージ認証コードとが一致するか否かを判定する判定部(36)と、
前記保護対象データのみを含むブロックであって、最初のブロックからj番目(jは2以上の正数)のブロックまでの前記保護対象データである基準データと、前記基準データを前記共通鍵によって暗号化してなり、前記メッセージ認証コードの演算の途中結果である暗号文との対応関係を示す参照テーブルを記憶する記憶部(35)と、を備え、
前記生成部は、前記参照テーブルを探査して、前記受信部により受信された前記メッセージの基準データと一致するデータが前記参照テーブルに登録されていると判定すると、前記基準データに対応する暗号文を前記参照テーブルから参照して、参照した前記暗号文と、前記共通鍵と、前記参照テーブルに登録されていない残りのブロックのデータとにより、前記メッセージ認証コードを生成するものであり、
前記受信部により受信された前記メッセージの基準データが所定長さ未満の場合、前記生成部は、参照した前記暗号文を用いて前記メッセージ認証コードを生成したほうが演算によって前記メッセージ認証コードを生成するよりも処理負荷が高くなるとみなして、前記参照テーブルを探査することなく、演算によって前記メッセージ認証コードを生成する電子制御装置。
【請求項2】
前記基準データは、前記保護対象データのみを含むすべてのブロックの前記保護対象データである請求項1に記載の電子制御装置。
【請求項3】
前記参照テーブルは、固定値として前記記憶部に予め記憶されている請求項1又は請求項2に記載の電子制御装置。
【請求項4】
前記参照テーブルを編集する編集部(40)をさらに備える請求項1〜3いずれか1項に記載の電子制御装置。
【請求項5】
前記編集部は、受信回数が所定値以上の基準データ及び該基準データに対応する暗号文を、前記参照テーブルに追加登録する請求項4に記載の電子制御装置。
【請求項6】
前記編集部は、所定期間における参照回数が所定値を下回る基準データ及び該基準データに対応する暗号文を、前記参照テーブルから削除する請求項4に記載の電子制御装置。
【請求項7】
前記編集部は、前記生成部が参照回数の多い基準データを早く探し出すことができるように、前記参照回数に応じて前記参照テーブルを編集する請求項4に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
この明細書における開示は、他の装置とともにネットワークに接続される電子制御装置であって、に関する。
【背景技術】
【0002】
車載ネットワークとしてCAN(Controller Area Network)が採用されている。CANは、登録商標である。CANにおいて通信されるメッセージには、送信元や宛先の識別情報が含まれていない。そこで、メッセージの改竄を防ぐためにメッセージ認証コード(Message Authentication Code;MAC)を用い、さらに、CANに接続された不正機器からの再送攻撃(リプレイ攻撃)を防ぐ方法が提案されている(特許文献1参照)。特許文献1に開示された電子制御装置(通信装置)では、CMAC(Cipher based MAC)等のアルゴリズムによって、メッセージ認証コードを生成する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2017−38144号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
CMAC等のブロック暗号ベース認証アルゴリズムを用いる場合、データフィールドには、メッセージ本体と、上記したメッセージ認証コードが設定される。また、再送攻撃を防ぐために、メッセージ本体として、制御データなどの保護対象である保護対象データと、再送攻撃を防ぐためのデータ(以下、耐再送攻撃データと示す)が設定される。耐再送攻撃データは、たとえばメッセージ本体の末尾に設定される。耐再送攻撃データは、たとえば送受信の双方で、決まった規則で更新されるデータである。これにより、メッセージ本体の保護対象データが同じでも、メッセージ認証コードを異ならせることができる。
【0005】
電子制御装置は、上記メッセージを受信すると、メッセージにおけるメッセージ本体を一定の長さを有する複数のブロックに分割する。そして、共通鍵を用いた演算によりメッセージ認証コードを生成し、生成したメッセージ認証コードが受信したメッセージのメッセージ認証コードと一致するか否かを判定する。
【0006】
このように、メッセージ本体を複数のブロックに分割し、共通鍵による暗号化処理を行うため、メッセージ認証コードの作成、ひいてはメッセージの正当性の検証に時間がかかるという問題がある。特にメッセージ(メッセージ本体)が長いほど、処理負荷が増加してしまう。
【0007】
本開示はこのような課題に鑑みてなされたものであり、メッセージの正当性を検証でき、且つ、処理負荷を低減できる電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本開示は、上記目的を達成するために以下の技術的手段を採用する。なお、括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、技術的範囲を限定するものではない。
【0009】
本開示のひとつは、他の装置とともにネットワークに接続される電子制御装置であって、
他の装置から送信され、保護対象である保護対象データに続いて再送攻撃を防ぐためのデータが設定されたメッセージ本体と、メッセージ本体に基づいて算出されたメッセージ認証コードと、を含むメッセージを受信する受信部(32)と、
受信部により受信されたメッセージのうちのメッセージ本体を、一定の長さを有する複数のブロックに分割し、共通鍵を用いた演算によりメッセージ認証コードを生成する生成部(33)と、
生成部により生成されたメッセージ認証コードと、受信部により受信されたメッセージに含まれるメッセージ認証コードとが一致するか否かを判定する判定部(36)と、
保護対象データのみを含むブロックであって、最初のブロックからj番目(jは2以上の正数)のブロックまでの保護対象データである基準データと、基準データを共通鍵によって暗号化してなり、メッセージ認証コードの演算の途中結果である暗号文との対応関係を示す参照テーブルを記憶する記憶部(35)と、を備え、
生成部は、参照テーブルを探査して、受信部により受信されたメッセージの基準データと一致するデータが参照テーブルに登録されていると判定すると、基準データに対応する暗号文を参照テーブルから参照して、参照した暗号文と、共通鍵と、参照テーブルに登録されていない残りのブロックのデータとにより、メッセージ認証コードを生成するものであり、
受信部により受信されたメッセージの基準データが所定長さ未満の場合、生成部は、参照した暗号文を用いてメッセージ認証コードを生成したほうが演算によってメッセージ認証コードを生成するよりも処理負荷が高くなるとみなして、参照テーブルを探査することなく、演算によってメッセージ認証コードを生成する
【0010】
再送攻撃を防ぐためのデータがメッセージ本体の末尾にあるため、基準データが同じであれば、メッセージ認証コードの演算の途中結果も同じとなる。この電子制御装置では、基準データと、該基準データに対応する暗号文との対応関係を示す参照テーブルが記憶されている。そして、参照テーブルを探査し、メッセージ中の基準データと一致するデータが参照テーブルに登録されている場合に、基準データに対応する暗号文を参照テーブルから参照して、メッセージ認証コードを生成する。
【0011】
このように、参照テーブルから暗号文を参照するため、共通鍵を用いた暗号化処理の演算の一部を省略することができる。したがって、メッセージの正当性を検証でき、且つ、処理負荷を低減できる。
【図面の簡単な説明】
【0012】
図1】第1実施形態の電子制御装置を備える通信システムを示す図である。
図2】データフレームの構成を示す図である。
図3】電子制御装置を示す図である。
図4】MAC生成の通常処理を説明する図である。
図5】参照テーブルを説明する図である。
図6】受信処理を示すフローチャートである。
図7】第2実施形態の電子制御装置を示す図である。
図8】受信処理を示すフローチャートである。
図9】編集部が実行する処理を示す図である。
図10】第3実施形態の電子制御装置において、編集部が実行する処理を示す図である。
図11】第4実施形態の電子制御装置において、編集部が実行する処理を示す図である。
図12】第5実施形態の電子制御装置において、受信処理を示すフローチャートである。
【発明を実施するための形態】
【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、M、…、Mに分割する。以下、一定の長さを暗号長と示す。Mが暗号長を満たす場合、図4に示すように、Mと共通鍵Kとの排他的論理和(XOR)を、最終ブロックMとする。一方、Mが暗号長に満たない場合、図示を省略するが、空きビットに先頭を1、以降を0とするデータをパディング(付け足し)する。そして、パディングしたMと共通鍵Kとの排他的論理和(XOR)を、最終ブロックMとする。
【0028】
なお、図4は、以下の公知の先行文献より引用した。
NIST, Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication, Special Publication 800-38B.
MAC生成部33は、最初(1番目)のブロックMから、共通鍵Kを用いて暗号化処理CIPHを実行する。i番目(iは2以上の正数)のブロックについては、(i−1)番目の暗号化処理CIPHの結果との排他的論理和を計算し、この排他的論理和を共通鍵Kを用いて暗号化処理CIPHする。図5に示す例では、最終ブロックMと(n−1)番目のブロックMn−1の暗号化処理CIPHの結果との排他的論理和を計算し、この排他的論理和を共通鍵Kを用いて暗号化処理CIPHする。そして、暗号化処理CIPHにより得られたビット列を、左からMACサイズであるTlenビット分、切り出す処理を実行し、得られた値TをMAC値とする。通常処理では、ブロック数と同じn回分の暗号化処理CIPHを実行して、MACを生成する。
【0029】
より詳しくは、MAC生成部33が、Mが暗号長を満たす場合に、共通鍵Kより算出される副鍵K1を用いてMACを生成する。Mが暗号長に満たない場合に、共通鍵Kより算出される副鍵K2を用いてMACを生成する。しかしながら、本実施形態では、便宜上、副鍵と共通鍵との区別をせず、単に共通鍵として記載する。このため、図4においても、副鍵K1ではなく共通鍵Kと示している。
【0030】
次に、参照暗号文を用いた処理について説明する。上記したように、データフィールドには、メッセージ本体の末尾に耐再送攻撃データが設定されている。したがって、少なくとも最終ブロックMには、耐再送攻撃データが含まれる。また、耐再送攻撃データは、所定の規則で更新されるデータである。したがって、耐再送攻撃データを含むブロックを共通鍵Kを用いて暗号化処理CIPHした結果は、常に同じとはならない。一方、保護対象データのみを含むブロックについては、データが同じであれば、共通鍵Kを用いて暗号化処理CIPHした結果も同じとなる。
【0031】
そこで、保護対象データのみを含むブロックであって、最初のブロックMからj番目(jは2以上の正数)のブロックMまでを基準ブロックとし、該基準ブロックの保護対象データを基準データとする。そして、基準データと、ブロックMまでの共通鍵Kを用いた暗号化処理CIPHの結果、すなわち上記した通常処理によるMACの途中演算結果である暗号文との対応関係を示す参照テーブルが、参照テーブル記憶部35に記憶されている。基準データは平文であり、途中演算結果はその暗号文である。参照テーブル記憶部35が、参照テーブルを記憶する記憶部に相当する。
【0032】
本実施形態では、図5に示すように、最終ブロックMのみに耐再送攻撃データが含まれている。保護対象データは、最初のブロックMから最終ブロックMまで含まれている。そして、(n−1)番目のブロックMn−1までの保護対象データを基準データとしている。すなわち、保護対象データのみを含むすべてのブロックのデータを、基準データとしている。また、(n−1)番目のブロックMn−1までの暗号化処理CIPHの結果を、基準データに対応する途中演算結果としている。参照テーブルは、固定値として予め記憶されている。
【0033】
MAC生成部33は、メッセージ本体の基準データ、換言すれば基準データが格納されたブロックを抽出する。そして、抽出した基準データが参照テーブルに登録されているか探査する。受信したメッセージの基準データが参照テーブルに登録されている場合、対応する途中演算結果の暗号文を参照する。すなわち、この暗号文を(n−1)番目のブロックMn−1までの暗号化処理CIPHの結果として用いる。そして、参照した暗号文と、最終ブロックMとの排他的論理和を計算し、この排他的論理和を、共通鍵Kを用いて暗号化処理CIPHする。以降は、通常処理と同じ処理を実行する。すなわち、暗号化処理CIPHにより得られたビット列を、左からMACサイズであるTlenビット分、切り出す処理を実行し、得られた値TをMAC値とする。
【0034】
このように、参照暗号文を用いた処理では、参照テーブルに登録された基準データに対応する途中演算結果(暗号文)を参照することで、通常処理よりも少ない回数の演算で、MACを生成する。本実施形態では、2回の排他的論理和と1回の暗号化処理CIPHにより、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)番目のブロックMn−1までの暗号化処理CIPHの結果として用い、最終ブロックMとの排他的論理和を計算する。そして、この排他的論理和を共通鍵Kを用いて暗号化処理CIPHし、暗号化処理CIPHにより得られたビット列を、左から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からj番目のブロックMまでを基準ブロックとし、該基準ブロックの保護対象データを基準データとする。ECU30には、基準データと、ブロックMまでの共通鍵Kを用いた暗号化処理CIPHの結果であるMACの途中演算結果(暗号文)との対応関係が、参照テーブルとして記憶されている。
【0049】
ECU30は、受信したメッセージの基準データが参照テーブルに登録されている場合、対応する途中演算結果の暗号文を参照する。すなわち、この暗号文をj番目のブロックMまでの暗号化処理CIPHの結果として用いる。そして、参照した暗号文と、(j+1)番目のブロックMj+1との排他的論理和を計算し、この排他的論理和を、共通鍵Kを用いて暗号化処理CIPHする。以降は、通常処理と同じ処理を実行する。
【0050】
このように、本実施形態のECU30によれば、受信したメッセージの基準データが参照テーブルに登録されている場合に、参照テーブルの途中演算結果(暗号文)を参照するため、通常処理の排他的論理和及び暗号化処理CIPHの一部を省略し、通常処理よりも少ない演算で、MACを生成することができる。したがって、メッセージの正当性を検証でき、且つ、処理負荷を低減することができる。
【0051】
また、保護対象データのみを含むすべてのブロックのデータを、基準データとしている。換言すれば、保護対象データのみを含むすべてのブロックを基準ブロックとしている。したがって、通常処理に対してより少ない演算で、MACを生成することができる。特に本実施形態では、n個のブロックのうち、最終ブロックMのみに耐再送攻撃データが含まれており、その他のブロックのデータを基準データとしている。したがって、2回の排他的論理和と1回の暗号化処理CIPHにより、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をそれぞれ複数回実行する。したがって、ハードウェアで構成すると、コストが高くなる。これに対し、本実施形態に示すように、マイコン31の機能部とすると、コストを低減しつつ、処理負荷を低減することができる。
【符号の説明】
【0082】
10…通信システム、
20…CANバス、
30…ECU(電子制御装置)、
31…マイコン、
32…受信部、
33…MAC生成部、
34…共通鍵記憶部、
35…参照テーブル記憶部、
36…判定部、
37…メッセージ本体生成部、
38…フレーム生成部、
39…送信部、
40…編集部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12