一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于安全电子控制单元更新的本地分类账块链的制作方法

2021-11-20 06:29:00 来源:中国专利 TAG:


1.本公开大体上涉及半导体存储器和方法,且更具体地,使用本地分类账块链用于安全电子控制单元更新。


背景技术:

2.存储器装置通常提供为计算机或其它电子装置中的内部半导体集成电路和/或外部可移除装置。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可能需要电力来维护其数据,且可包含随机存取存储器(ram)、动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)等。非易失性存储器可通过当不被供电时保存所存储数据来提供永久性数据,并且可包含nand闪速存储器、nor闪速存储器、只读存储器(rom),以及电阻可变存储器,例如相变随机存取存储器(pcram)、电阻性随机存取存储器(rram)和磁性随机存取存储器(mram)等。
3.存储器装置可组合到一起形成固态驱动器(ssd)、嵌入式多媒体卡(e.mmc)和/或通用闪速存储(ufs)装置。ssd、e.mmc和/或ufs装置可包含非易失性存储器(例如,nand闪速存储器和/或nor闪速存储器),和/或可包含易失性存储器(例如,dram和/或sram),以及各种其它类型的非易失性和易失性存储器。非易失性存储器可用于广泛范围的电子应用中,例如个人计算机、便携式存储器棒、数码相机、蜂窝式电话、便携式音乐播放器,例如mp3播放器、电影播放器等。
4.闪速存储器装置可包含将数据存储于例如浮动栅极的电荷存储结构中的存储器单元。闪速存储器装置通常使用允许高存储器密度、高可靠性和低功耗的单晶体管存储器单元。电阻可变存储器装置可包含可基于存储元件(例如,具有可变电阻的电阻性存储器元件)的电阻状态存储数据的电阻性存储器单元。
5.存储器单元可布置成阵列,且阵列架构中的存储器单元可经编程为目标(例如,所要)状态。举例来说,电荷可置于闪速存储器单元的电荷存储结构(例如,浮动栅极)上或从其移除以将所述单元编程到特定数据状态。所述单元的电荷存储结构上的所存储电荷可指示所述单元的阈值电压(vt)。可通过感测闪速存储器单元的电荷存储结构上的所存储电荷(例如,vt)来确定所述单元的状态。
6.许多威胁会影响存储在存储器装置的存储器单元中的数据。例如,此类威胁可包含存储器装置中发生的故障和/或来自黑客或其它恶意用户的威胁。此类威胁可能造成重大财务损失,和/或可能造成重大安全和/或安保问题。
附图说明
7.图1示出根据本公开实施例的具有数个物理块的存储器阵列的一部分的图。
8.图2a是根据本公开实施例的包含主机和呈存储器装置形式的设备的计算系统的框图。
9.图2b是根据本公开实施例的计算系统网络的框图,所述网络可包含使用例如点对
点对点和互联网协议(ip)之类的无线协议以有线和/或无线方式连接的公共和/或专用网络中的许多计算节点。
10.图3示出根据本公开实施例的全局分类账块链与本地分类账块链之间的交换的实例,所述交换可由电路系统操作并存储在存储器中以用于存储在存储器中的安全电子控制单元更新。
11.图4示出根据本公开实施例的用于存储在存储器中的安全电子控制单元更新的本地分类账块链的实例。
12.图5a示出根据本公开实施例的用于定义安全存储器阵列的一对寄存器的实例。
13.图5b示出根据本公开实施例的包含所定义的安全存储器阵列的存储器阵列的一部分的图。
14.图6是根据本公开实施例的包含主机和存储器装置的实例系统的框图。
15.图7是根据本公开实施例的确定数个参数的实例过程的框图。
16.图8是根据本公开实施例的确定数个参数的实例过程的框图。
17.图9是根据本公开实施例的验证证书的实例过程的框图。
18.图10是根据本公开实施例的验证签名的实例过程的框图。
19.图11是根据本公开实施例的实例存储器装置的框图。
具体实施方式
20.本公开包含使用本地分类账块链用于安全电子控制单元更新(例如,硬件更新和/或硬件维修等)的设备、方法和系统。实施例包含存储器和电路系统,所述电路系统配置成生成本地分类账块链,所述本地分类账块链包括从全局分类账块链接收的块。全局分类账块链包含含有电子控制单元更新相关数据的块。全局分类账块链的每个块可与单个主机或多个主机相关联。如本文所描述,存储器和电路系统可配置成从全局分类账块链接收多个全局块以生成本地分类账块链,其中本地分类账块链仅包含与主机相关的块和/或与电路系统相关联的存储器。存储器和电路系统可以确定所接收的全局块中的哪些与主机和/或存储器相关联,并且可以舍弃被确定为无关的全局块。本地分类账块链中的块可用于验证存储在存储器中的电子控制单元数据,所述数据可通过本地块的有效负载中的电子控制单元数据更新,其中本地块包含本地分类账块链中先前本地块的密码散列和存储在存储器中的待更新的电子控制单元数据的密码散列。全局块具有与之相关联的数字签名,所述数字签名指示全局块与主机相关并且被添加到本地分类账块链中。在一些实施例中,如图1所描述的存储器中的特定和/或具体物理存储器块可以用作本地分类账块链中的本地块。
21.许多威胁可能会影响存储在存储器中(例如,存储在存储器装置中)的数据。例如,存储器的阵列和/或电路系统中可能发生故障,这可能导致数据中发生错误。作为额外实例,黑客或其它恶意用户可能试图执行活动,以出于恶意目的对数据进行未经授权的更改。黑客执行的此类活动可能包含对主机装置的硬件提供欺诈性更新。举例来说,恶意用户可能试图通过电子控制单元更新来更改存储在存储器中的数据,以对使用存储器执行的汽车控制(例如,跳过零件真实性检查、环境检查或故障报警检查)以及其它类型的黑客活动产生不利影响。此类黑客活动(例如,攻击)可能造成重大财务损失,和/或可能造成重大安全和/或安保问题。
22.因而,为了确保安全的存储器系统和对车辆的安全电子控制单元更新,重要的是验证(例如,验证和/或证明)对存储在存储器中的数据的电子控制单元更新是真实的(例如,是正确的,来自可信/被授权实体),且未因黑客活动或其它未经授权和/或非预期的改变而被更改和/或欺诈性地提供。本公开的实施例可以将存储器用作本地分类账块链数据结构中的本地块(例如,将存储器用作本地分类账块链的存储组件),以便有效地验证待应用于存储在存储器中的电子控制单元数据的电子控制单元更新,从而确保安全的存储器系统。举例来说,本公开的实施例可以修改、利用和/或以不同方式操作存储器的现有电路系统(例如,存储器装置的现有固件),以将存储器用作本地分类账块链中的本地块,使得存储器可以用作本地分类账块链中的本地块,而无需向存储器添加额外(例如,新的)组件或电路系统。
23.如本文所使用,“一”或“数个”可以指某事物中的一或多个,且“多个”可以指这类事物中的两个或更多个。例如,存储器装置可以指一或多个存储器装置,且多个存储器装置可以指两个或更多个存储器装置。另外,如本文所使用的指定符“r”、“b”、“s”、“n”和“x”,尤其相对于图式中的附图标记,指示如此指定的数个特定特征可与本公开的数个实施例包含在一起。标示之间的数目可相同或不同。
24.本文中的图遵循编号定则,其中第一一或多个数字对应于图号,且剩余的数字标识图中的元件或组件。可通过使用类似数字来标识不同图之间的类似元件或组件。例如,101可表示图1中的元件“01”,且类似元件可在图2中表示为201。
25.图1示出根据本公开实施例的具有数个物理块的存储器阵列101的一部分的图。存储器阵列101可以是例如闪速存储器阵列,例如nand和/或nor闪速存储器阵列。在一个实例实施例中,存储器101是nor闪速存储器阵列101。作为额外实例,存储器阵列101可以是电阻可变存储器阵列,尤其例如pcram、rram、mmram或自旋力矩传送(stt)阵列。然而,本公开的实施例不限于特定类型的存储器阵列。此外,存储器阵列101可以是安全存储器阵列,如本文中将进一步描述。此外,虽然图1中未示出,但存储器阵列101可与和其操作相关联的各种外围电路系统一起位于特定半导体裸片上。
26.如图1所示,存储器阵列101具有存储器单元的数个物理块107

0(块0)、107

1(块1)、
……
、107

b(块b)。存储器单元可以是单层级单元和/或多层级单元,例如二层级单元、三层级单元(tlc)或四层级单元(qlc)。作为实例,存储器阵列101中的物理块的数目可以是128个块、512个块或1,024个块,但实施例不限于存储器阵列101中的二的特定幂或任何特定数目个物理块。
27.存储器单元的平面中可包含数个存储器单元物理块(例如,块107

0、107

1、
……
、107

b),且裸片上可包含数个存储器单元的平面。举例来说,在图1所示的实例中,每个物理块107

0、107

1、
……
、107

b可以是单个裸片的部分。也就是说,图1所示的存储器阵列101的部分可以是存储器单元的裸片。
28.如图1所示,每个物理块107

0、107

1、
……
、107

b包含存储器单元的耦合到存取线(例如,字线)的数个物理行(例如,103

0、103

1、
……
、103

r)。每个物理块中的行(例如,字线)的数目可以是32,但实施例不限于每物理块特定数目的行103

0、103

1、
……
、103

