本発明を具体的に説明する前に、概要を述べる。本発明の実施例は、交差点や路側などに設置された基地局装置から車両に搭載された端末装置に、情報を提供するために実行される路車間通信、および車両に搭載された端末装置から他の車両に情報を提供するために実行される車車間通信を用いたITS(Intelligent Transport Systems)などの通信システムに関する。
ITSでは、IEEE802.11などの規格に準拠した無線LANを用いることが検討されている。そのような無線LANでは、CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)と呼ばれるアクセス制御機能が使用されている。そのため、当該無線LANでは、基地局装置および複数の端末装置によって同一の無線チャネルが共有される。このようなCSMA/CAでは、キャリアセンスによって他のパケット信号が送信されていないことを確認した後に、パケット信号がブロードキャストにより送信される(以下、パケット信号のブロードキャストによる送信を「報知」という)。
車車間通信として、端末装置は、それが搭載されている車両の速度や位置などを示す車両情報を格納したパケット信号をブロードキャストにより送信する。そのパケット信号を受信した端末装置は、そのパケット信号に格納された情報をもとに車両の接近などを認識する。また、路車間通信として、基地局装置は、交差点情報および渋滞情報などが格納されたパケット信号を報知する。
交差点情報には、交差点の位置情報、基地局装置が設置された交差点の撮影画像、交差点内の車両の位置情報など、交差点の状況に関する交差点情報が含まれる。端末装置は、この交差点情報をモニタに表示する。また、この交差点情報をもとに交差点の状況を認識し、出会い頭・右折・左折による、車両、自転車、歩行者との衝突防止を目的とした音声メッセージをユーザに報知してもよい。渋滞情報には、基地局装置が設置された走路の混雑状況、道路工事、事故に関する情報が含まれる。端末装置は、この渋滞情報をもとに進行方向の渋滞をユーザに伝達する。また、その渋滞を迂回するための迂回路を提示してもよい。
図1は、本発明の実施例に係る通信システム500の構成を示す。これは、一つの交差点を上方から見た場合に相当する。通信システム500は、基地局装置20、第1車両100aに搭載された端末装置10a、第2車両100bに搭載された端末装置10bを含む。エリア202は基地局装置20の電波圏内を示し、エリア外204は基地局装置20の電波圏外を示す。図面の上側が「北」に対応し、第1車両100aは「南」から「北」に進んでおり、第2車両100bは「東」から「西」に進んでいる。基地局装置20は外部ネットワーク200を介して後述する路車間サービス事業者端末装置などと通信が可能である。
図2は、基地局装置20の構成を示す。基地局装置20は、アンテナ21、RF部22、変復調部23、MACフレーム処理部24、セキュリティ処理部25、データ生成部26、ネットワーク通信部27、記憶部28および制御部29を備える。セキュリティ処理部25は暗復号部251と、暗号部252を含む。
MACフレーム処理部24、セキュリティ処理部25、データ生成部26、ネットワーク通信部27、記憶部28および制御部29の構成は、ハードウエア的には、任意のプロセッサ、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
図3は、通信システム500において規定されるパケット信号に格納されるMACフレームのフォーマットを示す。MACフレームには、前段から「MACヘッダ」、「LLCヘッダ」、「情報ヘッダ」、「セキュリティフレーム」が配置される。「MACヘッダ」、「LLCヘッダ」および「情報ヘッダ」にはデータ通信制御に関わる情報が格納されており、それぞれが通信レイヤの各層に対応する。各フィード長は、たとえば、「MACヘッダ」が30バイト、「LLCヘッダ」が8バイト、「情報ヘッダ」が12バイトで規定される。セキュリティフレームには、前段から「セキュリティヘッダ」、「ペイロード」、「セキュリティフッタ」が配置される。
図4(a)−(b)は、セキュリティフレームを構成するメッセージのデータ構造の例を示す。図4(a)に示すメッセージのデータ構成には、セキュリティヘッダとして、「バージョン」、「メッセージタイプ」、「鍵ID」、「nonce」および「ペイロード長」が含まれる。ペイロードとして、「機器ID」、「アプリケーションデータ長」、「アプリケーションデータ」、「管理データ長」および「管理データ」が含まれる。セキュリティフッタとして、「メッセージ認証コード」が含まれる。
本来、「ペイロード」が認証および暗号化の対象データである。しかしながら、認証の信頼性を上げるために、「nonce」、「ペイロード長」も認証の対象に含める。具体的には、先頭ブロックに「nonce」、「ペイロード長」を配置し、第2ブロック以降に「ペイロード」を配置したブロック列を対象としてメッセージ認証コードを求める。ここで、ブロックとはメッセージ認証コードを演算するための単位である。「nonce」は、「ペイロード」が同一であっても、発信毎に「メッセージ認証コード」の値が異なるようにすることを目的とするデータであり、メッセージ毎にユニークな値がセットされる。「ペイロード長」は、「ペイロード」のデータ長を示し、データ挿入または削除を伴うデータ改ざんに対する信頼性を向上させる。同様に、「メッセージ認証コード」も暗号化対象範囲に含める。
このデータ構造では、「nonce」、「ペイロード長」、「機器ID」、「アプリケーションデータ長」、「アプリケーションデータ」、「管理データ長」および「管理データ」が認証対象範囲である。また、「機器ID」、「アプリケーションデータ長」、「アプリケーションデータ」、「管理データ長」、「管理データ」および「メッセージ認証コード」が暗号化対象範囲である。
図4(b)に示すメッセージのデータ構成には、セキュリティヘッダとして、「バージョン」、「メッセージタイプ」、「鍵ID」および「nonce」が含まれる。nonceには、「機器ID」および「送信日時」が含まれる。ペイロードとして、「アプリケーションデータ長」、「アプリケーションデータ」、「管理データ長」および「管理データ」が含まれる。セキュリティフッダとして、「メッセージ認証コード」が含まれる。このデータ構造では、「nonce」、「ペイロード長」、「アプリケーションデータ長」、「アプリケーションデータ」、「管理データ長」および「管理データ」が認証対象範囲である。また、「アプリケーションデータ長」、「アプリケーションデータ」、「管理データ長」、「管理データ」および「メッセージ認証コード」が暗号化対象範囲である。なお、いずれの場合も暗号の対象となるのは、ペイロードとメッセージ認証コードである。
図5は、メッセージタイプのデータ構造を示す。メッセージタイプは「保護形式」および「管理データ」により構成される。「保護形式」には「0」、「1」、「2」、「3」のいずれかがセットされる。「0」はメッセージが平文であることを示す。メッセージ認証コードは添付されず、暗号化されない。「1」はメッセージがデータ認証付きデータであることを示す。たとえば、AES(Advanced Encryption Standard)−CBC(Cipher Block Chaining)−MAC(Message Authentication Code)方式を採用することができる。この場合、AES−CBCモード暗号処理により生成されたMACがメッセージに添付される。「2」はメッセージがデータ認証付き暗号化データであることを示す。たとえば、AES−CCM(Counter with CBC−MAC)方式を採用することができる。AES−CCMモード暗号処理により生成されたMACがメッセージに添付されるとともに、AES−Counterモードで暗号化される。「3」はリザーブである。
「管理データ」には「0」、「1」のいずれかがセットされる。「0」は管理データが含まれないことを示す。この場合、管理データフィールド(管理データ長と管理データをいう)は設定されない。車車間通信では、原則として「0」がセットされる。「1」は管理データフィールドが含まれることを示す。なお、「0」がセットされた場合、冗長を排除するために、アプリケーションデータ長も設定しないように変更してもよい。図4(a)では、ペイロードに含まれるデータが、固定長の機器IDと、アプリケーションデータとなるため、アプリケーションデータ長を設定しなくても、アプリケーションデータを特定できる。図4(b)では、ペイロードに含まれるデータが、アプリケーションデータのみとなるためより自明である。
図6は、鍵IDのデータ構造を示す。鍵IDは「テーブル番号」および「鍵番号」により構成される。「テーブル番号」には、共通鍵テーブルの識別番号がセットされる。「鍵番号」には、共通鍵テーブル内での鍵の識別番号がセットされる。発信時には、予め定められた送信用に使用される共通鍵テーブルから、ランダムに選択された鍵を通信鍵として使用する。よって、テーブル番号には、送信用の共通鍵テーブルの番号が、鍵番号には、乱数がセットされる。
「機器ID」は「種別」および「個別情報」により構成される。「種別」には路側機であるか、緊急車両であるか、一般車両であるかを識別するための情報がセットされる。「個別情報」には各機器を識別するためのユニークな値がセットされる。
図4(a)における「nonce」には、メッセージ毎にユニークな値がセットされる。この値は乱数であってもよい。図4(b)における「nonce」には、当該ユニークな値の代わりに、機器IDと送信時刻がセットされる。機器IDと送信時刻が特定されれば、各メッセージをユニークに特定できるという設計思想にもとづいている。
「アプリケーションデータ」には、上述した交差点情報、渋滞情報、車両情報などがセットされる。「管理データ」には、鍵の更新などセキュリティに関するメンテナンス情報などがセットされる。
図7は、通信システム500上の各機器で共有されるべき共通鍵テーブルの例を示す。それぞれ複数種類の共通鍵を含む複数の共通鍵テーブルが共有される。複数の共通鍵テーブルはそれぞれ、値の異なる複数の共通鍵を含む。本実施例では、それぞれ16種類の共通鍵を含む16種類の共通鍵テーブルが共有される例を挙げる。すなわち、256個の共通鍵を共有する例を挙げる。なお、各共通鍵テーブルに含まれる共通鍵の数は同じである必要はなく、異なっていてもよい。
複数の共通鍵テーブルのうち、送信用に使用される共通鍵テーブル(以下、送信テーブルという)が一つ選択される。この送信テーブルは定期的(たとえば、6ヶ月、1年または2年ごと)に切り替えられる。図7では、共通鍵テーブル0→共通鍵テーブル1→・・・共通鍵テーブル15と切り替えられ、最後の共通鍵テーブル15に到達すると、最初の共通鍵テーブル0に戻る。送信テーブルにおいて、使用される共通鍵はランダムに選択される。
図8は、送信テーブルの切り替えを説明するための図である。本実施例では、送信テーブルの切り替えタイミングは、システム運用管理機関30により決定される。システム運用管理機関30のシステム運用管理装置300は、路車間サービス事業者40の路車間サービス事業者端末装置400および車両メーカ60の車両メーカ端末装置600に、送信テーブルの切り替えを指示する。本実施例では、インターネットや専用回線などの外部ネットワーク200を介してシステム運用管理装置300から路車間サービス事業者端末装置400および車両メーカ端末装置600に送信テーブルの切り替えを指示する例を想定する。なお、システム運用管理機関30は、その他の通信手段(たとえば、郵便)を用いて路車間サービス事業者40および車両メーカ60に指示してもよい。
路車間サービス事業者端末装置400は、路側機(基地局装置20)に切り替え後の送信テーブルに含まれる共通鍵を含むメッセージを送信する。路側機は、そのメッセージを受信すると、当該共通鍵を含む共通鍵テーブルを新たな送信テーブルに設定する。路側機は、新たに送信テーブルに設定された共通鍵テーブルに含まれる共通鍵を用いたメッセージを報知する。既存車両100の車載器(端末装置10)は、そのメッセージを受信すると、当該共通鍵を含む共通鍵テーブルを新たな送信テーブルに設定する。その後、当該車載器は、新たに送信テーブルに設定された共通鍵テーブルに含まれる共通鍵を含むメッセージを報知する。別の既存車両100の車載器は、そのメッセージを受信すると、当該共通鍵を含む共通鍵テーブルを新たな送信テーブルに設定する。この処理を繰り返す。
また、車両メーカ端末装置600は、新車両100の車載器(端末装置10)に、路車間サービス事業者端末装置400から指示された共通鍵テーブルを送信テーブルに設定する。当該車載器は、その送信テーブルに設定された共通鍵テーブルに含まれる共通鍵(通信鍵)を含むメッセージを報知する。既存車両100の車載器は、そのメッセージを受信すると、当該共通鍵を含む共通鍵テーブルを新たな送信テーブルに設定する。その後、当該車載器は、新たに送信テーブルに設定された共通鍵テーブルに含まれる共通鍵を含むメッセージを報知する。別の既存車両100の車載器は、そのメッセージを受信すると、当該共通鍵を含む共通鍵テーブルを新たな送信テーブルに設定する。この処理を繰り返す。
以上の処理により、通信システム500における各機器の送信テーブルが伝搬的に切り替えられていく。なお、このような伝搬システムの代わりに、各機器に予め設定されたスケジュールプログラムにしたがって送信テーブルを切り替えてもよい。ただし、この手法は時計が搭載されていること、その時計が正確であること、そして路側機および車載器の時計の同期がとれていることが条件となる。したがって、それを補完するために、両者の手法を併用してもよい。なお、図8では路車間サービス事業者端末装置400、車両メーカ端末装置600および路側機を一つずつ描いているが、実際にはそれぞれ多数存在する。
図2に戻る。RF部22は、受信処理として、端末装置10および他の基地局装置20からのパケット信号をアンテナ21にて受信する。本実施例では、RF部22は共通鍵テーブルの更新対象となる端末装置10からその端末装置10の機器IDを格納するパケット信号を受信する。
RF部22は、受信した無線周波数のパケット信号に対して周波数変換を実行し、ベースバンドのパケット信号を生成する。RF部22は、ベースバンドのパケット信号を変復調部23に出力する。一般的に、ベースバンドのパケット信号は、同相成分と直交成分によって形成されるため、二つの信号線が示されるべきであるが、図を簡略化するため、図2では一つの信号線だけを示している。RF部22は、受信系の構成要素として、図示しないLNA(Low Noise Amplifier)、ミキサ、AGC、A/D変換部などを含む。
RF部22は、送信処理として、生成したパケット信号を基地局装置20から送信する。本実施例では、RF部22はセキュリティ処理部25により暗号化されたテーブル更新鍵(以下、暗号化テーブル更新鍵という)を格納するパケット信号、および暗号化された更新共通鍵テーブル(以下、暗号化更新共通鍵テーブルという)を格納するパケット信号を報知する。暗号化テーブル更新鍵を報知するタイミングと、暗号化更新共通鍵テーブルを報知するタイミングは異なっていてもよいし、同じであってもよい。タイミングが異なる場合、暗号化テーブル更新鍵が暗号化更新共通鍵テーブルより先に報知されてもよいし、後に報知されてもよい。
RF部22は、変復調部23から入力されるベースバンドのパケット信号に対して周波数変換を実行し、無線周波数のパケット信号を生成する。RF部22は、路車送信期間において、無線周波数のパケット信号をアンテナ21から送信する。RF部22は、送信系の構成要素として、図示しないPA(Power Amplifier)、ミキサ、D/A変換部などを含む。
変復調部23は、受信処理として、RF部22からのベースバンドのパケット信号に対して、復調を実行する。変復調部23は、復調した結果から、MACフレームをMACフレーム処理部24に出力する。また、変復調部23は、送信処理として、MACフレーム処理部24からのMACフレームに対して、変調を実行する。変復調部23は、変調した結果をベースバンドのパケット信号としてRF部22に出力する。
本実施例に係る通信システム500では、OFDM(Orthogonal Frequency Division Multiplexing)変調方式を採用する。この場合、変復調部23は受信処理としてFFT(Fast Fourier Transform)を実行し、送信処理としてIFFT(Inverse Fast Fourier Transform)を実行する。
MACフレーム処理部24は、受信処理として、変復調部23からのMACフレームから、セキュリティフレームを取り出し、セキュリティ処理部25に出力する。また、MACフレーム処理部24は、送信処理として、セキュリティ処理部25からのセキュリティフレームに対して、MACヘッダ、LLCヘッダおよび情報ヘッダを付加し、MACフレームを生成し、変復調部23に出力する。また、他の基地局装置20または端末装置10からのパケット信号が衝突しないようパケット信号の送受信タイミングを制御する。
ネットワーク通信部27は、外部ネットワーク200に接続される。ネットワーク通信部27は、外部ネットワーク200から工事や渋滞などに関する道路情報を受けつける。本実施例ではシステム運用管理装置300から送信された後述する失効鍵IDを路車間サービス事業者端末装置400を介して受信する。また、本実施例ではシステム運用管理装置300から送信された更新用の共通鍵テーブルを暗号化するためのテーブル更新鍵および当該テーブル更新鍵により暗号化された暗号化更新共通鍵テーブルを路車間サービス事業者端末装置400を介して受信する。また、システム運用管理装置300から送信される共通鍵テーブルを更新すべきでない端末装置10のリスト(以下、機器ネガリストという)も受信する。機器ネガリストに登録される機器は、改ざん車載器や機器に不具合が発見され、メーカによる回収が進められている機器などが該当する。
また、ネットワーク通信部27は、セキュリティ処理部25による処理結果を外部ネットワーク200へ出力したり、記憶部28に蓄積して、定期的に外部ネットワーク200へ出力したりする。データ生成部26は、アプリケーションデータを生成する。たとえば、アプリケーションデータに道路情報をセットする。そして、アプリケーションデータの内容によって、保護形式を指定し、生成したアプリケーションデータと、そのデータ長をセキュリティ処理部25に出力する。
記憶部28は、種々の情報を記憶する。本実施例では、上記共通鍵テーブル、通信システム500内で共通の更新マスタ鍵および上記機器ネガリストを記憶する。なお、当該共通鍵テーブルおよび当該更新マスタ鍵は出荷時に組み込まれていてもよいし、事後的にネットワーク通信部27を介して取得されたものであってもよい。また、記憶部28は、端末装置10から取得した機器IDおよび車両情報、ならびにシステム運用管理装置300から取得した暗号化更新共通鍵テーブル、テーブル更新鍵および道路情報を一時的に記憶する。制御部29は、基地局装置20全体の処理を制御する。
セキュリティ処理部25は、セキュリティフレームを生成または解釈する。セキュリティ処理部25は、MACフレーム処理部24に出力すべきセキュリティフレームを、記憶部28に記憶されているデータをもとに生成する。データ生成部26から受け取ったアプリケーションデータを、ペイロードの「アプリケーションデータ」に、データ長をペイロードの「アプリケーションデータ長」にセットする。または、「管理データ」に、必要に応じて、後述する失効鍵ID、後述する暗号化テーブル更新鍵または暗号化更新共通鍵テーブルをセットし、セキュリティヘッダおよびセキュリティフッタを付加してセキュリティフレームを生成する。その際、上述したようにメッセージ認証コードを生成して添付し、データ認証させることが可能である。さらに、ペイロードおよびメッセージ認証コードを暗号化することで、メッセージを秘匿することも可能である。
セキュリティ処理部25は、暗復号部251および暗号部252を含む。暗復号部251は、ペイロードに対するデータ認証および暗号化を行うことができる。セキュリティ処理部25は、データ生成部26から指示されるアプリケーションデータからの要求と、セキュリティ処理部25がセットする管理データからの要求の双方に鑑み、セキュリティフレームの保護機能を選択する。管理データを発信する場合は、通常、データ認証付き暗号化データ(=3)が選択される。そして、保護機能を、セキュリティフレームの当該フィールドにセットする。次いで、暗復号部251に保護機能をセットしたセキュリティフレームを出力する。暗復号部251は、保護機能が平文(=0)の場合、処理を省略する。データ認証付きデータ(=1)の場合、送信テーブルから鍵を選択し、その鍵を用いてメッセージ認証コードを生成する。次いで、選択した鍵の鍵IDおよびメッセージ認証コードを、セキュリティフレームの当該フィールドにセットする。データ認証付き暗号化データ(=3)の場合、送信テーブルから鍵を選択し、その鍵を用いてメッセージ認証コードを生成し、選択した鍵の鍵IDおよびメッセージ認証コードを、セキュリティフレームの当該フィールドにセットする。次いで、選択した鍵を使用して、ペイロードおよびメッセージ認証コードを暗号化する。
セキュリティ処理部25は、送信処理として、共通鍵テーブルに含まれる複数の通信鍵のうち、使用不可とすべき通信鍵(以下、失効鍵という)の識別情報を報知するために失効鍵の識別情報(以下、失効鍵IDという)を管理データにセットする。この失効鍵IDは、失効の対象となる通信鍵の鍵IDに、その真正性を確認するためのメッセージ認証コードを連ねたデータである。また、セキュリティ処理部25は、暗号化テーブル更新鍵、および暗号化更新共通鍵テーブルを管理データにセットする。なお、更新共通鍵テーブルは、端末装置10の記憶部18に記憶されている共通鍵テーブルを書き換える(更新する)ための新たな共通鍵テーブルである。テーブル更新鍵は、暗号化更新共通鍵テーブルを復号するために使用する復号鍵である。失効鍵ID、暗号化テーブル更新鍵、および、暗号化更新共通鍵テーブルをセットするパケットは、異なっていてもよいし、同じであってもよい。また、タイミングが異なる場合、暗号化テーブル更新鍵が暗号化更新共通鍵テーブルより先に報知されてもよいし、後に報知されてもよい。また、管理データにセットされる失効鍵ID、および、暗号化テーブル更新鍵は、1つであってもよいし、複数であってもよい。
暗号部252は管理データに対するメッセージ認証コードの生成および暗号化を行うことができる。また、本実施例では「管理データ」に上記テーブル更新鍵をセットするに先立ち、暗号部252は、上記更新マスタ鍵と端末装置10の機器IDを使用した所定の暗号化関数を実行することにより、上記テーブル更新鍵を暗号化するための暗号鍵を生成する。管理データとしてテーブル更新鍵を送信する場合は、「管理データ」にはこの暗号鍵により暗号化された暗号化テーブル更新鍵がセットされる。
なお、暗号部252は、上記機器ネガリストに含まれる端末装置10の機器IDについては、上記暗号鍵の生成対象としない。また、仮にその機器IDを使用して上記テーブル更新鍵が暗号化されたとしても、その暗号化テーブル更新鍵は報知の対象から外される。すなわち、当該機器IDと上記更新マスタ鍵を使用して暗号化されるテーブル更新鍵の報知は中止される。また、暗号部252にて暗号化されたデータは、「管理データ」にセットされた後、暗復号部251にて、メッセージタイプの保護機能にしたがった暗号処理がなされるのは自明である。
セキュリティ処理部25は、受信処理として、MACフレーム処理部24からのセキュリティフレームを受けつける。セキュリティ処理部25は、セキュリティフレームのうちのセキュリティヘッダの内容を確認する。メッセージタイプがデータ認証付きデータである場合、暗復号部251にてメッセージの検証処理を実行する。メッセージタイプがデータ認証付き暗号化データである場合、暗復号部251にてメッセージの検証処理を実行し、復号処理を実行する。なお、メッセージタイプが平文である場合、これらの処理は省略される。
図9は、車両100に搭載された端末装置10の構成を示す。端末装置10は、アンテナ11、RF部12、変復調部13、MACフレーム処理部14、セキュリティ処理部15、受信処理部161、通知部162、データ生成部17、記憶部18および制御部19を備える。セキュリティ処理部15は、暗復号部151および復号部152を含む。
MACフレーム処理部14、セキュリティ処理部15、受信処理部161、通知部162、データ生成部17、記憶部18および制御部19の構成は、ハードウエア的には、任意のプロセッサ、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
アンテナ11、RF部12、変復調部13およびMACフレーム処理部14は、図2のアンテナ21、RF部22、変復調部23およびMACフレーム処理部24の構成および動作は基本的に共通する。以下、これらの構成要素については、相違点を中心に説明する。
受信処理部161は、セキュリティ処理部15から受け取ったデータと、データ生成部17から受け取った自車の車両情報にもとづき、衝突の危険性、救急車や消防車といった緊急車両の接近、進行方向の道路および交差点の混雑状況などを推定する。また、データが画像情報であれば通知部162に表示するよう処理する。
通知部162は、図示しないモニタ、ランプ、スピーカなどのユーザへの通知手段を含む。受信処理部161からの指示にしたがって、図示しない他の車両の接近などを当該通知手段を介して運転者に通知する。また、渋滞情報、交差点などの画像情報などをモニタに表示する。
データ生成部17は、図示しないGPS受信機、ジャイロスコープ、車速センサなどから供給される情報にもとづき、端末装置10が搭載された車両100の現在位置、進行方向、移動速度などを特定する。なお、現在位置は、緯度・経度によって示される。これらの情報の特定方法は一般的な公知の技術により実現可能であるため、ここでは説明を省略する。データ生成部17は、特定した情報をもとに他の端末装置10や基地局装置20に報知すべきデータを生成し、生成したデータ(以下、アプリケーションデータという)をセキュリティ処理部15に出力する。また、生成した情報を受信処理部161に自車の車両情報として出力する。
記憶部18は、種々の情報を記憶する。本実施例では、上記共通鍵テーブル、通信システム500内で共通の更新マスタ鍵、自己の機器IDを記憶する。なお、当該共通鍵テーブルおよび当該更新マスタ鍵は出荷時に組み込まれていてもよいし、事後的にRF部12を介して取得されたものであってもよい。また、記憶部18は、自車の車両情報、他の端末装置10から取得した自車以外の車両情報、基地局装置20から取得した失効鍵ID、暗号化更新共通鍵テーブル、暗号化テーブル更新鍵および道路情報を一時的に記憶する。制御部19は、端末装置10全体の処理を制御する。
セキュリティ処理部15は、セキュリティフレームを生成または解釈する。セキュリティ処理部15は、MACフレーム処理部14に出力すべきセキュリティフレームを、記憶部18に記憶されたデータをもとに生成する。たとえば、ペイロードの「アプリケーションデータ」に自車の車両情報をセットし、または「機器ID」に自己の機器IDをセットし、セキュリティヘッダおよびセキュリティフッダを付加してセキュリティフレームを生成する。その際、上述したように、メッセージ認証コードを生成してデータ認証することが可能である。さらに、ペイロードおよびメッセージ認証コードを暗号化することも可能である。
セキュリティ処理部15は、暗復号部151および復号部152を含む。暗復号部151は、ペイロードのデータ認証および暗号化を行うことができる。すなわち、セキュリティヘッダのメッセージタイプの保護機能に従った処理を行い、基地局装置20の暗復号部251と同等の機能を備える。したがって、送信処理および受信処理は、基地局装置20の暗復号部251と同じであるため説明を割愛する。
本実施例では、セキュリティ処理部15は、「機器ID」に自己の機器IDをセットしたセキュリティフレームを生成し、MACフレーム処理部14に出力する。MACフレーム処理部14、変復調部13およびRF部12は、当該セキュリティフレームを含むMACフレームを格納したパケット信号をアンテナ11から報知する。これにより、自己の機器IDを報知することができる。
RF部12は、基地局装置20からパケット信号を受信する。RF部12は、受信したパケット信号を変復調部13に出力する。具体的には、RF部12は、当該機器IDを取得した基地局装置20から、当該機器IDと当該基地局装置20が保有するマスタ鍵を使用して暗号化された暗号化テーブル更新鍵を格納したパケット信号を受信する。また、当該基地局装置20から当該テーブル更新鍵により暗号化された暗号化更新共通鍵テーブルを格納したパケット信号を受信する。暗号化テーブル更新鍵および暗号化更新共通鍵テーブルはペイロードの「管理データ」にセットされる。なお、暗号化テーブル更新鍵と暗号化更新共通鍵テーブルとは、同じパケット信号に格納されていてもよい。
RF部12は、これらパケット信号を変復調部13に出力し、変復調部13はこれらパケット信号を復調し、MACフレーム処理部14に出力する。MACフレーム処理部14は、MACフレームからセキュリティフレームを取り出し、セキュリティ処理部15に出力する。
セキュリティ処理部15は、MACフレーム処理部14から受け取ったセキュリティフレームを暗復号部151に出力する。暗復号部151は、セキュリティフレームを受け取るとメッセージタイプの保護機能に従った処理を行い、セキュリティフレームを、セキュリティ処理部15に返す。この時、データ認証の結果も通知する。セキュリティ処理部15は、暗復号部151から出力を受けて、処理結果とアプリケーションデータ長およびアプリケーションデータを、受信処理部161に出力する。また、データが認証された場合、管理データ長と機器管理データを復号部152に出力する。復号部152は、管理データに暗号化テーブル更新鍵が含まれる場合、自己の機器IDおよび更新マスタ鍵を使用して復号する。そして、復号したテーブル更新鍵を内部に保持する。暗復号部151から入力された管理データに、暗号化更新共通鍵テーブルが含まれる場合、内部に保持したテーブル更新鍵を用いて復号するとともに、復号結果の検証を行う。そして、検証が成功すると更新用の共通鍵テーブルであると判断する。この検証処理の詳細は後述する。さらに、管理データに失効鍵IDが含まれる場合、失効鍵IDに添付されているメッセージ認証コードを利用して、失効鍵IDの検証を行う。この検証処理の詳細は後述する。
図10は、路側機(基地局装置20)から車載器(端末装置10)への路車間通信におけるメッセージ送信を説明するための図である。路側機(基地局装置20)の処理は、暗復号部251の処理に相当し、車載器(端末装置10)の処理は、暗復号部151の処理に相当する。図11では、メッセージタイプ(保護機能)として、データ認証付き暗号化データが選択されたことを前提とする。他については、不要な処理を省略すればよいので自明である。暗復号部251は、送信テーブルのテーブル番号と、乱数を結合して鍵IDを生成する。この時、送信テーブルの乱数は送信テーブルに含まれる共通鍵の数の範囲でランダムに発生する。本実施例では、0〜15の範囲でランダムに発生する。このとき送信テーブルの「Nega flags」を確認し、生成した鍵IDで指定された通信鍵が使用不可の場合、再び、鍵IDを生成する。この処理を、生成した鍵IDで指定された通信鍵が使用可となるまで繰り返す。
暗復号部251は、生成した鍵IDにもとづく共通鍵テーブルの通信鍵を今回使用する通信鍵として読み出す。暗復号部251は、車載器に報知すべきメッセージのデータ認証範囲に存在するデータと当該通信鍵をもとに、メッセージ認証コード(MAC)を生成する。その後、生成されたMACをメッセージの「メッセージ認証コード」にセットし、当該通信鍵を使用して、「ペイロード」と共に暗号化する。なお、当該メッセージのペイロードに含まれるデータは、アプリケーションデータであってもよいし、管理データであってもよいし、それらの両方であってもよい。このように生成されたメッセージは、路車間メッセージとして報知される。
暗復号部151は、受信したメッセージに含まれる鍵IDにもとづき、受信テーブルに設定されている共通鍵テーブルの共通鍵(すなわち、通信鍵)を読み出す。暗復号部151は、その通信鍵を用いて当該メッセージの暗号化部分を復号する。これにより、メッセージ認証コード(MAC)も復号される。暗復号部151は、復号されたMACおよび当該通信鍵を使用して、受信したメッセージを検証する。検証が成功であれば、受信したメッセージを真正なメッセージとして報告する。なお、説明の簡単のため、MACフレームの生成、変調処理については省略した。また、図10に示した手順は、車車間通信におけるメッセージ送信でも同様である。
つぎに、共通鍵テーブルの書き換え処理について説明する。書き換えの対象となるのは、送信テーブルに設定されていない共通鍵テーブルである。複数の共通鍵テーブルを切り替えて使用することにより一定のセキュリティを確保できるが、長期間使用すると、やはり全体としてのセキュリティは低下していく。そこで、送信テーブルに設定されていない待機中の共通鍵テーブルをテーブル単位で書き換えることにより、セキュリティを向上させることが考えられる。
図11は、共通鍵テーブルの書き換えを説明するための図である。本実施例では、更新されるべき新共通鍵テーブルは、システム運用管理機関30により生成される。システム運用管理機関30のシステム運用管理装置300は、路車間サービス事業者40の路車間サービス事業者端末装置400およびメンテナンス事業者70のメンテナンス事業者端末装置700にそれぞれ、上記暗号化更新共通鍵テーブル、上記テーブル更新鍵および上記機器ネガリストを送信する。メンテナンス事業者端末装置700は、メンテナンス工場に設置された路側機であってもい。路車間サービス事業者端末装置400は、受信した上記暗号化更新共通鍵テーブル、上記テーブル更新鍵および上記機器ネガリストを路側機(基地局装置20)に送信する。
当該路側機は、既存車両100の車載器(端末装置10)から機器IDを取得し、その機器IDを用いて上記テーブル更新鍵を暗号化し、当該暗号化テーブル更新鍵および上記暗号化更新共通鍵テーブルを上記車載器に提供する。同様に、メンテナンス事業者端末装置700は、既存車両100の車載器(端末装置10)から機器IDを取得し、その機器IDを用いて上記テーブル更新鍵を暗号化し、当該暗号化テーブル更新鍵および上記暗号化更新共通鍵テーブルを上記車載器に提供する。
図12は、共通鍵テーブルのフォーマットを示す。共通鍵テーブルの「FIeld」には、「Version」、「Table ID」、「Number of key」、「Table Master」、「key list」および「MAC」が設けられる。「key list」には「key 0」〜「key n(nは自然数)」が設けられる。
「Version」、「Table ID」および「Number of key」は、1バイトの領域が定義される。「Table Master」、「key 0」〜「key n」は、16バイトの領域が定義される。「MAC」は14バイトの領域が定義される。
「Table ID」にはテーブル番号がセットされる。「Number of key」にはテーブル内の鍵の数nがセットされる。図7に示した例では、15がセットされる。なお、0も含まれるため、鍵の種類は16種類である。「Table Master」にはテーブル鍵(テーブルマスタ鍵)がセットされる。「key 0」には鍵番号0のAES鍵がセットされる。「key 1」には鍵番号1のAES鍵がセットされる。以下、「key n」まで同様である。「MAC」には前の共通鍵テーブルのテーブル鍵により生成されたMAC(メンテナンス認証コード)がセットされる。すなわち、テーブル番号m(mは自然数)の共通鍵テーブルの「MAC」に、テーブル番号(m−1)の共通鍵テーブルに含まれるテーブル鍵を使用して生成されたMACがセットされる。
図13は、路側機(基地局装置20)から車載器(端末装置10)への路車間通信における共通鍵テーブルの更新を説明するための図である。図13では、メッセージタイプとして、データ認証付きデータまたはデータ認証付き暗号化データが選択されたことを前提とする。車載器のセキュリティ処理部15は、記憶部18に記憶される自己の機器IDを含むメッセージを生成し、生成されたメッセージはブロードキャスト送信される。その機器IDを含むメッセージを受信した路側機のセキュリティ処理部25は、その機器IDを取り出し、機器ネガリストに登録されているか否か判定する。登録されている場合、以降の処理は実行しない。
登録されていない場合、暗号部252は、記憶部28に記憶されている更新マスタ鍵と当該機器IDを使用した所定の暗号化関数を実行することにより、別の暗号鍵を生成する。暗号部252は、その暗号鍵を用いて上記テーブル更新鍵を暗号化する。セキュリティ処理部25は、この暗号化テーブル更新鍵をメッセージ内のペイロードの「管理データ」にセットする。そして、暗復号部251において処理を施した後、そのメッセージを路車間通信で報知する。また、セキュリティ処理部25は、別の通信パケットにおいて、上記暗号化更新共通鍵テーブルをメッセージ内のペイロードの「管理データ」にセットする。そして、暗復号部251において処理を施した後、そのメッセージを路車間通信で報知する。図13では、上記暗号化更新共通鍵テーブルのほうが上記暗号化テーブル更新鍵の後に報知されているが、先に報知されてもよい。また、暗号化テーブル更新鍵を個別に発信するように記載したが、複数の車載器別の暗号化テーブル更新鍵を同じパケットの管理データ内に配置して発信してもよい。
当該車載器は、共通鍵デーブルの更新が行われる場合、管理データ、すなわち上記暗号化テーブル更新鍵を含むメッセージまたは上記暗号化更新共通鍵テーブルを含むメッセージを受信する。車載器の復号部152は、記憶部18に記憶される自己の機器IDと更新マスタ鍵を使用した所定の暗号化関数を実行することにより、暗号鍵を生成する。この暗号化関数は、路側機で実行される暗号化関数と同じものである。
復号部152は、さらに生成した暗号鍵を用いて、路側機から受信したメッセージに含まれる暗号化テーブル更新鍵を復号する。そして、路側機から受信したメッセージに含まれる暗号化更新共通鍵テーブルを復号する。
復号部152は、さらに復号して得られた更新用の共通鍵テーブルに含まれるテーブル番号mを参照して、記憶部18に格納される同一テーブル番号mの共通鍵テーブルに含まれるテーブル鍵を読み出す。同じテーブル番号で示されるテーブルの世代管理は、バージョンによって識別される。バージョンがことなれば、テーブル鍵も異なるものがセットされている。そして、そのテーブル鍵を使用して、更新用の共通鍵テーブルに含まれるメッセージ認証コードを検証する。検証が成功であれば、受信した共通鍵テーブルを真正な共通鍵テーブルであり、かつ、記憶部18に格納される共通鍵テーブルであると判断し、記憶部18に格納されるテーブル番号mの共通鍵テーブルを、更新用の共通鍵テーブルで書き換える。なお、メッセージタイプとしてデータ認証付き暗号化データが選択されている場合、復号部152での処理の前に、暗復号部151にて暗号の復号およびメッセージ認証コードの検証をし、正当であると検証されている必要がある。また、図13では、説明の簡単のため、MACフレームの生成、変調処理については省略した。
図14は、路側機(基地局装置20)から車載器(端末装置10)への路車間通信における共通鍵テーブルの更新の変形例を説明するための図である。車載器のセキュリティ処理部15は、記憶部18に記憶される自己の機器IDを含むメッセージを生成する。生成されたメッセージは、ブロードキャスト送信される。その機器IDを含むメッセージを受信した路側機のセキュリティ処理部25は、その機器IDを取り出し、機器ネガリストに登録されているか否か判定する。登録されている場合、以降の処理は実行しない。
登録されていない場合、暗復号部251は、記憶部28に記憶されている更新マスタ鍵と当該機器IDを使用した所定の暗号化関数を実行することにより、別の暗号鍵を生成する。暗復号部251は、その暗号鍵を用いて上記テーブル更新鍵を暗号化し、更新用の共通鍵テーブルのテーブル番号mと結合する。この暗号化テーブル更新鍵およびテーブル番号の結合データはメッセージ内のペイロードの「管理データ」にセットされ、そのメッセージは路車間通信で報知される。また、上記暗号化共通鍵更新テーブルもメッセージ内のペイロードの「管理データ」にセットされ、そのメッセージは路車間通信で報知される。
当該車載器は、上記暗号化共通鍵テーブルおよびテーブル番号の結合データを含むメッセージおよび上記暗号化更新共通鍵テーブルを含むメッセージを受信する。車載器の暗復号部151は、記憶部18に記憶される自己の機器IDと更新マスタ鍵を使用した所定の暗号化関数を実行することにより、暗号鍵を生成する。この暗号化関数は、路側機で実行される暗号化関数と同じものである。
復号部152は、生成された暗号鍵を用いて、路側機から受信したメッセージに含まれる暗号化テーブル更新鍵とテーブル番号の結合データを分離し、暗号化テーブル更新鍵を復号する。そして、復号部152は、共通鍵テーブルのテーブル番号mを参照して、記憶部18に記憶されている1世代前のテーブル番号mの共通鍵テーブルに含まれるテーブル鍵を読み出す。同じテーブル番号で示されるテーブルの世代管理は、バージョンによって識別される。
復号部152は、さらに復号したテーブル更新鍵と、読み出されたテーブル鍵を使用した所定の暗号化関数を実行することにより、別の復号鍵を生成する。この暗号化関数は、上記機器IDと上記更新マスタ鍵を使用する暗号化関数とは別の関数である。
復号部152は、この暗号鍵を使用して上記暗号化更新共通鍵テーブルを復号すると同時に、復号された共通鍵テーブルに含まれるメッセージ認証コードを検証する。
図15は、ネガフラグ付き共通鍵テーブルのフォーマットを示す。共通鍵テーブルの「Field」には、「Version」、「Table ID」、「Nega flags」、「Number of key」、「Table Master」、「key list」および「MAC」が設けられる。「key list」には「key 0」〜「key n(nは自然数)」が設けられる。
「Version」、「Table ID」および「Number of key」は、1バイトの領域が定義される。「Nega flags」は(int(n/8)+1)バイト(すなわち、(n+1)ビットの領域を確保できる最小のバイト数)の領域が定義される。ここで、int()は、整数部を取り出す関数である。「Table Master」、「key 0」〜「key n」は、16バイトの領域が定義される。「MAC」は14バイトの領域が定義される。
「Table ID」にはテーブル番号がセットされる。「Number of key」にはテーブル内の通信鍵の数−1の値(n)がセットされる。図7に示した例では、15(n=15)がセットされる。なお、0も含まれるため、通信鍵の数は16個である。「Nega flags」にはテーブル内の鍵の使用可否を示すビットマップがセットされる。図7に示した例では、16個の鍵に対して16ビットデータが必要となるため、2バイトの領域が用意され、各ビットは各鍵番号に対応する。各ビットの値が「0」で使用可、「1」で使用不可を表す。「Table Master」にはテーブル鍵(テーブルマスタ鍵)がセットされる。「key 0」には鍵番号0の通信鍵がセットされる。「key 1」には鍵番号1の通信鍵がセットされる。以下、「key n」まで同様である。暗復号部251および暗復号部151では、当該共通鍵テーブルのテーブル鍵により生成されたMAC(メッセージ認証コード)がセットされる。なお、本実施例は、nは15である。なお、この共通鍵テーブルは全ての路側機および車載器が内部に記憶している。
ネガフラグ付き共通鍵テーブルを使用する場合、上記図10を参照して説明した路車間通信および車車間通信におけるメッセージ送信の手順において、受信側の手順が以下のように変更される。暗復号部151は、受信したメッセージに含まれる鍵IDにもとづき、送信テーブルに設定されている共通鍵テーブルの共通鍵(すなわち、通信鍵)を読み出す。このとき「Nega flags」の確認も行う。当該鍵IDに対する通信鍵が使用不可になっていれば、検証失敗とする。当該鍵IDに対する通信鍵が使用可の場合、暗復号部151は、その通信鍵を用いて当該メッセージの暗号化部分を復号する。これにより、メッセージ認証コード(MAC)も復号される。暗復号部151は、復号されたMACおよび当該通信鍵を使用して、受信したメッセージを検証する。検証が成功であれば、受信したメッセージを真正なメッセージとして報告する。
つぎに、失効鍵IDにより共通鍵テーブルの「Nega flags」の書き換え処理について説明する。失効鍵は漏洩された通信鍵または漏洩された可能性がある通信鍵である。たとえば、不正な通信傍受により通信鍵が漏洩したことが確認された場合、その通信メッセージに使用されていた通信鍵が該当する。その他、システム運用管理機関30の判断により、失効が決定された通信鍵も該当する。暗号化・復号化演算においてエラーが発生した通信鍵などが該当する。
図16は、失効鍵IDによる共通鍵テーブルの「Nega flags」の書き換えを説明するための図である。本実施例では、失効鍵IDは、システム運用管理機関30により生成される。この失効鍵IDには、失効する通信鍵の鍵IDの他に、当該鍵IDで指定される通信鍵が含まれる共通鍵テーブルのテーブル鍵を使用して検証できるメッセージ認証コード(MAC)が含まれている。システム運用管理機関30のシステム運用管理装置300は、路車間サービス事業者40の路車間サービス事業者端末装置400に失効鍵IDを送信する。路車間サービス事業者端末装置400は、受信した失効鍵IDを路側機(基地局装置20)に送信する。当該路側機は、受信した失効鍵IDを既存車両100の車載器に提供する。失効鍵IDを受信すると既存車両100の車載器は、失効鍵IDの検証を行う。検証によって真正性が確認された場合、失効鍵IDによって示された鍵IDで特定される共通鍵テーブルの「Nega flags」に使用不可を示す「1」をセットする。
失効鍵を含む共通鍵テーブル(すなわち、ネガフラグ付き共通鍵テーブル)全体を書き換えることもできる。システム運用管理装置300は、メンテナンス事業者70のメンテナンス事業者端末装置700に当該ネガフラグ付き共通鍵テーブルが暗号化された暗号化更新共通鍵テーブル、当該暗号化更新共通鍵テーブルを復号するためのテーブル更新鍵および上記機器ネガリストを送信する。本実施例では、メンテナンス事業者端末装置700としてメンテナンス施設に設置された路側機(基地局装置20)を想定する。
当該路側機は、既存車両100の車載器(端末装置10)から機器IDを取得し、その機器IDを用いて上記テーブル更新鍵を暗号化し、当該暗号化テーブル更新鍵および上記暗号化更新共通鍵テーブルを上記車載器に提供する。もちろん、メンテナンス施設以外に設置された一般的な路側機からそれらを提供してもよい。
図17は、路側機(基地局装置20)から車載器(端末装置10)への路車間通信における共通鍵の失効を説明するための図である。図17は、「管理データ」に関する処理、ここでは失効鍵IDに対する処理のみ記載してある。車載器における処理は、復号部152において実行される。前述したように、路車間メッセージには、これとは別にメッセージタイプによる処理が施される。管理データに失効鍵IDが含められる場合、管理データの発信元を特定できるようにメッセージタイプはデータ認証付きデータまたはデータ認証付き暗号化データが選択される。ここでは、データ認証付き暗号化データとする。また、メッセージタイプに関わる処理は、送信側(路側機)では路車間メッセージ発信の直前、受信側(車載器)では、路車間メッセージ受信直後に実行される。図17では、説明の簡単化のため、MACフレーム処理、変調処理、および、メッセージタイプによる処理については省略した。路側機のセキュリティ処理部25は、路車間サービス事業者端末装置400から受け取った失効鍵ID、あるいは、路車間サービス事業者端末装置400から受け取って記憶部28に記憶されている失効鍵IDを、メッセージ内のペイロードの「管理データ」にセットし、暗復号部251に出力する。そして、暗復号部251において、メッセージタイプによる処理(図10)が行われたメッセージは路車間通信で報知される。
車載器のセキュリティ処理部15は、路車間メッセージを受信すると、暗復号部151に、受信した路車間メッセージを出力する。暗復号部151は、メッセージタイプに関わる受信処理を行い、その結果をセキュリティ処理部15に返す。セキュリティ処理部15は、受信したメッセージが検証によって真正性ありと判断され、かつ、管理データに失効鍵IDが含まれる場合、失効鍵IDを復号部152に出力する。復号部152は、当該失効鍵IDに含まれるテーブル番号を参照して、そのテーブル番号の共通鍵テーブルに含まれるテーブル鍵を読み出す。そして、そのテーブル鍵を使用して、上記失効鍵IDに含まれるメッセージ認証コードを検証する。検証が成功であれば、暗復号部151は、当該失効鍵IDに含まれるテーブル番号および鍵番号を参照して、対応する共通鍵テーブルに含まれる通信鍵を無効化する。すなわち、当該失効鍵IDに含まれるテーブル番号で指定された共通鍵テーブルの「Nega flags」の内の、当該失効鍵IDに含まれる鍵番号に対応するビットに使用不可を示す「1」をセットする。失効鍵IDを含めた路車間メッセージの送信と受信処理について説明したが、失効鍵IDの配布が必要ない場合は、路車間通信メッセージに失効鍵IDを含める必要はない。また、失効鍵IDの配布の必要がある場合であっても、全ての路車間通信メッセージに失効鍵IDを含める必要はない。路車間メッセージによる通常のサービスに支障がない範囲で、失効鍵IDを含めた路車間メッセージを送信すればよい。
図18は、路側機(基地局装置20)から車載器(端末装置10)への路車間通信におけるネガフラグ付き共通鍵テーブルの更新を説明するための図である。図17と同様に、説明の簡単化のため、MACフレーム処理、変調処理、および、メッセージタイプによる処理については省略した。路側機における処理は暗号部252における処理、車載器における処理は復号部152における処理に相当する。車載器のセキュリティ処理部15は、受信した車車間通信メッセージを参照しつつ、自身の周辺を走行する車両100に搭載される車載器の機器IDを収集する。そして、収集した機器IDから、機器IDを選択する。そして、選択した機器IDを暗号部252に入力する。暗号部252は、機器IDを受け取ると記憶部28に記憶されている機器ネガリストに登録されているか否か判定する。登録されている場合、以降の処理は実行しない。
登録されていない場合、暗号部252は、記憶部28に記憶されている更新マスタ鍵と当該機器IDを使用した所定の暗号化関数を実行することにより、別の暗号鍵を生成する。暗号部252は、その暗号鍵を用いて上記テーブル更新鍵を暗号化する。セキュリティ処理部25は、この暗号化テーブル更新鍵をメッセージ内のペイロードの「管理データ」にセットする。そして、暗復号部251において処理を施した後、その路車間メッセージを報知する。また、セキュリティ処理部25は、別の路車間メッセージにおいて、上記暗号化更新共通鍵テーブルをメッセージ内のペイロードの「管理データ」にセットする。そして、暗復号部251において処理を施した後、そのメッセージを路車間通信で報知する。図18では、上記暗号化更新共通鍵テーブルのほうが上記暗号化テーブル更新鍵の後に報知されているが、先に報知されてもよい。また、暗号化テーブル更新鍵を個別に発信するように記載したが、複数の車載器別の暗号化テーブル更新鍵を同じ路車間メッセージの管理データ内に配置して発信してもよい。また、暗号化テーブル更新鍵を含む路車間メッセージの報知と、暗号化更新共通鍵テーブルを含む路車間メッセージの報知の回数を一致させる必要はない。暗号化更新共通鍵テーブルを含む路車間メッセージの報知より、暗号化テーブル更新鍵を含む路車間メッセージの報知の数を増やすことによって、一度の暗号化更新共通鍵テーブルを含む路車間メッセージの報知によって、複数の車載器が、共通鍵テーブルの書き換えを行うことができ、共通鍵テーブルの書き換えに使われるトラヒックを軽減することができる。
当該車載器のセキュリティ処理部15は、路車間メッセージを受信すると、暗復号部151に、受信した路車間メッセージを出力する。暗復号部151は、メッセージタイプに関わる受信処理を行い、その結果をセキュリティ処理部15に返す。セキュリティ処理部15は、受信したメッセージが検証によって真正性ありと判断され、かつ、自身に対する暗号化テーブル更新鍵が含まれる場合、暗号化テーブル更新鍵を復号部152に出力する。車載器の復号部152は、記憶部18に記憶される自己の機器IDと更新マスタ鍵を使用した所定の暗号化関数を実行することにより、暗号鍵を生成し、内部に保持する。この暗号化関数は、路側機で実行される暗号化関数と同じものである。
セキュリティ処理部15は、受信したメッセージが検証によって真正性ありと判断され、かつ、暗号化更新共通鍵テーブルが含まれる場合、暗号化更新共通鍵テーブルを復号部152に出力する。復号部152は、内部に生成した暗号鍵を保持しているときに暗号化更新共通鍵テーブルを受け取ると、さらに生成した暗号鍵を用いて、路側機から受信したメッセージに含まれる暗号化テーブル更新鍵を復号する。そして、路側機から受信したメッセージに含まれる暗号化更新共通鍵テーブルを復号する。
復号部152は、さらに復号して得られたネガフラグ付き共通鍵テーブルに含まれるテーブル番号mを参照して、記憶部18に格納される同一テーブル番号mの共通鍵テーブルに含まれるテーブル鍵を読み出す。同じテーブル番号mで示されるテーブルの世代管理は、バージョンによって識別される。バージョンがことなれば、テーブル鍵mも異なるものがセットされている。そして、そのテーブル鍵を使用して、ネガフラグ付き共通鍵テーブルに含まれるメッセージ認証コードを検証する。検証が成功であれば、受信したネガフラグ付き共通鍵テーブルを真正な共通鍵テーブルであり、かつ、記憶部18に格納される共通鍵テーブルであると判断し、記憶部18に格納されるテーブル番号mの共通鍵テーブルを、ネガフラグ付き共通鍵テーブルで書き換える。暗号化テーブル更新鍵または暗号化更新共通鍵テーブルを含めた路車間メッセージの送信と受信処理について説明したが、共通鍵テーブルの更新が必要ない場合は、路車間通信メッセージに暗号化テーブル更新鍵または暗号化更新共通鍵テーブルを含める必要はない。また、共通鍵テーブルの更新が必要な場合であっても、全ての路車間通信メッセージに暗号化テーブル更新鍵または暗号化更新共通鍵テーブルを含める必要はない。路車間メッセージによる通常のサービスに支障がない範囲で、暗号化テーブル更新鍵または暗号化更新共通鍵テーブルを含めた路車間メッセージを送信すればよい。通常のサービスを妨げない範囲で適時配布する。
以上説明したように本実施例によれば、暗号化更新共通鍵テーブルを復号するためのテーブル更新鍵を暗号化して、その暗号化テーブル更新鍵と暗号化更新共通鍵テーブルを基地局装置から端末装置に報知することにより、共通鍵テーブルの更新処理の安全性を高めることができる。また、共通鍵テーブルにメッセージ認証コードを設けることにより、更新用の共通鍵テーブルの真正を検証することができる。また、メッセージ認証コードを、更新用の共通鍵テーブルより、1世代前の共通鍵テーブルのテーブル鍵を用いて生成することにより、更新用の共通鍵テーブルが、端末装置で繰り返し更新される事態を回避することができる。
また、基地局装置から端末装置に失効鍵IDを報知することにより、路車間通信または車車間通信において、共通鍵が漏洩することによるセキュリティ低下を回復させることができる。また、失効鍵IDにメッセージ認証コードを設けることにより、失効鍵IDの真正を検証することができる。また、ネガフラグ付き共通鍵テーブルを用いれば、共通鍵テーブル単位で使用不可とすべき共通鍵を報知することができる。
以上、本発明の実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
例えば、暗号化テーブル更新鍵を含むメッセージについては、ブロードキャスト送信ではなく、相手先を特定したユニキャスト送信を用いてもよい。
また、上記実施例では、セキュリティフッタにメッセージ認証コードを添付する例を説明したが、その代わりに電子署名を添付してもよい。電子署名は公開鍵暗号方式により暗号化されるため、共通鍵のほかに、秘密鍵と公開鍵が用いられる。
また、上記実施例では、路車間メッセージの管理データを利用して、車載器に記憶されているネガフラグ付き共通鍵テーブルのネガフラグを更新する方法を示したが、同様な暗号処理を用いて、路側機のネガフラグ付き共通鍵テーブルを更新することもできる。また、車車間メッセージに管理データを含めるように変更することで、車車間メッセージも配布するようにしてもよい。これによって、路側機の少ない地域においても失効鍵IDの伝搬を円滑に進めることができる。また、上記実施例では、失効鍵IDに含まれるメッセージ認証コード(MAC)のセットや、ネガフラグ付き共通鍵テーブルの暗号化等の処理は、システム運用管理機関30のシステム運用管理装置300が行うように説明したが、路側機において行ってもよい。この場合、暗号部252において実行される。
また、上記実施例では、メッセージあるいはデータの真正性確認のために共通鍵暗号方式のメッセージ認証コード(MAC)を使用するように説明したが、公開鍵方式における電子署名を用いることも可能である。この場合、共通鍵テーブルは、ペイロードおよび電子署名の暗号化に用いられる。そして、セキュリティフレームの「機器ID」に、機器IDを含めた公開鍵証明書をセットし、「メッセージ認証コード」に、電子署名をセットすればよい。ネガフラグ付き共通鍵テーブルの真正性確認においても同様で、「Table Master」に検証用の公開鍵を、「MAC」に電子署名をセットすればよい。
また、上記実施例では、通常サービスを提供する路側機からの失効鍵IDの配布、あるいは、暗号化テーブル更新鍵と暗号化更新共通鍵テーブルの配布について説明したが、通常サービスを提供しない路側機を用いることもできる。車両が、配布専用の路側機のある通信スポットなどに移動して、失効鍵IDや暗号化テーブル更新鍵と暗号化更新共通鍵テーブルの配布を受ける。
また、上記実施例では図11−13を参照しながら共通鍵テーブルの更新について説明した。その更新手順では、路側機(基地局装置20)が車載器(端末装置10)の機器IDを取得し、通信システム500で共通の更新マスタ鍵を使用して、テーブル更新鍵を暗号化した。そして、共通鍵テーブルはそのテーブル更新鍵で暗号化した。以下の変形例では更新マスタ鍵の代わりに車載器に紐付けされた、または関連づけられた鍵を使用する例を説明する。以下の変形例では図9に示した端末装置10のセキュリティ処理部15にセキュリティモジュール(SAM;Secure Application Module)を使用することを前提とする。セキュリティモジュールは耐タンパ性のある、セキュリティ機能をワンチップ化したデバイスである。
車載器に紐付けられた鍵としてセキュリティモジュールの製造時に埋め込まれる登録鍵を使用できる。登録鍵は同時に埋め込まれた登録情報(たとえば、登録番号)と紐付け管理される。登録鍵は書き換え不能な鍵である。また車載器に紐付けられた鍵としてセキュリティモジュールに不揮発に格納される更新鍵を使用できる。更新鍵は同時に埋め込まれる機器IDと紐付け管理される。更新鍵は登録鍵により書き換え可能である。
図19は、変形例に係る共通鍵テーブルの書き換えを説明するための図である。システム運用管理装置300は新しい鍵を発行し、新共通鍵テーブルを生成する鍵発行サーバである。当該変形例ではシステム運用管理装置300は、出荷された全ての車載器に搭載されるセキュリティモジュールの登録番号と登録鍵および機器IDと更新鍵のデータベースを備える。
専用路側機20aは自動車のメンテナンスを行う施設(以下、サービス施設という)に設置される小電力基地局装置である。この装置はリアルタイムの道路情報を端末装置10に報知する路側機ではなく、特定の端末装置10に共通鍵テーブルなどのシステム運用に関する情報を無線送信する専用機である。専用路側機20aとシステム運用管理装置300とはインターネットで接続されてもよいし、専用回線で接続されてもよい。
車載器(端末装置10)は図9に示した構成のうち、共通鍵テーブルの更新に関する構成のみを描いている。なお図19では、図9のRF部12、変復調部13、MACフレーム処理部14をまとめて無線部114と表記している。セキュリティ処理部15はセキュリティモジュールで構成される。記憶部18はフラッシュメモリで構成される。なお、ハードディスクでもよい。受信処理部161はペイロードのアプリケーションデータを処理する機能ブロックである。制御部19は車載器全体を制御するメインプロセッサである。外部端子191は、無線部114、専用路側機20aを介さずにシステム運用管理装置300とデータをやりとりするための端子である。例えば、外部端子191はLANケーブルによりサービス施設に設置された端末装置に接続する。その端末装置はインターネットを介してシステム運用管理装置300に接続する。これにより、車載器とシステム運用管理装置300とが通信できる。なお、車載器とサービス施設に設置された端末装置とは無線LANで接続されてもよいし、記録メディアでデータをやりとりしてもよい。
本変形例では、更新されるべき新共通鍵テーブルは二つの経路でシステム運用管理装置300から車載器に伝達される。第1の経路は外部端子191を経由する経路である。第2の経路は専用路側機20a、無線部144を経由する経路である。
図20(a)−(b)は、変形例に係る共通鍵テーブルの更新手順を説明するための図である。図20(a)は第1の経路による更新手順を示す。システム運用管理装置300は端末装置10と通信路が形成されると、端末装置10にIDを要求する。端末装置10のセキュリティ処理部15は、自身の登録番号と機器IDの結合データをシステム運用管理装置300に送信する。なお、機器IDが未設定の段階では、機器IDの代わりにリザーブ番号(例えば、オール0またはオール1)が設定される。
システム運用管理装置300は受信した登録番号と機器IDの結合データと、図示しない上述のデータベースをもとに、送信先の端末装置10を特定する。その際、特定した端末装置10が機器ネガリストに登録されている端末装置である場合、システム運用管理装置300は、共通鍵テーブルの更新を許可しない。
特定した端末装置10が機器ネガリストに登録されていない端末装置である場合、システム運用管理装置300は、特定した端末装置10の登録鍵または更新鍵を用いて、共通鍵テーブルの更新データを含むセキュリティ情報を暗号化して、端末装置10に送信する。端末装置10のセキュリティ処理部15に機器IDが設定されていない段階では登録鍵を用いる。機器IDが設定された後は登録鍵を用いてもよいし更新鍵を用いてもよい。当該セキュリティ情報はペイロードの管理データではなく、アプリケーションデータに格納される。
端末装置10のセキュリティ処理部15は、当該セキュリティ情報を自身の登録鍵または更新鍵で復号し、ペイロードの確からしさをメッセージ認証コード(MAC)を検証して判定する。端末装置10はその復号および検証が成功したか否かをシステム運用管理装置300に応答する。
図20(b)は第2の経路による更新手順を示す。端末装置10を搭載した車両が専用路側機20aの近傍に位置するとき、端末装置10と専用路側機20aとの間で路車間通信が実行される。この路車間通信では端末装置10から専用路側機20aに機器IDが送信される。したがって、システム運用管理装置300は図20(a)に示すようにID要求をしなくても、専用路側機20aを介して端末装置10の機器IDを取得できる。
システム運用管理装置300は受信した機器IDと、図示しない上述のデータベースをもとに、送信先の端末装置10を特定する。その際、特定した端末装置10が機器ネガリストに登録されている端末装置である場合、システム運用管理装置300は、共通鍵テーブルの更新を許可しない。
特定した端末装置10が機器ネガリストに登録されていない端末装置である場合、システム運用管理装置300は、特定した端末装置10の更新鍵を用いて、共通鍵テーブルの更新データを含むセキュリティ情報を暗号化して、端末装置10に送信する。
端末装置10のセキュリティ処理部15は、当該セキュリティ情報が格納されたアプリケーションデータを受信処理部161に渡す。受信処理部161は、当該アプリケーションデータに格納されたセキュリティ情報に含まれるセキュリティモジュールの登録番号を参照して、当該端末装置10宛のセキュリティ情報であるか否かを判定する。受信処理部161は当該端末装置10宛のセキュリティ情報である場合、当該セキュリティ情報を制御部19に渡す。当該端末装置10宛のセキュリティ情報でない場合、当該セキュリティ情報を破棄する。
制御部19は当該セキュリティ情報をセキュリティ処理部15に渡す。セキュリティ処理部15は、当該セキュリティ情報を自身の更新鍵で復号し、ペイロードの確からしさをメッセージ認証コード(MAC)を検証して判定する。端末装置10はその復号および検証が成功したか否かをシステム運用管理装置300に応答する。
図21は、変形例に係る共通鍵テーブルのフォーマットを示す。共通鍵テーブルの「Field」には、「Version」、「Table ID」、「Key list for RVC」、および「Key list for IVC」が設けられる。「Version」にはテーブルのバージョンがセットされる。「Table ID」にはテーブル識別子がセットされる。データのMSB(Most Significant Bit)からa(aは自然数)ビット分がテーブル識別子に設定される。
「Key list for RVC」は「key 0」〜「key P(Pは自然数)」を含み、「key 0」〜「key P」にはそれぞれ路車間用鍵番号0の鍵(例えば、AES鍵)〜路車間用鍵番号Pの鍵がセットされる。「Key list for IVC」は「key 0」〜「key Q(Qは自然数)」を含み、「key 0」〜「key Q」にはそれぞれ車車間用鍵番号0の鍵〜車車間用鍵番号Qの鍵がセットされる。この共通鍵テーブルは、路車間通信と車車間通信とでセキュリティレベルが異なる通信方式を採用することを前提とし、路車間用の鍵と車車間用の鍵を別々に設けている。セキュリティレベルは路車間通信のほうを車車間通信より高くする。たとえば、前者では鍵と乱数を組み合わせて使用して暗号化し、後者では鍵をそのまま使用して暗号化する。
図22は、変形例に係るセキュリティフレームの第1のフォーマットを示す。第1のフォーマットは、共通鍵テーブルをセキュリティモジュールに書き込む際に使用されるフォーマットである。当該フォーマットには「Field flags」、「Licensed number」、「Nonce」、「Length」、「Payload」、および「MAC」が含まれる。「Payload」には「Licensed number」、「Device ID」、「Key tables」、および「Symmetric key」が含まれる。「Key tables」には「Active table ID」、「Number of key tables」、および「key table 1」〜「key table L」が含まれる。
「Field flags」には鍵・暗号フィールドの有無を示すフラグがセットされる。第1のフォーマットではこのフラグが有意にセットされる。セキュリティモジュールはこのフラグを参照して、セキュリティ情報内のデータ構造を認識する。「Licensed number」には書込対象のセキュリティモジュールの登録番号がセットされる。「Nonce」には乱数がセットされる。「Length」にはペイロードのデータ長がセットされる。「Payload」において「Licensed number」には書込対象のセキュリティモジュールの登録番号がセットされる。この「Licensed number」は暗号化されるため、「Payload」の外にも「Licensed number」が配置される。「Device ID」には車載器の機器IDがセットされる。
「Active table ID」には送信用鍵テーブルのテーブルIDがセットされる。後述するように送信用鍵テーブルには複数の鍵テーブルのうちの一つが指定される。「Number of key tables」には当該セキュリティ情報に含まれる鍵テーブルの数(=L(Lは自然数))がセットされる。「key table 1」〜「key table L」にはそれぞれ鍵テーブル1〜鍵テーブルLがセットされる。各鍵テーブルのフォーマットは図21に示したフォーマットを用いる。「Symmetric key」には更新鍵がセットされる。「Payload」の秘匿および認証を行うために、「MAC」には、登録鍵または更新鍵によって求められた「Payload」に対するMAC値がセットされ、「Payload」は、登録鍵または更新鍵によって暗号化される。尚、ここでは認証・暗号化アルゴリズムとしてAES−CCMモードを採用しているため、「Nonce」、「Length」、MACのバイト数、および「Payload」に対するMAC値が「MAC」にセットされる。そして、「Payload」と「MAC」が暗号化される。
図23は、変形例に係るセキュリティフレームの第2のフォーマットを示す。第2のフォーマットは、セキュリティモジュールから機器IDを読み出す際に使用されるフォーマットである。第2のフォーマットは、第1のフォーマットの「Payload」から「Key tables」、および「Symmetric key」が除かれた構成である。第2のフォーマットでは「Field flags」のフラグが非有意にセットされる。それ以外のデータ構造は第1のフォーマットのデータ構造と同じであるため説明を割愛する。
図24は、変形例に係る共通鍵テーブルの運用方法を説明するための図である。端末装置10は、保持している複数の共通鍵テーブルを順次切り替えて使用する。以下、端末装置10は八つの共通鍵テーブルを格納可能な記憶領域(以下、格納領域という)を有し、五つの共通鍵テーブルを保持する例を説明する。当該変形例では、一つの共通鍵テーブルに保持される鍵の数は八つである。なお、端末装置10に保持される共通鍵テーブルの数および一つの共通鍵テーブルに保持される鍵の数は複数であればよく、前述の数に限定されない。共通鍵テーブルの格納領域の数は、端末装置10に保持される共通鍵テーブルの数以上であればよい。すなわち、テーブルIDにより識別する数と共通鍵テーブルの格納領域の数は一致している必要はない。
共通鍵テーブルの管理はバージョン及びテーブルIDにより行われる。バージョンの異なる同じテーブルIDで特定される共通鍵テーブルが同時に使用されることはない。必ず、バージョンが新しい(ここでは、値が大きい)方が使用される。テーブルIDは0〜N(Nは自然数)として表される。すなわちNの剰余系として設定される。本変形例ではN=8である。たとえば、1番目の共通鍵テーブルと9番目の共通鍵テーブルのテーブルIDは0となる。バージョンは同じテーブルIDの新しい共通鍵テーブルが生成される度にカウントアップしていく。したがって、前者では0、後者では1となる。
格納領域に保持される複数の共通鍵テーブルのうち、一つが送信用の共通鍵テーブル(以下、送信用鍵テーブルという)に指定され、複数が受信用の共通鍵テーブル(以下、受信用鍵テーブルという)に指定される。複数の受信用鍵テーブルは送信用鍵テーブルを含み、送信用鍵テーブルよりn(nは自然数)世代未来までの共通鍵テーブルを含む。n世代未来のテーブルIDは、{(送信用鍵テーブルのテーブルID+n) mod N}で算出される。なお、複数の受信用鍵テーブルはm(mは0または自然数)世代過去までの共通鍵テーブルを含んでもよい。同様に、{(送信用鍵テーブルのテーブルID−m)) mod N}で表される。図24に示す例は、n=m=1の場合で、テーブルID=1の共通鍵テーブルが送信用鍵テーブルに指定され、テーブルID=0、テーブルID=1、テーブルID=2の三つの共通鍵テーブルが受信用鍵テーブルに指定されている。テーブルID=0の共通鍵テーブルが送信用鍵テーブルに指定される場合、テーブルID=8、テーブルID=0、テーブルID=1の三つの共通鍵テーブルが受信用鍵テーブルに指定される。この時、テーブルID=1の共通鍵テーブルのバージョンは、テーブルID=0の共通鍵テーブルのバージョンと同じか、大きい、すなわち、同世代か、未来の世代のバージョンである。テーブルID=8の共通鍵テーブルのバージョンは、必ず、テーブルID=0の共通鍵テーブルのバージョンより1小さい、すなわち、1世代前のバージョンである。また、テーブルID=8の共通鍵テーブルが送信用鍵テーブルに指定される場合、テーブルID=7、テーブルID=8、テーブルID=0の三つの共通鍵テーブルが受信用鍵テーブルに指定される。この時、テーブルID=7の共通鍵テーブルのバージョンは、テーブルID=8の共通鍵テーブルのバージョンと同じか、1小さい、すなわち、同世代か、1世代前のバージョンである。テーブルID=0の共通鍵テーブルのバージョンは、テーブルID=8の共通鍵テーブルのバージョンより大きい、すなわち、未来の世代である。
システム運用管理装置300が送信用鍵テーブルの切替を指示しても、全ての端末装置10において送信用鍵テーブルが同時に切り替わるわけではない。端末装置10間において送信用鍵テーブルが切り替わるタイミングに時間差が生じる。たとえば、長期間使用されていない車両100に搭載された端末装置10では、二つ以上過去の共通鍵テーブルが送信用鍵テーブルに設定されている可能性もある。この車両100が使用されると別の車両100に搭載された端末装置10は、二世代過去の共通鍵テーブルで処理されたパケット信号を受信する。暗号化システムの運用上、受信用鍵テーブルの範囲が狭いほどセキュリティが高くなるが、正当な端末装置10からの送信データを復号できないケースが多くなる。両者の要請を考慮して受信用鍵テーブルの範囲は設定される。
送信用鍵テーブルの切替周期が長い場合(たとえば、数年)、受信用鍵テーブルは、送信用鍵テーブルと次の共通鍵テーブル(n=1)で構成されるとよい。また、送信用鍵テーブルの切替周期が短い場合(たとえば、一年以内)、受信用鍵テーブルは、送信用鍵テーブルと、次の共通鍵テーブル(n=1)と、さらにそれ以降の共通鍵テーブル(n>1)とで構成されるとよい。切替期間が短いほどnを大きくし、多くの共通鍵テーブルを受信用鍵テーブルに組み入れるとよい。切替期間が短い場合、複数の端末装置10間で送信用鍵テーブルのばらつきが大きくなる。これに対し、受信用鍵テーブルに組み入れる共通鍵テーブルの数を増やすことにより、送信用鍵テーブルのミスマッチを減らすことができる。また、mは1または0が適当である。
複数の共通鍵テーブルは暗号化されて記憶部18に保持される。図24に示す例では五つの共通鍵テーブルが保持される。端末装置10が起動する際、セキュリティ処理部15は記憶部18に保持された暗号化された共通鍵テーブルを読み出す。セキュリティ処理部15は暗号化された共通鍵テーブルを復号して、図示しないRAMで構成されるワークエリアに格納する。このワークエリアに保持される共通鍵テーブルは、送信用鍵テーブルおよび受信用鍵テーブルに指定された共通鍵テーブルである。図24に示す例ではテーブルID=0、テーブルID=1、テーブルID=2の三つの共通鍵テーブルがワークエリアに保持される。
端末装置10が起動する際、セキュリティ処理部15は共通鍵テーブルを記憶部18から読み出すとともに、鍵ネガマップを生成する。この鍵ネガマップには送信用鍵テーブルおよび受信用鍵テーブルに指定された共通鍵テーブル以外の共通鍵テーブルに格納された鍵が登録される。たとえば、鍵ネガマップはビットマップ形式で生成される。セキュリティ処理部15は、生成した鍵ネガマップもワークエリアに格納する。セキュリティ処理部15は路車間通信または車車間通信でメッセージを受信する際、鍵ネガマップを参照して使用不可の鍵が使用されているか否か判定する。鍵ネガマップに登録されている鍵が使用されている場合、エラーと判定する。なお、端末装置10からのメッセージの送信時には、セキュリティ処理部15は送信用鍵テーブルに含まれるいずれかの鍵を使用するため、使用する鍵が鍵ネガマップに登録されているか否かを判定する必要はない。
以上説明したように本変形例によれば、セキュリティモジュールの登録鍵または更新鍵で更新用の共通鍵テーブルを暗号化して車載器に伝達することにより、共通鍵テーブルの更新処理を簡便化することができる。また、更新用の共通鍵テーブルをペイロードの管理データではなく、アプリケーションデータに格納することにより、柔軟性および拡張性に優れた更新システムを構築できる。
図25は、図22のセキュリティフレームの第1のフォーマットの変形例を示す図である。図22の「Payload」の最後に「Signature」を加えた。「Signature」には本フィールドを除くペイロードに対する署名がセットされる。セキュリティモジュールは、本セキュリティフレームを受け取ると、復号、MAC認証後、署名検証を行う。署名検証を行うための認証鍵は事前にセキュリティモジュールに格納しておく。署名検証によって、共通鍵テーブルが正規の提供元から提供物されたことが確認できるようになり、システム全体のセキュリティを高めることができる。なお、図25のセキュリティフレームにおいても、図23のセキュリティフレームはそのまま使用する。
なお図13、図14に示した実施例に係る共通鍵テーブルの更新において、更新マスタ鍵の代わりに変形例に係る登録鍵または更新鍵を使用してもよい。即ち、共通鍵テーブルと別に送信されるテーブル更新鍵の暗号化および復号に登録鍵または更新鍵を使用する。登録鍵または更新鍵は端末装置ごとに異なるため、全ての端末装置で共通な更新マスタ鍵を使用する場合よりセキュリティを高めることができる。