CN112306037A - 信息处理装置 - Google Patents
信息处理装置 Download PDFInfo
- Publication number
- CN112306037A CN112306037A CN202010202865.1A CN202010202865A CN112306037A CN 112306037 A CN112306037 A CN 112306037A CN 202010202865 A CN202010202865 A CN 202010202865A CN 112306037 A CN112306037 A CN 112306037A
- Authority
- CN
- China
- Prior art keywords
- bit value
- unit
- random number
- update
- bit
- 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.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 31
- 238000004364 calculation method Methods 0.000 claims abstract description 77
- 238000000605 extraction Methods 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims description 20
- 239000000284 extract Substances 0.000 abstract description 14
- 230000005540 biological transmission Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 13
- 230000007704 transition Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0208—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
- G05B23/0213—Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W2050/0062—Adapting control system settings
- B60W2050/0075—Automatic parameter input, automatic initialising or calibrating means
- B60W2050/0083—Setting, resetting, calibration
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24065—Real time diagnostics
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/26—Pc applications
- G05B2219/2637—Vehicle, car, auto, wheelchair
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Human Computer Interaction (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Stored Programmes (AREA)
Abstract
一种信息处理装置的认证单元,该认证单元通过使用由随机数生成单元生成的随机数来认证更新控制设备,该更新控制设备对控制程序的更新进行控制。在随机数生成单元中,第一提取单元从第一时钟信号的计数值提取比特值,计算单元对由第一提取单元提取的比特值和位于包括在熵中的比特位置处的目标比特值执行逻辑运算,该比特位置作为被指定的更新位置,替换单元利用逻辑运算的结果替换在更新位置处的比特值,位置指定单元在比特值被替换之后指定新的更新位置,输出单元根据熵生成随机数。
Description
技术领域
本发明涉及更新存储在存储装置中的程序的信息处理装置。
背景技术
电子控制单元(ECU)被安装在诸如汽车之类的车辆上。ECU是控制诸如发动机、动力操纵设备、气囊和变速器之类的各种设备的信息处理装置。
ECU是微型计算机,并且执行被存储在非易失性存储装置中的软件。当存储在非易失性存储装置中的软件被更新时,ECU与更新控制设备通信以获取用于更新的软件,并且利用所获取的用于更新的软件来重写被存储在非易失性存储装置中的软件。更新控制设备可以被称作重新编程工具。
JP-A-2015-14910公开一种信息分发系统,该信息分发系统更新被安装在车辆上的车辆内终端的软件。在根据JP-A-2015-14910的信息分发系统中,车辆内终端从服务器获取经加密的软件,并且解密所获取的软件。在解密所获取的软件之前,车辆内终端验证用于解密的软件唯一密钥的有效性。
发明内容
在更新被存储在存储装置中的软件之前,ECU对提供用于更新的软件的更新控制设备进行认证。为了防止ECU的软件被非法更新,需要进一步提高更新控制设备的认证期间的安全性。
本公开的目的涉及提供一种提高在软件更新期间的安全性的信息处理装置。
[1]根据本公开的一个方面,提供一种安装在车辆上的信息处理装置,该信息处理装置包括:车辆控制单元,所述车辆控制单元被配置为执行用于控制所述车辆的控制程序;随机数生成单元,所述随机数生成单元被配置为生成随机数;以及认证单元,所述认证单元被配置为,通过使用由所述随机数生成单元生成的随机数来认证更新控制设备,所述更新控制设备对所述控制程序的更新进行控制。所述随机数生成单元包括:第一提取单元,所述第一提取单元被配置为从第一时钟信号的计数值提取具有预定长度的比特值,目标比特获取单元,所述目标比特获取单元被配置为,在存储在缓冲区中的熵中的至少一个比特位置被指定为更新位置的情况下,获取在被指定的所述更新位置处的比特值作为目标比特值,计算单元,所述计算单元被配置为,对由所述第一提取单元提取的比特值和由所述目标比特获取单元获取的目标比特值执行逻辑运算,替换单元,所述替换单元被配置为,利用由所述计算单元获得的所述逻辑运算的结果替换在所述更新位置处的比特值,位置指定单元,所述位置指定单元被配置为,在利用所述逻辑运算的结果替换在所述更新位置处的比特值之后,指定新的更新位置,以及输出单元,所述输出单元被配置为根据存储在所述缓冲区中的熵生成所述随机数,并将所述随机数输出到所述认证单元。
根据[1],在熵中指定了比特位置的情况下,所述计算单元对在所指定的比特位置处的比特值和从第一时钟信号的计数值提取的比特值执行逻辑运算。所述替换单元利用由所述计算单元获得的逻辑运算的结果替换在所指定的比特位置处的比特值。当在所指定的比特位置处的比特值被替换时,所述位置指定单元指定新的比特位置。因此,可以更新被包括在熵中的所有比特,并且增加熵的随机性。另外,由于基于时钟信号的计数值来确定熵,所以增加了熵的随机性。因此,根据[1],第三方可能难以估计根据熵所生成的随机数。根据[1],由于基于随机数对更新控制设备进行认证,所以可以提高软件更新期间的安全性。
[2]在根据[1]的信息处理装置中,随机数生成单元还可以包括:第二提取单元,所述第二提取单元被配置为,从具有与所述第一时钟信号的第一频率不同的第二频率的时钟信号的计数值提取具有预定长度的比特值,所述计算单元可以包括:中间计算单元,所述中间计算单元被配置为,对由所述第一提取单元提取的比特值和由所述第二提取单元提取的比特值执行逻辑运算,以及最终计算单元,所述最终计算单元被配置为,对所获得的目标比特值和由所述中间计算单元所获得的结果执行逻辑运算。所述替换单元可以利用由所述最终计算单元获得的计算结果替换在所述更新位置处的比特值。
根据[2],由于基于从两个时钟信号获取的两个计数值来更新熵的比特值,所以可以进一步增加熵的随机性。
[3]在根据[2]的信息处理装置中,随机数生成单元还可以包括第三提取单元,所述第三提取单元被配置为,从具有与所述第一频率和所述第二频率不同的第三频率的时钟信号的计数值提取具有预定长度的比特值,并且所述中间计算单元对由所述第二提取单元提取的比特值和由所述第三提取单元提取的比特值执行逻辑运算,以生成中间计算值,并且对所生成的中间计算值和由所述第一提取单元提取的比特值执行逻辑运算。
根据[3],由于基于从三个时钟信号获取的三个计数值来更新熵的比特值,所以可以进一步增加熵的随机性。
[4]在根据[3]的信息处理装置中,第一频率可以高于第二频率并且低于第三频率。
根据[4],中间计算单元首先对从第二时钟信号的计数值提取的比特值和从第三时钟信号的计数值提取的比特值执行逻辑运算。在第一时钟信号至第三时钟信号的频率中,第二时钟信号的频率最低,而第三时钟信号的频率最高。因此,由于第二时钟信号的计数值和第三时钟信号的计数值的组合的模式增加,所以逻辑运算结果的随机性可以增加。熵的随机性可以进一步增加。
[5]在根据[1]至[3]中任一项的信息处理装置中,随机数生成单元还可以包括计数器,所述计数器被配置为,在所述车辆控制单元或所述更新控制单元执行中断处理期间,在后台中继续对所述第一时钟信号进行计数,并且所述目标比特获取单元在所述中断处理完成之后获取目标比特。
根据[5],即使当中断处理发生时,计数器也会在后台中继续对第一时钟信号进行计数。由于从中断处理的发生到其结束的时间段是随机的,所以增加了从第一时钟信号的计数值提取的比特值的随机性。熵的随机性可以进一步增加。
[6]根据本公开的一个方面,提供一种信息处理装置的控制方法,所述信息处理装置包括存储用于控制车辆的控制程序的存储装置并且执行所述控制程序,所述控制方法包括:从时钟信号的计数值提取具有预定长度的比特值;在存储在缓冲区中的熵中的至少一个比特位置被指定为更新位置的情况下,获取在被指定的更新位置处的比特值作为目标比特值;对所提取的比特值和所获取的目标比特值执行逻辑运算;利用所述逻辑运算的结果替换在所述更新位置处的比特值;在替换在所述更新位置处的比特值之后,指定新的更新位置;根据存储在所述缓冲区中的熵生成随机数;以及通过使用所生成的随机数来认证被配置为对所述控制程序的更新进行控制的更新控制设备。
根据[6]的方法与根据[1]的信息处理装置一起使用。
根据[6],可以提供一种提高在软件更新期间的安全性的信息处理装置。
附图说明
将基于以下附图详细描述本发明的示例性实施例,在附图中:
图1是示出软件更新系统的结构的功能框图,该软件更新系统包括根据本发明实施例的信息处理装置;
图2是示出图1中所示的信息处理装置的结构的功能框图;
图3是示出图1中所示的信息处理装置的硬件结构的图;
图4是示出图2中所示的随机数生成单元的结构的功能框图;
图5是示出图4中所示的计算单元的结构的图;
图6是示出图2中所示的存储装置中的存储区域的分配的示例的图;
图7是示出图1中所示的软件更新系统的操作的时序图;
图8是图7中所示的熵生成处理的流程图;以及
图9是示出由图4中所示的计算单元执行的逻辑运算的示例的图。
具体实施方式
在下文中,将参考附图详细描述本发明的实施例。在附图中,相同或等同的部分由相同的附图标记表示,并且将不重复其描述。
[1.结构]
[1.1.软件更新系统100的结构]
图1是示出软件更新系统100的结构的功能框图,该软件更新系统包括根据本发明实施例的信息处理装置2。参考图1,软件更新系统100更新由信息处理装置2执行的软件。在下面的描述中,“软件”和“程序”被互换使用。
信息处理装置2是安装在车辆1上的电子控制单元(ECU)。信息处理装置2控制车辆1。在本实施例中,信息处理装置2控制被安装在车辆1上的发动机3。在下文中,信息处理装置2可以被称作“ECU2”。
车辆1包括ECU 2和发动机3。在图1中,省略了ECU 2和发动机3以外的车辆1的结构。
ECU 2执行发动机3的控制程序以控制发动机3。ECU 2与更新控制设备4通信以更新发动机3的控制程序。当从更新控制设备4接收到随机数发送请求45时,ECU 2将用于更新控制设备4的认证的随机数35发送到更新控制设备4。ECU 2使用从更新控制设备4接收的认证密钥4K来认证更新控制设备4。下文将描述对控制程序的更新的细节。
发动机3是车辆1的动力源。发动机3产生动力并且将从所产生的动力获得的旋转力施加到车辆1的驱动轮。
更新控制设备4与ECU 2通信以更新存储在ECU 2中的发动机3的控制程序。在开始控制程序的更新之前,更新控制设备4将随机数发送请求45发送到ECU 2。当从ECU 2接收到作为对随机数发送请求的响应的随机数35时,更新控制设备4使用接收到的随机数35来生成认证密钥4K。当从ECU 2接收到基于认证密钥4K的认证时,更新控制设备4将用于更新的控制程序发送到ECU 2。
[1.2.ECU 2的结构]
图2是示出图1中所示的ECU 2的结构的功能框图。参考图2,ECU 2包括车辆控制单元21、更新控制单元22、时钟生成电路23和存储装置24。
车辆控制单元21执行存储在存储装置24中的第一程序41以控制发动机3。第一程序41是发动机3的控制程序。
更新控制单元22执行存储在存储装置24中的第二程序42以更新存储在存储装置24中的第一程序41。下文将描述更新控制单元22的结构。
时钟产生电路23生成具有彼此不同的频率的时钟信号50至时钟信号53。时钟信号50被输出到车辆控制单元21和更新控制单元22。车辆控制单元21和更新控制单元22与从时钟生成电路23接收的时钟信号50同步地操作。时钟信号51至时钟信号53被输出到更新控制单元22并且被用于生成下文描述的熵31。
时钟信号51的频率高于时钟信号52和时钟信号53的频率。时钟信号53的频率低于时钟信号51和时钟信号52的频率。
存储装置24是非易失性的,并且在本实施例中是闪存。存储装置24存储第一程序41和第二程序42。在存储装置24中设置缓冲区43。缓冲区43存储用于生成随机数35的熵31。
图3是示出图1中所示的ECU 2的硬件结构的框图。参考图3,ECU 2包括中央处理单元(CPU)201、随机存取存储器(RAM)202、通信接口203、输出接口204、输入接口205、总线206和存储装置24。
CPU 201执行从存储装置24加载到RAM 202中的用于控制ECU2的程序。RAM 202是ECU 2的主存储器。CPU 201包括图2中所示的时钟生成电路23。CPU 201与由时钟生成电路23生成的时钟信号50同步地操作。
当CPU 201执行被加载到RAM 202中的第一程序41时,CPU 201作为车辆控制单元21进行操作。当CPU 201执行被加载到RAM 202中的第二程序42时,CPU 201作为更新控制单元22进行操作。CPU 201不会并行执行第一程序41和第二程序42。
通信接口203使用诸如传输控制协议(TCP)和互联网协议(IP)之类的协议与更新控制设备4通信。ECU 2与更新控制设备4之间的通信方法不受特别限制。
输出接口204通过使用控制局域网(CAN)将控制信号输出到发动机3。输入接口205通过使用CAN从被附接到发动机3的温度传感器等接收检测信号。
总线206连接CPU 201、RAM 202、通信接口203、输出接口204、输入接口205和存储装置24。
[1.3.更新控制单元22的结构]
参考图2,更新控制单元22包括认证单元25、随机数生成单元26和认证密钥生成单元27。
认证单元25与图1中所示的更新控制设备4通信以认证更新控制设备4。具体地,当从更新控制设备4接收到随机数发送请求45时,认证单元25将由随机数生成单元26生成的随机数35发送到更新控制设备4。认证单元25从更新控制设备4接收由更新控制设备4使用随机数35所生成的认证密钥4K。认证单元25基于接收到的认证密钥4K和由认证密钥生成单元27生成的认证密钥2K来确认更新控制设备4的有效性。当认证单元25可以确认更新控制设备4的有效性时,开始进行存储在存储装置24中的第一程序41的更新。
随机数生成单元26使用从时钟生成电路23接收的时钟信号51至时钟信号53来更新被存储在缓冲区43中的熵31。当随机数生成单元26从更新控制设备4接收到随机数35的发送请求时,随机数生成单元26使用更新的熵31来生成随机数35。下文将描述随机数生成单元26的结构。
认证密钥生成单元27使用从随机数生成单元26接收的随机数35来生成认证密钥2K。认证密钥生成单元27将所生成的认证密钥2K输出到认证单元25。
[1.4.随机数生成单元26的结构]
图4是示出图2中所示的随机数生成单元26的结构的功能框图。参考图4,包括计数器261、第一提取单元262、第二提取单元263、第三提取单元264、目标比特获取单元265、计算单元266、替换单元267、位置指定单元268和输出单元269。
计数器261从时钟生成电路23接收时钟信号51至时钟信号53,并对接收到的时钟信号51至时钟信号53进行计数。计数器261将通过对时钟信号51进行计数所获得的第一计数值51A输出到第一提取单元262。计数器261将通过对时钟信号52进行计数所获得的第二计数值52A输出到第二提取单元263。计数器261将通过对时钟信号53进行计数所获得的第三计数值53A输出到第三提取单元264。
第一提取单元262从计数器261接收第一计数值51A,并从接收到的第一计数值51A提取最低有效位的比特值。第一提取单元262将所提取的比特值作为第一提取比特值51B提取到计算单元266。
第二提取单元263从计数器261接收第二计数值52A,并从接收到的第二计数值52A提取最低有效位的比特值。第二提取单元263将所提取的比特值作为第二提取比特值52B提取到计算单元266。
第三提取单元264从计数器261接收第三计数值53A,并从接收到的第三计数值53A提取最低有效位的比特值。第三提取单元264将所提取的比特值作为第三提取比特值53B提取到计算单元266。
目标比特获取单元265在存储在缓冲区43中的熵31中,获取在由位置指定单元268通知的更新位置57处的比特值。目标比特获取单元265将所获取的比特值作为目标比特值54输出到计算单元266。
计算单元266从第一提取单元262接收第一提取比特值51B,从第二提取单元263接收第二提取比特值52B,并且从第三提取单元264接收第三提取比特值53B。计算单元266从目标比特获取单元265接收目标比特值54。计算单元266使用所接收到的所提取的比特值51B至比特值53B和所接收到的目标比特值54执行逻辑运算,并且生成作为逻辑运算的结果的更新比特值55。计算单元266将更新比特值55输出到替换单元267。
替换单元267利用从计算单元266接收的更新比特值55,来替换存储在缓冲区43中的熵31中的在由位置指定单元268所指定的更新位置57处的比特值。替换单元267将替换结束通知56通知给位置指定单元268,该替换结束通知56用于指示在更新位置57处的比特值的替换已完成。
当从替换单元267接收到替换结束通知时,位置指定单元268改变更新位置57。位置指定单元268将改变后的更新位置57通知给目标比特获取单元265和替换单元267。
当从认证单元25接收到随机数发送请求45时,输出单元269从缓冲区43读取熵31,并将所读取的熵31转换为随机数35。输出单元269将从熵31转换的随机数35输出到认证密钥生成单元27。
[1.5.计算单元266的结构]
图5是示出图4中所示的计算单元266的结构的功能框图。参考图5,计算单元266包括第一中间计算单元601、第二中间计算单元602和最终计算单元603。
第一中间计算单元601对从第一提取单元262接收的第一提取比特值51B和从第三提取单元264接收的第三提取比特值53B执行逻辑运算。由第一中间计算单元601生成作为该逻辑运算的结果的第一中间比特值61。
第二中间计算单元602对从第二提取单元263接收的第二提取比特值52B和从第一中间计算单元601接收的第一中间比特值61执行逻辑运算。第二中间计算单元602生成作为该逻辑计算的结果的第二中间比特值62。
最终计算单元603对从目标比特获取单元265接收的目标比特值54和从第二中间计算单元602接收的第二中间比特值62执行逻辑运算。最终计算单元603生成作为该逻辑运算的结果的更新比特值55。
[1.6.存储区域的分配]
图6是示出图2中所示的存储装置24中的存储区域70的分配的示例的图。参考图6,存储区域70包括代码闪存区域71和数据闪存区域72。
代码闪存区域71是存储由CPU 201执行的程序的区域。第一程序41和第二程序42被写入代码闪存区域71。代码闪存区域71被划分为正常使用区域711和更新使用区域712。
正常使用区域711存储用于控制车辆1的程序。由于第一程序41是发动机3的控制程序,所以第一程序41被写入正常使用区域711中。当CPU 201作为车辆控制单元21操作时,被写入更新使用区域712中的第二程序42不被加载到RAM 202中。
更新使用区域712存储用于对被写入正常使用区域711中的程序进行更新的程序。由于第二程序42被用于更新第一程序41,所以第二程序42被写入更新使用区域712中。当CPU 201作为更新控制单元22操作时,被写入正常使用区域711中的程序不被加载到RAM202中。这是因为,当第一程序41被加载到RAM 202中时,更新控制单元22不能对被写入存储区域70中的第一程序41进行重写。
更新使用区域712的一部分被用作缓冲区43。缓冲区43存储熵31。
[2.操作]
[2.1.软件更新系统100的操作]
图7是示出图1中所示的软件更新系统100的操作的时序图。将参考图7描述软件更新系统100的操作。在初始状态下,车辆控制单元21与时钟信号50同步地操作,并且更新控制单元22被停用。即,正在执行第一程序41,并且未将第二程序42加载到RAM 202中。在初始状态下,不启动第一程序41的更新,并且不生成时钟信号51至时钟信号53。
当存储在存储装置24中的第一程序41被更新时,车辆1的驾驶员将车辆1移动到车辆1的商店。在商店中,作为对工人的操作的响应,更新控制设备4启动与ECU 2的通信。
具体地,更新控制设备4将更新模式转变请求发送到ECU 2(步骤S11)。更新模式转变请求是用于指示ECU 2激活更新控制单元22的消息。
当从更新控制设备4接收到更新模式转变请求时,ECU 2将更新模式转变响应发送到更新控制设备4(步骤S12)。更新模式转变响应是用于通知向更新模式的转变已启动的消息。
当从ECU 2接收到更新模式转变响应时,更新控制设备4待机,直到经过预定的待机时间为止(步骤S13)。待机时间的长度例如是5秒。基于ECU 2停止车辆控制单元21并且激活更新控制单元22所需的更新模式转变时间,来确定待机时间。具体地,待机时间可以比更新模式转变时间更长。
在发送更新模式转变响应之后,ECU 2执行重置处理(步骤S14)。具体地,在ECU 2中,车辆控制单元21被停用,并且更新控制单元22被激活。即,第二程序42代替第一程序被加载到RAM 202中。CPU201启动被加载到RAM 202中的第二程序42。随着车辆控制单元21被停用,从RAM 202卸载第一程序41。因此,可以更新被写入代码闪存区域71中的第一程序41。
ECU 2启动熵生成处理(步骤S15)。作为步骤S15的结果,存储在缓冲区43中的熵31的比特值被更新。熵生成处理(步骤S15)继续,直到ECU 2从更新控制设备4接收到随机数发送请求45为止。熵生成处理(步骤S15)将在下文详细描述。
在待机时间过去之后,更新控制设备4将随机数发送请求45发送到ECU 2(步骤S16)。随机数发送请求45是用于请求发送随机数35的消息,随机数35用于更新控制设备4的认证。
当从更新控制设备4接收到随机数发送请求45时,ECU 2使用被存储在缓冲区43中的熵31来生成随机数35(步骤S17)。只要随机数35是基于熵31生成的,用于生成随机数35的算法就不受限制。随机数35可以不是真随机数。即,随机数35可以是伪随机数。ECU 2将所生成的随机数35发送到更新控制设备4(步骤S18)。
在ECU 2中,认证密钥生成单元27使用从随机数生成单元26接收的随机数35来生成认证密钥2K(步骤S19)。认证密钥生成单元27将在步骤S19中生成的认证密钥2K输出到认证单元25。
当从ECU 2接收到随机数35时,更新控制设备4使用接收到的随机数35来生成认证密钥4K(步骤S20)。更新控制设备4将在步骤S19中生成的认证密钥4K发送到ECU 2(步骤S21)。
在步骤S19和步骤S20中,用于生成认证密钥的算法没有特别限制。例如,高级加密标准(AES)被用于生成认证密钥。用于生成认证密钥4K的加密密钥可以与用于生成认证密钥2K的加密密钥相同或不同。
认证单元25基于从更新控制设备4接收的认证密钥4K和从认证密钥生成单元27接收的认证密钥2K来认证更新控制设备4(步骤S22)。具体地,认证单元25将认证密钥4K与认证密钥2K进行比较。
当认证密钥4K与认证密钥2K不匹配时,认证单元25确定,不能确认作为认证密钥4K的发送源的更新控制设备4的有效性。认证单元25将认证结果通知发送到更新控制设备4,该认证结果通知用于通知更新控制设备4不能被认证(步骤S23)。在这种情况下,ECU 2可以拒绝接收从更新控制设备4发送的数据。备选地,ECU 2可以请求认证密钥4K的重新发送。
当认证密钥4K与认证密钥2K匹配时,认证单元25确定,确认了作为认证密钥4K的发送源的更新控制设备4的有效性。认证单元25将认证结果通知发送到更新控制设备4,该认证结果通知用于通知更新控制设备4被认证(步骤S23)。在步骤S23之后,更新控制设备4启动用于更新的第一程序41的传输。更新控制单元22使用从更新控制设备4接收的用于更新的第一程序41,来更新存储在正常使用区域711中的第一程序41。
将存储在正常使用区域711中的第一程序41重写为用于更新的第一程序41的方法不受特别限制。例如,更新控制设备4可以将用于更新的第一程序41全部发送到ECU 2。在这种情况下,ECU 2可以将用于更新的第一程序41临时存储在存储区域70的保留区域中,并且利用临时存储的用于更新的第一程序41重写被存储在正常使用区域711中的第一程序41。
备选地,更新控制设备4可以将用于更新的第一程序41划分为预定尺寸的数据,并且将经划分的数据与用于指示经划分的数据的写入的命令一起发送到ECU 2。在这种情况下,更新控制单元22可以在启动经划分的数据的接收之前,擦除被写入正常使用区域711中的第一程序41。更新控制单元22根据从更新控制设备4接收的命令,将与命令一起接收的经划分的数据写入正常使用区域711中。
[2.2.熵生成处理(步骤S15)]
随机数生成单元26对时钟信号51至时钟信号53进行计数,以生成计数值51A至计数值53A。随机数生成单元26使用所生成的计数值51A至计数值53A中的最低有效比特值,逐比特更新被存储在缓冲区43中的熵31的比特。因此,随机数生成单元26可以增加熵31的随机性。由于用于生成认证密钥2K和认证密钥4K的随机数35是从具有增加的随机性的熵31生成的,所以第三方难以估计随机数35。因此,ECU 2可以进一步提高在软件更新期间的安全性。
下文将参考图8和图9二者详细描述熵生成处理(步骤S15)。图8是图7中所示的熵生成处理(步骤S15)的流程图。图9是示出由图4中所示的计算单元266执行的逻辑运算的示例的图。
当通过图7中所示的重置处理(步骤S14)激活更新控制单元22时,随机数生成单元26启动图8中所示的处理。当启动图8中所示的处理时,不生成时钟信号51至时钟信号53。
(第一个更新位置的指定)
在随机数生成单元26中,位置指定单元268将被存储在缓冲区43中的熵31的最低有效位指定为更新位置57(步骤S501)。熵31的数据长度是128(比特)。在本实施例中,熵31的最低有效位是图9中的熵31的右端。位置指定单元268将在步骤S501中指定的更新位置57通知给目标比特获取单元265和替换单元267。
(时钟信号的计数开始)
计数器261开始对用于生成熵31的时钟信号51至时钟信号53进行计数(步骤S502)。具体地,更新控制单元22指示时钟生成电路23生成时钟信号51至时钟信号53。时钟生成电路23通过对来自电子振荡器(未示出)的输出信号进行分频来生成时钟信号51至时钟信号53。
计数器261从时钟生成电路23接收时钟信号51至时钟信号53,并对接收到的时钟信号51至时钟信号53进行计数。通过对时钟信号51进行计数来生成第一计数值51A。通过对时钟信号52进行计数来生成第二计数值52A。通过对时钟信号53进行计数来生成第三计数值53A。
(第一中间比特值61的生成)
随机数生成单元26从由计数器261生成的第一计数值51A和第三计数值53A提取最低有效位的比特值(步骤S503)。
具体地,第一提取单元262从计数器261读取第一计数值51A。第一提取单元262从所读取的第一计数值51A的最低有效位提取第一提取比特值51B。与第一提取单元262相似,第三提取单元264从自计数器261所读取的第三计数值53A的最低有效位提取第三提取比特值53B。在图9中,第一计数值51A和第二计数值52A的最低有效位被粗框包围。
第一中间计算单元601对在步骤S503中获取的第一提取比特值51B和第三提取比特值53B执行逻辑运算,以生成第一中间比特值61(步骤S504)。
具体地,第一中间计算单元601获得第一提取比特值51B和第三提取比特值53B的异或。第一中间计算单元601将所获得的异或作为第一中间比特值61输出到第二中间计算单元602。在图9所示的示例中,由于第一提取比特值51B为“1”且第三提取比特值53B为“0”,所以第一中间比特值61为“1”。
计算单元266可以通过将从时钟信号51得出的第一提取比特值51B和从时钟信号53得出的第三提取比特值53B用于第一逻辑运算,来增加熵31的随机性。这将在下文详细描述。
在时钟信号51至时钟信号53的频率中,时钟信号51的频率最高。从通过对时钟信号51进行计数所获得的第一计数值51A的最低有效位提取第一提取比特值51B。在时钟信号51至时钟信号53的频率中,时钟信号53的频率最低。从通过对时钟信号53进行计数所获得的第三计数值53A的最低有效位提取第三提取比特值53B。
因此,在第一提取比特值51B为1的时间段中,第三提取比特值53B改变至少一次。时钟信号51的频率与时钟信号53的频率之间的差越大,则第三提取比特值53B被改变的次数就越大。因此,由于难以估计第一提取比特值51B和第三提取比特值53B的组合,所以第一中间比特值61的随机性增加。由于基于具有增加的随机性的第一中间比特值61来更新熵31的比特值,所以进一步增加了熵31的随机性。
假设第一提取比特值51B是第一计数值51A中的多个连续比特并且包括第一计数值51A的最低有效位。在这种情况下,在与第一提取比特值51B相同的条件下,从第三计数值提取第三提取比特值53B。由于第一提取比特值51B和第三提取比特值53B中的每一个具有多个比特,所以第一提取比特值51B和第三提取比特值53B的组合的数量增加。第一提取比特值51B改变的次数大于第一计数值51A的其他比特位置处的比特值改变的次数。这对于第三提取比特值53B同样适用。因此,更加难以估计第一提取比特值51B和第三提取比特值53B的组合。因此,第一中间比特值61的随机性进一步增加。
(第二中间比特值62的生成)
在完成用于获取第一中间比特值61的计算之后,第二提取单元263从第二计数值52A获取第二提取比特值52B(步骤S505)。具体地,第二提取单元263从计数器261读取第二计数值52A,并从所读取的第二计数值52A提取最低有效位的比特值。第二提取单元263获取所提取的比特值作为第二提取比特值52B。
第二中间计算单元602对在步骤S504中生成的第一中间比特值61和在步骤S505中获取的第二提取比特值52B执行逻辑运算,以生成第二中间比特值52B(步骤S506)。
具体地,第二中间计算单元602获得第二提取比特值52B和第一中间比特值61的异或。第一中间计算单元601将所获得的异或作为第二中间比特值62输出到最终计算单元603。在图9中所示的示例中,由于第二提取比特值52B和第一中间比特值61为“1”,因此第二中间比特值62为“0”。
当生成第二中间比特值62时,第二提取单元263在与第一提取单元262和第三提取单元264获取第一提取比特值51B和第三提取比特值53B时的第一时间不同的第二时间,获取第二提取比特值52B。因此,可以增加熵31的随机性。这将在下文详细描述。
如上所述,第一时间在用于获得第一中间比特值61的计算之前。第二时间在用于获得第一中间比特值61的计算之后。在从第一时间到第二时间的时段中,第二计数值52A继续增加。由于第三方难以估计以上时间段,所以第三方也难以估计第一中间比特值61和从第二计数值52A提取的第二提取比特值52B的组合。因此,第二中间比特值62的随机性增加。由于基于具有增加的随机性的第二中间比特值62来更新熵31的比特值,所以进一步增加了熵31的随机性。
(更新比特值55的生成)
在步骤S506之后,目标比特获取单元265从存储在缓冲区43中的熵31获取目标比特值54(步骤S507)。具体地,目标比特获取单元265从存储在缓冲区43中的熵31中,读取在由位置指定单元268指定的更新位置57处的比特值。目标比特获取单元265将所读取的比特值作为目标比特值54输出到最终计算单元603。在图9中所示的示例中,更新位置57是存储在缓冲区43中的熵31的最低有效位。
最终计算单元603对在步骤S506中获取的第二中间比特值62和在步骤S507中获取的目标比特值54执行逻辑运算,以生成更新比特值55(步骤S508)。
具体地,最终计算单元603获得目标比特值54和第二中间比特值62的异或。最终计算单元603将所获得的异或作为更新比特值55输出到替换单元267。在图9中所示的示例中,目标比特值54是“1”,并且第二中间比特值62是“1”。由于更新比特值55是目标比特值54和第二中间比特值62的异或,所以更新比特值55是“0”。
(熵31的更新)
替换单元267利用在步骤S508中获取的更新比特值55,来替换存储在缓冲区43中的熵31中的在由位置指定单元268所指定的更新位置57处的比特值(步骤S509)。
在图9中所示的示例中,更新位置57是存储在缓冲区43中的熵31的最低有效位。因此,替换单元267利用更新比特值55替换熵31的最低有效位的比特值“1”。因此,熵31的最低有效位的比特值被改变为“0”。
(更新位置的改变)
在步骤S509之后,位置指定单元268改变更新位置57(步骤S510)。具体地,位置指定单元268将存储在缓冲区43中的熵31中的比当前更新位置57处的位更高、并与更新位置57相邻的位的位置指定为新的更新位置57。即,新的更新位置57比当前更新位置57高一位。
在图9中所示的示例中,当前更新位置57是存储在缓冲区43中的熵31的最低有效位。位置指定单元268将位于熵31的最低有效位左侧的位的位置指定为新的更新位置57。在图9中所示的熵31中,在新的更新位置57处的比特由虚线表示。
(更新位置的改变)
随机数生成单元26确定认证单元25是否从更新控制设备4接收到随机数发送请求45(步骤S511)。当认证单元25未从更新控制设备4接收到随机数发送请求45时(在步骤S511中的“否”),随机数生成单元26执行步骤S503至步骤S510以对新的更新位置57的比特值进行更新。
通过由位置指定单元268重复对新的更新位置57的指定(步骤S510),将熵31的每一比特指定为更新位置57。将参考图9描述更新位置57的改变。如箭头58所示,位置指定单元268将比当前更新位置高一位的比特位置指定为新的更新位置57。通过由位置指定单元268重复步骤S510,更新位置逐比特地移动到熵31的更高的比特位置。
在当前更新位置57是存储在缓冲区43中的熵31的最高有效位时,位置指定单元268将熵31的最低有效位指定为新的更新位置,如箭头59所示。
描述返回到步骤S511。当认证单元25从更新控制设备4接收到随机数发送请求45时(步骤S511中的“是”),计数器261停止对时钟信号51至时钟信号53进行计数(步骤S512)。之后,随机数生成单元26结束图8中所示的处理。
(中断处理的发生)
当在熵生成处理的执行期间发生中断处理时(步骤S15),随机数生成单元26继续对时钟信号51至时钟信号53进行计数。在由车辆控制单元21或更新控制单元22执行中断处理期间,随机数生成单元26停止更新被存储在缓冲区43中的熵31的比特。即,当中断处理发生时,随机数生成单元26将图8中所示的步骤S503至步骤S510的处理的优先级设置为低于中断处理的优先级。在这种情况下,在继续对时钟信号51至时钟信号53的进行计数的同时,停止对熵31中的更新位置57的指定和在更新位置57处的比特值的替换。
当中断处理完成时,随机数生成单元26恢复图8中所示的步骤S503至步骤S510的处理。即使在执行中断处理期间,时钟信号51至时钟信号53的计数也继续进行。从中断处理的发生到其结束的时间段是随机的。因此,在中断处理刚刚结束之后获得的第一提取比特值51B、第二提取比特值52B和第三提取比特值53B的随机性增加。因此,由于随机数生成单元26可以增加熵31的随机性,所以第三方可能难以估计随机数35。
当更新控制设备4在中断处理发生期间请求随机数35时,随机数生成单元26可以结束熵生成处理(步骤S15)。在这种情况下,随机数生成单元26基于在中断处理发生之前的熵31来生成随机数35。备选地,当中断处理完成时,随机数生成单元26可以在将图8中所示的步骤S503至步骤S510的处理执行一次之后结束熵生成处理(步骤S15)。
(时钟信号51至时钟信号53的频率)
将描述时钟信号51至时钟信号53的频率之间的关系。时钟信号51的频率与时钟信号52的频率和时钟信号53的频率的整数倍不同。时钟信号52的频率与时钟信号53的频率的整数倍不同。
时钟信号51的频率与时钟信号53的频率的整数倍不同。在这种情况下,可以增大时钟信号51的频率和时钟信号53的频率的最小公倍数。由于基于时钟信号51的第一提取比特值51B和基于时钟信号53的第三提取比特值53B的组合的随机性提高,所以第一中间比特值61的随机性被提高。因此,由于熵31的可再现性降低,所以ECU 2可以提高更新第一程序41时的安全性。
时钟信号52的频率与时钟信号51的频率的整数倍不同,并且与时钟信号53的频率的整数倍不同。第一中间比特值是根据第一提取比特值51B和第三提取比特值53B计算的。由于第二提取比特值52B和第一中间比特值61的组合的随机性提高,所以第二中间比特值62的随机性提高。因此,由于熵31的可再现性降低,所以ECU 2可以提高更新第一程序41时的安全性。
如上所述,当在更新位置57处的比特值被更新时,位置指定单元268指定新的更新位置57。只要指定新的更新位置57,就重复生成更新比特值55。因此,存储在缓冲区43中的熵31的比特被更新。如下文所述,由于在图8中所示的步骤S503至步骤S511中更新的比特值是随机的,所以可以提高熵31的随机性。
[修改]
尽管已经在上述实施例中描述了逐位地指定更新位置57的示例,但是本发明不限于此。位置指定单元268可以将多个比特位置指定为存储在缓冲区43中的熵31中的更新位置57。优选地,多个被指定的比特位置是连续的。
例如,当两个连续的比特位置被指定为更新位置57时,第一提取单元262从第一计数值51A提取第一提取比特值51B,该第一提取比特值51B来自包括最低有效位在内的两个连续的比特位置。这同样适用于第二提取单元263和第三提取单元264。当位置指定单元268将多个比特位置指定为更新位置57时,第一提取比特值51B和第三提取比特值53B的组合的数量增加。因此,由于熵31的随机性增加,所以可能更加难以估计第一中间比特值61。
尽管在以上实施例中已经描述了第一提取单元262提取第一计数值51A的最低有效位的比特值作为第一提取比特值51B的示例,但是本发明不限于此。第一提取单元262可以从第一计数值51A的除了最低有效位之外的比特位置提取比特值。这同样适用于第二提取单元263和第三提取单元264。
尽管已经在以上实施例中描述了计算单元266首先对第一提取比特值51B和第三提取比特值53B执行逻辑运算的示例,但是本发明不限于此。对于对其执行逻辑运算的两个比特值的组合没有特别限制。
尽管已经在以上实施例中描述了计算单元266获取两个比特值的异或的示例,但是本发明不限于此。计算单元266可以使用逻辑析取(disjunction)(OR)、逻辑合取(conjunction)(AND)等。即,计算单元266可以对两个比特值执行逻辑运算。备选地,计算单元266可以使用多个诸如或、与、异或之类的逻辑运算的组合。
尽管已经在以上实施例中描述了当激活更新控制单元22时随机数生成单元26启动熵生成处理(步骤S15)的示例,但是本发明不限于此。当车辆控制单元21正在操作时,随机数生成单元26可以启动熵生成处理(步骤S15)。在这种情况下,随机数生成单元26可以在ECU 2从更新控制设备4接收到随机数发送请求45之前的任何时刻结束熵生成处理(步骤S15)。当随机数生成单元26在车辆控制单元21的操作期间启动熵生成处理(步骤S15)时,随机数生成单元26可以作为与第二程序42不同的程序被存储在存储装置24中。
尽管已经在以上实施例中描述了计数器261对时钟信号51至时钟信号53进行计数的示例,但是本发明不限于此。例如,计数器261可以不对时钟信号53进行计数。计算单元266对第一提取比特值51B和第二提取比特值52B执行逻辑运算以生成中间比特值。计算单元266将对所生成的中间比特值和目标比特值54执行的逻辑运算的结果作为更新比特值55输出到替换单元267。即使在这种情况下,由于熵31的比特值被更新,所以也可能难以估计根据熵31所生成的随机数。
备选地,计数器261可以仅对时钟信号51进行计数。计算单元266将对第一提取比特值51B和目标比特值54的逻辑运算的结果作为更新比特值55输出到替换单元267。即使在这种情况下,由于熵31的比特值被更新,所以也可能难以估计根据熵31所生成的随机数。
尽管已经在上文描述了根据本发明的实施例,但是上述实施例仅是用于实现本发明的示例。因此,本发明不限于上述实施例,并且可以在不脱离本发明的范围的情况下通过适当地修改上述实施例来实现。
Claims (6)
1.一种安装在车辆上的信息处理装置,所述信息处理装置包括:
车辆控制单元,被配置为执行用于控制所述车辆的控制程序;
随机数生成单元,被配置为生成随机数;以及
认证单元,被配置为通过使用由所述随机数生成单元生成的随机数来认证更新控制设备,所述更新控制设备对所述控制程序的更新进行控制,
其中,所述随机数生成单元包括:
第一提取单元,被配置为从第一时钟信号的计数值提取具有预定长度的比特值,
目标比特获取单元,被配置为在存储在缓冲区中的熵中的至少一个比特位置被指定为更新位置的情况下,获取在被指定的所述更新位置处的比特值作为目标比特值,
计算单元,被配置为对由所述第一提取单元提取的比特值和由所述目标比特获取单元获取的目标比特值执行逻辑运算,
替换单元,被配置为利用由所述计算单元获得的所述逻辑运算的结果替换在所述更新位置处的比特值,
位置指定单元,被配置为在利用所述逻辑运算的结果替换在所述更新位置处的比特值之后,指定新的更新位置,以及
输出单元,被配置为根据存储在所述缓冲区中的熵生成所述随机数,并将所述随机数输出到所述认证单元。
2.根据权利要求1所述的信息处理装置,
其中,所述随机数生成单元还包括:
第二提取单元,被配置为从具有与所述第一时钟信号的第一频率不同的第二频率的时钟信号的计数值提取具有预定长度的比特值,
所述计算单元包括:
中间计算单元,被配置为对由所述第一提取单元提取的比特值和由所述第二提取单元提取的比特值执行逻辑运算,以及
最终计算单元,被配置为对所获得的目标比特值和由所述中间计算单元所获得的结果执行逻辑运算,以及
所述替换单元利用由所述最终计算单元获得的计算结果替换在所述更新位置处的比特值。
3.根据权利要求2所述的信息处理装置,
其中,所述随机数生成单元还包括:
第三提取单元,被配置为从具有与所述第一频率和所述第二频率不同的第三频率的时钟信号的计数值提取具有预定长度的比特值,并且
所述中间计算单元对由所述第二提取单元提取的比特值和由所述第三提取单元提取的比特值执行逻辑运算,以生成中间计算值,并且对所生成的中间计算值和由所述第一提取单元提取的比特值执行逻辑运算。
4.根据权利要求3所述的信息处理装置,
其中,所述第一频率高于所述第二频率且低于所述第三频率。
5.根据权利要求1至3中任意一项所述的信息处理装置,
其中,所述随机数生成单元还包括:
计数器,被配置为在所述车辆控制单元或所述更新控制单元执行中断处理期间,在后台中继续对所述第一时钟信号进行计数,并且
所述目标比特获取单元在所述中断处理完成之后获取目标比特。
6.一种信息处理装置的控制方法,所述信息处理装置包括存储用于控制车辆的控制程序的存储装置,并且所述信息处理装置执行所述控制程序,所述控制方法包括:
从时钟信号的计数值提取具有预定长度的比特值;
在存储在缓冲区中的熵中的至少一个比特位置被指定为更新位置的情况下,获取在被指定的更新位置处的比特值作为目标比特值;
对所提取的比特值和所获取的目标比特值执行逻辑运算;
利用所述逻辑运算的结果替换在所述更新位置处的比特值;
在替换在所述更新位置处的比特值之后,指定新的更新位置;
根据存储在所述缓冲区中的所述熵生成随机数;以及
通过使用所生成的随机数来认证被配置为对所述控制程序的更新进行控制的更新控制设备。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019141154A JP7253470B2 (ja) | 2019-07-31 | 2019-07-31 | 情報処理装置 |
JP2019-141154 | 2019-07-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112306037A true CN112306037A (zh) | 2021-02-02 |
Family
ID=69804669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010202865.1A Pending CN112306037A (zh) | 2019-07-31 | 2020-03-20 | 信息处理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11537717B2 (zh) |
EP (1) | EP3771978B1 (zh) |
JP (1) | JP7253470B2 (zh) |
CN (1) | CN112306037A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230153094A1 (en) * | 2021-11-18 | 2023-05-18 | Toyota Motor North America, Inc. | Robust over the air reprogramming |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1745377A (zh) * | 2003-06-19 | 2006-03-08 | 国际商业机器公司 | 使用隐含中间密钥来认证软件的系统和方法 |
US20080028012A1 (en) * | 2005-10-27 | 2008-01-31 | Hiromitsu Kato | Device and Program for Ciphering Data |
JP2016061915A (ja) * | 2014-09-17 | 2016-04-25 | 株式会社リコー | 情報処理装置、情報処理システム、情報処理方法及びプログラム |
CN106484457A (zh) * | 2015-08-25 | 2017-03-08 | 福特全球技术公司 | 多阶段的安全的车辆软件更新 |
CN107729757A (zh) * | 2016-08-10 | 2018-02-23 | 福特全球技术公司 | 软件更新之前的软件认证 |
CN108028756A (zh) * | 2015-09-28 | 2018-05-11 | 三菱电机株式会社 | 消息认证码生成装置、消息认证码生成方法和消息认证码生成程序 |
WO2018099760A1 (de) * | 2016-11-29 | 2018-06-07 | Continental Teves Ag & Co. Ohg | Verfahren zur bereitstellung von zufallszahlen für steuereinheiten eines fahrzeugnetzwerks sowie fahrzeugnetzwerk zur durchführung dieses verfahrens |
CN108427565A (zh) * | 2017-02-02 | 2018-08-21 | 福特全球技术公司 | 用于安全的多周期车辆软件更新的方法和设备 |
CN109923518A (zh) * | 2016-10-31 | 2019-06-21 | 哈曼贝克自动系统股份有限公司 | 用于安全关键系统的软件更新机制 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6502116B1 (en) * | 1998-09-14 | 2002-12-31 | Igt | Random number generator seeding method and apparatus |
GB2361567B (en) * | 2000-04-18 | 2004-02-11 | Mitel Corp | Hardware authentication system and method |
EP1532515A2 (en) | 2002-06-06 | 2005-05-25 | Cryptico A/S | Method for improving unpredictability of output of pseudo-random number generators |
JP2005276113A (ja) * | 2004-03-26 | 2005-10-06 | Denso Corp | 擬似乱数生成方法、セキュリティチェック方法および制御装置 |
JP5119417B2 (ja) * | 2008-04-17 | 2013-01-16 | ルネサスエレクトロニクス株式会社 | 擬似乱数生成装置 |
JP6190188B2 (ja) * | 2013-07-05 | 2017-08-30 | クラリオン株式会社 | 情報配信システムおよびそれに用いるサーバ、車載端末、通信端末 |
CN109656514B (zh) * | 2017-10-11 | 2023-08-15 | 华邦电子股份有限公司 | 随机数产生系统及其随机数产生方法 |
US11030065B2 (en) * | 2018-11-14 | 2021-06-08 | Arm Limited | Apparatus and method of generating random numbers |
JP2020088458A (ja) * | 2018-11-16 | 2020-06-04 | 株式会社デンソーテン | 情報処理装置 |
JP6780724B2 (ja) * | 2019-03-18 | 2020-11-04 | 株式会社オートネットワーク技術研究所 | 車載更新装置、更新処理プログラム及び、プログラムの更新方法 |
-
2019
- 2019-07-31 JP JP2019141154A patent/JP7253470B2/ja active Active
-
2020
- 2020-03-10 US US16/814,007 patent/US11537717B2/en active Active
- 2020-03-11 EP EP20162421.0A patent/EP3771978B1/en active Active
- 2020-03-20 CN CN202010202865.1A patent/CN112306037A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1745377A (zh) * | 2003-06-19 | 2006-03-08 | 国际商业机器公司 | 使用隐含中间密钥来认证软件的系统和方法 |
US20080028012A1 (en) * | 2005-10-27 | 2008-01-31 | Hiromitsu Kato | Device and Program for Ciphering Data |
JP2016061915A (ja) * | 2014-09-17 | 2016-04-25 | 株式会社リコー | 情報処理装置、情報処理システム、情報処理方法及びプログラム |
CN106484457A (zh) * | 2015-08-25 | 2017-03-08 | 福特全球技术公司 | 多阶段的安全的车辆软件更新 |
CN108028756A (zh) * | 2015-09-28 | 2018-05-11 | 三菱电机株式会社 | 消息认证码生成装置、消息认证码生成方法和消息认证码生成程序 |
CN107729757A (zh) * | 2016-08-10 | 2018-02-23 | 福特全球技术公司 | 软件更新之前的软件认证 |
CN109923518A (zh) * | 2016-10-31 | 2019-06-21 | 哈曼贝克自动系统股份有限公司 | 用于安全关键系统的软件更新机制 |
WO2018099760A1 (de) * | 2016-11-29 | 2018-06-07 | Continental Teves Ag & Co. Ohg | Verfahren zur bereitstellung von zufallszahlen für steuereinheiten eines fahrzeugnetzwerks sowie fahrzeugnetzwerk zur durchführung dieses verfahrens |
CN108427565A (zh) * | 2017-02-02 | 2018-08-21 | 福特全球技术公司 | 用于安全的多周期车辆软件更新的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3771978A1 (en) | 2021-02-03 |
US11537717B2 (en) | 2022-12-27 |
JP2021026290A (ja) | 2021-02-22 |
JP7253470B2 (ja) | 2023-04-06 |
EP3771978B1 (en) | 2023-09-06 |
US20210034749A1 (en) | 2021-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106471767B (zh) | 通信系统及密钥信息共享方法 | |
JP6065113B2 (ja) | データ認証装置、及びデータ認証方法 | |
CN104426669B (zh) | 用于受保护地传送数据的方法 | |
EP3612968B1 (en) | Method and apparatus to quickly authenticate program using a security element | |
CN112019340B (zh) | 认证系统 | |
US10423401B2 (en) | Method for updating software of a control device of a vehicle | |
US20170353315A1 (en) | Secure electronic entity, electronic apparatus and method for verifying the integrity of data stored in such a secure electronic entity | |
JP2019105946A (ja) | 車載更新装置、プログラム及びプログラム又はデータの更新方法 | |
JP2009253783A (ja) | 携帯端末、データ保護方法およびデータ保護用プログラム | |
JP2020142565A (ja) | 車載更新装置、更新処理プログラム及び、プログラムの更新方法 | |
CN110690956A (zh) | 双向认证方法及系统、服务器和终端 | |
Pfeiffer | Implementing scalable can security with cancrypt | |
US11537717B2 (en) | Information processing apparatus | |
JP6888122B2 (ja) | 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム | |
CN113162928B (zh) | 通信方法、装置、ecu、车辆及存储介质 | |
KR102236282B1 (ko) | 차량용 통신 데이터 인증 방법 및 시스템 | |
JP2004051056A (ja) | 自動車用電子制御装置 | |
CN111444496A (zh) | 应用控制方法、装置、设备以及存储介质 | |
JP2016152438A (ja) | ソフトウェア更新装置、携帯端末及びソフトウェア更新システム | |
CN116710914A (zh) | 边缘设备的密钥撤销 | |
CN108449249B (zh) | 一种总线控制系统及方法 | |
CN113343203A (zh) | 数字车钥匙处理方法、设备及平台系统 | |
JP6461272B1 (ja) | 制御装置 | |
JP2020088458A (ja) | 情報処理装置 | |
US10785034B2 (en) | Implementation unit, implementation unit verification method, and computer-readable recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |