WO2021199575A1 - プログラム更新システム、車両制御装置及びプログラム更新方法 - Google Patents

プログラム更新システム、車両制御装置及びプログラム更新方法 Download PDF

Info

Publication number
WO2021199575A1
WO2021199575A1 PCT/JP2021/001177 JP2021001177W WO2021199575A1 WO 2021199575 A1 WO2021199575 A1 WO 2021199575A1 JP 2021001177 W JP2021001177 W JP 2021001177W WO 2021199575 A1 WO2021199575 A1 WO 2021199575A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
unit
update
control device
vehicle control
Prior art date
Application number
PCT/JP2021/001177
Other languages
English (en)
French (fr)
Inventor
佑介 小暮
崇顕 野海道
吉村 健太郎
Original Assignee
日立Astemo株式会社
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 日立Astemo株式会社 filed Critical 日立Astemo株式会社
Priority to DE112021000273.2T priority Critical patent/DE112021000273T5/de
Priority to JP2022511552A priority patent/JP7390476B2/ja
Priority to US17/908,502 priority patent/US20230098588A1/en
Publication of WO2021199575A1 publication Critical patent/WO2021199575A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • B60R16/0231Circuits relating to the driving or the functioning of the vehicle

Definitions

  • the present invention relates to a program update system and a vehicle control device capable of updating a program.
  • Japanese Patent Application Laid-Open No. 2018-79768 Patent Document 1
  • Japanese Patent Application Laid-Open No. 2018-79768 describes a plurality of devices provided in a vehicle and capable of storing data internally, which are stored in a plurality of devices belonging to a non-traveling system and a predetermined device mounted on the vehicle.
  • a data division unit that divides update data for updating predetermined data into a plurality of division data
  • an association unit that associates any one of the plurality of devices as a storage destination for each of the plurality of division data.
  • An updated data storage system including a storage processing unit that stores each of the plurality of divided data in a device associated with the device among the plurality of devices is described (claimed). See item 1).
  • the update program is divided and stored in a plurality of vehicle control devices, and the storage area for temporary storage per vehicle control device is reduced. It has been known.
  • this method has a problem that a large storage area is required to temporarily store the decrypted encryption program data in the vehicle control device to be updated.
  • the decryption process can be executed only by the vehicle control device that is the target of the program update. Therefore, the encrypted program data is stored in the temporary storage area of the vehicle control device to be updated, the decryption process is executed, the decrypted program data is saved in the temporary storage area, and then the decrypted program data is stored. Need to be written to non-volatile memory.
  • the present invention has been made in view of the above-mentioned problems, and an object of the present invention is to divide update program data into predetermined units in a series of processes from encryption to writing to a program memory.
  • the purpose is to realize program updates even in a small-sized temporary storage area.
  • a typical example of the invention disclosed in the present application is as follows. That is, it is a program update system that distributes an update program from the update program distribution unit to the vehicle control device, and the update program distribution unit encrypts the update program in a predetermined encryption unit and is an update target in a predetermined transfer unit.
  • the vehicle control device transmits the received update program to the vehicle control device, decrypts the received update program in the encryption unit, and stores the received update program in the program storage unit in a predetermined write unit.
  • the writing unit is an integral multiple of the encryption unit.
  • the size of the temporary storage area required for the vehicle control device to be updated can be reduced. Issues, configurations and effects other than those mentioned above will be clarified by the description of the following examples.
  • FIGS. 1 to 5 An embodiment of the present invention will be described with reference to FIGS. 1 to 5.
  • FIG. 1 is a configuration diagram of a program update system of this embodiment
  • FIG. 2 is a configuration diagram of a vehicle control device 10 of this embodiment.
  • the program update system shown in FIG. 1 includes an update program distribution unit 30 that distributes a program, a relay unit 20 that relays a program distributed from the update program distribution unit 30, and a vehicle control device 10 that receives the program distribution. ..
  • the vehicle control device 10 has a first storage unit 11, a second storage unit 12, and a program storage unit 13.
  • the first storage unit 11 and the second storage unit 12 are storage areas provided in the volatile memory (RAM) 45 of the vehicle control device 10, and the first storage unit 11 stores the ciphertext 111 of the update program.
  • the storage unit 12 stores the decrypted divided update program.
  • the program storage unit 13 has a first program storage unit 131 and a second program storage unit 132.
  • the relay unit 20 has a ciphertext storage unit 21.
  • the update program distribution unit 30 stores the update program 31 to be updated and the ciphertext 32 divided and encrypted by the update program 31 in the storage device.
  • the update program distribution unit 30 transmits the ciphertext 32 to the relay unit 20.
  • the relay unit 20 stores the received ciphertext in the memory (ciphertext storage unit 21) and transmits it to the vehicle control device 10.
  • the vehicle control device 10 receives the divided and encrypted ciphertext 111, stores it in the first storage unit 11, decrypts the cipher in a predetermined unit, reconstructs it as the update program 121, and stores the second. Store in part 12.
  • the vehicle control device 10 selects and selects the program storage area of the program storage unit 13 that is on standby (not during program operation) from the first program storage unit 131 and the second program storage unit 132 of the program storage unit 13.
  • the update program 121 is written in the created program storage area to update the program.
  • the vehicle control device 10 includes a power supply 41, a calculation unit 42, a communication unit 43, a determination unit 44, a volatile memory 45, and a non-volatile memory 46.
  • the volatile memory 45 has a program temporary storage unit 451, an encryption / decryption unit 452, and a program update processing unit 453.
  • the non-volatile memory 46 has a non-rewritable area 461 composed of a mask ROM and data is rewritten. It has a possible flash memory 462 and.
  • the power supply 41 is connected to the power supply device 50, and the communication unit 43 is connected to the relay unit 20 which is an external device.
  • FIG. 3 is a time chart of the program update process of this embodiment.
  • the external device 20 is divided and encrypted according to the communication unit, and transfers the repro data (ciphertext) transmitted from the update program distribution unit 30 to the vehicle control device 10 (S100).
  • the vehicle control device 10 stores the received ciphertext in the first storage unit 11 in the encrypted state.
  • the program update processing unit 453 monitors the amount of repro data stored in the first storage unit 11, and when the stored data amount becomes the unit of the decryption processing of the encryption / decryption unit 452, the first storage unit 11 is used.
  • the buffered encrypted data is read in units of decryption processing (S103), and the encryption / decryption unit 452 is requested to perform decryption processing (S104).
  • the encryption / decryption unit 452 decrypts the ciphertext transmitted from the update program distribution unit 30 and returns it to the program update processing unit 453 (S105). In this way, the encryption / decryption unit 452 decrypts the received repro data by streaming as soon as the repro data is accumulated up to the unit of the decryption process.
  • the program update processing unit 453 stores the decrypted repro data in the second storage unit 12 in cryptographic units (S106). The processes of steps S103 to S106 are executed every time the repro data (ciphertext) is transmitted from the update program distribution unit 30, and the decrypted repro data is accumulated in the second storage unit 12.
  • the program update processing unit 453 monitors the amount of repro data stored in the second storage unit 12, and when the stored data amount becomes the writing unit of the flash memory 462 constituting the program storage unit 13, it is decoded.
  • the repro data is read from the second storage unit 12 (S109), and the read and decoded repro data is written to the program storage unit 13 (S110).
  • the program storage unit 13 returns the writing completion to the program update processing unit 453 (S111).
  • the processes of steps S109 to S111 are executed every time the amount of repro data stored in the second storage unit 12 becomes a write unit of the flash memory 462, and the decoded repro data is stored in the program storage unit 13. ..
  • the transfer size may be larger than the encryption size as in pattern 2 of FIG. 5 described later.
  • one unit for example, one packet or one frame
  • repro data ciphertext
  • a plurality of ciphertexts are taken out from the transferred repro data and decrypted in order by the encryption / decryption unit 452. , It is stored in the second storage unit 12.
  • FIG. 4 is a flowchart of the process executed by the program update processing unit 453.
  • the program update processing unit 453 checks the amount of repro data stored in the first storage unit 11 (S101). In step S102, if the amount of repro data stored in the first storage unit 11 is less than the unit of the decryption process of the encryption / decryption unit 452, the process proceeds to step 107. On the other hand, if the amount of repro data stored in the first storage unit 11 is equal to or greater than the decryption processing unit of the encryption / decryption unit 452, the program update processing unit 453 uses the encrypted data having a size equivalent to the unit of the decryption processing. (1) Read from the storage unit 11 (S103) and transmit to the encryption / decryption unit 452 (S104). The program update processing unit 453 receives the decrypted data from the encryption / decryption unit 452 (S105) and stores it in the second storage unit 12 (S106).
  • the program update processing unit 453 checks the amount of repro data stored in the second storage unit 12 (S107). In step S108, if the amount of repro data stored in the second storage unit 12 is less than the writing unit of the program storage unit 13, if data having a size less than the writing unit is written, the writing process including the subsequent processing is also performed. Is inefficient, so the process ends. On the other hand, if the amount of repro data stored in the second storage unit 12 is equal to or greater than the write unit of the program storage unit 13, the program update processing unit 453 stores the encrypted data having the size of the write unit of the program storage unit 13. Read from the second storage unit 12 (S109), and write the repro data to the waiting (not in program operation) program storage area of the first program storage unit 131 and the second program storage unit 132 of the program storage unit 13. Update the program with.
  • FIG. 5 shows recommended values of the transfer size of the communication path, the encryption / decryption unit, the write to the flash memory 462, and the size of the program to be updated.
  • the size of the communication path is the amount of data that can be transferred in one unit of communication (for example, the payload size of one packet or one frame).
  • the encryption size is a size that can be specified by a block cipher
  • the write size is a size that can be specified as a specification of the vehicle control device 10 (that is, a write unit of the flash memory 462 that constitutes the program storage unit 13).
  • the Resume size indicates the size that is the unit in which the program update is completed when the program update is stopped in the middle, and the program update of the portion less than the Resume size is executed again.
  • the transfer size is a
  • the encryption size is a ⁇ m
  • the write size is a ⁇ m ⁇ n, which are integral multiples, and the transfer size is large. Is smaller than the encryption size.
  • the Resume size may be a ⁇ m ⁇ n ⁇ k.
  • the transfer size a 8 byte
  • the encryption size a ⁇ m 16 byte
  • the write size a ⁇ m ⁇ n 256 byte
  • pattern 1 the amount of RAM used and the read processing of the first storage unit 11 and the second storage unit 12 are reduced from the transfer of the encrypted data to the decryption and the writing to the flash memory 462, and the resources required for the processing can be reduced. ..
  • the transfer size is small and the number of communications is large, there is a limit to increasing the communication speed.
  • the Resume point is 32 kbite in pattern 1, so the vehicle control device 10 transmits a restart request from the 32 kbite to the external device 20.
  • the Resume size is a multiple of the encryption size
  • the external device 20 and the update program distribution unit 30 can identify the ciphertext of the update program only by looking at the address of the restart request.
  • the Resume size is not a multiple of the cryptographic size, it is necessary to specify the ciphertext immediately before the Resume point, which causes a problem that the processing becomes complicated.
  • the transfer size is a
  • the encryption size is a ⁇ m
  • the write size is a ⁇ m ⁇ n, which are integer multiples.
  • the size is larger than the encrypted size.
  • the Resume size may be a ⁇ m ⁇ n ⁇ k.
  • the transfer size a 1280 byte
  • the encryption size a ⁇ m 16 byte
  • the write size a ⁇ m ⁇ n 256 byte
  • the RAM usage and read processing of the first storage unit 11 and the second storage unit 12 increase from the transfer of the encrypted data to the decryption and the writing to the flash memory 462, and the resources required for the processing increase. ..
  • the transfer size is large and the number of communications is small, the communication speed can be increased.
  • the encryption size is limited to the size that can be specified by the block cipher (64 bits, 128 bits, etc.), if the encryption size and the writing unit to the flash memory 462 are freely determined, the processing efficiency is poor. Therefore, in the present invention, the recommended values of the encryption / decryption size and the write size to the flash memory 462 are proposed based on the transfer size of the communication path.
  • the transfer size, the encryption size, and the write size are appropriately determined to efficiently perform the processing.
  • the transfer size and the encryption size are used.
  • the relationship with the size of the updated program may be defined. That is, it is preferable that the Resume size is an integral multiple of the write size to the flash memory 462 and an integral multiple of the encryption size.
  • the update program distribution unit 30 encrypts the update program in a predetermined encryption unit, and sends the update program to the vehicle control device 10 to be updated in a predetermined transfer unit.
  • the vehicle control device 10 transmits and decrypts the received update program in an encryption unit and stores it in the program storage unit 13 in a predetermined write unit, and the write unit is an integer of the encryption unit. Since it is doubled, the size of the temporary storage area required by the vehicle control device 10 can be reduced. Further, since the amount of data corresponding to the writing size of the program storage unit 13 is written, unnecessary processing does not occur in writing to the program storage unit 13 composed of the flash memory 462, and the processing capacity of the vehicle control device 10 is reduced. Can be suppressed.
  • the transfer unit is an integral multiple of the encryption unit, or the encryption unit is an integral multiple of the transfer unit, the update program can be transferred over various networks.
  • the vehicle control device 10 has a first storage unit 11 that stores the updated program that has been encrypted and transferred, a encryption / decryption unit 452 that decrypts the update program stored in the first storage unit 11, and a encryption / decryption unit 452. Since it has a second storage unit 12 that stores the divided update program obtained by decoding in, the transfer unit from the update program distribution unit 30 and the storage unit in the program storage unit 13 are stored by the buffer before and after the decryption processing. In, the amount of data processed at one time can be adjusted.
  • the program storage unit 13 has two program storage areas 131 and 132 of the same size, and the vehicle control device 10 executes a program stored in one program storage area and stores the program in the other program storage area. (Ii) Since the divided update program stored in the storage unit 12 is stored, the program can be updated without stopping the operation of the vehicle control device 10.
  • the resume size is defined as the unit for restarting the transfer of the program, and the resume size is an integer of the write unit. Since it is doubled, the ciphertext of the update program to be resent can be identified only by looking at the resume point address of the restart request.
  • the present invention is not limited to the above-described embodiment, and includes various modifications and equivalent configurations within the scope of the appended claims.
  • the above-described examples have been described in detail in order to explain the present invention in an easy-to-understand manner, and the present invention is not necessarily limited to those having all the described configurations.
  • a part of the configuration of one embodiment may be replaced with the configuration of another embodiment.
  • the configuration of another embodiment may be added to the configuration of one embodiment.
  • other configurations may be added / deleted / replaced with respect to a part of the configurations of each embodiment.
  • each of the above-described configurations, functions, processing units, processing means, etc. may be realized by hardware by designing a part or all of them by, for example, an integrated circuit, and the processor realizes each function. It may be realized by software by interpreting and executing the program to be executed.
  • Information such as programs, tables, and files that realize each function can be stored in a storage device such as a memory, hard disk, SSD (Solid State Drive), or a recording medium such as an IC card, SD card, DVD, or BD. can.
  • a storage device such as a memory, hard disk, SSD (Solid State Drive), or a recording medium such as an IC card, SD card, DVD, or BD. can.
  • control lines and information lines show what is considered necessary for explanation, and do not necessarily show all the control lines and information lines necessary for implementation. In practice, it can be considered that almost all configurations are interconnected.
  • Vehicle control device 11 1st storage unit 12 2nd storage unit 121 Divided update program 13 Program storage unit 131 1st program storage unit 132 2nd program storage unit 20 External device (relay unit) 30 Update program distribution unit 41 Power supply 42 Calculation unit 43 Communication unit 44 Judgment unit 45 Volatile memory 451 Program temporary storage unit 452 Encryption / decryption unit 453 Program update processing unit 46 Non-volatile memory 461 Non-rewritable area 462 Flash memory 50 Power supply device

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

