JP2019029921A - 送信装置、受信装置、及び通信方法 - Google Patents

送信装置、受信装置、及び通信方法 Download PDF

Info

Publication number
JP2019029921A
JP2019029921A JP2017149678A JP2017149678A JP2019029921A JP 2019029921 A JP2019029921 A JP 2019029921A JP 2017149678 A JP2017149678 A JP 2017149678A JP 2017149678 A JP2017149678 A JP 2017149678A JP 2019029921 A JP2019029921 A JP 2019029921A
Authority
JP
Japan
Prior art keywords
hash value
data frame
data
current
previous
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017149678A
Other languages
English (en)
Other versions
JP6992309B2 (ja
Inventor
敏也 名児耶
Toshiya Nagoya
敏也 名児耶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Industries Corp
Original Assignee
Toyota Industries Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Industries Corp filed Critical Toyota Industries Corp
Priority to JP2017149678A priority Critical patent/JP6992309B2/ja
Publication of JP2019029921A publication Critical patent/JP2019029921A/ja
Application granted granted Critical
Publication of JP6992309B2 publication Critical patent/JP6992309B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

【課題】通信の安全性が確保された通信装置を提供する。【解決手段】送信対象データと、暗号化鍵と、ハッシュ関数とを用いて送信対象データに対する今回ハッシュ値を計算するハッシュ値処理部211と、送信対象データと、今回ハッシュ値と、送信対象データに先立ち前回送信されたデータに対して計算された前回ハッシュ値とを含むデータフレームを生成するデータフレーム生成部213と、データフレームを送信する通信モジュール23とを備えて送信装置2を構成する。【選択図】図1

Description

本発明は、送信装置、受信装置、及び通信方法に関する。
車両に搭載される通信システムは、例えば、AUTOSAR(Automotive Open System Architecture)の仕様書に記載されたE2E(End to End)プロトコルに準拠し得る。該E2Eプロトコルでは、送信装置は、送信対象のデータと共に、CRC(Cyclic Redundancy Check)符号といった誤り検出符号とカウンタ値とをデータフレームに含めて送信する。一方、受信装置は、データフレームに含まれる誤り検出符号とカウンタ値とに基づいて、受信したデータの正しさ(整合性)や受信順序を確認する。
また、特許文献1に記載の通信システムでは、第1の通信ノードは、第2の通信ノードへ送信するデータと、該データの送信順序を表すカウンタ値とに基づいて、該カウンタ値をシードとして、第1の誤り検出符号を計算する。そして、第1の通信ノードは、第1の誤り検出符号とデータとを含むデータフレームを第2の通信ノードへ送信する。一方、第2の通信ノードは、第1の通信ノードからのデータフレームを受信し、受信されたデータフレームに含まれるデータと、該データの受信順序を表すカウンタ値とに基づいて、該カウンタ値をシードとして、第2の誤り検出符号を計算する。そして、第2の通信ノードは、第2の誤り検出符号と、データフレームに含まれる第1の誤り検出符号とが一致するかを判定し、判定結果に基づいて、データフレームに含まれるデータに応じた処理を行う。
なお、関連する技術として、上述した特許文献1の他に、特許文献2〜5に記載の技術が知られている。
特開2013−207600号公報 特開2013−219710号公報 特開2014−056381号公報 特開2016−021623号公報 特表2015−511905号公報
しかしながら、カウンタ値を用いた上述の通信システムでは、カウンタ値は、データフレームが送信される度に、初期値(例えば、1)から所定数(例えば、1)だけ増加又は減少する。このため、例えば、初回のデータフレームを送信する場合や、カウンタ値を取得できない異常によりカウンタ値の初期値が用いられる場合、シードであるカウンタ値を特定することが容易である。この結果、カウンタ値を用いた上述の通信システムでは、例えば、データフレームを傍受してデータフレームを解析し、シードであるカウンタ値を特定した後データを改ざんし、通信を乗っ取ることも容易になる。加えて、例えば、特許文献1に記載の通信システムでは、カウンタ値を生成するための物理的なカウンタが通信ノードに備えられるため、通信ノードのサイズが大きくなり、車両の所定スペースに通信ノードを収納できなくなる虞がある。
本発明の一側面に係る目的は、通信の安全性が確保された通信装置を提供することである。
本発明に係る一つの形態である送信装置は、ハッシュ値処理部、データフレーム生成部、及び通信モジュールを備える。ハッシュ値処理部は、送信対象データと、暗号化鍵と、ハッシュ関数とを用いて送信対象データに対する今回ハッシュ値を計算する。データフレーム生成部は、送信対象データと、今回ハッシュ値と、送信対象データに先立ち前回送信されたデータに対して計算された前回ハッシュ値とを含むデータフレームを生成する。通信モジュールは、データフレームを送信する。
一実施形態に従った送信装置によれば、通信の安全性が確保された通信装置を提供できる。
第1の実施形態に従った通信装置を含む通信システムの構成例を示す図である。 第1の実施形態に従った通信装置が実行する送信処理の例示的フローを示す図である。 第1の実施形態に従った通信装置が生成するデータフレームの構成例を示す図である。 第1の実施形態に従った通信装置が実行する受信処理の例示的フローを示す図である。 第1の実施形態に従った通信装置が実行する受信処理の例示的フローを示す図である。 第1の実施形態に従ったハッシュ値保存リストの一例を示す図である。 第2の実施形態に従った通信装置が実行する受信処理の例示的フローを示す図である。 第2の実施形態に従った通信装置が実行する受信処理の例示的フローを示す図である。 第3の実施形態に従った通信装置が生成するデータフレームの構成例を示す図である。 第4の実施形態に従った通信装置が生成するデータフレームの構成例を示す図である。 第4の実施形態に従った通信装置が実行する送信処理の例示的フローを示す図である。 第4の実施形態に従った通信装置が実行する受信処理の例示的フローを示す図である。 第4の実施形態に従った通信装置が実行する受信処理の例示的フローを示す図である。 第5の実施形態に従った通信装置が生成するデータフレームの構成例を示す図である。 第6の実施形態に従った通信装置が生成するデータフレームの構成例を示す図である。
以下図面に基づいて実施形態について詳細を説明する。
<第1の実施形態>
図1は、第1の実施形態に従った通信装置を含む通信システムの構成例を示す図である。図1に示す構成例では、通信システム1は、複数の通信装置2−1〜2−N(Nは2以上の整数)を含み、複数の通信装置2−1〜2−Nは、通信線3を介して相互に接続する。以下の説明において複数の通信装置2−1〜2−Nを特に区別しない場合には、通信装置2と記載する場合がある。通信システム1は、CAN(Controller Area Network)の仕様に準拠した通信システムであってもよい。
通信装置2は、通信システム1の通信ノードである。通信装置2は、例えば、車両の所定置に搭載される電子制御ユニット(ECU:Electronic Control Unit)等である。以下では、通信装置2は、送信対象データを含むデータフレームを生成して送信する送信機能と、受信対象データを含むデータフレームを受信して処理する受信機能とを備える装置として説明する。しかしながら、通信システム1を構成する複数の通信装置2の内の1つ以上の通信装置2は、受信機能を備えない送信装置であってもよいし、送信機能を備えない受信装置であってもよい。したがって、通信装置2は、実施形態に従った送信装置及び受信装置の一例である。
通信装置2は、制御部21、記憶部22、及び通信モジュール23を含む。制御部21、記憶部22、及び通信モジュール23は、バス24を介して相互に接続する。なお、図1には、通信装置2−1に対してのみ構成要素が便宜的に示されている。しかしながら、その他の通信装置2は、通信装置2−1と同じ構成要素を含んでもよい。また、その他の通信装置2は、通信装置2−1の構成要素の内、送信機能を有する構成要素のみを送信装置として含んでもよいし、受信機能を有する構成要素のみを受信装置として含んでもよい。
制御部21は、例えば、CPU(Central Processing Unit)、マルチコアCPU、又はプログラマブルなデバイス(FPGA(Field Programmable Gate Array)やPLD(Programmable Logic Device)等)により構成される。制御部21は、通信装置2全体の動作を司る。例えば、制御部21は、他の通信装置2へ送信する送信対象データを含むデータフレームを生成する。また、例えば、制御部21は、他の通信装置2から受信したデータフレームに対して所定の処理を実行する。制御部21は、ハッシュ値処理部211、誤り検出符号計算部212、データフレーム生成部213、誤り検出部214、及びデータフレーム処理部215を備える。これらの構成要素211〜215は、相互に連携して所望の処理を実行する。制御部21が備える各構成要素の具体的な動作は後述する。
記憶部22は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)により構成される。記憶部22は、制御部21の処理動作を規定するプログラムや、通信装置2が事前に指定する公開鍵やハッシュ関数、制御部21が処理するデータを記憶する。公開鍵は、通信装置2が送信したデータフレームを示すCAN Identifier Base ID や CAN Identifier 拡張IDであってもよい。さらに、公開鍵は、通信装置2が送信したデータフレームのデータとして受信装置が受信可能な、任意の数値であってもよい。
通信モジュール23は、例えば、変調器や復調器等により構成される。例えば、通信モジュール23は、制御部21が生成したデータフレームを所定の通信方式に従って変調し、データフレームの宛先である通信装置2へデータフレームを送信する。また、例えば、通信モジュール23は、他の通信装置2から受信したデータフレームを所定の通信方式に従って復調し、該データフレームを制御部21へ出力する。
通信装置2が実行する送信処理及び受信処理の例示的なフローを以下に説明する。
<<送信処理>>
図2は、第1の実施形態に従った通信装置が実行する送信処理の例示的フローを示す図である。通信装置2は、図2に示すような一連の送信処理を、送信対象データが発生する毎に実行し得る。
ステップS101において、他の通信装置2へ送信する送信対象データが制御部21において発生すると、ハッシュ値処理部211は、ステップS102の処理を実行する。ステップS102において、ハッシュ値処理部211は、送信対象データと、暗号化鍵と、ハッシュ関数とを用いて送信対象データに対する今回ハッシュ値を計算する。今回ハッシュ値とは、データフレームに含まれるデータ、すなわち、送信対象データ(或いは受信対象データ)に対して計算されたハッシュ値を指す。また、暗号化鍵は、ハッシュ値を暗号化するために用いられる鍵である。
ステップS103において、ハッシュ値処理部211は、ステップS102で計算した今回ハッシュ値と前回ハッシュ値とが一致するか否かを判定する。前回ハッシュ値とは、送信対象データ(或いは受信対象データ)に先立ち前回送信されたデータに対してハッシュ値処理部211が計算したハッシュ値を指す。前回送信されたデータに対するハッシュ値は、該データに対する一連の送信処理中のステップS102においてハッシュ値処理部211が今回ハッシュ値として計算している。そして、前回送信されたデータに対する今回ハッシュ値は、該データに後続して次回送信されるデータに対する前回ハッシュ値としてハッシュ値処理部211が記憶部22に記憶している。
今回ハッシュ値と前回ハッシュ値とが一致すると判定する場合(ステップS103で“YES”)、送信対象データと、該対象データに先立ち前回送信されたデータとは同一であるため、送信対象データを再度送信する必要がない。そこで、ステップS104において、ハッシュ値処理部211は、送信対象データを破棄し、当該送信対象データに対する一連の送信処理は終了する。
一方、今回ハッシュ値と前回ハッシュ値とが一致しないと判定する場合(ステップS103で“NO”)、一連の送信処理は、ステップS105へ進む。ステップS105において、誤り検出符号計算部212は、送信対象データと、今回ハッシュ値と、前回ハッシュ値とに基づいて誤り検出符号を計算する。ステップS106において、データフレーム生成部213は、送信対象データと、誤り検出符号と、今回ハッシュ値と、前回ハッシュ値とを含むデータフレームを生成する。
図3は、第1の実施形態に従った通信装置が生成するデータフレームの構成例を示す図である。なお、図3には、CANで定義されるデータフレームの標準フォーマット中のデータフィールドが示されているが、該データフレームには、SOF(Start Of Frame)やID(Identifier)等の不図示のその他のフィールドも含まれ得る。図3に示す構成例では、8バイトのデータフィールドの内、誤り検出符号、今回ハッシュ値、及び前回ハッシュ値に夫々1バイトが当てられている。また、図3において“データ1”〜“データ5”と記載したフィールドで示されるように、最小データ単位が1バイトであるデータ(送信対象データ或いは受信対象データ)に対して5バイトが当てられている。
図3に示す一例では、通信装置2が前々回送信したデータフレームに含まれる前回ハッシュ値はハッシュ値Aであり、今回ハッシュ値はハッシュ値Bである。通信装置2が前回送信したデータフレームに含まれる前回ハッシュ値はハッシュ値Bであり、今回ハッシュ値はハッシュ値Cである。通信装置2が今回送信するデータフレームに含まれる前回ハッシュ値はハッシュ値Cであり、今回ハッシュ値はハッシュ値Dである。このように、前々回のデータフレームの今回ハッシュ値は、前回のデータフレームの前回ハッシュ値であり、前回のデータフレームの今回ハッシュ値は、今回のデータフレームの前回ハッシュ値である。したがって、受信側の通信装置2(例えば、受信装置)は、受信した複数のデータフレームの今回ハッシュ値及び前回ハッシュ値を夫々参照することで、複数のデータフレームに夫々含まれるデータ(受信対象データ)の順序を特定できる。
ステップS107において、通信モジュール23は、データフレーム生成部213が生成したデータフレームを該データフレームの宛先である他の通信装置2へ送信する。
このように、通信装置2は、送信対象データと、暗号化鍵と、ハッシュ関数とを用いて送信対象データに対する今回ハッシュ値を計算する。そして、通信装置2は、送信対象データと、今回ハッシュ値と、送信対象データに先立ち前回送信されたデータに対して計算した前回ハッシュ値とを含むデータフレームを生成して送信する。このため、受信側の通信装置2は、受信したデータフレーム中の前回ハッシュ値と、該データフレームに先立ち処理したデータフレーム中の今回ハッシュ値とを比較することで、受信対象データの処理順序を確認できる。また、受信側の通信装置2は、データフレーム中の今回ハッシュ値を検証することで、受信対象データの正しさを確認できる。
したがって、実施形態に従った通信装置によれば、カウンタ値を用いたり、誤り検出符号のデータ数を増やしたりすることなく、高いASIL(Automotive Safety Integrity Level)での通信の安全性を確保できる。また、実施形態に従った通信装置によれば、物理的なカウンタを通信装置に備えることに起因して通信ノードのサイズが大きくなることもない。
<<受信処理>>
図4(A)及び図4(B)は、第1の実施形態に従った通信装置が実行する受信処理の例示的フローを示す図である。通信装置2は、図4(A)及び図4(B)に示すような一連の受信処理を、データフレームを新たに受信する毎に実行し得る。
ステップS201において、通信モジュール23は、他の通信装置2が送信したデータフレームを受信する。ステップS202において、誤り検出部214は、受信したデータフレームから誤り検出符号を抽出する。また、ステップS203において、誤り検出符号計算部212は、受信したデータフレームに含まれる受信対象データと、今回ハッシュ値と、前回ハッシュ値とに基づいて誤り検出符号を計算する。
ステップS204において、誤り検出部214は、受信したデータフレームから抽出した誤り検出符号と、誤り検出符号計算部212が計算した誤り検出符号とが一致するか否かを判定する。
受信したデータフレームから抽出した誤り検出符号と、誤り検出符号計算部212が計算した誤り検出符号とが一致しないと判定する場合(ステップS204で“NO”)、受信対象データ、今回ハッシュ値、及び前回ハッシュ値の内の少なくとも1つに誤りがある。そこで、ステップS205において、データフレーム処理部215は、受信したデータフレームを破棄する。そして、データフレーム処理部215は、誤りのないデータフレームを受信するために、一連の受信処理をステップS201に戻す。なお、データフレーム生成部213は、受信したデータフレームに誤りがあったことを示すエラーフレームを生成してもよい。そして、通信モジュール23は、受信したデータフレームを送信した通信装置2へエラーフレームを送信してもよい。
一方、受信したデータフレームから抽出した誤り検出符号と、誤り検出符号計算部212が計算した誤り検出符号とが一致すると判定する場合(ステップS204で“YES”)、誤り検出部214は、ステップS206の処理に進む。ステップS206において、誤り検出部214は、処理待ちデータフレームがあるか否かを判定する。処理待ちデータフレームとは、ステップS201で受信したデータフレーム以外のデータフレームであり、図4(A)及び図4(B)に示すような一連の受信処理が完了していないデータフレームを指す。
処理待ちデータフレームがないと判定する場合(ステップS206で“NO”)、ステップS207において、誤り検出部214は、受信したデータフレームから今回ハッシュ値を抽出する。そして、ステップS208において、誤り検出部214は、抽出した今回ハッシュ値を記憶部22内のハッシュ値保存リストに保存する。ハッシュ値保存リストは、一連の受信処理が完了していないデータフレームが含む今回ハッシュ値が保存されるリストである。
一方、処理待ちデータフレームがあると判定する場合(ステップS206で“YES”)、ステップS209において、誤り検出部214は、受信したデータフレームから前回ハッシュ値及び今回ハッシュ値を抽出する。そして、ステップS210において、誤り検出部214は、抽出した前回ハッシュ値と、ハッシュ値保存リストに既に保存されている今回ハッシュ値とを比較する。こうした比較によって、誤り検出部214は、受信したデータフレーム及び処理待ちデータフレームをデータフレームの送信順にソートする。また、ステップS211において、誤り検出部214は、ソートしたデータフレームの今回ハッシュ値をハッシュ値保存リストに保存する。
例えば、抽出した前回ハッシュ値がハッシュ値Cであり、抽出した今回ハッシュ値がハッシュ値Dであり、ハッシュ値保存リストに既に保存されている今回ハッシュ値がハッシュ値B及びハッシュ値Cであると仮定する。この仮定では、抽出した前回ハッシュ値Cと同じ今回ハッシュ値がハッシュ値保存リスト中に存在する。そこで、受信したデータフレーム及び処理待ちデータフレームは、今回ハッシュ値がハッシュ値B、ハッシュ値C、及びハッシュ値Dの順番でソートされる。また、ハッシュ値保存リストには、ハッシュ値B、ハッシュ値C、及びハッシュ値Dがデータフレームのソート順に保存される。
ステップS212において、誤り検出部214は、最後に処理されたデータフレームが含む今回ハッシュ値と、データフレームの送信順でソートされた先頭のデータフレームが含む前回ハッシュ値とが一致するか否かを判定する。最後に処理されたデータフレームとは、図4(A)及び図4(B)に示すような一連の受信処理が最後に完了されたデータフレームを指す。例えば、処理待ちデータフレームが存在しない場合、誤り検出部214は、最後に処理されたデータが含む今回ハッシュ値と、ステップS201で受信したデータフレームが含む前回ハッシュ値とが一致するか否かを判定する。
最後に処理されたデータフレームが含む今回ハッシュ値と、先頭のデータフレームが含む前回ハッシュ値とが一致しないと判定する場合(ステップS212で“NO”)、先頭のデータフレームが含む受信対象データよりも先に処理される予定のデータが存在する。すなわち、先頭のデータフレームが含む受信対象データよりも先に送信されたはずの(或いは先に受信されるべき)データが存在する。そこで、誤り検出部214は、先に処理される予定のデータを含むデータフレームを受信するために、一連の受信処理をステップS201へ戻す。
一方、最後に処理されたデータフレームが含む今回ハッシュ値と、先頭のデータフレームが含む前回ハッシュ値とが一致すると判定する場合(ステップS212で“YES”)、ハッシュ値処理部211は、ステップS213の処理に進む。ステップS213において、ハッシュ値処理部211は、ハッシュ関数と、先頭のデータフレームが含む受信対象データとを用いて ハッシュ値1(第1のハッシュ値)を計算する。例えば、処理待ちデータフレームが存在しない場合、ハッシュ値処理部211は、ハッシュ関数と、ステップS201で受信したデータフレームが含む受信対象データとを用いて ハッシュ値1を計算する。さらに、ステップS213において、ハッシュ値処理部211は、公開鍵と、ハッシュ関数と、先頭のデータフレームが含む今回ハッシュ値とを用いてハッシュ値2(第2のハッシュ値)を計算する。例えば、処理待ちデータフレームが存在しない場合、ハッシュ値処理部211は、公開鍵と、ハッシュ関数と、ステップS201で受信したデータフレームが含む今回ハッシュ値とを用いてハッシュ値2を計算する。
ステップS214において、誤り検出部214は、ハッシュ値処理部211が計算したハッシュ値1とハッシュ値2とが一致するか否かを判定する。例えば、処理待ちデータフレームが存在する場合、ステップS214において、誤り検出部214は、ハッシュ値処理部211が計算したハッシュ値1と、公開鍵と、ハッシュ関数と、先頭のデータフレームが含む今回ハッシュ値とを用いて計算されたハッシュ値2とが一致するか否かを判定する。また、例えば、処理待ちデータフレームが存在しない場合、誤り検出部214は、ハッシュ値処理部211が計算したハッシュ値1とハッシュ値2とが一致するか否かを判定する。
ハッシュ値処理部211が計算したハッシュ値1とハッシュ値2とが一致しないと判定する場合(ステップS214で“NO”)、先頭のデータフレームが含む受信対象データに誤りがある。そこで、ステップS215において、誤り検出部214は、先頭のデータフレームに対応する今回ハッシュ値をハッシュ値保存リストから削除する。また、データフレーム処理部215は、先頭のデータフレームを破棄する。そして、データフレーム処理部215は、誤りのないデータフレームを受信するために、一連の受信処理をステップS201に戻す。なお、データフレーム生成部213は、先頭のデータフレームに誤りがあったことを示すエラーフレームを生成してもよい。そして、通信モジュール23は、先頭のデータフレームを送信した通信装置2へエラーフレームを送信してもよい。
一方、ハッシュ値処理部211が計算したハッシュ値1とハッシュ値2とが一致すると判定する場合(ステップS214で“YES”)、誤り検出部214は、ステップS216の処理に進む。ステップS216において、誤り検出部214は、先頭のデータフレーム中の前回ハッシュ値に先行する今回ハッシュ値をハッシュ値保存リストから削除する。図5は、第1の実施形態に従ったハッシュ値保存リストの一例を示す図である。例えば、図3に示した今回のデータフレームに対してステップS216の処理が実行される場合、図5に示すように、今回のデータフレーム中の前回ハッシュ値Cに先行する今回ハッシュ値Bがハッシュ値保存リストから削除される。今回のデータフレームに対してステップS212以降の処理が実行される場合、前々回のデータフレーム及び前回のデータフレームに対する一連の受信処理は完了している。それ故、今回のデータフレームに先立つデータフレームの送信順序を確認する必要がないため、今回のデータフレーム中の前回ハッシュ値Cに先行する今回ハッシュ値Bはハッシュ値保存リストから削除される。
ステップS217において、データフレーム処理部215は、先頭のデータフレームが含む受信対象データに基づく処理を実行する。
このように、通信装置2は、受信したデータフレーム中の前回ハッシュ値と、該データフレームに先立ち処理したデータフレーム中の今回ハッシュ値とを比較することで、受信対象データの処理順序を確認する。また、通信装置2は、受信したデータフレーム中の今回ハッシュ値を検証することで、受信対象データの正しさを確認する。したがって、実施形態に従った通信装置によれば、カウンタ値を用いたり、誤り検出符号のデータ数を増やしたりすることなく、高いASILでの通信の安全性を確保できる。また、実施形態に従った通信装置によれば、物理的なカウンタを通信装置に備えることに起因して通信ノードのサイズが大きくなることもない。
本発明は、以上の実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。例えば、上述した第1の実施形態を以下に示す第2〜第6の実施形態のように改良、変更してもよい。また、第1〜第6の実施形態の内の2つ以上の実施形態を組み合わせてもよい。
<第2の実施形態>
通信システム1を構成する通信装置2の内、少なくとも1つの通信装置2は、他の通信装置2間で送受信されるデータフレームの通信履歴を記録する通信履歴記録装置であってもよい。この場合、データフレームを送信する通信装置2は、該データフレームの本来の宛先である受信側の通信装置2に加えて通信履歴記録装置へデータフレームを送信してよい。また、通信履歴記録装置は、図6(A)及び図6(B)に示したような一連の受信処理を行ってもよい。図6(A)及び図6(B)は、第2の実施形態に従った通信装置が実行する受信処理の例示的フローを示す図である。
図4(A)及び図4(B)と図6(A)及び図6(B)との比較から理解し得るように、通信履歴記録装置である通信装置2は、ハッシュ値処理部211が計算したハッシュ値1とハッシュ値2とが一致すると判定する場合(ステップS214で“YES”)、ステップS216及びステップS217の処理を実行しない。すなわち、通信履歴記録装置である通信装置2は、他の通信装置2間の通信履歴を後日検証するために、ステップS208又はステップS211で保存した今回ハッシュ値をハッシュ値保存リストから削除しない。また、通信履歴記録装置である通信装置2は、受信したデータフレームの本来の宛先である受信側の通信装置2ではないため、受信したデータフレームが含む受信対象データに基づく処理を行わない。代わりに、図6(A)及び図6(B)に示すように、通信履歴記録装置である通信装置2は、他の通信装置2間で送受信される新たなデータフレームを受信するために、一連の受信処理をステップS201に戻す。
このように、他の通信装置2間の通信履歴を記録する通信装置2を通信システム1に備えれば、例えば、車両故障の診断時等の際に、他の通信装置2間の通信履歴を検証することができる。
<第3の実施形態>
図7に示すように、データフレームの送信対象データ(或いは受信対象データ)は、現在の時刻を示す時刻データを含んでもよい。図7は、第3の実施形態に従った通信装置が生成するデータフレームの構成例を示す図である。
図3と図7との比較から理解し得るように、第3の実施形態に従った通信装置2が生成するデータフレームは、“第1のデータ”のフィールド等に、現在の時刻を示す時刻データを含む。そこで、データフレームを送信する通信装置2は、ステップS101で時刻データを含む送信対象データが発生すると、ステップS102において、時刻データを含む送信データと、暗号化鍵と、ハッシュ関数とを用いて送信対象データに対する今回ハッシュ値を計算する。また、データフレームを受信した通信装置2は、ステップS213においてハッシュ関数と、時刻データを含む受信対象データとを用いてハッシュ値1を計算する。また、データフレームを受信した通信装置2は、公開鍵と、ハッシュ関数と、先頭のデータフレームが含む今回ハッシュ値とを用いて、ハッシュ値2を計算する。
このように、送信対象データ(或いは受信対象データ)に現在時刻を示す時刻データを含めれば、データフレームの送信側及び受信側の通信装置2が計算する今回ハッシュ値は、前回ハッシュ値と一致しにくくなる。したがって、第3の実施形態に従った通信装置2によれば、ステップS210等においてデータフレームの送信順序をより特定しやすくすることができる。
<第4の実施形態>
図8に示すように、第4の実施形態に従った通信装置2が生成するデータフレームは、誤り検出符号を含まなくてもよい。図8は、第4の実施形態に従った通信装置が生成するデータフレームの構成例を示す図である。図9は、第4の実施形態に従った通信装置が実行する送信処理の例示的フローを示す図である。図10(A)及び図10(B)は、第4の実施形態に従った通信装置が実行する受信処理の例示的フローを示す図である。
図3と図8との比較から理解し得るように、第4の実施形態に従った通信装置2が生成するデータフレームは、誤り検出符号を含まない。そこで、図9に示すように、データフレームを送信する通信装置2は、誤り検出符号を計算するステップS105の処理を実行しない。また、データフレームを送信する通信装置2は、ステップS106Aにおいて、誤り検出符号を含まないデータフレームを生成する。
また、図10(A)及び図10(B)に示すように、データフレームを受信した通信装置2は、ステップS202Aにおいて、受信したデータフレームから受信対象データ及び今回ハッシュ値を抽出する。また、ステップS203Aにおいて、通信装置2は、ハッシュ関数と、受信したデータフレームが含む受信対象データとを用いて、ハッシュ値1を計算する。さらにステップS203Aにおいて、通信装置2は、公開鍵と、ハッシュ関数と、受信したデータフレームが含む今回ハッシュ値とを用いて、ハッシュ値2を計算する。そして、ステップS204Aにおいて、通信装置2は、ハッシュ値1とハッシュ値2とが一致するか否かを判定する。ハッシュ値1とハッシュ値2とが一致しないと判定する場合(ステップS204Aで“NO”)、ステップS205において、通信装置2は、受信されたデータフレームを破棄する。一方、ハッシュ値1とハッシュ値2とが一致すると判定する場合(ステップS204Aで“YES”)、通信装置2は、ステップS206へ進む。以降の処理は、第1の実施形態に従った通信装置2が行う受信処理と同様である。
このように、第4の実施形態に従った通信装置2が生成するデータフレームは、誤り検出符号を含まず、該データフレームを受信した通信装置2は、誤り検出符号の代わりにハッシュ値を用いてデータフレームの整合性を検証する。したがって、第4の実施形態に従った通信装置によれば、誤り検出符号を計算する処理時間を短縮することができる。また、図3と図8との比較から理解し得るように、第4の実施形態に従ったデータフレームでは、誤り検出符号に代わって、送信対象データ(或いは受信対象データ)を追加することができる。
<第5の実施形態>
図11に示すように、データフレームに含まれる今回ハッシュ値及び前回ハッシュ値の各大きさは、データフレームを構成する最小データ単位の半分であってもよい。図11は、第5の実施形態に従った通信装置が生成するデータフレームの構成例を示す図である。
図3と図11との比較から理解し得るように、第5の実施形態に従った通信装置2が生成するデータフレームでは、該データフレームを構成する最小データ単位の半分を前回ハッシュ値及び今回ハッシュ値に夫々割り当てる。具体的には、例えば、CANに準拠したデータフレームでは、8バイトのデータフレームを構成する最小データ単位1バイトの半分の4ビットが今回ハッシュ値及び前回ハッシュ値に夫々割り当てられる。この結果、データフレームで送受信可能なデータ数は、図3に示すような”データ1”〜“データ5”に加えて図11に示すような“データ6”を増やすことができる。
なお、例えば、CAN FDに準拠したデータフレームでは、64バイトのデータフレームを構成する最小データ単位1バイトの半分の4ビットが今回ハッシュ値及び前回ハッシュ値に夫々割り当てられてもよい。また、例えば、車載イーサネットに準拠したデータフレームでは、46バイトのデータフレームを構成する最小データ単位1バイトの半分の4ビットが今回ハッシュ値及び前回ハッシュ値に夫々割り当てられてもよい。
このように、第5の実施形態によれば、データフレームで送受信可能なデータ数を増やすことができる。
<第6の実施形態>
図12に示すように、今回ハッシュ値及び前回ハッシュ値の各大きさは、データフレームを構成する最小データ単位の2倍以上であってもよい。図12は、第6の実施形態に従った通信装置が生成するデータフレームの構成例を示す図である。
図3と図12との比較から理解し得るように、第6の実施形態に従った通信装置2が生成するデータフレームでは、該データフレームを構成する最小データ単位の2倍以上を前回ハッシュ値及び今回ハッシュ値に夫々割り当てる。具体的には、例えば、CANに準拠したデータフレームでは、8バイトのデータフレームを構成する最小データ単位1バイトの3倍(3バイト)が今回ハッシュ値及び前回ハッシュ値に夫々割り当てられる。この場合、データフレームで送受信可能なデータ数は1つ(全部で1バイト)である。
なお、例えば、CAN FDに準拠したデータフレームでは、64バイトのデータフレームを構成する最小データ単位1バイトの8倍(8バイト)が今回ハッシュ値及び前回ハッシュ値に夫々割り当てられてもよい。この場合、データフレームで送受信可能なデータ数は55個(全部で55バイト)である。また、例えば、車載イーサネットに準拠したデータフレームでは、46バイトのデータフレームを構成する最小データ単位1バイトの8倍(8バイト)が今回ハッシュ値及び前回ハッシュ値に夫々割り当てられてもよい。この場合、データフレームで送受信可能なデータ数は29個(全部で29バイト)である。
このように、第6の実施形態によれば、データフレームを構成するハッシュ値のデータ数を増やすことで、通信の安全性を高めることができる。
1 通信システム
2 通信装置
3 通信線
21 制御部
22 記憶部
23 通信モジュール
24 バス
211 ハッシュ値処理部
212 誤り検出符号計算部
213 データフレーム生成部
214 誤り検出部
215 データフレーム処理部

