可信计算中对称密码算法的FPGA设计与实现文献综述

 2022-09-26 17:20:54

{title}{title}

文献综述(或调研报告):

3.1 SM4算法概述

SM4.0算法(简称SM4),是由国家密码管理局于2012年在GM/T0002-2012《SM4分组密码算法》中提出的一项行业标准。与DES和AES算法类似,SM4算法是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。SM4算法加/解密算法的结构相同,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序。根据标准文件所述,SM4算法的整体结构如图所示:

图1. SM4算法结构图

参数产生:字节由8位2进制数表示,字由32位2进制数表示;S盒为固定的8bit输入和输出置换。加密密钥长度为128bit,表示为,其中MKi (i=0,1,2,3)为字。轮密钥表示为rki(i=0,1,2.....,31)为字。FK=(FK0,FK1,FK2,FK3)为系统参数,CK=(CK0,CK1,.....,CK31)为固定参数,都为字。

整体的加密函数为:

其中T为一个合成置换,由非线性变换和线性变换复合而成。非线性变换由4个平行的S盒构成,S盒的数据均采用16进制。线性变换公式如下,其中B为非线性变换得到的字。

S盒数据如下:

图2. S盒数据置换图

密钥扩展:已知加密密钥为,系统参数为FK=(FK0,FK1,FK2,FK3),固定参数为CK=(CK0,CK1,.....,CK31)。记rki为轮密钥,轮密钥由加密密钥生成。首先,用以下公式计算出中间变量Ki

然后对i=0,1,2,...31,用以下公式计算出轮密钥rki

该变换与加密中的T变换基本相同,只是将其中的线性变换改为:

由于系统参数个固定参数是已知的,轮密钥即可求得。加密最后一轮变换时,输出为:

最后的输出是加密密文的反序。解密时整体过程与加密过程相同,只是将轮密钥的使用顺序进行逆向进行即可。

3.2ZUC算法概述

3.2.1 ZUC-128算法

ZUC算法是一个同步流密码算法,由128位初始密钥k和128位初始向量iv作为输入,输出32位字的密钥流(每32位称为一个密钥字)。ZUC算法逻辑上采用三层结构,即线性反馈以为寄存器(LFSR)、比特重组(BR)、和非线性函数F,其整体结构如图3.所示。

图3 . ZUC算法结构图

线性反馈移位寄存器(LFSR)有16个31位的单元(s0,s1hellip;s15),每个单元si(0le;ile;15)仅在集合{1,2,3,hellip;231-1}中取值。LFSR有两个操作模式:初始化模式和工作模式。具体步骤为:

比特重组是算法的中间层,从LFSR的8个单元s0,s2,s5,s7,s9,s11,s14,s15里按照下面的方式形成4个32位的字,在非线性函数F和产生密钥流中使用。具体步骤为:

其中//表示级联。

非线性函数F包括2个32位的记忆单元R1和R2,输入为X0,X1和X2,输出为一个32位的字W,其作用是破坏LFSR的线性结构,具体步骤为:

上述的线性变换L1和L2分别为

均是32位到32位的变换。S表示S盒运算,32times;32的S盒由4个并列的8times;8的S盒组成,即,其中,,因此只需要定义两个S盒S0和S1,这样的结构化设计方法,降低了硬件资源的消耗。

密钥装载:假设128位的初始密钥k,128位的初始向量iv和240位的长整型常量字符串D分别为:

k,iv和D被加载到LFSR的s0,hellip;s15中:,其中0le;ile;15。

3.2.2 ZUC-256

ZUC-256是基于ZUC-128提出的改进算法,目的在于提升ZUC算法的密钥强度与安全型。其采用256比特密钥,主体架构与ZUC-128基本相同,唯一的不同点仅在于密钥装载的过程,具体过程如下。

令K=(k31,K30,hellip;K1,K0)为ZUC-256流密码采用的256比特密钥,其中Ki(0le;ile;31)为8比特字节。令IV=(IV24,IV23,hellip;IV17,IV16, hellip;IV1,IV0)为ZUC-256流密码采用的184比特初始向量,其中IVi(0le;ile;16)为8比特字节,IVi(17le;ile;24)为6比特字节长的比特串,占据一个字节的低6位。令di(0le;ile;15)位ZUC-256流密码采用的7比特常数,则密钥装载公式如下。

四、方案(设计方案、或研究方案、研制方案)论证:

4.1 SM4.0硬件实现方案设计

SM4算法的硬件设计采用模块化编程,根据GM/T0002-2012中给出的算法标准,该算法的实现将分为以下5个模块:TOP模块、F函数模块、L变换模块、T变换模块、S置换模块。

TOP模块:用以连接和实例化各个子模块,内置状态机控制轮密钥和密文数据的生成。

F轮函数模块:实现算法中的F函数。

T变换模块:用以完成合成置换的T运算,即将S盒置换与线性L变换实例化。

L变换模块:完成L函数的线性运算。

S置换模块:对32bit输入的数据进行单字节的拆分,完成S盒置换运算后再进行重组。

4.2 SM4.0性能提升及算法优化

1)流水线架构:为了充分发挥FGPA硬件的高性能与高效率,可将加解密通道设计为全流水结构。在全流水结构下,SM4算法由32个SM4轮函数组成,每个轮函数都有一个输入的轮密钥,轮函数之间通过128bit的寄存器进行隔离。由于全流水SM4算法需要经过32个周期才能将流水线填满,于是明文/密文至少需等待32个时钟周期的延时进行输出。