小さいサイズの一時記憶領域でもプログラムの更新を実現する。更新プログラム配信部から車両制御装置に更新プログラムを配信するプログラム更新システムであって、前記更新プログラム配信部は、更新プログラムを所定の暗号化単位で暗号化して、所定の転送単位で更新対象となる前記車両制御装置宛に送信し、前記車両制御装置は、前記受信した更新プログラムを、前記暗号化単位で復号化して、所定の書き込み単位でプログラム記憶部に格納するものであって、前記書き込み単位は、前記暗号化単位の整数倍であることを特徴とする。

Description

プログラム更新システム、車両制御装置及びプログラム更新方法
 本発明は、プログラム更新システム及びプログラムが更新可能な車両制御装置に関する。
 近年、車両の電子制御装置(ECU:Electronic Control Unit)のプログラム更新方式の一つとして、プログラム配信センタより無線で配信されるプログラムをネットワーク経由でダウンロードし、ECUのプログラムを更新するオンライン更新機能が実用化されている。また、セキュリティ向上の観点から、更新用プログラムを暗号化して配信し、車両制御装置にダウンロードする技術が実用化されている。
 本技術分野の背景技術として、特開2018-79768号公報(特許文献1)がある。特開2018-79768号公報には、車両に設けられ、内部にデータを保存可能な複数の機器であって、非走行系に属する複数の機器と、前記車両に搭載される所定機器に保存される所定のデータを更新するための更新データを複数の分割データに分割するデータ分割部と、前記複数の分割データの各々の保存先として、前記複数の機器の何れか1 つを対応付ける対応付け部と、前記複数の分割データの各々を、前記複数の機器のうちの前記対応付け部により対応付けられた機器に保存させる保存処理部と、を備える、更新データ保存システムが記載されている(請求項1参照)。
特開2018-79768号公報
 車両制御装置の多機能化に伴って、車両制御装置における更新用プログラムのサイズが大きくなっている。そのため、ダウンロード途中の更新プログラムを車両制御装置に一時的に保存するために大きな記憶領域が必要になるという課題がある。
 このような問題を回避するため、前述の従来技術のように、更新プログラムを複数の車両制御装置に分割して保存し、一つの車両制御装置あたりでの一時保存用の記憶領域を小さくする方法が知られている。
 しかし、この方法では、プログラム更新の対象となる車両制御装置において、復号された暗号化プログラムデータを一時的に記憶するために大きな記憶領域が必要となるという課題がある。いわゆる公開鍵方式の暗号化では、プログラム更新の対象となる車両制御装置でのみで復号処理が実行できる。そのため、暗号化されたプログラムデータを、更新対象となる車両制御装置の一時記憶領域に記憶し、復号処理を実行し、復号されたプログラムデータを一時記憶領域に保存した後に、復号されたプログラムデータを不揮発性メモリに書き込む必要がある。
 本発明は、前述した課題に鑑みてなされたものであり、その目的とするところは、暗号化からプログラムメモリへの書き込みの一連の処理において、更新用プログラムデータを所定の単位で分割をすることによって、小さいサイズの一時記憶領域でもプログラムの更新を実現することにある。
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、更新プログラム配信部から車両制御装置に更新プログラムを配信するプログラム更新システムであって、前記更新プログラム配信部は、更新プログラムを所定の暗号化単位で暗号化して、所定の転送単位で更新対象となる前記車両制御装置宛に送信し、前記車両制御装置は、前記受信した更新プログラムを、前記暗号化単位で復号化して、所定の書き込み単位でプログラム記憶部に格納するものであって、前記書き込み単位は、前記暗号化単位の整数倍であることを特徴とする。
 本発明によれば、更新対象の車両制御装置で必要となる一時記憶領域のサイズを小さくできる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
