CN118233134A - 电子控制单元 - Google Patents
电子控制单元 Download PDFInfo
- Publication number
- CN118233134A CN118233134A CN202311770404.4A CN202311770404A CN118233134A CN 118233134 A CN118233134 A CN 118233134A CN 202311770404 A CN202311770404 A CN 202311770404A CN 118233134 A CN118233134 A CN 118233134A
- Authority
- CN
- China
- Prior art keywords
- value
- sub
- ecu
- encoded data
- key
- 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
- 230000006854 communication Effects 0.000 claims abstract description 101
- 238000004891 communication Methods 0.000 claims abstract description 99
- 238000009795 derivation Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 abstract description 13
- 238000012545 processing Methods 0.000 abstract description 12
- 238000005516 engineering process Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 33
- 238000000034 method Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 16
- 230000003068 static effect Effects 0.000 description 11
- 238000012795 verification Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Small-Scale Networks (AREA)
Abstract
公开了与车辆相关的电子控制单元。所描述的技术解决了与当前安全车载通信系统有关的问题,安全车载通信系统需要针对每个已编码数据发送/接收来生成子密钥。这些已编码数据发送/接收可以基于若干不同的车载通信协议,并且对于这样的协议的“即时”生成子密钥的要求可能导致显著的处理开销和延迟。本文提供的实施方式通过使用预定函数预先计算并存储要用于将来的已编码数据消息发送/接收的子密钥,解决了子密钥生成的问题。以这种方式,可以更好且更有效地管理生成子密钥所需的时间和开销。
Description
技术领域
本文描述的各个方面总体上涉及安全数据通信的使用,并且更具体地涉及根据密钥派生函数利用预生成的子密钥的安全通信的使用。
背景技术
控制器局域网(CAN)通信协议、控制器局域网灵活数据速率(Controller AreaNetwork Flexible Data-Rate,CAN FD)通信协议、控制器局域网超长(Controller AreaNetwork Extra Long,CAN XL)通信协议和以太网通信协议是目前实施用于汽车车载通信的主流网络/协议,其利用配套的电气/电子(E/E)架构。然而,这些常规方法具有各种缺点,尤其是在由于需要在车载网络内传送、接收和解码新的已编码数据消息而需要即时生成子密钥的开销方面。
发明内容
同样,常规的通信协议和E/E架构具有各种缺点,特别是在生成子密钥所要求的处理能力、开销和时间方面,子密钥是确保整个E/E网络架构的真实且安全的通信所必需的。例如,常规的安全措施包括仅基于认证(即,消息认证码,或MAC)的方法,其被称为“安全车载通信”。该安全车载通信过程是由AUTomotive开放式系统架构(AUTomotive Open SystemArchitecture,AUTOSAR)定义的,AUTOSAR是机动车辆开放式系统架构。AUTOSAR安全车载通信过程作用于应用层,并提供具有软件应用编程接口(API)的框架以供在车载通信网络中使用。
然而,目前通过安全车载通信过程使用的各种参数的众多可能性使得快速、安全且经济的硬件实现是不可行的。本文提供的实施方式通过提供预定函数以预先计算并存储要用于发送和/或接收已编码数据消息的子密钥来解决这些问题。通过以这种方式提前生成子密钥,可以在通信不活动的时间段期间,即在不发送或不接收已编码数据传输时,生成子密钥。以这种方式,由于不需要在消息发送/接收时“即时”生成子密钥,因此可以更好且更有效地管理生成子密钥所需的时间和开销。
附图说明
附图(其并入并形成说明书的一部分)示出了本公开内容的各个方面,并且与说明书一起用于说明这些方面的原理,并且使得相关领域的技术人员能够实现并使用这些方面。
图1示出了用于在车辆内提供安全通信的常规车载网络架构的框图;
图2A示出了常规物理控制器局域网(CAN)架构的框图;
图2B示出了支持一个或更多个安全区和安全信道的常规CAN架构;
图3A示出了与第一类安全通信相关的常规输入和输出;
图3B示出了与第二类安全通信相关的常规输入和输出;
图4A示出了使用认证加密伽罗瓦/计数器模式(authenticated-encryptionGalois/Counter Mode,AES-GCM)-SIV工作模式来发送已编码数据消息的常规架构;
图4B示出了根据AES-GCM-SIV工作模式生成子密钥的常规密钥派生函数(keyderivation function,KDF);
图4C示出了根据AES-GCM-SIV工作模式生成已编码数据消息的子密钥的常规使用;
图5示出了根据本公开内容的实施方式的电子控制单元(ECU)的框图;
图6示出了根据本公开内容的实施方式的仅使用一次的数值(nonce)的示例位结构;
图7A示出了根据本公开内容的实施方式的示例子密钥预先计算过程;
图7B示出了根据本公开内容的实施方式的示例子密钥缓存数据结构;
图7C示出了根据本公开内容的实施方式的所缓存的子密钥的示例地址映射;
图8示出了根据本公开内容的实施方式的使用认证加密伽罗瓦/计数器模式(AES-GCM)-SIV工作模式来生成已编码消息的示例架构;以及
图9示出了根据本公开内容的实施方式的示例处理流程。
将参照附图描述本公开内容的示例方面。元素首次出现在其中的附图通常由相应附图标记中最左边的数字表示。
具体实施方式
在下面的描述中,为了提供对本公开内容的各个方面的全面理解,阐述了许多具体细节。然而,对于本领域技术人员来说,将明显的是,可以在没有这些具体细节的情况下实践这些方面,包括结构、系统以及方法。本文中的描述和表示是本领域技术人员用来将他们工作的实质最有效地传达给本领域其他技术人员的常用手段。在其他实例中,未详细描述公知的方法、程序、部件和电路系统,以避免不必要地模糊本公开内容的各个方面。
I.技术概述:车载编码通信
图1示出了用于在车辆内提供安全通信的常规车载网络架构的框图。这样的架构可以支持任何合适数量的节点,这些节点通过已编码数据消息的传输来彼此通信。对于图1中的示例,示出了两个节点,包括发送器和接收器。每个节点可以与其中实现该节点的车辆的电子控制单元(ECU)相关,或者作为任何其他合适的车载部件。发送器和接收器两者均被编程为具有秘密密钥或能够以其他方式来访问秘密密钥,该秘密密钥具有任何合适的位长度并且通常被存储在与节点相关的安全存储器中,或者能够通过图1所示的发送器和接收器以其他方式被访问。秘密密钥通常是静态的,并且在节点的工作寿命期间不会改变,因此可以作为初始制造过程的一部分而被刷新、写入、存储等。
为了生成已编码数据消息,发送器单元使用秘密密钥和新鲜度值来生成完整消息认证码(MAC),其与协议数据单元(PDU)相关。以这种方式生成完整MAC消息的方式取决于所实现的特定通信协议,其细节将在本文中进一步讨论。新鲜度值(FV)被用于通过防止重放攻击来增强安全措施。为此,通常基于每个MAC将新鲜度值生成为不同的值,而秘密密钥在MAC之间则是静态或不变的值。因此,将新鲜度值与秘密密钥结合使用,以生成具有任何合适位长度的完整MAC,其在图1中被示出为128位。完整MAC被截断成较小位长度并与用于生成MAC的PDU和新鲜度值被一起打包作为数据帧的一部分,数据帧也可以可替选地被称为数据块。然后,根据合适的通信协议,通过一条或更多条导线、数据总线、互连等将数据帧传送到接收器单元。
然后,接收器单元接收数据帧,并且如图1所示,根据上次接收的新鲜度值来同步所接收的新鲜度值。对于要验证(即,认证)的MAC,经同步的新鲜度值应当与通过发送器单元发送的新鲜度值相匹配。然后,接收器单元使用PDU、新鲜度值以及被截断的MAC来验证MAC,并且还根据需要对MAC的内容进行解密。
可以根据如图1所示的常规车载网络架构实现的通信协议可以包括控制器局域网(CAN)通信协议、控制器局域网灵活数据速率(CAN FD)通信协议、控制器局域网超长(CANXL)通信协议、以太网通信协议等。对于CAN-XL通信协议,参照图1讨论的节点可以包括可信主机,其中两个或更多个这样的可信主机的群组形成安全区。因此,图2A示出了包括一组节点的常规物理控制器局域网(CAN)架构的框图,如图2B所示的CAN XL通信协议实现了安全区(SZ)和安全信道(SC)方案,以增强在CAN网络上的各个节点之间传送的通信的安全性。注意,以这种方式实现安全区的通信协议除了基于CAN的网络之外,还可以包括基于以太网的网络。因此,尽管本文是在基于CAN的网络的上下文中讨论安全区的,但是本文描述的实施方式可以同样地利用基于CAN或基于以太网的网络,但并不限于这些特定实现方式,而是可以利用如本文所述的任何合适类型的网络架构和/或通信协议。
例如,如图2B所示的CAN网络250中的阴影部分包括安全CAN区,该安全CAN区包括节点A、B和D,并且在这种情况下这些节点每个均被配置为可信主机。节点C可以与其他节点通信,但是不是如图2B所示的安全区的一部分。注意,形成安全区的两个或更多个可信主机的群组可以彼此安全地通信,并且可以通过安全网关跨越一个或更多个物理CAN网络。与可信主机A、B、D相关的特定安全区可以是在安全区内的可信主机之间传送的编码消息中所包括的标识符,并且因此可以充当在被已编码消息的接收方接收到时验证的另一级认证。
此外,CAN XL通信协议定义使每个安全区内的可信主机能够实现安全信道以相互传送已编码数据消息的协议。安全区内的可信主机使用的每个安全信道包括针对该可信主机的消息到同一安全区内的其他可信主机的安全传输信道,并且因此起到单向、点对多点信道的作用,如图2B所示。换句话说,可以根据由CAN XL通信协议定义的一组安全信道指示符(SCI)来标识安全区。每个安全信道与相应的SCI相关,并且在物理和逻辑CAN网络中是唯一的。因此,如图2B所示的安全信道SCA、SCB、SCD均是根据独立且唯一的SCI而定义的。
CAN XL通信协议还通过安全参数限定每个安全区内的可信主机之间的安全关联(security association,SA)。当在安全信道上传送已编码数据消息时,可以如上文关于图1所描述的将该安全参数作为数据帧的一部分传送,并且该安全参数使得接收方可信主机能够识别(安全信道中)针对其使用专用密钥的每个安全关联。如图2B中的情况那样,每个安全信道可以具有至多两个安全关联,其中每个可信主机通过它们各自的安全信道与另外两个可信主机通信。
本文另外详细描述的实施方式可以根据本文讨论的任何常规网络架构和通信协议来实现,但不限于这样的实现方式。事实上,下文还将进一步详细描述关于本文描述的实施方式可以用来进行操作的其他及替选通信协议的附加细节。因此,为了便于说明并使本文公开的实施方式更清晰,下面紧接着提供关于常规已编码数据消息的生成的附加细节。
II.技术概述:车载认证和加密
图3A示出了与第一类安全通信相关的常规输入和输出。对于如图3A所示的第一类安全通信,仅执行消息认证,这与如图3B所示并在下面进一步详细讨论的另外使用加密密文形成对比。因此,图3A中左侧所示的认证过程与已编码数据消息的传输相关,已编码数据消息由预期接收方接收并处理以对已编码数据消息的发送器进行验证(即,认证)。因此,可以由车辆的E/E架构内的节点、例如图1所示的发送器单元来发送已编码数据消息。因此,如图3A所示的认证块302可以与如图1所示的发送器单元中的MAC生成单元相关。此外,已编码数据消息可以由车辆的E/E架构内的节点、例如图1所示的接收器单元接收。因此,如图3A所示的验证块304可以与如图1所示的接收器单元中的MAC验证单元相关。
在任何情况下,都可以根据任何合适的通信协议(例如,如上所讨论的CAN、CAN FD和CAN XL通信协议)利用认证过程以这种方式来发送和接收已编码数据消息。对于如图3A所示的仅认证过程,认证块302接收四个输入并提供一个输出。这四个输入包括秘密密钥(k)、仅使用一次的数值(“nonce”,N)、附加认证数据(AAD)和明文(P)。
Nonce可以具有任何合适的长度(例如,位串)并且表示任何合适的值。nonce值和AAD不被加密,即它们仅被认证,并且可以以明文形式保存或者以未加密的方式传送。AAD起到增加二级安全等级的作用,这是因为AAD将被认证,并且因此如果攻击者修改了AAD的位,验证过程将检测到该修改。此外,对于如图3A所示的仅认证过程,不使用明文(其被用于创建密文,如关于图3B所讨论的),因此在图3A中示出符号P:=0以指示不使用明文值。
认证块302则使用秘密密钥和nonce值来生成认证标签。因此,在仅认证场景中,认证标签T是从完整位长度MAC截断并被追加至由发送器单元生成的原始消息的已编码数据消息。验证块304同样接收四个输入,其中三个输入与发送器单元接收的输入相同(即,nonce值N、AAD和秘密密钥k)。验证块304以与认证块302相同的方式生成另一标签T’,并且还接收由认证块302传送的标签T。因此,验证块304可以通过验证本地生成的标签T’与由认证块302传送的标签T匹配来对已编码数据消息进行验证。如图3A所示,验证块304输出认证指示符“T’==T”,其可以是二元值(例如,逻辑0或1)或者是认证确定的结果的其他合适表示。
现在转到图3B,在这种情况下,已编码数据消息包括密文C和认证标签T。因此,如图3B所示的认证加密块352也可以与如图1所示的发送器单元中的MAC生成单元相关,而认证解密块354可以与接收器单元中的MAC验证单元相关。认证加密块352和认证解密块354可以分别如上面参照图3A所示出和讨论的以与认证块302和验证块304相同的方式起作用。
然而,对于如图3B所示的场景,除了认证标签之外,已编码数据消息(即,如图1所示的完整MAC)还包括密文。如图3B所示的场景可以被称为带关联数据的认证加密(AEAD)通信。因此,在这种情况下,明文P被用于使用秘密密钥和nonce值来生成密文C,然后相比于认证块302,密文C被认证加密块352作为附加输出来传送。认证解密块354接收与验证块304相同的输入,并且还接收密文C。因此,除了认证指示符之外,认证解密块354利用秘密密钥和nonce值对密文C对进行解密,其中,解密结果被作为经认证加密块352加密的原始明文P输出。
III.带关联数据的认证加密(Authenticated Encryption with Associated
Data,AEAD)工作模式的附加细节
上面参照图3B讨论的AEAD工作模式可以根据如上所述的通信协议诸如CAN、CANFD和CAN XL协议来实现。为了便于说明,在本文中关于认证加密伽罗瓦/计数器模式(AES-GCM)-SIV工作模式来进一步详细讨论实施方式,(AES-GCM)-SIV工作模式的常规实现如图4A所示,其形成CAN XL通信协议的一部分。然而,本文讨论的实施方式不限于任何特定的通信协议和/或工作模式,并且可以根据将密钥派生函数(KDF)用作其操作的一部分的任何合适的平台、架构、通信协议、工作模式、应用等来实现。例如,这样的附加通信协议可以包括认证加密伽罗瓦/计数器模式(AES-GCM)-SIV以及具有CBC-MAC工作模式(CCM)的计数器、利用实现ShangMi 4(SM4)密码的工作模式的通信协议、以太网通信协议、任何合适的车载网络协议(例如,诸如10Baset-1s的车载网络)、实现AEAD工作模式的任何合适的通信协议等。
例如,现在转到图4A,图4A示出了常规的认证加密伽罗瓦/计数器模式(AES-GCM)-SIV工作模式,其可以由如图1所示的发送器单元用于生成并发送已编码数据消息。因此,AES-GCM-SIV工作模式利用三个输入,其中,AAD在使用时被例如包括为如图4A所示的消息的一部分。因此,AAD不被用于子密钥的生成,而是被用于认证标签T的生成,如图4C中进一步详细示出的。
在将密文作为包括密文C和认证标签T的已编码数据消息的一部分发送时,图4A中所示的消息可以对应于明文。可替选地,当发送器单元按照上面参照图3A讨论的仅认证工作模式进行工作时,明文可以是静态的或未使用的值,并且在这种情况下,已编码数据消息仅包括认证标签T。
AES-GCM-SIV工作模式根据密钥派生函数(KDF)运作,该密钥派生函数接收用于生成子密钥K1、K2的秘密密钥和nonce值。子密钥K1和K2被用于提供进一步加密,其中根据被称为POLYVAL的多项式评估散列函数来使用子密钥K1,并且根据高级加密标准(AES)将子密钥K2用作对称分组密码的一部分。AES算法输出认证标签和计数器(CTR)值,在CTR(计数器)模式算法(AES-CTR)中,AES将该CTR值与充当密码的子密钥K2结合使用以输出密文。因此,AES-GCM-SIV工作模式利用针对每个已编码数据消息生成的两个子密钥K1、K2。关于根据AES-GCM-SIV工作模式来使用所生成的子密钥的附加细节在图4C中示出。在任何情况下,通过AES-GCM-SIV工作模式生成的已编码数据消息可以包括认证标签T(当在仅认证模式下工作时),或者认证标签T和密文的组合(当在AEAD模式下工作时)。
因此,AES-GCM-SIV工作模式要求针对每次已编码数据消息传输生成子密钥K1、K2以及在接收到已编码数据消息时对其进行解码。这些子密钥是如图4A所示根据KDF生成的。图4B中示出了关于KDF如何使用秘密密钥和nonce值来生成子密钥的示例代码片段。从图4B可以看出,对于长度为128位的秘密密钥,实现4次AES调用,而对于长度为256位的秘密密钥,需要6次AES调用。这些AES调用是AES算法的已知组件,因此本文不提供这方面的附加细节。
在任何情况下,对于AES-GCM-SIV工作模式,AES-GCM-SIV工作模式的常规应用的缺点在于:对于每个nonce(其针对要被编码和发送的每个新消息而被提供,以及在新消息被接收并进行解码时被提供),需要利用KDF根据秘密密钥生成新的子密钥K1和K2。KDF的执行可能需要大量的处理开销,因此在需要发送和接收每个新的已编码数据消息时生成这些新的子密钥可能导致资源的低效使用并使系统延迟增加。对于短的CAN消息尤其如此,因为生成子密钥K1、K2的需求在延迟方面引起不可忽略的开销(特别是对于机动车辆车载实时数据业务)。
IV.示例ECU的实现
图5示出了根据本公开内容的实施方式的电子控制单元(ECU)的框图。如图5所示的ECU 500可以与能够被实现为车辆的一部分的任何合适类型的ECU相关。ECU 500可以包括被实现为本文所讨论的车载E/E架构的一部分的节点和/或主机,并且ECU 500可以使用任何合适数量和/或类型的通信协议以及配套的工作模式与车辆内的其他ECU、主机、节点等通信。例如,ECU 500可以被配置成根据如上所讨论的CAN、CANFD、CAN XL、AES-GCM-SIV工作模式、CCM工作模式、利用实现SM4密码的工作模式的通信协议、以太网通信协议等来接收数据消息和发送已编码数据消息。因此,ECU 500可以被配置成以类似于如本文中参照图1所示出和讨论的发送器单元和接收器单元的方式工作。然而,如下面进一步讨论的,ECU500可以在发送和接收已编码数据消息时有利地利用预先生成的子密钥。
为此,ECU 500包括非易失性存储器(NVM)502,NVM 502被配置成存储用于生成子密钥的秘密密钥。因此,NVM 502可以被实现为具有用于存储秘密密钥值的任何合适大小的任何合适类型的非易失性存储器,秘密密钥值可以表示预定位串或其他合适的已编码数值。可以在制造ECU 500期间将秘密密钥作为生产线过程的一部分写入NVM 502。可选地,可以通过ECU 500或其他合适的设备将秘密密钥写入NVM 502。在本文中,NVM 502被示出和描述为存储单个秘密密钥值,但是这仅是作为示例而非限制,因为在各种实施方式中,NVM502可以存储任何合适数量的秘密密钥。可替选地,秘密密钥可以被存储在ECU 500外部的不同位置中并被传送给ECU 500(未示出)。在任何情况下,秘密密钥对于ECU 500是已知的,然后如本文进一步讨论的,ECU 500使用秘密密钥来促进子密钥的生成和已编码数据消息的安全发送/接收。因此,秘密密钥可以由ECU 500获取或以其他方式对于ECU 500是已知的,但对于外部设备是未知的。
ECU 500还包括任何合适数量N的数据接口505.1至505.N。尽管在图5中示出了三个数据接口505.1、505.2、505.3,但是ECU 500可以包括任何合适数量和/或类型的数据接口,以便于ECU 500各组件之间的数据交换,以及由ECU 500接收数据和由ECU 500传送数据。例如,如图5所示的ECU 500包括被配置成使ECU 500能够接收数据消息的数据接口505.1和被配置成使ECU 500能够发送和/或接收已编码数据消息的数据接口505.3。
ECU 500还包括被配置成使得ECU 500的内部组件彼此之间能够交换数据的数据接口505.2。因此,各种数据接口505可以表示任何合适数量的数据接口,每个数据接口还包括任何合适数量和/或类型的导线、总线和/或相应的端子、端口、引脚等,以根据任何合适数量和/或类型的通信协议实现ECU 500与车辆E/E架构的其他组件、ECU 500的内部组件等之间的通信。本文的实施方式描述了有线通信接口,但是这只是作为示例而非限制,并且将理解的是,本文描述的构思同样适用于无线通信。此外,数据接口505是以示例而非限制的方式示出的,并且ECU 500可以包括附加的、更少的或替选的数据接口,并且/或者可以接收附加的、更少的或替选类型的数据。例如,ECU 500可以通过单独的数据接口和/或通过图5中未示出的数据接口接收附加认证数据(AAD),其可以根据本文讨论的任何合适的通信协议被使用。
如图5所示,可以通过数据接口505.1从ECU 500外部的源接收用于生成已编码数据消息的数据消息。可替选地,可以根据所实现的特定通信协议在ECU 500本地生成数据消息。因此,数据接口505.1是可选的。因此,尽管在本文中可以从在用于生成相应编码的数据消息时被“接收”的方面来描述数据消息,但是将理解的是,如上所述,数据消息可以在作为ECU 500的相关组件的输入的上下文中被接收(例如,通过编码器/解码器504),并且可以在ECU 500内本地生成或者通过外部源来接收。
在认证标签和密文两者要作为相应的已编码数据消息而被生成的情况下,由ECU500接收或生成的数据消息可以包括明文。否则,明文可以是空值或静态值,并且在这种情况下,如上所述,已编码数据消息可以仅对应于认证标签。在任何情况下,ECU 500被配置成针对每个接收到的数据消息生成随后被发送的相应已编码数据消息,如图5所示。如本文进一步讨论的,在每个数据消息中接收的数据被用于执行数据编码,这可以根据本文讨论的任何常规技术来执行,例如根据通过ECU 500实现的任何通信协议所使用的那些技术。根据本文讨论的各种通信协议来生成数据消息是根据每个相应的通信标准通过已知过程来来定义的,因此为了简洁起见,本文不再提供关于数据消息的生成和内容的附加细节。
为了执行所接收的已编码数据消息的数据消息编码和解码,ECU 500还可以包括nonce生成器508,nonce生成器508被配置成针对要传送的每个已编码数据消息生成仅使用一次的数(nonce)值。因此,随着时间的推移,ECU 500可以顺序地接收多个数据消息,每个消息的数据被用于生成由ECU 500传送的相应已编码数据消息。
因此,对于以这种方式接收的每个数据消息,nonce生成器508被配置成:生成(或者ECU 500以其他方式接收)新的唯一nonce值,该nonce值被编码器/解码器504用来执行数据消息编码。同样地,nonce生成器508被配置成:在从另一节点接收到被发送的已编码数据消息时生成新的唯一nonce值,该nonce值被编码器/解码器504用于执行已编码数据消息的解码。因此,如上所述,编码过程可以包括编码器/解码器504生成包括认证标签(并且可选地包括密文)的已编码数据消息,而解码过程则对已编码数据消息进行解码以验证标签(并且可选地对密文进行解密以获得明文)。
为此,nonce生成器508可以包括任何合适数量和/或类型的硬件组件、硬件电路系统、软件或其组合。nonce生成器508可以可替选地形成编码器/解码器504的一部分,或者可以不被包括为ECU 500的一部分。例如,由nonce生成器508提供的功能可以由ECU 500外部的组件提供,其中nonce值由与ECU 500相关的相应数据接口505(例如,通过数据接口505.1)接收。
nonce值可以包括任何合适数目的位,并且可以是对于要由ECU 500传送的每个已编码数据消息是唯一的任何合适类型的数值。nonce值还可以包括任何合适数量的部分,其中图6中示出了这样的被划分的nonce位结构的一个示例。参照图6,nonce值的位长度为N位,并且包括两个不同的部分:静态消息编码值和动态消息编码值。部分的数量以及构成这些部分中的每个部分的数据取决于通过ECU 500实现的特定通信协议。
例如,静态消息编码值可以包括前述安全信道指示符(SCI),其可以在已编码数据消息被作为CANsec安全CAN XL帧的一部分生成时被使用,并且指示ECU 500所属的特定安全区。可替选地,静态消息编码值可以表示任何合适类型的静态值,该静态值可以不必在连续的已编码数据传输中改变。尽管静态消息编码值可以在某些已编码数据传输中改变,但是由于该值通常保持不变而在这种上下文中使用术语静态,因为nonce的该部分通常有助于其他基于安全性和/或基于标识的通信功能。
相比之下,动态消息编码值可以包括任何适当数目的位,这些位对于每个所生成的已编码数据消息是唯一的。因此,在本文中,动态消息编码值可以可替选地被称为每消息编码值。动态消息编码值可以是可配置的,并且根据预定函数来生成,其可以根据由ECU500实现的特定通信协议生成。例如,参照图6,动态消息编码值可以包括如上所述的新鲜度值(FV),其可以根据利用新鲜度值的任何合适的通信协议例如CAN、CANFD、CAN XL、AES-GCM-SIV工作模式等来生成。因此,作为说明性示例,如图6所示的nonce值可以包括作为静态消息编码值的64位SCI和作为动态消息编码值的32位FV。当然,在其他实施方式中,可以实现替选的位长度,以及nonce值内各个位各部分的分配。
ECU 500还包括编码器/解码器504。注意,ECU 500可以:单独作为发送器单元(例如,传送节点)工作以生成并发送已编码数据消息,单独作为接收器单元(例如,接收节点)工作以接收已编码数据消息并对其进行解码,或者作为发送器单元和接收器单元的组合来工作。例如,编码器/解码器504可以与如图1所示的发送器单元中的经修改的MAC生成单元和/或如图1所示的接收器单元中的经修改的MAC验证单元相关。
因此,本文关于执行数据消息编码和数据消息解码两者的功能示出并讨论了ECU500,但是应当理解,ECU 500可以包括用于执行每个相应功能的单独组件(例如,编码器和解码器),或者可替选地包括这些组件的组合,以选择性地彼此独立地实现这两种功能。因此,编码器/解码器504可以表示编码器、解码器或者编码器和解码器两者的组合,以便于ECU根据上述工作模式中的任何一种工作模式来工作。
编码器/解码器504可以包括任何合适数量和/或类型的硬件组件、硬件电路系统、软件或其组合。例如,编码器/解码器504可以通过使用编码器/解码器电路系统504.1根据硬件实现来配置,编码器/解码器电路系统504.1可以包括任何合适数量和/或类型的专用硬件组件,例如微控制器、专用集成电路、现场可编程门阵列(FPGA)、片上系统(SoC)、专用逻辑和/或其他电路系统等。
编码器/解码器504可以附加地或者可替选地包括处理电路504.3,处理电路504.3可以被实现为一个或更多个处理器、核和/或处理电路,并且可以执行存储在程序存储器504.4中的计算机可读指令以执行本文中进一步详细讨论的各种功能。程序存储器504.4可以包括任何合适类型的非暂态计算机可读介质,例如易失性存储器、非易失性存储器或其组合。此外,编码器/解码器504可以被实现为硬件和软件的组合,其中编码器/解码器电路504.1、处理电路504.3和程序存储器504.4共享由编码器/解码器504执行的功能的不同部分。
在任何情况下,编码器/解码器504包括子密钥存储器504.2,子密钥存储器504.2可以包括任何合适类型的非暂态计算机可读介质,例如易失性存储器、非易失性存储器或其组合。子密钥存储器504.2可以包括作为编码器/解码器电路504.1、处理电路504.3和/或程序存储器504.4的一部分而包括的缓存,或者子密钥存储器504.2可以是如图5所示的单独组件。子密钥存储器504.2可以是任何合适的大小,这取决于在特定时间要存储的预生成子密钥的数量。此外,可以根据任何合适类型的可寻址空间来划分或以其他方式组织子密钥存储器504.2。
同样,如上所述,ECU 500可以根据车辆E/E架构来实现,车辆E/E架构利用子密钥来生成已编码数据消息并对已编码数据消息进行解码。因此,根据实施方式,编码器/解码器504被配置成根据密钥派生函数(KDF)生成并存储多个子密钥集K1、K2。这些子密钥集的生成和存储发生在接收数据消息之前,数据消息随后被编码并发送。此外,子密钥集的生成和存储发生在接收已编码数据消息之前,已编码数据消息随后被接收和解码。因此,本文描述的实施方式有利地预生成并存储子密钥,子密钥用于对未来的已编码数据消息发送进行编码和/或对未来对已编码数据消息接收进行解码,从而节省处理开销并解决如上所述的延时问题。用于生成子密钥的KDF可以是根据常规通信协议定义的KDF,例如如上所述并在图4B中示出的伽罗瓦/计数器模式(AES-GCM)-SIV工作模式,但是不限于该特定实现。替代地,编码器/解码器504可以被实现为按照预定义KDF生成子密钥并利用该子密钥的任何合适类型的编码数据消息生成方案的一部分。
为了生成随后被存储在子密钥存储器504.2中的子密钥集,编码器/解码器504将秘密密钥和预定编码值用作针对所生成的多个子密钥集中的每个子密钥集的输入。如上所述,该预定编码值可以对应于与形成nonce值的一部分的动态消息编码值具有相同类型的编码值。因此,生成并存储在子密钥存储器504.2中的子密钥集可以稍后被用于生成已编码数据消息和/或对已编码数据消息进行解码。为此,用于数据消息编码和/或解码的子密钥可以对应于利用下述预定编码值生成的已存储的子密钥集:预定编码值与在未来时间(即,当已编码数据消息被发送或接收时)生成的唯一nonce值中包含的动态消息编码值相匹配。
因此,编码器/解码器504需要关于针对每个唯一生成的nonce值计算每个动态消息编码值的方式的信息。该信息可以通过所实现的特定通信协议来确定和/或以在连续生成的nonce值之间修改动态消息编码值的方式来确定。例如,可以根据任何合适类型的预定函数使动态消息编码值在每个连续的nonce值生成之间偏移,这致使每个连续生成的nonce值包括相对于彼此具有预定偏移值的动态消息编码值。这样的预定偏移值可以形成任何合适类型的可预测且已知的模式,这些模式可以通过由编码器/解码器504使用的预定编码值来复制。
例如,现在转到图7A至图7C,注意,新鲜度值通常以基于计数器的方式生成,即,用于生成新鲜度值的预定函数与基于计数器的增量相符。因此,当以这种方式生成新鲜度值时,用于生成预定编码值的预定函数可以与用于生成新鲜度值的预定函数匹配,其可以包括基于计数器的增量(例如,针对每个新生成的新鲜度值递增1、2、3等)。因此,对于其中动态消息编码值包括新鲜度值的实施方式,对于要被编码和/或解码的每个数据消息,nonce值包括按照预定偏移值相对于先前新鲜度值偏移的新的新鲜度值。该偏移值可以是例如1,在这种情况下,每个新的新鲜度值相对于形成nonce值的一部分的先前生成的新鲜度值递增1。编码器/解码器504被配置成通过根据与在稍后生成、编码、发送、接收、解码等数据消息时使用的偏移模式相同的偏移模式预生成子密钥集K1、K2,来利用这样的预定功能(例如,基于计数器的新鲜度值)的知识。
例如,图7A示出了编码器/解码器504使用以秘密密钥(K)和预定消息编码值(EV)作为输入的KDF生成一组子密钥K1、K2的示例。同样,如上所述,预定消息编码值可以被生成为与动态消息编码值的偏移和模式匹配,并且在一些实施方式中可以包括新鲜度值。因此,针对第一次计算子密钥,示出了初始预定消息编码值EV,其可以构成起始动态消息编码值(例如,起始新鲜度值),编码器/解码器504可以基于先前的已编码数据传输/接收或者根据例如在初始化时使用或定义的初始刷新值来预先知道该起始动态消息编码值。
在任何情况下,编码器/解码器504被配置成使用不同的预定消息编码值来生成任何合适数量的这样的子密钥集K1、K2,每个预定消息编码值根据预定偏移值相对于彼此偏移。尽管在生成子密钥集时ECU 500尚未接收到nonce值,但是该预定偏移值与用于针对每个nonce生成动态消息编码值的偏移值相匹配。
对于图7A所示的示例,假设所生成的子密钥集之间的偏移为1,因为这通常被用于基于计数器的新鲜度值生成。然而,如上所述,实施方式包括:ECU 500基于用于生成连续动态消息编码值的偏移模式的知识,根据对应预定函数来利用任何合适的偏移值。因此,编码器/解码器504可以生成任何合适数量的子密钥集K1(EV)、K2(EV),多达如图7A所示的子密钥集K1(EV+c-1)、K2(EV+c-1),各子密钥集相对于彼此偏移预定偏移值(例如,如图7A至图7C所示的1)。因此,在动态消息编码值是基于计数器(例如,FV)的情况下,预定偏移值包括通过预定函数生成的偏移,所述预定函数输出用于生成每个新的动态消息编码值的相同计数器值。
编码器504然后可以将以这种方式生成的子密钥集存储在子密钥存储器504.2中。为了便于说明,图7B所示的子密钥存储器706可以与图5所示的子密钥存储器504.2相关。如图7B所示,对于子密钥集707.1,每个子密钥集K1、K2可以被存储在存储器中的与编码器504用于生成每个相应子密钥集的相同预定消息编码值相关、被索引或以其他方式被引用的地址位置处。因此,存储在子密钥存储器706中的子密钥集条目的数量与未来动态消息编码值的数量相关,其中子密钥可以被用于对动态消息编码值进行编码。
因此,在接收到要由ECU 500编码和传送的每个数据消息时,编码器/解码器504(充当编码器/发射器)如上所述接收数据消息和对应的nonce值,该nonce值包括针对该特定数据消息的唯一动态消息编码值。编码器/解码器504因此被配置成:使用从子密钥存储器504.2获取的已存储子密钥集之一,来针对每个接收的数据消息和唯一nonce值生成已编码数据消息。被获取并用于生成已编码数据消息的特定子密钥集对应于使用下述预定编码值生成的子密钥集,预定编码值与包括在针对要生成并随后传送的特定已编码数据消息的nonce中的动态消息编码值相匹配。
也就是说,利用编码器/解码器504作为编码器/发射器的工作,当要发送第一已编码数据消息时,如图5所示,编码器/解码器504接收数据消息和包含动态消息编码值的nonce值。然后,代替在此时使用该动态消息编码值来计算子密钥,编码器/解码器504替代地选择如图7B所示的子密钥K1(EV)、K2(EV)的第一组条目,该第一组条目被用于生成要发送的已编码数据消息。然后重复该过程,使得对于每个新的数据消息和对应的nonce值,如图7C所示,使用该nonce值中包括的动态消息编码值来查找存储在子密钥存储器504.2中的子密钥集的可以使用匹配的动态消息编码值来寻址的对应条目。以这种方式,编码器/解码器504可以预先计算每个子密钥,以最小化或至少减少由于KDF所需的处理而引起的延迟。
类似地,并且利用编码器/解码器504作为解码器/接收器的工作,编码器/解码器504可以在接收到已编码数据消息时利用获取(并且还可选地如上所讨论的预先生成)所存储的子密钥集的相同过程,这些子密钥集随后被用于对已编码数据消息进行解码。在接收器侧以这种方式使用所存储的子密钥集可以减少在处理所接收的已编码数据消息期间的等待时间。例如,每次接收要由ECU 500解码的已编码数据消息时,编码器/解码器504如上所述接收已编码数据消息和对应的nonce值,该nonce值包括针对该特定已编码数据消息的唯一动态消息编码值。编码器/解码器504因此被配置成使用从子密钥存储器504.2获取的已存储的子密钥集之一,针对每个接收的已编码数据消息和唯一nonce值生成经解码的数据消息。被获取并用于对已编码数据消息进行解码的特定子密钥集对应于使用下述预定编码值生成的子密钥集:该预定编码值与在针对所接收的特定已编码数据消息的nonce中包括的动态消息编码值相匹配。
由于通信的安全特性,对于每个要编码、发送、接收和解码的数据消息,nonce值都是唯一的,并且随后不应被重复使用。因此,需要注意的是,子密钥存储器504.2在可寻址空间方面可以是小的(例如,1千字节或2千字节或更小),这是因为编码器/解码器504每次使用子密钥集之后可以将其删除,并且可寻址空间被已经使用其他预定编码值生成的新的子密钥集重写。因此,编码器/解码器504被配置成:在使用每个已存储的子密钥集生成对应的已编码数据消息之后,将该子密钥集从存储在子密钥存储器504.2中的那些子密钥集中删除。从子密钥存储器504.2中删除子密钥增加了安全性,同时实现了较小的缓存大小。例如,可以由编码器/解码器504(在充当编码器/发射器的情况下)在从子密钥存储器504.2获取到子密钥集之后、在生成已编码数据消息之后、在发送已编码数据消息之后触发以这种方式进行删除的动作。可替选地,可以例如由编码器/解码器504(在充当解码器/接收器的情况下)在从子密钥存储器504.2获取到子密钥集之后、在对已编码数据消息进行解码之后等触发该删除。
同样,编码器/解码器504可以被配置成使用预先生成的子密钥来生成已编码数据消息和/或经解码的已编码数据消息。编码器/解码器504可以根据利用定义的KDF来生成子密钥以执行安全通信的任何合适的通信协议来这样做。在实施方式中,编码器/解码器504被配置成根据AES-GCM-SIV工作模式来生成已编码数据消息,图8中示出了编码器/发射器实施方式的示例。注意,解码过程可以以包括已知方式的任何合适的方式来执行,例如根据所实现的特定通信协议来执行。这可以同样包括使用AES-GCM-SIV工作模式对已编码消息进行解码。然而,如以上所讨论的,实施方式包括在接收到已编码数据消息时从子密钥存储器504.2获取子密钥,以及在接收到每个已编码数据消息时生成子密钥。
图8所示的架构类似于图4A所示的架构,该架构与如上所述的用于生成和传输已编码数据消息的常规AES-GCM-SIV工作模式和架构相关。然而,对于如图8所示的AES-GCM-SIV工作模式,在接收到新的数据消息和nonce时(在编码/传送的情况下)以及在接收到已编码数据消息时(在解码/接收的情况下)直接使用所存储的(即,所缓存的)子密钥K1、K2,无需在接收每个数据消息/已编码数据消息和nonce时执行耗时的KDF计算处理。同样,当既作为编码器又作为解码器工作时,编码器/解码器504在接收新数据消息时利用包括在每个nonce值中的动态消息编码值,该新数据消息可以是用于生成供传输的已编码数据消息的数据消息或者是接收到的要解码的已编码数据消息。在每种情况下,使用动态消息编码值来识别使用下述KDF生成的相匹配的所缓存的子密钥集:KDF具有与nonce中包括的动态消息编码值匹配的预定编码值。
子密钥存储器706可以被配置成存储任何合适数量的子密钥集。例如,图7B示出了第一子密钥集707.1的结构和内容的示例。然而,子密钥存储器706可以存储任何合适数量的附加子密钥集,其中两个附加子密钥集707.2、707.3被示为非限制性示例以便于说明。在用于传送已编码数据消息的通信协议在E/E车辆架构的各个节点之间利用不同子密钥的多个实例的情况下,以这种方式存储附加子密钥集可能是特别有利的。
例如,子密钥集的多个实例可以用于针对不同的相应安全区对数据消息进行编码和解码,如上文关于图2A至图2B就CAN XL通信协议所讨论的。尽管本文针对这样的不同安全区的实现讨论了使用不同子密钥集,但这是示例而非限制,并且编码器/解码器504可以被配置成根据任何合适的通信协议和/或应用来利用不同的子密钥集707。在任何情况下,编码器/解码器504被配置成根据相应的密钥派生函数(KDF)来生成任何合适数量的子密钥集并将其存储在子密钥存储器504.2中,在各种实施方式中,所述KDF可以是在各种子密钥集707中使用的相同KDF或不同KDF。
被编码器/解码器504用于生成相应子密钥集707.1、707.2、707.3等的KDF可以将秘密密钥和不同的预定编码值用作各个分别生成的子密钥集707的输入。不同的预定值可以包括例如与每个相应的安全区同步的不同新鲜度值或其他合适的唯一值。因此,在这样的配置中,编码器/解码器504被配置成:基于要传送的已编码数据消息的目的地节点,或者可替选地,基于接收到的已编码数据消息的始发节点,从各个已存储的子密钥集中选择一个已存储的子密钥。
例如,可以基于编码器/解码器504已知的预定相关方案将各个子密钥集707.1、707.2、707.3分配至不同的安全区。然后,编码器/解码器504可以根据要发送的已编码消息的目的地(例如,地址)或者可替选地根据所接收的已编码数据消息的源(例如,地址)来识别目的地节点/源节点属于哪个安全区。根据该信息,编码器/解码器504还识别参考哪个已存储的子密钥集707来针对该特定已编码数据消息生成子密钥。可以以与上文针对子密钥集707.1所述的方式相同的方式,即通过使包含在针对要编码的特定数据消息(或要解码的特定已编码消息)的已接收的nonce中的每消息编码值与用于先前生成该特定子密钥集的预定编码值相匹配,来确定要从特定子密钥集707中选择的特定子密钥集。换句话说,在一些实施方式中,编码器/解码器504可以被配置成:基于与要发送的已编码数据消息的目的地或者可替选地与接收到的已编码数据消息的源相关的安全区(或其他合适的信息),使用来自所存储的子密钥集707.1、707.2、707.3等中的任何子密钥集的已存储的子密钥,来生成每个已编码数据消息和/或对每个接收到的已编码数据消息进行解码。注意,单独存储的子密钥集707.1、707.2、707.3等各自所占用的存储器大小可以彼此不同,其可以根据针对每个相应安全区的业务带宽和等待时间要求来选择。
V.示例处理流程
图9示出了根据本公开内容的实施方式的示例处理流程。参照图9,处理流程900可以是由任何合适数量和/或类型的组件执行和/或以其他方式与之相关联的方法,组件例如是一个或更多个处理器(处理电路系统)、硬件组件、执行指令(例如,软件组件)或其组合。这些组件可以与本文讨论的编码器/解码器504的一个或更多个组件和/或本文讨论的ECU500的一个或更多个组件相关联。流程900可以包括为简洁起见而在图9中未示出的替选或附加步骤,并且可以以不同于图9中所示步骤的顺序执行。此外,有些步骤可以是可选的。例如,可以仅执行编码(块906)或仅执行解码(块908)操作。
流程900可以开始于一个或多个更组件生成并存储(块902)多个子密钥集。这可以包括,例如,编码器/解码器504如上所述根据利用秘密密钥和预定编码值的相应KDF来生成子密钥集并将其存储在子密钥存储器504.2中。
流程900还可以包括一个或更多个组件接收(块904)要编码的数据消息和对应的nonce值。这可以包括,例如,编码器/解码器504接收数据消息和nonce值,如上面关于图5所示出和讨论的。nonce值可以包括唯一的每消息编码值,例如新鲜度值。
流程900还可以包括一个或更多个组件基于nonce值、使用所存储的子密钥集之一生成(块906)已编码数据消息。这可以包括,例如,选择使用预定编码值生成的子密钥集,其中该预定编码值与包括在和要传送的已编码数据消息相关的nonce中的每消息编码值相匹配,如本文所述。
流程900还可以包括一个或更多个组件基于nonce值、使用所存储的子密钥集之一对已编码数据消息进行解码(块908)。这可以包括,例如,选择使用预定编码值生成的子密钥集,其中该预定编码值与包括在和所接收的已编码数据消息相关的nonce中的每消息编码值相匹配,如本文所述。
示例
还在以下示例中描述了本公开内容的技术。
示例1.一种与车辆相关的电子控制单元(ECU),所述ECU包括:编码器,其被配置成根据密钥派生函数生成并存储多个子密钥集,所述密钥派生函数将秘密密钥和预定编码值用作针对所生成的多个子密钥集中的每个子密钥集的输入,其中,用于生成多个子密钥集中的每个相应子密钥集的预定编码值中的每个预定编码值按照预定偏移值相对于彼此偏移;以及数据接口,其被配置成:针对要根据通信协议传送的多个已编码数据消息中的每个已编码数据消息,接收仅使用一次的数(nonce)值,所述nonce值的一部分包括每消息编码值,其中,所述编码器还被配置成使用所存储的多个子密钥集中的下述子密钥集生成所述多个已编码数据消息中的每个已编码数据消息:所述子密钥集是使用预定编码值生成的,该预定编码值与包括在和要发送的多个已编码数据消息中的一个已编码数据消息相关的nonce值中的每消息编码值相匹配。
示例2.根据示例1的ECU,其中,所述编码器被配置成根据认证加密伽罗瓦/计数器模式(AES-GCM)-SIV工作模式或ShangMi 4(SM4)密码来生成所述多个已编码数据消息。
示例3.根据示例1至2的任合组合的ECU,其中,所述通信协议包括以下之一:控制器局域网(CAN)通信协议、控制器局域网灵活数据速率(CAN FD)通信协议、控制器局域网超长(CAN XL)通信协议或以太网通信协议。
示例4.根据示例1至3的任何组合的ECU,其中,所述多个子密钥集被存储在缓存中的由用于生成所述多个子密钥集中的每个相应子密钥集的预定编码值标识的地址位置处。
示例5.根据示例1至4的任何组合的ECU,其中,所述预定偏移值包括根据预定函数生成的偏移。
示例6.根据示例1至5的任何组合的ECU,其中,所述预定函数包括通过递增的计数器值生成的偏移。
示例7.根据示例1至6的任何组合的ECU,其中,对于要传送的所述多个已编码数据消息中的每个已编码数据消息,所述nonce值的包括所述每消息编码值的部分包括新鲜度值。
示例8.根据示例1至7的任何组合的ECU,其中,对于要传送的所述多个已编码数据消息中的每个已编码数据消息,所述nonce值的另外的部分包括安全信道指示符(SCI)。
示例9.根据示例1至8的任何组合的ECU,其中,所述编码器还被配置成:在使用所存储的子密钥集生成对应的已编码数据消息之后,将所述子密钥集从所述多个子密钥集中删除。
示例10.根据示例1至9的任何组合的ECU,其中,所述编码器还被配置成:根据另外的密钥派生函数生成并存储另外的多个子密钥集,所述另外的密钥派生函数将所述秘密密钥和另外的预定编码值用作针对所生成的另外的多个子密钥集中的每个子密钥集的输入。
示例11.根据示例1至10的任何组合的ECU,其中,所述编码器还被配置成:基于与要发送的已编码数据消息的目的地相关的安全区,使用所存储的多个子密钥集之一或所存储的另外的多个子密钥集之一来生成所述多个已编码数据消息中的每个已编码数据消息。
示例12.一种与车辆相关的电子控制单元(ECU),所述ECU包括:解码器,其被配置成根据密钥派生函数生成并存储多个子密钥集,所述密钥派生函数将秘密密钥和预定编码值用作针对所生成的多个子密钥集中的每个子密钥集的输入,其中,用于生成多个子密钥集中的每个相应子密钥集的预定编码值中的每个预定编码值按照预定偏移值相对于彼此偏移;以及数据接口,其被配置成:针对要根据通信协议接收的多个已编码数据消息中的每个已编码数据消息,接收仅使用一次的数字(nonce)值,所述nonce值的一部分包括每消息编码值,其中,所述解码器还被配置成使用所存储的多个子密钥集中的下述子密钥集对所述多个已编码数据消息中的每个已编码数据消息进行解码:所述子密钥集是使用预定编码值生成的,该预定编码值与包括在和要发送的多个已编码数据消息中的一个已编码数据消息相关的nonce值中的每消息编码值相匹配。
示例13.根据示例12的ECU,其中,所述解码器被配置成根据认证加密伽罗瓦/计数器模式(AES-GCM)-SIV工作模式或ShangMi 4(SM4)密码来生成多个经解码的数据消息。
示例14.根据示例12至13的任何组合的ECU,其中,所述通信协议包括以下之一:控制器局域网(CAN)通信协议、控制器局域网灵活数据速率(CAN FD)通信协议、控制器局域网超长(CAN XL)通信协议或以太网通信协议。
示例15.根据示例12至14的任何组合的ECU,其中,所述多个子密钥集被存储在缓存中的由用于生成所述多个子密钥集中的每个相应子密钥集的预定编码值标识的地址位置处。
示例16.根据示例12至15的任何组合的ECU,其中,所述预定偏移值包括根据预定函数生成的偏移。
示例17.根据示例12至16的任何组合的ECU,其中,所述预定函数包括通过递增的计数器值生成的偏移。
示例18.根据示例12至17的任何组合的ECU,其中,对于所接收的所述多个已编码数据消息中的每个已编码数据消息,所述nonce值的包括所述每消息编码值的部分包括新鲜度值。
示例19.根据示例12至18的任何组合的ECU,其中,对于所接收的所述多个已编码数据消息中的每个已编码数据消息,所述nonce值的另外的部分包括安全信道指示符(SCI)。
示例20.根据示例12至19的任何组合的ECU,其中,所述解码器还被配置成:在使用所存储的子密钥集生成对应的经解码的数据消息之后,将所述子密钥集从所述多个子密钥集中删除。
示例21.根据示例12至20的任何组合的ECU,其中,所述解码器还被配置成:根据另外的密钥派生函数生成并存储另外的多个子密钥集,所述另外的密钥派生函数将所述秘密密钥和另外的预定编码值用作针对所生成的另外的多个子密钥集中的每个子密钥集的输入。
示例22.根据示例12至21的任何组合的ECU,其中,所述解码器还被配置成:基于与所接收的已编码数据消息的目的地相关的安全区,使用所存储的多个子密钥集之一或所存储的另外的多个子密钥集之一来生成所述多个经解码的数据消息中的每个经解码的数据消息。
结论
尽管本文已经示出和描述了具体实施方式,但是应当理解,为实现相同目的而计算的任何布置都可以代替所示出的具体实施方式。本公开内容旨在涵盖各种实施方式的任何和所有修改或变型。在回顾上述描述后,上述实施方式和本文未具体描述的其他实施方式的组合对于本领域技术人员来说将是明显的。
还应注意的是,本说明书和权利要求书中使用的特定术语可以在非常广泛的意义上进行解释。例如,本文使用的术语“电路”或“电路系统”应在不仅包括硬件,而且还包括软件、固件或其任何组合的意义上进行解释。术语“数据”可以被解释为包括任何形式的表示数据。除了任何形式的数字信息之外,术语“信息”还可以包括其他形式的表示信息。术语“实体”或“单元”在实施方式中可以包括任何设备、装置电路、硬件、软件、固件、芯片或其他半导体,以及协议层的逻辑单元或物理实现等。此外,术语“耦接”或“连接”可以在不仅包括直接耦接而且还包括间接耦接的广义上进行解释。
还应注意,说明书或权利要求书中公开的方法可以由具有用于执行这些方法的每个相应步骤的模块的设备来实现。
尽管本文已经示出和描述了具体实施方式,但是本领域普通技术人员将会理解,在不脱离本公开内容的范围的情况下,可以用各种替选和/或等同实施方式来代替所示出和描述的具体实施方式。本公开内容旨在涵盖本文讨论的特定实施方式的任何修改或变型。
Claims (22)
1.一种与车辆相关的电子控制单元ECU,所述ECU包括:
编码器,其被配置成根据密钥派生函数生成并存储多个子密钥集,所述密钥派生函数将秘密密钥和预定编码值用作针对所生成的多个子密钥集中的每个子密钥集的输入,
其中,用于生成所述多个子密钥集中的每个相应子密钥集的预定编码值中的每个预定编码值,按照预定偏移值相对于彼此偏移;以及
数据接口,其被配置成:针对要根据通信协议发送的多个已编码数据消息中的每个已编码数据消息,接收nonce值,所述nonce值的一部分包括每消息编码值,所述nonce值是仅使用一次的数值,
其中,所述编码器还被配置成使用所存储的多个子密钥集中的下述子密钥集来生成所述多个已编码数据消息中的每个已编码数据消息:该子密钥集是使用与包括在所述nonce值中的每消息编码值相匹配的预定编码值而被生成的,所述nonce值与要发送的多个已编码数据消息中的一个已编码数据消息相关。
2.根据权利要求1所述的ECU,其中,所述编码器被配置成根据认证加密伽罗瓦/计数器模式-SIV工作模式、或ShangMi 4密码,来生成所述多个已编码数据消息。
3.根据权利要求1所述的ECU,其中,所述通信协议包括以下中之一:控制器局域网通信协议、控制器局域网灵活数据速率通信协议、控制器局域网超长通信协议或以太网通信协议。
4.根据权利要求1所述的ECU,其中,所述多个子密钥集被存储在缓存中的由用于生成所述多个子密钥集中的每个相应子密钥集的预定编码值所标识的地址位置处。
5.根据权利要求1所述的ECU,其中,所述预定偏移值包括根据预定函数生成的偏移。
6.根据权利要求5所述的ECU,其中,所述预定函数包括通过递增的计数器值而被生成的偏移。
7.根据权利要求1所述的ECU,其中,对于要发送的所述多个已编码数据消息中的每个已编码数据消息,所述nonce值的包括所述每消息编码值的部分包括新鲜度值。
8.根据权利要求7所述的ECU,其中,对于要发送的所述多个已编码数据消息中的每个已编码数据消息,所述nonce值的另外的部分包括安全信道指示符。
9.根据权利要求1所述的ECU,其中,所述编码器还被配置成:在使用所存储的子密钥集生成相应的已编码数据消息之后,将该子密钥集从所述多个子密钥集中删除。
10.根据权利要求1所述的ECU,其中,所述编码器还被配置成:根据另外的密钥派生函数生成并存储另外的多个子密钥集,所述另外的密钥派生函数将所述秘密密钥和另外的预定编码值用作针对所生成的另外的多个子密钥集中的每个子密钥集的输入。
11.根据权利要求10所述的ECU,其中,所述编码器还被配置成:基于与要发送的已编码数据消息的目的地相关的安全区,使用所存储的多个子密钥集之一或所存储的另外的多个子密钥集之一来生成所述多个已编码数据消息中的每个已编码数据消息。
12.一种与车辆相关的电子控制单元ECU,所述ECU包括:
解码器,其被配置成根据密钥派生函数生成并存储多个子密钥集,所述密钥派生函数将秘密密钥和预定编码值用作针对所生成的多个子密钥集中的每个子密钥集的输入,
其中,用于生成所述多个子密钥集中的每个相应子密钥集的预定编码值中的每个预定编码值,按照预定偏移值相对于彼此偏移;以及
数据接口,其被配置成:针对要根据通信协议接收的多个已编码数据消息中的每个已编码数据消息,接收nonce值,所述nonce值的一部分包括每消息编码值,所述nonce值是仅使用一次的数值,
其中,所述解码器还被配置成使用所存储的多个子密钥集中的下述子密钥集来对所述多个已编码数据消息中的每个已编码数据消息进行解码:该子密钥集是使用与包括在所述nonce值中的每消息编码值相匹配的预定编码值而被生成的,所述nonce值与所接收的多个已编码数据消息中的一个已编码数据消息相关。
13.根据权利要求12所述的ECU,其中,所述解码器被配置成根据认证加密伽罗瓦/计数器模式-SIV工作模式或ShangMi 4密码来生成多个经解码的数据消息。
14.根据权利要求12所述的ECU,其中,所述通信协议包括以下之一:控制器局域网通信协议、控制器局域网灵活数据速率通信协议、控制器局域网超长通信协议或以太网通信协议。
15.根据权利要求12所述的ECU,其中,所述多个子密钥集被存储在缓存中的由用于生成所述多个子密钥集中的每个相应子密钥集的预定编码值所标识的地址位置处。
16.根据权利要求12所述的ECU,其中,所述预定偏移值包括根据预定函数而生成的偏移。
17.根据权利要求16所述的ECU,其中,所述预定函数包括通过递增的计数器值而生成的偏移。
18.根据权利要求12所述的ECU,其中,对于所接收的多个已编码数据消息中的每个已编码数据消息,所述nonce值的包括所述每消息编码值的部分包括新鲜度值。
19.根据权利要求18所述的ECU,其中,对于所接收的多个已编码数据消息中的每个已编码数据消息,所述nonce值的另外的部分包括安全信道指示符。
20.根据权利要求12所述的ECU,其中,所述解码器还被配置成:在使用所存储的子密钥集生成相应的经解码的数据消息之后,将该子密钥集从所述多个子密钥集中删除。
21.根据权利要求12所述的ECU,其中,所述解码器还被配置成:根据另外的密钥派生函数生成并存储另外的多个子密钥集,所述另外的密钥派生函数将所述秘密密钥和另外的预定编码值用作针对所生成的另外的多个子密钥集中的每个子密钥集的输入。
22.根据权利要求21所述的ECU,其中,所述解码器还被配置成:基于与所接收的已编码数据消息的目的地相关的安全区,使用所存储的多个子密钥集之一或所存储的另外的多个子密钥集之一来生成多个经解码的数据消息中的每个经解码的数据消息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/069,396 | 2022-12-21 | ||
US18/069,396 US20240214370A1 (en) | 2022-12-21 | 2022-12-21 | Secure communications using pre-generated subkeys |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118233134A true CN118233134A (zh) | 2024-06-21 |
Family
ID=91434348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311770404.4A Pending CN118233134A (zh) | 2022-12-21 | 2023-12-21 | 电子控制单元 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240214370A1 (zh) |
CN (1) | CN118233134A (zh) |
DE (1) | DE102023133532A1 (zh) |
-
2022
- 2022-12-21 US US18/069,396 patent/US20240214370A1/en active Pending
-
2023
- 2023-11-30 DE DE102023133532.4A patent/DE102023133532A1/de active Pending
- 2023-12-21 CN CN202311770404.4A patent/CN118233134A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240214370A1 (en) | 2024-06-27 |
DE102023133532A1 (de) | 2024-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7215667B1 (en) | System and method for communicating IPSec tunnel packets with compressed inner headers | |
US9596075B2 (en) | Transparent serial encryption | |
JP4659839B2 (ja) | 通信システムにおける信号暗号化/解読装置及び方法 | |
EP3157225B1 (en) | Encrypted ccnx | |
JP5392102B2 (ja) | 無線ネットワークにおいてオーバヘッドを低減する装置及び方法 | |
JP2007140566A (ja) | 効率的なパケット暗号化方法 | |
US20040247126A1 (en) | Wireless network and methods for communicating in a wireless network | |
US10686587B2 (en) | Method for safeguarding the information security of data transmitted via a data bus and data bus system | |
WO2018101488A1 (ja) | セキュアネットワーク通信方法 | |
WO2019120533A1 (en) | Stream ciphering | |
US20120027198A1 (en) | System and method for cryptographic communications using permutation | |
CN113595717A (zh) | Ecb模式分组加密方法和解密方法及控制装置和车辆 | |
Agosta et al. | Cyber-security analysis and evaluation for smart home management solutions | |
CN110832806A (zh) | 针对面向身份的网络的基于id的数据面安全 | |
CN101882991B (zh) | 基于分组密码算法的通讯数据流加密方法 | |
CN118233134A (zh) | 电子控制单元 | |
CN114826748B (zh) | 基于rtp、udp及ip协议的音视频流数据加密方法和装置 | |
US10608822B2 (en) | Efficient calculation of message authentication codes for related data | |
KR102481024B1 (ko) | 데이터 암호화를 위해 수행되는 데이터 처리 방법, 장치, 시스템 및 컴퓨터 프로그램 | |
Quist-Aphetsi et al. | Node to node secure data communication for IoT devices using Diffie-Hellman, AES, and MD5 cryptographic schemes | |
US20040247125A1 (en) | Wireless network and methods for data encryption/decryption in a wireless network | |
JP2009098321A (ja) | 情報処理装置 | |
JP2007519277A (ja) | 安全な間接アドレス指定 | |
KR101558976B1 (ko) | 이더넷 네트워크를 이용한 데이터 송수신 시스템 및 방법 | |
Wang et al. | Unified data authenticated encryption for vehicular communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |