-
大小: 6KB文件类型: .rar金币: 2下载: 0 次发布日期: 2021-05-29
- 语言: 其他
- 标签: SM3 verilogHDL
资源简介
SM3的一种verilogHDL实现,包括testbench测试文件。SM3是国家密码管理局编制的商用算法,用于密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。

代码片段和文件信息
/***************************************************************************
* File name : SM3c.c
* Function : SM3 function
* Author :
* Date : 2011/03/
* Version : v1.0
* Description :
* ModifyRecord :
****************************************************************************/
#include “HDR\AS5xx_Device.h“
#include “SM3.h“
static void SM3Transform(UINT32 stateIV[8] UINT32 T[64] UINT8 block[64]);
static void Extend(UINT32 *outputUINT32 *output1UINT32 *inputUINT32 len);
static void Encode(UINT8 *outputUINT32 *inputUINT32 len);
static void Decode(UINT32 *outputUINT8 *inputUINT32 len);
static UINT8 PADDING[64] = {
0x80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
};
/* ROTATE_LEFT rotates x left n bits.
*/
#define ROTATE_LEFT(x n) (((x) << (n)) | ((x) >> (32-(n))))
/*Substi_P0Substi_P1Bool_FF and Bool_GG are basic SM3 functions.
*/
#define Substi_P0(x) ((x) ^ ROTATE_LEFT((x) 9) ^ ROTATE_LEFT((x) 17))
#define Substi_P1(x) ((x) ^ ROTATE_LEFT((x) 15) ^ ROTATE_LEFT((x) 23))
#define Bool_FF(x y z j) ((j) < 16) ? ((x) ^ (y) ^ (z)) : (((x) & (y)) | ((x) & (z)) | ((y) & (z)))
#define Bool_GG(x y z j) ((j) < 16) ? ((x) ^ (y) ^ (z)) : ((x) & (y) | ((0xffffffff^x) & (z)))
/* SS1SS2TT1 and TT2 are the transform functions for the SM3 algorithm
be using to generate intervening variables ss1ss2tt1tt2.
#define SS1(a b t j) {\
UINT32 s1 = ROTATE_LEFT(a 12) + b + ROTATE_LEFT(t j);\
s1 = ROTATE_LEFT(s1 7);\
return s1;\
}
#define SS2(a b) {\
(UINT32) s2 = a ^ ROTATE_LEFT(b 12);\
return s2;\
}
#define TT1(a b c d x w1 j) {\
(UINT32) t1 = Bool_FF(a b c j) + d + x + w1[j];\
return t1;\
}
#define TT2(a b c d x w j) {\
(UINT32) t2 = Bool_GG(a b c j) + d + x + w[j];\
return t2;\
}
*/
/***************************************************************************
* Subroutine: SM3_Init
* Function: SM3 initialization. Begins an SM3 operation writing a new context.
* Input: context-SM3 Context struct
* Output: None;
* Description:
* Date: 2011.03.
* ModifyRecord:
* *************************************************************************/
void SM3_Init (SM3_CONTEXT *context)
{
context->count[0] = context->count[1] = 0;
/* Load magic initialization constants.
*/
context->stateIV[0] = 0x7380166f;
context->stateIV[1] = 0x4914b2b9;
context->stateIV[2] = 0x172442d7;
context->stateIV[3] = 0xda8a0600;
context->stateIV[4] = 0xa96f30bc;
context->stateIV[5] = 0x163138aa;
context->stateIV[6] = 0xe38dee4d;
context->stateIV[7] = 0xb0fb0e4e;
/* Load initial constant list T.
*/
for (UINT16 j=0;j<=15;j++)
{
context->T[
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 913 2011-03-10 15:38 SM3.h
文件 9487 2011-03-15 10:08 SM3.c
文件 3769 2013-06-07 16:38 test_SM3.v
文件 16233 2013-05-07 16:31 SM3.v
----------- --------- ---------- ----- ----
30402 4
- 上一篇:cesium跨域加载问题
- 下一篇:基于AD采集的电容触摸按键
相关资源
- ILASM32位 + 64位
- 慧荣SM32X_K0530量产工具
- 慧荣Test_SM32x_H0229汉化版
- 国密SM3算法Delphi实现
- Delphi 版 SM3 SM4加解密
- SM2_SM3_SM4计算常用工具
- 详细讲解fpga硬件电路设计设计方法进
- 基于SM32F103C8T6的环境传感器
- FPGA蜂鸣器播放音乐
- 商密SM4-SM3-SM2FPGA实现源码.rar
- 国密SM2 / SM3 / SM4 / SM9 / ZUC算法的官方
- Radasm中文版安装包
- 国密算法SM2 SM3 SM4相关算法及推荐参数
- LSM303DLH 中文pdf (磁力计+ 线性加速
- iOS国密demoSM2 SM3 SM4 ZUC EEA3 EIA3
- 国密算法SM3验证与SM4文件加密工具C
- verilog hdl语言简易十进制计算器
- quartus ii verilog hdl 正弦信号发生器
- NIOSII那些事儿 REV7.0_完整版
- NIITsm3在线考试切图有答案
- 慧荣SM3267ABS(USB3.0)量产工具.rar
- Star_SM3281series_T0702.rar
- 慧荣SM3257ENBB量产工具
- 数字电路设计与VerilogHDL.pdf
- verilog hdl vhdl实用100个 quartus 2 仿真 源
- 用VerilogHDL语言编写的基于FBGA的四位数
- 美国NVE SM324巨磁阻非接触式智能电流
- 国密算法SM系列
- VerilogHDL语言单时钟周期CPU设计
- 基于Verilog HDL数字频率计的设计与实现
评论
共有 条评论