Professional Documents
Culture Documents
Hardware Rese... SH Algorithms
Hardware Rese... SH Algorithms
作 者 姓 名 : 李辉
导 师 姓 名 : 熊晓明
学科(专业)或领域名称 : 控制工程
论 文 答 辩 年 月 : 2020 年 05 月 24 日
分类号: 学校代码:11845
广东工业大学硕士学位论文
(工程硕士)
不同哈希算法的硬件研究及 UVM 验证
李辉
导师姓名(职称) : 熊晓明教授
黄沫高级工程师
学科(专业)或领域名称 : 控制工程
学 生 所 属 学 院 : 自动化学院
答 辩 委 员 会 主 席 : 蔡述庭
论 文 答 辩 日 期 : 2020 年 5 月
A Dissertation Submitted to Guangdong University of Technology for
Candidate: Li Hui
May 2020
School of Automation
Guangdong University of Technology
Guangzhou, Guangdong, P. R. China, 51000
摘 要
摘 要
近年来,随着人工智能技术的发展,以及 5G 技术的大规模商用化,物联网行业得
到了飞速发展,我国的物联网发展水平也处于世界领先水平。然而物联网市场的信息
安全隐患也随着市场的增长变得越来越严重。因此,发展物联网信息安全的迫切性,使
得物联网信息安全的 ASIC 芯片的研发在物联网市场增长的过程中变得尤为重要。目
前存量的加密算法包括国际的 AES/RSA/SHA 等,以及国内的 SM2/SM3/SM4 算法;同
时,很多学者及工程师针对安全算法的优化和实现方式做了大量的工作。但是,在实际
的应用中根据应用场景安全级别及性质的不同,则对算法的需求不同。为了能够兼容
国际加密算法和国密加密算法,本文是在设计一款同时支持国际加密算法和国密加密
算法的物联网信息安全芯片中提炼出的,主要就哈希算法兼容国际加密算法和国密算
法进行研究和实现。
现存国际哈希算法的种类有很多,结合项目的实际需求及哈希算法的发展,国际
哈希算法本文采用 SHA256 和国密算法采用 SM3 作为本文的研究与设计内容,SHA256
的运用最为广泛,研究使用相对较为成熟;SM3 加密算法由中国国家密码局提出,其
算法在硬件实现方面还存在着优化空间;基于上述,本文的主要工作包括 SHA256/SM3
算法的软硬件协同设计。同时,UVM 验证技术现已经广泛的运用于 SoC 设计;本文基
于 SHA256/SM3 算法的 IP 级验证搭建了 UVM 验证平台,用于验证 SHA256/SM3 算法
的 RTL 实现在功能是否与纯软件实现是否一致,同时基于 smartL 平台完成系统级测试
和 FPGA 原型机验证。
首先,通过软件来实现 SHA256/SM3 算法,同时搭建 UVM 验证平台,并使用软
件实现的 SHA256/SM3 算法作为验证平台的参考模型,然后对 SM3 算法进行优化,其
优化指标为使寄存器的数量减少为原来的 1/3,性能提升 28.9%,再将 SHA256 算法以
及优化后的 SM3 算法进行 RTL 实现,最后通过 AHB 总线接口将 SHA256/SM3 算法电
路与 CPU 进行连接,最终形成一块 SoC。设计完成后,先是用 UVM 完成算法的 IP 级
验证,从 UVM 的 scoreboard 可以观察到数据通过 DUT 和参考模型得到的结果是一致
的,然后分析了 UVM 平台的覆盖率,可以观察到随着测试案例的增加,功能覆盖率和
代码覆盖率逐渐趋于 100%。再在 VCS 下完成系统及仿真,其结果均能达到设计预期,
最后在平头哥提供的 FMX7A 开发板上完成 FPGA 验证,验证了原型机验证完全符合
设计要求。综上所述,该设计方案完全满足物联网信息完全的需求。
I
广东工业大学硕士学业论文
关键词:信息安全;哈希算法;UVM;软硬件协同;SoC
II
Abstract
Abstract
In recent years, with the development of artificial intelligence technology and the large-
scale commercialization of 5G technology, the Internet of Things industry has developed
rapidly, and the development level of China's Internet of Things is also at the world's leading
level. However, information security risks in the Internet of Things market have become more
and more serious as the market grows. Therefore, the urgency of developing IoT information
security has made the development of ASIC chips for IoT information security particularly
important in the growth of the IoT market. The current encryption algorithms include
international AES / RSA / SHA, etc., and domestic SM2 / SM3 / SM4 algorithms; at the same
time, many scholars and engineers have done a lot of work on the optimization and
implementation of security algorithms. However, in actual applications, depending on the
security level and nature of the application scenario, the algorithm requirements are different.
In order to be compatible with the international encryption algorithm and the national
encryption algorithm, this article was extracted from the design of an IoT information security
chip that supports both the international encryption algorithm and the national encryption
algorithm. The hash algorithm is compatible with the international encryption algorithm and
the national encryption algorithm. The encryption algorithm is researched and implemented.
There are many types of existing international hash algorithms. Combined with the actual
needs of the project and the development of hash algorithms, the international hash algorithm
uses SHA256 and the national secret algorithm adopts SM3 as the research and design content
of this article. SHA256 is the most widely used and studied. It is relatively mature to use; SM3
encryption algorithm is proposed by China National Cipher Bureau, and its algorithm still has
optimization space in terms of hardware implementation; based on the above, the main work
of this paper includes software and hardware collaborative design of SHA256 / SM3 algorithm.
At the same time, UVM verification technology has been widely used in SoC design; this
paper builds a UVM verification platform based on the IP level verification of the SHA256 /
SM3 algorithm to verify whether the RTL implementation of the SHA256 / SM3 algorithm is-
III
广东工业大学硕士学业论文
consistent with the function of pure software. At the same time based on smartL platform to
complete system-level testing and FPGA prototype verification.
First, the SHA256 / SM3 algorithm is implemented through software, and the UVM
verification platform is built at the same time, and the SHA256 / SM3 algorithm implemented
by the software is used as a reference model for the verification platform, and then the SM3
algorithm is optimized. The optimization index is to reduce the number of registers to The
original 1/3, the performance is improved by 28.9%, and then the SHA256 algorithm and the
optimized SM3 algorithm are implemented by RTL. Finally, the SHA256 / SM3 algorithm
circuit is connected to the CPU through the AHB bus interface, and finally a SoC is formed.
After the design is completed, the IP level verification of the algorithm is first completed with
UVM. From the scoreboard of UVM, the results obtained by the data through the DUT and
the reference model are consistent, and then the coverage of the UVM platform is analyzed. It
can be observed that with the test case The increase of the function coverage and code coverage
gradually tends to 100%. Then complete the system and simulation under VCS, and the results
can meet the design expectations. Finally, FPGA verification is completed on the FMX7A
development board provided by Pingtou, which verifies that the prototype verification fully
meets the design requirements. In summary, this design solution fully satisfies the complete
information needs of the Internet of Things.
Key words: Information safety; Hash algorithm; UVM; Hardware/software codesign;
SoC
IV
目 录
目 录
摘 要 ................................................................................................................................. I
Abstract .......................................................................................................................... III
目 录 ................................................................................................................................ V
Contents ....................................................................................................................... VIII
第一章 绪论 ..................................................................................................................... 1
1.1 课题背景及意义 ............................................................................................. 1
1.2 国内外的研究现状 ......................................................................................... 2
1.3 研究内容及行文结构 ..................................................................................... 3
1.4 本章小结 ......................................................................................................... 3
第二章 算法原理及验证平台介绍 ................................................................................. 4
2.1 不同哈希算法的概述 ..................................................................................... 4
2.1.1 MD4 算法介绍 ....................................................................................... 5
2.1.2 MD5 算法介绍 ......................................................................................... 5
2.1.3 SHA-1 算法介绍 ...................................................................................... 6
2.1.4 SHA-2 算法介绍 ...................................................................................... 7
2.1.5 SM3 算法介绍 .......................................................................................... 8
2.2 验证技术介绍 ................................................................................................. 8
2.2.1 验证语言介绍 ............................................................................................ 8
2.2.2 验证方法学介绍 ........................................................................................ 9
2.3 算法方案的选择及算法分析 ....................................................................... 10
2.3.1 SHA256 算法分析 ................................................................................... 10
2.3.2 SM3 算法分析 ......................................................................................... 14
2.4 本章小结 ....................................................................................................... 16
第三章 算法的软硬件及 AHB 总线接口设计 ............................................................ 17
3.1 算法的软硬件总体设计方案 ....................................................................... 17
3.2 算法的软件设计思路 ................................................................................... 19
3.3 SHA256 模块硬件设计 ................................................................................ 20
3.3.1 SH256 算法的硬件的端口信号分析 ...................................................... 20
3.3.2 SHA256 模块的 HDL 设计 ..................................................................... 21
3.4 SM3 算法的硬件优化及实现....................................................................... 23
V
广东工业大学硕士学业论文
学位论文独创性声明 ..................................................................................................... 63
学位论文版权使用授权声明 ......................................................................................... 63
致 谢 ............................................................................................................................... 64
VII
Contents
Contents
Abstract(Chinese) .................................................................................................... Ⅰ
Abstract(English) .................................................................................................... Ⅲ
Contents(Chinese) ................................................................................................... Ⅴ
Contents(English) ..................................................................................................... Ⅶ
Chapter 1 Introduction ................................................................................................... 1
1.1 Project background and significance ............................................................... 1
1.2 Research status at home and abroad ................................................................ 2
1.3 Research content and writing structure ............................................................ 3
1.4 Chapter summary ............................................................................................. 3
Chapter 2 Algorithm principle and verification platform introduction .................... 4
2.1 Overview of hashing ........................................................................................ 4
2.1.1 MD4 algorithm ........................................................................................ 5
2.1.2 MD5 algorithm ........................................................................................ 5
2.1.3 SHA-1 algorithm ..................................................................................... 6
2.1.4 SHA-2 algorithm ..................................................................................... 7
2.1.5 SM3 algorithm ........................................................................................ 8
2.2 Verification technology introduction ............................................................... 8
2.2.1 Verification language introduction ............................................................. 8
2.2.2 Introduction to verification methodology................................................... 9
2.3 Implementation options ................................................................................. 10
2.3.1 SHA256 algorithm analysis...................................................................... 10
2.3.2 SM3 algorithm analysis ............................................................................ 14
2.4 Chapter summary ........................................................................................... 16
Chapter 3 Algorithm hardware and software and AHB interface design ................ 17
3.1 Overall design ................................................................................................ 17
3.2 Software design.............................................................................................. 19
3.3 Hardware design of SHA256 ......................................................................... 20
3.3.1 Hardware port of SH256 .......................................................................... 20
3.3.2 HDL design of SHA256 ........................................................................... 21
3.4 Optimization and hardware implementation of SM3 .................................... 23
VIII
广东工业大学硕士学业论文
References ...................................................................................................................... 58
Publications .................................................................................................................... 61
Original dissertation statement .................................................................................... 62
Dissertation Copyright Use Rights Statement ............................................................ 62
Acknowledgement ......................................................................................................... 63
X
第一章 绪论
第一章 绪论
1.1 课题背景及意义
根据全球移动通信系统协会(GSMA)提供的资料显示,物联网技术 2018 年对全
球经济的影响比例变得越来越大,占 GDP 的两个百分点;其中,制造业受物联网技术
技术的影响最大;物联网对中国的经济的影响,与中国的 GDP 在世界的排名一致,都
是位居第二。物联网技术的发展与全球经济的发展是相互影响的,物联网技术发展会
促使全球经济的发展,而经济的发展与会倒过来推动物联网行业的发展,权威机构预
测,未来 5 年,物联网技术对全球经济影响将持续变大,可以达到 3710 亿美元[4],占
GDP 比重也将越大越大,大约增加到三个百分点。无可争议,物联网的发展将促进智
慧城市、智能制造、智能车联网、智能农业化等[5]行业的蓬勃发展。
随着技术的发展,大量低功耗的网络连接技术的商业化速度也在加速快速发展;物
联网平台迅速增长,服务支撑能力迅速得到了提升[6];GSMA 发布的关于物联网行业的相
关资料显示,2010 年至 2018 年期间,全球的物联网连接数长期保持高速增长的状
态, 2018 年,全球的物联网连接数达 90 多亿。物联网因此将成为电子信息技术未来
发展的重要方向。
近年来随着超大规模集成电路及人工智能技术的飞速发展,当前计算机的计算能
力不断的增强,以及随着通信网络和信息技术的发展,我国的物联网很快将进入高速
发展时期[9]。
物联网技术的发展,在给提升社会效率的过程中,也存在很大的信息安全隐患,据
相关机构提供的数据表明:到 2016 年底,因为系统安全而产生的漏洞数量,已经有 900
多个,其中,工业控制领域是重灾区,其信息安全问题最为严重。随着汽车 ECU 数量以
及车联网需求的增加,汽车遭受攻也急剧增加。物联网信息安全中的破坏形式有很多
种,包括泄露隐私数据、破坏局域网络、非法入侵和被控制为僵尸网络等类型,而且随
着物联网规模的扩大,其破坏力也越大。下面将举一些发生在当下的一些信息安全事
故,2020 年新冠疫情期间发生了太多的信息安全事故,第一起是世界知名半导体公司
AMD 的 GPU 源码被黑客盗取,然后扬言勒索 AMD1 亿美金,否则就将源码公布到开
源网站上。第二起,因为疫情期间大多数公司和学校都选择在家办公和学习,也因此视
1
广东工业大学硕士学业论文
频会议软件的使用量迅速激增。国外表现最为热门的软件一定要数 Zoom,近日,被曝
发现了重大安全漏洞,大量的私人视频被非法上传至公开网页,可以被任何人在线围
观。
芯片是作为物联网的基础设施,随着物联网市场的发展,因此,使得物联网信息安
全的 ASIC 芯片的研发在物联网市场增长的过程中变得尤为重要,本文本人在设计物
联网芯片的项目中提炼出来的,由于本人在设计芯片的过程中主要是贡献在于哈希算
法的设计,因此,本人也将围绕哈希算法的硬件设计及验证来展开。
1.2 国内外的研究现状
物联网设备的安全问题曰益成为人们关注的焦点。可以预见的是,在不远的未来,
物联网安全事件频发,全球物联网安全支出将不断增加[8]。为了构建物联网信息安全护
盾,权威机构预测 2020 年全球用于构建物联网安全体系,为此支出的费用将超过 20 亿
美元;因为物联网规模越大,信息安全存在地可能性就越大,危害也越大。因此,之后
还会不断地增加投入,物联网的安全支出还会不断增加。所以,基于物联网的信息安全
的相关研究是一个非常有前景的方向。
回到哈希算法在信息安全领域的应用,看到大量的专家学者都在从事相关的研究
工作。哈希算法可以分为很多类,包括一开始的 MD 系列算法,其中包括 MD4 和 MD5,
以及后来在 MD5 算法的基础上发展出来的 SHA 算法,以及中国国家密码局提出的国
密算法 SM 系列中的 SM3 算法。
哈希算法的软件实现,因为其具有易于标准化和便于软硬件实现等特点,在信息
安全领域有广泛的应用 [13],但是用软件的形式来实现哈希算法一般情况下都是运行在
通用计算机平台下的,这会导致算法在运行过程中速度慢,执行效率低,不适合物联网
领域。随着集成电路的发展,物联网领域的哈希算法更多情况下会选择作为一个算法
IP 集成到 SoC 中。
王晓燕[14]在 FPGA 平台上对 SM3 算法的运算单元进行过优化,Kim J W [15] 从流水
线的方法优化过哈希算法的 SHA-1 算法的 FPGA 实现,以及张倩[16]也在 FPGA 上从流
水线的角度优化过 SM3 算法的硬件实现实现。丁冬平[17]、薛也[18]等在 SM3 算法和 SHA-
1 算法的架构设计上面采用循环展开结构,陈华锋[19]和李鸿强[20]从关键路径的设计上对
SHA256 算法和 SHA512 算法做了优化。同样 Dan Cao[21] LI Miao[22]和刘恒[23]等从算法
的可重构角度做了大量的研究。
总体来说,在算法的硬件实现方面,更多的都是从硬件的角度去考虑如何优化哈
希算法的 PPA(Performance(性能)、Power(功耗)、Area(面积)),本文主要是从实际应
用出发,领用软硬件协同设计的角度去做算法的优化。此外,本文还在验证层面做了大
2
第一章 绪论
3
第二章 算法原理及验证平台介绍
第二章 算法原理及验证平台介绍
2.1 不同哈希算法的概述
哈希算法的含义哈希的英文名为 Hash,意思为散列 ,因此哈希算法也因此可以
[24]
广泛的理解为散列算法,哈希算法的基本工作任务来是将任意一个长度的数据(哈希值
输入的数据),通过散列算法 H,得到固定长度的输出 H(x),即哈希值 h[25]的一种算法。
一般称经过哈希算法运算过的数据为哈希值,一般的情况下,哈希值的输出数据的长
度会远小于输入数据的的长度。最为重要的是哈希函数本身具有不可逆的特点,简单
的说,哈希函数的值只能通过明文通过加密的方法得到,而输入数据无法通过哈希值
而得到,即通过哈希值完全无法准确的推算出哈希算法输入数据。所以一般的情况下,
哈希算法会广泛的被研究和运用于一些信息安全的领域,例如:使用鉴权加密协议等,
防止文件在进行数据传输的过程中被恶意篡改,这一点比传统的 crc 校验及奇偶校验
方法会更具有很大的技术优势。
所有的哈希算法其运算的过程包括数据填充,分组运算以及输出等步骤,下面就
数据填充部分进行详细的介绍。所谓数据填充操作,就是把哈希算法的输入数据经过
一些转换操作,将输入数据的长度拼凑成 512 位的整数倍。其操作过程如下:首先,将
哈希算法的输入数据转换成二进制序列,然后紧接着在二进制串序列后面填充一个 1,
然后就是填充若干个 0,最后的 64 位用来保存输入数据转化为二进制数据时候的长度,
因此填充 0 的个数取决于输入数据的长度,填充后的数据长度 L 应该满足 L mod 512
=448,假设原始数据的长度为 S,哈希算法在填充时,需要在数据后填充 1 个 1 和 K 个
0,则 K 应该满足(S+1+K) mod 512=448 的最小非负整数。特别地,如果 S mod 512=447,
则只需在二进制数据的后面补 1 个 1,不需补 0,而直接在后面不上数据的长度就行了,
即使 S 已满足 S mod 512=448,也要在数据后面补 1 个 1,为了满足哈希算法的条件
(S+1+K) mod 512=448,则还需要再补 511 个 0,这会使填充后的数据比原来的数据新
增一个 512 位的数据组。最后,进行数据的长度填充,将原始数据以 64 位二进制表示
原始数据的长度,若超过 64 位则取低位 ,最终得到的数据长度是 512 的整数倍。填
[26]
4
广东工业大学硕士学业论文
N*512位
(L)
1个 1 K个 0
········
512位 512位 512位
图 2-1 填充的示意图
从现有的哈希算法来看,哈希算法可以分为很多类,包括一开始的 MD 系列算法,
其中包括 MD4 和 MD5,以及后来在 MD5 算法的基础上发展出来的 SHA 算法,以及
中国国家密码局提出的国密算法 SM 系列中的 SM3 算法,下面将对不同的哈希算法以
历史和技术发展的角度进行简要的归纳介绍。
6
广东工业大学硕士学业论文
(b c ) ( b d ) 0 j 19
b c d 20 j 39
Fj (2.5)
(b c ) (c d ) (b d ) 40 j 59
b c d 50 j 79
5a 827999 0 j 19
6ed 9eba1 20 j 39
Tj (2.6)
8f 1bbcdc 40 j 59
ca 62c1d 6 60 j 79
7
第二章 算法原理及验证平台介绍
2.2.1 验证语言介绍
8
广东工业大学硕士学业论文
2.2.2 验证方法学介绍
2002 年,Verisity(已经被 cadence 收购)公布了第一个基于 E 语言开发的 eRM 验
证库。次年,Synopsys 公司公布了基于 Vera 语言开发的 RVM。2006 年,三大 EDA 厂
商的 Mentor 公布了 AVM,支持 TLM 标准,用 SV 和 SC 实现。接着,Synopsys 推出
VMM,这主要是将 RVM 的 vera 语言切换到到 SV。2007 年,Cadence 推出 URM,这
也是将 eRM 的 E 语言切换到 SV,并支持 TLM 接口等。2008 年,Cadence 和 Mentor
一起推出了 OVM,这也是 UVM 的前身。2010 年,ACCELLERA 以 OVM 为基础,进
9
第二章 算法原理及验证平台介绍
E语言 eRM SV
VA RVM AVM\VMM OVM UVM
Vera、SV (IEEE1800)
至今
2.3 算法方案的选择及算法分析
当下国内国内广泛应用的哈希算法,主要是 SHA2 系列算法和国密的 SM 系列中
的 SM3 算法,而且目前对哈希算法的大规模运用主要是用软件实现。本文的是在基于
设计国密芯片并且兼容国际加密算法的前提下,做出的设计。国密算法包括 SM1、SM2、
SM3、SM4、SM7 和 SM9 算法[32],本人负责的内容是哈希算法的设计,考虑到算法的
通用、兼容及软硬件复用等问题,前文已经做了一定的介绍 SHA256 算法和 SM3 输入
输出数据的结构非常相似,并且 SHA256 算法在密码学中运用最为广泛,从项目的实
际出发,本文在芯片中哈希的硬件实现部分采用 SM3 算法和 SHA256 算法。下面就
SHA256 算法和 SM3 做详细的分析和推导,并在合适的地方提出硬件优化方案。
10
广东工业大学硕士学业论文
2.7.1.1 数据填充
图 2-3 “abc”的填充过程
11
第二章 算法原理及验证平台介绍
2.7.1.3 数据扩展
2.7.1.4 数据的循环迭代计算
256
0
(x ) POTR 2(x ) POTR 13(x ) POTR 22(x ) (2.10)
256
1
(x ) POTR 6(x ) POTR 11(x ) POTR 25(x ) (2.11)
12
广东工业大学硕士学业论文
{256}
0
POTR 7(x ) POTR 18(x ) SHR 3(x ) (2.12)
1{256} POTR 17(x ) POTR 19(x ) SHR 10(x ) (2.13)
2)而 64 轮的循环迭代运算用到的则是,经过赋初值以后不断地重复进行扩展迭
代的过程,从而得到 256 位的哈希值,其计算过程见式(2.14)所示:
for 0 to 63
{
{256}
T1 H 0
(E ) ch(E ,F ,G ) K t{256} Wt
{256}
T2 0
(a ) Maj(A , B ,C )
H G
G F
F E
E D T1 (2.14)
D C
C B
B A
A T1 T2
}
3)完成 64 次循环迭代后,会产生新的 A,B,C,D,E,F,G 的值,此时将新的
A,B,C,D,E,F,G 与内部初始时的 8 个哈希向量相加,则得到当前 512 位输入数据的哈
希值,如果本次输入的数据长度大于 512 位,则本轮得到的哈希值将会重新切割成 8
个 32 位的数据组,以此类推完成所有数据的循环迭代,其具体过程如下见式(2.15):
4)当所有数据运算结束以后,将所有的哈希值(H0,H1,H2,H3,H4,H5,H6,
H7)进行级联,则得到最终的结果。其具体过程见式(2.16):
H 0(N ) H 1( N ) H 2( N ) H 3( N ) H (4 N ) H 5( N ) H 6( N ) H 7( N ) (2.16)
13
第二章 算法原理及验证平台介绍
2.7.2.1 数据扩展
for j 16 to 67
Wj P1(Wj 16 Wj 9 (Wj 3 15)) (Wj 13 7) Wj 6 (2.17)
endfor
for j 0 to 63
Wj' Wj Wj 4 (2.18)
endfor
上 述 式 ( 1.17 ) 中 的 P1(x ) X (X 15) (X 23) ,W0,W1,…,W63,
2.7.2.2SM3 算法的迭代压缩
14
广东工业大学硕士学业论文
for j 0 to 63
SS1 ((A 12) E (Tj j )) 7
SS 2 SS1 (A 12)
TT1 FFj(A , B ,C ) D SS 2 W j'
TT2 GG j(E ,F ,G ) H SS1 Wj
D C
C B 9 (2.19)
B A
A TT1
H G
G F 19
F E
E P0(TT2 )
endfor
其中 FFj(A,B ,C )和GGj(A,B ,C )的表达式如下:
A B C 0 j 15
FFj(A,B ,C ) (2.20)
(A B ) (A C ) (B C ) 16 j 63
A B C 0 j 15
GG j(A,B ,C )
(2.21)
(A B ) ( A C ) 16 j 63
与 SHA256 算法一样完成 64 次循环迭代后,会产生新的 A,B,C,D,E,F,G 的值,此
时将新的 A,B,C,D,E,F,G 与内部初始时的 8 个哈希向量初值做异或操作,就会得到本组
512 位输入数据的最终值。其运算过程见式(1.22):
15
第二章 算法原理及验证平台介绍
2.4 本章小结
本章主要是对不同的哈希算法以历史和技术发展的角度进行简要的归纳介绍。包
括详细分析了算法的基本原理,算法的共性和差异,然后就算法在发展的过程中遇到
的安全问题以及解决方案做了详细的介绍。然后,根据项目的需求,本文在芯片中哈希
的硬件实现部分采用 SM3 算法和 SHA256 算法,又因为设计一块 SoC 必然会用到验证
技术,本设计最终会采用 UVM 验证方法学,因此对验证技术的发展状况做了介绍,最
后对 SM3 算法和 SHA256 的算法做了详细的推导和理解。
16
第三章 算法的软硬件及 AHB 总线接口设计
ROM
CK802 SDRAM
TRNG
A
H I2C
B
SM2/RSA 总 A UART
线 P
B GPIO
SM4/AES 桥
TIMER
SM3/SHA256
SPI
图 3-1 芯片的整体架构
3.1 算法的软硬件总体设计方案
在设计本系统以前,首先使用 C 语言用软件实现 SHA256 算法和 SM3 算法。经研
究发现扩展和压缩操作占据了总运行时间的 90%以上。因此,如果在软件中实现扩展
和压缩模块,则加密效率将非常低。此外,考虑到消息长度的可变性,发现很难存储整
个消息,如果在硬件中设计填充和解析功能,则会消耗大量的硬件资源。因此,在设计
中,填充和解析操作用软件来实现,扩展和压缩操作用硬件实现。在软件/硬件划分之
后,确定了 SoC 电路的最终架。
17
广东工业大学硕士学业论文
控制模块
AHB
Slave
接口
CPU AHB AHB
master接 扩展模块 压缩模块
CK802 口 总线
输出模块
Figure 3-2 SHA256 / SM3 algorithm software and hardware architecture diagram
18
第三章 算法的软硬件及 AHB 总线接口设计
3.2 算法的软件设计思路
如上文所述,将 SM3 算法和 SHA256 算法的实现做软硬件划分,数据的填充用软
件来实现,图 3-3 所示,这里运行软件的平台为平头哥的 CPU,型号为 CK802。扩展
模块及压缩模块,以及控制单元和总线接口单元都是用硬件实现。本小结主要介绍算
法软件设计的平台(CPU 的介绍)和软件代码的设计。
平头哥半导体有限公司研发的具有完全自主知识产权的国产嵌入式处理器,采用
16 位、32 位指令混编的 RISC 指令集架构。目前 C-SKY 已经推出首个个嵌入式处理器
系列;CK500 系列、CK600 系列和 CK800 系列[37],下图是 CK802 的架构图。广泛于低
成本,低功耗等物联网领域,CK802 架构图如图 3-3 所示。
32位
指令总线
接口
MPU
Cache
CPU CK802 单元
32位
数据总线
接口
其架构特征如下:
指令集:平头哥 ISA(32 位/16 位变长指令系统)
通用寄存器:16 个 32 位 GPR
内存保护:0-8 个保护区可选配
乘法器:慢速乘法器、快速乘法器可选配
流水线:2 级流水线
总线接口:双总线(指令总线+数据总线)
19
广东工业大学硕士学业论文
紧耦合 IP:中断控制器、计时器
算法的软件代码部分设计,其功能就是把哈希算法的输入数据经过转换操作,将
输入数据的长度拼凑成 512 位的整数倍。用软件实现的填充操作,如图 3-4 所示。
图 3-4 输入数据填充操作的软件实现代码
Figure 3-4 Software implementation code for input data filling operation
20
第三章 算法的软硬件及 AHB 总线接口设计
data_out 输出信号,运算完毕以后,输出数据的通道
21
广东工业大学硕士学业论文
控制 操作
选
寄存器 初始值 择
器
控
制 开始 W0
压缩模块
器
输入数据 512bits
寄存器 结束 扩 W1
压缩模块
展
模
W62
块
压缩模块
状态
完成 W63
寄存器 压缩模块
寄
存 新的初始值 选
器 择
器
模
输出数据
256bits 块
寄存器 结果 XOR
图 3-6 数据扩展的算法实现
22
第三章 算法的软硬件及 AHB 总线接口设计
输出环节的部分代码
if(ctrl==2'b11)
begin
data_out[8*32-1:7*32]<=SHA256_result[8*32-1:7*32];
data_out[7*32-1:6*32]<=SHA256_result[7*32-1:6*32];
data_out[6*32-1:5*32]<=SHA256_result[6*32-1:5*32];
data_out[5*32-1:4*32]<=SHA256_result[5*32-1:4*32];
data_out[4*32-1:3*32]<=SHA256_result[4*32-1:3*32];
data_out[3*32-1:2*32]<=SHA256_result[3*32-1:2*32];
data_out[2*32-1:1*32]<=SHA256_result[2*32-1:1*32];
data_out[1*32-1:0*32]<=SHA256_result[1*32-1:0*32];
23
广东工业大学硕士学业论文
w_out 输出信号,运算完毕以后,输出数据的通道
24
第三章 算法的软硬件及 AHB 总线接口设计
...
W0 W1 W2 W3 W4 ... W7 ... W10 W11 W12 W13 W14 W15 W
<<<15
<<<7
P1
压缩函数 ABCDEFGH
25
广东工业大学硕士学业论文
Aj-1 Bj-1 Cj-1 Dj-1 Ej-1 Fj-1 Gj-1 Hj-1 Mj-1 Nj-1
<<<12
FFj <<<19
+
Tj GGj
+ <<<j
<<<7 <<<9
SS1 +
TT2 + Wj+1
SS2 +
P0
+ +
Wj+1
+
TT1
Aj Bj Cj Dj Ej Fj Gj Hj Mj Nj
图 3-9 SM3 算法的压缩优化设计
26
第三章 算法的软硬件及 AHB 总线接口设计
27
广东工业大学硕士学业论文
3.5.2 控制器模块状态机的分析与设计
28
第三章 算法的软硬件及 AHB 总线接口设计
Write=0
Write=0 Read Read=1
Read=0 Finish=1
Finish=1
Write=0
Write=0 Read=0
Write=0 Read=1
Read=0 Finish=0
Finish=0
Finish=0
Idle Encryption
Write=0
Read=0
Finish=1
Write=1
Read=0
Write=0
Finish=0
Write
3.5.3 控制器模块设计流程
29
广东工业大学硕士学业论文
控制寄存器
控制逻辑
数据分发模块
电路
输入寄存器
状态寄存器
译码器 转换电路模块
输出寄存器
Figure 3-13 The logic diagram of the control of the SHA256 / SM3 algorithm
接口名称 功能描述
crtl 输出信号,主要是用来控制算法运算步骤的信号。
其核心代码如下:
module SM3_SHA256_Controller (clk , rst , W , R , finish , count_out , ctrl);
input clk , rst , W , R ;
output finish ;
output [6:0] count_out ; // calculat the times of extend&compress&writeresult
output [1:0] ctrl ;
31
广东工业大学硕士学业论文
reg finish ;
reg [6:0] count_out , count ;
reg [1:0] next_state , current_state;
wire [6:0] count_plus ;
parameter idle='b00; //idle state, no operation
parameter write = 'b01; // write register
parameter encryption = 'b10; // encryption only
parameter read = 'b11; // read register
assign count_plus = count + 'd1 ; //the current state is assigned to output wire
assign ctrl = next_state ; // counter ,to control the process of the sm3/SHA256
algorithm
3.6 本章小结
本章是全文中的核心部分,先是交代了算法软硬件协同设计的原由,然后做软硬
件划分,然后交代硬件设计的流程,然后对接口进行了详细的介绍,接着就是对 SHA256
算法硬件实现方面给出了详细的说明,然后详细的介绍了 SM3 算法的优化过程,随后
给出了控制单元的逻辑分析,画出了状态转移图以及代码说明,最后给出了 AHB-
SHA256/SM3 接口设计的思路以及实现的过程。
32
第四章 UVM 验证平台的搭建
33
广东工业大学硕士学业论文
Pre-active
ACTIVE
INACTIVE
Pre-NBA
OBSERVED
Pre-observed
REACTIVE
RE-INACTIVE
POSTPONED
35
广东工业大学硕士学业论文
env
sequence
referencemodel scoreboard
driver monitor
monitor
DUT
36
第四章 UVM 验证平台的搭建
中,需要大量的 case,这就需要不同约束条件的随机数据,而产生这些数据是通过定义
不同的 sequence,这样就能实现多个带有不同约束条件的随机数据。Sequencer 是一个
通道,用来启动 sequence 产生的 TLM 数据包,然后将其发送到 driver。很多时候把单
个 sequence 比作一颗子弹,产生一组 transaction,sequencer 是弹夹,sequencer 用来释
放一个个 sequence。本来 sequence(序列模块)不属于 UVM 平台的组件,但是,它与
sequencer(定序器)有密切的关系:sequence 是通过 sequencer 将激励发送到 driver 的;
如果只有 sequencer 而没有 sequence,sequencer 只是一个空的通道,在整个验证平台中
不会有任何作用,同样,只有 sequence 而没有 sequenceer,sequence 无法被发送到 driver。
所以只有同时拥有 sequence 和 sequencer,才能使 sequence 机制工作起来,而 sequencer
是属于 UVC,所以一般会把 sequence 和 sequencer 一起介绍。在这里介绍 sequence 机
制,所以就把二者一起介绍了。
driver(驱动):Driver 在 UVM 验证平台的地位十分重要,driver 的主要职责是处
理 sequencer 发送过来的数据,使其转换为 DUT 端口信号的形式,通过虚拟接口(VIF)
驱动到 DUT 中。
monitor(监视器)机制:monitor(监视器)主要是监测和采集经过 DUT 的数据,
以及实现端口与 TLM 的数据之间转换。与此同时,它将采集到的数据记录起来,最后
通过仿真软件以日志的方式打印出来。
reference model(参考模型):reference model(简称:RFM)是 UVM 验证平台中
相对来说比较复杂且重要的组件,UVM 验证的实质就是自动比对带约束的随机数据通
过 DUT 的输出与 RFM 的输出这样一种机制,可以大大的提升验证的效率,通过判断
二者的结果是是否一致,进而锁定 DUT 设计的正确性。RFM 一般是模拟算法模型,比
如:用 C 语言来实现 Verilog 描述的功能。
scoreboard(计分板):scoreboard 是 UVM 验证平台用于功能验证收集结果的核心
部件,可以自动地比对带约束的随机数据通过 DUT 的输出与 RFM 的输出和信息并打
印出来,若两边的数据是一致的,则 DUT 的设计,在功能上满足要求,若数据不同,
则表示设计在功能上不能达到预期,需要改设计。scoreboard(计分板)可以使从工程
师能够从繁琐的波形数据去发现 DUT 是否存在 BUG,变成从直观的数据来看 DUT 是
否存在 BUG。
37
广东工业大学硕士学业论文
4.1.4 UVM 树
UVM 验证平台的主要结构如图 4-3 所示,各个 UVC 都是由 uvm_component 派生
来的,UVM 树的顶层是 top module 单元,下面就是 testcase,testcase 是继承了
uvm_component 的 uvm_test,然后是 env,env 是从 uvm_env 继承过来的,记下来是
agent,scoreboard,diriver,monitor 等 UVM 分别继承了 uvm_agent,uvm_ scoreboard,
uvm_ diriver,uvm_monitor,其功能描述,前文已经做了详细的介绍,下面是 UVM 树
在实际运用过程中的结构。
tb_top
top module
testcase
uvm_test
env
uvm_env
38
第四章 UVM 验证平台的搭建
39
广东工业大学硕士学业论文
TOP
ENV
Scoreboard
Sequencer 1
...
Sequencer 2
sequencer reference
model
Sequencer n
monitor1 monitor2
driver
Interface (vif)
DUT(SHA256/SM3)
40
第四章 UVM 验证平台的搭建
Figure 4-5 Block diagram of UV256 verification platform for SHA256 / SM3
流程始于随机化的输出,结束于将输出与预期结果进行比较。UVM 以自上而下的
方法工作,在 uvm_test 的 sequencer 上启动 sequence。sequence 通过 sequencer 发送到
driver,同一时间只能运行一个。为了控制这一点,使用了 virtual sequence,它决定了
sequence 将在何时运行。virtual sequence 已配置使用优先级,每个 sequence 都具有一
定级别的优先级。配置好 sequence 以后就开始向 driver 发送随机值。driver 和 sequence
使用 seq_item_port 类进行连接。它们都在 get_next_item,item_done,get,put 上工作,
用来等待事务完成。driver 使用从 sequence 生成的随机值驱动 DUT。
monitor 监视 DUT 的端口并捕获每个有效的事务。这消除了不必要的低级抽象噪
声。一个 monitor 可以访问参考模型以生成预期结果。这是使用 DPI 库完成的,该库支
持在 SystemVerilog 和 C 语言之间进行事务处理。两个 monitor 都将 DUT 输出和参考
输出发送到分析端口。记分板连接到对这些值进行采样的分析端口的另一端。使用系
统方法 raise_objection 和 drop_objection 同步整个流程。一旦 drop_objection 开始执行,
则仿真就结束了。
在接口中定义了断言,可直接访问输入/输出。断言在仿真期间在“run_phase”阶段
并行运行。coverage group 包括覆盖点(输入和输出),以监视位的切换。coverage group
还提供代码覆盖率,通过代码的覆盖率可以精确的知道,整个验证过程需要执行多少
代码。
本次搭建好的 UVM 验证平台可以同时验证 SHA256 和 SM3,这在功能上可以复
用,Testbench 进行了修改,以驱动两个不同的 IP。其中一个有趣的是,这两个 IP 相互
独立地被驱动,采样和验证。Systemverilog Fork 可以方便地执行并行任务。
sequence 和 sequencer:UVM_Sequence 是基类,可以扩展以定义 DUT 的测试
sequence 流,sequence 用于产生验证平台的 transaction(是 uvm_sequence_item),sequence
继承了 uvm_component 中的 uvm_sequence,在此,分别为 SHA-256 和 SM3 定义了 5
41
广东工业大学硕士学业论文
42
第四章 UVM 验证平台的搭建
43
广东工业大学硕士学业论文
建立 build_phase 以及 run_phase。
void'(uvm_resource_db#(virtual
SHA256_SM3_interface)::read_by_name(.scope("ifs"),.name("SHA256_SM3_interface"),.v
al(vif)));
mon_ap_after=new(.name("mon_ap_after"),.parent(this));
transactionclassfields
task run_phase(uvm_phase phase);
req=SHA256_SM3_seq_item::type_id::create(.name("req"),.contxt(get_full_name()));
agent:agent 提供了包装 sequencer,driver 和 monitor 的环境。在这里构建并连接组
件。agent 保留分析端口,该端口已连接到 Monitor 的分析端口。分析端口的另一端连
接 到 scoreboard 。 agent 的 作 用 是 把 driver 和 monitor 连 接 起 来 。 agent 继 承 了
uvm_component 的 uvm_agent,在 uvm_component_utils 中完成 factory 注册。
核心部分的伪代码如下:
agent_ap_before=new (.name ("agent_ap_before") ,.parent (this) ) ;
agent_ap_after=new (.name ("agent_ap_after") ,.parent (this) ) ;
sequencer=SHA256_SM3_sequencer::type_id::create (.name ("sequencer"),.parent
(this) ) ;
driver=SHA256_SM3_driver::type_id::create (.name ("driver") ,.parent (this) ) ;
SHA256_SM3_mon=SHA256_SM3_monitor::type_id::create(.name("SHA256_SM3_
mon") ,.parent (this) ) ;
driver.seq_item_port.connect (sequencer.seq_item_export) ;
SHA256_SM3_mon.mon_ap_before.connect (agent_ap_before) ;
SHA256_SM3_mon.mon_ap_after.connect (agent_ap_after) ;
scoreboard: scoreboard 板是比较和显示结果的组件。monitor 通过 agent 的析端口将
值发送到 scoreboard 板。scoreboard 获取 DUT 和 RFM 的这些值,将它们进行比较并更
新测试结果。内部 scoreboard 每个中都有 4 个 FIFO 从 DUT 和 RFM 中收集值。这消除
了两个结果之间的同步问题。
核心部分的伪代码如下:
sb_export_before=new ("sb_export_before",this) ;
44
第四章 UVM 验证平台的搭建
sb_export_after=new ("sb_export_after",this) ;
before_fifo=new ("before_fifo",this) ;
after_fifo=new ("after_fifo",this) ;
sb_export_before.connect (before_fifo.analysis_export) ;
sb_export_after.connect (after_fifo.analysis_export) ;
task run () ;
environment:该环境是 UVM 组件的最高级别抽象包装 scoreboard 和 agent。组件在
环境中构建和连接。要访问 UVM 框架中的任何组件,都需要通过环境对其进行访问。
核心部分的伪代码如下:
agent=SHA256_SM3_agent::type_id::create (.name ("agent") ,.parent (this) ) ;
sb=SHA256_SM3_scoreboard::type_id::create (.name ("sb") ,.parent (this) ) ;
agent.agent_ap_before.connect (sb.sb_export_before) ;
agent.agent_ap_after.connect (sb.sb_export_after) ;
endfunction:connect_phase
4.3 使用 UVM 验证平台的验证流程
测试平台从随机化开始,最后将输出与预期结果进行比较。该测试平台驱动的两
个 DUT(SHA-256 和 SM3)并行运行。UVM 以自上而下的方法工作;该序列在 uvm_test
上的 sequencer 上启动。SM3 和 SHA-256 有多个 sequence,但是每一次只有一个 sequence
可在 sequencer 上运行。当所有的组件都准备好以后,就开始向 driver 发送随机值。
driver 和 sequencer 使用 transaction 进行连接。
Monitor 监视 DUT 的端口并捕获每个有效的事务,两个监视器都发送 DUT 输出和
参考输出到分析端口。记分板连接到对这些值进行采样的分析端口的另一端。使用系
统 方 法 raise_objection 和 drop_objection 。 仿 真 开 始 于 raise_objection , 结 束 于
drop_objection。
在接口中定义了断言,可以直接访问输入/输出。断言在仿真期间的运行阶段中并
行运行。覆盖组包括监视位切换的覆盖点(输入和输出)。Cover Group 还提供代码覆
盖范围表示要执行多少代码。
4.4 本章小结
本章系统的介绍了详细的介绍了 UVM 验证方法学的演化过程,以及如何使用
UVM 验证方法学来搭建一个验证平台,最后详细的给出了基于 SHA256 和 SM3 算法
45
广东工业大学硕士学业论文
46
第五章 验证及分析
第五章 验证及分析
本文根据不同哈希算法的硬件研究,着重研究了 SHA256 算法和 SM3 算法的硬
件设计及其优化,前文用硬件描述语言进行了实现,本章就设计的正确性以及性能指
标进行分析与说明,模块级验证采用第四章搭建的 UVM 验证平台来验证,系统级验
证分为在 VCS 环境下用虚拟 CPU 搭建 SoC 平台来进行软硬件联合仿真,以及搭建
FPGA 验证平台来进行原型机验证。UVM 验证平台的搭建,上一章已经花费了大篇
幅来进行介绍,这里只是利用搭建好的 UVM 验证平台来验证本设计中的 SM3 和
SHA256 模块,而在仿真工具上面的系统级验证则根据写好的脚本进行配置,然后调
整软件代码即可。FPGA 验证则是对芯片进行更加完备的验证。
5.1 前仿结果分析
5.1.1 仿真工具介绍
47
第五章 验证及分析
48
广东工业大学硕士学业论文
图 5-3 验证平台的覆盖率
图表标题
120
100
坐标轴标题
80
60
40
20
0
50 100 1000 10000 100000 1000000
测试案例的数量
图 5-4 测试案例数量与三大覆盖率的关系
Figure 5-4 The relationship between the number of test cases and the three major coverage rates
5.1.3 系统级的仿真结果
1) SHA256 的仿真波形
完成了前文的设计和验证的平台的搭建以后,然后做前仿,系统级的验证结果如
下所示,通过软件进对“abc”进行加密。
49
第五章 验证及分析
软件加密得到的结果如下:
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
从图 5-5,可以看到,刚开始状态进入的在空闲状态,在这种状态下,所有的数据
都进入初始状态,如果输入信号为 1,则 SHA256 算法进入写状态。在写状态:并将数
据从 HWDATA 写入数据寄存器。数据加密完成或读取最后一个 32 位数据时,则模块
进入读取状态,此时数据并以 32 位格式从 HRDATA 输出当前操作的结果。经过软硬
件设计以后得到的结果与软件加密后得到的数据是完全一致的。
2) SM3 的仿真波形
与 SHA256 算法一样,先通过软件进对“abc”进行加密。软件加密得到的结果如下:
66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b
与 SH256 算法一样,从图 5-6,可以看到,经过软硬件设计以后得到的结果与软件
加密后得到的数据是完全一致的。说明我们的硬件设计满足预期。
51
第五章 验证及分析
原型机验证,其验证结果与软件实现的一模一样,说明该设计完全符合设计目标,如下
是 SHA256 的 FPGA 验证结果与软件代码实现的一模一样。图 5-9 黄色部分是 FPGA
验证时得出的值,图 5-10 是用纯软件实现的值。
52
广东工业大学硕士学业论文
5.3 后端综合及性能分析
图 5-11 所示为 SHA256 的版图,5-12 为 SM3 算发的版图,图 5-13 为 SM3 算法的
综合报告,图 5-14 为 SHA256 算法的综合报告。
54
广东工业大学硕士学业论文
优化后 70 36 4 1.31
5.4 本章小结
55
第五章 验证及分析
56
第六章 总结与展望
第六章 总结与展望
6.1 总结
随着今年,5G 技术的普及,物联网市场在不久的将来,将会迎来井喷发展,物联
网的安全问题会变得越来越严重,本文在物联网信息安全领域的哈希算法中,做了一
定的研究以及工程实现。随着经济全球化进程的加快,不同标准的技术在世界范围内
的推行势必也会称为一种趋势,本文就国密算法中的 SM3 算法做了优化,然后集成了
主流的 SHA256 算法,两者具有共同的数据输入输出结果。
论文首先介绍了哈希算法的发展史,以及一些算法的原理,然后结合项目本身,选
择了 SHA256 算法和 SM3 算法做为本文的主要研究与设计方向,然后详细介绍了
SHA256 算法的硬件实现以及 SM3 算法的优化原理。AHB 总线接口设计,以及控制模
块的设计,最后就设计本身而言,通过 UVM 验证平台来验证 IP 的设计是否功能上满
足需求。
本文根据上诉,主要存在如下特点。
第一,从软件复用的角度讲,将 SHA256 算法和 SM3 算法的预处理部分用软件实
现,考虑到二者的软件处理部分具有共性,所以软件部分可以完全复用,在切换 IP 的
时候,只需要对基地址进行替换即可,考虑到敏捷开发等因素,本文在设计
SHA256/SM3 算法的硬件 IP 以及控制模块时,其偏移地址的设计也完全一致,这就极
大的减少了软件的开发复杂度。
第二,从硬件复用的角度讲,也是因为 SHA256 和 SM3 除了杂凑的参数和运算的
轮数不一样以外,其他数据形式存在很大的相似性,故控制模块和 AHB-IC 接口的也
复用了。对于硬件来说可以大幅度减少资源。
第三,除了以上从系统及的层面优化以外,本文讲 SM3 算法单元从 IP 层面做了深
入的研究,然后做了资源优化,与 SM3 的标准实现相比,该架构节省了大约 3.11 倍的
寄存器数量。
第四,采用 UVM 验证方法学来验证 IP 的功能,在验证平台的可重用性以及产生
随机数等方面具有很强的优势,使项目的后续迭代创新更为方便快捷。
57
广东工业大学硕士学业论文
6.2 展望
整篇论文从最初对不同哈希算法的探讨与分析、SoC 系统的集成、软硬件设计,验
证方法学等方面知识的学习。到将 SHA256/SM3 算法用 RTL 实现,然后通过 UVM 验
证,FPGA 板级验证,最终集成为 SoC 的一部分,最后流片成功,历时一年多。整个
系统的基本功能实现了,但是芯片的频率还有待提升,SoC 级别的 UVM 验证平台有待
完善,另外是时钟网络的设计没有展开,对低功耗的设计方面还有待加强。以及抗攻击
方面的研究,在本文中没有提到,我希望在后续展开相关工作的时候能更深入的研究
以上几个方面。
受限于本人理论知识的局限性,以及 SoC 系统设计的思路的经验并不丰富,本设
计方案并不能代表最先优方案,若在文中存在一些不足,欢迎提出。
58
广东工业大学学业论文
参考文献
[1] 钱文明. 数字 DC-DC 变换器中 DPWM 的设计[D]. 2016.
[2] 刘一鸣. 无源蜂窝物联网协议技术研究[D].
[3] 方颂. MOCVD 原位监测系统软件设计[D].
[4] 雷瑞. 智能家居,企业很热闹、用户看热闹?[J]. 家用电器(7):32.
[5] 屈 刚, 蒋川. 5G 移动通信典型应用场景分析研究 [J]. 数字技术与应用 , 2018,
36(10):41-42.
[6] 王毅俊 刘禹.《物联网白皮书(2018 年)在沪发布》(N). 上海科技报,2018
[7] 飞猪. 2019 年度中国 AIoT 企业 TOP100 排行榜[J]. 互联网周刊, 2019(18).
[8] 郭永和. 泛在物联网终端设备安全威胁与防护技术[C]. 中国电机工程学会电力信
息化专业委员会.生态互联 数字电力——2019 电力行业信息化年会论文集.中国电机工
程学会电力信息化专业委员会:人民邮电出版社电信科学编辑部,2019:108-110.
[9] 刘传军, 翁韬. Discussion on the Implication of Internet of Things in Fire Army%物联
网技术在消防部队中的应用初探[J]. 中国公共安全(学术版), 000(2):105-107.
[10] 李富勇,张君 , 尹肖栋 , et al. 浙江省工业控制系统安全现状分析[J]. 计算机时代,
2018.
[11] 叶中华, 解析 2017 年物联网五大发展趋势[N]. 中国城市报,2017
[12] 李伟, 项小升, 武亦农, et al. 物联网安全保护初探[J]. 智能建筑, 2017(9):33-35.
[13] 董晓丽. 分组密码 AES 和 SMS4 的安全性分析[D].西安电子科技大学,2011.
[14] 王晓燕, 杨先文. 基于 FPGA 的 SM3 算法优化设计与实现[J]. 计算机工程, 2012,
38(6):244-246.
[15] Kim J W , Lee H U , Won Y . Design for high throughput SHA-1 hash function on
FPGA[C]// Fourth International Conference on Ubiquitous & Future Networks. IEEE, 2012.
[16] 张 倩 , 李 树 国 . SM3 杂 凑 算 法 的 ASIC 设 计 和 实 现 [J]. 微 电 子 学 与 计 算 机 ,
2014(9):143-146.
[17] 丁冬平, 高献伟. SM3 算法的 FPGA 设计与实现%Design and implementation of SM3
algorithm on FPGA[J]. 微型机与应用, 2012, 031(005):26-28.
[18] 薛也, 胡爱群. FPGA 实现的一种 SHA-1 优化杂凑算法[J]. 东南大学学报:英文版,
59
参考文献
2014(1):13-16.
[19] 陈华锋. High-speed SHA-256 algorithm implementation%高速 SHA-256 算法硬件实
现[J]. 浙江大学学报(理学版), 2009, 36(6):675-678.
[20] 李鸿强, 苗长云, 石博雅, et al. 单向散列函数 SHA-512 的优化设计[J]. 计算机工程,
2007(07):136-138+171.
[21] Cao D , Han J , Zeng X Y . A reconfigurable and ultra low-cost VLSI implementation of
SHA-1 and MD5 functions[C]// International Conference on Asic. IEEE, 2007.
[22] Miao L , Jinfu X , Xiaohui Y , et al. Design and Implementation of Reconfigurable
Security Hash Algorithms Based on FPGA[C]// International Conference on Information
Engineering. IEEE Computer Society, 2009.
[23] 刘恒. 面向多重需求的灵活可配的哈希算法硬件加速器研究[D]. 2016.
[24] 黄云轲,辛小龙,李成龙,李聿民.关于对哈希算法的研究与应用[J].计算机光盘软件与
应用,2012(03):201+199.
[25] 么贻聪. 基于动态软键盘的口令认证安全客户端的研究与实现[D]. 吉林大学.
[26] 李堂更. 移动通信基站智能锁系统软件设计与实现[D].
[27] 刘冶, 潘炎, 夏榕楷, et al. FP-CNNH:一种基于深度卷积神经网络的快速图像哈希
算法[J]. 计算机科学, 2016, 43(9):39-46.
[28] 薛富实. 轻量级 IPsec 在嵌入式系统中的设计与实现[D]. 2012.
[29] 张宏石. SHA-3 第二轮候选 BLUE MIDNIGHT WISH 算法分析[D].山东大学,2010.
[30] 翁新钎. 安全哈希算法的并行化实现研究[D]. 复旦大学, 2013.
[31] 陈 先 勇, 徐伟俊 , 杨鑫, et al. SystemVerilog 断言及其应用 [J]. 中国集成电路,
2007(09):23-28.
[32] 张振宾. 国密 SM4 和 SM2 算法功耗攻击关键技术研究与实现[D].
[33] 刘钰力. 基于 FPGA 的 SHA256 高效数字加密系统[D]. 兰州大学.
[34] 吴卓葵. 开放网络环境远程校准系统建模与可信技术研究[D]. 华南理工大学, 2014.
[35] 韩旭明. 面向隔离交换的应用数据流检测系统的设计与实现[D].
[36] 辛颖. 基于 DSP 的视觉客流检测系统研究[D]. 北京工业大学.
[37] 李战辉. 二进制转译加速方法及其在低电压处理器中的应用研究[D]. 2016.
[38] 崔东岳, 龙兵, 曾浩, et al. 安全散列算法的 FPGA 实现与仿真[J]. 电子质量,
60
广东工业大学学业论文
2010(12):19-21.
[39] 叶茂. 基于 VMM 的验证平台的研究与实现[D]. 华中科技大学, 2008.
[40] 李兆斌. 基于 UVM 的 AXI4 总线协议接口 IP 验证的研究与实现[D].
[41] 张吉纯. 基于 UVM 的接口模块验证 IP 的研究[D]. 2016.
[42] Janssens S, Thomas J, Borremans W, et al. Hardware/software co-design of an elliptic
curve public-key cryptosystem[C]//Signal Processing Systems, 2001 IEEE Workshop on.
IEEE, 2001: 209-216.
[43] Holler.Andrea, Druml.Norbert, Kreiner.Christina. Hardware/software co-design of
elliptic curve cryptography for resource-constrained applications. San Francisco: Design
Automation Conference, 2014: 1-6.
[44] Qian Z, Shuguo L. Hardware design and implementation of SM3 algorithm in ASIC[J].
Microelectronics and Computer, 2014, 31(9): 143-146.
[45] 国家密码管理局.http://www.oscca.gov.cn/News/201-204/News 1227.htm.
[46] Chen J Z, Li H X, Wang B B. Improved chosen-plaintext DPA on block cipher SM4[J].
Journal of Tsinghua University(Science and Technology), 2017(11):1134-1138.
[47] Matsui M. Linear cryptanalysis method for DES cipher[C]// The Workshop on the Theory
and Application of Cryptographic Techniques on Advances in Cryptology. Springer-Verlag
New York, Inc. 1994:386-397.
[48] V. S. Miller. Use of Elliptic Curves in Cryptography. Advances in Cryptology-
CRYPTO’85,H.C.Williams,Ed.,LNCS 218 Springer-Verlag.1986.
[49] Bai X, Jiang L, Dai Q, et al. Acceleration of RSA processes based on hybrid ARM-FPGA
cluster[C]// Computers and Communications. IEEE,2017:682-688.
[50] Jeong C, Kim Y. Implementation of efficient SHA-256 hash algorithm for secure vehicle
communication using FPGA[C]// Soc Design14+9
61
攻读学位期间的科研成果
攻读学位期间的科研成果
(1) 李辉,一种基于哈希算法与 PUF 电路的物联网设备 ID 认证方法。申请
号:201810835202.6,申请日期:2018 年 7 月 26 号;广东工业大学(发明专利-
实审阶段,第一作者)
(2) 李辉,基于硬件实现的区块链数据加密强化设计。申请号:
201910015839.0,申请日期:2019 年 1 月 8 号;广东工业大学(发明专利-实审
阶段,第一作者)
62
学位论文独创性声明
学位论文独创性声明
本人郑重声明:所呈交的学位论文是我个人在导师的指导下进行的研究工作及取
得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他
人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已
在论文中作了明确的说明,并表示了谢意。本人依法享有和承担此论文所产生的权利
和责任。
论文作者签名: 日期:
学位论文版权使用授权声明
本学位论文作者完全了解学校有关保存、使用学位论文的规定,同意授权广东工业
大学保留并向国家有关部门或机构送交论文的印刷本和电子版本,允许该论文被查阅
和借阅。同意授权广东工业大学可以将本学位论文的全部或部分内容纳入有关数据库
进行查索,可以采用影印、缩印、扫描或数字化等其他复制手段保存和汇编本学位论
文。保密论文在解密后遵守此规定。
论文作者签名: 日期:
指导教师签名: 日期:
63
致 谢
致 谢
时间过的很快,三年研究生学习生活快要结束了,此时此刻思绪万千,时
光仿佛回到了 2017 年,我一个人第一次拉着行李去广州,从那以后的将近三年
的时光,我将与广东工业大学这所学校产生千丝万缕的联系,让我深深的爱上
这所工业风格浓厚的学校。
毫无疑问,在广东工业大学学习期间,对我帮助最大的就是我的导师和师
母,以及同门同学和师兄弟,我的本科是自动化专业的,研究生阶段在熊晓明
教授门下学习集成电路设计,学习的路上遇到了很多的困难,首先是集成电路
的基础知识很欠缺,其次,集成电路是一个跨学科组成的一个专业,涉及的知
识面很广,前期学习十分的吃力,在老师和同学的帮助下,我自身能力得到了
快速的提高。学校和集体也给我提供了良好的学习氛围,让我能够在研究生三
年的时光里静下心来做研究,现在研究生生涯即将画上句号。
在这里要特别感谢熊晓明教授和师母,老师对科研的认知力和严谨的教学
风格对我影响很大。在生活上,师母总是给我很多的照顾和指点迷津,让我即
使远在他乡也能感受到家的温暖。当然在读研的过程中,家人给了我很大支
持,本身不富裕的家庭,在我选择读研这条道路时,他们都是无条件的支持,
还有一起学习、一起熬夜奋战的战友们,他们是我的榜样,这个集体给了我非
常多的帮助和温暖,感谢刘祥,王艺航,张景龙,张明森,陆江城,黄宏敏,
胡恩在平时学习的过程中相互鼓励,生活里的快乐很多。感谢师兄师姐在科研
的路上给了我很大的支持和建议。最后,今年的疫情很重,感谢 TXX 的照顾,
以至于在疫情期间我能专心致志地写完本篇文章。
同时也感谢评审专家的辛勤付出和所有帮助过我的人,衷心的感谢你们,
愿你们在以后的人生道路上大放光彩!
李辉
2020 年 4 月于重庆