JP2004023156A - 暗号化通信方式、および通信装置 - Google Patents

暗号化通信方式、および通信装置 Download PDF

Info

Publication number
JP2004023156A
JP2004023156A JP2002171594A JP2002171594A JP2004023156A JP 2004023156 A JP2004023156 A JP 2004023156A JP 2002171594 A JP2002171594 A JP 2002171594A JP 2002171594 A JP2002171594 A JP 2002171594A JP 2004023156 A JP2004023156 A JP 2004023156A
Authority
JP
Japan
Prior art keywords
packet
communication
key
communication device
transmission request
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.)
Pending
Application number
JP2002171594A
Other languages
English (en)
Inventor
Hiroaki Ito
伊藤 弘明
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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2002171594A priority Critical patent/JP2004023156A/ja
Publication of JP2004023156A publication Critical patent/JP2004023156A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】キャリア検出型のネットワークにおいて、リアルタイム性が確保された暗号化通信が行えるようにする。
【解決手段】CANバス5と通信装置からなる車内LAN内の通信装置間のパケット通信を暗号化するための鍵を、暗号化される通信に参加する全ての通信装置が共有する暗号化通信方式において、暗号化される通信に参加する全ての通信装置が、パケットがCANバス5内を流れることを検知し、それに基づいて各通信装置が有する同一の暗号ブロック22が同期して暗号化/復号のための鍵を変更する。また暗号化される通信に参加する通信装置は、送信するパケットを平文として保持し、送信するパケットのうち最も先に送信されるパケットのみを現在の鍵で暗号化する。
【選択図】    図1

Description

