SM 国密算法踩坑指南】的更多相关文章

各位,好久不见~ 最近接手网联的国密改造项目,由于对国密算法比较陌生,前期碰到了一系列国密算法加解密的问题. 所以这次总结一下,分享这个过程遇到的问题,希望帮到大家. 国密 什么是国密算法? 国密就是一个口头上简称,官方名称是国家商用密码,使用拼音缩写 SM,它是用于商用的.不涉及国家秘密的密码技术. 那说起密码技术,大家一定很熟悉 MD5,AES,RSA 等算法,这些都是通用国际标准算法. 而国密其实就是这些国际算法国产化的代替方案,与国际算法对应关系如下: 这次国密改造项目使用的就是 SM2…
原文地址:科普一下SM系列国密算法(从零开始学区块链 189) 众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2).SM2.SM3.SM4.SM7.SM9.祖冲之密码算法(ZUC)那等等.其中SM1.SM4.SM7.祖冲之密码(ZUC)是对称算法:SM2.SM9是非对称算法:SM3是哈希算法.目前,这些算法已广泛应用于各个领域中,期待有一天会有采用国密算法的区块链应用出现.其中SM1.SM7算法不公开,调用该算法时,需要通过加密芯片的接口进行调…
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接口上,…
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebRequest 和 HttpWebResponse,来判断一个网页地址是否可以正常访问. 1.举例 class Program { static void Main(string[] args) { string strUrl = "https://www.baidu.com"; HttpWeb…
Talk is cheap, show me your code. 代码也看了,蛋也扯了,之后总该做点什么.响应国家政策,把我们的国密算法融合进去吧--  先附两张bccsp下国密算法的设计实现图. 一 国密算法软实现,将sm2内嵌到sw中 二 国密算法硬件实现,通过pkcs11的方式调用支持国密算法的加密机或者加密卡 这两种实现方式的具体设计可以去hyperledger的jira上查找,都是FAB-5496的子任务. 这两种方式各有优缺点,硬件实现上来说密钥可能更加安全可控,效率上也会高一点,…
比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 国密算法是指国家密码管理局制定的自主可控的国产算法,包括一系列密码学算法:SM1.SM2.SM3.SM4.SM7.SM9.以及祖冲之算法.最常用的三种商用密码算法是 SM2椭圆曲线公钥密码算法.SM3密码杂凑算法以及 SM4分组密码算法. 其中,SM2 算法属于椭圆曲线公钥密码系统,相较于 RSA 公钥密码…
国密即国家密码局认定的国产密码算法.主要有SM1,SM2,SM3,SM4.密钥长度和分组长度均为128位. SM1 为对称加密.其加密强度与AES相当.该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用. SM2为非对称加密,基于ECC.该算法已公开.由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA.ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA. SM3 消息摘要.可以用MD5作为对比理解.该算法已公开.校验结…
Spring WebSocket踩坑指南 本次公司项目中需要在后台与安卓App间建立一个长连接,这里采用了Spring的WebSocket,协议为Stomp. 关于Stomp协议这里就不多介绍了,网上一搜一大把,这里主要说下在配置过程的踩过的那些坑. 官网才是首选 首先在我们第一次尝试WebSocket肯定会搜寻各种各样的博客,在看完关于Stomp和长连接的基础知识,确定使用Spring WebSocket后,请马上进入官网Spring WebSocket,并下载该网站右侧的源码,这将节省大量时…
20155234 昝昕明<基于ARM实验箱的国密算法应用>课程设计个人报告 个人贡献 参与课设题目讨论及完成全过程: 资料收集: SM1算法及和ARM之间通信 负责串口代码调试: 协调完成小组结题报告: 负责实验箱的管理: 设计中遇到的问题及解决方法 开发板无法ping通主机 在虚拟机VMware里面:选择 edit(编辑) -> Vitual Network Editor(虚拟网络编辑器) ,选中VMnet0,在下面的VMnet Information中,点Bridge to(桥接到)…
  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…
国密非对称加密算法 又称sm2,它是采取了ECC(曲线加密算法)中的一条固定的曲线,实际上就是ECC算法. 因为openssl里面不包含sm2算法,所以就要重新进行封装-. - 对于ECC算法我就不介绍了,网上关于它的介绍一抓一大把,丢给你们一个链接ECC算法介绍. 现在对ECC加密算法做个大致的介绍: 所有非对称加密算法都有公钥和私钥,它们都可以用下面这个公式概括: A = k * G 公钥:A , G 私钥:k , G 在ECC加密中 G是基准点,k是小于n(基准点的阶)的一个素数, A是加…
集微网消息,“中国芯”战略之路道阻且长,踏入这个赛道的攻坚者们需要十年如一日的技术突破,需要集合产业势能,共同协作,方能建立中国核心技术真正的竞争力. 国产化之路任重道远,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签名同样也…
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…
今天想在树莓派上自己搭一个在线的python IDE,于是找到了一篇教程--Fred913大神的从头开始制作OJ-在线IDE的搭建 自己尝试动手做了一下, 还是发现不少细节需要注意, 记录在此 如果不知道怎么用树莓派搭建网站的可以参考我之前的文章: 树莓派4B踩坑指南 - (11)免费搭建网站(宝塔,花生壳) 主要环境 PHP Nginx/Apache Python3 主要步骤 1) /api/python.php 网站根目录下新建文件夹api, 注意这里需要sudo或者su权限(下同), 然后…
正则表达式 test 踩坑指南 test 只能使用一次,第二次返回的是错误结果! reg = /edg|edge/g; /edg|edge/g reg.test(`edg`) true reg.test(`edge`) false reg = /edge*/g /edge*/g reg.test(`edge`) true reg.test(`edg`) false reg = /edg[e]*/g /edg[e]*/g reg.test(`edg`) true reg.test(`edge`)…
Taro 开发踩坑指南 (小程序,H5, RN) css taro 如何展示多行文本省略号 https://www.cnblogs.com/xgqfrms/p/12569057.html UI 设计稿尺寸 375px * 2 === 750px (iphone 6) https://www.cnblogs.com/xgqfrms/protected/p/12568792.html js taro 绑定事件 https://nervjs.github.io/taro/docs/event.html…
小程序 & taro 踩坑指南 微信开发者工具, 不支持 react bug https://github.com/NervJS/taro/issues/5042 solution just following below steps 1. comment out ./config/index.js 's copy object 2. you have to manually install yarn add @tarojs/redux-h5 (if using Redux) xgqfrms 2…
本文会不定期更新在nuxt.js中遇到的问题进行汇总.转发请注明出处,尊重作者,谢谢! 强烈推荐作者文档版踩坑指南,点击跳转踩坑指南 在Nuxt的官方文档中,中文文档和英文文档都存在着不小的差异. 1.路径匹配问题: In Nuxt.js, the path match is as follows: @import url('~assets/css/style.css') //Error This path matching is an error, and writing it like th…
Groovy 是什么? Apache的Groovy是Java平台上设计的面向对象编程语言.这门动态语言拥有类似Python.Ruby和Smalltalk中的一些特性,可以作为Java平台的脚本语言使用,Groovy代码动态地编译成运行于Java虚拟机(JVM)上的Java字节码,并与其他Java代码和库进行互操作. 由于其运行在JVM上的特性,Groovy可以使用其他Java语言编写的库.Groovy的语法与Java非常相似,大多数Java代码也符合Groovy的语法规则,尽管可能语义不同. G…
国密商用算法是指国密SM系列算法,包括基于椭圆曲线的非对称公钥密码SM2算法.密码杂凑SM3算法.分组密码SM4算法,还有只以IP核形式提供的非公开算法流程的对称密码SM1算法等. 第1节 SM2非对称密码算法原理 国密SM2算法是商用的ECC椭圆曲线公钥密码算法,其具有公钥加密.密钥交换以及数字签名的功能.椭圆曲线参数并没有给出推荐的曲线,曲线参数的产生需要利用一定的算法产生.但在实际使用中,国密局推荐使用素数域256 位椭圆曲线,其曲线方程为y^2= x^3+ax+b.参数如下: 其中p是大…
上一文章 <__Win7 配置OGG(Oracle GoldenGate).docx>定下了 两个目标: 目标1: 给安装的Oracle_11g 创建 两个用户 admin 和 root . admin 对应了 ADMIN 结构,创建了一个 TB_ TEST表. root 对应了 ROOT 结构,也创建一个 TB_ TEST (表结构一摸一样). 当 admin.TBTEST 中的表数据 变化时,root.TB TEST 的表数据 自动同步(备份) PS. 实际的 容灾备份,肯定是 两个 Or…
微软用 SQL Server 在 2016 年的时候搞了一个大新闻,宣传 Microsoft ❤️ Linux 打得一众软粉措手不及.但是这还是好事情,Linux 上也有好用的 SQL Server 啦,但是从预览版开始 SQL Server on Linux 的配置要求蜜汁高,大部分云主机用户都望而却步.另外,SQL Server on Linux 对于文件系统有限制,仅支持 Ext3 以及 XFS 文件格式系统,对于某些云服务商默认提供的云镜像限制 Ext3 文件格式系统的用户而言也是足够让…
上一次讲了产生密钥,这次我们讲一下加密解密的实现. 先说一下加密解密的流程,一下这些内容都是从国密局发布的国密标准文档里面摘录出来的.大家可以去国密局的网站上自己下载. 下列符号适用于本部分. A,B:使用公钥密码系统的两个用户. a,b: Fq中的元素,它们定义Fq上的一条椭圆曲线E. dB:用户B的私钥. E(Fq): Fq上椭圆曲线E 的所有有理点(包括无穷远点O)组成的集合. Fq :包含q个元素的有限域. G:椭圆曲线的一个基点,其阶为素数. 2Hash( ):密码杂凑函数. Hv (…
原创文章,谢绝转载 Spark 2.x自2.0.0发布到目前的2.2.0已经有一年多的时间了,2.x宣称有诸多的性能改进,相信不少使用Spark的同学还停留在1.6.x或者更低的版本上,没有升级到2.x或许是由于1.6相对而言很稳定,或许是升级后处处踩坑被迫放弃. Spark SQL是Spark中最重要的模块之一,基本上Spark每个版本发布SQL模块都有不少的改动,而且官网还会附带一个Migration Guide帮忙大家升级.问题在于Migration Guide并没有详尽的列出所有变动,本…
继上一篇基础安装踩坑继续我们的踩坑之旅,备注一下以下仅针对Mac环境-- 安卓 1.adb 找不到命令? Adb的全称为Android Debug Bridge,就是起到调试桥的作用,真机调试安卓必备的工具. 做RN开发一般都会安装android studio,在安装之初会有一个android-platform-tools选项,这个就是adb用到的东西了.安装android studio之后,一般情况下配置一个bash_profile,把相关的环境变量配置以下就好了. cd ~ touch .b…
我家的服务器选用的Linux Mint系统,最近安装Docker的时候踩了一些小坑,但是总体还算顺利. 我们都知道Linux Mint系统是基于Ubuntu的,说实话用起来感觉还是很不错的,安装Docker到Ubuntu的方法几乎可以完全迁移到Mint上. 当然,问题就出在这个几乎上. 首先是正常安装各种依赖: sudo apt-get install -y \ apt-transport-https \ ca-certificates \ curl \ software-properties-…
react样式模块化的"omit -loader"坑 众所周知 react样式的模块化(css modules) 是自己模块中写自己的css,与其他模块互补影响,解决了命名冲突和全局污染的问题. 在使用css modules时,需要先配webpack.config  但是在配的时候,出现了这样的问题(前提是已经加载css-loader和style-loader) 在这里我的css-loader是0.28.7 style-loader是0.19.0 看看自己的package文件的load…