r。此外,虽然图1中未示出,但存储器单元可耦合到感测线(例如,数据线和/或数字线)的列。
29.如所属领域的技术人员将了解,每一行103

0、103

1、
……
、103

r可包含数个存储
器单元页(例如,物理页)。物理页指代编程和/或感测的单元(例如,一起作为功能群组来编程和/或感测的数个存储器单元)。在图1所示的实施例中,每一行103

0、103

1、
……
、103

r包括存储器单元的一个物理页。然而,本公开的实施例不限于此。举例来说,在实施例中,每一行可包括存储器单元的多个物理页(例如,一或多个偶数存储器单元页耦合到偶数编号的数据线,且一或多个奇数存储器单元页耦合到奇数编号的数据线)。另外,对于包含多层级单元的实施例,存储器单元的物理页可存储多个数据页(例如,逻辑页)(例如,上部数据页和下部数据页,其中物理页中的每个单元存储朝向上部数据页的一或多个位和朝向下部数据页的一或多个位)。
30.如图1所示,存储器单元页可以包括数个物理扇区105

0、105

1、
……
、105

s(例如,存储器单元子集)。单元的每个物理扇区105

0、105

1、
……
、105

s可存储数据的数个逻辑扇区。另外,数据的每个逻辑扇区可对应于特定数据页的一部分。作为实例,存储于特定物理扇区中的数据的第一逻辑扇区可对应于与第一数据页对应的逻辑扇区,且存储于特定物理扇区中的数据的第二逻辑扇区可对应于第二数据页。每个物理扇区105

0、105

1、
……
、105

s可存储系统和/或用户数据,和/或可包含开销数据,例如错误校正码(ecc)数据、逻辑块地址(lba)数据和元数据。
31.逻辑块寻址是主机可用以标识数据的逻辑扇区的方案。例如,每个逻辑扇区可对应于唯一逻辑块地址(lba)。另外,lba也可对应于(例如,动态地映射到)可指示存储器中的数据的所述逻辑扇区的物理方位的物理地址,例如物理块地址(pba)。数据的逻辑扇区可以是数据的字节数目(例如256字节、512字节、1,024字节或4,096字节)。然而,实施例不限于这些实例。
32.应注意,用于物理块107

0、107

1、
……
、107

b、行103

0、103

1、
……
、103

r、扇区105

0、105

1、
……
、105

s和页的其它配置是可能的。例如,物理块107

0、107

1、
……
、107

b的行103

0、103

1、
……
、103

r可各自存储对应于单个逻辑扇区的数据,所述单个逻辑扇区可包含例如多于或少于512字节的数据。
33.图2a是根据本公开实施例的包含主机202和呈存储器装置206形式的设备的计算系统200的框图。如本文所使用,“设备”可指但不限于多种结构或结构的组合中的任何一种,例如,电路或电路系统、一或多个裸片、一或多个模块、一或多个装置或一或多个系统。此外,在实施例中,计算系统200可包含类似于存储器装置206的数个存储器装置。在一个实例实施例中,如图2b中更多展示,计算系统200可表示例如分布式对等网络的节点的较大网络内的节点。
34.在图2a所示的实施例中,存储器装置206可包含具有存储器阵列201的存储器216。如图2所示,存储器216可将块链技术系统中使用的“块链数据”220存储在存储器阵列201中。块链技术系统中的块链数据的“块”可包含数据(例如,有效负载)、报头、加密、历史、时间戳等。如本文将结合图3和4进一步描述的,块链数据220可以是“本地块链”数据和/或“全局块链”数据,并且可以包含存储的全局块链分类账(例如,“全局分类账块链”数据)和/或存储的本地块链分类账(例如,“本地分类账块链”数据)。
35.存储器阵列201可以类似于先前结合图1描述的存储器阵列101。然而,如本文所使用,块链架构中的块链数据的块不一定等同于先前结合图1描述的存储器块的大小。因此,术语“全局块”和/或“本地块”,当作为块链数据存储在存储器中时,不一定等同于存储器的
块大小单位。全局块和/或本地块可以小于、等效于和/或大于与特定存储器架构或设计相关联的块大小单元,例如命名。此外,存储器阵列201可以是安全阵列,如本文将结合图5a和5b进一步描述的。尽管图2a中示出了一个存储器阵列201,但存储器216可包含类似于存储器阵列201的任何数目的存储器阵列。
36.如图2a所示,主机202可以经由接口204耦合到存储器装置206。主机202和存储器装置206可在接口204上进行通信(例如,发送命令和/或数据,例如,块链数据220)。主机202和/或存储器装置206可以是或是膝上型计算机、个人计算机、数码相机、数字录制和重放装置、移动电话、pda、存储卡读取器、接口集线器或启用物联网(iot)的装置,例如举例来说,启用汽车(例如,车辆和/或运输基础设施)iot的装置或启用医疗(例如,可植入和/或健康监测)iot的装置,以及其它主机系统,并且可以包含存储器存取装置(例如,处理器)。所属领域的一般技术人员将理解,“处理器”可以是一或多个处理器,例如并行处理系统、数个协处理器等。
37.接口204可呈标准化物理接口的形式。例如,当存储器装置206用于计算系统200中的信息存储时,接口204可以是串行高级技术附件(sata)物理接口、外围组件互连高速(pcie)物理接口、通用串行总线(usb)物理接口,或小型计算机系统接口(scsi),以及其它物理连接器和/或接口。接口204可以提供用于在存储器装置206与具有用于接口204的兼容接收器的主机(例如,主机202)之间传递控制、地址、信息(例如,数据)和其它信号的接口。
38.存储器装置206包含与主机202和存储器216(例如,存储器阵列201)通信的控制器208。举例来说,控制器208可以发送命令以对存储器阵列201执行操作,包含感测(例如,读取)、编程(例如,写入)、移动和/或擦除数据(例如,“本地”和/或“全局”块链数据)的操作,以及其它操作。同样,块链技术和系统中块链数据的术语“全局块”和/或“本地块”的预期含义结合图3和4定义。
39.控制器208可与存储器216包含在同一物理装置(例如,同一裸片)上。替代地,控制器208可包含在以通信方式耦合到包含存储器216的物理装置的单独物理装置上。在实施例中,控制器208的组件可作为分布式控制器跨越多个物理装置散布(例如,一些组件与存储器在同一裸片上,且一些组件在不同的裸片、模块或板上)。
40.主机202可包含与存储器装置206通信的主机控制器(图2中未示出)。主机控制器可经由接口204向存储器装置206发送命令。主机控制器可与存储器装置206和/或存储器装置206上的控制器208通信以读取、写入和/或擦除数据(例如,“本地”和/或“全局”块链数据),以及其它操作。此外,在实施例中,主机202可以是如本文先前描述的具有iot通信能力的启用iot的装置。
41.存储器装置206上的控制器208和/或主机202上的主机控制器可包含控制电路系统和/或逻辑(例如,硬件和固件),其配置成根据例如dice

riot架构和/或协议执行本文例如结合图3和4描述的块链操作。在实施例中,存储器装置206上的控制器208和/或主机202上的主机控制器可以是耦合到包含物理接口的印刷电路板的专用集成电路(asic)。并且,存储器装置206和/或主机202可包含易失性和/或非易失性存储器的缓冲器和数个寄存器。
42.例如,如图2a所示,存储器装置可包含电路系统210。在图2a所示的实施例中,电路系统210包含于控制器208中。然而,本公开的实施例不限于此。举例来说,在实施例中,电路系统210可包含于存储器216中(例如,在同一裸片上)(例如,而不是控制器208中)。电路系
统210可包括硬件、固件和/或将指令传送到处理资源,以例如根据例如dice

riot架构和/或协议,使用图6

11中所阐述的加密技术,结合图3和4执行本文中所描述的块链操作。
43.例如,电路系统210可以配置成接收块链数据的全局块(在图3和4中定义),将作为块链数据(例如220)的本地块添加到存储器216的阵列201内的本地分类账块链(也在图3和4中定义)上。例如,块链数据的本地块,例如220,可以是块链数据的经验证的接收全局块,并且可以生成和/或添加到本地分类账块链(如图3和4所示),用于验证(例如,认证和/或证明)对存储在存储器216(例如,存储器阵列201)中的数据的电子控制单元更新。在一些实例中,电子控制单元可以是但不限于例如发动机控制单元、车载计算机、信息娱乐控制单元、转向控制单元、灯光控制单元、变速箱控制单元、制动控制单元、空调和加热控制单元、自动驾驶控制单元、和/或高级驾驶员辅助控制单元。待添加为本地分类账块链中的本地块的全局块可包含多个报头。在实施例中,阵列201的子集或整个阵列201可以是安全阵列(例如,待保持在控制之下的存储器216的区域)。图2a示出一对寄存器214

1和214

2,但是实施例不限于此,并且可以使用一或多个寄存器。例如,存储在存储器阵列201中的数据可包含敏感(例如,非用户)数据,例如主机固件和/或待针对敏感应用执行的代码。在此类实施例中,可使用一对非易失性寄存器来定义安全阵列。例如,在图2a所示的实施例中,电路系统210包含可用于定义安全阵列的寄存器214

1和214

2。举例来说,寄存器214

1可以定义安全阵列的地址(例如,数据的起始lba),并且寄存器214

2可以定义安全阵列的大小(例如,数据的结束lba)。本文将结合图5a