【0001】
【発明の属する技術分野】
本発明は、リアルタイム制御が要求されるキャリア検出型LANにおいて、暗号化された信号を送受信する通信装置に関するもので、車内LANに用いて好適である。
【0002】
【従来の技術】
車両内では、多種多様な信号が車内の機器同士でやりとりされている。例えばエンジンを制御し、またエンジンの状態を検知して他の装置に通知するエンジン制御装置、受信した信号に基づいてブレーキを制御するブレーキ制御装置、エアサスペンションを制御し、またエアサスペンションの状態を検知して他の装置に通知するエアサス制御装置等が、車両LANと呼ばれるLAN(ローカルエリアネットワーク)を介して通信をしている。これらエンジン制御装置、エアサス制御装置等の、制御系の機器が接続する車内LANにおいては、CAN(Controller Area Network)やLIN(Local Interconnect Network)等の通信プロトコルが広く利用されている。
【0003】
従来、車両LANは通信範囲が車内だけに限られた、閉じたネットワークであった。したがって、車両の外部から車両LAN内の通信内容が盗聴や改竄の危険に晒されることはなかった。
【0004】
【発明が解決しようとする課題】
しかし、無線通信装置やインターネットの普及、車両のマルチメディア化、およびITS(Intelligent Transport Systems)技術の進歩に伴い、車両LANに車両の外部のネットワークが接続されるようになり、車両LANは開かれたネットワークとなりつつある。今後、車両外部のネットワークと車両LANとの接続は、車内のカーナビゲーション装置やオーディオ機器等が接続される車両LANである情報系LANから、制御系の機器の車両LANが接続される制御系LANまで広範囲に行われるようになることが予想される。
【0005】
このように車両LANが開かれたネットワークとなると、車両LANを介してやりとりされる重要な情報が外部のネットワークに不正に漏洩する恐れがある。また、この不正に漏洩した情報を悪用する者に外部から車両をコントロールされる恐れもある。
【0006】
例えば、車両のドアのロックの開閉を制御するドアロック制御情報やエンジン制御情報等の、車両を制御するための重要な情報を車両LANから不正に盗聴し、その情報を外部のネットワークに送信するような機器が何らかの方法で車内に取り付けられ、この機器からの情報を受信した外部のネットワーク上の端末が、この情報を用いてネットワーク越しに車両のドアロックやエンジンを制御するということが考えられる。
【0007】
このような危険を回避するには、車両LAN上を流れる通信データが暗号化されているようにすればよい。なお、この通信データの暗号化のための鍵は、鍵の一時的漏洩によるダメージを最小限に抑えるために、時間的に変化するようにするのが一般的である。しかし、CANやLIN等の制御系LANで使用される通信プロトコル自体には、通信データの暗号化を行うための機能は備わっていない。
【0008】
図13に、TCP/IPのプロトコル群や制御系LANのプロトコルを、ネットワークを介した通信装置間の通信の機能を層化して分類するOSI参照モデルに当てはめたときの対応関係を示す。CANやLIN等の通信プロトコルは、OSI参照モデルの物理層、データリンク層に相当するレイヤのプロトコルである。現在のところ、CANやLINの上位層、すなわちデータリンク層より上位のレイヤにおいてCANやLINに適した通信データの暗号化を行うようなプロトコル、方式は存在しない。例えば、TCP/IPで用いられている暗号化のプロトコルとしては、ネットワーク層のプロトコルであるIPSec、そしてセッション層のプロトコルであるSSL、TLSがある。これらの暗号化プロトコルは暗号化/復号のための鍵を通信装置同士で互いに受け渡しを行うことで、鍵の共有を行っている。しかし、このような方式においては、鍵の受け渡しの際に、受け渡す鍵自体の暗号化のために公開鍵暗号方式が用いられており、処理の負荷が非常に大きくなっている。したがって、このような方式は、制御系LANのようなリアルタイム性が要求されるようなLANには不向きである。
【0009】
本発明は上記点に鑑みて、キャリア検出型のネットワークにおいて、リアルタイム性が確保された暗号化通信が行えるようにすることを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成するための、請求項1に記載の発明は、キャリア検出型のネットワーク内の通信装置間のパケット通信を暗号化するための鍵を、前記暗号化される通信に参加する全ての通信装置が共有する通信方式であって、前記暗号化される通信に参加する全ての通信装置が、パケットが前記ネットワーク内を流れることに基づいて、同一の鍵変更規則を用いて同期して前記鍵を変更し、前記暗号化される通信に参加する通信装置は、送信するパケットを平文として保持し、この保持しているパケットのうち、最も先に送信されるパケットを現在の鍵で暗号化し、他のパケットを平文のまま保持することを特徴とする暗号化通信方式である。
【0011】
これによって、キャリア検出型のネットワークにおいて、暗号化される通信に参加する全ての通信装置が、パケットがこのネットワークを流れることに基づいて互いに同期して同一の鍵変更規則で鍵を変更するので、各通信装置で同一の鍵を使用することができ、暗号化通信が行える。
【0012】
また、この暗号化通信方式は、通信装置間のパケット通信を暗号化するための鍵を、暗号化される通信に参加する全ての通信装置が共有するという共有鍵暗号方式であるので、暗号化/復号の処理がすみやかに行われる。さらに、これらの通信装置は、保持しているパケットのうち、最も先に送信されるパケットを現在の鍵で暗号化し、他のパケットを平文のまま保持するので、送信されるパケットが複数存在するときに、それらの全てが現在の鍵で暗号化されることがないので、パケットが送信されることに基づいて鍵が変更される度に未送信のパケットを再度暗号化しなくてよい。したがって、暗号化/復号の処理がすみやかに行われ、暗号化通信のリアルタイム性が確保される。
【0013】
なお、キャリア検出型ネットワークとは、ネットワーク内の通信装置がネットワーク内を流れるパケットを検知することができるようなネットワークのことである。
【0014】
また、通信を暗号化するための鍵とは、送信するためのパケットを暗号化するための暗号鍵と受信したパケットを復号するための復号鍵との組を含む概念である。また、暗号鍵と復号鍵とが同一の場合もある。
【0015】
なお、通信装置が鍵を共有するとは、それぞれの通信装置が互いに同一の鍵のコピーを有しているという概念も含むものである。
【0016】
また、最も先に送信されるパケットは、最も先に送信される1つのパケットと、最も先に送信される複数のパケットの集合と、の両方を含む概念である。
【0017】
また、請求項2に記載の発明は、請求項1に記載の暗号化通信方式において、暗号化される通信に参加する通信装置は、所定の複数の鍵変更規則のうち1つを特定する識別子である種を共有しており、通信装置のうち1つが暗号化される通信への参加が途絶したのち暗号化される通信に復帰すると、暗号化される通信に参加する全ての通信装置は、同一の鍵変更規則として新たに種が特定する鍵変更規則を用いることを特徴とする。
【0018】
また、請求項3に記載の発明は、請求項1または2に記載の暗号化通信方式において、ネットワークにおいて用いられる通信プロトコルは、CANであることを特徴とする。
【0019】
また、請求項4に記載の発明は、キャリア検出型のネットワーク内にあり、前記ネットワーク内の他の通信装置との間のパケット通信を暗号化するための鍵を、前記他の通信装置と共有する通信装置であって、前記ネットワーク内の他の通信装置と暗号化通信を行うときに、前記他の通信装置へ送信するためのパケットを平文として生成する平文パケット生成手段と、前記平文パケット生成手段が生成した平文のパケットを受信して保存する平文パケット保存メモリと、前記平文パケット保存メモリが保存しているパケットのうち、最も先に前記他の通信装置に送信するパケットを現在の鍵で暗号化し、他のパケットを平文のまま保持する暗号化手段と、を備え、前記暗号化手段は、前記鍵を前記他の通信装置と同一の鍵変更規則で変更する鍵変更手段と、前記ネットワーク内にパケットが流れることに基づいて、前記鍵変更手段に鍵を変更させる鍵変更制御手段とを有することを特徴とする。
【0020】
これによって、キャリア検出型のネットワークにおいて、暗号化される通信を行う通信装置が、パケットがこのネットワークを流れることに基づいて互いに同期して同一の鍵変更規則で鍵を変更するので、各通信装置で同一の鍵を使用することができ、暗号化通信が行える。また、この暗号化通信方式は、通信装置間のパケット通信を暗号化するための鍵を、暗号化される通信に参加する通信装置が共有するという共有鍵暗号方式であるので、暗号化/復号の処理がすみやかに行われ、暗号化通信のリアルタイム性が確保される。さらに、暗号化手段が、送信されるパケットのうち、最も先に送信されるパケットを現在の鍵で暗号化し、他のパケットを平文のまま保持するので、送信されるパケットが複数存在するときに、それらの全てが現在の鍵で暗号化され、その後パケットが送信されて鍵が変更される度に未送信のパケットを再度暗号化する必要がない。したがって、暗号化/復号の処理がすみやかに行われ、暗号化通信のリアルタイム性が確保される。
【0021】
また、請求項5に記載の発明は、請求項4に記載の通信装置において、パケットを他の通信装置に送信することを要求する信号である送信要求信号を受信することにより、暗号化手段が暗号化したパケットを他の通信装置に送信する送信手段を備え、パケット生成手段は、パケットを生成すると、パケットの送信要求信号を暗号化手段に出力し、暗号化手段は、パケット生成手段が出力した送信要求信号を受信すると、平文パケット保存メモリが保存しているパケットのうち、最も先に他の通信装置に送信するパケットを現在の鍵で暗号化した後、送信要求信号を送信手段に出力することを特徴とする。
【0022】
また、請求項6に記載の発明は、請求項5に記載の通信装置において、暗号化手段は、受信したパケット生成手段からの送信要求信号を保存する送信要求信号保存メモリを有し、送信要求信号保存メモリが保存している送信要求信号のうち、優先度の高いものから順に送信手段に出力することを特徴とする。
【0023】
また、請求項7に記載の発明は、請求項6に記載の通信装置において、暗号化手段は、優先度は送信要求信号が送信要求信号保存メモリに保存された順に高いとすることを特徴とする。
【0024】
また、請求項8に記載の発明は、請求項6に記載の通信装置において、暗号化手段は、優先度を平文パケット生成手段が生成した、送信要求信号に対応するパケットの属性に基づいて決定することを特徴とする。
【0025】
また、請求項9に記載の発明は、請求項4ないし8のいずれか1つに記載の通信装置において複数の鍵変更規則のうち1つを特定する識別子である種を他の通信装置と共有し、ネットワークを介して、他の通信装置の1つが暗号化されたパケット通信への参加の途絶状態から復帰したことの通知を受信すると、鍵規則変更手段に、種の特定する鍵変更規則を同一の鍵変更規則とさせる鍵規則変更制御手段とを備え、鍵変更手段は、種の特定する鍵変更規則を同一の鍵変更規則とする鍵規則変更手段を有することを特徴とする。
【0026】
【発明の実施の形態】
図1は、本発明の一実施形態に係るネットワークである車内LAN1の構成を示すブロック図である。この車内LAN1は、CSMA/CD方式によるキャリア検出型、パケット交換型のネットワークである。また車内LAN1における、OSI参照モデルの物理層とデータリンク層に対応するレイヤにおける通信プロトコルとしては、CANが用いられる。車内LAN1は、A通信装置2、B通信装置3、C通信装置4、およびその他の複数の通信装置(図示せず)と、これらをバス型のネットワークとして接続するためのCANバス5とから構成されている。
【0027】
この車内LAN1に接続する通信装置であるA通信装置2、B通信装置3、C通信装置4、およびその他の複数の通信装置(図示せず)は、車内の制御系の機器である。制御系の機器の具体例としては、エンジンを制御し、またエンジンの状態を検知して他の装置に通知するエンジン制御装置、受信した信号に基づいてブレーキを制御するブレーキ制御装置、エアサスペンションを制御し、またエアサスペンションの状態を検知して他の装置に通知するエアサス制御装置等がある。
【0028】
また、これら車内LAN1に接続する通信装置は、それぞれCPU20、暗号ブロック22、および通信ブロック23を有している。各通信装置内において、CPU20と暗号ブロック22との間は制御線24、アドレス線25、割り込み線26、及びローカルバス27によって接続されている。また各通信装置内において、暗号ブロック22と通信ブロック23との間も制御線24、アドレス線25、割り込み線26、及びローカルバス27によって接続されている。また各通信ブロック23はCANバス5に接続されている。
【0029】
本実施形態においては、これら車内LAN1内の通信装置が、互いに同じ暗号化/復号のための鍵を共有し、それを使用して暗号化通信を行うようになっている。この暗号化通信において、通信装置が受信をするときは、CANバス5から通信ブロック23が受信した暗号化されたパケットを暗号ブロック22が復号してCPU20に出力する。また通信装置が送信をするときには、CPU20によって生成されたパケットが暗号ブロック22によって暗号化され、暗号化されたパケットは通信ブロック23からCANバス5に出力されるようになっている。また、この暗号化/復号の鍵は、CANバス5をパケットが流れる度に各通信装置で同期して変更されるようになっている。以下、このような通信装置の構成および作動について詳細に説明する。
【0030】
CPU20は、それを有するそれぞれの通信装置が、エンジン制御、ブレーキ制御、エアサスペンション制御等の制御機器としての作動を行うための各種処理を行い、その処理の結果に基づき、CPU20に接続されている制御用の周辺回路(図示せず)を制御する処理装置である。またCPU20は、この制御用の処理以外に、CANバス5を介した他の通信装置との通信のための平文のパケットを生成して暗号ブロック22に送信し、またこのパケットをCANバス5内の他の通信装置に送信することを要求する信号として、送信要求信号を暗号ブロック22に送信する。送信要求信号は、送信要求の対象となるパケットの識別子であるIDおよびアドレス等を情報として含んでいる。このIDおよびアドレスについては後述する。またCPU20は、暗号ブロック22からCANバス5を介した他の通信装置からのパケットを暗号ブロック22から受信するようになっている。なお、パケット(またはフレーム)とは通信データのまとまりの一単位である。またCPU20は、これらの制御、通信の処理のための記憶領域として複数のレジスタを有している。
【0031】
暗号ブロック22は、CPU20から受信したCANバス5への送信のためのパケットを平文のまま通信ブロック23に送信し、また通信ブロック23に保存された送信のためのパケットを読み出して暗号化し、それを再度通信ブロック23に送信するようになっている。また暗号ブロック22は、通信ブロック23から受信したパケットを復号してCPU20に送信するようになっている。
【0032】
通信ブロック23は、CANのプロトコルに従い、暗号ブロック22から受信したパケットを保存またはCANバス5に送信し、CANバス5から受信したパケットを暗号ブロック22に送信するようになっている。
【0033】
図2は、この通信装置における、暗号ブロック22および通信ブロック23の構成を示す図である。
【0034】
通信ブロック23は、CANコントローラ231、メッセージボックス232、およびドライバ233を有している。
【0035】
ドライバ233は、通信ブロック23とCANバス5とのパケットのやりとりを媒介するインターフェースである。このドライバ233はCANコントローラ231から受信したパケットの電気的な増幅、送出のビットタイミングの同期等の処理を行い、このパケットを電気信号としてCANバス5に送信するようになっている。またドライバ233は、CANバス5を流れる電気信号を受信し、受信した電気信号をCANコントローラ231が扱える電気信号に変換し、この変換した信号をCANコントローラ231に送信するようになっている。
【0036】
メッセージボックス232は、データを記憶するための記憶素子(図示せず)から成る記憶装置である。図3に、メッセージボックス232の記憶領域の構造を模式的に示す。このメッセージボックス232は、ボックスナンバーという数値によって区別される複数のボックスから成る。このボックスには、CANバス5や暗号ブロック22のメモリ221から受信したパケットが格納される。
【0037】
CANコントローラ231は、CANのプロトコルに従って、メッセージボックス232に格納されたパケットをドライバ233に送信し、またドライバ233から受信したパケットをメッセージボックス232に格納するようになっている処理装置である。またCANコントローラ231は、ドライバ233からパケットを受信することにより、CANバス5を流れるパケットをモニターすることができる。このCANコントローラ231は、このモニターしているパケットと自分がそのとき送信している途中のパケットとのデータの食い違いが発生したことを検出することにより、CANバス5のエラーを検出できる。このとき、CANコントローラ231は、エラーが発生したことを他の車内LAN1内の通信装置に通知するためのパケットであるエラーフレームをドライバ233に出力するようになっている。また、他の通信機器が同様にCANバス5のエラーを検出した場合に送信するパケットであるエラーフレームを受信することによっても、CANコントローラ231はエラーを検出できる。このエラー検出の場合には、CANコントローラ231は再度エラーフレームをドライバ233に出力することはない。
【0038】
このCANコントローラ231は、送信要求フラグ、割り込みフラグ、メッセージボックスIDレジスタ、受信ボックスレジスタ等の複数のレジスタ(図示せず)を有しており、自己やメッセージボックス232等の状態に応じてこれらの値を変化させるようになっている。また、これらのレジスタに対してCANメモリコントローラ214によって読み出し、書き込みが行われるようになっている。
【0039】
送信要求フラグがオンであると、CANコントローラ231はメッセージボックス232がメモリ221から受信したパケットをドライバ233に送信するようになっている。また、送信要求フラグがオフであると、CANコントローラ231はパケットの送信を行わないようになっている。
【0040】
割り込みレジスタは、割り込み信号の発生原因の種別を格納するようになっている。割り込み信号とは、CANコントローラ231が割り込み処理部212に出力する1ビットの信号である。この割り込み信号は、CANコントローラ231からCANバス5への、ドライバ233を介したパケットの送信が完了したとき(送信完了)、CANコントローラ231がドライバ233を介してCANバス5からのパケットの受信を完了したとき(受信完了)、およびCANバス5のエラー検出をしたとき(エラー検出)にCANコントローラ231から割り込み処理部212へ出力されるようになっている。このとき、割り込み信号は送信完了割り込み、受信完了割り込み、またはエラー検出割り込みであることを示す値が、割り込みレジスタに設定される。
【0041】
メッセージボックスIDレジスタは複数有り、図3に示したメッセージボックス232が有する複数のボックスのそれぞれに、それらのうち1つが対応している。CANコントローラ231がドライバ233から受信するパケットには、後述するようにIDが付加されており、CANコントローラ231は受信したパケットのIDから、このパケットをどのボックスに格納するかを決定するようになっている。
【0042】
具体的には、CANコントローラ231はドライバ233からパケットを受信すると、ボックスナンバーが0のボックスに対応するメッセージボックスIDレジスタの内容と、受信したパケットのIDとを比較し、このメッセージボックスIDレジスタの内容が示すIDの範囲内に受信したパケットのIDが含まれていれば、このパケットをこのボックスに格納する。受信したパケットのIDがこの範囲内に含まれていなければ、ボックスナンバー1のボックスについて同様な比較を行う。このようにして、ボックスナンバーが0〜n(nは自然数)のボックスについて、受信したパケットのIDが対応するメッセージボックスIDレジスタの範囲内に入るまで順番に比較を行う。
【0043】
本実施形態においては、最も優先順位の低いボックス、すなわちボックスナンバーがnのボックスに対応するメッセージボックスIDレジスタの内容は、あらゆる種類のIDが範囲内に入るようなものになっている。これによってCANコントローラ231がドライバ233から受信したパケットは、それが当該通信装置宛のパケットでなかったとしても、必ずメッセージボックス232に格納されるようになる。また、ボックスナンバーが0〜n−1のボックスには、当該通信装置宛のパケットであることを示すIDを有するパケットのみが格納されるように、メッセージボックスIDレジスタは設定されている。
【0044】
受信ボックスレジスタは、CANコントローラ231がドライバ233から受信したパケットを格納した先のボックスのボックスナンバーが設定されるレジスタである。
【0045】
暗号ブロック22は、制御部210と演算部220を有している。
【0046】
暗号ブロック22の演算部220は、メモリ221、暗号化/復号部224、鍵生成部225から構成される。
【0047】
メモリ221は、データを記憶するための記憶素子(図示せず)と、この記憶素子へのデータの書き込み、およびこの記憶素子からのデータの読み出しを行うメモリコントローラ(図示せず)からなる記憶装置である。このメモリ221は、記憶素子の特定の領域(アドレス範囲)に送信要求信号部241、送信用平文部242、送信用暗号文部243、および受信用平文部244を有している。送信要求信号部241は受信した送信要求信号を1つまたは複数保存するために、送信用平文部242は送信のための平文のパケットを保存するために、送信用暗号文部243は送信のために暗号化されたパケットを保存するために、受信用平文部244は受信して平文に復号したパケットを保存するために、そして受信用暗号文部245は受信した暗号パケットを保存するために、それぞれ設けられた領域である。
【0048】
暗号化/復号部224は、メモリ221を制御することにより、送信用平文部242からデータを読みとり、このデータを暗号化して、送信用暗号文部243に暗号化されたデータを書き込むものである。また暗号化/復号部224は、メモリ221を制御することにより、受信用暗号文部245からデータを読みとり、このデータを復号して、受信用平文部244に復号されたデータを書き込むことができるようになっている。この暗号化および復号に使用する鍵は、鍵生成部225の乱数発生器226から受信するようになっている。なお、本実施形態においては、暗号化/復号のアルゴリズムとして、共通鍵暗号方式の1つであるDES(Data Enclyption Standard)を用いる。このDESにおいて使用される暗号化および復号のための鍵は、56ビットの符号列である。
【0049】
鍵生成部225は、乱数発生器226およびランダムシード227を有している。
【0050】
ランダムシード227は、記憶素子からなる記憶装置である。このランダムシード227は、乱数発生器226に対してデータの読み出し、書き込みができるようになっている。また、車内LAN1の設置時には、全ての通信装置のランダムシード227に同じデータが書き込まれている。
【0051】
乱数発生器226は、所定の規則に従った疑似ランダム数列を生成する装置である。この数列の各要素は、56ビットの符号列である。この乱数発生器226は、デコーダ215から新しい鍵を生成するよう要求する信号を受信することで、この数列の要素を順番に1個づつ暗号化/復号部224に送信するようになっている。このような乱数発生器226は、暗号化/復号部224が暗号化および復号に使用するためのための鍵を所定の鍵変更規則で順次生成する装置であると言える。
【0052】
また乱数発生器226は、デコーダ215から生成する疑似ランダム数列を別の数列にするよう要求する信号を受信すると、ランダムシード227からデータを読み出し、生成する疑似ランダム数列を、受信したデータに基づいた所定の疑似ランダム数列に変更し、この数列の1番目の要素を暗号化/復号部224に送信し、またこの1番目の要素をランダムシード227に書き込むようになっている。なお、乱数発生器226が、デコーダ215から生成する疑似ランダム数列を別の数列にするよう要求する信号を受信するのは、後述する通信装置の通信復帰が発生したときである。このとき書き込まれたデータは、乱数発生器226が次にデコーダ215から通信復帰を通知する信号を受信したときに、乱数発生器226が読み出すデータとなる。このような、乱数発生器226によってランダムシード227に対して読み出し、書き込みされるデータであり、複数の乱数の列のうち1つを特定できるデータは種と呼ばれる。
【0053】
暗号ブロック22の制御部210は、CPUメモリコントローラ211、割り込み処理部212、通信復帰処理部213、CANメモリコントローラ214、およびデコーダ215から構成される。
【0054】
CPUメモリコントローラ211は、CPU20内のレジスタとメモリ221との間でデータの授受を行うための要求信号を、CPU20とやりとりするための装置である。要求信号とは、具体的にはリード信号、ライト信号である。CPU20においてCPU20内のレジスタからメモリ221に対するデータの送信または受信の要求が発生した場合は、CPU20からCPUメモリコントローラ211へそれぞれライト信号またはリード信号が送信される。そしてこのライト信号またはリード信号を受信したCPUメモリコントローラ211は、それぞれの信号を受信したことをデコーダ215に通知する。デコーダ215においてメモリ221からCPU20内のレジスタに対するデータの送信または受信の要求が発生した場合は、デコーダ215からCPUメモリコントローラ211へその要求を通知する信号が送信され、その信号を受信したCPUメモリコントローラ211は、CPU20にそれぞれライト信号またはリード信号を送信する。
【0055】
割り込み処理部212は、CANコントローラ231から受信割り込み、送信完了割り込み、エラー検出割り込み等の割り込み信号を受信し、受信した割り込み信号をCPU20に出力する装置である。また割り込み処理部212は、割り込み信号を受信すると、割り込みを受信したことをデコーダ215に通知するようになっている。また割り込み処理部212は、デコーダ215から制御信号を受信することに基づいて、受信した割り込み信号をCPU20に出力しない場合もある。
【0056】
通信復帰処理部213は、暗号ブロック22が後述する通信復帰パケットを受信したことの通知をデコーダ215から受信すると、鍵を変更するよう要求する信号をデコーダ215に送信する処理装置である。
【0057】
CANメモリコントローラ214は、通信ブロック23内のメッセージボックス232とメモリ221との間でデータの授受を行うための要求信号を、通信ブロック23内のCANコントローラ231とやりとりするための装置である。要求信号とは、具体的にはリード信号、ライト信号である。CANコントローラ231においてメッセージボックス232からメモリ221に対するデータの送信または受信の要求が発生した場合は、CANコントローラ231からCANメモリコントローラ214へそれぞれライト信号またはリード信号が送信される。そしてこのライト信号またはリード信号を受信したCANメモリコントローラ214は、それぞれの信号を受信したことをデコーダ215に通知する。デコーダ215においてメモリ221からメッセージボックス232に対するデータの送信または受信の要求が発生した場合は、デコーダ215からCANメモリコントローラ214へその要求を通知する信号が送信され、その信号を受信したCANメモリコントローラ214は、CANコントローラ231にそれぞれライト信号またはリード信号を送信する。またCANメモリコントローラ214は、CANコントローラ231内のレジスタに対するデータの書き込みおよび読み出しを行うことができるようになっている。
【0058】
デコーダ215は、ソフトウェアに基づいて作動し、CPU20、メモリ221、暗号化/復号部224、乱数発生器226、CPUメモリコントローラ211、割り込み処理部212、通信復帰処理部213、CANメモリコントローラ214、およびCANコントローラ231と制御信号やデータのやりとりをすることで、暗号化/復号のための各種制御処理を行う装置である。このデコーダ215の具体的な作動については後述する。
【0059】
図4は、以上のような構成の通信装置が、CANバス5を介して車内LAN1内の他の通信装置と通信を行うときの手順の概略を示す図である。この手順の概略は以下の通りである。まずCPU20が平文パケットを生成し(ステップ410)、この平文パケットは暗号ブロック22を介してメッセージボックス232に格納される(ステップ420)。次に、CPU20から送信要求信号が送信され、暗号ブロック22がそれを受信して送信要求信号部241に格納する(ステップ430)。そして、暗号ブロック22は送信要求信号に基づいて、該当するパケットをメッセージボックス232から読み出して暗号化し(ステップ440)、この暗号化したパケットをメッセージボックス232に格納し、送信要求パケットをCANコントローラ231へ送信する。これによって、CANコントローラ231は当該パケットをCANバス5に送出する(ステップ450)。そして、暗号ブロック22は暗号を次のものに進める(ステップ460)。
【0060】
以下、このような手順においてデコーダ215が行う作動について詳細に説明する。まず、図5および図6に、この通信装置がCANバス5へ暗号化されたパケットの送信を行うときのデコーダ215の処理を、フローチャートとして示す。
【0061】
通信装置からCANバス5へのパケットの送信においては、まずCPU20が送信のためのパケットを作成し、自己内のレジスタへ格納する。図7に、このとき作成されるパケットの構造を示す。この図は、通信装置内でCPU20、暗号ブロック22、通信ブロック23の間でやりとりされるパケットの構造の変化を示している。
【0062】
CPU20が作成するパケットは、図7中右側一番上に帯状に示されているように、アドレス、ID、DLCおよびデータ(平文)によって構成される。データ(平文)は、このパケット中で通信先に伝えたい情報、すなわちパケットの本体である。CPU20によって生成されるデータは平文、すなわち暗号化されていないデータである。アドレスは、このパケットが格納されるべきメッセージボックス232内のボックスのボックスナンバーを示すものである。IDは、このパケット内のデータ(平文)の種別を示すものである。例えば、このパケットが暗号化を必要とするものであるか否かの区別は、このIDの特定のビットを参照することによって判別することができる。また、このパケットがメッセージボックス中のどのボックスに格納されるべきかも、このIDの特定のビットを参照することで判定される。DLCは、このパケット内のデータ(平文)のデータ長である。
【0063】
パケットを作成したCPU20は、CPUメモリコントローラ211へライト信号を送信し、またデコーダ215へアドレス信号を送信する。このアドレス信号は、送信用平文部242内の領域の、このパケットが格納されるべき領域の先頭アドレスを示す信号である。
【0064】
またCPU20は、送信要求信号を生成して自己のレジスタ内に格納し、この送信要求信号を送信要求信号部241に送るために、CPUメモリコントローラ211へライト信号を送信し、またデコーダ215へアドレス信号を送信する。このアドレス信号は、送信要求信号部241内の領域の、この送信要求信号が格納されるべき領域の先頭アドレスを示す信号である。
【0065】
CPUメモリコントローラ211はCPU20からパケット送信のためのライト信号を受信すると、デコーダ215にライト信号を受信したことを通知する。デコーダ215はこの通知を受信し(ステップ510)、CPU20から受信したアドレス信号に基づいてメモリ221に制御信号を送信する(ステップ515)。この制御信号は、メモリ221がこのアドレス信号の示すアドレスを先頭とする領域に、CPU20のレジスタからのパケットを格納することができるようにするための制御信号である。これにより、CPU20からのパケットはメモリ221の送信用平文部242内に格納される。
【0066】
次にデコーダ215は、送信用平文部242に書き込まれたパケットがメッセージボックス232に移されるための処理を行う(ステップ520)。すなわち、デコーダ215はCANメモリコントローラ214にリード信号を送信するよう要求し、パケットがこのパケットのアドレスに対応するボックスナンバーのボックスに格納されるように、CANコントローラ231にアドレス信号を送信し、その後メモリ221からメッセージボックス232へ当該パケットが送信されるように、メモリ221を制御する。これによって、送信用平文部242からメッセージボックス232の当該ボックスに、平文のままのパケットが送信される。この送信されるパケットの構造は、図7の右側中部に示されるように、CPU20が出力したパケットと同じである。
【0067】
次にデコーダ215は、CPU20から送信要求信号が送られてきているか否かを判定するための処理を行う。すなわち、CPUメモリコントローラ211からライト信号受信の通知を受け、さらにアドレス線25を介してCPU20から送信要求信号部241内の領域を指定するアドレス信号を受信しているかを判定する(ステップ525)。
【0068】
送信要求があったと判定すると、デコーダ215は、この送信要求信号を受信するようメモリ221を制御する(ステップ530)。これによって、送信要求信号が送信要求信号部241に保存される。
【0069】
以上のような図5の処理は、CPU20からパケットの送信がある度にくり返し行われるものであり、また以下に説明する図6の処理と並行して行われるものである。
【0070】
デコーダ215は、送信要求信号部241に送信要求信号が含まれているか否かの判定処理を繰り返している(ステップ533)。含まれていると判定すると、次にCANコントローラ231の送信要求フラグがオンであるかオフであるかを判定する処理に移る。この処理においては、デコーダ215はCANコントローラ231の送信要求フラグの値を読み出すよう要求する制御信号を、CANメモリコントローラ214に送信する。この制御信号を受信したCANメモリコントローラ214は、CANコントローラ231の送信要求フラグを読み出し、読み出した値をデコーダ215に通知する。デコーダ215はこの通知に基づいて、送信要求フラグがオンであるか否かを判定する(ステップ535)。
【0071】
送信要求フラグがオンであれば、CANコントローラ231は、いま送信を実行しようとするパケットをメッセージボックス232に有しているとして、デコーダ215はこの送信要求フラグがオフになるまで待つ。
【0072】
送信要求フラグがオフになると、デコーダ215は、送信要求信号部241に保存されている送信要求信号から1つを選択し(ステップ540)、この送信要求信号が含むIDに対応するパケットをメッセージボックス232から送信用平文部242へ移す処理を行う(ステップ545)。
【0073】
なお、この選択については、選択の優先順位として、送信要求信号が送信要求信号部241に保存された順に優先度が高いとしてもよいし、パケットの属性、すなわちパケットのIDによって優先度を決めてもよい。また、パケットの格納されたメッセージボックス232のボックスナンバー順に優先度を決めても良い。このように選択されたパケットは、メッセージボックス232に保存されたパケットのうち、最も先にCANバス5へ送信されるパケットである。
【0074】
また、ステップ545の受信処理においては、デコーダ215はまず、リード信号をCANコントローラ231に送信するよう要求する制御信号をCANメモリコントローラ214に出力し、またCANコントローラ231に当該パケットのメッセージボックスナンバーを送信する。CANメモリコントローラ214はデコーダ215から受信した制御信号に従い、CANコントローラ231にリード信号を送信する。リード信号およびボックスナンバーを受信したCANコントローラ231は、メッセージボックス232の当該ボックスからローカルバス27を介してデータが送出されるようにメッセージボックス232を制御する。またデコーダ215は、送信用平文部242でデータを受信するようメモリ221を制御する。これによってメッセージボックス232から送信用平文部242に当該パケットが送信される。
【0075】
次にデコーダ215は、暗号化/復号部224に制御信号を送信し、送信用平文部242に格納した当該パケット内のデータを暗号化するよう要求する制御信号を送信する(ステップ550)。この制御信号を受信した暗号化/復号部224は、送信用平文部242から該当するパケットを読み出し、現在の鍵を使用して、読み出したパケット中のデータを暗号化し、このパケットを送信用暗号文部243に書き込む。このように、最も先にCANバス5へ送信されるパケットのみが現在の鍵で暗号化される。メッセージボックス232の他のパケットは、鍵が変更されて自身が新たに最も先に送信されるパケットとなるまでは、暗号化されずに保存されたままでいる。
【0076】
そしてデコーダ215は、送信用暗号文部243に格納されたパケットをメッセージボックス232に移す処理を行う(ステップ555)。
【0077】
さらにデコーダ215は、CANコントローラ231の送信要求フラグをオンとするための処理を行う(ステップ560)。すなわち、CANメモリコントローラ214に制御信号を送信する。これによってCANメモリコントローラ214がCANコントローラ231に送信要求を行うよう要求する。この制御信号を受信したCANメモリコントローラ214は、CANコントローラ231内の送信要求フラグがオンとなるようCANコントローラ231を制御する。
【0078】
そしてCANコントローラ231は、送信要求フラグがオンとなったことを検出して、メッセージボックス232が受信したパケットを読み出し、このパケットのアドレスを切り取り、先頭部にSOF(Start Of File)コードを付加し、後端部にCRC、ACKおよびEOF(End Of File)コードを付加する。なお、CRCコードはパケットの伝送誤りをチェックためのコードでる。またACKはパケットの正常受信が行われたか否かを示すためのコードである。これによって、パケットは図7の右側下部に示すような構造になる。
【0079】
この後、パケットが実際にCANバス5に送信されるか否かは、CANコントローラ231およびドライバ233のCANのプロトコルに従った作動に依る。例えば、送信するタイミングにおいて受信が行われていたり、あるいは他の通信装置と同時にパケットを送信してもCANの規格(ISO11898、ISO11519−2等)による調停負けとなる場合においては、実際には送信は行われない。この場合には、CANコントローラ231がドライバ233を介し、先行して送信されたパケット、または調停に勝ったパケットの受信を行い、受信したパケットをメッセージボックス232に格納する。そしてCANコントローラ231は、自己の割り込みレジスタに受信完了割り込みであることを示す値を設定し、また割り込み処理部212に割り込み信号を送信する。
【0080】
また、パケットが実際にCANバス5に送信されない別の場合として、CANコントローラ231がドライバ233を介してパケットを送信しようとするときに、CANコントローラ231がCANバス5のエラー検出を行う場合がある。この場合には、CANコントローラ231は、自己の割り込みレジスタにエラー検出割り込みであることを示す値を設定し、また割り込み処理部212に割り込み信号を送信する。
【0081】
また、パケットが実際にCANバス5に送信される場合には、CANコントローラ231は送信のために読み込んだパケットをドライバ233に送出し、ドライバ233はこのパケットを受信して、このパケットに対して増幅等の処理を行った後CANバス5に送信する。この場合には、CANコントローラ231は、自己の割り込みレジスタに送信完了割り込みであることを示す値を設定し、また割り込み処理部212に割り込み信号を送信する。
【0082】
上記のような受信完了割り込み、エラー検出割り込み、送信完了割り込みといった割り込み信号を、割り込み処理部212がCANコントローラ231から受信すると、割り込み受信したことをデコーダ215に通知する。
【0083】
図8および図9は、この通知を受信したデコーダ215が行う処理を示すフローチャートである。
【0084】
この図8および図9の処理によって通信装置が行う作動の概要は以下の通りである。
【0085】
通信装置がパケットを送信したとき(ステップ630以降)、鍵を次のものに変更する。
【0086】
通信装置がエラーを検出したとき、(ステップ650以降)、鍵を次のものに変更する。ただし、このとき送信しようとして暗号化したパケットがあれば、このパケットについては、送信用平文部242に残っている平文を再度次の鍵で暗号化し直してから送信しようとする。なお、通信装置がエラーを検出するのは、CANバス5からエラー通知のためのエラーパケットを受信するか、あるいは自己の送信時にエラーを検知してエラーパケットを出力するかのいずれかの場合であるので、いずれの場合にもCANバス5にパケットが流れる。それゆえに鍵の変更を行うようになっている。
【0087】
通信装置がパケットを受信したとき(ステップ705以降)、そのまま受信して鍵を次のものに変更する。ただし、このとき送信しようとして暗号化したパケットがあれば、このパケットについては、送信用平文部242に残っている平文を再度次の鍵で暗号化し直してから送信しようとする。
【0088】
以下、このれらのフローチャートの詳細について説明する。
【0089】
まずステップ610でデコーダ215が割り込み受信の通知を受信する。するとデコーダ215は、割り込みの種類を検出するための処理を行い、割り込みが送信完了割り込みであるか、エラー検出割り込みであるか、受信完了割り込みであるかを判定する(ステップ620)。具体的には、デコーダ215は、CANコントローラ231の割り込みレジスタの値を読み出すよう要求する制御信号をCANメモリコントローラ214に送信する。CANメモリコントローラ214はこれに基づいて割り込みレジスタの値を読み出し、それをデコーダ215に通知する。そしてデコーダ215はこの通知を受信し、この受信した値から割り込みの種類を判定する。
【0090】
割り込みが送信完了割り込みであると判定すると、デコーダ215は、鍵を次のものに進めるよう要求する制御信号を鍵生成部225の乱数発生器226に出力する(ステップ630)。この制御信号を受信した乱数発生器226は、現在の数列中の次の値を鍵として暗号化/復号部224に送信する。そして暗号化/復号部224はこの受信した鍵を新たな鍵として以降使用する。
【0091】
次にデコーダ215は、CPU20に割り込み信号を出力するよう要求する制御信号を割り込み処理部212に送信する(ステップ640)。割り込み処理部212はこの制御信号を受信し、この制御信号に従ってCPU20に割り込み信号を送信する。これによって、CPU20は割り込みを検出することができ、それによって次の処理に進むことができるようになる。
【0092】
ステップ620の判定処理において、割り込みがエラー検出割り込みであるとデコーダ215が判定すると、デコーダ215はCANコントローラ231の送信要求フラグの値を読み出すよう要求する制御信号をCANメモリコントローラ214に送信する。この制御信号を受信したCANメモリコントローラ214は、CANコントローラ231の送信要求フラグを読み出し、読み出した値をデコーダ215に通知する。デコーダ215はこの通知に基づいて、送信要求フラグがオンであるか否かに基づいて現在送信要求があるか否かを判定する(ステップ650)。
【0093】
送信要求がないと判定すれば、デコーダ215は、鍵を次のものに変更するための処理を行う。すなわちデコーダ215は、ステップ690においてはステップ630と同等の処理で鍵を進めさせ、またステップ695においてはステップ640と同等の処理でCPU20へ割り込み信号を送信させる。
【0094】
送信要求があると判定すれば、デコーダ215は、現在の送信要求を取り下げて、パケットを新たな鍵で暗号化し直して、再度送信処理を行うための処理をする。このため、デコーダ215は、まず送信要求を取り下げる、すなわち送信要求フラグをオフに設定するよう要求する制御信号をCANメモリコントローラ214に送信する(ステップ660)。この制御信号を受信したCANメモリコントローラ214は、CANコントローラ231の送信要求フラグをオフにセットする。そしてデコーダ215は、ステップ670においてはステップ630と同等の処理で鍵を進めさせ、またステップ680においてはステップ640と同等の処理でCPU20へ割り込み信号を送信させる。
【0095】
そしてデコーダ215は、再度の送信処理を行うために、図6のステップ550の処理以降と同等の送信処理を行う。
【0096】
また、ステップ620の判定処理において、割り込みが受信完了割り込みであるとデコーダ215が判定すると、デコーダ215はCANコントローラ231の送信要求フラグの値を読み出すよう要求する制御信号をCANメモリコントローラ214に送信する。この制御信号を受信したCANメモリコントローラ214は、CANコントローラ231の送信要求フラグを読み出し、読み出した値をデコーダ215に通知する。デコーダ215はこの通知に基づいて、送信要求フラグがオンであるか否かに基づいて現在送信要求があるか否かを判定する(ステップ705)。
【0097】
送信要求がないと判定すれば、デコーダ215は、通信ブロック23が受信したパケットがこの通信装置宛のものか、すなわちこのパケットをCPU20が必要とするか否かを判定する(ステップ710)。この判定の処理においては、まずデコーダ215がCANコントローラ231の受信ボックスレジスタの値を読み出すよう要求する制御信号をCANメモリコントローラ214に送信する。この制御信号を受信した受信したCANメモリコントローラ214は、CANコントローラ231の受信ボックスレジスタを読み出し、読み出した値をデコーダ215に通知する。デコーダ215はこの通知を受けた値がnであれば、パケットはCPU20に必要でないと判定し、またこの値が0〜n−1であれば、パケットはCPU20に必要なデータであると判定する。
【0098】
この判定処理において、CANコントローラ231が受信したパケットはCPU20に必要ないと判定すると、デコーダ215は、鍵を次のものに進めるよう要求する制御信号を鍵生成部225の乱数発生器226に出力する(ステップ715)。この制御信号を受信した乱数発生器226は、現在の数列中の次の値を鍵として暗号化/復号部224に送信する。そして暗号化/復号部224はこの受信した鍵を新たな鍵として以降使用する。なおここでは、パケットはCPU20が必要とするものではないので、デコーダ215は割り込み処理部212を制御してCPU20へ割り込み信号を送信させることはしない。
【0099】
またステップ710の判定処理において、CANコントローラ231が受信したパケットはCPU20に必要なものであると判定すると、デコーダ215はメッセージボックス232からメモリ221へ受信したパケットを移し、さらにこのパケットの復号が必要であるか否かの判定を行う(ステップ725)。
【0100】
復号を必要としないと判定すれば、デコーダ215は受信用暗号文部245から受信したパケットを読み出し、読み出したパケットを受信用平文部244に書き込む(ステップ730)。
【0101】
復号を必要とすると判定すれば、デコーダ215は暗号化/復号部224に制御信号を送信し、受信用暗号文部245内の当該パケットのデータを復号するよう要求する制御信号を送信する(ステップ735)。この制御信号を受信した暗号化/復号部224は、受信用暗号文部245から該当するパケットを読み出し、現在の鍵を使用して、読み出したパケット中のデータ(暗号化)を復号し、データが復号されたパケットを受信用平文部244に書き込む。
【0102】
ステップ730、ステップ735の処理の後、デコーダ215はステップ715と同等の処理で、鍵生成部225に新たな鍵を生成させる(ステップ740)。そして、デコーダ215は受信用平文部244に書き込まれたパケットがCPU20のレジスタに移されるための処理を行う(ステップ745)。すなわち、デコーダ215は割り込み信号をCPU20に送信するよう要求する信号を割り込み処理部212に出力する。次にデコーダ215は、ライト信号を送信するよう要求する制御信号をCPUメモリコントローラ211に出力し、さらにCPU20にパケットを送信する先のレジスタ名を通知する。そしてデコーダ215がメモリ221を制御し、受信用平文部244内の当該パケットがローカルバス27へ送信されるようにする。また、制御信号を受信した割り込み処理部212は、CPU20に割り込み信号を送信する。また制御信号を受信したCPUメモリコントローラ211は、ライト信号をCPU20に送信する。割り込み信号、ライト信号、レジスタ名の通知を受信したCPU20はローカルバス27から当該レジスタにパケットを格納できるように処理を行う。このようにすることで、受信用平文部244からCPU20へパケットが送信される。
【0103】
また、ステップ705の送信要求の有無の判定処理において、送信要求があると判定すると、デコーダ215は、現在の送信要求を取り下げて、パケットを新たな鍵で暗号化し直して、再度送信処理を行おうとする。このため、デコーダ215は、まず送信要求を取り下げる、すなわち送信要求フラグをオフに設定するよう要求する制御信号をCANメモリコントローラ214に送信する(ステップ750)。この制御信号を受信したCANメモリコントローラ214は、CANコントローラ231の送信要求フラグをオフにセットする。
【0104】
そして、デコーダ215はまずステップ710〜745と同等の受信処理を行う。なお、図7中では、これらの処理に対しては、対応するステップ710〜745のそれぞれと同じステップ番号にダッシュを付加したものをステップの識別子として付与する。
【0105】
そしてデコーダ215は、再度の送信処理を行うために、図6のステップ550の処理以降と同等の送信処理を行う。
【0106】
以上のような通信装置の作動によって、必要な場合は送信するパケットは暗号ブロック22において暗号化され、受信したパケットは暗号ブロック22において復号されるようになるので、CANバス5において暗号化されたパケットが流れるので、暗号化された通信を行うことが可能となる。
【0107】
また、デコーダ215が、送信完了割り込み、受信完了割り込み、エラー割り込みを受信することに基づいて、鍵を新たなものに変更するので、CANバス5にパケットが流れたことを起因として鍵を変更するようになる。したがって、車内LAN1内のこのような作動を行う通信装置は同期して鍵を変更することが可能となる。また、車内LAN1内の各通信装置は全く同じ作動の鍵生成部225を有しているので、所定の同一の鍵変更規則で順次鍵が変更され、それぞれで鍵の食い違いが発生しないので、暗号化通信が損なわれることがない。
【0108】
また、暗号化アルゴリズムとして共有鍵暗号方式を用いているので、鍵を通信装置間で受け渡す必要がない。従って、鍵の受け渡しのための公開鍵暗号方式を用いる必要がないので、暗号の通知暗号化/復号の処理がすみやかに行われる。
【0109】
従って、キャリア検出型のネットワークにおいて、リアルタイム性が確保された暗号化通信が行えるようになる。
【0110】
さらに、送信されるパケットのうち、最も先に送信されるパケットのみを現在の鍵で暗号化するので、送信されるパケットが複数存在するときに、それらの全てが現在の鍵で暗号化され、その後1つのパケットが送信されて鍵が変更される度に未送信のパケットを再度暗号化の必要が発生することがない。したがって、暗号化/復号の処理がすみやかに行われ、暗号化通信のリアルタイム性が確保される。
【0111】
また、本実施形態においては、送信するための平文のパケットを、メッセージボックス232に保存するようになっている。これによって、メモリ221が送信のための複数の平文を保存する必要がなくなり、メモリ領域の低減に繋がる。
【0112】
なお、図6および図7に示したようなデコーダ215の作動においては、割り込み信号の受信がある度に鍵を変更するようになっているが、必ずしもこのようになっている必要はない。図10は、鍵を変更する他の方法の概略を示す概念図である。デコーダ215が、割り込みの通知を受信するたびに保持する数を1増やすカウンタ機能と、このカウンタ機能が保持する数と所定の設定回数とを比較する機能と、この比較において、カウンタ機能が保持する数が所定の設定回数に到達したときにのみ、ステップ630等の鍵を変更する処理を行う機能とを備えていてもよい。なおこの場合、カウンタが保持する数が所定の設定回数に達すると、カウンタが保持する数はゼロにリセットされるようになっている。このようになっていることで、デコーダ215が割り込みの通知を所定の回数受信することによって鍵を変更するようにすることができる。
【0113】
このような暗号化通信を行っている際に、車内LAN1内の通信装置のいずれかが故障等の理由でバスオフ状態となった場合、この通信装置は通信に参加できない。すなわち暗号化される通信への参加が途絶する。バスオフとはCANで規定される通信装置のエラー状態の1つで、LAN内の通信に参加することができないような状態のことである。バスオフや通信停止となった通信装置には上記したような割り込みが発生しないので、車内LAN1内の他の通信装置と同期して鍵を順次変更していくことができない。それゆえ、この通信装置がバスオフあるいは通信停止から復帰したとき、他の通信装置と使用している鍵が異なっている。
【0114】
図11は、バスオフあるいは通信停止以後の鍵と種の変化の様子を模式的に示す図である。設定回数(本実施形態においては1回)CANバス5にパケットが流れたことに起因してkey1、key2、key3と鍵が進んだとき、車内LAN1内の通信装置の1つが通信復帰した場合の車内LAN1内の各通信装置の作動について以下説明する。
【0115】
まず、通信に復帰した通信装置は、CANが規定する手順に従って、通信に復帰したことを他の通信装置に通知するための通信復帰パケットを平文でCANバス5に送信する。図12は、このパケットを受信した他の通信装置における通信復帰処理部213の処理を示すフローチャートである。CANコントローラ231は、CANバス5から通信復帰パケットを受信すると、このパケットをメッセージボックス232に格納し、割り込みレジスタに受信完了割り込みであることを示す値を設定し、また割り込み処理部212に割り込み信号を送信する。そして、デコーダ215は、図7のステップ705、710、725、730、740、745の処理を行う。そしてステップ745の次にデコーダ215は通信復帰処理部213に通信復帰パケットの受信があったことを通知する。
【0116】
通信復帰処理部213はこの通知を受信し(ステップ910)、この受信に基づいて、生成する疑似ランダム数列を別の数列にするよう要請する制御信号をデコーダ215に送信する(ステップ920)。デコーダ215はこの制御信号を受信すると、それを乱数発生器226に転送する。そして、この制御信号を受信した乱数発生器226は、ランダムシード227からデータを読み出し、生成する疑似ランダム数列を、受信したデータに基づいた所定の疑似ランダム数列に変更し、この数列の1番目の要素を暗号化/復号部224に送信し、またこの1番目の要素をランダムシード227に書き込む。
【0117】
これによって、通信復帰パケットを受信した通信装置においては、同一のランダムシードを使用して新たな疑似ランダム数列key’1、key’2…に変更する。また、通信復帰パケットを送信した通信装置も、均等の作動によって同一のランダムシードを使用して新たな疑似ランダム数列に変更するので、車内LAN1内の全ての通信装置において鍵が同期されるようになる。
【0118】
このようにすることによって、暗号化される通信の途絶状態から復帰した通信装置についても、再び鍵の同期が行われることによって、暗号化通信が行われるようになる。
【0119】
なお、本実施形態においては、CPU20が、ネットワーク内の他の通信装置と暗号化通信を行うときに、他の通信装置へ送信するためのパケットを平文として生成する平文パケット生成手段を構成する。
【0120】
また、送信用平文部242およびメッセージボックス232が、平文パケット生成手段が生成した平文のパケットを受信して保存する平文パケット保存メモリを構成する。
【0121】
また、暗号ブロック22が、前記平文パケット保存メモリが保存しているパケットのうち、最も先に前記他の通信装置に送信するパケットを現在の鍵で暗号化し、他のパケットを平文のまま保持する暗号化手段を構成する。
【0122】
また、疑似ランダム数列を順次暗号化/復号部224に出力する乱数発生器226が、鍵を他の通信装置と同一の鍵変更規則で変更する鍵変更手段を構成する。
【0123】
また、図8および図9に記載のデコーダ215のステップ630、670、690、715,715’、740、および740’の処理が、ネットワーク内にパケットが流れることに基づいて、鍵変更手段に鍵を変更させる鍵変更制御手段を構成する。
【0124】
また、図12に記載の通信復帰処理部のステップ910および920の処理が、ネットワークを介して、他の通信装置の1つが暗号化されたパケット通信への参加の途絶状態から復帰したことの通知を受信すると、鍵規則変更手段に、種の特定する鍵変更規則を同一の鍵変更規則とさせる鍵規則変更制御手段を構成する。
【0125】
また、乱数発生器226の、ランダムシード227からデータを読み出し、生成する疑似ランダム数列を、受信したデータに基づいた所定の疑似ランダム数列に変更し、この数列の1番目の要素を暗号化/復号部224に送信する処理が、種の特定する鍵変更規則を同一の鍵変更規則とする鍵規則変更手段を構成する。
【0126】
また、乱数発生器226の、上記した数列の1番目の要素をランダムシード227に書き込む処理が、種を他の通信装置と同一の種変更規則で変更する種変更手段を構成する。
【0127】
また、CANコントローラ231が、パケットを他の通信装置に送信することを要求する信号である送信要求信号を受信することにより、暗号化手段が暗号化したパケットを他の通信装置に送信する送信手段を構成する。
【0128】
また、送信要求信号部241が、暗号化手段が受信したパケット生成手段からの送信要求信号を保存する送信要求信号保存メモリを構成することを特徴としている。
【0129】
また、通信装置間の通信の暗号化/復号のアルゴリズムとしては、DESが用いられているが、必ずしもDESである必要はなく、共有鍵暗号システムであればどのようなアルゴリズムであってもよい。
【0130】
また、鍵生成部225は複数の乱数発生器226を有し、通信装置がバスオフ等から復帰する時に乱数発生器226を切り替えることで、新たな疑似ランダム数列を生成するようになっていてもよい。
【0131】
所定の鍵変更規則は乱数表でもよいし、乱数発生器でもよいし、所定の数式に従って処理装置が計算しても良い。すなわち、各通信装置で同じ順序で同じ鍵が生成できるようになっていればよい。
【0132】
また、本実施形態においては、車内LAN1内の通信装置が全て暗号化される通信に参加するようになっているが、必ずしもネットワーク内の通信装置が全て暗号化される通信に参加し、暗号化機能を有している必要はない。暗号化通信に参加する通信装置のみで鍵が同期していれば、発明は実現する。また、本実施形態においては、鍵の変更は、車内LAN1を参加するものが流すパケットのみに起因していてもいいし、全てのパケットの受信に起因していても良い。すなわち、鍵が各通信装置間で同期して変更されるようになっていればよいのである。
【図面の簡単な説明】
【図1】本発明の実施形態に係る車内LAN1の構成を示すブロック図である。
【図2】車内LAN1内の通信装置における、暗号ブロック22および通信ブロック23の構成を示す図である。
【図3】メッセージボックス232の記憶領域の構造を模式的に示す図である。
【図4】通信装置が他の通信装置と通信を行うときの手順の概略図である。
【図5】通信装置がCANバス5へ暗号化されたパケットの送信を行うときの、デコーダ215の処理のフローチャートである。
【図6】通信装置がCANバス5へ暗号化されたパケットの送信を行うときの、デコーダ215の処理のフローチャートである。
【図7】通信装置内でやりとりされるパケットの構造の変化を示す図である。
【図8】割り込み受信の通知を受信したデコーダ215が行う処理を示すフローチャートである。
【図9】割り込み受信の通知を受信したデコーダ215が行う処理を示すフローチャートである。
【図10】複数回の割り込み毎に鍵を変更する方法を示す概念図である。
【図11】バスオフあるいは通信停止以後の鍵と種の変化の様子を模式的に示す図である。
【図12】通信復帰処理部213の処理を示すフローチャートである。
【図13】TCP/IPおよび制御系LANとOSI参照モデルとの対応関係を示す図表である。
【符号の説明】
1…車内LAN、2…A通信装置、3…B通信装置、4…C通信装置、
5…CANバス、20…CPU、22…暗号ブロック、23…通信ブロック、24…制御線、25…アドレス線、26…割り込み線、27…ローカルバス、
210…制御部、211…CPUメモリコントローラ、
212…割り込み処理部、213…通信復帰処理部、
214…CANメモリコントローラ、215…デコーダ、220…演算部、
221…メモリ、224…暗号化/復号部、225…鍵発生部、
226…乱数発生器、227…ランダムシード、
231…CANコントローラ、232…メッセージボックス、
233…ドライバ、241…送信要求信号部、242…送信用平文部、       243…送信用暗号文部、244…受信用平文部、245…受信用暗号文部。

