CN114598468B - 密钥配置方法、数据传输方法、处理器、系统及相关设备 - Google Patents
密钥配置方法、数据传输方法、处理器、系统及相关设备 Download PDFInfo
- Publication number
- CN114598468B CN114598468B CN202210257159.6A CN202210257159A CN114598468B CN 114598468 B CN114598468 B CN 114598468B CN 202210257159 A CN202210257159 A CN 202210257159A CN 114598468 B CN114598468 B CN 114598468B
- Authority
- CN
- China
- Prior art keywords
- processor
- key
- data link
- data
- link
- 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 100
- 230000005540 biological transmission Effects 0.000 title claims abstract description 60
- 238000009795 derivation Methods 0.000 claims abstract description 25
- 230000004044 response Effects 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 49
- 230000008569 process Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 29
- 238000012360 testing method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010587 phase diagram Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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
-
- 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
- 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
-
- 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
-
- 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)
-
- 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/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
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)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种密钥配置方法、数据传输方法、处理器、系统及相关设备,其中密钥配置方法应用于第一处理器,第一处理器为多处理器系统中的任一处理器,该方法包括:响应于第一处理器的第一数据链路的密钥配置请求,与第二处理器交换各自生成的随机数;调用预先配置的第一数据链路的密钥派生信息,该密钥派生信息预先配置在第一处理器和第二处理器中;根据密钥派生信息、第一处理器和第二处理器各自生成的随机数,生成为第一数据链路配置的密钥,该密钥用于对第一数据链路上传输的数据进行加解密。本申请实施例还提供相应的数据传输方案。本申请实施例可为每条数据链路单独配置密钥并且保障密钥的安全性,为提升数据传输的安全性提供支持。
Description
技术领域
本申请实施例涉及处理器技术领域,具体涉及一种密钥配置方法、数据传输方法、处理器、系统及相关设备。
背景技术
多处理器系统(Multiprocessor Systems)是指多个处理器形成的系统,该多个处理器可由统一的操作系统控制,并且多个处理器之间协同工作,用于提高运算能力和速度。多处理器系统具有处理器之间传输数据的需求,因此如何为处理器之间的数据传输提供安全保障,一直是本领域技术人员研究的问题。
发明内容
有鉴于此,本申请实施例提供一种密钥配置方法、数据传输方法、处理器、系统及相关设备,以为多处理器系统的每条数据链路单独配置密钥,并且保障数据链路配置的密钥的安全性,为每条数据链路的单独加密提供基础,进而为提升处理器之间的数据传输安全性提供可能;同时,提供处理器之间相应的数据传输方案,以在处理器之间进行数据传输时,提升数据传输的安全性。
为实现上述目的,本发明实施例提供如下技术方案。
第一方面,本申请实施例提供一种密钥配置方法,应用于第一处理器,所述第一处理器为多处理器系统中的任一处理器,所述第一处理器具有至少一条数据链路,一条数据链路为处理器之间单向传输数据的链路;所述方法包括:
响应于第一处理器的第一数据链路的密钥配置请求,与第二处理器交换各自生成的随机数;其中,所述第一处理器与所述第二处理器通过所述第一数据链路单向的传输数据;
调用预先配置的第一数据链路的密钥派生信息,所述第一数据链路的密钥派生信息预先配置在第一数据链路连接的第一处理器和第二处理器中;
根据所述密钥派生信息、第一处理器和第二处理器各自生成的随机数,生成为第一数据链路配置的密钥,所述第一数据链路的密钥用于对第一数据链路上传输的数据进行加解密。
第二方面,本申请实施例提供一种数据传输方法,应用于第一处理器,所述第一处理器为多处理器系统中的任一处理器,所述第一处理器具有至少一条数据链路,一条数据链路为处理器之间单向传输数据的链路;所述方法包括:
确定目标数据,所述目标数据通过第一处理器的第一数据链路进行传输,所述第一处理器与所述第二处理器通过所述第一数据链路单向的传输数据;
调用所述第一处理器中存储的所述第一数据链路预先配置的密钥,其中,所述第一数据链路的密钥根据上述第一方面所述的密钥配置方法预先配置;
根据所述第一数据链路的密钥,对所述目标数据进行加解密。
第三方面,本申请实施例提供一种处理器,所述处理器被配置为执行如上述第一方面所述的密钥配置方法,和/或,如上述第二方面所述的数据传输方法。
第四方面,本申请实施例提供一种多处理器系统,包括:多个处理器以及多条数据链路,一条数据链路为处理器之间单向传输数据的链路;其中,所述处理器如上述第三方面所述的处理器。
第五方面,本申请实施例提供一种芯片,包括如上述第四方面所述的多处理器系统。
第六方面,本申请实施例提供一种电子设备,包括如上述第五方面所述的芯片。
可以看出,本申请实施例提供的密钥配置方法在为数据链路配置密钥时,并不在处理器之间传输数据链路用于加密的密钥,而是基于处理器内部预先配置的数据链路的密钥派生信息,以及与数据链路连接的处理器交换的随机数,来生成数据链路的密钥,因此就算攻击者以中间人的攻击方式获得随机数,攻击者也会因缺少密钥派生信息而无法破解数据链路的密钥,减少了数据链路协商的密钥被破解窃取的风险,提升了数据链路的密钥安全性,为数据链路上传输的数据的安全性提供了保障。并且,多处理器系统中的每条数据链路可复用相同的实现逻辑以单独的配置密钥,并且通过设置不同的密钥派生信息和/或随机数,可使得不同数据链路能够配置不同的密钥,避免多条数据链路配置相同密钥时,一条数据链路的密钥被破解而影响多处理器系统整体安全的问题。本申请实施例可以为多处理器系统的每条数据链路单独配置密钥,并且保障数据链路配置的密钥的安全性,为每条数据链路的单独加密提供了基础,进而为提升处理器之间的数据传输安全性提供了可能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1A为多处理器系统的结构示意图。
图1B为双路处理器的结构示意图。
图1C为四路处理器的结构示意图。
图1D为处理器之间传输的数据被恶意攻击的示例图。
图2A为处理器之间协商密钥的过程示例图。
图2B为四路处理器的环形结构示意图。
图2C为四路处理器的链形结构示意图。
图3A为本申请实施例提供的密钥配置方法的流程图。
图3B为双路处理器的示例图。
图3C为双路处理器的另一示例图。
图3D为双路处理器的再一示例图。
图4A为密钥配置过程的阶段示意图。
图4B为数据链路的密钥协商过程示例图。
图4C为保存数据链路的密钥的示例图。
图4D为加密配置过程的示例图。
图5A为本申请实施例提供的加密自检的方法流程图。
图5B为加密自检过程的示例图。
图6为本申请实施例提供的数据传输方法的流程图。
图7为多处理器系统的数据链路传输数据的示例图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
多处理器系统具有多台处理器,处理器之间彼此可以传输数据。多处理器系统的全部或者部分处理器可以共享内存、IO(输入输出)设备,控制器及外部设备。多处理器系统可以由统一的操作系统控制,从而在处理器和程序之间实现作业、任务、程序、数组的全面并行处理。
在芯片设计时,多处理器系统中的多台处理器设置于芯片主板上,且处理器之间通过主板连接,实现处理器之间的数据传输。图1A示例的示出了多处理器系统的结构示意图。如图1A所示,多处理器系统可以包括设置于主板上的多个处理器,例如图1A所示处理器0至处理器n(n为大于等于1的整数,具体可根据多处理器系统的规格而定),处理器0至处理器n可以视为是多处理器系统中的运算和控制核心,是数据处理、程序运行的最终执行单元。
基于主板上设置的处理器数量,多处理器系统可以分为双路处理器(X2)、四路处理器(X4)和八路处理器(X8)等不同规格的多路处理器。其中,双路处理器为包含两个处理器的多处理器系统,四路处理器为包含四个处理器的多处理器系统,八路处理器为包含八个处理器的多处理器系统,以此类推。
图1B示例性的示出了双路处理器的结构示意图,可进行参照,如图1B所示,在双路处理器中,主板上设置有处理器0和处理器1,且处理器0和处理器1之间通过主板传输数据。图1C示例性的示出了四路处理器的结构示意图,可进行参照,如图1C所示,在四路处理器中,主板上设置有处理器0、1、2和3,且处理器0、1、2和3的拓扑结构为环形结构,在环形结构中,相互连接的处理器之间通过主板传输数据。
可以看出,在多处理器系统中,处理器之间是通过主板传输数据,例如处理器之间通过主板的SerDes PHY传输数据,其中,SerDes是SERializer(串行器)DESerializer(解串器)的简称,PHY表示物理层。然而,处理器之间通过主板传输数据时,如果传输的数据为明文,则数据将直接暴露在主板上,存在被恶意攻击者窃听和篡改的风险。图1D示例性的示出了处理器之间传输的数据被恶意攻击的示例图,如图1D所示,处理器0和处理器1之间在传输数据时,由于数据的明文传输,恶意攻击者极易窃听和篡改处理器0和处理器1之间传输的数据。
可见,多处理器系统的处理器之间通过主板传输数据,是在不可靠路径上进行数据传输,数据传输的安全性较低。基于此,在多处理器系统中,传输数据的处理器双方可以通过密钥协商,协商出用于数据传输的密钥,从而在处理器之间通过主板这一不可靠的路径传输数据时,能够通过密钥加密传输的数据。需要说明的是,密钥协商是指通信双方,通过不可靠路径交换信息,协商出通信双方共享的密钥的过程。
图2A示例性的示出了处理器之间协商密钥的过程示例图,图2A以具有通信连接关系的处理器0和处理器1的密钥协商过程为示例进行说明,如图2A所示,处理器0生成随机数21,并使用随机数21生成一对公钥A1和私钥A2;处理器0将公钥A1发送到处理器1;处理器1生成随机数22,并使用随机数22生成密钥G1;处理器1利用处理器0发送的公钥A1对生成的密钥G1进行加密,得到加密的密钥G1;处理器1将加密的密钥G1发送给处理器0;处理器0利用与公钥A1对应的私钥A2,解密加密的密钥G1,从而解密出密钥G1。通过上述过程,处理器0和处理器1可协商出用于对数据进行加解密的密钥G1,以实现相互通信的处理器之间的密钥协商。
多处理器系统的处理器之间虽然可以通过图2A所示的密钥协商过程,协商出用于数据加解密的密钥,但是上述协商密钥过程由于在处理器之间直接传输加密后的密钥,仍然存在被攻击者攻击而导致密钥被篡改的风险。也就是说,由于图2A所示的处理器1存在向处理器0传输加密后的密钥的过程,攻击者可以通过中间人攻击的方式,拦截传输的加密后的密钥并进行破解,从而导致处理器0和1之间用于加密数据的密钥泄露。例如,在处理器0向处理器1传输公钥A1时,攻击者可通过主板得到处理器0传输的公钥A1,然后另外生成一对公钥和私钥;攻击者将自身生成的公钥发送给处理器1,那么处理器1将是利用攻击者提供的公钥加密密钥G1;进而在处理器1将加密的密钥G1通过主板传输给处理器0的过程中,攻击者可利用自身生成的私钥对加密的密钥G1进行解密,导致密钥G1泄露,这个过程中,攻击者还可以继续伪装与处理器0进行通信。
通过上述描述可以看出,由于多处理器系统中不同处理器之间的数据传输在主板上进行,但通过主板传输数据是不可靠路径,恶意攻击者可以通过定制主板实现监听和篡改处理器之间传输的数据,从而对计算机系统进行入侵和破解。为了保证计算机系统的完整性和可靠性,虽然可以采用密钥协商得到的密钥对处理器之间传输的数据进行加密保护,但对于多处理器系统而言,其加密控制有两大难点:
第一,密钥协商过程传输的信息直接暴露在主板的连线上,导致协商的密钥容易被破解。也就是说,如果直接传输处理器之间未加密的数据,则会导致明文传输的数据直接被攻击者恶意截取,而使用密钥协商得到的密钥对处理器之间传输的数据进行加密,也会在密钥协商的过程中,被攻击者以中间人攻击的方式,拦截通信双方传输的信息并插入新的信息,从而使攻击者获得协商的密钥。
第二,多处理器系统有多种不同的拓扑结构(X2/X4/X8)和不同的连接方式(环形和链形),不同的拓扑结构和不同的连接方式组成了不同结构的多处理器系统。每种结构的多处理器系统中具有多条数据链路,一条数据链路对应着不同处理器之间的单向数据连接。在这一背景下,如果整个多处理器系统均使用同一个密钥加密数据,则一条数据链路上的密钥被攻击者窃取(例如攻击者以上述中间人攻击的方式窃取得到密钥),则意味着整个多处理器系统用于数据加解密的密钥都被窃取,导致多处理器系统的数据安全性极大的降低。
需要说明的是,多处理器系统的拓扑结构可以分为环形和链形,每种拓扑结构的传输方向可以分为向上传输和向下传输,多处理器系统中的一条数据链路可以视为是相互连接的两个处理器之间单向的数据传输链路,例如对于一个处理器而言,在该处理器与另一处理器之间可以存在数据发送的数据链路和数据接收的数据链路。为便于理解,图2B示例性示出了四路处理器的环形结构示意图,如图2B所示,多处理器系统中存在处理器0、1、2和3这四个处理器,且这四个处理器为环形结构的连接方式,例如,处理器0连接处理器1,处理器1连接处理器2,处理器2连接处理器3,处理器3再连接回处理器0;针对一个处理器而言,该处理器与相连接的另一个处理器存在数据发送和数据接收的数据链路,例如处理器0与处理器1之间存在接收的数据链路和发送的数据链路(如图2B中箭头所示),因此在环形结构的四路处理器中可以存在8条数据链路(如图2B中8条箭头所示)。图2C示例性的示出了四路处理器的链形结构示意图,结合图2B和图2C所示,在链形结构中,处理器3不再连接回处理器0,因此在链形结构的四路处理器中可以存在6条数据链路(如图2C中6条箭头所示)。
综上描述,在多处理器系统中,数据安全性至少存在如下威胁:处理器之间用于加密的密钥,容易在密钥协商时被中间人攻击破解;多处理器系统的结构存在复杂性,所有数据链路均使用相同密钥,则存在一条数据链路的密钥被破解,所有数据链路的密钥均被破解的风险,难以满足多处理器系统复杂的加密需求。基于此,本申请实施例提供新型的密钥配置方案,以为多处理器系统的每条数据链路单独配置密钥,为每条数据链路的单独加密提供基础,进而为提升处理器之间的数据传输安全性提供可能;同时,在以本申请实施例提供的密钥配置方案配置数据链路的密钥后,本申请实施例提供处理器之间相应的数据传输方案,以在处理器之间进行数据传输时,提升数据传输的安全性。
本申请实施例提供的密钥配置方案可以分为密钥初始化过程和密钥更新过程。密钥初始化过程用于为多处理器系统的每条数据链路在初始化时配置密钥,密钥更新过程用于为已配置密钥的数据链路进行密钥更新。下面将分别进行说明。
需要说明的是,多处理器系统中每条数据链路的物理实现方式可以是相同的,因此本申请实施例可以设计一条数据链路的密钥配置逻辑,并且其他数据链路可复用该密钥配置逻辑,以实现每条数据链路基于相同的密钥配置逻辑分别单独配置密钥,从而将多处理器系统复杂的加密配置和控制,变成多条数据链路的加密配置和控制的集合。在此基础上,为使得不同数据链路具有配置不同密钥的可能,本申请实施例可为不同数据链路设置不同的用于密钥协商的基础信息,以实现不同数据链路在分别单独协商密钥的情况下,协商出不同的密钥。
在上述思路下,以为多处理器系统中的一个处理器的一条数据链路配置密钥为例,图3A示例性的示出了本申请实施例提供的密钥配置方法的可选流程图。通过图3A所示方法流程,本申请实施例可为多处理器系统中的第一数据链路配置密钥,第一数据链路可以是多处理器系统中任一处理器与另一处理器相连接的数据链路,例如第一数据链路可以是第一处理器连接第二处理器的数据链路,第一处理器和第二处理器可以是多处理器系统中任意两个相连接的处理器。在一个示例中,图3B示例性的示出了双路处理器的示例图,如图3B所示,处理器1(第一处理器的一种示例)存在向处理器2(第二处理器的一种示例)发送数据的数据链路301,以及接收处理器2发送数据的数据链路302,以第一数据链路为处理器1向处理器2发送数据的数据链路301为例,本申请实施例可利用图3A所示的方法流程,为数据链路301配置密钥。
参照图3A所示,本申请实施例提供的密钥配置方法可以包括如下步骤。
在步骤S310中,芯片上电或复位后,第一处理器响应于第一数据链路的密钥配置请求,生成第一随机数。
在步骤S311中,第一处理器将第一随机数传输给第二处理器。
在步骤S312中,芯片上电或复位后,第二处理器响应于第一数据链路的密钥配置请求,生成第二随机数。
在步骤S313中,第二处理器将第二随机数传输给第一处理器。
在芯片上电或复位后,本申请实施例可为数据链路初始化密钥,例如为多处理器系统中的每条数据链路分别初始化密钥。针对第一数据链路,基于第一数据链路为第一处理器向第二处理器传输数据的数据链路,第一处理器和第二处理器可在芯片上电或复位后,为第一数据链路协商密钥,从而实现为第一数据链路配置密钥。区别于图2A所示的处理器之间传输加密后的密钥,来实现密钥协商的过程,本申请实施例并不在第一处理器和第二处理器之间传输加密后的密钥,而是由第一处理器和第二处理器交换各自生成的随机数后,由第一处理器和第二处理器各自生成密钥,从而减小密钥在处理器间传输而存在被攻击破解的风险,本申请实施例可选的密钥协商过程可以如下文描述所示。
在一些实施例中,第一数据链路的密钥可以分别存储在第一处理器和第二处理器的内部,在芯片上电或复位后,如果第一处理器和第二处理器各自检测内部未存储有第一数据链路的密钥,则可各自响应第一数据链路的密钥配置请求,为第一数据链路进行密钥协商。在第一数据链路的密钥协商过程中,第一处理器和第二处理器可分别生成随机数,并交换各自生成的随机数。为便于说明,第一处理器针对第一数据链路的密钥协商所生成的随机数可称为第一随机数,第二处理器针对第一数据链路的密钥协商所生成的随机数可称为第二随机数,第一处理器可将第一随机数传输给第二处理器,第二处理器可将第二随机数传输给第一处理器,以实现第一处理器和第二处理器针对第一数据链路的密钥协商进行随机数交换。
在步骤S314中,第一处理器调用预先配置的第一数据链路的密钥派生信息,根据所述密钥派生信息、第一随机数和第二随机数,生成为第一数据链路配置的密钥。
在步骤S315中,第二处理器调用预先配置的第一数据链路的密钥派生信息,根据所述密钥派生信息、第一随机数和第二随机数,生成为第一数据链路配置的密钥。
本申请实施例可以在各条数据链路连接的处理器中,分别配置生成各条数据链路的密钥派生信息,一条数据链路的密钥派生信息可以视为是该数据链路用于派生密钥的密钥派生函数,数据链路的密钥派生信息可以看作是数据链路连接的处理器共享的用于派生密钥的秘密信息。作为可选实现,本申请实施例可为不同的数据链路配置不同的密钥派生信息,从而为不同数据链路协商出不同的密钥提供可能。作为可选实现,数据链路的密钥派生信息并不通过处理器之间的数据通信来传输,而是可以预先写入数据链路连接的处理器内部,避免密钥派生信息在处理器之间传输而导致的泄露风险。
在本申请实施例中,针对第一数据链路,本申请实施例可将第一数据链路的密钥派生信息预先配置在第一处理器和第二处理器的内部,从而第一处理器和第二处理器在为第一数据链路协商密钥的情况下,第一处理器和第二处理器在交换各自生成的随机数后,可分别调用预先配置的第一数据链路的密钥派生信息,从而分别根据第一数据链路的密钥派生信息、第一处理器和第二处理器交换的各自生成的随机数,生成第一数据链路的密钥,使得第一处理器和第二处理器可各自为第一数据链路确定出相同的密钥,实现第一数据链路的密钥协商。
在进一步的一些实施例中,为进一步保障第一数据链路的密钥协商安全性,本申请实施例还可在第一处理器和第二处理器的内部,为第一数据链路预先配置合法的处理器身份信息,从而第一处理器和第二处理器在分别生成第一数据链路的密钥后,可分别交换处理器的身份信息(例如第一处理器将自身的身份信息传输给第二处理器,第二处理器将自身的身份信息传输给第一处理器),第一处理器和第二处理器在分别验证对方的身份信息为合法的处理器身份信息时,才确认生成的第一数据链路的密钥合法可用。例如,第一处理器在验证第二处理器的身份信息为第一数据链路的合法处理器身份信息,第二处理器在验证第一处理器的身份信息为第一数据链路的合法处理器身份信息,才确认各自生成的第一数据链路的密钥合法可用。
可以看出,本申请实施例在为第一数据链路进行密钥协商时,第一处理器和第二处理器是通过预先配置的第一数据链路的密钥派生信息,以及交换的各自生成的第一随机数和第二随机数,来生成第一数据链路的密钥;由于密钥派生信息并不在第一处理器和第二处理器之间进行传输,因此就算攻击者以中间人的攻击方式获得第一随机数和第二随机数,也会因缺少密钥派生信息而无法破解第一数据链路的密钥,减少了第一数据链路协商的密钥被破解窃取的风险。进一步的,在设置第一处理器和第二处理器完成对方身份信息的验证后,才确认协商的第一数据链路的密钥合法可用,能够在中间人没有处理器身份信息的情况下,有效保障第一数据链路协商的密钥安全性。
在进一步的一些实施例中,第一处理器和第二处理器可将生成的第一数据链路的密钥保存在内部,以便后续使用第一数据链路传输数据时,能够通过内部保存的第一数据链路的密钥实现数据加解密。作为可选实现,多处理器系统中的每个处理器均可以设置内部存储器以及用于对数据进行加解密的安全模块。在一个示例中,在图3B所示双路处理器的基础上,图3C进一步示出了双路处理器的另一示例图,如图3C所示,处理器1可设置安全模块101和内部存储器102,处理器2可设置安全模块201和内部存储器202。安全模块用于对处理器的数据链路上传输的数据进行加解密、身份认证等处理;内部存储器用于存储处理器的各条数据链路的密钥。例如,处理器1在通过数据链路301发送数据时,处理器1内部的安全模块101可获取内部存储器102中保存的数据链路301的密钥,从而根据数据链路301的密钥对要发送的数据进行加密,将加密后的数据通过数据链路301传输给处理器2;从而,处理器2内部的安全模块201可调用内部存储器202中保存的数据链路301的密钥,对数据链路301所传输的加密后的数据进行解密,以得到处理器1传输给处理器2的数据。
在进一步的一些实施例中,处理器在协商得到所连接的数据链路的密钥后,可将数据链路的密钥保存在内部存储器的密钥存储区。例如,第一处理器可在第一处理器的内部存储器的密钥存储区中,保存第一处理器所连接的数据链路的密钥(包含第一数据链路的密钥)。也就是说,针对第一处理器而言,第一处理器的内部存储器中可以设置密钥存储区,该密钥存储区可存储第一处理器的各条数据链路的密钥(每条数据链路的密钥协商过程可参照前文描述),多处理器系统中任一处理器的内部存储器的情况类似。例如,以图3C所示示例为基础,图3D进一步示出了双路处理器的再一示例图。如图3D所示,基于处理器1具有数据链路301和数据链路302,内部存储器102中可设置密钥存储区,以存储数据链路301和数据链路302的密钥;同时,基于处理器2具有数据301和数据链路302,内部存储器202中可设置密钥存储区,以存储数据链路301和数据链路302的密钥。
在一些实施例中,处理器的内部存储器中的密钥存储区,可以为处理器连接的各条数据链路的密钥设置固定存储地址,并且处理器所连接的各条数据链路的密钥具有不同的固定存储地址;从而处理器在将数据链路的密钥存储在密钥存储区时,可根据固定存储地址,将该数据链路的密钥保存在密钥存储区。作为可选实现,本申请实施例在将第一数据链路的密钥存储在第一处理器的密钥存储区时,第一处理器可根据第一数据链路的密钥在该密钥存储区的固定存储地址,将第一数据链路的密钥保存在该密钥存储区;其中,第一处理器的各条数据链路的密钥,在该密钥存储区分别具有不同的固定存储地址。例如,结合图3D所示,内部存储器102中的密钥存储区针对数据链路301和302的密钥可具有不同的固定存储地址,从而数据链路301的密钥可根据对应的固定存储地址,存储在内部存储器102的密钥存储区中,数据链路302的密钥可根据对应的固定存储地址,存储在内部存储器102的密钥存储区中。
在进一步的一些实施例中,为保障密钥在密钥存储区的安全性,本申请实施例可将密钥存储区配置为由处理器的特定IP(知识产权)器件访问,其他针对密钥存储区的访问均不能得到数据链路的密钥,以保证数据链路的密钥的安全性。
作为可选实现,密钥存储区的管理可由处理器的安全模块负责,例如,处理器的内部存储器中存储的密钥等信息由安全模块统一管理,安全模块根据数据链路的密钥对应的固定存储地址,从内部存储器的密钥存储区读取密钥后进行数据的加解密操作。
作为可选实现,处理器中设置的内部存储器可以是FLASH存储器,FLASH存储器是非易失存储器,掉电后密钥仍能保存,可以满足密钥的历史调用需求。作为可选实现,处理器可通过软件方式协商所连接的各条数据链路的密钥,并分发至处理器内部的FLASH存储器中。内部存储器(例如FLASH存储器)的控制模块中,增加密钥管理的逻辑,并配置为由处理器的特定IP器件访问,可以保证密钥存储的安全性。处理器中的安全模块可以是处理器中负责数据安全的硬件或者软件功能模块。
前文描述了在初始化情况下,为第一数据链路配置密钥并且在第一处理器的内部存储器中进行保存的内容,针对多处理器系统中的每条数据链路,本申请实施例可根据上文描述的密钥配置方案,分别为每条数据链路单独配置密钥,且使得部分或者全部数据链路的密钥不同。基于数据链路的密钥由密钥派生信息和随机数得到,因此本申请实施例可通过设置不同数据链路具有不同的密钥派生信息和/或随机数,而使得为不同数据链路配置的密钥不同。例如,针对第一处理器,第一处理器可以具有多条数据链路,该多条数据链路分别单独配置密钥,且部分或全部数据链路配置的密钥不同;其中,数据链路配置的密钥不同由生成密钥的密钥派生信息和/或随机数不同决定。
在进一步的一些实施例中,本申请实施例在为第一数据链路配置密钥,并保存在第一数据链路所连接的第一处理器和第二处理器的内部后,为便于在数据传输时,第一数据链路具有相应的加密配置进行数据加密传输,本申请实施例还可进一步为第一数据链路设置加密配置信息。作为可选实现,一条数据链路的加密配置信息可以包括如下至少一项:数据链路的加密方式、数据链路是否使能加密功能,数据链路是否使能加密自检功能。相应的,本申请实施例可为第一数据链路设置加密方式、是否使能加密功能、是否使能加密自检功能等信息,以实现为第一数据链路设置加密配置信息,下面将分别对此进行说明。
在设置第一数据链路的加密配置信息时,本申请实施例可设置第一数据链路的加密方式,例如,第一数据链路使用的加密算法等。作为可选实现,配置不同的加密方式,可以使得数据链路上传输的数据能够在不同的加密算法间切换的进行加密;加密算法的选择可根据实际情况而定,本申请实施例并不设限,例如在更着重考虑安全性时,使用安全性高的加密算法,在更着重考虑加密速度时,可以切换使用更快速的加密算法。
在设置第一数据链路的加密配置信息时,本申请实施例可设置第一数据链路是否使能加密功能,若使能加密功能,则启用数据加密功能,相应的第一数据链路上传输的数据以密钥进行加密后传输,若不使能加密功能,则不启用数据加密功能,相应的第一数据链路上传输的数据为明文传输。
在设置第一数据链路的加密配置信息时,本申请实施例可设置第一数据链路是否使能加密自检功能,若使能加密自检功能,则在为第一数据链路配置密钥后,预先使用密钥进行数据加密后在第一数据链路上进行传输,以检测基于第一数据链路的密钥进行数据加密是否能够正常运行;若不使能加密自检功能,则在为第一数据链路配置密钥后,不预先进行上述加密自检检查过程。作为可选实现,加密自检功能可由处理器软件完成,也可以由处理器的安全模块完成。
作为可选实现,处理器所连接的数据链路的加密配置信息可以配置在处理器的寄存器中,例如配置在处理器的安全模块对应的寄存器中。例如,针对第一处理器,本申请实施例可在第一处理器的寄存器中配置第一数据链路的加密配置信息,其中,第一处理器的寄存器可配置有第一处理器的各条数据链路的加密配置信息。
结合前文描述来看,本申请实施例提供的密钥配置方案可以分为;为数据链路协商密钥、密钥存储、加密配置、加密自检等阶段。图4A示例性的示出了密钥配置过程的阶段示意图,可进行参照。如图4A所示,数据链路的密钥配置过程可以包括:上电/复位阶段410、密钥协商阶段420、密钥存储阶段430、加密配置阶段440、和加密自检阶段450。下面将结合前文描述的内容,对各阶段的可选执行过程进行示例性的介绍。
在上电/复位阶段410,芯片上电或者复位,处理器可检测到上电或者复位信号,此时,处理器中的安全模块有关加密的部分会进行复位处理,安全模块内的寄存器置位,所有的功能回到初始状态。
在密钥协商阶段420,处理器的安全模块在通过处理器连接的数据链路,进行数据传输时,需要利用数据链路的密钥来进行数据加解密工作。如果处理器的安全模块识别到,处理器的内部存储器中(例如FLASH存储器中)未保存数据链路的密钥,则处理器的安全模块与数据链路连接的另一处理器进行密钥协商。作为可选实现,密钥协商过程可以通过处理器的软件程序执行实现。
在一个示例中,以图3C所示处理器1的安全模块101,检测到内部存储器102的密钥存储区未存储数据链路301的密钥为例,处理器1与处理器2协商数据链路301的密钥的过程可以结合图4B所示。图4B示出了数据链路的密钥协商过程示例图,各个数据链路的密钥协商过程可以同理实现,只是不同数据链路使用的密钥派生信息、随机数可能不同。
如图4B所示,处理器1和处理器2的内部可以预先设置数据链路301的密钥派生信息,处理器1和处理器2在检测到上电或者复位信号后,处理器1生成随机数421,处理器2生成随机数422;处理器1将随机数421发送给处理器2,从而处理器2接收随机数421;处理器2将随机数422发送给处理器1,从而处理器1接收随机数422;处理器1根据随机数421,随机数422和数据链路301的密钥派生信息,计算数据链路301的密钥;处理器2根据随机数421,随机数422和数据链路301的密钥派生信息,计算数据链路301的密钥。可以看出,在本申请实施例提供的密钥协商过程中,用于生成数据链路的密钥的密钥派生信息并不在处理器之间传输,因此本申请实施例可以安全地在两个处理器之间协商出,该两个处理器所连接的数据链路的密钥,保证了数据链路的密钥的机密性,提升了协商的数据链路的密钥的安全性。
多处理器系统中的各个处理器可复用上述的密钥配置逻辑,以使得各个处理器分别单独的为所连接的数据链路配置密钥,使得多处理器系统中的多条数据链路可分别单独配置密钥,避免多条数据链路均使用相同的密钥而导致一条数据链路的密钥被破解影响多处理器系统的整体数据安全的问题,从而提升多处理器系统的数据安全性。
在一些实施例中,处理器之间协商数据链路的密钥所使用的密钥协商算法可以具有多种,例如非对称算法、基于共享秘密、基于DH密钥交换的,实际应用可以灵活选用密钥协商的具体方式。
在密钥存储阶段430,处理器协商出数据链路的密钥后,可将处理器所连接的数据链路的密钥存储在内部存储器中。以处理器内部设置FLASH存储器为例,以图3C示例为基础,图4C示例性的示出了保存数据链路的密钥的示例图,如图4C所示,在芯片上电或者复位后,当处理器1和2通过软件协商出数据链路301的密钥后,数据链路301的密钥可以分发到处理器1的FLASH存储器中,以及处理器2的FLASH存储器中。关于密钥存储的相关内容可参照前文相应部分的描述,此处不再展开。
在加密配置阶段440,本申请实施例主要在为数据链路协商密钥并存储后,在处理器的寄存器中配置数据链路的加密配置信息。在一些实施例中,加密配置可以是通过软件在安全模块的寄存器中,为处理器所连接的数据链路进行加密层面的信息配置,从而安全模块在通过数据链路进行数据传输时,可以读取寄存器中数据链路相应的加密配置信息,确认是否启动数据加密功能、数据加密使用的加密方式等信息。作为可选实现,由于每条数据链路的加密配置信息记录在连接的处理器的寄存器中,因此多处理器系统中的每条数据链路的加密配置信息可以不同,并且分开单独配置。
作为可选实现,结合图4D所示的加密配置过程示例图,加密配置阶段可以包括:配置是否使能加密功能的阶段441、加密方式选择阶段442、和配置是否使能加密自检功能的阶段443;各个阶段需要实现的功能可参照前文相应部分的描述,此处不再展开。
加密自检阶段450,本申请实施例可在数据链路的加密配置信息为配置了使能加密自检功能的情况下,执行加密自检阶段。需要介绍的是,在为数据链路配置密钥后,为了确保加解密功能的正确性,在初始化过程中可以加入数据链路的加密自检环节。当数据链路配置加密功能的使能后,本申请实施例可以配置加密自检功能的使能,以在后续正式对数据链路上传输的数据进行加密前,预先基于配置的预设值的进行数据加密功能的自检。
作为可选实现,以对第一数据链路进行加密自检为例,图5A示例性的示出了本申请实施例提供的加密自检的可选方法流程图。参照图5A,该方法流程可以包括如下步骤。
在步骤S510中,第一处理器响应于第一数据链路的加密配置信息中加密自检功能的使能,确定第一数据链路预先配置的预设值。
本申请实施例可为数据链路的加密自检功能预先配置用于加密自检的预设值,并将预设值预先录入数据链路所连接的处理器中,例如针对第一数据链路,本申请实施例可将用于第一数据链路的加密自检的预设值,预先录入第一处理器和第二处理器;也就是说,所述预设值可以预先配置在第一数据链路连接的第一处理器和第二处理器中。该预设值可以视为是加密自检时,用于在数据链路上传输的数据。作为可选实现,不同数据链路可以设置相同或者不同的用于加密自检的预设值,本申请实施例并不设限。
在步骤S511中,第一处理器调用所述第一数据链路的密钥,对所述预设值进行加密。
在步骤S512中,第一处理器将加密后的加密值传输给第二处理器。
第一数据链路为第一处理器与第二处理器连接的数据链路,此时第一数据链路存在两种可能,第一数据链路为第一处理器向第二处理器发送数据的数据链路,或者,第一数据链路为第一处理器接收第二处理器发送的数据的数据链路(即第一处理器通过第一数据链路接收第二处理器的数据)。本申请实施例以第一数据链路为第一处理器向第二处理器发送数据的链路为例,进行说明,此时,第一处理器可调用第一数据链路的密钥(例如第一处理器的安全模块,可从第一处理器的内部存储器中调用第一数据链路的密钥),对所述预设值进行加密,并将加密后的加密值传输给第二处理器(例如第一处理器通过第一数据链路,将加密后的加密值传输给第二处理器)。
在步骤S513中,第二处理器调用所述第一数据链路的密钥,对所述加密值进行解密,以得到解密值。
在步骤S514中,第二处理器若识别解密值与预设值相同,则确定第一数据链路的加密自检通过;若识别解密值与预设值不同,则确定第一数据链路的加密自检失败。
第二处理器在获取第一处理器传输的加密值后,可调用已协商的第一数据链路的密钥(例如第二处理器的安全模块,可从第二处理器的内部存储器中调用第一数据链路的密钥),对加密值进行解密。基于预设值已预先配置在第一处理器和第二处理器内部,第二处理器可判定解密值与预设值是否相同,若相同,则可确定加密自检通过,后续可正常使用第一数据链路的密钥对第一数据链路传输的数据进行加解密;若不同,则可确定加密自检失败,第二处理器可输出提示信息,以重新协商第一数据链路的密钥或者进行其他干预处理。可见,在第一数据链路为第一处理器向第二处理器传输数据的链路时,第二处理器可通过第一数据链路的密钥对第一处理器传输的加密值进行解密,然后通过比对解密值与所述预设值是否相同,以确定加密自检结果。
在其他可能的实现中,如果第一数据链路为第一处理器接收第二处理器发送的数据的链路,则第二处理器可对预设值进行加密后,通过第一数据链路将加密值传输给第一处理器,从而第一处理器可接收第二处理器调用第一数据链路的密钥对预设值进行加密后的加密值;进而,第一处理器可根据所述第一数据链路的密钥,对所述加密值进行解密,并通过比对解密值与所述预设值是否相同,以确定加密自检结果。
在一个示例中,以图3C示例为基础,图5B示例性的示出了加密自检过程的示例图,如图5B所示,在芯片上电或者复位后,处理器1与处理器2完成数据链路301的密钥协商并存储密钥后,若数据链路301配置了加密功能的使能,以及配置了加密自检功能的使能,则在配置加密自检功能的使能时,处理器1与处理器2中可配置相同的预设值B1,从而处理器1可调用存储的数据链路301的密钥,对预设值B1进行加密,得到加密值B2;处理器1将加密值B2发送至处理器2;处理器2调用存储的数据链路301的密钥,解密加密值B2,得到解密值B3;进而处理器2可判定解密值B3与已配置的预设值B1是否相同,若是,则加密自检通过,若否,则加密自检失败。
前文描述的密钥配置方案可以是在为数据链路初始化密钥时执行,例如,在为多处理器系统中的处理器初始化数据链路的密钥时,第一处理器可获得第一数据链路的密钥配置请求,从而与第二处理器协商第一数据链路的密钥并进行密钥保存和加密配置。作为可选实现,上述数据链路初始化密钥的时机可以发生在芯片上电或者复位时。
在进一步的可选实现中,本申请实施例也可对数据链路已配置的密钥进行更新,例如,在对第一数据链路已配置的密钥进行更新时,第一处理器可获得所述第一数据链路的密钥配置请求,从而与第二处理器协商第一数据链路的密钥并进行密钥保存和加密配置。作为可选实现,数据链路的密钥可以在数据链路连接的处理器之间完成一次数据通话之后进行更新,以实现处理器之间的一次通话使用一个密钥,当然,数据链路的密钥更新也可以具有其他条件,本申请实施例对此并不设限。
在一个示例中,芯片上电之后存在初始化的过程,如果多处理器系统中的全部或部分数据链路默认为需要进行数据加密,则在芯片的初始化过程中,可以为数据链路加入初始化密钥的过程。在芯片上电之后,芯片的初始化完成,如果某条数据链路的密钥需要更新(可以由用户指定需要更新密钥的数据链路,也可以是芯片自动定时更新数据链路的密钥等),此时需要再为更新密钥的数据链路进行一次密钥协商,数据链路更新密钥的过程与初始化时为数据链路配置密钥的过程相同,只是一个发生在芯片初始化时,一个发生在芯片初始化后。也就是说,为数据链路初始化密钥和更新密钥的逻辑是相同的,只是执行时机不同。
进一步的,在完成加密自检阶段450之后,处理器可以在通过数据链路进行数据传输时,正常进行数据的加解密工作。
本申请实施例能够解决多处理器系统的加密控制问题,在进行数据链路的密钥协商和分发的情况下,控制处理器配合软件实现密钥的协商、存储和更新,可以实现每条链路的单独加密(甚至是处理器间的一次通话一个密钥),加密自检等功能。能够在多处理器系统的复杂结构下,实现多处理器系统的加密控制,以满足多处理器系统复杂的加密需求,比如每条数据链路单独加密,数据链路的密钥的存储与更新等,从而为多处理器系统的数据传输安全提供技术支持。
在利用本申请实施例提供的密钥配置方法为第一处理器的第一数据链路配置密钥时,第一处理器可响应于第一数据链路的密钥配置请求,与第二处理器交换各自生成的随机数,其中,所述第一处理器与所述第二处理器通过所述第一数据链路单向的传输数据;从而在一数据链路的密钥派生信息预先配置在第一数据链路连接的第一处理器和第二处理器中时,第一处理器可调用预先配置的第一数据链路的密钥派生信息,根据所述密钥派生信息、第一处理器和第二处理器各自生成的随机数,生成为第一数据链路配置的密钥,所述第一数据链路的密钥用于对第一数据链路上传输的数据进行加解密,实现为第一数据链路配置密钥。其中,第一处理器可以为多处理器系统中的任一处理器,第一处理器可以具有至少一条数据链路,一条数据链路为处理器之间单向传输数据的链路。本申请实施例以多处理器系统中第一处理器连接的第一数据链路配置密钥为例,说明了本申请实施例为多处理器系统中的数据链路配置密钥的实现逻辑,每条数据链路可复用相同的实现逻辑以单独的配置密钥,并且通过设置不同的密钥派生信息和/或随机数,以使得不同数据链路能够配置不同的密钥。
可以看出,本申请实施例提供的密钥配置方法在为数据链路配置密钥时,并不在处理器之间传输数据链路加密的密钥,而是基于处理器内部预先配置的数据链路的密钥派生信息,以及与数据链路连接的处理器交换的随机数,来生成数据链路的密钥,因此就算攻击者以中间人的攻击方式获得随机数,攻击者也会因缺少密钥派生信息而无法破解数据链路的密钥,减少了数据链路协商的密钥被破解窃取的风险,提升了数据链路的密钥安全性,为数据链路上传输的数据的安全性提供了保障。并且,多处理器系统中的每条数据链路可复用相同的实现逻辑以单独的配置密钥,并且通过设置不同的密钥派生信息和/或随机数,可使得不同数据链路能够配置不同的密钥,避免多条数据链路配置相同密钥时,一条数据链路的密钥被破解而影响多处理器系统整体安全的问题。本申请实施例以为多处理器系统的每条数据链路单独配置密钥,并且保障数据链路配置的密钥的安全性,为每条数据链路的单独加密提供了基础,进而为提升处理器之间的数据传输安全性提供了可能。
基于本申请实施例配置的数据链路的密钥,本申请实施例进一步提供处理器之间的数据传输方案。作为可选实现,以第一处理器通过第一数据链路与第二处理器进行数据传输为例,图6示例性的示出了本申请实施例提供的数据传输方法的可选流程图,需要说明的是,多处理器系统的每条数据链路可同理复用图6所示方法流程,以实现处理器之间的数据传输。参照图6,该方法流程可以包括如下步骤。
在步骤S610中,第一处理器确定目标数据,所述目标数据通过第一处理器的第一数据链路进行传输,所述第一处理器与所述第二处理器通过所述第一数据链路单向的传输数据。
目标数据可以是通过第一数据链路传输的数据,基于第一数据链路可能是第一处理器向第二处理器传输数据的链路,也可能是第一处理器接收第二处理器发送的数据的链路,因此目标数据可能是第一处理器待发送给第二处理器的数据,也可能是第二处理器通过第一数据链路发送给第一处理器的加密的数据(该加密的数据通过第一数据链路的密钥进行后加密)。
在一些实施例中,第一处理器的安全模块可确定所述目标数据,例如安全模块可确定第一处理器待传输给第二处理器的明文数据,或者,第二处理器通过第一数据链路传输的加密的数据。
在步骤S611中,第一处理器调用所述第一处理器中存储的所述第一数据链路预先配置的密钥。
在步骤S612中,第一处理器根据所述第一数据链路的密钥,对所述目标数据进行加解密。
为第一数据链路预先配置密钥的过程可参照前文相应部分的描述,此处不再展开。第一处理器在确定目标数据后,可以调用第一处理器中存储的所述第一数据链路的密钥,作为可选实现,第一处理器的安全模块可从内部存储器中调用第一数据链路的密钥。例如,第一处理器的安全模块可从第一处理器的内部存储器的密钥存储区中,读取所述第一数据链路的密钥,其中,所述密钥存储区存储有第一处理器的各条数据链路的密钥。
在进一步的一些实施例中,所述第一处理器具有多条数据链路,该多条数据链路分别单独配置密钥,且部分或全部数据链路配置的密钥不同;其中,数据链路配置的密钥不同由生成密钥的密钥派生信息和/或随机数不同决定。
在更进一步的可选实现中,第一处理器的安全模块可根据第一数据链路的密钥在密钥存储区的固定存储地址,从密钥存储区中读取第一数据链路的密钥;其中,所述第一处理器的各条数据链路的密钥,在所述密钥存储区分别具有不同的固定存储地址,所述密钥存储区被配置为由所述第一处理器的特定IP访问。
基于第一数据链路可能是第一处理器向第二处理器传输数据的链路,也可能是第一处理器接收第二处理器发送的数据的链路,因此第一处理器在调用第一数据链路的密钥后,是基于具体情况,以所述第一数据链路的密钥,对所述目标数据进行加解密。
作为可选实现,如果第一数据链路为第一处理器向第二处理器发送数据的链路,则第一处理器(例如第一处理器的安全模块)可根据所述第一数据链路的密钥,对所述目标数据进行加密,以得到加密数据。进一步的,第一处理器还可将加密数据通过第一数据链路传输给第二处理器,例如,第一处理器的安全模块在利用第一数据链路的密钥,对目标数据进行加密后,第一处理器的安全模块可通过第一数据链路将加密数据传输给第二处理器。
如果第一数据链路为第一处理器接收第二处理器发送的数据的链路,则目标数据为第二处理器发送的根据第一数据链路的密钥进行数据加密后的数据,从而第一处理器(例如第一处理器的安全模块)可根据所述第一数据链路的密钥,对所述目标数据进行解密。
在进一步的一些实施例中,如果第一数据链路配置有加密配置信息,则第一处理器可以是在第一数据链路的加密配置信息为加密功能使能的情况下,才调用第一数据链路的密钥,以利用第一数据链路的密钥,对目标数据进行加解密。作为可选实现,第一处理器可在确定目标数据后,获取第一数据链路预先配置的加密配置信息,响应于该加密配置信息中第一数据链路的加密功能的使能,才进入步骤S611。
进一步的,在第一数据链路为第一处理器向第二处理器传输数据的链路的情况下,第一处理器可基于所述第一数据链路的加密配置信息中配置的加密方式(例如加密算法等),根据所述第一数据链路的密钥,对所述目标数据进行加密,以得到加密数据。
可以理解的是,如果多处理系统的部分数据链路配置了加密功能的使能,而部分数据链路未配置加密功能的使能,则多处理器系统中加密功能使能的数据链路,对数据进行加密传输,加密功能未使能的数据链路,以明文传输数据。示例的,图7示出了多处理器系统的数据链路传输数据的示例图,如图7所示,以处理器0和处理器1之间的数据链路701和702为例,数据链路701为处理器1向处理器0传输数据的链路,数据链路701的加密功能使能,则处理器1向处理器0传输数据时,处理器1的安全模块调用数据链路701的密钥,对数据进行加密后,以密文传输给处理器0;从而处理器0接收密文后,处理器0的安全模块调用数据链路701的密钥,对密文进行解密,得到处理器0传输的数据。数据链路702为处理器0向处理器1传输数据的链路,数据链路702的加密功能未使能,则处理器0向处理器1传输数据时,处理器0直接通过数据链路702向处理器1传输明文。
在一些实施例中,本申请实施例在配置数据链路的加密功能是否使能时,可基于数据链路上传输的数据的安全要求实现,例如数据链路上传输的数据的安全要求较高(例如数据链路上传输的数据为敏感数据、机密数据等),则可配置数据链路的加密功能使能,如果数据链路上传输的数据的安全要求较低,则可配置数据链路的加密功能未使能。当然,本段描述的使能或未使能数据链路的加密功能的方式进行一种示例,本申请实施例也可由用户自定义多处理器系统中需要加密功能使能的数据链路。
本申请实施例提供的密钥配置方案和数据传输方案,可以满足不同结构的多处理器系统的加密要求,实现为多处理器系统的每条数据链路单独配置密钥,单独加密数据,支持一条数据链路配置一个单独的密钥,并且支持密钥随时更新与存储;同时,每条数据链路复用相同的密钥配置逻辑,具有易复用性。本申请实施例可在复杂的多处理器系统中,在不可靠路径上做进行数据的加密传输,能抵御中间人攻击,提升数据传输的安全性。进一步,本申请实施例可支持对数据链路进行加密配置,例如支持数据链路的加密自检等功能,保证了数据链路的数据加密传输的正确性和完整性。
本申请实施例还提供一种处理器,该处理器可以是多处理器系统中的处理器,该处理器可以被配置为执行本申请实施例提供的密钥配置方法,和/或,本申请实施例提供的数据传输方法。
在可选实现中,结合图3C所示,本申请实施例提供的处理器可以包括:内部存储器和安全模块。所述内部存储器设置有密钥存储区,所述密钥存储区存储有所述处理器的各条数据链路的密钥。所述安全模块用于,调用所述内部存储器中存储的数据链路的密钥,对所述处理器的数据链路上传输的数据,进行加解密。
在一些实施例中,处理器中与所述安全模块相关联的寄存器,可以记录有所述处理器的各条数据链路的加密配置信息;其中,数据链路的加密配置信息包括如下至少一项:数据链路的加密方式、数据链路是否使能加密功能,数据链路是否使能加密自检功能。
本申请实施例还提供一种多处理器系统,该多处理器系统可以包括多个处理器以及多条数据链路,一条数据链路为处理器之间单向传输数据的链路;其中,多处理器系统中的处理器可以如上述本申请实施例提供的处理器。
本申请实施例还提供一种芯片,该芯片可以包括本申请实施例上述提供的多处理器系统。
本申请实施例还提供一种电子设备,该电子设备例如服务器设备,或者终端设备。该电子设备可以包括本申请实施例上述提供的芯片。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (22)
1.一种密钥配置方法,其特征在于,应用于第一处理器,所述第一处理器为多处理器系统中的任一处理器,所述第一处理器具有至少一条数据链路,一条数据链路为处理器之间单向传输数据的链路;所述方法包括:
响应于第一处理器的第一数据链路的密钥配置请求,与第二处理器交换各自生成的随机数;其中,所述第一处理器与所述第二处理器通过所述第一数据链路单向的传输数据;
调用预先配置的第一数据链路的密钥派生信息,所述第一数据链路的密钥派生信息预先配置在第一数据链路连接的第一处理器和第二处理器中;
根据所述密钥派生信息、第一处理器和第二处理器各自生成的随机数,生成为第一数据链路配置的密钥,所述第一数据链路的密钥用于对第一数据链路上传输的数据进行加解密。
2.根据权利要求1所述的方法,其特征在于,所述与第二处理器交换各自生成的随机数包括:
生成第一随机数,并将所述第一随机数发送给所述第二处理器;以及,接收所述第二处理器生成的第二随机数;
所述根据所述密钥派生信息、第一处理器和第二处理器各自生成的随机数,生成为第一数据链路配置的密钥包括:
根据所述密钥派生信息、所述第一随机数和所述第二随机数,通过密钥派生算法,生成为第一数据链路配置的密钥。
3.根据权利要求1所述的方法,其特征在于,还包括:
在所述第一处理器的内部存储器的密钥存储区,存储所述第一数据链路的密钥;其中,所述密钥存储区存储有第一处理器的各条数据链路的密钥。
4.根据权利要求3所述的方法,其特征在于,所述在所述第一处理器的内部存储器的密钥存储区,存储所述第一数据链路的密钥包括:
根据第一数据链路的密钥在所述密钥存储区的固定存储地址,将所述第一数据链路的密钥保存在所述密钥存储区;其中,所述第一处理器的各条数据链路的密钥,在所述密钥存储区分别具有不同的固定存储地址,所述密钥存储区被配置为由所述第一处理器的特定IP访问。
5.根据权利要求1所述的方法,其特征在于,所述第一处理器具有多条数据链路,该多条数据链路分别单独配置密钥,且部分或全部数据链路配置的密钥不同;其中,数据链路配置的密钥不同由生成密钥的密钥派生信息和/或随机数不同决定。
6.根据权利要求1所述的方法,其特征在于,还包括;
在所述第一处理器的寄存器中配置所述第一数据链路的加密配置信息,其中,所述寄存器配置有所述第一处理器的各条数据链路的加密配置信息。
7.根据权利要求6所述的方法,其特征在于,数据链路的加密配置信息包括如下至少一项:数据链路的加密方式、数据链路是否使能加密功能、数据链路是否使能加密自检功能。
8.根据权利要求7所述的方法,其特征在于,还包括:
响应于所述第一数据链路的加密配置信息中加密自检功能的使能,确定第一数据链路预先配置的预设值,所述预设值预先配置在第一数据链路连接的第一处理器和第二处理器中;
若第一数据链路为第一处理器向第二处理器发送数据的链路,则调用所述第一数据链路的密钥,对所述预设值进行加密,将加密后的加密值传输给第二处理器;或者,若第一数据链路为第一处理器接收第二处理器发送的数据的链路,接收所述第二处理器调用第一数据链路的密钥对所述预设值进行加密后的加密值,根据所述第一数据链路的密钥,对所述加密值进行解密,并且比对解密值与所述预设值是否相同,以确定加密自检结果。
9.根据权利要求1-8任一项所述的方法,其特征在于,还包括:
在为多处理器系统中的处理器初始化数据链路的密钥时,获得所述第一数据链路的密钥配置请求,其中,为处理器初始化数据链路的密钥发生在芯片上电或者复位时;
或者,在对所述第一数据链路已配置的密钥进行更新时,获得所述第一数据链路的密钥配置请求。
10.一种数据传输方法,其特征在于,应用于第一处理器,所述第一处理器为多处理器系统中的任一处理器,所述第一处理器具有至少一条数据链路,一条数据链路为处理器之间单向传输数据的链路;所述方法包括:
确定目标数据,所述目标数据通过第一处理器的第一数据链路进行传输,所述第一处理器与所述第二处理器通过所述第一数据链路单向的传输数据;
调用所述第一处理器中存储的所述第一数据链路预先配置的密钥,其中,所述第一数据链路的密钥根据权利要求1-9任一项所述的密钥配置方法预先配置;
根据所述第一数据链路的密钥,对所述目标数据进行加解密。
11.根据权利要求10所述的方法,其特征在于,所述调用所述第一处理器中存储的所述第一数据链路预先配置的密钥包括:
从第一处理器的内部存储器的密钥存储区中,读取所述第一数据链路的密钥,其中,所述密钥存储区存储有第一处理器的各条数据链路的密钥。
12.根据权利要求11所述方法,其特征在于,所述从第一处理器的内部存储器的密钥存储区中,读取所述第一数据链路的密钥包括:
根据第一数据链路的密钥在所述密钥存储区的固定存储地址,从所述密钥存储区中读取第一数据链路的密钥;其中,所述第一处理器的各条数据链路的密钥,在所述密钥存储区分别具有不同的固定存储地址,所述密钥存储区被配置为由所述第一处理器的特定IP访问。
13.根据权利要求10所述的方法,其特征在于,所述第一处理器具有多条数据链路,该多条数据链路分别单独配置密钥,且部分或全部数据链路配置的密钥不同;其中,数据链路配置的密钥不同由生成密钥的密钥派生信息和/或随机数不同决定。
14.根据权利要求10-13任一项所述的方法,其特征在于,所述第一数据链路为第一处理器向第二处理器发送数据的链路;所述根据所述第一数据链路的密钥,对所述目标数据进行加解密包括:
根据所述第一数据链路的密钥,对所述目标数据进行加密,以得到加密数据;
所述方法还包括:
将所述加密数据通过所述第一数据链路传输给第二处理器。
15.根据权利要求14所述的方法,其特征在于,还包括:
获取第一数据链路预先配置的加密配置信息,响应于该加密配置信息中第一数据链路的加密功能的使能,进入所述调用所述第一处理器中存储的所述第一数据链路预先配置的密钥的步骤;
所述根据所述第一数据链路的密钥,对所述目标数据进行加密,以得到加密数据包括:
基于所述第一数据链路的加密配置信息中配置的加密方式,根据所述第一数据链路的密钥,对所述目标数据进行加密,以得到加密数据。
16.根据权利要求10-13任一项所述的方法,其特征在于,所述第一数据链路为第一处理器接收第二处理器发送的数据的链路;所述确定目标数据包括:
获取第二处理器发送的根据第一数据链路的密钥进行数据加密后的目标数据;
所述根据所述第一数据链路的密钥,对所述目标数据进行加解密包括:
根据所述第一数据链路的密钥,对所述目标数据进行解密。
17.一种处理器,其特征在于,所述处理器被配置为执行如权利要求1-9任一项所述的密钥配置方法,和/或,如权利要求10-16任一项所述的数据传输方法。
18.根据权利要求17所述的处理器,其特征在于,所述处理器包括:
内部存储器,所述内部存储器设置有密钥存储区,所述密钥存储区存储有所述处理器的各条数据链路的密钥;
安全模块,所述安全模块用于,调用所述内部存储器中存储的数据链路的密钥,对所述处理器的数据链路上传输的数据,进行加解密。
19.根据权利要求18所述的处理器,其特征在于,所述处理器中与所述安全模块相关联的寄存器,记录有所述处理器的各条数据链路的加密配置信息;其中,数据链路的加密配置信息包括如下至少一项:数据链路的加密方式、数据链路是否使能加密功能,数据链路是否使能加密自检功能。
20.一种多处理器系统,其特征在于,包括:多个处理器以及多条数据链路,一条数据链路为处理器之间单向传输数据的链路;其中,所述处理器如权利要求17-19任一项所述的处理器。
21.一种芯片,其特征在于,包括如权利要求20的多处理器系统。
22.一种电子设备,其特征在于,包括如权利要求21的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210257159.6A CN114598468B (zh) | 2022-03-16 | 2022-03-16 | 密钥配置方法、数据传输方法、处理器、系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210257159.6A CN114598468B (zh) | 2022-03-16 | 2022-03-16 | 密钥配置方法、数据传输方法、处理器、系统及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114598468A CN114598468A (zh) | 2022-06-07 |
CN114598468B true CN114598468B (zh) | 2024-01-19 |
Family
ID=81808792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210257159.6A Active CN114598468B (zh) | 2022-03-16 | 2022-03-16 | 密钥配置方法、数据传输方法、处理器、系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114598468B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI234380B (en) * | 2003-12-31 | 2005-06-11 | Benq Corp | Mobile communication system and verification method |
CN101261675A (zh) * | 2007-03-07 | 2008-09-10 | 英赛康特雷斯公司 | 用于访问nfc芯片组中服务的数据安全加载方法 |
CN103607279A (zh) * | 2013-11-14 | 2014-02-26 | 中国科学院数据与通信保护研究教育中心 | 基于多核处理器的密钥保护方法及系统 |
CN112152802A (zh) * | 2020-09-09 | 2020-12-29 | 深圳市欢太科技有限公司 | 数据加密方法、电子设备及计算机存储介质 |
CN112822177A (zh) * | 2020-12-30 | 2021-05-18 | 中国长城科技集团股份有限公司 | 数据传输方法、装置、设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080282341A1 (en) * | 2007-05-09 | 2008-11-13 | Sony Computer Entertainment Inc. | Methods and apparatus for random number generation in a multiprocessor system |
-
2022
- 2022-03-16 CN CN202210257159.6A patent/CN114598468B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI234380B (en) * | 2003-12-31 | 2005-06-11 | Benq Corp | Mobile communication system and verification method |
CN101261675A (zh) * | 2007-03-07 | 2008-09-10 | 英赛康特雷斯公司 | 用于访问nfc芯片组中服务的数据安全加载方法 |
CN103607279A (zh) * | 2013-11-14 | 2014-02-26 | 中国科学院数据与通信保护研究教育中心 | 基于多核处理器的密钥保护方法及系统 |
CN112152802A (zh) * | 2020-09-09 | 2020-12-29 | 深圳市欢太科技有限公司 | 数据加密方法、电子设备及计算机存储介质 |
CN112822177A (zh) * | 2020-12-30 | 2021-05-18 | 中国长城科技集团股份有限公司 | 数据传输方法、装置、设备和存储介质 |
Non-Patent Citations (3)
Title |
---|
Accelerating private-key cryptography via multithreading on symmetric multiprocessors;P. Dongara等;《2003 IEEE International Symposium on Performance Analysis of Systems and Software. ISPASS 2003》;第58-69页 * |
一种多处理器原型及其系统芯片设计方法;黄凯;殷燎;林锋毅;葛海通;严晓浪;;电子学报(第02期);第305-311页 * |
安全处理器研究进展;赵剑锋等;《信息安全学报》;第3卷(第1期);第132-144页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114598468A (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9954826B2 (en) | Scalable and secure key management for cryptographic data processing | |
US12045355B2 (en) | Cryptographic trust enabled devices of cybersecurity systems | |
JP3999655B2 (ja) | レベル化された機密保護があるアクセス制御のための方法及び装置 | |
US9032192B2 (en) | Method and system for policy based authentication | |
US9674153B2 (en) | Secure data processing | |
EP3584992A1 (en) | Internet of things device | |
KR101484110B1 (ko) | 메모리 컨트롤러 및 그에 따른 메모리 장치 | |
CN110971398A (zh) | 数据处理方法、装置及系统 | |
US8145917B2 (en) | Security bootstrapping for distributed architecture devices | |
US9838868B1 (en) | Mated universal serial bus (USB) wireless dongles configured with destination addresses | |
KR20240011878A (ko) | 감시자 풀이 업데이트되는 서로 다른 네트워크들 간의 자산 전송을 위한 안전하고 신뢰할 수 있는 브릿지 | |
KR20210095038A (ko) | 메모리 스토리지용 어드레스 암호해독 | |
US10931647B2 (en) | Data forwarding system | |
US11997192B2 (en) | Technologies for establishing device locality | |
CN114598468B (zh) | 密钥配置方法、数据传输方法、处理器、系统及相关设备 | |
US20140082364A1 (en) | Collaborative Uses of a Cloud Computing Confidential Domain of Execution | |
EP2575068A1 (en) | System and method for providing hardware-based security | |
US20220191010A1 (en) | Key management in an integrated circuit | |
US20240333513A1 (en) | Systems and Methods for Demonstrating Identity to a Trusted Platform Module | |
EP4145322A1 (en) | Systems and methods for implementing privacy layer in cbdc networks | |
CN116186727A (zh) | 一种数据加密方法、解密方法及其相关设备 | |
KR20230016493A (ko) | 차량 제어 장치 그 제어 방법 | |
CN117375910A (zh) | 一种基于不可信云fpga的可信通信方法及系统 | |
Foltz et al. | INSTITUTE FOR DEFENSE ANALYSES |
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 |