对CPU总线的数据信号加解扰的方法及装置与流程

文档序号:18144268发布日期:2019-07-10 11:28阅读:315来源:国知局
对CPU总线的数据信号加解扰的方法及装置与流程

本发明是关于cpu总线上的数据传输方法,特别是关于一种对cpu总线的数据信号加解扰的方法及装置。



背景技术:

随着半导体技术和计算机技术的发展和广泛应用,cpu核越来越多地集成到各种soc芯片中,但随着半导体反向开发技术手段的提升,芯片很容易受到破解和攻击。受利益驱使,电力、金融等领域的密码芯片首当其冲成了被攻击对象。

旁路攻击(sidechannelattack)是芯片攻击的主要方法。旁路攻击是指通过探测和分析芯片工作过程中产生的非功能性的信息,发现这些信息与完成正常功能过程中所需的敏感信息之间的联系,并最终推测出敏感信息的过程。这些非功能性的信息通常包括执行时间、功耗曲线、电磁辐射、光辐射和声辐射等。在旁路攻击技术中功耗攻击是最有威胁的一种,其原理是利用芯片运算过程中暴露的功耗信息,来推测算法秘钥。

cpu是密码芯片的控制单元,cpu执行程序过程中产生的功耗包含了大量的旁路信息,基于此,本申请的发明人发现,功耗与总线上传输的数据有直接的对应关系,这些信息如果不加以防护,很容易被攻击者采集用来做分析,进而导致敏感信息的泄露。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。



技术实现要素:

本发明的目的在于提供一种对cpu总线的数据信号加解扰的方法及装置,其能够保护总线上数据传输的功耗信息。

为实现上述目的,本发明提供了一种对cpu总线的数据信号加解扰的方法,包括:第一加扰模块接收第一随机信号,其中,所述第一随机信号包括第一随机数;所述第一加扰模块获取预存的与所述第一随机数匹配的加扰算法以及第一总线数据,使用所述加扰算法对所述第一总线数据进行加扰处理,并将所述加扰处理后的数据以及所述第一随机数作为第一总线信息进行发送;第一解扰模块接收所述第一总线信息;以及所述第一解扰模块根据与所述第一随机数匹配的解扰算法对所述加扰处理后的数据进行解扰处理。

在一优选的实施方式中,所述第一总线信息还包括控制信息;所述方法还包括:所述第一解扰模块根据所述控制信息判断所述解扰处理后的数据是否为待传输的数据,若是所述待传输的数据,则根据所述控制信息对所述待传输的数据进行相应的处理。

在一优选的实施方式中,在所述第一解扰模块根据所述控制信息判断所述解扰处理后的数据是否为待传输的数据之后,还包括:若不是所述待传输的数据,则丢弃该数据。

在一优选的实施方式中,与所述第一随机数匹配的加扰算法包括:对预设位数的数据进行取反,其他位数的数据不做处理。

为实现上述目的,本发明提供了对cpu总线的数据信号加解扰的装置,所述装置包括:第一加扰模块,设置于cpu上,所述第一加扰模块接收第一随机信号,其中,所述第一随机信号包括第一随机数;获取预存的与所述第一随机数匹配的加扰算法以及第一总线数据,使用所述加扰算法对所述第一总线数据进行加扰处理,将所述加扰处理后的数据以及所述第一随机数作为第一总线信息进行发送;第一解扰模块,设置于与cpu进行数据传输的从设备上,所述第一解扰模块接收所述总线信息;根据与所述第一随机数匹配的解扰算法对所述加扰处理后的数据进行解扰处理。

在一优选的实施方式中,所述第一总线信息还包括控制信息;所述第一解扰模块用于根据所述控制信息判断所述解扰处理后的数据是否为待传输的数据,若是所述待传输的数据,则根据所述控制信息对所述待传输的数据进行相应的处理

在一优选的实施方式中,所述第一解扰模块用于在所述解扰处理后的数据不是所述待传输的数据时,丢弃该数据。

