CN112740726B - 一种数据传输方法及装置 - Google Patents
一种数据传输方法及装置 Download PDFInfo
- Publication number
- CN112740726B CN112740726B CN202080005005.7A CN202080005005A CN112740726B CN 112740726 B CN112740726 B CN 112740726B CN 202080005005 A CN202080005005 A CN 202080005005A CN 112740726 B CN112740726 B CN 112740726B
- Authority
- CN
- China
- Prior art keywords
- key
- message
- vehicle
- fresh value
- data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 188
- 230000005540 biological transmission Effects 0.000 title claims abstract description 129
- 230000006854 communication Effects 0.000 claims description 87
- 238000004891 communication Methods 0.000 claims description 86
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 20
- 238000009795 derivation Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 11
- 230000003068 static effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 102100034112 Alkyldihydroxyacetonephosphate synthase, peroxisomal Human genes 0.000 description 2
- 101000799143 Homo sapiens Alkyldihydroxyacetonephosphate synthase, peroxisomal Proteins 0.000 description 2
- 238000000848 angular dependent Auger electron spectroscopy Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/03—Protecting confidentiality, e.g. by encryption
-
- 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
- H04L63/068—Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1475—Passive attacks, e.g. eavesdropping or listening without modification of the traffic monitored
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- 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/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/041—Key generation or derivation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/043—Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
- H04W12/0433—Key management protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/44—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/46—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for vehicle-to-vehicle communication [V2V]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/48—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/12—Detection or prevention of fraud
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W92/00—Interfaces specially adapted for wireless communication networks
- H04W92/16—Interfaces between hierarchically similar devices
- H04W92/18—Interfaces between hierarchically similar devices between terminal devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种数据传输方法及装置,该数据传输方法在应用于第一设备时,该方法包括:在所述第一设备将要发送的消息对应的新鲜值为第一新鲜值时,将加密密钥由第一密钥更新为第二密钥,以及根据所述第一新鲜值和第二密钥,生成第一密钥流;根据所述第一密钥流对第一数据加密,得到加密后的所述第一数据;根据所述加密后的所述第一数据和所述第一新鲜值,生成第一消息;向第二设备发送所述第一消息。
Description
技术领域
本申请涉及智能网联车领域,尤其涉及一种数据传输方法及装置。
背景技术
随着整个车辆行业智能化的不断发展,尤其是自动驾驶或辅助驾驶领域,对车辆行驶过程中数据传输的安全性要求越来越高。在车辆的车载设备之间进行通信的过程中,恶意攻击者可以通过对通信过程中传输的数据进行窃听,修改或重放攻击,严重影响车辆自动驾驶或辅助驾驶的安全性。
目前,车辆中不同的车载设备之间传输数据,并未考虑攻击者对数据的修改或重放攻击,导致数据在车载设备之间传输的安全性较低,难以满足智能汽车的安全性要求。
发明内容
本申请提供一种数据传输方法,用以提高车辆中的不同车载设备之间传输数据的安全性。
第一方面,本申请提供一种数据传输方法,应用于第一设备,其中,第一设备可以是车辆中的车载设备、路侧设备、网络侧设备等,第一设备还可以是第一车载设备、路侧设备、网络侧设备的芯片。第一设备还可以是能够实现车辆与其他设备之间的数据传输的功能或模块。例如,在该方法应用于车内的通信时,第一设备和第二设备可以是同一车辆内的车载设备。在该方法应用于车与车之间的通信时,第一设备和第二设备可以是不同车的车载设备。在该方法应用于车与车之间的通信时,第一设备可以是车辆中的车载设备,也可以是网络侧设备。在该方法应用于车与路侧设备之间的通信时,第一设备可以是车辆中的车载设备,还可以是路侧设备。在该方法应用于路侧设备与路侧设备或者路侧设备与网络侧设备之间的通信时,第一设备可以是车辆中的路侧设备或者网络侧设备。
该方法可以包括:在所述第一设备将要发送的消息对应的新鲜值为第一新鲜值时,将加密密钥由第一密钥更新为第二密钥,以及根据所述第一新鲜值和第二密钥,生成第一密钥流;根据所述第一密钥流对第一数据加密,得到加密后的所述第一数据;根据所述加密后的所述第一数据和所述第一新鲜值,生成第一消息;向第二设备发送所述第一消息。
需要说明的是,第一设备可以在发送第一消息之前,例如,在发送第一消息的前一个消息时,该消息对应的新鲜值为第一新鲜值的前一个新鲜值,第一设备可以将发送完该消息的时刻作为将要发送第一消息的时刻。或者,第一设备可以根据需要,在确定需要发送所述第一消息时,确定此时为将要发送第一消息的时刻。再或者,第一设备还可以在发送所述第一消息之前的预设时长,作为将要发送所述第一消息的时刻。其中,预设时长可以是基于生成第一消息所需的时间确定的,还可以是根据加密密钥由第一密钥更新为第二密钥所需的时间确定的,还可以是根据其他需要确定的,在此不做限定。
通过上述方法,第一设备可以很好的解决新鲜值到达特定值(例如,新鲜值溢出而导致新鲜值返回初始值)后,如果仍然使用原来的密钥推演密钥流,则会出现与历史发送的消息使用相同的密钥流的情况,进而产生安全隐患的问题,从而,有效的提高数据传输的安全性。
一种可能的实现方式,第一设备还可以接收所述第二设备发送的第三消息,所述第三消息中包括用于指示所述第二设备将加密密钥更新为所述第二密钥的指示信息;根据所述第三消息,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥。
通过上述方法,可以使得第一设备基于接收到的第二设备发送的第三消息,确定第二设备已更新为第二密钥,从而,使得第一设备可以更好的对接收到的第二设备的消息,使用对应的与所述第二密钥对应的解密密钥解密,提高了第一设备和第二设备之间传输数据过程中加密和解密的成功率,从而,可以有效降低延迟。
在一些实施例中,第一设备可以在对所述第三消息解密的过程中,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥。例如,第一设备可以是根据所述指示信息,使用与所述第二密钥对应的解密密钥对所述第三消息进行解密,在成功解密所述第三消息时,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥。从而,在第三消息携带待传输的数据时,在第一设备确定第二设备已更新密钥的同时,不影响数据的传输,提高了数据传输的效率和数据传输的性能。
一种可能的实现方式,第一设备还可以根据所述第三消息,删除所述第一密钥。
通过上述方法,在第一设备根据所述第三消息确定第二设备已更新密钥时,第一设备可以删除所述第一密钥,从而,可以降低第一设备的存储空间的占用。
一种可能的实现方式,所述第三消息包括加密后的第三数据、所述第三消息的新鲜值和第一标识,所述指示信息为所述第一标识。
通过上述方法,第一设备可以根据第三消息中携带的第一标识,确定第二设备已更新为第二密钥,从而,在第三消息携带待传输的第三数据时,在第一设备确定第二设备已更新密钥的同时,提高了第一设备对第三数据的接收效果和接收效率,提高了数据传输的效率和数据传输的性能。
一种可能的实现方式,所述第三消息包括:加密后的第三数据和所述第三消息的新鲜值,所述指示信息为满足特定条件的所述第三消息的新鲜值。
通过上述方法,在不改变消息的格式的前提下,第一设备可以根据第三消息中携带的满足特定条件的第三消息的新鲜值,确定第二设备已更新密钥,从而,可以使用对应的与所述第二密钥对应的解密密钥解密,提高了第一设备和第二设备之间传输第三数据过程中加密和解密的成功率,从而,可以有效降低延迟。
一种可能的实现方式,所述特定条件包括:所述第三消息的新鲜值与所述第一设备最后一次接收的来自所述第二设备的消息的新鲜值间隔预设值。
通过上述方法,第一设备可以基于所述第三消息的新鲜值与所述第一设备最后一次接收的来自所述第二设备的消息的新鲜值间隔预设值时,确定第三消息的新鲜值满足特定条件,从而,确定第二设备已更新密钥,在不改变消息的格式的前提下,提高第一设备和第二设备的数据传输效率和安全性。
一种可能的实现方式,第一设备向所述第二设备发送所述第一消息之后,设置切换标识为有效状态;根据所述第三消息和所述切换标识为有效状态,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥;在第一设备将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥之后,第一设备设置切换标识为无效状态。
通过上述方法,考虑到第一设备和第二设备的数据传输过程中,可能出现丢包的情况,为降低第一设备对第三消息的误判,可以在第一设备向所述第二设备发送所述第一消息之后,设置切换标识为有效状态;从而,通过在切换标识为有效状态下接收到的第三消息,基于所述第三消息的新鲜值与所述第一设备最后一次接收的来自所述第二设备的消息的新鲜值间隔预设值时,确定第三消息的新鲜值满足特定条件。而在第一设备将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥之后,第一设备设置切换标识为无效状态。此时,在在切换标识为无效状态下接收到的消息,基于所述消息的新鲜值与所述第一设备最后一次接收的来自所述第二设备的消息的新鲜值间隔预设值时,可以确定该消息可能是丢包导致的。从而,可以更好的提高第一设备和第二设备的数据传输效率和安全性。
一种可能的实现方式,第一设备向所述第二设备发送所述第一消息之后,还可以启动计时器;在所述计时器超时的情况下,第一设备可以将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥。
在一些实施例中,在长时间无法接收到第二设备发送的消息时,即在所述计时器超时的情况下,第一设备可以确定与第二设备达成使用所述第二密钥进行彼此之间收发消息的加解密的默契。因此,此时,第一设备将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥。从而,通过开启计时器的方法,在长时间无法接收到第二设备发送的消息时,避免仍采用第一密钥对应的解密密钥对后续接收到的第二设备的消息进行解密,从而,提高第一设备对第二设备发送的消息的解密的成功率。
一种可能的实现方式,所述方法还包括:在所述计时器超时的情况下,删除所述第一密钥。
通过上述方法,在第一设备可以确定与第二设备达成使用所述第二密钥进行彼此之间收发消息的加解密的默契时(例如,计时器超时的情况下),第一设备可以删除所述第一密钥,从而,可以降低第一设备的存储空间的占用。
一种可能的实现方式,所述方法还包括:在所述计时器不超时的情况下,使用与所述第一密钥对应的解密密钥解密从所述第二设备发送至所述第一设备的消息。
通过上述方法,在第一设备未到达与第二设备达成使用所述第二密钥进行彼此之间收发消息的加解密的默契时(例如,计时器不超时的情况下),第一设备可以使用与所述第一密钥对应的解密密钥解密从所述第二设备发送至所述第一设备的消息,从而,提高第一设备对第二设备发送的消息的解密的成功率。
一种可能的实现方式,所述方法还包括:在所述计时器不超时的情况下,如果使用与所述第一密钥对应的解密密钥不能成功解密从所述第二设备发送至所述第一设备的消息,则使用与所述第二密钥对应的解密密钥解密所述从所述第二设备发送至所述第一设备的消息。
通过上述方法,在使用与所述第一密钥对应的解密密钥不能成功解密从所述第二设备发送至所述第一设备的消息时,通过第二密钥对应的解密密钥进行解密所述从所述第二设备发送至所述第一设备的消息,从而,提高第一设备对第二设备发送的消息的解密的成功率。
一种可能的实现方式,所述方法还包括:接收第二设备发送的第四消息;根据所述第四消息中包括第二新鲜值,将加密密钥由所述第二密钥更新为第三密钥,以及根据所述第一设备将要发送的承载第二数据的第五消息的新鲜值和所述第三密钥,生成第二密钥流;
根据所述第二密钥流对第二数据加密,得到加密后的所述第二数据;根据所述加密后的所述第二数据和所述新鲜值,生成第五消息;向第二设备发送所述第五消息。
考虑到第二设备向第一设备发送消息时,也可能出现该消息的新鲜值到达特定值(例如,第二新鲜值),产生安全隐患的问题,因此,在第二设备向第一设备发送第四消息时,第四消息中的新鲜值为第二新鲜值时,表明,第二设备在根据新鲜值为第二新鲜值时,将加密密钥由第二密钥更新为第三密钥,以及根据所述第二新鲜值和第三密钥,生成的第四消息。因此,第一设备可以基于所述第四消息中包括第二新鲜值,将加密密钥由所述第二密钥更新为第三密钥,在第一设备将要发送下一消息(例如,第五消息)时,第一设备可以基于将要发送的承载第二数据的第五消息的新鲜值和所述第三密钥,生成第五消息。如此,第一设备和第二设备之间还可以在第二设备向第一设备发送消息时,也可能出现的消息的新鲜值到达特定值时,将密钥更新,提高数据传输的安全性。
一种可能的实现方式,在所述接收第二设备发送的第四消息之后,第一设备还可以根据所述第四消息中包括第二新鲜值,使用与所述第三密钥匹配的解密密钥对所述第四消息成功解密。
通过上述方法,在第一设备基于第四消息的新鲜值为第二消息是,可以确定第四消息的密钥为第三密钥。从而,第一设备可以通过第三密钥对应的解密密钥对第四消息进行解密。如此,第一设备和第二设备之间还可以在第二设备向第一设备发送消息时,也可能出现的消息的新鲜值到达特定值时,将密钥更新,提高数据传输的安全性的同时,也提高了第一设备解密第四消息的成功率。
第二方面,本申请提供一种数据传输方法,应用于第二设备;其中,第二设备可以是车辆中的车载设备、路侧设备、网络侧设备等,第二设备还可以是车载设备、路侧设备、网络侧设备的芯片。第二设备还可以是能够实现车辆与其他设备之间的数据传输的功能或模块。例如,在该方法应用于车内的通信时,第二设备和第一设备可以是同一车辆内的车载设备。在该方法应用于车与车之间的通信时,第二设备和第一设备可以是不同车的车载设备。在该方法应用于车与车之间的通信时,第二设备可以是车辆中的车载设备,也可以是网络侧设备。在该方法应用于车与路侧设备之间的通信时,第二设备可以是车辆中的车载设备,还可以是路侧设备。在该方法应用于路侧设备与路侧设备或者路侧设备与网络侧设备之间的通信时,第二设备可以是车辆中的路侧设备或者网络侧设备。
其中,该方法包括:接收来自第一设备的第一消息,所述第一消息包括加密后的第一数据和第一消息的新鲜值;根据所述第一消息的新鲜值为第一新鲜值,将解密密钥由与第一密钥对应的解密密钥更新为与第二密钥对应的解密密钥;根据所述第一新鲜值和所述与第二密钥对应的解密密钥对所述第一消息解密,得到所述第一数据。
通过上述方法,第二设备可以在接收到第一消息中的第一新鲜值时,确定第一消息所用的密钥为第二密钥,从而,在对第一消息解密过程中,可以将解密密钥由与第一密钥对应的解密密钥更新为与第二密钥对应的解密密钥。从而,很好的解决新鲜值到达特定值(例如,新鲜值溢出而导致新鲜值返回初始值)后,使用新的密钥对接收到的消息进行解密,保证与历史发送的消息使用不同的密钥流的情况,从而,有效的提高数据传输的安全性。
一种可能的实现方式,所述方法还包括:根据所述第一消息的新鲜值为第一新鲜值,将加密密钥由所述第一密钥更新为所述第二密钥;向第一设备发送第三消息,所述第三消息包括使用所述第二密钥加密的第三数据。
在一些实施例中,第二设备可以直接使用所述第二密钥对第三数据加密,从而生成加密的第三数据。在另一些实施例中,第二设备可以也可以是使用所述第二密钥和第三消息的新鲜值生成第三密钥流,再用第三密钥流对第三数据加密。在此不做限定。
通过上述方法,第二设备在接收到第一消息后,可以加密密钥由所述第一密钥更新为所述第二密钥;从而,在生成第三消息时,可以使用更新后的第二密钥,对第三数据进行加密。从而,保证第一设备更新为第二密钥发送第一消息后,第二设备可以基于更新后的第二密钥对发送的第三消息进行加密,从而,提高了第一设备和第二设备之间传输数据过程中加密和解密的成功率,从而,可以有效降低延迟。
一种可能的实现方式,所述第三消息还包括用于指示所述第二设备将加密密钥更新为所述第二密钥的指示信息。
通过上述方法,第二设备可以在第三消息携带待传输的数据时,携带指示信息,从而,可以在第一设备接收到第三消息后,通过指示信息确定第二设备已更新密钥,使得第一设备可以基于更新后的第二密钥对应的解密密钥对第三消息进行解密,提高了数据的传输效率和数据传输的安全性。
一种可能的实现方式,所述第三消息还包括第一标识,所述指示信息为所述第一标识。
通过上述方法,第二设备可以在第三消息中携带第一标识,用于指示第二设备已更新密钥,提高了第一设备对第三数据的接收效果和接收效率。
一种可能的实现方式,所述第三消息还包括所述第三消息的新鲜值,所述指示信息为满足特定条件的所述第三消息的新鲜值。
通过上述方法,第二设备可以在第三消息中携带满足特定条件的第三消息的新鲜值,在不改变消息的格式的情况下,发送指示信息,节省消息的开销。
一种可能的实现方式,所述特定条件包括:所述第三消息的新鲜值与所述第二设备最后一次向所述第一设备发送的消息的新鲜值间隔预设值。
通过上述方法,第二设备可以将第三消息的新鲜值设置为与所述第二设备最后一次向所述第一设备发送的消息的新鲜值间隔预设值,从而,使得第二设备在接收到第三消息后,根据第三消息中的新鲜值与所述第一设备最后一次接收到的消息的新鲜值间隔预设值时,可以确定第三消息中的新鲜值满足特定条件,从而,确定第二设备已更新密钥,进而,可以使用对应的与所述第二密钥对应的解密密钥解密,提高了第一设备和第二设备之间传输第三数据过程中加密和解密的成功率,从而,可以有效降低延迟。
第三方面,本申请提供一种数据传输装置,该装置可以为第一设备。该数据传输装置可以包括:通信单元、加密单元和密钥更新单元。可选的,该数据传输装置还可以包括解密单元。其中,密钥更新单元,用于在第一设备将要发送的消息对应的新鲜值为第一新鲜值时,将加密密钥由第一密钥更新为第二密钥;加密单元,用于根据所述第一新鲜值和第二密钥,生成第一密钥流;根据所述第一密钥流对第一数据加密,得到加密后的所述第一数据;生成单元,用于根据所述加密后的所述第一数据和所述第一新鲜值,生成第一消息;通信单元,用于向第二设备发送所述第一消息。
一种可能的实现方式,所述通信单元,还用于接收所述第二设备发送的第三消息,所述第三消息中包括用于指示所述第二设备将加密密钥更新为所述第二密钥的指示信息;所述密钥更新单元,还用于根据所述第三消息,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥。
一种可能的实现方式,所述密钥更新单元,还用于根据所述第三消息,删除所述第一密钥。
一种可能的实现方式,所述第三消息包括加密后的第三数据、所述第三消息的新鲜值和第一标识,所述指示信息为所述第一标识。
一种可能的实现方式,所述第三消息包括:加密后的第三数据和所述第三消息的新鲜值,所述指示信息为满足特定条件的所述第三消息的新鲜值。
一种可能的实现方式,所述特定条件包括:所述第三消息的新鲜值与所述第一设备最后一次接收的来自所述第二设备的消息的新鲜值间隔预设值。
一种可能的实现方式,所述通信单元向所述第二设备发送所述第一消息之后,所述密钥更新单元,还用于设置切换标识为有效状态;根据所述第三消息和所述切换标识为有效状态,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥;在所述将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥之后,设置切换标识为无效状态。
一种可能的实现方式,所述通信单元向所述第二设备发送所述第一消息之后,所述密钥更新单元,还用于启动计时器;在所述计时器超时的情况下,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥。
一种可能的实现方式,所述密钥更新单元,还用于在所述计时器超时的情况下,删除所述第一密钥。
一种可能的实现方式,所述装置还包括解密单元;所述解密单元,用于在所述计时器不超时的情况下,使用与所述第一密钥对应的解密密钥解密从所述第二设备发送至所述第一设备的消息。
一种可能的实现方式,所述解密单元,还用于在所述计时器不超时的情况下,如果使用与所述第一密钥对应的解密密钥不能成功解密从所述第二设备发送至所述第一设备的消息,则使用与所述第二密钥对应的解密密钥解密所述从所述第二设备发送至所述第一设备的消息。
一种可能的实现方式,所述通信单元,还用于接收第二设备发送的第四消息;向第二设备发送第五消息;所述密钥更新单元,还用于根据所述第四消息中包括第二新鲜值,将加密密钥由所述第二密钥更新为第三密钥;所述加密单元,还用于根据所述第二设备将要发送的承载第二数据的第五消息的新鲜值和所述第三密钥,生成第二密钥流;根据所述第二密钥流对第二数据加密,得到加密后的所述第二数据;所述生成单元,还用于根据所述加密后的所述第二数据和所述新鲜值,生成所述第五消息。
一种可能的实现方式,所述装置还包括解密单元;在所述通信单元接收第二设备发送的第四消息之后,所述解密单元,还用于根据所述第四消息中包括第二新鲜值,使用与所述第三密钥匹配的解密密钥对所述第四消息成功解密。
第四方面,本申请提供一种数据传输装置,该装置可以为第二设备。该装置包括通信单元、解密单元和密钥更新单元。可选的,该数据传输装置还可以包括加密单元。其中,通信单元,用于接收来自第一设备的第一消息,所述第一消息包括加密后的第一数据和第一消息的新鲜值;密钥更新单元,用于根据所述第一消息的新鲜值为第一新鲜值,将解密密钥由与第一密钥对应的解密密钥更新为与第二密钥对应的解密密钥;解密单元,用于根据所述第一新鲜值和所述与第二密钥对应的解密密钥对所述第一消息解密,得到所述第一数据。
一种可能的实现方式,所述密钥更新单元,还用于根据所述第一消息的新鲜值为第一新鲜值,将加密密钥由所述第一密钥更新为所述第二密钥;所述通信单元,还用于向第一设备发送第三消息,所述第三消息包括使用所述第二密钥加密的第三数据。
一种可能的实现方式,所述第三消息还包括用于指示所述第二设备将加密密钥更新为所述第二密钥的指示信息。
一种可能的实现方式,所述第三消息还包括第一标识,所述指示信息为所述第一标识。
一种可能的实现方式,所述第三消息还包括所述第三消息的新鲜值,所述指示信息为满足特定条件的所述第三消息的新鲜值。
一种可能的实现方式,所述特定条件包括:所述第三消息的新鲜值与所述第二设备最后一次向所述第一设备发送的消息的新鲜值间隔预设值。
第五方面,本申请提供一种数据传输装置,包括处理器和通信接口,所述通信接口用于接收来自除所述数据传输装置以外的其它通信装置的信号并传输至处理器或将来自处理器的信号发送给除所述数据传输装置以外的其它通信装置;所述处理器通过逻辑电路或执行代码指令用于实现如上述第一方面中任一项所述的方法、或实现如上述第二方面中任一项所述的方法。
第六方面,本申请提供一种数据传输装置,该装置可以包括处理器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得装置执行如上述第一方面中任一项所述的方法、或实现如上述第二方面中任一项所述的方法。
第七方面,本申请提供一种车辆,该车辆包括如上述第三方面或第五方面任意所述的数据传输装置,或者包括如上述第四方面或第六方面任意所述的数据传输装置。
第八方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序被运行时,实现如上述第一方面中任一项所述的方法或实现如上述第二方面中任一项所述的方法。
第九方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序或指令,当所述计算机程序或指令被通信装置执行时,实现如上述第一方面中任一项所述的方法、或实现如上述第二方面中任一项所述的方法。
第十方面,本申请提供一种芯片,该芯片可以包括处理器和接口,处理器用于通过接口读取指令,以执行如上述第一方面中任一项所述的方法、或实现如上述第二方面中任一项所述的方法。
上述第二方面至第十方面的有益效果,具体请参照上述第一方面或第二发明中相应可能的实现方式中可以达到的技术效果,这里不再重复赘述。
附图说明
图1为本申请实施例适用的一种E/E架构;
图2为本申请实施例提供的一种数据传输方法的流程示意图;
图3a-图3b为本申请实施例提供的一种加密的示意图;
图4为本申请实施例提供的一种消息的结构示意图;
图5为本申请实施例提供的一种数据传输方法的流程示意图;
图6为本申请实施例提供的一种数据传输方法的流程示意图;
图7为本申请实施例提供的一种数据传输方法的流程示意图;
图8为本申请实施例提供的一种数据传输装置的结构意图;
图9为本申请实施例提供的一种数据传输装置的结构示意图;
图10申请实施例提供的一种数据传输装置的结构意图;
图11申请实施例提供的一种数据传输装置的结构示意图。
具体实施方式
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
一、重放攻击
重放攻击(replay attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。
重放攻击的基本原理:把以前窃听到的数据重新发送给接收方。例如,系统会将鉴别信息进行简单加密后进行传输,这时攻击者虽然无法窃听密码,但可以首先截取加密后的口令然后将其重放,从而利用这种方式进行有效的攻击。
二、密钥流
由一个短的随机密钥(也称实际密钥或种子密钥)生成一个长的密钥流,用这个长的密钥流对明文加密或对密文解密,从而使一个短的密钥可用来加密更长的明文或解密更长的密文的目的。短的随机密钥可以是发送方和接收方协商后确定的密钥,也可以是根据接收方的标识对应设置的密钥,也可以是根据发送方的标识对应设置的密钥,在此不做限定。在本申请中,发送方和接收方可以为车载设备。
三、异或运算(exclusive OR,xor)
异或的数学符号为“⊕”。如果a、b两个值不相同,则异或结果为1;如果a、b两个值相同,异或结果为0。
四、最低有效位(least significant bit,LSB)
LSB指一个二进制数字中的第0位(即最低位),具有权值为20。在大端序(Big-Endian)的场景中,即高位字节放在内存的低地址,低位字节放在内存的高地址时,LSB指最右端的位。
五、最高有效位(most significant bit,MSB)
MSB指一个n位二进制数字中的n-1位,具有最高的权值2(n-1)。MSB和LSB是相对应的概念。在大端序中,MSB指最左端的位。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。在本申请的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本申请的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块。方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。
图1是本申请实施例可应用的一种通信系统的架构示意图。该通信系统以电子电气(electronic and electrical,E/E)系统为例。该通信系统可包括网关、域控制器、电子控制单元(electronic control unit,ECU)和至少一条控制器局域网络(controller areanetwork,CAN)总线协议总线。该通信系统可根据功能分为多个不同的域,每个域可包括至少一个域控制器,每个域控制器用于管理域内连接到的一条或多条CAN总线上关联的多个ECU。如图1所示,域控制器1用于管理域内连接到整车控制系统CAN总线上的多个ECU,域控制器2用于管理域内连接到娱乐系统CAN总线上的多个ECU,域控制器3用于管理域内连接到诊断系统CAN总线上的多个ECU,域控制器4用于管理域内连接到智能驾驶系统CAN总线上的多个ECU。域控制器也可以为ECU。该通信系统中的各个域控制器归属于网关。如图1所示,域控制器1、域控制器2、域控制器3和域控制器4分别归属网关。例如,网关用于将该通信系统外的ECU与该通信系统隔离,且可实现该通信系统内各ECU之间协议的转换。其中,网关也可以为ECU。图1仅是示意图,该通信系统中还可以包括其它设备,如还可以包括中继设备,在图1中未画出。本申请对该通信系统中包括的网关、域控制器和连接到各类CAN总线的ECU的数量不做限定。
上述通信系统可以包括具备通信功能的车辆,车载设备、无人驾驶中的无线终端、车内网芯片等。本申请对该通信系统所应用的场景不做限定。需要说明的是,本申请所描述的系统架构以及应用场景是为了更加清楚的说明本申请的技术方案,并不构成对本申请提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新场景的出现,本申请提供的技术方案对于类似的技术问题,同样适用。
本申请中的车载设备,可以是放置或安装在车辆上的设备或模块。对于能够执行自动驾驶功能的车辆来说,可以通过传感器等车载设备采集的信息经过ADAS系统、移动数据中心(mobile data center,MDC)等处理后实现驾驶决策。
另外,一辆车的车内网络包括的多个ECU也可以认为是车载设备。车辆内的传感器等车载设备采集的信息还可以通过ECU对数据处理后,再发送给ADAS系统的处理器或MDC的处理器进行处理。再比如,车载设备还可以为网关控制器(gateway controller),网关控制器作为整车网络的数据交互枢纽,可将车载控制器局域网络(controller area network,CAN)、局域互联网络(local interconnect network,LIN)、面向媒体的系统传输(mediaoriented system transport,MOST)、车载网络FlexRay等网络数据在不同网络中进行路由。可以通过网关控制器独立设置,以提高整车拓扑结构的可扩展性、整车的安全性,以及整车网络数据的保密性。举例来说,网关控制器可以为车载智能终端(telematics BOX,T-BOX),主要用于车与车联网服务平台之间的通信,可以包括车载诊断(on-boarddiagnostics,OBD)、微控制单元(microcontroller unit,MCU)/中央处理器(centralprocessing unit,CPU)、存储器、通信接口等模块。车辆内部的各个器件或模块与CAN总线相连,实现指令和信息的传递;车辆外部通过云平台与终端设备实现互联,实现车内外信息交互。
需要说明的是,本申请实施例可应用的通信系统不局限于图1所示的基于E/E架构的车内网通信系统,也可以是基于其它架构形式的车内网通信系统,还可以是车外网通信系统,例如车与车之间、车与网络侧设备之间、车与路侧设备之间、路侧设备与路侧设备之间或者路侧设备与网络侧设备之间的通信。
本申请的一种可能的场景,可以是在车辆中的车载设备之间的数据传输,该数据传输可以是通过例如CAN总线进行有线传输,也可以是无线传输,在此不做限定。举例来说,第一车载设备与第二车载设备之间进行传输数据。第一车载设备可以是车载摄像头,第二车载设备可以是移动数据中心MDC,传输的数据可以是视频图像数据。考虑到第一车载设备与第二车载设备之间传输的数据可能是用于自动驾驶等场景的媒体数据,因此,对第一车载设备与第二车载设备之间传输的数据的安全性要求较高,需要对数据的完整性和数据的安全性进行验证。另外,考虑到自动驾驶对时延的要求,第一车载设备向第二车载设备传输的媒体数据的数据量较大,数据的传输速率也很高,对数据的安全性验证的要求也进一步提高。
一种可能的实现方式,可以为车载设备设置每个车载设备发送消息时的新鲜值。例如,第一车载设备的新鲜值可以用于记录第一车载设备向第二车载设备发送消息的次数,第二车载设备的新鲜值可以用于记录第二车载设备向第一车载设备发送消息的次数。在一些实施例中,第一车载设备的本地维护有计数器,该计数器用于记录第一车载设备发送消息的次数。例如,第一车载设备发送一个第一消息,第一车载设备计数器对第一车载设备的新鲜值加1。例如,第一车载设备在发送第一消息时,可按照时序为不同的第一消息分配相应的新鲜值。比如,按照时序,第一车载设备发送的第一消息,分别为消息A、消息B和消息C。第一车载设备可为消息A分配消息A新鲜值00000000。第一车载设备可为消息B分配消息B的新鲜值00000001。第一车载设备可为消息C分配消息C的新鲜值00000010。
第一车载设备通过第一消息的新鲜值和密钥(例如前述的种子密钥)确定密钥流,并通过密钥流对第一数据进行加密,得到加密后的第一数据,将加密后的第一数据和第一消息的新鲜值生成第一消息,将第一消息传输至第二车载设备,从而可以使得每次第一车载设备发送的第一消息使用的密钥流不同,提高第一车载设备传输加密数据的安全性,降低第一车载设备传输的第一消息被窃听篡改的可能。即便加密后的第一数据被攻击者窃取,也不能解密出第一数据。
另外,第二车载设备可以根据接收到的第一消息中的新鲜值,与本地存储的最后一次接收到的第一消息中的新鲜值进行比对,确定当前接收到的第一消息是否为重放消息。举例来说,以第一车载设备的新鲜值为按照发送消息的次数递增的场景为例,若当前接收的第一消息中的新鲜值比第二车载设备本地保存的最后一次接收到的第一消息的新鲜值高,或者第一消息中的新鲜值与第二车载设备本地保存的最后一次接收到的第一消息的新鲜值为顺序递增的关系,则第二车载设备认为当前接收到的第一消息未被篡改。例如,第二车载设备接收到消息A时,可保存消息A的新鲜值00000000。在接收到消息B时,可首先验证消息B的新鲜值01是否比保存的新鲜值00000000高。如果高,证明当前接收的消息B是新鲜的。否则,认为当前接收的消息B是不新鲜的,有人非法的将已经传输过的消息(例如消息A)重新发送了一遍,上述过程即重放攻击的过程。通过在第一消息中添加新鲜值,可防止重放攻击,提高数据的安全性。
然而,新鲜值的长度是有限的(通常为24比特),当第一消息的新鲜值到达第一新鲜值后,第一消息的新鲜值与历史中第一消息的新鲜值发生重复。其中,第一新鲜值可以是新鲜值的可选范围内的一个或多个特定值。例如,第一新鲜值可以为新鲜值的初始值。此时,由于新鲜值溢出而导致新鲜值返回初始值(例如,新鲜值为序列号时,序列号发生翻转)时,如果仍然使用原来的密钥推演密钥流,则会出现与历史发送的消息使用相同的密钥流的情况,进而产生安全隐患。尤其是在车载有线传输场景中,由于传输速率很高,新鲜值溢出返回初始值的频率会更快,以10Gbps的速率估算,假设新鲜值为24bit,则每秒发送的数据包个数为500000,即每33.56秒新鲜值就会溢出返回初始值一次。
基于此,本申请实施例中,以第一车载设备发送第一消息为例,第一车载设备发送第一消息之前,使用第一密钥生成用于加密待发送数据的密钥流,相应的,第二车载设备根据第一密钥对接收到的第一消息进行解密。在第一车载设备确定即将发送的第一消息对应的新鲜值为第一新鲜值时,使用更新后的第二密钥(第二密钥不同于第一密钥)对待发送给第二车载设备的第一数据加密,并根据加密后的第一数据和第一新鲜值,生成第一消息。第二车载设备在接收到第一消息后,根据第一消息的新鲜值为第一新鲜值,确定使用更新的第二密钥对第一消息解密。
以第一消息的新鲜值为8比特,初始值设置为00000000为例,在第一车载设备每次向第二车载设备发送一个数据包时,第一消息的新鲜值累加一次,例如,第一车载设备向第二车载设备发送第1个数据包时,第一消息的新鲜值为00000000。第一车载设备向第二车载设备发送第2个数据包时,第一消息的新鲜值为00000001。第一车载设备向第二车载设备发送第28个数据包时,第一消息的新鲜值为11111111。即在第一消息的新鲜值未再次到达00000000之前,第一车载设备使用第一密钥进行加密操作从而生成第一消息,第二车载设备使用第一密钥进行解密操作从而解析第一消息。在第一车载设备向第二车载设备发送下一个数据包时,第一消息的新鲜值将再次为00000000,即第一消息的新鲜值到达第一新鲜值。此时,第一车载设备使用更新后的第二密钥进行加密操作从而生成第一消息,第二车载设备使用更新后的第二密钥进行解密操作从而解析第一消息。
相应的,第二车载设备向第一车载设备发送第二消息为例,第二车载设备发送第二消息之前,使用第三密钥生成用于加密待发送数据的密钥流,相应的,第一车载设备根据第三密钥对接收到的第二消息进行解密。在第二车载设备确定即将发送的第二消息对应的新鲜值为第二新鲜值时,使用更新后的第四密钥(第四密钥不同于第三密钥)对待发送给第一车载设备的第二数据加密,并根据加密后的第二数据和第二新鲜值,生成第二消息。第一车载设备在接收到第二消息后,根据第二消息的新鲜值为第二新鲜值,确定使用更新的第四密钥对第二消息解密。
通过上述方法,可以很好的解决新鲜值到达特定值后,仍沿用原密钥导致存在安全隐患的问题。
第一车载设备用于加密待发送数据的密钥(包括第一密钥、第二密钥)与第二车载设备用于加密待发送数据的密钥(包括第三密钥、第四密钥),可能是第一车载设备与第二车载设备各自维护的两套密钥(场景1),也可能是第一车载设备与第二车载设备共同维护的同一套密钥(场景2)。下面分别对场景1和场景2进行详细说明。
场景1,第一密钥更新为第二密钥仅由第一消息的新鲜值变为所述第一新鲜值触发,第三密钥更新为第四密钥仅由第二消息的新鲜值变为所述第二新鲜值触发。从而,保证了在第一车载设备和第二车载设备各自待发送消息对应的新鲜值到达特定值时,第一车载设备采用第二密钥发送数据,第二车载设备采用第四密钥发送数据。从而保证密钥流不会随着新鲜值的重复而重复,提高第一车载设备和第二车载设备之间传输数据的安全性。
场景2,第一车载设备与第二车载设备互相发送消息时使用共同维护的一套密钥进行加解密操作,第一车载设备发送的第一消息的新鲜值变为所述第一新鲜值,以及第二车载设备发送的第二消息的新鲜值变为所述第二新鲜值,两个触发事件中任何一个事件发生,都会导致第一车载设备与第二车载设备对所述共同维护的密钥进行更新。
例如,在时刻1之前,第一车载设备与第二车载设备基于第一密钥进行彼此之间收发消息的加解密。在时刻1,第一车载设备确定即将向第二车载设备发送第一消息对应的新鲜值再次变为第一新鲜值时,则第一车载设备将生成第一消息使用的密钥由第一密钥更新为第二密钥,然后将第一消息发送给第二车载设备。假设在时刻1与时刻2之间,第一车载设备与第二车载设备之间没有消息交互,第一车载设备与第二车载设备达成使用所述更新后的第二密钥进行彼此之间收发消息的加解密的默契。在时刻2,第二车载设备确定即将向第一车载设备发送第二消息对应的新鲜值再次变为第二新鲜值时,则第二车载设备将生成第二消息使用的密钥由第二密钥更新为第三密钥,然后将第二消息发送给第一车载设备。基于第二消息中的新鲜值为第二新鲜值和所述更新后的第三密钥,在时刻2之后,第一车载设备与第二车载设备达成使用所述更新后的第三密钥进行彼此之间收发消息的加解密的默契。
下面具体介绍本申请实施例中的密钥的生成方式。
在场景1中,第一车载设备更新第一密钥仅依赖于第一消息的新鲜值到达第一新鲜值,第二车载设备更新第三密钥仅依赖于第二消息的新鲜值到达第二新鲜值。
在一些实施例中,可以将车辆启动或者车辆初始化时,存储的第一车载设备向第二车载设备发送数据的初始密钥作为第一车载设备向第二车载设备发送数据时第1次到达特定值之前的第一密钥(即第一消息的新鲜值未到达过第一新鲜值的密钥)。该第0次更新的第一密钥可以是预先设置的密钥,也可以是在车辆启动时第一次生成的密钥,在此不做限定。
在一些实施例中,可以将车辆启动或者车辆初始化时,存储的第二车载设备向第一车载设备发送数据的初始密钥作为第二车载设备向第一车载设备发送数据时第1次到达特定值之前的第三密钥(即第二消息的新鲜值未到达过第二新鲜值时的密钥)。该第0次更新的第三密钥可以是预先设置的密钥,也可以是在车辆启动时第一次生成的密钥,在此不做限定。
本申请实施例中,确定更新后的密钥的方式可以有多种,下面以方式A和方式B举例说明生成第二密钥的方式,生成第四密钥的方式可以参考生成第二密钥的方式,在此不再赘述。
方式A,第一车载设备根据旧密钥,更新在第一消息生成时用于加密操作的新密钥(第二密钥),第二车载设备根据旧密钥,更新在解析第一消息时用于解密操作的新密钥(第二密钥)。
方式A1,考虑到推演新的密钥需要一定的时间,因此,在生成第二密钥的过程中,第一车载设备和第二车载设备可以在距离第一消息的新鲜值到达第一新鲜值之前,提前一定时间生成第二密钥。相应的,在更新第三密钥为第四密钥的过程中,第一车载设备和第二车载设备可以在距离第二消息的新鲜值到达第二新鲜值之前,前一定时间生成第四密钥。
举例来说,可以设置在第一阈值为一个特定的新鲜值,例如,10000000。当第一车载设备确定第一新鲜值为10000000时,可以确定第一消息的新鲜值即将到达第一新鲜值。相应的,在第二新鲜值到达第二阈值时,确定第二消息的新鲜值即将到达第二新鲜值,此时,可以启动更新密钥的步骤。需要说明的是,第一阈值可以根据第一新鲜值的取值范围及第一新鲜值的更新频率确定,第二阈值也可以第二新鲜值的取值范围及第二新鲜值的更新频率确定。当然,还可以根据其他方式确定,在此不做限定。
在一些实施例中,可以根据密钥推演算法对当前使用的第一密钥进行推演,得到更新后的第二密钥。此处,密钥推演算法可为第一车载设备与第二车载设备预先约定的。例如,密钥推演算法可为密钥导出函数(key derivation function,KDF)。可选地,密钥推演算法中还可以包括第一参数,其中,第一参数可以包括更新密钥的次数、CAN标识和ECU标识中的一个或多个,当然,还可以包括其他参数,例如第一车载设备或第二车载设备的认证凭证等参数。其中,CAN标识为第一车载设备连接的CAN总线的标识,结合上述图1,若第一车载设备为连接于整车控制系统CAN总线上的ECU,则CAN的标识即为整车控制系统CAN总线的标识;若第一车载设备为连接于诊断系统CAN总线上的ECU,则CAN的标识即为诊断系统CAN总线的标识。ECU的标识可以唯一的标识一个ECU,即第一车载设备的标识。
需要说明的是,在具体实施过程中,第二密钥可以根据当前使用的第一密钥生成,也可以根据历史上使用过的至少一个其他旧密钥。当然,还可以通过其他方式生成第二密钥,在此不做限定。仅需保证第一车载设备生成第二密钥的方式与第二车载设备生成第二密钥的方式相同即可。
方式A2,为节省第一车载设备和第二车载设备推演密钥所需的资源,密钥也可以是在第一车载设备和第二车载设备中预置的。即可以预先确定一组有序的密钥,并预先配置在第一车载设备和第二车载设备中。在第一车载设备或第二车载设备需要更新密钥时,依次从所述预先配置的一组有序的密钥中选择新的密钥。
可选的,第一车载设备可以在确定使用第二密钥加密第一消息中的第一数据后,将第一密钥删除。第一车载设备删除了第一密钥后,第一车载设备可以根据当前使用的第二密钥作为第一消息的新鲜值未到达下一次第一新鲜值时的第一密钥,对数据进行加密,直至下一次第一消息的新鲜值到达第一新鲜值时,再执行使用下一次更新的第二密钥对第一数据加密生成第一消息的步骤,以减少第一车载设备的开销。
相应的,第二车载设备在确定使用第二密钥解密成功第一消息中的第一数据后,可以将第一密钥删除。第二车载设备删除了第一密钥后,第二车载设备可以根据当前使用的第二密钥作为第一消息的新鲜值未到达下一次第一新鲜值时的第一密钥,对接收到的第一消息中的第一数据进行解密,直至下一次第一消息的新鲜值到达第一新鲜值时,再执行使用下一次更新的第二密钥对第一消息中的第一数据解密的步骤,以减少第二车载设备的开销。
可选的,第二车载设备可以在确定使用第四密钥加密第二消息中的第二数据后,将第三密钥删除。第二车载设备删除了第三密钥后,第二车载设备可以根据当前使用的第四密钥作为第二消息的新鲜值未到达下一次第二新鲜值时的第三密钥,对数据进行加密,直至下一次第二消息的新鲜值到达第二新鲜值时,再执行使用下一次更新的第四密钥对第二数据加密生成第二消息的步骤,以减少第二车载设备的开销。
第一车载设备可以在确定使用第四密钥进行解密成功来自第二车载设备的消息后,将第三密钥删除。第一车载设备删除了第三密钥后,第一车载设备可以根据当前使用的第四密钥作为第二消息的新鲜值未到达下一次第二新鲜值时的第三密钥,对接收到的第二消息中的第二数据进行解密,直至下一次第二消息的新鲜值到达第二新鲜值时,再执行使用下一次更新的第四密钥对第一数据加密生成第一消息的步骤,以减少第一车载设备的开销。
方式B,第一车载设备和第二车载设备可以根据第二密钥的更新次数,确定第二密钥的更新方式,从而生成第二密钥。
在一些实施例中,在每次确定第二密钥时,所用到的密钥推演函数中的第一参数与第二密钥的更新次数(或者,与第一消息的新鲜值到达第一新鲜值的次数)有关。即在第一消息的新鲜值为第一新鲜值时,确定第二密钥的更新次数的同时,基于第二密钥的更新次数,确定第二密钥的更新方式,确定第二密钥。
例如,在一些实施例中,每次更新后的第二密钥可以是基于前一次更新后的第二密钥(即当前使用的第一密钥)生成的,也可以是基于初始密钥和历史更新的至少一个第二密钥生成的。例如,通过密钥推演算法,对初始密钥、前N-1次更新的至少一个第二密钥和第一参数进行运算,生成第N次更新后的第二密钥。其中,N为正整数。第一参数可以参考方式A中的实施方式,第一参数还可以包括第二密钥的更新次数,在此不做限定。其中,初始密钥为第一车载设备与第二车载设备在初始化时确定的密钥,也可以是第一车载设备与第二车载设备写入固件的密钥。也可以理解为,密钥推演算法的输入包括初始密钥、前N-1次更新的至少一个第二密钥、第二密钥的更新次数和第一参数,输出第N次更新后的第二密钥。
需要说明的是,第二密钥的更新次数可以通过计数器统计,当然,还可以通过其他方式确定第二密钥的更新次数,在此不做限定。当然,还可以通过其他方式,基于第二密钥的更新次数,确定第二密钥的更新方式,本申请不做限定。
可选的,第一车载设备和第二车载设备可以在确定使用第N次更新后的第二密钥进行加密和解密时,可以将第N-1次更新后的密钥删除,以减少存储空间的占用。
相应的,第二车载设备也可以根据第二消息的新鲜值到达第二新鲜值的次数,确定第四密钥的更新次数和第四密钥的生成方式,从而生成第四密钥。相应的,第二车载设备在第二消息的新鲜值为第二新鲜值时,更新第四密钥的更新次数,同时确定第四密钥。例如,每次更新后的第四密钥可以是基于前一次更新后的第四密钥(即当前使用的第三密钥)生成的,也可以是基于初始密钥和历史更新的至少一个第四密钥生成的。例如,通过密钥推演算法,对初始密钥、前M-1次更新的至少一个第四密钥和第一参数进行运算,生成第M次更新后的第四密钥。其中,M为正整数。
需要说明的是,在方式B中,第一车载设备和第二车载设备可以参考方式A1,在第一消息的新鲜值到达第一新鲜值之前,第一车载设备和第二车载设备分别推演第二密钥。在第一消息的新鲜至到达第一新鲜值时,确定第一密钥的更新次数,并更新第一密钥为第二密钥。类似的,在第二消息的新鲜值为第二新鲜值之前,第一车载设备和第二车载设备分别推演第四密钥。在第二消息的新鲜值到达第二新鲜值时,确定第三密钥的更新次数,并更新第三密钥为第四密钥。
在方式B中,第一车载设备和第二车载设备可以参考方式A2,为降低第一车载设备和第二车载设备推演密钥所需的运算量,第一密钥、更新的第二密钥、第三密钥、更新的第四密钥也可以是第一车载设备和第二车载设备预置的。即第一车载设备与第二车载设备可以预先确定每次更新后的第二密钥和第四密钥,并预先存储在第一车载设备和第二车载设备中,在第一消息的新鲜值第N次到达第一新鲜值时,确定第N次更新的第二密钥。在第二消息的新鲜值第M次到达第二新鲜值时,确定第M次更新的第四密钥。
在场景2中,在一些实施例中,可以将车辆启动或者车辆初始化时,存储的第一车载设备与第二车载设备之间的密钥作为第一车载设备与第二车载设备之间传输数据时第1次到达第一新鲜值或第1次到达第二新鲜值之前的第一密钥(即第0次更新的密钥)。该第0次更新的密钥可以是预先设置的第一密钥,也可以是在车辆启动时第一次生成的第一密钥,在此不做限定。
方式A,第一车载设备可以根据历史生成的第一密钥或第二密钥,推演第二密钥。
具体实施方式,可以参考场景1中的方式A,在此不再赘述。
在方式A1中,可选的,考虑到第一消息的新鲜值到达第一阈值和第二消息的新鲜值到达第二阈值发生的时间可能落在了一个相同的时间范围内的场景。例如,在第一消息的新鲜值到达第一阈值时,在第一消息的新鲜值为到达第一新鲜值时,第二消息的新鲜值也到达了第二阈值,此时可以有多种生成第二密钥的方案。下面以方式1和方式2举例说明。
方式a1,第一车载设备和第二车载设备根据第一消息的新鲜值和第二消息的新鲜值到达相应阈值的先后顺序,相应计算第二密钥,并约定选择最新的第二密钥作为更新后的第二密钥。
举例来说,以第一新鲜值为8比特,初始值设置为00000000为例。第一车载设备先确定第一消息的新鲜值即将到达第一新鲜值,通过密钥推演算法,确定第1次更新后的第二密钥;第一车载设备后又确定第二消息的新鲜值也即将到达第二新鲜值,则通过密钥推演算法,确定第2次更新后的第二密钥。在该场景下,在第一车载设备向第二车载设备发送的第一消息中的第一新鲜值为00000000时,第一车载设备向第二车载设备发送的第一消息采用的第二密钥是第2次更新后的第二密钥。
方式a2,为避免第一车载设备和第二车载设备在短时间内需要生成2次第二密钥,可以设置为仅生成1次第二密钥。即第一车载设备在确定第一消息的新鲜值到达第一阈值,且第一消息的新鲜值未到达第一新鲜值时,第二消息的新鲜值到达第二阈值,则只执行1次推演第二密钥的步骤,即确定1次第二密钥。或者,第一车载设备在确定第二消息的新鲜值到达第二阈值,且第二消息的新鲜值未到达第二新鲜值时,第一消息的新鲜值到达第一阈值,则只执行1次推演第二密钥的步骤,即确定1次第二密钥。
通过上述方法,第一车载设备与第二车载设备需要在确定第一消息的新鲜值即将到达第一新鲜值或第二消息的新鲜值即将到达第二新鲜值时,通过密钥推演算法,生成更新后的第二密钥,保证每次更新后的第二密钥不同。
可选的,第一车载设备可以在确定使用第二密钥进行解密成功来自第二车载设备的第二消息后,将第一密钥删除。第一车载设备删除了第一密钥后,第一车载设备可以根据当前使用的第二密钥作为第一消息的新鲜值未到达下一次第一新鲜值时的第一密钥,对数据进行加密,直至下一次第一消息的新鲜值到达第一新鲜值时,再执行使用下一次更新的第二密钥对第一数据加密生成第一消息的步骤。或者,第一车载设备可以根据当前使用的第二密钥作为第二消息的新鲜值未到达下一次第二新鲜值时的第一密钥,对接收到的第二消息中的加密的第二数据进行解密,直至下一次第二消息的新鲜值到达第二新鲜值时,再执行使用更新的第二密钥对第二数据解密的步骤,以减少第一车载设备的开销。
相应的,第二车载设备可以在确定使用第二密钥进行解密成功来自第一车载设备的第一消息后,将第一密钥删除。第二车载设备删除了第一密钥后,第二车载设备可以根据当前使用的第二密钥作为第二消息的新鲜值未到达下一次第二新鲜值时的第一密钥,对数据进行加密。直至下一次第二消息的新鲜值到达第二新鲜值时,再执行使用下一次更新的第二密钥对第二数据加密生成第二消息的步骤。或者,第二车载设备可以根据当前使用的第二密钥作为第一消息的新鲜值未到达下一次第一新鲜值时的第一密钥,对接收到的第一消息中的加密后的第一数据进行解密,直至下一次第一消息的新鲜值到达第一新鲜值时,再执行使用更新的第二密钥对第一消息中的第一数据解密的步骤,以减少第二车载设备的开销。
在场景2的方式B中,第一车载设备可以根据第二密钥的更新次数,确定密钥的更新方式,从而生成更新后的密钥。
例如,在每次生成第二密钥时,所用到的密钥推演函数中的第一参数与第二密钥的更新次数有关。
在一些实施例中,在第一消息的新鲜值为第一新鲜值时,确定第二密钥的更新次数,同时生成第二密钥。在第二消息的新鲜值为第二新鲜值时,确定第二密钥的更新次数,同时生成第二密钥。使得在第N次第一消息的新鲜值为第一新鲜值和第M次第二消息的新鲜值为第二新鲜值后,当前的密钥为第N+M次更新后的密钥。其中,N,M为正整数,且N,M不同时取0。
例如,第二车载设备在接收到第一消息之前,第二车载设备本地存储的第一消息的新鲜值为11111111,第二密钥的更新次数为4次,此时,接收到第一消息中携带的第一新鲜值00000000,则可以确定需生成第二密钥。因此,将本地存储的第二密钥的更新次数更新为5次,并确定第二密钥为第5次更新后的第二密钥。
在一些实施例中,每次更新后的第二密钥可以是基于前一次更新后的第二密钥生成的,也可以是基于初始密钥和历史更新的至少一个第二密钥生成的。例如,通过密钥推演算法,对初始密钥、前N+M-1次更新的至少一个第二密钥和第一参数进行运算,生成第N+M次更新后的第二密钥。第一参数可以参考方式A中的实施方式,第一参数还可以包括第二密钥的更新次数,在此不做限定。其中,初始密钥为第一车载设备与第二车载设备在初始化时确定的密钥,也可以是第一车载设备与第二车载设备写入固件的密钥。也可以理解为,密钥推演算法的输入包括初始密钥、前N+M-1次更新的至少一个密钥、第二密钥的更新次数和第一参数,输出第N+M次更新的第二密钥。
可选的,考虑到第一消息的新鲜值到达第一新鲜值和第二消息的新鲜值到达第二新鲜值发生的时间落在了一个相同的时间范围内的场景。下面以方式b1和方式b2举例说明。
方式b1,第一车载设备和第二车载设备根据第一消息的新鲜值到达第一新鲜值和第二消息的新鲜值到达第二新鲜值的先后顺序,确定第二密钥,并约定选择最新的第二密钥作为更新后的第二密钥。假设第一消息的新鲜值已第i-1次到达第一新鲜值,第二消息的新鲜值已第j-1次到达第二新鲜值(i,j为大于1的正整数)。以第一消息的新鲜值到达第一新鲜值先发生为例,则第i+j-1次更新后的第二密钥为基于第一消息的新鲜值到达第一新鲜值时确定的。第i+j次更新后的第二密钥为基于第二消息的新鲜值到达第二新鲜值时确定的。当第i次第一消息的新鲜值到达第一新鲜值时,第一车载设备采用第i+j-1次更新后的第二密钥进行加密第一数据,并向第二车载设备发送第一消息(加密后的第一数据和第一新鲜值)。第二车载设备采用第i+j-1次更新后的第二密钥进行解密第一数据。当第j次第二消息的新鲜值到达第二新鲜值时,第二车载设备采用第i+j次更新后的第二密钥进行加密第二数据,并向第一车载设备发送第二消息(加密后的第二数据和第二新鲜值)。第一车载设备采用第i+j次更新后的第二密钥进行解密第二消息中的第二数据。
方式b2,可以设置为仅生成1次第二密钥。结合上述例子,在第一车载设备或第二车载设备确定第i次第一消息的新鲜值到达第一新鲜值的时刻和第j次第二消息的新鲜值到达第二新鲜值的时刻位于预设时长范围内,则第一车载设备或第二车载设备采用的第i+j次更新后的第二密钥与第i+j-1次更新后的第二密钥相同。
可选的,第一车载设备和第二车载设备可以在确定使用第N+M次更新后的第二密钥进行解密成功后,可以将第N+M-1次更新后的第二密钥删除,之后,第一车载设备和第二车载设备可以将第N+M次更新后的第二密钥作为第一密钥对发送的数据进行加密,将第N+M次更新后的第二密钥作为第一密钥对接收的数据进行解密,以减少存储空间的占用。
需要说明的是,参考场景1中的方式B,第二密钥可以是在第一消息的新鲜值到达第一新鲜值之前,第一车载设备和第二车载设备分别推演的。或者,第二密钥可以是在第二消息的新鲜值到达第二新鲜值之前,第一车载设备和第二车载设备分别推演的。或者,为降低第一车载设备和第二车载设备推演第二密钥所需的运算量,第二密钥也可以是第一车载设备和第二车载设备预置的。即第一车载设备与第二车载设备可以预先确定每次更新的第二密钥,并预先存储在第一车载设备和第二车载设备中。例如,第一车载设备在第一消息的新鲜值在第N次到达第一新鲜值,且第二消息的新鲜值已出现过M次第二新鲜值时,确定使用第N+M次更新的第二密钥对第一数据加密,得到加密后的第一数据。
本申请提供一种数据传输方法,该方法可应用于上述图1所示的通信系统中,可以是第一设备向第二设备发送加密数据,第二设备对第一设备发送的加密数据进行解密。第一设备可以是车辆中的车载设备、路侧设备、网络侧设备等,第一设备还可以是第一车载设备、路侧设备、网络侧设备的芯片。第一设备还可以是能够实现车辆与其他设备之间的数据传输的功能或模块。例如,在该方法应用于车内的通信时,第一设备和第二设备可以是同一车辆内的车载设备。在该方法应用于车与车之间的通信时,第一设备和第二设备可以是不同车的车载设备。在该方法应用于车与车之间的通信时,第一设备可以是车辆中的车载设备,也可以是网络侧设备。在该方法应用于车与路侧设备之间的通信时,第一设备可以是车辆中的车载设备,还可以是路侧设备。在该方法应用于路侧设备与路侧设备或者路侧设备与网络侧设备之间的通信时,第一设备可以是车辆中的路侧设备或者网络侧设备。下面以第一设备为第一车载设备,第二设备为第二车载设备为例说明。参考图2,为本申请提供的一种数据传输方法的方法流程示意图。该方法包括以下步骤:
步骤201:第一车载设备确定将要发送的消息的新鲜值为第一新鲜值时,根据所述第一新鲜值和第二密钥,生成密钥流。
其中,该新鲜值可以为第一车载设备向第二车载设备发送的第一消息的新鲜值。
在步骤201之前,第一车载设备使用每次发送的消息所对应的新鲜值和第一密钥,生成密钥流。所述第二密钥是更新后的密钥,其不同于所述第一密钥。
所述第一新鲜值为预先设置的能够触发密钥更新的特定新鲜值。
在一些实施例中,第一车载设备可以根据第一新鲜值和密钥,生成密钥流。生成密钥流的运算可以是基于加密算法,也可以是基于KDF。也可以理解为,第一车载设备可以对输入KDF的密钥和第一新鲜值进行运算,输出密钥流。或者第一车载设备可以对输入加密算法的密钥和第一新鲜值进行运算,输出密钥流。
步骤202:第一车载设备根据密钥流对第一数据加密,得到加密后的第一数据。
一种可能的实现方式,参见图3a,密钥流⊕第一数据可得到加密后的第一数据。在一些实施例中,生成密钥流的输入还可包括以下至少一项:密钥流的长度(length)、待传输的第一数据的标识、第一车载设备的标识、第二车载设备的标识等。应理解,密钥流的长度也可以是第一车载设备默认的长度。从而,对密钥流和第一数据进行异或运算,生成加密后的第一数据。
需要说明的是,第二密钥可以通过上述在确定第一消息的新鲜值为第一新鲜值之前确定的,也可以是预先存储在第一车载设备中的,在此不再赘述。在场景2中,第一车载设备使用的第一密钥与第二车载设备的第三密钥不同,在场景2中,第一车载设备使用的第一密钥为共享密钥,与第二车载设备的第三密钥相同。
步骤203:第一车载设备根据加密后的第一数据和第一新鲜值,生成第一消息。
参见图3b,第一消息中,可以包括加密后的第一数据和第一新鲜值。
可选的,为了减缓新鲜值重置的速度,本申请中,可在第一车载设备和第二车载设备各自维护一个延长后的新鲜值,例如,增加新鲜值的高位,在消息的传输过程中,仅传输新鲜值的低位。即实际传输的新鲜值可以为新鲜值的预设数量的比特位上的比特值,所述预设数量的比特位为第一新鲜值中从低位到高位的预设数量的比特位。从而,在保证传输的新鲜值占用的比特位不变的情况下,延迟新鲜值的重置。
可选的,第一消息中还可以包括消息认证码(message authentication code,MAC)。该消息认证码可以是第一车载设备根据第二密钥生成的。第二车载设备在接收到第一消息后,还可根据第一消息中的第一新鲜值,确定第二密钥。第二车载设备根据第二密钥,计算MAC。第二车载设备比较第一消息中的MAC与根据第一消息的第二密钥计算出的MAC。如果比较成功的话,第二车载设备认为第一消息是可靠的,即第一消息是没有被篡改过的。
需要说明是,为了进一步提高第一车载设备传输数据的安全性,用于加密的密钥和用于进行完整性保护的密钥可以是不同的密钥。示例性地,可通过输入不同的参数(如算法类型参数(algorithm type distinguisher))来实现。例如,生成加密数据的密钥的参数为第一参数,生成完整性保护的密钥的参数为第二参数,第一参数和第二参数是不同的。比如,第一参数可为“0x01”,第二参数可为“0x02”;再比如,第一参数为“加密encryption”,第二参数为“完整性integrity”。另外,第一参数和密钥推演算法可以是第一车载设备和第二车载设备约定的。
步骤204:第一车载设备向第二车载设备发送第一消息。
其中,第一消息中可以包括加密后的第一数据和第一新鲜值。第一消息中的第一新鲜值可以是明文发送的。相应的,第二车载设备可接收来自第一车载设备的加密后的第一数据和第一新鲜值。
步骤205:第二车载设备根据第一消息中的新鲜值为所述第一新鲜值,确定第一消息对应的密钥为所述第二密钥。
在一些实施例中,在第二车载设备确定第一消息对应的密钥为所述第二密钥时,第二车载设备可以将第一密钥更新为所述第二密钥。
在一些实施例中,第二车载设备在确定本地存储的第一新鲜值与接收到的第一消息中的第一新鲜值不同,且第一消息中的新鲜值为所述第一新鲜值时,则可以确定第一消息不是重放消息,即确认第一消息的安全。并且,第二车载设备可以确定第一消息对应的密钥为第二密钥。结合场景1和场景2,下面简要说明在不同场景中对应的第二密钥。
在场景1的方式A中,第二车载设备在接收到第一消息之前,确定第一消息中的新鲜值即将到达所述第一新鲜值时,可以通过密钥推演算法确定出更新后的第二密钥。
在场景1的方式B中,假设发送第一消息之前,第二密钥已更新N-1次,此时,第二车载设备在接收到第一消息之后,确定第一消息中的新鲜值为所述第一新鲜值时,可以确定第一消息对应的密钥为第N次更新的第二密钥。
在场景2的方式A中,第二车载设备在接收到第一消息之前,确定第一消息中的新鲜值即将到达所述第一新鲜值时,可以根据当前使用的第一密钥,通过密钥推演算法确定出第二密钥。
在场景2的方式B中,以第二车载设备本地存储的第二密钥的更新次数为N+M-1次为例;此时,第二车载设备接收到第一消息,在确定第一消息中的新鲜值为所述第一新鲜值,则对本地存储的第二密钥的更新次数进行累加,并确定第二密钥为第N+M次更新后的第二密钥。
步骤206:根据所述与第二密钥对应的解密密钥和所述第一新鲜值对第一消息解密,得到第一数据。
具体的,第二车载设备可以根据与所述第二密钥对应的解密密钥和所述第一新鲜值对所述第一消息解密,得到第一数据。一种可能的方式中,第二车载设备根据与所述第二密钥对应的解密密钥和第一新鲜值进行运算,生成密钥流。第二车载设备对密钥流和加密后的第一数据进行异或运算,得到第一数据。该步骤可以参考上述步骤202第一车载设备根据第二密钥和第一新鲜值进行运算,生成密钥流的方式,此处不再一一赘述。
从上述步骤201至步骤206可以看出,第一车载设备可以基于第一消息中的新鲜值是否为所述第一新鲜值,确定是否需要采用第二密钥对发送的第一数据进行加密。相应的,第二车载设备可以基于第一消息中的新鲜值是否为所述第一新鲜值,确定是否需要采用第二密钥对发送的加密后的第一数据进行解密。从而,实现了第一车载设备和第二车载设备在发送数据的同时,随新鲜值到达特定值后相应更新密钥,在避免了沿用原密钥导致安全性降低的同时,也无需等待双方确认密钥更新后,再发送数据导致产生额外的时延的问题。
示例一
考虑到第一车载设备和第二车载设备之间传输数据可能存在时延或丢包等场景,为保证第一车载设备和第二车载设备在传输数据的同时,实现双方准确解密,降低数据传输的时延。以第一车载设备和第二车载设备处于场景2为例,第一车载设备和第二车载设备处于场景1可以参考该实施例,在此不再赘述。结合图2,本申请实施例中还提供了一种数据传输方法,如图4所示,可以包括以下步骤:
步骤401:第一车载设备在确定将要发送的消息的新鲜值为第一新鲜值时,根据所述第一新鲜值和第二密钥,生成密钥流。
步骤402:第一车载设备根据密钥流对第一数据加密,得到加密后的第一数据。
步骤403:第一车载设备根据加密后的第一数据和第一新鲜值,生成第一消息。
步骤404:第一车载设备向第二车载设备发送第一消息。
步骤405:第一车载设备向第二车载设备发送第一消息后,启动计时器。
考虑到第二车载设备可能长时间不会发送数据给第一车载设备,此时,第一车载设备可以在发送第一消息后,设置定时器,在第一预设时长到达时,删除第一密钥(或者,可以表示为第N+M-1次更新后的密钥)。第一预设时长可以基于第一车载设备和第二车载设备的传输数据的时间确定,例如,第一预设时长可以为第一车载设备和第二车载设备传输1.5个数据包的时间。需要说明的是,步骤405是可选的步骤。
步骤406:第二车载设备根据第一消息中的新鲜值为所述第一新鲜值,确定第一消息对应的密钥为所述第二密钥。
步骤407:根据与所述第二密钥对应的解密密钥和所述第一新鲜值对第一消息解密,得到第一数据。
上述步骤401~步骤404,步骤406~步骤407可以参考步骤201~步骤206的实施方式,在此不再赘述。
步骤408:第二车载设备向第一车载设备发送第二消息。
其中,第二消息可以包括第二车载设备加密后的第二数据和第二消息的新鲜值。
需要说明的是,考虑到第一消息和第二消息的传输可能存在丢包或延迟的问题,因此,步骤408可能是在第二车载设备成功接收到第一消息后发生的,在该情况下,第二消息中的第二数据是根据第二密钥进行加密的。另一种可能的情况,步骤402也可能是在第二车载设备成功接收到第一消息之前发生的。在该情况下,第二消息中的第二数据是根据第一密钥进行加密的。下面以具体的场景举例说明。
在场景2的方式A中,在一些实施例中,步骤408可以为第二车载设备成功接收到第一消息后发送的,此时,第二车载设备已确定第一消息的新鲜值为第一新鲜值,并确定第二消息的新鲜值未到达第二新鲜值时,第二车载设备使用第二密钥对第二数据加密。具体第二密钥的确定方式可以参考上述场景2中的方式A,在此不再赘述。在一些实施例中,步骤408可以为第二车载设备接收到第一消息前发送的或第二车载设备未成功接收到第一消息,此时,第二车载设备存储的历史中的第一消息的新鲜值未到达第一新鲜值,且第二车载设备根据第二消息的新鲜值,确定第二消息的新鲜值未到达第二新鲜值时,因此,第二车载设备使用第一密钥对第二数据加密。从而,第一车载设备根据接收到的第二消息中的新鲜值,确定第二车载设备最多更新了一次密钥,或者未更新密钥,因此,可以根据第一密钥或第二密钥对第二消息进行解密。另一种可能的场景中,步骤408中,第二车载设备已确定第一消息的新鲜值为第一新鲜值,并确定第二消息的新鲜值为第二新鲜值时,第二车载设备使用第三密钥对第二数据加密。相应的,第二车载设备未收到第一消息的新鲜值为第一新鲜值,并确定第二消息的新鲜值为第二新鲜值时,第二车载设备使用第二密钥对第二数据加密。从而,第一车载设备根据接收到的第二消息中的第二新鲜值,确定第二车载设备至少更新了一次密钥,因此,可以根据第二密钥或第三密钥对第二消息进行解密。
在场景2的方式B中,以第二车载设备本地存储的第二密钥的更新次数为N+M-1次为例。
在一些实施例中,步骤408可以为第二车载设备接收到第一消息前发送的,且第二消息的新鲜值未达到第二新鲜值,第二车载设备使用第N+M-1次更新后的第二密钥对第二数据加密。
在一些实施例中,在步骤408中,第二车载设备未成功接收到第一消息,且第二消息的新鲜值未达到第二新鲜值,因此,第二车载设备使用第N+M-1次更新后的第二密钥对第二数据加密。
在一些实施例中,在步骤408中,第二车载设备成功接收到第一消息,且第二消息的新鲜值未达到第二新鲜值,在确定第一消息中的新鲜值为第一新鲜值,则对本地存储的第二密钥的更新次数进行累加,并确定第二密钥为第N+M次更新后的第二密钥。
在一些实施例中,在步骤408中,第二车载设备未成功接收到第一消息,且第二消息的新鲜值达到第二新鲜值,因此,第二车载设备使用第N+M次更新后的第二密钥对第二数据加密。
在一些实施例中,在步骤408中,第二车载设备成功接收到第一消息,且第二消息的新鲜值达到第二新鲜值,因此,第二车载设备使用第N+M+1次更新后的第二密钥对第二数据加密。
在场景1的方式A中,第二车载设备在发送第二消息之前,在确定第二消息的新鲜值为第二新鲜值时,确定使用第四密钥对第二数据加密。在确定第二消息的新鲜值未达到第二新鲜值时,可以根据当前使用的第三密钥,对第二数据加密。
在场景1的方式B中,假设第二车载设备向第一车载设备发送第二消息之前,第四密钥已更新M-1次。此时,若第二车载设备确定第二消息的新鲜值为第二新鲜值时,第二消息对应的密钥为第M次更新的第四密钥。第二车载设备在确定第二消息的新鲜值未达到第二新鲜值时,第二消息对应的密钥为第M-1次更新的第四密钥(即第三密钥)。
基于上述不同的场景,第一车载设备无法确定第二消息中采用的密钥是否已根据第一消息更新为第二密钥,还是仍沿用第一密钥。此时,第一车载设备可以通过计时器是否超时,确定使用第一密钥或第二密钥对第二消息进行解密。可选的,为提高解密的成功率,第一车载设备可以在优先计时器未超时的情况下,使用第一密钥对第二消息中的加密数据进行解密,或者,第一车载设备可以在优先计时器未超时的情况下,使用第二密钥对第二消息中的加密数据进行解密,即执行步骤4011。在优先计时器超时后,使用第二密钥对第二消息中的加密数据进行解密,下面以该方式说明,即执行步骤4010。可选的,第一车载设备也可以在未超时的情况下优先根据第二密钥对第二消息中的加密数据进行解密,第一车载设备也可以在超时的情况下优先根据第一密钥对第二消息中的加密数据进行解密,该方式可以参考该实施例,在此不再赘述。
步骤409:第一车载设备判断计时器是否超时,若是,则执行步骤4011;若否,则执行步骤4010。
具体的,第一车载设备判断计时器是否超过第一预设时长,判断计时器是否超时。
步骤4010:第一车载设备使用与第二密钥对应的解密密钥对第二消息进行解密。
具体解密的方式可以参考第二车载设备根据与第二密钥对应的解密密钥对第一消息进行解密的步骤(例如,步骤205),在此不再赘述。
步骤4011:第一车载设备使用与第二密钥对应的解密密钥或与第一密钥对应的解密密钥,及第二消息的新鲜值,对第二消息进行解密。
步骤4012:第一车载设备确定第二消息是否解密成功,若是,则执行步骤4013;若否,则执行步骤4014;
步骤4013:第一车载设备删除第一密钥。
步骤4014:第一车载设备根据与第一密钥对应的解密密钥对第二消息进行解密。
在解密失败后,第一车载设备可以根据与第一密钥对应的解密密钥对第二消息中的数据进行解密。解密失败的原因可能是第二车载设备未使用第二密钥,此时,第一车载设备可以根据与第一密钥对应的解密密钥对第二消息中的数据进行解密。当第一车载设备可以根据与第一密钥对应的解密密钥对第二消息中的数据解密成功时,第一车载设备可以确定第二车载设备未使用第二密钥。此时,第一车载设备可以保留第一密钥。
可选的,步骤4015:第二车载设备可以将本地存储的所述第一密钥删除。
需要说明的是,步骤4015可以在步骤407之后立即执行,本申请不限定步骤4015与步骤408~步骤4014之间的执行顺序。
可选的,在第一车载设备删除第一密钥后,可以重置该定时器,直至下一次第一消息的新鲜值为第一新鲜值,并执行步骤404后,重新开启该计时器。
需要说明的是,还可以在计时器未超时时,优先根据与第二密钥对应的解密密钥对第二消息中的加密数据进行解密,即在步骤4011时,第一车载设备根据与第一密钥对应的解密密钥对第二消息进行解密。在解密成功后,确定第二车载设备未更新第一密钥,可以保留第一密钥。在解密失败后,第一车载设备可以根据与第二密钥对应的解密密钥对第二消息中的数据进行解密。具体实施过程可以参考上述步骤409~步骤4014,在此不再赘述。
示例二
考虑到第一车载设备和第二车载设备之间传输数据可能存在时延或丢包等场景,为保证第一车载设备和第二车载设备在传输数据的同时,实现双方准确解密,降低数据传输的时延。以第一车载设备和第二车载设备处于场景2为例,第一车载设备和第二车载设备处于场景1可以参考该实施例,在此不再赘述。结合图2,本申请实施例中还提供了一种数据传输方法,如图5所示,可以包括以下步骤:
步骤501:第一车载设备在确定将要发送的消息的新鲜值为第一新鲜值时,根据所述第一新鲜值和第二密钥,生成密钥流。
步骤502:第一车载设备根据密钥流对第一数据加密,得到加密后的第一数据。
步骤503:第一车载设备根据加密后的第一数据和第一新鲜值,生成第一消息。
步骤504:第一车载设备向第二车载设备发送第一消息。
步骤505:第二车载设备向第一车载设备发送第二消息。
其中,第二消息可以包括第二车载设备加密后的第二数据和第二消息的新鲜值。
在该示例二中,以第二消息中的新鲜值未到达第二新鲜值为例进行说明。
步骤506:第一车载设备使用与第一密钥对应的解密密钥对第二消息进行解密。
考虑到第二车载设备可能长时间不会发送数据给第一车载设备,因此,步骤505及步骤506是可选的步骤,因此,在图5中,以虚线表示执行505及步骤506为可选的。
步骤507:第二车载设备根据第一消息中的新鲜值为所述第一新鲜值,确定第一消息对应的密钥为所述第二密钥。
步骤508:根据与所述第二密钥对应的解密密钥和所述第一新鲜值对第一消息解密,得到第一数据。
上述步骤501~步骤504,步骤507~步骤508可以参考步骤201~步骤206的实施方式,在此不再赘述。
步骤509:第二车载设备删除第一密钥。
结合方式A,在第二车载设备对加密后的第一数据解密成功后,可以根据第二密钥更新当前使用的第一密钥。结合方式B,以当前使用的第一密钥为第N+M-1次更新的第二密钥,在第二车载设备对加密后的第一数据解密成功后,可以将第N+M次更新的第二密钥更新当前使用的第一密钥。
步骤5010:第二车载设备向第一车载设备发送第三消息。
其中,第三消息用于指示第二车载设备将所述第一密钥更新为第二密钥。
可选的,第三消息还可以用于指示第二设备删除第一密钥的通知消息。
可选的,第三消息还可以包括加密的第三数据,此时,第三数据可以是根据第二密钥和第三消息的新鲜值加密的。从而,第一车载设备在接收到第三数据后,基于第三消息对应的密钥为第二密钥,确定第二车载设备将第一密钥更新为第二密钥。
步骤5011:第一车载设备根据第三消息,删除第一密钥。
结合步骤5010,第一车载设备可以根据第三消息指示的第二车载设备将所述第一密钥更新为第二密钥,确定第一密钥可以删除。
通过上述方式,第一车载设备无需设置计时器,也可以及时删除第一密钥,提高第一车载设备和第二车载设备的传输效率和传输效果。
示例三
考虑到第一车载设备和第二车载设备之间传输数据可能存在时延或丢包等场景,为保证第一车载设备和第二车载设备在传输数据的同时更新密钥,降低数据传输的时延。
以第一车载设备和第二车载设备处于场景2为例,结合图2,本申请实施例中还提供了一种数据传输方法,如图6所示,可以包括以下步骤:
步骤601:第一车载设备在确定将要发送的消息新鲜值为第一新鲜值时,根据所述第一新鲜值和第二密钥,生成密钥流。
步骤602:第一车载设备根据密钥流对第一数据加密,得到加密后的第一数据。
步骤603:第一车载设备根据加密后的第一数据和第一新鲜值,生成第一消息。
步骤604:第一车载设备向第二车载设备发送第一消息。
步骤605:第二车载设备向第一车载设备发送第二消息。
其中,第二消息可以包括第二车载设备加密后的第二数据和第二消息的新鲜值。
在该示例三中,以第二消息中的新鲜值未到达第二新鲜值为例进行说明。
步骤606:第一车载设备使用与第一密钥对应的解密密钥对第二消息进行解密。
考虑到第二车载设备可能长时间不会发送数据给第一车载设备,因此,步骤605及步骤606是可选的步骤,因此,在图6中,以虚线表示执行605及步骤606为可选的。
步骤607:第二车载设备根据第一消息中的新鲜值为所述第一新鲜值,确定第一消息对应的密钥为所述第二密钥。
步骤608:根据与所述第二密钥对应的解密密钥和所述第一新鲜值对第一消息解密,得到第一数据。
上述步骤501~步骤504,步骤507~步骤508可以参考步骤201~步骤206的实施方式,在此不再赘述。
步骤609:第二车载设备根据第二密钥和第三消息的新鲜值,生成密钥流,并根据该密钥流对第三数据进行加密,生成第三消息。
考虑到可能丢包的问题,为避免第一车载设备可能无法根据第三消息的新鲜值确认第二车载设备是否更新为第二密钥,因此,在该示例中,第二车载设备可以在第三消息中包括第二车载设备加密后的第三数据、第三消息的新鲜值和第一标识。其中,第一标识可以用于标识第二车载设备将所述第一密钥更新为所述第二密钥。
可选的,为避免丢包导致第一车载设备可能无法接收到携带第一标识的第三消息,可以在确定密钥更新后的两个或多个第三消息中添加第一标识。
步骤6010:第二车载设备向第一车载设备发送第三消息。
相应的,第一车载设备接收第二车载设备发送的第三消息。
步骤6011:第一车载设备根据第三消息中的第一标识,确定第三消息的密钥为所述第二密钥。
其中,第一车载设备可以根据第三消息中的第一标识,确定第三消息中的加密后的第三数据使用的密钥为所述第二密钥。
步骤6012:第一车载设备根据与所述第二密钥对应的解密密钥和所述第三消息的新鲜值,对所述第三消息解密,得到第三数据。
具体解密过程可以参考步骤4010或步骤4014,在此不再赘述。
步骤6013:第一车载设备删除所述第一密钥。
结合步骤6012,第一车载设备可以根据第三消息指示的第二车载设备将所述第一密钥更新为第二密钥,确定第一密钥可以删除。
当第一车载设备可以根据所述第二密钥对第三消息中的数据解密成功时,第一车载设备可以确定第二车载设备已使用所述第二密钥,从而,第一车载设备可以将本地存储的第一密钥删除,在该示例中,第一车载设备可以根据第二车载设备发送的第三消息或第二消息中是否携带第一标识,从而确定第二车载设备中的密钥是否更新,因此,只需在接收到携带有第一标识的第三消息后,删除第一密钥,避免设置定时器删除第一密钥的方式,提高系统容错性的同时,降低了开销。
步骤6014:第二车载设备删除第一密钥。
结合方式A,在第二车载设备对加密后的第一数据解密成功后,可以根据第二密钥更新当前使用的第一密钥。结合方式B,以当前使用的第一密钥为第N+M-1次更新的第二密钥,在第二车载设备对加密后的第一数据解密成功后,可以将第N+M次更新的第二密钥更新当前使用的第一密钥。
通过上述方法,第一车载设备可以根据第三消息中的第一标识,确定第二车载设备将所述第一密钥更新为第二密钥,以减少第一车载设备的额外的判断第二消息中的加密密钥为第一密钥还是第二密钥,降低功耗和时延。
示例四
考虑到第一车载设备和第二车载设备之间传输数据可能存在时延或丢包等场景,为保证第一车载设备和第二车载设备在传输数据的同时更新密钥,降低数据传输的时延。以第一车载设备和第二车载设备处于场景2为例,结合图2,第一车载设备向第二车载设备发送第一消息后,本申请实施例中还提供了一种数据传输方法,如图7所示,可以包括以下步骤:
步骤701:第一车载设备在确定将要发送的消息的新鲜值为第一新鲜值时,根据所述第一新鲜值和第二密钥,生成密钥流。
步骤702:第一车载设备根据密钥流对第一数据加密,得到加密后的第一数据。
步骤703:第一车载设备根据加密后的第一数据和第一新鲜值,生成第一消息。
步骤704:第一车载设备向第二车载设备发送第一消息。
可选的,第一车载设备向第二车载设备发送第一消息后,可以设置切换标识为有效状态。图7中通过虚线表示切换标识有效为可选的步骤,相应的步骤7013为可选的步骤。
在一些实施例中,该切换标识的有效状态可以通过第一车载设备发送第一消息时(此时,在第一消息的新鲜值为第一新鲜值)后触发,直到第一车载设备成功解密第二车载设备发送的第三消息中的第三数据(此时的第三数据为通过所述第二密钥加密)后,设置切换标识为失效状态。通过上述方法,可以使得第一车载设备在确定切换标识为有效状态下,设置满足特定条件的第三消息的新鲜值,用于确定第二车载设备采用所述第二密钥加密第三消息中的第三数据。从而,在通过特定条件确定第二车载设备发送的第三消息的密钥的同时,也避免了由于丢包可能导致的第一车载设备接收到的第三消息的新鲜值被误认为是满足特定条件的第三消息的新鲜值,从而,有效提高接收第三消息的效率和准确性。
步骤705:第二车载设备根据第一消息中的新鲜值为所述第一新鲜值,确定第一消息对应的密钥为所述第二密钥。
步骤706:第一车载设备使用与所述第一密钥对应的解密密钥对第一消息进行解密,得到第一数据。
上述步骤701~步骤706可以参考步骤201~步骤206的实施方式,在此不再赘述。
步骤707:根据所述第一新鲜值,确定满足特定条件的第三消息的新鲜值。
步骤708:第二车载设备根据第二密钥和第三消息的新鲜值,生成密钥流,并根据该密钥流对第三数据进行加密,生成第三消息。
考虑到可能丢包的问题,为避免第一车载设备可能无法根据第三消息的新鲜值确认第二车载设备是否更新为第二密钥,因此,在该示例中,第二车载设备可以将第三消息的新鲜值设置为满足特定条件的第三消息的新鲜值。从而,第二车载设备可以在第三消息中包括第二车载设备加密后的第三数据、满足特定条件的第三消息的新鲜值。
一种可能的实现方式,该第三消息的新鲜值为与上一次第二车载设备向第一车载设备发送消息的新鲜值间隔特定值后的新鲜值。
例如,在发送第三消息之前,第二车载设备和第一车载设备存储的第二车载设备向第一车载设备发送消息的新鲜值为1000001,此时,第二车载设备可以在第三消息中携带的新鲜值为1000006,即间隔特定值为5,并更新本地存储的第二车载设备向第一车载设备发送消息的新鲜值为1000003。使得第二车载设备在接收到该第三消息后,确定第三消息中的新鲜值与本地存储的第二车载设备向第一车载设备发送消息的新鲜值间隔特定值为5,可以确定该第三消息中的第三数据为通过所述第二密钥加密的。
步骤709:第二车载设备向第一车载设备发送第三消息。
相应的,第一车载设备接收第二车载设备发送的第三消息。
步骤7010:第一车载设备判断第三消息中的新鲜值是否满足特定条件,若是,则执行步骤7011b,若否,则执行步骤7011a。
在一些实施例中,第一车载设备可以根据第二消息中的第二新鲜值与本地存储的第二车载设备向第一车载设备发送消息的新鲜值进行比较,确定是否为满足特定条件。例如,在确定第三消息的新鲜值满足特定条件(与本地存储的第二车载设备向第一车载设备发送消息的间隔特定值)时,可以确定第二车载设备将第一密钥更新为第二密钥。同时,第三消息为根据所述第二密钥进行加密的。
结合设置切换标识有效的场景,在该实施例中,第一车载设备在确定第三消息的新鲜值满足的特定条件需要包括:与本地存储的第三消息的新鲜值间隔特定值及所述切换标识处于有效状态。
第一车载设备在确定切换标识处于失效状态时,可以基于第三消息的新鲜值与本地存储的第三消息的新鲜值进行比较,在确定第三消息中的新鲜值与本地存储的第三消息的新鲜值间隔特定值时,确定之前可能出现丢包的情况,此时,第一车载设备可以根据接收到的第二消息中的第二新鲜值,确定是否为第二新鲜值。在第一车载设备确定该第三消息的新鲜值未到达第二新鲜值时,则执行步骤7011a,在第一车载设备确定该第三消息的新鲜值为第二新鲜值时,则执行步骤7011b。
步骤7011a:第一车载设备根据与所述第一密钥对应的解密密钥和第三消息的新鲜值,对第三消息中加密后的第三数据进行解密。
具体解密的方式可以参考步骤204,在此不再赘述。
步骤7011b:第一车载设备根据与所述第二密钥对应的解密密钥和所述第三消息的新鲜值,对所述第三消息解密,得到第三数据。
具体解密过程可以参考步骤4010或步骤4014,在此不再赘述。
步骤7012:第一车载设备删除第一密钥。
当第一车载设备可以根据更新后的密钥对第二消息中的数据解密成功时,第一车载设备可以确定第二车载设备已使用所述第二密钥,从而,第一车载设备可以将本地存储的第一密钥删除,并确认此时切换标识失效。在该示例中,第一车载设备可以根据第二车载设备发送的第三消息中携带的新鲜值是否满足特定条件确定第二车载设备是否将第一密钥更新为第二密钥,因此,只需在接收到携带有满足特定条件的第三消息的新鲜值后,删除第一密钥,提高系统容错性的同时,降低了开销。
可选的,步骤7013:第一车载设备设置切换标识为失效状态。
步骤7014:第二车载设备删除所述第一密钥。
通过上述方法,可以在不增加第二消息中额外的标识的开销下,使得第一车载设备确定第二消息中使用的密钥,降低了传输数据的时延,提高了数据传输的可靠性。
需要说明的是,上述各个信息的名称仅仅是作为示例,随着通信技术的演变,上述任意信息均可能改变其名称,但不管其名称如何发生变化,只要其含义与本申请上述信息的含义相同,则均落入本申请的保护范围之内。
上述主要从各个车载设备之间交互的角度对本申请提供的方案进行了介绍。可以理解的是,上述实现各车载设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
基于以上实施例以及相同构思,图8为本申请实施例提供的数据传输装置的示意图,如图8所示,该数据传输装置800可以为车辆中的第一设备,第一设备可以是车辆中的第一车载设备,例如车辆中的任一ECU,也可以为芯片或电路,比如可设置于第一车载设备中的芯片或电路。
该数据传输装置可以对应上述方法中的第一车载设备。该数据传输装置可以实现如上图1至图7中所示的任一项或任多项对应的方法中第一车载设备所执行的步骤。该数据传输装置800可以包括通信单元801、密钥更新单元802、加密单元803、生成单元804。可选的,该数据传输装置800还可以包括解密单元805。
其中,密钥更新单元802,用于在第一设备将要发送的消息对应的新鲜值为第一新鲜值时,将加密密钥由第一密钥更新为第二密钥;加密单元803,用于根据所述第一新鲜值和第二密钥,生成第一密钥流;根据所述第一密钥流对第一数据加密,得到加密后的所述第一数据;生成单元804,用于根据所述加密后的所述第一数据和所述第一新鲜值,生成第一消息;通信单元801,用于向第二设备发送所述第一消息。
一种可能的实现方式,所述通信单元801,还用于接收所述第二设备发送的第三消息,所述第三消息中包括用于指示所述第二设备将加密密钥更新为所述第二密钥的指示信息;所述密钥更新单元802,还用于根据所述第三消息,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥。
一种可能的实现方式,所述密钥更新单元802,还用于根据所述第三消息,删除所述第一密钥。
一种可能的实现方式,所述第三消息包括加密后的第三数据、所述第三消息的新鲜值和第一标识,所述指示信息为所述第一标识。
一种可能的实现方式,所述第三消息包括:加密后的第三数据和所述第三消息的新鲜值,所述指示信息为满足特定条件的所述第三消息的新鲜值。
一种可能的实现方式,所述特定条件包括:所述第三消息的新鲜值与所述第一设备最后一次接收的来自所述第二设备的消息的新鲜值间隔预设值。
一种可能的实现方式,所述通信单元801向所述第二设备发送所述第一消息之后,所述密钥更新单元802,还用于设置切换标识为有效状态;根据所述第三消息和所述切换标识为有效状态,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥;在所述将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥之后,设置切换标识为无效状态。
一种可能的实现方式,所述通信单元801向所述第二设备发送所述第一消息之后,所述密钥更新单元802,还用于启动计时器;在所述计时器超时的情况下,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥。
一种可能的实现方式,所述密钥更新单元802,还用于在所述计时器超时的情况下,删除所述第一密钥。
一种可能的实现方式,所述装置还包括解密单元805;所述解密单元805,用于在所述计时器不超时的情况下,使用与所述第一密钥对应的解密密钥解密从所述第二设备发送至所述第一设备的消息。
一种可能的实现方式,所述解密单元805,还用于在所述计时器不超时的情况下,如果使用与所述第一密钥对应的解密密钥不能成功解密从所述第二设备发送至所述第一设备的消息,则使用与所述第二密钥对应的解密密钥解密所述从所述第二设备发送至所述第一设备的消息。
一种可能的实现方式,所述通信单元801,还用于接收第二设备发送的第四消息;向第二设备发送第五消息;所述密钥更新单元802,还用于根据所述第四消息中包括第二新鲜值,将加密密钥由所述第二密钥更新为第三密钥;所述加密单元803,还用于根据所述第二设备将要发送的承载第二数据的第五消息的新鲜值和所述第三密钥,生成第二密钥流;根据所述第二密钥流对第二数据加密,得到加密后的所述第二数据;所述生成单元804,还用于根据所述加密后的所述第二数据和所述新鲜值,生成所述第五消息。
一种可能的实现方式,所述装置还包括解密单元805;在所述通信单元801接收第二设备发送的第四消息之后,所述解密单元805,还用于根据所述第四消息中包括第二新鲜值,使用与所述第三密钥匹配的解密密钥对所述第四消息成功解密。
通信单元801在发送信息时可以为发送单元或发射器,通信单元801在接收信息时可以为接收单元或接收器,通信单元801可以为收发器,此收发器、发射器或接收器可以为射频电路,当数据传输装置800包含存储单元时,该存储单元用于存储计算机指令,密钥更新单元802、加密单元803、生成单元804和解密单元805可以分别与存储单元通信连接,密钥更新单元802、加密单元803、生成单元804和解密单元805分别执行存储单元存储的计算机指令,使数据传输装置800可以用于执行上述实施例中任一实施例中第一车载设备所执行的方法。其中,密钥更新单元802、加密单元803、生成单元804或解密单元805可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(Application Specific IntergratedCircuit,ASIC)。
当数据传输装置800为第一车载设备时,通信单元801可以是输入和/或输出接口、管脚或电路等。密钥更新单元802、加密单元803、生成单元804和解密单元805可执行存储单元存储的计算机执行指令,以使该数据传输装置800内的芯片执行实施例中任一实施例所执行的方法。可选地,存储单元为芯片内的存储单元,如寄存器、缓存等,存储单元还可以是数据传输装置800内的位于该芯片外部的存储单元,如只读存储器(Read Only Memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(RandomAccess Memory,RAM)等。
该数据传输装置800所涉及的与本申请实施例提供的技术方案相关的概念,解释和详细说明及其他步骤请参见前述方法或其他实施例中关于这些内容的描述,此处不做赘述。
根据前述方法,图9为本申请实施例提供的一种数据传输装置的结构示意图,如图9所示,该装置可以为第一设备。其中,第一设备可以是车辆中的第一车载设备或车载模块,也可以为第一车载设备中的芯片或电路。
进一步的,该数据传输装置900还可以进一步包括总线系统,其中,处理器902、存储器903、收发器901可以通过总线系统相连。
应理解,上述处理器902可以是一个芯片。例如,该处理器902可以是现场可编程门阵列(field programmable gate array,FPGA),可以是专用集成芯片(applicationspecific integrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是中央处理器(central processor unit,CPU),还可以是网络处理器(networkprocessor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(micro controller unit,MCU),还可以是可编程控制器(programmable logicdevice,PLD)或其他集成芯片。
在实现过程中,上述方法的各步骤可以通过处理器902中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器902中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器903,处理器902读取存储器903中的信息,结合其硬件完成上述方法的步骤。
应注意,本申请实施例中的处理器902可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器903可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
该数据传输装置900对应上述方法中的第一车载设备的情况下,该数据传输装置可以包括处理器902、收发器901和存储器903。该存储器903用于存储指令,该处理器902用于执行该存储器903存储的指令,以实现如上图1至图7中所示的任一项或任多项对应的方法中第一车载设备的相关方案。
当数据传输装置900为上述第一车载设备时,数据传输装置900可以用于执行上述实施例中任一实施例中第一车载设备所执行的方法。
其中,处理器902可以在第一设备将要发送的消息对应的新鲜值为第一新鲜值时,将加密密钥由第一密钥更新为第二密钥,以及根据所述第一新鲜值和第二密钥,生成第一密钥流;根据所述第一密钥流对第一数据加密,得到加密后的所述第一数据;根据所述加密后的所述第一数据和所述第一新鲜值,生成第一消息;收发器901可以向第二设备发送所述第一消息。
该数据传输装置900所涉及的与本申请实施例提供的第一车载设备的技术方案相关的概念,解释和详细说明及其他步骤请参见前述方法或其他实施例中关于这些内容的描述,此处不做赘述。
基于以上实施例以及相同构思,图10为本申请实施例提供的数据传输装置的示意图,如图10所示,该数据传输装置1000可以为车辆中的第二设备,第二设备可以是车辆中的第二车载设备,例如车辆中的任一ECU,也可以为芯片或电路,比如可设置于第二车载设备中的芯片或电路。
该数据传输装置可以对应上述方法中的第二车载设备。该数据传输装置可以实现如上图1至图7中所示的任一项或任多项对应的方法中第二车载设备所执行的步骤。该数据传输装置1000可以包括通信单元1001、密钥更新单元1002和解密单元1003。可选的,该数据传输装置1000还可以包括加密单元1004、生成单元1005。
其中,通信单元1001,用于接收来自第一设备的第一消息,所述第一消息包括加密后的第一数据和第一消息的新鲜值;密钥更新单元1002,用于根据所述第一消息的新鲜值为第一新鲜值,将解密密钥由与第一密钥对应的解密密钥更新为与第二密钥对应的解密密钥;加密单元1004,用于根据所述第一新鲜值和所述与第二密钥对应的解密密钥对所述第一消息解密,得到所述第一数据。
一种可能的实现方式,所述密钥更新单元1002,还用于根据所述第一消息的新鲜值为第一新鲜值,将加密密钥由所述第一密钥更新为所述第二密钥;所述通信单元1001,还用于向第一设备发送第三消息,所述第三消息包括使用所述第二密钥加密的第三数据。其中,加密的第三数据可以是加密单元1004根据第二密钥对第三数据加密生成的,第三数据可以是生成单元1005根据加密的第三数据和第三消息的新鲜值等生成的。
一种可能的实现方式,所述第三消息还包括用于指示所述第二设备将加密密钥更新为所述第二密钥的指示信息。
一种可能的实现方式,所述第三消息还包括第一标识,所述指示信息为所述第一标识。
一种可能的实现方式,所述第三消息还包括所述第三消息的新鲜值,所述指示信息为满足特定条件的所述第三消息的新鲜值。
一种可能的实现方式,所述特定条件包括:所述第三消息的新鲜值与所述第二设备最后一次向所述第一设备发送的消息的新鲜值间隔预设值。
通信单元1001在发送信息时可以为发送单元或发射器,通信单元1001在接收信息时可以为接收单元或接收器,通信单元1001可以为收发器,此收发器、发射器或接收器可以为射频电路,当数据传输装置1000包含存储单元时,该存储单元用于存储计算机指令,密钥更新单元1002、解密单元1003、生成单元1005和加密单元1004可以分别与存储单元通信连接,密钥更新单元1002、解密单元1003、生成单元1005和加密单元1004分别执行存储单元存储的计算机指令,使数据传输装置1000可以用于执行上述实施例中任一实施例中第一车载设备所执行的方法。其中,密钥更新单元1002、解密单元1003、生成单元1005或加密单元1004可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(ApplicationSpecific Intergrated Circuit,ASIC)。
当数据传输装置1000为第一车载设备时,通信单元1001可以是输入和/或输出接口、管脚或电路等。密钥更新单元1002、解密单元1003、生成单元1005和加密单元1004可执行存储单元存储的计算机执行指令,以使该数据传输装置1000内的芯片执行实施例中任一实施例所执行的方法。可选地,存储单元为芯片内的存储单元,如寄存器、缓存等,存储单元还可以是数据传输装置1000内的位于该芯片外部的存储单元,如只读存储器(Read OnlyMemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(Random Access Memory,RAM)等。
该数据传输装置1000所涉及的与本申请实施例提供的技术方案相关的概念,解释和详细说明及其他步骤请参见前述方法或其他实施例中关于这些内容的描述,此处不做赘述。
根据前述方法,图11为本申请实施例提供的一种数据传输装置的结构示意图,如图11所示,该装置可以为第二设备。其中,第二设备可以是车辆中的第二车载设备或车载模块,也可以为第二车载设备中的芯片或电路。
进一步的,该数据传输装置1100还可以进一步包括总线系统,其中,处理器1102、存储器1103、收发器1101可以通过总线系统相连。
应理解,上述处理器1102可以是一个芯片。例如,该处理器1102可以是现场可编程门阵列(field programmable gate array,FPGA),可以是专用集成芯片(applicationspecific integrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是中央处理器(central processor unit,CPU),还可以是网络处理器(networkprocessor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(micro controller unit,MCU),还可以是可编程控制器(programmable logicdevice,PLD)或其他集成芯片。
在实现过程中,上述方法的各步骤可以通过处理器1102中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器1102中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1103,处理器1102读取存储器1103中的信息,结合其硬件完成上述方法的步骤。
应注意,本申请实施例中的处理器1102可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器1103可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double datarate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
该数据传输装置1100对应上述方法中的第二车载设备的情况下,该数据传输装置可以包括处理器1102、收发器1101和存储器1103。该存储器1103用于存储指令,该处理器1102用于执行该存储器1103存储的指令,以实现如上图1至图7中所示的任一项或任多项对应的方法中第二车载设备的相关方案。
当数据传输装置1100为上述第二车载设备,数据传输装置1100可以用于执行上述实施例中任一实施例中第二车载设备所执行的方法。
数据传输装置1100为上述第二车载设备时,收发器1101可以接收来自第一设备的第一消息,所述第一消息包括加密后的第一数据和第一消息的新鲜值;处理器1102可以根据所述第一消息的新鲜值为第一新鲜值,将解密密钥由与第一密钥对应的解密密钥更新为与第二密钥对应的解密密钥;根据所述第一新鲜值和所述与第二密钥对应的解密密钥对所述第一消息解密,得到所述第一数据。
该数据传输装置1100所涉及的与本申请实施例提供的第二车载设备的技术方案相关的概念,解释和详细说明及其他步骤请参见前述方法或其他实施例中关于这些内容的描述,此处不做赘述。
应理解,以上数据传输装置800、1000的单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。本申请实施例中,通信单元801、密钥更新单元802、加密单元803、生成单元804和解密单元805可以由上述图9的收发器901实现,密钥更新单元1002、解密单元1003、生成单元1005和加密单元1004可以由上述图11的处理器1102实现。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行图1至图7所示实施例中任意一个实施例的方法。
根据本申请实施例提供的方法,本申请还提供一种计算机可读存储介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行图1至图7所示实施例中任意一个实施例的方法。
根据本申请实施例提供的方法,本申请还提供一种数据传输系统,其包括前述的第一车载设备、一个或多个第二车载设备中的至少两项。
本申请实施例还提供一种车辆,包括至少一个本申请上述实施例提到的第一车载设备和第二车载设备。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在两个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (42)
1.一种数据传输方法,其特征在于,应用于第一设备,所述方法包括:
在所述第一设备将要发送的第一消息对应的新鲜值为第一新鲜值时,将加密密钥由第一密钥更新为第二密钥;
根据所述第一新鲜值和所述第二密钥,生成第一密钥流;
根据所述第一密钥流对第一数据加密,得到加密后的所述第一数据;
根据所述加密后的所述第一数据和所述第一新鲜值,生成第一消息;
向第二设备发送所述第一消息;
接收来自所述第二设备发送的第三消息,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥;
根据所述第三消息,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述第三消息,删除所述第一密钥。
3.如权利要求1或2所述的方法,其特征在于,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥,包括:
所述第三消息中包括第一标识,所述第一标识用于指示所述第二设备将加密密钥更新为所述第二密钥。
4.如权利要求1或2所述的方法,其特征在于,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥,包括:
所述第三消息中包括满足特定条件的所述第三消息的新鲜值,所述满足特定条件的所述第三消息的新鲜值用于指示所述第二设备将加密密钥更新为所述第二密钥。
5.如权利要求4所述的方法,其特征在于,所述特定条件包括:
所述第三消息的新鲜值与所述第一设备最后一次接收的来自所述第二设备的消息的新鲜值间隔预设值。
6.如权利要求1或2所述的方法,其特征在于,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥,包括:
所述第三消息包括根据所述第二密钥和所述第三消息的新鲜值加密的第三数据,所述第三数据根据所述第二密钥加密用于指示所述第二设备将加密密钥更新为所述第二密钥。
7.如权利要求1-6任一项所述的方法,其特征在于,所述向第二设备发送所述第一消息之后,所述方法还包括:设置切换标识为有效状态;
所述根据所述第三消息,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥,包括:
所述根据所述第三消息和所述切换标识为有效状态,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥;
在所述将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥之后,所述方法还包括:设置切换标识为无效状态。
8.如权利要求1所述的方法,其特征在于,所述向第二设备发送所述第一消息之后,所述方法还包括:
启动计时器;
在所述计时器超时的情况下,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
在所述计时器超时的情况下,删除所述第一密钥。
10.如权利要求8或9所述的方法,其特征在于,所述方法还包括:
在所述计时器不超时的情况下,使用与所述第一密钥对应的解密密钥解密从所述第二设备发送至所述第一设备的消息。
11.如权利要求10所述的方法,其特征在于,所述方法还包括:
在所述计时器不超时的情况下,如果使用与所述第一密钥对应的解密密钥不能成功解密从所述第二设备发送至所述第一设备的消息,则使用与所述第二密钥对应的解密密钥解密所述从所述第二设备发送至所述第一设备的消息。
12.如权利要求1-11任一项所述的方法,其特征在于,所述方法还包括:
接收第二设备发送的第四消息;
根据所述第四消息中包括第二新鲜值,将加密密钥由所述第二密钥更新为第三密钥,以及根据所述第二设备将要发送的承载第二数据的第五消息的新鲜值和所述第三密钥,生成第二密钥流;
根据所述第二密钥流对第二数据加密,得到加密后的所述第二数据;
根据所述加密后的所述第二数据和所述新鲜值,生成第五消息;
向第二设备发送所述第五消息。
13.如权利要求12所述的方法,其特征在于,在所述接收第二设备发送的第四消息之后,所述方法还包括:
根据所述第四消息中包括第二新鲜值,使用与所述第三密钥匹配的解密密钥对所述第四消息成功解密。
14.一种数据传输方法,其特征在于,应用于第二设备;所述方法包括:
接收来自第一设备的第一消息,所述第一消息包括加密后的第一数据和第一消息的新鲜值;
根据所述第一消息的新鲜值为第一新鲜值,将解密密钥由与第一密钥对应的解密密钥更新为与第二密钥对应的解密密钥;
根据所述第一新鲜值和所述与第二密钥对应的解密密钥对所述第一消息解密,得到所述第一数据;
根据所述第一消息的新鲜值为第一新鲜值,将加密密钥由所述第一密钥更新为所述第二密钥;
向第一设备发送第三消息,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥。
15.如权利要求14所述的方法,其特征在于,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥,包括:
所述第三消息中包括第一标识,所述第一标识用于指示所述第二设备将加密密钥更新为所述第二密钥。
16.如权利要求14所述的方法,其特征在于,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥,包括:
所述第三消息中包括满足特定条件的所述第三消息的新鲜值,所述满足特定条件的所述第三消息的新鲜值用于指示所述第二设备将加密密钥更新为所述第二密钥。
17.如权利要求16所述的方法,其特征在于,所述特定条件包括:
所述第三消息的新鲜值与所述第二设备最后一次向所述第一设备发送的消息的新鲜值间隔预设值。
18.如权利要求14所述的方法,其特征在于,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥,包括:
所述第三消息包括根据所述第二密钥和所述第三消息的新鲜值加密的第三数据,所述第三数据根据所述第二密钥加密用于指示所述第二设备将加密密钥更新为所述第二密钥。
19.一种应用于第一设备的数据传输装置,其特征在于,包括:
密钥更新单元,用于在所述第一设备将要发送的第一消息对应的新鲜值为第一新鲜值时,将加密密钥由第一密钥更新为第二密钥;
加密单元,用于根据所述第一新鲜值和所述第二密钥,生成第一密钥流;根据所述第一密钥流对第一数据加密,得到加密后的所述第一数据;
生成单元,用于根据所述加密后的所述第一数据和所述第一新鲜值,生成第一消息;
通信单元,用于向第二设备发送所述第一消息;接收所述第二设备发送的第三消息,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥;
所述密钥更新单元,还用于根据所述第三消息,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥。
20.如权利要求19所述的装置,其特征在于,所述密钥更新单元,还用于根据所述第三消息,删除所述第一密钥。
21.如权利要求19或20所述的装置,其特征在于,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥,包括:
所述第三消息中包括第一标识,所述第一标识用于指示所述第二设备将加密密钥更新为所述第二密钥。
22.如权利要求19或20所述的装置,其特征在于,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥,包括:
所述第三消息包括满足特定条件的所述第三消息的新鲜值,所述满足特定条件的所述第三消息的新鲜值用于指示所述第二设备将加密密钥更新为所述第二密钥。
23.如权利要求22所述的装置,其特征在于,所述特定条件包括:
所述第三消息的新鲜值与所述第一设备最后一次接收的来自所述第二设备的消息的新鲜值间隔预设值。
24.如权利要求19或20所述的装置,其特征在于,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥,包括:
所述第三消息包括根据所述第二密钥和所述第三消息的新鲜值加密的第三数据,所述第三数据根据所述第二密钥加密用于指示所述第二设备将加密密钥更新为所述第二密钥。
25.如权利要求19-24任一项所述的装置,其特征在于,所述通信单元向所述第二设备发送所述第一消息之后,所述密钥更新单元,还用于设置切换标识为有效状态;根据所述第三消息和所述切换标识为有效状态,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥;在所述将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥之后,设置切换标识为无效状态。
26.如权利要求19所述的装置,其特征在于,所述通信单元向所述第二设备发送所述第一消息之后,所述密钥更新单元,还用于启动计时器;在所述计时器超时的情况下,将解密密钥由与所述第一密钥对应的解密密钥更新为与所述第二密钥对应的解密密钥。
27.如权利要求26所述的装置,其特征在于,所述密钥更新单元,还用于在所述计时器超时的情况下,删除所述第一密钥。
28.如权利要求26或27所述的装置,其特征在于,所述装置还包括解密单元;
所述解密单元,用于在所述计时器不超时的情况下,使用与所述第一密钥对应的解密密钥解密从所述第二设备发送至所述第一设备的消息。
29.如权利要求28所述的装置,其特征在于,所述解密单元,还用于在所述计时器不超时的情况下,如果使用与所述第一密钥对应的解密密钥不能成功解密从所述第二设备发送至所述第一设备的消息,则使用与所述第二密钥对应的解密密钥解密所述从所述第二设备发送至所述第一设备的消息。
30.如权利要求19-29任一项所述的装置,其特征在于,所述通信单元,还用于接收第二设备发送的第四消息;向第二设备发送第五消息;
所述密钥更新单元,还用于根据所述第四消息中包括第二新鲜值,将加密密钥由所述第二密钥更新为第三密钥;
所述加密单元,还用于根据所述第二设备将要发送的承载第二数据的第五消息的新鲜值和所述第三密钥,生成第二密钥流;根据所述第二密钥流对第二数据加密,得到加密后的所述第二数据;
所述生成单元,还用于根据所述加密后的所述第二数据和所述新鲜值,生成所述第五消息。
31.如权利要求30所述的装置,其特征在于,所述装置还包括解密单元;
在所述通信单元接收第二设备发送的第四消息之后,所述解密单元,还用于根据所述第四消息中包括第二新鲜值,使用与所述第三密钥匹配的解密密钥对所述第四消息成功解密。
32.一种应用于第二设备的数据传输装置,其特征在于,包括:
通信单元,用于接收来自第一设备的第一消息,所述第一消息中包括加密后的第一数据和所述第一消息的新鲜值;
密钥更新单元,用于根据所述第一消息的新鲜值为第一新鲜值,将解密密钥由与第一密钥对应的解密密钥更新为与第二密钥对应的解密密钥;
解密单元,用于根据所述第一新鲜值和所述与第二密钥对应的解密密钥对所述第一消息解密,得到所述第一数据;
所述密钥更新单元,还用于根据所述第一消息的新鲜值为第一新鲜值,将加密密钥由所述第一密钥更新为所述第二密钥;
所述通信单元,还用于向第一设备发送第三消息,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥。
33.如权利要求32所述的装置,其特征在于,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥,包括:
所述第三消息中包括第一标识,所述第一标识用于指示所述第二设备将加密密钥更新为所述第二密钥。
34.如权利要求32所述的装置,其特征在于,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥,包括:
所述第三消息中包括满足特定条件的所述第三消息的新鲜值,所述满足特定条件的所述第三消息的新鲜值用于指示所述第二设备将加密密钥更新为所述第二密钥。
35.如权利要求34所述的装置,其特征在于,所述特定条件包括:
所述第三消息的新鲜值与所述第二设备最后一次向所述第一设备发送的消息的新鲜值间隔预设值。
36.如权利要求32所述的装置,其特征在于,所述第三消息用于指示所述第二设备将加密密钥更新为所述第二密钥,包括:
所述第三消息包括根据所述第二密钥和所述第三消息的新鲜值加密的第三数据,所述第三数据根据所述第二密钥加密用于指示所述第二设备将加密密钥更新为所述第二密钥。
37.一种数据传输装置,其特征在于,包括:
处理器和通信接口;
其中,所述处理器通过所述通信接口与存储器耦合,所述处理器用于执行所述存储器中的程序代码,以实现如权利要求1-13中任一项所述的方法。
38.一种数据传输装置,其特征在于,包括:
处理器和通信接口;
其中,所述处理器通过所述通信接口与存储器耦合,所述处理器用于执行所述存储器中的程序代码,以实现如权利要求14-18中任一项所述的方法。
39.一种车辆,其特征在于,包括第一设备和第二设备,所述第一设备用于执行如权利要求1-13任一项所述的方法,所述第二设备用于执行如权利要求14-18任一项所述的方法。
40.一种数据传输系统,其特征在于,包括第一设备和第二设备,所述第一设备用于执行如权利要求1-13任一项所述的方法,所述第二设备用于执行如权利要求14-18任一项所述的方法。
41.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在被处理器运行时,使得数据传输装置执行如权利要求1-13任一项所述的方法或执行如权利要求14-18任一项所述的方法。
42.一种计算机程序产品,其特征在于,当所述计算机程序产品在处理器上运行时,使得数据传输装置执行如权利要求1-13任一项所述的方法或执行如权利要求14-18任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210610234.2A CN115175137A (zh) | 2020-12-28 | 2020-12-28 | 一种数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/140012 WO2022140895A1 (zh) | 2020-12-28 | 2020-12-28 | 一种数据传输方法及装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210610234.2A Division CN115175137A (zh) | 2020-12-28 | 2020-12-28 | 一种数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112740726A CN112740726A (zh) | 2021-04-30 |
CN112740726B true CN112740726B (zh) | 2022-06-10 |
Family
ID=75609546
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210610234.2A Pending CN115175137A (zh) | 2020-12-28 | 2020-12-28 | 一种数据传输方法及装置 |
CN202080005005.7A Active CN112740726B (zh) | 2020-12-28 | 2020-12-28 | 一种数据传输方法及装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210610234.2A Pending CN115175137A (zh) | 2020-12-28 | 2020-12-28 | 一种数据传输方法及装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230345239A1 (zh) |
EP (1) | EP4266717A4 (zh) |
JP (1) | JP2024500544A (zh) |
KR (1) | KR20230121137A (zh) |
CN (2) | CN115175137A (zh) |
WO (1) | WO2022140895A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729056A (zh) * | 2017-10-30 | 2019-05-07 | 北京长城华冠汽车科技股份有限公司 | 基于车联网的整车网络安全防护方法及整车网络架构 |
CN110933110A (zh) * | 2019-12-17 | 2020-03-27 | 东软集团股份有限公司 | 一种车载网络的通信方法、发送端、接收端与车辆 |
CN111698086A (zh) * | 2020-06-12 | 2020-09-22 | 北京百度网讯科技有限公司 | 用于数据传输的方法和装置 |
WO2020201010A1 (de) * | 2019-04-01 | 2020-10-08 | Conti Temic Microelectronic Gmbh | Vorrichtungen und verfahren zum erzeugen und zur authentisierungsprüfung mindestens eines in einem bus-system (bu) insbesondere eines kraftfahrzeugs zu übertragenden datenpakets |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8983069B2 (en) * | 2013-03-14 | 2015-03-17 | Robert Bosch Gmbh | System and method for counter mode encrypted communication with reduced bandwidth |
EP3143797B1 (en) * | 2014-05-13 | 2020-07-29 | Telefonaktiebolaget LM Ericsson (publ) | Methods and network nodes for managing wireless device associated information in a wireless communication network |
US9769664B1 (en) * | 2014-09-04 | 2017-09-19 | Sensys Networks | Nonce silent and replay resistant encryption and authentication wireless sensor network |
KR101882694B1 (ko) * | 2016-11-03 | 2018-07-27 | 현대오토에버 주식회사 | Mac을 포함하는 can 메시지 송수신을 위한 방법 및 시스템 |
US10343649B2 (en) * | 2017-10-23 | 2019-07-09 | Afero, Inc. | Wireless key system and method |
CN109936444B (zh) * | 2017-12-18 | 2021-07-09 | 华为技术有限公司 | 一种密钥生成方法及装置 |
JP2019140577A (ja) * | 2018-02-13 | 2019-08-22 | 株式会社デンソー | 電子制御装置及び通信システム |
US10553058B2 (en) * | 2018-06-29 | 2020-02-04 | Micron Technology, Inc. | Secure wireless lock-actuation exchange |
US11290437B2 (en) * | 2018-12-27 | 2022-03-29 | Beijing Voyager Technology Co., Ltd. | Trusted platform protection in an autonomous vehicle |
US11240006B2 (en) * | 2019-03-25 | 2022-02-01 | Micron Technology, Inc. | Secure communication for a key exchange |
CN111629359A (zh) * | 2020-06-10 | 2020-09-04 | 西安工程大学 | 一种基于代理车辆的消息认证方法 |
-
2020
- 2020-12-28 WO PCT/CN2020/140012 patent/WO2022140895A1/zh active Application Filing
- 2020-12-28 CN CN202210610234.2A patent/CN115175137A/zh active Pending
- 2020-12-28 KR KR1020237024929A patent/KR20230121137A/ko active Search and Examination
- 2020-12-28 CN CN202080005005.7A patent/CN112740726B/zh active Active
- 2020-12-28 JP JP2023539381A patent/JP2024500544A/ja active Pending
- 2020-12-28 EP EP20967247.6A patent/EP4266717A4/en active Pending
-
2023
- 2023-06-27 US US18/342,497 patent/US20230345239A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729056A (zh) * | 2017-10-30 | 2019-05-07 | 北京长城华冠汽车科技股份有限公司 | 基于车联网的整车网络安全防护方法及整车网络架构 |
WO2020201010A1 (de) * | 2019-04-01 | 2020-10-08 | Conti Temic Microelectronic Gmbh | Vorrichtungen und verfahren zum erzeugen und zur authentisierungsprüfung mindestens eines in einem bus-system (bu) insbesondere eines kraftfahrzeugs zu übertragenden datenpakets |
CN110933110A (zh) * | 2019-12-17 | 2020-03-27 | 东软集团股份有限公司 | 一种车载网络的通信方法、发送端、接收端与车辆 |
CN111698086A (zh) * | 2020-06-12 | 2020-09-22 | 北京百度网讯科技有限公司 | 用于数据传输的方法和装置 |
Non-Patent Citations (1)
Title |
---|
《Use of FRESH in the enhanced UTRAN key hierarchy》;Ericsson等;《3GPP TSG SA WG3 Security-S3#59 S3-100496》;20100419;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115175137A (zh) | 2022-10-11 |
EP4266717A4 (en) | 2024-01-24 |
KR20230121137A (ko) | 2023-08-17 |
JP2024500544A (ja) | 2024-01-09 |
EP4266717A1 (en) | 2023-10-25 |
US20230345239A1 (en) | 2023-10-26 |
WO2022140895A1 (zh) | 2022-07-07 |
CN112740726A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3386163B1 (en) | Apparatuses and methods for use in a can system | |
EP3050251B1 (en) | Real-time frame authentication using id anonymization in automotive networks | |
JP5783103B2 (ja) | 車両用データ通信システム及び車両用データ通信装置 | |
Wang et al. | NOTSA: Novel OBU with three-level security architecture for internet of vehicles | |
Boudguiga et al. | A simple intrusion detection method for controller area network | |
KR101549034B1 (ko) | Can에서 데이터의 기밀성과 무결성을 보장하는 방법 | |
KR102450811B1 (ko) | 차량 내부 네트워크의 키 관리 시스템 | |
JP6481579B2 (ja) | 車載通信システム及び監視装置 | |
WO2018017566A1 (en) | Hash-chain based sender identification scheme | |
US20220353056A1 (en) | Communication method and apparatus | |
KR101675332B1 (ko) | 차량용 데이터 통신 방법 및 그를 이용하는 차량용 전자 제어 장치 및 시스템 | |
Muhammad et al. | 5G-based V2V broadcast communications: A security perspective | |
CN110366175B (zh) | 安全协商方法、终端设备和网络设备 | |
US20220131839A1 (en) | Systems, methods and controllers for secure communications | |
CN112602287A (zh) | Can通信方法、设备及系统 | |
CN104219222A (zh) | 交换路径网络中用于中间消息认证的系统和方法 | |
CN115868189A (zh) | 建立车辆安全通信的方法、车辆、终端及系统 | |
WO2016032752A1 (en) | Method and apparatus enabling interoperability between devices operating at different security levels and trust chains | |
CN112567713B (zh) | 防攻击的网络接口 | |
CN112740726B (zh) | 一种数据传输方法及装置 | |
Ansari et al. | IntelliCAN: Attack-resilient controller area network (CAN) for secure automobiles | |
CN105743863A (zh) | 一种对报文进行处理的方法及装置 | |
Carsten et al. | A system to recognize intruders in controller area network (can) | |
CN115834210A (zh) | 一种量子安全网络数据的发送、接收方法及通信系统 | |
KR101705639B1 (ko) | 차량 네트워크 시스템에서의 메시지 송수신 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |