您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页多引擎并行CBC模式的SM4算法的芯片级实现

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

来源:测品娱乐
计算机研究与发展

Journal of Computer Research and Development

DOI:10. 7544/issnl000-1239. 2018. 20170144

55(6) : 12)7-1253, 2018

多引擎并行

樊凌雁1

1

CBC模式的SM4算法的芯片级实现

骆建军1

刘海銮2

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

IC Design with Multiple Engines Running CBC Mode SM4 Algorithm

Fan Lingyan1 , Zhou Meng1 , Luo Jianjun1 , and Liu Hailuan2

1 {Microelectronics Research Institute , Hangzhou Dianzi University , Hangzhou 310018)

2 (HangzhouSageMicroeLectronics Corporation ,0angzhou 311215)

Abstract

With the advantages of fast speed, small size, light weight, strong shock resistance and low

power consumption, solid state drive (SSD) becomes the new generation of computer hard disk storage products. Hard disk information security is not only related to personal privacy, corporatepassword, but also related to national security. In order to solve the information security problems of solid state drive, a hardware circuit implementing the SM4 algorithm is presented, which ispromulgated by China’s State Cryptography Administration Office of Security Commercial Code Administration. This method can encrypt data. To obtain the

high

speed data

data

that is stored in a drive,

SSD,

SM4

and

improve sec

stream of the algorithm in cipher blo

mode had to be designed to run at the matched speed with data throughput. A circuit structure withmultiple SM4 engines operating in parallel is proposed, which is beneficial for the SM4 feedback loop delay, pipelining technology and combination of wheel function under 65 nm standard-cell process. After the verification done by FPGA, the circuit has been implemented with 65 nm semiconductor process. The evaluation results show that its sequential read speed is 528. 8 MBps and its sequentialwrite speed is 443. 5 MBps, which meets to SATA#’s interface’s performance.

Key words

solid state drive; SM4 algorithm; cipher block chaining (CBC) mode; multiple engines;

SATA# interface

摘要固态硬盘凭借速度快、体积小、重量轻、抗震性强、功耗低等优势,成为新一代电脑硬盘存储产品 代表.硬盘信息安全不仅关系到个人隐私、企业密码,更是关系到.针对固态硬盘的信息安全问 题,采用全硬件加密的方式实现国家商用密码管理局颁布的SM4算法,在固态硬盘中实现数据的加密 存储,提升了存储数据安全.为了保证电脑硬盘速度不受到加/解密算法的影响,必须解决高速数据流和

SM4

算法模块的同步加/解密的速度匹配问题.提出了一种多引擎同步工作的方式实现CBC(cipher

式的SM4算法,解决了 SM4算法在CBC加密模式下存在反馈路径,流水线技术和轮

block chaining)模

函数合并技术难以在65nm工艺下提高呑吐率的问题.通过FPGA验证,并在国内某半导体生产线65 nm 工艺上流片实现,结果表明:在250 MHz时钟频率下,4个引擎并行的连续读速度为528. 8 MBps,连续 写速度为443. 5 MBps,满足电脑硬盘SATA#型接口的速率要求.

收稿日期!017-03-14;修回日期:018-01-04

基金项目:国家自然科学基金项目(1702149,U1709220);浙江省自然科学基金项目(LY16F010013)

This work was supported by the National Natural Science Foundation of China (61702149, U1709220) and the Natural Science Foundation of Zhejiang Province of China (LY16F010013).

1248计算机研究与发展2018, 55(6)

关键词固态硬盘;SM4算法;CBC模式;多引擎;SATA#接口 中图法分类号TP302.2

NAND

技术和固态存储控制技术的飞速发展,

引爆了硬盘存储的产业.新一代固态硬盘存储 技术凭借启动快、寿命长、读写快、无噪音、体积小、 重量轻、抗震动、耗能低等绝对优势,在互联网、计算 机、航天、医疗、交通、工业控制等 数据的高速、安全存储 的

公司

了更高的

, 计

了广.英国《金

科的黑对[3—6] &

,该公司已在的可能.

用[1].数据信息的爆炸式增长对于信息的海量

Table 1 Comparison of SM4 Wheel Functions Combination

表1 SM4轮函数合并性能对比

Frequency/MHz

124

25014277

Throughput/ Gbps

1. 001. 141. 23

Area/gate8 415 96531 071

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

》网站2015年2月17

30个国家所用的电脑中发现了

,存储在电脑的信息存在

SM4

算 [2],

中 国

3

发 的 国家研究 学

1

SM4

多引擎加解密方案

算 , 在 2012 业

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

有自主知识产权的 发的固态存储技术 的 的

.

SM4

与自主研

性高重大式

,研发性能高&

电 算

,对中国的信息 的

式 有

SATA固态硬盘架构

按照自顶而下的设计方法,本文的固态硬盘架

SATA

构设计如图1所示,将子

Core

固态硬盘划

HY

(cipherblock chaining,CBC)、电子密码本模式 (electronic codebook,ECB)等[7],其中 CBC 模式由

,分别为:1) SATA P; 3 ) DR A

M

模块;2) SATA

,包含

控制器模块;4 ) Flash控制器

%)CPU

于存在从输出端到输入端的反馈路径,从而拥有更 高的

[8],是当前固态硬盘采用最多的[加

式.但是,因为CBC模式的反馈路径,使得数据 之间有了关联性,导致无法使用流水线技术[]来 高电路的吞吐率.此外,另一

轮函数合并技术,

用的

吞吐率的

模块;5)多引擎加解

CPU

系统 CPU 模块和 FTL (flash translation layer)算

.

于 SATA Core

中 ,

控制器模块之间,其中SATA Core 、 输 、 用 . 引 擎 解

DRAM

在1个周期内,同包 含 态

进行是32的因子)个轮函数运算.这种处理 式在时钟主频不时,在同一工艺条件下,以 2倍的面积获得10_的性能提升,其提升效果不是 那么明显,如表1所示!

,数据包的发送和接收,完成8B/10B编解

信息结构(frame information

码、加扰/解扰、封包/解包、CRC校验,负责接口电源 管理;传输

structure,FIS)打包和解包,完成如直接内存存取

Fig. 1 Architecture of SATA solid state disk

图1 SATA固态硬盘架构

樊凌雁等:多引擎并行

CBC模式的SM4算法的芯片级实现

)传输、程序输入输出

1249

(directmemory access,DMA芯片的接口通信;DRAM Core主要是完成DDR协 议处理和多数据存取通道的 接口为AXI接口.

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

文在图1

术),并在此基

的固态硬盘架构上,单引擎采[1Q](即

n=

模型(programming input/output model,PIO)传 输、原生命令队列(native command queuing,NCQ) 输等数据命令交互功能,对数据传输进行流量控 制;应用 支持、A

TA

, 的

用处理,譬如

命令处理.

AHCI协议的

1的轮函数合并技

DRAM

控制器模块主要分为DRAM PHY

计了多引擎加解

和 DRAM Core. DRAM PHY 主要负责和 DRAM展带宽,其设计如图2

Fig. 2 Architecture of multi-engine encryption and decryption security module

图2多引擎加解密安全模块框架

多引擎加解密安全模块置于S

DRAM

ATA

端和

SM4

一个FIFO同时进行数据加解密,这样避免了只有

FIFO

端之间,它主要由输入输出接口、4个

.

用的等 间,从而 输速

I

加解密引擎、输入输 升1倍.

此外,对多个加解密引擎的合理调度和控制是 实现高效并

Sector 对

固态硬盘的数据传输速率和加解密引

了一种乒乓技术.将输

DRAM

b

擎的数据处理速率,本文 入缓存和输 端,,

由2

量为2 K

处理的关键.本文采用输入与输

FIFO

存分别置于SATA端和

FIFO

的 构 $

1

据传输流程如图3

4 Sector$

.当进引 擎 $用 于 数 据 存 . 数:

数据传输时,一个FIFO接受来自主机数据,而另

图3数据传输流程

以写流程为例:1) 满

流接口 AXI,往$同

SFIFO的FIFOO送

后,接着传输下一个128 b直至传输完1个

2 Kb数据即填

启动加

引擎,传输完成

2)对

SM4

FIFOO中

Sector

SATA Core接收主机数据,通过输入数据的数据.

的数据加密的同时,SATA

中.

1个128 b数据加密后,就填

的 Sector 中 $当 SM4

SFIFO的FIFOO,多引擎加解 Core继续接收主机数据放到SFIFO的FIFO1

Sector1 $Sector2 $Sector3 $Sector4

SM4

引擎

的128 b数据分别传输给4个

入 DFIFO 的 FIFOO 对

1250计算机研究与发展2018, 55(6)

完成所有2 K

b

数据加密后即填满DFIFO的 4) CHECK—FIFO—READY.固件启动加解密

,状态机开始跳转到数据等待,加密和解 不同..

数据,DFIFO存储 给

DRAM

FIFO0,DFIFO就把FIFO0中的数据通过输出数据

流接口 AXI送入DRAM.

3)多引擎加解密安全模块检查SFIFO的

FIFO1

,SFIFO的明文数据作为的密文数据并将数据送的明文数据并将数据

丨给

是否为满以及DFIFO的FIFO1是否为空, ,

;解密时,DFIFO的密文数据作为源数

2 Kb数据

如果同时满足,则开始进行FIFO1的 续等待.FIFO0和,直

有数据完成.

据,SFIFO存储解 (不满2 K

b

FIFO1 —直乒乓式地交替运行下 机.此外,只有在源数据FIFO

的,

时,加解密引擎

启动.

数据)以及目标FIFO为空

数据乒乓技术的意义在于无损实现数据加密, 一组数据在 的同时,另外一组数据进入FIFO.5) SM4—ENGINE0—READY. SM4 引擎在运行 这组数据 ,下一组数据进入 过程,这样

就节省了等 间.

1.3状态机设计

为了完成多个加密引擎的流水控制和流量控 制,本文设计状态机来自动控制.加解 的

状态迁移如图4所示:

security module

图4

加解密安全模块状态迁移

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

2) KEY+R

UN

状态.该状态是密钥扩展状态,

为了提高运行速度,并节省存储轮 的寄存器,密

采用同步扩展的 ,但是在解

使用最1个轮 作

,所以在

的时候,

固件 展命令,使得SM4引擎进行密

展,并将最后1个轮

并保存.每个SM4引

擎 进

展,在

[

重新进 展.3) KEY+DONE状态.密钥扩展完成,固件可

除信

,状态机回到空闲状态.

时,会置busy状态,此时状态不跳转,等sm4—c<9re0—

为低,数据已经准备好,产生1个srn4 —core0 —

load,

解密.状态机

SM4 —

ENGINE1—RUN 状态.

6) SM4—ENGINE1 —READY. sm4_conl—busy 为高,此时状态不跳转,等*;4—%re1—为低,数 据已经准备好,产生1个s;4—%n1—%ad,状态机转 换到 SM4—ENGINE2—RUN 状态.

7) SM4—ENGINE2 —READY. s;4—%n

2—buy

为高,此时状态不跳转,等s;4—%n

2—buyy为低,数

据已经准备好,产生1个s;4—%

n2—%

ad,状态机转

SM4—ENGINE3 —RUN

态 &

8) SM4—ENGINE3—READY. SM4 引擎在运行 时会置busy状态,此时状态不跳转,等s;4 —%

n0 — buy为低,数据已经准备好,产

生1个s;4 —%

n

0 —

Zad,开始进行加解密.如果这是最后1组数据,则

跳转到WAIT—VDONE,否者,状态机环回到SM4—

ENGINE0—RUN 状态.

9) VAIT—V

DONE

状态.等待所有的引擎完

成加解密动作,并把数据写入到目标FIFO中.如果

,则等待DFIFO数据写入到DRAM;如

解密,则等待SFIFO数据

机.

10 ) DONE 态 &数据 解 $

态给CPU,CPU清除scurfy—ru)m)g信号后,状

态机

态 &

2 验证和测试

2.1功能仿真平台

SM4

加解密引擎设计使用硬件描述语言Verilog

HDL

实现,测试平台采用基于UVM

( universal

verification methodology)验证技术的芯片 SoC 设

计仿真平台.为了验证整个固态硬盘,建立起一套 包括SATAm主机虚拟原型、NAND Flash存储器

樊凌雁等:多引擎并行

CBC模式的SM4算法的芯片级实现

HB

1251

虚拟原型、D

CPU

RAM

虚拟原型以及基于A接口的 2.2

SM4功能仿真

SM4

虚拟原型在内的完整的仿真设计平台,这里的

了计分板模块,对传输变

.SATA固态硬:

功能仿真采用SM4标准手册第5章的加

虚拟原型指的是总线功能模型(bus function

model,BFM).此外还

密实例为参考.

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

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

3) 4f 53 6e 42 46.

2.2.1密钥扩展仿真

如图6所示,设置繼似•叹二1,输入用户 密

钥引擎

值进

:01 23 45 67 ab cd ef fe dc 个^脉

张计算,在32

,使加

钟周期

量实时监测以及硬件错误 盘验证设计平台结构如图5

数据密文.68 1e df 34 d2 06 96 5e 86 b3

ba 98 76 54 32 10.然后给出1

后,^(9狀信号产生1个脉冲,表示展开运算结 束,并把最后的轮

Fig. 5 Structure of SATA solid state disk verification

platform

输出.可以看出,最后的4轮

密钥也就是r々[31],r々[30],r々[29],r々[28]的值为: 91 24 a0 12 01 cf 72 e5 62 29 34 96 42 8d 36 54,符

手册

的 值 &

图5 SATA固态硬盘验证平台结构

Fig. 6 Waveform of key expansion simulation

图6密钥扩展仿真波形

2.2.2加密仿真

如图7所7K,设置繼•叹二0,输入 值为:01 23 45 67 ab cd ef fe dc ba 98 76 54 32 10.输入明文值为:1 23 45 67 ab cd ef fe dc

ba 98 76 54 32 10.在

端口输出,只有9

仿真 以 看 , 2.2. 3

解密仿真

!

k

为高电平时有效,从

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

如图8所tK,设置

k:y—r繼

32个时钟周期后,9狀信号

,力

•叹=0,输入wsr—

产生1个脉冲,表示1

值为:1 23 45 67 ab cd ef fe dc ba 98 76 54

Fig.Waveform of encryption simulation

图 7! 仿真波形

1252计算机研究与发展2018, 55(6)

32 10.输入密文值为:68 1edf 34d2 06 96 5e 86b3

e9 )f 53 6e )2 46.在

端口输出,只有Jowe为高电平时有效,从

仿真可以看出,力

:

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

32个时钟周期后,心狀信号产

生1个脉冲,表示1个分组解密完成,解密结果从

Fig. 8 Waveform of decryption simulation

图8解密仿真波形

2.3性能分析

了分析多引擎加解密的整体性能,本文采用 SMIC 65 nm工艺对多引擎加解 进行了综合,然后与参考文献中SM4 2

的性能进行对比,如

3结束语

本文主要研究了 SM4算法CBC模式在固态硬

盘中的 ,为了满足SATA#型接口固态硬盘的

引擎同

的〃规范,

兵兵技术,提出了多任务,在相同情况具有

Table 2 Comparison with SM4 Implementation in References

表2与参考文献中SM4实现的性能比较

ReferencesRef [1]

41

Ref [2]

41

Ref [13]

31

OurPaper

4

250300200

Engines

1

177

Frequency/MHz

Throughput/Gbps

0. 782. 830. 401. 600. 752. 251. 004. 00

并且不损失速率的要求,提出了一 步工作的方式.. 并行机制,与同类设计 和身份认证两 计身份认证

吞吐率.对于固态硬盘加密来说,主要包括数据

,参考TCG/OPAL的 ,是下一步研究的重点.参考文献

