APP下载

多引擎并行CBC模式的SM4算法的芯片级实现

2018-06-08樊凌雁骆建军刘海銮

计算机研究与发展 2018年6期
关键词:状态机固态密钥

樊凌雁 周 盟 骆建军 刘海銮

1(杭州电子科技大学微电子研究中心 杭州 310018) 2 (杭州华澜微电子股份有限公司 杭州 311215) (fanlingyan@hdu.edu.cn)

Fig. 1 Architecture of SATA solid state disk图1 SATA固态硬盘架构

NAND技术和固态存储控制技术的飞速发展,引爆了硬盘存储的产业革命.新一代固态硬盘存储技术凭借启动快、寿命长、读写快、无噪音、体积小、重量轻、抗震动、耗能低等绝对优势,在互联网、计算机、航天、医疗、交通、工业控制等各个领域得到了广泛应用[1].数据信息的爆炸式增长对于信息的海量数据的高速、安全存储提出了更高的要求.英国《金融时报》网站2015年2月17日报道,总部驻莫斯科的网络安全公司卡巴斯基实验室表示,该公司已在30个国家所用的电脑中发现了多种设计精密的黑客木马,存储在电脑的信息存在被偷窃的可能.

SM4算法是中国首个官方发布的分组对称密码算法,它在2012年3月被国家密码管理局批准为行业标准[2],近些年涌现出很多研究成果[3-6].因此,将具有自主知识产权的密码学理论成果与自主研发的固态存储技术相结合,研发性能高、安全性高的集成电路芯片,对中国的信息安全有极其重大的意义.

SM4算法常见的加密模式有加密块链模式(cipher block chaining, CBC)、电子密码本模式(electronic codebook, ECB)等[7],其中CBC模式由于存在从输出端到输入端的反馈路径,从而拥有更高的安全性[8],是当前固态硬盘采用最多的分组加密方式.但是,因为CBC模式的反馈路径,使得数据之间有了关联性,导致无法使用流水线技术[9]来提高电路的吞吐率.此外,另一种常用的提高吞吐率的方法是轮函数合并技术,该方法是在1个周期内,同时进行n(n是32的因子)个轮函数运算.这种处理方式在时钟主频不限制时,在同一工艺条件下,以2倍的面积获得10%的性能提升,其提升效果不是那么明显,如表1所示:

Table 1 Comparison of SM4 Wheel Functions Combination表1 SM4轮函数合并性能对比

本文采用乒乓(PING-PONG)技术,提出了一种多引擎同步工作的方式,通过增强加解密引擎的并行性,从而提高SM4算法CBC模式在65 nm工艺下的吞吐率,满足SATAⅢ接口的速率要求.

1 SM4多引擎加解密方案

本文设计的SM4加解密引擎不仅支持CBC模式,并且运行带宽不影响SATAⅢ固态硬盘的性能,也就是在加解密的情况下保证了足够的带宽.

1.1 SATA固态硬盘架构

按照自顶而下的设计方法,本文的固态硬盘架构设计如图1所示,将SATA固态硬盘划分为多个子模块,分别为:1)SATA PHY模块;2)SATA Core模块;3)DRAM控制器模块;4)Flash控制器模块;5)多引擎加解密安全模块;6)CPU模块,包含系统CPU模块和FTL(flash translation layer)算法CPU模块.

夫妻离婚争孩子,老婆理直气壮说:“孩子从我肚子里出来的,当然归我!”老公说:“笑话!简直是胡说八道!取款机里取出来的钱能归取款机吗?还不是谁插卡归谁!”

多引擎加解安全密模块置于SATA Core模块和DRAM控制器模块之间,其中SATA Core模块包含链路层、传输层、应用层.其中,链路层负责链路状态管理,数据包的发送和接收,完成8 B10 B编解码、加扰解扰、封包解包、CRC校验,负责接口电源管理;传输层负责帧信息结构(frame information structure, FIS)打包和解包,完成如直接内存存取(direct memory access, DMA)传输、程序输入输出模型(programming inputoutput model, PIO)传输、原生命令队列(native command queuing, NCQ)传输等数据命令交互功能,对数据传输进行流量控制;应用层主要负责应用处理,譬如AHCI协议的支持、ATA命令处理.

2.2.1 密钥扩展仿真

而DRAM控制器模块主要分为DRAM PHY和DRAM Core.DRAM PHY主要负责和DRAM芯片的接口通信;DRAM Core主要是完成DDR协议处理和多数据存取通道的仲裁管理,比较常见的接口为AXI接口.

综上所述,如果某种行为入罪符合刑罚以及国家经济管理之目的,且将其入罪不会让社会一般人认为行为人之人权因此受到侵犯,便可以推定该种行为有入罪的必要,其社会危害性达到了入罪的程度和标准,反之,则不能将其作犯罪化处理。以此为基准,保持经济犯罪圈入罪与出罪的双向动态化,尤其要注意将不具有严重社会危害性的行为及时出罪以保障人权,促进经济发展。

1.2 多引擎加解密安全模块设计

多引擎加解密安全模块置于SATA端和DRAM端之间,它主要由输入输出接口、4个SM4加解密引擎、输入输出缓存模块组成.

在运用慕课教学手段开展小学语文教学的过程中,教师首先需要开展的工作就是对整体的教学大纲和教学任务进行分析以及掌握,以此为依据将教学内容进行细化,按照不同的类型、难度划分模块,实施模块教学。其次,当教师已经整理好教学内容,便可以按照知识脉络设计知识图谱,形成知识结构,并通过不断地完善形成具有系统性的知识体系[1]。

Fig. 2 Architecture of multi-engine encryption and decryption security module图2 多引擎加解密安全模块框架

本文在图1所示的固态硬盘架构上,单引擎采用全循环迭代方法[10](即n=1的轮函数合并技术),并在此基础上设计了多引擎加解密安全模块来扩展带宽,其设计如图2所示:

第四,配套完整、齐全的法律法规。目前面临的实际情况是,对于重组整合,相应的法律法规条款不完善。某些具体的条款不够全面完整。对于某些情况取而代之的是行政指挥命令的方式。这种也很容易影响权利寻租,金钱交易等情况。进而阻碍企业的重组整合进度。影响进度和效率。

为了提高固态硬盘的数据传输速率和加解密引擎的数据处理速率,本文提出了一种乒乓技术.将输入缓存和输出缓存分别置于SATA端和DRAM端,它们都由2个容量为2 Kb的FIFO组成.当进行数据传输时,一个FIFO接受来自主机数据,而另一个FIFO同时进行数据加解密,这样避免了只有单个FIFO被占用的等待时间,从而将传输速度提升1倍.

6) SM4_ENGINE1_READY.sm4_core1_busy为高,此时状态不跳转,等sm4_core1_busy为低,数据已经准备好,产生1个sm4_core1_load,状态机转换到SM4_ENGINE2_RUN状态.

Fig. 3 Data transmission flow图3 数据传输流程

5) SM4_ENGINE0_READY.SM4引擎在运行时,会置busy状态,此时状态不跳转,等sm4_core0_busy为低,数据已经准备好,产生1个sm4_core0_load,开始进行加解密.状态机转换到SM4_ENGINE1_RUN状态.

1) SATA Core接收主机数据,通过输入数据流接口AXI,往SFIFO的FIFO0送2 Kb数据即填满SFIFO的FIFO0,多引擎加解密安全模块启动加密,同时将Sector1,Sector2,Sector3,Sector4开头的128 b数据分别传输给4个SM4引擎,传输完成后,接着传输下一个128 b直至传输完1个Sector的数据.

2) 对FIFO0中的数据加密的同时,SATA Core继续接收主机数据放到SFIFO的FIFO1中.当SM4加密引擎完成1个128 b数据加密后,就填入到DFIFO的FIFO0对应的Sector中,当SM4完成所有2 Kb数据加密后即填满DFIFO的FIFO0,DFIFO就把FIFO0中的数据通过输出数据流接口AXI送入DRAM.