本発明の実施例のプログラム更新システムの構成図である。 本実施例の車両制御装置の構成図である。 本実施例のプログラム更新処理のタイムチャートである。 本実施例のプログラム更新処理部が実行する処理のフローチャートである。 本実施例の各処理でのサイズの例を示す図である。
 本発明の実施例を図1から図5を参照して説明する。
 図1は、本実施例のプログラム更新システムの構成図であり、図2は、本実施例の車両制御装置10の構成図である。
 図1に示すプログラム更新システムは、プログラムを配信する更新プログラム配信部30と、更新プログラム配信部30から配信されるプログラムを中継する中継部20と、プログラムの配信を受ける車両制御装置10とを有する。
 車両制御装置10は、第一保存部11と、第二保存部12と、プログラム記憶部13とを有する。第一保存部11及び第二保存部12は、車両制御装置10の揮発性メモリ(RAM)45に設けられる記憶領域であり、第一保存部11は更新プログラムの暗号文111を格納し、第二保存部12は復号された分割更新プログラムを格納する。プログラム記憶部13は、第一プログラム記憶部131と、第二プログラム記憶部132とを有する。
中継部20は、暗号文保存部21を有する。更新プログラム配信部30は、更新対象すべき更新プログラム31と、更新プログラム31が分割して暗号化された暗号文32とを記憶装置に格納する。
 更新プログラム配信部30は、暗号文32を中継部20に送信する。中継部20は、受信した暗号文をメモリ(暗号文保存部21)に保存し、車両制御装置10に送信する。車両制御装置10は、分割されて暗号化された暗号文111を受信して、第一保存部11に保存し、所定の単位で暗号を復号化して更新プログラム121として再構築し、第二保存部12に保存する。車両制御装置10は、プログラム記憶部13の第一プログラム記憶部131と第二プログラム記憶部132のうち、待機中の(プログラム動作中ではない)プログラム記憶部13のプログラム格納領域を選択し、選択されたプログラム格納領域に更新プログラム121を書き込んでプログラムを更新する。
 図2に示すように、車両制御装置10は、電源41と、演算部42と、通信部43と、判定部44と、揮発性メモリ45と、不揮発性メモリ46とで構成される。揮発性メモリ45は、プログラム一時格納部451と、暗号復号部452と、プログラム更新処理部453とを有し、不揮発性メモリ46は、マスクROMで構成される非書き換え領域461と、データが書き換え可能なフラッシュメモリ462とを有する。電源41は給電装置50と接続されており、通信部43は外部装置である中継部20と接続されている。
 図3は、本実施例のプログラム更新処理のタイムチャートである。
 外部装置20は、通信の単位に従って分割して暗号化されて、更新プログラム配信部30から送信されたリプロデータ(暗号文)を車両制御装置10に転送する(S100)。
