CN117714030A - 一种高效sm3国密算法的硬件实现方法及系统 - Google Patents
一种高效sm3国密算法的硬件实现方法及系统 Download PDFInfo
- Publication number
- CN117714030A CN117714030A CN202311707984.2A CN202311707984A CN117714030A CN 117714030 A CN117714030 A CN 117714030A CN 202311707984 A CN202311707984 A CN 202311707984A CN 117714030 A CN117714030 A CN 117714030A
- Authority
- CN
- China
- Prior art keywords
- hardware
- circuit
- compression function
- hash
- pipeline
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000007906 compression Methods 0.000 claims abstract description 38
- 230000006835 compression Effects 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 27
- 238000007781 pre-processing Methods 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 abstract 1
- 238000007792 addition Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
本发明公开了一种高效SM3国密算法的硬件实现方法及系统,硬件实现方法包括以下步骤:步骤一、对SM3算法中压缩函数电路进行流水分段,每一段完成不多于一次加法运算,以提高电路时钟频率;步骤二、将SM3中消息扩展过程电路采用移位寄存器+FIFO进行实现,减少消息扩展过程时钟周期数;步骤三、上述消息压缩函数电路与扩展电路并行工作,进行哈希迭代。硬件系统包括:控制与总线接口模块,用于总线接口通信;哈希处理模块,采用上述硬件电路对原始数据进行哈希迭代运算。本发明采用流水处理可以对三组原始数据进行并行处理,其处理性能为现有电路的三倍;由于压缩函数电路与消息扩展电路可以并行处理,有效地提高了SM3哈希效率。
Description
技术领域
本发明属于计算机安全算法领域,具体涉及一种高效SM3国密算法的硬件实现方法。
背景技术
国密算法即国家密码局认定的国产密码算法,是我国具有自主知识产权的密码算法集。与国际标准密码算法具有完整高效的软硬件实现比较,国密算法的硬件实现效率较低。
SM3算法是国密算法中的单向哈希算法,其主要过程是对长度l<264比特的消息,经过填充和迭代压缩后,生成长度为256位的杂凑值。
国密标准算法描述中,经过填充后512bit对齐的消息,每组512位数据需要经过压缩函数和消息扩展两个过程,其中:
消息扩展过程分别通过52次循环和64次循环,生成压缩过程所需的Wj和Wj’数组。
压缩函数过程经过64次循环完成512位数据的哈希过程。
依据标准算法描述,现有硬件实现采用先计算消息扩展数组,再进行压缩函数哈希的过程。该硬件实现存在两个缺点:
首先,硬件需要116个时钟周期完成消息扩展,需要64个时钟周期完成压缩函数中的哈希过程。总共需要180个时钟周期完成一个512位数据的哈希计算。
其次,压缩函数中设计多次的循环移位、逻辑运算与32位加法运算。其中,即使采用先行进位等优化算法,加法运算仍然存在较大的进位延迟,32位加法器的延迟显著高于循环移位与逻辑运算。通过分析发现,压缩函数中电路的关键路径存在最多3个加法运算,导致现有压缩函数的实现计算延迟较大,电路时钟频率较低。
发明内容
本发明目的在于减少SM3硬件电路的循环次数的同时提高电路的时钟周期,从而有效提高SM3硬件的处理效率。通过压缩函数与消息扩展电路的并行处理,减少循环次数;通过采用流水架构设计压缩函数计算过程,将压缩函数分为三级硬件流水,每一级流水最多处理一次32位加法。提高电路时钟频率3倍,处理效率提高3倍。
为了实现上述目的,本发明有如下的技术方案:
一种高效SM3国密算法的硬件实现方法,包括以下步骤:
步骤一、对SM3算法的压缩函数采用多级硬件流水处理架构,硬件每级处理的32位加法运算不多于一个;
步骤二、采用移位寄存器+FIFO架构完成消息扩展;
步骤三、流水压缩函数硬件和消息扩展硬件并行工作,完成多路数据的压缩函数循环。
作为本发明高效SM3国密算法的硬件实现方法的一种优选方案,步骤一将采用三级流水架构实现SM3算法中的压缩函数。流水硬件中的每一级最多存在一个加法运算,这样算法关键路径中的三次加法可以分散在三级硬件中。采用三级流水架构后,硬件时钟频率可以提高3倍。虽然每组512bit的数据的需要经过三个时钟周期,处理时间不变,但是硬件可以支持3组不同的数据同时进行压缩,处理效率提高3倍。
作为本发明高效SM3国密算法的硬件实现方法的一种优选方案,采用移位寄存器+FIFO架构完成消息扩展。现有方式采用寄存器数组的方法需要单独的消息扩展过程,需要额外的116个时钟周期。该方法通过移位寄存器生成Wj,通过FIFO+组合逻辑生成Wj’,两部分电路并行工作,总共需要64个时钟周期。
作为本发明高效SM3国密算法的硬件实现方法的一种优选方案,多级硬件流水的压缩函数电路和移位寄存器+FIFO消息扩展电路并行工作,每组512bit数据的哈希需要64个时钟周期。
本发明还提供一种高效SM3国密算法的硬件系统,包括:
控制与总线接口模块,用于从总线接收主模块发送的原始数据,对数据进行填充预处理,向主模块发送哈希结果;
哈希处理模块,采用上述硬件电路对原始数据进行哈希迭代运算。
相较于现有技术,本发明具有如下的有益效果:通过压缩函数与消息扩展电路的并行处理,循环次数从原有180个时钟周期降低为64个时钟周期;通过采用流水架构设计压缩函数计算过程,将压缩函数分为三级硬件流水,每一级流水最多处理一次32位加法。提高电路时钟频率3倍,由于流水硬件电路可以同时3组数据在不同阶段进行并行处理,处理效率提高3倍。
附图说明
图1实施例1压缩函数过程的三级流水处理架构;
图2实施例2基于移位寄存器+FIFO的Wj和Wj’生成电路;
具体实施方式
下面结合附图对本发明做进一步的详细说明。
本发明提出一种高效SM3国密算法的硬件实现方法,通过压缩函数与消息扩展电路的并行处理,减少循环次数;通过采用流水架构设计压缩函数计算过程,将压缩函数分为三级硬件流水,每一级流水最多处理一次32位加法。提高电路时钟频率3倍,处理效率提高3倍。
一种高效SM3国密算法的硬件实现方法,包括以下步骤:
步骤一、对SM3算法的压缩函数采用多级硬件流水处理架构,硬件每级处理的32位加法运算不多于一个。
采用三级流水架构实现SM3算法中的压缩函数。流水硬件中的每一级最多存在一个加法运算,这样算法关键路径中的三次加法可以分散在三级硬件中。采用三级流水架构后,硬件时钟频率可以提高3倍。虽然每组512bit的数据的需要经过三个时钟周期,处理时间不变,但是硬件可以支持3组不同的数据同时进行压缩,处理效率提高3倍。
步骤二、采用移位寄存器+FIFO架构完成消息扩展。
采用移位寄存器+FIFO架构完成消息扩展。现有方式采用寄存器数组的方法需要单独的消息扩展过程,需要额外的116个时钟周期。该方法通过移位寄存器生成Wj,通过FIFO+组合逻辑生成Wj’,两部分电路并行工作,总共需要64个时钟周期。
步骤三、流水压缩函数硬件和消息扩展硬件并行工作,完成多路数据的压缩函数循环。
多级硬件流水的压缩函数电路和移位寄存器+FIFO消息扩展电路并行工作,每组512bit数据的哈希需要64个时钟周期。
本发明所提方法从减少硬件处理时钟周期数和提高硬件时钟频率两个方面设计优化了SM3的硬件电路,有效提高硬件处理SM3的效率。
本发明还提供一种高效SM3国密算法的硬件系统,包括:
控制与总线接口模块,用于从总线接收主模块发送的原始数据,对数据进行填充预处理,向主模块发送哈希结果;
哈希处理模块,采用上述硬件电路对原始数据进行哈希迭代运算。
参见图1和图2,本发明通过三级流水处理架构,提高硬件主频3倍,由于流水硬件不同阶段硬件可以处理不同数据,处理效率提高3倍。本发明通过基于移位寄存器+FIFO方式实现消息扩展电路,使得消息扩展电路可以和压缩函数电路并行工作,有效降低SM3算法的循环次数,减少硬件时钟周期数,提高硬件处理效率。
以上所述的仅仅是本发明的较佳实施例,并不用以对本发明的技术方案进行任何限制,本领域技术人员应当理解的是,在不脱离本发明精神和原则的前提下,该技术方案还可以进行若干简单的修改和替换,这些修改和替换也均属于权利要求书所涵盖的保护范围之内。
Claims (5)
1.一种高效SM3国密算法的硬件实现方法,其特征在于采用多级硬件流水架构实现算法中的压缩函数,提高硬件时钟频率和数据哈希吞吐量;采用移位器+FIFO架构实现消息扩展,使得压缩函数电路与消息扩展电路的并行处理,包括以下步骤:
步骤一、对SM3算法的压缩函数采用多级硬件流水处理架构,硬件每级处理的32位加法运算不多于一个;
步骤二、采用移位寄存器+FIFO架构完成消息扩展;
步骤三、流水压缩函数硬件和消息扩展硬件并行工作,完成多路数据的压缩函数循环。
2.根据权利要求1所述一种高效SM3国密算法的硬件实现方法,其特征在于:采用硬件流水架构实现算法压缩函数部分,硬件流水每一级处理的32位加法运算不多于一个。
3.根据权利要求1所述一种高效SM3国密算法的硬件实现方法,其特征在于:采用移位寄存器方式+FIFO方式实现消息扩展过程,每个时钟周期生成1个Wj和1个Wj ’。
4.根据权利要求1所述一种高效SM3国密算法的硬件实现方法,其特征在于:压缩函数电路与消息扩展电路并行执行。
5.一种高效SM3国密算法的硬件系统,其特征在于,包括:
控制与总线接口模块,用于从总线接收主模块发送的原始数据,对数据进行填充预处理,向主模块发送哈希结果;
哈希处理模块,采用上述硬件电路对原始数据进行哈希迭代运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311707984.2A CN117714030A (zh) | 2023-12-13 | 2023-12-13 | 一种高效sm3国密算法的硬件实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311707984.2A CN117714030A (zh) | 2023-12-13 | 2023-12-13 | 一种高效sm3国密算法的硬件实现方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117714030A true CN117714030A (zh) | 2024-03-15 |
Family
ID=90158266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311707984.2A Pending CN117714030A (zh) | 2023-12-13 | 2023-12-13 | 一种高效sm3国密算法的硬件实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117714030A (zh) |
-
2023
- 2023-12-13 CN CN202311707984.2A patent/CN117714030A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111464308A (zh) | 一种实现多种哈希算法可重构的方法和系统 | |
Broscius et al. | Exploiting parallelism in hardware implementation of the DES | |
WO2009046534A1 (en) | Methods and apparatuses of mathematical processing | |
CN110059493B (zh) | 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统 | |
EP1766854A1 (en) | Apparatus and method for performing md5 digesting | |
Jeong et al. | Implementation of efficient SHA-256 hash algorithm for secure vehicle communication using FPGA | |
Mohan et al. | ASIC accelerator in 28 nm for the post-quantum digital signature scheme XMSS | |
Yan et al. | A novel scheme for real-time max/min-set-selection sorters on FPGA | |
CN101304312A (zh) | 一种适用于精简指令集处理器的加密单元 | |
CN117714030A (zh) | 一种高效sm3国密算法的硬件实现方法及系统 | |
CN114826560B (zh) | 一种轻量级分组密码cref实现方法及系统 | |
Lee et al. | Implementation of high-speed SHA-1 architecture | |
Hu et al. | Low-power reconfigurable architecture of elliptic curve cryptography for IoT | |
CN114553424A (zh) | Zuc-256流密码轻量级硬件系统 | |
Ying et al. | Area optimization of MPRM circuits using approximate computing | |
Jelodari et al. | An O (1) time complexity sorting network for small number of inputs with hardware implementation | |
Bai et al. | Design of 128-bit Kogge-Stone low power parallel prefix VLSI adder for high speed arithmetic circuits | |
CN110113170B (zh) | 一种sha256值生成系统 | |
Anagha et al. | Power and area efficient carry select adder | |
Yoon et al. | Multi-processor based CRC computation scheme for high-speed wireless LAN design | |
JP2002287635A (ja) | Sha演算の高速演算回路 | |
CN117560140A (zh) | 一种基于risc-v的sm3密码算法优化方法 | |
US10965467B1 (en) | Reversible hash generators for pairs of complementary sequences | |
CN113225185B (zh) | 一种基于哈希后量子签名的密钥生成硬件加速架构及方法 | |
CN113691363B (zh) | 一种aes&sm4可重构掩码s盒硬件电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |