CN113127901A - 一种数据加密传输的处理方法、装置及芯片 - Google Patents
一种数据加密传输的处理方法、装置及芯片 Download PDFInfo
- Publication number
- CN113127901A CN113127901A CN202110431379.1A CN202110431379A CN113127901A CN 113127901 A CN113127901 A CN 113127901A CN 202110431379 A CN202110431379 A CN 202110431379A CN 113127901 A CN113127901 A CN 113127901A
- Authority
- CN
- China
- Prior art keywords
- data
- prediction mode
- destination address
- historical
- chip
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
- Facsimile Transmission Control (AREA)
- Communication Control (AREA)
Abstract
本申请公开了一种数据加密传输的处理方法、装置及芯片,所述方法包括:在接收到芯片对应的第一模块传输来的第一数据的情况下,对所述第一数据进行加密处理,以得到加密的第一数据,并将所述加密的第一数据输入所述芯片中的总线;在有第二数据从所述总线输出的情况下,对所述第二数据进行解密处理,以得到解密的第二数据,并将所述解密的第二数据传输给所述芯片对应的第二模块;其中,所述第一模块和所述第二模块分别为用于实现相应功能的模块。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据加密传输的处理方法、装置及电子设备。
背景技术
探针攻击是一种通过探测SoC片上系统(System on Chip)内的总线、接口或模块等直接获取系统敏感信息的攻击方法,也是最直接最有效的物理攻击方法。探针攻击的重点目标主要有四个部分:片上数据传输、片上数据存储、对外接口通信和片外数据存储。
由于SoC中不同功能模块的数据传输协议和电路结构不同,为了实现针对每个模块的数据加密保护,每个模块都必须设计独立的数据加密方案。
但是,这种数据加密方案存在复杂较高的情况,导致SoC各模块之间的数据加密传输复杂度较高,会引起数据加密传输性能较差的缺陷。
发明内容
有鉴于此,本申请提供一种数据加密传输的处理方法、装置及芯片,用以解决芯片中数据加密传输性能较差的缺陷。
本申请的一个方面提出了一种数据加密传输的处理方法,所述方法包括:
在接收到芯片对应的第一模块传输来的第一数据的情况下,对所述第一数据进行加密处理,以得到加密的第一数据,并将所述加密的第一数据输入所述芯片中的总线;
在有第二数据从所述总线输出的情况下,对所述第二数据进行解密处理,以得到解密的第二数据,并将所述解密的第二数据传输给所述芯片对应的第二模块;
其中,所述第一模块和所述第二模块分别为用于实现相应功能的模块。
上述方法,优选的,对所述第一数据进行加密处理,以得到加密的第一数据,包括:
利用所述第一数据对应的目标数值对所述第一数据进行异或处理,以得到加密的第一数据;
其中,对所述第二数据进行解密处理,以得到解密的第二数据,包括:
利用所述第二数据对应的目标数值对所述第二数据进行异或处理,以得到解密的第二数据。
上述方法,优选的,在接收到芯片中的第一模块传输来的第一数据之前,所述方法还包括:
获得所述第一数据对应的预测目的地址;
根据所述预测目的地址,获得所述第一数据对应的目标数值。
上述方法,优选的,在接收到芯片对应的第一模块传输来的第一数据之后,在利用所述第一数据对应的目标数值对所述第一数据进行异或处理,以得到加密的第一数据之前,所述方法还包括:
判断所述第一数据对应的预测目的地址是否与所述第一数据对应的实际目的地址是否相一致;
如果一致,执行所述步骤:利用所述第一数据对应的目标数值对所述第一数据进行异或处理,以得到加密的第一数据;
如果不一致,根据所述第一数据对应的实际目的地址,重新获得所述第一数据对应的目标数值,执行所述步骤:利用所述第一数据对应的目标数值对所述第一数据进行异或处理,以得到加密的第一数据。
上述方法,优选的,获得所述第一数据对应的预测目的地址,包括:
获得所述总线最近一次所传输的历史数据的历史目的地址;
按照第一预测方式,对所述历史目的地址进行处理,以得到所述第一数据对应的预测目的地址;
其中,所述第一预测方式至少基于所述历史数据的历史目的地址与所述历史数据的预测目的地址之间的对应关系、第二预测方式和所述芯片中的中断请求的类型确定,所述第二预测方式为所述第一预测方式被切换之间的预测方式。
上述方法,优选的,所述第二预测方式为:定态递增预测方式、暂态递增预测方式、定态跳转预测方式、暂态跳转预测方式、定态保持预测方式或暂态保持预测方式;
其中,所述定态递增预测方式、所述暂态递增预测方式、所述定态跳转预测方式和所述暂态跳转预测方式中分别以地址递增的方式在所述历史目的地址的基础上获得预测地址,所述定态保持预测方式和所述暂态保持预测方式中以保持地址的方式在所述历史目的地址的基础上获得预测地址。
上述方法,优选的:
在所述第二预测方式为所述定态递增预测方式的情况下,如果所述历史数据的历史目的地址与所述历史数据的预测目的地址相一致,所述第一预测方式与所述第二预测方式保持一致;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态递增预测方式;
在所述第二预测方式为所述暂态递增预测方式的情况下,如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致且所述中断请求为第一中断类型,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态跳转预测方式;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致且所述中断请求为第二中断类型,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态保持预测方式;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址相一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述定态递增预测方式;
在所述第二预测方式为所述暂态跳转预测方式的情况下,如果所述历史数据的预测目的地址与所述历史数据之前传输在所述总线上的数据的预测目的地址相一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述定态跳转预测方式;如果所述历史数据的预测目的地址与所述历史数据之前传输在所述总线上的数据的预测目的地址为地址递增的关系,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态递增预测方式;如果所述历史数据的预测目的地址与所述历史数据之前传输在所述总线上的数据的预测目的地址为地址保持的关系,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态保持预测方式;
在所述第二预测方式为所述定态跳转预测方式的情况下,如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态跳转预测方式;
在所述第二预测方式为所述暂态保持预测方式的情况下,如果所述历史数据的预测目的地址与所述历史数据之前传输在所述总线上的数据的预测目的地址为地址保持的关系,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述定态保持预测方式;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致且没有新的中断请求,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态递增预测方式;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致且有新的中断请求,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态跳转预测方式;
在所述第二预测方式为所述定态保持预测方式的情况下,如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态保持预测方式。
上述方法,优选的,在对所述第一数据进行加密处理,以得到加密的第一数据之前,所述方法还包括:
读取预设的第一配置参数;
在所述第一配置参数表征需要进行数据加密的情况下,执行所述步骤:对所述第一数据进行加密处理,以得到加密的第一数据;
在所述第一配置参数表征不需要进行数据加密的情况下,将所述第一数据输入所述总线;
其中,在对所述第二数据进行解密处理,以得到解密的第二数据之前,所述方法还包括:
读取预设的第二配置参数;
在所述第二配置参数表征需要进行数据解密的情况下,执行所述步骤:对所述第二数据进行解密处理,以得到解密的第二数据;
在所述第二配置参数表征不需要进行数据解密的情况下,将所述第二数据传输给所述芯片对应的第二模块。
本申请的另一方面还提供了一种数据加密传输的处理装置,至少包括:
加密单元,用于在接收到芯片对应的第一模块传输来的第一数据的情况下,对所述第一数据进行加密处理,以得到加密的第一数据,并将所述加密的第一数据输入所述芯片中的总线;
解密单元,用于在有第二数据从所述总线输出的情况下,对所述第二数据进行解密处理,以得到解密的第二数据,并将所述解密的第二数据传输给所述芯片对应的第二模块;
其中,所述第一模块和所述第二模块分别为用于实现相应功能的模块。
本申请的另一方面还提供了一种芯片,包括:
总线;
处理模块,用于:在接收到所述芯片对应的第一模块传输来的第一数据的情况下,对所述第一数据进行加密处理,以得到加密的第一数据,并将所述加密的第一数据输入所述总线;
所述处理模块,还用于:在有第二数据从所述总线输出的情况下,对所述第二数据进行解密处理,以得到解密的第二数据,并将所述解密的第二数据传输给所述芯片对应的第二模块;
其中,所述第一模块和所述第二模块分别为用于实现相应功能的模块。
从上述技术方案可以看出,本申请公开的一种数据加密传输的处理方法、装置及芯片中,在接收到芯片中的第一模块传输来的第一数据时,对第一数据进行加密处理,再将加密的第一数据传输到芯片中的总线,而有第二数据从总线输出时,对第二数据进行解密处理,进而将解密的第二数据传输给芯片中的第二模块。可见,由于芯片中所有模块之间的数据传输与存储都必须依托于总线才能完成,本申请中通过对传输在总线上的数据进行加密,由此攻击者通过探针探测芯片中的数据时所得到的数据均为经过加密后的数据,而无法获取到任何敏感数据,由此实现对芯片中各个模块传输和存储的数据的保护,同时,无需针对不同模块设计独立的加密方案,从而降低数据加密传输的复杂度,由此在实现芯片中数据加密传输的同时,提高数据加密传输的性能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种数据加密传输的处理方法的流程图;
图2为SoC芯片的结构示意图;
图3为本申请适用于SoC芯片进行数据加密传输的示例图;
图4-图6分别为本申请实施例一提供一种数据加密传输的处理方法的另一流程图;
图7为本申请实施例一提供一种数据加密传输的处理方法的部分流程图;
图8为本申请实施例中地址预测方式的切换示意图;
图9为本申请实施例一提供一种数据加密传输的处理方法的另一流程图;
图10为本申请实施例二提供的一种数据加密传输的处理装置的结构示意图;
图11-图13分别为本申请实施例二提供的一种数据加密传输的处理装置的另一结构示意图;
图14为本申请实施例三提供的一种芯片的结构示意图;
图15为本申请适用于SoC芯片实现数据加密传输时的数据加密流水线示意图;
图16为本申请适用于SoC芯片实现数据加密传输时的分支预测器的状态转换示意图;
图17为本申请适用于SoC芯片实现数据加密传输时的总线架构示意图;
图18为本申请适用于SoC芯片实现数据加密传输时总线写传输的算法流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,为本申请实施例一提供的一种数据加密传输的处理方法的实现流程图,该方法可以适用于需要进行探针攻击防护的芯片中,如SoC芯片等,以实现对芯片上的数据保护。
具体的,本实施例中的方法可以包含以下步骤:
步骤101:接收芯片对应的第一模块传输来的第一数据。
在一种可能的情况下,第一模块可以为芯片中用于实现相应功能的模块,如SoC芯片中的中央处理器CPU(central processing unit)模块、直接存储器访问DMA(DirectMemory Access)模块、静态随机存取存储器SRAM(Static Random-Access Memory)模块或Eflash(embedded Flash)模块等,如图2中所示;
在另一种可能的情况下,第一模块可以为芯片所连接的模块,能够实现相应的功能,如与SoC芯片相连接的外部设备或片外存储等模块,如图2中所示。
其中,第一数据可以为第一模块待传输的数据,可以用Ψ表示,如CPU模块中需要写入到SRAM模块的数据,再如,SRAM模块中需要传输给外部设备的数据,再如,片外存储中需要传输给CPU模块的数据,等等。
具体实现中,步骤101中是在第一模块需要传输第一数据时,对从第一模块传输出来的第一数据进行接收。
步骤102:对第一数据进行加密处理,以得到加密的第一数据。
具体的,本实施例中可以采用所配置的加密算法对第一数据进行加密处理,以得到加密的第一数据。
其中,这里的加密算法可以为序列密码算法、分组密码算法或公钥密码算法等。基于此,可以得到被加密的第一数据,可以用D表示。
步骤103:将加密的第一数据输入芯片中的总线,以使得第一数据在总线中进行传输。
其中,本实施例中将加密的第一数据在总线的输入端输入,这里的输入端可以为总线连接第一模块的一端,如图3中所示。
步骤104:在有第二数据从总线输出的情况下,对第二数据进行解密处理,以得到解密的第二数据。
其中,从总线输出的第二数据可以为加密的第一数据本身,或者从总线输出的第二数据可以为在加密的第一数据之前或之后被传输在总线上的数据。
在一种情况下,从总线输出的第二数据可以为被加密后传输到总线上的数据,基于此,本实施例中在有第二数据从总线输出的情况下,对第二数据解密,具体的,可以采用第二数据被加密时的加密算法对应的解密算法对第二数据进行解密,由此得到解密的第二数据,可以以Γ表示。
步骤105:将解密的第二数据传输给芯片对应的第二模块。
在一种可能的情况下,第二模块可以为芯片中用于实现相应功能的模块。如SoC芯片中的CPU模块、DMA模块、SRAM模块或Eflash模块等;
在另一种可能的情况下,第二模块可以为芯片所连接的模块,能够实现相应的功能,如与SoC芯片相连接的外部设备或片外存储等模块。
其中,第二数据为第二模块需要接收的数据,如SRAM模块需要接收的CPU模块传输的数据,再如外部设备需要接收的SRAM模块所传输的数据,再如CPU模块需要接收的片外存储所传输的数据,等等。
另外,本实施例中接收第二数据是在总线的输出端实现,这里的输出端可以为总线连接第二模块的一端,如图3中所示,由此从总线接收到输出的第二数据经过解密之后可以直接传输给第二模块,可见,在总线上传输的数据为经过加密的数据,不易被攻击。
从上述技术方案可以看出,本申请实施例一提供的一种数据加密传输的处理方法中,在接收到芯片中的第一模块传输来的第一数据时,对第一数据进行加密处理,再将加密的第一数据传输到芯片中的总线,而有第二数据从总线输出时,对第二数据进行解密处理,进而将解密的第二数据传输给芯片中的第二模块。可见,由于芯片中所有模块之间的数据传输与存储都必须依托于总线才能完成,本实施例中通过对传输在总线上的数据进行加密,由此攻击者通过探针探测芯片中的数据时所得到的数据均为经过加密后的数据,而无法获取到任何敏感数据,由此实现对芯片中各个模块传输和存储的数据的保护,同时,无需针对不同模块设计独立的加密方案,从而降低数据加密传输的复杂度,由此在实现芯片中数据加密传输的同时,提高数据加密传输的性能。
需要说明的是,本实施例中可以按照不同的时隙依次对总线上需要传输的多个数据通过以上加密和解密的处理方式进行处理,从而通过数据加密流水线进一步提高数据加密传输的处理效率。
基于以上实现方案,为了进一步加快数据加密传输的处理效率,本实施例中通过改进加密和解密的算法来实现。具体的,步骤102中在对第一数据进行加密处理时,具体可以通过以下步骤实现,如图4中所示:
步骤121:利用第一数据对应的目标数值对第一数据进行异或处理,以得到加密的第一数据。
其中,第一数据对应的目标数值可以基于第一数据对应的目的地址进行处理所得到的目标数值,基于此,第一数据的目标数值是能够通过对第一数据进行处理所得到的,而无需在芯片中进行存储,也能够实现对加密的第一数据从总线被输出时的解密处理。同时,利用目标数值对第一数据进行异或处理实现第一数据加密的处理复杂度明显较低,能够加快数据加密的处理效率。
在此基础上,步骤104中在对第二数据进行解密处理时,可以通过以下步骤实现:
步骤141:利用第二数据对应的目标数值对第二数据进行异或处理,以得到解密的第二数据。
其中,第二数据对应的目标数值可以基于第二数据对应的目的地址进行处理所得到的目标数值,基于此,第二数据的目标数值可以在接收到第二数据之前或者接收到第二数据之后通过对第二数据进行处理所得到,而无需预先在芯片中存储该第二数据对应的目标数值,也能够实现对第二数据的解密。同时,利用目标数值对第二数据进行异或处理实现第二数据的解密的处理复杂度明显较低,能够加快数据解密的处理效率。
基于以上实现方案,第一数据对应的目标数值可以在接收到第一数据之前获得,从而进一步节省数据加密处理所消耗的时长,从而提高处理效率。具体的,在步骤101之前,本实施例中的方法还可以包含以下步骤,如图5中所述:
步骤106:获得第一数据对应的预测目的地址。
其中,第一数据对应的预测目的地址是指在接收到第一数据之前所预测的即将到来的第一数据的目的地址,如对CPU模块传输给SRAM模块的第一数据的目的地址进行预测,得到第一数据对应的预测目的地址,可以以R表示。
步骤107:根据预测目的地址,获得第一数据对应的目标数值。
具体的,本实施例中可以使用预设的密钥输入,如密钥K等,对预测目的地址进行加密处理,从而得到第一数据对应的目标数值,可以以EK(R)表示。
基于此,在步骤101中接收到第一数据之后,就可以直接使用第一数据对应的目标数值对第一数据进行异或处理,从而得到加密的第一数据,而无需等待第一数据被接收到之后,再根据第一数据对应的目的地址获得第一数据对应的目标数值,由此节省加密处理时长,提高处理效率。
同理,在步骤141中对第二数据进行异或处理,以得到解密的第二数据时,可以在第二数据从总线传输出来之前,就先获得第二数据对应的目标数值,具体有以下步骤:
步骤108:获得第二数据对应的预测目的地址,根据第二数据对应的预测目的地址获得第二数据对应的目标数值。
基于此,在等到第二数据从总线输出之后,就可以直接使用第二数据对应的目标数值对第二数据进行异或处理,从而得到解密的第二数据,而无需等待第二数据从总线输出之后再去获得第二数据对应的目标数值,从而节省解密处理时长,提高处理效率。
基于此,为了提高数据加密传输的准确性,本实施例中需要在对第一数据进行加密之前对第一数据对应的预测目的地址是否准确进行判断,也需要在对第二数据进行解密之前对第二数据对应的预测目的地址是否准确进行判断。基于此,本实施例中在步骤101之后,在步骤121之前,还可以执行以下步骤,如图6中所示:
步骤109:判断第一数据对应的预测目的地址是否与第一数据对应的实际目的地址相一致,如果一致,执行步骤121,如果不一致,执行步骤110。
其中,第一数据对应的实际目的地址为准确的目的地址,具体可以在接收到第一数据之后,在第一数据中读取到第一数据对应的实际目的地址,可以以A表示。
基于此,在执行步骤121之前,先将第一数据对应的预测目的地址与第一数据对应的实际目的地址进行比对,以判断两者是否相一致,如果一致,说明第一数据对应的预测目的地址是准确的,此时,直接执行步骤121,直接使用第一数据对应的目标数值对第一数据进行异或处理,从而得到加密的第一数据,且是加密准确的第一数据,如果不一致,则说明第一数据对应的预测目的地址是不准确的,此时执行步骤110。
步骤110:根据第一数据对应的实际目的地址,重新获得第一数据对应的目标数值,再执行步骤121。
也就是说,在第一数据对应的预测目的地址不准确的情况下,需要使用准确的实际目的地址重新获得准确的目标数值。具体的,本实施例中可以使用预设的密钥输入,如密钥K等,对实际目的地址进行加密处理,从而得到第一数据对应的目标数值,可以以EK(A)表示。之后,再执行步骤121,由此使用重新获取的准确的目标数值对第一数据进行异或处理,从而得到加密的第一数据,且是加密准确的第一数据。
同理,在步骤141中对第二数据进行异或处理以得到解密的第二数据之前,还可以执行以下步骤:
步骤111:判断第二数据对应的预测目的地址是否第二数据对应的实际目的地址相一致,如果一致,执行步骤141,如果不一致,执行步骤112。
其中,第二数据对应的实际目的地址为准确的目的地址,具体可以在第二数据从总线输出后,在第二数据中读取到第二数据对应的实际目的地址。
基于此,在执行步骤141之前,先将第二数据对应的预测目的地址与第二数据对应的实际目的地址进行比对,以判断两者是否一致,如果一致,说明第二数据对应的预测目的地址是准确的,此时,直接执行步骤141,直接使用第二数据对应的目标数值对第二数据进行异或处理,从而得到解密的第二数据,且是解密准确的第二数据,如果不一致,则说明第二数据对应的预测目的地址是不准确的,此时执行步骤112。
步骤112:根据第二数据对应的实际目的地址,重新获得第二数据对应的目标数值,再执行步骤141。
也就是说,在第二数据对应的预测目的地址不准确的情况下,需要使用准确的实际目的地址重新获得准确的目标数值。具体的,本实施例中可以使用预设的密钥输入,如密钥K等,对实际目的地址进行加密处理,从而得到第二数据对应的目标数值。之后,再执行步骤141,由此使用重新获取的准确的目标数值对第二数据进行异或处理,从而得到解密的第二数据,且是解密准确的第二数据。
在具体的实现方案中,预测目的地址可以在历史目的地址的基础上进行预测。第一数据对应的预测目的地址与第二数据对应的预测目的地址的预测方案类似,此处以第一数据对应的预测目的地址为例,对预测目的地址的获取方案进行详细说明:
具体的,步骤106在获得第一数据对应的预测目的地址时,具体可以通过以下方式实现,如图7中所示:
步骤161:获得总线最近一次所传输的历史数据的历史目的地址。
其中,历史目的地址为历史数据的实际目的地址,具体可以从历史数据中读取到。
步骤162:按照第一预测方式,对历史目的地址进行处理,以得到第一数据对应的预测目的地址。
其中,第一预测方式至少基于历史数据的历史目的地址与历史数据的预测目的地址之间的对应关系、第二预测方式以及芯片中的中断请求的类型来确定,这里的第二预测方式为第一预测方式被切换之前的预测方式。
其中,历史数据的预测目的地址为使用第二预测方式进行预测所得到的目的地址。也就是说,本实施例中基于历史数据的历史目的地址与历史数据的预测目的地址之间的对应关系以及中断请求的类型对预测方式进行切换,再按照切换后的预测方式即第一预测方式对历史目的地址进行处理,就可以预测出第一数据对应的预测目的地址。
需要说明的是,不同的预测方式对历史目的地址进行处理的方式也不同,相应所得到的第一数据对应的预测目的地址与历史数据对应的历史目的地址之间的对应关系也不同,其中可以包含有递增、跳转以及保持等多种不同的对应关系。
基于此,第二预测方式可以为定态递增预测方式、暂态递增预测方式、定态跳转预测方式、暂态跳转预测方式、定态保持预测方式或暂态保持预测方式;第二预测方式被切换为第一预测方式之后,第一预测方式可以与第二预测方式相同,也可以不同,由此,第一测方式可以为定态递增预测方式、暂态递增预测方式、定态跳转预测方式、暂态跳转预测方式、定态保持预测方式或暂态保持预测方式。
需要说明的是,以上本实施例中所描述的多种预测方式也可以理解为对目的地址进行预测的预测状态,在不同的预测状态下,以相应的预测方式对历史目的地址进行预测。
其中,定态递增预测方式、暂态递增预测方式、定态跳转预测方式和暂态跳转预测方式中分别以地址递增的方式在历史目的地址的基础上获得预测地址,也就是说,在定态递增预测方式、暂态递增预测方式、定态跳转预测方式和暂态跳转预测方式这四个预测方式中,通过对历史数据的历史目的地址进行单位地址的递增处理,就可以得到第一数据对应的预测目的地址。
而定态保持预测方式和暂态保持预测方式中以保持地址的方式在历史目的地址的基础上获得预测地址。也就是说,在定态保持预测方式和暂态保持预测方式这两个预测方式中,通过对历史数据的历史目的地址进行保持不变的处理,就可以得到第一数据对应的预测目的地址。
以下对第二预测方式被切换第一预测方式的几种情况进行举例说明,如图8中所示:
在第二预测方式为定态递增预测方式的情况下,如果历史数据的历史目的地址与历史数据的预测目的地址相一致,说明预测正确,此时第一预测方式与第二预测方式保持一致;如果历史数据的历史目的地址与历史数据的预测目的地址不一致,说明预测错误,此时第二预测方式被切换为第一预测方式且第一预测方式为暂态递增预测方式;
此时的暂态递增预测方式中,仍然以地址递增的处理方式进行目的地址的预测;
而在第二预测方式为暂态递增预测方式的情况下,如果历史数据的历史目的地址与历史数据的预测目的地址不一致且中断请求为第一中断类型,说明因为第一中断类型的中断请求出现导致预测错误,此时第二预测方式被切换为第一预测方式且第一预测方式为暂态跳转预测方式;如果历史数据的历史目的地址与历史数据的预测目的地址不一致且中断请求为第二中断类型,说明因为第二中断类型的中断请求出现导致预测错误,此时第二预测方式被切换为第一预测方式且第一预测方式为暂态保持预测方式;如果历史数据的历史目的地址与历史数据的预测目的地址相一致,说明预测正确,此时,第二预测方式被切换为第一预测方式且第一预测方式为定态递增预测方式;
其中,在暂态跳转预测方式中,以地址递增的处理方式进行目的地址的预测,而在暂态保持预测方式中,以地址保持的处理方式进行目的地址的预测。
在第二预测方式为暂态跳转预测方式的情况下,如果历史数据的预测目的地址与历史数据之前传输在总线上的数据的预测目的地址相一致,说明预测正确,此时,第二预测方式被切换为第一预测方式且第一预测方式为定态跳转预测方式;如果历史数据的历史目的地址与历史数据的预测目的地址不一致且历史数据的预测目的地址与历史数据之前传输在总线上的数据的预测目的地址为地址递增的关系,那么说明预测错误且地址为递增的状态,此时,第二预测方式被切换为第一预测方式且第一预测方式为暂态递增预测方式;而如果历史数据的历史目的地址与历史数据的预测目的地址不一致且历史数据的历史目的地址与前一历史数据的历史目的地址之间为地址保持的关系,那么说明预测错误且地址为保持的状态,此时,第二预测方式被切换为第一预测方式且第一预测方式为暂态保持预测方式;
其中,在定态跳转预测方式中,以地址递增的处理方式进行目的地址的预测。
在第二预测方式为定态跳转预测方式的情况下,如果历史数据的历史目的地址与所述历史数据的预测目的地址不一致,表明第一中断类型的中断请求处理完成,此时第二预测方式被切换为第一预测方式且第一预测方式为暂态跳转预测方式;
在第二方式为暂态保持预测方式的情况下,如果历史数据的预测目的地址与历史数据之前传输在总线上的数据的预测目的地址为地址保持的关系,说明预测正确,此时第二预测方式被切换为第一预测方式且第一预测方式为定态保持预测方式;如果历史数据的历史目的地址与历史数据的预测目的地址不一致且没有新的中断请求,第二预测方式被切换为第一预测方式且第一预测方式为暂态递增预测方式;如果历史数据的历史目的地址与历史数据的预测目的地址不一致且有新的中断请求,此时执行新的中断处理,此时第二预测方式被切换为第一预测方式且第一预测方式为暂态跳转预测方式;
其中,在定态保持预测方式中,以地址保持的处理方式进行目的地址的预测。
在第二预测方式为定态保持预测方式的情况下,如果历史数据的历史目的地址与所述历史数据的预测目的地址不一致,表明第二中断类型的中断请求处理完成,此时,第二预测方式被切换为第一预测方式且第一预测方式为暂态保持预测方式。
由此,按照以上预测方式的切换原则,对本实施例中所采用的预测方式进行切换,通过三级动态的分支预测,覆盖芯片中的所有数据传输的情况,从而提高目的地址预测的准确性。
基于以上实现方案,为了实现可配置的数据加密传输的处理,本实施例中可以通过设置配置接口以及配置界面,由用户预先设置配置参数,以确定是否需要进行数据加密传输。例如,在配置界面中为用户提供配置控件,有用户对配置控件进行选择,如果用户选择需要进行加密传输的控件,则生成表征需要进行数据加密的第一配置参数以及表征需要进行数据解密的第二配置参数,如果用户选择不需要进行加密传输的控件,则生成表征不需要进行数据加密的第一配置参数和表征不需要进行数据解密的第二配置参数。
基于此,本实施例中在步骤102之前,先执行以下步骤,如图9中所示:
步骤113:读取预设的第一配置参数。
其中,第一配置参数可以在芯片中存储配置参数的位置进行读取。
步骤114:判断第一配置参数是否表征需要进行数据加密,在第一配置参数表征需要进行数据加密的情况下,执行步骤102,再执行步骤103;在第一配置参数表征不需要进行数据加密的情况下,不再执行步骤102,而是直接执行步骤103,也就是直接将第一模块中待传输的第一数据传输到总线中。
同理,本实施例中在步骤104中对第二数据进行解密处理之前,先执行以下步骤:
步骤115:读取预设的第二配置参数。
其中,第二配置参数可以在芯片中存储配置参数的位置进行读取。
步骤116:判断第二配置参数是否表征需要进行数据解密,在第二配置参数表征需要进行数据解密的情况下,执行步骤104,以对第二数据进行解密处理,得到解密的第二数据,再执行步骤105;而在第二配置参数表征不需要进行数据加密的情况下,不再执行步骤104中对第二数据的解密处理,而是直接执行步骤105,也就是直接将总线传输出来的第二数据传输给第二模块。
由此,通过提供配置接口和配置界面实现数据加密传输的可配置性,为用户提供便利。
参考图10,为本申请实施例二提供的一种数据加密传输的处理装置的结构示意图,该装置可以配置在需要进行探针攻击防护的芯片中,如SoC芯片等,以实现对芯片上的数据保护。
具体的,本实施例中的装置可以包含如下单元:
加密单元1001,用于在接收到芯片对应的第一模块传输来的第一数据的情况下,对所述第一数据进行加密处理,以得到加密的第一数据,并将所述加密的第一数据输入所述芯片中的总线;
解密单元1002,用于在有第二数据从所述总线输出的情况下,对所述第二数据进行解密处理,以得到解密的第二数据,并将所述解密的第二数据传输给所述芯片对应的第二模块;
其中,所述第一模块和所述第二模块分别为用于实现相应功能的模块。
从上述技术方案可以看出,本申请实施例二提供的一种数据加密传输的处理装置中,在接收到芯片中的第一模块传输来的第一数据时,对第一数据进行加密处理,再将加密的第一数据传输到芯片中的总线,而有第二数据从总线输出时,对第二数据进行解密处理,进而将解密的第二数据传输给芯片中的第二模块。可见,由于芯片中所有模块之间的数据传输与存储都必须依托于总线才能完成,本实施例中通过对传输在总线上的数据进行加密,由此攻击者通过探针探测芯片中的数据时所得到的数据均为经过加密后的数据,而无法获取到任何敏感数据,由此实现对芯片中各个模块传输和存储的数据的保护,同时,无需针对不同模块设计独立的加密方案,从而降低数据加密传输的复杂度,由此在实现芯片中数据加密传输的同时,提高数据加密传输的性能。
在一种实现方式中,加密单元1001具体用于:利用所述第一数据对应的目标数值对所述第一数据进行异或处理,以得到加密的第一数据;
其中,解密单元1002具体用于:利用所述第二数据对应的目标数值对所述第二数据进行异或处理,以得到解密的第二数据。
基于此,本实施例中的装置还可以包含以下单元,如图11中所示:
地址处理单元1003,用于在加密单元1001接收到芯片中的第一模块传输来的第一数据之前,获得所述第一数据对应的预测目的地址;根据所述预测目的地址,获得所述第一数据对应的目标数值。
进一步的,本实施例中的装置还可以包含如下单元,如图12中所示:
地址仲裁单元1004,用于在加密单元1001接收到芯片对应的第一模块传输来的第一数据之后,在加密单元1001利用所述第一数据对应的目标数值对所述第一数据进行异或处理,以得到加密的第一数据之前,判断所述第一数据对应的预测目的地址是否与所述第一数据对应的实际目的地址是否相一致;如果一致,触发加密单元1001利用所述第一数据对应的目标数值对所述第一数据进行异或处理,以得到加密的第一数据;如果不一致,触发地址处理单元1003根据所述第一数据对应的实际目的地址,重新获得所述第一数据对应的目标数值,再触发加密单元1001利用所述第一数据对应的目标数值对所述第一数据进行异或处理,以得到加密的第一数据。
具体的,地址处理单元1003获得所述第一数据对应的预测目的地址时,具体用于:获得所述总线最近一次所传输的历史数据的历史目的地址;按照第一预测方式,对所述历史目的地址进行处理,以得到所述第一数据对应的预测目的地址;
其中,所述第一预测方式至少基于所述历史数据的历史目的地址与所述历史数据的预测目的地址之间的对应关系、第二预测方式和所述芯片中的中断请求的类型确定,所述第二预测方式为所述第一预测方式被切换之间的预测方式。
具体实现中,所述第二预测方式为:定态递增预测方式、暂态递增预测方式、定态跳转预测方式、暂态跳转预测方式、定态保持预测方式或暂态保持预测方式;
其中,所述定态递增预测方式、所述暂态递增预测方式、所述定态跳转预测方式和所述暂态跳转预测方式中分别以地址递增的方式在所述历史目的地址的基础上获得预测地址,所述定态保持预测方式和所述暂态保持预测方式中以保持地址的方式在所述历史目的地址的基础上获得预测地址。
基于此,在所述第二预测方式为所述定态递增预测方式的情况下,如果所述历史数据的历史目的地址与所述历史数据的预测目的地址相一致,所述第一预测方式与所述第二预测方式保持一致;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态递增预测方式;
在所述第二预测方式为所述暂态递增预测方式的情况下,如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致且所述中断请求为第一中断类型,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态跳转预测方式;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致且所述中断请求为第二中断类型,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态保持预测方式;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址相一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述定态递增预测方式;
在所述第二预测方式为所述暂态跳转预测方式的情况下,如果所述历史数据的预测目的地址与所述历史数据之前传输在所述总线上的数据的预测目的地址相一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述定态跳转预测方式;如果所述历史数据的预测目的地址与所述历史数据之前传输在所述总线上的数据的预测目的地址为地址递增的关系,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态递增预测方式;如果所述历史数据的预测目的地址与所述历史数据之前传输在所述总线上的数据的预测目的地址为地址保持的关系,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态保持预测方式;
在所述第二预测方式为所述定态跳转预测方式的情况下,如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态跳转预测方式;
在所述第二预测方式为所述暂态保持预测方式的情况下,如果所述历史数据的预测目的地址与所述历史数据之前传输在所述总线上的数据的预测目的地址为地址保持的关系,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述定态保持预测方式;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致且没有新的中断请求,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态递增预测方式;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致且有新的中断请求,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态跳转预测方式;
在所述第二预测方式为所述定态保持预测方式的情况下,如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态保持预测方式。
在一种实现方式中,本实施例中的装置还可以包含如下单元,如图13中所示:
加密判断单元1005,用于在加密单元1001对所述第一数据进行加密处理,以得到加密的第一数据之前,读取预设的第一配置参数;在所述第一配置参数表征需要进行数据加密的情况下,触发加密单元1001对所述第一数据进行加密处理,以得到加密的第一数据;在所述第一配置参数表征不需要进行数据加密的情况下,触发加密单元1001将所述第一数据输入所述总线;
解密判断单元1006,用于在解密单元1002对所述第二数据进行解密处理,以得到解密的第二数据之前,读取预设的第二配置参数;在所述第二配置参数表征需要进行数据解密的情况下,触发解密单元1002对所述第二数据进行解密处理,以得到解密的第二数据;在所述第二配置参数表征不需要进行数据解密的情况下,触发解密单元1002将所述第二数据传输给所述芯片对应的第二模块。
需要说明的是,本实施例中各单元的具体实现可以参考前文中的相应内容,此处不再详述。
参考图14,为本申请实施例三提供的一种芯片的结构示意图,该芯片可以为需要进行探针攻击防护的芯片,如SoC芯片等,以实现对芯片上的数据保护。
具体的,本实施例中的芯片可以包含如下模块:
总线1401,用于实现芯片对应的各个模块之间的数据传输,这里的模块可以为芯片中所包含的功能模块,如CPU模块或DMA模块等;或者,这里的模块也可以为芯片所连接的外部模块,如外接设备或片外存储等。
处理模块1402,用于:在接收到所述芯片对应的第一模块1403传输来的第一数据的情况下,对所述第一数据进行加密处理,以得到加密的第一数据,并将所述加密的第一数据输入所述总线1401;
所述处理模块1402,还用于:在有第二数据从所述总线1401输出的情况下,对所述第二数据进行解密处理,以得到解密的第二数据,并将所述解密的第二数据传输给所述芯片对应的第二模块1404;
其中,所述第一模块1403和所述第二模块1404分别为用于实现相应功能的模块。
从上述技术方案可以看出,本申请实施例三提供的一种芯片中,在接收到芯片中的第一模块传输来的第一数据时,对第一数据进行加密处理,再将加密的第一数据传输到芯片中的总线,而有第二数据从总线输出时,对第二数据进行解密处理,进而将解密的第二数据传输给芯片中的第二模块。可见,由于芯片中所有模块之间的数据传输与存储都必须依托于总线才能完成,本实施例中通过对传输在总线上的数据进行加密,由此攻击者通过探针探测芯片中的数据时所得到的数据均为经过加密后的数据,而无法获取到任何敏感数据,由此实现对芯片中各个模块传输和存储的数据的保护,同时,无需针对不同模块设计独立的加密方案,从而降低数据加密传输的复杂度,由此在实现芯片中数据加密传输的同时,提高数据加密传输的性能。
具体实现中,处理模块1402中可以通过配置加密单元、解密单元、地址仲裁单元等功能单元实现相应的功能。
需要说明的是,本实施例中处理模块1402的具体实现可以参考前文中的相应内容,此处不再详述。
以芯片为SoC芯片为例,为了实现SoC芯片的探针攻击防护,本实施例中对SoC芯片中进行数据加密传输的处理方案进行改进,以下对改进过程以及改进的技术方案进行详细说明:
本申请的发明人在对探针攻击进行研究的过程中发现:探针攻击的重点目标主要有四个部分:片上数据传输、片上数据存储、对外接口通信和片外数据存储。由于不同功能模块的数据传输协议和电路结构不同,如果对每个目标的数据进行单独的加密保护,每个模块都必须设计独立的数据加密模块。这种数据保护方式一方面实现过程复杂,另一方面也必然造成很大的硬件面积开销。
有鉴于此,本申请的发明人经过进一步研究,提出通过总线数据加密的技术方案。其中,系统总线作为SoC芯片中各功能模块连接和通信的“桥梁”,所有功能模块之间的数据传输和存储都必须依托于系统总线才能完成。因此,通过对系统总线上传输的数据进行加密,即可实现对各模块传输和存储数据的加密保护,攻击者通过探针探测以上四个重点目标,得到的都是经过加密以后的乱数,而无法获取到任何的有效信息。因此,本申请所提出的总线数据加密能够保护各功能模块之间数据传输和存储的安全性。
同时,由于总线数据加密必然造成一定的总线数据传输性能损耗,因此,本申请的发明人进一步研究如何在保证数据加密安全性的同时,尽可能地减小总线数据传输性能损耗,从而确保整个SoC芯片整体运算性能。
有鉴于此,本申请的发明人针对总线数据传输受到实际用户应用程序的影响具有较大的不确定性的现状,提出使用分组密码算法实现对总线数据的加密传输。其中,分组密码算法能够实现加密安全性、硬件开销和加密性能的平衡,且不存在密钥流同步问题,能够适用于总线数据加密。而分组密码算法进行数据加密的模式有很多种,其中包含有计数器模式。其中计数器模式中提前利用加密算法对计数器的计数值进行加密,得到一组乱数,并与当前数据进行异或操作得到密文。对于计数器模式来说,可提前完成大部分加密操作,涉及当前数据的操作仅有异或运算,是所有加密模式中加密速度最快的模式。本申请中采用分组密码算法中的计数器加密的处理方式能够提高数据加密的效率。
但是,在SoC芯片中,在使用计数器加密的处理方式进行总线数据的加密操作时,需要提前存储计数器的计数值,在解密时,需要利用当前加密的计数值进行解密。如果SoC芯片的敏感数据较多,加密任务量较大的时候,需要存储的计数器值的空间巨大,给SoC芯片带来巨大的负担。
有鉴于此,本申请的发明人经过进一步研究,提出在总线数据加密传输的过程中使用数据地址来代替计数值,从而无需存储大量计数值,由此节省空间占用,降低SoC芯片的负担。具体的,在总线数据传输过程中,数据与地址一一对应,利用数据的地址来替代计数器的计数值,降低对片内存储资源的需求。可见,本申请中利用计数器加密的处理方式进行数据加密,提前对总线地址进行加密得到一组乱数,数据与乱数进行异或操作得到密文并传输,传输的密文能够有效保证数据的安全性,同时基于数据地址的计数值替代方案可有效解决密钥流同步问题,减轻芯片负担。
综上,本申请提出了一种抗探针攻击的可配置高效总线数据加密方法,其核心主要包含以下三个方面:总线数据加密流水线、三级动态分支预测器和安全系统总线架构。这三者相互配合,能够在对总线上传输的敏感数据进行加密保护的前提下,有效解决密钥流同步问题,最大限度降低数据加密造成的总线数据传输性能损耗。具体如下:
1、总线数据加密流水线
本申请提出了一种数据加密流水线,通过增加预加密过程来降低耗时,达到提高效率的目的。
整个数据加密流水线的运行过程如图15所示,主要由地址预取AF(AddressFetching)、地址预加密APE(Address Pre-Encryption)、预测地址仲裁PAA(PredictedAddress Arbitration)和数据加密DE(Data Encryption)四个阶段组成。基于此,每个数据包均经历以上四个阶段的处理,且相邻的数据包依次在相邻的时隙上进行处理,实现数据加密流水线,如图15中所示,时隙T1到时隙T7分别处理一个数据包,每个时隙处理一个阶段。以一个数据包的处理为例,具体如下:
AF获取敏感数据的预测地址R,这里的敏感数据可以理解为前文中所提到的第一数据,即需要进行传输的数据,这里的预测地址R即为前文中的第一数据对应的预测目的地址,而APE使用密钥K加密R。密钥K加密R所得到的密文P可表示为式(1)。
而PAA验证预测地址R是否与实际地址A相等,这里的实际地址即为前文中的第一数据对应的实际目的地址,如式(2)所示,如果R与A相等,则DE在密文P和Ψ之间执行异或运算,得到加密的敏感数据D。如果R与A不相等,APE加密实际地址A,再用Ψ和加密A所得到的密文执行异或运算。
其中,AF和APE的操作与数据传输是独立完成的,因而应当在数据传输之前执行,以提高数据加密效率。
2、三级动态分支预测器
在SoC芯片中,总线数据传输按照地址特点进行区分可以分为三种:地址不变、地址递增和地址跳转。本实施例中为了覆盖SoC芯片中的数据传输情况,提出了一种三级动态分支预测器,其状态转移图如图16所示。其中,100和101分别表示定态预测递增地址的预测方式和暂态预测递增地址的预测方式,即前文中的定态递增预测方式和暂态递增预测方式;010和011分别表示定态预测跳转地址的预测方式和暂态预测跳转地址的预测方式,即前文中的定态跳转预测方式和暂态跳转预测方式;000和001分别表示定态预测当前地址的预测方式和暂态预测当前地址的预测方式,即前文中的定态保持预测方式和暂态保持预测方式。
其中,以CPU连续向SRAM空间内写入数据为例,介绍三级动态分支预测器的状态转移过程,即预测方式的切换过程。
首先,在分支预测器处于定态预测递增地址的状态,即当前状态为100,当接口、定时器或者程序异常等因素产生中断请求时,CPU暂停向SRAM写入数据操作,跳转到中断处理程序并执行中断操作,总线数据传输地址发生改变,分支预测器检测到总线实际传输地址与预测地址不一致,分支预测器的状态跳转到101,进入暂态预测递增地址的状态,执行一次递增预测操作,当预测的地址与实际传输地址一致时,则预测正确,分支预测器的状态跳转到100。
在分支预测器处于暂态预测递增地址的状态时,如果存在更高权限的中断请求时,CPU执行更高级别的中断请求,预测的地址预实际传输地址不一致,则预测发生错误,分支预测器的状态跳转到011,进入暂态预测跳转地址的状态,执行一次递增预测操作。当下一次的预测地址与当前地址一致,状态跳转到010,进入定态预测跳转地址的状态,执行预测地址递增操作,直到高级别中断执行完毕,预测器的预测地址发生错误,分支预测器的状态跳转到011。
在分支预测器处于暂态预测跳转地址的状态时,如果下一次的预测地址与当前地址不一致且下一次的预测地址与上一次的实际地址保持不变,此时分支预测器的状态跳转到001,进入暂态预测当前地址的状态,而如果下一次的预测地址与当前地址不一致且下一次的预测地址与上一次的实际地址是递增的关系,那么分支预测器的状态跳转到101,进入暂态预测递增地址的状态。
在分支预测器处于暂态预测递增地址的状态时,如果低级别中断需要对接口进行读写操作,分支预测器的状态由101跳转到001,进入暂态预测当前地址的状态,执行一次当前预测操作。当下一次的地址预测地址与当前地址一致时,分支预测器的状态跳转到000,进入连续预测当前地址的状态。当数据读写操作完成后,处理器执行中断前操作,即SRAM写操作,分支预测器预测的地址与实际地址不一致,分支预测器的状态跳转到001,进入暂态预测当前地址的状态,执行一次当前预测操作。分支预测器预测的地址与中断前执行地址不一致,如果没有中断请求,分支预测器状态跳转到101,否则,跳转到011。
3、安全系统总线架构
基于以上提出的可配置总线数据加密方案,本申请中提出一套安全系统总线架构,配置在SoC芯片中,如图17中所示。整个可配置安全系统总线架构主要由可配置加密管理模块CEMM(Configurable Encryption Management Module)、地址加密引擎AEE(AddressEncryption Engine)、分支预测器BP(Branch Predictor)、数据加密控制器DEC(DataEncryption Controller)、地址仲裁器AA(Address Arbiter,)、数据加密单元DEE(DataEncryption Engine,)和数据解密单元DDE(Data Decryption Engine)组成。
以数据写过程为例。用户将加/解密参数γ={γWS,γWM,γRS,γRM}写入CEMM,以控制数据加/解密流。其中,γWS和γWM为Master对Slave进行写操作时敏感数据从Master通过总线向Slave传输时的配置参数,γRS和γRM为Master对Slave进行读操作时敏感数据从Slave通过总线向Master传输时的配置参数。其中,γWS和γRM为1时,表征需要进行数据解密,γWM和γRS为1时,表征需要进行数据加密。
其中,在数据写过程中,BP预测数据传输的下一个地址并发送给AEE,AEE对BP预测的地址R进行加密。DEC根据CEMM给出的配置参数选择DEE是否执行加密操作以及DDE是否执行解密操作。这里的加密操作和解密操作均为是将预测的地址R加密后得到的乱数P与敏感数据Ψ进行异或运算。
具体的,AA判断预测地址R是否与实际地址A一致。如果R与A一致,则在执行DEE之后,得到经过加密的写数据D,之后,经过加密的写数据D被传输到总线;否则,可以确定R预测错误,此时,由AEE对实际地址A用K进行加密得到P,再由DEE使用P对敏感数据Ψ进行异或运算,得到经过加密的写数据D,之后,经过加密的写数据D被传输到总线。
在总线将D传输到Slave时,先通过AA判断预测地址R是否与实际地址A一致,如果一致,则由DDE对D使用P进行异或运算,得到解密的数据Γ,如果不一致,则由AEE对实际地址A用K进行加密得到P,再由DDE使用P对D进行异或运算,得到解密的数据Γ。
对于在数据读过程的过程类似,BP预测数据传输的下一个地址并发送给AEE,AEE对BP预测的地址R`进行加密。DEC根据CEMM给出的配置参数选择DEE是否执行加密操作以及DDE是否执行解密操作。这里的加密操作和解密操作均为是将预测的地址R`加密后得到的乱数P`与敏感数据Ψ`进行异或运算。
具体的,AA判断预测地址R`是否与实际地址A`一致。如果R`与A`一致,则在执行DEE之后,得到经过加密的读数据D`,之后,经过加密的读数据D`被传输到总线;否则,可以确定R`预测错误,此时,由AEE对实际地址A`用K进行加密得到P`,再由DEE使用P`对敏感数据Ψ`进行异或运算,得到经过加密的读数据D`,之后,经过加密的读数据D`被传输到总线。
在总线将D`传输到Master时,先通过AA判断预测地址R`是否与实际地址A`一致,如果一致,则由DDE对D`使用P`进行异或运算,得到解密的数据Γ`,如果不一致,则由AEE对实际地址A`用K进行加密得到P`,再由DDE使用P`对D`进行异或运算,得到解密的数据Γ`。
基于以上安全系统总线架构,本申请中提出如图18中算法1所示的系统总线写传输算法:
其中,配置参数γ={γWS,γWM,γRS,γRM}由用户写入,参数值为1表示数据加/解密,参数为0表示不进行数据加/解密。
当主机需要进行写数据传输时,首先判断γWM是否为“1”。若γWM为1,则表示主机发出的数据Ψ需要进行加密后写入系统总线。此时,若预测地址R和实际地址A相等,则表示预测正确,系统总线上传输的实际内容D为预测地址加密后的乱数EK(R)与明文数据Ψ的异或结果;
反之,则说明预测错误,需要首先将实际地址A进行加密后得到乱数EK(A),再将乱数EK(A)与明文数据Ψ进行异或得到系统总线传输内容D。若γWM≠1,则总线上传输的内容D无需进行加密,直接就是主机发出的明文数据Ψ。
当从机进行数据接收时,首先判断γWS是否为“1”。若γWS为1,则表示从机需要首先将数据进行解密后接收。此时,若预测地址R和实际地址A相等(从机侧的地址就是总线地址,即主机发出的地址),则表示预测正确,从机受到的实际内容Γ为预测地址加密后的乱数EK(R)与总线数据D的异或结果;
反之,则说明预测错误,需要首先将实际地址A进行加密后得到乱数EK(A),再将乱数EK(A)与总线数据D进行异或得到从机接收内容Γ。若γWS不为1,则从机接收的内容Γ无需进行解密,直接就是总线数据D。
同理,数据的读传输过程与以上写过程类似,在此不再赘述。
综上,本申请针对探针攻击造成敏感信息泄露的问题,提出可配置的总线数据加/解密方法,依据配置信息对数据自适应加密或解密,减少了总线数据加密的工作量和等待延迟,设计了总线数据加密流水和三级动态分支预测器来预取数据传输地址,提升了总线传输数据的加/解密执行效率,保证了SoC芯片数据传输效率和和整体运算性能,最终形成可配置高效总线数据加密模型,实现了SoC芯片中数据传输/存储的加密保护,有效提升了SoC芯片的抗探针攻击能力。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据加密传输的处理方法,其特征在于,所述方法包括:
在接收到芯片对应的第一模块传输来的第一数据的情况下,对所述第一数据进行加密处理,以得到加密的第一数据,并将所述加密的第一数据输入所述芯片中的总线;
在有第二数据从所述总线输出的情况下,对所述第二数据进行解密处理,以得到解密的第二数据,并将所述解密的第二数据传输给所述芯片对应的第二模块;
其中,所述第一模块和所述第二模块分别为用于实现相应功能的模块。
2.根据权利要求1所述的方法,其特征在于,对所述第一数据进行加密处理,以得到加密的第一数据,包括:
利用所述第一数据对应的目标数值对所述第一数据进行异或处理,以得到加密的第一数据;
其中,对所述第二数据进行解密处理,以得到解密的第二数据,包括:
利用所述第二数据对应的目标数值对所述第二数据进行异或处理,以得到解密的第二数据。
3.根据权利要求2所述的方法,其特征在于,在接收到芯片中的第一模块传输来的第一数据之前,所述方法还包括:
获得所述第一数据对应的预测目的地址;
根据所述预测目的地址,获得所述第一数据对应的目标数值。
4.根据权利要求3所述的方法,其特征在于,在接收到芯片对应的第一模块传输来的第一数据之后,在利用所述第一数据对应的目标数值对所述第一数据进行异或处理,以得到加密的第一数据之前,所述方法还包括:
判断所述第一数据对应的预测目的地址是否与所述第一数据对应的实际目的地址是否相一致;
如果一致,执行所述步骤:利用所述第一数据对应的目标数值对所述第一数据进行异或处理,以得到加密的第一数据;
如果不一致,根据所述第一数据对应的实际目的地址,重新获得所述第一数据对应的目标数值,执行所述步骤:利用所述第一数据对应的目标数值对所述第一数据进行异或处理,以得到加密的第一数据。
5.根据权利要求3所述的方法,其特征在于,获得所述第一数据对应的预测目的地址,包括:
获得所述总线最近一次所传输的历史数据的历史目的地址;
按照第一预测方式,对所述历史目的地址进行处理,以得到所述第一数据对应的预测目的地址;
其中,所述第一预测方式至少基于所述历史数据的历史目的地址与所述历史数据的预测目的地址之间的对应关系、第二预测方式和所述芯片中的中断请求的类型确定,所述第二预测方式为所述第一预测方式被切换之间的预测方式。
6.根据权利要求5所述的方法,其特征在于,所述第二预测方式为:定态递增预测方式、暂态递增预测方式、定态跳转预测方式、暂态跳转预测方式、定态保持预测方式或暂态保持预测方式;
其中,所述定态递增预测方式、所述暂态递增预测方式、所述定态跳转预测方式和所述暂态跳转预测方式中分别以地址递增的方式在所述历史目的地址的基础上获得预测地址,所述定态保持预测方式和所述暂态保持预测方式中以保持地址的方式在所述历史目的地址的基础上获得预测地址。
7.根据权利要求6所述的方法,其特征在于:
在所述第二预测方式为所述定态递增预测方式的情况下,如果所述历史数据的历史目的地址与所述历史数据的预测目的地址相一致,所述第一预测方式与所述第二预测方式保持一致;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态递增预测方式;
在所述第二预测方式为所述暂态递增预测方式的情况下,如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致且所述中断请求为第一中断类型,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态跳转预测方式;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致且所述中断请求为第二中断类型,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态保持预测方式;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址相一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述定态递增预测方式;
在所述第二预测方式为所述暂态跳转预测方式的情况下,如果所述历史数据的预测目的地址与所述历史数据之前传输在所述总线上的数据的预测目的地址相一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述定态跳转预测方式;如果所述历史数据的预测目的地址与所述历史数据之前传输在所述总线上的数据的预测目的地址为地址递增的关系,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态递增预测方式;如果所述历史数据的预测目的地址与所述历史数据之前传输在所述总线上的数据的预测目的地址为地址保持的关系,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态保持预测方式;
在所述第二预测方式为所述定态跳转预测方式的情况下,如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态跳转预测方式;
在所述第二预测方式为所述暂态保持预测方式的情况下,如果所述历史数据的预测目的地址与所述历史数据之前传输在所述总线上的数据的预测目的地址为地址保持的关系,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述定态保持预测方式;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致且没有新的中断请求,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态递增预测方式;如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致且有新的中断请求,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态跳转预测方式;
在所述第二预测方式为所述定态保持预测方式的情况下,如果所述历史数据的历史目的地址与所述历史数据的预测目的地址不一致,所述第二预测方式被切换为所述第一预测方式且所述第一预测方式为所述暂态保持预测方式。
8.根据权利要求1或2所述的方法,其特征在于,在对所述第一数据进行加密处理,以得到加密的第一数据之前,所述方法还包括:
读取预设的第一配置参数;
在所述第一配置参数表征需要进行数据加密的情况下,执行所述步骤:对所述第一数据进行加密处理,以得到加密的第一数据;
在所述第一配置参数表征不需要进行数据加密的情况下,将所述第一数据输入所述总线;
其中,在对所述第二数据进行解密处理,以得到解密的第二数据之前,所述方法还包括:
读取预设的第二配置参数;
在所述第二配置参数表征需要进行数据解密的情况下,执行所述步骤:对所述第二数据进行解密处理,以得到解密的第二数据;
在所述第二配置参数表征不需要进行数据解密的情况下,将所述第二数据传输给所述芯片对应的第二模块。
9.一种数据加密传输的处理装置,其特征在于,至少包括:
加密单元,用于在接收到芯片对应的第一模块传输来的第一数据的情况下,对所述第一数据进行加密处理,以得到加密的第一数据,并将所述加密的第一数据输入所述芯片中的总线;
解密单元,用于在有第二数据从所述总线输出的情况下,对所述第二数据进行解密处理,以得到解密的第二数据,并将所述解密的第二数据传输给所述芯片对应的第二模块;
其中,所述第一模块和所述第二模块分别为用于实现相应功能的模块。
10.一种芯片,其特征在于,包括:
总线;
处理模块,用于:在接收到所述芯片对应的第一模块传输来的第一数据的情况下,对所述第一数据进行加密处理,以得到加密的第一数据,并将所述加密的第一数据输入所述总线;
所述处理模块,还用于:在有第二数据从所述总线输出的情况下,对所述第二数据进行解密处理,以得到解密的第二数据,并将所述解密的第二数据传输给所述芯片对应的第二模块;
其中,所述第一模块和所述第二模块分别为用于实现相应功能的模块。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110431379.1A CN113127901B (zh) | 2021-04-21 | 2021-04-21 | 一种数据加密传输的处理方法、装置及芯片 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110431379.1A CN113127901B (zh) | 2021-04-21 | 2021-04-21 | 一种数据加密传输的处理方法、装置及芯片 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN113127901A true CN113127901A (zh) | 2021-07-16 |
| CN113127901B CN113127901B (zh) | 2023-05-16 |
Family
ID=76778661
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202110431379.1A Expired - Fee Related CN113127901B (zh) | 2021-04-21 | 2021-04-21 | 一种数据加密传输的处理方法、装置及芯片 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN113127901B (zh) |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140195821A1 (en) * | 2010-05-25 | 2014-07-10 | Via Technologies, Inc. | Method for encrypting a program for subsequent execution by a microprocessor configured to decrypt and execute the encrypted program |
| US20160098580A1 (en) * | 2014-10-02 | 2016-04-07 | Winbond Electronics Corporation | Bus protection with improved key entropy |
| US20160364343A1 (en) * | 2015-06-10 | 2016-12-15 | Freescale Semiconductor, Inc. | Systems and methods for data encryption |
| CN106549940A (zh) * | 2016-10-13 | 2017-03-29 | 北京奇虎科技有限公司 | 车辆数据传输方法及系统 |
| CN106599735A (zh) * | 2017-02-13 | 2017-04-26 | 珠海格力电器股份有限公司 | 数据保护装置、方法以及存储控制器 |
| US20190386816A1 (en) * | 2018-06-15 | 2019-12-19 | Stmicroelectronics S.R.L. | Cryptography method and circuit, corresponding device |
| CN111814212A (zh) * | 2020-09-07 | 2020-10-23 | 南京芯驰半导体科技有限公司 | 总线数据的保护方法、装置、存储介质及芯片 |
| CN112583795A (zh) * | 2020-11-24 | 2021-03-30 | 北京智芯微电子科技有限公司 | 安全防护方法及安全防护装置 |
-
2021
- 2021-04-21 CN CN202110431379.1A patent/CN113127901B/zh not_active Expired - Fee Related
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140195821A1 (en) * | 2010-05-25 | 2014-07-10 | Via Technologies, Inc. | Method for encrypting a program for subsequent execution by a microprocessor configured to decrypt and execute the encrypted program |
| US20160098580A1 (en) * | 2014-10-02 | 2016-04-07 | Winbond Electronics Corporation | Bus protection with improved key entropy |
| US20160364343A1 (en) * | 2015-06-10 | 2016-12-15 | Freescale Semiconductor, Inc. | Systems and methods for data encryption |
| CN106549940A (zh) * | 2016-10-13 | 2017-03-29 | 北京奇虎科技有限公司 | 车辆数据传输方法及系统 |
| CN106599735A (zh) * | 2017-02-13 | 2017-04-26 | 珠海格力电器股份有限公司 | 数据保护装置、方法以及存储控制器 |
| US20190386816A1 (en) * | 2018-06-15 | 2019-12-19 | Stmicroelectronics S.R.L. | Cryptography method and circuit, corresponding device |
| CN110611561A (zh) * | 2018-06-15 | 2019-12-24 | 意法半导体股份有限公司 | 密码方法和电路、对应的设备 |
| CN111814212A (zh) * | 2020-09-07 | 2020-10-23 | 南京芯驰半导体科技有限公司 | 总线数据的保护方法、装置、存储介质及芯片 |
| CN112583795A (zh) * | 2020-11-24 | 2021-03-30 | 北京智芯微电子科技有限公司 | 安全防护方法及安全防护装置 |
Non-Patent Citations (1)
| Title |
|---|
| 苟鹏飞等: "基于类型预测的甚块预测器", 《计算机学报》 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN113127901B (zh) | 2023-05-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3274850B1 (en) | Protecting a memory | |
| US7577852B2 (en) | Microprocessor, a node terminal, a computer system and a program execution proving method | |
| US20190132118A1 (en) | Technologies for low-latency cryptography for processor-accelerator communication | |
| TW201642136A (zh) | 使用簽名之位址驗證 | |
| CN111771353B (zh) | 保护加密密钥数据 | |
| CN101120349A (zh) | 带有流中数据加密/解密的存储器系统 | |
| US12010209B2 (en) | Memory-efficient hardware cryptographic engine | |
| CN106533652A (zh) | 一种基于xts-sm4的存储加解密方法及装置 | |
| CN110825672B (zh) | 用于联机加密处理的高性能自主硬件引擎 | |
| WO2019122825A1 (en) | A hardware multiple cipher engine | |
| EP4148606B1 (en) | Data encryption or decryption method, apparatus and system | |
| EP3758276B1 (en) | Data processing method, circuit, terminal device storage medium | |
| CN109670344A (zh) | 加密装置、方法及片上系统 | |
| EP1811415A1 (en) | Secure system-on-chip | |
| CN107078897A (zh) | 用于失序数据的推定的密码处理 | |
| CN117492515A (zh) | 时钟频率检测单元、方法、处理单元和计算系统 | |
| CN112035866B (zh) | 一种数据加密方法、装置、设备和计算机可读存储介质 | |
| CN113127901A (zh) | 一种数据加密传输的处理方法、装置及芯片 | |
| CN115577397B (zh) | 数据处理方法、装置、设备及存储介质 | |
| CN119106421A (zh) | 进程运行方法、装置、电子设备及存储介质 | |
| JP2007310601A (ja) | マイクロコンピュータおよびそのソフトウェア保護方法 | |
| CN120611404B (zh) | 基于堆栈数据机密性和完整性的程序控制流防护系统及方法 | |
| CN109670347A (zh) | 解密装置、方法及片上系统 | |
| CN111143897A (zh) | 数据安全处理装置、系统及处理方法 | |
| CN113032789B (zh) | 一种数据调用方法、系统及电子设备 |
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 | ||
| CP03 | Change of name, title or address | ||
| CP03 | Change of name, title or address |
Address after: 450000 Science Avenue 62, Zhengzhou High-tech Zone, Henan Province Patentee after: Information Engineering University of the Chinese People's Liberation Army Cyberspace Force Country or region after: China Address before: No. 62 Science Avenue, High tech Zone, Zhengzhou City, Henan Province Patentee before: Information Engineering University of Strategic Support Force,PLA Country or region before: China |
|
| CF01 | Termination of patent right due to non-payment of annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20230516 |