CN106603222A - 一种用于实现sm3杂凑算法的系统及sm3杂凑算法实现方法 - Google Patents
一种用于实现sm3杂凑算法的系统及sm3杂凑算法实现方法 Download PDFInfo
- Publication number
- CN106603222A CN106603222A CN201610879474.7A CN201610879474A CN106603222A CN 106603222 A CN106603222 A CN 106603222A CN 201610879474 A CN201610879474 A CN 201610879474A CN 106603222 A CN106603222 A CN 106603222A
- Authority
- CN
- China
- Prior art keywords
- circuit
- realizing
- arithmetic unit
- input
- word
- 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
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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种用于实现SM3杂凑算法的系统及SM3杂凑算法实现方法,其包括控制部分、输入输出部分和运算部分,控制部分包括同步电路的时钟信号输入装置、同步使能信号输入装置和异步复位信号的输入装置,输入输出部分包括系统核心运算装置和外围电路的数据流交互装置,运算部分包括消息扩展运算装置和迭代压缩运算装置,消息扩展运算装置包括扩展字和的逻辑生成电路,迭代压缩运算装置包括常量变移位数左循环移位电路、和布尔函数实现电路、中间变量SS1SS2TT1TT2实现电路、置换函数P0 实现电路和寄存器操作电路。本发明提供了的系统结构简单,性能稳定,减少寄存器和逻辑单元的开销,其实现方法运行速度和数据吞吐率的速度快。
Description
技术领域
本发明涉及信息加密技术领域,尤其是涉及一种用于实现SM3杂凑算法的系统及SM3杂凑算法实现方法。
背景技术
杂凑算法是在加解密运算中非常重要的不可逆运算,受到各国密码管理机构的重视。这种算法的基本内涵是针对长度任意的message消息进行特定的运算,该运算最终将输出长度恒定的杂凑值。杂凑算法的操作步骤是不需要保密。一旦输入有及其细微的变化,其输出的杂凑值的改变也是非常彻底的,这种“雪崩效应”将使得不同输入产生杂凑值输出相同的几率降到该碰撞被认可为不可能事件的阈值。美国的SHA-256算法等标准早已制定完成,而我国国产杂凑算法SM3也于2010年底由国密办正式颁布。但在当前数据量庞大、处理实时的应用背景下,传统的软件杂凑算法操作越来越无法达到用户所需要的算法实现速度和效率。
在当前大数据处理、实时应用处理的时代,传统基于x86计算机的串行软件杂凑算法已无法满足特定场合和环境下用户所期望的算法实现速度和效率。因此探究高性能硬件平台来实现高速低资源的杂凑算法就十分必要。
发明内容
针对以上问题,本发明提供了一种用于实现SM3杂凑算法的系统及SM3杂凑算法实现方法,该系统结构简单,性能稳定,减少寄存器和逻辑单元的开销,其实现方法运行速度和数据吞吐率的速度快。
具体技术内容为:一种用于实现SM3杂凑算法的系统,其包括控制部分、输入输出部分和运算部分,控制部分包括同步电路的时钟信号输入装置、同步使能信号输入装置和异步复位信号的输入装置,输入输出部分包括系统核心运算装置和外围电路的数据流交互装置,运算部分包括消息扩展运算装置和迭代压缩运算装置,消息扩展运算装置包括扩展字Wj和W′j的逻辑生成电路,迭代压缩运算装置包括常量Tj变移位数左循环移位电路、FFj和GGj布尔函数实现电路、中间变量SS1SS2TT1TT2实现电路、置换函数P0P1实现电路和寄存器操作电路。
所述输入输出部分包含双向的数据和地址线。
所述系统核心运算装置内设置有ARM串行嵌入式芯片。
SM3杂凑算法的实现方法为,将文字符串首先通过ARM串行嵌入式芯片进行消息分组和填充,ARM串行嵌入式芯片通过符合某些标准接口的数据总线将512比特数据送入运算部分内,外围电路的数据流交互装置将执行运算部分的同步电路的时钟信号和同异步复位信号的控制量的操作,当运算部分中的运算完成信号发出后,ARM串行嵌入式芯片将读取运算部分运算生成的256比特杂凑值,所述消息扩展运算装置在进行分组扩展逻辑设计时,SM3杂凑算法中的w和wpie字扩展寄存器有132个,不断更新w和wpie字扩展寄存器,使得132个字扩展值可以只在若干个reg型变量实现,通过复用的方式减少寄存器和逻辑单元的开销,所述迭代压缩运算装置在进行迭代压缩逻辑设计时,Tj变移位数左循环移位电路采用2个32比特寄存器实现常量读写,每个时钟周期左移一位,所述FFj和GGj布尔函数实现电路通过三目运算符实现前j∈[0,15]迭代与后j∈[16,63]迭代计算式不同,中间变量和字寄存器通过多增加一个辅助变量,实现赋值与更新。
w字扩展寄存器的值为大移位寄存器的左端w0,wpie字扩展寄存器的值始终为w0和w4的异或,随着大移位寄存器的宏观左移,w和wpie的字扩展寄存器不断更新,通过复用的方式减少寄存器和逻辑单元的开销。
采用了32比特宽度的数据线进行数据输入输出,包括核心运算的66个时钟节和16个节拍进行输入,8个节拍进行输出。
由于采取了上述技术方案,与现有技术相比,本发明的优点:
该系统结构简单,性能稳定,减少寄存器和逻辑单元的开销,其实现方法运行速度和数据吞吐率的速度快,该系统通过改变算法的迭代方式,加入寄存器用以进行流水线操作等手段,分别实现了资源和运行速度的最优,运算部分的可编程特性、可通过基本逻辑门电路组合成相应的计算表达式、可通过寄存器等逻辑单元实现流水线操作等特性,都使得其十分适合作为杂凑算法的高性能硬件实现平台。运算部分的并行操作特性,这种并行操作特性十分适用于杂凑算法中繁多的扩展和混淆运算,通过各种改进的电路结构,如扩展字Wj和W′j的逻辑生成电路,迭代压缩运算装置包括常量Tj变移位数左循环移位电路、FFj和GGj布尔函数实现电路、中间变量SS1SS2TT1TT2实现电路、置换函数P0P1实现电路和寄存器操作电路,实现中单一的运算操作。比如SM3算法中的关键路径加法,就可以采用超前进位加法器等改进加法结构来提高运算速度并降低占用资源。
附图说明
下面结合附图和实施例对本发明作进一步描述。
附图1为本发明系统架构示意图;
附图2为本发明数据交互示意图;
附图3为本发明资源最优版本字扩展逻辑图;
附图4为本发明速度最优版本流水线实现示意图;
附图5为本发明资源和速度指标最优版本硬件实现对比数据。
具体实施方式
以下对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
具体实施如下;如图1所示,一种用于实现SM3杂凑算法的系统,其包括控制部分、输入输出部分和运算部分,控制部分包括同步电路的时钟信号输入装置、同步使能信号输入装置和异步复位信号的输入装置,输入输出部分包括系统核心运算装置和外围电路的数据流交互装置,运算部分包括消息扩展运算装置和迭代压缩运算装置,消息扩展运算装置包括扩展字Wj和W′j的逻辑生成电路,迭代压缩运算装置包括常量Tj变移位数左循环移位电路、FFj和GGj布尔函数实现电路、中间变量SS1SS2TT1TT2实现电路、置换函数P0P1实现电路和寄存器操作电路。
所述输入输出部分包含双向的数据和地址线。
所述系统核心运算装置内设置有ARM串行嵌入式芯片。
如图2所示,SM3杂凑算法的实现方法为,将文字符串首先通过ARM串行嵌入式芯片进行消息分组和填充,ARM串行嵌入式芯片通过符合某些标准接口的数据总线将512比特数据送入运算部分内,外围电路的数据流交互装置将执行运算部分的同步电路的时钟信号和同异步复位信号的控制量的操作,当运算部分中的运算完成信号发出后,ARM串行嵌入式芯片将读取运算部分运算生成的256比特杂凑值,所述消息扩展运算装置在进行分组扩展逻辑设计时,SM3杂凑算法中的w和wpie字扩展寄存器有132个,不断更新w和wpie字扩展寄存器,使得132个字扩展值可以只在若干个reg型变量实现,通过复用的方式减少寄存器和逻辑单元的开销,所述迭代压缩运算装置在进行迭代压缩逻辑设计时,Tj变移位数左循环移位电路采用2个32比特寄存器实现常量读写,每个时钟周期左移一位,所述FFj和GGj布尔函数实现电路通过三目运算符实现前j∈[0,15]迭代与后j∈[16,63]迭代计算式不同,中间变量和字寄存器通过多增加一个辅助变量,实现赋值与更新。
如图3所示,w字扩展寄存器的值为大移位寄存器的左端w0,wpie字扩展寄存器的值始终为w0和w4的异或,随着大移位寄存器的宏观左移,w和wpie的字扩展寄存器不断更新,通过复用的方式减少寄存器和逻辑单元的开销。
采用了32比特宽度的数据线进行数据输入输出,包括核心运算的66个时钟节和16个节拍进行输入,8个节拍进行输出。
如图4所示,采用流水线结构提高运算速度,流水线操作就是将多个操作步骤的输入输出连接起来,使得多个操作步骤同时、并行执行,每个时钟节拍都有64个子模块同时运算,当经过第一次64个时钟节拍的潜伏时间(假设无输入节拍损耗),计算好的杂凑值将会源源不断的从端口输出,使得整个硬件实现的吞吐率得到大大的提高。
图5为资源和速度指标最优版本硬件实现对比数据,与其他的数据相比,数据吞吐率大大提高。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (6)
1.一种用于实现SM3杂凑算法的系统,其特征在于:包括控制部分、输入输出部分和运算部分,控制部分包括同步电路的时钟信号输入装置、同步使能信号输入装置和异步复位信号的输入装置,输入输出部分包括系统核心运算装置和外围电路的数据流交互装置,运算部分包括消息扩展运算装置和迭代压缩运算装置,消息扩展运算装置包括扩展字Wj和W′j的逻辑生成电路,迭代压缩运算装置包括常量Tj变移位数左循环移位电路、FFj和GGj布尔函数实现电路、中间变量SS1SS2TT1TT2实现电路、置换函数P0P1实现电路和寄存器操作电路。
2.根据权利要求1所述的一种用于实现SM3杂凑算法的系统,其特征在于:所述输入输出部分包含双向的数据和地址线。
3.根据权利要求1所述的一种用于实现SM3杂凑算法的系统,其特征在于:所述系统核心运算装置内设置有ARM串行嵌入式芯片。
4.根据权利要求1所述的一种SM3杂凑算法的实现方法,其特征在于:将文字符串首先通过ARM串行嵌入式芯片进行消息分组和填充,ARM串行嵌入式芯片通过符合某些标准接口的数据总线将512比特数据送入运算部分内,外围电路的数据流交互装置将执行运算部分的同步电路的时钟信号和同异步复位信号的控制量的操作,当运算部分中的运算完成信号发出后,ARM串行嵌入式芯片将读取运算部分运算生成的256比特杂凑值,所述消息扩展运算装置在进行分组扩展逻辑设计时,SM3杂凑算法中的w和wpie字扩展寄存器有132个,不断更新w和wpie字扩展寄存器,使得132个字扩展值可以只在若干个reg型变量实现,通过复用的方式减少寄存器和逻辑单元的开销,所述迭代压缩运算装置在进行迭代压缩逻辑设计时,Tj变移位数左循环移位电路采用2个32比特寄存器实现常量读写,每个时钟周期左移一位,所述FFj和GGj布尔函数实现电路通过三目运算符实现前j∈[0.15]迭代与后j∈[16.63]迭代计算式不同,中间变量和字寄存器通过多增加一个辅助变量,实现赋值与更新。
5.根据权利要求5所述的一种SM3杂凑算法的实现方法,其特征在于:w字扩展寄存器的值为大移位寄存器的左端w0,wpie字扩展寄存器的值始终为w0和w4的异或,随着大移位寄存器的宏观左移,w和wpie的字扩展寄存器不断更新,通过复用的方式减少寄存器和逻辑单元的开销。
6.根据权利要求5所述的一种SM3杂凑算法的实现方法,其特征在于:采用了32比特宽度的数据线进行数据输入输出,包括核心运算的66个时钟节和16个节拍进行输入,8个节拍进行输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610879474.7A CN106603222A (zh) | 2016-09-27 | 2016-09-27 | 一种用于实现sm3杂凑算法的系统及sm3杂凑算法实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610879474.7A CN106603222A (zh) | 2016-09-27 | 2016-09-27 | 一种用于实现sm3杂凑算法的系统及sm3杂凑算法实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106603222A true CN106603222A (zh) | 2017-04-26 |
Family
ID=58555899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610879474.7A Pending CN106603222A (zh) | 2016-09-27 | 2016-09-27 | 一种用于实现sm3杂凑算法的系统及sm3杂凑算法实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106603222A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107579811A (zh) * | 2017-07-28 | 2018-01-12 | 广州星海集成电路基地有限公司 | 一种基于sm3密码杂凑算法的硬件优化方法 |
CN110086602A (zh) * | 2019-04-16 | 2019-08-02 | 上海交通大学 | 基于gpu的sm3密码散列算法的快速实现方法 |
CN111159784A (zh) * | 2019-12-17 | 2020-05-15 | 飞天诚信科技股份有限公司 | 一种在芯片中防差分功率分析攻击的实现方法及装置 |
CN112202546A (zh) * | 2020-09-29 | 2021-01-08 | 山东华翼微电子技术股份有限公司 | Sm3密码杂凑算法消息扩展串行优化系统与方法 |
CN113630236A (zh) * | 2021-07-21 | 2021-11-09 | 浪潮电子信息产业股份有限公司 | 一种sm3的数据加密方法及相关装置 |
CN113794552A (zh) * | 2021-09-14 | 2021-12-14 | 山东省计算中心(国家超级计算济南中心) | 一种基于simd的sm3并行数据加密运算方法及系统 |
CN116318660A (zh) * | 2023-01-12 | 2023-06-23 | 成都海泰方圆科技有限公司 | 一种消息扩展与压缩方法及相关装置 |
-
2016
- 2016-09-27 CN CN201610879474.7A patent/CN106603222A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107579811A (zh) * | 2017-07-28 | 2018-01-12 | 广州星海集成电路基地有限公司 | 一种基于sm3密码杂凑算法的硬件优化方法 |
CN110086602A (zh) * | 2019-04-16 | 2019-08-02 | 上海交通大学 | 基于gpu的sm3密码散列算法的快速实现方法 |
CN111159784A (zh) * | 2019-12-17 | 2020-05-15 | 飞天诚信科技股份有限公司 | 一种在芯片中防差分功率分析攻击的实现方法及装置 |
CN111159784B (zh) * | 2019-12-17 | 2022-02-01 | 飞天诚信科技股份有限公司 | 一种在芯片中防差分功率分析攻击的实现方法及装置 |
CN112202546A (zh) * | 2020-09-29 | 2021-01-08 | 山东华翼微电子技术股份有限公司 | Sm3密码杂凑算法消息扩展串行优化系统与方法 |
CN112202546B (zh) * | 2020-09-29 | 2023-06-23 | 山东华翼微电子技术股份有限公司 | Sm3密码杂凑算法消息扩展串行优化系统与方法 |
CN113630236A (zh) * | 2021-07-21 | 2021-11-09 | 浪潮电子信息产业股份有限公司 | 一种sm3的数据加密方法及相关装置 |
CN113794552A (zh) * | 2021-09-14 | 2021-12-14 | 山东省计算中心(国家超级计算济南中心) | 一种基于simd的sm3并行数据加密运算方法及系统 |
CN113794552B (zh) * | 2021-09-14 | 2023-07-07 | 山东省计算中心(国家超级计算济南中心) | 一种基于simd的sm3并行数据加密运算方法及系统 |
CN116318660A (zh) * | 2023-01-12 | 2023-06-23 | 成都海泰方圆科技有限公司 | 一种消息扩展与压缩方法及相关装置 |
CN116318660B (zh) * | 2023-01-12 | 2023-12-08 | 成都海泰方圆科技有限公司 | 一种消息扩展与压缩方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106603222A (zh) | 一种用于实现sm3杂凑算法的系统及sm3杂凑算法实现方法 | |
Sun et al. | MILP‐aided bit‐based division property for primitives with non‐bit‐permutation linear layers | |
CN105912501B (zh) | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 | |
CN103905182B (zh) | 基于动态改变中间数据存储位置的抗攻击方法及电路实现 | |
CN103049709B (zh) | 基于生成元扩展彩虹表的密码恢复系统及其恢复方法 | |
Mane et al. | High speed area efficient FPGA implementation of AES algorithm | |
CN104123503B (zh) | Sat问题求解外包过程中的cnf公式数据保护方法 | |
CN108304918A (zh) | 一种数据并行的深度学习的参数交换方法和系统 | |
CN105335331A (zh) | 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统 | |
CN115714644B (zh) | 一种随机数生成方法及装置 | |
CN113078996A (zh) | Sm4密码算法的fpga优化实现方法、系统及应用 | |
Li et al. | Automatic preimage attack framework on ascon using a linearize-and-guess approach | |
CN106850189A (zh) | 一种减少sm3密码杂凑算法中运算量的方法及装置 | |
Morrison et al. | A novel optimization method for reversible logic circuit minimization | |
CN105933120A (zh) | 一种基于Spark平台的口令哈希值恢复方法和装置 | |
CN106385260B (zh) | 一种基于低延时的lz无损压缩算法的fpga实现系统 | |
CN107612891A (zh) | 一种数据压缩加密电路 | |
CN103260154B (zh) | 一种基于128-eia3的完整性保护增强方法 | |
CN107707351A (zh) | 基于logistic映射的嵌入式加密方法 | |
CN109510699B (zh) | 一种六维离散超混沌系统及六维离散超混沌信号发生器 | |
Vaziri et al. | Highly efficient implementation of chaotic systems utilizing high-level synthesis tools | |
CN104199635B (zh) | 集成crc校验电路的伪随机数发生器 | |
Lee et al. | Live demonstration: An FPGA based hardware compression accelerator for Hadoop system | |
Soboń et al. | Complete SAT based cryptanalysis of RC5 cipher | |
CN103401684B (zh) | 一种多参数三维数字加密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170426 |