5b)进一步描述此类寄存器的实例及其在定义安全阵列中的使用。
44.一旦定义了安全阵列,就可使用电路系统210利用经认证和反重放保护的命令生成(例如,计算)与安全阵列相关联的密码散列,其在本文中可被称为黄金散列(例如,使得仅存储器装置206知道黄金散列,并且仅存储器装置206能够生成和更新所述黄金散列)。黄金散列可以存储在存储器阵列201的不可存取部分(例如,存储块链数据220和本地分类账块链的相同不可存取部分)中,并且可以在验证安全阵列的数据的过程中使用。
45.在一个实例实施例中,存储器装置206(例如,使用电路系统210)可以经由接口204将块链数据220(其可以是从全局分类账块链接收到的全局块)连同与块链数据220相关联的数字签名一起发送到主机202,用于在更新存储在存储器阵列201中的电子控制单元数据之前验证电子控制单元更新(例如,块链数据的有效负载)。例如,响应于存储器装置206的供电(例如,通电和/或上电),电路系统210可以感测(例如,读取)所接收并存储在存储器阵列201中的块链数据220,并将感测到的块链数据220发送到主机202,以验证对存储在阵列201中的电子控制单元数据的电子控制单元更新。因而,可在存储器装置206供电时(例如,自动)发起对存储在存储器阵列201中的电子控制单元数据的电子控制单元更新的验证。
46.作为额外实例,电路系统210可以在例如主机202等外部实体发起对存储在存储器阵列201中的电子控制单元数据的电子控制单元更新的验证时,将块链数据220连同与块链数据220相关联的数字签名一起发送到主机202。举例来说,主机202可以向存储器装置206(例如,电路系统210)发送感测块链数据220的命令,并且电路系统210可以响应于接收到命令而对所述命令进行操作以感测块链数据220并将感测到的块链数据220发送到主机202以验证存储在阵列201中的数据。
47.在接收到块链数据220后,主机202可以使用接收到的块(例如,接收到的全局块的
有效负载)验证(例如,确定是否验证)存储在存储器阵列201中的电子控制单元数据。例如,如将结合图3和4进一步阐述,主机202可以使用块链中先前块的密码散列和存储在存储器阵列201中的电子控制单元数据的密码散列来验证电子控制单元数据。此外,主机202可以验证与块链数据220相关联的数字签名,以确定本地块包含在(例如,符合要求能包含在)本地分类账块链中。如本文所使用,验证对存储在存储器阵列201中的电子控制单元数据的电子控制单元更新可包含和/或涉及认证和/或证明电子控制单元更新是真实的(例如,与最初编程的相同),并且尚未被黑客经常提供的黑客活动更改,或者另外包含未经授权的改变。
48.在存储器阵列201是安全阵列的实施例中,如结合图3和4进一步描述的,黄金散列也可用于验证对存储在存储器阵列201中的电子控制单元数据的电子控制单元更新。例如,可生成(例如,计算)运行时间密码散列,并与黄金散列进行比较。如果所述比较指示运行时间和黄金散列匹配,则可以确定安全阵列尚未被更改,且因此存储在其中的数据是有效的。然而,如果所述比较指示运行时间和黄金散列不匹配,则这可能指示存储在安全阵列中的数据已经改变(例如,由于黑客或存储器中的故障),并且这可以报告给主机202。
49.在一个实例实施例中,除了验证存储在存储器阵列201中的数据外,电路系统210还可以验证块链数据220(例如,从全局分类账块链接收的全局块),以确定块链数据220是否来自被授权实体(例如,已知实体),并且接收到的块链数据220上指示的散列与本地分类账块链上的块链数据的最近本地块相匹配。响应于块链数据220的验证,电路系统210可以配置成提供包含在块链数据220中的电子控制单元更新,以增加、修改和/或替换存储在安全阵列中的代码(或代码的一部分)。
50.如将结合图3和4进一步阐述,在验证作为存储在存储器阵列201中的本地分类账块链中的本地块的块链数据220之后,电路系统210可以生成待添加到本地分类账块链以更新存储在存储器阵列201中的数据的额外的(例如,下一个)本地块(例如,接收形成全局分类账块链的下一个全局块),其方式类似于生成/接收先前的块链数据220的方式。例如,块链数据220的此额外本地块可包含本地分类账块链中先前块的密码散列,以及对存储在存储器阵列201中的电子控制单元数据的新电子控制单元更新的新密码散列。此外,此额外本地块可包含具有指示此块何时生成(例如,作为额外全局块接收)的时间戳的报头,并且可以具有与之相关联的数字签名,所述数字签名指示此额外本地块来自被授权实体,并且可以包含在本地分类账块链中。本文将进一步描述说明这种额外本地块的实例(例如,结合图3)。此外,在存储器阵列201是安全阵列的实施例中,可以生成额外的(例如,新的)黄金散列。
51.块链数据的额外本地块以及与额外本地块相关联的数字签名和额外黄金散列可以作为本地分类账块链的一部分存储在存储器阵列201中。例如,额外本地块可以替换存储器阵列201中的块链数据220(例如,先前的块链数据220)。然后,主机202可以使用额外块链数据、数字签名和额外黄金散列来验证对存储在存储器阵列201中的电子控制单元数据的电子控制单元更新(例如,有效负载),其方式类似于本文先前针对块链数据220描述的方式。当本地分类账块链中的额外本地块作为全局块接收、由主机202验证并由主机202用于验证对存储在存储器阵列201中的电子控制单元数据的电子控制单元更新时,电路系统210可继续生成这些额外本地块,在存储器装置206的整个寿命期间呈这种方式。
52.图2a所示的实施例可包含额外电路系统、逻辑和/或组件,这些额外电路系统、逻辑和/或组件未示出以免混淆本公开的实施例。例如,存储器装置206可包含锁存通过i/o电路系统在i/o连接器上提供的地址信号的地址电路系统。行解码器和列解码器接收并解码地址信号以存取存储器阵列201。此外,存储器装置206可包含与存储器阵列201隔离的主存储器和/或除所述存储器阵列之外还包含主存储器,所述主存储器例如dram或sdram。本文将进一步描述进一步说明存储器装置206的额外电路系统、逻辑和/或组件的实例(例如,结合图11)。
53.图2b是根据本公开实施例的计算系统网络的框图,所述网络可包含使用无线协议和互联网协议(ip)以有线和/或无线方式连接的例如对等网络之类的公共和/或专用分布式网络中的许多计算节点。在图2b的实例中,示出在例如对等网络之类的网络中连接的多个节点200

1、200

2、200

3、
……
、200

n。网络可以支持分布式分类账技术(dlt),例如“块链”技术。分布式分类账是分布在若干节点或计算装置上的数据库。
[0054]“块链”是不断增长的经加密记录列表。块链是dlt的一种形式,其中多个节点200

1、200

2、200

3、
……
、200

n可以以对等网络方式共享和存储分布式记录列表。如本文所描述,块链中的“块”是信息的集合,例如数据、报头、交易、加密等。如果块经过验证,则可将其添加到分类账中不断增长的记录列表中。按时间顺序将块添加到块链分类账。
[0055]
因此,在图2b的实例中,给定节点200

1(h1)、200

2(h2)、200

3(h3)、
……
、200

n可维护分类账中当前列表或记录的副本。多个节点200

1、200

2、200

3、
……
、200

n可以各自表示不同的主机,例如,具有处理资源的计算装置。为了便于说明,可关于自动和/或非自动运输车辆、汽车、公共汽车、应急车辆等的块链考虑主机或多个节点200

1、200

2、200

3、
……
、200

n。然而,实施例不限于这一实例。
[0056]
在此实例中,如图2b所示,车辆制造商的服务器可表示节点200

1、200

2、200

3、
……
、200

n的网络上的一个节点,例如200

1。经认证的维修设施,例如经销商维修店,可以表示另一节点,例如200

2。节点200

3可以是经由互联网和/或其它无线连接连接到对等网络的另一主机,例如另一计算装置。
[0057]
与节点200

1相关联的制造商可维护具有与和节点200

1相关联的特定主题相关的按时间顺序链接的数据块的“第一块链分类账”,例如,维护所述制造商生产的所有车辆的第一块链分类账。为便于说明而非作为限制,具有与和特定节点(例如,对于给定车辆制造商生产的所有车辆)相关联的特定主题相关的按时间顺序链接的数据块的“第一块链分类账”,在本文中也可称为“全局块链分类账”(或“全局分类账块链”)。制造商可以将第一块链分类账(“全局分类账块链”)以有线和/或无线方式分布到对等网络中的其它节点200

2、200

3等,以及分布到作为节点连接到网络的其车辆。在与不同节点200

1、200

2、200

3、
……
、200

n通信时可使用各种无线通信技术。例如,不同代的宽带移动通信技术(例如,第一代到第五代(1

5g))、包含蓝牙、zigbee和/或lte装置间通信技术的装置间(例如,车辆间(v2v))通信,和/或利用中间装置的其它无线通信(例如,利用接入点(ap)的wifi),可用于与不同节点的通信。
[0058]
在图2b的实例中,节点200

4可表示属于节点200

1所代表的特定制造商制造的车辆子集或类别的特定车辆。在此实例中,节点200

5可表示特定制造商制造的或替代地与和节点200

1相关联的制造商无关的相同或不同车辆子集或类别中的另一特定车辆。类似地,
节点200

n可表示特定制造商制造的或替代地与和节点200

1相关联的制造商无关的相同或不同车辆子集或类别中的另一特定车辆。
[0059]
每个节点可以具有其自身的处理资源,例如,连接到一或多个存储器装置的主机,例如图2a所示。因此,车辆节点200

4、200

5和200

n可以各自包含单个和/或多个主机,例如分别为处理资源202

4、202

5、202

n。给定车辆节点200

4、200

5和200

n上的每个主机可以连接到每个车辆上的多个存储器装置。例如,存储器装置206
‑4‑
1、206
‑4‑
2、206
‑4‑
x可与节点200

4上的主机202

4相关联,存储器装置206
‑5‑
1、206
‑5‑
2和206
‑5‑
b可与节点200

5上的主机202

5相关联,并且存储器装置206

n

1、206

n

2和206

n

z可与节点200

n上的主机202

n相关联。
[0060]
在此实例中,节点200

1可将节点200

1维护的持续增长的第一(例如“全局”)块链分类账(在本文中也称为“全局分类账块链”)的更新副本定期发送(例如分布)到节点200

4、200

5、
……
、200

n,其中包含与制造商生产的所有车辆的主题相关的按时间顺序排列的块,例如数据。根据块链技术,节点200

1可以与分布式网络中的其它节点200

1、200

2、200

3、
……
、200

n共享第一(例如“全局”)分类账块链的副本。然而,并非节点200

1维护且接收到其它特定节点200

4、200

5、
……
、200

n的增长的第一(例如“全局”)分类账块链中的所有“块”都可能是可信的和/或与其它特定节点相关的。例如,特定车辆,例如节点200

4、200

5、
……
、200

n可能属于与节点200

1相关联的特定制造商制造的车辆子集或子类,但只有第一(例如“全局”)分类账块链中的特定块可能与特定节点200

4、200

5、
……
、200

n(例如,所述车辆子集或子类中的特定车辆)相关。因而,根据本文公开的实施例,特定节点200

4、200

5、
……
、200

n可仅验证经过认证且与所述节点200

4、200

5、
……
、200

n相关的那些块。
[0061]
根据实例实施例,特定节点(例如200

4)可验证经过认证且与所述节点相关的块并将所述块添加到第二块链分类账,所述第二块链分类账可以是比从节点200

1接收到节点200

4的全局分类账块链中包含的所有块少的子集。节点200

4可以将“全局分类账块链”的子集存储为相应节点200

4、200

5、
……
、200

n上的“本地块链分类账”(在本文中也称为“本地分类账块链”)。节点200

4还可以与其它节点共享本地分类账块链。然而,不要求相同,并且本地分类账块链被称为“本地”是因为它可以仅对特定节点200

4(例如,特定车辆的主机和/或存储器装置)保持“本地”。因此,为了便于说明,第二块链分类账(“本地分类账块链”)在本文中可被称为本地分类账块链。节点(例如200

4)可经由其所连接的节点网络接收与其它全局分类账块链相关联的、关于各种主题的许多全局块。然而,节点(例如,200

4)可以选择其接受并允许哪些块添加到其本地分类账块链。如结合图3和4更详细阐述的,本公开的实施例可以使用图6

11中描述的加密技术来验证和添加与特定节点200

4、200

5、
……
、200

n相关的块,并在特定节点200

4、200

5、
……
、200

n上存储和维护那些块,作为“本地分类账块链”数据,例如,作为对特定车辆的安全电子控制单元更新。在一个实例中,特定车辆(例如节点200

4、200

5、
……
、200

n)上的单个主机(例如,图2a所示)或多个主机可以维护本地分类账块链。作为实例,单个或多个主机可以根据共同未决、共同提交的标题为“使用存储器作为块链中的块(using memory as a block in a block chain)”的代理人案号1016.0030001的第_____________号美国申请案。在此实例中,可以验证与特定车辆(例如节点200

4、200

5、
……
、200

n)相关的电子控制单元更新并将其添加到节点
200

4、200

5、
……
、200

n的“本地分类账块链”,或替代地舍弃。
[0062]
图3示出全局分类账块链322与本地分类账块链324、326和328之间的交换的实例,所述交换可由电路系统操作并存储在存储器和/或安全阵列中(例如,通过图2中的电路系统210和存储器216)。在此实例中,可验证对电子控制单元数据的安全电子控制单元更新,并将其存储在存储器中,例如结合图2描述的存储器阵列201。如本文所使用,根据块链分类账或系统中的块链技术的“块”可包含数据(例如,有效负载)、报头、加密、历史、时间戳等。同样,块链中的“块”不必与存储器块的大小相关或等同,如图1中作为存储器存储单元所阐述的。
[0063]
此外,如本文所使用,术语“全局块”是第一块分类账中的块,在本例中,所述块在较大实体系统或网络中维护和共享。“本地块”是仅在本地分类账块链中作为与特定节点(例如,200

4)相关的数据子集、作为与实体系统或网络(例如,图2a中的存储器装置201)内的车辆子集或更具体类别的实体相关的特定主题的子集维护的块。全局块或本地块链都不必等于特定存储器架构的块大小。全局块和/或本地块可以小于、等效于和/或大于与特定存储器架构或设计相关联的块大小命名。
[0064]
在图3的实例中,第一(例如,全局)分类账块链322可与图2b中的节点200

1相关联的主题相关。全局分类账块链可包含全局块320

1、320

2、320

3、320

4、320

5、320

6和320

n。当通过本文描述的电路系统和逻辑操作时,全局块320可以被验证和接受到第二(例如,本地)分类账块链324、326和328中,示为本地块321

1、321

2、321

3、321

4、321

5、321

6和321

n。第二(例如,本地)分类账块链324、326和328可由图2b中所示的其中相应节点200

4、200

5、
……
、200

n维护。替代地,如果未验证特定节点(例如,图2b中所示的节点200

4、200

5、
……
、200

n)上维护的本地分类账块链,可以从中拒绝全局分类账块链的相应全局块。在一些实例中,响应于拒绝全局分类账块链的相应全局块,特定节点可以向其相应主机(例如,图2b中所示的主机202

4、202

5、
……
、202

n)和/或车辆制造商发出警报。
[0065]
例如,当特定存储器接收到待验证的全局块链数据并将其存储为本地分类账块链中的本地块时,必须通过电路系统和逻辑(例如,图2a中的电路系统210)验证全局块链数据,然后才能将其变为本地分类账块链中的本地块。在图3的实例中,通过电路系统210,全局块320

1已验证成为本地分类账块链324中的本地块321

1,全局块320

2已验证成为本地分类账块链326中的本地块321

2,全局块320

3已验证成为本地分类账块链328中的本地块321

3,全局块320

4已验证成为本地分类账块链324中的本地块321

4,全局块320

5已验证成为本地分类账块链324中的本地块321

5,全局块320

6已验证成为本地分类账块链326中的本地块321

6,并且全局块320

n已验证成为本地分类账块链328中的本地块321

n。
[0066]
在一个实例实施例中,通过使用图2a中描述的电路系统210,可以将全局块320接收到存储器装置,例如图2a中的201,验证并添加(例如生成)到本地分类账块链324、326或328。在图3的实例中,全局块320

4已被接收并验证成为本地块321

4。本地块321

4可在本地块321

1已通过本文描述的电路系统和逻辑验证后添加到本地分类账块链324。如结合图4进一步描述的,本地块321

1用于验证全局块320

4作为存储在存储器中的电子控制单元数据的电子控制单元更新。在此实例中,本地块321

4可被接受并存储为本地分类账块链324中本地块321

1)之后的下一块。全局分类账块链322可包含来自多个主机(例如,结合图2描述的主机202)的块链配置、架构和/或协议中的块。
[0067]
主机和/或存储器可以维护(例如,存储)本地分类账块链324、326、328,并且仅包含与特定主机和/或存储器相关的经验证的全局块。全局块320可以包含与包含在全局块中的数据相关联的特定主机和/或存储器的标识符。例如,示出本地分类账块链324与特定主机/存储器标识符(id_1)相关联。因此,与此主机/存储器关系相关联的电路系统将仅验证相关的全局块,使得本地分类账块链324将仅包含本地块321

1(来自全局分类账块链320的全局块320

1)、本地块321

4(来自全局分类账块链320的全局块320

4)和本地块321

5(来自全局分类账块链320的全局块320

5)。示出本地分类账块链326与另一主机和/或存储器标识符(id_2)相关联。因此,与此主机/存储器关系相关联的电路系统将仅验证相关的全局块,使得本地分类账块链326将包含本地块321

2(来自全局分类账块链320的全局块320

2)和本地块321

6(来自全局分类账块链320的全局块320

6)。示出本地分类账块链328与另一主机和/或存储器标识符(id_k)相关联。因此,与此主机/存储器关系相关联的电路系统将仅验证相关的全局块,使得本地分类账块链328将n包含本地块321

3(来自全局分类账块链320的全局块320

3)和本地块321

n(来自全局分类账块链的全局块320

n)。
[0068]
使用本地分类账块链(例如,324、326、328)存储适当的块链数据作为对相应主机的存储器和/或存储器关系(例如,id_1、id_2和id_k)的更新,可以提供对存储在与给定主机相关联的给定存储器装置(例如,图2a的存储器装置206)中的电子控制单元数据的安全电子控制单元更新。因而,本文描述的电路系统和逻辑允许图3中所示的交换和组织。例如,电路系统配置成从全局分类账块链322接收全局块(例如320

4),并确定全局块320