Claims (13)

  1. 送信装置であって、
    送信対象データと、暗号化鍵と、ハッシュ関数とを用いて前記送信対象データに対する今回ハッシュ値を計算するハッシュ値処理部と、
    前記送信対象データと、前記今回ハッシュ値と、前記送信対象データに先立ち前回送信されたデータに対して計算された前回ハッシュ値とを含むデータフレームを生成するデータフレーム生成部と、
    前記データフレームを送信する通信モジュールと
    を備えることを特徴とする送信装置。
  2. 請求項1に記載の送信装置であって、
    前記送信対象データと、前記今回ハッシュ値と、前記前回ハッシュ値とに基づいて誤り検出符号を計算する誤り検出符号計算部を更に備え、
    前記データフレーム生成部は、前記送信対象データと、前記今回ハッシュ値と、前記前回ハッシュ値と、前記誤り検出符号とを含むデータフレームを生成する
    ことを特徴とする送信装置。
  3. 請求項1又は2に記載の送信装置であって、
    前記送信対象データは、現在の時刻を示す時刻データを含む
    ことを特徴とする送信装置。
  4. 請求項1〜3の何れか一項に記載の送信装置であって、
    前記今回ハッシュ値及び前記前回ハッシュ値の各大きさは、前記データフレームを構成する最小データ単位の半分である
    ことを特徴とする送信装置。
  5. 請求項1〜3の何れか一項に記載の送信装置であって、
    前記今回ハッシュ値及び前記前回ハッシュ値の各大きさは、前記データフレームを構成する最小データ単位の2倍以上である
    ことを特徴とする送信装置。
  6. 受信装置であって、
    データフレームを受信する通信モジュールと、
    前記第1のハッシュ値と前記第2のハッシュ値とが一致する場合に、前記受信対象データに基づく処理を実行するデータフレーム処理部と
    を備えることを特徴とする受信装置。
  7. 請求項6に記載の受信装置であって、
    受信した前記データフレームが含む前記受信対象データと、前記今回ハッシュ値と、前記前回ハッシュ値とに基づいて誤り検出符号を計算する誤り検出符号計算部を更に備え、
    前記誤り検出符号計算部が計算した前記誤り検出符号と、受信した前記データフレームから抽出した誤り検出符号とが一致しない場合、前記データフレーム処理部は、受信した前記データフレームを破棄する
    ことを特徴とする受信装置。
  8. 請求項6又は7に記載の受信装置であって、
    受信した前記データフレーム以外の処理待ちデータフレームが存在する場合に、受信した前記データフレームが含む前記前回ハッシュ値と前記処理待ちデータフレームが含む前記今回ハッシュ値とに従って、受信した前記データフレーム及び前記処理待ちデータフレームをデータフレームの送信順にソートする誤り検出部を更に備え、
    前記ハッシュ値処理部は、最後に処理されたデータフレームが含む前記今回ハッシュ値と、前記データフレームの送信順でソートされた先頭のデータフレームが含む前記前回ハッシュ値とが一致する場合に、前記ハッシュ関数と、前記先頭のデータフレームが含むデータとを用いて第1のハッシュ値を計算し、前記送信装置が事前に指定する前記公開鍵と、前記ハッシュ関数と、前記データフレームが含む前記今回ハッシュ値とを用いて第2のハッシュ値を計算し、
    前記データフレーム処理部は、前記第1のハッシュ値と前記第2のハッシュ値とが一致する場合に、前記先頭のデータフレームが含む前記データに基づく処理を実行する
    ことを特徴とする受信装置。
  9. 請求項6〜8の何れか一項に記載の受信装置であって、
    前記受信対象データは、現在の時刻を示す時刻データを含む
    ことを特徴とする受信装置。
  10. 請求項6〜9の何れか一項に記載の受信装置であって、
    前記今回ハッシュ値及び前記前回ハッシュ値の各大きさは、前記データフレームを構成する最小データ単位の半分である
    ことを特徴とする受信装置。
  11. 請求項6〜9の何れか一項に記載の受信装置であって、
    前記今回ハッシュ値及び前記前回ハッシュ値の各大きさは、前記データフレームを構成する最小データ単位の2倍以上である
    ことを特徴とする受信装置。
  12. 請求項6〜11の何れか一項に記載の受信装置であって、
    前記受信装置が、受信した前記データフレームを送信した送信装置と、受信した前記データフレームの宛先である他の受信装置との間の通信履歴を記録する通信履歴記録装置である場合、前記データフレーム処理部は、受信した前記データフレームが含む前記今回ハッシュ値をハッシュ値保存リストに保存し、前記受信対象データに基づく処理を実行せずに新たなデータフレームの受信を待機する
    ことを特徴とする受信装置。
  13. 送信装置及び受信装置が実行する通信方法であって、
    送信対象データと、暗号化鍵と、ハッシュ関数とを用いて前記送信対象データに対する今回ハッシュ値を計算し、
    前記送信対象データと、前記今回ハッシュ値と、前記送信対象データに先立ち前回送信されたデータに対して計算された前回ハッシュ値とを含むデータフレームを生成し、
    生成した前記データフレームを送信し、
    前記データフレームを受信し、
    受信した前記データフレームに先立ち前回処理したデータフレームが含む前記今回ハッシュ値であって、前回処理した前記データフレームが含むデータに対して計算された前記今回ハッシュ値と、受信した前記データフレームが含む前回ハッシュ値であって、受信した前記データフレームが含む受信対象データに先立ち前回送信されたデータに対して計算された前記前回ハッシュ値とが一致する場合に、ハッシュ関数と、前記受信対象データとを用いて第1のハッシュ値を計算し、前記送信装置が事前に指定する公開鍵と、前記ハッシュ関数と、前記データフレームが含む前記今回ハッシュ値とを用いて第2のハッシュ値を計算し、
    計算した前記第1のハッシュ値と前記第2のハッシュ値とが一致する場合に、前記受信対象データに基づく処理を実行する
    ことを含むことを特徴とする通信方法。
JP2017149678A 2017-08-02 2017-08-02 送信装置、受信装置、及び通信方法 Active JP6992309B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017149678A JP6992309B2 (ja) 2017-08-02 2017-08-02 送信装置、受信装置、及び通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017149678A JP6992309B2 (ja) 2017-08-02 2017-08-02 送信装置、受信装置、及び通信方法

Publications (2)

Publication Number Publication Date
JP2019029921A true JP2019029921A (ja) 2019-02-21
JP6992309B2 JP6992309B2 (ja) 2022-01-13

Family

ID=65479001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017149678A Active JP6992309B2 (ja) 2017-08-02 2017-08-02 送信装置、受信装置、及び通信方法

Country Status (1)

Country Link
JP (1) JP6992309B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022527067A (ja) * 2019-03-25 2022-05-30 マイクロン テクノロジー,インク. セキュア更新のためのローカル台帳ブロックチェーン
US11777712B2 (en) * 2019-03-22 2023-10-03 International Business Machines Corporation Information management in a database

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001251296A (ja) * 2000-03-06 2001-09-14 Kddi Corp メッセージ認証装置
JP2009070026A (ja) * 2007-09-12 2009-04-02 Mitsubishi Electric Corp 記録装置及び検証装置及び再生装置及び記録方法及び検証方法及びプログラム
JP2009223399A (ja) * 2008-03-13 2009-10-01 Omron Corp 安全機器並びに安全条件設定支援システム
JP2010102258A (ja) * 2008-10-27 2010-05-06 Digion Inc 録音システム、録音方法及びプログラム
JP2010141915A (ja) * 2010-02-12 2010-06-24 Mitsubishi Electric Corp 通信装置
JP2013048485A (ja) * 2012-11-05 2013-03-07 Kyocera Corp 送信装置
WO2013084571A1 (ja) * 2011-12-08 2013-06-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報機器間のデータ転送のデータ欠落を検出する方法
JP2013531447A (ja) * 2010-07-19 2013-08-01 ゼットティーイー コーポレーション Cpriリンクのエラー・コード・モニター方法、システム及び装置
US20150003443A1 (en) * 2012-03-22 2015-01-01 Bayerische Motoren Werke Aktiengesellschaft Gateway, Nodes, and Method for a Vehicle
JP2015046943A (ja) * 2014-11-13 2015-03-12 日本電信電話株式会社 受信装置、受信装置の動作方法およびコンピュータプログラム

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001251296A (ja) * 2000-03-06 2001-09-14 Kddi Corp メッセージ認証装置
JP2009070026A (ja) * 2007-09-12 2009-04-02 Mitsubishi Electric Corp 記録装置及び検証装置及び再生装置及び記録方法及び検証方法及びプログラム
JP2009223399A (ja) * 2008-03-13 2009-10-01 Omron Corp 安全機器並びに安全条件設定支援システム
JP2010102258A (ja) * 2008-10-27 2010-05-06 Digion Inc 録音システム、録音方法及びプログラム
JP2010141915A (ja) * 2010-02-12 2010-06-24 Mitsubishi Electric Corp 通信装置
JP2013531447A (ja) * 2010-07-19 2013-08-01 ゼットティーイー コーポレーション Cpriリンクのエラー・コード・モニター方法、システム及び装置
WO2013084571A1 (ja) * 2011-12-08 2013-06-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報機器間のデータ転送のデータ欠落を検出する方法
US20150003443A1 (en) * 2012-03-22 2015-01-01 Bayerische Motoren Werke Aktiengesellschaft Gateway, Nodes, and Method for a Vehicle
JP2013048485A (ja) * 2012-11-05 2013-03-07 Kyocera Corp 送信装置
JP2015046943A (ja) * 2014-11-13 2015-03-12 日本電信電話株式会社 受信装置、受信装置の動作方法およびコンピュータプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
嶋田 大輔: "いまから学ぶブロックチェーンのしくみ", SOFTWAREDESIGN, vol. 2017年5月号, JPN6021017981, 18 April 2017 (2017-04-18), JP, pages 80 - 90, ISSN: 0004508190 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11777712B2 (en) * 2019-03-22 2023-10-03 International Business Machines Corporation Information management in a database
JP2022527067A (ja) * 2019-03-25 2022-05-30 マイクロン テクノロジー,インク. セキュア更新のためのローカル台帳ブロックチェーン
JP7170906B2 (ja) 2019-03-25 2022-11-14 マイクロン テクノロジー,インク. セキュア更新のためのローカル台帳ブロックチェーン

