防御旁路攻击的CRC运算电路装置和方法与流程

文档序号:12865829阅读:1114来源:国知局
防御旁路攻击的CRC运算电路装置和方法与流程

本发明涉及计算机安全领域,具体而言是一种可防御旁路攻击的计算循环冗余校验(cyclicredundancycheck,crc)的电路装置。



背景技术:

在密码系统中,硬件电路对不同数据进行运算时,会产生不同的功耗和电磁辐射等旁路信息。

密码系统的攻击者可采集这些信息对运算数据进行推测,从而实现系统的攻击及破解,该种攻击方式即旁路攻击。

循环冗余校验(cyclicredundancycheck,crc)是一种根据不定长度的数据产生简短固定位数校验码的散列函数,主要用于数据传输后的错误侦测。

如图1所示,无旁路攻击防护的crc电路在计算不同数据时,会产生不同的旁路信息,从而泄漏被计算的数据。



技术实现要素:

本发明目的在于解决上述问题而提供的一种防御旁路攻击的crc运算电路装置和方法,针对无旁路攻击防护的crc运算在计算不同明文输入时,会产生不同的旁路信息,从而泄漏明文的问题。其可对带有掩码保护的输入数据进行计算,因计算过程中明文不会出现,故防止了明文的旁路信息的泄漏。

为实现本发明目的还提供一种防御旁路攻击的crc运算装置,包括第一异或单元,第一crc运算单元,第二crc运算单元,第二异或单元;其中:

所述第一异或单元,用于将明文和掩码进行异或,并将异或后的第一计算值输入到第一crc运算单元;

所述第一crc运算单元,用于对第一计算值进行运算,得到第一crc运算值;

所述第二crc运算单元,用于将所述掩码进行运算,得到第二crc运算值;

所述第二异或单元,用于将第一crc运算值与第二crc运算值进行异或,得到明文的运算值。

所述的第一crc运算单元与第二crc运算单元为相同的crc运算单元。

更优地,所述的安全芯片,还包括掩码生成单元,用于生成一个安全码作为掩码。

更优地,所述安全码为随机数;

所述随机数通过随机数函数random()或真随机数发生器生成。

crc运算电路装置的随机数可以由真随机发生器生成,真随机数发生器是硬件电路,通过采集热噪声等方法生成随机数。

更优地,所述的crc运算电路装置,还包括掩码生成单元,用于生成一个安全码作为掩码。

为实现本发明目的还提供一种防御旁路攻击的crc运算方法,包括下列步骤:

设置两个crc运算单元,第一crc运算单元输入数据为明文异或掩码的第一计算值;第二crc运算单元输入数据为掩码;

启动第一crc运算单元的计算,故其结果为明文异或掩码的crc运算值,得到第一crc运算值;

启动crc运算单元的计算,其结果为掩码的第二crc运算值;

将第一crc运算单元的结果即第一crc运算值和第二crc运算单元的结果即第二crc运算值异或,得出明文的crc运算值。

更优地,所述的crc运算方法,在设置两个crc运算单元之前,还包括如下步骤:

生成一个安全码作为掩码。

更优地,所述安全码为随机数;

所述随机数通过随机数函数random()生成。

本发明一种防御旁路攻击的安全芯片及crc运算电路装置和方法,具有如下优点:

其可对有掩码保护的明文数据进行计算,因计算过程中明文不会出现,故防止了明文旁路信息的泄漏。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1现有的crc运算结构;

图2为本发明实施例防御旁路攻击的crc运算电路装置示意图;

图3为本发明实施例防御旁路攻击的crc运算方法流程图。

具体实施方式

如图2、3所示,为了使本发明的目的、技术方案和优点更加清楚明了。结合具体的实施方式,对本发明进行详细说明。此过程中,省略了对公知结构和技术的描述,用以避免对不必要地混淆本发明的概念。对于这些描述,只是示例性的。并不是限制本发明的范围。

本实施例的一种防御旁路攻击的crc运算电路装置,如图2所示,包括掩码生成单元10,第一异或单元20,第一crc运算单元30,第二crc运算单元40,第二异或单元50;其中:

所述掩码生成单元10,用于利用随机数函数random(),生成一个随机数作为掩码;

所述第一异或单元20,用于将明文和所述掩码进行异或,并将异或后的第一计算值输入到第一crc运算单元;

所述第一crc运算单元30,用于对第一计算值进行运算,得到第一crc运算值;

所述第二crc运算单元40,用于将所述掩码进行crc运算,得到第二crc运算值;

所述第二异或单元50,用于将第一crc运算值与第二crc运算值进行异或,得到明文的crc运算值。

本发明实施例中,利用随机数函数random()或者真随机数器生成掩码,并将掩码与明文进行异或,使得明文在进行crc运算时不可见,利用异或后的第一计算值进行crc运算,得到第一crc运算值。同时,将掩码进行单独的crc运算,得到掩码的第二crc运算值,根据crc运算为线性运算的特点,再利用第一crc运算值和第二crc运算值进行异或,从而得到明文的crc运算值。

crc运算电路装置的随机数可以由真随机发生器生成,真随机数发生器是硬件电路,通过采集热噪声等方法生成随机数。

本发明实施例还提供一种防御旁路攻击的crc运算方法,如图3所示,包括下列步骤:

步骤s100,利用随机数函数random(),生成一个随机数作为掩码;

步骤s200,设置两个crc运算单元,第一crc运算单元输入数据为明文异或掩码的第一计算值;第二crc运算单元输入数据为掩码;

如图3所示,用硬件电路或软件设置两个相同的crc运算单元,分别为第一crc运算单元和第二crc运算单元,所述crc运算单元与现有技术中的crc运算单元电路结构相同,只是现有技术中输入的是明文,而本发明实施例中第一crc运算单元输入的是明文异或掩码的第一计算值,而第二crc运算单元输入的是掩码。

将明文与该掩码进行异或,将异或结果即第一计算值输入第一crc运算单元,并将该掩码单独输入第二crc运算单元。

步骤s300,启动第一crc运算单元的计算,故其结果为明文异或掩码的crc运算值,得到第一crc运算值;

步骤s400,启动crc运算单元的计算,其结果为掩码的第二crc运算值;

步骤s500,因crc运算为线性运算,将第一crc运算单元的结果即第一crc运算值和第二crc运算单元的结果即第二crc运算值异或,得出明文的crc运算值。

本实施例的防御旁路攻击的crc运算结构,针对无旁路攻击防护的crc运算在计算不同明文输入时,会产生不同的旁路信息,从而泄漏明文的问题。其可对带有掩码保护的输入数据进行计算,因计算过程中明文不会出现,故防止了明文的旁路信息的泄漏。

本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器

(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上所述实施例仅表达了本发明的优选的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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