SM3算法】的更多相关文章

什么是sm3,是一种类似于sha256的哈希算法,是咱们国家的哈希标准算法: 最近在使用sm3算法时,同样的一份数据,调用同样的sm3接口,发现得到的结果是不一样的: 那么在应用过的过程中,如果同样的算法出的结果不一样,那验证签名业务就会不过,出问题: 最后发现是sm3算法在内部使用了unsigned long, 这里要注意 long, 在 windows64平台下占用4个字节 : 而long, 在linux64平台下占用8个字节: 这种差异直接导致了windows和linux结果的差异: 原s…
/* * sm3.h * * 为使此算法兼容32位.64位下Linux或Windows系统, * 选择 int 来表示 32 位整数. * 消息长度最大限定为 2**32 - 1(单位:比特), * 且为 8 的倍数(消息的最小单元为字节). */ #ifndef _SM3_H_ #define _SM3_H_ /* * SM3算法产生的哈希值大小(单位:字节) */ #define SM3_HASH_SIZE 32 /* * SM3上下文 */ typedef struct SM3Contex…
转自:https://blog.csdn.net/hugewaves/article/details/53765063 SM3算法也是一种哈希算法,中国国家密码管理局在2010年发布,其名称是SM3密码杂凑算法,密码管理局有该算法的详细说明,可以到其网站下载.本文只是简单的介绍这个算法,便于理解. 1.算法的本质 给数据加一个固定长度的指纹,这个固定长度就是256比特. 2.处理过程 第一步:填充,使填充后的数据的长度是512的整数倍 先在数据的最尾巴上加一个1:然后把原始数据的长度用64比特表…
国密即国家密码局认定的国产密码算法.主要有SM1,SM2,SM3,SM4.密钥长度和分组长度均为128位. SM1 为对称加密.其加密强度与AES相当.该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用. SM2为非对称加密,基于ECC.该算法已公开.由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA.ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA. SM3 消息摘要.可以用MD5作为对比理解.该算法已公开.校验结…
SM3密码杂凑算法基础学习 术语与定义 1 比特串bit string 由0和1组成的二进制数字序列. 2 大端big-endian 数据在内存中的一种表示格式,规定左边为高有效位,右边为低有效位.数的高阶字节放在存储器的低地址,数的低阶字节放在存储器的高地址. 3 消息message 任意有限长度的比特串.本文本中消息作为杂凑算法的输入数据. 4 杂凑值hash value 杂凑算法作用于消息后输出的特定长度的比特串.本文本中的杂凑值长度为256比特. 5 字word 长度为32的比特串 符号…
openssl简单介绍 openssl是一个功能丰富且自包括的开源安全工具箱.它提供的主要功能有:SSL协议实现(包括SSLv2.SSLv3和TLSv1).大量软算法(对称/非对称/摘要).大数运算.非对称算法密钥生成.ASN.1编解码库.证书请求(PKCS10)编解码.数字证书编解码.CRL编解码.OCSP协议.数字证书验证.PKCS7标准实现和PKCS12个人数字证书格式实现等功能. openssl採用C语言作为开发语言,这使得它具有优秀的跨平台性能.openssl支持Linux.UNIX.…
AES是美国国家标准技术研究所NIST旨在代替DES的21世纪的加密标准. 输入:128bit 的消息分组 输出:128bit 的密文分组 密钥长度及圈数 128 10 192 12 256 14 消息 与 密钥 addroundkey//加入轮密钥  每一个字节与轮密钥的相应字节进行异或运算 subbytes//  字替代  经过s盒,即对每一个字节进行替换.非线性部件.16个字节採用同样的s-盒 shiftrow//  行变换   每一行按字节循环以为.第一行移动0位,第二行<<<1…
<基于Arm实验箱的国密算法应用>课程设计 结题报告 小组成员姓名:20155206赵飞 20155220吴思其 20155234昝昕明 指导教师:娄嘉鹏 设计方案 题目要求:基于Arm实验箱的国密算法应用 三种平台: Z32 ARM32+Linux STM32 内容: SM1, SM2,SM3算法测试 算法应用:混合密码系统 设计方案及可行性分析 运行老师给的范例代码,熟悉开发软件和开发板的使用:收集资料简单了解Z32,ARM的基本概念,然后实现ARM与Ubuntu映射文件.成功编译并运行代…
  java sm3加密算法实现 CreationTime--2018年7月13日09点28分 Author:Marydon 1.准备工作 所需jar包: bcprov-jdk15on-1.59.jar commons-lang3-3.1.jar import org.bouncycastle.crypto.digests.SM3Digest; import org.bouncycastle.crypto.macs.HMac; import org.bouncycastle.crypto.par…
公用类算法: PCIKeyPair.java /** * @Author: dzy * @Date: 2018/9/27 14:18 * @Describe: 公私钥对 */ @Data @AllArgsConstructor @NoArgsConstructor public class PCIKeyPair { private String priKey; //私钥 private String pubKey; //公钥 } CommonUtils.java import org.apach…