(57)【要約】【課題】メッセージの正当性を検証でき、且つ、処理負荷を低減できる電子制御装置を提供すること。【解決手段】ＥＣＵ３０のＭＡＣ生成部３３は、受信したメッセージのメッセージ本体を複数のブロックに分割し、共通鍵を用いてＭＡＣを生成する。判定部３６は、生成されたＭＡＣと受信したメッセージ中のＭＡＣが一致するか判定する。参照テーブル記憶部３５は、保護対象データのみを含むブロックであって、最初のブロックからｊ番目のブロックまでの基準データと、基準データを共通鍵によって暗号化してなり、ＭＡＣの途中演算結果である暗号文との対応関係を示す参照テーブルを記憶する。ＭＡＣ生成部は、参照テーブルを探査し、基準データと一致するデータが登録されていると、基準データに対応する暗号文を参照テーブルから参照し、参照した暗号文、共通鍵、及び参照テーブルに登録されていない残りのブロックのデータにより、ＭＡＣを生成する。【選択図】図３
2019041228.tif 000002
【特許請求の範囲】
【請求項１】
他の装置とともにネットワークに接続される電子制御装置であって、
前記他の装置から送信され、保護対象である保護対象データに続いて再送攻撃を防ぐためのデータが設定されたメッセージ本体と、前記メッセージ本体に基づいて算出されたメッセージ認証コードと、を含むメッセージを受信する受信部（３２）と、
前記受信部により受信された前記メッセージのうちの前記メッセージ本体を、一定の長さを有する複数のブロックに分割し、共通鍵を用いた演算によりメッセージ認証コードを生成する生成部（３３）と、
前記生成部により生成された前記メッセージ認証コードと、前記受信部により受信された前記メッセージに含まれる前記メッセージ認証コードとが一致するか否かを判定する判定部（３６）と、
前記保護対象データのみを含むブロックであって、最初のブロックからｊ番目（ｊは２以上の正数）のブロックまでの前記保護対象データである基準データと、前記基準データを前記共通鍵によって暗号化してなり、前記メッセージ認証コードの演算の途中結果である暗号文との対応関係を示す参照テーブルを記憶する記憶部（３５）と、
を備え、
前記生成部は、前記参照テーブルを探査して、前記受信部により受信された前記メッセージの基準データと一致するデータが前記参照テーブルに登録されていると判定すると、前記基準データに対応する暗号文を前記参照テーブルから参照して、参照した前記暗号文と、前記共通鍵と、前記参照テーブルに登録されていない残りのブロックのデータとにより、前記メッセージ認証コードを生成する電子制御装置。
【請求項２】
前記基準データは、前記保護対象データのみを含むすべてのブロックの前記保護対象データである請求項１に記載の電子制御装置。
【請求項３】
前記参照テーブルは、固定値として前記記憶部に予め記憶されている請求項１又は請求項２に記載の電子制御装置。
【請求項４】
前記参照テーブルを編集する編集部（４０）をさらに備える請求項１〜３いずれか１項に記載の電子制御装置。
【請求項５】
前記編集部は、受信回数が所定値以上の基準データ及び該基準データに対応する暗号文を、前記参照テーブルに追加登録する請求項４に記載の電子制御装置。
【請求項６】
前記編集部は、所定期間における参照回数が所定値を下回る基準データ及び該基準データに対応する暗号文を、前記参照テーブルから削除する請求項４に記載の電子制御装置。
【請求項７】
前記編集部は、前記生成部が参照回数の多い基準データを早く探し出すことができるように、前記参照回数に応じて前記参照テーブルを編集する請求項４に記載の電子制御装置。
【請求項８】
前記受信部により受信された前記メッセージの基準データが所定長さ未満の場合、前記生成部は、前記参照テーブルを探査することなく、演算によって前記メッセージ認証コードを生成する請求項１〜７いずれか１項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この明細書における開示は、他の装置とともにネットワークに接続される電子制御装置であって、に関する。
【背景技術】
【０００２】
車載ネットワークとしてＣＡＮ（Controller Area Network）が採用されている。ＣＡＮは、登録商標である。ＣＡＮにおいて通信されるメッセージには、送信元や宛先の識別情報が含まれていない。そこで、メッセージの改竄を防ぐためにメッセージ認証コード（Message Authentication Code;ＭＡＣ）を用い、さらに、ＣＡＮに接続された不正機器からの再送攻撃（リプレイ攻撃）を防ぐ方法が提案されている（特許文献１参照）。特許文献１に開示された電子制御装置（通信装置）では、ＣＭＡＣ（Cipher based MAC）等のアルゴリズムによって、メッセージ認証コードを生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−３８１４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＣＭＡＣ等のブロック暗号ベース認証アルゴリズムを用いる場合、データフィールドには、メッセージ本体と、上記したメッセージ認証コードが設定される。また、再送攻撃を防ぐために、メッセージ本体として、制御データなどの保護対象である保護対象データと、再送攻撃を防ぐためのデータ（以下、耐再送攻撃データと示す）が設定される。耐再送攻撃データは、たとえばメッセージ本体の末尾に設定される。耐再送攻撃データは、たとえば送受信の双方で、決まった規則で更新されるデータである。これにより、メッセージ本体の保護対象データが同じでも、メッセージ認証コードを異ならせることができる。
【０００５】
電子制御装置は、上記メッセージを受信すると、メッセージにおけるメッセージ本体を一定の長さを有する複数のブロックに分割する。そして、共通鍵を用いた演算によりメッセージ認証コードを生成し、生成したメッセージ認証コードが受信したメッセージのメッセージ認証コードと一致するか否かを判定する。
【０００６】
このように、メッセージ本体を複数のブロックに分割し、共通鍵による暗号化処理を行うため、メッセージ認証コードの作成、ひいてはメッセージの正当性の検証に時間がかかるという問題がある。特にメッセージ（メッセージ本体）が長いほど、処理負荷が増加してしまう。
【０００７】
本開示はこのような課題に鑑みてなされたものであり、メッセージの正当性を検証でき、且つ、処理負荷を低減できる電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本開示は、上記目的を達成するために以下の技術的手段を採用する。なお、括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、技術的範囲を限定するものではない。
【０００９】
本開示のひとつは、他の装置とともにネットワークに接続される電子制御装置であって、
他の装置から送信され、保護対象である保護対象データに続いて再送攻撃を防ぐためのデータが設定されたメッセージ本体と、メッセージ本体に基づいて算出されたメッセージ認証コードと、を含むメッセージを受信する受信部（３２）と、
受信部により受信されたメッセージのうちのメッセージ本体を、一定の長さを有する複数のブロックに分割し、共通鍵を用いた演算によりメッセージ認証コードを生成する生成部（３３）と、
生成部により生成されたメッセージ認証コードと、受信部により受信されたメッセージに含まれるメッセージ認証コードとが一致するか否かを判定する判定部（３６）と、
保護対象データのみを含むブロックであって、最初のブロックからｊ番目（ｊは２以上の正数）のブロックまでの保護対象データである基準データと、基準データを共通鍵によって暗号化してなり、メッセージ認証コードの演算の途中結果である暗号文との対応関係を示す参照テーブルを記憶する記憶部（３５）と、
を備え、
生成部は、参照テーブルを探査して、受信部により受信されたメッセージの基準データと一致するデータが参照テーブルに登録されていると判定すると、基準データに対応する暗号文を参照テーブルから参照して、参照した暗号文と、共通鍵と、参照テーブルに登録されていない残りのブロックのデータとにより、メッセージ認証コードを生成する。
【００１０】
再送攻撃を防ぐためのデータがメッセージ本体の末尾にあるため、基準データが同じであれば、メッセージ認証コードの演算の途中結果も同じとなる。この電子制御装置では、基準データと、該基準データに対応する暗号文との対応関係を示す参照テーブルが記憶されている。そして、参照テーブルを探査し、メッセージ中の基準データと一致するデータが参照テーブルに登録されている場合に、基準データに対応する暗号文を参照テーブルから参照して、メッセージ認証コードを生成する。
【００１１】
このように、参照テーブルから暗号文を参照するため、共通鍵を用いた暗号化処理の演算の一部を省略することができる。したがって、メッセージの正当性を検証でき、且つ、処理負荷を低減できる。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態の電子制御装置を備える通信システムを示す図である。
【図２】データフレームの構成を示す図である。
【図３】電子制御装置を示す図である。
【図４】ＭＡＣ生成の通常処理を説明する図である。
【図５】参照テーブルを説明する図である。
【図６】受信処理を示すフローチャートである。
【図７】第２実施形態の電子制御装置を示す図である。
【図８】受信処理を示すフローチャートである。
【図９】編集部が実行する処理を示す図である。
【図１０】第３実施形態の電子制御装置において、編集部が実行する処理を示す図である。
【図１１】第４実施形態の電子制御装置において、編集部が実行する処理を示す図である。
【図１２】第５実施形態の電子制御装置において、受信処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
図面を参照しながら、複数の実施形態を説明する。複数の実施形態において、機能的に及び／又は構造的に対応する部分には同一の参照符号を付与する。
【００１４】
（第１実施形態）
先ず、図１に基づき、本実施形態の電子制御装置を備える通信システムについて説明する。
【００１５】
図１に示す通信システム１０は、ＣＡＮバス２０及び複数の電子制御装置（Electronic Control Unit）３０を備えている。ＣＡＮは、バス型ネットワークを採用したシリアル通信プロトコルである。以下、電子制御装置３０を、ＥＣＵ３０と示す。複数のＥＣＵ３０（ノード）は、ＣＡＮバス２０に接続されている。本実施形態では、車両に搭載された複数のＥＣＵ３０が、ＣＡＮバス２０にノードとして接続されて、車載ネットワークが構築されている。
【００１６】
ＥＣＵ３０は、メッセージの正当性をメッセージ認証コードに基づいて判断する。以下、メッセージ認証コードを、ＭＡＣと示す。
【００１７】
次に、図２に基づき、データフレームについて説明する。
【００１８】
図２に示すように、データフレームは、ＩＤフィールドやデータフィールドを含んでいる。それ以外にも、図示しないＣＲＣフィールドなどを含んでいる。メッセージは、送信可能な状態のデータフレームに相当する。ＩＤフィールドには、メッセージの種類及び優先度を示す識別情報であるＩＤが設定される。たとえば受信側のＥＣＵ３０は、ＩＤを参照することで、自身が処理する必要のあるデータか否かを判断する。
【００１９】
データフィールドには、メッセージ本体及びＭＡＣが設定される。メッセージ本体は、保護対象データと、再送攻撃（リプレイ攻撃）を防ぐための耐再送攻撃データを含む。保護対象データは、車両の特定の機能、たとえば制御機能や監視機能に関する情報である。すなわち、保護すべき情報である。保護対象データとして、たとえばエンジン回転数に関する情報や、アクチュエータの駆動を指示する情報などがある。
【００２０】
耐再送攻撃データは、保護対象データに続いて設定される。耐再送攻撃データは、メッセージ本体の末尾に設定される。耐再送攻撃データは、送受信の双方で決まった規則で更新されるデータである。耐再送攻撃データは、送受信で同様に更新される。本実施形態では、ＣＡＮバス２０に接続された複数のＥＣＵ３０において、決まった規則で更新される。このため、メッセージ本体の保護対象データが同じでも、ＭＡＣを異ならせることができる。
【００２１】
具体的には、ＣＡＮバス２０に接続された不正機器によりメッセージが盗聴され、後にこのメッセージがＣＡＮバス２０に再送された場合、再送されたメッセージの耐再送データは盗聴時に設定されたものである。再送時には、ＥＣＵ３０において耐再送攻撃データが更新されており、これによりＭＡＣの値が異なるため、再送されたメッセージが不正メッセージであると判断することができる。
【００２２】
次に、図３〜図５に基づき、本実施形態のＥＣＵ３０（電子制御装置）について説明する。以下に説明する構成は、複数のＥＣＵ３０で同じとなっている。
【００２３】
図３に示すように、ＥＣＵ３０は、マイコン３１を有している。マイコン３１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、フラッシュメモリ、レジスタ、及び入出力インターフェースなどを備えて構成されている。マイコン３１において、ＣＰＵが、ＲＡＭやレジスタの一時記憶機能を利用しつつ、ＲＯＭに予め記憶された制御プログラムにしたがって、所定の処理を実行する。マイコン３１は、ソフトウェア制御により、所定の処理を実行する。マイコン３１は、受信したメッセージの正当性を検証する機能部として、受信部３２、ＭＡＣ生成部３３、共通鍵記憶部３４、参照テーブル記憶部３５、及び判定部３６を備えている。
【００２４】
受信部３２は、他のＥＣＵ３０から送信されたメッセージを受信する。受信部３２は、受信したメッセージのＩＤに基づいて、受信したＥＣＵ３０（自身）の処理対象であり、且つ、ＭＡＣによる認証が必要な対象であるかを判断する。メッセージを送信した他のＥＣＵ３０が、他の装置に相当する。
【００２５】
ＭＡＣ生成部３３は、受信したメッセージが、処理対象であり、且つ、ＭＡＣによる認証対象である場合に、共通鍵を用いてＭＡＣを生成する。ＭＡＣ生成部３３が、ＭＡＣを生成する生成部に相当する。共通鍵は、送受信の装置間で共通な暗号鍵である。共通鍵は、共通鍵記憶部３４に記憶されている。ＭＡＣ生成部３３は、条件に応じて、通常処理によるＭＡＣ生成と、参照暗号文を用いたＭＡＣ生成とを切り替えて実行する。
【００２６】
先ず、通常処理について説明する。ＭＡＣ生成部３３は、ブロック暗号ベース認証アルゴリズムを適用してＭＡＣを生成する。本実施形態では、ＣＭＡＣ（Cipher based MAC）を適用する。通常処理は、ＣＭＡＣとして知られた手法である。
【００２７】
ＭＡＣ生成部３３は、先ずメッセージ本体を、図４に示すように一定の長さ（所定ビット）を有する複数のブロックＭ１、Ｍ２、…、Ｍｎ＊に分割する。以下、一定の長さを暗号長と示す。Ｍｎ＊が暗号長を満たす場合、図４に示すように、Ｍｎ＊と共通鍵Ｋとの排他的論理和（ＸＯＲ）を、最終ブロックＭｎとする。一方、Ｍｎ＊が暗号長に満たない場合、図示を省略するが、空きビットに先頭を１、以降を０とするデータをパディング（付け足し）する。そして、パディングしたＭｎ＊と共通鍵Ｋとの排他的論理和（ＸＯＲ）を、最終ブロックＭｎとする。
【００２８】
なお、図４は、以下の公知の先行文献より引用した。
NIST, Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication, Special Publication 800-38B.
ＭＡＣ生成部３３は、最初（１番目）のブロックＭ１から、共通鍵Ｋを用いて暗号化処理ＣＩＰＨＫを実行する。ｉ番目（ｉは２以上の正数）のブロックについては、（ｉ−１）番目の暗号化処理ＣＩＰＨＫの結果との排他的論理和を計算し、この排他的論理和を共通鍵Ｋを用いて暗号化処理ＣＩＰＨＫする。図５に示す例では、最終ブロックＭｎと（ｎ−１）番目のブロックＭｎ−１の暗号化処理ＣＩＰＨＫの結果との排他的論理和を計算し、この排他的論理和を共通鍵Ｋを用いて暗号化処理ＣＩＰＨＫする。そして、暗号化処理ＣＩＰＨＫにより得られたビット列を、左からＭＡＣサイズであるＴｌｅｎビット分、切り出す処理を実行し、得られた値ＴをＭＡＣ値とする。通常処理では、ブロック数と同じｎ回分の暗号化処理ＣＩＰＨＫを実行して、ＭＡＣを生成する。
【００２９】
より詳しくは、ＭＡＣ生成部３３が、Ｍｎ＊が暗号長を満たす場合に、共通鍵Ｋより算出される副鍵Ｋ１を用いてＭＡＣを生成する。Ｍｎ＊が暗号長に満たない場合に、共通鍵Ｋより算出される副鍵Ｋ２を用いてＭＡＣを生成する。しかしながら、本実施形態では、便宜上、副鍵と共通鍵との区別をせず、単に共通鍵として記載する。このため、図４においても、副鍵Ｋ１ではなく共通鍵Ｋと示している。
【００３０】
次に、参照暗号文を用いた処理について説明する。上記したように、データフィールドには、メッセージ本体の末尾に耐再送攻撃データが設定されている。したがって、少なくとも最終ブロックＭｎには、耐再送攻撃データが含まれる。また、耐再送攻撃データは、所定の規則で更新されるデータである。したがって、耐再送攻撃データを含むブロックを共通鍵Ｋを用いて暗号化処理ＣＩＰＨＫした結果は、常に同じとはならない。一方、保護対象データのみを含むブロックについては、データが同じであれば、共通鍵Ｋを用いて暗号化処理ＣＩＰＨＫした結果も同じとなる。
【００３１】
そこで、保護対象データのみを含むブロックであって、最初のブロックＭ１からｊ番目（ｊは２以上の正数）のブロックＭｊまでを基準ブロックとし、該基準ブロックの保護対象データを基準データとする。そして、基準データと、ブロックＭｊまでの共通鍵Ｋを用いた暗号化処理ＣＩＰＨＫの結果、すなわち上記した通常処理によるＭＡＣの途中演算結果である暗号文との対応関係を示す参照テーブルが、参照テーブル記憶部３５に記憶されている。基準データは平文であり、途中演算結果はその暗号文である。参照テーブル記憶部３５が、参照テーブルを記憶する記憶部に相当する。
【００３２】
本実施形態では、図５に示すように、最終ブロックＭｎのみに耐再送攻撃データが含まれている。保護対象データは、最初のブロックＭ１から最終ブロックＭｎまで含まれている。そして、（ｎ−１）番目のブロックＭｎ−１までの保護対象データを基準データとしている。すなわち、保護対象データのみを含むすべてのブロックのデータを、基準データとしている。また、（ｎ−１）番目のブロックＭｎ−１までの暗号化処理ＣＩＰＨＫの結果を、基準データに対応する途中演算結果としている。参照テーブルは、固定値として予め記憶されている。
【００３３】
ＭＡＣ生成部３３は、メッセージ本体の基準データ、換言すれば基準データが格納されたブロックを抽出する。そして、抽出した基準データが参照テーブルに登録されているか探査する。受信したメッセージの基準データが参照テーブルに登録されている場合、対応する途中演算結果の暗号文を参照する。すなわち、この暗号文を（ｎ−１）番目のブロックＭｎ−１までの暗号化処理ＣＩＰＨＫの結果として用いる。そして、参照した暗号文と、最終ブロックＭｎとの排他的論理和を計算し、この排他的論理和を、共通鍵Ｋを用いて暗号化処理ＣＩＰＨＫする。以降は、通常処理と同じ処理を実行する。すなわち、暗号化処理ＣＩＰＨＫにより得られたビット列を、左からＭＡＣサイズであるＴｌｅｎビット分、切り出す処理を実行し、得られた値ＴをＭＡＣ値とする。
【００３４】
このように、参照暗号文を用いた処理では、参照テーブルに登録された基準データに対応する途中演算結果（暗号文）を参照することで、通常処理よりも少ない回数の演算で、ＭＡＣを生成する。本実施形態では、２回の排他的論理和と１回の暗号化処理ＣＩＰＨＫにより、ＭＡＣを生成する。
【００３５】
判定部３６は、受信したメッセージが、処理対象であり、且つ、ＭＡＣによる認証対象である場合に、ＭＡＣ生成部３３により生成されたＭＡＣと、受信部３２により受信されたメッセージのデータフィールドに設定されたＭＡＣとを比較する。そして、両ＭＡＣが一致するか否かを判定する。
【００３６】
さらにマイコン３１は、メッセージを送信する機能部として、上記したＭＡＣ生成部３３及び共通鍵記憶部３４に加えて、メッセージ本体生成部３７、フレーム生成部３８、及び送信部３９を備えている。
【００３７】
メッセージ本体生成部３７は、ＥＣＵ３０がメッセージを送信する際に、メッセージ本体を生成する。すなわち、保護対象データ及び耐再送攻撃データを生成する。ＭＡＣ生成部３３は、メッセージ本体生成部３７により生成されたメッセージ本体について、上記した通常処理、すなわち共通鍵を用いた暗号化処理を実行することで、ＭＡＣを生成する。
【００３８】
フレーム生成部３８は、データフレームのデータフィールドに、メッセージ本体生成部３７により生成されたメッセージ本体及びＭＡＣ生成部３３により生成されたＭＡＣを設定する。また、ＩＤフィールドにＩＤを設定する、これら処理により、送信可能なデータフレーム、すなわちメッセージを生成する。そして、送信部３９から、ＣＡＮバス２０に対してメッセージを送信する。
【００３９】
次に、図６に基づき、マイコン３１が実行する受信処理について説明する。
【００４０】
受信部３２がメッセージを受信し、受信したメッセージが、処理対象であり、且つ、ＭＡＣによる認証対象である場合に、以下に示す処理を実行する。
【００４１】
先ずＭＡＣ生成部３３が、受信したメッセージのデータフィールドに設定されたメッセージ本体から、基準データを抽出する（ステップＳ１０）。次いで、ＭＡＣ生成部３３は、参照テーブルを探査し（ステップＳ２０）、抽出した基準データが、参照テーブルに登録されているか否かを判定する（ステップＳ３０）
ステップＳ３０において参照テーブルに登録されていると判定すると、ＭＡＣ生成部３３は、参照テーブルから抽出した基準データに対応する暗号文、すなわち途中演算結果を参照する（ステップＳ４０）。そして、上記した参照暗号文を用いた処理を実行して、ＭＡＣを生成する（ステップＳ５０）。
【００４２】
本実施形態では、参照した暗号文を（ｎ−１）番目のブロックＭｎ−１までの暗号化処理ＣＩＰＨＫの結果として用い、最終ブロックＭｎとの排他的論理和を計算する。そして、この排他的論理和を共通鍵Ｋを用いて暗号化処理ＣＩＰＨＫし、暗号化処理ＣＩＰＨＫにより得られたビット列を、左からＭＡＣサイズであるＴｌｅｎビット分、切り出す処理を実行してＭＡＣを生成する。
【００４３】
一方、ステップＳ３０において登録されていないと判定すると、ＭＡＣ生成部３３は、上記した通常処理を実行して、ＭＡＣを生成する（ステップＳ６０）。
【００４４】
ステップＳ５０又はステップＳ６０の処理が終了すると、次いで判定部３６が、ステップＳ５０又はステップＳ６０の処理により生成されたＭＡＣが、受信したメッセージのデータフィールドに設定されたＭＡＣと一致するか否かを判定する（ステップＳ７０）。
【００４５】
ステップＳ７０において一致すると判定すると、判定部３６は、受信したメッセージが正当なメッセージであると判断する（ステップＳ８０）。このとき、判定部３６は、たとえば正当であることを示す信号を出力する。これにより、ＥＣＵ３０は、受信したメッセージの保護対象データを用いた処理を実行することとなる。
【００４６】
ステップＳ７０において一致しないと判定すると、判定部３６は、受信したメッセージが不正なメッセージであると判断する（ステップＳ９０）。このとき、判定部３６は、不正であることを示す信号を出力する。これにより、ＥＣＵ３０は、受信したメッセージを処理しない。そして、ステップＳ８０又はステップＳ９０の処理が終了すると、一連の受信処理を終了する。
【００４７】
次に、本実施形態のＥＣＵ３０及び通信システム１０の効果について説明する。
【００４８】
上記したように、耐再送攻撃データは、メッセージ本体の末尾に設定されている。そこで、保護対象データのみを含むブロックであって、最初のブロックＭ１からｊ番目のブロックＭｊまでを基準ブロックとし、該基準ブロックの保護対象データを基準データとする。ＥＣＵ３０には、基準データと、ブロックＭｊまでの共通鍵Ｋを用いた暗号化処理ＣＩＰＨＫの結果であるＭＡＣの途中演算結果（暗号文）との対応関係が、参照テーブルとして記憶されている。
【００４９】
ＥＣＵ３０は、受信したメッセージの基準データが参照テーブルに登録されている場合、対応する途中演算結果の暗号文を参照する。すなわち、この暗号文をｊ番目のブロックＭｊまでの暗号化処理ＣＩＰＨＫの結果として用いる。そして、参照した暗号文と、（ｊ＋１）番目のブロックＭｊ＋１との排他的論理和を計算し、この排他的論理和を、共通鍵Ｋを用いて暗号化処理ＣＩＰＨＫする。以降は、通常処理と同じ処理を実行する。
【００５０】
このように、本実施形態のＥＣＵ３０によれば、受信したメッセージの基準データが参照テーブルに登録されている場合に、参照テーブルの途中演算結果（暗号文）を参照するため、通常処理の排他的論理和及び暗号化処理ＣＩＰＨＫの一部を省略し、通常処理よりも少ない演算で、ＭＡＣを生成することができる。したがって、メッセージの正当性を検証でき、且つ、処理負荷を低減することができる。
【００５１】
また、保護対象データのみを含むすべてのブロックのデータを、基準データとしている。換言すれば、保護対象データのみを含むすべてのブロックを基準ブロックとしている。したがって、通常処理に対してより少ない演算で、ＭＡＣを生成することができる。特に本実施形態では、ｎ個のブロックのうち、最終ブロックＭｎのみに耐再送攻撃データが含まれており、その他のブロックのデータを基準データとしている。したがって、２回の排他的論理和と１回の暗号化処理ＣＩＰＨＫにより、ＭＡＣを生成することができる。このように、処理負荷を効果的に低減することができる。
【００５２】
また、参照テーブルは、変更されない固定値として、予め参照テーブル記憶部３５に記憶されている。これによっても、処理負荷を低減することができる。
【００５３】
（第２実施形態）
本実施形態は、先行実施形態を参照できる。このため、先行実施形態に示した通信システム１０及びＥＣＵ３０と共通する部分についての説明は省略する。
【００５４】
図７に示すように、本実施形態のＥＣＵ３０は、参照テーブルを編集する編集部４０をさらに備えている。編集部４０は、マイコン３１の機能部として構成されている。編集部４０は、受信回数が所定値以上となった未登録の基準データ及び該基準データに対応する途中演算結果を、参照テーブル記憶部３５の参照テーブルに追加登録する編集処理を実行する。参照テーブル記憶部３５は、フラッシュメモリ等の書き換え可能な不揮発性メモリにて構成されている。
【００５５】
編集部４０は、たとえば初期的に参照テーブルに登録されていない基準データ及び該基準データに対応する途中演算結果を、上記基準データの受信回数（抽出回数）と関連付けて、たとえばＲＡＭに記憶する。編集部４０は、ＭＡＣ生成部３３から、抽出された基準データと、通常処理による基準データ分の途中演算結果を取得する。受信回数は、ＭＡＣ生成部３３が基準データを抽出し、ＭＡＣを生成する毎に更新される。受信回数については、ＭＡＣ生成部３３側で計数してもよいし、編集部４０側で計数してもよい。
【００５６】
図８は、マイコン３１が実行する受信処理を示している。ステップＳ６５の処理が追加されている点が、先行実施形態（図６）と異なる。図８では、ステップＳ６０の処理が終了した後に、参照テーブルを編集する処理を実行する（ステップＳ６５）。このタイミングで、ＭＡＣ生成部３３からステップＳ１０で抽出した基準データ及び該基準データに対応する途中演算結果を取得し、受信回数と関連付けてＲＡＭに記憶する。そして、受信回数が所定値以上となった未登録の基準データ及び該基準データに対応する途中演算結果があれば、ＲＡＭから参照テーブルに追加登録する。そして、一連の処理を終了する。受信回数が所定値以上となった未登録の基準データがなければ、追加登録をせずに処理を終了する。
【００５７】
たとえば図９では、初期的に参照テーブルに登録されていない基準データとして、ＲＡＭに４つのデータが記憶されている。このうち、３つの基準データについては、すでに所定値である５００回を超えており、参照テーブルに追加登録されている。ステップＳ６５のタイミングで、未登録の基準データＤＤＤＤＤＤの受信回数が所定値に到達したため、基準データＤＤＤＤＤＤ及び対応する途中演算結果ＷＷＷＷＷＷを参照テーブルに追加登録する。
【００５８】
このように、本実施形態によれば、参照テーブルに初期的に登録されていなくても、受信頻度が増加した基準データ及び対応する途中演算結果を、参照テーブルに追加登録することができる。したがって、途中で受信頻度が増加する場合でも、処理負荷を低減することができる。
【００５９】
なお、編集処理を実行するタイミングは、図８に示した例に限定されない。ＭＡＣ生成部３３から基準データ及び途中演算結果を取得可能なタイミングであればよい。したがって、ステップＳ６０以降であればよい。たとえば、ステップＳ８０又はステップＳ９０の処理終了後に、編集処理を実行してもよい。
【００６０】
ＲＡＭにおいて、参照テーブルに追加登録された基準データ及び対応する途中演算結果については、削除してもよい。
【００６１】
初期的に参照テーブルに登録されている基準データ及び対応する途中演算結果についてもＲＡＭに記憶させ、受信回数を更新するようにしてもよい。すなわち、ステップＳ１０で抽出されるすべての基準データ及び該基準データに対応する途中演算結果をＲＡＭに記憶するようにしてもよい。登録済みの基準データについては、ＭＡＣ生成部３３から、抽出された基準データ及び参照された途中演算結果を取得することとなる。
【００６２】
（第３実施形態）
本実施形態は、先行実施形態を参照できる。このため、先行実施形態に示した通信システム１０及びＥＣＵ３０と共通する部分についての説明は省略する。
【００６３】
本実施形態において、編集部４０は、所定期間におけるＭＡＣ生成部３３による参照回数が所定値を下回る基準データ及び該基準データに対応する途中演算結果を、参照テーブルから削除する編集処理を実行する。参照回数は、ＭＡＣ生成部３３が参照テーブルから途中演算結果を参照する度に更新される。参照回数は、ＭＡＣ生成部３３によって計数される。そして、図１０に示すように、基準データに関連付けられて参照テーブルに記憶される。ＭＡＣ生成部３３は、例えばステップＳ４０の処理において、途中演算結果（暗号文）を参照するとともに、参照した途中演算結果に対応する参照テーブルの参照回数をインクリメント（＋１）する。
【００６４】
編集部４０は、記した所定期間ごと、すなわち所定の周期で編集処理を実行する。編集部４０は、参照テーブルの参照回数が所定値を下回る基準データ及び該基準データに対応する途中演算結果があれば、参照テーブルから削除する。そして、参照テーブルの参照回数をクリアする。図１０では、基準データＤＤＤＤＤＤの受信回数が所定値である５００回を下回ったため、基準データＤＤＤＤＤＤ及び対応する途中演算結果ＷＷＷＷＷＷを参照テーブルから削除する。また、他の基準データについて参照回数をクリアする。
【００６５】
このように、本実施形態によれば、参照頻度が低下した基準データ及び対応する途中演算結果を、参照テーブルから削除することができる。これにより、参照テーブルの探査時間を短縮することができる。
【００６６】
なお、所定の時間を所定期間としても良い。たとえば受信部３２が受信するメッセージの総数が一定値に達する期間を所定期間としてもよい。
【００６７】
（第４実施形態）
本実施形態は、先行実施形態を参照できる。このため、先行実施形態に示した通信システム１０及びＥＣＵ３０と共通する部分についての説明は省略する。
【００６８】
本実施形態において、編集部４０は、ＭＡＣ生成部３３による参照回数の多い基準データを早く探し出すことができるように、参照回数に応じて参照テーブルを編集する処理を実行する。ここでも、参照回数は、ＭＡＣ生成部３３が参照テーブルから途中演算結果を参照する度に更新される。参照回数は、ＭＡＣ生成部３３によって計数される。そして、図１１に示すように、基準データに関連付けられて参照テーブルに記憶される。ＭＡＣ生成部３３は、例えばステップＳ４０の処理において、途中演算結果（暗号文）を参照するとともに、参照した途中演算結果に対応する参照テーブルの参照回数をインクリメント（＋１）する。
【００６９】
編集部４０は、たとえば所定の周期で、編集処理を実行する。編集部４０は、参照テーブルの参照回数に応じて、基準データ及び対応する途中演算結果を並び替える。具体的には、図１１に示すように、参照回数の多い途中演算結果に対応する基準データほど探査順が早くなるように、基準データ及び対応する途中演算結果を並び替える。
【００７０】
このように、本実施形態によれば、参照回数に応じて参照テーブルを編集することができる。これにより、参照テーブルの探査時間を短縮することができる。
【００７１】
なお、編集処理を実行するタイミングは、上記した例に限定されない。ＭＡＣ生成部３３により参照テーブルの参照回数が更新される毎に、すなわち受信処理を実行する毎に、編集処理を実行してもよい。たとえばステップＳ８０又はステップＳ９０の処理が終了した後に、編集処理を実行してもよい。
【００７２】
（第５実施形態）
本実施形態は、先行実施形態を参照できる。このため、先行実施形態に示した通信システム１０及びＥＣＵ３０と共通する部分についての説明は省略する。
【００７３】
本実施形態では、受信したメッセージの基準データが所定長さ以下の場合、ＭＡＣ生成部３３が、参照テーブルを探査することなく、通常処理によってＭＡＣを生成する。
【００７４】
図１２は、マイコン３１が実行する受信処理を示している。ステップＳ１５の処理が追加されている点が、先行実施形態（図６）と異なる。図１２では、ステップＳ１０の処理が終了した後に、ＭＡＣ生成部３３が、抽出した基準データが所定長さ以上であるか否かを判定する（ステップＳ１５）。
【００７５】
ここで、基準データが所定長さ以上であると、途中演算結果（暗号文）を参照したほうが通常処理よりも処理負荷が低くなる。一方、基準データが所定長さ未満であると、途中演算結果を参照したほうが通常処理よりも処理負荷が高くなる。このように、処理負荷を考慮して所定長さが設定され、予めメモリに記憶されている。
【００７６】
ステップＳ１５において所定長さ以上であると判定すると、ＭＡＣ生成部３３は、ステップＳ２０以降の処理を実行する。すなわち、参照テーブルを探査し、抽出した基準データが登録されている場合に、途中演算結果（暗号文）を参照してＭＡＣを生成する。基準データが登録されていない場合には、通常処理を実行してＭＡＣを生成する。
【００７７】
一方、ステップＳ１５において所定長さ未満であると判定すると、ステップＳ２０及びステップＳ３０の処理を実行することなく、ステップＳ６０の処理、すなわち通常処理を実行してＭＡＣを生成する。
【００７８】
このように、本実施形態によれば、基準データが長い場合に参照暗号文による処理を実行し、基準データが短い場合に通常処理を実行する。このように、基準データの長さに応じてＭＡＣ生成の処理を切り替えることができる。
【００７９】
この明細書の開示は、例示された実施形態に制限されない。開示は、例示された実施形態と、それらに基づく当業者による変形態様を包含する。たとえば、開示は、実施形態において示された要素の組み合わせに限定されない。開示は、多様な組み合わせによって実施可能である。開示される技術的範囲は、実施形態の記載に限定されない。開示されるいくつかの技術的範囲は、特許請求の範囲の記載によって示され、さらに特許請求の範囲の記載と均等の意味及び範囲内でのすべての変更を含むものと解されるべきである。
【００８０】
受信部３２、ＭＡＣ生成部３３、共通鍵記憶部３４、参照テーブル記憶部３５、判定部３６、メッセージ本体生成部３７、フレーム生成部３８、送信部３９、及び編集部４０が、マイコン３１の機能部として構成される例を示したが、これに限定されない。実体的なメモリ装置に記録されたソフトウェア及びそれを実行するコンピュータ、ソフトウェアのみ、ハードウェアのみ、あるいはそれらの組合せによって提供することができる。ハードウェアである回路によって提供される場合、それは多数の論理回路を含むデジタル回路、またはアナログ回路によって提供することができる。
【００８１】
しかしながら、ＭＡＣ生成部３３は、通常処理時に、排他的論理和及び暗号化処理ＣＩＰＨＫをそれぞれ複数回実行する。したがって、ハードウェアで構成すると、コストが高くなる。これに対し、本実施形態に示すように、マイコン３１の機能部とすると、コストを低減しつつ、処理負荷を低減することができる。
【符号の説明】
【００８２】
１０…通信システム、
２０…ＣＡＮバス、
３０…ＥＣＵ（電子制御装置）、
３１…マイコン、
３２…受信部、
３３…ＭＡＣ生成部、
３４…共通鍵記憶部、
３５…参照テーブル記憶部、
３６…判定部、
３７…メッセージ本体生成部、
３８…フレーム生成部、
３９…送信部、
４０…編集部
【図１】
2019041228.tif 000003
【図２】
2019041228.tif 000004
【図３】
2019041228.tif 000005
【図４】
2019041228.tif 000006
【図５】
2019041228.tif 000007
【図６】
2019041228.tif 000008
【図７】
2019041228.tif 000009
【図８】
2019041228.tif 000010
【図９】
2019041228.tif 000011
【図１０】
2019041228.tif 000012
【図１１】
2019041228.tif 000013
【図１２】
2019041228.tif 000014