説明

電子制御装置

【課題】従来よりもセキュリティ性を向上可能な電子制御装置を提供する。
【解決手段】メインクロックで動作する主集積回路と、前記主集積回路と通信可能に接続され、前記メインクロックとは異なるサブクロックで動作する副集積回路と、を具備し、前記副集積回路は、前記主集積回路の要求に応じて前記サブクロックのクロック論理を取得し、該取得したクロック論理を前記主集積回路へ送信するクロック論理取得部を備え、前記主集積回路は、前記副集積回路から受信した前記クロック論理に基づいて乱数を生成する乱数生成部を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子制御装置に関する。
【背景技術】
【0002】
従来から車両の盗難を防止する技術として、キーに内蔵された電子チップが保有する暗証コードと、車両側コントローラが保有する暗証コードとを照合し、両者が一致する場合にエンジン始動を許可する車両盗難防止システム(所謂イモビライザー)が知られている。
近年では、より高いセキュリティ性を確保するために、キー固有の暗証コードの照合に加えて、定期的に生成した乱数を暗号化して得られる乱数コードの照合を行う車両盗難防止システムも実用化されている。
【0003】
例えば、下記特許文献1には、意図的に操作することが困難なエンジン制御用のアナログ信号(冷却水温、吸気管圧力、バッテリ電圧、ECU内温度、ECU電源電圧等)をA/D変換して得られたデジタルデータの下位2ビットを順番に組み合わせて乱数を生成する機能をエンジンECUに持たせることにより、車両盗難に対して高いセキュリティ性を確保する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第3893758号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記特許文献1の技術では、悪意の第3者によってエンジンECUに擬似アナログ信号が入力され、エンジンECU内で生成された乱数と擬似アナログ信号との関連性を解析された場合、エンジン制御用のアナログ信号に基づく乱数生成手法が悪意の第3者に漏洩し、車両盗難に悪用される虞があった。
【0006】
本発明は上述した事情に鑑みてなされたものであり、従来よりもセキュリティ性を向上可能な電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明では、電子制御装置に係る第1の解決手段として、メインクロックで動作する主集積回路と、前記主集積回路と通信可能に接続され、前記メインクロックとは異なるサブクロックで動作する副集積回路と、を具備し、前記副集積回路は、前記主集積回路の要求に応じて前記サブクロックのクロック論理を取得し、該取得したクロック論理を前記主集積回路へ送信するクロック論理取得部を備え、前記主集積回路は、前記副集積回路から受信した前記クロック論理に基づいて乱数を生成する乱数生成部を備えることを特徴とする。
【0008】
また、本発明では、電子制御装置に係る第2の解決手段として、メインクロックで動作する主集積回路と、前記主集積回路と通信可能に接続され、前記メインクロックとは異なるサブクロックで動作する複数の副集積回路と、を具備し、前記複数の副集積回路の内、少なくとも1つの副集積回路は、前記主集積回路の要求に応じて前記サブクロックのクロック論理を取得し、該取得したクロック論理を前記主集積回路へ送信するクロック論理取得部を備え、前記主集積回路は、前記クロック論理取得部を備える副集積回路から受信した前記クロック論理に基づいて乱数を生成する乱数生成部を備えることを特徴とする。
【0009】
また、本発明では、電子制御装置に係る第3の解決手段として、上記第1または第2の解決手段において、前記乱数生成部は、受信した前記クロック論理を所定の規則に従って組み合わせて得られるビットデータを用いて乱数を生成することを特徴とする。
【発明の効果】
【0010】
本発明によれば、電子制御装置に外部から入力される信号を使用することなく、電子制御装置内で乱数生成が完結するため、従来技術と比較してセキュリティ性を向上することができる。
【図面の簡単な説明】
【0011】
【図1】第1実施形態におけるエンジン制御用ECU(電子制御装置)1の構成概略図(a)及びエンジン制御用ECU1の乱数生成動作を表すフローチャート(b)である。
【図2】エンジン制御用ECU1の乱数生成動作を表すタイミングチャートである。
【図3】第2実施形態におけるエンジン制御用ECU2の構成概略図(a)及びエンジン制御用ECU2の乱数生成動作を表すタイミングチャート(b)である。
【図4】第3実施形態におけるエンジン制御用ECU3の構成概略図(a)及びエンジン制御用ECU3の乱数生成動作を表すタイミングチャート(b)である。
【発明を実施するための形態】
【0012】
以下、本発明の一実施形態について、図面を参照しながら説明する。なお、以下では、本発明に係る電子制御装置として、車両に搭載されてエンジン制御を行うエンジン制御用ECU(Electronic Control Unit)を例示して説明する。
〔第1実施形態〕
まず、本発明の第1実施形態について説明する。図1(a)に示すように、第1実施形態におけるエンジン制御用ECU1は、メインクロックCLK_Aで動作するCPU(主集積回路:Central Processing Unit)10と、このCPU10と通信可能に接続され、メインクロックCLK_Aとは異なるサブクロックCLK_1で動作するIC(副集積回路:Integrated Circuit)20_1とを備えている。
【0013】
CPU10は、不図示の不揮発性メモリに記憶されたエンジン制御プログラムに従って、エンジン制御(燃料噴射制御、燃料ポンプ制御及び点火制御)を行う集積回路であり、IC20_1と通信を行う通信部10aと、該通信部10aを介してIC20_1から受信したクロック論理に基づいて乱数を生成する乱数生成部10bを備えている。また、このCPU10は、上記乱数を利用して不正なエンジン始動操作が為されたか否かを判断し、否の場合(正規のエンジン始動操作が為された場合)にのみエンジン始動制御を実施する車両盗難防止機能を備えている。なお、乱数を利用した車両盗難防止機能については、特許文献1(特許第3893758号公報)に記載された技術など公知の技術を適用できるため、本実施形態では詳細な説明を省略する。
【0014】
IC20_1は、CPU10と連携しながら車両走行に関わる制御(例えばミッション制御やダンパー制御など)を行う集積回路であり、CPU10と通信を行う通信部20aと、該通信部20aを介して受信したCPU10の要求に応じてサブクロックCLK_1のクロック論理を取得し、該取得したクロック論理を通信部20aを介してCPU10へ送信するクロック論理取得部20bを備えている。
【0015】
続いて、上記のように構成されたエンジン制御用ECU1の乱数生成動作について詳細に説明する。図1(b)は、CPU10とIC20_1が連携しながら(通信しながら)実行する乱数生成処理を示すフローチャートである。なお、CPU10及びIC20_1は、図1(b)に示す乱数生成処理を定周期で繰り返し実行する。
【0016】
この図1(b)に示すように、CPU10の乱数生成部10bは、まず、通信部10aを介してIC20_1へクロック論理の要求信号を送信する(ステップS1)。一方、IC20_1のクロック論理取得部20bは、通信部20aを介してCPU10からクロック論理の要求信号を受信すると、サブクロックCLK_1のクロック論理(「0」或いは「1」)を取得し(ステップS11)、該取得したクロック論理を通信部20aを介してCPU10へ送信する(ステップS12)。
【0017】
一方、CPU10の乱数生成部10bは、通信部10aを介してIC20_1からクロック論理を受信すると(ステップS2)、該受信したクロック論理を用いて乱数Bitを作成する(ステップS3)。ここで、乱数Bitとは、受信したクロック論理を所定の規則に従って組み合わせて得られる例えば16ビットのビットデータである。この乱数Bitは、エンジン制御用ECU1の電源投入時(イグニションオン時)に全ビットが「0」に初期化されており、乱数生成部10bは、IC20_1からクロック論理を受信する毎に、そのクロック論理を乱数BitのLSB(最下位ビット)側から順番にセットすることで16ビットの乱数Bitを作成する。
【0018】
そして、CPU10の乱数生成部10bは、乱数Bitが完成したか否か、つまりIC20_1から受信したクロック論理によって乱数Bitの全16ビットがセットされたか否かを判定し(ステップS4)、「No」の場合には乱数生成処理を終了する一方、「Yes」の場合には完成した乱数Bitから乱数を生成する(ステップS5)。ここで、乱数の生成には、混合合同法、平方採中法或いは線形合同法などの一般的な乱数生成手法に基づく乱数生成式を用いることができる。最後に、CPU10の乱数生成部10bは、上記のように生成した乱数をメモリ(図示省略)に格納する(ステップS6)。
【0019】
図2は、CPU10及びIC20_1が上記の乱数生成処理を実行することで、乱数Bitが作成される様子をタイミングチャートで表したものである。この図2に示すように、CPU10とIC20_1は、定周期で乱数通信(図1(b)のステップS1、S2、S11、S12によって実現されるクロック論理の送受信)を実施するが、その間には乱数通信以外の通信(例えば、電源投入時の初期化処理や故障診断処理用の通信など)も実施する。
【0020】
例えば、図2中の時刻t1において、IC20_1のクロック論理取得部20bが、サブクロックCLK_1のクロック論理(ここでは「1」)を取得してCPU10へ送信したと仮定する。この時、CPU10の乱数生成部10bは、メインクロックCLK_Aに同期してクロック論理「1」を受信し、該受信したクロック論理「1」を乱数BitのLSBにセットする。この時点では乱数Bitが完成していないため、一旦、乱数生成処理は終了する。
【0021】
続いて、例えば、図2中の時刻t2において、IC20_1のクロック論理取得部20bが、サブクロックCLK_1のクロック論理(ここでは「0」)を取得してCPU10へ送信したと仮定する。この時、CPU10の乱数生成部10bは、メインクロックCLK_Aに同期してクロック論理「0」を受信し、該受信したクロック論理「0」を乱数Bitの下位2ビット目にセットする。この時点では乱数Bitが完成していないため、一旦、乱数生成処理は終了する。
【0022】
続いて、例えば、図2中の時刻t3において、IC20_1のクロック論理取得部20bが、サブクロックCLK_1のクロック論理(ここでは「1」)を取得してCPU10へ送信したと仮定する。この時、CPU10の乱数生成部10bは、メインクロックCLK_Aに同期してクロック論理「1」を受信し、該受信したクロック論理「1」を乱数Bitの下位3ビット目にセットする。この時点では乱数Bitが完成していないため、一旦、乱数生成処理は終了する。
【0023】
以下同様に、乱数通信が実施される毎に、IC20_1側で取得されたサブクロックCLK_1のクロック論理が乱数Bitに順次セットされ、乱数通信が16回実施された時点で乱数Bitが完成することになる。CPU10の乱数生成部10bは、乱数Bitが完成すると、上記ステップS5、S6の処理を実行して乱数を生成すると共に、該生成した乱数をメモリに格納する。
【0024】
以上のように、本実施形態によれば、エンジン制御用ECU1に外部から入力される信号を使用することなく、エンジン制御用ECU1内で乱数生成が完結するため、従来技術と比較してセキュリティ性を向上することができる。
また、サブクロックCLK_1とメインクロックCLK_Aは非同期のため、IC20_1側で取得されるサブクロックCLK_1のクロック論理にはバラツキが発生する。さらに、CPU10とIC20_1の間で乱数通信及び乱数通信以外の通信が実施されることも、クロック論理にバラツキが発生する要因となる。つまり、本実施形態によれば、悪意の第3者にとって、乱数生成の基となるクロック論理を特定することが極めて困難となるため、より高いセキュリティ性を確保することができる。
【0025】
〔第2実施形態〕
次に、本発明の第2実施形態について説明する。図3(a)に示すように、第2実施形態におけるエンジン制御用ECU2は、メインクロックCLK_Aで動作するCPU10と、このCPU10と通信可能に接続され、メインクロックCLK_Aとは異なるサブクロックCLK_1、CLK_2、…、CLK_nで動作する複数(n個)のIC20_1、20_2、…、20_nとを備えている。なお、nは2以上の整数である。
【0026】
本実施形態では、全てのIC20_1、20_2、…、20_nがCPU10と通信を行う通信部20aを備えている一方、IC20_1のみがCPU10の要求に応じてサブクロックCLK_1のクロック論理を取得するクロック論理取得部20bを備えている。
つまり、本実施形態では、全てのIC20_1、20_2、…、20_nとCPU10の間で乱数通信以外の通信が実施されるが、乱数通信はIC20_1とCPU10の間でのみ実施される。
【0027】
なお、本実施形態では、クロック論理取得部20bを備えるIC20_1が使用するサブクロックCLK_1のみがメインクロックCLK_Aと異なれば良く、各サブクロックCLK_1、CLK_2、…、CLK_nは同じクロックを用いても良い。
【0028】
続いて、上記のように構成されたエンジン制御用ECU2の乱数生成動作について説明する。なお、以下では、CPU10とIC20_1が連携しながら実行する乱数生成処理については図1(b)と同じであるので説明を省略し、この乱数生成処理によって乱数Bitが作成される様子を図3(b)のタイミングチャートを参照しながら説明する。
【0029】
この図3(b)に示すように、CPU10とIC20_1の間で乱数通信が定周期で実施されるが、全てのIC20_1、20_2、…、20_nとCPU10の間で乱数通信以外の通信も実施される。
例えば、図中の時刻t11において、IC20_1のクロック論理取得部20bが、サブクロックCLK_1のクロック論理(ここでは「1」)を取得してCPU10へ送信したと仮定する。この時、CPU10の乱数生成部10bは、メインクロックCLK_Aに同期してクロック論理「1」を受信し、該受信したクロック論理「1」を乱数BitのLSBにセットする。この時点では乱数Bitが完成していないため、一旦、乱数生成処理は終了する。
【0030】
続いて、例えば、図中の時刻t12において、IC20_1のクロック論理取得部20bが、サブクロックCLK_1のクロック論理(ここでは「0」)を取得してCPU10へ送信したと仮定する。この時、CPU10の乱数生成部10bは、メインクロックCLK_Aに同期してクロック論理「0」を受信し、該受信したクロック論理「0」を乱数Bitの下位2ビット目にセットする。この時点では乱数Bitが完成していないため、一旦、乱数生成処理は終了する。
【0031】
続いて、例えば、図中の時刻t13において、IC20_1のクロック論理取得部20bが、サブクロックCLK_1のクロック論理(ここでは「1」)を取得してCPU10へ送信したと仮定する。この時、CPU10の乱数生成部10bは、メインクロックCLK_Aに同期してクロック論理「1」を受信し、該受信したクロック論理「1」を乱数Bitの下位3ビット目にセットする。この時点では乱数Bitが完成していないため、一旦、乱数生成処理は終了する。
【0032】
以下同様に、乱数通信が実施される毎に、IC20_1側で取得されたサブクロックCLK_1のクロック論理が乱数Bitに順次セットされ、16回乱数通信が実施された時点で乱数Bitが完成することになる。CPU10の乱数生成部10bは、乱数Bitが完成すると、上記ステップS5、S6の処理を実行して乱数を生成すると共に、該生成した乱数をメモリに格納する。
【0033】
以上のように、本実施形態によれば、第1実施形態と同様に、エンジン制御用ECU2に外部から入力される信号を使用することなく、エンジン制御用ECU2内で乱数生成が完結するため、従来技術と比較してセキュリティ性を向上することができる。
また、サブクロックCLK_1とメインクロックCLK_Aは非同期のため、IC20_1側で取得されるサブクロックCLK_1のクロック論理にはバラツキが発生する。さらに、CPU10と全てのIC20_1、20_2、…、20_nの間で乱数通信及び乱数通信以外の通信が実施されることも、クロック論理にバラツキが発生する要因となる。つまり、本実施形態によれば、第1実施形態と同様に、悪意の第3者にとって、乱数生成の基となるクロック論理を特定することが極めて困難となるため、より高いセキュリティ性を確保することができる。
【0034】
〔第3実施形態〕
次に、本発明の第3実施形態について説明する。図4(a)に示すように、第3実施形態におけるエンジン制御用ECU3は、メインクロックCLK_Aで動作するCPU10と、このCPU10と通信可能に接続され、メインクロックCLK_Aとは異なるサブクロックCLK_1、CLK_2、…、CLK_nで動作する複数(n個)のIC20_1、20_2、…、20_nとを備えている。なお、nは2以上の整数である。
【0035】
本実施形態では、全てのIC20_1、20_2、…、20_nがCPU10と通信を行う通信部20aと、CPU10の要求に応じてサブクロックCLK_1、CLK_2、…、CLK_nのクロック論理を取得するクロック論理取得部20bを備えている。つまり、本実施形態では、全てのIC20_1、20_2、…、20_nとCPU10の間で乱数通信及び乱数通信以外の通信が実施される。
【0036】
続いて、上記のように構成されたエンジン制御用ECU3の乱数生成動作について説明する。なお、以下では、CPU10と各IC20_1、20_2、…、20_nが連携しながら実行する乱数生成処理については図1(b)と同じであるので説明を省略し、この乱数生成処理によって乱数Bitが作成される様子を図4(b)のタイミングチャートを参照しながら説明する。
【0037】
この図4(b)に示すように、CPU10と各IC20_1、20_2、…、20_nの間で乱数通信が定周期で実施されるが、乱数通信以外の通信も実施される。
例えば、図中の時刻t21において、IC20_1のクロック論理取得部20bが、サブクロックCLK_1のクロック論理(ここでは「1」)を取得してCPU10へ送信したと仮定する。この時、CPU10の乱数生成部10bは、メインクロックCLK_Aに同期してクロック論理「1」を受信し、該受信したクロック論理「1」を乱数BitのLSBにセットする。この時点では乱数Bitが完成していないため、一旦、乱数生成処理は終了する。
【0038】
続いて、例えば、図中の時刻t22において、IC20_2のクロック論理取得部20bが、サブクロックCLK_2のクロック論理(ここでは「0」)を取得してCPU10へ送信したと仮定する。この時、CPU10の乱数生成部10bは、メインクロックCLK_Aに同期してクロック論理「0」を受信し、該受信したクロック論理「0」を乱数Bitの下位2ビット目にセットする。この時点では乱数Bitが完成していないため、一旦、乱数生成処理は終了する。
【0039】
続いて、例えば、図中の時刻t23において、IC20_3のクロック論理取得部20bが、サブクロックCLK_3のクロック論理(ここでは「1」)を取得してCPU10へ送信したと仮定する。この時、CPU10の乱数生成部10bは、メインクロックCLK_Aに同期してクロック論理「1」を受信し、該受信したクロック論理「1」を乱数Bitの下位3ビット目にセットする。この時点では乱数Bitが完成していないため、一旦、乱数生成処理は終了する。
【0040】
続いて、例えば、図中の時刻t24において、IC20_nのクロック論理取得部20bが、サブクロックCLK_nのクロック論理(ここでは「1」)を取得してCPU10へ送信したと仮定する。この時、CPU10の乱数生成部10bは、メインクロックCLK_Aに同期してクロック論理「1」を受信し、該受信したクロック論理「1」を乱数Bitの下位15ビット(上位2ビット目)にセットする。この時点では乱数Bitが完成していないため、一旦、乱数生成処理は終了する。
【0041】
続いて、例えば、図中の時刻t25において、IC20_1のクロック論理取得部20bが、サブクロックCLK_1のクロック論理(ここでは「0」)を取得してCPU10へ送信したと仮定する。この時、CPU10の乱数生成部10bは、メインクロックCLK_Aに同期してクロック論理「1」を受信し、該受信したクロック論理「1」を乱数BitのMSB(最上位ビット)にセットする。この時点で16ビットデータの乱数Bitが完成する。
【0042】
このように、乱数通信が実施される毎に、各IC20_1、20_2、…、20_nで取得されたクロック論理が乱数Bitに順次セットされ、16回乱数通信が実施された時点で乱数Bitが完成することになる。CPU10の乱数生成部10bは、乱数Bitが完成すると、上記ステップS5、S6の処理を実行して乱数を生成すると共に、該生成した乱数をメモリに格納する。
【0043】
以上のように、本実施形態によれば、第1及び第2実施形態と同様に、エンジン制御用ECU2に外部から入力される信号を使用することなく、エンジン制御用ECU3内で乱数生成が完結するため、従来技術と比較してセキュリティ性を向上することができる。
また、各サブクロックCLK_1、CLK_2、…、CLK_nとメインクロックCLK_Aは非同期のため、各IC20_1、20_2、…、20_nで取得されるクロック論理にはバラツキが発生する。さらに、CPU10と全てのIC20_1、20_2、…、20_nの間で乱数通信及び乱数通信以外の通信が実施されることも、クロック論理にバラツキが発生する要因となる。つまり、本実施形態によれば、第1及び第2実施形態と比較して、悪意の第3者にとって、乱数生成の基となるクロック論理を特定することが極めて困難となるため、より高いセキュリティ性を確保することができる。
【0044】
なお、本発明は上記実施形態に限定されず、以下のような変形例が挙げられる。
(1)上記実施形態では、CPU10の乱数生成部10bが、「LSB側から順番に16ビット分セットする」という規則に従ってクロック論理を組み合わせて得られるビットデータ(乱数Bit)を用いて乱数を生成する場合を例示したが、クロック論理の組み合わせの規則はこれに限定されない。
【0045】
例えば、「MSB側から順番に16ビット分セットする」という規則に従ってクロック論理を組み合わせても良い。或いは、「LSB側から順番に16ビット分セットする」という規則に従って作成したビットデータと、「MSB側から順番に16ビット分セットする」という規則に従って作成したビットデータとを加算(若しくは減算、乗算、除算、AND演算、OR演算など)して得られるビットデータを用いて乱数を生成しても良い。
【0046】
(2)上記第2実施形態では、CPU10と通信可能に接続されたn個のIC20_1、20_2、…、20_nの内、IC20_1の1つだけがクロック論理取得部20bを備える場合を例示し、上記第3実施形態では、CPU10と通信可能に接続された全てのIC20_1、20_2、…、20_nがクロック論理取得部20bを備える場合を例示したが、CPU10と通信可能に接続されたIC20_1、20_2、…、20_nの内、少なくとも1つのICがクロック論理取得部20bを備えていれば、本発明によってセキュリティ性向上の効果を得ることができる。
【0047】
(3)上記実施形態では、本発明に係る電子制御装置としてエンジン制御用ECUを例示して説明したが、車両盗難を防止できる電子制御装置、例えばドアの自動施錠及び解錠を制御するキーレスエントリーECUにも本発明を適用することができる。
【符号の説明】
【0048】
1、2、3…エンジン制御用ECU(電子制御装置)、10…CPU(主集積回路)、IC20_1〜20_n…IC(副集積回路)、10a、20a…通信部、10b…乱数生成部、20b…クロック論理取得部

