JP2018110355A - システム及び情報の書込方法 - Google Patents

システム及び情報の書込方法 Download PDF

Info

Publication number
JP2018110355A
JP2018110355A JP2017000740A JP2017000740A JP2018110355A JP 2018110355 A JP2018110355 A JP 2018110355A JP 2017000740 A JP2017000740 A JP 2017000740A JP 2017000740 A JP2017000740 A JP 2017000740A JP 2018110355 A JP2018110355 A JP 2018110355A
Authority
JP
Japan
Prior art keywords
key
ciphertext
information
message
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017000740A
Other languages
English (en)
Other versions
JP6697404B2 (ja
Inventor
恒太 井手口
Kota Ideguchi
恒太 井手口
信 萱島
Makoto Kayashima
信 萱島
伸義 森田
Nobuyoshi Morita
伸義 森田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2017000740A priority Critical patent/JP6697404B2/ja
Publication of JP2018110355A publication Critical patent/JP2018110355A/ja
Application granted granted Critical
Publication of JP6697404B2 publication Critical patent/JP6697404B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】装置の製造を管理する工場鍵管理サーバ及び設定情報を管理するセンタ鍵管理サーバを備えるシステムにおいて、セキュアな情報の書込処理を実現し、かつ、装置を製造するシステム内で情報の書込処理の成否を検証する。【解決手段】センタ鍵管理サーバは、装置及びセンタ鍵管理サーバによって共有される鍵情報を格納し、鍵情報を用いて設定情報を暗号化した第1の暗号文を含む第1のメッセージを生成して、工場鍵管理サーバを介して装置に送信し、鍵情報を用いて設定情報に含まれる一部のデータを暗号化した第2の暗号文を含む第2のメッセージを生成して、第1の計算機に送信する。工場鍵管理サーバは、設定情報を格納した装置から、鍵情報を用いて設定情報に含まれる一部の情報を暗号化した第3の暗号文を含む第3のメッセージを受信し、第2のメッセージ及び第3のメッセージを比較することによって、設定情報の書込処理が成功したか否かを検証する。【選択図】図1

Description

本発明は、装置への鍵の書込処理を実行するシステムに関する。
自動車の車載機器等のモジュールが、サーバと安全に通信をするためには、車載機器がサーバと秘密情報を共有することが必要になる。車載機器及びサーバは、共有する秘密情報を鍵として用いて、暗号通信により安全に通信を行うことができる。
共有する鍵は、製造工場で車載機器に書き込むことができる。例えば、製造工場で車載機器に鍵を書き込む技術として、特許文献1に記載の技術が知られている。
特許文献1には、「秘密鍵登録システムは、電子キー2として、例えばマスターキーや複数のサブキーを車両に登録する際に使用するシステムである。外部センター200は、登録に必要な情報である車載器センター鍵22及び電子キーセンター鍵23を内部センター20に配信する。内部センター20は、乱数生成器31により秘密鍵を生成する。内部センター20は、生成した秘密鍵を車載器センター鍵22及び電子キーセンター鍵23で暗号化処理し、当該処理した秘密鍵を車両及び電子キー2へ配信する。」ことが記載されている。
また、車載機器への鍵の書き込み方法として、非特許文献1の方法が知られている。非特許文献1には、鍵の生成者が、鍵を暗号化したメッセージを生成し、メッセージを復号せずにモジュールに送り、また、モジュールが、内部で鍵を復号し、当該鍵を書き込むことが記載されている。また、非特許文献1には、モジュールが検証用メッセージを出力し、鍵の生成者は検証用メッセージに基づいて、鍵が書き込まれたか否かを検証することを確認することが記載されている。非特許文献1に記載の技術を用いることによって、セキュアに鍵をモジュールに書き込むことができる。
特開2013−234519号公報
Himanshu Singhal, Pradip Singh, "SHE on MPC5746C/MPC5748G," Freescale Semiconductor, Inc., 2015.
自動車等の製品の製造工程においては、自動車メーカーが自動車のモジュールを製造するとは限らず、サプライヤが自動車のモジュールを製造し、自動車メーカーに当該モジュールを供給する場合がある。モジュールに書き込む鍵は、利用者以外には開示されないことが望ましい。しかし、サプライヤのモジュール製造工場において、自動車メーカーが生成した鍵をモジュールに書き込む場合、特許文献1の方法では、鍵をサプライヤ製造工場に配布する必要があるため、サプライヤに鍵が開示される可能性がある。
非特許文献1の方法を用いれば、サプライヤに鍵が開示される可能性はない。しかし、サプライヤは、モジュールに正しく鍵が書き込まれたことを確認するために、サプライヤのシステムと自動車メーカーのシステムとを接続し、モジュールが出力する検証用メッセージを自動車メーカーに送信する必要がある。
前述のシステム構成では、サプライヤは、自動車メーカーによる検証結果を待つ必要があり、検証結果を受け取るまで製造ラインの停止等させる必要がある。また、モジュールの製造を行った後に検証結果を受け取る場合、鍵の書込処理のエラーに伴うモジュールの回収及びモジュールの再設定等を行う必要がある。したがって、前述のシステム構成では、モジュールの製造ラインの安定性を低下させる要因となり、モジュールの製造コストを増加させる。
本発明は、モジュール等の装置へのセキュアな情報の書込みを実現するとともに、装置を製造するシステム内で情報の書込処理の成否を検証することできるシステムを提供することを目的とする。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、装置の製造を管理する第1の計算機、及び前記第1の計算機に接続され、前記装置に設定する設定情報を管理する第2の計算機を備えるシステムであって、前記第1の計算機は、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、及び前記第1のプロセッサに接続される第1のネットワークインタフェースを有し、前記第2の計算機は、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、及び前記第2のプロセッサに接続される第2のネットワークインタフェースを有し、前記第2のメモリは、前記装置及び前記第2の計算機によって共有され、暗号化処理及び復号処理に使用する鍵情報を格納し、前記第2のプロセッサは、前記鍵情報を用いて前記設定情報を暗号化した第1の暗号文を含む第1のメッセージを生成して、前記第1の計算機を介して前記装置に送信し、前記鍵情報を用いて前記設定情報に含まれる一部のデータを暗号化した第2の暗号文を含む第2のメッセージを生成して、前記第1の計算機に送信し、前記第1のプロセッサは、前記第1の暗号文を復号化することによって取得された前記設定情報を格納した前記装置から、前記鍵情報を用いて前記設定情報に含まれる一部の情報を暗号化した第3の暗号文を含む第3のメッセージを受信し、前記第2のメッセージ及び前記第3のメッセージを比較することによって、前記設定情報の書込処理が成功したか否かを検証することを特徴とする。
本発明によれば、第2の計算機は、第1の計算機に秘匿した状態で、装置に鍵等の設定情報を書き込むことができ、また、第1の計算機は、第2の計算機に問い合わせることなく設定情報の書込処理の成否を検証できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
実施例1のシステムの構成例を示す図である。 実施例1のセンタ鍵管理サーバのハードウェア構成及びソフトウェア構成の一例を示す図である。 実施例1の工場鍵管理サーバのハードウェア構成及びソフトウェア構成の一例を示す図である。 実施例1の製造ライン端末のハードウェア構成及びソフトウェア構成の一例を示す図である。 実施例1の装置のハードウェア構成及びソフトウェア構成の一例を示す図である。 実施例1の装置鍵情報の一例を示す図である。 実施例1の第1の鍵管理メッセージ情報の一例を示す図である。 実施例1の鍵書込工程の概要を説明するフローチャートである。 実施例1の鍵書込工程における処理の流れを説明するシーケンス図である。 実施例1の鍵書込工程における処理の流れを説明するシーケンス図である。 実施例1のセンタ鍵管理サーバが実行するメッセージ生成処理の一例を説明するフローチャートである。 実施例1の装置が実行するアプリケーション鍵の書込処理の一例を説明するフローチャートである。 実施例1の装置が実行する検証用メッセージ生成処理の一例を説明するフローチャートである。 実施例1の工場鍵管理サーバが実行するアプリケーション鍵の書込処理の検証処理の一例を説明するフローチャートである。 実施例1のセンタ鍵管理サーバが実行するアプリケーション鍵の書込処理の検証処理の一例を説明するフローチャートである。 実施例2の装置鍵情報の一例を示す図である。 実施例2の第1の鍵管理メッセージ情報の一例を示す図である。
以下、本発明の実施例について図面を参照して詳細に説明する。各図において共通の構成には同一の参照符号が付されている。
図1は、実施例1のシステムの構成例を示す図である。
実施例1のシステムは、センタ鍵管理サーバ100、工場鍵管理サーバ110、製造ライン端末120、及び装置130から構成される。なお、工場鍵管理サーバ110、製造ライン端末120、及び装置130は、製造工場に含まれる構成である。また、拠点とセンタ鍵管理サーバ100を含むシステムは、異なるシステムを構成する。
センタ鍵管理サーバ100及び工場鍵管理サーバ110は、第1のネットワーク150を介して接続される。工場鍵管理サーバ110及び製造ライン端末120は、第2のネットワーク160を介して接続される。また、製造ライン端末120及び装置130は、第3のネットワーク170を介して接続される。
第1のネットワーク150、第2のネットワーク160、及び第3のネットワーク170は、例えば、WAN(Wide Area Network)及びLAN(Local Area Network)等が考えられる。なお、本実施例は、ネットワークの種別及び接続方式(有線又は無線)に限定されない。
本実施例では、センタ鍵管理サーバ100は、オンプレミスなものとして記載しているが、クラウドシステムを用いてセンタ鍵管理サーバ100を実現してもよい。本実施例では、工場鍵管理サーバ110及び製造ライン端末120を別々の装置として記載しているが、各計算機が有する機能を一つの計算機にまとめてもよい。
本実施例では、装置130の製造工程において、製造工場の外部に設置されたセンタ鍵管理サーバ100によって発行されたアプリケーション鍵を書き込む鍵書込工程を例に説明する。
装置130は、製造工場において生産される車載機器等の部品(モジュール)である。センタ鍵管理サーバ100は、装置130に書込む鍵を生成する。工場鍵管理サーバ110は、製造工場全体を管理する。また、工場鍵管理サーバ110は、センタ鍵管理サーバ100によって生成された鍵を受信し、製造ライン端末120を介して、装置130に当該鍵を送信する。製造ライン端末120は、工場鍵管理サーバ110及び装置130の間を中継する端末である。
図2は、実施例1のセンタ鍵管理サーバ100のハードウェア構成及びソフトウェア構成の一例を示す図である。
センタ鍵管理サーバ100は、ハードウェアとして、プロセッサ201、メモリ202、記憶装置203、ネットワークインタフェース204、及びI/Oインタフェース205を有する。各構成は、バス等を介して接続される。
プロセッサ201は、メモリ202に格納されるプログラムを実行する。プロセッサ201がプログラムにしたがって処理を実行することによって所定の機能を有するモジュールとして動作する。以下の説明では、モジュールを主語に説明する場合、プロセッサ201が当該モジュールを実現するプログラムを実行していることを示す。
メモリ202は、プロセッサ201が実行するプログラム及び当該プログラムが使用する情報を格納する。また、メモリ202は、ワークエリア等の記憶領域を含む。メモリ202に格納されるプログラムについては後述する。
記憶装置203は、データを永続的に格納する。記憶装置203は、例えば、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等が考えられる。記憶装置203に格納されるデータについては後述する。
ネットワークインタフェース204は、ネットワークを介して外部の装置と通信するためのインタフェースである。本実施例では、センタ鍵管理サーバ100は、ネットワークインタフェース204を介して第1のネットワーク150に接続する。
I/Oインタフェース205は、入力装置206及び出力装置207等の外部装置と接続するためのインタフェースである。なお、入力装置206は、キーボード、マウス、及びタッチパネル等を含み、また、出力装置207は、ディスプレイ及びタッチパネル等を含む。
センタ鍵管理サーバ100のメモリ202は、制御モジュール210を実現するプログラムを格納する。
制御モジュール210は、センタ鍵管理サーバ100全体を制御する。また、制御モジュール210は、データの暗号化処理及び復号処理を実行する。なお、本実施例では、共通鍵暗号方式にしたがった暗号化処理及び復号処理が実行されるものとする。
制御モジュール210は、鍵生成モジュール211、第1の暗号化モジュール212、第1のMAC生成モジュール213、第2の復号モジュール214、第2のMAC検証モジュール215、鍵導出モジュール226、及び第2の暗号化モジュール217を含む。なお、制御モジュール210は、鍵生成モジュール211、第1の暗号化モジュール212、第1のMAC生成モジュール213、第2の復号モジュール214、第2のMAC検証モジュール215、鍵導出モジュール226、及び第2の暗号化モジュール217を一つの暗号演算モジュールとして含んでもよい。
鍵生成モジュール211は、暗号化等に使用する鍵として、ランダムなビット列を生成する。
第1の暗号化モジュール212は、共通鍵暗号方式の鍵を用いて平文を暗号化することによって暗号文を生成する。具体的には、第1の暗号化モジュール212は、式(1)に示すように、共通鍵暗号方式の鍵及び平文を変数とする第1の暗号化関数Enc1を用いて暗号文を算出する。
Figure 2018110355
ここで、kは共通鍵暗号方式の鍵を表し、pは平文を表し、また、cは暗号文を表す。
第1のMAC生成モジュール213は、共通鍵暗号方式の鍵を用いてMAC生成対象データのMAC値を生成する。具体的には、第1のMAC生成モジュール213は、式(2)に示すように、共通鍵暗号方式の鍵及びMAC生成対象データを変数とする第1のMAC生成関数GenMAC1を用いてMAC値を算出する。
Figure 2018110355
ここで、mはMAC生成対象データを表し、tはMAC値を表す。
第2の復号モジュール214は、共通鍵暗号方式の鍵を用いて暗号文を復号することによって平文を生成する。具体的には、第2の復号モジュール214は、式(3)に示すように、共通鍵暗号方式の鍵及び暗号文を変数とする第2の復号関数Dec2を用いて平文を算出する。
Figure 2018110355
第2のMAC検証モジュール215は、共通鍵暗号方式の鍵を用いて、MAC対象データ及びMAC値の組の正当性を検証する。具体的には、第2のMAC検証モジュール215は、式(4)に示すように、共通鍵暗号方式の鍵、MAC対象データ、及びMAC値を変数とする第2のMAC検証関数VerifyMAC2を用いてMAC値の検証を行う。
Figure 2018110355
ここで、vは検証結果を表す。なお、算出結果vは「0」又は「1」のいずれかとなる。「0」は失敗を示し、「1」は成功を示す。
鍵導出モジュール216は、共通鍵暗号方式のオリジナル鍵及び付加データを用いて導出鍵を生成する。具体的には、鍵導出モジュール216は、式(5)に示すように、共通鍵暗号方式の鍵のオリジナル鍵及び付加データを変数とする鍵導出関数KDFを用いて導出鍵を算出する。
Figure 2018110355
ここで、kは共通鍵暗号方式の鍵のオリジナル鍵を表し、Dataは付加データを表し、また、k_derivedは導出鍵を表す。
第2の暗号化モジュール217は、共通鍵暗号方式の鍵を用いて平文を暗号化することによって暗号文を生成する。第2の暗号化モジュール217は、第1の暗号化モジュール212と同様の機能であるが、暗号化に使用する関数が異なる。なお、第2の暗号化モジュール217は後述する第2の暗号化モジュール514と同一のものであるため、第2の暗号化モジュール217が使用する関数については、装置130の構成の説明において示す。
センタ鍵管理サーバ100の記憶装置203は、装置鍵情報250及び第1の鍵管理メッセージ情報260を格納する。装置鍵情報250の詳細は図6を用いて説明する。また、第1の鍵管理メッセージ情報260の詳細は図7を用いて説明する。なお、装置鍵情報250及び第1の鍵管理メッセージ情報260は、メモリ202に格納されてもよい。
図3は、実施例1の工場鍵管理サーバ110のハードウェア構成及びソフトウェア構成の一例を示す図である。
工場鍵管理サーバ110は、ハードウェアとして、プロセッサ301、メモリ302、記憶装置303、ネットワークインタフェース304、及びI/Oインタフェース305を有する。各構成は、バス等を介して接続される。また、I/Oインタフェース305には、入力装置306及び出力装置307が接続される。
プロセッサ301、メモリ302、記憶装置303、ネットワークインタフェース304、及びI/Oインタフェース305は、プロセッサ201、メモリ202、記憶装置203、ネットワークインタフェース204、及びI/Oインタフェース205と同様のものである。また、入力装置306及び出力装置307は、入力装置206及び出力装置207と同様のものである。
工場鍵管理サーバ110のメモリ302は、制御モジュール310を実現するプログラムを格納する。
制御モジュール310は、工場鍵管理サーバ110全体を制御する。また、制御モジュール310は、アプリケーション鍵の書込処理の成否を検証するメッセージ検証モジュール311を含む。
メッセージ検証モジュール311は、二つのメッセージを比較することによって、アプリケーション鍵の書込処理が成功したか否かを判定する。具体的には、メッセージ検証モジュール311は、二つのメッセージが一致している場合、アプリケーション鍵の書込処理の成功と判定する。
工場鍵管理サーバ110の記憶装置303は、第2の鍵管理メッセージ情報350を格納する。第2の鍵管理メッセージ情報350は、第1の鍵管理メッセージ情報260と同様のデータ構造である。なお、第2の鍵管理メッセージ情報350は、メモリ302に格納されてもよい。
図4は、実施例1の製造ライン端末120のハードウェア構成及びソフトウェア構成の一例を示す図である。
製造ライン端末120は、ハードウェアとして、プロセッサ401、メモリ402、記憶装置403、ネットワークインタフェース404、及びI/Oインタフェース405を有する。各構成は、バス等を介して接続される。また、I/Oインタフェース405には、入力装置406及び出力装置407が接続される。
プロセッサ401、メモリ402、記憶装置403、ネットワークインタフェース404、及びI/Oインタフェース405は、プロセッサ201、メモリ202、記憶装置203、ネットワークインタフェース204、及びI/Oインタフェース205と同様のものである。また、入力装置406及び出力装置407は、入力装置206及び出力装置207と同様のものである。
製造ライン端末120のメモリ402は、製造ライン端末120全体を制御する制御モジュール410を実現するプログラムを格納する。
製造ライン端末120の記憶装置403は、工場鍵管理サーバ110から受信した書込用メッセージ440、及び装置130から受信した検証用メッセージ450を格納する。なお、書込用メッセージ440及び検証用メッセージ450は、メモリ402に格納されてもよい。
図5は、実施例1の装置130のハードウェア構成及びソフトウェア構成の一例を示す図である。
装置130は、ハードウェアとして、プロセッサ501、メモリ502、記憶装置503、及びネットワークインタフェース504を有する。各構成は、バス等を介して接続される。
プロセッサ501、メモリ502、記憶装置503、及びネットワークインタフェース504は、プロセッサ201、メモリ202、記憶装置203、及びネットワークインタフェース204と同様のものである。
装置130のメモリ502は、制御モジュール510を実現するプログラムを格納する。
制御モジュール510は、装置130全体を制御する。また、制御モジュール510は、データの暗号化処理及び復号処理を実行する。なお、本実施例では、共通鍵暗号方式にしたがった暗号化処理及び復号処理が実行されるものとする。
制御モジュール510は、第1の復号モジュール511、第1のMAC検証モジュール512、書込モジュール513、第2の暗号化モジュール514、第2のMAC生成モジュール515、及び鍵導出モジュール516を含む。なお、制御モジュール510は、第1の復号モジュール511、第1のMAC検証モジュール512、書込モジュール513、第2の暗号化モジュール514、第2のMAC生成モジュール515、及び鍵導出モジュール516を一つの暗号演算モジュールとして含んでもよい。
第1の復号モジュール511は、共通鍵暗号方式の鍵を用いて暗号文を復号することによって平文を生成する。具体的には、第1の復号モジュール511は、式(6)に示すように、共通鍵暗号方式の鍵及び暗号文を変数とする第1の復号関数Dec1を用いて平文を算出する。
Figure 2018110355
ここで、kは共通鍵暗号方式の鍵を表し、cは暗号文を表し、また、pは平文を表す。
なお、第1の暗号化関数Enc1と第1の復号関数Dec1との間には、式(7)に示す関係が成り立つ。
Figure 2018110355
第1のMAC検証モジュール512は、共通鍵暗号方式の鍵を用いて、MAC対象データ及びMAC値の組の正当性を検証する。具体的には、第1のMAC検証モジュール512は、式(8)に示すように、共通鍵暗号方式の鍵、MAC対象データ、及びMAC値を変数とする第1のMAC検証関数VerifyMAC1を用いて検証を行う。
Figure 2018110355
ここで、mはMAC対象データを表し、tはMAC値を表し、また、vは検証結果を表す。なお、算出結果vは「0」又は「1」のいずれかとなる。「0」は失敗を示し、「1」は成功を示す。
式(8)は第1のMAC生成関数GenMAC1を用いて式(9)のように変形できる。
Figure 2018110355
ここで、関数Compareは比較関数を表し、比較関数Compare(a,b)の値は、a及びbが一致する場合「1」となり、a及びbが一致しない場合「0」となる。
書込モジュール513は、共通鍵暗号方式の鍵及び当該鍵が書き込まれた回数(カウンタ値)を書き込む。
第2の暗号化モジュール514は、共通鍵暗号方式の鍵を用いて平文を暗号化することによって暗号文を生成する。具体的には、第2の暗号化モジュール514は、式(10)に示すように、共通鍵暗号方式の鍵及び平文を変数とする第2の暗号化関数Enc2を用いて暗号文を算出する。
Figure 2018110355
なお、第2の暗号化関数Enc2と第2の復号関数Dec2との間には、式(11)に示す関係が成り立つ。
Figure 2018110355
第2のMAC生成モジュール515は、共通鍵暗号方式の鍵を用いてMAC生成対象データのMAC値を生成する。具体的には、第2のMAC生成モジュール515は、式(12)に示すように、共通鍵暗号方式の鍵及びMAC生成対象データを変数とする第2のMAC生成関数GenMAC2を用いてMAC値を算出する。
Figure 2018110355
なお、式(4)は第2のMAC生成関数GenMAC2を用いて式(13)のように変形できる。
Figure 2018110355
鍵導出モジュール516は、共通鍵暗号方式のオリジナル鍵及び付加データを用いて導出鍵を生成する。鍵導出モジュール516は、鍵導出モジュール216と同一の鍵導出関数KDFを用いて導出鍵を生成する。
記憶装置503は、装置ID550、認証鍵560、アプリケーション鍵570、及びカウンタ値580を格納する。
装置ID550は、装置130を一意に識別するための識別情報である。装置ID550は、予め、装置130に設定される。本実施例では、センタ鍵管理サーバ100は、アプリケーション鍵の書込処理の開始前に、各装置130の装置ID550を把握しているものとする。
認証鍵560は、暗号化処理及び復号処理に用いられる鍵である。認証鍵560は、アプリケーション鍵の書込処理の開始前に、センタ鍵管理サーバ100及び装置130との間で共有される。
アプリケーション鍵570は、装置130に書き込まれたアプリケーション鍵である。なお、アプリケーション鍵は、装置130上で稼働するアプリケーションが使用する鍵である。後述するように、センタ鍵管理サーバ100によって、アプリケーション鍵が装置130に書き込まれる。なお、アプリケーション鍵の書き込み時に、古いアプリケーション鍵570が存在する場合、書込モジュール513は、古いアプリケーション鍵570を新しいアプリケーション鍵570に更新する。
カウンタ値580は、装置130にアプリケーション鍵570が書き込まれた回数である。アプリケーション鍵の書込処理の開始前、センタ鍵管理サーバ100及び装置130が保持するカウンタ値は同一の値である。
図6は、実施例1の装置鍵情報250の一例を示す図である。
装置鍵情報250は、装置ID601、認証鍵602、アプリケーション鍵603、アプリケーション鍵カウンタ604、及び状態605から構成されるレコードを含む。一つのレコードが一つの装置130に対応する。
装置ID601及び認証鍵602は、センタ鍵管理サーバ100及び装置130が共有する装置ID及び認証鍵を格納するカラムである。
アプリケーション鍵603は、装置130に書き込むアプリケーション鍵を格納するカラムである。
アプリケーション鍵カウンタ604は、アプリケーション鍵の書き込み回数(カウンタ値)を格納するカラムである。
状態605は、アプリケーション鍵の書込処理の状態を格納するカラムである。状態605には、「生成済み」、「書込済み」、及び「エラー」のいずれかが格納される。
「生成済み」は、センタ鍵管理サーバ100によって生成されたアプリケーション鍵の書込処理の成否について検証されていない状態を示す。「書込済み」は、アプリケーション鍵の書込処理の成否の検証結果が成功であることを示す。「エラー」は、アプリケーション鍵の書込処理の成否の検証結果が失敗であることを示す。
図7は、実施例1の第1の鍵管理メッセージ情報260の一例を示す図である。
第1の鍵管理メッセージ情報260は、装置ID701、書込用メッセージ702、事前検証用メッセージ703、検証用メッセージ704、及び検証結果705から構成されるレコードを含む。一つのレコードが一つの装置130に対応する。
なお、第2の鍵管理メッセージ情報350のデータ構造は、第1の鍵管理メッセージ情報260と同一である。ただし、第1の鍵管理メッセージ情報260はセンタ鍵管理サーバ100によって管理され、第2の鍵管理メッセージ情報350は工場鍵管理サーバ110によって管理されるため、アプリケーション鍵の書込処理の実行中は、各情報は非同期で更新される。
装置ID701は、装置ID601と同一のものである。
書込用メッセージ702は、アプリケーション鍵の書込処理に用いられる書込用メッセージを格納するカラムである。
事前検証用メッセージ703は、工場鍵管理サーバ110がアプリケーション鍵の書込処理の成否を検証するための事前検証用メッセージを格納するカラムである。後述するように、事前検証用メッセージは、センタ鍵管理サーバ100によって生成される。
検証用メッセージ704は、センタ鍵管理サーバ100がアプリケーション鍵の書込処理の成否を検証するための検証用メッセージを格納するカラムである。検証用メッセージ704は、装置130によって生成される。
検証結果705は、アプリケーション鍵の書込処理の成否の検証結果を格納するカラムである。なお、第1の鍵管理メッセージ情報260の検証結果705には、センタ鍵管理サーバ100が行った検証の結果が格納され、第2の鍵管理メッセージ情報350の検証結果705には、工場鍵管理サーバ110が行った検証の結果が格納される。
ここで、本実施例において用いられる、書込用メッセージ、事前検証用メッセージ、及び検証用メッセージのフォーマットについて説明する。以下の説明では、書込用メッセージを表す記号を「M」、検証用メッセージを表す記号を「M’」、事前検証用メッセージを表す記号を「M’_pre」と定義する。
まず、書込用メッセージのフォーマットについて説明する。
書込用メッセージは、式(14)に示すように、ID部、暗号文部、及びMAC部の三つの部分から構成される。
Figure 2018110355
ここで、M_IDはID部を表し、M_encは暗号文部を表し、M_macはMAC部を表す。また、記号「||」は、データの結合を示す記号である。
ID部は、式(15)に示すように、装置ID及び付加IDから生成される。
Figure 2018110355
ここで、ID_modは装置IDを表し、ID_additiona1は付加IDを表す。
認証鍵又はアプリケーション鍵が複数存在する場合、付加IDには、各鍵を一意に識別するための情報を含める。付加IDは、例えば、式(16)のように与えられる。
Figure 2018110355
ここで、ID_AuthKeyは認証鍵を特定するIDを表し、ID_AppKeyはアプリケーション鍵を特定するIDを表す。
暗号文部は、式(17)に示すように、暗号化に用いる鍵、並びに、カウンタ値及びアプリケーション鍵を結合した値を変数とする第1の暗号化関数Enc1を用いて生成される。なお、暗号化に用いる鍵は、式(18)に示すように、認証鍵及び第1の固定値を変数とする鍵導出関数KDFを用いて算出される。
Figure 2018110355
Figure 2018110355
ここで、CNT_appはカウンタ値を表し、k_appはアプリケーション鍵を表し、k_authは認証鍵を表し、また、Const_1は第1の固定値を表す。
MAC部(MAC値)は、式(19)に示すように、MAC値を算出するための鍵、並びに、ID部及び暗号文部を結合した値を変数とする第1のMAC生成関数GenMAC1を用いて生成される。なお、MAC値を算出するための鍵は、式(20)に示すように、認証鍵及び第2の固定値を変数とする鍵導出関数KDFを用いて算出される。
Figure 2018110355
Figure 2018110355
ここで、Const_2は第2の固定値を表す。
次に、事前検証用メッセージ及び検証用メッセージのフォーマットについて説明する。
検証用メッセージは、式(21)に示すように、ID部、暗号文部、及びMAC部の三つの部分から構成される。
Figure 2018110355
ここで、M’_IDはID部を表し、M’_encは暗号文部を表し、M’_macはMAC部を表す。
事前検証用メッセージは、検証用メッセージの暗号文部である。すなわち、式(22)に示すような関係となる。
Figure 2018110355
ID部は、式(23)に示すように、装置ID及び付加IDから生成される。
Figure 2018110355
ここで、ID_modは装置ID550を表し、ID_additionalは付加IDを表す。検証用メッセージのID部は、書込用メッセージのID部と同一の値となる。
暗号文部は、式(24)に示すように、暗号化に用いる鍵及びカウンタ値を変数とする第2の暗号化関数Enc2から生成される。なお、暗号化に用いる鍵は、式(25)に示すように、アプリケーション鍵及び第3の固定値を変数とする鍵導出関数KDFを用いて算出される。
Figure 2018110355
Figure 2018110355
ここで、CNT_appはカウンタ値を表し、k_appはアプリケーション鍵を表し、Const_3は第3の固定値を表す。
MAC部(MAC値)は、式(26)に示すように、MAC値を算出するための鍵、並びに、ID部及び暗号文部を結合した値を変数とする第2のMAC生成関数GenMAC2を用いて算出される。なお、MAC値を算出するための鍵は、式(27)に示すように、アプリケーション鍵及び第4の固定値を変数とする鍵導出関数KDFを用いて算出される。
Figure 2018110355
Figure 2018110355
ここで、Const_4は第4の固定値を表す。
以上が書込用メッセージ、事前検証用メッセージ、及び検証用メッセージのフォーマットの説明である。
次に、鍵書込工程に処理について説明する。
図8は、実施例1の鍵書込工程の概要を説明するフローチャートである。
鍵書込工程では、システムは、まず、鍵生成/鍵配信フェーズに移行する(ステップS801)。当該フェーズでは、以下のような処理が実行される。
センタ鍵管理サーバ100の管理者等が、センタ鍵管理サーバ100にアプリケーション鍵を発行する装置130の装置IDを登録する。センタ鍵管理サーバ100は、登録された装置IDの数だけ、書込用メッセージ及び事前検証用メッセージを生成する。すなわち、一つの装置IDに対して書込用メッセージ及び事前検証用メッセージの組が一つ生成される。センタ鍵管理サーバ100は、書込用メッセージ及び事前検証用メッセージを工場鍵管理サーバ110に送信する。
次に、システムは、鍵書込フェーズに移行する(ステップS802)。当該フェーズでは、以下のような処理が実行される。
工場鍵管理サーバ110は、受信した書込用メッセージを製造ライン端末120に送信する。製造ライン端末120は、アプリケーション鍵を装置130に書き込むために、受信した書込用メッセージを対象の装置130に送信する。装置130は、アプリケーション鍵の書込処理を実行した後、製造ライン端末120を介して検証用メッセージを工場鍵管理サーバ110に送信する。工場鍵管理サーバ110は、検証用メッセージの暗号文部及び事前検証用メッセージを比較することによって、アプリケーション鍵の書込処理の成否を検証する。
次に、システムは、センタ登録フェーズに移行する(ステップS803)。当該フェーズでは、以下のような処理が実行される。
工場鍵管理サーバ110は、センタ鍵管理サーバ100に検証用メッセージを送信する。センタ鍵管理サーバ100は、検証用メッセージを用いてアプリケーション鍵の書込処理の成否を検証する。また、センタ鍵管理サーバ100は、検証結果に基づいて装置鍵情報250を更新する。
本実施例の鍵書込工程では、製造ラインが稼働するのは鍵書込フェーズのみである。鍵書込フェーズにおいて、工場鍵管理サーバ110は、センタ鍵管理サーバ100と通信を行うことなく、アプリケーション鍵の書込処理の成否を検証することができる。また、アプリケーション鍵の書込処理の成否の検証において、書込用メッセージに含まれるアプリケーション鍵は暗号化されており、センタ鍵管理サーバ100及び装置130のみが復号できる。すなわち、工場鍵管理サーバ110及び製造ライン端末120にアプリケーション鍵を秘匿したまま、装置130へアプリケーション鍵を書き込むことができる。
図9A及び図9Bは、実施例1の鍵書込工程における処理の流れを説明するシーケンス図である。
ステップS901からステップS904までの処理は、鍵生成/鍵配信フェーズにおいて実行される処理である。
まず、センタ鍵管理サーバ100は、N個の装置130に対するアプリケーション鍵の発行要求を受け付ける(ステップS901)。当該発行要求は、例えば、管理者が入力装置206を操作することによって入力される。なお、当該発行要求には、対象となる装置130の装置IDが含まれる。
センタ鍵管理サーバ100は、メッセージ生成処理を実行する(ステップS902)。メッセージ生成処理では、各装置130の書込用メッセージ及び事前検証用メッセージが生成される。なお、メッセージ生成処理の詳細は図10を用いて説明する。
センタ鍵管理サーバ100は、工場鍵管理サーバ110に、各装置130の装置ID、書込用メッセージ、及び事前検証用メッセージを送信する(ステップS903)。
工場鍵管理サーバ110は、センタ鍵管理サーバ100からメッセージを受信した場合、第2の鍵管理メッセージ情報350を更新する(ステップS904)。
具体的には、制御モジュール310は、第2の鍵管理メッセージ情報350にレコードを追加し、追加されたレコードの装置ID701、書込用メッセージ702、及び事前検証用メッセージ703に、受信した装置ID、書込用メッセージ、及び事前検証用メッセージを設定する。すでに、受信した装置IDに対応するレコードが存在する場合、制御モジュール310は、当該レコードの装置ID701、書込用メッセージ702、及び事前検証用メッセージ703に、受信した装置ID、書込用メッセージ、及び事前検証用メッセージを上書きする。
ステップS911からステップS923までの処理は、鍵書込フェーズにおいて実行される処理である。
製造ライン端末120は、所定のタイミングで、工場鍵管理サーバ110に、メッセージ要求を送信する(ステップS911)。当該メッセージ要求には、アプリケーション鍵を書き込む装置130の装置IDが含まれる。
工場鍵管理サーバ110は、メッセージ要求を受信した場合、第2の鍵管理メッセージ情報350から対象の装置130の書込用メッセージを取得し、製造ライン端末120を介して装置130に、当該書込用メッセージを送信する(ステップS912)。具体的には、以下のような処理が実行される。
制御モジュール310が、第2の鍵管理メッセージ情報350を参照し、装置ID701がメッセージ要求に含まれる装置IDと一致するレコードを検索する。制御モジュール310は、装置IDとともに、検索されたレコードの書込用メッセージ702に設定された書込用メッセージを製造ライン端末120に送信する。
製造ライン端末120は、書込用メッセージを受信した場合、当該書込用メッセージともに受信した装置IDに対応する装置130に、書込用メッセージを送信する。以上が、ステップS912の処理の説明である。
装置130は、製造ライン端末120を介して、工場鍵管理サーバ110から書込用メッセージを受信した場合、アプリケーション鍵の書込処理を実行する(ステップS913)。アプリケーション鍵の書込処理では、書込用メッセージの検証及びアプリケーション鍵の書込が行われる。アプリケーション鍵の書込処理の詳細は図11を用いて説明する。
アプリケーション鍵の書込処理が失敗した場合、すなわち、装置130にアプリケーション鍵が書き込まれなかった場合、装置130は、製造ライン端末120を介して工場鍵管理サーバ110に、エラー通知を送信する(ステップS914)。
製造ライン端末120は、エラー通知を受信した場合、不具合工程に移行し(ステップS915)、また、第2の鍵管理メッセージ情報350を更新する(ステップS916)。
具体的には、制御モジュール310は、第2の鍵管理メッセージ情報350を参照し、装置ID701が、エラー通知を送信した装置130の装置IDに一致するレコードを検索する。制御モジュール310は、検索されたレコードの検証結果705に「書込用メッセージエラー」を設定する。
アプリケーション鍵の書込処理が成功した場合、すなわち、装置130にアプリケーション鍵が書き込まれた場合、装置130は、検証用メッセージ生成処理を実行する(ステップS917)。また、装置130は、製造ライン端末120を介して工場鍵管理サーバ110に、検証用メッセージを送信する(ステップS918)。検証用メッセージ生成処理の詳細は図12を用いて説明する。
工場鍵管理サーバ110は、検証用メッセージを受信した場合、アプリケーション鍵の書込処理の検証処理を実行する(ステップS919)。アプリケーション鍵の書込処理の検証処理の詳細は図13を用いて説明する。
検証結果が失敗である場合、工場鍵管理サーバ110は、失敗を通知する検証結果を製造ライン端末120に送信する(ステップS920)。製造ライン端末120は、当該検証結果を受信した場合、アプリケーション鍵の書込処理が失敗した装置130を不具合工程へ移行させる(ステップS921)。
検証結果が成功である場合、工場鍵管理サーバ110は、成功を通知する検証結果を製造ライン端末120に送信する(ステップS922)。製造ライン端末120は、当該検証結果を受信した場合、装置130を次に工程に移行させる(ステップS923)。
ステップS924からステップS926までの処理は、センタ登録フェーズにおいて実行される処理である。
工場鍵管理サーバ110は、センタ鍵管理サーバ100に、受信した全ての検証用メッセージを送信する(ステップS924)。
具体的には、工場鍵管理サーバ110は、第2の鍵管理メッセージ情報350から、検証結果705が「成功」であるレコードの装置ID701及び検証用メッセージ704をセンタ鍵管理サーバ100に送信する。このとき、工場鍵管理サーバ110は、検証結果705が「書込用メッセージエラー」又は「失敗」であるレコードの装置ID701等をセンタ鍵管理サーバ100に送信してもよい。なお、当該レコードの通知は、別のタイミングで行ってもよい。
センタ鍵管理サーバ100は、検証用メッセージを受信した場合、第1の鍵管理メッセージ情報260を更新する(ステップS925)。
具体的には、制御モジュール210は、第1の鍵管理メッセージ情報260を参照し、装置ID701が検証用メッセージとともに受信した装置IDに一致するレコードを検索する。制御モジュール210は、検索されたエントリの検証用メッセージ704に受信した検証用メッセージを設定する。
なお、制御モジュール210は、検証結果705が「書込用メッセージエラー」又は「失敗」であるレコードの通知を受信した場合、対応するレコードの検証結果705に「書込用メッセージエラー」又は「失敗」を設定する。
センタ鍵管理サーバ100は、アプリケーション鍵の書込処理の検証処理を実行する(ステップS926)。アプリケーション鍵の書込処理の検証処理の詳細は図14を用いて説明する。
図10は、実施例1のセンタ鍵管理サーバ100が実行するメッセージ生成処理の一例を説明するフローチャートである。
制御モジュール210は、アプリケーション鍵の発行要求に含まれる装置IDの中からターゲット装置IDを選択する(ステップS1001)。
次に、制御モジュール210は、装置鍵情報250を参照し、装置ID601がターゲット装置IDに一致するレコードを検索する(ステップS1002)。
制御モジュール210は、ターゲット装置IDに対応する装置130のアプリケーション鍵を生成する(ステップS1003)。
具体的には、制御モジュール210が、鍵生成モジュール211を呼び出し、アプリケーション鍵の生成を指示する。鍵生成モジュール211は、アプリケーション鍵を生成する。
次に、制御モジュール210は、装置鍵情報250から検索されレコードを更新する(ステップS1004)。
具体的には、制御モジュール210は、検索されたレコードのアプリケーション鍵603に生成されたアプリケーション鍵を設定し、また、当該レコードのアプリケーション鍵カウンタ604の値に「1」を加算する。
次に、制御モジュール210は、書込用メッセージを生成する(ステップS1005)。具体的には、以下のような処理が実行される。
制御モジュール210は、式(15)に示すように、付加ID及び検索されたレコードの装置ID601の値を結合することによって、書込用メッセージのID部を算出する。
制御モジュール210は、鍵導出モジュール216を呼び出し、暗号化に使用する鍵の生成を指示する。鍵導出モジュール216は、第1の固定値及び検索されたレコードの認証鍵602の値を代入した式(18)にしたがって、暗号化に使用する鍵を算出する。制御モジュール210は、第1の暗号化モジュール212を呼び出し、書込用メッセージの暗号文部の生成を指示する。第1の暗号化モジュール212は、暗号化に使用する鍵、並びに、検索されたレコードのアプリケーション鍵603及びアプリケーション鍵カウンタ604を結合した値を代入した式(17)にしたがって、書込用メッセージの暗号文部を算出する。
制御モジュール210は、鍵導出モジュール216を呼び出し、暗号化に使用する鍵の生成を指示する。鍵導出モジュール216は、第2の固定値及び特定されたレコードの認証鍵602の値を代入した式(20)にしたがって、暗号化に使用する鍵を算出する。制御モジュール210は、第1のMAC生成モジュール213を呼び出し、書込用メッセージのMAC部の生成を指示する。第1のMAC生成モジュール213は、暗号化に使用する鍵、並びに、ID部及び暗号文部を結合した値を代入した式(19)にしたがって、MAC部を算出する。
制御モジュール210は、式(14)に示すように、ID部、暗号文部、及びMAC部を結合することによって、書込用メッセージを生成する。以上がステップS1005の処理の説明である。
次に、制御モジュール210は、事前検証用メッセージを生成する(ステップS1006)。具体的には、以下のような処理が実行される。
制御モジュール210は、鍵導出モジュール216を呼び出し、暗号化に使用する鍵の生成を指示する。鍵導出モジュール216は、第3の固定値及び検索されたレコードのアプリケーション鍵603の値を代入した式(25)にしたがって、暗号化に使用する鍵を算出する。制御モジュール210は、第2の暗号化モジュール217を呼び出し、事前検証用メッセージの生成を指示する。第2の暗号化モジュール217は、暗号化に使用する鍵、及び、検索されたレコードのアプリケーション鍵カウンタ604の値を代入した式(24)にしたがって、事前検証用メッセージを算出する。
次に、制御モジュール210は、第1の鍵管理メッセージ情報260を更新する(ステップS1007)。具体的には、以下のような処理が実行される。
制御モジュール210は、第1の鍵管理メッセージ情報260を参照し、装置ID701が、ターゲット装置IDと一致するレコードを検索する。
レコードが存在しない場合、制御モジュール210は、第1の鍵管理メッセージ情報260にレコードを追加し、追加されたレコードの装置ID701に、ターゲット装置IDを設定する。また、制御モジュール210は、追加されたレコードの書込用メッセージ702及び事前検証用メッセージ703に、生成された書込用メッセージ及び事前検証用メッセージを設定する。
レコードが存在する場合、制御モジュール210は、検索されたレコードの書込用メッセージ702及び事前検証用メッセージ703に、生成された書込用メッセージ及び事前検証用メッセージを設定する。以上がステップS1007の処理の説明である。
次に、制御モジュール210は、装置鍵情報250を更新する(ステップS1008)。
具体的には、制御モジュール210は、ターゲット装置IDに対応するレコードの状態605に「生成済み」を設定する。
次に、制御モジュール210は、アプリケーション鍵の発行要求に含まれる全ての装置IDについて処理が完了した否かを判定する(ステップS1009)。
ステップS1009の判定結果がNOである場合、制御モジュール210は、ステップS1001に戻り、同様の処理を実行する。
ステップS1009の判定結果がYESである場合、制御モジュール210は、メッセージ生成処理を終了する。
図11は、実施例1の装置130が実行するアプリケーション鍵の書込処理の一例を説明するフローチャートである。
制御モジュール510は、書込用メッセージのID部の検証結果が成功か否かを判定する(ステップS1101)。
具体的には、制御モジュール510は、書込用メッセージのID部及び装置ID550を比較し、式(15)の関係を満たすか否かを判定する。式(15)の関係を満たす場合、制御モジュール510は、書込用メッセージのID部の検証結果が成功であると判定する。
書込用メッセージのID部の検証結果が失敗であると判定された場合、制御モジュール510は、ステップS1106に進む。
書込用メッセージのID部の検証結果が成功であると判定された場合、制御モジュール510は、書込用メッセージからアプリケーション鍵及びカウンタ値を取得する(ステップS1102)。具体的には、以下のような処理が実行される。
制御モジュール510は、鍵導出モジュール516を呼び出して、導出鍵の生成を指示する。鍵導出モジュール516は、認証鍵560を代入した式(18)にしたがって、導出鍵を算出する。
制御モジュール510は、第1の復号モジュール511を呼び出して、書込用メッセージの暗号文部の復号を指示する。第1の復号モジュール511は、導出鍵及び書込用メッセージの暗号文部を代入した式(6)にしたがって、暗号文部を復号する。これによって、制御モジュール510は、アプリケーション鍵及びカウンタ値を取得できる。以上がステップS1102の処理の説明である。
次に、制御モジュール510は、カウンタ値の検証結果が成功であるか否かを判定する(ステップS1103)。
具体的には、制御モジュール510は、書込用メッセージから取得したカウンタ値が、記憶装置503に格納されるカウンタ値580より大きいか否かを判定する。書込用メッセージから取得したカウンタ値が、カウンタ値580より大きい場合、制御モジュール510は、カウンタ値の検証結果が成功であると判定する。
カウンタ値の検証結果が失敗であると判定された場合、制御モジュール510は、ステップS1106に進む。
カウンタ値の検証結果が成功であると判定された場合、制御モジュール510は、書込用メッセージのMAC部の検証結果が成功か否かを判定する(ステップS1104)。具体的には、以下のような処理が実行される。
制御モジュール510は、鍵導出モジュール516を呼び出して、MAC値を算出するための鍵の生成を指示する。鍵導出モジュール516は、認証鍵560及び第2の固定値を代入した式(20)にしたがって、MAC値を算出するための鍵を算出する。
制御モジュール510は、第1のMAC検証モジュール512を呼び出し、書込用メッセージのMAC部の検証を指示する。第1のMAC検証モジュール512は、MAC値を算出するための鍵、MAC生成対象データ、及び書込用メッセージのMAC部を代入した式(8)及び式(9)にしたがって、書込用メッセージのMAC部の検証を行う。以上がステップS1104の処理の説明である。
書込用メッセージのMAC部の検証結果が失敗であると判定された場合、制御モジュール510は、ステップS1106に進む。
書込用メッセージのMAC部の検証結果が成功であると判定された場合、制御モジュール510は、書込用メッセージから取得されたアプリケーション鍵及びカウンタ値を記憶装置503に保存する(ステップS1105)。その後、制御モジュール510は、アプリケーション鍵の書込処理を終了する。
具体的には、制御モジュール510は、書込モジュール513を呼び出し、記憶装置503へのアプリケーション鍵及びカウンタ値の書込を指示する。書込モジュール513は、記憶装置503にアプリケーション鍵及びカウンタ値を書き込む。なお、既にアプリケーション鍵570及びカウンタ値580が存在する場合、書込モジュール513は、各値を上書きする。
ステップS1101、ステップS1103、及びステップS1104の判定結果がNOである場合、制御モジュール510は、製造ライン端末120にエラー通知を送信する(ステップS1106)。その後、制御モジュール510は、アプリケーション鍵の書込処理を終了する。
図12は、実施例1の装置130が実行する検証用メッセージ生成処理の一例を説明するフローチャートである。
制御モジュール510は、検証用メッセージのID部を生成する(ステップS1201)。
具体的には、制御モジュール510は、式(23)に示すように、付加ID及び装置ID550を結合することによって、検証用メッセージのID部を算出する。
制御モジュール510は、検証用メッセージの暗号文部を生成する(ステップS1202)。具体的には、以下のような処理が実行される。
制御モジュール510は、鍵導出モジュール516を呼び出し、暗号化に使用する鍵の生成を指示する。鍵導出モジュール516は、第3の固定値及びアプリケーション鍵570を代入した式(25)にしたがって、暗号化に使用する鍵を算出する。
制御モジュール210は、第2の暗号化モジュール514を呼び出し、書込用メッセージの暗号文部の生成を指示する。第2の暗号化モジュール514は、暗号化に使用する鍵、及びカウンタ値580を代入した式(24)にしたがって、検証用メッセージの暗号文部を算出する。
制御モジュール510は、検証用メッセージのMAC部を生成する(ステップS1203)。具体的には、以下のような処理が実行される。
制御モジュール510は、鍵導出モジュール516を呼び出し、MAC値を算出するための鍵の生成を指示する。鍵導出モジュール516は、第4の固定値及びアプリケーション鍵570を代入した式(27)にしたがって、MAC値を算出するための鍵を算出する。
制御モジュール510は、第2のMAC生成モジュール515を呼び出し、検証用メッセージのMAC部の生成を指示する。第2のMAC生成モジュール515は、MAC値を算出するための鍵、並びに、ID部及び暗号文部を結合した値を代入した式(26)にしたがって、MAC部を算出する。
制御モジュール510は、検証用メッセージを生成する(ステップS1204)。
具体的には、制御モジュール510は、式(21)に示すように、ID部、暗号文部、及びMAC部を結合することによって、検証用メッセージを生成する。
図13は、実施例1の工場鍵管理サーバ110が実行するアプリケーション鍵の書込処理の検証処理の一例を説明するフローチャートである。
制御モジュール310は、検証用メッセージを受信した場合、第2の鍵管理メッセージ情報350を参照し、検証用メッセージを送信した装置130に対応するレコードを検索する(ステップS1301)。このとき、制御モジュール310は、検索されたレコードの検証用メッセージ704に受信した検証用メッセージを設定する。
制御モジュール310は、検証用メッセージの検証結果が成功であるか否かを判定する(ステップS1302)。具体的には、以下のような処理が実行される。
制御モジュール310は、メッセージ検証モジュール311を呼び出して、検証用メッセージの検証を指示する。
メッセージ検証モジュール311は、検証用メッセージの暗号文部を取得する。また、メッセージ検証モジュール311は、特定されたレコードの事前検証用メッセージ703に設定された事前検証用メッセージを取得する。メッセージ検証モジュール311は、検証用メッセージの暗号文部及び事前検証用メッセージが一致するか否かを判定する。検証用メッセージの暗号文部及び事前検証用メッセージが一致する場合、メッセージ検証モジュール311は、検証用メッセージの検証結果として成功を出力する。以上が、ステップS1302に処理の説明である。
検証用メッセージの検証結果が成功であると判定された場合、制御モジュール310は、レコードを更新し(ステップS1303)、また、成功を通知する検証結果を送信する(ステップS1304)。その後、制御モジュール310は、アプリケーション鍵の書込処理の検証処理を終了する。
具体的には、制御モジュール310は、検索されたレコードの検証結果705に「成功」を設定する。
検証用メッセージの検証結果が失敗であると判定された場合、制御モジュール310は、レコードを更新し(ステップS1305)、また、失敗を通知する検証結果を送信する(ステップS1306)。その後、制御モジュール310は、アプリケーション鍵の書込処理の検証処理を終了する。
具体的には、制御モジュール310は、レコードの検証結果705に「失敗」を設定する。
ステップS1302の検証方法は一例であって、以下のような検証方法も考えられる。
事前検証用メッセージと検証用メッセージの暗号文部との相違が1ビットである場合、制御モジュール310は、検証結果を出力せずに、再度、センタ鍵管理サーバ100にメッセージの再送要求を送信する。すなわち、事前検証用メッセージ及び検証用メッセージが再度生成される。
暗号化において、平文(鍵及びメッセージ)が1ビットでも異なる場合、当該相違は暗号化されたデータの全てビットに反映されるという性質がある。そのため、平文の相違に起因して、事前検証用メッセージ及び検証用メッセージの1ビットのみが異なる可能性は考えにくい。この場合、いずれかのメッセージに伝送エラーに伴うビット反転エラーが発生している可能性が高く、かつ、鍵の書込処理は成功している可能性が高い。そのため、制御モジュール310は、事前検証用メッセージと検証用メッセージの暗号文部との相違が1ビットである場合、センタ鍵管理サーバ100にメッセージの再送要求を送信する。センタ鍵管理サーバ100は、当該要求を受信した場合、ステップS902及びステップS903の処理を実行し、また、工場鍵管理サーバ110は、受信した書込用メッセージを装置130に送信する。
一方、事前検証用メッセージと検証用メッセージの暗号文部との相違が2ビット以上である場合、制御モジュール310は、ステップS1305に進む。
図14は、実施例1のセンタ鍵管理サーバ100が実行する検証処理の一例を説明するフローチャートである。
制御モジュール210は、検証用メッセージを受信した場合、第1の鍵管理メッセージ情報260を更新する(ステップS1401)。
具体的には、制御モジュール210は、装置ID601が検証用メッセージとともに受信した装置IDに一致するレコードを検索し、当該レコードの検証用メッセージ704に、受信した検証用メッセージを格納する。
次に、制御モジュール210は、検証用メッセージを受信した装置130の中から、ターゲット装置130を選択する(ステップS1402)。
具体的には、制御モジュール210は、検証用メッセージ704に検証用メッセージが格納されるレコードの中からターゲットレコードを選択する。
次に、制御モジュール210は、検証用メッセージのID部の検証結果が成功であるか否かを判定する(ステップS1403)。
具体的には、制御モジュール210は、検証用メッセージのID部及びターゲットレコードの装置ID701を比較し、式(23)の関係を満たすか否かを判定する。式(23)の関係を満たす場合、制御モジュール210は、検証用メッセージのID部の検証結果が成功であると判定する。
検証用メッセージのID部の検証結果が失敗であると判定された場合、制御モジュール210は、ステップS1409に進む。
検証用メッセージのID部の検証結果が成功であると判定された場合、制御モジュール210は、検証用メッセージからカウンタ値を取得する(ステップS1404)。具体的には、以下のような処理が実行される。
制御モジュール210は、装置鍵情報250を参照し、装置ID601がターゲットレコードの装置ID701に一致するレコードを検索し、検索されたレコードのアプリケーション鍵603に設定されたアプリケーション鍵を取得する。
制御モジュール210は、鍵導出モジュール216を呼び出し、暗号化に使用する鍵の生成を指示する。鍵導出モジュール216は、アプリケーション鍵を代入した式(25)にしたがって、暗号化に使用する鍵を算出する。
制御モジュール210は、第2の復号モジュール214を呼び出し、検証用メッセージの暗号文部の復号を指示する。第2の復号モジュール214は、暗号化に使用する鍵及び検証用メッセージの暗号文部を代入した式(3)にしたがって検証用メッセージの暗号文部を復号し、平文からカウンタ値を取得する。以上がステップS1404の処理の説明である。
次に、制御モジュール210は、カウンタ値の検証結果が成功であるか否かを判定する(ステップS1405)。具体的には、以下のような処理が実行される。
制御モジュール210は、装置鍵情報250を参照し、装置ID601がターゲットレコードの装置ID701に一致するレコードを検索し、検索されたレコードのアプリケーション鍵カウンタ604の値を取得する。
制御モジュール210は、検証用メッセージから取得したカウンタ値がアプリケーション鍵カウンタ604の値と一致するか否かを判定する。検証用メッセージから取得したカウンタ値がアプリケーション鍵カウンタ604の値と一致する場合、制御モジュール210は、カウンタ値の検証結果が成功であると判定する。以上がステップS1405の処理の説明である。
カウンタ値の検証結果が失敗であると判定された場合、制御モジュール210は、ステップS1409に進む。
カウンタ値の検証結果が成功であると判定された場合、制御モジュール210は、検証用メッセージのMAC部の検証結果が成功であるか否かを判定する(ステップS1406)。具体的には、以下のような処理が実行される。
制御モジュール210は、鍵導出モジュール216を呼び出して、MAC値を算出するための鍵の生成を指示する。鍵導出モジュール216は、ステップS1405において取得したアプリケーション鍵及び第2の固定値を代入した式(27)にしたがって、MAC値を算出するための鍵を算出する。
制御モジュール510は、第2のMAC検証モジュール215を呼び出し、検証用メッセージのMAC部の検証を指示する。第2のMAC検証モジュール215は、MAC値を算出するための鍵、MAC生成対象データ、及び検証用メッセージのMAC部を代入した式(4)及び式(13)にしたがって、検証用メッセージのMAC部の検証を行う。以上がステップS1406の処理の説明である。
検証用メッセージのMAC部の検証結果が失敗であると判定された場合、制御モジュール210は、ステップS1409に進む。
検証用メッセージのMAC部の検証結果が成功であると判定された場合、制御モジュール210は、装置鍵情報250及び第1の鍵管理メッセージ情報260を更新する(ステップS1407)。その後、制御モジュール210は、ステップS1408に進む。
具体的には、制御モジュール210は、装置鍵情報250を参照し、ターゲット装置130に対応するレコードの状態605に「書込済み」を設定する。また、制御モジュール210は、第1の鍵管理メッセージ情報260を参照し、ターゲット装置130に対応するレコードの検証結果705に「成功」を設定する。
ステップS1403、ステップS1405、及びステップS1406の判定結果がNOである場合、制御モジュール210は、装置鍵情報250及び第1の鍵管理メッセージ情報260を更新する(ステップS1409)。その後、制御モジュール210は、ステップS1408に進む。
具体的には、制御モジュール210は、装置鍵情報250を参照し、ターゲット装置130に対応するレコードの状態605に「エラー」を設定する。また、制御モジュール210は、第1の鍵管理メッセージ情報260を参照し、ターゲット装置130に対応するレコードの検証結果705に「失敗」を設定する。
ステップS1407又はステップS1409の処理が完了した後、制御モジュール210は、選択可能な全ての装置130について処理が完了したか否かを判定する(ステップS1408)。
具体的には、制御モジュール210は、検証用メッセージ704に検証用メッセージが格納される全てのレコードの検証結果705に検証結果が格納されているか否かを判定する。
選択可能な全ての装置130について処理が完了していないと判定された場合、制御モジュール210は、ステップS1402に戻り、同様の処理を実行する。
選択可能な全ての装置130について処理が完了したと判定された場合、制御モジュール210は、アプリケーション鍵の書込処理の検証処理を終了する。
本実施例では、装置130の製造工場を例に説明したが、本実施例の適用先はこれに限定されない。例えば、自動車のディーラーや出荷港であってもよい。この場合、工場鍵管理サーバ110の代わりにディーラー又は港の鍵管理サーバが用いられ、製造ライン端末120の代わりに自動車の保守用ツールが用いられる。なお、各機器の構成と機能は、それぞれ図3及び図4で説明したものと同様の構成である。
本実施例の装置130の一例として、Secure Hardware Extension(SHE)に対応した装置が考えられる。
SHEに対応した装置130の場合、書込用メッセージは、SHEのMemory Update ProtocolのメッセージM1、M2、M3を結合したものに相当する。なお、書込用メッセージのID部はM1に、暗号文部はM2に、MAC部はM3に対応する。さらに、SHEのMemory Update ProtocolのM4、M5を結合したものが、検証用メッセージに相当する。なお、検証用メッセージのID部と暗号文部を結合したものがM4に対応し、MAC部がM5に対応する。また、事前検証用メッセージはSHEのMemory Update ProtocolのM4*(M4の暗号文部)に相当する。また、認証鍵は、例えば、SHEのMASTER_ECU_KEYが考えられ、アプリケーション鍵は、例えば、SHEのKEY<1>が考えられる。
従来技術では、装置は、装置へのアプリケーション鍵の書込処理の成否を検証するために、ID部、暗号文部、及びMAC部から構成される検証用メッセージを生成する。検証用メッセージの暗号文部は、式(24)に示すようにアプリケーション鍵から生成された鍵を用いてカウンタ値を暗号化することによって生成され、また、MAC部は、式(26)に示すようにアプリケーション鍵から生成された別の鍵、装置ID部、及び暗号文部から生成される。そのため、暗号文部及びMAC値は、アプリケーション鍵及びカウンタ値を知らないと復号できない。
従来の鍵書込工程における鍵の書込処理の成否の検証処理では、暗号文部及びMAC値の検証を行う必要があるが、工場鍵管理サーバは、アプリケーション鍵及びカウンタ値を知らない。そのため、センタ鍵管理サーバに問い合わせを行う必要があった。
本実施例では、アプリケーション鍵及びカウンタ値を知っているセンタ鍵管理サーバ100が、製造ラインの稼働前に、生成した暗号文部を事前検証用メッセージとして工場鍵管理サーバ110に登録する。工場鍵管理サーバ110は、装置130によって生成された検証用メッセージの暗号文部と事前検証用メッセージとを比較することよって、鍵の書込処理の成否の検証を行うことができる。アプリケーション鍵又はカウンタ値のいずれかが一致しない場合、暗号処理の特性から、検証用メッセージの暗号文部と事前検証用メッセージは一致しないためである。
したがって、本実施例によれば、工場鍵管理サーバ110は、センタ鍵管理サーバ100に問い合わせることなくアプリケーション鍵の書込処理の成否を検証することができる。これによって、製造コストを削減できる。
なお、工場鍵管理サーバ110は、暗号文である事前検証用メッセージからアプリケーション鍵及びカウンタ値を取得できないため、MAC部を算出することができない。また、工場鍵管理サーバ110が鍵の書込処理が行われたように偽装するために事前検証用メッセージを送信してもMAC部の検証が失敗する。これによって、センタ鍵管理サーバ100は、前述の偽装を検知することができる。したがって、本実施例では、事前検証用メッセージの送信に伴うセキュリティの問題は発生しない。
以上で説明したように、実施例1によれば、装置130へのセキュアな鍵の書込を実現でき、また、工場鍵管理サーバ110がセンタ鍵管理サーバ100に等合わせることなく鍵の書込処理の成否を検証できる。
実施例2は、鍵生成/鍵配信フェーズの装置IDの扱い方が異なる。以下では、実施例1との差異を中心に、実施例2について説明する。
実施例2のシステム構成は、実施例1のシステム構成と同一である。また、実施例2の各装置の構成は、実施例1の各装置の構成と同一である。ただし、実施例2では、装置鍵情報250、並びに、第1の鍵管理メッセージ情報260及び第2の鍵管理メッセージ情報350のデータ構造が一部異なる。
図15は、実施例2の装置鍵情報250の一例を示す図である。図16は、実施例2の第1の鍵管理メッセージ情報260の一例を示す図である。
実施例2では、装置鍵情報250のレコードはレコード番号1501を含む。また、第1の鍵管理メッセージ情報260のレコードはレコード番号1601を含む。
実施例2では、センタ鍵管理サーバ100及び工場鍵管理サーバ110は、事前に装置130の装置IDを保持していない。したがって、装置鍵情報250及び第1の鍵管理メッセージ情報260の各レコードの装置ID601には初期値「0」が設定される。
実施例2では、ステップS901からステップS904までの処理、及びステップS911からステップS913までの処理において、センタ鍵管理サーバ100及び工場鍵管理サーバ110は、装置鍵情報250及び第1の鍵管理メッセージ情報260の全てのレコードの装置IDが「0」として処理を実行する。
また、実施例2では、認証鍵は、書込対象の全ての装置130においてオール0の値をとるものとする。認証鍵がオール0の値は、センタ鍵管理サーバ100及び装置130の間で事前に共有している。
ステップS914以降の処理では、各装置130が保持する装置IDが用いられる。工場鍵管理サーバ110は、ステップS918において受信した検証用メッセージに含まれるID部から装置IDを取得し、第2の鍵管理メッセージ情報350の対応するレコードの装置ID701に当該装置IDを設定する。センタ鍵管理サーバ100は、ステップS924において受信した検証用メッセージに含まれるID部から装置IDを取得し、装置鍵情報250の対応するレコードの装置ID601に当該装置IDを設定し、また、第1の鍵管理メッセージ情報260の対応するレコードの装置ID701に当該装置IDを設定する。
なお、実施例2では、ステップS1101及びステップS1403の処理は省略される。
実施例2によれば、センタ鍵管理サーバ100は、事前に、装置IDを知らない場合でも、鍵の書込処理を実行することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるCPUが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるCPUが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
100 センタ鍵管理サーバ
110 工場鍵管理サーバ
120 製造ライン端末
130 装置
150、160、170 ネットワーク
201、301、401、501 プロセッサ
202、302、402、502 メモリ
203、303、403、503 記憶装置
204、304、404、504 ネットワークインタフェース
205 I/Oインタフェース
206、306、406 入力装置
207、307、407 出力装置
210、310、410、510 制御モジュール
211 鍵生成モジュール
212 第1の暗号化モジュール
213 第1のMAC生成モジュール
214 第2の復号モジュール
215 第2のMAC検証モジュール
216、516 鍵導出モジュール
217、514 第2の暗号化モジュール
250 装置鍵情報
260 第1の鍵管理メッセージ情報
311 メッセージ検証モジュール
320 データ検証モジュール
350 第2の鍵管理メッセージ情報
440 書込用メッセージ
450 検証用メッセージ
511 第1の復号モジュール
512 第1のMAC検証モジュール
513 書込モジュール
515 第2のMAC生成モジュール

Claims (12)

  1. 装置の製造を管理する第1の計算機、及び前記第1の計算機に接続され、前記装置に設定する設定情報を管理する第2の計算機を備えるシステムであって、
    前記第1の計算機は、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、及び前記第1のプロセッサに接続される第1のネットワークインタフェースを有し、
    前記第2の計算機は、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、及び前記第2のプロセッサに接続される第2のネットワークインタフェースを有し、
    前記第2のメモリは、前記装置及び前記第2の計算機によって共有され、暗号化処理及び復号処理に使用する鍵情報を格納し、
    前記第2のプロセッサは、
    前記鍵情報を用いて前記設定情報を暗号化した第1の暗号文を含む第1のメッセージを生成して、前記第1の計算機を介して前記装置に送信し、
    前記鍵情報を用いて前記設定情報に含まれる一部のデータを暗号化した第2の暗号文を含む第2のメッセージを生成して、前記第1の計算機に送信し、
    前記第1のプロセッサは、
    前記第1の暗号文を復号化することによって取得された前記設定情報を格納した前記装置から、前記鍵情報を用いて前記設定情報に含まれる一部の情報を暗号化した第3の暗号文を含む第3のメッセージを受信し、
    前記第2のメッセージ及び前記第3のメッセージを比較することによって、前記設定情報の書込処理が成功したか否かを検証することを特徴とするシステム。
  2. 請求項1に記載のシステムであって、
    前記第1のプロセッサは、
    前記第2の暗号文と前記第3の暗号文とが一致するか否かを判定し、
    前記第2の暗号文と前記第3の暗号文とが一致する場合、前記設定情報の書込処理が成功したと判定することを特徴とするシステム。
  3. 請求項2に記載のシステムであって、
    前記第1のプロセッサは、前記第2の暗号文と前記第3の暗号文との相違が1ビットのみである場合、前記第2の計算機に、前記第1のメッセージの再送要求を送信することを特徴とするシステム。
  4. 請求項3に記載のシステムであって、
    前記設定情報は、秘密情報及び前記秘密情報の書込回数を示すカウンタ値を含み、
    前記第1の暗号文は、前記鍵情報から生成された第1の暗号鍵情報と、前記秘密情報及び前記カウンタ値を結合した値と、を変数とする第1の関数を用いて生成され、
    前記第2の暗号文は、前記鍵情報から生成された第2の暗号鍵情報と、前記カウンタ値と、を変数とする第2の関数を用いて生成され、
    前記第3の暗号文は、前記鍵情報から生成した第3の暗号鍵情報と、前記カウンタ値と、を変数とする第3の関数を用いて生成されることを特徴とするシステム。
  5. 請求項4に記載のシステムであって、
    前記第3のメッセージは、前記鍵情報及び前記設定情報から生成された検証値を含み、
    前記第2のプロセッサは、
    前記鍵情報を用いて前記第3の暗号文を復号化することによって前記カウンタ値を取得し、
    前記第1の暗号文の生成時に用いたカウンタ値と、前記第3の暗号文から取得したカウンタ値とが一致するか否かを判定し、
    前記第1の暗号文の生成時に用いたカウンタ値と、前記第3の暗号文から取得したカウンタ値とが一致すると判定された場合、前記検証値を用いて前記設定情報の書込処理が成功したか否かを判定することを特徴とするシステム。
  6. 請求項5に記載のシステムであって、
    前記第1の暗号文は、Secure Hardware ExtensionのM2であり、
    前記第2の暗号文は、Secure Hardware ExtensionのM4の暗号文部であり、
    前記検証値は、Secure Hardware ExtensionのM5であることを特徴とするシステム。
  7. 装置の製造を管理する第1の計算機、及び前記第1の計算機に接続され、前記装置に設定する設定情報を管理する第2の計算機を備えるシステムにおける情報の書込方法であって、
    前記第1の計算機は、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、及び前記第1のプロセッサに接続される第1のネットワークインタフェースを有し、
    前記第2の計算機は、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、及び前記第2のプロセッサに接続される第2のネットワークインタフェースを有し、
    前記第2のメモリは、前記装置および前記第2の計算機によって共有され、暗号化処理及び復号処理に使用する鍵情報を格納し、
    前記情報の書込方法は
    前記第2のプロセッサが、前記鍵情報を用いて前記設定情報を暗号化した第1の暗号文を含む第1のメッセージを生成して、前記第1の計算機を介して前記装置に送信する第1のステップと、
    前記第2のプロセッサが、前記鍵情報を用いて前記設定情報に含まれる一部のデータを暗号化した第2の暗号文を含む第2のメッセージを生成して、前記第1の計算機に送信する第2のステップと、
    前記第1のプロセッサが、前記第1の暗号文を復号化することによって取得された前記設定情報を格納した前記装置から、前記鍵情報を用いて前記設定情報に含まれる一部の情報を暗号化した第3の暗号文を含む第3のメッセージを受信する第3のステップと、
    前記第1のプロセッサが、前記第2のメッセージ及び前記第3のメッセージを比較することによって、前記設定情報の書込処理が成功したか否かを検証する第4のステップと、を含むことを特徴とする情報の書込方法。
  8. 請求項7に記載の情報の書込方法であって、
    前記第4のステップは、
    前記第1のプロセッサが、前記第2の暗号文と前記第3の暗号文とが一致するか否かを判定するステップと、
    前記第2の暗号文と前記第3の暗号文とが一致する場合、前記第1のプロセッサが、前記設定情報の書込処理が成功したと判定するステップと、を含むことを特徴とする情報の書込方法。
  9. 請求項8に記載の情報の書込方法であって、
    前記第4のステップは、前記第1のプロセッサが、前記第2の暗号文と前記第3の暗号文との相違が1ビットのみである場合、前記第2の計算機に、前記第1のメッセージの再送要求を送信するステップを含むことを特徴とする情報の書込方法。
  10. 請求項9に記載の情報の書込方法であって、
    前記設定情報は、秘密情報及び前記秘密情報の書込回数を示すカウンタ値を含み、
    前記第1の暗号文は、前記鍵情報から生成された第1の暗号鍵情報と、前記秘密情報及び前記カウンタ値を結合した値と、を変数とする第1の関数を用いて生成され、
    前記第2の暗号文は、前記鍵情報から生成された第2の暗号鍵情報と、前記カウンタ値と、を変数とする第2の関数を用いて生成され、
    前記第3の暗号文は、前記鍵情報から生成した第3の暗号鍵情報と、前記カウンタ値と、を変数とする第3の関数を用いて生成されることを特徴とする情報の書込方法。
  11. 請求項10に記載の情報の書込方法であって、
    前記第3のメッセージは、前記鍵情報及び前記設定情報から生成された検証値を含み、
    前記情報の書込方法は、
    前記第2のプロセッサが、前記鍵情報を用いて前記第3の暗号文を復号化することによって前記カウンタ値を取得するステップと、
    前記第2のプロセッサが、前記第1の暗号文の生成時に用いたカウンタ値と、前記第3の暗号文から取得したカウンタ値とが一致するか否かを判定するステップと、
    前記第1の暗号文の生成時に用いたカウンタ値と、前記第3の暗号文から取得したカウンタ値とが一致すると判定された場合、前記第2のプロセッサが、前記検証値を用いて前記設定情報の書込処理が成功したか否かを判定するステップと、を含むことを特徴とする情報の書込方法。
  12. 請求項11に記載の情報の書込方法であって、
    前記第1の暗号文は、Secure Hardware ExtensionのM2であり、
    前記第2の暗号文は、Secure Hardware ExtensionのM4の暗号文部であり、
    前記検証値は、Secure Hardware ExtensionのM5であることを特徴とする情報の書込方法。
JP2017000740A 2017-01-05 2017-01-05 システム及び情報の書込方法 Active JP6697404B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017000740A JP6697404B2 (ja) 2017-01-05 2017-01-05 システム及び情報の書込方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017000740A JP6697404B2 (ja) 2017-01-05 2017-01-05 システム及び情報の書込方法

Publications (2)

Publication Number Publication Date
JP2018110355A true JP2018110355A (ja) 2018-07-12
JP6697404B2 JP6697404B2 (ja) 2020-05-20

Family

ID=62844545

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017000740A Active JP6697404B2 (ja) 2017-01-05 2017-01-05 システム及び情報の書込方法

Country Status (1)

Country Link
JP (1) JP6697404B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005202541A (ja) * 2004-01-14 2005-07-28 Hitachi Ltd 情報処理システム、情報処理装置および情報記憶媒体
JP2010113409A (ja) * 2008-11-04 2010-05-20 Denso Corp 車載電子制御装置
WO2012011254A1 (ja) * 2010-07-23 2012-01-26 パナソニック株式会社 情報処理装置、コントローラ、鍵発行局、無効化リスト有効性判定方法および鍵発行方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005202541A (ja) * 2004-01-14 2005-07-28 Hitachi Ltd 情報処理システム、情報処理装置および情報記憶媒体
JP2010113409A (ja) * 2008-11-04 2010-05-20 Denso Corp 車載電子制御装置
WO2012011254A1 (ja) * 2010-07-23 2012-01-26 パナソニック株式会社 情報処理装置、コントローラ、鍵発行局、無効化リスト有効性判定方法および鍵発行方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
竹森 敬祐 ほか: "セキュアエレメントを活用したECU認証とコード認証の鍵管理", 電子情報通信学会技術研究報告, vol. 115, no. 365, JPN6017011703, 10 December 2015 (2015-12-10), JP, pages 227 - 232, ISSN: 0004245763 *

Also Published As

Publication number Publication date
JP6697404B2 (ja) 2020-05-20

Similar Documents

Publication Publication Date Title
US10708062B2 (en) In-vehicle information communication system and authentication method
EP3742696B1 (en) Identity management method, equipment, communication network, and storage medium
US10271209B2 (en) Session protocol for backward security between paired devices
WO2017217070A1 (ja) システム、認証局、車載コンピュータ、車両、公開鍵証明書発行方法、及びプログラム
US11082228B2 (en) Reuse system, key generation device, data security device, in-vehicle computer, reuse method, and computer program
JP5576985B2 (ja) 署名に用いる暗号アルゴリズムの決定方法、検証サーバおよびプログラム
CN106464498B (zh) 由第二电子实体认证第一电子实体的方法以及电子实体
CN109997119B (zh) 安全元件安装和设置
WO2015165325A1 (zh) 终端安全认证方法、装置及系统
JP5380583B1 (ja) デバイス認証方法及びシステム
WO2014108993A1 (ja) 認証処理装置、認証処理システム、認証処理方法および認証処理プログラム
CN102177678A (zh) 可信和机密的远程tpm初始化
US20210306135A1 (en) Electronic device within blockchain based pki domain, electronic device within certification authority based pki domain, and cryptographic communication system including these electronic devices
JP3880957B2 (ja) ルート証明書配布システム、ルート証明書配布方法、コンピュータ実行可能なルート証明書配布プログラム、サーバ装置及びクライアント装置
JP2023506661A (ja) 証明書申請方法およびデバイス
CN116032613A (zh) 区块链数字凭证交换方法、文件存储访问方法和系统
JP4846464B2 (ja) 複数公開鍵の証明書を発行及び検証するシステム、並びに、複数公開鍵の証明書を発行及び検証する方法
CN109802826B (zh) 一种事件的处理方法和终端
JP2018019415A (ja) システム、認証局、車載コンピュータ、公開鍵証明書発行方法、及びプログラム
JP2019161580A (ja) データ送信装置、データ送受信システム、データ受信装置、データ送信方法、プログラム
JPWO2019142307A1 (ja) 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
JP6697404B2 (ja) システム及び情報の書込方法
CN107659409B (zh) 用于在至少两个通信伙伴之间提供经认证的连接的方法
JP6388622B2 (ja) 通信システム、端末装置、通信方法、及びプログラム
KR20190112959A (ko) 암호화 데이터를 이용하는 기계학습 모델 운영방법 및 기계학습 모델 기반 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200330

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200424

R150 Certificate of patent or registration of utility model

Ref document number: 6697404

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150