一种可配置硬件结构设计与实现

时间:2011-08-23

  在信息安全领域,数据加密又称密码学,它是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。数据加密目前仍是计算机系统对信息进行保护的一种可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。

  多年来,许多人都认为DES并不是真的很安全。事实上,即使不采用智能的方法,随着快速、高度并行的处理器的出现,强制破解DES也是可能的。"公开密钥"加密方法使得DES以及类似的传统加密技术过时了。公开密钥加密方法中,加密算法和加密密钥都是公开的,任何人都可将明文转换成密文。但是相应的解密密钥是保密的(公开密钥方法包括两个密钥,分别用于加密和解密),而且无法从加密密钥推导出,因此,即使是加密者若未被授权也无法执行相应的解密。

  1 AES算法介绍

  AES 算法是基于置换和代替的。置换是数据的重新排列,而代替是用一个单元数据替换另一个。AES 使用了几种不同的技术来实现置换和替换。为了阐明这些技术,让我们用 Figure 1 所示的数据讨论一个具体的 AES 加密例子。AES是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations )和替换(substitutions)输入数据。Figure 1 显示了 AES 用192位密钥对一个16位字节数据块进行加密和解密的情形。

  1.1 加/解密算法

  加密算法的每一轮由4个变换组成,依次为字节代替、行移位、列混合以及轮密钥加。一轮变换与其他轮略有不同,主要是少了列混合变换。数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

  1.2 密钥扩展算法

  圈子密钥是通过密钥扩展算法从初始密钥中获得的,其长度等于分组长度。AES的密钥扩展算法由密钥扩展和密钥选取两部分构成。

  初始密钥经密钥扩展过程产生32Nb(Nr+1) bit的扩展密钥,共包含Nb(Nr+1)=t个4字节的密钥字(其中Nr代表迭代轮数,Nb代表数据分组数,Nk代表密钥分组数,数据和密钥每个分组为32  bit)。扩展后得到的全部密钥字为:w0 w1…wt-1,前Nk个密钥字直接由外部密钥获得,后续密钥字根据初始密钥的长度分为2种情况得到。当密钥长度为128  bit或192  bit时,后续密钥字wi等于其前1个字wi-1与Nk个位置之前的字wi-Nk的“异或”。对于Nk的整数倍位置的字,在“异或”之前,要对wi-1进行1次G变换。G变换的步骤为先进行1次字节循环移位,然后再做1次字节替代变换,再“异或”1个轮常数。当密钥长度为256位时,如果Nk=8且i-4是Nk的整数倍,则“异或”之前对wi-1要做1次字节替代变换。

  2 AES算法各模块的设计

  2.1 S盒的设计

  字节替代变换是关于字节的非线性变换,它将状态中每1个字节非线性地变换为另1个字节,替代(S盒)是可逆的。S盒的传统设计方法是使用VHDL语言中的CASE语句进行描述,但这样实现的S盒将占用大量的逻辑资源,且速度较低,FPGA内部的存储器资源得不到充分利用。为了充分利用FPGA芯片内部的存储器资源,提高运行速度,可将替代的内容存储到FPGA内部的存储器中,根据输入字节的数值进行快速的查表操作。

  2.2 行移位的设计

  行移位是以字节为单位进行的循环移位。由于移位位数是固定的,故可采用直接连线的方式来实现,对于逆行移位,可以采用同样的方法来实现。

  2.3 列混合的设计

  由AES列混合变换的原理可知,列混合变换就是输入状态矩阵与1个系数矩阵相乘,此系数矩阵中的元素有3种,分别为16进制数01、02、03。由参考文献[2]可知,可以利用xf(x)算法对其进行快速实现。逆列混合变换的原理类似,其系数矩阵中的元素有4种,分别为16进制数09、0e、0b、0d。同样可利用xf(x)算法对其进行实现,只是乘数较大,需多次使用xf(x)算法。

  2.4 密钥加的设计

  由于本设计采用128 bit的数据分组长度,所以密钥加的设计是将2个128 bit数作“异或”运算。因为“异或”的逆运算也为“异或”,所以解密变换的密钥加也为2个128 bit数的“异或”。

  3 加/解密运算的统一结构设计

  AES算法加/解密运算过程的相似性是进行统一结构设计的基础。通过分析可知,加/解密运算的变换环节也存在相同或相似性,如S盒变换、行移位变换、密钥加以及密钥生成,这些都可作为统一结构设计的组件。

  S盒变换是该算法硬件实现时重要的环节,其所占资源在整个算法中的比重很大,对于S盒和逆S盒,它们的输入输出端口都为8进8出,占用的存储资源相同,不同的只是存储空间中的内容。因此在设计中,可让加/解密共用同一个S盒模块,只是在实现加/解密运算时,对S盒中的存储内容进行重新配置即可。

  对于行移位和逆行移位,其实现仅需占用连线资源,所以两者的单独设计不会造成逻辑资源消耗的增加。且行移位只是以字节为单位进行移位,与字节的值无关。而S盒变换只是改变字节的值,与字节的位置无关。

  对于“异或”运算,因其逆运算就是它本身,所以在加/解密过程中,2种密钥加运算可以用同一硬件资源来实现。

  在增加了相应的控制信号和选择器之后,加/解密算法可归结为同一个计算流程,如图1所示。

  由于加/解密被归结为同一个计算流程,因此在实现时,两者可共用相同的控制资源。相对于单纯的加密结构,本设计仅增加了逆列混合单元和部分控制资源即实现了加/解密运算的双重功能。

  4 密钥扩展算法的可配置设计

  由算法原理可知,128 bit,192 bit及256 bit 3种密钥长度的密钥生成算法各不相同。128 bit密钥长度的密钥生成算法的每1圈流程[3]如图2所示。192 bit密钥长度的密钥生成算法与之类似,只须把每轮的输入输出改为6路即可。

  256 bit密钥长度的密钥生成算法与128 bit和192 bit略有不同,即把第4路输出经过了1个S盒变换,S盒变换的结果再与第5路“异或”,其每1圈的流程如图3所示。

  通过对3种密钥生成算法的分析可知,3种算法的圈函数结构存在很大的相似性,128 bit、192 bit的密钥生成圈函数都可视为256 bit密钥生成圈函数的一部分。因此可以通过对后者进行适当的变形,从而实现128 bit、192 bit密钥长度的密钥生成算法。本文通过在256 bit密钥生成算法圈函数的基础上添加2个必要的数据选择器来实现128 bit与192 bit的密钥生成算法,具体实现结构如图4所示。

  图中,第3路输出和第5路输出作为选择器A的输入,其输出与第6路输入“异或”。同理,第3路输出与第7路输出作为选择器B的输入,其输出与1路输入“异或”。选择器A、B为32  bit的二选一多路选择器。只须对选择器A、B进行控制,便可灵活实现3种密钥生成算法。若要实现256  bit密钥生成算法,使选择器的输出均为上一路的输入即可。若要实现192  bit密钥生成算法,须使A选择器的输出为下一路,B选择器的输出为上一路。同时,圈函数的输入与输出应分别选取除第4路与第5路之外的其他路;若要实现128 bit密钥生成算法,只需使B选择器的输出为下一路。同时圈函数的输入与输出分别选取第1、2、3路和一路。

  5 系统的实现与仿真

  本文采用VHDL语言对系统进行描述,采用Altera公司的Stratix系列的EP1S10F484C5器件作为算法载体,通过QuartusII 5.0对系统进行综合、仿真并。根据S盒/逆S盒的内容生成内存初始化文件mif,用In-System Memory Content Editor工具对S盒的内容进行动态更新。仿真测试结果表明,相对于传统的设计,本设计消耗的资源大为减少。表1为本设计与传统设计在资源消耗和运行速度的比较。因为本设计在关键路径上添加了必要的选择控制单元,所以处理速度相对于传统设计有所降低。

  本文对AES算法进行了可配置设计,在数据分组长度固定的前提下,可以根据安全等级的需要选择不同分组长度的密钥进行加密运算。本文设计出1个统一的加解密硬件结构,使资源消耗大为减少。由于采用了3种长度规格的密钥,使得算法的安全级别灵活可变,用户可根据不同的安全需求灵活选择。在子密钥的生成上,本文采用可配置的方式来实现3种密钥生成算法,相对于使用不同的硬件结构实现每一种密钥生成算法,消耗的硬件资源进一步减少。算法中S盒的实现方式决定了其具备动态更新的特性,因此算法的安全性也得到进一步增强。综上所述,本设计非常适用于硬件资源受限且有多种安全级别需要的密码系统。


  

参考文献:

[1]. EP1S10F484C5 datasheet https://www.dzsc.com/datasheet/EP1S10F484C5_1098449.html.
[2]. mif datasheet https://www.dzsc.com/datasheet/mif_2043409.html.


上一篇:阿朗为加拿大AltaLink建高速IP网连接270座变电站
下一篇:浅谈CMT砖机专用变频器的应用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料