[1]

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

对采用多引擎加解密安全模块的SATA#固 态硬盘进

际读写性能

,如表3所示:

[2] State Cryptography Administration& State CryptographyAdministration proclamation (23) [OL].

[2017-02-12].

http:l/www. oscca. gov. cn/News/201204/News _ 1228. htm (inChinese)

(国家密码管理局.国家密码管理局公告(3号)[OL]. [2017-02-12].

http: l/www. oscca. gov. cn/News/201204/

Table 3 Read and Write Speed Tett

表3读写速度测试

Capacity/GB116

Sequential Velocity/MBpsRead528 8

Write443 5

Random Velocity/MBpsRead94 06

Write193 4

News_1228. htm)

[3] DuZhibo,Wu Zhen, Wang Min, et al. Multi-point joint

power analysis attack against SM4 []. Journal of Computer Research and Development, 2016, 53 (10): 2224-2229 (in

从表2可以看出,本文设计的多引擎同步工作 方式,时钟频率可以达到250 MHz,可以 吞吐率4 Gbps.经过实际测试,如表3

的密

[4]

Chinese)

(杜之波,吴震,王敏,等.SM4密码算法的多点联合能量分 析攻击[].计算机研究与发展,2016, 53(0): 2224-2229)DuZhibo,Wu Zhen, Wang Min, et al Improved chosen- plaintext power analysis attack against SM4 at the round- output [].Journal on Communications,2015,36(10) : 85­91 (inChinese)

固态硬盘的连续读速度可以达到528. 8 MBps,连续 写速度可以达到443. 5 MBps,基本匹配SATA#接 口的速率要求.

樊凌雁等:多引擎并行

CBC模式的SM4算法的芯片级实现

(7): 2312^2316 (in Chinese)

1253

cipher SoC [J]. Computer Engineering and Design,2014,35

(杜之波,吴震,王敏,等.针对SM4轮输出的改进型选择 明文功耗分析攻击通信学报,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 [C/OL] //Proc of In.t Conf on Consumer Electronics (ICCE16). Piscataway,NJ: IEEE,2016 [2017-02-12]. https://ieeexplore. ieee. org/document/7849741/[6]

Wang Chuanfu,Ding Qun. SM4 key scheme algorithm based on chaotic system ']. Acta Physica Sinica, 2017, 66(2): 80-88 (in Chinese)

(王传福,丁群.基于混沌系统的SM4密钥扩展算法'].物 (李军伟,戴紫彬,南龙梅,等.多引擎密码S〇C并行处理技 术研究与设计[].计算机工程与设计,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

Fan Lingyan, born in 1979. PhD. Lecturer

in Microelectronics Research Institute of 理学报,2017, 66(2): 80-88)[7]

Wen Fengtong,Wu Wenling,Wen Qiaoyan. Improved CBC mode of operation and its security analysis ']. Journal on Communications,2007,28(3): 52-56 (in Chinese)

(温凤桐,吴文玲,温巧燕.改进的CBC模式及其安全性分 析']& 通信学报,2007, 28(3): 52-56)[8]

Fu Tianshu,Li Shuguo. A high-throughput ASIC implemen­tation of SM4 algorithm in CBC mode [J]. Microelectronics f 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 (inChinese)

(李大为,赵旭鑫,武萌.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算法并行化研究 [].计算机工程与设计,2013, 34(4): 1226-1231)

[12]

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

Hangzhou Dianti University. Her mainresearch

interests

include

inteligent

nformation processing andflash-memorystorage systems.

I

Zhou Meng, born in 1993.

MSc candidate.

His main research interest is SSD technique.

Luo Jianjun, born in 1970.

PhD. Professor

n Hangzhou Dianzi University&Director i

l

l

of Microelectronics Research Institute

(MERI)of Hangzhou Dianzi University&

His

main

research

interests

include

ntegrated circuit design and developingdigital storage f data security systems.

Liu Hailuan, born in 1983.

MSc. Senior

IC engineer. His main research interests include ASIC design in storage field as well as flash and security algorithms.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务