4是否与特定主机和/或存储器关系相关。如果全局块320

4与特定主机和/或存储器相关,例如,根据块链匹配技术对相应标识符(例如,id_1、id_2和id_k)的经加密散列进行比较,电路系统可将全局块320

4添加到其本地分类账块链324。块链数据的全局块320

4可包含对包含在与主机和/或存储器相关联的安全阵列中的电子控制单元数据的电子控制单元更新的有效负载。本文描述的电路系统,例如电路系统210,可以通过检查(例如,比较)本地分类账块链324中当前本地块(例如,321

1)的密码散列与存储在存储器中包含于全局块320

4中的待更新的电子控制单元数据的密码散列来验证全局块320

4。本地分类账块链324的当前本地块321

1还具有与其相关联的数字签名,所述数字签名类似地经过比较以指示全局块320

4是否来自被授权实体(例如,包含标识符id_1,所述标识符证明全局块320

4来自与特定主机相关联的实体和/或包含本地分类账块链324的存储器关系)。如结合图4所阐述,如果经过验证,当前本地块321

1将成为“先前”本地块,并且全局块320

4将成为本地分类账块链324中的“当前”本地块321

4。将结合图4详细描述本地分类账块链324(例如,和/或326,328)的本地块321的内容。
[0069]
被授权实体可以将全局分类账块链322作为公共分类账提供,所述公共分类账可分布给与全局分类账块链322一致的所有和/或部分主机和/或存储器,以接收电子控制单元更新(例如,对硬件的更新)。例如,全局分类账块链322可由实体生成和维护,所述实体可提供例如硬件更新、软件更新、组件配置、对存储在存储器中的代码的更改、对存储在存储器中的代码的一部分的更改等服务,用于实体所服务的多个主机装置和/或存储器装置。例如,全局分类账块链322可由车辆制造商生成和监控。全局分类账块链322内的每个全局块320可以包含用于对存储在用于具有特定标识符的车辆的存储器中的指令实施电子控制单元更新的数据。举例来说,如图3所示,全局块320

1、320

4、320

5对应于主机和/或存储器
id_1,全局块320

2、320

6对应于主机和/或存储器id_2,并且全局块320

3、320

n对应于主机和/或存储器id_k。其中不同的id对应于不同的主机和/或存储器关系(例如,不同的车辆)。
[0070]
在此实例中,车辆制造商生成并监控全局分类账块链322,使得为特定车辆(例如,或共享标识符的特定车辆子集)生成的电子控制单元更新的每个实例都记录为全局分类账块链322中的不可变记录。例如,全局块320

1包含对与id_1相关联的车辆(例如,或与所述车辆相关联的存储器中的电子控制单元数据)的电子控制单元更新,全局块320

2包含对与id_2相关联的车辆的电子控制单元更新等。全局块320在其由车辆制造商生产时按先后顺序汇编,并且每个全局块320可包含指示块所源于的车辆制造商(例如,实体)的数字签名。以此方式,车辆制造商可以保存针对所监控的不同车辆生成的所有更新的不可变记录。
[0071]
如在块链技术中使用且结合图4更详细描述,全局分类账块链322中的全局块320可包含多个报头和加密。例如,全局分类账块链的全局块可包含全局块报头,所述全局块报头包含到先前全局块的密码散列数据(例如,到先前全局块的链接),以及包含到先前本地块的密码散列数据的散列。因此,当图2a中的主机202和/或存储器装置206接收到全局块时,待添加到本地分类账块链的全局块可包含本地分类账块链中的当前本地块(例如,在块链数据220)的密码散列(例如,到当前本地块的链接)和对存储在存储器装置206中的电子控制单元数据(例如,有效负载)的电子控制单元更新的密码散列。本地分类账块链中的块链数据220还可以包含与之相关联的数字签名,所述数字签名指示全局块来自被授权实体。
[0072]
换句话说,主机和/或存储器(例如,图2a所示的主机202和/或存储器216)可以接收来自全局分类账块链的全局块,并且主机和/或存储器上的电路系统和/或逻辑可以确定全局块是否与主机和/或存储器相关。如果是,则全局块及其内容可被验证成为存储在本地分类账块链中的块链数据的新本地块(例如,作为存储在图2a中的存储器216的阵列201上的块链数据220的一部分)。本地块还可以包含具有指示本地块何时生成/接收的时间戳的报头。
[0073]
存储在存储器阵列(例如,图2a的存储器阵列201)中的电子控制单元数据的密码散列将由包含在接收/生成的本地块中的电子控制单元数据更新、更改、配置、和/或以其它方式改变,和/或本地分类账块链中的先前本地块的密码散列可以包括例如sha

256密码散列。此外,存储在存储器阵列中的数据的密码散列和本地分类账块链中的先前本地块的密码散列可各自相应地包括256字节的数据。
[0074]
存储在存储器阵列中的数据的密码散列可以由例如图2a中的电路系统210之类的电路系统生成(例如,计算)。在此类实例中,所存储的数据的密码散列可以由存储器装置(例如,图2a中的存储器装置206)在内部生成,而不需要在主机/存储器装置接口(例如,图2a中的接口204)上移动外部数据。作为额外实例,数据的密码散列可以从外部实体传送。举例来说,主机可以生成存储在存储器阵列中的数据的密码散列,并将生成的密码散列发送到存储器装置,例如,存储器装置的电路系统可以从主机接收存储在存储器阵列中的数据的密码散列。
[0075]
此外,可以由电路系统基于(例如,响应于)外部命令(例如,从主机接收的命令)而生成(例如,计算)与本地块相关联的数字签名。数字签名可以使用对称或非对称密码术生成。数字签名可以包含呈全局分类账块链上先前本地块(添加块时,其应与本地分类账块链
上的当前本地块相匹配)形式的新鲜度字段。作为额外实例,主机可以生成数字签名,并将生成的数字签名发送(例如,提供)到存储器装置。
[0076]
本文描述的新鲜度字段可能会随着添加到本地分类账块链的每个全局块而改变。因此,新鲜度字段可用于验证传入全局块是否是待添加为本地分类账块链中的下一块的正确块。当数字签名指示传入全局块与主机相关,且传入全局块的先前本地块字段(新鲜度)与本地分类账块链中的当前本地块相同时,将验证传入全局块是待添加到本地分类账的下一个本地块。因为新鲜度也可以用于计算数字签名,所以数字签名可以与每个传入全局块不同。
[0077]
如所提及,数字签名可以是例如使用非对称密码术(例如,基于公钥和/或私钥)生成的数字签名,并且可以包括例如椭圆曲线数字签名。作为额外实例,可以使用对称密码术(例如,基于主机与存储器装置之间共享的唯一秘密密钥)生成签名。可以使用任何非对称协议(例如diffie

hellman协议)交换秘密密钥。在其它实例中,可在安全环境(例如,工厂生产、安全制造等)中与主机共享密钥。将结合图6

11进一步讨论秘密密钥的生成和验证。
[0078]
如结合图2所描述,此类块链数据220可以存储在存储器阵列中,例如图2a中的存储器阵列201。块链数据220可以存储在存储器装置的用户和/或主机不可存取的存储器阵列201的一部分中(例如,存储在存储器阵列的“隐藏”区中)。将块链数据的本地块和/或本地分类账块链存储在特定存储器阵列中,可以通过消除对本地块的软件存储管理的需要来简化本地块的存储。
[0079]
在图3的实例中,全局块320

6可包含全局报头,所述全局报头具有用于先前全局块320

5的散列的字段,其中先前全局块字段指示全局分类账块链322中的前一个块。全局报头中的不同散列可包含先前本地块字段,其中先前本地块字段指示具有相同主机标识符和/或存储器id的前一个全局块。
[0080]
例如,全局块320

6可以包含具有全局块320

2(先前相关全局块)的散列的本地块字段,因为它们都是车辆id_2。以此方式,特定主机和/或存储器装置关系(例如,对于车辆,或车辆子集)可以从全局分类账块链322接收多个全局块320,并确定接受哪些全局块320作为本地块以及舍弃哪些全局块320。
[0081]
例如,本地分类账块链324可以包含在通过呈具有id_1的主机(例如,车辆)形式的标识符与特定主机相关联的存储器装置和/或存储器中。如本文中所描述的电路系统可配置成在与主机车辆相关联的存储器中存储全局块320作为本地分类账块链324的部分。换句话说,电路系统配置成从全局分类账块链322接收多个全局块320,并且当电路系统确定全局块320属于与车辆id_1相关联的主机车辆时,它们被接受为本地块321并被添加到本地分类账块链324中。
[0082]
具体地,在实例中,主机车辆和/或与具有id_1的主机车辆相关联的存储器包含(例如可以存储)本地分类账块链324,并且电路系统和/或存储器可以从全局分类账块链322接收多个全局块320

1、320

2、320

3、320

4、320

5、320

6和320

n。电路系统配置成确定由电路系统从全局分类账块链322接收的多个全局块320是否与主机车辆和/或与主机车辆id_1相关联的存储器相关。因此,电路系统可以确定全局块320

1、320

4和320

5与主机车辆id_1相关,并且电路系统配置成验证,并且如果验证,则将从全局分类账块链322接收的多个全局块中的全局块320

1、320

4、320