3) 多引擎加解密安全模块检查SFIFO的FIFO1是否为满以及DFIFO的FIFO1是否为空,如果同时满足,则开始进行FIFO1的加密,否则继续等待.FIFO0和FIFO1一直乒乓式地交替运行下去,直到所有数据完成.

数据乒乓技术的意义在于无损实现数据加密,一组数据在加密的同时,另外一组数据进入FIFO.这组数据加密完成,下一组数据进入加密过程,这样就节省了等待时间.

1.6 统计学处理 采用SPSS 20.0统计软件分析数据。呈正态分布的计量资料以表示。各个时间点及组别大鼠的体质量情况,采用重复测量设计的方差分析模型检验;体质量数据不满足球形时,进一步采用多变量方差(MANOVA)分析。组间大鼠尿蛋白、糖脂代谢及炎症因子情况的比较采用单因素方差(One-Way ANOVA)分析。两两比较采用LSD法。采用Pearson法进行相关性分析;ACR的相关危险因素分析采用logistic回归分析法。检验水准(α)为0.05。

1.3 状态机设计

为了完成多个加密引擎的流水控制和流量控制,本文设计状态机来自动控制.加解密安全模块的状态迁移如图4所示:

Fig. 4 State migration of encryption and decryption security module图4 加解密安全模块状态迁移

1) IDLE状态.该状态是空闲状态、状态复位状态.

杨三可表示,“瓮福做新品,关注的是内涵,是科技含量,必须服务于增产增收、减施增效、绿色环保,为农民创造价值。”他对在场的瓮福农资公司员工提出要求:“目前,集团在新型肥料研发、铁腕提质、服务提升等方面取得了很多新突破,农资公司必须抓好试验示范田建设,针对不同的土壤、不同的作物,广泛开展试验示范,用实实在在的效果说话,同时也要配套好农化服务、农民培训等服务,打造幸福农业服务商。”

2) KEY_RUN状态.该状态是密钥扩展状态,为了提高运行速度,并节省存储轮密钥的寄存器,密钥采用同步扩展的方法,但是在解密时需要使用最后1个轮密钥作为起始密钥,所以在初始化的时候,固件设置密钥扩展命令,使得SM4引擎进行密钥扩展,并将最后1个轮密钥记录并保存.每个SM4引擎都需要进行密钥扩展,在更换密钥的时候也需要重新进行密钥扩展.

术中体温的变化分为3个阶段:第一个阶段是由于麻醉等因素造成血流分布改变引起的核心体温快速下降,一般会在第1 h内下降0.5~1.5 ℃;第二个阶段是由于手术伤口热量挥发、室温等因素引起的持续体温下降,一般持续时间为2~4 h;第三个阶段为平缓期,体温的变化取决于热量丢失及补充的平衡状态[42]。通过减少体表暴露、升高室温、使用温毯、加温输入液体和缩短手术时间等方法有助于维持体温。

3) KEY_DONE状态.密钥扩展完成,固件可以清除key_running信号,状态机回到空闲状态.

4) CHECK_FIFO_READY.固件启动加解密安全模块后,状态机开始跳转到数据等待,加密和解密只是方向不同.加密时,SFIFO的明文数据作为源数据,DFIFO存储加密后的密文数据并将数据送给DRAM;解密时,DFIFO的密文数据作为源数据,SFIFO存储解密后的明文数据并将数据返回给主机.此外,只有在源数据FIFO准备好2 Kb数据(不满2 Kb的,填充其他数据)以及目标FIFO为空时,加解密引擎开始启动.

以写流程为例:

此外,对多个加解密引擎的合理调度和控制是实现高效并行密码处理的关键.本文采用输入与输出相分离的结构,将每个FIFO均分为4个Sector,每个Sector对应1个加密引擎,用于数据缓存.数据传输流程如图3所示:

抽水井非达西流问题两种数值模拟方法比较研究……………………………… 王志海,徐 亚,闫俊岭等(17.53)

