CN106533657B - 一种sm3杂凑加密系统 - Google Patents
一种sm3杂凑加密系统 Download PDFInfo
- Publication number
- CN106533657B CN106533657B CN201611199721.5A CN201611199721A CN106533657B CN 106533657 B CN106533657 B CN 106533657B CN 201611199721 A CN201611199721 A CN 201611199721A CN 106533657 B CN106533657 B CN 106533657B
- Authority
- CN
- China
- Prior art keywords
- iteration
- message
- module
- group
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000006835 compression Effects 0.000 claims abstract description 22
- 238000007906 compression Methods 0.000 claims abstract description 22
- 238000000034 method Methods 0.000 claims description 51
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种SM3杂凑加密系统,为基于硬件描述语言创建的加密系统,包括控制模块、消息扩展模块、消息压缩模块和加密数据读取模块;其中,消息扩展模块,用于在控制模块的控制下,获取待加密消息,并对待加密消息进行消息扩展,得到包括132个字的扩展后消息;消息压缩模块,用于在控制模块的控制下,对扩展后消息进行压缩处理,得到相应的杂凑值,并将杂凑值保存至预设的结果寄存器;加密数据读取模块,用于在控制模块的控制下,对保存在结果寄存器中的杂凑值进行输出处理。本申请基于硬件描述语言创建的SM3杂凑加密系统可直接在硬件平台上实现SM3加密,由此也拓宽了SM3密码杂凑算法的应用范围。
Description
技术领域
本发明涉及加密技术领域,特别涉及一种SM3杂凑加密系统。
背景技术
SM3密码杂凑算法是国密局在2010年底公布的一种加密算法,能够适用于商用密码应用中的数字签名和验证、消息认证码的生成与检验以及随机数的生成,可以满足多种密码应用的安全需求。
在目前SM3密码杂凑算法的应用过程中,主要是基于Java语言或C语言开发出相应的SM3加密模块,然后利用这个加密模块实现对数据的加密。
然而,基于Java语言或C语言开发的SM3加密模块只能在软件平台上实现加密,而无法在硬件平台上实现加密,从而限制了SM3密码杂凑算法的应用范围。
综上所述可以看出,如何在硬件平台上实现SM3加密是目前还有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种SM3杂凑加密系统,能够在硬件平台上实现SM3加密。其具体方案如下:
一种SM3杂凑加密系统,为基于硬件描述语言创建的加密系统,包括控制模块、消息扩展模块、消息压缩模块和加密数据读取模块;其中,
所述消息扩展模块,用于在所述控制模块的控制下,获取待加密消息,并对所述待加密消息进行消息扩展,得到包括132个字的扩展后消息;
所述消息压缩模块,用于在所述控制模块的控制下,对所述扩展后消息进行压缩处理,得到相应的杂凑值,并将所述杂凑值保存至预设的结果寄存器;
所述加密数据读取模块,用于在所述控制模块的控制下,对保存在所述结果寄存器中的所述杂凑值进行输出处理。
可选的,所述控制模块为采用标准的三段式FSM设计得到的功能模块。
可选的,所述消息扩展模块,包括:
第一扩展子模块,用于在前4个时钟周期的每个时钟周期内,均分别计算第一组迭代过程的一个迭代值,得到所述第一组迭代过程中的前4个迭代值;
第二扩展子模块,用于在后64个时钟周期的每个时钟周期内,均分别计算所述第一组迭代过程的一个迭代值和第二组迭代过程的一个迭代值,得到所述第一组迭代过程中的后64个迭代值以及所述第二组迭代过程中的全部64个迭代值;
合并子模块,用于将所述第一组迭代过程中的全部68个迭代值和所述第二迭代过程中的全部64个迭代值进行合并,得到所述扩展后消息。
可选的,所述第二扩展子模块,包括:
迭代嵌套单元,用于在第k个时钟周期内,利用从预设的迭代值寄存器中提取出的所述第一组迭代过程中的第k个迭代值和第k-4个迭代值,计算所述第二组迭代过程中的第k个迭代值;其中,k为大于4,并且小于或等于68的整数。
可选的,所述结果寄存器为256位的寄存器。
可选的,所述加密数据读取模块,具体用于在所述控制模块的控制下,以32位的形式读取并输出保存在所述结果寄存器中的所述杂凑值。
可选的,所述硬件描述语言为Verilog HDL语言。
本发明中,SM3杂凑加密系统,为基于硬件描述语言创建的加密系统,包括控制模块、消息扩展模块、消息压缩模块和加密数据读取模块;其中,消息扩展模块,用于在控制模块的控制下,获取待加密消息,并对待加密消息进行消息扩展,得到包括132个字的扩展后消息;消息压缩模块,用于在控制模块的控制下,对扩展后消息进行压缩处理,得到相应的杂凑值,并将杂凑值保存至预设的结果寄存器;加密数据读取模块,用于在控制模块的控制下,对保存在结果寄存器中的杂凑值进行输出处理。
由上可知,本发明基于硬件描述语言来来创建上述SM3杂凑加密系统,其中,该SM3杂凑加密系统包括控制模块、消息扩展模块、消息压缩模块和加密数据读取模块,其中,上述消息扩展模块、消息压缩模块和加密数据读取模块在控制模块的控制下,依次实现消息扩展、压缩和数据读取。本发明基于硬件描述语言创建的SM3杂凑加密系统可直接在硬件平台上实现SM3加密,由此也拓宽了SM3密码杂凑算法的应用范围。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种SM3杂凑加密系统结构示意图;
图2为本发明实施例公开的一种SM3杂凑加密系统控制模块状态机图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种SM3杂凑加密系统,为基于硬件描述语言创建的加密系统,参见图1所示,该加密系统包括控制模块11、消息扩展模块12、消息压缩模块13和加密数据读取模块14;其中,
消息扩展模块12,用于在控制模块11的控制下,获取待加密消息,并对待加密消息进行消息扩展,得到包括132个字的扩展后消息;其中,上述132个字中的每个字均是32位的字。
消息压缩模块13,用于在控制模块11的控制下,对扩展后消息进行压缩处理,得到相应的杂凑值,并将杂凑值保存至预设的结果寄存器;
加密数据读取模块14,用于在控制模块11的控制下,对保存在结果寄存器中的杂凑值进行输出处理。
具体的,上述硬件描述语言可以为Verilog HDL语言(HDL,即HardwareDescription Language)。
本实施例中,上述结果寄存器为256位的寄存器。
另外,本实施例中,上述控制模块11具体可以为采用标准的三段式FSM(即FiniteState Machine,状态机)设计得到的功能模块。
由上可知,本发明实施例基于硬件描述语言来来创建上述SM3杂凑加密系统,其中,该SM3杂凑加密系统包括控制模块、消息扩展模块、消息压缩模块和加密数据读取模块,其中,上述消息扩展模块、消息压缩模块和加密数据读取模块在控制模块的控制下,依次实现消息扩展、压缩和数据读取。本发明实施例基于硬件描述语言创建的SM3杂凑加密系统可直接在硬件平台上实现SM3加密,由此也拓宽了SM3密码杂凑算法的应用范围。
本发明实施例公开了一种具体的SM3杂凑加密系统,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
上一实施例中,SM3杂凑加密系统需要通过消息扩展模块对待加密消息进行消息扩展处理,以得到包括132个字的扩展后消息。
本实施例中,上述消息扩展模块,具体可以包括第一扩展子模块、第二扩展子模块和合并子模块;其中,
第一扩展子模块,用于在前4个时钟周期的每个时钟周期内,均分别计算第一组迭代过程的一个迭代值,得到第一组迭代过程中的前4个迭代值;
第二扩展子模块,用于在后64个时钟周期的每个时钟周期内,均分别计算第一组迭代过程的一个迭代值和第二组迭代过程的一个迭代值,得到第一组迭代过程中的后64个迭代值以及第二组迭代过程中的全部64个迭代值;
合并子模块,用于将第一组迭代过程中的全部68个迭代值和第二迭代过程中的全部64个迭代值进行合并,得到扩展后消息。
也即,本发明实施例只需在68个时钟周期内便可得到132个迭代值,也即得到132个32位的字。其中,在前4个时钟周期内,获取第一组迭代过程的前4个迭代值,而在后64个时钟周期的每个时钟周期之内,均分别获取第一组迭代过程中的一个迭代值以及获取第二组迭代过程中的一个迭代值,从而在后64个时钟周期之内一共获取到第一组迭代过程的后64个迭代值以及第二组迭代过程的全部64个迭代值,再加上在前4个时钟周期内获取到的第一组迭代过程中的前4个迭代值,从而在68个时钟周期之内便可获取到第一组迭代过程中的全部68个迭代值以及第二组迭代过程中的全部64个迭代值,由此得到132个迭代值,其中,每个迭代值均是32位的字,也即经过上述消息扩展处理之后,得到了包括132个字的扩展后消息。
另外,上述第二扩展子模块,具体可以包括:
迭代嵌套单元,用于在第k个时钟周期内,利用从预设的迭代值寄存器中提取出的第一组迭代过程中的第k个迭代值和第k-4个迭代值,计算第二组迭代过程中的第k个迭代值;其中,k为大于4,并且小于或等于68的整数。
由上可见,本发明实施例将第二组迭代过程嵌入到了第一组迭代过程中,这样一方面节省了迭代过程所需的时间,提高了迭代效率,同时也会减少相关寄存器的个数,从而减少硬件电路板上由于寄存器所带来的面积开销和功耗开销。
更具体的,上一实施例中的加密数据读取模块,具体可以用于在控制模块的控制下,以32位的形式读取并输出保存在结果寄存器中的杂凑值。
在前述实施例的基础上,本发明实施例公开了一种更具体的SM3杂凑加密系统。参见图2所示,在本实施例中,SM3杂凑加密系统中的控制模块采用标准的三段式FSM结构设计,为其他功能模块产生和提供相关的控制信号:ctrl信号、finish信号、count_out信号。其中,与上述控制模块相关的硬件描述语言源代码如下:
其中,上述ctrl信号输出4个状态,分别是idle、write、encryption、read。这4个状态控制SM3杂凑加密系统中的其他功能模块完成哈希运算。
在idle状态下,所有的控制参数都为零,停止一切运算。每加密完成一个512bit数据时,如果没有R=1信号,就会返回到idle状态;每输出一次256bit数据时,都会返回到idle状态。
在write状态下,消息扩展模块读入待加密的随机数,一次最多读入512bits。
在encryption状态下,进行消息扩展和压缩函数的计算。每次计算后判断R状态值决定写出结果还是继续下一轮加密计算。
在read状态下,输出加密后的数据,输出后直接进入idle状态等待下一轮加密。
在图2中,finish信号置高输出表示消息扩展和压缩函数的计算完成,等待进入下个状态;count_out信号为实际输出的计数器控制信号,用来控制其他模块和整个加密的迭代进程;count信号为内部计数器,控制状态的转移和控制信号的生成。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种SM3杂凑加密系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种SM3杂凑加密系统,其特征在于,为基于硬件描述语言创建的加密系统,包括控制模块、消息扩展模块、消息压缩模块和加密数据读取模块;其中,
所述消息扩展模块,用于在所述控制模块的控制下,获取待加密消息,并对所述待加密消息进行消息扩展,得到包括132个字的扩展后消息;
所述消息压缩模块,用于在所述控制模块的控制下,对所述扩展后消息进行压缩处理,得到相应的杂凑值,并将所述杂凑值保存至预设的结果寄存器;
所述加密数据读取模块,用于在所述控制模块的控制下,对保存在所述结果寄存器中的所述杂凑值进行输出处理;
所述控制模块为采用标准的三段式FSM设计得到的功能模块,为其他功能模块产生和提供相关的控制信号:ctrl信号、finish信号、count_out信号;其中,所述ctrl信号输出4个状态:idle状态、write状态、encryption状态、read状态;在idle状态下,所有控制参数均为零,停止一切运算,每加密完成一个512bit数据时,如果没有R=1信号,则返回到idle状态;每输出一次256bit数据时,则返回到idle状态;在write状态下,消息扩展模块读入待加密的随机数,一次最多读入512bits;在encryption状态下,进行消息扩展和压缩函数的计算,每次计算后判断R状态值决定写出结果还是继续下一轮加密计算;在read状态下,输出加密后的数据,输出后直接进入idle状态等待下一轮加密。
2.根据权利要求1所述的SM3杂凑加密系统,其特征在于,所述消息扩展模块,包括:
第一扩展子模块,用于在前4个时钟周期的每个时钟周期内,均分别计算第一组迭代过程的一个迭代值,得到所述第一组迭代过程中的前4个迭代值;
第二扩展子模块,用于在后64个时钟周期的每个时钟周期内,均分别计算所述第一组迭代过程的一个迭代值和第二组迭代过程的一个迭代值,得到所述第一组迭代过程中的后64个迭代值以及所述第二组迭代过程中的全部64个迭代值;
合并子模块,用于将所述第一组迭代过程中的全部68个迭代值和所述第二组迭代过程中的全部64个迭代值进行合并,得到所述扩展后消息。
3.根据权利要求2所述的SM3杂凑加密系统,其特征在于,所述第二扩展子模块,包括:
迭代嵌套单元,用于在第k个时钟周期内,利用从预设的迭代值寄存器中提取出的所述第一组迭代过程中的第k个迭代值和第k-4个迭代值,计算所述第二组迭代过程中的第k个迭代值;其中,k为大于4,并且小于或等于68的整数。
4.根据权利要求1所述的SM3杂凑加密系统,其特征在于,所述结果寄存器为256位的寄存器。
5.根据权利要求4所述的SM3杂凑加密系统,其特征在于,
所述加密数据读取模块,具体用于在所述控制模块的控制下,以32位的形式读取并输出保存在所述结果寄存器中的所述杂凑值。
6.根据权利要求1至5任一项所述的SM3杂凑加密系统,其特征在于,所述硬件描述语言为Verilog HDL语言。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611199721.5A CN106533657B (zh) | 2016-12-22 | 2016-12-22 | 一种sm3杂凑加密系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611199721.5A CN106533657B (zh) | 2016-12-22 | 2016-12-22 | 一种sm3杂凑加密系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106533657A CN106533657A (zh) | 2017-03-22 |
CN106533657B true CN106533657B (zh) | 2020-04-28 |
Family
ID=58340761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611199721.5A Active CN106533657B (zh) | 2016-12-22 | 2016-12-22 | 一种sm3杂凑加密系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106533657B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107370594A (zh) * | 2017-08-15 | 2017-11-21 | 广州星海集成电路基地有限公司 | 一种sm3杂凑加密算法多模块实现方法及外部计数器 |
CN113741972B (zh) * | 2021-08-20 | 2023-08-25 | 深圳市风云实业有限公司 | 一种sm3算法的并行处理方法及电子设备 |
CN114095149B (zh) * | 2021-11-12 | 2023-05-30 | 龙芯中科技术股份有限公司 | 信息加密方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716848A (zh) * | 2004-06-14 | 2006-01-04 | 上海安创信息科技有限公司 | 一种硬件快速实现杂凑算法的方法 |
CN104092534A (zh) * | 2014-07-09 | 2014-10-08 | 昆腾微电子股份有限公司 | 实现sm3密码杂凑算法中的迭代压缩的方法 |
-
2016
- 2016-12-22 CN CN201611199721.5A patent/CN106533657B/zh active Active
Non-Patent Citations (4)
Title |
---|
SM3 哈希算法的硬件实现与研究;刘宗斌 等;《第26 次全国计算机安全学术交流会 论文集》;20110915;全文 * |
SM3 杂凑算法的软件快速实现研究;杨先伟 等;《智能系统学报》;20151110;第2.1节 消息扩展的快速实现 * |
SM3杂凑算法的流水线结构硬件实现;蔡冰清 等;《微电子学与计算机》;20150131;参见第16-18页 * |
SM3算法高速ASIC设计及实现;于永鹏 等;《微电子与计算机》;20160405;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106533657A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6804668B2 (ja) | ブロックデータ検証方法および装置 | |
JP7007398B2 (ja) | トランザクション要求を処理するための方法及び装置 | |
EP3758281B1 (en) | Fast xmss signature verification and nonce sampling process without signature expansion | |
WO2015021934A1 (zh) | 一种生成数字签名的方法及装置 | |
US20110179281A1 (en) | Hash function using a quasi-group operation | |
US11240039B2 (en) | Message index aware multi-hash accelerator for post quantum cryptography secure hash-based signing and verification | |
CN101964789B (zh) | 安全访问受保护资源的方法及系统 | |
Wiemer et al. | High-speed implementation of bcrypt password search using special-purpose hardware | |
JP2018511261A (ja) | プルーフオブワークに基づくユーザ識別システム | |
CN106533657B (zh) | 一种sm3杂凑加密系统 | |
WO2013162778A1 (en) | Identity verification | |
KR20070057968A (ko) | 랜덤 함수를 이용한 비밀 공유 | |
CN108881120A (zh) | 一种基于区块链的数据处理方法及设备 | |
EP4152681A1 (en) | Low overhead side channel protection for number theoretic transform | |
US20190319802A1 (en) | Parallel processing techniques for hash-based signature algorithms | |
Pham et al. | A high-efficiency FPGA-based multimode SHA-2 accelerator | |
CN110995410A (zh) | 一种公钥和私钥的生成方法、装置、设备以及介质 | |
CN107291898B (zh) | 基于FPGA的MySQL认证密码恢复系统及其方法 | |
CN116488794A (zh) | 基于fpga的高速sm4密码模组实现方法及装置 | |
CN112052432A (zh) | 终端设备授权方法及装置 | |
US20220131684A1 (en) | Hash algorithm method, hash algorithm circuit, and electronic device | |
CN108846672B (zh) | 个性化地址生成方法、装置、电子设备及存储介质 | |
US20140137211A1 (en) | Apparatus-specific information generation device, apparatus-specific information generation method, terminal apparatus, and authentication system | |
CN110071927B (zh) | 一种信息加密方法、系统及相关组件 | |
KR20210072711A (ko) | 사물인터넷 디바이스와 신뢰 서버 간 상호 인증 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |