国密SM4分组加密算法实现 (C++)】的更多相关文章

原博客 :http://blog.csdn.net/archimekai/article/details/53095993 密码学的一次课程设计,学习了SM4加密算法,目前应用于无线网安全. SM4分组密码算法由国家密码管理局于2012年发布,是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性.算法是一个分组算法.该算法的分组长度为128比特,密钥长度为128比特.加密算法与密钥扩展算法都采用32轮非线性迭代结构.解密算法与加密算法的结构相同,只是轮密钥的使…
一个关于国密SM4的故事 我的名字叫SM4,我还有三位兄长,分别是大哥SM1, 二哥SM2, 和三哥SM3.说起我的名字,故事要回到2006年的时候,我出生的时候并不是叫SM4的,而是叫做SMS4.只是2012年的时候我父亲给我改名了.虽然我起了一个洋气的名字,但我必须郑重地说,我是一个中国人.名字可能只是为了与国际接轨. 我的家族 先简单地介绍一下我的家族,我的父亲是国家密码管理局,我们几兄弟就主要负责起国家信息安全中的加密.我由一出生起,就不断地被家人提醒我要肩负重任.因此,我也非常努力,不…
一个关于国密SM4的故事 https://www.cnblogs.com/ouyida3/p/10053862.html SM1 硬件SM2 非对称加密SM3 hash算法SM4 对称加密 一个关于国密SM4的故事我的名字叫SM4,我还有三位兄长,分别是大哥SM1, 二哥SM2, 和三哥SM3.说起我的名字,故事要回到2006年的时候,我出生的时候并不是叫SM4的,而是叫做SMS4.只是2012年的时候我父亲给我改名了.虽然我起了一个洋气的名字,但我必须郑重地说,我是一个中国人.名字可能只是为了…
国密SM4对称算法实现说明(原SMS4无线局域网算法标准) SM4分组密码算法,原名SMS4,国家密码管理局于2012年3月21日发布:http://www.oscca.gov.cn/News/201204/News_1228.htm ,但不能下载标准文档. SM4为对称算法,密钥长度和分组长度均为128位.按原SMS4的标准描述:加密算法与密钥扩展算法都采用32轮非线性迭代结构.解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序. 该算法网上的C语言实现如下:…
国密商用算法是指国密SM系列算法,包括基于椭圆曲线的非对称公钥密码SM2算法.密码杂凑SM3算法.分组密码SM4算法,还有只以IP核形式提供的非公开算法流程的对称密码SM1算法等. 第1节 SM2非对称密码算法原理 国密SM2算法是商用的ECC椭圆曲线公钥密码算法,其具有公钥加密.密钥交换以及数字签名的功能.椭圆曲线参数并没有给出推荐的曲线,曲线参数的产生需要利用一定的算法产生.但在实际使用中,国密局推荐使用素数域256 位椭圆曲线,其曲线方程为y^2= x^3+ax+b.参数如下: 其中p是大…
都是作者累积的,且看其珍惜,大家可以尽量可以保存一下,如果转载请写好出处https://www.cnblogs.com/pythonywy 一.md5加密 1.简介 这是一种使用非常广泛的加密方式,不可逆的,常见16位和32位一般都是md5 import hashlib data = '你好' print(hashlib.md5(data.encode(encoding="UTF-8")).hexdigest()) #32位 print(hashlib.md5(data.encode(…
国密即国家密码局认定的国产密码算法.主要有SM1,SM2,SM3,SM4.密钥长度和分组长度均为128位. SM1 为对称加密.其加密强度与AES相当.该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用. SM2为非对称加密,基于ECC.该算法已公开.由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA.ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA. SM3 消息摘要.可以用MD5作为对比理解.该算法已公开.校验结…
  java sm4国密算法加密.解密 CreationTime--2018年7月5日09点20分 Author:Marydon 1.准备工作 所需jar包: bcprov-jdk15on-1.59.jar commons-lang3-3.1.jar import java.security.Key; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; impor…