7) SM4_ENGINE2_READY.sm4_core2_busy为高,此时状态不跳转,等sm4_core2_busy为低,数据已经准备好,产生1个sm4_core2_load,状态机转换到SM4_ENGINE3_RUN状态.

8) SM4_ENGINE3_READY.SM4引擎在运行时会置busy状态,此时状态不跳转,等sm4_core0_busy为低,数据已经准备好,产生1个sm4_core0_load,开始进行加解密.如果这是最后1组数据,则跳转到WAIT_WDONE,否者,状态机环回到SM4_ENGINE0_RUN状态.

9) WAIT_WDONE状态.等待所有的引擎完成加解密动作,并把数据写入到目标FIFO中.如果是加密,则等待DFIFO数据写入到DRAM;如果是解密,则等待SFIFO数据送给主机.

10) DONE状态.数据加解密完成,返回完成状态给CPU,CPU清除security_running信号后,状态机回到空闲状态.

2 验证和测试

2.1 功能仿真平台

SM4加解密引擎设计使用硬件描述语言Verilog HDL实现,测试平台采用基于UVM(universal verification methodology)验证技术的芯片SoC设计仿真平台.为了验证整个固态硬盘,建立起一套包括SATAⅢ主机虚拟原型、NAND Flash存储器虚拟原型、DRAM虚拟原型以及基于AHB接口的CPU虚拟原型在内的完整的仿真设计平台,这里的虚拟原型指的是总线功能模型(bus function model, BFM).此外还增加了计分板模块,对传输变量实时监测以及硬件错误及时提示.SATA固态硬盘验证设计平台结构如图5所示:

Fig. 5 Structure of SATA solid state disk verification platform图5 SATA固态硬盘验证平台结构

2.2 SM4功能仿真

SM4功能仿真采用SM4标准手册第5章的加密实例为参考.

1) 加密密钥.01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10.

2) 数据明文.01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10.

梁璐身边的年轻人都知道他故事的梗概,但都是在加盟团队之后,他们谈起未来可能会成为享受分红的店长,比起那些佛学道理,显得更有兴趣。

3) 数据密文.68 1e df 34 d2 06 96 5e 86 b3 e9 4f 53 6e 42 46.

水利工程施工现场管理过于形式化,易出现各种安全问题。造成这一问题的主要原因为:一是,管理者的管理素质偏低,直接降低水利工程现场管理的整体水平。二是,管理工作缺乏完善的制度,加之水利工程现场环境极为复杂。导致管理工作混乱,无法有效得到落实。三,现场整体工作人员对管理工作重视度低,未深刻认识到现场管理的重要性。

如图6所示,设置key_running=1,输入用户密钥(usr_key)的值为:01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10.然后给出1个text_ld脉冲,使加密引擎开始进行密钥扩张计算,在32个时钟周期后,done信号产生1个脉冲,表示key展开运算结束,并把最后的轮密钥输出.可以看出,最后的4轮密钥也就是rk[31],rk[30],rk[29],rk[28]的值为:91 24 a0 12 01 cf 72 e5 62 29 34 96 42 8d 36 54,符合标准手册示例的值.

Fig. 6 Waveform of key expansion simulation图6 密钥扩展仿真波形

Fig. 7 Waveform of encryption simulation图7 加密仿真波形

2.2.2 加密仿真

如图7所示,设置key_running=0,输入usr_key值为:01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10.输入明文值为:01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10.在32个时钟周期后,done信号产生1个脉冲,表示1个分组加密完成,加密结果从text_out端口输出,只有done为高电平时有效,从仿真可以看出,加密结果是:

68 1e df 34 d2 06 96 5e 86 b3 e9 4f 53 6e 42 46.

2.2.3 解密仿真

如图8所示,设置key_running=0,输入usr_key值为:01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10.输入密文值为:68 1e df 34 d2 06 96 5e 86 b3 e9 4f 53 6e 42 46.在32个时钟周期后,done信号产生1个脉冲,表示1个分组解密完成,解密结果从text_out端口输出,只有done为高电平时有效,从仿真可以看出,加密结果是:

Without the interface states, the negative charge Qm on the metal surface must be equal to the positive charge Qd in the semiconductor. However, in real conditions, with interface states, the neutrality condition as:

01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10.

Fig. 8 Waveform of decryption simulation图8 解密仿真波形

2.3 性能分析

为了分析多引擎加解密的整体性能,本文采用SMIC 65 nm工艺对多引擎加解密模块进行了综合,然后与参考文献中SM4实现的性能进行对比,如表2所示:

绩效评估方面。也有四类指标,其基础指标主要包含外文期刊访问总量、下载总量、单篇下载成本以及相关出版社、集成商和数据库的来源指标;核心指标则包括学校高质量论文总量与引用总量,引用期刊总量、馆藏量、未入馆藏量和出版社、集成商和数据库等来源指标;拓展指标具体指ESI、JCR、SNIP、SJR关联度、分学科关联度以及学校核心期刊、学院核心期刊关联度;合作指标同样亦为与区域、行业以及学科领域的合作情况。

Table 2 Comparison with SM4 Implementation in References表2 与参考文献中SM4实现的性能比较

对采用多引擎加解密安全模块的SATAⅢ固态硬盘进行实际读写性能测试,如表3所示:

Table 3 Read and Write Speed Test表3 读写速度测试

从表2可以看出,本文设计的多引擎同步工作方式,时钟频率可以达到250 MHz,可以实现更高的吞吐率4 Gbps.经过实际测试,如表3所示,该加密固态硬盘的连续读速度可以达到528.8 MBps,连续写速度可以达到443.5 MBps,基本匹配SATAⅢ接口的速率要求.

3 结束语

本文主要研究了SM4算法CBC模式在固态硬盘中的实现,为了满足SATAⅢ型接口固态硬盘的加密并且不损失速率的要求,提出了一种多引擎同步工作的方式.该方法结合乒乓技术,提出了多任务并行机制,与同类设计相比,在相同情况具有更高的吞吐率.对于固态硬盘加密来说,主要包括数据加密和身份认证两部分,参考TCGOPAL的标准规范,设计身份认证模块,是下一步研究的重点.

[1]Tian Hongliang, Zhang Yong, Xu Xinhui, et al. Trusted SSD: New foundation for big data security[J]. Chinese Journal of Computers, 2016, 39(1): 154-168 (in Chinese)(田洪亮, 张勇, 许信辉, 等. 可信固态硬盘: 大数据安全的新基础[J]. 计算机学报, 2016, 39(1): 154-168)

[2]State Cryptography Administration. State Cryptography Administration proclamation (23)[OL]. [2017-02-12]. http:www.oscca.gov.cnNews201204News_1228.htm (in Chinese)(国家密码管理局. 国家密码管理局公告(23号)[OL]. [2017-02-12]. http:www.oscca.gov.cnNews201204News_1228.htm)

[3]Du Zhibo, Wu Zhen, Wang Min, et al. Multi-point joint power analysis attack against SM4[J]. Journal of Computer Research and Development, 2016, 53(10): 2224-2229 (in Chinese)(杜之波, 吴震, 王敏, 等. SM4密码算法的多点联合能量分析攻击[J]. 计算机研究与发展, 2016, 53(10): 2224-2229)

[4]Du Zhibo, Wu Zhen, Wang Min, et al. Improved chosen-plaintext power analysis attack against SM4 at the round-output[J]. Journal on Communications, 2015, 36(10): 85-91 (in Chinese)(杜之波, 吴震, 王敏, 等. 针对SM4轮输出的改进型选择明文功耗分析攻击[J]. 通信学报, 2015, 36(10): 85-91)

[5]Zhu Kunsong, Zhang Lichao, Dai Zibin, et al. Design and implementation of low-cost SM4 for consumer electronic product[COL]Proc of Int Conf on Consumer Electronics (ICCE’16). Piscataway, NJ: IEEE, 2016 [2017-02-12]. https:ieeexplore.ieee.orgdocument7849741