Also Published As

Publication number Publication date
JP6992309B2 (ja) 2022-01-13

Similar Documents

Publication Publication Date Title
US11971978B2 (en) Vehicle network system whose security is improved using message authentication code
US11546298B2 (en) Information processing method, information processing system, and non-transitory computer-readable recording medium storing a program
CN108353015B (zh) 中继装置
US20180148006A1 (en) Gateway device, vehicle network system, and transfer method
US20160191408A1 (en) Communication control apparatus and communication control method
KR101831604B1 (ko) 데이터 전송 방법, 인증 방법 및 이를 수행하기 위한 서버
CN110995513A (zh) 物联网系统中的数据发送、接收方法、物联网设备及平台
KR102148757B1 (ko) 통신 시스템에서 데이터를 송수신하는 방법 및 장치
CN111066001A (zh) 日志输出方法、日志输出装置以及程序
US20160173397A1 (en) Communication control device, method of communicating a frame, and storage medium
JP6992309B2 (ja) 送信装置、受信装置、及び通信方法
CN114338510A (zh) 控制和转发分离的数据转发方法和系统
CN112803950A (zh) 一种数据压缩方法、装置、设备及计算机存储介质
US20160147702A1 (en) Communication control device, method of communicating a frame, and storage medium
JP7005201B2 (ja) 通信メッセージ変換装置
CN112434231B (zh) 一种数据处理方法、装置及电子设备
CN113922972A (zh) 基于md5标识码的数据转发方法和装置
JP7110950B2 (ja) ネットワークシステム
JP2018019218A (ja) 電子制御装置
CN115152180A (zh) 改进的包传输
CN107444300B (zh) 用于运行用于车辆的数据处理装置的方法
CN107968720B (zh) 一种信息传输方法及云系统、组件
CN112737872B (zh) 一种arinc664p7端系统跨网测试系统和方法
CN115348172B (zh) 边缘网络设备不同部位版本升级的方法、设备及介质
CN112733210B (zh) 一种设备标识获取方法、装置和计算机可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200923

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201119

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20201119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210719

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211122

R151 Written notification of patent or utility model registration

Ref document number: 6992309

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151