(57)【要約】【課題】ダウンロードしたコンテンツデータを、車両の自動運転への利用に適した検証方法により検証する。【解決手段】検証方法は、コンテンツデータと、コンテンツデータを分割した複数の部分データのそれぞれから生成された複数の第一ハッシュ値と、複数の第一ハッシュ値及び秘密鍵を用いて生成された署名とを取得し（Ｓ３０１）、車両の状態情報を取得し（Ｓ３０２）、取得した状態情報に応じて１以上の整数であるＮを定め（Ｓ３０３）、複数の部分データのうちＮ個の部分データのそれぞれから第二ハッシュ値を生成し（Ｓ３０５）、（ａ）取得した複数の第一ハッシュ値のうち、複数の部分データのうちのＮ個の部分データを除く部分データのそれぞれから生成された第一ハッシュ値と、（ｂ）生成した第二ハッシュ値と、（ｃ）取得した署名と、を用いて、コンテンツデータの検証を行い（Ｓ３０６）、検証の結果を示す情報を出力する（Ｓ３０８、Ｓ３０９）。【選択図】図９
2018196108.tif 000002
【特許請求の範囲】
【請求項１】
車両で利用されるコンテンツデータを検証する検証方法であって、
前記コンテンツデータと、前記コンテンツデータを分割した複数の部分データのそれぞれから生成された複数の第一ハッシュ値と、前記複数の第一ハッシュ値及び秘密鍵を用いて生成された署名とを取得し、
前記車両の状態を示す状態情報を取得し、
取得した前記状態情報に応じて１以上の整数であるＮを定め、前記複数の部分データのうち前記Ｎ個の部分データのそれぞれから第二ハッシュ値を生成し、
（ａ）取得した前記複数の第一ハッシュ値のうち、前記複数の部分データのうちの前記Ｎ個の部分データを除く部分データのそれぞれから生成された第一ハッシュ値と、（ｂ）生成した前記第二ハッシュ値と、（ｃ）取得した前記署名と、を用いて、前記コンテンツデータの検証を行い、
前記検証の結果を示す情報を出力する
検証方法。
【請求項２】
前記第二ハッシュ値を生成する際には、前記複数の部分データから前記Ｎ個の部分データをランダムに選択し、選択した前記Ｎ個の部分データのそれぞれから第二ハッシュ値を生成する
請求項１に記載の検証方法。
【請求項３】
前記状態情報は、前記車両が走行中であるか否かを示し、
前記第二ハッシュ値を生成する際には、
前記車両が走行中である場合には、前記Ｎを第１の値に定め、
前記車両が走行中でない場合には、前記Ｎを前記第１の値より大きい第２の値に定め、
定めた前記Ｎを用いて、前記Ｎ個の部分データのそれぞれから前記第二ハッシュ値を生成する
請求項１又は２に記載の検証方法。
【請求項４】
前記状態情報は、前記車両の状態として、前記検証方法を実行する装置の処理負荷を示し、
前記第二ハッシュ値を生成する際には、
前記処理負荷が高いほど、前記Ｎをより小さな値に定め、定めた前記Ｎを用いて、前記Ｎ個の部分データのそれぞれから前記第二ハッシュ値を生成する
請求項１〜３のいずれか１項に記載の検証方法。
【請求項５】
前記状態情報は、前記車両の状態として、前記検証方法を実行する装置が行う通信の通信量を示し、
前記第二ハッシュ値を生成する際には、
前記通信量が多いほど、前記Ｎをより小さな値に定め、定めた前記Ｎを用いて、前記Ｎ個の部分データのそれぞれから前記第二ハッシュ値を生成する
請求項１〜４のいずれか１項に記載の検証方法。
【請求項６】
前記第二ハッシュ値を生成する際には、前記コンテンツデータの種類またはサイズに応じて前記Ｎを定め、定めた前記Ｎを用いて、前記Ｎ個の部分データのそれぞれから前記第二ハッシュ値を生成する
請求項１〜５のいずれか１項に記載の検証方法。
【請求項７】
前記第二ハッシュ値を生成する際には、前記コンテンツデータの種類に基づいて、前記複数の部分データのうちのどの部分データを前記Ｎ個の部分データとして選択するかを決定し、当該決定に基づいて選択した前記Ｎ個の部分データのそれぞれから前記第二ハッシュ値を生成する
請求項１〜６のいずれか１項に記載の検証方法。
【請求項８】
前記コンテンツデータの種類は、前記コンテンツデータの更新の間隔を示す指標を含む
請求項６又は７に記載の検証方法。
【請求項９】
車両で利用されるコンテンツデータを検証する検証装置であって、
プロセッサと、前記プロセッサに接続されたメモリとを備え、
前記プロセッサは、前記メモリを用いて、
前記コンテンツデータと、前記コンテンツデータを分割した複数の部分データのそれぞれから生成された複数の第一ハッシュ値と、前記複数の第一ハッシュ値及び秘密鍵を用いて生成された署名とを取得し、
前記車両の状態を示す状態情報を取得し、
取得した前記状態情報に応じて１以上の整数であるＮを定め、前記複数の部分データのうち前記Ｎ個の部分データのそれぞれから第二ハッシュ値を生成し、
（ａ）取得した前記複数の第一ハッシュ値のうち、前記複数の部分データのうちの前記Ｎ個の部分データを除く部分データのそれぞれから生成された第一ハッシュ値と、（ｂ）生成した前記第二ハッシュ値と、（ｃ）前記署名と、を用いて、前記コンテンツデータの検証を行い、
前記検証の結果を示す情報を出力する
検証装置。
【請求項１０】
請求項１〜８のいずれか１項に記載された検証方法を、プロセッサに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツデータを検証する検証方法、検証装置およびプログラムに関する。
【背景技術】
【０００２】
近年、車両の自動運転車を制御する自動運転システムが知られている。自動運転システムでは、制御の基盤となる高度な地図データ、並びに、自動車、歩行者及びインフラ設備などの情報は、車外の装置との通信により入手することが想定されている。例えば、車車間通信又は路車間通信などのＶ２Ｘ（Ｖｅｈｉｃｌｅ  ｔｏ  Ｅｖｅｒｙｔｈｉｎｇ）による通信で情報を入手したり、情報端末との通信で情報を入手したり、様々な通信で情報の入手を行う。そして、これらの入手した情報、車両の走行状態、車両の周辺状況及び運転者の状態などを鑑みて、自動運転車の制御が行われる。
【０００３】
特許文献１では、車両の自動運転制御の安全性を高めるために、自動運転車両制御装置が自動運転を行うための条件を満たしていないと判断した場合には、運転者に対して自動運転の解除を促す通知を行う構成が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１０６８５４号公報
【非特許文献】
【０００５】
【非特許文献１】「Federal Information Processing Standards Publication 186-4 DIGITAL SIGNATURE STANDARD (DSS)」、2013年7月、National Institute of Standards and Technology (NIST)
【発明の概要】
【発明が解決しようとする課題】
【０００６】
自動運転システムが車外の装置からデータを入手する場合、不正な端末が成りすましによって不正なデータを送信するなどのサイバー攻撃が懸念される。
【０００７】
一方、従来のコンテンツデータの検証において、ダウンロードした地図データなどのコンテンツデータが大容量であると、コンテンツデータをすべて検証するには多大な時間を要する。そのため、ダウンロードしたコンテンツデータなどをすべて検証してから利用することを想定する場合、コンテンツデータをリアルタイムに車両の自動運転に利用できない、という問題がある。
【０００８】
そこで、本発明は、車両の自動運転への利用に、より適したコンテンツの検証方法等を提供する。
【課題を解決するための手段】
【０００９】
本発明の一態様に係る検証方法は、車両で利用されるコンテンツデータを検証する検証方法であって、前記コンテンツデータと、前記コンテンツデータを分割した複数の部分データのそれぞれから生成された複数の第一ハッシュ値と、前記複数の第一ハッシュ値及び秘密鍵を用いて生成された署名とを取得し、前記車両の状態を示す状態情報を取得し、取得した前記状態情報に応じて１以上の整数であるＮを定め、前記複数の部分データのうち前記Ｎ個の部分データのそれぞれから第二ハッシュ値を生成し、（ａ）取得した前記複数の第一ハッシュ値のうち、前記複数の部分データのうちの前記Ｎ個の部分データを除く部分データのそれぞれから生成された第一ハッシュ値と、（ｂ）生成した前記第二ハッシュ値と、（ｃ）取得した前記署名と、を用いて、前記コンテンツデータの検証を行い、前記検証の結果を示す情報を出力する検証方法である。
【００１０】
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【００１１】
本発明によれば、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態におけるコンテンツ検証システムの全体構成を示す模式図である。
【図２】図２は、実施の形態における車両の機能構成を示す模式図である。
【図３】図３は、実施の形態におけるゲートウェイの機能構成を示す模式図である。
【図４】図４は、実施の形態におけるサーバの機能構成を示す模式図である。
【図５】図５は、実施の形態における信号機の機能構成を示す模式図である。
【図６】図６は、実施の形態におけるサーバから車両へコンテンツデータをダウンロードする処理を示すシーケンス図である。
【図７】図７は、実施の形態におけるサーバによるコンテンツデータを生成する処理を示すフローチャートである。
【図８】図８は、実施の形態における検証可能なコンテンツデータを生成する処理の説明図である。
【図９】図９は、実施の形態における車両によるコンテンツデータを検証する処理を示すフローチャートである。
【図１０】図１０は、実施の形態におけるコンテンツデータを検証する処理の説明図である。
【図１１】図１１は、実施の形態における車両からサーバへセンサ情報をアップロードする処理を示すシーケンス図である。
【図１２】図１２は、実施の形態における信号機からサーバへセンサ情報をアップロードする処理を示すシーケンス図である。
【発明を実施するための形態】
【００１３】
本発明の一態様に係る検証方法は、車両で利用されるコンテンツデータを検証する検証方法であって、前記コンテンツデータと、前記コンテンツデータを分割した複数の部分データのそれぞれから生成された複数の第一ハッシュ値と、前記複数の第一ハッシュ値及び秘密鍵を用いて生成された署名とを取得し、前記車両の状態を示す状態情報を取得し、取得した前記状態情報に応じて１以上の整数であるＮを定め、前記複数の部分データのうち前記Ｎ個の部分データのそれぞれから第二ハッシュ値を生成し、（ａ）取得した前記複数の第一ハッシュ値のうち、前記複数の部分データのうちの前記Ｎ個の部分データを除く部分データのそれぞれから生成された第一ハッシュ値と、（ｂ）生成した前記第二ハッシュ値と、（ｃ）取得した前記署名と、を用いて、前記コンテンツデータの検証を行い、前記検証の結果を示す情報を出力する検証方法である。
【００１４】
上記態様によれば、検証装置が、地図情報などを含む大容量のコンテンツデータを検証する場合に、コンテンツデータのうちの、車両の状態に応じて選択される一部を検証に用いるので、実用的なレベルで安全性を維持したまま、高速な検証が可能となり、安全なシステムの構築が可能となる。
【００１５】
また、攻撃者は秘密鍵を持っておらず、攻撃者が正当な電子署名（単に署名ともいう）を生成することは困難であるので、検証装置は、コンテンツデータの検証用データに含まれる署名を用いて、コンテンツデータが正当であるか否かを検証でき、すなわち、攻撃者によるコンテンツデータの改ざんを検出できる。検証装置は、このようにコンテンツデータが正当であるか否かを検証できるので、その後に不正なコンテンツデータを破棄するなどして、車両の自動運転などの動作に正当なコンテンツデータのみを利用することによって、安全なシステムが構築できる。このように、検証装置は、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【００１６】
例えば、前記第二ハッシュ値を生成する際には、前記複数の部分データから前記Ｎ個の部分データをランダムに選択し、選択した前記Ｎ個の部分データのそれぞれから第二ハッシュ値を生成してもよい。
【００１７】
上記態様によれば、検証装置は、地図情報などを含む大容量のコンテンツデータを検証する場合に、コンテンツデータの一部をランダムに選択して検証するので、実用的なレベルで安全性を維持したまま、高速な検証が可能となり、安全なシステムの構築が可能となる。
【００１８】
ここで、車両におけるコンテンツデータの検証は、コンテンツデータを複数に分割した部分データのうち所定数をランダムに選択してなされる。そのため、システムへの攻撃者が、コンテンツデータを不正に改ざんした場合、選択した分割されたコンテンツデータの中に攻撃者による不正な改ざんが含まれる可能性が高い。よって、検証装置は、コンテンツデータが正当であるか否かをより適切に検証できるので、より安全なシステムが構築できる。
【００１９】
言い換えれば、検証装置が、複数の部分データのうちのどの部分データを検証に使用するかが毎回変化するので、成りすましなどによる悪意あるデータをより適切に検出することができる。よって、検証装置は、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【００２０】
例えば、前記状態情報は、前記車両が走行中であるか否かを示し、前記第二ハッシュ値を生成する際には、前記車両が走行中である場合には、前記Ｎを第１の値に定め、前記車両が走行中でない場合には、前記Ｎを前記第１の値より大きい第２の値に定め、定めた前記Ｎを用いて、前記Ｎ個の部分データのそれぞれから前記第二ハッシュ値を生成してもよい。
【００２１】
上記態様によれば、検証装置は、検証のために確保できる時間が比較的長い場合には、コンテンツデータをより詳しく検証することができ、一方、検証のために確保できる時間が比較的短い場合には、短時間でコンテンツデータの検証を終えて、コンテンツデータを利用できる。よって、検証装置は、検証のために確保できる時間の長短に応じて、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【００２２】
例えば、前記状態情報は、前記車両の状態として、前記検証方法を実行する装置の処理負荷を示し、前記第二ハッシュ値を生成する際には、前記処理負荷が高いほど、前記Ｎをより小さな値に定め、定めた前記Ｎを用いて、前記Ｎ個の部分データのそれぞれから前記第二ハッシュ値を生成してもよい。
【００２３】
上記態様によれば、検証装置は、検証のために確保できる処理能力が比較的大きい場合には、コンテンツデータをより詳しく検証することができ、一方、検証のために確保できる処理能力が比較的小さい場合には、短時間でコンテンツデータの検証を終えて、コンテンツデータを利用できる。よって、検証装置は、検証のために確保できる処理能力の大小に応じて、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【００２４】
例えば、前記状態情報は、前記車両の状態として、前記検証方法を実行する装置が行う通信の通信量を示し、前記第二ハッシュ値を生成する際には、前記通信量が多いほど、前記Ｎをより小さな値に定め、定めた前記Ｎを用いて、前記Ｎ個の部分データのそれぞれから前記第二ハッシュ値を生成してもよい。
【００２５】
上記態様によれば、検証装置は、通信量情報から得られる、検証のために確保できる処理能力が比較的大きい場合には、コンテンツデータをより詳しく検証することができ、一方、検証のために確保できる処理能力が比較的小さい場合には、短時間でコンテンツデータの検証を終えて、コンテンツデータを利用できる。よって、検証装置は、検証のために確保できる処理能力の大小に応じて、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【００２６】
例えば、前記第二ハッシュ値を生成する際には、前記コンテンツデータの種類またはサイズに応じて前記Ｎを定め、定めた前記Ｎを用いて、前記Ｎ個の部分データのそれぞれから前記第二ハッシュ値を生成してもよい。
【００２７】
上記態様によれば、検証装置は、コンテンツデータの種類またはサイズに適した所定数の部分データを検証に用いることができる。よって、検証装置は、コンテンツデータの種類またはサイズに応じて、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【００２８】
例えば、前記第二ハッシュ値を生成する際には、前記コンテンツデータの種類に基づいて、前記複数の部分データのうちのどの部分データを前記Ｎ個の部分データとして選択するかを決定し、当該決定に基づいて選択した前記Ｎ個の部分データのそれぞれから前記第二ハッシュ値を生成してもよい。
【００２９】
上記態様によれば、検証装置は、コンテンツデータの種類に応じて、どの部分データにどのような内容のデータが含まれているかが既知である場合には、検証の必要性がより高い部分を検証の対象とすることができる。よって、検証装置は、検証の必要性がより高い部分を検証に用いることにより、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【００３０】
例えば、前記コンテンツデータの種類は、前記コンテンツデータの更新の間隔を示す指標を含んでもよい。
【００３１】
上記態様によれば、検証装置は、コンテンツデータの更新の時間間隔を用いてコンテンツの種類を示し、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【００３２】
また、本発明の一態様に係る検証装置は、車両で利用されるコンテンツデータを検証する検証装置であって、プロセッサと、前記プロセッサに接続されたメモリとを備え、前記プロセッサは、前記メモリを用いて、前記コンテンツデータと、前記コンテンツデータを分割した複数の部分データのそれぞれから生成された複数の第一ハッシュ値と、前記複数の第一ハッシュ値及び秘密鍵を用いて生成された署名とを取得し、前記車両の状態を示す状態情報を取得し、取得した前記状態情報に応じて１以上の整数であるＮを定め、前記複数の部分データのうち前記Ｎ個の部分データのそれぞれから第二ハッシュ値を生成し、（ａ）取得した前記複数の第一ハッシュ値のうち、前記複数の部分データのうちの前記Ｎ個の部分データを除く部分データのそれぞれから生成された第一ハッシュ値と、（ｂ）生成した前記第二ハッシュ値と、（ｃ）前記署名と、を用いて、前記コンテンツデータの検証を行い、前記検証の結果を示す情報を出力する。
【００３３】
これによれば、上記検証装置と同様の効果を奏する。
【００３４】
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【００３５】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【００３６】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【００３７】
（実施の形態）
１．  システムの構成
本発明の実施の形態として、車載ネットワーク上に設置された検証装置であるゲートウェイが、車外の装置、より具体的には車外のサーバ又は信号機などからＶ２Ｘにより受信したコンテンツデータを検証する技術について図面を参照しながら説明する。
【００３８】
１．１  コンテンツ検証システム１０の全体構成
図１は、本実施の形態におけるコンテンツ検証システム１０の全体構成を示す模式図である。図１において、コンテンツ検証システム１０は、車両１００ａ及び１００ｂと、サーバ２００と、信号機３００とを備える。車両１００ａ及び１００ｂと、サーバ２００と、信号機３００とは、それぞれ通信可能に、ネットワーク又は通信リンクで接続されている。
【００３９】
なお、コンテンツ検証システム１０には、信号機３００だけでなく、照明灯、情報掲示板標識、橋梁、トンネル及び横断歩道橋などのインフラ設備に取り付けられたセンサ、カメラ、並びに、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）受信器などがネットワーク又は通信リンクで接続されていてもよい。
【００４０】
１．２  車両１００ａの構成
図２は、本実施の形態における車両１００ａの全体構成を示す模式図である。図２において、複数の電子制御ユニット（ＥＣＵ：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）であるＥＣＵ１１１、ＥＣＵ１２１、ＥＣＵ１３１、ＥＣＵ１４１、ＥＣＵ１５１、ＥＣＵ１６１、ＥＣＵ１７１、ＥＣＵ１８１及びＥＣＵ１９１と、ゲートウェイ１０１とが、車載ネットワークで接続されている。車載ネットワークはＣｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（以降、ＣＡＮ）であってもよいし、Ｅｔｈｅｒｎｅｔ（登録商標）であってもよいし、ＣＡＮとＥｔｈｅｒｎｅｔ（登録商標）とが混在していてもよい。
【００４１】
車載ネットワークには、例えば、エンジン１１０、トランスミッション１２０、モータ（不図示）、燃料（不図示）、又は、電池（不図示）の制御に関連する駆動系のＥＣＵが接続されている。本図では、車載ネットワークには駆動系のＥＣＵとして、エンジン１１０用のＥＣＵ１１１と、トランスミッション１２０用のＥＣＵ１２１とが接続されている。
【００４２】
また、車載ネットワークには、ブレーキ１３０又はステアリング１４０などの、車両の「曲がる、止まる」機能に関連するシャーシ系ＥＣＵが接続されている。本図では、車載ネットワークにはシャーシ系ＥＣＵとして、ブレーキ１３０用のＥＣＵ１３１と、ステアリング１４０用のＥＣＵ１４１とが接続されている。
【００４３】
また、車載ネットワークには、自動ブレーキ１５０、車線維持装置１６０、車間距離制御機能（不図示）、衝突防止機能又はエアバッグなどの安全快適機能系ＥＣＵが接続されている。本図では、車載ネットワークには安全快適機能系ＥＣＵとして、自動ブレーキ１５０用のＥＣＵ１５１と、車線維持装置１６０用のＥＣＵ１６１とが接続されている。
【００４４】
また、車載ネットワークには、車車間通信装置１７０などに関連する通信系ＥＣＵが接続されている。本図では、車載ネットワークには通信系ＥＣＵとして、車車間通信装置１７０用のＥＣＵ１７１が接続されている。車車間通信装置１７０は、他の車両からコンテンツデータを取得する。ＥＣＵ１７１は、取得したコンテンツデータを用いて自動運転などの動作処理を行う。
【００４５】
また、車載ネットワークには、ヘッドユニット１８０などインフォテイメント系ＥＣＵが接続されている。本図では、車載ネットワークにはインフォテイメント系ＥＣＵとして、ヘッドユニット１８０用のＥＣＵ１８１が接続されている。なお、ヘッドユニット１８０用のＥＣＵ１８１がなく、ヘッドユニット１８０がＥＣＵ１８１を介さず直接車載ネットワークに接続されていてもよい。
【００４６】
また、車載ネットワークには、高度道路交通システムであるＩＴＳ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｔｒａｎｓｐｏｒｔ  Ｓｙｓｔｅｍｓ）装置１９０用のＥＣＵ１９１が接続されている。本図では、車載ネットワークには、ＩＴＳ装置１９０用のＥＣＵ１９１が接続されている。ＩＴＳ装置１９０は、サーバ２００が保有している路面情報及び地図情報などをサーバ２００から受信する。また、ＩＴＳ装置１９０は、センサ情報やＧＰＳによる位置情報、カメラの画像情報などをサーバ２００に送信する。ＩＴＳ装置１９０から送信された画像情報によって、サーバ２００は、道路状況などを把握することができる。
【００４７】
また、図示しない各種センサ又はカメラの画像情報なども車載ネットワークには接続されている。
【００４８】
ゲートウェイ１０１は、上記の各ＥＣＵに接続され、各ＥＣＵの間の通信を中継する中継装置である。上記の各ＥＣＵは、ゲートウェイ１０１を介して接続され、相互に情報をやりとりする。
【００４９】
サーバ２００は、さまざまな種類のコンテンツデータを保有しており、各種情報処理を行うサーバ装置である。サーバ２００は、地図情報、路面情報、交通規制情報、事故情報、及び、歩行者情報などをコンテンツデータとして保有している。地図情報は、道路又は建物などの静的な地物を示す情報である。路面情報は、道路の路面の状態を示す情報である。交通規制情報は、天候又は事故などに起因した交通規制が行われている場所及び時間帯などを示す情報である。事故情報は、車両の事故が起こっている場所及び時刻などを示す情報である。歩行者情報は、歩行者がいる場所及び時刻などを示す情報である。サーバ２００は、車両１００ａと通信回線を介して通信可能に接続されており、保有している各情報を車両１００ａなどに提供する。
【００５０】
サーバ２００が保有しているコンテンツデータには、更新間隔が比較的長いものもあれば、比較的短いものもある。例えば、地図情報及び路面情報などは、数カ月程度の間隔で更新される。一方、事故情報及び交通規制情報などは、数時間から数分程度の間隔で更新される。サーバ２００は、各コンテンツデータに紐付けて、各コンテンツデータの更新間隔を示す指標を保有していてもよい。更新間隔を示す指標は、更新間隔の時間長（１カ月、１時間、１分又は１秒など）であってもよいし、更新間隔の程度を例えば３段階で示す指標（長い、中程度、短い）であってもよい。
【００５１】
信号機３００は、交通信号機である。信号機３００は、電波による通信、又は、可視光通信などによって、車両１００ａなどと通信する。
【００５２】
１．３  ゲートウェイ１０１の構成
図３は、本実施の形態におけるゲートウェイ１０１の構成図である。図３においてゲートウェイ１０１は、コンテンツ検証部１００１、鍵保持部１００２、メッセージ処理部１００３、車両状態保持部１００４、及び、通信部１００５を含んで構成される。なお、ゲートウェイ１０１は、プロセッサ（不図示）と、プロセッサに接続されたメモリとを少なくとも備え、プロセッサがメモリを用いて所定のプログラムを実行することで下記の機能を実現する。
【００５３】
通信部１００５は、車載ネットワーク内に流れるメッセージの通信処理を行う通信インタフェースである。通信部１００５は、メッセージを受信すると、受信したメッセージをメッセージ処理部１００３又はコンテンツ検証部１００１に送信する。また、通信部１００５は、受信した車載ネットワークの任意のバスのメッセージを、別のバスへ転送する。
【００５４】
コンテンツ検証部１００１は、ＩＴＳ、又は、車車間通信などの車外のネットワーク経由で受信した自動車向けのコンテンツデータを検証する。
【００５５】
具体的には、コンテンツ検証部１００１は、コンテンツデータ、コンテンツデータを分割した複数の部分データのそれぞれから生成された複数の第一ハッシュ値、及び、複数の第一ハッシュ値と秘密鍵とを用いて生成された署名を取得する。コンテンツ検証部１００１は、車両１００ａの状態を示す状態情報を取得する。コンテンツ検証部１００１は、複数の部分データのうち、取得した状態情報に応じて定められた所定数個の部分データのそれぞれから第二ハッシュ値を生成する。ここで所定数は１以上の整数である。コンテンツ検証部１００１は、生成した第二ハッシュ値と、複数の部分データのうちの所定数個の部分データを除く部分データのそれぞれから生成された第一ハッシュ値と、署名とを用いて、取得したコンテンツデータの検証を行い、検証の結果を示す情報を出力する。
【００５６】
コンテンツ検証部１００１によるコンテンツデータの検証処理の詳細については後述する。
【００５７】
鍵保持部１００２は、コンテンツ検証部１００１又はメッセージ処理部１００３が利用する鍵を保持する。具体的には、鍵保持部１００２は、コンテンツ検証部１００１がサーバ２００から受信したコンテンツの検証に用いる鍵（つまり、サーバ２００の公開鍵）を保持する。また、車載ネットワークがＣＡＮを含む場合、鍵保持部１００２は、ＣＡＮのメッセージに用いられるＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）の検証に用いる鍵（ＭＡＣ鍵ともいう）を保持する。また、車載ネットワークがＥｔｈｅｒｎｅｔ（登録商標）を含む場合、コンテンツ検証部１００１は、Ｅｔｈｅｒｎｅｔ（登録商標）の暗号通信などに用いられる通信鍵を保持する。
【００５８】
メッセージ処理部１００３は、メッセージを処理する。例えば、車載ネットワークの任意のバス上のメッセージを別のバスに転送したり、メッセージの検証を行ったりする。メッセージ処理部１００３は、鍵保持部１００２に保持されているＭＡＣ鍵などの検証鍵を用いてメッセージの検証を行う。
【００５９】
さらにメッセージ処理部１００３は、メッセージから車両の状態を示す状態情報を取得し、車両状態保持部１００４に保持する。状態情報は、例えば、車両１００ａが走行中であるか、停車中であるか、又は、駐車中であるかを示す走行状態情報を含む。車両１００ａが走行中であるか等は、トランスミッション１２０の情報又は速度情報から得られる。また、状態情報は、この処理を実行する装置であるゲートウェイ１０１の処理負荷を示す負荷情報を含んでもよいし、ゲートウェイ１０１が行う通信の通信量を示す通信量情報を含んでもよい。
【００６０】
速度情報は、タイヤ（不図示）の回転数の情報を取得するＥＣＵから取得してもよいし、エンジン１１０に接続されているＥＣＵ１１１、又は、ブレーキ１３０に接続されているＥＣＵ１３１から取得してもよい。
【００６１】
車両状態保持部１００４は、車両の状態を保持する記憶装置である。車両状態保持部１００４には、メッセージ処理部１００３が取得した状態情報が格納される。また、車両状態保持部１００４に格納された状態情報は、コンテンツ検証部１００１により読み出される。
【００６２】
１．４  サーバ２００の構成
図４は、本実施の形態におけるサーバ２００の機能構成を示す模式図である。図４においてサーバ２００は、コンテンツ収集部２０１、コンテンツＤＢ２０２、コンテンツ分割部２０３、暗号処理部２０４、鍵保持部２０５、及び、通信部２０６を含んで構成される。なお、サーバ２００は、プロセッサ（不図示）と、プロセッサに接続されたメモリとを少なくとも備え、プロセッサがメモリを用いて所定のプログラムを実行することで下記の機能を実現する。
【００６３】
通信部２０６は、車両１００ａ若しくは１００ｂ、又は、信号機３００と通信を行う通信インタフェースである。通信部２０６は、通信プロトコルとして、ＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）を用いてもよい。
【００６４】
コンテンツ収集部２０１は、車両１００ａ若しくは１００ｂ、又は、信号機３００から取得したコンテンツデータを収集する。コンテンツデータには、車両１００ａ若しくは１００ｂ又は信号機３００から取得したセンサの情報、ＧＰＳなどにより取得された車両１００ａ又は１００ｂの位置情報、カメラにより取得された画像情報などが含まれ、これらのコンテンツデータから事故又は渋滞などの道路状況の把握がなされる。コンテンツ収集部２０１は、上記コンテンツデータとともに、当該コンテンツデータの更新間隔を示す指標を取得してもよい。
【００６５】
コンテンツＤＢ２０２は、コンテンツデータが記録される記録装置である。コンテンツＤＢ２０２には、コンテンツ収集部２０１が収集したコンテンツデータが記録される。またコンテンツＤＢ２０２は、地図データも記録する。コンテンツＤＢ２０２が記録しているコンテンツデータは、コンテンツ分割部２０３により読み出される。
【００６６】
コンテンツ分割部２０３は、コンテンツＤＢ２０２に記録されているコンテンツデータの中から、車両１００ａの周辺の道路状況に対応するコンテンツデータを読み出し、分割を行う。車両１００ａの周辺の道路状況に対応するコンテンツデータを読み出す際には、コンテンツＤＢ２０２に記録されているコンテンツデータの中から、別途取得する車両１００ａの位置情報に示される位置の周囲に対応するコンテンツデータを読み出す。そして、コンテンツ分割部２０３は、分割したコンテンツデータを暗号処理部２０４に送信する。なお、コンテンツデータが分割されたデータのそれぞれを部分データともいう。
【００６７】
コンテンツ分割部２０３におけるコンテンツデータの分割の方法は、さまざまな方法があり得る。例えば、分割のサイズに関しては、分割後の部分データのサイズが一定値になるように分割してもよいし、コンテンツデータの種類ごとに分割するサイズを変更してもよい。
【００６８】
鍵保持部２０５は、コンテンツデータの検証用データ生成に用いる秘密鍵（つまりサーバ２００の秘密鍵）を保持する。
【００６９】
暗号処理部２０４は、鍵保持部２０５が保持する秘密鍵を用いて、コンテンツデータの検証用データを生成する。暗号処理部２０４における検証用データの生成方法は後述する。
【００７０】
なお、サーバ２００は、インターネットに接続されていれば、物理的にはどこに配置されていてもよい、いわゆるクラウドサーバにより実現され得る。サーバ２００が提供するコンテンツデータは、クラウドで生成されたコンテンツデータということもできる。
【００７１】
１．５  信号機３００の構成
図５は、本実施の形態における信号機３００の機能構成を示す模式図である。図５において信号機３００は、コンテンツ収集部３０１、コンテンツＤＢ３０２、コンテンツ分割部３０３、暗号処理部３０４、鍵保持部３０５、コンテンツ送信部３０６、センサ情報収集部３０７、及び、通信部３０８を含んで構成される。なお、信号機３００は、プロセッサ（不図示）と、プロセッサに接続されたメモリとを少なくとも備え、プロセッサがメモリを用いて所定のプログラムを実行することで下記の機能を実現する。なお、信号機３００は、これらの機能のほか、交通信号機としての機能を備えている。
【００７２】
コンテンツＤＢ３０２は、コンテンツＤＢ２０２と同じ構成であり、コンテンツ分割部３０３はコンテンツ分割部２０３と同じ構成であり、暗号処理部３０４は暗号処理部２０４と同じ構成であり、鍵保持部３０５は鍵保持部２０５と同じ構成であるため、これらの構成の説明は省略する。
【００７３】
コンテンツ収集部３０１は、Ｖ２Ｘで車両１００ａ又は１００ｂから取得したセンサ情報をコンテンツＤＢ３０２へ格納する。
【００７４】
コンテンツ送信部３０６は、コンテンツＤＢ３０２で記録しているコンテンツデータをサーバ２００に送信する。
【００７５】
センサ情報収集部３０７は、信号機３００に設置されているセンサ（不図示）が生成したセンサ情報、又は、カメラ（不図示）が生成した画像情報を取得し、コンテンツＤＢ３０２へ格納する。
【００７６】
通信部３０８は、サーバ２００との通信、及び、Ｖ２Ｘでの車両１００ａ又は１００ｂとの通信を行う通信インタフェースである。
【００７７】
１．６  車両１００ａとサーバ２００との通信シーケンス
次に、車両１００ａとサーバ２００との通信、より具体的にはサーバ２００から車両１００ａへのコンテンツデータのダウンロードと、車両１００ａにおけるコンテンツデータの検証処理とについて説明する。本実施の形態では、車両１００ａがサーバ２００から地図データ等のコンテンツデータをダウンロードし、車線維持機能に利用する場合を一例として説明する。
【００７８】
＜コンテンツデータのダウンロードの通信シーケンス＞
図６は、本実施の形態におけるサーバ２００から車両１００ａへコンテンツデータをダウンロードする処理を示すシーケンス図である。図６に示されるシーケンスでは、車両１００ａがサーバ２００からコンテンツデータをダウンロードし、ダウンロードしたコンテンツデータを検証する処理が示されている。
【００７９】
ステップＳ１０１において、サーバ２００は、コンテンツデータを生成する。
【００８０】
ステップＳ１０２において、サーバ２００は、コンテンツデータを車両１００ａへ送信する。
【００８１】
ステップＳ１０３において、車両１００ａのＩＴＳ装置１９０は、サーバ２００から送信されたコンテンツデータをダウンロードし、ＩＴＳ装置１９０用のＥＣＵ１９１へ送信する。ＩＴＳ装置１９０用のＥＣＵ１９１は、受信したコンテンツデータをゲートウェイ１０１に送信することで転送する。
【００８２】
ステップＳ１０４において、ゲートウェイ１０１は、受信したコンテンツデータに対して検証を実行する。
【００８３】
ステップＳ１０５において、ステップＳ１０４での検証において、受信したコンテンツデータが正当であると判定された場合、ゲートウェイ１０１は、受信したコンテンツデータに対してメッセージを生成する。
【００８４】
ステップＳ１０６において、ゲートウェイ１０１は、ステップＳ１０５で生成したメッセージを、車線維持装置１６０用のＥＣＵ１６１へを送信する。
【００８５】
ステップＳ１０７において、車線維持装置１６０用のＥＣＵ１６１は、ゲートウェイ１０１から受信したメッセージをもとに車線維持機能に係る動作を実行する。
【００８６】
＜コンテンツデータの生成（ステップＳ１０１）＞
図７は、本実施の形態におけるサーバ２００によるコンテンツデータを生成する処理を示すフローチャートである。図７に示されるフローチャートは、図６におけるステップＳ１０１の内容を詳細に示すものである。
【００８７】
ステップＳ２０１において、サーバ２００のコンテンツ分割部２０３は、コンテンツデータを送信する対象である車両１００ａに適したコンテンツデータをコンテンツＤＢ２０２から取得する。なお、ステップＳ２０１で取得するコンテンツデータを、後述する「検証可能なコンテンツデータ」と区別して、コンテンツデータ本体ということもある。
【００８８】
ステップＳ２０２において、サーバ２００のコンテンツ分割部２０３は、ステップＳ２０１で取得したコンテンツデータを分割し、複数の部分データを生成する。
【００８９】
ステップＳ２０３において、サーバ２００の暗号処理部２０４は、ステップＳ２０２で分割により生成した複数の部分データそれぞれに対してハッシュ値を生成することで、複数のハッシュ値を生成する。ハッシュ値を生成するために用いるハッシュ関数はコンテンツ検証システム１０であらかじめ決められており、例えばＳＨＡ−２５６である。
【００９０】
ステップＳ２０４において、サーバ２００の暗号処理部２０４は、ステップＳ２０３で生成した複数のハッシュ値それぞれに対して、鍵保持部２０５が保持する秘密鍵を用いて署名を生成する。署名の生成には、例えば、非特許文献１にあるＥＣＤＳＡ（Ｅｌｌｉｐｔｉｃ  Ｃｕｒｖｅ  Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ）を用いる。
【００９１】
ステップＳ２０５において、サーバ２００の暗号処理部２０４は、ステップＳ２０２で生成した部分データと、ステップＳ２０３で生成したハッシュ値と、ステップＳ２０４で生成した署名とを含む、検証可能なコンテンツデータを生成する。検証可能なコンテンツデータの生成について、図８を参照しながら詳しく説明する。
【００９２】
図８は、本実施の形態における検証可能なコンテンツデータを生成する処理の説明図である。具体的には、上記ステップＳ２０２からＳ２０５までの処理が説明される。
【００９３】
図８に示されるように、暗号処理部２０４は、コンテンツデータＣ１を５つの部分データＣ１１、Ｃ１２、Ｃ１３、Ｃ１４及びＣ１５に分割する（ステップＳ２０２）。
【００９４】
次に、暗号処理部２０４は、生成した部分データＣ１１、Ｃ１２、Ｃ１３、Ｃ１４及びＣ１５のそれぞれに対してハッシュ値を生成する。具体的には、暗号処理部２０４は、部分データＣ１１に対してハッシュ値Ｈ１１を生成し、部分データＣ１２に対してハッシュ値Ｈ１２を生成し、部分データＣ１３に対してハッシュ値Ｈ１３を生成し、部分データＣ１４に対してハッシュ値Ｈ１４を生成し、部分データＣ１５に対してハッシュ値Ｈ１５を生成する（ステップＳ２０３）。ここで、ハッシュ値Ｈ１１、Ｈ１２、Ｈ１３、Ｈ１４及びＨ１５を第一ハッシュ値ともいう。
【００９５】
次に、暗号処理部２０４は、生成したハッシュ値Ｈ１１、Ｈ１２、Ｈ１３、Ｈ１４及びＨ１５を結合し、鍵保持部２０５が保持するサーバ２００の秘密鍵を用いて署名Ｓ１を生成する（ステップＳ２０４）。
【００９６】
次に、暗号処理部２０４は、ハッシュ値Ｈ１１、Ｈ１２、Ｈ１３、Ｈ１４及びＨ１５、並びに、署名Ｓ１を検証用データＶとしてコンテンツデータＣ１に付加することにより、検証可能なコンテンツデータＣ２を生成する（ステップＳ２０５）。つまり、検証可能なコンテンツデータＣ２には、コンテンツデータＣ１と検証用データＶとが含まれている。
【００９７】
＜コンテンツデータの検証（ステップＳ１０４）＞
図９は、本実施の形態における車両１００ａによるコンテンツデータを検証する処理を示すフローチャートである。図９に示されるフローチャートは、図６におけるステップＳ１０４の内容を詳細に示すものである。
【００９８】
ステップＳ３０１において、車両１００ａのコンテンツ検証部１００１は、サーバ２００からコンテンツデータをダウンロードにより取得する。取得するコンテンツデータは、上記における検証可能なコンテンツデータＣ２に相当するものであり、具体的には、コンテンツデータ本体、コンテンツデータ本体を分割した複数の部分データのそれぞれから生成された複数の第一ハッシュ値、及び、複数の第一ハッシュ値と秘密鍵とを用いて生成された署名を含んでいる。
【００９９】
ステップＳ３０２において、車両１００ａのコンテンツ検証部１００１は、車両１００ａの状態を示す状態情報を取得する。車両１００ａの状態情報は、車両状態保持部１００４から取得され得る。
【０１００】
ステップＳ３０３において、車両１００ａのコンテンツ検証部１００１は、ステップＳ３０２で取得した状態情報に応じて所定数を定める。
【０１０１】
ステップＳ３０４において、車両１００ａのコンテンツ検証部１００１は、ダウンロードしたコンテンツデータに含まれる部分データのうち、所定数の部分データを選択する。なお、所定数は、１以上の整数であり、Ｎと表記することもある。
【０１０２】
ステップＳ３０５において、車両１００ａのコンテンツ検証部１００１は、ステップＳ３０４で選択した部分データそれぞれに対するハッシュ値を生成する。ハッシュ値を生成するために用いるハッシュ関数は、コンテンツ検証システム１０であらかじめ決められている。
【０１０３】
ステップＳ３０６において、車両１００ａのコンテンツ検証部１００１は、ステップＳ３０４で選択しなかった部分データそれぞれに対するハッシュ値を、ステップＳ３０１で受信したコンテンツデータの中の検証用データに含まれるハッシュ値から抜き出す。
【０１０４】
ステップＳ３０７において、車両１００ａのコンテンツ検証部１００１は、ステップＳ３０４で選択した部分データそれぞれに対して生成したハッシュ値と、ステップＳ３０４で選択しなかった部分データそれぞれに対してステップＳ３０６で抜き出したハッシュ値と、コンテンツデータの検証用データに含まれる署名とを用いて、コンテンツデータの検証を行うことによって、コンテンツデータが正当であるか否かを判定する。コンテンツデータの検証の際には、サーバ２００の公開鍵が用いられる。コンテンツデータが正当であると判定した場合（ステップＳ３０７でＹｅｓ）には、ステップＳ３０８に進み、そうでない場合（ステップＳ３０７でＮｏ）には、ステップＳ３０９に進む。
【０１０５】
ステップＳ３０８において、車両１００ａのコンテンツ検証部１００１は、ステップＳ３０１でダウンロードしたコンテンツデータが正当なコンテンツデータであることを示す情報を出力する。
【０１０６】
ステップＳ３０９において、車両１００ａのコンテンツ検証部１００１は、ステップＳ３０１でダウンロードしたコンテンツデータが正当でない、つまり不正なコンテンツデータであることを示す情報を出力する。なお、このとき、当該コンテンツデータを破棄してもよい。
【０１０７】
図１０は、本実施の形態におけるコンテンツデータを検証する処理の説明図である。具体的には、上記ステップＳ３０２からＳ３０５までの処理が説明される。図１０では、検証可能なコンテンツデータＤ１を検証する処理を説明する。なお、検証可能なコンテンツデータＤ１は、図８で生成した検証可能なコンテンツデータＣ２に相当する。
【０１０８】
図１０において、検証可能なコンテンツデータＤ１は、５つの部分データＤ１１、Ｄ１２、Ｄ１３、Ｄ１４及びＤ１５と、検証用データＷとを含む。検証用データＷには、サーバ２００が算出したハッシュ値Ｊ１１、Ｊ１２、Ｊ１３、Ｊ１４及びＪ１５と、署名Ｔ１とが含まれている。
【０１０９】
車両１００ａのコンテンツ検証部１００１は、５つの部分データのうち所定数の部分データを選択する。ここでは、所定数を２とし、２つの部分データＤ１１及びＤ１３を選択する（ステップＳ３０２）。
【０１１０】
次に、選択した部分データＤ１１に対してハッシュ値Ｊ２１を生成し、部分データＤ１３に対してハッシュ値Ｊ２３を生成する（ステップＳ３０３）。ここで、ハッシュ値Ｊ２１及びＪ２３を第二ハッシュ値ともいう。
【０１１１】
また、選択しなかった部分データＤ１２、Ｄ１４及びＤ１５に対するハッシュ値を、検証可能なコンテンツデータＤ１の検証用データＷから抜き出す（ステップＳ３０４）。ここでは、部分データＤ１２に対してハッシュ値Ｊ１２を抽出し、部分データＤ１４に対してハッシュ値Ｊ１４を抽出し、部分データＤ１５に対するハッシュ値Ｊ１５を抽出する。
【０１１２】
次に、ハッシュ値Ｊ２１、Ｊ１２、Ｊ２３、Ｊ１４及びＪ１５と、検証用データＷに含まれる署名Ｔ１とを用いて、コンテンツデータＤ１の検証を行う（ステップＳ３０５）。
【０１１３】
なお、ステップＳ３０２で所定数個の部分データを選択する際には、複数の部分データから所定数個の部分データをランダムに選択してもよい。その場合、ステップＳ３０３では、選択した所定数個の部分データのそれぞれからハッシュ値Ｊ２３等を生成する。このようにすることで、複数の部分データのうちのどの部分データを検証に使用するかが毎回変化するので、成りすましなどによる悪意あるデータをより適切に検出することができる。
【０１１４】
なお、ステップＳ３０３で所定数を定めるときには、走行状態情報を参照して、車両１００ａが走行中である場合には、所定数を第１の値に定め、車両１００ａが走行中でない場合には、所定数を第１の値より大きい第２の値に定めてもよい。言い換えれば、所定数は、車両状態保持部１００４に保持された状態情報に応じて、可変であってもよい。例えば、状態情報（より具体的には走行状態情報）が「走行中」でない、つまり、「駐車中」又は「停車中」であれば、車両１００ａの状態が「走行中」の場合よりも、コンテンツデータを検証する時間を長く確保できるので、「走行中」の場合よりも所定数を大きくしてもよい。より具体的には、状態情報が「駐車中」又は「停車中」であれば、部分データの全数の３割を所定数とし、状態情報が「走行中」であれば、部分データの全数の１割を所定数としてもよい。このようにすることで、検証のために確保できる時間が比較的長い場合には、コンテンツデータをより詳しく検証することができ、一方、検証のために確保できる時間が比較的短い場合には、短時間でコンテンツデータの検証を終えて、コンテンツデータを利用できる利点がある。
【０１１５】
なお、ステップＳ３０３で所定数を定めるときには、この処理を実行する装置であるゲートウェイ１０１の負荷情報を参照して、処理負荷が高いほど、所定数をより小さな値に定めてもよい。また、ゲートウェイ１０１の通信量情報を参照し、通信量がより多いほど、所定数をより小さな値に定めてもよい。このようにすることで、検証のために確保できる処理能力が比較的大きい場合には、コンテンツデータをより詳しく検証することができ、一方、検証のために確保できる処理能力が比較的小さい場合には、短時間でコンテンツデータの検証を終えて、コンテンツデータを利用できる利点がある。
【０１１６】
なお、ステップＳ３０３で所定数を定めるときには、コンテンツデータの種類またはサイズに応じて所定数を定めてもよい。このようにすることで、コンテンツデータの種類またはサイズに適した所定数の部分データを検証に用いることができる。
【０１１７】
なお、ステップＳ３０３で所定数を定めるときには、コンテンツデータの種類に基づいて、複数の部分データのうちのどの部分データを所定数個の部分データとして選択するかを決定してもよい。コンテンツデータの種類に応じて、どの部分データにどのような内容のデータが含まれているかが既知である場合には、検証の必要性がより高い部分を検証の対象とすることができる。
【０１１８】
なお、コンテンツデータの種類は、コンテンツデータの更新の間隔を示す指標を含んでもよい。このようにすることで、コンテンツデータの更新の時間間隔を具体的に用いてコンテンツの種類を示すことができる。
【０１１９】
＜車両１００ａからサーバ２００へセンサ情報をアップロードするシーケンス＞
図１１は、本実施の形態における車両１００ａからサーバ２００へセンサ情報をアップロードする処理を示すシーケンス図である。
【０１２０】
ステップＳ４０１において、車両１００ａのセンサを持つＥＣＵはセンサ情報を生成する。例えば、センサは、可視光により撮像するカメラ、又は、ミリ波レーダーである。
【０１２１】
ステップＳ４０２において、車両１００ａのＥＣＵからゲートウェイ１０１にセンサ情報を送信する。
【０１２２】
ステップＳ４０３において、車両１００ａのゲートウェイ１０１は、ＥＣＵ１９１へセンサ情報を転送する。
【０１２３】
ステップＳ４０４において、ＥＣＵ１９１はＩＴＳ装置１９０から取得したセンサ情報をサーバ２００へ送信（アップロード）する。
【０１２４】
ステップＳ４０５において、サーバ２００は、車両１００ａからセンサ情報を受信し、コンテンツＤＢ２０２に記録する。
【０１２５】
＜信号機３００からサーバ２００へセンサ情報をアップロードするシーケンス＞
図１２は、本実施の形態における信号機３００からサーバ２００へセンサ情報をアップロードする処理を示すシーケンス図である。
【０１２６】
ステップＳ５０１において、センサ情報収集部３０７は、センサ情報を生成する。センサ情報は、例えば、信号機３００の周辺の道路状況、又は、信号機３００の周辺のカメラの画像情報などである。
【０１２７】
ステップＳ５０２において、センサ情報収集部３０７は、センサ情報をコンテンツＤＢ３０２に送信する。
【０１２８】
ステップＳ５０３において、コンテンツＤＢ３０２は、センサ情報を記録する。
【０１２９】
ステップＳ５０４において、コンテンツ送信部３０６は、コンテンツＤＢ３０２に記録されているセンサ情報を取得するために、コンテンツＤＢ３０２へアクセスし、センサ情報を取得する。
【０１３０】
ステップＳ５０５において、コンテンツ送信部３０６は、サーバ２００へセンサ情報をアップロードする。
【０１３１】
ステップＳ５０６において、サーバ２００は、信号機３００からセンサ情報を受信し、コンテンツＤＢ２０２にセンサ情報を記録する。
【０１３２】
１．７  実施の形態の効果
本実施の形態の検証方法によれば、検証装置つまりゲートウェイ１０１が、地図情報などを含む大容量のコンテンツデータを検証する場合に、コンテンツデータのうちの、車両の状態に応じて選択される一部を検証に用いるので、実用的なレベルで安全性を維持したまま、高速な検証が可能となり、安全なシステムの構築が可能となる。
【０１３３】
また、攻撃者は秘密鍵を持っておらず、攻撃者が正当な署名を生成することは困難であるので、検証装置は、コンテンツデータの検証用データに含まれる署名を用いて、コンテンツデータが正当であるか否かを検証でき、すなわち、攻撃者によるコンテンツデータの改ざんを検出できる。検証装置は、このようにコンテンツデータが正当であるか否かを検証できるので、その後に不正なコンテンツデータを破棄するなどして、車両の自動運転などの動作に正当なコンテンツデータのみを利用することによって、安全なシステムが構築できる。このように、検証装置は、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【０１３４】
また、検証装置は、地図情報などを含む大容量のコンテンツデータを検証する場合に、コンテンツデータの一部をランダムに選択して検証するので、実用的なレベルで安全性を維持したまま、高速な検証が可能となり、安全なシステムの構築が可能となる。
【０１３５】
ここで、車両におけるコンテンツデータの検証は、コンテンツデータを複数に分割した部分データのうち所定数をランダムに選択してなされる。そのため、システムへの攻撃者が、コンテンツデータを不正に改ざんした場合、選択した分割されたコンテンツデータの中に攻撃者による不正な改ざんが含まれる可能性が高い。よって、検証装置は、コンテンツデータが正当であるか否かをより適切に検証できるので、より安全なシステムが構築できる。
【０１３６】
言い換えれば、検証装置が、複数の部分データのうちのどの部分データを検証に使用するかが毎回変化するので、成りすましなどによる悪意あるデータをより適切に検出することができる。よって、検証装置は、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【０１３７】
また、検証装置は、検証のために確保できる時間が比較的長い場合には、コンテンツデータをより詳しく検証することができ、一方、検証のために確保できる時間が比較的短い場合には、短時間でコンテンツデータの検証を終えて、コンテンツデータを利用できる。よって、検証装置は、検証のために確保できる時間の長短に応じて、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【０１３８】
また、検証装置は、検証のために確保できる処理能力が比較的大きい場合には、コンテンツデータをより詳しく検証することができ、一方、検証のために確保できる処理能力が比較的小さい場合には、短時間でコンテンツデータの検証を終えて、コンテンツデータを利用できる。よって、検証装置は、検証のために確保できる処理能力の大小に応じて、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【０１３９】
また、検証装置は、通信量情報から得られる、検証のために確保できる処理能力が比較的大きい場合には、コンテンツデータをより詳しく検証することができ、一方、検証のために確保できる処理能力が比較的小さい場合には、短時間でコンテンツデータの検証を終えて、コンテンツデータを利用できる。よって、検証装置は、検証のために確保できる処理能力の大小に応じて、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【０１４０】
また、検証装置は、コンテンツデータの種類またはサイズに適した所定数の部分データを検証に用いることができる。よって、検証装置は、コンテンツデータの種類またはサイズに応じて、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【０１４１】
また、検証装置は、コンテンツデータの種類に応じて、どの部分データにどのような内容のデータが含まれているかが既知である場合には、検証の必要性がより高い部分を検証の対象とすることができる。よって、検証装置は、検証の必要性がより高い部分を検証に用いることにより、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【０１４２】
また、検証装置は、コンテンツデータの更新の時間間隔を用いてコンテンツの種類を示し、車両の自動運転への利用に、より適したコンテンツの検証方法により、コンテンツを検証できる。
【０１４３】
２．  その他変形例
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【０１４４】
（１）上記の実施の形態では、車載ネットワークはＣＡＮまたはＥｔｈｅｒｎｅｔ（登録商標）またはＣＡＮとＥｔｈｅｒｎｅｔ（登録商標）の混在であるとして説明したが、これに限定されることなく、例えば、ＣＡＮ−ＦＤ（ＣＡＮ  ｗｉｔｈ  Ｆｌｅｘｉｂｌｅ  Ｄａｔａ  Ｒａｔｅ）、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）、ＦｌｅｘＲａｙ（登録商標）であってもよいし、それぞれを組み合わせた構成であってもよい。
【０１４５】
（２）上記の実施の形態では、車載ネットワークに送信されたメッセージからトランスミッションに係るギアの情報や速度情報を取得し、車両の状態を示す状態情報を取得したが、これに限定されない。車載カメラの画像情報、ＧＰＳ、ミリ波レーダーやレーザーレーダーの情報やこれらを組み合わせて状態情報を推定してもよい。例えば、車載カメラの画像情報から車両の周囲の状況から、車両が、「走行中」、「駐車中」及び「停車中」のいずれであるかを判断してもよい。
【０１４６】
（３）上記の実施の形態では、コンテンツデータから所定数の部分データを選択し、選択した部分データのそれぞれに対してハッシュ値を生成したが、所定数は状態情報だけでなく、取得したコンテンツデータの種類やサイズによって所定数を変更してもよい。コンテンツデータのサイズが比較的少ない場合は全ての分割されたコンテンツデータを選択すれば、コンテンツデータすべてに対して検証できる。
【０１４７】
（４）上記の実施の形態では、コンテンツデータから分割されたコンテンツデータをランダムに選択したが、取得したコンテンツデータの種類によって、分割されたコンテンツデータの選択方法を変えてもよい。例えば、コンテンツデータが地図データの場合、車両の位置に近い地図データを含むように分割されたコンテンツデータを選択してもよいし、地図データのうち、前に取得した分割されたコンテンツデータに対して差分の分割されたコンテンツデータを選択してもよい。また、地図データがダイナミックマップのように、静的な情報に動的な情報が重畳されている場合、動的情報を多く含むように分割されたコンテンツデータを選択してもよい。前回受信したコンテンツデータから差分の大きい分割されたコンテンツデータを積極的に選択することで、効率よくコンテンツデータを検証することができる。
【０１４８】
（５）上記の実施の形態では、コンテンツデータの検証用データに署名を用いたが、これに限らない。車両がサーバや信号機と共通の秘密鍵を保持している場合、コンテンツデータのＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を検証用データとしてもよい。このとき、ＭＡＣはＣＭＡＣやＨＭＡＣを用いるとしてもよい。
【０１４９】
（６）上記の実施の形態では、コンテンツデータのハッシュ値に対して署名を生成したが、これに限らない。複数の部分データのそれぞれのハッシュ値を結合し、結合したハッシュ値に対して、さらにハッシュ値を生成して、このハッシュ値に対して署名を生成してもよい。これにより、署名を生成する対象のハッシュ値が短くなり、署名が効率よく生成できる。
【０１５０】
（７）上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１５１】
（８）上記の実施の形態における各装置は、構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０１５２】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又はすべてを含むように１チップ化されてもよい。
【０１５３】
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１５４】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０１５５】
（９）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。ＩＣカードまたはモジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。ＩＣカードまたはモジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ＩＣカードまたはモジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０１５６】
（１０）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０１５７】
また、本発明は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０１５８】
また、本発明は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０１５９】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
【０１６０】
また、プログラムまたはデジタル信号を前記記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０１６１】
（１１）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【０１６２】
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、ＣＰＵまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の検証装置などを実現するソフトウェアは、次のようなプログラムである。
【０１６３】
すなわち、このプログラムは、コンピュータに、車両で利用されるコンテンツデータを検証する検証方法であって、前記コンテンツデータと、前記コンテンツデータを分割した複数の部分データのそれぞれから生成された複数の第一ハッシュ値と、前記複数の第一ハッシュ値及び秘密鍵を用いて生成された署名とを取得し、前記車両の状態を示す状態情報を取得し、取得した前記状態情報に応じて１以上の整数であるＮを定め、前記複数の部分データのうち前記Ｎ個の部分データのそれぞれから第二ハッシュ値を生成し、（ａ）取得した前記複数の第一ハッシュ値のうち、前記複数の部分データのうちの前記Ｎ個の部分データを除く部分データのそれぞれから生成された第一ハッシュ値と、（ｂ）生成した前記第二ハッシュ値と、（ｃ）取得した前記署名と、を用いて、前記コンテンツデータの検証を行い、前記検証の結果を示す情報を出力する検証方法を実行させる。
【０１６４】
以上、一つまたは複数の態様に係る検証装置などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
【産業上の利用可能性】
【０１６５】
本発明は、地図情報などの大容量のコンテンツデータのダウンロードにおいて、コンテンツの一部をランダムに選んで検証することで、安全性を実用的なレベルで維持したまま、効率よく検証できる。これにより、安全なシステムを構築することが可能となる。
【符号の説明】
【０１６６】
１０  コンテンツ検証システム
１００ａ、１００ｂ  車両
１０１  ゲートウェイ
１１０  エンジン
１２０  トランスミッション
１３０  ブレーキ
１４０  ステアリング
１５０  自動ブレーキ
１６０  車線維持装置
１７０  車車間通信装置
１８０  ヘッドユニット
１９０  ＩＴＳ装置
１１１、１２１、１３１、１４１、１５１、１６１、１７１、１８１、１９１  ＥＣＵ
２００  サーバ
２０１、３０１  コンテンツ収集部
２０２、３０２  コンテンツＤＢ
２０３、３０３  コンテンツ分割部
２０４、３０４  暗号処理部
２０５、３０５、１００２  鍵保持部
２０６、３０８、１００５  通信部
３００  信号機
３０６  コンテンツ送信部
３０７  センサ情報収集部
１００１  コンテンツ検証部
１００３  メッセージ処理部
１００４  車両状態保持部
Ｃ１、Ｃ２、Ｄ１    コンテンツデータ
Ｃ１１、Ｃ１２、Ｃ１３、Ｃ１４、Ｃ１５、Ｄ１１、Ｄ１２、Ｄ１３、Ｄ１４、Ｄ１５    部分データ
Ｈ１１、Ｈ１２、Ｈ１３、Ｈ１４、Ｈ１５、Ｊ１１、Ｊ１２、Ｊ１３、Ｊ１４、Ｊ１５、Ｊ２１、Ｊ２３    ハッシュ値
Ｓ１、Ｔ１    署名
Ｖ、Ｗ    検証用データ
【図１】
2018196108.tif 000003
【図２】
2018196108.tif 000004
【図３】
2018196108.tif 000005
【図４】
2018196108.tif 000006
【図５】
2018196108.tif 000007
【図６】
2018196108.tif 000008
【図７】
2018196108.tif 000009
【図８】
2018196108.tif 000010
【図９】
2018196108.tif 000011
【図１０】
2018196108.tif 000012
【図１１】
2018196108.tif 000013
【図１２】
2018196108.tif 000014