(57)【要約】【課題】少ない演算負荷で通信メッセージのセキュリティを確保することのできる通信システム、及び該通信システムに用いられる通信装置、及び通信方法を提供する。【解決手段】通信システムは、複数の情報処理装置１１，２１が通信メッセージの信頼性を判断するためのチェックビットを含む通信メッセージを通信可能に通信用バス５０に接続されてなる。通信メッセージを送信する情報処理装置１１は、複数の箇所のいずれか一箇所をチェックビットを格納させる格納位置として決定して、この決定された格納位置にチェックビットを格納させた通信メッセージを生成して送信する。通信メッセージを受信する情報処理装置２１は、チェックビットの格納位置を上記格納位置の決定に対応させることによって判定し、受信した通信メッセージのこの判定した格納位置から取得したチェックビットに基づいて受信した通信メッセージの信頼性を判断する。【選択図】図１
2014123816.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信装置が通信メッセージの信頼性を判断するためのチェックビットを含む通信メッセージを通信可能に通信回線に接続されてなる通信システムであって、
前記複数の通信装置のうち、通信メッセージを送信する通信装置は、通信メッセージ中のチェックビットを格納できる複数の箇所のいずれか一箇所をチェックビットを格納させる格納位置として決定する格納位置決定部を備え、この格納位置決定部により決定された格納位置にチェックビットを格納させた通信メッセージを生成して、この生成した通信メッセージを送信し、
前記複数の通信装置のうち、通信メッセージを受信する通信装置は、前記通信メッセージにおけるチェックビットの格納位置を前記格納位置決定部による格納位置の決定に対応させることによって判定する格納位置判定部を備え、受信した通信メッセージにおけるチェックビットの格納位置をこの格納位置判定部により判定することでチェックビットを取得し、この取得したチェックビットに基づいて前記受信した通信メッセージの信頼性を判断する
ことを特徴とする通信システム。
【請求項２】
前記格納位置決定部は、通信メッセージに含まれるデータの一部に基づいてチェックビットの前記格納位置を決定し、
前記格納位置判定部は、前記格納位置決定部によるチェックビットの格納位置の決定に用いられる通信メッセージ中のデータの一部に基づいて前記決定されたチェックビットの格納位置を判定する
請求項１に記載の通信システム。
【請求項３】
前記格納位置決定部は、通信メッセージにおけるチェックビットの格納位置を前記通信メッセージに含まれるデータの一部の位置に重ならないように決定する
請求項２に記載の通信システム。
【請求項４】
前記格納位置決定部と前記格納位置判定部とは同一の秘密鍵を保持しており、
前記格納位置決定部は、前記通信メッセージに含まれるデータの一部を前記秘密鍵で暗号化した結果に基づいて前記チェックビットの格納位置を決定し、
前記格納位置判定部は、前記通信メッセージに含まれるデータの一部を前記秘密鍵で暗号化した結果に基づいて前記チェックビットの格納位置を判定する
請求項２又は３に記載の通信システム。
【請求項５】
前記通信システムは、通信メッセージがコントローラエリアネットワークのプロトコルに基づいて通信されるシステムであり、
前記チェックビットの格納位置は、通信メッセージのデータフィールド内に決定される
請求項１〜４のいずれか一項に記載の通信システム。
【請求項６】
前記格納位置決定部は、前記チェックビットの格納位置の決定に際して通信メッセージを送信した回数を計数し、
前記格納位置判定部は、前記チェックビットの格納位置の判定に際して前記通信メッセージを受信した回数を計数する
請求項１〜５のいずれか一項に記載の通信システム。
【請求項７】
前記格納位置決定部は、直前に送信した通信メッセージに対応するエラーフレームが検出されたとき、前記通信メッセージの送信回数を増加させない
請求項６に記載の通信システム。
【請求項８】
複数の通信装置が通信メッセージの信頼性を判断するためのチェックビットを含む通信メッセージを通信可能に通信回線に接続されてなる通信システムに用いられる通信方法であって、
前記複数の通信装置のうち、通信メッセージを送信する通信装置には、通信メッセージ中のチェックビットを格納できる複数の箇所のいずれか一箇所を、チェックビットを格納させる格納位置として決定する格納位置決定部を持たせ、この格納位置決定部により決定された格納位置にチェックビットを格納した通信メッセージを生成させて、この生成した通信メッセージを送信させ、
前記複数の通信装置のうち、通信メッセージを受信する通信装置には、前記通信メッセージにおけるチェックビットの格納位置を前記格納位置決定部による格納位置の決定に対応させることによって判定する格納位置判定部を持たせ、受信された通信メッセージにおけるチェックビットの格納位置をこの格納位置判定部により判定することでチェックビットを取得させ、この取得させたチェックビットに基づいて前記受信された通信メッセージの信頼性を判断させる
ことを特徴とする通信方法。
【請求項９】
通信メッセージの信頼性を判断するためのチェックビットを含む通信メッセージを通信させる通信方法であって、
通信メッセージ中のチェックビットを格納できる複数の箇所のいずれか一箇所を、チェックビットを格納させる格納位置として決定する工程と、
前記決定された格納位置にチェックビットを格納した通信メッセージを生成して送信する工程と、
前記送信された通信メッセージを受信して、当該受信した通信メッセージにおけるチェックビットの格納位置を前記決定する工程による格納位置の決定に対応させることによって判定する工程と、
前記判定されたチェックビットの格納位置から取得したチェックビットに基づいて前記受信された通信メッセージの信頼性を判断する工程とを備える
ことを特徴とする通信方法。
【請求項１０】
複数の通信装置が通信メッセージの信頼性を判断するためのチェックビットを含む通信メッセージを通信可能に通信回線に接続されてなる通信システムに用いられる通信装置であって、
前記通信メッセージを送信する通信装置は、通信メッセージ中のチェックビットを格納できる複数の箇所のいずれか一箇所をチェックビットを格納させる格納位置として決定する格納位置決定部を備え、この格納位置決定部により決定された格納位置にチェックビットを格納した通信メッセージを生成して、この生成した通信メッセージを送信する
ことを特徴とする通信装置。
【請求項１１】
複数の通信装置が通信メッセージの信頼性を判断するためのチェックビットを含む通信メッセージを通信可能に通信回線に接続されてなる通信システムに用いられる通信装置であって、
前記通信メッセージは、通信メッセージ中のチェックビットを格納できる複数の箇所のいずれか一箇所にチェックビットが格納されて送信され、
前記通信メッセージを受信する通信装置は、受信した通信メッセージにおけるチェックビットの格納位置を同チェックビットの格納位置の決定態様に対応させることによって判定する格納位置判定部を備え、この格納位置判定部により格納位置を判定して取得したチェックビットに基づいて前記受信した通信メッセージの信頼性を判断する
ことを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両などにおいて複数の通信装置がネットワーク接続されてなる通信システム、及び該通信システムに用いられる通信装置、及び通信方法に関する。
【背景技術】
【０００２】
周知のように、車両に搭載された複数の電子制御装置（ＥＣＵ）は、それぞれがネットワーク接続されることによってそれらＥＣＵの有する情報（車両情報）を相互に送受信可能とする車両ネットワークシステムを構成していることが多い。そして、このような車両ネットワークシステムを構成する通信システムの一つにコントローラエリアネットワーク（ＣＡＮ）がある。
【０００３】
ＣＡＮは、通信回線であるバスを共有する各ＥＣＵが各々の判断でバス上にメッセージを流すことができるようになっているため、各ＥＣＵからバスへのメッセージの送信が容易である。そのため、例えばＣＡＮのバスに不正なＥＣＵを接続して、当該バスに不正なメッセージを送信することも可能であり、そうした不正なメッセージが送信されると、これを受信したＥＣＵでは、当該不正なメッセージを正規のメッセージと同様に処理してしまうおそれもある。
【０００４】
ところで従来から、不正なメッセージによる通信を防ぐ技術なども提案されており、その一例が特許文献１に記載されている。
特許文献１に記載の技術は、マスタ無線通信装置とスレーブ無線通信装置との間の通信データの秘密性を確保する技術である。この技術では、マスタ無線通信装置とスレーブ無線通信装置とで共有している秘密鍵を利用して、マスタ無線通信装置は、自らが生成した暗号鍵を秘密鍵を用いて暗号化してスレーブ無線通信装置に転送し、スレーブ無線通信装置は、転送された暗号鍵を共有する秘密鍵を用いて復号化する。これによりマスタ無線通信装置とスレーブ無線通信装置とで暗号鍵が共有される。このようにこの技術では、マスタ無線通信装置とスレーブ無線通信装置との間で送受信する通信データの暗号化および復号化に、上記共有された暗号鍵が用いられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−５６７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術では、それぞれ１２８ビットの秘密鍵及び暗号鍵を用いることによってセキュリティが確保されている。ところが上述したＣＡＮなど、通信メッセージにリアルタイム性が要求される通信システムとなると、そのセキュリティの確保のための負荷、すなわち暗号化時及び復号時のそれぞれに要する１２８ビットの演算負荷や時間が無視できなくなる。またそうかといって、秘密鍵や暗号鍵のビット数を減らせば、十分なセキュリティの確保が難しくなる。
【０００７】
本発明は、このような実情に鑑みなされたものであって、その目的は、少ない演算負荷で通信メッセージのセキュリティを確保することのできる通信システム、及び該通信システムに用いられる通信装置、及び通信方法を提供することにある。
【課題を解決するための手段】
【０００８】
以下、上記課題を解決するための手段及びその作用効果を記載する。
上記目的を達成するために本発明が提供する通信システムは、複数の通信装置が通信メッセージの信頼性を判断するためのチェックビットを含む通信メッセージを通信可能に通信回線に接続されてなる通信システムであって、前記複数の通信装置のうち、通信メッセージを送信する通信装置は、通信メッセージ中のチェックビットを格納できる複数の箇所のいずれか一箇所をチェックビットを格納させる格納位置として決定する格納位置決定部を備え、この格納位置決定部により決定された格納位置にチェックビットを格納させた通信メッセージを生成して、この生成した通信メッセージを送信し、前記複数の通信装置のうち、通信メッセージを受信する通信装置は、前記通信メッセージにおけるチェックビットの格納位置を前記格納位置決定部による格納位置の決定に対応させることによって判定する格納位置判定部を備え、受信した通信メッセージにおけるチェックビットの格納位置をこの格納位置判定部により判定することでチェックビットを取得し、この取得したチェックビットに基づいて前記受信した通信メッセージの信頼性を判断する。
【０００９】
上記目的を達成するために本発明が提供する通信方法は、複数の通信装置が通信メッセージの信頼性を判断するためのチェックビットを含む通信メッセージを通信可能に通信回線に接続されてなる通信システムに用いられる通信方法であって、前記複数の通信装置のうち、通信メッセージを送信する通信装置には、通信メッセージ中のチェックビットを格納できる複数の箇所のいずれか一箇所を、チェックビットを格納させる格納位置として決定する格納位置決定部を持たせ、この格納位置決定部により決定された格納位置にチェックビットを格納した通信メッセージを生成させて、この生成した通信メッセージを送信させ、前記複数の通信装置のうち、通信メッセージを受信する通信装置には、前記通信メッセージにおけるチェックビットの格納位置を前記格納位置決定部による格納位置の決定に対応させることによって判定する格納位置判定部を持たせ、受信された通信メッセージにおけるチェックビットの格納位置をこの格納位置判定部により判定することでチェックビットを取得させ、この取得させたチェックビットに基づいて前記受信された通信メッセージの信頼性を判断させる。
【００１０】
上記目的を達成するために本発明が提供する通信方法は、通信メッセージの信頼性を判断するためのチェックビットを含む通信メッセージを通信させる通信方法であって、通信メッセージ中のチェックビットを格納できる複数の箇所のいずれか一箇所を、チェックビットを格納させる格納位置として決定する工程と、前記決定された格納位置にチェックビットを格納した通信メッセージを生成して送信する工程と、前記送信された通信メッセージを受信して、当該受信した通信メッセージにおけるチェックビットの格納位置を前記決定する工程による格納位置の決定に対応させることによって判定する工程と、前記判定されたチェックビットの格納位置から取得したチェックビットに基づいて前記受信された通信メッセージの信頼性を判断する工程とを備える。
【００１１】
上記目的を達成するために本発明が提供する通信装置は、複数の通信装置が通信メッセージの信頼性を判断するためのチェックビットを含む通信メッセージを通信可能に通信回線に接続されてなる通信システムに用いられる通信装置であって、前記通信メッセージを送信する通信装置は、通信メッセージ中のチェックビットを格納できる複数の箇所のいずれか一箇所をチェックビットを格納させる格納位置として決定する格納位置決定部を備え、この格納位置決定部により決定された格納位置にチェックビットを格納した通信メッセージを生成して、この生成した通信メッセージを送信する。
【００１２】
上記目的を達成するために本発明が提供する通信装置は、複数の通信装置が通信メッセージの信頼性を判断するためのチェックビットを含む通信メッセージを通信可能に通信回線に接続されてなる通信システムに用いられる通信装置であって、前記通信メッセージは、通信メッセージ中のチェックビットを格納できる複数の箇所のいずれか一箇所にチェックビットが格納されて送信され、前記通信メッセージを受信する通信装置は、受信した通信メッセージにおけるチェックビットの格納位置を同チェックビットの格納位置の決定態様に対応させることによって判定する格納位置判定部を備え、この格納位置判定部により格納位置を判定して取得したチェックビットに基づいて前記受信した通信メッセージの信頼性を判断する。
【００１３】
このような構成もしくは方法によれば、通信メッセージ中に複数あるチェックビットを格納させることのできる位置のうちの１つがチェックビットを格納させる格納位置として決定されるため、通信メッセージに含まれるチェックビットの位置を判定することが難しくなる。つまり、チェックビットを用いて通信メッセージの信頼性の確保、いわゆるセキュリティの向上が図られるようになる。これにより、たとえ通信メッセージが盗聴されていたとしても正しいチェックビットを推定することが難しくなるため、例えば、不正な通信メッセージが「正しい位置」に「正しいチェックビット」を格納させることが困難になり、なりすましの通信メッセージによる通信を防ぐことができるようになるなど不正な通信メッセージによる通信が困難になる。
【００１４】
また、通信メッセージを受信する側は、通信メッセージを送信する側による格納位置の決定に対応するようにチェックビットの格納位置を判定する。例えば、受信する側の格納位置の判定は、送信する側におけるチェックビットの格納位置の決定に用いる規則に対応する規則に基づいて判定する。これにより、送信する側が決定したチェックビットの格納位置を、受信する側が判定できるため、このような構成や方法では、チェックビットの格納位置が変更される通信メッセージから適切に取得されるチェックビットに基づいて、送信する側と受信する側との間で通信される通信メッセージのセキュリティが確保されるようになる。なお、チェックビットの格納位置を決定／判定するための演算負荷は、秘密鍵や暗号鍵を用いる際に必要な演算負荷が少なくて済むため、演算負荷の増大も抑えられるようになる。
【００１５】
好ましい構成として、上記記載の通信システムでは、前記格納位置決定部は、通信メッセージに含まれるデータの一部に基づいてチェックビットの前記格納位置を決定し、前記格納位置判定部は、前記格納位置決定部によるチェックビットの格納位置の決定に用いられる通信メッセージ中のデータの一部に基づいて前記決定されたチェックビットの格納位置を判定する。
【００１６】
このような構成によれば、チェックビットの格納位置が通信メッセージに含まれるデータに基づいて定められることで、送信する通信装置と受信する通信装置との間で格納位置の決定／判定に関する条件を簡単に同期させることができるようになる。
【００１７】
また、通信メッセージに含まれるデータは不規則に変化することが多いため、このようなデータを用いることによってチェックビットの格納位置が不規則に変化することも期待される。つまり、たとえ通信メッセージが盗聴されていたとしても、チェックビットの格納位置が不規則に変化することによってチェックビットの格納位置の推定が困難になるため、チェックビットの取得も困難となり、チェックビットにより確保されるセキュリティのより一層の向上が図られるようになる。
【００１８】
好ましい構成として、上記記載の通信システムでは、前記格納位置決定部は、通信メッセージにおけるチェックビットの格納位置を前記通信メッセージに含まれるデータの一部の位置に重ならないように決定する。
【００１９】
このような構成によれば、通信メッセージにおいて、チェックビットの格納位置と、当該チェックビットの格納位置を決定するためのデータの一部の位置とを相違させることにより、チェックビットの格納位置の決定に際し、チェックビットが干渉することがなくなる。これにより、チェックビットの格納位置の決定に関する処理が簡単になる。
【００２０】
好ましい構成として、上記記載の通信システムでは、前記格納位置決定部と前記格納位置判定部とは同一の秘密鍵を保持しており、前記格納位置決定部は、前記通信メッセージに含まれるデータの一部を前記秘密鍵で暗号化した結果に基づいて前記チェックビットの格納位置を決定し、前記格納位置判定部は、前記通信メッセージに含まれるデータの一部を前記秘密鍵で暗号化した結果に基づいて前記チェックビットの格納位置を判定する。
【００２１】
このような構成によれば、通信メッセージに含まれるデータの一部そのものからチェックビットの格納位置を求めることができなくなるため、たとえ通信メッセージが盗聴されたとしてもチェックビットの格納位置の判定が困難になる。よって正しいチェックビットが推定できなくなる。すなわち、不正な通信メッセージによる通信が一層困難とされるため、通信メッセージのセキュリティが一層向上されるようになる。
【００２２】
好ましい構成として、上記記載の通信システムでは、前記通信システムは、通信メッセージがコントローラエリアネットワークのプロトコルに基づいて通信されるシステムであり、前記チェックビットの格納位置は、通信メッセージのデータフィールド内に決定される。
【００２３】
データフィールドの大きさが最大で６４ビットしかないコントローラエリアネットワーク（ＣＡＮ）においては、セキュリティ確保のために多くのビットを利用することはできない。
【００２４】
そこでこのような構成によれば、１ビット長〜数ビット長のチェックビットを用いたとしても、盗聴された通信メッセージから、該チェックビットの格納されるチェックビットの格納位置を推定することが困難であるために正しいチェックビットを得ることができない。つまり、不正な通信メッセージの生成が難しいため通信メッセージに必要とされるセキュリティが確保されるようになる。
【００２５】
また、ビット数の少ないチェックビットの演算処理や、６４ビット以下のビットのうちからチェックビットの格納位置を決定したり判定したりする演算処理なども演算負荷が抑えられるため、ＣＡＮの通信ネットワークに接続されている情報処理装置の現状の演算処理能力をそのまま利用することができる。
【００２６】
さらに、少ないビット数でセキュリティが確保されるため通信メッセージの増加も抑制される。よって、ネットワークシステムの通信状態が好適に維持されるとともに、システム全体に及ぼす影響も少ない。
【００２７】
好ましい構成として、上記記載の通信システムでは、前記格納位置決定部は、前記チェックビットの格納位置の決定に際して通信メッセージを送信した回数を計数し、前記格納位置判定部は、前記チェックビットの格納位置の判定に際して前記通信メッセージを受信した回数を計数する。
【００２８】
このような構成によれば、チェックビットの格納位置の決定／判定に際して通信メッセージの送信回数と受信回数とを考慮するようにすることで、通信メッセージを途中から盗聴してもチェックビットの格納位置の推定が困難となり、セキュリティがより好適に確保されるようになる。
【００２９】
好ましい構成として、上記記載の通信システムでは、前記格納位置決定部は、直前に送信した通信メッセージに対応するエラーフレームが検出されたとき、前記通信メッセージの送信回数を増加させない。
【００３０】
通信メッセージにエラーフレームが発生したとき、受信する通信装置はその通信メッセージを受信することができないため、送信する通信装置が送信回数を増加させてしまうと、送信する通信装置と受信する通信装置との間で通信メッセージの送信回数と受信回数とが相違してしまう。
【００３１】
そこでこの構成によるように、送信する通信装置は、送信した通信メッセージのエラーフレームを検出したとき、送信回数を増加させないようにすることで、たとえ通信メッセージにエラーフレームが発生したとしても、送信回数と受信回数との間の同期が維持されるようになる。これにより、エラーフレームが発生したとしても、通信回数の同期が維持されて適切にチェックビットの格納位置が同期を維持しつつ決定及び判定されるようになることによって通信メッセージのセキュリティが維持されるようになる。
【図面の簡単な説明】
【００３２】
【図１】本発明に係る通信装置を備える通信システムを具体化した第１の実施形態について、その概略構成を示すブロック図。
【図２】同実施形態の通信システムで通信される通信メッセージの構造を示す構造図。
【図３】同実施形態の通信メッセージを送信する情報処理装置の構成を示すブロック図。
【図４】同実施形態の通信メッセージを受信する情報処理装置の構成を示すブロック図。
【図５】同実施形態の通信システムにおいて通信回数とチェックビットの格納位置との関係を示す図。
【図６】同実施形態の通信システムにおいてデータフレーム中のチェックビットの格納位置を模式的に示す模式図。
【図７】同実施形態の通信システムにおいて受信されたチェックビットの一例を示す説明図。
【図８】本発明に係る通信装置を備える通信システムを具体化した第２の実施形態について、通信メッセージのデータの一部のビット列とチェックビットの格納位置との対応関係を示す関係図。
【図９】同実施形態の通信システムにおいてデータフレーム中のチェックビットの格納位置を模式的に示す模式図。
【図１０】本発明に係る通信装置を備える通信システムを具体化した他の実施形態について、エラーフレームが検出される場合の例を模式的に示す模式図。
【図１１】本発明に係る通信装置を備える通信システムを具体化したその他の実施形態について、通信回数とチェックビットの格納位置との対応関係を示す関係図。
【図１２】本発明に係る通信装置を備える通信システムを具体化したまた他の実施形態について、通信回数とチェックビットの格納位置との対応関係を示す関係図。
【図１３】本発明に係る通信装置を備える通信システムを具体化したまたその他の実施形態について、通信メッセージのデータの一部のビット列とチェックビットの格納位置との対応関係を示す関係図。
【発明を実施するための形態】
【００３３】
（第１の実施形態）
本発明に係る通信装置を備える通信システムを具体化した第１の実施形態について、図に従って説明する。
【００３４】
図１に示すように、車両１は、車両ネットワークシステムとしての通信システムを備えている。通信システムは、第１の電子制御装置（ＥＣＵ）１０と、第２のＥＣＵ２０と、それら第１及び第２のＥＣＵ１０，２０を相互通信可能に接続させる通信用バス５０とから構成されている。これにより、第１及び第２のＥＣＵ１０，２０は、制御用の各種情報等を、通信用バス５０を介して相互に授受（送信及び受信）できるようになっている。なお、通信システムは、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ネットワークとして構成されているため、通信プロトコルにはＣＡＮプロトコルが適用される。
【００３５】
通信用バス５０は、ツイストケーブルなどの通信線などから構成され、その通信線を介してＣＡＮプロトコルにおいて通信における１単位となる通信メッセージを伝達する。なお、通信用バス５０は、通信経路の一部に無線通信を含んでいたり、ゲートウェイなどを介して他のネットワークを経由する経路が含まれていたりしてもよい。
【００３６】
ＣＡＮプロトコルには、通信メッセージの構造であるフレームとして４種類のフレームが規定されており、そのうちの一つにユーザが指定した通信データを格納することのできるデータフレームＦｄがある。
【００３７】
図２にデータフレームＦｄのフレーム構造を示す。データフレームＦｄには、通信メッセージの内容を示す「メッセージＩＤ」が格納される領域や、ユーザが指定した通信データが格納される「データフィールド」の領域などが設けられている。通常、「データフィールド」以外の領域にユーザの指定する通信データを格納させることはできない。ＣＡＮにおいて「データフィールド」は０〜６４ビット（８ビット×０〜８バイト）のうちのいずれかの長さで設定される。そうしたことから、ＣＡＮの通信メッセージにセキュリティを確保するセキュリティ用のデータに６４ビットより多くのビットを使用すると、そのセキュリティ用のデータが一つの通信メッセージに格納できなくなる。また、セキュリティ用のデータが６４ビット以下であったとしても、本来転送したいデータである、通信データを格納する領域を圧迫することは好ましくない。そこで、通信データの領域を多く確保しつつ、必要なセキュリティを８ビット（１バイト）以下、好ましくは１〜２バイトで確保することが望まれる。
【００３８】
図１に示すように、第１及び第２のＥＣＵ１０，２０はそれぞれ、車両１の各種制御に用いられる制御装置であって、例えば、駆動系、走行系、車体系、又は情報機器系等を制御対象にしているＥＣＵである。例えば、駆動系を制御対象とするＥＣＵとしては、エンジン用ＥＣＵが挙げられ、走行系を制御対象とするＥＣＵとしては、ステアリング用ＥＣＵやブレーキ用ＥＣＵが挙げられ、車体系を制御するＥＣＵとしては、ライト用ＥＣＵやウィンドウ用ＥＣＵが挙げられ、情報機器系を制御対象とするＥＣＵとしては、カーナビゲーション用ＥＣＵが挙げられる。
【００３９】
第１のＥＣＵ１０は、各種制御に要する処理を実行する、送信する通信装置としての情報処理装置１１と、ＣＡＮプロトコルに基づく通信メッセージを送信及び受信する通信装置としてのＣＡＮコントローラ１２とを備えている。情報処理装置１１とＣＡＮコントローラ１２とは内部バスなどを介して接続されていることから、情報処理装置１１とＣＡＮコントローラ１２との間で各種データの授受が可能になっている。
【００４０】
ＣＡＮコントローラ１２は、通信用バス５０との間で通信メッセージを送受信する。ＣＡＮコントローラ１２は、ＣＡＮプロトコルに基づく通信メッセージを受信するとともに、ＣＡＮプロトコルに基づく通信メッセージを送信する。つまり、第１のＥＣＵ１０は、ＣＡＮコントローラ１２を介して通信用バス５０との間での通信メッセージの送受信を行なう。
【００４１】
第２のＥＣＵ２０は、第１のＥＣＵ１０と同様の構成をしている。すなわち、第２のＥＣＵ２０は、第１のＥＣＵ１０の情報処理装置１１と同様の機能を有する、受信する通信装置としての情報処理装置２１と、第１のＥＣＵ１０のＣＡＮコントローラ１２と同様の機能を有するＣＡＮコントローラ２２とを備える。つまり、第２のＥＣＵ２０は、ＣＡＮコントローラ２２を介して通信用バス５０との間での通信メッセージの送受信を行なう。
【００４２】
つまり、第１及び第２のＥＣＵ１０，２０は、各ＣＡＮコントローラ１２，２２を介して、ＣＡＮプロトコルの規定されるフレームに基づく通信メッセージを相互に送信及び受信可能になっている。
【００４３】
第１及び第２のＥＣＵ１０，２０の各情報処理装置１１，２１は、演算装置（ＣＰＵ）や記憶装置を有するマイクロコンピュータを含み構成されている。つまり情報処理装置１１，２１には、制御用プログラムの演算処理を実行する演算装置と、その制御用プログラムやデータなどが記憶された読み出し専用メモリ（ＲＯＭ）と、演算装置の演算結果が一時的に記憶される揮発性メモリ（ＲＡＭ）とが設けられている。これにより、情報処理装置１１は、記憶装置に保持されている制御用プログラムを演算装置に読み込み、実行することで、制御対象に対して所定の機能を提供して当該制御対象の制御を行なう。
【００４４】
次に、第１のＥＣＵ１０の情報処理装置１１について説明する。
図３に示すように、情報処理装置１１は、通信メッセージの信頼性の確認に用いるチェックビットＣＢ（図６参照）を生成するチェックビット生成部３０と、通信メッセージ中にチェックビットＣＢを格納する位置を決定する格納位置決定部３１とを備える。また、情報処理装置１１は、決定された位置にチェックビットＣＢを格納した通信データを含むフレームを生成するフレーム生成部３２と、各種処理に用いられるデータを保持する記憶部３３とを備える。なお、情報処理装置１１は、記憶装置に保持されているチェックビットＣＢを生成するプログラム、チェックビットＣＢを格納する位置を決定するプログラム、チェックビットＣＢを格納した通信データを含むデータフレームを生成するプログラムをそれぞれ演算装置に読み込み、実行させる。これにより情報処理装置１１には、前述したチェックビット生成部３０、格納位置決定部３１、及びフレーム生成部３２の機能が設けられる。
【００４５】
記憶部３３は、情報処理装置１１の記憶装置の全部もしくは一部より構成されている。記憶部３３は、セキュリティ確保の対象とするメッセージＩＤが設定された対象メッセージＩＤリスト３４と、チェックビットＣＢの値を変更させるルールが設定されたチェックビットルールリスト３５とを備える。また、記憶部３３は、チェックビットＣＢを格納する位置としての格納位置を決めるルールが設定された格納位置ルールリスト３６と、格納位置の変化が履歴として設定される格納位置履歴リスト３７とを備える。
【００４６】
対象メッセージＩＤリスト３４は、チェックビットＣＢと、そのチェックビットＣＢの格納位置の変更とによりセキュリティを確保させるメッセージＩＤが設定されている。よって、情報処理装置１１は、通信データに対応するメッセージＩＤが対象メッセージＩＤリスト３４に設定されている場合、チェックビットＣＢの決定、及びチェックビットＣＢの格納位置の決定を行う。一方、対応するメッセージＩＤが対象メッセージＩＤリスト３４に設定されていない場合、チェックビットＣＢを含まない通信メッセージを生成する。
【００４７】
チェックビットルールリスト３５は、チェックビットＣＢを変化させるルールが定められている。本実施形態では、１ビットのチェックビットＣＢが送信毎に変化するルール、つまりチェックビットＣＢが「０１０１０１０１・・・」と変化するルールが設定されている。なお、チェックビットルールは、数式等で設定されていてもよいし、チェックビット列そのものが設定されていてもよい。また、数式等や、チェックビット列がプログラムに含まれていたとしてもよい。よって情報処理装置１１は、チェックビットルールリスト３５と送信回数とに基づいて、この通信データに含ませるチェックビットＣＢが「０」か「１」かを決定する。
【００４８】
図５に示すように、格納位置ルールリスト３６には、通信データにおけるチェックビットＣＢの格納位置を決定するルールが規定されている。本実施形態では、格納位置ルールリスト３６には、通信回数と格納位置としてのビット位置とが関連付けられて設定されている。
【００４９】
図６に示すように、本実施形態では、データフィールドには、格納位置にすることができるビット位置として３つビット位置Ｐ１，Ｐ２，Ｐ３が予め設定されている。
そして、格納位置ルールリスト３６は格納位置として、通信回数「１」回目にビット位置「Ｐ１」が、通信回数「２」回目にビット位置「Ｐ２」が、通信回数「３」回目にビット位置「Ｐ３」が設定されている。同様に、格納位置ルールリスト３６は通信回数と格納位置との関係として、「４」回目にビット位置「Ｐ１」が、「５」回目にビット位置「Ｐ２」が、「６」回目にビット位置「Ｐ３」が設定されている。なお、格納位置ルールリスト３６に「６」回目より後の回数とそのときのビット位置とを設定してもよいし、設定は「６」回目までとし情報処理装置１１が「６」回目の次は「１」回目に戻るように処理してもよい。なお、本実施形態では、ビット位置「Ｐ１」はデータフィールドの最初から５ビット目、ビット位置「Ｐ２」はデータフィールドの最初から１４ビット目、ビット位置「Ｐ３」はデータフィールドの最初から１０ビット目であるが、それぞれのビット位置は何ビット目であってもよい。
【００５０】
つまり、情報処理装置１１は、格納位置ルールリスト３６に基づいて、通信回数に応じてそれら３つのビット位置Ｐ１，Ｐ２，Ｐ３から１つのビット位置を格納位置として決定する。
【００５１】
図３に示すように、格納位置履歴リスト３７は、格納位置ルールリスト３６に基づいて定められた格納位置が記憶される。例えば、格納位置履歴リスト３７には、今回の格納位置「Ｐ３」、１回前の格納位置「Ｐ２」、２回前の格納位置「Ｐ１」、・・・というように格納位置の履歴が記憶される。例えば、この格納位置履歴リスト３７に記憶されている格納位置の履歴に基づいて、次の格納位置を確認することもできる。本実施形態であれば、最新の格納位置が「Ｐ３」であれば、次の格納位置は「Ｐ１」であると確認することができる。なお、本実施形態では、格納位置履歴リスト３７は無くてもよい。
【００５２】
チェックビット生成部３０は、チェックビットルールリスト３５に基づいてこれから送信しようとする通信データに含ませるチェックビットＣＢを生成する。本実施形態では、チェックビット生成部３０は、前回のチェックビットＣＢが「０」であれば「１」を生成し、前回のチェックビットＣＢが「１」であれば「０」を生成する。
【００５３】
格納位置決定部３１は、格納位置ルールリスト３６に基づいて、これから送信しようとする通信データに含ませるチェックビットＣＢを格納する格納位置を決定する。本実施形態では、格納位置決定部３１は、通信回数「１」回目ならビット位置「Ｐ１」を格納位置と決定し、通信回数「２」回目ならビット位置「Ｐ２」を格納位置と決定し、通信回数「３」回目ならビット位置「Ｐ３」を格納位置と決定する。以降同様に、格納位置決定部３１は、通信回数「４」回目ならビット位置「Ｐ１」を格納位置と決定し、通信回数「５」回目ならビット位置「Ｐ２」を格納位置と決定し、通信回数「６」回目ならビット位置「Ｐ３」を格納位置と決定する。なお、格納位置決定部３１は、通信回数「６」回目の次は、通信回数「１」回目に戻して処理を繰り返す。
【００５４】
フレーム生成部３２は、チェックビット生成部３０が生成したチェックビットＣＢと、格納位置決定部３１が決定した格納位置に基づいて、決定された格納位置にチェックビットＣＢを含むデータフィールドを有するデータフレームＦｄを作成する。
【００５５】
図６に示すように、本実施形態では、フレーム生成部３２は、「１」のチェックビットＣＢと「Ｐ１」のビット位置とを受けると、１回目のデータフィールドに示すように、ビット位置「Ｐ１」に「１」をチェックビットＣＢとして格納したデータフィールドを有するデータフレームＦｄを生成する。また、フレーム生成部３２は、「０」のチェックビットＣＢと「Ｐ２」のビット位置とを受けると、２回目のデータフィールドに示すように、ビット位置「Ｐ２」に「０」をチェックビットＣＢとして格納したデータフィールドを有するデータフレームＦｄを生成する。さらに、フレーム生成部３２は、「１」のチェックビットＣＢと「Ｐ３」のビット位置とを受けると、３回目のデータフィールドに示すように、ビット位置「Ｐ３」に「１」をチェックビットＣＢとして格納したデータフィールドを有するデータフレームＦｄを生成する。本実施形態では、ビット位置Ｐ１にチェックビットＣＢが格納されたとき、他のビット位置Ｐ２，Ｐ３は通信データの格納に用いられる。同様に、ビット位置Ｐ２にチェックビットＣＢが格納されたとき、他のビット位置Ｐ１，Ｐ３は通信データの格納に用いられ、ビット位置Ｐ３にチェックビットＣＢが格納されたとき、他のビット位置Ｐ２，Ｐ３は通信データの格納に用いられる。これにより、本実施形態のチェックビットＣＢを用いたセキュリティ確保の方法が、データフィールドを占有するバイト数を少なくすることができる。つまり、このセキュリティ確保の方法であれば、データフィールド中に通信データを格納することのできるバイト数をより多く確保することができる。また、通信用バス５０における通信メッセージの通信負荷の増加も少なく抑えられる。
【００５６】
次に、第２のＥＣＵ２０の情報処理装置２１について説明する。
図４に示すように、情報処理装置２１は、通信メッセージの信頼性の確認に用いるチェックビットＣＢの正／不正を判定するチェックビット判定部４０と、通信メッセージ中のチェックビットＣＢが格納されている位置を判定する格納位置判定部４１とを備える。また、情報処理装置２１は、チェックビットＣＢが格納された通信データを含むデータフレームを取得するフレーム取得部４２と、各種処理に用いられるデータを保持する記憶部４３とを備える。なお、情報処理装置２１は、記憶装置に保持されているチェックビットＣＢの正／不正を判定するプログラム、チェックビットＣＢが格納されている位置を判定するプログラム、チェックビットＣＢが格納された通信データを含むデータフレームを取得するプログラムをそれぞれ演算装置に読み込み、実行させる。これにより情報処理装置２１には、前述したチェックビット判定部４０、格納位置判定部４１、及びフレーム取得部４２の機能が設けられる。
【００５７】
記憶部４３は、情報処理装置２１の記憶装置の全部もしくは一部より構成されている。記憶部４３は、セキュリティ確保の対象となるメッセージＩＤが設定された対象メッセージＩＤリスト４４と、チェックビットＣＢの値の変更ルールが設定されたチェックビットルールリスト４５とを備える。また、記憶部４３は、チェックビットＣＢの格納位置を決めるルールが設定された格納位置ルールリスト４６と、格納位置の変化が履歴として設定される格納位置履歴リスト４７とを備える。
【００５８】
対象メッセージＩＤリスト４４は、チェックビットＣＢと、そのチェックビットＣＢの格納位置の変更とによりセキュリティを確保させるメッセージＩＤが設定されている。対象メッセージＩＤリスト４４に設定されているメッセージＩＤは、第１のＥＣＵ１０の対象メッセージＩＤリスト３４に設定されているメッセージＩＤと同じである。なお、第２のＥＣＵ２０では使用されないメッセージＩＤは含まれていなくてもよいし、第１のＥＣＵ１０以外から送信されるメッセージＩＤが含まれていてもよい。よって情報処理装置２１は、取得された通信メッセージのメッセージＩＤが対象メッセージＩＤリスト４４に設定されているか否かを判断する。そして、情報処理装置２１は、通信メッセージのメッセージＩＤが対象メッセージＩＤリスト４４に設定されている場合、チェックビットＣＢの格納位置の判定、及びチェックビットＣＢの正／不正の判定を行う。一方、情報処理装置２１は、通信メッセージのメッセージＩＤが対象メッセージＩＤリスト４４に設定されていない場合、チェックビットＣＢを含まない通信メッセージとして処理する。
【００５９】
チェックビットルールリスト４５は、チェックビットＣＢを変化させるルールが定められている。なお、このチェックビットルールリスト４５には、第１のＥＣＵ１０のチェックビットルールリスト３５と同じ内容が設定されている。つまり、本実施形態では、１ビットのチェックビットＣＢが送信毎に変化するルール、つまりチェックビットＣＢが「０１０１０１０１・・・」と変化するルールが設定されている。なお、このチェックビットルールは、第１のＥＣＵ１０のチェックビットルールリスト３５と同じ内容であれば、数式等で設定されていてもよいし、チェックビット列そのものが設定されていてもよい。また、数式等や、チェックビット列がプログラムに含まれていたとしてもよい。よって情報処理装置２１は、チェックビットルールリスト４５を参照して、取得した通信データに含まれているべきチェックビットＣＢが「０」か「１」かを受信回数に基づいて判断することができる。
【００６０】
図５に示すように、格納位置ルールリスト４６には、通信データにおけるチェックビットＣＢの格納位置を決定するルールが規定されている。本実施形態では、格納位置ルールリスト４６には、通信回数と格納位置としてのビット位置との関連付けが設定されているが、第１のＥＣＵ１０の格納位置ルールリスト３６と同じ内容であるため、格納位置ルールリスト４６についての詳細な説明は割愛する。なお、格納位置ルールリスト４６に設定規則は、格納位置ルールリスト３６に設定されているルール（規則）であればよい。
【００６１】
そして情報処理装置２１は、格納位置ルールリスト４６に基づいて、通信回数に応じて３つのビット位置Ｐ１，Ｐ２，Ｐ３から１つのビット位置を格納位置として判定する。
図４に示すように、格納位置履歴リスト４７は、格納位置ルールリスト４６に基づいて受信した通信メッセージに判定した格納位置が記憶される。つまり、格納位置履歴リスト４７には、１回前の格納位置として「Ｐ２」、２回前の格納位置として「Ｐ１」、・・・というように格納位置の履歴が記憶される。例えば、この格納位置履歴リスト４７に記憶されている格納位置の履歴に基づいて、今回の格納位置を確認することもできる。本実施形態であれば、１回前の格納位置が「Ｐ２」であれば、今回の格納位置は「Ｐ３」であると確認することができる。なお、本実施形態では、格納位置履歴リスト４７は無くてもよい。
【００６２】
フレーム取得部４２は、ＣＡＮコントローラ２２から通信メッセージを取得するとともに、取得した通信メッセージ（データフレームＦｄ）からデータフィールド（通信データ）を抽出する。フレーム取得部４２は、抽出した通信データを、格納位置判定部４１とチェックビット判定部４０とに与える。
【００６３】
図６に示すように、本実施形態では、フレーム取得部４２は、１回目の通信メッセージから、１回目のデータフィールド（通信データ）を抽出し、２回目の通信メッセージから、２回目のデータフィールドを（通信データ）を抽出し、３回目の通信メッセージから、３回目のデータフィールドを（通信データ）を抽出する。また、フレーム取得部４２は、４回目の通信メッセージから、４回目のデータフィールドを（通信データ）を抽出し、５回目の通信メッセージから、５回目のデータフィールドを（通信データ）を抽出し、６回目の通信メッセージから、６回目のデータフィールドを（通信データ）を抽出する。
【００６４】
図４に示すように、格納位置判定部４１は、格納位置ルールリスト４６に基づいて、今回受信した通信データに含まれているチェックビットＣＢが格納されている格納位置を判定する。本実施形態では、格納位置判定部４１は格納位置を、通信回数「１」回目ならビット位置「Ｐ１」と判定し、通信回数「２」回目ならビット位置「Ｐ２」と判定し、通信回数「３」回目ならビット位置「Ｐ３」と判定する。以降同様に、格納位置判定部４１は格納位置を、通信回数「４」回目ならビット位置「Ｐ１」と判定し、通信回数「５」回目ならビット位置「Ｐ２」と判定し、通信回数「６」回目ならビット位置「Ｐ３」と判定する。なお、格納位置判定部４１は、通信回数「６」回目の次は、通信回数「１」回目に戻るという処理を繰り返す。
【００６５】
チェックビット判定部４０は、格納位置判定部４１から格納位置を取得するとともに、チェックビットルールリスト４５に基づいて今回受信した通信データに含まれているチェックビットＣＢの正／不正を判定する。本実施形態では、チェックビット判定部４０は、前回のチェックビットＣＢが「０」であれば今回は「１」が正しいと判定し、前回のチェックビットＣＢが「１」であれば今回は「０」が正しいチェックビットＣＢであると判定する。
【００６６】
図７に示すように、チェックビット判定部４０は、１回目のデータフィールドのビット位置「Ｐ１」からチェックビット「１」を取得し、このチェックビットＣＢの正／不正をチェックビットルールリスト４５に基づいて判定する。なお、１回目以前はチェックビット「０」であるとみなせば、１回目のチェックビット「１」は正しいチェックビットＣＢと判定される。次に通信メッセージが取得されると、チェックビット判定部４０は、２回目のデータフィールドのビット位置「Ｐ２」からチェックビット「０」を取得し、このチェックビットＣＢの正／不正をチェックビットルールリスト４５に基づいて判定する。１回目のチェックビットは「１」であるとすると、２回目のチェックビット「０」は正しいチェックビットＣＢと判定される。その次に通信メッセージが取得されると、チェックビット判定部４０は、３回目のデータフィールドのビット位置「Ｐ３」からチェックビット「１」を取得し、このチェックビットＣＢの正／不正をチェックビットルールリスト４５に基づいて判定する。２回目のチェックビットは「０」であるとすると、３回目のチェックビット「１」は正しいチェックビットＣＢと判定される。
【００６７】
なお、１回だけ不正と判定したとき、通信異常と決定してしまうこともできるし、不正と判定された回数を計数し、計数した回数が所定の閾値を越えたとき通信異常と判定してもよい。
【００６８】
作用について説明する。
第１のＥＣＵ１０では、第２のＥＣＵ２０に伝達すべき車両情報等を含む通信データが情報処理装置１１に入力される。情報処理装置１１は、当該入力された通信データに対応するメッセージＩＤを選択する。
【００６９】
そして、本実施形態では、情報処理装置１１は、通信データに対応するものとして選択されたメッセージＩＤが対象メッセージＩＤリスト３４に設定されているか否かを判断する。そして、選択したメッセージＩＤが対象メッセージＩＤリスト３４に設定されていない場合、情報処理装置１１では、入力された通信データからチェックビットＣＢを含まない通信メッセージを生成する。
【００７０】
一方、選択したメッセージＩＤが対象メッセージＩＤリスト３４に設定されている場合、情報処理装置１１は、チェックビットＣＢの決定、及びチェックビットＣＢの格納位置の決定を行う。
【００７１】
つまり、情報処理装置１１は、チェックビットルールリスト３５を参照して、この通信データに含ませるべきチェックビットＣＢが「０」か「１」かを、当該メッセージＩＤを有する通信データの送信回数に基づいて決定する。
【００７２】
続いて、情報処理装置１１は、格納位置ルールリスト３６を参照して、この通信データにおいてチェックビットＣＢを配置させる配置位置を、これも、当該メッセージＩＤを有する通信データの送信回数に基づいて決定する。
【００７３】
そして、情報処理装置１１は、格納位置にチェックビットＣＢの格納された通信データに基づいて通信メッセージを生成し、この生成された通信メッセージを通信用バス５０へ送信する。
【００７４】
第２のＥＣＵ２０では、通信メッセージを受信すると、当該受信した通信メッセージを取得した情報処理装置２１は、通信メッセージに含まれているメッセージＩＤが対象メッセージＩＤリスト４４に設定されているメッセージＩＤか否かを判断する。そして、通信メッセージのメッセージＩＤが対象メッセージＩＤリスト４４に設定されていない場合、チェックビットＣＢを含まない通信メッセージとして処理を行う。
【００７５】
一方、通信メッセージのメッセージＩＤが対象メッセージＩＤリスト４４に設定されている場合、チェックビットＣＢの格納位置の判定、及びチェックビットＣＢの正／不正の判定を行う。
【００７６】
つまり、情報処理装置２１は、格納位置ルールリスト４６を参照して、この通信データにおいてチェックビットＣＢが配置されている配置位置を、当該メッセージＩＤを有する通信データの受信回数に基づいて判定する。
【００７７】
続いて、情報処理装置２１は、判定された配置位置からチェックビットＣＢを取得するとともに、受信回数に基づく正しいチェックビットＣＢをチェックビットルールリスト４５に基づいて取得する。そして、配置位置から取得されたチェックビットＣＢと、チェックビットルールリスト４５に基づいて取得された正しいチェックビットＣＢとを比較して、一致していれば通信メッセージは正しい、つまり信頼性が高いと判断し、不一致であれば通信メッセージは不正、つまり信頼性が低いと判断する。
【００７８】
本実施形態の通信システムでは、１ビットのチェックビットＣＢと、そのチェックビットＣＢの配置される配置位置の決定及び判定により通信メッセージのセキュリティを確保する。また、この通信システムによるチェックビットＣＢを用いたセキュリティ確保の方法であれば、データフィールドを占有するバイト数を少なくすることができるため、データフィールド中に通信データを格納することのできるバイト数をより多く確保することができる。また、通信用バス５０における通信メッセージの通信負荷の増加も少なく抑えられる。
【００７９】
以上説明したように、本実施形態に係る通信装置を備える通信システムは、以下に列記する効果を有する。
（１）通信メッセージ中に複数あるチェックビットＣＢを格納させることのできる位置のうちの１つがチェックビットＣＢを格納させる格納位置として決定されるため、通信メッセージに含まれるチェックビットＣＢの位置を判定することが難しくなる。つまり、チェックビットＣＢを用いての通信メッセージの信頼性の確保、いわゆるセキュリティの向上が図られるようになる。これにより、たとえ通信メッセージが盗聴されていたとしても正しいチェックビットＣＢを推定することが難しくなる。例えば、不正な通信メッセージが「正しい位置」に「正しいチェックビット」を格納させることが困難になり、なりすましの通信メッセージによる通信を防ぐことができるようになるなど不正な通信メッセージによる通信が困難になる。
【００８０】
また、第２のＥＣＵ２０の情報処理装置２１の格納位置判定部４１は、第１のＥＣＵ１０の格納位置決定部３１の決定に対応するようにチェックビットＣＢの格納位置を判定する。例えば、格納位置判定部４１は、格納位置決定部３１がチェックビットＣＢの格納位置の決定に用いる規則（格納位置ルールリスト３６）に対応する規則（格納位置ルールリスト４６）に基づいて通信メッセージにおけるチェックビットＣＢの格納位置を判定する。これにより、第１のＥＣＵ１０が決定したチェックビットＣＢの格納位置を、第２のＥＣＵ２０が判定できる。このため、この通信システムでは、チェックビットＣＢの格納位置が変更される通信メッセージから適切に取得されるチェックビットＣＢに基づいて、第１のＥＣＵ１０と第２のＥＣＵ２０との間で通信される通信メッセージのセキュリティが確保されるようになる。なお、チェックビットＣＢの格納位置を決定／判定するための演算負荷は、秘密鍵や暗号鍵を用いる際に必要な演算負荷が少なくて済むため、演算負荷の増大も抑えられるようになる。
【００８１】
（２）データフィールドの大きさが最大で６４ビットしかないコントローラエリアネットワーク（ＣＡＮ）においては、セキュリティ確保のために多くのビットを利用することはできない。
【００８２】
上記のようにデータフィールドの複数の位置から決定された１つの格納位置にチェックビットＣＢを格納させるようにすることで、１ビット長のチェックビットＣＢを用いたとしても、盗聴された通信メッセージから、該チェックビットＣＢの格納されるチェックビットＣＢの格納位置を推定することが困難である。このために正しいチェックビットＣＢを得ることができない。つまり、不正な通信メッセージの生成が難しいため通信メッセージに必要とされるセキュリティが確保されるようになる。
【００８３】
また、ビット数の少ないチェックビットＣＢの演算処理や、６４ビット以下のビットのうちからチェックビットＣＢの格納位置を決定したり判定したりする演算処理なども演算負荷が抑えられるため、ＣＡＮの通信ネットワークに接続されている情報処理装置の現状の演算処理能力をそのまま利用することができる。
【００８４】
さらに、少ないビット数でセキュリティが確保されるため通信メッセージの増加も抑制される。よって、ネットワークシステムの通信状態が好適に維持されるとともに、システム全体に及ぼす影響も少ない。
【００８５】
（３）チェックビットＣＢの格納位置の決定／判定に際して通信メッセージの送信回数と受信回数とを考慮するようにすることで、通信メッセージを途中から盗聴してもチェックビットＣＢの格納位置の推定が困難となり、セキュリティがより好適に確保されるようになる。
【００８６】
（第２の実施形態）
次に、本実施形態に係る通信装置を備えた通信システムについて、図８及び図９を参照して説明する。
【００８７】
本実施形態は、チェックビットＣＢの格納位置の判定にデータフレームに含まれるデータの一部を利用する構成が、第１の実施形態の構成と相違するもののそれ以外の構成については第１の実施形態の構成と同様である。このことから、以下では上述の相違点を中心に説明し、説明の便宜上、同様の構成については詳細な説明を割愛する。
【００８８】
前述のように、第１のＥＣＵ１０は、記憶部３３に格納位置ルールリスト３６Ａを備える。
図８に示すように、格納位置ルールリスト３６Ａには、通信データにおけるチェックビットＣＢの格納位置を決定するルールが規定されている。本実施形態では、格納位置ルールリスト３６Ａには、３ビットのビット列と格納位置としてのビット位置とが関連付けて設定されている。この３ビットのビット列は、通信データの一部と比較されることにより、比較された通信データの一部との一致／不一致の判定に用いられる。
【００８９】
図９に示すように、本実施形態では、データフィールドには、予め、格納位置にすることができるビット位置として３つビット位置Ｐ１，Ｐ２，Ｐ３が設定されている。また、データフィールドには、格納位置の判定に利用する通信データの一部として参照位置Ｐｄが予め設定されている。
【００９０】
本実施形態では、参照位置Ｐｄに対応するデータと一致するビット列を、格納位置ルールリスト３６Ａのビット列から選択し、この選択したビット列に関連付けられているビット位置を格納位置として決定する。なお、本実施形態では、参照位置Ｐｄと格納位置となる３つビット位置Ｐ１，Ｐ２，Ｐ３とが重ならないように設定されている。
【００９１】
つまり、格納位置決定部３１は、送信したい通信データのうち参照位置Ｐｄとされている最初の３ビットを参照し、その参照位置Ｐｄのビット列に一致するビット位置を格納位置ルールリスト３６Ａから取得し、その取得したビット位置を格納位置に決定する。本実施形態では、格納位置決定部３１は、参照位置Ｐｄの３ビットが「０００」であるとき、ビット位置Ｐｘを格納位置として決定する。なお、ビット位置Ｐｘは、前回と同じビット位置であり、前回がない場合、例えばビット位置Ｐ１とする。同様に、格納位置決定部３１は格納位置を、参照位置Ｐｄの３ビットが「００１」であるときビット位置Ｐ３に決定し、参照位置Ｐｄの３ビットが「０１０」であるときビット位置Ｐ２に決定し、参照位置Ｐｄの３ビットが「１００」であるときビット位置Ｐ１に決定する。また同様に、格納位置決定部３１は格納位置を、参照位置Ｐｄの３ビットが「０１１」であるときビット位置Ｐ１に決定し、参照位置Ｐｄの３ビットが「１０１」であるときビット位置Ｐ２に決定し、参照位置Ｐｄの３ビットが「１１０」であるときビット位置Ｐ３に決定する。さらに同様に、格納位置決定部３１は格納位置を、参照位置Ｐｄの３ビットが「１１１」であるときビット位置Ｐｘに決定する。
【００９２】
図９に示すように、１回目のデータフィールドの参照位置Ｐｄのビット列が「１００」である場合、ビット位置Ｐ１が格納位置と決定され、この決定された格納位置に１回目のチェックビットＣＢとして「１」が格納される。また、２回目のデータフィールドの参照位置Ｐｄのビット列が「０１０」である場合、ビット位置Ｐ２が格納位置と決定され、この決定された格納位置に２回目のチェックビットＣＢとして「０」が格納される。さらに、３回目のデータフィールドの参照位置Ｐｄのビット列が「００１」である場合、ビット位置Ｐ３が格納位置と決定され、この決定された格納位置に３回目のチェックビットＣＢとして「１」が格納される。
【００９３】
前述のように、第２のＥＣＵ２０は、記憶部４３に格納位置ルールリスト４６Ａを備える。
図８に示すように、本実施形態では、格納位置ルールリスト４６Ａには、第１のＥＣＵ１０の格納位置ルールリスト３６Ａに設定されているルールに対応するルールがチェックビットＣＢの格納位置を判定するルールとして規定されている。格納位置ルールリスト４６Ａに設定されているルールは、格納位置を判定することができるのであれば格納位置ルールリスト３６Ａに設定されているものと同じでもよい。
【００９４】
本実施形態では、格納位置判定部４１は、取得されたデータフィールドの参照位置Ｐｄに対応するデータを、格納位置ルールリスト３６Ａのビット列と比較し、一致するビット列に対して割り当てられているビット位置を格納位置として決定する。
【００９５】
図９に示すように、格納位置判定部４１は、取得された１回目のデータフィールドの参照位置Ｐｄのビット列が「１００」であることに基づいてビット位置「Ｐ１」を格納位置と判定する。同様に、格納位置判定部４１は、取得された２回目のデータフィールドの参照位置Ｐｄのビット列が「０１０」であることに基づいてビット位置「Ｐ２」を格納位置と判定し、取得された３回目のデータフィールドの参照位置Ｐｄのビット列が「００１」であることに基づいてビット位置Ｐ３を格納位置と判定する。
【００９６】
チェックビット判定部４０は、格納位置判定部４１から判定された格納位置を取得するとともに、チェックビットルールリスト４５に基づいて今回受信した通信データに含まれているチェックビットＣＢの正／不正を判定する。つまり、チェックビット判定部４０は、１回目のデータフィールドのビット位置「Ｐ１」からチェックビット「１」を取得し、このチェックビットＣＢの正／不正をチェックビットルールリスト４５に基づいて判定する。次に通信メッセージが取得されると、チェックビット判定部４０は、２回目のデータフィールドのビット位置「Ｐ２」からチェックビット「０」を取得し、このチェックビットＣＢの正／不正をチェックビットルールリスト４５に基づいて判定する。その次に通信メッセージが取得されると、チェックビット判定部４０は、３回目のデータフィールドのビット位置「Ｐ３」からチェックビット「１」を取得し、このチェックビットＣＢの正／不正をチェックビットルールリスト４５に基づいて判定する。
【００９７】
つまり、本実施形態でも、通信システムは、１ビットのチェックビットＣＢと、そのチェックビットＣＢの配置される配置位置の決定及び判定により通信メッセージのセキュリティを確保することができる。
【００９８】
以上説明したように、本実施形態の通信装置を備えた通信システムによれば、先の第１の実施形態で記載した効果（１）〜（３）に加え、以下に列記するような効果が得られるようになる。
【００９９】
（４）チェックビットＣＢの格納位置が通信メッセージに含まれるデータに基づいて定められることで、第１のＥＣＵ１０の情報処理装置１１と第２のＥＣＵ２０の情報処理装置２１との間で格納位置の決定／判定に関する条件を簡単に同期させることができるようになる。
【０１００】
また、通信メッセージに含まれるデータは不規則に変化することが多いため、このようなデータを用いることによってチェックビットＣＢの格納位置が不規則に変化することも期待される。つまり、たとえ通信メッセージが盗聴されていたとしても、チェックビットＣＢの格納位置が不規則に変化することによってチェックビットＣＢの格納位置の推定が困難になるため、チェックビットＣＢの取得も困難となり、チェックビットＣＢにより確保されるセキュリティのより一層の向上が図られるようになる。
【０１０１】
（５）通信メッセージにおいて、チェックビットＣＢの格納位置と、当該チェックビットＣＢの格納位置を決定するためのデータの一部の位置とを相違させることにより、チェックビットＣＢの格納位置の決定に際し、チェックビットＣＢが干渉することがない。これにより、チェックビットＣＢの格納位置の決定に関する処理が簡単になる。
【０１０２】
（その他の実施形態）
なお上記各実施形態は、以下の態様で実施することもできる。
・上記各実施形態では、各ビット位置Ｐ１，Ｐ２，Ｐ３のうち、格納位置とされなかったビット位置には通信データが格納される場合について例示した。しかしこれに限らず、格納位置とされなかったビット位置には、通信データではなく、ダミーデータを入れてもよい。これにより、盗聴されたとしても、格納位置の位置の取得や、格納位置に格納されるチェックビットの取得が難しくなり、通信メッセージのセキュリティが維持される。
【０１０３】
・上記各実施形態では、格納位置となるビット位置の数が３箇所である場合について例示した。しかしこれに限らず、格納位置となるビット位置の数が２箇所以下でも、４箇所以上でもよい。これにより、通信システムの設計自由度の向上が図られるようになる。
【０１０４】
・上記第１の実施形態では、格納位置ルールリスト３６，４６に設定されている通信回数とビット位置との関係が、図５に示されるような関係である場合について例示した。しかしこれに限らず、通信回数とビット位置との関係が明らかでさえあれば、格納位置ルールリストに設定されている通信回数とビット位置との関係に制限はない。
【０１０５】
図１１に示すように、決定及び判定される格納位置が格納位置ルールリスト３６Ｂ，４６Ｂのように設定されてもよい。つまり格納位置ルールリスト３６Ｂ，４６Ｂに格納位置が、通信回数「１」回目はビット位置「Ｐ３」、通信回数「２」回目はビット位置「Ｐ２」、通信回数「３」回目はビット位置「Ｐ１」、通信回数「４」回目はビット位置「Ｐ３」、通信回数「５」回目はビット位置「Ｐ２」、通信回数「６」回目はビット位置「Ｐ１」と設定されていてもよい。
【０１０６】
図１２に示すように、決定及び判定される格納位置が格納位置ルールリスト３６Ｃ，４６Ｃのように設定されてもよい。つまり格納位置ルールリスト３６Ｃ，４６Ｃに格納位置が、通信回数「１」回目はビット位置「Ｐ２」、通信回数「２」回目はビット位置「Ｐ３」、通信回数「３」回目はビット位置「Ｐ１」、通信回数「４」回目はビット位置「Ｐ２」、通信回数「５」回目はビット位置「Ｐ１」、通信回数「６」回目はビット位置「Ｐ３」と設定されていてもよい。
【０１０７】
これにより、通信システムの設計自由度の向上が図られるようになる。
・上記第１の実施形態では、第１のＥＣＵ１０の送信回数及び第２のＥＣＵの受信回数、つまり通信回数に基づいて格納位置の決定及び判定、チェックビットＣＢの決定及び正／不正の判定を行うようにした。つまり、通信回数で格納位置の決定及び判定、チェックビットＣＢの決定及び正／不正の判定に必要とされる同期が確保されていた。しかしながら、第１のＥＣＵ１０から送信された通信メッセージにエラーフレームが発生すると、エラーフレームが生じた通信メッセージは第２のＥＣＵ２０では受信されない。このため、第１のＥＣＵ１０の送信回数は１回増加する一方、第２のＥＣＵ２０の受信回数はそのままとなり、送信回数と受信回数とに相違が生じる、つまり通信回数の計数の同期がずれるおそれがある。
【０１０８】
図１０に示すように、第１のＥＣＵ１０から送信された通信メッセージにエラーフレームが発生した場合、第１のＥＣＵ１０がそのエラーフレームを検知したことに基づいて、送信回数を元に戻す、つまり１つ減らしてもよい。これにより、たとえ通信メッセージにエラーフレームが発生したとしても、送信回数と受信回数との計数の同期が維持され、本実施形態におけるチェックビットの格納位置の決定及び判定が同期を維持し通信メッセージのセキュリティが好適に確保されるようになる。
【０１０９】
・上記第２の実施形態では、参照位置Ｐｄはデータフィールドの最初の３ビットである場合について例示した。しかしこれに限らず、参照位置は、データフィールドに含まれるのであれば、データフィールドの最初以外の位置であってもよい。
【０１１０】
また、上記第２の実施形態では、参照位置Ｐｄは連続する３ビットである場合について例示した。しかしこれに限らず、参照位置は、必要なビット数を取得できるように指示するものであれば一部または全部が連続しない３ビットであってもよい。
【０１１１】
さらに、上記第２の実施形態では、参照位置Ｐｄは３ビットである場合について例示した。しかしこれに限らず、参照位置は、２ビット以下でもよいし、４ビット以上でもよい。少なくなれば演算負荷が一層軽減され、多くなればセキュリティの向上が図られる。
【０１１２】
図１３に示す格納位置ルールリスト３６Ｄ，４６Ｄは、ビット列が２ビットの場合における、ビット列とビット位置との関係が設定されている。ビット列が２ビットの場合でも、ビット位置を４つ指定することができる。例えば、ビット列「００」のときはビット位置「Ｐ３」が設定され、ビット列「０１」のときはビット位置「Ｐ２」が設定され、ビット列「１０」のときビット位置「Ｐ１」が設定され、ビット列「１１」のときビット位置「Ｐｘ」が設定されている。
【０１１３】
これらの態様のうち少なくとも１つ以上の態様によっても、通信システムの設計自由度の向上が図られるとともに、適用範囲の拡大も期待されるようになる。
・上記第２の実施形態では、参照位置Ｐｄのビット列と格納位置とが重ならない場合について例示した。しかしこれに限らず、参照位置のビット列と格納位置とが重なってもよい。参照位置のビット列と格納位置とが重なったとしても、格納位置に含めるべきチェックビットが予め定まっていれば、当該チェックビットが重なった場合における参照位置のビット列を予測することができるため、格納位置を決定することも可能である。これにより、通信システムの設計自由度の向上が図られる。
【０１１４】
・上記第２の実施形態では、参照位置Ｐｄから取得した３ビットをそのままビット位置の決定／判定に用いる場合について例示した。しかしこれに限らず、参照位置Ｐｄから取得される３ビットを変換等してもよい。例えば、送信側及び受信側のそれぞれの情報処理装置に同じ秘密鍵などの変換用の共通の規則を設定しておき、参照位置Ｐｄから取得される３ビットをこの共通の規則に基づいて変換し、この変換した３ビットを格納位置ルールリストに適用して、ビット位置（格納位置）を決定してもよい。
【０１１５】
これにより、たとえ通信メッセージが盗聴されたとしてもチェックビットの格納位置の決定及び判定が困難になる。つまり正しいチェックビットの推定ができなくなるため、不正な通信メッセージによる通信が難しく、通信メッセージのセキュリティが一層向上されるようになる。
【０１１６】
なお、上記第１の実施形態のようにビット位置が通信回数に基づいて決定／判定される場合、通信回数を秘密鍵などで変換し、この変換した通信回数を格納位置ルールリストに適用して、ビット位置を取得するようにしてもよい。これによっても、通信メッセージが盗聴されたとしても格納位置の判定が困難になるため通信メッセージのセキュリティがより一層向上するようになる。
【０１１７】
・上記各実施形態では、通信用バス５０には、第１及び第２のＥＣＵ１０，２０が接続されている場合について例示したが、これに限らず、通信バスには、３つ以上のＥＣＵ等が接続されてもよい。これにより、このような通信システムの適用範囲の拡大が図られる。
【０１１８】
・上記各実施形態では、通信用バス５０に第１及び第２のＥＣＵ１０，２０が接続される場合について例示した。しかしこれに限らず、ネットワークに接続される装置は、ＥＣＵ以外でもよく、例えばゲートウェイやその他各種装置であってもよい。これにより、ネットワークに接続される各種装置に対してもこの通信装置を適用して通信メッセージのセキュリティを向上させることができるようになる。
【０１１９】
・上記各実施形態では、第１及び第２のＥＣＵ１０，２０の間のセキュリティを確保する場合について例示した。しかし、これに限らず、さらに多くのＥＣＵとの間でそれぞれ通信される各通信メッセージのセキュリティを確保するために用いてもよい。これにより、このような通信システムの適用範囲の拡大が図られる。
【０１２０】
・上記各実施形態では、ネットワークがＣＡＮプロトコルに対応するネットワーク、いわゆるＣＡＮネットワークである場合について例示した。しかしこれに限らず、ネットワークは、ＣＡＮネットワーク以外のネットワーク、例えばＥｔｈｅｒｎｅｔ（登録商標）やＦｌｅｘＲａｙ（登録商標）などのネットワークであってもよい。これにより、車両に搭載される各種のネットワークに対してもこの通信装置を適用して送信されるデータの通信量を減少させることができる。
【０１２１】
・上記各実施形態では、車両１は自動車である場合について例示した。しかしこれに限らず、通信システムは自動車の車両以外の移動体、例えば船舶、鉄道、産業機械やロボットなどに設けられていてもよい。
【符号の説明】
【０１２２】
１…車両、１０…第１のＥＣＵ（第１の電子制御装置）、１１…情報処理装置、１２…ＣＡＮコントローラ、２０…第２のＥＣＵ、２１…情報処理装置、２２…ＣＡＮコントローラ、３０…チェックビット生成部、３１…格納位置決定部、３２…フレーム生成部、３３，４３…記憶部、３４，４４…対象メッセージＩＤリスト、３５，４５…チェックビットルールリスト、３６，３６Ａ，３６Ｂ，３６Ｃ，３６Ｄ，４６，４６Ａ，４６Ｂ，４６Ｃ，４６Ｄ…格納位置ルールリスト、３７，４７…格納位置履歴リスト、４０…チェックビット判定部、４１…格納位置判定部、４２…フレーム取得部、５０…通信用バス、ＣＢ…チェックビット、Ｆｄ…データフレーム、Ｐ１…ビット位置、Ｐ２…ビット位置、Ｐ３…ビット位置、Ｐｄ…参照位置、Ｐｘ…ビット位置。
【図１】
2014123816.tif 000003
【図２】
2014123816.tif 000004
【図３】
2014123816.tif 000005
【図４】
2014123816.tif 000006
【図５】
2014123816.tif 000007
【図６】
2014123816.tif 000008
【図７】
2014123816.tif 000009
【図８】
2014123816.tif 000010
【図９】
2014123816.tif 000011
【図１０】
2014123816.tif 000012
【図１１】
2014123816.tif 000013
【図１２】
2014123816.tif 000014
【図１３】
2014123816.tif 000015