以下、図面を参照し、本発明の実施形態について説明する。なお、以下に示す実施形態では、車両として自動車を例に挙げて説明する。
図1は、本実施形態に係る配信システム及び自動車1001の構成例を示す図である。本実施形態では、車載コンピュータの一例として、自動車1001に搭載されるECU(電子制御装置)を挙げて説明する。
図1において、自動車1001は、データ保安装置1010と複数のECU1020とを備える。ECU1020は、自動車1001に備わる車載コンピュータである。ECU1020は、自動車1001のエンジン制御等の制御機能を有する。ECU1020として、例えば、エンジン制御機能を有するECU、ハンドル制御機能を有するECU、ブレーキ制御機能を有するECUなどがある。データ保安装置1010は、自動車1001に搭載されたECU1020に適用されるデータのセキュリティ(保安)の機能を有する。なお、自動車1001に搭載されたいずれかのECUをデータ保安装置1010として機能させてもよい。
データ保安装置1010と複数のECU1020は、自動車1001に備わるCAN(Controller Area Network)1030に接続される。CAN1030は通信ネットワークである。CANは車両に搭載される通信ネットワークの一つとして知られている。データ保安装置1010は、CAN1030を介して、各ECU1020との間でデータを交換する。ECU1020は、CAN1030を介して、他のECU1020との間でデータを交換する。
なお、車両に搭載される通信ネットワークとして、CAN以外の通信ネットワークを自動車1001に備え、CAN以外の通信ネットワークを介して、データ保安装置1010とECU1020との間のデータの交換、及び、ECU1020同士の間のデータの交換が行われてもよい。例えば、LIN(Local Interconnect Network)を自動車1001に備えてもよい。また、CANとLINとを自動車1001に備えてもよい。また、自動車1001において、LINに接続するECU1020を備えてもよい。また、データ保安装置1010は、CANとLINとに接続されてもよい。また、データ保安装置1010は、CANを介して該CANに接続されるECU1020との間でデータを交換し、また、LINを介して該LINに接続されるECU1020との間でデータを交換してもよい。また、ECU1020同士が、LINを介してデータを交換してもよい。
自動車1001に備わる車載コンピュータシステム1002は、データ保安装置1010と複数のECU1020とがCAN1030に接続されて構成される。本実施形態において、車載コンピュータシステム1002は、自動車1001の車載制御システムとして機能する。
データ保安装置1010は、車載コンピュータシステム1002の内部と外部の間の通信を監視する。データ保安装置1010は、車載コンピュータシステム1002の外部の装置の例として、インフォテイメント機器1040、TCU(Tele Communication Unit)1050及び診断ポート1060と接続される。ECU1020は、データ保安装置1010を介して、車載コンピュータシステム1002の外部の装置と通信を行う。
なお、CAN1030の構成として、CAN1030が複数のバス(通信線)を備え、該複数のバスをデータ保安装置1010に接続してもよい。この場合、一つのバスに、一つのECU1020又は複数のECU1020が接続される。
自動車1001は診断ポート1060を備える。診断ポート1060として、例えばOBD(On-board Diagnostics)ポートを使用してもよい。診断ポート1060には、自動車1001の外部の装置を接続可能である。診断ポート1060に接続可能な自動車1001の外部の装置として、例えば、図1に示されるメンテナンスツール2100などがある。データ保安装置1010と、診断ポート1060に接続された装置、例えばメンテナンスツール2100とは、診断ポート1060を介して、データを交換する。メンテナンスツール2100は、OBDポートに接続される従来の診断端末の機能を有していてもよい。
自動車1001はインフォテイメント(Infotainment)機器1040を備える。インフォテイメント機器1040として、例えば、ナビゲーション機能、位置情報サービス機能、音楽や動画などのマルチメディア再生機能、音声通信機能、データ通信機能、インターネット接続機能などを有するものが挙げられる。
自動車1001はTCU1050を備える。TCU1050は通信装置である。TCU1050は通信モジュール1051を備える。通信モジュール1051は、無線通信ネットワークを利用して無線通信を行う。通信モジュール1051は、SIM(Subscriber Identity Module)1052を備える。SIM1052は、無線通信ネットワークを利用するための情報が書き込まれたSIMである。通信モジュール1051は、SIM1052を使用することにより該無線通信ネットワークに接続して無線通信を行うことができる。なお、SIM1052として、eSIM(Embedded Subscriber Identity Module)を使用してもよい。SIM及びeSIMはセキュアエレメント(Secure Element:SE)の例である。SIM及びeSIMは耐タンパー性(Tamper Resistant)を有する。
データ保安装置1010はTCU1050とデータを交換する。なお、TCU1050の他の接続形態として、例えば、TCU1050をインフォテイメント機器1040に接続し、データ保安装置1010が、インフォテイメント機器1040を介して、TCU1050とデータを交換してもよい。又は、TCU1050を診断ポート1060に接続し、データ保安装置1010が、診断ポート1060を介して、該診断ポート1060に接続されたTCU1050とデータを交換してもよい。又は、データ保安装置1010が、SIM1052を含む通信モジュール1051を備えてもよい。データ保安装置1010がSIM1052を含む通信モジュール1051を備える場合には、自動車1001はTCU1050を備えなくてもよい。
データ保安装置1010は、メイン演算器1011とHSM(Hardware Security Module)1012を備える。メイン演算器1011は、データ保安装置1010の機能を実現させるためのコンピュータプログラムを実行する。HSM1012は暗号処理機能等を有する。HSM1012は耐タンパー性を有する。HSM1012はセキュアエレメントの例である。HSM1012は、データを記憶する記憶部1013を備える。メイン演算器1011はHSM1012を使用する。
ECU1020は、メイン演算器1021とSHE(Secure Hardware Extension)1022を備える。メイン演算器1021は、ECU1020の機能を実現させるためのコンピュータプログラムを実行する。SHE1022は暗号処理機能等を有する。SHE1022は耐タンパー性を有する。SHE1022はセキュアエレメントの例である。SHE1022は、データを記憶する記憶部1023を備える。メイン演算器1021はSHE1022を使用する。なお、SHEについては、例えば非特許文献3に記載されている。
サーバ装置2000は、通信回線を介して、自動車1001のTCU1050の通信モジュール1051とデータを送受する。サーバ装置2000は、自動車1001のTCU1050の通信モジュール1051が利用する無線通信ネットワークを介して、該通信モジュール1051とデータを送受する。又は、サーバ装置2000は、インターネット等の通信ネットワークと該無線通信ネットワークとを介して、該通信モジュール1051とデータを送受してもよい。また、例えば、サーバ装置2000と通信モジュール1051との間をVPN(Virtual Private Network)回線等の専用回線で接続し、該専用回線でデータを送受してもよい。例えば、SIM1052に対応する無線通信ネットワークによって、VPN回線等の専用回線が提供されてもよい。
サーバ装置2000は、自動車1001のTCU1050と通信を行い、TCU1050を介して、自動車1001のデータ保安装置1010との間でデータを送受する。サーバ装置2000とデータ保安装置1010との間の通信路として、暗号化通信路を使用してもよい。例えば、サーバ装置2000とデータ保安装置1010は、暗号化通信路の一例として、https(hypertext transfer protocol secure)通信を行ってもよい。
なお、サーバ装置2000と自動車1001とを通信ケーブルで接続してもよい。例えば、サーバ装置2000と自動車1001のデータ保安装置1010とを通信ケーブルで接続するように構成してもよい。又は、サーバ装置2000と自動車1001とは、有線又は無線の通信ネットワークを介して通信を行うように構成してもよい。例えば、サーバ装置2000と自動車1001とを、有線又は無線のLAN(Local Area Network)で接続してもよい。
図2は、本実施形態に係る鍵生成装置10の構成例を示す図である。図2において、鍵生成装置10は、記憶部12と、鍵生成部15と、暗号処理部16と、第1鍵配信部17とを備える。記憶部12は、データを記憶する。鍵生成部15は、鍵を生成する。暗号処理部16は、データの暗号化及び暗号化データの復号を行う。第1鍵配信部17は、鍵の配信に係る処理を行う。
鍵生成装置10の機能は、該鍵生成装置10が備えるCPU(Central Processing Unit:中央演算処理装置)がコンピュータプログラムを実行することにより実現される。なお、鍵生成装置10として、汎用のコンピュータ装置を使用して構成してもよく、又は、専用のハードウェア装置として構成してもよい。
本実施形態では、自動車1001の外部の装置、例えばサーバ装置2000若しくはメンテナンスツール2100が鍵生成装置10の機能を備えてもよい。又は、自動車1001に搭載される装置、例えばTCU1050若しくはデータ保安装置1010が鍵生成装置10の機能を備えてもよい。鍵生成装置10の機能は、セキュアエレメントを使用して実現されることが好ましい。また、該セキュアエレメントは耐タンパー性を有することが好ましい。セキュアエレメントとして、例えば、IC(Integrated Circuit)チップ、SIM、eSIM、HSM、SHEなどが挙げられる。
図3は、本実施形態に係るデータ保安装置1010の構成例を示す図である。図3において、データ保安装置1010は、メイン演算器1011とHSM1012とインタフェース部20とを備える。メイン演算器1011は、制御部21と記憶部22と第2鍵配信部23とを備える。HSM1012は、記憶部1013と暗号処理部32と鍵更新部35と配信処理部36とを備える。
インタフェース部20は、自データ保安装置1010の外部の装置とデータを送受する。インタフェース部20は、CAN1030を介してデータを送受するインタフェースと、インフォテイメント機器1040とデータを送受するインタフェースと、TCU1050とデータを送受するインタフェースと、診断ポート1060を介してデータを送受するインタフェースとを備える。メイン演算器1011は、インタフェース部20を介して、データ保安装置1010以外の他の装置とデータの送受を行う。
制御部21は、データ保安装置1010の制御を行う。記憶部22は、データを記憶する。第2鍵配信部23は、鍵の配信に係る処理を行う。記憶部1013は、データを記憶する。暗号処理部32は、データの暗号化及び暗号化データの復号を行う。鍵更新部35は、鍵の更新に係る処理を行う。配信処理部36は、鍵の配信に係る処理を行う。
なお、本実施形態では、データ保安装置1010にHSMを使用しているが、データ保安装置1010においてHSMの代わりにSHEを使用してもよい。
図4は、本実施形態に係るECU1020の構成例を示す図である。図4において、ECU1020は、メイン演算器1021とSHE1022とインタフェース部40とを備える。メイン演算器1021は、制御部41と記憶部42とを備える。SHE1022は、記憶部1023と暗号処理部52と鍵更新部55とを備える。
インタフェース部40は、自ECU1020の外部の装置とデータを送受する。インタフェース部40は、CAN1030を介してデータを送受するインタフェースを備える。メイン演算器1021は、インタフェース部40を介して、自ECU1020以外の他の装置とデータの送受を行う。
制御部41は、ECU1020の制御を行う。記憶部42は、データを記憶する。記憶部1023は、データを記憶する。暗号処理部52は、データの暗号化及び暗号化データの復号を行う。鍵更新部55は、鍵の更新に係る処理を行う。
[配信方法の例]
次に本実施形態に係る配信方法の例を説明する。以下の配信方法の例の説明では、自動車(車両)の識別子(車両識別子)の一例として、車両識別番号(VIN:Vehicle Identification Number)を使用する。車両識別番号(VIN)については、例えば非特許文献2に記載されている。
また、ECU1020の鍵の一例として、MEK鍵、MAC鍵、及びENC鍵の3種類の鍵を挙げて説明する。MEK鍵は、SHEにおいて「MASTER_ECU_KEY」と呼ばれる鍵に対応する。MAC鍵は、SHEにおいて「KEY_n、但し、nは1から10までのいずれかの整数」と呼ばれる鍵のうち、CMAC(Cipher-based Message Authentication Code)の生成及び検証に使用される鍵に対応する。ENC鍵は、SHEにおいて「KEY_n、但し、nは1から10までのいずれかの整数」と呼ばれる鍵のうち、データの暗号化及び暗号化データの復号に使用される鍵に対応する。
<配信方法の例1>
図5を参照して本実施形態に係る配信方法の例1を説明する。図5は、本実施形態に係る配信方法の例1を示すシーケンスチャートである。
図5において、鍵生成装置10は、マスタ鍵Master_Secretと、MEK鍵K_mek_oemと、MAC鍵K_mac_oemと、ENC鍵K_enc_oemとを予め記憶部12に格納する。
ある1台の自動車1001に搭載される各ECU1020は、同じMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemを予めSHE1022の記憶部1023に格納する。ECU1020には、例えば、ECU1020の製造工場でMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemがSHE1022の記憶部1023に格納される。
例えば、同じ自動車製造会社で製造される各自動車1001に対して、同じMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemが使用されてもよい。又は、同じECU製造会社で製造される各ECU1020に対して、同じMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemが使用されてもよい。また、MEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemは、一定の周期で変更されてもよい。
鍵生成装置10が記憶部12に格納するMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemと、ECU1020がSHE1022の記憶部1023に格納するMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemとは、同じである。
配信方法の例1では、MEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemは、ECU1020に予め格納される鍵であって、自動車1001の共通の初期鍵である。
以下、鍵生成装置10はCAN1030を介してECU1020と通信を行う。例えば、サーバ装置2000が鍵生成装置10として機能する場合、サーバ装置2000は、自動車1001のTCU1050及びデータ保安装置1010を介してCAN1030にアクセスし、CAN1030を介してECU1020と通信を行う。又は、メンテナンスツール2100が鍵生成装置10として機能する場合、メンテナンスツール2100は、自動車1001の診断ポート1060及びデータ保安装置1010を介してCAN1030にアクセスし、CAN1030を介してECU1020と通信を行う。又は、自動車1001のTCU1050が鍵生成装置10として機能する場合、TCU1050は、データ保安装置1010を介してCAN1030にアクセスし、CAN1030を介してECU1020と通信を行う。又は、自動車1001のデータ保安装置1010が鍵生成装置10として機能する場合、データ保安装置1010は、CAN1030を介してECU1020と通信を行う。
(ステップS101)鍵生成装置10は、自動車1001の車両識別番号VINを取得する。自動車1001の車両識別番号VINは、予め鍵生成装置10に格納されてもよく、又は、ECU1020に鍵を配信する要求があった時に鍵生成装置10に格納されてもよい。
例えば、自動車1001のエンジン制御機能を有するECU1020が該自動車1001の車両識別番号VINを格納している場合、該ECU1020の起動後に該ECU1020から鍵生成装置10に該自動車1001の車両識別番号VINを通知してもよい。一般的に、エンジン制御機能を有するECU1020の起動時間は、他のECU1020の起動時間よりも、長いことが多い。このため、エンジン制御機能を有するECU1020が起動して車両識別番号VINを鍵生成装置10に通知する時には、他の多くのECU1020も起動済みとなっている。したがって、エンジン制御機能を有するECU1020が起動後に車両識別番号VINを鍵生成装置10に通知してから、鍵生成装置10から複数のECU1020に対して鍵を配信することは、鍵配信の成功確率を高めることになり好ましい。例えば、エンジン制御機能を有するECU1020が起動後に車両識別番号VINを鍵生成装置10に通知してから、鍵生成装置10から鍵配信対象の全てのECU1020に対してCAN1030のブロードキャストにより鍵を配信してもよい。
又は、自動車1001の車両識別番号VINは、例えば自動車1001の自動車製造会社で管理されている車両識別番号VINが鍵生成装置10に供給されてもよい。例えば、自動車1001の自動車製造会社が車両識別番号VINのデータベースを備え、該データベースから通信により車両識別番号VINを鍵生成装置10に送信してもよい。
(ステップS102)鍵生成装置10の鍵生成部15は、自動車1001のECU1020に供給するMEK鍵K_mek_genとMAC鍵K_mac_genとENC鍵K_enc_genとを生成する。
配信方法の例1では、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genは、第1鍵に対応する。
本実施形態に係る鍵生成方法の例を説明する。鍵生成部15は、記憶部12に格納されているマスタ鍵Master_Secretと、自動車1001の車両識別番号VINと、鍵種別識別子Key_ID(Nk)とを使用して、次式により鍵(共通鍵)を生成する。Nkは鍵の種別を表す変数である。
共通鍵=ダイジェスト(Master_Secret、VIN、Key_ID(Nk))
但し、ダイジェスト(Master_Secret、VIN、Key_ID(Nk))は、マスタ鍵Master_Secretと車両識別番号VINと鍵種別識別子Key_ID(Nk)とから生成されるダイジェスト値である。ダイジェスト値として、例えば、ハッシュ(hash)関数により算出される値、又は、排他的論理和演算により算出される値などが挙げられる。例えば、共通鍵は、マスタ鍵Master_Secretと車両識別番号VINと鍵種別識別子Key_ID(Nk)とを入力値に使用して算出されるハッシュ関数値である。
鍵種別識別子Key_ID(Nk)の値が異なれば、ダイジェスト値は異なる。鍵種別識別子Key_ID(Nk)の値を変えることによって、同じマスタ鍵Master_Secretと車両識別番号VINとから、異なる共通鍵を生成することができる。例えば、MEK鍵の鍵種別識別子をKey_ID(mek)とし、MAC鍵の鍵種別識別子をKey_ID(mac)とし、ENC鍵の鍵種別識別子をKey_ID(enc)とする。鍵生成部15は、マスタ鍵Master_Secretと、車両識別番号VINと、鍵種別識別子Key_ID(mek),Key_ID(mac),Key_ID(enc)とを使用して、
MEK鍵K_mek_gen=ダイジェスト(Master_Secret、VIN、Key_ID(mek))、
MAC鍵K_mac_gen=ダイジェスト(Master_Secret、VIN、Key_ID(mac))、
ENC鍵K_enc_gen=ダイジェスト(Master_Secret、VIN、Key_ID(enc))、
により、自動車1001のECU1020に供給するMEK鍵K_mek_genとMAC鍵K_mac_genとENC鍵K_enc_genとを異なる鍵として生成することができる。該MEK鍵K_mek_genとMAC鍵K_mac_genとENC鍵K_enc_genとは、1台の自動車1001に搭載される各ECU1020に共通である。記憶部12は、該MEK鍵K_mek_genとMAC鍵K_mac_genとENC鍵K_enc_genとを格納する。
(ステップS103)鍵生成装置10の第1鍵配信部17は、MEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemを使用して、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)を生成する。
配信方法の例1では、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)は、第1鍵更新要求メッセージに対応する。
本実施形態では、鍵更新要求メッセージは、SHEの鍵の登録に使用されるパラメータであるM1パラメータ、M2パラメータ及びM3パラメータを含む。M1パラメータ、M2パラメータ及びM3パラメータについては、例えば非特許文献3に記載されている。M2パラメータ及びM3パラメータの生成には、鍵K_AuthIDが使用される。MEK鍵K_mek_genの鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)に係る鍵K_AuthIDはMEK鍵K_mek_oemである。MAC鍵K_mac_genの鍵更新要求メッセージMES_K_mac_oem(K_mac_gen)に係る鍵K_AuthIDはMAC鍵K_mac_oemである。ENC鍵K_enc_genの鍵更新要求メッセージMES_K_enc_oem(K_enc_gen)に係る鍵K_AuthIDはENC鍵K_enc_oemである。
第1鍵配信部17は、MEK鍵K_mek_oemを使用して、MEK鍵K_mek_genの登録に使用されるM1パラメータ、M2パラメータ及びM3パラメータを生成する。第1鍵配信部17は、MEK鍵K_mek_genの登録に使用されるM1パラメータ、M2パラメータ及びM3パラメータを、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)に含める。
第1鍵配信部17は、MAC鍵K_mac_oemを使用して、MAC鍵K_mac_genの登録に使用されるM1パラメータ、M2パラメータ及びM3パラメータを生成する。第1鍵配信部17は、MAC鍵K_mac_genの登録に使用されるM1パラメータ、M2パラメータ及びM3パラメータを、鍵更新要求メッセージMES_K_mac_oem(K_mac_gen)に含める。
第1鍵配信部17は、ENC鍵K_enc_oemを使用して、ENC鍵K_enc_genの登録に使用されるM1パラメータ、M2パラメータ及びM3パラメータを生成する。第1鍵配信部17は、ENC鍵K_enc_genの登録に使用されるM1パラメータ、M2パラメータ及びM3パラメータを、鍵更新要求メッセージMES_K_enc_oem(K_enc_gen)に含める。
(ステップS104)鍵生成装置10の第1鍵配信部17は、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)をECU1020に送信する。鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)は、自動車1001の各ECU1020に対して共通である。
鍵更新要求メッセージの送信方法の一例を説明する。鍵更新要求メッセージの送信方法の一例として、CAN1030のブロードキャストにより、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)を送信してもよい。CAN1030に接続されるデータ保安装置1010及び各ECU1020には、鍵配信用のCANの識別子(鍵配信用CANID)を設定する。鍵配信用CANIDは、データ保安装置1010及びECU1020毎に、それぞれ異なる値である。CANの識別子は、送信元の装置を識別する識別子である。
データ保安装置1010は、第1鍵配信部17から受信した鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)をCAN1030に送信する際に、該鍵更新要求メッセージに対して、CANの識別子として自データ保安装置1010の鍵配信用CANIDを付す。鍵生成装置10からデータ保安装置1010を介してCAN1030に送信された該鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)は、各ECU1020においてデータ保安装置1010の鍵配信用CANIDにより識別されて受信される。これにより、CAN1030に接続される各ECU1020に対して、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)を、CAN1030のブロードキャストにより、一斉に送信することができる。
以上が鍵更新要求メッセージの送信方法の一例の説明である。
(ステップS105)ECU1020の制御部41は、インタフェース部40により、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)を受信する。
制御部41は、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)に含まれるM1パラメータ、M2パラメータ及びM3パラメータをSHE1022に渡して、鍵の更新を要求する。SHE1022の鍵更新部55は、該M1パラメータ、M2パラメータ及びM3パラメータと、記憶部1023に格納されるMEK鍵K_mek_oemとを使用して、MEK鍵K_mek_genの登録を行う。これにより、記憶部1023に格納されるMEK鍵が、MEK鍵K_mek_oemからMEK鍵K_mek_genに更新される。
制御部41は、鍵更新要求メッセージMES_K_mac_oem(K_mac_gen)に含まれるM1パラメータ、M2パラメータ及びM3パラメータをSHE1022に渡して、鍵の更新を要求する。SHE1022の鍵更新部55は、該M1パラメータ、M2パラメータ及びM3パラメータと、記憶部1023に格納されるMAC鍵K_mac_oemとを使用して、MAC鍵K_mac_genの登録を行う。これにより、記憶部1023に格納されるMAC鍵が、MAC鍵K_mac_oemからMAC鍵K_mac_genに更新される。
制御部41は、鍵更新要求メッセージMES_K_enc_oem(K_enc_gen)に含まれるM1パラメータ、M2パラメータ及びM3パラメータをSHE1022に渡して、鍵の更新を要求する。SHE1022の鍵更新部55は、該M1パラメータ、M2パラメータ及びM3パラメータと、記憶部1023に格納されるENC鍵K_enc_oemとを使用して、ENC鍵K_enc_genの登録を行う。これにより、記憶部1023に格納されるENC鍵が、ENC鍵K_enc_oemからENC鍵K_enc_genに更新される。
(ステップS106)ECU1020の制御部41は、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージを生成する。
配信方法の例1では、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージは、第1更新完了メッセージに対応する。
本実施形態では、更新完了メッセージは、SHEの鍵の検証に使用されるパラメータであるM4パラメータ及びM5パラメータを含む。M4パラメータ及びM5パラメータについては、例えば非特許文献3に記載されている。
SHE1022の鍵更新部55は、MEK鍵K_mek_genを使用して、MEK鍵K_mek_genのM4パラメータ及びM5パラメータを生成する。SHE1022は、MEK鍵K_mek_genのM4パラメータ及びM5パラメータを制御部41に渡す。制御部41は、MEK鍵K_mek_genのM4パラメータ及びM5パラメータを、MEK鍵K_mek_genの更新完了メッセージに含める。
SHE1022の鍵更新部55は、MAC鍵K_mac_genを使用して、MAC鍵K_mac_genのM4パラメータ及びM5パラメータを生成する。SHE1022は、MAC鍵K_mac_genのM4パラメータ及びM5パラメータを制御部41に渡す。制御部41は、MAC鍵K_mac_genのM4パラメータ及びM5パラメータを、MAC鍵K_mac_genの更新完了メッセージに含める。
SHE1022の鍵更新部55は、ENC鍵K_enc_genを使用して、ENC鍵K_enc_genのM4パラメータ及びM5パラメータを生成する。SHE1022は、ENC鍵K_enc_genのM4パラメータ及びM5パラメータを制御部41に渡す。制御部41は、ENC鍵K_enc_genのM4パラメータ及びM5パラメータを、ENC鍵K_enc_genの更新完了メッセージに含める。
(ステップS107)ECU1020の制御部41は、インタフェース部40により、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージを鍵生成装置10に送信する。
なお、鍵配信用CANIDがECU1020に設定される場合、制御部41は、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージに対して、自ECU1020の鍵配信用CANIDを付す。ECU1020からCAN1030に送信された該更新完了メッセージは、データ保安装置1010において該ECU1020の鍵配信用CANIDにより識別されて受信される。データ保安装置1010は、該受信した更新完了メッセージを鍵生成装置10に転送する。
(ステップS108)鍵生成装置10の第1鍵配信部17は、ECU1020から受信したMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージを、ECU1020に供給したMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genに基づいて検証する。ECU1020に供給したMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genは、記憶部12に格納されている。
第1鍵配信部17は、ECU1020に供給したMEK鍵K_mek_genを使用して、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータを生成する。第1鍵配信部17は、MEK鍵K_mek_genの更新完了メッセージに含まれるM4パラメータ及びM5パラメータと、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはMEK鍵の更新が成功である。一方、両者が一致しない場合にはMEK鍵の更新が失敗である。
第1鍵配信部17は、ECU1020に供給したMAC鍵K_mac_genを使用して、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータを生成する。第1鍵配信部17は、MAC鍵K_mac_genの更新完了メッセージに含まれるM4パラメータ及びM5パラメータと、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはMAC鍵の更新が成功である。一方、両者が一致しない場合にはMAC鍵の更新が失敗である。
第1鍵配信部17は、ECU1020に供給したENC鍵K_enc_genを使用して、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータを生成する。第1鍵配信部17は、ENC鍵K_enc_genの更新完了メッセージに含まれるM4パラメータ及びM5パラメータと、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはENC鍵の更新が成功である。一方、両者が一致しない場合にはENC鍵の更新が失敗である。
なお、第1鍵配信部17は、MEK鍵K_mek_gen、MAC鍵K_mac_gen又はENC鍵K_enc_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS104の各鍵更新要求メッセージのうち、更新失敗の鍵の鍵更新要求メッセージを再送信してもよい。また、第1鍵配信部17は、ステップS104の各鍵更新要求メッセージの送信後から所定時間経過しても、いずれかの更新完了メッセージを受信しない場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS104の各鍵更新要求メッセージのうち、更新完了メッセージを受信しない鍵の鍵更新要求メッセージを再送信してもよい。
上述した配信方法の例1によれば、同じ自動車1001に搭載される各ECU1020に対して該自動車1001に共通のMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemを予め格納しておくことにより、マスタ鍵Master_Secretと該共通の鍵とから各鍵(第1鍵)の鍵更新要求メッセージ(第1鍵更新要求メッセージ)を生成し、該鍵更新要求メッセージを該各ECU1020に共通に使用して該各ECU1020の鍵の更新を実施することができる。これにより、ECU1020に適用される鍵の配信の効率を向上させる効果が得られる。
また、CAN1030に接続される各ECU1020に対してCAN1030のブロードキャストにより鍵更新要求メッセージを一斉に送信することにより、鍵の配信にかかる時間を短縮することができる。
<配信方法の例2>
図6を参照して本実施形態に係る配信方法の例2を説明する。図6は、本実施形態に係る配信方法の例2を示すシーケンスチャートである。図6において図5の各ステップに対応する部分には同一の符号を付している。
図6において、鍵生成装置10は、マスタ鍵Master_Secretと、MEK鍵K_mek_oemとを予め記憶部12に格納する。
ある1台の自動車1001に搭載される各ECU1020は、同じMEK鍵K_mek_oemを予めSHE1022の記憶部1023に格納する。ECU1020には、例えば、ECU1020の製造工場でMEK鍵K_mek_oemがSHE1022の記憶部1023に格納される。例えば、同じ自動車製造会社で製造される各自動車1001に対して、同じMEK鍵K_mek_oemが使用されてもよい。又は、同じECU製造会社で製造される各ECU1020に対して、同じMEK鍵K_mek_oemが使用されてもよい。また、MEK鍵K_mek_oemは、一定の周期で変更されてもよい。
鍵生成装置10が記憶部12に格納するMEK鍵K_mek_oemと、ECU1020がSHE1022の記憶部1023に格納するMEK鍵K_mek_oemとは、同じである。
配信方法の例2では、MEK鍵K_mek_oemは、ECU1020に予め格納される鍵であって、自動車1001の共通の初期鍵である。
鍵生成装置10とECU1020との間の通信方法は、配信方法の例1と同じである。
図6において、ステップS101及びステップS102が実行される。ステップS101及びステップS102は、配信方法の例1と同じである。
配信方法の例2では、MEK鍵K_mek_genは第1鍵に対応し、MAC鍵K_mac_gen及びENC鍵K_enc_genは第2鍵に対応する。
(ステップS103a)鍵生成装置10の第1鍵配信部17は、MEK鍵K_mek_oemを使用して、MEK鍵K_mek_genの鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)を生成する。
配信方法の例2では、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)は、第1鍵更新要求メッセージに対応する。
第1鍵配信部17は、MEK鍵K_mek_oemを使用して、MEK鍵K_mek_genの登録に使用されるM1パラメータ、M2パラメータ及びM3パラメータを生成する。第1鍵配信部17は、MEK鍵K_mek_genの登録に使用されるM1パラメータ、M2パラメータ及びM3パラメータを、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)に含める。
(ステップS104a)鍵生成装置10の第1鍵配信部17は、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)をECU1020に送信する。鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)は、自動車1001の各ECU1020に対して共通である。CAN1030のブロードキャストにより、該鍵更新要求メッセージを送信してもよい。
(ステップS105a)ECU1020の制御部41は、インタフェース部40により、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)を受信する。
制御部41は、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)に含まれるM1パラメータ、M2パラメータ及びM3パラメータをSHE1022に渡して、鍵の更新を要求する。SHE1022の鍵更新部55は、該M1パラメータ、M2パラメータ及びM3パラメータと、記憶部1023に格納されるMEK鍵K_mek_oemとを使用して、MEK鍵K_mek_genの登録を行う。これにより、記憶部1023に格納されるMEK鍵が、MEK鍵K_mek_oemからMEK鍵K_mek_genに更新される。
(ステップS106a)ECU1020の制御部41は、MEK鍵K_mek_genの更新完了メッセージを生成する。更新完了メッセージの生成方法は、配信方法の例1と同じである。
配信方法の例2では、MEK鍵K_mek_genの更新完了メッセージは、第1更新完了メッセージに対応する。
(ステップS107a)ECU1020の制御部41は、インタフェース部40により、MEK鍵K_mek_genの更新完了メッセージを鍵生成装置10に送信する。
(ステップS108a)鍵生成装置10の第1鍵配信部17は、ECU1020から受信したMEK鍵K_mek_genの更新完了メッセージを、ECU1020に供給したMEK鍵K_mek_genに基づいて検証する。ECU1020に供給したMEK鍵K_mek_genは、記憶部12に格納されている。更新完了メッセージの検証方法は、配信方法の例1と同じである。
なお、第1鍵配信部17は、MEK鍵K_mek_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS104aの鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)を再送信してもよい。また、第1鍵配信部17は、ステップS104aの鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)の送信後から所定時間経過しても、MEK鍵K_mek_genの更新完了メッセージを受信しない場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS104aの鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)を再送信してもよい。
MEK鍵の更新が成功したECU1020については、ステップS108aに処理を進める。一方、MEK鍵の更新が成功していないECU1020については、MEK鍵の更新が成功するまでステップS108aに処理を進めない。なお、鍵配信対象の全てのECU1020のMEK鍵の更新が成功してから、ステップS108aに処理を進めるようにしてもよい。
(ステップS103b)鍵生成装置10の第1鍵配信部17は、MEK鍵K_mek_genを使用して、MAC鍵K_mac_gen及びENC鍵K_enc_genの各鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)を生成する。
本実施形態では、鍵更新要求メッセージは、SHEの鍵の登録に使用されるパラメータであるM1パラメータ、M2パラメータ及びM3パラメータを含む。M2パラメータ及びM3パラメータの生成には、鍵K_AuthIDが使用される。MAC鍵K_mac_genの鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)に係る鍵K_AuthIDはMEK鍵K_mek_genである。ENC鍵K_enc_genの鍵更新要求メッセージMES_K_mek_gen(K_enc_gen)に係る鍵K_AuthIDはMEK鍵K_mek_genである。
配信方法の例2では、鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)は、第2鍵更新要求メッセージに対応する。
第1鍵配信部17は、MEK鍵K_mek_genを使用して、MAC鍵K_mac_genの登録に使用されるM1パラメータ、M2パラメータ及びM3パラメータを生成する。第1鍵配信部17は、MAC鍵K_mac_genの登録に使用されるM1パラメータ、M2パラメータ及びM3パラメータを、鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)に含める。
第1鍵配信部17は、MEK鍵K_mek_genを使用して、ENC鍵K_enc_genの登録に使用されるM1パラメータ、M2パラメータ及びM3パラメータを生成する。第1鍵配信部17は、ENC鍵K_enc_genの登録に使用されるM1パラメータ、M2パラメータ及びM3パラメータを、鍵更新要求メッセージMES_K_mek_gen(K_enc_gen)に含める。
(ステップS104b)鍵生成装置10の第1鍵配信部17は、鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)をECU1020に送信する。鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)は、自動車1001の各ECU1020に対して共通である。CAN1030のブロードキャストにより、該鍵更新要求メッセージを送信してもよい。
(ステップS105b)ECU1020の制御部41は、インタフェース部40により、鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)を受信する。
制御部41は、鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)に含まれるM1パラメータ、M2パラメータ及びM3パラメータをSHE1022に渡して、鍵の更新を要求する。SHE1022の鍵更新部55は、該M1パラメータ、M2パラメータ及びM3パラメータと、記憶部1023に格納されるMEK鍵K_mek_genとを使用して、MAC鍵K_mac_genの登録を行う。これにより、MAC鍵K_mac_genが記憶部1023に格納される。
制御部41は、鍵更新要求メッセージMES_K_mek_gen(K_enc_gen)に含まれるM1パラメータ、M2パラメータ及びM3パラメータをSHE1022に渡して、鍵の更新を要求する。SHE1022の鍵更新部55は、該M1パラメータ、M2パラメータ及びM3パラメータと、記憶部1023に格納されるMEK鍵K_mek_genとを使用して、ENC鍵K_enc_genの登録を行う。これにより、ENC鍵K_enc_genが記憶部1023に格納される。
(ステップS106b)ECU1020の制御部41は、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージを生成する。更新完了メッセージの生成方法は、配信方法の例1と同じである。
配信方法の例2では、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージは、第2更新完了メッセージに対応する。
(ステップS107b)ECU1020の制御部41は、インタフェース部40により、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージを鍵生成装置10に送信する。
(ステップS108b)鍵生成装置10の第1鍵配信部17は、ECU1020から受信したMAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージを、ECU1020に供給したMAC鍵K_mac_gen及びENC鍵K_enc_genに基づいて検証する。ECU1020に供給したMAC鍵K_mac_gen及びENC鍵K_enc_genは、記憶部12に格納されている。更新完了メッセージの検証方法は、配信方法の例1と同じである。
なお、第1鍵配信部17は、MAC鍵K_mac_gen又はENC鍵K_enc_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS104bの各鍵更新要求メッセージのうち、更新失敗の鍵の鍵更新要求メッセージを再送信してもよい。また、第1鍵配信部17は、ステップS104bの各鍵更新要求メッセージの送信後から所定時間経過しても、いずれかの更新完了メッセージを受信しない場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS104bの各鍵更新要求メッセージのうち、更新完了メッセージを受信しない鍵の鍵更新要求メッセージを再送信してもよい。
上述した配信方法の例2によれば、同じ自動車1001に搭載される各ECU1020に対して該自動車1001に共通のMEK鍵K_mek_oemを予め格納しておくことにより、マスタ鍵Master_Secretと該共通の鍵とからMEK鍵K_mek_gen(第1鍵)の鍵更新要求メッセージ(第1鍵更新要求メッセージ)を生成し、該鍵更新要求メッセージを該各ECU1020に共通に使用して該各ECU1020のMEK鍵の更新を実施することができる。また、該更新後のMEK鍵K_mek_genを使用して、MAC鍵K_mac_gen(第2鍵)及びENC鍵K_enc_gen(第2鍵)の各鍵更新要求メッセージ(第2鍵更新要求メッセージ)を生成し、該鍵更新要求メッセージを該各ECU1020に共通に使用して該各ECU1020のMAC鍵及びENC鍵の更新を実施することができる。これにより、ECU1020に適用される鍵の配信の効率を向上させる効果が得られる。また、ECU1020に予め格納する自動車1001の共通の初期鍵は、MEK鍵K_mek_oemのみで済む。これにより、例えばECU1020の製造工場においてECU1020の初期鍵の書込みの工程の簡略化に寄与できるという効果が得られる。
また、CAN1030に接続される各ECU1020に対してCAN1030のブロードキャストにより鍵更新要求メッセージを一斉に送信することにより、鍵の配信にかかる時間を短縮することができる。
<配信方法の例3>
図7を参照して本実施形態に係る配信方法の例3を説明する。図7は、本実施形態に係る配信方法の例3を示すシーケンスチャートである。図7において図5の各ステップに対応する部分には同一の符号を付している。
図7において、鍵生成装置10は、マスタ鍵Master_Secretと、MEK鍵K_mek_oemと、MAC鍵K_mac_oemと、ENC鍵K_enc_oemとを予め記憶部12に格納する。
ある1台の自動車1001に搭載されるデータ保安装置1010と各ECU1020とは、同じMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemを予め格納する。データ保安装置1010は、MEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemをHSM1012の記憶部1013に格納する。ECU1020は、MEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemをSHE1022の記憶部1023に格納する。データ保安装置1010やECU1020には、例えば、その製造工場でMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemが格納される。
鍵生成装置10が格納するMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemと、データ保安装置1010が格納するMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemと、ECU1020が格納するMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemとは、同じである。
配信方法の例3では、MEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemは、データ保安装置1010及びECU1020に予め格納される鍵であって、自動車1001の共通の初期鍵である。
以下、鍵生成装置10はデータ保安装置1010と通信を行う。例えば、サーバ装置2000が鍵生成装置10として機能する場合、サーバ装置2000は、自動車1001のTCU1050を介してデータ保安装置1010と通信を行う。又は、メンテナンスツール2100が鍵生成装置10として機能する場合、メンテナンスツール2100は、自動車1001の診断ポート1060を介してデータ保安装置1010と通信を行う。又は、自動車1001のTCU1050が鍵生成装置10として機能する場合、TCU1050はデータ保安装置1010と通信を行う。また、データ保安装置1010は、CAN1030を介してECU1020と通信を行う。
図7において、ステップS101及びステップS102が実行される。ステップS101及びステップS102は、配信方法の例1と同じである。
配信方法の例3では、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genは、第1鍵に対応する。
(ステップS201)鍵生成装置10の第1鍵配信部17は、鍵更新処理メッセージを生成する。該鍵更新処理メッセージは、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)と、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータと、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータと、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータと、を含む。各鍵更新要求メッセージ並びに各比較対象のM4パラメータ及びM5パラメータは、配信方法の例1と同じである。
配信方法の例3では、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)は、第1鍵更新要求メッセージに対応する。配信方法の例3では、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータは第1検証データに対応し、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータは第1検証データに対応し、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータは第1検証データに対応する。
(ステップS202)鍵生成装置10の第1鍵配信部17は、鍵更新処理メッセージをデータ保安装置1010に送信する。データ保安装置1010の制御部21は、インタフェース部20により、鍵生成装置10の第1鍵配信部17から鍵更新処理メッセージを受信する。データ保安装置1010の制御部21は、鍵生成装置10の第1鍵配信部17から受信した鍵更新処理メッセージを記憶部22に格納する。該鍵更新処理メッセージは、自動車1001の各ECU1020に対して共通である。
(ステップS203)データ保安装置1010の第2鍵配信部23は、記憶部22から、鍵更新処理メッセージに含まれる鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)を取得する。第2鍵配信部23は、該鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)を、インタフェース部20によりECU1020に送信する。鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)は、自動車1001の各ECU1020に対して共通である。CAN1030のブロードキャストにより、該鍵更新要求メッセージを送信してもよい。
次いで、ステップS105及びステップS106が実行される。ステップS105及びステップS106は、配信方法の例1と同じである。
配信方法の例3では、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージは、第1更新完了メッセージに対応する。
(ステップS204)ECU1020の制御部41は、インタフェース部40により、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージをデータ保安装置1010に送信する。
(ステップS205)データ保安装置1010の第2鍵配信部23は、ECU1020から受信したMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージを、鍵生成装置10の第1鍵配信部17から受信した鍵更新処理メッセージに含まれるMEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータ、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータ、並びに、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータを使用して検証する。鍵生成装置10の第1鍵配信部17から受信した鍵更新処理メッセージは、記憶部22に格納されている。
第2鍵配信部23は、記憶部22から、鍵更新処理メッセージに含まれるMEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータを取得する。第2鍵配信部23は、MEK鍵K_mek_genの更新完了メッセージに含まれるM4パラメータ及びM5パラメータと、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはMEK鍵の更新が成功である。一方、両者が一致しない場合にはMEK鍵の更新が失敗である。
第2鍵配信部23は、記憶部22から、鍵更新処理メッセージに含まれるMAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータを取得する。第2鍵配信部23は、MAC鍵K_mac_genの更新完了メッセージに含まれるM4パラメータ及びM5パラメータと、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはMAC鍵の更新が成功である。一方、両者が一致しない場合にはMAC鍵の更新が失敗である。
第2鍵配信部23は、記憶部22から、鍵更新処理メッセージに含まれるENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータを取得する。第2鍵配信部23は、ENC鍵K_enc_genの更新完了メッセージに含まれるM4パラメータ及びM5パラメータと、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはENC鍵の更新が成功である。一方、両者が一致しない場合にはENC鍵の更新が失敗である。
なお、第2鍵配信部23は、MEK鍵K_mek_gen、MAC鍵K_mac_gen又はENC鍵K_enc_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS203の各鍵更新要求メッセージのうち、更新失敗の鍵の鍵更新要求メッセージを再送信してもよい。また、第2鍵配信部23は、ステップS203の各鍵更新要求メッセージの送信後から所定時間経過しても、いずれかの更新完了メッセージを受信しない場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS203の各鍵更新要求メッセージのうち、更新完了メッセージを受信しない鍵の鍵更新要求メッセージを再送信してもよい。
また、鍵配信対象の全てのECU1020についてMEK鍵、MAC鍵及びENC鍵の更新が成功してから、ステップS206に処理を進めるようにしてもよい。
(ステップS206)データ保安装置1010の制御部21は、記憶部22から、鍵更新処理メッセージに含まれる鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)を取得する。
制御部21は、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)に含まれるM1パラメータ、M2パラメータ及びM3パラメータをHSM1012に渡して、鍵の更新を要求する。HSM1012の鍵更新部35は、該M1パラメータ、M2パラメータ及びM3パラメータと、記憶部1013に格納されるMEK鍵K_mek_oemとを使用して、MEK鍵K_mek_genの登録を行う。これにより、記憶部1013に格納されるMEK鍵が、MEK鍵K_mek_oemからMEK鍵K_mek_genに更新される。
制御部21は、鍵更新要求メッセージMES_K_mac_oem(K_mac_gen)に含まれるM1パラメータ、M2パラメータ及びM3パラメータをHSM1012に渡して、鍵の更新を要求する。HSM1012の鍵更新部35は、該M1パラメータ、M2パラメータ及びM3パラメータと、記憶部1013に格納されるMAC鍵K_mac_oemとを使用して、MAC鍵K_mac_genの登録を行う。これにより、記憶部1013に格納されるMAC鍵が、MAC鍵K_mac_oemからMAC鍵K_mac_genに更新される。
制御部21は、鍵更新要求メッセージMES_K_enc_oem(K_enc_gen)に含まれるM1パラメータ、M2パラメータ及びM3パラメータをHSM1012に渡して、鍵の更新を要求する。HSM1012の鍵更新部35は、該M1パラメータ、M2パラメータ及びM3パラメータと、記憶部1013に格納されるENC鍵K_enc_oemとを使用して、ENC鍵K_enc_genの登録を行う。これにより、記憶部1013に格納されるENC鍵が、ENC鍵K_enc_oemからENC鍵K_enc_genに更新される。
HSM1012の鍵更新部35は、MEK鍵K_mek_genを使用して、MEK鍵K_mek_genのM4パラメータ及びM5パラメータを生成する。HSM1012は、MEK鍵K_mek_genのM4パラメータ及びM5パラメータを制御部21に渡す。制御部21は、記憶部22から、鍵更新処理メッセージに含まれるMEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータを取得する。制御部21は、HSM1012から受け取ったMEK鍵K_mek_genのM4パラメータ及びM5パラメータと、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはMEK鍵の更新が成功である。一方、両者が一致しない場合にはMEK鍵の更新が失敗である。
HSM1012の鍵更新部35は、MAC鍵K_mac_genを使用して、MAC鍵K_mac_genのM4パラメータ及びM5パラメータを生成する。HSM1012は、MAC鍵K_mac_genのM4パラメータ及びM5パラメータを制御部21に渡す。制御部21は、記憶部22から、鍵更新処理メッセージに含まれるMAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータを取得する。制御部21は、HSM1012から受け取ったMAC鍵K_mac_genのM4パラメータ及びM5パラメータと、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはMAC鍵の更新が成功である。一方、両者が一致しない場合にはMAC鍵の更新が失敗である。
HSM1012の鍵更新部35は、ENC鍵K_enc_genを使用して、ENC鍵K_enc_genのM4パラメータ及びM5パラメータを生成する。HSM1012は、ENC鍵K_enc_genのM4パラメータ及びM5パラメータを制御部21に渡す。制御部21は、記憶部22から、鍵更新処理メッセージに含まれるENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータを取得する。制御部21は、HSM1012から受け取ったENC鍵K_enc_genのM4パラメータ及びM5パラメータと、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはENC鍵の更新が成功である。一方、両者が一致しない場合にはENC鍵の更新が失敗である。
なお、制御部21は、HSM1012のMEK鍵K_mek_gen、MAC鍵K_mac_gen又はENC鍵K_enc_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、鍵の更新の失敗を鍵生成装置10に報告してもよい。また、制御部21は、ECU1020の鍵の更新の失敗を鍵生成装置10に報告してもよい。また、制御部21は、ECU1020及びデータ保安装置1010の鍵の更新の成功を鍵生成装置10に報告してもよい。
なお、データ保安装置1010は、ステップS202の鍵更新処理メッセージの受信以降の任意のタイミングで、ステップS206の鍵の更新を実施してもよい。例えば、データ保安装置1010は、ステップS204の更新完了メッセージの受信以前に、ステップS206の鍵の更新を実施してもよい。
上述した配信方法の例3によれば、同じ自動車1001に搭載される各ECU1020に対して該自動車1001に共通のMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemを予め格納しておくことにより、マスタ鍵Master_Secretと該共通の鍵とから各鍵(第1鍵)の鍵更新要求メッセージ(第1鍵更新要求メッセージ)を生成し、該鍵更新要求メッセージを該各ECU1020に共通に使用して該各ECU1020の鍵の更新を実施することができる。これにより、ECU1020に適用される鍵の配信の効率を向上させる効果が得られる。
また、CAN1030に接続される各ECU1020に対してCAN1030のブロードキャストにより鍵更新要求メッセージを一斉に送信することにより、鍵の配信にかかる時間を短縮することができる。
また、鍵生成装置10とデータ保安装置1010とに処理を分散することにより、鍵生成装置10の処理の負荷を軽減することができる。これにより、例えば、鍵生成装置10が複数の自動車1001に対する鍵の配信処理を実行する場合、処理時間の短縮に寄与することができる。
<配信方法の例4>
図8を参照して本実施形態に係る配信方法の例4を説明する。図8は、本実施形態に係る配信方法の例4を示すシーケンスチャートである。図8において図5及び図6の各ステップに対応する部分には同一の符号を付している。
図8において、鍵生成装置10は、マスタ鍵Master_Secretと、MEK鍵K_mek_oemとを予め記憶部12に格納する。
ある1台の自動車1001に搭載されるデータ保安装置1010と各ECU1020とは、同じMEK鍵K_mek_oemを予め格納する。データ保安装置1010は、MEK鍵K_mek_oemをHSM1012の記憶部1013に格納する。ECU1020は、MEK鍵K_mek_oemをSHE1022の記憶部1023に格納する。データ保安装置1010やECU1020には、例えば、その製造工場でMEK鍵K_mek_oemが格納される。
鍵生成装置10が格納するMEK鍵K_mek_oemと、データ保安装置1010が格納するMEK鍵K_mek_oemと、ECU1020が格納するMEK鍵K_mek_oemとは、同じである。
配信方法の例4では、MEK鍵K_mek_oemは、データ保安装置1010及びECU1020に予め格納される鍵であって、自動車1001の共通の初期鍵である。
鍵生成装置10とデータ保安装置1010との間の通信方法は、配信方法の例3と同じである。データ保安装置1010とECU1020との間の通信方法は、配信方法の例3と同じである。
図8において、ステップS101及びステップS102が実行される。ステップS101及びステップS102は、配信方法の例1と同じである。
配信方法の例4では、MEK鍵K_mek_genは第1鍵に対応し、MAC鍵K_mac_gen及びENC鍵K_enc_genは第2鍵に対応する。
(ステップS201a)鍵生成装置10の第1鍵配信部17は、鍵更新処理メッセージを生成する。該鍵更新処理メッセージは、MEK鍵K_mek_genの鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)と、MAC鍵K_mac_genの鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)と、ENC鍵K_enc_genの鍵更新要求メッセージMES_K_mek_gen(K_enc_gen)と、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータと、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータと、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータと、を含む。各鍵更新要求メッセージは、配信方法の例2と同じである。各比較対象のM4パラメータ及びM5パラメータは、配信方法の例1と同じである。
配信方法の例4では、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)は第1鍵更新要求メッセージに対応する。配信方法の例4では、鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)は、第2鍵更新要求メッセージに対応する。配信方法の例4では、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータは第1検証データに対応する。配信方法の例4では、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータは第2検証データに対応する。配信方法の例4では、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータは第2検証データに対応する。
(ステップS202a)鍵生成装置10の第1鍵配信部17は、鍵更新処理メッセージをデータ保安装置1010に送信する。データ保安装置1010の制御部21は、鍵生成装置10の第1鍵配信部17から受信した鍵更新処理メッセージを記憶部22に格納する。該鍵更新処理メッセージは、自動車1001の各ECU1020に対して共通である。
(ステップS203a)データ保安装置1010の第2鍵配信部23は、記憶部22から、鍵更新処理メッセージに含まれる鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)を取得する。第2鍵配信部23は、該鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)をECU1020に送信する。鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)は、自動車1001の各ECU1020に対して共通である。CAN1030のブロードキャストにより、該鍵更新要求メッセージを送信してもよい。
次いで、ステップS105a及びステップS106aが実行される。ステップS105a及びステップS106aは、配信方法の例2と同じである。
配信方法の例4では、MEK鍵K_mek_genの更新完了メッセージは、第1更新完了メッセージに対応する。
(ステップS204a)ECU1020の制御部41は、インタフェース部40により、MEK鍵K_mek_genの更新完了メッセージをデータ保安装置1010に送信する。
(ステップS205a)データ保安装置1010の第2鍵配信部23は、ECU1020から受信したMEK鍵K_mek_genの更新完了メッセージを、鍵生成装置10の第1鍵配信部17から受信した鍵更新処理メッセージに含まれるMEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータを使用して検証する。鍵生成装置10の第1鍵配信部17から受信した鍵更新処理メッセージは、記憶部22に格納されている。更新完了メッセージの検証方法は、配信方法の例3と同じである。
なお、第2鍵配信部23は、MEK鍵K_mek_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS203aの鍵更新要求メッセージを再送信してもよい。また、第2鍵配信部23は、ステップS203aの鍵更新要求メッセージの送信後から所定時間経過しても更新完了メッセージを受信しない場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS203aの鍵更新要求メッセージを再送信してもよい。
また、鍵配信対象の全てのECU1020についてMEK鍵の更新が成功してから、ステップS206aに処理を進めるようにしてもよい。
(ステップS206a)データ保安装置1010の制御部21は、記憶部22から、鍵更新処理メッセージに含まれる鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)を取得する。
制御部21は、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)に含まれるM1パラメータ、M2パラメータ及びM3パラメータをHSM1012に渡して、鍵の更新を要求する。HSM1012の鍵更新部35は、該M1パラメータ、M2パラメータ及びM3パラメータと、記憶部1013に格納されるMEK鍵K_mek_oemとを使用して、MEK鍵K_mek_genの登録を行う。これにより、記憶部1013に格納されるMEK鍵が、MEK鍵K_mek_oemからMEK鍵K_mek_genに更新される。
HSM1012の鍵更新部35は、MEK鍵K_mek_genを使用して、MEK鍵K_mek_genのM4パラメータ及びM5パラメータを生成する。HSM1012は、MEK鍵K_mek_genのM4パラメータ及びM5パラメータを制御部21に渡す。制御部21は、記憶部22から、鍵更新処理メッセージに含まれるMEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータを取得する。制御部21は、HSM1012から受け取ったMEK鍵K_mek_genのM4パラメータ及びM5パラメータと、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはMEK鍵の更新が成功である。一方、両者が一致しない場合にはMEK鍵の更新が失敗である。
なお、制御部21は、HSM1012のMEK鍵K_mek_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、鍵の更新の失敗を鍵生成装置10に報告してもよい。また、制御部21は、ECU1020の鍵の更新の失敗を鍵生成装置10に報告してもよい。また、制御部21は、ECU1020及びデータ保安装置1010の鍵の更新の成功を鍵生成装置10に報告してもよい。
(ステップS203b)データ保安装置1010の第2鍵配信部23は、記憶部22から、鍵更新処理メッセージに含まれる鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)を取得する。第2鍵配信部23は、該鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)をECU1020に送信する。鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)は、自動車1001の各ECU1020に対して共通である。CAN1030のブロードキャストにより、該鍵更新要求メッセージを送信してもよい。
次いで、ステップS105b及びステップS106bが実行される。ステップS105b及びステップS106bは、配信方法の例2と同じである。
配信方法の例4では、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージは、第2更新完了メッセージに対応する。
(ステップS204b)ECU1020の制御部41は、インタフェース部40により、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージをデータ保安装置1010に送信する。
(ステップS205b)データ保安装置1010の第2鍵配信部23は、ECU1020から受信したMAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージを、鍵生成装置10の第1鍵配信部17から受信した鍵更新処理メッセージに含まれるMAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータ、並びに、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータを使用して検証する。鍵生成装置10の第1鍵配信部17から受信した鍵更新処理メッセージは、記憶部22に格納されている。更新完了メッセージの検証方法は、配信方法の例3と同じである。
なお、第2鍵配信部23は、MAC鍵K_mac_gen又はENC鍵K_enc_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS203bの各鍵更新要求メッセージのうち、更新失敗の鍵の鍵更新要求メッセージを再送信してもよい。また、第2鍵配信部23は、ステップS203bの各鍵更新要求メッセージの送信後から所定時間経過しても、いずれかの更新完了メッセージを受信しない場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS203bの各鍵更新要求メッセージのうち、更新完了メッセージを受信しない鍵の鍵更新要求メッセージを再送信してもよい。
また、鍵配信対象の全てのECU1020についてMAC鍵及びENC鍵の更新が成功してから、ステップS206bに処理を進めるようにしてもよい。
(ステップS206b)データ保安装置1010の制御部21は、記憶部22から、鍵更新処理メッセージに含まれる鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)を取得する。
制御部21は、鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)に含まれるM1パラメータ、M2パラメータ及びM3パラメータをHSM1012に渡して、鍵の更新を要求する。HSM1012の鍵更新部35は、該M1パラメータ、M2パラメータ及びM3パラメータと、記憶部1013に格納されるMEK鍵K_mek_genとを使用して、MAC鍵K_mac_genの登録を行う。これにより、MAC鍵K_mac_genが記憶部1013に格納される。
制御部21は、鍵更新要求メッセージMES_K_mek_gen(K_enc_gen)に含まれるM1パラメータ、M2パラメータ及びM3パラメータをHSM1012に渡して、鍵の更新を要求する。HSM1012の鍵更新部35は、該M1パラメータ、M2パラメータ及びM3パラメータと、記憶部1013に格納されるMEK鍵K_mek_genとを使用して、ENC鍵K_enc_genの登録を行う。これにより、ENC鍵K_enc_genが記憶部1013に格納される。
HSM1012の鍵更新部35は、MAC鍵K_mac_genを使用して、MAC鍵K_mac_genのM4パラメータ及びM5パラメータを生成する。HSM1012は、MAC鍵K_mac_genのM4パラメータ及びM5パラメータを制御部21に渡す。制御部21は、記憶部22から、鍵更新処理メッセージに含まれるMAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータを取得する。制御部21は、HSM1012から受け取ったMAC鍵K_mac_genのM4パラメータ及びM5パラメータと、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはMAC鍵の更新が成功である。一方、両者が一致しない場合にはMAC鍵の更新が失敗である。
HSM1012の鍵更新部35は、ENC鍵K_enc_genを使用して、ENC鍵K_enc_genのM4パラメータ及びM5パラメータを生成する。HSM1012は、ENC鍵K_enc_genのM4パラメータ及びM5パラメータを制御部21に渡す。制御部21は、記憶部22から、鍵更新処理メッセージに含まれるENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータを取得する。制御部21は、HSM1012から受け取ったENC鍵K_enc_genのM4パラメータ及びM5パラメータと、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはENC鍵の更新が成功である。一方、両者が一致しない場合にはENC鍵の更新が失敗である。
なお、制御部21は、HSM1012のMAC鍵K_mac_gen又はENC鍵K_enc_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、鍵の更新の失敗を鍵生成装置10に報告してもよい。また、制御部21は、ECU1020の鍵の更新の失敗を鍵生成装置10に報告してもよい。また、制御部21は、ECU1020及びデータ保安装置1010の鍵の更新の成功を鍵生成装置10に報告してもよい。
なお、データ保安装置1010は、ステップS202aの鍵更新処理メッセージの受信以降の任意のタイミングで、ステップS206a及びS206bの鍵の更新を実施してもよい。例えば、データ保安装置1010は、ステップS204aの更新完了メッセージの受信以前に、ステップS206a及びS206bの鍵の更新を実施してもよい。又は、データ保安装置1010は、ステップS204bの更新完了メッセージの受信以降に、ステップS206a及びS206bの鍵の更新を実施してもよい。
上述した配信方法の例4によれば、同じ自動車1001に搭載される各ECU1020に対して該自動車1001に共通のMEK鍵K_mek_oemを予め格納しておくことにより、マスタ鍵Master_Secretと該共通の鍵とからMEK鍵K_mek_gen(第1鍵)の鍵更新要求メッセージ(第1鍵更新要求メッセージ)を生成し、該鍵更新要求メッセージを該各ECU1020に共通に使用して該各ECU1020のMEK鍵の更新を実施することができる。また、該更新後のMEK鍵K_mek_genを使用して、MAC鍵K_mac_gen(第2鍵)及びENC鍵K_enc_gen(第2鍵)の各鍵更新要求メッセージ(第2鍵更新要求メッセージ)を生成し、該鍵更新要求メッセージを該各ECU1020に共通に使用して該各ECU1020のMAC鍵及びENC鍵の更新を実施することができる。これにより、ECU1020に適用される鍵の配信の効率を向上させる効果が得られる。また、ECU1020に予め格納する自動車1001の共通の初期鍵は、MEK鍵K_mek_oemのみで済む。これにより、例えばECU1020の製造工場においてECU1020の初期鍵の書込みの工程の簡略化に寄与できるという効果が得られる。
また、CAN1030に接続される各ECU1020に対してCAN1030のブロードキャストにより鍵更新要求メッセージを一斉に送信することにより、鍵の配信にかかる時間を短縮することができる。
また、鍵生成装置10とデータ保安装置1010とに処理を分散することにより、鍵生成装置10の処理の負荷を軽減することができる。これにより、例えば、鍵生成装置10が複数の自動車1001に対する鍵の配信処理を実行する場合、処理時間の短縮に寄与することができる。
<配信方法の例5>
図9を参照して本実施形態に係る配信方法の例5を説明する。図9は、本実施形態に係る配信方法の例5を示すシーケンスチャートである。図9において図5の各ステップに対応する部分には同一の符号を付している。
図9において、鍵生成装置10は、マスタ鍵Master_Secretと、MEK鍵K_mek_oemと、MAC鍵K_mac_oemと、ENC鍵K_enc_oemとを予め記憶部12に格納する。
ある1台の自動車1001に搭載されるデータ保安装置1010と各ECU1020とは、配信方法の例3と同様に、同じMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemを予め格納する。データ保安装置1010は、該鍵をHSM1012の記憶部1013に格納する。ECU1020は、該鍵をSHE1022の記憶部1023に格納する。
鍵生成装置10が格納するMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemと、データ保安装置1010が格納するMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemと、ECU1020が格納するMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemとは、同じである。
配信方法の例5では、MEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemは、データ保安装置1010及びECU1020に予め格納される鍵であって、自動車1001の共通の初期鍵である。
鍵生成装置10とデータ保安装置1010との間の通信方法は、配信方法の例3と同じである。データ保安装置1010とECU1020との間の通信方法は、配信方法の例3と同じである。
図9において、ステップS101及びステップS102が実行される。ステップS101及びステップS102は、配信方法の例1と同じである。
配信方法の例5では、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genは、第1鍵に対応する。
(ステップS301)鍵生成装置10の第1鍵配信部17は、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genをデータ保安装置1010に送信する。データ保安装置1010の制御部21は、インタフェース部20により、鍵生成装置10の第1鍵配信部17からMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genを受信する。データ保安装置1010の制御部21は、鍵生成装置10の第1鍵配信部17から受信したMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genをHSM1012に渡して記憶部1013に格納させる。
なお、鍵生成装置10は、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genを暗号化してデータ保安装置1010に送信してもよい。MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの暗号化を行う場合を以下に説明する。
鍵生成装置10の暗号処理部16は、記憶部12に格納されているENC鍵K_enc_oemでMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genを各々暗号化して、暗号化鍵K_enc_oem(K_mek_gen)、K_enc_oem(K_mac_gen)及びK_enc_oem(K_enc_gen)を生成する。第1鍵配信部17は、暗号化鍵K_enc_oem(K_mek_gen)、K_enc_oem(K_mac_gen)及びK_enc_oem(K_enc_gen)をデータ保安装置1010に送信する。データ保安装置1010の制御部21は、インタフェース部20により、鍵生成装置10の第1鍵配信部17から暗号化鍵K_enc_oem(K_mek_gen)、K_enc_oem(K_mac_gen)及びK_enc_oem(K_enc_gen)を受信する。
データ保安装置1010の制御部21は、鍵生成装置10の第1鍵配信部17から受信した暗号化鍵K_enc_oem(K_mek_gen)、K_enc_oem(K_mac_gen)及びK_enc_oem(K_enc_gen)をHSM1012に渡して復号させる。HSM1012の暗号処理部32は、記憶部1013に格納されているENC鍵K_enc_oemで暗号化鍵K_enc_oem(K_mek_gen)、K_enc_oem(K_mac_gen)及びK_enc_oem(K_enc_gen)を各々復号する。HSM1012は、該復号により取得したMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genを記憶部1013に格納する。
なお、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの暗号化に使用される暗号鍵は、上記したENC鍵K_enc_oem以外の他の共通鍵K_comであってもよい。鍵生成装置10とデータ保安装置1010とは、予め、共通鍵K_comを共有しておく。
以上がMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの暗号化を行う場合の説明である。
(ステップS302)データ保安装置1010のHSM1012の配信処理部36は、MEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemを使用して、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)を生成する。各鍵更新要求メッセージは、配信方法の例1と同じである。
配信方法の例5では、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)は、第1鍵更新要求メッセージに対応する。
(ステップS303)データ保安装置1010の第2鍵配信部23は、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)を、インタフェース部20によりECU1020に送信する。鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)は、自動車1001の各ECU1020に対して共通である。CAN1030のブロードキャストにより、該鍵更新要求メッセージを送信してもよい。
次いで、ステップS105及びステップS106が実行される。ステップS105及びステップS106は、配信方法の例1と同じである。
配信方法の例5では、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージは、第1更新完了メッセージに対応する。
(ステップS304)ECU1020の制御部41は、インタフェース部40により、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージをデータ保安装置1010に送信する。データ保安装置1010の制御部21は、インタフェース部20により、ECU1020からMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージを受信する。
(ステップS305)データ保安装置1010の制御部21は、ECU1020から受信したMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージをHSM1012に渡して検証させる。HSM1012の配信処理部36は、該各更新完了メッセージを、鍵生成装置10の第1鍵配信部17から受信したMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genに基づいて検証する。鍵生成装置10の第1鍵配信部17から受信したMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genは、記憶部1013に格納されている。
配信処理部36は、鍵生成装置10の第1鍵配信部17から受信したMEK鍵K_mek_genを使用して、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータを生成する。配信処理部36は、MEK鍵K_mek_genの更新完了メッセージに含まれるM4パラメータ及びM5パラメータと、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはMEK鍵の更新が成功である。一方、両者が一致しない場合にはMEK鍵の更新が失敗である。
配信処理部36は、鍵生成装置10の第1鍵配信部17から受信したMAC鍵K_mac_genを使用して、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータを生成する。配信処理部36は、MAC鍵K_mac_genの更新完了メッセージに含まれるM4パラメータ及びM5パラメータと、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはMAC鍵の更新が成功である。一方、両者が一致しない場合にはMAC鍵の更新が失敗である。
配信処理部36は、鍵生成装置10の第1鍵配信部17から受信したENC鍵K_enc_genを使用して、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータを生成する。配信処理部36は、ENC鍵K_enc_genの更新完了メッセージに含まれるM4パラメータ及びM5パラメータと、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータとを比較し、両者が一致するか否かを判断する。この判断の結果、両者が一致する場合にはENC鍵の更新が成功である。一方、両者が一致しない場合にはENC鍵の更新が失敗である。
なお、データ保安装置1010の第2鍵配信部23は、MEK鍵K_mek_gen、MAC鍵K_mac_gen又はENC鍵K_enc_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS303の各鍵更新要求メッセージのうち、更新失敗の鍵の鍵更新要求メッセージを再送信してもよい。また、第2鍵配信部23は、ステップS303の各鍵更新要求メッセージの送信後から所定時間経過しても、いずれかの更新完了メッセージを受信しない場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS303の各鍵更新要求メッセージのうち、更新完了メッセージを受信しない鍵の鍵更新要求メッセージを再送信してもよい。
また、鍵配信対象の全てのECU1020についてMEK鍵、MAC鍵及びENC鍵の更新が成功してから、ステップS306に処理を進めるようにしてもよい。
(ステップS306)データ保安装置1010の制御部21は、HSM1012に鍵の更新を要求する。HSM1012の鍵更新部35は、記憶部1013に対して、MEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemからMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genへの登録の更新を行う。これにより、記憶部1013に格納されるMEK鍵がMEK鍵K_mek_oemからMEK鍵K_mek_genに更新される。また、記憶部1013に格納されるMAC鍵が、MAC鍵K_mac_oemからMAC鍵K_mac_genに更新される。また、記憶部1013に格納されるENC鍵が、ENC鍵K_enc_oemからENC鍵K_enc_genに更新される。
上述した配信方法の例5によれば、同じ自動車1001に搭載される各ECU1020に対して該自動車1001に共通のMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemを予め格納しておくことにより、マスタ鍵Master_Secretと該共通の鍵とから各鍵(第1鍵)の鍵更新要求メッセージ(第1鍵更新要求メッセージ)を生成し、該鍵更新要求メッセージを該各ECU1020に共通に使用して該各ECU1020の鍵の更新を実施することができる。これにより、ECU1020に適用される鍵の配信の効率を向上させる効果が得られる。
また、CAN1030に接続される各ECU1020に対してCAN1030のブロードキャストにより鍵更新要求メッセージを一斉に送信することにより、鍵の配信にかかる時間を短縮することができる。
また、鍵生成装置10とデータ保安装置1010とに処理を分散することにより、鍵生成装置10の処理の負荷を軽減することができる。これにより、例えば、鍵生成装置10が複数の自動車1001に対する鍵の配信処理を実行する場合、処理時間の短縮に寄与することができる。
<配信方法の例6>
図10を参照して本実施形態に係る配信方法の例6を説明する。図10は、本実施形態に係る配信方法の例6を示すシーケンスチャートである。図10において図5、図6及び図9の各ステップに対応する部分には同一の符号を付している。
図10において、鍵生成装置10は、マスタ鍵Master_Secretと、ENC鍵K_enc_oemとを予め記憶部12に格納する。
ある1台の自動車1001に搭載されるデータ保安装置1010と各ECU1020とは、配信方法の例4と同様に、同じMEK鍵K_mek_oemを予め格納する。
データ保安装置1010は、さらにENC鍵K_enc_oemを予め格納する。データ保安装置1010は、MEK鍵K_mek_oem及びENC鍵K_enc_oemをHSM1012の記憶部1013に格納する。ECU1020は、MEK鍵K_mek_oemをSHE1022の記憶部1023に格納する。
鍵生成装置10が格納するENC鍵K_enc_oemと、データ保安装置1010が格納するENC鍵K_enc_oemとは、同じである。
配信方法の例6では、MEK鍵K_mek_oemは、データ保安装置1010及びECU1020に予め格納される鍵であって、自動車1001の共通の初期鍵である。
鍵生成装置10とデータ保安装置1010との間の通信方法は、配信方法の例3と同じである。データ保安装置1010とECU1020との間の通信方法は、配信方法の例3と同じである。
図10において、ステップS101及びステップS102が実行される。ステップS101及びステップS102は、配信方法の例1と同じである。
配信方法の例6では、MEK鍵K_mek_genは第1鍵に対応し、MAC鍵K_mac_gen及びENC鍵K_enc_genは第2鍵に対応する。
次いで、ステップS301が実行される。ステップS301は、配信方法の例5と同じである。また、配信方法の例5と同様に、鍵生成装置10は、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genを自己のENC鍵K_enc_oemで暗号化してデータ保安装置1010に送信してもよい。この場合、データ保安装置1010は、該暗号化鍵K_enc_oem(K_mek_gen)、K_enc_oem(K_mac_gen)及びK_enc_oem(K_enc_gen)を自己のENC鍵K_enc_oemで復号する。
なお、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの暗号化に使用される暗号鍵は、上記したENC鍵K_enc_oem以外の他の共通鍵K_comであってもよい。鍵生成装置10とデータ保安装置1010とは、予め、共通鍵K_comを共有しておく。
(ステップS302a)データ保安装置1010のHSM1012の配信処理部36は、MEK鍵K_mek_oemを使用して、MEK鍵K_mek_genの鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)を生成する。該鍵更新要求メッセージは、配信方法の例1と同じである。
配信方法の例6では、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)は第1鍵更新要求メッセージに対応する。
(ステップS303a)データ保安装置1010の第2鍵配信部23は、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)を、インタフェース部20によりECU1020に送信する。鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)は、自動車1001の各ECU1020に対して共通である。CAN1030のブロードキャストにより、該鍵更新要求メッセージを送信してもよい。
次いで、ステップS105a及びステップS106aが実行される。ステップS105a及びステップS106aは、配信方法の例2と同じである。
配信方法の例6では、MEK鍵K_mek_genの更新完了メッセージは、第1更新完了メッセージに対応する。
(ステップS304a)ECU1020の制御部41は、インタフェース部40により、MEK鍵K_mek_genの更新完了メッセージをデータ保安装置1010に送信する。データ保安装置1010の制御部21は、インタフェース部20により、ECU1020からMEK鍵K_mek_genの更新完了メッセージを受信する。
(ステップS305a)データ保安装置1010の制御部21は、ECU1020から受信したMEK鍵K_mek_genの更新完了メッセージをHSM1012に渡して検証させる。HSM1012の配信処理部36は、MEK鍵K_mek_genの更新完了メッセージを、鍵生成装置10の第1鍵配信部17から受信したMEK鍵K_mek_genに基づいて検証する。鍵生成装置10の第1鍵配信部17から受信したMEK鍵K_mek_genは、記憶部1013に格納されている。更新完了メッセージの検証方法は、配信方法の例5と同じである。
なお、第2鍵配信部23は、MEK鍵K_mek_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS303aの鍵更新要求メッセージを再送信してもよい。また、第2鍵配信部23は、ステップS303aの鍵更新要求メッセージの送信後から所定時間経過しても更新完了メッセージを受信しない場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS303aの鍵更新要求メッセージを再送信してもよい。
また、鍵配信対象の全てのECU1020についてMEK鍵の更新が成功してから、ステップS306aに処理を進めるようにしてもよい。
(ステップS306a)データ保安装置1010の制御部21は、HSM1012に鍵の更新を要求する。HSM1012の鍵更新部35は、記憶部1013に対して、MEK鍵K_mek_oemからMEK鍵K_mek_genへの登録の更新を行う。これにより、記憶部1013に格納されるMEK鍵がMEK鍵K_mek_oemからMEK鍵K_mek_genに更新される。
(ステップS302b)データ保安装置1010のHSM1012の配信処理部36は、MEK鍵K_mek_genを使用して、MAC鍵K_mac_gen及びENC鍵K_enc_genの各鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)を生成する。該鍵更新要求メッセージは、配信方法の例2と同じである。
(ステップS303b)データ保安装置1010の第2鍵配信部23は、鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)をECU1020に送信する。鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)は、自動車1001の各ECU1020に対して共通である。CAN1030のブロードキャストにより、該鍵更新要求メッセージを送信してもよい。
次いで、ステップS105b及びステップS106bが実行される。ステップS105b及びステップS106bは、配信方法の例2と同じである。
配信方法の例6では、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージは、第2更新完了メッセージに対応する。
(ステップS304b)ECU1020の制御部41は、インタフェース部40により、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージをデータ保安装置1010に送信する。データ保安装置1010の制御部21は、インタフェース部20により、ECU1020からMAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージを受信する。
(ステップS305b)データ保安装置1010の制御部21は、ECU1020から受信したMAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージをHSM1012に渡して検証させる。HSM1012の配信処理部36は、該各更新完了メッセージを、鍵生成装置10の第1鍵配信部17から受信したMAC鍵K_mac_gen及びENC鍵K_enc_genに基づいて検証する。鍵生成装置10の第1鍵配信部17から受信したMAC鍵K_mac_gen及びENC鍵K_enc_genは、記憶部1013に格納されている。更新完了メッセージの検証方法は、配信方法の例5と同じである。
なお、データ保安装置1010の第2鍵配信部23は、MAC鍵K_mac_gen又はENC鍵K_enc_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS303bの各鍵更新要求メッセージのうち、更新失敗の鍵の鍵更新要求メッセージを再送信してもよい。また、第2鍵配信部23は、ステップS303bの各鍵更新要求メッセージの送信後から所定時間経過しても、いずれかの更新完了メッセージを受信しない場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS303bの各鍵更新要求メッセージのうち、更新完了メッセージを受信しない鍵の鍵更新要求メッセージを再送信してもよい。
また、鍵配信対象の全てのECU1020についてMAC鍵及びENC鍵の更新が成功してから、ステップS306bに処理を進めるようにしてもよい。
(ステップS306b)データ保安装置1010の制御部21は、HSM1012に鍵の更新を要求する。HSM1012の鍵更新部35は、記憶部1013に対して、MAC鍵K_mac_genの登録を行う。これにより、MAC鍵K_mac_genが記憶部1013に格納される。また、鍵更新部35は、記憶部1013に対して、ENC鍵K_enc_oemからENC鍵K_enc_genへの登録の更新を行う。これにより、記憶部1013に格納されるENC鍵が、ENC鍵K_enc_oemからENC鍵K_enc_genに更新される。
上述した配信方法の例6によれば、同じ自動車1001に搭載される各ECU1020に対して該自動車1001に共通のMEK鍵K_mek_oemを予め格納しておくことにより、マスタ鍵Master_Secretと該共通の鍵とからMEK鍵K_mek_gen(第1鍵)の鍵更新要求メッセージ(第1鍵更新要求メッセージ)を生成し、該鍵更新要求メッセージを該各ECU1020に共通に使用して該各ECU1020のMEK鍵の更新を実施することができる。また、該更新後のMEK鍵K_mek_genを使用して、MAC鍵K_mac_gen(第2鍵)及びENC鍵K_enc_gen(第2鍵)の各鍵更新要求メッセージ(第2鍵更新要求メッセージ)を生成し、該鍵更新要求メッセージを該各ECU1020に共通に使用して該各ECU1020のMAC鍵及びENC鍵の更新を実施することができる。これにより、ECU1020に適用される鍵の配信の効率を向上させる効果が得られる。また、ECU1020に予め格納する自動車1001の共通の初期鍵は、MEK鍵K_mek_oemのみで済む。これにより、例えばECU1020の製造工場においてECU1020の初期鍵の書込みの工程の簡略化に寄与できるという効果が得られる。
また、CAN1030に接続される各ECU1020に対してCAN1030のブロードキャストにより鍵更新要求メッセージを一斉に送信することにより、鍵の配信にかかる時間を短縮することができる。
また、鍵生成装置10とデータ保安装置1010とに処理を分散することにより、鍵生成装置10の処理の負荷を軽減することができる。これにより、例えば、鍵生成装置10が複数の自動車1001に対する鍵の配信処理を実行する場合、処理時間の短縮に寄与することができる。
<配信方法の例7>
図11、図12を参照して本実施形態に係る配信方法の例7を説明する。図11は、本実施形態に係るデータ保安装置1010の他の構成例を示す図である。図12は、本実施形態に係る配信方法の例7を示すシーケンスチャートである。図11において図3の各部に対応する部分には同一の符号を付している。図12において図5及び図9の各ステップに対応する部分には同一の符号を付している。
配信方法の例7では、図11に示すように、データ保安装置1010のHSM1012は、さらに鍵生成部37を備える。鍵生成部37は、鍵生成装置10の鍵生成部15と同様の鍵生成機能を備える。
図12において、データ保安装置1010のHSM1012は、マスタ鍵Master_Secretと、MEK鍵K_mek_oemと、MAC鍵K_mac_oemと、ENC鍵K_enc_oemとを予め記憶部1013に格納する。
ある1台の自動車1001に搭載されるデータ保安装置1010と各ECU1020とは、配信方法の例3と同様に、同じMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemを予め格納する。ECU1020は、該鍵をSHE1022の記憶部1023に格納する。
配信方法の例7では、MEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemは、データ保安装置1010及びECU1020に予め格納される鍵であって、自動車1001の共通の初期鍵である。
データ保安装置1010とECU1020との間の通信方法は、配信方法の例3と同じである。
(ステップS401)データ保安装置1010の制御部21は、自データ保安装置1010が搭載される自動車1001の車両識別番号VINを取得する。自動車1001の車両識別番号VINは、予めデータ保安装置1010に格納されてもよく、又は、ECU1020に鍵を配信する要求があった時にデータ保安装置1010に格納されてもよい。例えば、配信方法の例1で説明したのと同様に、自動車1001のエンジン制御機能を有するECU1020が該自動車1001の車両識別番号VINを格納している場合、該ECU1020の起動後に該ECU1020からデータ保安装置1010に該自動車1001の車両識別番号VINを通知してもよい。又は、自動車1001の車両識別番号VINは、例えば自動車1001の自動車製造会社で管理されている車両識別番号VINがデータ保安装置1010に供給されてもよい。
(ステップS402)データ保安装置1010において、制御部21は、自動車1001の車両識別番号VINをHSM1012に渡してメッセージの生成を要求する。HSM1012は、制御部21からのメッセージの生成の要求に応じて、ステップS403、S404及びS405を実行する。
(ステップS403)HSM1012の鍵生成部37は、制御部21から受け取った自動車1001の車両識別番号VINを使用して鍵の生成を行う。この鍵の生成は、配信方法の例1のステップS102と同様である。鍵生成部37は、配信方法の例1のステップS102と同様の鍵生成方法により、MEK鍵K_mek_genとMAC鍵K_mac_genとENC鍵K_enc_genとを生成する。該MEK鍵K_mek_genとMAC鍵K_mac_genとENC鍵K_enc_genとは、データ保安装置1010が搭載される自動車1001に搭載される各ECU1020に共通である。記憶部1013は、該MEK鍵K_mek_genとMAC鍵K_mac_genとENC鍵K_enc_genとを格納する。
配信方法の例7では、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genは、第1鍵に対応する。
(ステップS404)HSM1012の配信処理部36は、鍵更新処理メッセージを生成する。該鍵更新処理メッセージは、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)と、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータと、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータと、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータと、を含む。各鍵更新要求メッセージ並びに各比較対象のM4パラメータ及びM5パラメータは、配信方法の例1と同じである。
配信方法の例7では、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)は、第1鍵更新要求メッセージに対応する。配信方法の例7では、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータは第1検証データに対応し、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータは第1検証データに対応し、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータは第1検証データに対応する。
(ステップS405)HSM1012は、鍵更新処理メッセージを制御部21に送付する。制御部21は、該鍵更新処理メッセージを記憶部22に格納する。
次いで、ステップS303、ステップS105、ステップS106及びステップS304が実行される。ステップS105及びステップS106は、配信方法の例1と同じである。ステップS303及びステップS304は、配信方法の例5と同じである。なお、ステップS303において、第2鍵配信部23は、記憶部22から、鍵更新処理メッセージに含まれる鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)を取得する。
配信方法の例7では、MEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージは、第1更新完了メッセージに対応する。
(ステップS406)データ保安装置1010の第2鍵配信部23は、ECU1020から受信したMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージを、HSM1012から受信した鍵更新処理メッセージに含まれるMEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータ、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータ、並びに、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータを使用して検証する。HSM1012から受信した鍵更新処理メッセージは、記憶部22に格納されている。各更新完了メッセージの検証方法は、配信方法の例3のステップS205と同じである。
なお、第2鍵配信部23は、MEK鍵K_mek_gen、MAC鍵K_mac_gen又はENC鍵K_enc_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS303の各鍵更新要求メッセージのうち、更新失敗の鍵の鍵更新要求メッセージを再送信してもよい。また、第2鍵配信部23は、ステップS303の各鍵更新要求メッセージの送信後から所定時間経過しても、いずれかの更新完了メッセージを受信しない場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS303の各鍵更新要求メッセージのうち、更新完了メッセージを受信しない鍵の鍵更新要求メッセージを再送信してもよい。
また、鍵配信対象の全てのECU1020についてMEK鍵、MAC鍵及びENC鍵の更新が成功してから、ステップS407に処理を進めるようにしてもよい。
(ステップS407)データ保安装置1010の制御部21は、HSM1012に鍵の更新を要求する。HSM1012は、制御部21からの鍵の更新の要求に応じて、ステップS408及びS409を実行する。
(ステップS408)HSM1012の鍵更新部35は、記憶部1013に対して、MEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemからMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genへの登録の更新を行う。これにより、記憶部1013に格納されるMEK鍵が、MEK鍵K_mek_oemからMEK鍵K_mek_genに更新される。また、記憶部1013に格納されるMAC鍵が、MAC鍵K_mac_oemからMAC鍵K_mac_genに更新される。また、記憶部1013に格納されるENC鍵が、ENC鍵K_enc_oemからENC鍵K_enc_genに更新される。
なお、HSM1012の鍵更新部35は、ステップS105のSHE1022の鍵の更新と同様に、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)に各々含まれるM1パラメータ、M2パラメータ及びM3パラメータと、記憶部1013に格納されるMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemとを使用して、記憶部1013に対して、MEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemからMEK鍵K_mek_gen、MAC鍵K_mac_gen及びENC鍵K_enc_genへの登録の更新を行ってもよい。鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)、MES_K_mac_oem(K_mac_gen)及びMES_K_enc_oem(K_enc_gen)は、制御部21からHSM1012に渡してもよく、又は、HSM1012の記憶部1013に格納しておいてもよい。
(ステップS409)HSM1012は、記憶部1013の各鍵の更新が完了すると、鍵の更新の完了を制御部21に応答する。
上述した配信方法の例7によれば、同じ自動車1001に搭載される各ECU1020に対して該自動車1001に共通のMEK鍵K_mek_oem、MAC鍵K_mac_oem及びENC鍵K_enc_oemを予め格納しておくことにより、マスタ鍵Master_Secretと該共通の鍵とから各鍵(第1鍵)の鍵更新要求メッセージ(第1鍵更新要求メッセージ)を生成し、該鍵更新要求メッセージを該各ECU1020に共通に使用して該各ECU1020の鍵の更新を実施することができる。これにより、ECU1020に適用される鍵の配信の効率を向上させる効果が得られる。
また、CAN1030に接続される各ECU1020に対してCAN1030のブロードキャストにより鍵更新要求メッセージを一斉に送信することにより、鍵の配信にかかる時間を短縮することができる。
また、データ保安装置1010に鍵生成機能を統合することにより、鍵生成装置10をデータ保安装置1010とは別に設ける場合に比して処理の効率化を図ることができる。
<配信方法の例8>
図13を参照して本実施形態に係る配信方法の例8を説明する。図13は、本実施形態に係る配信方法の例8を示すシーケンスチャートである。図13において図6、図10及び図12の各ステップに対応する部分には同一の符号を付している。
配信方法の例8では、配信方法の例7と同様に、図11に示すデータ保安装置10が適用される。
図13において、データ保安装置1010のHSM1012は、マスタ鍵Master_Secretと、MEK鍵K_mek_oemとを予め記憶部1013に格納する。
ある1台の自動車1001に搭載されるデータ保安装置1010と各ECU1020とは、配信方法の例4と同様に、同じMEK鍵K_mek_oemを予め格納する。ECU1020は、該鍵をSHE1022の記憶部1023に格納する。
配信方法の例8では、MEK鍵K_mek_oemは、データ保安装置1010及びECU1020に予め格納される鍵であって、自動車1001の共通の初期鍵である。
データ保安装置1010とECU1020との間の通信方法は、配信方法の例3と同じである。
図13において、ステップS401、S402及びS403が実行される。ステップS401、S402及びS403は、配信方法の例7と同じである。
配信方法の例8では、MEK鍵K_mek_genは第1鍵に対応し、MAC鍵K_mac_gen及びENC鍵K_enc_genは第2鍵に対応する。
(ステップS404a)HSM1012の配信処理部36は、鍵更新処理メッセージを生成する。該鍵更新処理メッセージは、MEK鍵K_mek_genの鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)と、MAC鍵K_mac_genの鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)と、ENC鍵K_enc_genの鍵更新要求メッセージMES_K_mek_gen(K_enc_gen)と、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータと、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータと、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータと、を含む。各鍵更新要求メッセージは、配信方法の例2と同じである。各比較対象のM4パラメータ及びM5パラメータは、配信方法の例1と同じである。
配信方法の例8では、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)は第1鍵更新要求メッセージに対応する。配信方法の例8では、鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)は、第2鍵更新要求メッセージに対応する。配信方法の例8では、MEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータは第1検証データに対応する。配信方法の例8では、MAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータは第2検証データに対応する。配信方法の例8では、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータは第2検証データに対応する。
(ステップS405a)HSM1012は、鍵更新処理メッセージを制御部21に送付する。制御部21は、該鍵更新処理メッセージを記憶部22に格納する。
次いで、ステップS303a、ステップS105a、ステップS106a及びステップS304aが実行される。ステップS105a及びステップS106aは、配信方法の例2と同じである。ステップS303a及びステップS304aは、配信方法の例6と同じである。なお、ステップS303aにおいて、第2鍵配信部23は、記憶部22から、鍵更新処理メッセージに含まれる鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)を取得する。
配信方法の例8では、MEK鍵K_mek_genの更新完了メッセージは、第1更新完了メッセージに対応する。
(ステップS406a)データ保安装置1010の第2鍵配信部23は、ECU1020から受信したMEK鍵K_mek_genの更新完了メッセージを、HSM1012から受信した鍵更新処理メッセージに含まれるMEK鍵K_mek_genの比較対象のM4パラメータ及びM5パラメータを使用して検証する。HSM1012から受信した鍵更新処理メッセージは、記憶部22に格納されている。該更新完了メッセージの検証方法は、配信方法の例3のステップS205と同じである。
なお、第2鍵配信部23は、MEK鍵K_mek_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS303aの鍵更新要求メッセージを再送信してもよい。また、第2鍵配信部23は、ステップS303aの鍵更新要求メッセージの送信後から所定時間経過しても更新完了メッセージを受信しない場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS303aの鍵更新要求メッセージを再送信してもよい。
また、鍵配信対象の全てのECU1020についてMEK鍵の更新が成功してから、ステップS407aに処理を進めるようにしてもよい。
(ステップS407a)データ保安装置1010の制御部21は、HSM1012に第1鍵更新要求を行う。HSM1012は、制御部21からの第1鍵更新要求に応じて、ステップS408a及びS409aを実行する。
(ステップS408a)HSM1012の鍵更新部35は、記憶部1013に対して、MEK鍵K_mek_oemからMEK鍵K_mek_genへの登録の更新を行う。これにより、記憶部1013に格納されるMEK鍵が、MEK鍵K_mek_oemからMEK鍵K_mek_genに更新される。
なお、HSM1012の鍵更新部35は、ステップS105aのSHE1022の鍵の更新と同様に、鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)に含まれるM1パラメータ、M2パラメータ及びM3パラメータと、記憶部1013に格納されるMEK鍵K_mek_oemとを使用して、記憶部1013に対して、MEK鍵K_mek_oemからMEK鍵K_mek_genへの登録の更新を行ってもよい。鍵更新要求メッセージMES_K_mek_oem(K_mek_gen)は、制御部21からHSM1012に渡してもよく、又は、HSM1012の記憶部1013に格納しておいてもよい。
(ステップS409a)HSM1012は、記憶部1013のMEK鍵の更新が完了すると、第1鍵更新完了を制御部21に応答する。
次いで、ステップS303b、ステップS105b、ステップS106b及びステップS304bが実行される。ステップS105b及びステップS106bは、配信方法の例2と同じである。ステップS303b及びステップS304bは、配信方法の例6と同じである。なお、ステップS303bにおいて、第2鍵配信部23は、記憶部22から、鍵更新処理メッセージに含まれる鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)を取得する。
配信方法の例8では、MAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージは、第2更新完了メッセージに対応する。
(ステップS406b)データ保安装置1010の第2鍵配信部23は、ECU1020から受信したMAC鍵K_mac_gen及びENC鍵K_enc_genの各更新完了メッセージを、HSM1012から受信した鍵更新処理メッセージに含まれるMAC鍵K_mac_genの比較対象のM4パラメータ及びM5パラメータ、並びに、ENC鍵K_enc_genの比較対象のM4パラメータ及びM5パラメータを使用して検証する。HSM1012から受信した鍵更新処理メッセージは、記憶部22に格納されている。各更新完了メッセージの検証方法は、配信方法の例3のステップS205と同じである。
なお、データ保安装置1010の第2鍵配信部23は、MAC鍵K_mac_gen又はENC鍵K_enc_genの更新が失敗である場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS303bの各鍵更新要求メッセージのうち、更新失敗の鍵の鍵更新要求メッセージを再送信してもよい。また、第2鍵配信部23は、ステップS303bの各鍵更新要求メッセージの送信後から所定時間経過しても、いずれかの更新完了メッセージを受信しない場合、所定のエラー処理を実行してもよい。該所定のエラー処理として、ステップS303bの各鍵更新要求メッセージのうち、更新完了メッセージを受信しない鍵の鍵更新要求メッセージを再送信してもよい。
また、鍵配信対象の全てのECU1020についてMAC鍵及びENC鍵の更新が成功してから、ステップS407bに処理を進めるようにしてもよい。
(ステップS407b)データ保安装置1010の制御部21は、HSM1012に第2鍵更新要求を行う。HSM1012は、制御部21からの第2鍵更新要求に応じて、ステップS408b及びS409bを実行する。
(ステップS408b)HSM1012の鍵更新部35は、記憶部1013に対して、MAC鍵K_mac_genの登録を行う。これにより、MAC鍵K_mac_genが記憶部1013に格納される。また、鍵更新部35は、記憶部1013に対して、ENC鍵K_enc_genの登録を行う。これにより、ENC鍵K_enc_genが記憶部1013に格納される。
なお、HSM1012の鍵更新部35は、ステップS105bのSHE1022の鍵の更新と同様に、鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)に各々含まれるM1パラメータ、M2パラメータ及びM3パラメータと、記憶部1013に格納されるMEK鍵K_mek_genとを使用して、記憶部1013に対して、MAC鍵K_mac_oem及びENC鍵K_enc_oemからMAC鍵K_mac_gen及びENC鍵K_enc_genへの登録の更新を行ってもよい。鍵更新要求メッセージMES_K_mek_gen(K_mac_gen)及びMES_K_mek_gen(K_enc_gen)は、制御部21からHSM1012に渡してもよく、又は、HSM1012の記憶部1013に格納しておいてもよい。
(ステップS409b)HSM1012は、記憶部1013のMAC鍵及びENC鍵の登録が完了すると、第2鍵更新完了を制御部21に応答する。
上述した配信方法の例8によれば、同じ自動車1001に搭載される各ECU1020に対して該自動車1001に共通のMEK鍵K_mek_oemを予め格納しておくことにより、マスタ鍵Master_Secretと該共通の鍵とからMEK鍵K_mek_gen(第1鍵)の鍵更新要求メッセージ(第1鍵更新要求メッセージ)を生成し、該鍵更新要求メッセージを該各ECU1020に共通に使用して該各ECU1020のMEK鍵の更新を実施することができる。また、該更新後のMEK鍵K_mek_genを使用して、MAC鍵K_mac_gen(第2鍵)及びENC鍵K_enc_gen(第2鍵)の各鍵更新要求メッセージ(第2鍵更新要求メッセージ)を生成し、該鍵更新要求メッセージを該各ECU1020に共通に使用して該各ECU1020のMAC鍵及びENC鍵の更新を実施することができる。これにより、ECU1020に適用される鍵の配信の効率を向上させる効果が得られる。また、ECU1020に予め格納する自動車1001の共通の初期鍵は、MEK鍵K_mek_oemのみで済む。これにより、例えばECU1020の製造工場においてECU1020の初期鍵の書込みの工程の簡略化に寄与できるという効果が得られる。
また、CAN1030に接続される各ECU1020に対してCAN1030のブロードキャストにより鍵更新要求メッセージを一斉に送信することにより、鍵の配信にかかる時間を短縮することができる。
また、データ保安装置1010に鍵生成機能を統合することにより、鍵生成装置10をデータ保安装置1010とは別に設ける場合に比して処理の効率化を図ることができる。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
上述した実施形態では、データ保安装置1010やECU1020にHSMやSHEを使用したが、HSM及びSHE以外の暗号処理チップを使用してもよい。データ保安装置1010に対して、例えば「TPM(Trusted Platform Module)f」と呼ばれる暗号処理チップを使用してもよい。TPMfは耐タンパー性を有する。TPMfはセキュアエレメントの例である。ECU1020に対して、例えば「TPMt」と呼ばれる暗号処理チップを使用してもよい。TPMtは耐タンパー性を有する。TPMtはセキュアエレメントの例である。
上述した実施形態は、例えば、自動車の製造工場や整備工場、販売店等において、自動車1001に適用してもよい。
上述した実施形態では、車両として自動車を例に挙げたが、原動機付自転車や鉄道車両等の自動車以外の他の車両にも適用可能である。
また、上述した各装置の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。