[6]Wang Chuanfu, Ding Qun. SM4 key scheme algorithm based on chaotic system[J]. Acta Physica Sinica, 2017, 66(2): 80-88 (in Chinese)(王传福, 丁群. 基于混沌系统的SM4密钥扩展算法[J]. 物理学报, 2017, 66(2): 80-88)

[7]Wen Fengtong, Wu Wenling, Wen Qiaoyan. Improved CBC mode of operation and its security analysis[J]. Journal on Communications, 2007, 28(3): 52-56 (in Chinese)(温凤桐, 吴文玲, 温巧燕. 改进的CBC模式及其安全性分析[J]. 通信学报, 2007, 28(3): 52-56)

[8]Fu Tianshu, Li Shuguo. A high-throughput ASIC implemen-tation of SM4 algorithm in CBC mode[J]. Microelectronics & Computer, 2016, 33(10): 13-18 (in Chinese)(符天枢, 李树国. SM4算法CBC模式的高吞吐率ASIC实现[J]. 微电子学与计算机, 2016, 33(10): 13-18)

[9]Li Dawei, Zhao Xuxin, Wu Men. Pipelined high-speed implementation of SMS4[J]. Chinese Journal of Electron Devices, 2007, 30(2): 590-592 (in Chinese)(李大为, 赵旭鑫, 武萌. SMS4密码算法的高速流水线实现[J]. 电子器件, 2007, 30(2): 590-592)

[10]Cheng Hai, Ding Qun, Du Hui, et al. Study of SMS4 based on of FPGA realization[J]. Chinese Journal of Scientific Instrument, 2011, 31(12): 2845-28 (in Chinese)(程海, 丁群, 杜辉, 等. 基于FPGA实现的SMS4算法研究[J]. 仪器仪表学报, 2011, 31(12): 2845-2849)

[11]Li Xiaonan, Xu Yan, Dai Zibin. Research of parallelism of SMS4 algorithm in CBC mode[J]. Computer Engineering and Design, 2013, 34(4): 1226-1231 (in Chinese)(李校南, 徐岩, 戴紫彬. CBC模式下SMS4算法并行化研究[J]. 计算机工程与设计, 2013, 34(4): 1226-1231)

[12]Li Junwei, Dai Zibin, Nan Longmei, et al. Research and design of parallel processing technology for multi-engines

cipher SoC[J]. Computer Engineering and Design, 2014, 35(7): 2312-2316 (in Chinese)(李军伟, 戴紫彬, 南龙梅, 等. 多引擎密码SoC并行处理技术研究与设计[J]. 计算机工程与设计, 2014, 35(7): 2312-2316)

[13]Smyth N, Mcloone M, Mccanny J V. WLAN security processor[J]. IEEE Trans on Circuits and Systems, 2006, 53(7): 1506-1520

FanLingyan, born in 1979. PhD. Lecturer in Microelectronics Research Institute of Hangzhou Dianzi University. Her main research interests include intelligent information processing and flash-memory storage systems.

ZhouMeng, born in 1993. MSc candidate. His main research interest is SSD technique.

LuoJianjun, born in 1970. PhD. Professor in Hangzhou Dianzi University. Director of Microelectronics Research Institute (MERI) of Hangzhou Dianzi University. His main research interests include integrated circuit design and developing digital storage & data security systems.

LiuHailuan, born in 1983. MSc. Senior IC engineer. His main research interests include ASIC design in storage field as well as flash and security algorithms.

猜你喜欢

状态机固态密钥
PCle 4.0平台的性价比之选!WD_BLACK SN770固态硬盘
固态陶瓷氚增殖剂释氚实验研究综述
幻中邂逅之金色密钥
幻中邂逅之金色密钥
Sn掺杂石榴石型Li7La3Zr2O12固态电解质的制备
透明陶瓷在固态照明中的应用进展
FPGA状态机综合可靠性探究 ①
密码系统中密钥的状态与保护*
基于有限状态机的交会对接飞行任务规划方法
基于Spring StateMachine的有限状态机应用研究