5顺序地添加到本地分类账块链324,作为本地
块321

1、321

4和321

5,因为已验证它们与主机车辆id_1相关。
[0083]
在一个实例中,当相应全局块320中的先前本地块字段与本地分类账块链324的当前本地块中的当前本地块字段匹配时,可以(顺序地)将全局块320

1、320

4和320

5添加到本地分类账块链324。具体而言,通过确认全局块320

4来自被授权实体(例如,车辆制造商的全局分类账块链322),并检查全局块320

4的先前本地块字段是否是本地块321

1(与全局块320

1相同)的散列,以及检查当前本地块321

1在其自身的当前本地块字段中具有匹配的散列,电路系统可以验证传入全局块320

4。此过程可应用于将全局块320

5添加到本地分类账块链324。因此,全局块320

1、320

4和320

5可以成为本地分类账块链324中的本地块321

1、321

4和321

5。使用此方法和配置,本地分类账块链324包含按先后顺序汇编的与(id_1)相关联的主机和/或存储器相关的多个本地块。
[0084]
另外,当全局块320与主机和/或存储器id_1无关时,电路系统配置成避免将所述全局块添加到本地分类账块链324。因此,电路系统可以确定全局块320

2、320

6、320

3和320

n与主机和/或存储器id_1无关,并且可以从本地分类账块链324舍弃无关的全局块。结合图3描述的机制可以应用于多个主机和/或多个存储器,例如,本地分类账块链326和本地分类账块链328。
[0085]
例如,电路系统可以生成本地分类账块链(例如,324),用于验证对存储在存储器(例如,与id_1相关联)中的电子控制单元数据的电子控制单元更新,并从全局分类账块链322接收全局块(例如,320

1、320

2、320

3、320

4、320

5、320

6、320

n)。当与全局块的第一部分(例如,320

1、320

4、320

5)中的全局块中的每一个相关联的数字签名由电路系统验证为与主机和/或存储器(例如id_1)相关时,电路系统可以将所述第一部分添加到本地分类账块链324。当接收到的全局块的第二部分(例如,320

2、320

6、320

3、320

n)被确定为与和id_1相关联的主机和/或存储器无关时(例如,所述第二部分与id_2和/或id_k相关联),电路系统可以舍弃所述全局块的所述第二部分。
[0086]
如结合图4进一步描述,电路系统可使用新鲜度字段以验证全局块是否属于本地分类账块链(例如324、326、328)。在以上实例中,第一部分(例如,320

1、320

4、320

5)的全局块中的每一个包含用于生成数字签名的新鲜度字段。第一部分(例如320

1、320

4、320

5)的全局块中的每一个的新鲜度字段对应于本地分类账块链324的当前本地块。因而,第一部分(例如320

1、320

4、320

5)的全局块按先后顺序添加到本地分类账块链324(作为本地块321

1、321

4和321

5),并存储在与主机相关联的存储器中。
[0087]
具体而言,电路系统可以基于全局块的新鲜度字段生成数字签名。举例来说,电路系统可以通过识别全局块320

4的报头中的先前本地块字段(在此实例中,这将是全局块320

1的散列,因为它是具有id_1的先前全局块)来生成全局块320

4的新鲜度字段。其中本地分类账块链324的当前本地块321

1和全局分类账块链322的全局块320

4的先前本地块字段(同样,在此实例中,这将是全局块320

1)相同。
[0088]
图4示出根据本公开实施例的用于存储在存储器(例如,先前结合图2a描述的存储器阵列201)中的安全电子控制单元更新的本地分类账块链(例如,本地分类账块链424)的实例。本地分类账块链424可以类似于结合图3描述的本地分类账块链324。为便于说明,图4仅示出本地分类账块链424。然而,结合图4和本地分类账块链424描述的实例也可应用于其它本地分类账块链(例如,结合图3描述的本地分类账块链326和328)。本地分类账块链424
是用于对存储在相应主机和/或存储器交换的存储器中的电子控制单元数据的安全电子控制单元更新的块链。作为一个实例,主机和/或存储器交换与特定标识符(例如,标识符id_1)相关联。
[0089]
在此实例中,本地分类账块链424的本地块421

1、421

4、421

5是先前接收为例如图3)的实例中的全局块320

1、320

4、320

5的块。在一个实例中,图2中的电路系统210使用结合图5a

11描述的块链加密和解密技术对接收到的全局块进行操作,以比较和验证块链数据的散列,例如,使用sha256散列。当全局块被验证为与主机和/或存储器(例如,id_1)相关时,它们可以成为本地块421

1、421

4和421

5,并存储为用于与id_1相关联的主机和/或存储器的本地分类账块链424中的不可变记录。在此实例中,电路系统用于将本地块421

4(例如,先前全局块320

4)的块链散列与本地块421

1(例如,先前全局块320

1)进行比较,以便存储在与主机id_1相关联的存储器中。所述电路系统一旦被与主机和/或存储器相关联的电路系统验证就可以链接到本地块421

1。同样,本地块421

5(例如,先前全局块320

5)一旦被与主机和/或存储器相关联的电路系统验证就可以链接到本地块421

4。
[0090]
在图4的实例中,每个本地块(例如421

1、421

4和/或421

5等)可分别包含以下信息:全局块报头,例如430

1、430

4、430

5;以及本地块报头,例如432

1、432

4、432

5。在此实例中,每个本地块报头432

1、432

4,432

5包含先前本地块散列433

1、433

4、433

5、当前本地块散列434

1、434

4、432

5和块签名435

1、435

4、435

5。如图4的实例所示,例如421

1、421

4和421

5的每个本地块包含例如436

1、436

4、436

5的有效负载,作为块信息的一部分,例如数据。如结合图3所提及,块(例如,全局和本地)中的每一个可以包含多个报头(例如,430

1、432

1),以将当前块链接到其相应块链分类账(全局或本地)中的先前块。
[0091]
例如,参考将本地块421

4添加到本地分类账块链424的方法,全局块报头430

4可以包含呈用于全局分类账块链中具有相同相关联id_1的先前全局块的散列以及用于当前全局块的散列形式的新鲜度字段(以将全局分类账块链链接在一起)。换句话说,当全局块(例如,图3的320

4)位于全局分类账块链(例如,图3的322)中时,全局块报头中的新鲜度字段是全局分类账块链(例如,图3的322)中具有相同相关联标识符(例如,id_1)的先前全局块(例如,图3的320

1)的散列。在此实例中,当验证将本地块421

4添加到本地分类账块链424时,当电路系统验证传入全局块(例如,320

4)以将其作为本地块421

4添加到本地分类账块链424时,本地分类账块链424中的本地块421

1的当前本地块散列434

1将与全局块报头430

4中的新鲜度字段相同。换句话说,全局块报头430

4的新鲜度字段应与本地分类账块链424的本地块421

1的当前本地块散列434

1匹配,因为当前本地块421

1先前是全局块320

1。
[0092]
例如432

1、432

4和432

5的本地块报头各自分别包含例如433

1、433

4和433

5的先前本地块散列(用于链接本地分类账块链424)和例如434

1、434

4和434

5的当前本地块散列(与传入全局块新鲜度字段相同),以及例如435

1、435

4、435

5的块签名,以指示所述块来自被授权实体(例如,来自车辆制造商和/或与主机和/或存储器相关联的实体)并且与主机和/或存储器相关(例如,id_1)。例如436

1、436

4和436

5的有效负载可以是包含硬件更新(例如,新电子控制单元和/或修改的电子控制单元等)和/或存储在存储器中的待更新的电子控制单元数据的密码散列的数据。
[0093]
例如,呈车辆和/或与具有标识符id_1的车辆相关联的存储器形式的主机可以包
含存储器和电路系统,以生成本地分类账块链424,用于验证对存储在存储器中的电子控制单元数据的电子控制单元更新。在此实例中,本地分类账块链424由取自全局分类账块链(例如,图3的322)的本地块421

4(例如,图3的全局块320

4)组成。本地块421

4包含当前本地块421

4的当前本地块密码散列434

4。当前本地块密码散列434

4可与先前本地块密码散列433.4(其为当前本地块散列434

1)进行比较,作为验证顺序(例如,序列)并链接本地分类账块链424与存储在存储器中的待更新的电子控制单元数据的密码散列(例如,有效负载436

1、436

4和436

5)的新鲜度字段。本地分类账块链424的本地块421

4具有与其相关联的数字签名435

4,所述数字签名指示全局块(例如,图3的320

4)来自被授权实体,并且被正确添加为本地块421

4。在一些实例中,被授权实体可能是车辆制造商,所述制造商正在对所述制造商生产的所有车辆进行电子控制单元更新。以此方式,与id_1相关联的主机和/或存储器可以检查块签名(例如,435

4),并且可以舍弃从全局分类账块链(例如,全局分类账块链322)接收的与和id_1相关联的主机和/或存储器无关的全局块。
[0094]
主机和/或存储器id_1可配置成从存储器接收本地分类账块链424,使用接收到的本地分类账块链424验证对存储在存储器中的电子控制单元数据的电子控制单元更新(例如,有效负载436

1、436

4和436

5)。以此方式,与id_1相关联的主机和/或存储器可以维护和/或监控从被授权实体提供给主机和/或存储器的电子控制单元更新中的每一者。因为本地分类账块链424的汇编生成不可变记录,所以电路系统可以保持对所发生的电子控制单元更新的控制。这可以防止欺诈性电子控制单元更新、无意的改变、无意的错误和恶意黑客企图。另外,在与主机相关联的存储器上维护本地分类账块链424可以提供可根据需要产生的电子控制单元更新的记录。在来自全局分类账块链(例如,图3的全局分类账块链322)的全局块已被验证并添加到本地分类账块链424之后,电路系统可实施包含在例如436