为实现上述目的,本发明提供了对cpu总线的数据信号加解扰的装置,所述装置包括:第二加扰模块,设置于与cpu进行数据传输的从设备上,所述第二加扰模块接收第二随机信号,其中,所述第二随机信号包括第二随机数;获取预存的与所述第二随机数匹配的加扰算法以及第二总线数据,使用所述加扰算法对所述第二总线数据进行加扰处理,将所述加扰处理后的数据以及所述第二随机数作为第二总线信息进行发送;第二解扰模块,设置于cpu上,所述第二解扰模块接收所述第二总线信息;根据与所述第二随机数匹配的解扰算法对所述加扰处理后的数据进行解扰处理。

在一优选的实施方式中,所述第二总线信息还包括控制信息;所述第二解扰模块用于根据所述控制信息判断所述解扰处理后的数据是否为待传输的数据,若是所述待传输的数据,则根据所述控制信息对所述待传输的数据进行相应的处理。

在一优选的实施方式中,所述第二解扰模块用于在所述解扰处理后的数据不是所述待传输的数据时,丢弃该数据。

与现有技术相比,根据本发明的对cpu总线的数据信号加解扰的方法及装置,在第一随机信号的控制下,无论总线是否有数据正在传输,随机选取一种算法对总线数据做加扰处理,在总线上传输加扰处理后的数据。数据接收端使用与加扰算法对应的逆算法,对数据进行解扰处理。在多种加扰算法中随机挑选,增加了功耗数据的随机性及抗破解难度,提高了芯片抵抗功耗旁路攻击的能力。

附图说明

图1是根据本发明一实施方式的对cpu总线的数据信号加解扰的方法的流程图。

图2是根据本发明一实施方式的对cpu总线的数据信号加解扰的系统的结构示意图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

实施例1

如图1所示,根据本发明一优选实施方式的对cpu总线的数据信号加解扰的方法的流程图,包括步骤s1-s5。

步骤s1,第一加扰模块接收第一随机信号,其中,所述第一随机信号包括第一随机数,其中,第一随机数为n位比特信号。

步骤s2,第一加扰模块获取预存的与所述第一随机数匹配的加扰算法以及第一总线数据,使用所述加扰算法对所述数据进行加扰处理,并将所述加扰处理后的数据以及所述第一随机数作为第一总线信息进行发送。

其中,加扰算法可以包括m种,m=2n。具体的,若n=1,则有2种加扰算法,即m=2;若n=2,则有4种加扰算法,即m=4;若n=3,则有8种加扰算法,即m=8;若n=4,则有16种加扰算法,即m=16;若n=5,则有32种加扰算法,即m=32。

具体的,与所述第一随机数匹配的加扰算法可以包括:对预设位数的数据进行取反,其他位数的数据不做处理。

步骤s3,第一解扰模块接收所述第一总线信息。

步骤s4,第一解扰模块根据与所述第一随机数匹配的解扰算法对所述加扰处理后的数据进行解扰处理。

其中,第一解扰模块中预存有与加扰算法以及第一随机数对应的解扰算法。第一解扰模块根据接收到的第一随机数,使用与第一随机数对应的解扰算法,对所述加扰处理后的数据进行解扰处理。

在一种实现方式中,所述第一总线信息还包括控制信息。

本实施例中的方法还包括:步骤s5以及步骤s6。

步骤s5,第一解扰模块根据所述控制信息判断所述解扰处理后的数据是否为待传输的数据,若是所述待传输的数据,则根据所述控制信息对所述待传输的数据进行相应的处理。

步骤s6,若不是所述待传输的数据,则丢弃该数据。

控制信息中存储有标识,第一解扰模块可以根据控制信息中的标识与自身预存的进行对比,若相一致,说明总线有数据正在传输,则恢复出真实数据,对恢复出的数据执行与标识对应的操作。若不一致,则说明当前总线上无数据传输,即接收到的是无用数据,丢弃该数据。需要说明的是,本实施例中的应用场景为cpu进行与从设备的数据传输,即第一加扰模块应用在cpu侧,第一解扰模块应用在与cpu通过总线进行数据传输的从设备侧;当从设备进行数据传输时,方法与上述步骤相同,本实施例不再赘述。

由此,本实施例提供的对cpu总线的数据信号加解扰的方法,在第一随机信号的控制下,无论总线是否有数据正在传输,随机选取一种算法对总线数据做加扰处理,在总线上传输加扰处理后的数据。数据接收端使用与加扰算法对应的逆算法,对数据进行解扰处理,在多种加扰算法中随机挑选,增加了功耗数据的随机性及抗破解难度,提高了芯片抵抗功耗旁路攻击的能力。

实施例2

如图2所示,根据本发明一优选实施方式的对cpu总线的数据信号加解扰的系统的结构示意图,其包括两组cpu总线加解扰的装置。一组cpu总线加解扰的装置包括设置于cpu上的第一加扰模块1以及设置于与cpu进行数据传输的从设备上的第一解扰模块2。另一组cpu总线加解扰的装置包括设置于与cpu进行数据传输的从设备上的第二加扰模块3以及设置于cpu上的第二解扰模块4。

第一加扰模块1接收第一随机信号,其中,所述第一随机信号包括第一随机数;获取预存的与所述第一随机数匹配的加扰算法以及第一总线数据,使用所述加扰算法对所述第一总线数据进行加扰处理,将所述加扰处理后的数据以及所述第一随机数作为第一总线信息进行发送。

第一解扰模块2所述第一解扰模块接收所述总线信息;根据与所述第一随机数匹配的解扰算法对所述加扰处理后的数据进行解扰处理。

在一种实现方式中,所述第一总线信息还包括控制信息;第一解扰模块2用于根据所述控制信息判断所述解扰处理后的数据是否为待传输的数据,若是所述待传输的数据,则根据所述控制信息对所述待传输的数据进行相应的处理。所述第一解扰模块2还用于在所述解扰处理后的数据不是所述待传输的数据时,丢弃该数据。

其中,控制信息中存储有标识,第一解扰模块2可以根据控制信息中的标识与自身预存的标识进行对比,若相一致,说明总线有数据正在传输,则恢复出真实数据,对恢复出的数据执行与标识对应的操作。

具体的,设置于与cpu进行数据传输的从设备可以为存储器。本实施例中的控制信息可以包括地址信息、读、写以及存储操作等。当控制信息为存储操作或者写操作时,第一解扰模块2进行解扰处理后,获取到存储操作或者写操作的数据以及数据地址,从设备根据数据地址将数据进行写入或者存储。

第二加扰模块3接收第二随机信号,其中,所述第二随机信号包括第二随机数;获取预存的与所述第二随机数匹配的加扰算法以及第二总线数据,使用所述加扰算法对所述第二总线数据进行加扰处理,将所述加扰处理后的数据以及所述第二随机数作为第二总线信息进行发送。

第二解扰模块4接收所述第二总线信息;根据与所述第二随机数匹配的解扰算法对所述加扰处理后的数据进行解扰处理。

在一种实现方式中,所述第二总线信息还包括控制信息;第二解扰模块4用于根据所述控制信息判断所述解扰处理后的数据是否为待传输的数据,若是所述待传输的数据,则根据所述控制信息对所述待传输的数据进行相应的处理。所述第二解扰模块4还用于在所述解扰处理后的数据不是所述待传输的数据时,丢弃该数据。

其中,第一随机信号和第二随机信号为系统提供的两组随机信号。

本实施例中,当控制信息为读操作时,第二加扰模块3所在的从设备根据cpu提供的控制信息中的数据地址获取数据,将获取后的数据加扰并传输至cpu上的第二解扰模块4。

需要说明的是,本实施例中的第一加扰模块1、第一解扰模块2、第二加扰模块3、第二解扰模块4均可以使用实施例1中的方法进行加解扰。

由此,本实施例提供的对cpu总线的数据信号加解扰的装置,在第一随机信号的控制下,无论总线是否有数据正在传输,随机选取一种算法对总线数据做加扰处理,在总线上传输加扰处理后的数据。数据接收端使用与加扰算法对应的逆算法,对数据进行解扰处理,在多种加扰算法中随机挑选,增加了功耗数据的随机性及抗破解难度,提高了芯片抵抗功耗旁路攻击的能力。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1