車両制御装置10は、受信した暗号文を暗号状態のまま第一保存部11に格納する。プログラム更新処理部453は、第一保存部11に格納されたリプロデータの量を監視しており、格納されたデータ量が暗号復号部452の復号処理の単位になると、第一保存部11にバッファされた暗号化データを復号処理の単位で読み出し(S103)、暗号復号部452に復号処理を要求する(S104)。暗号復号部452は、更新プログラム配信部30から送信された暗号文を復号して、プログラム更新処理部453に返信する(S105)。このように、暗号復号部452は、リプロデータが復号処理の単位まで溜まり次第、受信したリプロデータをストリーミングで復号化する。プログラム更新処理部453は、復号されたリプロデータを暗号単位で第二保存部12に格納する(S106)。このステップS103からS106の処理は、更新プログラム配信部30からリプロデータ(暗号文)が送信される毎に実行され、復号されたリプロデータが第二保存部12に蓄積される。
 プログラム更新処理部453は、第二保存部12に格納されたリプロデータの量を監視しており、格納されたデータ量がプログラム記憶部13を構成するフラッシュメモリ462の書き込み単位になると、復号されたリプロデータを第二保存部12から読み出し(S109)、読み出した復号されたリプロデータをプログラム記憶部13に書き込む(S110)。プログラム記憶部13は、リプロデータの書き込みが完了すると、プログラム更新処理部453に書き込み完了を返信する(S111)。このステップS109からS111の処理は、第二保存部12に格納されたリプロデータの量がフラッシュメモリ462の書き込み単位になる毎に実行され、復号されたリプロデータがプログラム記憶部13に蓄積される。
 図3では、転送サイズが暗号化サイズより小さい場合を説明したが、後述する図5のパターン2のように、転送サイズは暗号化サイズより大きくてもよい。この場合、1単位(例えば、1パケットや1フレーム)のリプロデータ(暗号文)が転送されると、転送されたリプロデータから複数の暗号文を取り出して、暗号復号部452で順に復号されて、第二保存部12に保存される。
 図4は、プログラム更新処理部453が実行する処理のフローチャートである。
 まず、プログラム更新処理部453は、第一保存部11に格納されたリプロデータの量をチェックする(S101)。ステップS102において、第一保存部11に格納されたリプロデータの量が暗号復号部452の復号処理の単位未満であれば、ステップ107に進む。一方、第一保存部11に格納されたリプロデータの量が暗号復号部452の復号処理の単位以上であれば、プログラム更新処理部453は、復号処理の単位分のサイズの暗号化データを第一保存部11から読み出し(S103)、暗号復号部452へ送信する(S104)。プログラム更新処理部453は、復号化データを暗号復号部452から受領し(S105)、第二保存部12に格納する(S106)。
 その後、プログラム更新処理部453は、第二保存部12に格納されたリプロデータの量をチェックする(S107)。ステップS108において、第二保存部12に格納されたリプロデータの量がプログラム記憶部13の書き込み単位未満であれば、書き込み単位に満たないサイズのデータを書き込むと、後続する処理も含めて書き込み処理の効率が悪いので、処理を終了する。一方、第二保存部12に格納されたリプロデータの量がプログラム記憶部13の書き込み単位以上であれば、プログラム更新処理部453は、プログラム記憶部13の書き込み単位分のサイズの暗号化データを第二保存部12から読み出し(S109)、プログラム記憶部13の第一プログラム記憶部131と第二プログラム記憶部132のうち、待機中の(プログラム動作中ではない)プログラム格納領域にリプロデータを書き込んでプログラムを更新する。
 次に、各処理でのサイズの例について説明する。図5は、通信路の転送サイズ、暗号化及び復号化単位、フラッシュメモリ462への書き込み、更新されるプログラムのResumeサイズの推奨値を示す。なお、a、m、n、kは所定の整数である。通信路のサイズは、1単位の通信で転送可能なデータ量(例えば、1パケットや1フレームのペイロードサイズ)である。暗号化サイズは、ブロック暗号で指定可能なサイズであり、書込みサイズは、車両制御装置10の仕様(すなわち、プログラム記憶部13を構成するフラッシュメモリ462の書き込み単位)として指定可能なサイズである。Resumeサイズは、プログラムの更新が途中で停止した場合に、プログラムの更新が完了している単位となるサイズを示し、Resumeサイズに満たない部分のプログラムの更新は再度実行される。
 例えば、CANのように通信路の転送サイズが小さいパターン1では、転送サイズがa、暗号化サイズがa×m、書き込みサイズがa×m×nのように整数倍の関係にあり、転送サイズが暗号化サイズより小さい。このとき、Resumeサイズをa×m×n×kとするとよい。具体的には、転送サイズa=8byte、暗号化サイズa×m=16byte、書き込みサイズa×m×n=256byte、Resumeサイズa×m×n×k=16kbyteとする。
 パターン1では、暗号化データの転送から、復号、フラッシュメモリ462への書き込みまで第一保存部11及び第二保存部12のRAM使用量と読み出し処理が少なくなり、処理に必要なリソースを低減できる。一方、転送サイズが小さく、通信回数が多いので、通信速度の高速化に限界がある。
 32kbyte+αまでフラッシュメモリ462への書き込みが完了していた場合、パターン1ではResumeポイントが32kbyteなので、車両制御装置10は、32kbyteからの再開要求を外部装置20に送信する。Resumeサイズが暗号サイズの倍数となっていれば、外部装置20や更新プログラム配信部30では、再開要求のアドレスを見るだけで更新プログラムの暗号文を特定できる。一方、Resumeサイズが暗号サイズの倍数となっていなければ、Resumeポイントの一つ前の暗号文を特定する必要があり、処理が煩雑になる問題が生じる。
 また、イーサネットのように通信路の転送サイズが大きいパターン2では、転送サイズがa、暗号化サイズがa÷m、書き込みサイズがa÷m×nのように整数倍の関係にあるが、転送サイズが暗号化サイズより大きい。このとき、Resumeサイズをa÷m×n×kとするとよい。具体的には、転送サイズa=1280byte、暗号化サイズa÷m=16byte、書き込みサイズa÷m×n=256byte、Resumeサイズa÷m×n×k=16kbyteとする。
 パターン2では、暗号化データの転送から、復号、フラッシュメモリ462への書き込みまで第一保存部11及び第二保存部12のRAM使用量と読み出し処理が大きくなり、処理に必要なリソースが増大する。一方、転送サイズが大きく、通信回数が少ないので、通信速度を高速化できる。
 本実施例ではこのようなパターンを採用する。暗号化サイズは、ブロック暗号で指定できるサイズ(64bit、128bitなど)が限られるため、暗号化サイズとフラッシュメモリ462への書き込み単位を自由に決めると、処理の効率が悪かった。このため、本発明では、通信路の転送サイズに基づいて、暗号化及び復号化のサイズ、フラッシュメモリ462へ書き込みサイズの推奨値を提案するものである。
 本実施例は、転送サイズと暗号化サイズと書き込みサイズの間を適切に定めて、処理を効率的に行うものであるが、前述したパターン1、2のように、転送サイズと暗号化サイズと書き込みサイズの他に、更新されるプログラムのResumeサイズとの関係を定めてもよい。すなわち、Resumeサイズが、フラッシュメモリ462へ書き込みサイズの整数倍で、かつ暗号化サイズの整数倍であるとよい。
 以上に説明したように、本発明の実施例によると、更新プログラム配信部30は、更新プログラムを所定の暗号化単位で暗号化して、所定の転送単位で更新対象となる車両制御装置10宛に送信し、車両制御装置10は、受信した更新プログラムを、暗号化単位で復号化して、所定の書き込み単位でプログラム記憶部13に格納するものであって、書き込み単位は、前記暗号化単位の整数倍としたので、車両制御装置10で必要となる一時記憶領域のサイズを小さくできる。また、プログラム記憶部13の書き込みサイズに合わせた量のデータを書き込むので、フラッシュメモリ462で構成されるプログラム記憶部13への書き込みにおいて無駄な処理が生じなく、車両制御装置10の処理能力の低下を抑制できる。
 また、転送単位は暗号化単位の整数倍、又は、記暗号化単位は転送単位の整数倍であるので、多様なネットワークで更新プログラムを転送できる。
 また、車両制御装置10は、暗号化して転送された更新プログラムを保存する第一保存部11と、第一保存部11に保存された更新プログラムを復号する暗号復号部452と、暗号復号部452で復号して得られる分割更新プログラムを保存する第二保存部12とを有するので、複合化処理の前後のバッファによって、更新プログラム配信部30からの転送単位と、プログラム記憶部13への格納単位において、1回で処理されるデータ量を調整できる。
 また、プログラム記憶部13は、同じサイズの二つのプログラム格納領域131、132を有し、車両制御装置10は、一方のプログラム格納領域に格納されたプログラムを実行し、他方のプログラム格納領域に第二保存部12に保存された分割更新プログラムを格納するので、車両制御装置10の稼働を停止することなく、プログラムを更新できる。
 また、更新プログラム配信部30から車両制御装置10へのプログラムの転送が途中で失敗した場合に、プログラムの転送を再開する単位となるレジュームサイズが定められており、レジュームサイズは、書き込み単位の整数倍としたので、再開要求のレジュームポイントのアドレスを見るだけで再送すべき更新プログラムの暗号文を特定できる。
 なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。