转:https://blog.csdn.net/xuq09/article/details/91815366 The GmSSL Project网址:http://gmssl.org/docs/quickstart.html 在网上闲逛时发现一个工具.SSL支持国密算法.看着比较高大上.还没有用呢.记下来.备用. 快速上手指南介绍GmSSL的编译.安装和gmssl命令行工具的基本指令. 下载源代码(zip),解压缩至当前工作目录 $ unzip GmSSL-master.zip 编译与安装 Li…
原文地址:科普一下SM系列国密算法(从零开始学区块链 189) 众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2).SM2.SM3.SM4.SM7.SM9.祖冲之密码算法(ZUC)那等等.其中SM1.SM4.SM7.祖冲之密码(ZUC)是对称算法:SM2.SM9是非对称算法:SM3是哈希算法.目前,这些算法已广泛应用于各个领域中,期待有一天会有采用国密算法的区块链应用出现.其中SM1.SM7算法不公开,调用该算法时,需要通过加密芯片的接口进行调…
比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 国密算法是指国家密码管理局制定的自主可控的国产算法,包括一系列密码学算法:SM1.SM2.SM3.SM4.SM7.SM9.以及祖冲之算法.最常用的三种商用密码算法是 SM2椭圆曲线公钥密码算法.SM3密码杂凑算法以及 SM4分组密码算法. 其中,SM2 算法属于椭圆曲线公钥密码系统,相较于 RSA 公钥密码…
公用类算法: 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…
Fabric国密改造是个什么概念?我们来思考以下4个问题: 为什么偏偏是密码算法?(WHY?) 什么是国密算法?(WHAT?) 改造切入点什么?(WHERE?) 如何实现国密支持?(HOW?) 1.为什么偏偏是密码算法? 问: 为什么改造Fabric要从密码算法改造入手? 答: 密码是解决网络与信息安全最有效.最可靠.最经济的方式,是维护网络与信息安全的核心技术和基础支撑.而密码算法在区块链系统中起着举足轻重的作用,说是没有密码没有BlockChain也不足为过.密码算法大体分为非对称,对称和哈…
密信浏览器( MeSince Browser )是基于Chromium开源项目开发的国密安全浏览器,支持国密算法和国密SSL证书,同时也支持国际算法及全球信任SSL证书:密信浏览器使用界面清新,干净.简洁.无广告,提供简洁.快速的浏览体验,满足国密安全合规需求.目前,密信浏览器支持Windows 32位和64位系统,未来将逐步推出Linux.Mac及移动端版本. 密信浏览器的主要特性 1.兼容国密标准和国际标准密信浏览器遵循国家标准<GM/T 0024-2014: SSL VPN技术规范>,支…
OpenSSL 1.1.1 国密算法支持 https://www.openssl.org/ https://github.com/openssl/openssl OpenSSL 1.1.1 新特性: 开始支持国密SM2/SM3/SM4加密算法(仅支持算法,未支持国密套件) 参考英文博客: https://www.openssl.org/blog/blog/2018/09/11/release111/ OpenSSL项目最近6个月添加了许多新特性, 包括对中国SM2/SM3/SM4算法的支持: S…
本文主要讲解"国密加密算法"SM系列的C#实现方法,不涉及具体的算法剖析,在网络上找到的java实现方法比较少,切在跨语言加密解密上会存在一些问题,所以整理此文志之.JAVA实现参考http://blog.csdn.net/ererfei/article/details/50998162 1.SM2 & SM3由于SM2算法中需要使用SM3摘要算法,所以把他们放在一起 项目目录结构如下: 首先要下载一个dll包--BouncyCastle.Crypto.dll,并将此dll引用…
转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/39780825 作者:小马 一 知识准备 SM2是国密局推出的一种他们自己说具有自主知识产权的非对称商用password算法.本身是基于ECC椭圆曲线算法的.所以要讲sm2, 先要弄懂ECC. 全然理解ECC算法须要一定的数学功底.由于涉及到射影平面坐标系,齐次方程求解, 曲线的运算规则等概念. 这里不做过多的数学分析(主要是我自己也没有全然整明确). 想要深入了解ECC的我推荐网…
20155206赵飞 基于<Arm试验箱的国密算法应用>课程设计个人报告 课程设计中承担的任务 完成试验箱测试功能1,2,3 . 1:LED闪烁实验 一.实验目的  学习GPIO原理  掌握Z32安全模块驱动LED的工作原理 二.实验内容 学习GPIO原理,阅读<ARM cortex-m0权威手册>(详见目录Z32开发指南\3.参考资料),参考Z32HUA_DEMO工程函数库(详见Z32开发指南\2.软件资料),通过设置GPIO0来控制核心板上L2灯的亮灭. 三.预备知识 …
<基于Arm实验箱的国密算法应用>课程设计 结题报告 小组成员姓名:20155206赵飞 20155220吴思其 20155234昝昕明 指导教师:娄嘉鹏 设计方案 题目要求:基于Arm实验箱的国密算法应用 三种平台: Z32 ARM32+Linux STM32 内容: SM1, SM2,SM3算法测试 算法应用:混合密码系统 设计方案及可行性分析 运行老师给的范例代码,熟悉开发软件和开发板的使用:收集资料简单了解Z32,ARM的基本概念,然后实现ARM与Ubuntu映射文件.成功编译并运行代…
20155200吴思其 基于<Arm试验箱的国密算法应用>课程设计个人报告 课程设计中承担的任务 完成试验箱测试功能4,5,6以及SM3加密实验的实现 测试四 GPIO0按键中断实验 实验目的 学习GPIO中断原理 掌握Z32安全模块中断的工作原理 实验过程及结果: 1.打开"Z32开发指南\实验4-GPIO0按键中断"目录的工程文件.编译工程,产生后缀名为.bin的可执行代码. 2.下载程序 将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,…
国密非对称加密算法 又称sm2,它是采取了ECC(曲线加密算法)中的一条固定的曲线,实际上就是ECC算法. 因为openssl里面不包含sm2算法,所以就要重新进行封装-. - 对于ECC算法我就不介绍了,网上关于它的介绍一抓一大把,丢给你们一个链接ECC算法介绍. 现在对ECC加密算法做个大致的介绍: 所有非对称加密算法都有公钥和私钥,它们都可以用下面这个公式概括: A = k * G 公钥:A , G 私钥:k , G 在ECC加密中 G是基准点,k是小于n(基准点的阶)的一个素数, A是加…
沃通提供国密SSL证书免费申请试用服务,一次申请可同时签发SM2/RSA双算法证书,试用周期1个月,用于测试国密SM2 SSL证书的运行效果和SM2/RSA双证书部署效果. 试用产品:SM2/RSA双算法证书(国密超快SSL V1证书.RSA超快SSL 证书) 申请链接:https://buy.wotrus.com/freetestv1 申请指南:国密SSL证书试用申请指南 沃通国密超快SSL V1证书是提供给用户测试试用的V1级别国密SSL证书,证书有效期1个月,参考国际标准中的DV级别身份验…
国密算法在主流操作系统.浏览器等客户端中,还没有实现广泛兼容.因此,在面向开放互联网的产品应用中,国密算法无法得到广泛应用.比如,在SSL证书应用领域,由于国际主流浏览器不信任国密算法,如果服务器部署国密SM2 SSL证书,可能直接导致网站系统在用户端无法访问. 实现基于国密算法的HTTPS加密认证,最大的应用难点在于,国密算法应用生态的建设以及对主流应用生态的兼容.沃通CA提供的“国密SM2 SSL证书全生态支持和全球信任解决方案”,很好地帮助用户解决了这个问题! 建立完整的国密全生态支持体系…
集微网消息,“中国芯”战略之路道阻且长,踏入这个赛道的攻坚者们需要十年如一日的技术突破,需要集合产业势能,共同协作,方能建立中国核心技术真正的竞争力. 国产化之路任重道远,SSD芯片初见成效 信息时代,让世界变成了地球村,国家间的对抗变得无形.核心技术的受制于人,就如命门被置他手.因此,我们要研发自己的芯片,实现我们核心元器件技术的突破,实现真正的自主安全可控.半导体是电子信息行业的基石,彰显大国重器,承担这样国家责任的企业不断涌现,研发领域如国科微.飞腾.申威等优秀的芯片企业. 目前我国部分专…
国密算法sm2非对称算法椭圆曲线 原文:http://www.jonllen.cn/jonllen/work/162.aspx 前段时间将系统的RSA算法全部升级为SM2国密算法,密码机和UKey硬件设备大都同时支持RSA和SM2算法,只是应用系统的加解密签名验证需要修改,这个更改底层调用的加密动态库来,原来RSA用的对称加密算法DES(AES)和摘要MD5(SHA1)也相应改变,分别对应SM1.SM3算法,SM1算法基于硬件实现,SM2.SM3算法已公开. SM2签名验证算法 SM2签名同样也…
C# 基于.NET FRAMEWORK 4.5 JAVA 基于 JDK1.8 一.要点 1.签名算法:SM3withSM2. 2.签名值byte[] 转字符串时,双方要统一,这里是BASE64. 二.工具类和调用DEMO C# 引用了BouncyCastle.Crypto类库,在nuget上下载最新即可. 工具类: using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.GM; using Org.BouncyCastle.Asn1.X9…
关于国密HTTPS 的那些事(二) 三. 需要解决的问题 前文我们了解了https,并梳理了国密https的流程.那么完成这些流程的目的是什么呢?又是怎么来保护数据的安全性呢?我们继续... 上文我们说到只有http通信的站点如同在"裸奔",在客户端和服务端通信的时候有巨大的安全隐患.而安全隐患主要有三个方面:明文传输,数据篡改,站点劫持. 知道了问题,我们只需要对症下药: 明文传输 ->数据加密传输. 数据可篡改->数据完整性校验. 站点劫持->验证站点的身份. 还…
各位,好久不见~ 最近接手网联的国密改造项目,由于对国密算法比较陌生,前期碰到了一系列国密算法加解密的问题. 所以这次总结一下,分享这个过程遇到的问题,希望帮到大家. 国密 什么是国密算法? 国密就是一个口头上简称,官方名称是国家商用密码,使用拼音缩写 SM,它是用于商用的.不涉及国家秘密的密码技术. 那说起密码技术,大家一定很熟悉 MD5,AES,RSA 等算法,这些都是通用国际标准算法. 而国密其实就是这些国际算法国产化的代替方案,与国际算法对应关系如下: 这次国密改造项目使用的就是 SM2…
通常我们遇到过的X509证书都是基于RSA-SHA1算法的,目前国家在大力推行国密算法,未来银行发行的IC卡也都是基于PBOC3.0支持国密算法的,因此我们来学习一下如何验证SM2国密证书的合法性.至于SM2与SM3的算法实现不在本文讨论范围之内,可以用openssl.BouncyCastle.Crypto.dll等第三方库来实现. SM2国密证书与RSA证书一样,一般内容都是以BASE64格式编码的,以网上下载的一个自签名证书为例: MIIB5jCCAZECAQAwVDELMAkGA1UEBh…
摘要:本文不对SM2做过多的介绍,主要介绍java bouncycastle库关于SM2的相关API的使用及注意事项 1. SM2 签名: 注意: 1)签名格式ASN1(描述了一种对数据进行表示.编码.传输和解码的数据格式),包括两个大整数. 2)注意USER_ID的一致性(规范默认是"1234567812345678"),否则影响验签. 主要代码 SM2Signer localSM2Signer = new SM2Signer(); Security.addProvider(new…