1、436

4和436

5的有效负载中的电子控制单元更新。
[0095]
例如,本地分类账块链424可以验证全局块(例如,图3的全局块320

1),并将其作为本地块421

1添加到本地分类账块链424。验证之后,电路系统可执行包含在本地块421

1的有效负载436

1中的电子控制单元更新438

1。被授权实体可将另一电子控制单元更新推送到与id_1相关联的主机和/或存储器,因此,电路系统可接收第二全局块(例如,图3的全局块320

4),所述第二全局块可由电路系统验证并顺序地添加为链接到本地块421

1的本地块421

4。电路系统可检查和比较新鲜度字段的密码散列,例如,先前本地块散列433

4。如果本地分类账块链424中的此验证和链接有效,则电路系统可执行包含在本地块421

4的有效负载436

4中的电子控制单元更新438

2。使用此方法,存储器可继续将全局块作为本地块添加到本地分类账块链424,如针对本地块421

5等所描述。在一些实例中,与id_1相关联的主机和/或存储器可以移除本地分类账块链424的较旧部分,以在本地分类账块链424随着被授权实体生成更多电子控制单元更新而增加时在存储器中创建空位。
[0096]
例如,主机和/或存储器可以是具有id_1的车辆的计算装置,并且本地分类账块链424可以指示对电子控制单元(例如,车辆上的硬件组件)的更新。计算装置可以包含可存储在存储器中的不可变记录的阈值量。在一些实例中,经由全局块从被授权实体推送电子控制单元更新(例如,438

1、438

2)以更新计算装置的硬件组件,当本地分类账块链424已达到阈值时,电路系统可以从本地分类账块链424移除本地块(例如,较旧的本地块)。电路系统可通过执行固件以更改本地分类账块链424的根(例如,一致性的根、梅克尔树的根等)来
移除较旧的本地块(例如,421

1),在计算装置的存储器中为较新的本地块(例如,421

5)创建空位。以此方式,当本地分类账块链424添加新的本地块时,电路系统可以保持对电子控制单元更新的控制。
[0097]
图5a示出根据本公开实施例的用于定义安全存储器阵列的一对寄存器514

1和514

2的实例,并且图5b示出根据本公开实施例的包含用寄存器514

1和514

2定义的安全存储器阵列的存储器阵列501的一部分的图。寄存器514

1和514

2可以是例如先前结合图2描述的寄存器214

1和214

2,并且安全存储器阵列501可以是例如先前结合图2描述的存储器阵列201。举例来说,如图5b所示,安全存储器阵列501可包含存储器单元的数个物理块507

0、507

1、
……
、507

b,每个物理块包含具有数个存储器单元扇区的数个物理行503

0、503

1、
……
、503

r,其方式类似于先前结合图1描述的存储器阵列101。
[0098]
如图5a所示,寄存器514

1可以定义安全阵列的地址(例如,安全阵列不同部分的地址),并且寄存器514

2可以定义安全阵列的大小(例如,安全阵列不同部分的大小)。由寄存器514

1定义的安全阵列的地址可以对应于例如安全阵列的起始点(例如,起始lba)(例如,安全阵列不同部分的起始点),并且由寄存器514

2定义的安全阵列的大小可以对应于例如安全阵列的结束点(例如,结束lba)(例如,安全阵列不同部分的结束点)。
[0099]
例如,如图5a所示,寄存器514

1和514

2可以定义n对值,其中每一相应对包括由寄存器514

1定义的地址值(例如,addr)和由寄存器514

2定义的大小值(例如,size)。举例来说,在图5a所示的实例中,pair0包括地址值addr0和大小值size0(例如,pair0=[addr0,size0]),pair1包括地址值addr1和大小值size1(例如,pair1=[addr1,size1])等,其中pair
n
包括地址值addr
n
和大小值size
n
(例如,pair
n
=[addr
n
,size
n
])。一对的地址值可以对应于安全阵列的一部分的起始点(例如,起始lba),并且所述对的地址值和大小值的总和可以对应于安全阵列的所述部分的结束点(例如,结束lba)。因而,整个安全阵列(例如,组成整个安全阵列的部分)可以由以下公式给出:[addr0,addr0 size0]∪[addr1,addr1 size1]∪

∪[addr
n
,addr
n
size
n
]。
[0100]
寄存器514

2定义的大小值为零的第一对可以停止安全阵列的定义。举例来说,在图5a所示的实例中,如果pair2的大小值为零,则安全阵列将由以下公式给出:[addr0,addr0 size0]∪[addr1,addr1 size1]。
[0101]
由寄存器514

1和514

2定义的安全阵列实例(例如,寄存器514

2定义的所有大小值均为非零)如图5b所示。举例来说,如图5b所示,与存储器阵列501的扇区505

0相关联的地址(例如lba)为addr0,与存储器阵列501的扇区505

1相关联的地址为addr0 size0,与存储器阵列501的扇区505

2相关联的地址为addr1,与存储器阵列501的扇区505

3相关联的地址为addr1 size1,与存储器阵列501的扇区505

4相关联的地址为addr
n
,并且与存储器阵列501的扇区505

5相关联的地址为addr
n
size
n
。因而,安全阵列包括扇区(例如,存储在扇区中的数据)505

0到505

1、扇区505

2到505

3以及505

4到505

5。然而,位于扇区505

0之前的存储器阵列501的扇区以及存储器阵列501的扇区505

1到505

2不是安全阵列的一部分(例如,安全阵列包括阵列501的子集)。
[0102]
图6是根据本公开实施例的包含主机602和存储器装置606的实例系统的框图。主机602和存储器装置606可以分别是例如先前结合图2描述的主机202和存储器装置206。
[0103]
计算装置可在使用层的阶段启动,其中每一层鉴认并加载后续层并且在每一层提
供越来越复杂的运行时间服务。一层可被前一层服务并且服务后续层,进而创建构建在下部层上并且服务高阶层的层的互连网络。如图6所示,层0(“l
0”)651和层1(“l
1”)653位于主机内。层0 651可以向层1 653提供固件衍生秘密(fds)密钥652。fds密钥652可以描述层1 653的代码的身份标识和其它安全相关数据。在实例中,特定协议(例如稳固物联网(riot)核心协议)可以使用fds 652来验证其加载的层1 653的代码。在实例中,特定协议可以包含装置标识组合引擎(dice)和/或riot核心协议。作为实例,fds可以包含层1固件图像本身、以密码方式标识被授权层1固件的清单、在安全引导实施方案的上下文中签名的固件的固件版本号,和/或装置的安全关键配置设置。装置秘密658可以用于创建fds 652并存储在与主机602相关联的存储器中。
[0104]
如箭头654所示,主机可以将数据传输到存储器装置606。传输的数据可包含公开的外部标识、证书(例如,外部标识证书)和/或外部公钥。存储器装置606的层2(“l
2”)655可以接收传输的数据,并在操作系统(“os”)657的操作中以及在第一应用659

1和第二应用659

2上执行数据。
[0105]
在实例操作中,主机602可以读取装置秘密658,将层1 653的身份标识散列,并且执行计算,所述计算包含:
[0106]
k
l1
=kdf[fs(s),散列(“不可变信息”)]
[0107]
其中k
l1
是外部公钥,kdf(例如,美国国家标准与技术研究所(nist)特定公开800

108中定义的kdf)是密钥导出函数(例如,hmac

sha256),且fs(s)是装置秘密658。可通过执行以下计算确定fds 652:
[0108]
fds=hmac

