国密算法初探 | 入门教程 | 解析

这篇具有很好参考价值的文章主要介绍了国密算法初探 | 入门教程 | 解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

国密算法即国家密码局认定的国产密码算法。

  • 国密算法是商用密码,仅能用于商业用途。
  • 国密算法是一套标准,由国家密码局制定的规范,凡是符合的,都可以称之为国密算法。
  • 国密算法暂无官方的代码实现,企业可以自己编码实现,并申请国家密码局认证,通过后即被认可。
  • SM系列密码算法是国密算法的一种,SM是商密的缩写,SM后的序号分别表示了不同种类的密码(应用场景不同)。
  • 国密算法对标国际算法,国际算法由美国的安全局发布,是现今最通用的商用算法,也是在各种密码学教材中重点介绍的。

国密算法初探 | 入门教程 | 解析

SM系列国密算法

SM系列算法主要有SM1,SM2,SM3,SM4,SM7和SM9。SM1和SM7算法没有公开,主要用于芯片集成(采用硬件实现,直接嵌入),如智能IC卡、加密机、身份证和一卡通等。目前应用较多的是SM2、SM3和SM4算法,采用软件实现,这三者用法不一。

  • SM2属于非对称加密算法,使用公钥加密,私钥解密,在安全性和运算速度方面要优于RSA算法。
  • SM3属于不可逆加密算法,类似于md5,常用于签名。
  • SM4属于对称加密算法,可用于替代DES/AES等国际算法,SM4算法与AES算法具有相同的密钥长度和分组长度,都是128位。

国密算法标准

由国家密码管理局管理和发布,国家密码管理局的官方网站是:

https://www.oscca.gov.cn/sca/index.shtml

国密算法标准文档查询:

https://www.oscca.gov.cn/app-zxfw/zxfw/bzgfcx.jsp

国密算法初探 | 入门教程 | 解析

可以提供电子认证服务的机构名单:

https://www.oscca.gov.cn/app-zxfw/xzspsx/dzzwdzrzfuwujigouml.jsp?channel_code=c100144

国密算法的开源实现

目前比较有名的是北京大学的关志研究员在 GitHub 上的开源项目,毕竟涉及安全,背书还是很重要的。

全套的国密算法标准文档:

GitHub - guanzhi/GM-Standards: 中华人民共和国密码行业标准(GM/T)文本

GMSSL,一个类似 OpenSSL 的商密算法工具。

https://www.gmssl.cn/gmssl/index.jsp

GmSSL项目也是由北京大学关志研究员的密码学研究组开发维护,项目源码托管于GitHub:

GitHub - guanzhi/GmSSL: 支持国密SM2/SM3/SM4/SM9/SSL的密码工具箱

GmSSL是由北京大学自主开发的国产商用密码开源库,实现了对国密算法、标准和安全通信协议的全面功能覆盖,支持包括移动端在内的主流操作系统和处理器,支持密码钥匙、密码卡等典型国产密码硬件,提供功能丰富的命令行工具及多种编译语言编程接口。

GmSSL是从鼎鼎大名的开源安全库 OpenSSL fork而来,研究其源码可以看出它是基于OpenSSL 1.1.0d开发。GmSSL与OpenSSL保持接口兼容,理论上使用OpenSSL库的产品,可以直接使用GmSSL替换。GmSSL项目采用对商业应用友好的类BSD开源许可证,无论是在开源项目,还是闭源的商业应用中,都可以放心使用,不必担心授权问题。

其他实现

java 代码参考链接 https://github.com/hou-xx/encryption-and-decryption 的 SmDemo.javaSmDemoForJs.java
前端代码(h5+js)参考链接 https://github.com/hou-xx/SM2-front

java bcprov 国密 依赖 jar包 版本 升级 降级 教程_bcprov-jdk16_九二战歌的博客-CSDN博客

在线加解密工具

在线生成sm2公钥私钥:

SM2 密钥在线生成工具

在线加密链接:

DES在线解密 DES在线加密 des hex - The X 在线工具

参考文章

了解国密算法的分类(SM1-9和祖冲之密码的介绍):国密算法分类 - 知乎

国密算法与国际算法的对比:国密算法学习整理_海洋中的一滴的博客-CSDN博客

国密算法GMSSL介绍:初识国密算法_国密算法收费吗_云水木石的博客-CSDN博客

基于java的前后端实现国密:国密算法纯软件实现(java+javascript ) - 简书文章来源地址https://www.toymoban.com/news/detail-474569.html

到了这里,关于国密算法初探 | 入门教程 | 解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLO算法创新改进系列项目汇总(入门级教程指南)

    🚀一、主干网络改进(持续更新中)🎄🎈 🚀二、轻量化网络(持续更新中)🎄🎈 🚀三、注意力机制(持续更新中)🎄🎈 🚀四、检测头部改进(持续更新中)🎄🎈 🚀五、空间金字塔池化(持续更新中)🎄🎈 🚀六、损失函数及NMS改进(持续更新中)🎄🎈 🚀七、其

    2023年04月24日
    浏览(45)
  • Python入门教程+项目实战-11.5节: 程序实战-选择排序算法

    目录 11.5.1 排序算法简介 11.5.2 选择排序算法 11.5.3 系统学习python 所谓排序,是指将数据集合中的元素按从小到大的顺序进行排列,或按从大到小的顺序进行排列。前者称为升序排序,后者称为降序排序。在数据结构与算法这门课程中,我们会学习到诸多与排序相关的算法,

    2024年02月02日
    浏览(52)
  • Python入门教程+项目实战-10.5节: 程序实战-冒泡排序算法

    目录 10.5.1 排序算法简介 10.5.2 冒泡排序算法 10.5.3 系统学习python 所谓排序,是指将数据集合中的元素按从小到大的顺序进行排列,或按从大到小的顺序进行排列。前者称为升序排序,后者称为降序排序。在数据结构与算法这门课程中,我们会学习到诸多与排序相关的算法,

    2023年04月21日
    浏览(44)
  • Unity零基础到入门 ☀️| 万字教程 对 Unity 中的 Navigation导航系统基础 全面解析+实战演练【收藏不迷路】

    📢博客主页:https://blog.csdn.net/zhangay1998 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 呆呆敲代码的小Y 原创,首发于 CSDN 🙉 📢未来很长,值得我们全力奔赴更美好的生活✨

    2023年04月08日
    浏览(49)
  • 【Java基础教程】(二)入门介绍篇 · 下:从JDK下载安装到第一个“Hello World!”程序,解析PATH和CLASSPATH环境变量的妙用~

    JDK 安装与配置; 理解环境变量PATH和CLASSPATH的主要作用; 运行第一个Java程序。 要进行Java的程序开发,必须先有Java开发工具包( JavaDevelopmentKit,JDK )的支持。本节主要基于JDK1.8版本来介绍安装等知识,读者朋友可以直接登录 Oracle官网 去进行下载,也可以在下边链接(包含

    2024年02月13日
    浏览(62)
  • Gradio入门到进阶全网最详细教程[二]:快速搭建AI算法可视化部署演示(侧重参数详解和案例实践)

    相关文章:Gradio入门到进阶全网最详细教程[一]:快速搭建AI算法可视化部署演示(侧重项目搭建和案例分享) 在教程一中主要侧重讲解gradio的基础模块搭建以及demo展示,本篇文章则会侧重实际任务的搭建。 保持一贯作风简单展示一下如何使用 gradio的核心是它的gr.Interface函数,

    2023年04月26日
    浏览(54)
  • Gradio入门到进阶全网最详细教程[一]:快速搭建AI算法可视化部署演示(侧重项目搭建和案例分享)

    常用的两款AI可视化交互应用比较: Gradio Gradio的优势在于易用性,代码结构相比Streamlit简单,只需简单定义输入和输出接口即可快速构建简单的交互页面,更轻松部署模型。适合场景相对简单,想要快速部署应用的开发者。便于分享:gradio可以在启动应用时设置share=True参数

    2023年04月25日
    浏览(46)
  • 国密SM2算法的加密签名消息语法封装解析p7格式signedData

    前文可参考:SM2算法的加密签名消息语法规范(三)如何构造signedData_天对地,雨对风的博客-CSDN博客系列。 这里直接讲openssl asn1解析和封装的部分代码。 国密 p7格式标准,参考:GMT0010-2012 1、p7 签名结构:  编写结构体GMTSignedData.h 注意:SM2_SignedData_st结构中的sign类型修改为

    2024年02月11日
    浏览(46)
  • Yalmip入门教程(1)-入门学习

            博客中所有内容均来源于自己学习过程中积累的经验以及对yalmip官方文档的翻译:YALMIP         Yalmip的作者是Johan Löfberg,是由Matlab平台编程实现的一个免费开源数学优化工具箱,在官网上就可以下载。官方下载链接如下: Download - YALMIP         下载时可以选

    2024年02月15日
    浏览(51)
  • 瑞萨MCU入门教程(非常详细的瑞萨单片机入门教程)

    得益于瑞萨强大的MCU、强大的软件开发工具(e² studio),也得益于瑞萨和RA生态工作室提供的支持,我们团队编写了《ARM嵌入式系统中面向对象的模块编程方法》,全书37章,将近500页: 讲解面向对象编程在单片机开发中的使用 结合FSP软件包实例分析外设驱动 讲解如何使用RASC配

    2024年02月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包