【特許請求の範囲】
【請求項1】
メインクロックで動作する主集積回路と、
前記主集積回路と通信可能に接続され、前記メインクロックとは異なるサブクロックで動作する副集積回路と、を具備し、
前記副集積回路は、前記主集積回路の要求に応じて前記サブクロックのクロック論理を取得し、該取得したクロック論理を前記主集積回路へ送信するクロック論理取得部を備え、
前記主集積回路は、前記副集積回路から受信した前記クロック論理に基づいて乱数を生成する乱数生成部を備える、
ことを特徴とする電子制御装置。
【請求項2】
メインクロックで動作する主集積回路と、
前記主集積回路と通信可能に接続され、前記メインクロックとは異なるサブクロックで動作する複数の副集積回路と、を具備し、
前記複数の副集積回路の内、少なくとも1つの副集積回路は、前記主集積回路の要求に応じて前記サブクロックのクロック論理を取得し、該取得したクロック論理を前記主集積回路へ送信するクロック論理取得部を備え、
前記主集積回路は、前記クロック論理取得部を備える副集積回路から受信した前記クロック論理に基づいて乱数を生成する乱数生成部を備える、
ことを特徴とする電子制御装置。
【請求項3】
前記乱数生成部は、受信した前記クロック論理を所定の規則に従って組み合わせて得られるビットデータを用いて乱数を生成することを特徴とする請求項1または2に記載の電子制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate