加/解密电路的制作方法

文档序号:11929686阅读:277来源:国知局
加/解密电路的制作方法与工艺

本发明涉及电子电路技术领域,具体涉及一种加/解密电路。



背景技术:

密码算法在相应的密码模块中运行时,如果受到干扰或者攻击,比如,电源抖动、时钟抖动、激光注入或者电磁注入等,所述密码模块的输出可能会被攻击者操控,或者直接输出一个错误的值。

目前,在应用分组对称密码算法的密码模块的加/解密电路中,为了提高抗干扰或攻击能力,采用N个轮变换单元对输入数据进行加密或解密处理,并在所述密码模块输出加密或解密后的数据前,采用回旋校验的方法来验证加密或解密后的数据是否正确。其中,N为对输入数据进行加密或解密处理时,执行轮变换加密/解密运算的总次数。例如,对输入数据进行加密后,将所述加密后的数据通过密码解密运算,通过将解密后的数据与所述密码模块的输入数据或者对所述输入数据进行加密运算的中间结果进行比较,最终根据比较结果验证所述密码模块是否受到干扰或攻击。

然而,上述加/解密电路结构复杂,导致所述电路占用的面积较大。



技术实现要素:

本发明解决的技术问题是在保证防攻击性能的情况下,如何减小加/解密电路的面积。

为解决上述技术问题,本发明实施例提供一种加/解密电路,所述加/解密电路包括:第一选择器、加/解密运算器、分配器、比较器及控制器,其中,

所述第一选择器的输入端分别与数据输入端及所述分配器的第一输出端连接,适于在所述控制器的控制下,选择相应的输入进行输出;

所述加/解密运算器的输入端与所述第一选择器的输出端连接,适于在所述控制器的控制下,对输入的数据执行加密运算或解密运算;所述加/解密运算器包括n个轮变换单元,适于在所述控制器的控制下,对所述第一选择器 的输出执行N轮的轮变换加密/解密运算,n为自然数,且1≤n<N,N为所述加/解密运算器对所述第一选择器的输出执行轮变换加密/解密运算的总次数;

所述分配器的输入端与所述加/解密运算器的输出端连接,适于在所述控制器的控制下,将所述加/解密运算器最终运算结果或中间运算结果通过对应的输出端进行输出,其中,所述分配器的第一输出端及第二输出端分别用于输出执行回旋校验所需的运算结果;

所述比较器的输入端分别与所述分配器的第一输出端及第二输出端连接,适于对所述第一输出端输出的数据与第二输出端输出的数据进行比较,并输出比较结果;

所述控制器适于控制所述第一选择器的输出,控制加/解密运算器对所述第一选择器的输出执行加密运算或解密运算,以及控制所述分配器将所述加/解密运算器的最终运算结果或中间运算结果通过对应的输出端进行输出。

可选地,所述加/解密运算器由一个轮变换单元组成,所述轮变换单元适于在所述控制器的控制下,对所述第一选择器的输出执行N轮的轮变换加密及解密运算。

可选地,所述加/解密运算单元由两个轮变换单元组成,所述两个轮变换单元适于在所述控制器的控制下,分别对所述第一选择器的输出执行N轮的轮变换加密或解密运算。

可选地,在2≤n<N时,所述加/解密电路还包括:第二选择器,所述第二选择器的输入端分别与各个轮变换单元的输出端连接,适于在所述控制器的控制下,选择相应轮变换单元的运算结果进行输出。

可选地,当所述第一选择器输出为所述加/解密运算器第j轮轮变换运算结果时,所述加/解密运算器适于在所述控制器的控制下,对所述第j轮轮变换运算结果执行j-i轮的轮变换逆运算,其中,1≤i<j≤N;

所述分配器适于在所述控制器的控制下,将所述第i轮轮变换运算的结果及对所述第j轮轮变换运算结果执行j-i轮的轮变换逆运算后的结果,通过对应的输出端输入至所述比较器进行比较。

可选地,所述加/解密电路还包括:第三选择器,所述第三选择器的输入端分别与预设数据输出端及所述分配器的第三输出端连接,适于根据所述比较器的比较结果选择相应的输入进行输出,所述分配器的第三输出端适于输出第N轮轮变换加密运算或解密运算的结果,所述预设数据与所述分配器的第三输出端输出的数据不同。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

通过在加/解密电路中设置控制器,进而可以由所述控制器来控制加/解密运算器对输入数据进行加/解密运算。此时,所述加/解密运算器仅采用n个轮变换单元即可完成加/解密运算功能,而无须采用N个轮变换单元才能完成加/解密运算功能。由于n<N,因此可以在保证防攻击性能的情况下,减少轮变换单元的数量,也就可以减小加/解密电路的面积。

通过控制所述加/解密运算器对所述第j轮轮变换运算结果执行j-i轮的轮变换逆运算,以及控制所述分配器将所述第i轮轮变换运算的结果,及对所述第j轮轮变换运算结果执行j-i轮的轮变换逆运算后的结果,通过对应的输出端输入至所述比较器进行比较,从而可以缩短所述加/解密电路进行回旋校验的时间,提高所述加/解密电路的运算效率。

附图说明

图1是本发明实施例中一种加/解密电路的结构示意图;

图2是本发明实施例中另一种加/解密电路的结构示意图;

图3是本发明实施例中又一种加/解密电路的结构示意图。

具体实施方式

目前,加/解密电路中通常采用N个轮变换单元对输入数据进行加/解密运算,导致所述加/解密电路的结构复杂,电路面积较大。

针对上述问题,本发明实施例提供了一种加/解密电路,所述电路中设置有控制器,及加/解密运算器。通过所述控制器可以控制所述加/解密运算器执行加密运算或解密运算,因此,所述加/解密运算器无须保护N个轮变换单元,仅需n个轮变换单元即可完成执行加密运算或解密运算,由于n<N,故可以 简化所述加/解密电路的结构,减小所述加/解密电路的电路面积。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细地说明。

如图1所示,本发明实施例提供了一种加/解密电路。所述电路可以包括:第一选择器1、加/解密运算器2、分配器3、比较器4及控制器5。其中:

所述第一选择器1的输入端分别与数据输入端In1及所述分配器3的第一输出端U1连接,适于在所述控制器5的控制下,选择相应的输入进行输出。

所述加/解密运算器2的输入端与所述第一选择器1的输出端连接,适于在所述控制器5的控制下,对输入的数据执行加密运算或解密运算。

所述分配器3的输入端与所述加/解密运算器2的输出端连接,适于在所述控制器5的控制下,将所述加/解密运算器2最终运算结果或中间运算结果通过对应的输出端进行输出。其中,所述分配器3的第一输出端U1及第二输出端U2分别用于输出执行回旋校验所需的运算结果。

所述比较器4的输入端分别与所述分配器3的第一输出端及U1第二输出端U2连接,适于对所述第一输出端U1输出的数据与第二输出端U2输出的数据进行比较,并输出比较结果;

所述控制器5适于控制所述第一选择器1的输出,控制加/解密运算器2对所述第一选择器1的输出执行加密运算或解密运算,以及控制所述分配器3将所述加/解密运算器2的最终运算结果或中间运算结果通过对应的输出端进行输出。

在具体实施中,所述加/解密运算器2可以包括n个轮变换单元。所述n个轮变换单元适于在所述控制器5的控制下,对所述第一选择器1的输出执行N轮的轮变换加密/解密运算。其中,n为自然数,且1≤n<N,N为所述加/解密运算器2对所述第一选择器1的输出执行轮变换加密/解密运算的总次数。

在本发明的一实施例中,如图1所示,所述加/解密运算器2可以仅包括1个轮变换单元21。所述轮变换单元21可以在所述控制器5的控制下,对输 入数据执行N轮的加密运算或解密运算。