2)防止边信道攻击:侧信道攻击是一种常见的黑客攻击手段,为了减少边信道攻击可能带来的不利影响,可在轮函数中添加冗余迭代运算,人为加入的迭代运算自身具有可逆性,并不影响最终密文输出结果,以少许增加输出延时为代价,可在一定程度上防止边信道攻击。

4.3 ZUC硬件实现方案设计

根据GM/T0001-2012文件里给出的如图3.的算法架构,ZUC的硬件方式仍采用模块化编程,共分为以下四个模块:top模块、LFSR模块、BR模块和F函数模块。

TOP模块:用以连接和实例化各个子模块,内置状态机控制两种不同工作阶段的切换,且可以支持128bit和256bit两种密钥格式的密钥装载。

LFSR模块:内置一个16单元的线性反馈移位寄存器以及一个模231-1的加法器。

BR模块:完成32位字的拆分和重组功能。

F函数模块:完成ZUC算法最底层的非线性变换功能。

4.4 ZUC性能优化

1)改进模231-1加法器:有一种在硬件设计中被广泛利用的加法器是进位存储加法器(CSA)。它只是k个全加法器的并行集合,没有任何水平方向的连接。当三个或更多的数字相加时,使用一个CSA和一个进位传播加法器(CPA)比使用两个CPA要快。举个例子来说,为了计算(A B C)(mod 231-1),首先利用等式(1,2)产生两个整数Carry和Sum,接着利用一个CPA来得到最终的结果。

(1)

(2)

(3)

(4)

可以直观地看出(A B C)(mod 231-1)等于(Sum (Carrylt;lt;lt;1))(mod 231-1)。因此,如果使用这种CSA架构实现模231minus;1的加法,将会非常有效,因为总延迟比先前的方法短。此外,该方法需要的硬件资源也更少。

2)基于ZUC的两级混合流水线体系结构:为了实现高吞吐量的ZUC硬件实现,应该在每个时钟周期更新LFSR,以便在更高的操作频率下生成32位密钥。虽然只在初始化阶段进行了较长的路径,但是它降低了整个ZUC在实现中的工作频率。

基于这一观察,可采用一种新的架构。在这个新的架构中,LFSR在初始化阶段每隔一个时钟周期更新一次,在工作阶段每个时钟周期更新一次。通过这种方式,我们提高了工作频率,密钥的吞吐量得到了提高,因为像以前提出的其他体系结构一样,每个时钟周期生成32位密钥。另外,新的架构消耗更少的硬件资源。接下来,我们将给出关于这个新体系结构的详细信息。

  1. 进度安排:

1)2.26至3.15:制定方案,撰写开题报告,准备开题答辩。

2)3.16至3.26: 熟悉FPGA平台,收集研究所需资料,进一步完善方案。

3)3.27至4.12: 实施方案,编写代码,初步实现SM4算法。

4)4.13至4.15:编写中期报告,准备中期验收。

5)4.16至5.10:完成对ZUC算法的实验研究,得出数据并加以分析,与预设目标进行比对并进行最后的改进。

6)5.11至5.20:撰写毕业设计论文,准备实物验收以及结题答辩。

六、参考文献:

[1] Li Li. An Implementation Method for SM4-GCM on FPGA[A]. IEEE Beijing Section、Global Union Academy of Science and Technology、Chongqing Global Union Academy of Science and Technology、Chongqing Geeks Education Technology Co., Ltd.Proceedings of 2017 IEEE 2nd Advanced Information Technology,Electronic and Automation Control Conference (IAEAC 2017)[C].IEEE Beijing Section、Global Union Academy of Science and Technology、Chongqing Global Union Academy of Science and Technology、Chongqing Geeks Education Technology Co., Ltd:IEEE BEIJING SECTION(跨国电气电子工程师学会北京分会),2017:5.

[2]李歌,陶琳,高献伟.基于FPGA的祖冲之算法研究与实现[J].北京电子科技学院学报,2012,20(04):13-18.

[3]Tao Li, Aiqun Hu. Trust relationships in secure mobile systems[C]. 2013 IEEE Wireless Communications and Networking Conference (WCNC), Shanghai, China, 2013:4.

[4] Sulong Tang , Liji Wu , Xiangmin Zhang , et al. A Novel Method of Correlation Power Analysis on SM4 Hardware Implementation[C]. 2016 12th International Conference on Computational Intelligence and Security (CIS), Wuxi, China, 2016:8.

[5] Mengmeng Xu , Liji Wu , Xiangmin Zhang, et al. Side Channel Attack on SM4 Algorithm with Ensemble Method[C], 2017 13th International Conference on Computational Intelligence and Security (CIS), Hong Kong, China, 2017:12.

[6] Zongbin Liu , Qinglong Zhang , Cunqing Ma, et al. HPAZ: A high-throughput pipeline architecture of ZUC in hardware[C], 2016 Design, Automation amp; Test in Europe Conference amp; Exhibition (DATE), Dresden, Germany, 2016:3.

[7]王泽芳,唐中剑.SM4算法CTR模式的高吞吐率ASIC实现[J/OL].电子器件,2019(01):1-5[2019-03-12].http://kns.cnki.net/kcms/detail/32.1416.tn.20190227.0948.058.html.

[8].ZUC-256流密码算法[J].密码学报,2018,5(02):167-179.

[9]王传福. SM4与祖冲之算法的优化设计与应用[D].黑龙江大学,2017.

[10]冯秀涛.祖冲之序列密码算法[J].信息安全研究,2016,2(11):1028-1041.

资料编号:[193954]

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版