IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーの特許一覧

<>
  • 特許-電子制御装置 図1
  • 特許-電子制御装置 図2
  • 特許-電子制御装置 図3
  • 特許-電子制御装置 図4
  • 特許-電子制御装置 図5
  • 特許-電子制御装置 図6
  • 特許-電子制御装置 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-18
(45)【発行日】2024-11-26
(54)【発明の名称】電子制御装置
(51)【国際特許分類】
   G06F 8/654 20180101AFI20241119BHJP
   G06F 21/64 20130101ALI20241119BHJP
   G09C 1/00 20060101ALI20241119BHJP
【FI】
G06F8/654
G06F21/64
G09C1/00 610A
【請求項の数】 7
(21)【出願番号】P 2021121135
(22)【出願日】2021-07-23
(65)【公開番号】P2023016643
(43)【公開日】2023-02-02
【審査請求日】2024-01-09
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【弁理士】
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【弁理士】
【氏名又は名称】久保 貴則
(72)【発明者】
【氏名】淺井 健史
【審査官】児玉 崇晶
(56)【参考文献】
【文献】特開2004-310216(JP,A)
【文献】国際公開第2015/068220(WO,A1)
【文献】特開2008-117404(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/654
G06F 21/64
G06F 21/44
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
制御プログラム(111)が書き込まれるプログラム領域(101)、前記制御プログラムに固有の固有認証子(112)が書き込まれる固有認証子領域(102)、および前記制御プログラムの書換えが完了した際に、前記制御プログラムの書換えが完了したか否かを検証するための検証計算から得られ、前記制御プログラムの書換えが完了している場合には前記固有認証子と所定の対応関係を有する検証情報(113)が書き込まれる検証情報領域(103)を含む書換領域(100)を有する記憶部(10)と、
前記記憶部に書き込まれた情報を演算する演算部(50)と、を備え、
前記演算部は、前記書換領域の書換えを行う書換部(S20~S60)、および起動時に前記書換領域の書換えが完了しているか否かを判定する判定部(S100~S130)を有し、
前記書換部は、前記書換領域を消去するものであって、前記検証情報を初めに消去する消去部(S20)と、
前記消去部が消去を行った後に、書換用の前記制御プログラムを前記プログラム領域に書き込むとともに、前記固有認証子を前記固有認証子領域に書き込む書込部(S30)と、
前記書込部が書込みを行った後に、前記検証計算を行う検証部(S40)と、
前記検証部によって得られた前記検証情報を前記検証情報領域に書き込む検証情報書込部(S60)と、を有し、
前記判定部は、前記固有認証子領域に記憶された値と、前記検証情報領域に記憶された値と、が所定の対応関係を有する場合には、前記書換領域の書換えが完了していると判定し、所定の対応関係を有さない場合には、前記書換領域の書換えが完了していないと判定する、電子制御装置。
【請求項2】
前記判定部によって前記書換領域の書換えが完了していると判定された場合には、書き換えられた前記制御プログラムを起動させ、前記書換領域の書換えが完了していないと判定された場合には、前記制御プログラムの書換えを開始させる起動制御部(S120、S130)を備える、請求項1に記載の電子制御装置。
【請求項3】
前記制御プログラムは、分割してM個(Mは2以上の整数)のブロックが得られるものであり、
前記検証計算には、各ブロックを1番目のブロックから順番に用いて暗号化するものであり、N番目(Nは1以上の整数、M≧N)のブロックについて暗号化された暗号文によってN+1番目のブロックを暗号化する暗号利用モードが用いられており、
前記検証情報とは、あらかじめ定められたL番目(Lは2以上の整数、M>L)のブロックについての暗号文(113a)であり、
前記判定部は、起動時に、前記L番目のブロックについての暗号文を用いた暗号化から前記検証計算を再度行うことで、1番目からM番目のブロックまでの暗号化を行い、前記M番目のブロックの暗号文を再検証認証子として演算する再検証部(S100)を有し、
前記所定の対応関係とは、前記再検証認証子の値と、前記固有認証子の値と、が一致する関係である、請求項2に記載の電子制御装置。
【請求項4】
前記L番目とは、Mが偶数の場合、L≦M/2であり、Mが奇数の場合、L≦(M+1)/2である、請求項3に記載の電子制御装置。
【請求項5】
前記L番目とは、Mが偶数の場合、L>M/2であり、Mが奇数の場合、L>(M+1)/2である、請求項3に記載の電子制御装置。
【請求項6】
前記検証計算には、前記制御プログラムを分割して得られるM個(Mは2以上の整数)のブロックのうち、N番目(Nは1以上の整数、M≧N)のブロックについて暗号化された暗号文によってN+1番目のブロックを暗号化する暗号利用モードが用いられており、
前記検証情報とは、前記検証計算の結果である検証認証子(113b)であり、
前記所定の対応関係とは、前記検証認証子の値と、前記固有認証子の値と、が一致する関係である、請求項2に記載の電子制御装置。
【請求項7】
書換用の前記制御プログラム、および前記固有認証子は、外部の書換ツール(60)から送信され、
前記L番目とは、前記書換ツールから指定された番号である、請求項3に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御プログラムの書換完了判定を行う電子制御装置に関する。
【背景技術】
【0002】
特許文献1には、制御プログラムに従う動作をする電子制御装置が記載されている。電子制御装置は、制御プログラムの書換え時に、制御プログラムの書換えの進行段階を示す値をメモリ内に記憶している。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第5349104号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述した電子制御装置は、制御プログラムの書換えの進行段階に応じて、進行段階を示す値の消去および書込みを行う必要がある。よって、進行段階を示す値の消去および書込みは、制御プログラムの書換えの最中に行われる。さらに、書換用の制御プログラムと進行段階を示す値とでは、メモリへの書込みおよび消去のタイミングが異なる。このため、電子制御装置は、書換えの進行段階を示す値を記憶させる場合、制御プログラムが書き込まれたプログラム領域とは別に、進行段階に応じた値を書き込む段階記憶領域をメモリに有しなければならない。また、メモリは、段階記憶領域として、データの消去単位分の領域が必要になる。
【0005】
ところで、メモリには、データの書込単位よりも、データの消去単位のほうが大きなものがある。また、進行段階を示す値は、制御プログラムの書換えの進行段階に応じた値であるため、データの書込み単位程度のサイズとなる。
【0006】
このため、電子制御装置は、データの消去単位よりも小さなサイズの、進行段階に応じた値を記憶しておくためだけに、データの消去単位分の段階記憶領域が必要となる。よって、メモリの使用効率が低下する虞がある。
【0007】
このような事情に鑑み、本開示の目的は、制御プログラムの書換えが完了しているか否かを判定でき、かつメモリの使用効率を向上できる電子制御装置を提供することである。
【課題を解決するための手段】
【0008】
その目的を達成するための本開示の一態様における電子制御装置は、制御プログラム(111)が書き込まれるプログラム領域(101)、制御プログラムに固有の固有認証子(112)が書き込まれる固有認証子領域(102)、および制御プログラムの書換えが完了した際に、制御プログラムの書換えが完了したか否かを検証するための検証計算から得られ、制御プログラムの書換えが完了している場合には固有認証子と所定の対応関係を有する検証情報(113)が書き込まれる検証情報領域(103)を含む書換領域(100)を有する記憶部(10)と、
記憶部に書き込まれた情報を演算する演算部(50)と、を備え、
演算部は、書換領域の書換えを行う書換部(S20~S60)、および起動時に書換領域の書換えが完了しているか否かを判定する判定部(S100~S130)を有し、
書換部は、書換領域を消去するものであって、検証情報を初めに消去する消去部(S20)と、
消去部が消去を行った後に、書換用の制御プログラムをプログラム領域に書き込むとともに、固有認証子を固有認証子領域に書き込む書込部(S30)と、
書込部が書込みを行った後に、検証計算を行う検証部(S40)と、
検証部によって得られた検証情報を検証情報領域に書き込む検証情報書込部(S60)と、を有し、
判定部は、固有認証子領域に記憶された値と、検証情報領域に記憶された値と、が所定の対応関係を有する場合には、書換領域の書換えが完了していると判定し、所定の対応関係を有さない場合には、書換領域の書換えが完了していないと判定する、電子制御装置である。
【0009】
本開示における電子制御装置において、消去部は、書換前の制御プログラム、固有認証子、および検証情報のうち、検証情報を初めに消去する。このため、消去部の処理が開始されていれば、たとえ書換前の固有認証子が消去される前に書換領域の書換えが中断した場合でも、書換前の検証情報は消去されている。すなわち、固有認証子領域には書換前の固有認証子の値が記憶されており、検証情報領域には消去後の値が記憶されている。よって、固有認証子領域に記憶された値と、検証情報領域に記憶された値と、は所定の対応関係を有さない。そのため、判定部は、制御プログラムの書換えが完了していないと判定できる。
【0010】
さらに、検証部は、書込部が書込みを行った後に検証計算を行い、検証情報書込部は、該検証計算によって得られた検証情報を、検証情報領域へと書き込む。すなわち、書込部が書込みを行っている際に、検証情報書込部は動作しない。このため、制御プログラムおよび検証情報は同じ書換領域に記憶することができる。
【0011】
よって、電子制御装置は、書換領域とは別で制御プログラムの書換えの進行段階を書き込む領域を有さなくとも、書換えが完了しているか否かを判定できる。言い換えれば、記憶部は、書換えの進行段階を示す値だけを書き込むために、データの消去単位分の領域を有する必要がない。このため、本開示における電子制御装置は、記憶部のうち、書換領域以外の領域を、効率的に使用できる。
【図面の簡単な説明】
【0012】
図1】第1実施形態における電子制御装置の構成を説明するブロック図である。
図2図1の電子制御装置による書換領域の書換処理を説明するフローチャートである。
図3図1の電子制御装置による検証計算処理を説明するフローチャートである。
図4図1の電子制御装置による起動時の書換完了判定処理を説明するフローチャートである。
図5】第4実施形態における電子制御装置の構成を説明するブロック図である。
図6図5の電子制御装置による起動時の書換完了判定処理を説明するフローチャートである。
図7】第5実施形態における電子制御装置による書換領域の書換処理を説明するフローチャートである。
【発明を実施するための形態】
【0013】
以下、本開示の複数の実施形態を図面に基づいて説明する。なお、各実施形態において対応する構成要素には同一の符号を付すことにより、重複する説明を省略する場合がある。各実施形態において構成の一部分のみを説明している場合、当該構成の他の部分については、先行して説明した他の実施形例の構成を適用することができる。また、各実施形態の説明において明示している構成の組み合わせばかりではなく、特に組み合わせに支障が生じなければ、明示していなくても複数の実施形態の構成同士を部分的に組み合わせることができる。そして、複数の実施形態および変形例に記述された構成同士の明示されていない組み合わせも、以下の説明によって開示されているものとする。
【0014】
(第1実施形態)
1.電子制御装置1の構成
本実施形態における電子制御装置1の構成について、図1図3を用いて説明する。本実施形態における電子制御装置1は、例えば、車両に搭載され、車両内の各種システムの制御を行う車載制御装置に適用することができる。各種システムは、エンジン、ハンドル、ブレーキ等の走行系システムなどがあげられる。また、各種システムは、メータ、パワーウインドウ等のボデー系システムや、ナビゲーション装置などの情報系システムがあげられる。
【0015】
なお、電子制御装置1は、ECU(Electronic Control Unit)とも称することができる。また、本開示は、車載制御装置に限定されず、車両とは異なる装置の制御を行うものであってもよい。
【0016】
電子制御装置1は、記憶部、演算部、RAM30(Random Acccess Memory)、電源40を有する。ここで、本実施形態において、記憶部とは、ROM10(Read Only Memory)に相当し、演算部とは、CPU50(Central Processing Unit)に相当する。よって以下においては、記憶部のことをROM10、演算部のことをCPU50、と記載する。
【0017】
図1に示すごとく、電子制御装置1は、書換ツール60と接続可能に構成されている。書換ツール60は、電子制御装置1が配置された車両の外部に設けられている。書換ツール60は、後ほど説明する、書換用の制御プログラム111を送信するための装置である。
【0018】
ROM10は、記憶されている情報を読み出すことができるメモリである。ROM10は、書換領域100と、リプログソフト領域200と、を有する。書換領域100には、ECUソフトが書き込まれている。ECUソフトは、電子制御装置1を動作させるソフトウェアである。リプログソフト領域200には、リプログソフトが書き込まれている。リプログソフトは、ECUソフトの書換え、すなわちリプログラミングを行うソフトウェアである。
【0019】
書換領域100は、プログラム領域101、固有認証子領域102、および検証情報領域103を有する。プログラム領域101には、制御プログラム111が書き込まれる。固有認証子領域102には、制御プログラム111の固有の認証子である固有認証子112が書き込まれる。検証情報領域103には、検証情報113が書き込まれる。ここで、制御プログラム111とは、電子制御装置1による車両内の各種システムの制御に必要なプログラムである。また、検証情報113は、制御プログラム111の書換えが完了したか否かを検証するための検証計算から得られる。検証情報113は、制御プログラム111の書換えが完了した場合には固有認証子112と所定の対応関係を有する。制御プログラム111の書換えの完了とは、制御プログラム111の書換えが、異常や改ざんなく終了することを示す。
【0020】
本実施形態における検証計算は、CBC(Cipher Block Chaining)モードと呼ばれる暗号利用モードを用いる。CBCモードは、制御プログラム111を分割して得られるM個(Mは2以上の整数)のブロックのうち、N番目(Nは1以上の整数、M≧N)のブロックについて暗号化された暗号文によってN+1番目のブロックを暗号化する、暗号利用モードである。
【0021】
固有認証子112とは、M番目、すなわち最後のブロックについて暗号化された暗号文である。ここで、上述したように、M番目のブロックは、M-1番目のブロックの暗号文を用いて暗号化される。すなわち、M番目のブロックについての暗号文は、それ以前のすべてのブロックに依存する。
【0022】
また、本実施形態において、検証情報113は、あらかじめ定められたL番目(Lは2以上の整数、M>L)のブロックについて暗号化された暗号文である。以下において、L番目のブロックについて暗号化された暗号文は、L番目の暗号文113aと省略して記載する。
【0023】
リプログソフト領域200には、リプログソフトを構成するプログラムとして、書換機能220、起動制御機能230、認証機能240、通信機能250、および判定機能260が書き込まれている。書換機能220は、消去機能221、書込機能222、検証機能223、および検証情報書込機能224を有する。判定機能260は、再検証機能261、一致判定機能262、および完了判定機能263を有する。
【0024】
CPU50は、ROM10に記憶されているリプログソフトやECUソフトに含まれる各プログラムを読み出し、これらの各プログラムに従って、処理を実行する。また、CPU50は、処理結果を一時的にRAM30に記憶しつつ、処理を実行する。これによって、リプログソフトを実行する際には、CPU50は、リプログソフトが有する各機能に基づいた処理を実行することになる。一方、ECUソフトを実行する際には、CPU50は、制御プログラム111に基づき、車両内の各種システムの制御を実行することになる。
【0025】
RAM30は、処理結果の一例として、N+1番目のブロックの暗号化に必要なN番目の暗号文が一時的に記憶される。N+1番目のブロックの暗号化が終われば、N番目の暗号文はN+1番目の暗号文に上書きされる。ただし、検証計算に用いるL番目の暗号文113aは、検証計算が完了し、ROM10内の検証情報領域103に退避されるまで、L+1番目の暗号文に上書きされることなくRAM30に記憶されている。
【0026】
電源40は、電子制御装置1内の各部品に、電力を供給する。
【0027】
2.電子制御装置1による演算処理
上述した構成を備えた電子制御装置1による、各種演算処理について、図2図4を用いて説明する。
【0028】
2.1.書換領域100の書換処理
まず、図2を用いて、書換処理について説明する。
【0029】
電子制御装置1は、車両の外部に配置された書換ツール60から、信号を受信することで、書換処理を開始する。具体的には、CPU50が通信機能250を読み出し、実行する。これによって、CPU50は書換ツール60と通信し、書換処理を開始する。書換処理は、書換領域100の書換えを行う処理である。また、制御プログラム111の書換えを行う処理ともいえる。さらに、ECUソフトの書換えを行う処理ともいえる。
【0030】
S10は、認証部である。S10では、CPU50が認証機能240を読み出し、実行する。つまり、CPU50は、通信対象の書換ツールが、正規の書換ツール60であるか否かを認証する。これによって、CPU50は、非正規の書換ツールから送信されたプログラムで、制御プログラム111の書き換えを行うことを抑制できる。
【0031】
S20~S60は書換部である。S20~S60では、CPU50が書換機能220を読み出し実行する。これによって、CPU50は、書換領域100の書換を行う。書換部の処理について、具体的に説明する。
【0032】
S20は、消去部である。S20では、CPU50が消去機能221を読み出し、実行する。これによって、CPU50は、ROM10の書換領域100に記憶されている情報を消去単位ごとに、順番に消去する。この結果、ROM10は、プログラム領域101に書き込まれた書換前の制御プログラム111、固有認証子領域102に書き込まれた書換前の固有認証子112、および検証情報領域103に書き込まれた書換前の検証情報113が消去される。ここで、検証情報113は、制御プログラム111、固有認証子112、および検証情報113のうち初めに消去される。
【0033】
S30は、書込部である。S30では、CPU50が書込機能222を読み出し、実行する。これによって、CPU50は、S20で消去が行われたプログラム領域101に対して、書換用の制御プログラム111を書き込む。また、CPU50は、S20で消去が行われた固有認証子領域102に対して、書換用の固有認証子112を書き込む。
【0034】
S40およびS50は検証部である。S40では、CPU50が検証機能223を読み出し、実行する。これによって、CPU50は、検証計算を行う。S40の検証計算に関しては、後ほど詳しく説明する。
【0035】
S50では、CPU50が検証機能223を読み出し、実行する。これによって、書換領域100の書換えが完了したか否かを検証する。具体的には、CPU50は、固有認証子112の値と、検証計算の結果である検証認証子113bの値と、を比較する。CPU50は、これらの値が一致するか否かによって、書換えが完了したか否かを検証する。固有認証子112の値と検証認証子113bの値とが一致した場合は、S60へと移行する。固有認証子112の値と検証認証子113bの値とが一致しなかった場合は、S70へと移行する。
【0036】
S60は、検証情報書込部である。S60では、CPU50が検証情報書込機能224を読み出し、実行する。これによって、CPU50は、RAM30に記憶されたL番目の暗号文113aを、検証情報113として検証情報領域103に書き込む。ここで、L番目の暗号文113aは、制御プログラム111、固有認証子112、L番目の暗号文113aのうち初めに消去されるよう、書換領域100に配置される。CPU50は、L番目の暗号文113aを検証情報領域103に書き込むと、書換処理を終了する。
【0037】
S70では、CPU50は、書換処理が異常終了したものとみなし書換ツール60に失敗を通知して、書換処理を終了する。なお、CPU50は、書換ツール60から参照可能なように、異常フラグを立てて、書換処理を終了してもよい。
【0038】
ここで、S40の検証計算処理について、図3を用いて説明する。前述の通り、本実施形態における電子制御装置1は、検証計算にCBCモードを用いている。CPU50は、検証機能223を読み出すことで検証計算を開始する。S200は、1番目のブロックから処理を開始することを示す。
【0039】
S210では、CPU50は、ブロック番号Nが総ブロック数M以下であれば、S220に移行し、そうでなければ検証計算を終了する。
【0040】
S220では、CPU50は、N≧2の場合は、N-1番目の暗号文を用いて、N番目のブロックの暗号化を行う。また、CPU50は、N=1の場合は、暗号文の代わりに初期化ベクトルを用いて、N番目のブロックの暗号化を行う。
【0041】
S230では、CPU50は、検証計算の対象をN+1番目のブロックへと移行する。CPU50は、N>Mとなるまで、S210~S230の処理を繰り返す。N>Mとなると、CPU50は、検証計算処理を終了する。ここで、N=Mとなったとき、すなわち、検証計算が正常に完了した場合、S220で最後に演算されたM番目のブロックについての暗号文が、検証計算の結果である検証認証子113bとなる。
【0042】
2.2.起動時の書換完了判定処理
次に、図4を用いて、書換完了判定処理について説明する。電子制御装置1は、起動時に、図4に示すフローチャートを開始する。書換完了判定処理は、書換領域100の書換えが完了しているかを判定する処理である。また、書換完了判定処理は、制御プログラム111の書換えが完了しているかを判定する処理ともいえる。さらに、書換完了判定処理は、制御プログラム111が、正常に実行可能な状態であるかを判定する処理ともいえる。
【0043】
S100~S120は、判定部である。S100~S120では、CPU50が判定機能260を読み出し、実行する。これによって、CPU50は、固有認証子領域102に記憶された値と、検証情報領域103に記憶された値と、を比較する。CPU50は、前述した2つの値が所定の対応関係を有する場合、書換領域100の書換えが完了していると判定する。また、CPU50は、前述した2つの値が所定の対応関係を有さない場合、書換えが完了していないと判定する。判定部における各処理について具体的に説明する。
【0044】
S100は再検証部である。S100では、CPU50が再検証機能261を読み出し、実行する。これによって、CPU50は、検証情報領域103に記憶された値を用いて、再度、上述した検証計算を行う。本実施形態においては、L番目の暗号文113aが検証情報113として、検証情報領域103に記憶されている。よってS100では、CPU50はL番目の暗号文113aをもとに、L+1番目からM番目のブロックについて暗号化を行う。CPU50は、この検証計算の結果であるM番目の暗号文を、再検証認証子として演算する。つまり、CPU50は、1番目からM番目のブロックについての暗号化を再度行うことはしない。CPU50は、L+1番目からM番目のブロックについて暗号化を行うことで、1番目からM番目のブロックについて暗号化を行う。
【0045】
S110は一致判定部である。S110では、CPU50が一致判定機能262を読み出し、実行する。これによって、CPU50は、固有認証子領域102に記憶された値と、検証情報領域103に記憶された値と、が所定の対応関係を有するか否かを判定する。ここで、本実施形態において、所定の対応関係とは、固有認証子領域102に記憶された固有認証子112の値と、検証情報領域103に記憶されたL番目の暗号文113aをもとに演算された再検証認証子の値と、が一致する関係を示す。
【0046】
ここで、固有認証子112の値と再検証認証子の値とが一致関係を有する場合とは、以下の状態を示す。すなわち、制御プログラム111の書換えが正常に完了している。その上で、書換えから起動までの間に、制御プログラム111が故障していない状態である。
【0047】
一方、固有認証子112の値と再検証認証子の値とが一致関係を有さない場合とは、以下の状態を示す。1つは、上述した書換処理が完了していないため、検証情報領域103にL番目の暗号文113aが記憶されていない状態である。もう1つは、書換処理は完了しているが、完了から起動時の書換完了判定までの間に、制御プログラム111のうち、L+1番目以降のブロックが、故障してしまった状態である。言い換えれば、書換後の制御プログラム111が故障し、異常を有する状態である。
【0048】
固有認証子112の値と再検証認証子の値とが一致関係を有する場合、CPU50は、S120へと移行する。CPU50は、一致関係を有する場合、書換領域100の書換えが完了していると判定して、S120へ進むともいえる。一方、一致関係を有さない場合、CPU50は、S130へと移行する。CPU50は、一致関係を有さない場合、書換領域100の書換えが完了していないと判定して、S130へ進むともいえる。なお、一致関係を有さない場合は、制御プログラム111の書換え途中や、制御プログラム111が壊れているとみなすことができる。
【0049】
S120は、起動制御部である。S120では、CPU50が起動制御機能230を読み出し実行する。つまり、CPU50は、書換後の制御プログラム111を実行する。CPU50は、制御プログラム111を実行することで、車両内の各種システムの制御を行う。
【0050】
一方、S130では、CPU50は、起動制御機能230および書換機能220を読み出し実行する。つまり、CPU50は、リプログソフトを起動する。CPU50は、書換えが完了していない書換領域100に対し、前述した書換処理を再度行う。また、CPU50は、リプログソフトを起動して、書換ツール60からの書換え指示を待つともいえる。
【0051】
なお、本開示は、S110でNO判定の場合、S130と異なる処理を行ってもよい。例えば、電子制御装置1は、自らをリセットしてもよいし、そのほかの異常系の処理を行ってもよい。
【0052】
本実施形態における電子制御装置1の効果について説明する。
【0053】
S20では、CPU50は、書換前の制御プログラム111、固有認証子112、および検証情報113のうち、検証情報113を初めに消去する。このため、S20での処理が開始されていれば、たとえ書換前の固有認証子112が消去される前に書換領域100の書換えが中断した場合でも、書換前の検証情報113は消去されている。すなわち、固有認証子領域102には書換前の固有認証子112の値が記憶されており、検証情報領域103には消去後の値が記憶されている。よって、固有認証子領域102に記憶された値と、検証情報領域103に記憶された値と、は所定の対応関係を有さない。このため、CPU50は、制御プログラム111の書換えが完了していないと判定できる。
【0054】
さらに、CPU50は、S30で書換用の制御プログラム111および固有認証子112の書込みを行う。その後、CPU50は、S50で、書換えが完了したか否かを検証するための検証計算を行う。また、S60では、CPU50は、該検証計算によって得られた検証情報113を、検証情報領域103へと書き込む。すなわち、書換用の制御プログラム111、および固有認証子112の書込みが行われている際には、検証情報113は書き込まれない。このため、電子制御装置1は、制御プログラム111および検証情報113を同じ書換領域100に記憶することができる。
【0055】
よって、電子制御装置1は、制御プログラム111の書換えの進行段階を書き込む領域を、書換領域100とは別で有さなくとも、書換えが完了しているか否かを判定できる。言い換えれば、ROM10は、書換えの進行段階を示す値だけを書き込むために、データの消去単位分の領域を有する必要がない。このため、電子制御装置1は、ROM10のうち、書換領域100以外の領域を、効率的に使用できる。
【0056】
また、S110において一致関係を有すると判定された場合、S120では、CPU50は、制御プログラム111を起動する。一方、一致関係を有さないと判定された場合、S130では、上述した書換処理を再度行う。このため、電子制御装置1は、書換えが完了していない、不完全な制御プログラム111が起動することを防止できる。すなわち、電子制御装置1は、不完全な制御プログラム111の起動により誤作動がおこることを防止できる。
【0057】
また、本実施形態においては、S100では、CPU50は、検証情報113としてL番目の暗号文113aを用いる。具体的には、S100では、CPU50は、L番目の暗号文113aを用いて検証計算を再度行い、再検証認証子を演算する。よって、CPU50は、起動時の書換完了判定において、制御プログラム111のうち、1番目のブロックから検証計算を行う必要がない。すなわち、電子制御装置1は、起動時の書換完了判定にかかる時間を抑制できる。
【0058】
また、CPU50は、起動時にL+1番目以降のブロックについて再度検証計算を行う。このため、制御プログラム111のうちL+1番目以降のブロックが、宇宙線や改ざんといった要因によって故障した場合に、判定部は制御プログラム111の書換えが完了していないと判定することができる。言い換えれば、判定部、書換処理から起動時の書換完了判定処理までの間に、L+1番目以降のブロックが故障した場合でも、この故障を検出できるともいえる。よって、電子制御装置1は、異常を有する制御プログラム111が起動することを抑制できる。
【0059】
(第2実施形態)
本実施形態における電子制御装置1について説明する。第1実施形態と同様の構成、処理、作用、効果、については、説明を省略する。
【0060】
本実施形態は、ブロック番号Lの定義が第1実施形態と異なる。本実施形態においては、ブロック番号Lとは、2以上の整数、かつM≧Lであるとともに、Mが偶数の場合、L≦M/2であり、Mが奇数の場合、L≦(M+1)/2である。
【0061】
本実施形態における、電子制御装置1の効果を説明する。電子制御装置1の起動時、S100において、CPU50は、Mが偶数の場合、L≦M/2であるL番目の暗号文113aを用いて再度検証計算を行う。一方、Mが奇数の場合、S100において、CPU50は、L≦(M+1)/2である、L番目の暗号文113aを用いて再度検証計算を行う。すなわち、CPU50は、M個のブロックのうち、前半に位置するブロックの暗号文を用いて検証計算を行う。この結果、CPU50は、再検証認証子の演算に際して、後半に位置するブロックの暗号化を必ず行う。よって、M個のうち後半に位置するブロックの暗号文を用いて検証計算を行う場合と比べ、起動時に検証計算が行われるブロック数は多い。このため、書換処理から起動時の書換完了判定処理までの間に起こる制御プログラム111の故障について、前半に位置するブロックの暗号文を用いたほうが、故障の検出確率は高くなる。このため、電子制御装置1は、異常を有する制御プログラム111が起動することをより一層抑制できる
【0062】
(第3実施形態)
本実施形態における電子制御装置1について説明する。第1実施形態と同様の構成、処理、作用、効果、については、説明を省略する。
【0063】
本実施形態は、ブロック番号Lの定義が第1実施形態と異なる。本実施形態においては、ブロック番号Lとは、2以上の整数、かつM≧Lであるとともに、Mが偶数の場合、L>M/2であり、Mが奇数の場合、L>(M+1)/2である。
【0064】
本実施形態における電子制御装置1の効果を説明する。電子制御装置1の起動時、S100において、CPU50は、Mが偶数の場合、L>M/2であるL番目の暗号文113aを用いて再度検証計算を行う。一方、Mが奇数の場合、CPU50は、L>(M+1)/2であるL番目の暗号文113aを用いて再度検証計算を行う。すなわち、CPU50は、M個のうち後半に位置するブロックの暗号文を用いて検証計算を行う。よって、M個のうち前半に位置するブロックの暗号文を用いて検証計算を行う場合と比べ、電子制御装置1の起動時、S100において検証計算が行われるブロック数は少ない。言い換えれば、S100において、CPU50が行う計算量はより少ない。このため、電子制御装置1は、起動時の書換完了判定処理にかかる時間を短縮できる。
【0065】
(第4実施形態)
本実施形態における電子制御装置1について、図5、および図6を用いて説明する。第1実施形態と同様の構成、処理、作用、効果、については、説明を省略する。なお、図6は、S100を有しない点が図4と異なる。
【0066】
本実施形態は、検証情報113が第1実施形態と異なる。本実施形態では、図5に示すごとく、検証認証子113bを検証情報113として用いる。また、検証認証子113bを用いるため、CPU50は、電子制御装置1の起動時の書換完了判定処理において、再検証機能261を読み出して、再検証認証子を演算する必要がない。すなわち、リプログソフトは、再検証機能261を有さない。
【0067】
書換完了判定処理について、図6を用いて説明する。S110は一致判定部である。S110では、CPU50が一致判定機能262を読み出し、実行する。これによって、CPU50は、固有認証子領域102に記憶された値と、検証情報領域103に記憶された値と、が所定の対応関係を有するか否かを判定する。ここで、本実施形態において、所定の対応関係とは、固有認証子領域102に記憶された固有認証子112の値と、検証情報領域103に記憶された検証認証子113bの値と、が一致する関係を示す。
【0068】
CPU50は、固有認証子112の値と検証認証子113bの値とが一致するか否かを判定する。一致関係を有する場合、CPU50は、S120へと移行する。また、一致関係を有さない場合、CPU50は、S130へと移行する。
【0069】
本実施形態における電子制御装置1の効果について説明する。電子制御装置1の起動時、S100では、CPU50は、固有認証子112の値と検証認証子113bの値とが一致すれば、書換領域100の書換えが完了していると判定する。すなわち、CPU50は、起動時の書換完了判定において、再度検証計算を行う必要がない。よって、電子制御装置1は、起動時の書換完了判定にかかる時間を短縮することができる。
【0070】
(第5実施形態)
本実施形態における電子制御装置1について図7を用いて説明する。第1実施形態と同様の構成、処理、作用、効果、については、説明を省略する。
【0071】
本実施形態は、検証情報113として用いる暗号文のブロック番号Lの決め方が第1実施形態と異なる。本実施形態では、ブロック番号Lとは、書換ツール60から指定された値である。
【0072】
次に、図7を用いて電子制御装置1の書換処理について説明する。電子制御装置1は、書換ツール60から、書換用の制御プログラム111、該制御プログラム111の固有認証子112、およびブロック番号Lを受信することで、書換処理を開始する。
【0073】
S10は、認証部である。S10では、CPU50が認証機能240を読み出し、実行する。つまり、CPU50は、通信対象の書換ツールが、正規の書換ツール60であるか否かを認証する。なお、本実施形態では、ステップS60において、検証情報に加えて、ブロック番号Lを記憶しておく。この場合、CPU50は、ステップS100の前にブロック番号Lを読み出す。CPU50は、ブロック番号Lを読みだした後にステップS100を実行する。
【0074】
本実施形態において、ブロック番号Lとは、書換ツール60から指定された値である。言い換えれば、電子制御装置1は、書換ツール60の指定によって、検証情報113として用いる暗号文のブロック番号を変更できる。このため、電子制御装置1は、書換用の制御プログラム111に合わせて、検証情報113として用いる暗号文について、何番目のブロックを用いるかを変更できる。
【0075】
よって、例えば制御プログラム111の容量が大きい場合、S100において、CPU50は、後半に位置するブロックの暗号文を検証情報113として用いて演算を行う。この結果、起動時の書換完了判定処理にかかる時間を短くすることができる。このように、電子制御装置1は、制御プログラム111の容量等の性質に合わせて、CPU50が行う検証計算の計算量を少なくする、といった検証計算の計算量の調整が可能となる
【0076】
(他の実施形態)
以上、本開示の実施形態を説明したが、本開示は上述の実施形態に限定されるものではなく、次の実施形態も本開示の技術的範囲に含まれ、さらに、下記以外にも要旨を逸脱しない範囲内で種々変更して実施することができる。
【0077】
第1実施形態において、検証情報113は、制御プログラム111、固有認証子112、検証情報113のうち初めに消去されるよう、書換領域100に配置されているが、本開示はこれに限るものではない。検証情報113の一部が、CPU50に初めに消去されるよう、書換領域100に配置されていればよい。
【符号の説明】
【0078】
電子制御装置…1
10 記憶部、 100 書換領域、 101 プログラム領域、 102 固有認証子領域、 103 検証情報領域、 111 制御プログラム、 112 固有認証子、 113 検証情報、 113a L番目のブロックについての暗号文、 113b 検証認証子、 50 演算部、 60 書換ツール
図1
図2
図3
図4
図5
図6
図7