Claims (9)

  1. キャリア検出型のネットワーク内の通信装置間のパケット通信を暗号化するための鍵を、前記暗号化される通信に参加する全ての通信装置が共有する通信方式であって、
    前記暗号化される通信に参加する全ての通信装置が、パケットが前記ネットワーク内を流れることに基づいて、同一の鍵変更規則を用いて同期して前記鍵を変更し、
    前記暗号化される通信に参加する通信装置は、送信するパケットを平文として保持し、この保持しているパケットのうち、最も先に送信されるパケットを現在の鍵で暗号化し、他のパケットを平文のまま保持することを特徴とする暗号化通信方式。
  2. 前記暗号化される通信に参加する通信装置は、所定の複数の鍵変更規則のうち1つを特定する識別子である種を共有しており、
    前記通信装置のうち1つが前記暗号化される通信への参加が途絶したのち前記暗号化される通信に復帰すると、前記暗号化される通信に参加する全ての通信装置は、前記同一の鍵変更規則として新たに前記種が特定する鍵変更規則を用いることを特徴とする請求項1に記載の暗号化通信方式。
  3. 前記ネットワークにおいて用いられる通信プロトコルは、CANであることを特徴とする請求項1または2に記載の暗号化通信方式。
  4. キャリア検出型のネットワーク内にあり、前記ネットワーク内の他の通信装置との間のパケット通信を暗号化するための鍵を、前記他の通信装置と共有する通信装置であって、
    前記ネットワーク内の他の通信装置と暗号化通信を行うときに、前記他の通信装置へ送信するためのパケットを平文として生成する平文パケット生成手段と、
    前記平文パケット生成手段が生成した平文のパケットを受信して保存する平文パケット保存メモリと、
    前記平文パケット保存メモリが保存しているパケットのうち、最も先に前記他の通信装置に送信するパケットを現在の鍵で暗号化し、他のパケットを平文のまま保持する暗号化手段と、を備え、
    前記暗号化手段は、前記鍵を前記他の通信装置と同一の鍵変更規則で変更する鍵変更手段と、前記ネットワーク内にパケットが流れることに基づいて、前記鍵変更手段に鍵を変更させる鍵変更制御手段とを有することを特徴とする通信装置。
  5. パケットを前記他の通信装置に送信することを要求する信号である送信要求信号を受信することにより、前記暗号化手段が暗号化したパケットを前記他の通信装置に送信する送信手段を備え、
    前記パケット生成手段は、パケットを生成すると、前記パケットの送信要求信号を前記暗号化手段に出力し、
    前記暗号化手段は、前記パケット生成手段が出力した送信要求信号を受信すると、前記平文パケット保存メモリが保存しているパケットのうち、最も先に前記他の通信装置に送信するパケットを現在の鍵で暗号化した後、前記送信要求信号を前記送信手段に出力することを特徴とする請求項4に記載の通信装置。
  6. 前記暗号化手段は、受信した前記パケット生成手段からの送信要求信号を保存する送信要求信号保存メモリを有し、前記送信要求信号保存メモリが保存している送信要求信号のうち、優先度の高いものから順に前記送信手段に出力することを特徴とする請求項5に記載の通信装置。
  7. 前記暗号化手段は、前記優先度は前記送信要求信号が前記送信要求信号保存メモリに保存された順に高いとすることを特徴とする請求項6に記載の通信装置。
  8. 前記暗号化手段は、前記優先度を前記平文パケット生成手段が生成した、前記送信要求信号に対応するパケットの属性に基づいて決定することを特徴とする請求項6に記載の通信装置。
  9. 複数の鍵変更規則のうち1つを特定する識別子である種を前記他の通信装置と共有し、
    前記ネットワークを介して、前記他の通信装置の1つが前記暗号化されたパケット通信への参加の途絶状態から復帰したことの通知を受信すると、前記鍵規則変更手段に、前記種の特定する鍵変更規則を前記同一の鍵変更規則とさせる鍵規則変更制御手段とを備え、
    前記鍵変更手段は、前記種の特定する鍵変更規則を前記同一の鍵変更規則とする鍵規則変更手段を有することを特徴とする請求項4ないし8のいずれか1つに記載の通信装置。
JP2002171594A 2002-06-12 2002-06-12 暗号化通信方式、および通信装置 Pending JP2004023156A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002171594A JP2004023156A (ja) 2002-06-12 2002-06-12 暗号化通信方式、および通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002171594A JP2004023156A (ja) 2002-06-12 2002-06-12 暗号化通信方式、および通信装置

Publications (1)

Publication Number Publication Date
JP2004023156A true JP2004023156A (ja) 2004-01-22

Family

ID=31171410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002171594A Pending JP2004023156A (ja) 2002-06-12 2002-06-12 暗号化通信方式、および通信装置

Country Status (1)

Country Link
JP (1) JP2004023156A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005341528A (ja) * 2004-04-28 2005-12-08 Denso Corp 通信システム、鍵配信装置、暗号処理装置、盗難防止装置
JP2009514726A (ja) * 2005-11-04 2009-04-09 ボーズ・コーポレーション 安全なアクティブサスペンションシステム
KR101370829B1 (ko) 2007-05-08 2014-03-10 삼성전자주식회사 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템
GB2561256A (en) * 2017-04-05 2018-10-10 Stmicroelectronics Grenoble2 Sas Apparatus for use in a can system

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005341528A (ja) * 2004-04-28 2005-12-08 Denso Corp 通信システム、鍵配信装置、暗号処理装置、盗難防止装置
JP4576997B2 (ja) * 2004-04-28 2010-11-10 株式会社デンソー 通信システム、鍵配信装置、暗号処理装置
JP2009514726A (ja) * 2005-11-04 2009-04-09 ボーズ・コーポレーション 安全なアクティブサスペンションシステム
KR101370829B1 (ko) 2007-05-08 2014-03-10 삼성전자주식회사 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템
GB2561256A (en) * 2017-04-05 2018-10-10 Stmicroelectronics Grenoble2 Sas Apparatus for use in a can system
CN108696411A (zh) * 2017-04-05 2018-10-23 意法半导体(格勒诺布尔2)公司 用于在can系统中使用的装置
US10862874B2 (en) 2017-04-05 2020-12-08 Stmicroelectronics (Grenoble 2) Sas Apparatus for use in a can system
CN108696411B (zh) * 2017-04-05 2021-07-16 意法半导体(格勒诺布尔2)公司 用于在can系统中使用的装置
US11606341B2 (en) 2017-04-05 2023-03-14 Stmicroelectronics (Grenoble 2) Sas Apparatus for use in a can system
EP3386163B1 (en) * 2017-04-05 2023-05-31 STMicroelectronics (Grenoble 2) SAS Apparatuses and methods for use in a can system