在本发明的另一实施例中,如图2所示,所述加/解密运算器2可以包括2个轮变换单元,分别为轮变换单元22及23。其中所述轮变换单元22可以在所述控制器5的控制下,对输入数据执行N轮的加密运算。所述轮变换单元23可以在所述控制器5的控制下,对输入数据执行N轮的解密运算。

在本发明的其他实施例中,如图3所示,所述加/解密运算器2可以包括n个轮变换单元,分别为轮变换单元24至2(n+3)。所述控制器5可以控制轮变换单元24至22(n+3)执行相应的加密或解密运算。

在具体实施中,当2≤n<N时,如图2及图3所示,所述加/解密电路还包括:第二选择器6。所述第二选择器6的输入端分别与各个轮变换单元的输出端连接,适于在所述控制器5的控制下,选择相应轮变换单元的运算结果进行输出。其中,当n=2时,所述第二选择器6为二选一的选择器。当2<n时,所述第二选择器6为多选一的选择器。

下面对所述加/解密电路的工作原理进行详细介绍:

由于所述第一选择器1不仅与数据输入端In1连接,还与所述分配器3的第一输出端U1连接,因此,在控制器5的控制下,所述第一选择器1可以选择输出所输入的数据,也可以选择输出所述加/解密运算器2对输出的数据执行加密运算或解密运算的中间运算结果或最终运算结果。可以理解的是,当所述加/解密电路需要对输入数据进行加/解密处理时,所述控制器5控制所述第一选择器1输出所输入的数据,进而由加/解密运算器2对输入数据进行加/解密处理,再由所述分配器3输出相应的处理结果。当所述加/解密电路需要对输入数据的加/解密处理结果进行回旋校验时,所述控制器5控制所述第一选择器1输出加/解密处理过程中产生的中间运算结果或最终运算结果,所述控制器5控制所述加/解密运算器2对所述中间运算结果或最终运算结果进行加/解密处理,再由所述分配器3将相应的处理结果输出至比较器4进行比较。其中,Out1为加/解密处理的最终运算结果的输出端,Out2为回旋校验结果输出端。

具体地,所述加/解密电路依次按照如下步骤进行数据处理:

步骤1、输入数据通过数据输入端In1输入至所述第一选择器1。

步骤2、所述控制器5控制所述第一选择器1将输入数据输出至所述加/解密运算器2。

步骤3、所述控制器5控制所述加/解密运算器2对所述第一选择器1输出的数据执行加密运算或解密运算。

当所述加/解密运算器2仅包括1个轮变换单元21时,所述控制器5控制所述轮变换单元21对输入数据执行加密运算或解密运算。当所述加/解密运算器2包括2个轮变换单元时,所述控制器5分别控制所述轮变换单元对输入数据执行加密运算或解密运算。当所述加/解密运算器2包括多个轮变换单元时,所述控制器5分别控制所述多个轮变换单元对输入数据执行加密运算或解密运算。

需要说明的是,当所述加/解密运算器2中轮变换单元的个数大于等于2个时,在执行步骤4之前,还包括步骤6:所述控制器5控制所述第二选择器6选择相应轮变换单元的运算结果输出至所述分配器3。

步骤4、所述控制器5控制所述分配器3将所述加/解密运算器2的最终运算结果或中间运算结果通过对应的输出端进行输出。

具体地,所述控制器5可以控制所述分配器3将加/解密处理的最终运算结果通过第三输出端U3输出,将加/解密处理的最终运算结果或中间运算结果通过第一输出端U1及第二输出端U2输出至比较器4,由所述比较器4对加/解密处理的最终运算结果进行回旋校验。

在本发明的一实施例中,所述加/解密电路可以按照如下方法对加/解密处理的最终运算结果进行回旋校验:

在控制器5的控制下,所述加/解密运算器2对输入数据进行N轮的轮变换加密运算或解密运算。运算结束后,所述控制器5可以控制所述加/解密运算器2对第j轮轮变换运算结果执行j-i轮的轮变换逆运算,以及控制所述分配器3分别将所述逆运算后的结果以及第i轮轮变换运算的结果通过第一输出端U1或第二输出端U2输出至比较器4。所述比较器5对所述第一输出端U1输出的数据与第二输出端U2输出的数据进行比较,并输出比较结果。其中, 1≤i<j≤N

例如,当所述加/解密运算器2对输入数据进行N轮的轮变换加密运算时,所述第j轮及第i轮轮变换运算结果分别为第j轮及第i轮轮变换加密运算结果,所述对第j轮轮变换运算结果执行j-i轮的轮变换逆运算,即对第j轮轮变换加密运算结果执行j-i轮的轮变换解密运算。

当所述加/解密运算器2对输入数据进行N轮的轮变换解密运算时,所述第j轮及第i轮轮变换运算结果分别为第j轮及第i轮轮变换解密运算结果,所述对第j轮轮变换运算结果执行j-i轮的轮变换逆运算,即对第j轮轮变换解密运算结果执行j-i轮的轮变换加密运算。

在具体实施中,本领域技术人员可以根据自身需求设置i及j的值。例如,j=i+1,此时第j轮及第i轮轮变换运算结果为相邻两轮轮变换的运算结果。又如,在所述加/解密运算器2的密码算法为DES算法时,N=16,此时i的值可以为15,j的值可以为16。

采用上述回旋校验方法进行回旋校验,由于仅执行j-i轮的轮变换逆运算即可对加/解密处理的最终运算结果进行回旋校验,因此可以缩短所述加/解密电路进行回旋校验的时间,提高所述加/解密电路的运算效率。

在具体实施中,为了进一步提高所述加/解密电路的安全性,如图1所示,所述加/解密电路还可以包括:第三选择器7,所述第三选择器7的输入端分别与所述分配器3的第三输出端U3及预设数据输出端In2连接,适于根据比较器4的比较结果选择相应的数据输出。

其中,所述预设数据与所述分配器3的第三输出端U3输出的数据不同,例如,所述预设数据可以为“0”,也可以为随机数。这样,当所述分配器3输入至所述比较器4的两个数据不同时,加/解密处理的最终运算结果虽然是错误结果,但与加/解密处理过程中泄露的信息仍存在一定联系。若所述第三选择器7将所述预设数据输出,可以使得攻击者无法获得该错误结果,进一步提高所述加/解密电路的安全性。

在具体实施中,所述加/解密运算器2可以采用对称算法对输入数据进行加/解密处理,也可以采用非对称算法对输入数据进行加/解密处理。其中,所 述对称加密算法可以包括DES算法、RC2算法、RC4算法、RC5算法和Blowfish算法等。所述非对称加密算法可以包括RSA算法、ECC算法和Knapsack算法等。具体无论采用何种加密算法对输入数据进行加/解密处理,均不构成对本发明的限制,且均在本发明的保护范围之内。

需要说明的是,在具体实施中,所述加/解密电路的整个控制过程可以是由所述控制器通过程序来指令相关的硬件完成的。该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、EEPROM、FLASH、磁盘或光盘等。

由上述内容可知,本发明实施例中,所述加/解密电路通过控制器5控制加/解密运算器2执行相应的加密运算或解密运算,可以使得所述加/解密运算器2仅包括n个轮变换单元即可实现相应的运算功能,减小了轮变换单元的数量,也就减小了所述加/解密电路的面积和功耗。并且,由于各个轮变换单元均由所述控制器5进行控制,可以使得运行过程中发生的错误不易复现,增加攻击难度。另外,由于所述控制器5可以控制每个轮变换单元进行加密运算或解密运算,因此所述控制器5可以控制所述n个轮变换单元可以实现任意轮次的加/解运算。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

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