【文献】
岡本 栄司,明るい情報化社会の実現をめざす暗号技術▲5▼ 暗号鍵配送管理,bit,日本,共立出版株式会社,1991年11月 1日,Vol.23、No.12,p.51−59
【文献】
竹森 敬祐,セキュアエレメントを基点とした車載制御システムの保護,電子情報通信学会技術研究報告,日本,一般社団法人 電子情報通信学会,2015年 3月 2日,第114巻 第508号,p.73-78
(58)【調査した分野】(Int.Cl.,DB名)
車両に備わる通信ネットワークを介してフレームにより通信する管理装置と複数の車載コンピュータを備える前記車両に備わる車載制御システムの前記車載コンピュータにおいて、
前記通信ネットワークを介して前記フレームを送受する通信部と、
一つの前記フレームに格納可能なデータ長の上限を超える所定データ長のデータであって前記管理装置と前記車載コンピュータで共有される第1のデータを記憶する第1データ記憶部と、
前記第1データ記憶部に記憶されている前記第1のデータと前記通信部が前記管理装置から前記通信ネットワークを介して受信した前記フレームであって一つの前記フレームに格納可能なデータ長である第2のデータを格納した第2データ格納フレームに格納されている前記第2のデータとを使用して、複数の前記車載コンピュータで共有される前記所定データ長の第3のデータを生成する第3データ生成部と、
を備える車載コンピュータ。
車両に備わる通信ネットワークを介してフレームにより通信する管理装置と複数の車載コンピュータを備える前記車両に備わる車載制御システムのデータ共有方法において、
前記管理装置が、一つの前記フレームに格納可能なデータ長の上限を超える所定データ長である第1のデータを記憶する第1データ記憶ステップと、
前記管理装置が、一つの前記フレームに格納可能なデータ長である第2のデータを生成する第2データ生成ステップと、
前記管理装置が、前記第2のデータを格納した前記フレームである第2データ格納フレームを、前記通信ネットワークを介して前記車載コンピュータへ送信する送信ステップと、
前記管理装置が、前記第1のデータと前記第2のデータを使用して、複数の前記車載コンピュータで共有される前記所定データ長の第3のデータを生成する第3データ生成ステップと、
前記車載コンピュータが、前記第1のデータを記憶する第2の第1データ記憶ステップと、
前記車載コンピュータが、前記管理装置から前記通信ネットワークを介して前記第2データ格納フレームを受信する受信ステップと、
前記車載コンピュータが、前記第2の第1データ記憶ステップで記憶した前記第1のデータと前記受信ステップで受信した前記第2データ格納フレームに格納されている前記第2のデータとを使用して、前記第3のデータを生成する第2の第3データ生成ステップと、
を含むデータ共有方法。
車両に備わる通信ネットワークを介してフレームにより通信する管理装置と複数の車載コンピュータを備える前記車両に備わる車載制御システムの前記管理装置のコンピュータに、
一つの前記フレームに格納可能なデータ長の上限を超える所定データ長のデータであって前記管理装置と前記車載コンピュータで共有される第1のデータを記憶する第1データ記憶機能と、
一つの前記フレームに格納可能なデータ長である第2のデータを生成する第2データ生成機能と、
前記第2のデータを格納した前記フレームである第2データ格納フレームを、前記通信ネットワークを介して前記車載コンピュータへ送信する通信機能と、
前記第1のデータと前記第2のデータを使用して、複数の前記車載コンピュータで共有される前記所定データ長の第3のデータを生成する第3データ生成機能と、
を実現させるためのコンピュータプログラム。
車両に備わる通信ネットワークを介してフレームにより通信する管理装置と複数の車載コンピュータを備える前記車両に備わる車載制御システムの前記車載コンピュータに、
一つの前記フレームに格納可能なデータ長の上限を超える所定データ長のデータであって前記管理装置と前記車載コンピュータで共有される第1のデータを記憶する第1データ記憶機能と、
一つの前記フレームに格納可能なデータ長である第2のデータを格納した前記フレームである第2データ格納フレームを前記管理装置から前記通信ネットワークを介して受信する通信機能と、
前記第1データ記憶機能により記憶されている前記第1のデータと前記通信機能により受信した前記第2データ格納フレームに格納されている前記第2のデータとを使用して、複数の前記車載コンピュータで共有される前記所定データ長の第3のデータを生成する第3データ生成機能と、
を実現させるためのコンピュータプログラム。
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来の車載制御システムのセキュリティ技術では、エンジン始動後などの制御の迅速性が要求される状況に更に適応するために、セキュリティ性能の向上を図ることが課題である。例えば、エンジン始動後に複数のECUで同じデータを共有する際に、該データのセキュリティ強度をある程度に保ちつつ共有にかかる時間を短縮することが課題の一つである。
【0005】
本発明は、このような事情を考慮してなされたものであり、セキュリティ性能の向上を図ることができる車載制御システム、車両、管理装置、車載コンピュータ、データ共有方法、及びコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【0006】
(1)本発明の一態様は、車両に備わる車載制御システムにおいて、前記車両に備わる通信ネットワークを介してフレームにより通信する管理装置と複数の車載コンピュータを備え、前記管理装置は、前記通信ネットワークを介して前記フレームを送受する通信部と、一つの前記フレームに格納可能なデータ長の上限を超えるデータ長である第1のデータを記憶する第1データ記憶部と、一つの前記フレームに格納可能なデータ長である第2のデータを生成する第2データ生成部と、前記第1のデータと前記第2のデータを使用して、複数の前記車載コンピュータで共有される第3のデータを生成する第3データ生成部と、を備え、前記通信部は、前記第2のデータを格納した前記フレームである第2データ格納フレームを、前記通信ネットワークを介して前記車載コンピュータへ送信し、前記車載コンピュータは、前記通信ネットワークを介して前記フレームを送受する通信部と、前記第1のデータを記憶する第1データ記憶部と、自車載コンピュータの前記第1データ記憶部に記憶されている前記第1のデータと自車載コンピュータの前記通信部が前記管理装置から前記通信ネットワークを介して受信した前記第2データ格納フレームに格納されている前記第2のデータとを使用して、前記第3のデータを生成する第3データ生成部と、を備える、車載制御システムである。
(2)本発明の一態様は、上記(1)の車載制御システムにおいて、前記管理装置の前記通信部は、ブロードキャスト又はマルチキャストにより前記第2データ格納フレームを送信し、前記車載コンピュータの前記通信部は、ブロードキャスト又はマルチキャストにより前記第2データ格納フレームを受信する、車載制御システムである。
(3)本発明の一態様は、上記(1)又は(2)のいずれかの車載制御システムにおいて、前記車載コンピュータは、前記第3のデータを、前記通信ネットワークを介して行われる通信に関する情報の初期値に使用する、車載制御システムである。
(4)本発明の一態様は、上記(3)の車載制御システムにおいて、前記通信に関する情報は、前記フレームについてのカウンタ値である、車載制御システムである。
(5)本発明の一態様は、上記(4)の車載制御システムにおいて、前記カウンタ値は、前記通信ネットワークを介して交換されるメッセージについてのメッセージ認証コードの生成に使用される、車載制御システムである。
(6)本発明の一態様は、上記(1)又は(2)のいずれかの車載制御システムにおいて、前記車載コンピュータは、前記第3のデータを、前記通信ネットワークを介して行われる通信に使用される鍵に使用する、車載制御システムである。
(7)本発明の一態様は、上記(1)から(6)のいずれかの車載制御システムにおいて、前記管理装置は、所定のタイミングで前記第1のデータを変更するデータ更新部と、該変更後の前記第1のデータを前記管理装置と前記車載コンピュータで共有される第1の鍵で暗号化する暗号処理部と、を備え、前記管理装置の前記通信部は、該暗号化の結果である第1暗号化データを格納した前記フレームである第1暗号化データ格納フレームを、前記通信ネットワークを介して前記車載コンピュータへ送信し、前記車載コンピュータは、自車載コンピュータの前記通信部が前記管理装置から前記通信ネットワークを介して受信した前記第1暗号化データ格納フレームに格納されている前記第1暗号化データを前記第1の鍵で復号する暗号処理部と、該復号の結果により自車載コンピュータの前記第1のデータを更新するデータ更新部と、を備える、車載制御システムである。
(8)本発明の一態様は、上記(7)の車載制御システムにおいて、前記管理装置の前記データ更新部は、所定のタイミングで前記第1の鍵を変更し、前記管理装置の前記暗号処理部は、該変更後の前記第1の鍵を前記管理装置と前記車載コンピュータで共有される第2の鍵で暗号化し、前記管理装置の前記通信部は、該暗号化の結果である第2暗号化データを格納した前記フレームである第2暗号化データ格納フレームを、前記通信ネットワークを介して前記車載コンピュータへ送信し、前記車載コンピュータの前記暗号処理部は、自車載コンピュータの前記通信部が前記管理装置から前記通信ネットワークを介して受信した前記第2暗号化データ格納フレームに格納されている前記第2暗号化データを前記第2の鍵で復号し、前記車載コンピュータの前記データ更新部は、該復号の結果により自車載コンピュータの前記第1の鍵を更新する、車載制御システムである。
【0007】
(9)本発明の一態様は、上記(1)から(8)のいずれかの車載制御システムを備える車両である。
【0008】
(10)本発明の一態様は、車両に備わる通信ネットワークを介してフレームにより通信する管理装置と複数の車載コンピュータを備える前記車両に備わる車載制御システムの前記管理装置において、前記通信ネットワークを介して前記フレームを送受する通信部と、一つの前記フレームに格納可能なデータ長の上限を超えるデータ長のデータであって前記管理装置と前記車載コンピュータで共有される第1のデータを記憶する第1データ記憶部と、一つの前記フレームに格納可能なデータ長である第2のデータを生成する第2データ生成部と、前記第1のデータと前記第2のデータを使用して、複数の前記車載コンピュータで共有される第3のデータを生成する第3データ生成部と、を備え、前記通信部は、前記第2のデータを格納した前記フレームである第2データ格納フレームを、前記通信ネットワークを介して前記車載コンピュータへ送信する、管理装置である。
【0009】
(11)本発明の一態様は、車両に備わる通信ネットワークを介してフレームにより通信する管理装置と複数の車載コンピュータを備える前記車両に備わる車載制御システムの前記車載コンピュータにおいて、前記通信ネットワークを介して前記フレームを送受する通信部と、一つの前記フレームに格納可能なデータ長の上限を超えるデータ長のデータであって前記管理装置と前記車載コンピュータで共有される第1のデータを記憶する第1データ記憶部と、前記第1データ記憶部に記憶されている前記第1のデータと前記通信部が前記管理装置から前記通信ネットワークを介して受信した前記フレームであって一つの前記フレームに格納可能なデータ長である第2のデータを格納した第2データ格納フレームに格納されている前記第2のデータとを使用して、複数の前記車載コンピュータで共有される第3のデータを生成する第3データ生成部と、を備える車載コンピュータである。
【0010】
(12)本発明の一態様は、車両に備わる通信ネットワークを介してフレームにより通信する管理装置と複数の車載コンピュータを備える前記車両に備わる車載制御システムのデータ共有方法において、前記管理装置が、一つの前記フレームに格納可能なデータ長の上限を超えるデータ長である第1のデータを記憶する第1データ記憶ステップと、前記管理装置が、一つの前記フレームに格納可能なデータ長である第2のデータを生成する第2データ生成ステップと、前記管理装置が、前記第2のデータを格納した前記フレームである第2データ格納フレームを、前記通信ネットワークを介して前記車載コンピュータへ送信する送信ステップと、前記管理装置が、前記第1のデータと前記第2のデータを使用して、複数の前記車載コンピュータで共有される第3のデータを生成する第3データ生成ステップと、前記車載コンピュータが、前記第1のデータを記憶する第2の第1データ記憶ステップと、前記車載コンピュータが、前記管理装置から前記通信ネットワークを介して前記第2データ格納フレームを受信する受信ステップと、前記車載コンピュータが、前記第2の第1データ記憶ステップで記憶した前記第1のデータと前記受信ステップで受信した前記第2データ格納フレームに格納されている前記第2のデータとを使用して、前記第3のデータを生成する第2の第3データ生成ステップと、を含むデータ共有方法である。
【0011】
(13)本発明の一態様は、車両に備わる通信ネットワークを介してフレームにより通信する管理装置と複数の車載コンピュータを備える前記車両に備わる車載制御システムの前記管理装置のコンピュータに、一つの前記フレームに格納可能なデータ長の上限を超えるデータ長のデータであって前記管理装置と前記車載コンピュータで共有される第1のデータを記憶する第1データ記憶機能と、一つの前記フレームに格納可能なデータ長である第2のデータを生成する第2データ生成機能と、前記第2のデータを格納した前記フレームである第2データ格納フレームを、前記通信ネットワークを介して前記車載コンピュータへ送信する通信機能と、前記第1のデータと前記第2のデータを使用して、複数の前記車載コンピュータで共有される第3のデータを生成する第3データ生成機能と、を実現させるためのコンピュータプログラムである。
【0012】
(14)本発明の一態様は、車両に備わる通信ネットワークを介してフレームにより通信する管理装置と複数の車載コンピュータを備える前記車両に備わる車載制御システムの前記車載コンピュータに、一つの前記フレームに格納可能なデータ長の上限を超えるデータ長のデータであって前記管理装置と前記車載コンピュータで共有される第1のデータを記憶する第1データ記憶機能と、一つの前記フレームに格納可能なデータ長である第2のデータを格納した前記フレームである第2データ格納フレームを前記管理装置から前記通信ネットワークを介して受信する通信機能と、前記第1データ記憶機能により記憶されている前記第1のデータと前記通信機能により受信した前記第2データ格納フレームに格納されている前記第2のデータとを使用して、複数の前記車載コンピュータで共有される第3のデータを生成する第3データ生成機能と、を実現させるためのコンピュータプログラムである。
【発明の効果】
【0013】
本発明によれば、セキュリティ性能の向上を図ることができるという効果が得られる。
【発明を実施するための形態】
【0015】
以下、図面を参照し、本発明の実施形態について説明する。なお、以下に示す実施形態では、車両として自動車を例に挙げて説明する。
【0016】
図1は、本発明の一実施形態に係る自動車1の車載制御システム2を示す構成図である。
図1において、自動車1は管理装置10とECU(電子制御装置)50を備える。管理装置10及びECU50は、CAN40に接続される。CANは、自動車等の車両に搭載される通信ネットワークの一つとして知られている。なお、本実施形態では、自動車1の制御用の車載ネットワークにCANを利用するが、CAN以外の他の通信ネットワークを自動車1の制御用の車載ネットワークに利用してもよい。
【0017】
ECU50は、自動車1に備わる車載コンピュータである。ECU50は、例えば、駆動系ECU、車体系ECU、安全制御系ECUなどである。車載制御システム2は、CAN40を介してフレームにより通信する管理装置10と複数のECU50を備える。CAN40は、フレームによりデータを伝送する。管理装置10は、CAN40を介してフレームにより、各ECU50との間でデータを交換する。ECU50は、CAN40を介してフレームにより、他のECU50との間でデータを交換する。
【0018】
CAN40のフレームには、フレームに格納可能なデータ長の上限が規定されている。例えば、CAN40のフレームの種類の一つであるデータフレームにおいて、データフィールドに格納可能なデータ長の上限は64ビットである。
【0019】
図1において、管理装置10は、通信部11と第1データ記憶部12と第2データ生成部13と第3データ生成部14とデータ更新部15と暗号処理部16を備える。通信部11は、CAN40を介してフレームを送受する。第1データ記憶部12は、一つのフレームに格納可能なデータ長の範囲を超えるデータ長である第1のデータを記憶する。本実施形態では、第1のデータは、データフレームのデータフィールドに格納可能なデータ長の上限「64ビット」を超えるデータ長である。したがって、第1のデータのデータ長は、65ビット以上である。第1のデータは、管理装置10とECU50で共有される。
【0020】
第2データ生成部13は、一つのフレームに格納可能なデータ長である第2のデータを生成する。本実施形態では、第2のデータは、データフレームのデータフィールドに格納可能なデータ長である。したがって、第2のデータのデータ長は、64ビット以下である。第3データ生成部14は、第1のデータと第2のデータを使用して、複数のECU50で共有される第3のデータを生成する。データ更新部15は、所定のタイミングで第1のデータ等を変更する。暗号処理部16は、データの暗号化等の暗号処理を実行する。
【0021】
通信部11は、第2のデータをデータフィールドに格納したデータフレームである第2データ格納フレームを、CAN40を介してECU50へ送信する。通信部11は、ブロードキャスト又はマルチキャストにより第2データ格納フレームを送信してもよい。ブロードキャスト又はマルチキャストにより第2データ格納フレームを送信することにより、各ECU50へユニキャストで第2データ格納フレームを送信する場合に比して、送信時間を短縮することができる。
【0022】
図1において、ECU50は、通信部51と第1データ記憶部52と第3データ生成部53とデータ更新部54と暗号処理部55を備える。通信部51は、CAN40を介してフレームを送受する。第1データ記憶部52は、管理装置10とECU50で共有される第1のデータを記憶する。第1データ記憶部52が記憶する第1のデータは、管理装置10の第1データ記憶部12が記憶する第1のデータと同じである。
【0023】
第3データ生成部53は、第1データ記憶部52に記憶されている第1のデータと、通信部51が管理装置10からCAN40を介して受信した第2データ格納フレームに格納されている第2のデータとを使用して、第3のデータを生成する。該第3のデータは、複数のECU50で共有されるデータである。データ更新部54は、自ECU50の第1のデータ等を更新する。暗号処理部55は、暗号化データの復号等の暗号処理を実行する。
【0024】
次に
図2を参照して、本実施形態に係る車載制御システム2のデータ共有の動作を説明する。
図2は、本実施形態に係るデータ共有方法を示すシーケンスチャートである。
図2において、管理装置10とECU50は、予め共有した第1のデータを有する。管理装置10は、該第1のデータを第1データ記憶部12に記憶している。ECU50は、該第1のデータを第1データ記憶部52に記憶している。
【0025】
(ステップS1)管理装置10において、第2データ生成部13が第2のデータを生成する。例えば、第2データ生成部13は、データ長が64ビットである乱数を発生する。
【0026】
(ステップS2)管理装置10において、通信部11が、該第2のデータをデータフィールドに格納したデータフレームである第2データ格納フレームを、CAN40を介してECU50へ送信する。通信部11は、例えばブロードキャストにより第2データ格納フレームを送信する。ECU50において、通信部51は、CAN40を介して管理装置10から該第2データ格納フレームを受信する。
【0027】
(ステップS3)管理装置10において、第3データ生成部14が第1データ記憶部12から第1のデータを読み出す。ECU50において、第3データ生成部53が第1データ記憶部52から第1のデータを読み出す。
【0028】
(ステップS4)管理装置10において、第3データ生成部14は、第1データ記憶部12から読み出した第1のデータと第2データ生成部13が生成した第2のデータとを使用して、第3のデータを生成する。ECU50において、第3データ生成部53は、第1データ記憶部52から読み出した第1のデータと、通信部51が受信した第2データ格納フレームに格納されている第2のデータとを使用して、第3のデータを生成する。第3のデータの生成方法は、管理装置10の第3データ生成部14とECU50の第3データ生成部53とで同じである。これにより、複数のECU50で同じ第3のデータを共有することができる。
【0029】
第3のデータの生成方法として、不可逆性圧縮処理を利用してもよい。第3のデータの生成方法として、例えば、暗号化、ハッシュ(Hash)値の生成、又は排他的論理和演算などが利用可能である。例えば、第1のデータを鍵に使用して第2のデータを暗号化した値を第3のデータにしてもよい。該暗号化した値として、例えばCMAC(Cipher-based Message Authentication Code)を算出してもよい。又は、第1のデータと第2のデータを連結したデータのハッシュ値を算出し、該ハッシュ値を第3のデータにしてもよい。ハッシュ値の生成方法として、SHA−1又はSHA−2などが利用可能である。又は、第1のデータと第2のデータの排他的論理和を第3のデータにしてもよい。
【0030】
本実施形態によれば、複数のECU50で同じ第3のデータを共有することができる。その第3のデータを共有する際に管理装置10からECU50へ送信する第2のデータは、64ビット以下のデータ長である。したがって、第2のデータを各ECU50に送信する際には、ブロードキャストにより送信すれば、1個のデータフレームの送信で済む。そして、管理装置10及びECU50において、第2のデータと管理装置10及びECU50で共有される第1のデータとを使用して第3のデータが生成される。該第1のデータのデータ長を第3のデータのセキュリティ強度に対する要求を満たすことができる値にすることにより、第3のデータのセキュリティ強度に対する要求に応えることができる。これにより、複数のECU50で同じ第3のデータを共有する際に、該第3のデータのセキュリティ強度をある程度に保ちつつ共有にかかる時間を短縮することができるという効果が得られる。
【0031】
なお、自動車1に備わるいずれかのECUを管理装置10として機能させてもよい。
【0032】
次に、本実施形態の実施例を説明する。
【0033】
[実施例1]
図3は、本実施形態に係る管理装置10の実施例1を示す構成図である。
図3において、管理装置10は、通信部11と鍵交換鍵記憶部21と乱数生成部22とカウンタ初期値生成部23とセッション鍵生成部24とデータ更新部15と暗号処理部16と共通鍵記憶部25を備える。通信部11はCAN40を介してフレームを送受する。鍵交換鍵記憶部21は鍵交換鍵を記憶する。鍵交換鍵は、管理装置10とECU50で予め共有される。鍵交換鍵は、第1のデータの例である。鍵交換鍵として、例えば、AES(Advanced Encryption Standard)による共通鍵を利用可能である。例えば、鍵交換鍵は、AESによる鍵長が256ビットの共通鍵である。鍵交換鍵記憶部21は、第1データ記憶部12の例である。
【0034】
乱数生成部22は、乱数を生成する。該乱数は第2のデータの例である。例えば、乱数生成部22は、データ長が64ビットである乱数を発生する。乱数生成部22は、第2データ生成部13の例である。カウンタ初期値生成部23は、カウンタ初期値を生成する。カウンタ初期値は、第3のデータの例である。カウンタ初期値生成部23は、第3データ生成部14の例である。セッション鍵生成部24は、セッション鍵を生成する。セッション鍵は、第3のデータの例である。セッション鍵生成部24は、第3データ生成部14の例である。データ更新部15は、所定のタイミングで鍵交換鍵等を変更する。暗号処理部16は、データの暗号化等の暗号処理を実行する。共通鍵記憶部25は共通鍵を記憶する。該共通鍵は、管理装置10とECU50で共有される。
【0035】
図4は、本実施形態に係るECU50の実施例1を示す構成図である。
図4において、ECU50は、送信部111と受信部112とフレーム受信処理部113とMAC(Message Authentication Code;メッセージ認証コード)生成部114とカウンタ部115とMAC検査部116とセッション鍵記憶部117と鍵交換鍵記憶部118とセッション鍵生成部119とカウンタ初期値生成部120とデータ更新部54と暗号処理部55と共通鍵記憶部121を備える。
【0036】
送信部111は、データフレームをCAN40に送信する。受信部112は、データフレームをCAN40から受信する。送信部111及び受信部112は、
図1に示すECU50の通信部51に含まれる。送信部111には、データフレームに格納する送信データ等のデータが入力される。送信部111は、該入力されたデータをデータフレーム中の該当部分に格納したデータフレームを、CAN40へ送信する。送信データは、データフレームのデータフィールドに格納される。フレーム受信処理部113は、受信部112によりCAN40から受信されたデータフレームについての受信処理を行う。MAC生成部114はMACを生成する。
【0037】
カウンタ部115は、送信カウンタ部としての機能と受信カウンタ部としての機能を有する。カウンタ部115は、送信カウンタ部の機能として、送信部111によるデータフレームの送信毎に所定のカウント値だけ増加させる送信カウンタ値を保持する。本実施例1では、該カウント値は1とする。したがって、カウンタ部115は、送信部111がデータフレームをCAN40に送信する毎に1だけ増加させる送信カウンタ値を保持する。この送信カウンタ値は、自ECU50がデータフレームをCAN40に送信する毎に1ずつ増やされる。
【0038】
カウンタ部115は、受信カウンタ部の機能として、受信部112によるデータフレームの受信毎に送信カウンタ部と同じ所定のカウント値だけ増加させる受信カウンタ値を保持する。本実施例1では、該カウント値は1となる。したがって、カウンタ部115は、受信部112がデータフレームをCAN40から受信する毎に1だけ増加させる受信カウンタ値を保持する。この受信カウンタ値は、データフレーム中のID(識別子)毎に設けられる。該IDは、データフレームを送信したECU50又は管理装置10に付与されているIDであり、データフレーム中のIDフィールドに格納される。受信部112が例えばIDxのデータフレームをCAN40から受信する毎に、該IDxの受信カウンタ値が1ずつ増やされる。
【0039】
例えば、車載制御システム2が5台のECU50を備え、該5台のECU50のIDがID1、ID2、ID3、ID4、ID5であるとする。この場合、カウンタ部115は合計5個のID1〜ID5に対応する5個のカウンタ値(ID1カウンタ値、ID2カウンタ値、ID3カウンタ値、ID4カウンタ値、ID5カウンタ値)を保持する。カウンタ部115において、自ECU50のIDに対応するカウンタ値が送信カウンタ値であり、自ECU50のID以外の他のIDに対応するカウンタ値が受信カウンタ値である。例えば、ID1のECU50においては、ID1カウンタ値が送信カウンタ値であり、ID2カウンタ値がID2に対応する受信カウンタ値であり、ID3カウンタ値がID3に対応する受信カウンタ値であり、ID4カウンタ値がID4に対応する受信カウンタ値であり、ID5カウンタ値がID5に対応する受信カウンタ値である。
【0040】
MAC検査部116は、受信部112によりCAN40から受信されたデータフレームから取得されたMACについての検査を行う。セッション鍵記憶部117は、セッション鍵を記憶する。鍵交換鍵記憶部118は、鍵交換鍵を記憶する。鍵交換鍵は、管理装置10とECU50で予め共有される。鍵交換鍵は、第1のデータの例である。鍵交換鍵記憶部118は、第1データ記憶部52の例である。セッション鍵生成部119は、セッション鍵を生成する。セッション鍵は、第3のデータの例である。セッション鍵生成部119は、第3データ生成部53の例である。カウンタ初期値生成部120は、カウンタ初期値を生成する。カウンタ初期値生成部120が生成したカウンタ初期値は、カウンタ部115のカウンタ値の初期値に使用される。カウンタ初期値は、第3のデータの例である。カウンタ初期値生成部120は、第3データ生成部53の例である。
【0041】
データ更新部54は、自ECU50の鍵交換鍵等を更新する。暗号処理部55は、暗号化データの復号等の暗号処理を実行する。共通鍵記憶部121は共通鍵を記憶する。該共通鍵は、管理装置10とECU50で共有される。
【0042】
MAC生成部114は、データフレーム中のデータフィールドに格納される送信データとカウンタ部115の送信カウンタ値とセッション鍵記憶部117に記憶されているセッション鍵を使用して、MACを生成する。MACとして、例えば、ハッシュ(Hash)値を算出する。ハッシュ値の生成方法として、SHA−1又はSHA−2などが利用可能である。送信部111は、データフレームに対して、送信データと該送信データを使用して生成されたMACを所定の部分に格納する。送信部111は、送信データと該送信データを使用して生成されたMACを格納したデータフレームをCAN40へ送信する。カウンタ部115は、該データフレームの送信により送信カウンタ値を1だけ増加させて保持する。
【0043】
MAC検査部116は、受信部112により受信したデータフレームである検査対象フレーム中のデータフィールドから受信データを取得する。また、MAC検査部116は、該検査対象フレーム中のIDフィールドに格納されているIDに対応する受信カウンタ値を、カウンタ部115から取得する。MAC検査部116は、該取得した受信データ及び受信カウンタ値と、セッション鍵記憶部117に記憶されているセッション鍵とを使用して、MAC(説明の便宜上、算出MACと称する)を生成する。このMAC生成方法は、上述したMAC生成部114と同じ算出方法(例えばSHA−2)により算出される。
【0044】
MAC検査部116は、検査対象フレーム中の所定の部分からMACを取得する。MAC検査部116は、該検査対象フレームから取得したMACと該検査対象フレームについての算出MACを使用して、MAC検査を実行する。例えば、該検査対象フレームから取得したMACと該検査対象フレームについての算出MACが一致するかを判定する。MAC検査が合格である場合、MAC検査部116は、フレーム受信処理部113へ、検査対象フレームの検査合格を通知する。これにより、フレーム受信処理部113は、受信部112により受信した検査対象フレームに対して、正常に受信したデータフレームに対する所定の受信処理を行う。また、MAC検査部116は、カウンタ部115に対して、検査対象フレームの検査合格を通知する。これにより、カウンタ部115は、該検査対象フレームのIDに対応する受信カウンタ値を1だけ増加させて保持する。一方、MAC検査が不合格である場合には、所定のエラー処理が実行される。
【0045】
上述したMACの生成及び検査では、カウンタ部115のカウンタ値が使用される。もし車載制御システム2に備わる複数のECU50の各カウンタ部115のカウンタ値の初期値が同じではない場合、MAC検査の結果が信頼できなくなる。このため、本実施例1では、カウンタ部115のカウンタ値の初期値を複数のECU50で共有する処理を実行する。以下、
図5を参照して、本実施例1に係るカウンタ初期値共有方法を説明する。
【0046】
図5は、本実施例1に係るカウンタ初期値共有方法を示すシーケンスチャートである。
図5において、管理装置10とECU50は、予め共有した同じ鍵交換鍵を有する。管理装置10は、該鍵交換鍵を鍵交換鍵記憶部21に記憶している。ECU50は、該鍵交換鍵を鍵交換鍵記憶部118に記憶している。
【0047】
なお、
図5に示すカウンタ初期値共有方法の実行時においては、データフレームにはMACが格納されない。したがって、データフレームの受信側はMAC検査を実行しない。これは、ECU50のカウンタ部115のカウンタ値の初期値に使用されるカウンタ初期値が、カウンタ初期値共有方法の実行により、複数のECU50で共有されるまでは、MAC検査を正常に実施することができないからである。
【0048】
(ステップS11)管理装置10において、乱数生成部22が乱数を生成する。例えば、乱数生成部22は、データ長が64ビットである乱数を生成する。
【0049】
(ステップS12)管理装置10において、通信部11が、該乱数をデータフィールドに格納したデータフレームである第2データ格納フレームを、CAN40を介してECU50へ送信する。通信部11は、例えばブロードキャストにより第2データ格納フレームを送信する。ECU50において、通信部51は、CAN40を介して管理装置10から該第2データ格納フレームを受信する。
【0050】
(ステップS13)管理装置10において、カウンタ初期値生成部23が鍵交換鍵記憶部21から鍵交換鍵を読み出す。ECU50において、カウンタ初期値生成部120が鍵交換鍵記憶部118から鍵交換鍵を読み出す。
【0051】
(ステップS14)管理装置10において、カウンタ初期値生成部23は、鍵交換鍵記憶部21から読み出した鍵交換鍵と乱数生成部22が生成した乱数とを使用して、カウンタ初期値を生成する。ECU50において、カウンタ初期値生成部120は、鍵交換鍵記憶部118から読み出した鍵交換鍵と、通信部51が受信した第2データ格納フレームに格納されている乱数とを使用して、カウンタ初期値を生成する。カウンタ初期値生成部120が生成したカウンタ初期値は、カウンタ部115のカウンタ値の初期値として設定される。
【0052】
カウンタ初期値の生成方法は、管理装置10のカウンタ初期値生成部23とECU50のカウンタ初期値生成部120とで同じである。カウンタ初期値の生成方法は、上述した第3のデータの生成方法と同様でよい。例えば、乱数を鍵交換鍵で暗号化した値(例えばCMAC)をカウンタ初期値にしてもよい。又は、鍵交換鍵と乱数を連結したデータのハッシュ値を算出し、該ハッシュ値をカウンタ初期値にしてもよい。又は、鍵交換鍵と乱数の排他的論理和をカウンタ初期値にしてもよい。
【0053】
以上が本実施例1に係るカウンタ初期値共有方法の説明である。本実施例1に係るカウンタ初期値共有方法によれば、複数のECU50で同じカウンタ初期値を共有することができる。さらに、複数のECU50で同じカウンタ初期値を共有する際に、該カウンタ初期値のセキュリティ強度をある程度に保ちつつ共有にかかる時間を短縮することができる。この効果について、カウンタ初期値のセキュリティ強度に対する要求としてカウンタ初期値のデータ長を256ビットにする場合を例に挙げて説明する。この場合、256ビットのカウンタ初期値をデータフレームで各ECU50に送信する際には、データフレームのデータフィールドに格納可能なデータ長の上限が64ビットであるので、ブロードキャストにより送信しても、少なくとも4個のデータフレームの送信が必要になる。
【0054】
一方、本実施例1によれば、管理装置10からECU50へ送信する乱数は、64ビット以下のデータ長である。例えば、64ビットの乱数である。したがって、該乱数を各ECU50に送信する際には、ブロードキャストにより送信すれば、1個のデータフレームの送信で済む。そして、管理装置10及びECU50において、該乱数と管理装置10及びECU50で共有される鍵交換鍵を使用してカウンタ初期値が生成される。該鍵交換鍵のデータ長を256ビットにすることにより、例えば64ビットの乱数と256ビットの鍵交換鍵を使用して、256ビットのカウンタ初期値を生成することができる。これにより、複数のECU50で同じカウンタ初期値を共有する際に、該カウンタ初期値のセキュリティ強度に対する要求(カウンタ初期値のデータ長が256ビットである)を保ちつつ共有にかかる時間を短縮することができるという効果が得られる。
【0055】
次に、本実施例1に係るセッション鍵共有方法を説明する。セッション鍵は、上述したMACの生成及び検査など、CAN40を介して行われる通信に使用される。もし車載制御システム2に備わる管理装置10及びECU50の各セッション鍵が同じではない場合、セッション鍵を使用した通信が信頼できなくなる。このため、本実施例1では、セッション鍵を管理装置10及びECU50で共有する処理を実行する。以下、
図6を参照して、本実施例1に係るセッション鍵共有方法を説明する。
【0056】
図6は、本実施例1に係るセッション鍵共有方法を示すシーケンスチャートである。
図6において、管理装置10とECU50は、予め共有した同じ鍵交換鍵を有する。管理装置10は、該鍵交換鍵を鍵交換鍵記憶部21に記憶している。ECU50は、該鍵交換鍵を鍵交換鍵記憶部118に記憶している。
【0057】
なお、
図6に示すセッション鍵共有方法の実行時においては、データフレームにはMACが格納されない。したがって、データフレームの受信側はMAC検査を実行しない。これは、セッション鍵が、セッション鍵共有方法の実行により、複数のECU50で共有されるまでは、MAC検査を正常に実施することができないからである。
【0058】
(ステップS21)管理装置10において、乱数生成部22が乱数を生成する。例えば、乱数生成部22は、データ長が64ビットである乱数を発生する。
【0059】
(ステップS22)管理装置10において、通信部11が、該乱数をデータフィールドに格納したデータフレームである第2データ格納フレームを、CAN40を介してECU50へ送信する。通信部11は、例えばブロードキャストにより第2データ格納フレームを送信する。ECU50において、通信部51は、CAN40を介して管理装置10から該第2データ格納フレームを受信する。
【0060】
(ステップS23)管理装置10において、セッション鍵生成部24が鍵交換鍵記憶部21から鍵交換鍵を読み出す。ECU50において、セッション鍵生成部119が鍵交換鍵記憶部118から鍵交換鍵を読み出す。
【0061】
(ステップS24)管理装置10において、セッション鍵生成部24は、鍵交換鍵記憶部21から読み出した鍵交換鍵と乱数生成部22が生成した乱数とを使用して、セッション鍵を生成する。ECU50において、セッション鍵生成部119は、鍵交換鍵記憶部118から読み出した鍵交換鍵と、通信部51が受信した第2データ格納フレームに格納されている乱数とを使用して、セッション鍵を生成する。セッション鍵生成部119が生成したセッション鍵は、セッション鍵記憶部117に格納される。これにより、同じセッション鍵が管理装置10及びECU50で共有される。
【0062】
セッション鍵の生成方法は、管理装置10のセッション鍵生成部24とECU50のセッション鍵生成部119とで同じである。セッション鍵の生成方法は、上述した第3のデータの生成方法と同様でよい。例えば、乱数を鍵交換鍵で暗号化した値(例えばCMAC)をセッション鍵にしてもよい。又は、鍵交換鍵と乱数を連結したデータのハッシュ値を算出し、該ハッシュ値をセッション鍵にしてもよい。又は、鍵交換鍵と乱数の排他的論理和をセッション鍵にしてもよい。
【0063】
以上が本実施例1に係るセッション鍵共有方法の説明である。本実施例1に係るセッション鍵共有方法によれば、複数のECU50で同じセッション鍵を共有することができる。さらに、複数のECU50で同じセッション鍵を共有する際に、該セッション鍵のセキュリティ強度をある程度に保ちつつ共有にかかる時間を短縮することができる。この効果は、上述したカウンタ初期値の場合と同様の理由により得られる。
【0064】
なお、上述の実施例1において、カウンタ初期値又はセッション鍵の共有を実行するタイミングとして、例えば、自動車1のエンジン始動直後のタイミングにしてもよい。自動車1のエンジン始動中は、自動車1においてECU50への電源供給が不十分になってECU50の動作が不安定になる可能性がある。ECU50の動作が不安定になると、ECU50においてDRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性メモリに格納されたデータが正常に保たれない可能性がある。このため、カウンタ値やセッション鍵を揮発性メモリに格納する場合には、自動車1のエンジンの始動前及び始動中にカウンタ初期値やセッション鍵の共有を実行することは避け、エンジン始動後のECU50の動作が安定している状態でカウンタ初期値やセッション鍵の共有を実行することが好ましい。さらには、エンジンが始動してから走行が開始されるまでの期間に、カウンタ初期値やセッション鍵の共有が完了することが好ましい。これは、自動車1の走行中にはエンジン制御やブレーキ制御等の制御が実行されるので、ECU50間で交換されるメッセージの信頼性を保つためにMAC検査を正常に実行するためである。
【0065】
また、上述の
図5に示すカウンタ初期値共有方法では、鍵交換鍵を使用してカウンタ初期値を生成したが、鍵交換鍵の代わりにセッション鍵を使用してもよい。セッション鍵を使用してカウンタ初期値を生成する場合には、管理装置10及びECU50で同じセッション鍵が共有されてから、カウンタ初期値の共有を実行する。
【0066】
次に本実施例1に係る鍵交換鍵更新方法を説明する。上述したカウンタ初期値共有方法又はセッション鍵共有方法により鍵交換鍵が繰り返し使用されると、漏洩電磁波解析などの解析が行われることによって鍵交換鍵が漏洩する可能性がある。この対策として、本実施例1では、
図7及び
図8に示される多層共通鍵方式により鍵交換鍵の更新を行う。以下、
図7及び
図8を参照して、本実施例1に係る鍵交換鍵更新方法を説明する。
【0067】
まず
図7を参照して鍵交換鍵更新方法の第1段階を説明する。
図7は、鍵交換鍵更新方法の第1段階を示すシーケンスチャートである。
図7において、管理装置10とECU50は、予め共有したN番目の鍵交換鍵である現鍵交換鍵(N)を有する。管理装置10は、現鍵交換鍵(N)を鍵交換鍵記憶部21に記憶している。ECU50は、現鍵交換鍵(N)を鍵交換鍵記憶部118に記憶している。
【0068】
また、管理装置10とECU50は、予め共有したα系統のN番目の共通鍵であるα現共通鍵(N)を有する。α系統の共通鍵は、第1の鍵の例である。また、管理装置10とECU50は、予め共有したβ系統のN番目の共通鍵であるβ現共通鍵(N)を有する。β系統の共通鍵は、第2の鍵の例である。管理装置10は、α現共通鍵(N)及びβ現共通鍵(N)を共通鍵記憶部25に記憶している。ECU50は、α現共通鍵(N)及びβ現共通鍵(N)を共通鍵記憶部121に記憶している。
【0069】
(ステップS31)管理装置10において、データ更新部15は、所定のタイミングで、新しい「N+1」番目の鍵交換鍵である新鍵交換鍵(N+1)を生成する。データ更新部15は、鍵交換鍵記憶部21に記憶される鍵交換鍵を、現鍵交換鍵(N)から新鍵交換鍵(N+1)に書き換える。管理装置10は、例えば、現鍵交換鍵(N)が使用された回数が規定回数に達した場合に、鍵交換鍵を、現鍵交換鍵(N)から新鍵交換鍵(N+1)に変更してもよい。
【0070】
(ステップS32)管理装置10において、暗号処理部16は、新鍵交換鍵(N+1)をα現共通鍵(N)で暗号化する。
【0071】
(ステップS33)管理装置10において、通信部11は、該新鍵交換鍵(N+1)の暗号化の結果である第1暗号化データ(N+1)を格納したデータフレームである第1暗号化データ格納フレームを、CAN40を介してECU50へ送信する。通信部11は、例えばブロードキャストにより第1暗号化データ格納フレームを送信する。ECU50において、通信部51は、CAN40を介して管理装置10から該第1暗号化データ格納フレームを受信する。
【0072】
(ステップS34)ECU50において、暗号処理部55は、該通信部51が管理装置10から受信した第1暗号化データ格納フレームに格納されている第1暗号化データ(N+1)をα現共通鍵(N)で復号する。ECU50において、データ更新部54は、該復号の結果により、鍵交換鍵記憶部118に記憶される鍵交換鍵を現鍵交換鍵(N)から書き換える。これにより、ECU50の鍵交換鍵記憶部118に記憶される鍵交換鍵が、現鍵交換鍵(N)から新鍵交換鍵(N+1)に更新される。
【0073】
次に
図8を参照して鍵交換鍵更新方法の第2段階を説明する。
図8は、鍵交換鍵更新方法の第2段階を示すシーケンスチャートである。上述の鍵交換鍵更新方法の第1段階により、α現共通鍵(N)が繰り返し使用されると、漏洩電磁波解析などの解析が行われることによってα現共通鍵(N)が漏洩する可能性がある。この対策として、本実施例1では、
図8に示される鍵交換鍵更新方法の第2段階により、α系統の共通鍵の更新を行う。以下、
図8を参照して、本実施例1に係る鍵交換鍵更新方法の第2段階を説明する。
図8において、管理装置10とECU50は、予め共有したα現共通鍵(N)及びβ現共通鍵(N)を有する。管理装置10は、α現共通鍵(N)及びβ現共通鍵(N)を共通鍵記憶部25に記憶している。ECU50は、α現共通鍵(N)及びβ現共通鍵(N)を共通鍵記憶部121に記憶している。
【0074】
(ステップS41)管理装置10において、データ更新部15は、所定のタイミングで、α系統の新しい「N+1」番目の共通鍵であるα新共通鍵(N+1)を生成する。管理装置10は、共通鍵記憶部25に記憶されるα系統の共通鍵を、α現共通鍵(N)からα新共通鍵(N+1)に書き換える。管理装置10は、例えば、α現共通鍵(N)が使用された回数が規定回数に達した場合に、α系統の共通鍵を、α現共通鍵(N)からα新共通鍵(N+1)に変更してもよい。
【0075】
(ステップS42)管理装置10において、暗号処理部16は、α新共通鍵(N+1)をβ現共通鍵(N)で暗号化する。
【0076】
(ステップS43)管理装置10において、通信部11は、該α新共通鍵(N+1)の暗号化の結果である第2暗号化データ(N+1)を格納したデータフレームである第2暗号化データ格納フレームを、CAN40を介してECU50へ送信する。通信部11は、例えばブロードキャストにより第2暗号化データ格納フレームを送信する。ECU50において、通信部51は、CAN40を介して管理装置10から該第2暗号化データ格納フレームを受信する。
【0077】
(ステップS44)ECU50において、暗号処理部55は、該通信部51が管理装置10から受信した第2暗号化データ格納フレームに格納されている第2暗号化データ(N+1)をβ現共通鍵(N)で復号する。ECU50において、データ更新部54は、該復号の結果により、共通鍵記憶部121に記憶されるα系統の共通鍵をα現共通鍵(N)から書き換える。これにより、ECU50の共通鍵記憶部121に記憶されるα系統の共通鍵が、α現共通鍵(N)からα新共通鍵(N+1)に更新される。
【0078】
上述の
図7及び
図8に示される多層共通鍵方式による鍵交換鍵更新方法によれば、共通鍵方式の高速性を得ることができると共に、同じ処理ルーチンを繰り返し利用することができる。同じ処理ルーチンを繰り返し利用することにより、プログラムコードの単純化を図ることができるので、限られたコンピュータ資源であるECU50のCPU性能及びメモリ量に好適である。
【0079】
なお、上述した実施例1において、管理装置10が、
図4に示すMACの生成及び検査に係る各部を備え、送信するデータフレームに格納するMACの生成及び受信したデータフレームに格納されているMACの検査を実行するようにしてもよい。
【0080】
また、自動車1に備わるいずれかのECUを管理装置10として機能させてもよい。
【0081】
[実施例2]
図9は、本実施形態に係る自動車1の実施例2を示す構成図である。
図9において、自動車1は、ゲートウェイ10aとCAN40とECU50と診断ポート70とインフォテイメント(Infotainment)機器200を備える。インフォテイメント機器200として、例えば、ナビゲーション機能、位置情報サービス機能、音楽や動画などのマルチメディア再生機能、音声通信機能、データ通信機能、インターネット接続機能などを有するものが挙げられる。インフォテイメント機器200は、外部機器220と接続して、外部機器220とデータを交換する。外部機器220として、例えば、携帯通信端末やオーディオビジュアル機器などが挙げられる。
【0082】
診断ポート70は、診断ツール210を接続する。診断ツール210は、診断ポート70を介して、ECU50等の更新プログラムのインストールやデータの設定変更などを実行する。診断ポート70として、例えばOBD(On-board Diagnostics)ポートを使用してもよい。
【0083】
ゲートウェイ10aは、CAN40に接続される。インフォテイメント機器200は、ゲートウェイ10aを介して、CAN40に接続されるECU50とデータを送受する。ゲートウェイ10aは、インフォテイメント機器200とECU50の間のデータの送受を監視する。診断ツール210は、診断ポート70及びゲートウェイ10aを介して、CAN40に接続されるECU50とデータを送受する。ゲートウェイ10aは、診断ツール210とECU50の間のデータの送受を監視する。
【0084】
ゲートウェイ10aは、本実施形態に係る管理装置10の機能を備える。ゲートウェイ10aはセキュアエレメント61を備える。ECU50はセキュアエレメント62を備える。セキュアエレメント61及び62は耐タンパー性(Tamper Resistant)を有する。ゲートウェイ10aにおいて、セキュアエレメント61は、
図1に示す管理装置10の各部のうち、第1データ記憶部12、第3データ生成部14、データ更新部15及び暗号処理部16を備えてもよい。又は、ゲートウェイ10aにおいて、セキュアエレメント61は、
図3に示す管理装置10の各部のうち、鍵交換鍵記憶部21、カウンタ初期値生成部23、セッション鍵生成部24、データ更新部15、暗号処理部16及び共通鍵記憶部25を備えてもよい。
【0085】
ECU50において、セキュアエレメント62は、
図1に示すECU50の各部のうち、第1データ記憶部52、第3データ生成部53、データ更新部54及び暗号処理部55を備えてもよい。又は、ECU50において、セキュアエレメント62は、
図4に示すECU50の各部のうち、鍵交換鍵記憶部118、カウンタ初期値生成部120、セッション鍵生成部119、セッション鍵記憶部117、データ更新部54、暗号処理部55及び共通鍵記憶部121を備えてもよい。
【0086】
セキュアエレメントとして、例えば、SIM(Subscriber Identity Module)又はeSIM(Embedded Subscriber Identity Module)を使用してもよい。SIM及びeSIMは、セキュアエレメントであり、耐タンパー性を有する。SIM及びeSIMは、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。又は、セキュアエレメントとして、耐タンパー性のある暗号処理チップを使用してもよい。耐タンパー性のある暗号処理チップとして、例えば、HSM(Hardware Security Module)、TPM(Trusted Platform Module)、又はSHE(Secure Hardware Extension)などと呼ばれる暗号処理チップが知られている。
【0087】
例えば、ゲートウェイ10aのセキュアエレメント61として、SIM又はeSIMを使用してもよい。この場合、ゲートウェイ10aは、SIM又はeSIMを使用して無線通信を行う通信モジュールを備えてもよい。また、ECU50のセキュアエレメント62として、HSM、TPM又はSHEを使用してもよい。
【0088】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【0089】
例えば、上述の実施形態では、車両として自動車を例に挙げたが、原動機付自転車や鉄道車両等の自動車以外の他の車両にも適用可能である。
【0090】
また、上述した管理装置10、ECU50又はゲートウェイ10aの機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0091】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。