Similar Documents

Publication Publication Date Title
US11606341B2 (en) Apparatus for use in a can system
JP3816689B2 (ja) 情報配信装置、情報受信装置及び通信方法
JP6126980B2 (ja) ネットワーク装置およびネットワークシステム
JP3769580B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
US7349396B2 (en) Content distribution system
EP2634991A1 (en) Content-centric networking
JPH0338131A (ja) コンピュータ回路網において暗号化されたキーをデータパケット内のキー識別子として使用する方法
WO2011134807A1 (en) Dynamic encryption and decryption for network communication
JP2007036351A (ja) 情報通信システム、情報通信装置及び情報通信方法、並びにコンピュータ・プログラム
JPH1155322A (ja) 暗号通信システム
TW201008195A (en) Key management for communication networks
JP2006229863A (ja) 暗号化/復号化装置、通信コントローラ及び電子機器
KR20110119785A (ko) 비-암호화 망 동작 해결책
CN104137508A (zh) 具有网络附接的无状态安全卸载装置的网络节点
WO2016068942A1 (en) Encryption for transactions in a memory fabric
JP2017121091A (ja) Ecu、及び車用ネットワーク装置
JP2002217896A (ja) 暗号通信方法およびゲートウエイ装置
JP2001237818A (ja) プロキシ暗号通信システム及び方法並びにプログラムを記録した記録媒体
JP2006019975A (ja) 暗号パケット通信システム、これに備えられる受信装置、送信装置、及びこれらに適用される暗号パケット通信方法、受信方法、送信方法、受信プログラム、送信プログラム
JPH0637750A (ja) 情報転送方式
JP4725070B2 (ja) 正規コンテンツ確認方法、コンテンツ送受信システム、送信機、および受信機
JP2004023156A (ja) 暗号化通信方式、および通信装置
JP2004343626A (ja) 車載通信システム、車載機器及び暗号化方法
WO2024001037A1 (zh) 一种消息传输方法、装置、电子设备和存储介质
JP2004015305A (ja) 暗号化通信方式、および通信装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060613

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060804

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061212