また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
 また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
 各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD、BD等の記録媒体に格納することができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
10 車両制御装置
11 第一保存部
12 第二保存部
121 分割更新プログラム
13 プログラム記憶部
131 第一プログラム記憶部
132 第二プログラム記憶部
20 外部装置(中継部)
30 更新プログラム配信部
41 電源
42 演算部
43 通信部
44 判定部
45 揮発性メモリ
451 プログラム一時格納部
452 暗号復号部
453 プログラム更新処理部
46 不揮発性メモリ
461 非書き換え領域
462 フラッシュメモリ
50 給電装置

Claims (8)

  1.  更新プログラム配信部から車両制御装置に更新プログラムを配信するプログラム更新システムであって、
     前記更新プログラム配信部は、更新プログラムを所定の暗号化単位で暗号化して、所定の転送単位で更新対象となる前記車両制御装置宛に送信し、
     前記車両制御装置は、前記受信した更新プログラムを、前記暗号化単位で復号化して、所定の書き込み単位でプログラム記憶部に格納するものであって、
     前記書き込み単位は、前記暗号化単位の整数倍であることを特徴とするプログラム更新システム。
  2.  請求項1に記載のプログラム更新システムであって、
     前記転送単位は、前記暗号化単位の整数倍であることを特徴とするプログラム更新システム。
  3.  請求項1に記載のプログラム更新システムであって、
     前記暗号化単位は、前記転送単位の整数倍であることを特徴とするプログラム更新システム。
  4.  請求項1に記載のプログラム更新システムであって、
     前記車両制御装置は、
     暗号化して転送された更新プログラムを保存する第一保存部と、
     前記第一保存部に保存された更新プログラムを復号する暗号復号部と、
     前記暗号復号部で復号して得られる分割更新プログラムを保存する第二保存部とを有することを特徴とするプログラム更新システム。
  5.  請求項4に記載のプログラム更新システムであって、
     前記プログラム記憶部は、同じサイズの二つのプログラム格納領域を有し、
     前記車両制御装置は、一方のプログラム格納領域に格納されたプログラムを実行し、他方のプログラム格納領域に前記第二保存部に保存された分割更新プログラムを格納することを特徴とするプログラム更新システム。
  6.  請求項1に記載のプログラム更新システムであって、
     前記更新プログラム配信部から前記車両制御装置へのプログラムの転送が途中で失敗した場合に、プログラムの転送を再開する単位となるレジュームサイズが定められており、
     前記レジュームサイズは、前記書き込み単位の整数倍であることを特徴とするプログラム更新システム。
  7.  更新プログラム配信部から更新プログラムが配信される車両制御装置であって、
     前記更新プログラム配信部で所定の暗号化単位で暗号化された更新プログラムを、所定の転送単位で受信し、
     前記受信した更新プログラムを、前記暗号化単位で復号化して、所定の書き込み単位でプログラム記憶部に格納するものであって、
     前記書き込み単位は、前記暗号化単位の整数倍であることを特徴とする車両制御装置。
  8.  更新プログラム配信部から車両制御装置に更新プログラムを配信するプログラム更新システムにおけるプログラム更新方法であって、
     前記更新プログラム配信部が、更新プログラムを所定の暗号化単位で暗号化して、所定の転送単位で更新対象となる前記車両制御装置宛に送信する手順と、
     前記車両制御装置が、前記受信した更新プログラムを、前記暗号化単位で復号化して、所定の書き込み単位でプログラム記憶部に格納する手順とを含み、
     前記書き込み単位は、前記暗号化単位の整数倍であることを特徴とするプログラム更新方法。
PCT/JP2021/001177 2020-03-30 2021-01-15 プログラム更新システム、車両制御装置及びプログラム更新方法 WO2021199575A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE112021000273.2T DE112021000273T5 (de) 2020-03-30 2021-01-15 Programmaktualisierungssystem, fahrzeugsteuervorrichtung und programmaktualisierungsverfahren
JP2022511552A JP7390476B2 (ja) 2020-03-30 2021-01-15 プログラム更新システム、車両制御装置及びプログラム更新方法
US17/908,502 US20230098588A1 (en) 2020-03-30 2021-01-15 Program update system, vehicle control device, and program update method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-060932 2020-03-30
JP2020060932 2020-03-30

Publications (1)

Publication Number Publication Date
WO2021199575A1 true WO2021199575A1 (ja) 2021-10-07

Family

ID=77928457

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/001177 WO2021199575A1 (ja) 2020-03-30 2021-01-15 プログラム更新システム、車両制御装置及びプログラム更新方法

Country Status (4)

Country Link
US (1) US20230098588A1 (ja)
JP (1) JP7390476B2 (ja)
DE (1) DE112021000273T5 (ja)
WO (1) WO2021199575A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019038855A1 (ja) * 2017-08-23 2019-02-28 三菱電機株式会社 車載電子機器、サーバ装置、およびソフトウェア更新方法
US20190265965A1 (en) * 2018-02-27 2019-08-29 Excelfore Corporation System and method for updating software in an electronic device
JP2020027639A (ja) * 2018-08-10 2020-02-20 株式会社デンソー 車両用電子制御システム、ファイルの転送制御方法、ファイルの転送制御プログラム及び諸元データのデータ構造

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018079768A (ja) 2016-11-15 2018-05-24 トヨタ自動車株式会社 更新データ保存システム
US20240015013A1 (en) * 2020-12-16 2024-01-11 Hitachi Astemo, Ltd. Electronic control device
JP7447864B2 (ja) * 2021-04-26 2024-03-12 トヨタ自動車株式会社 Otaマスタ、方法およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019038855A1 (ja) * 2017-08-23 2019-02-28 三菱電機株式会社 車載電子機器、サーバ装置、およびソフトウェア更新方法
US20190265965A1 (en) * 2018-02-27 2019-08-29 Excelfore Corporation System and method for updating software in an electronic device
JP2020027639A (ja) * 2018-08-10 2020-02-20 株式会社デンソー 車両用電子制御システム、ファイルの転送制御方法、ファイルの転送制御プログラム及び諸元データのデータ構造

Also Published As

Publication number Publication date
DE112021000273T5 (de) 2022-10-27
JPWO2021199575A1 (ja) 2021-10-07
JP7390476B2 (ja) 2023-12-01
US20230098588A1 (en) 2023-03-30

Similar Documents

Publication Publication Date Title
US8774415B2 (en) Key sharing device, key sharing method, and computer program product
US7885404B2 (en) Cryptographic systems and methods supporting multiple modes
US20060242429A1 (en) In stream data encryption / decryption method
EP1435582A2 (en) Hash algorithm and policy management
US20020188871A1 (en) System and method for managing security packet processing
US20070116285A1 (en) Method and system for secure packet communication
US11290258B2 (en) Hybrid cryptographic system and method for encrypting data for common fleet of vehicles
JP7419463B2 (ja) 暗号通信装置、暗号通信システム、暗号通信方法及びプログラム
JP4347351B2 (ja) データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置
WO2024119918A1 (zh) 密钥管理方法、数据保护方法、系统、芯片及计算机设备
CN111464564A (zh) 一种基于对称密码算法的数据高速加解密方法及装置
US9686249B2 (en) Multi-node encryption
EP2278518A1 (en) Memory system with in-stream data encryption/decryption
JP2003204326A (ja) 通信システムと暗号処理機能付きlan制御装置、及び通信制御プログラム
WO2021199575A1 (ja) プログラム更新システム、車両制御装置及びプログラム更新方法
CN111832051B (zh) 一种基于fpga的对称加解密方法及系统
US7558968B2 (en) Information processing apparatus and method
WO2022130700A1 (ja) 電子制御装置
US20240056290A1 (en) Secure distribution and update of encryption keys in cluster storage
CN115529180A (zh) IPSec加解密卸载方法
CN115484301A (zh) 一种数据传输方法、装置、存储介质及电子设备
CN114095153A (zh) 密码数据通信装置
WO2013088741A1 (ja) 暗号通信システム、暗号鍵設定装置、及び、暗号鍵設定プログラム
JP6900833B2 (ja) 通信システム、通信方法および通信処理プログラム
US20090041245A1 (en) Confidential information processing device,confidential information processing apparatus, and confidential information processing method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21781257

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022511552

Country of ref document: JP

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 21781257

Country of ref document: EP

Kind code of ref document: A1