sha256[fs(s),sha256(“不可变信息”)]
[0109]
同样,如箭头656所示,存储器装置606可以将数据传输到主机602。
[0110]
图7是根据本公开实施例的确定数个参数的实例过程的框图。图7是确定包含外部公共标识、外部证书和外部公钥的参数的实例,如箭头754所示,所述参数随后被发送到存储器装置(如图6中的606)的层2(例如,层2 655)。图7中的层0(“l
0”)751对应于图6中的层0 651,同样,fds 752对应于fds 652,层1 753对应于层1 653,并且箭头754和756分别对应于箭头654和656。
[0111]
来自层0 751的fds 752被发送到层1 753,并由非对称id生成器761使用以生成公共标识(“id
lk public”)765和私有标识767。在缩写的“id
lk public”中,“lk”指示层k(在此实例中为层1),并且“public”指示标识是公开共享的。公共标识765通过向右侧延伸且延伸到主机的层1 753之外的箭头而被示为共享。生成的私有标识767用作输入到加密器773的密钥。加密器773可以是用于对数据进行加密的任何处理器、计算装置等。
[0112]
主机的层1 753可包含非对称密钥生成器763。在至少一个实例中,随机数生成器(rnd)736可以可选地将随机数输入到非对称密钥生成器763中。非对称密钥生成器763可以生成与主机(例如图6中的主机602)相关联的公钥(“k
lk public”)769(被称为外部公钥)和私钥(“k
lk private”)771(被称为外部私钥)。外部公钥769可以作为输入(作为“数据”)输入到加密器773。加密器773可以使用外部私有标识767和外部公钥769的输入生成结果k'775。外部私钥771和结果k'775可以输入到额外加密器777,从而产生输出k"779。输出k"779是传输到层2(图6的655)的外部证书(“id
l1
证书”)781。外部证书781能够验证和/或认证从装置发送的数据的来源。作为实例,通过验证证书,从主机发送的数据可与主机的身份标识相关联,
如将结合图9进一步描述的。此外,外部公钥(“k
l1 public key”)783可以传输到层2。因此,主机的公共标识765、证书781和外部公钥783可以传输到存储器装置的层2。
[0113]
图8是根据本公开实施例的确定数个参数的实例过程的框图。图8示出生成装置标识(“id
l2 public”)866、装置证书(“id
l2 certificate”)882和装置公钥(“k
l2 public key”)884的存储器装置(例如,图6中的存储器装置606)的层2 855。
[0114]
如图7所描述,从主机的层1传输到存储器装置的层2 855的外部公钥(“k
l1 public key”)883由存储器装置的非对称id生成器862用于生成存储器装置的公共标识(“id
lk public”)866和私有标识868。在缩写的“id
lk public”中,“lk”指示层k(在此实例中为层2),并且“public”指示标识是公开共享的。公共标识866通过向右侧延伸且延伸到层2 855之外的箭头而被示为共享。生成的私有标识868用作输入到加密器874的密钥。
[0115]
如图8所示,证书验证器847使用外部证书881和外部标识865以及外部公钥883。证书验证器847可以验证从主机(例如主机602)接收的外部证书881,并响应于外部证书881经过验证或未经验证而确定是接受还是舍弃从主机接收的数据。结合图9描述验证外部证书881的进一步细节。
[0116]
存储器装置的层2 855可包含非对称密钥生成器864。在至少一个实例中,随机数生成器(rnd)838可以可选地将随机数输入到非对称密钥生成器864中。非对称密钥生成器864可以生成与存储器装置(例如图6中的存储器装置606)相关联的公钥(“k
lk public”)870(被称为装置公钥)和私钥(“k
lk private”)872(被称为装置私钥)。装置公钥870可以作为输入(作为“数据”)输入到加密器874。加密器874可以使用装置私有标识868和装置公钥870的输入来生成结果k'876。装置私钥872和结果k'876可以输入到额外加密器878,从而产生输出k"880。输出k"880是传输回层1(图6的653)的装置证书(“id
l2
certificate”)882。装置证书882能够验证和/或认证从装置发送的数据的来源。作为实例,通过验证证书,从存储器装置发送的数据可与存储器装置的身份标识相关联,如将结合图9进一步描述的。此外,装置公钥(“k
l2 public key”)884可以传输到层1。因此,存储器装置的公共标识866、证书882和装置公钥884可以传输到主机的层1。
[0117]
在实例中,响应于主机从存储器装置接收公钥,主机可以使用装置公钥对待发送到存储器装置的数据进行加密。反之亦然,存储器装置可以使用外部公钥对待发送到主机的数据进行加密。响应于存储器装置接收使用装置公钥加密的数据,存储器装置可以使用其自身的装置私钥对数据进行解密。同样,响应于主机接收使用外部公钥加密的数据,主机可以使用其自身的外部私钥对数据进行解密。由于装置私钥不与存储器装置外部的另一装置共享,并且外部私钥不与主机外部的另一装置共享,因此发送到存储器装置和主机的数据保持安全。
[0118]
图9是根据本公开实施例的验证证书的实例过程的框图。在图9所示的实例中,从主机(例如,从图6中的主机602的层1 653)提供公钥983、证书981和公共标识965。证书981和外部公钥983的数据可用作到解密器985中的输入。解密器985可以是用于对数据进行解密的任何处理器、计算装置等。证书981和外部公钥983的解密结果可连同公共标识一起用作到次级解密器987中的输入,产生输出。外部公钥983和来自解密器987的输出可如989处所示指示证书是否通过比较而得到验证,从而产生作为输出的是或否991。响应于证书经过验证,可接受、解密和/或处理从已验证装置接收的数据。响应于证书未被验证,可舍弃、移
除和/或忽略从已验证装置接收的数据。以此方式,可检测和避免发送不法数据的不法装置。作为实例,可标识发送待处理的数据的黑客且不处理黑客数据。
[0119]
图10是根据本公开实施例的验证签名的实例过程的框图。在装置发送可被验证以避免后续否认(repudiation)的数据的实例中,可产生签名且与数据一起发送。作为实例,第一装置可作出对第二装置的请求,且一旦第二装置执行所述请求,第一装置就可指示第一装置从未作出此类请求。抗否认方法,例如使用签名,可避免第一装置的否认,且确保第二装置可在无后续困难的情况下执行请求的任务。
[0120]
存储器装置1006(例如,图2中的存储器装置206)可将数据1090发送到主机(例如,图2中的主机202)。在1094处,存储器装置1006可使用装置私钥1071生成签名1096。签名1096可传输到主机1002。在1098处,主机1002可使用先前接收的数据1092和外部公钥1069来验证签名。以此方式,使用私钥生成签名且使用公钥验证签名。以此方式,用于生成唯一签名的私钥可保持对发送签名的装置私用,同时允许接收装置能够使用发送装置的公钥对签名进行解密以用于验证。这与数据的加密/解密形成对比,所述数据由发送装置使用接收装置的公钥加密且由接收装置使用接收器的私钥解密。在至少一个实例中,装置可通过使用内部密码术过程(例如,椭圆曲线数字签名(ecdsa)或类似过程)来验证数字签名。
[0121]
图11是根据本公开实施例的实例存储器装置1106的框图。例如,存储器装置1106可以是先前结合图2描述的存储器装置206。
[0122]
如图11所示,存储器装置1106可包含数个存储器阵列1101

1到1101

7。存储器阵列1101

1到1101

7可以类似于先前结合图1描述的存储器阵列101。此外,在图11所示的实例中,存储器阵列1101

3是安全阵列,存储器阵列1101

6的子集1111包括安全阵列,并且存储器阵列1101

7的子集1113和1115包括安全阵列。子集1111、1113和1115各自可以包含例如4千字节的数据。然而,本公开的实施例不限于存储器阵列或安全阵列的特定数目或布置。
[0123]
如图11所示,存储器装置1106可包含修复(例如,恢复)块1117。修复块1117可在存储器装置1106的操作期间可能发生的错误(例如,不匹配)的情况下用作数据源。修复块1117可以位于可由主机寻址的存储器装置1106的区域之外。
[0124]
如图11所示,存储器装置1106可包含串行外围接口(spi)1104和控制器1108。存储器装置1106可使用spi 1104和控制器1108与主机和存储器阵列1101

1到1101

7通信,如前所述(例如,结合图2)。
[0125]
如图11所示,存储器装置1106可包含安全寄存器1119,用于管理存储器装置1106的安全性。例如,安全寄存器1119可以配置应用控制器,并与应用控制器进行外部通信。此外,安全寄存器1119可以通过认证命令进行修改。
[0126]
如图11所示,存储器装置1106可包含密钥1121。举例来说,存储器装置1106可包含八个不同的插槽来存储密钥,例如根密钥、dice

riot密钥和/或其它外部会话密钥。
[0127]
如图11所示,存储器装置1106可包含电子可擦除可编程只读存储器(eeprom)1123。eeprom 1123可提供主机可用的安全非易失性区域,其中可擦除和编程各个字节的数据。
[0128]
如图11所示,存储器装置1106可包含计数器(例如,单调计数器)1125。计数器1125可用作从主机接收和/或发送到主机的命令(例如,签署命令集或序列)的防重放机制(例
如,新鲜度生成器)。举例来说,存储器装置1106可包含六个不同的单调计数器,其中两个可由存储器装置1106用于认证命令,并且其中四个可由主机使用。
[0129]
如图11所示,存储器装置1106可包含sha

256密码散列函数1127和/或hmac

sha256密码散列函数1129。存储器装置1106可使用sha

256和/或hmac

sha256密码散列函数1127和1129生成密码散列,例如,如本文中先前描述的块220的密码散列,和/或如本文中先前描述的用于验证存储在存储器阵列1101

1到1101

7中的数据的黄金散列。此外,存储器装置1106可以支持dice

riot 1131的l0和l1。
[0130]
虽然已在本文中示出并描述了具体实施例,但所属领域的一般技术人员将了解,经计算以实现相同结果的布置可取代所示出的具体实施例。本公开意欲涵盖本公开的数个实施例的调适或变化。应理解,以说明方式而非限制方式进行了以上描述。在查阅以上描述后,以上实施例和本文未具体描述的其它实施例的组合对于所属领域的一般技术人员来说将是显而易见的。本公开的数个实施例的范围包含其中使用上述结构和方法的其它应用。因此,本公开的数个实施例的范围应参考所附权利要求书以及此类权利要求被赋予的等同物的完整范围而确定。
[0131]
在前述具体实施方式中,出于简化本公开的目的而将一些特征一起分组在单个实施例中。本公开的此方法不应被理解为反映本公开的所公开实施例必须比在每项权利要求中明确叙述那样使用更多特征的意图。实际上,如所附权利要求书所反映,本发明主题在于单个所公开实施例的不到全部的特征。因此,所附权利要求书在此并入此具体实施方式中,其中每项权利要求其自身代表单独的实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献