云水木石
70后程序员,仍然战斗在编码第一线,长期从事浏览器内核研发。
展开
-
详解国密算法 - 补充说明
在求职期间,我整理了有关国密开发的文章,形成了《详解国密算法》专栏,并选择设为付费订阅,主要是为了看看读者是否真的对这个专题感兴趣。更尴尬的是,我当时的文章是以 GmSSL 为基础编写的,然而这几年 GmSSL 架构经历了大幅调整,导致代码结构和命令行参数与之前版本不兼容。我当时研究国密算法时,GmSSL 的版本是 2.5.4,所有在克隆 GmSSL 源码之后,切换到 V2 分支,专栏中引用到的命令、代码仍然有效。随着信息国产化需求增加,越来越多产品要求支持国密,这使得我之前的总结和记录仍有一定的价值。原创 2024-07-24 08:52:35 · 258 阅读 · 0 评论 -
写给开发者的实用密码学 - 前言
各位朋友,非常惭愧这半年来疏于更新公众号,不是因为太忙,而是太闲。过去的2020年发生了太多的事情,2020年1月23日武汉封城历历在目,仿佛就在昨天。多少人经历了悲欢离合、多少店铺关张...原创 2020-12-14 22:22:06 · 851 阅读 · 5 评论 -
写给开发人员的实用密码学 - Hash算法
说到Hash(哈希),开发人员应该不陌生,比如Hash表是一种非常常用的数据结构,通过Hash表能够根据键值快速找到数据。哈希函数将文本(或其他数据)映射为整数,从而能够提高检索效率。密...原创 2020-12-17 19:45:48 · 1204 阅读 · 1 评论 -
写给开发人员的实用密码学 - MAC
这里的MAC,并不是计算机中的MAC地址,而是消息验证码(Message Authentication Code,MAC)。在写给开发人员的实用密码学 - Hash算法中讲到的Hash算...原创 2020-12-22 20:02:00 · 1017 阅读 · 5 评论 -
写给开发人员的实用密码学 - 随机数
上一篇文章中介绍了消息验证码,这篇文章咱们来聊聊随机数。随机数看起来是一个很简单的概念,不论哪种编程语言都提供了简单的生成随机数的方法,有必要单独写一篇文章么?随机数看起来简单,但在密码...原创 2021-01-04 23:07:55 · 1041 阅读 · 0 评论 -
写给开发人员的实用密码学 - 对称加密算法
所谓数据加密,就是将一段数据处理成无规则的数据,除非有关键的密钥,否则谁也无法得知无规则数据的真实含义。在密码学中,用于数据加密的算法主要有两种,分别是对称加密算法(Symmetric-...原创 2021-01-19 18:15:46 · 1149 阅读 · 1 评论 -
写给开发人员的实用密码学 - 非对称加密算法
在前面的文章《写给开发人员的实用密码学 - 对称加密算法》中,介绍了现代密码学中非常重要的加密解密算法。从工程学的角度,选取密钥足够长的加密算法(比如AES 256、AES 512),是无...原创 2021-03-18 22:40:11 · 5124 阅读 · 0 评论 -
写给开发人员的实用密码学 - 数字签名
办理过买房抵押贷款的朋友,应该还记得在贷款合同上不断按手印。这种现实世界的签字画押,一方面是保证合同的文本不会替换,另一方面双方事后都不能否认此次交易(个人方面靠签字和手印,银行方靠公章)...原创 2021-03-30 20:56:16 · 1246 阅读 · 0 评论 -
写给开发人员的实用密码学 - 数字证书
在数字签名部分,我们讲到数字签名可以起到“防抵赖”的作用。然而,在开放的互联网环境中,通信的双方通常是互不相识,数字签名并不能解决身份认证的问题。比如在数字签名中,私钥签名,公钥验证签名。...原创 2021-04-15 19:32:34 · 1698 阅读 · 1 评论 -
写给开发人员的实用密码学 - CA
在上一篇文章《写给开发人员的实用密码学 - 数字证书》中介绍了数字证书,但要让用户信任颁发的数字证书,这里就需要引入 CA 中心。所谓CA(Certificate Authority)认证...原创 2021-04-22 20:03:19 · 1492 阅读 · 0 评论 -
初识国密算法
国密算法是国家商用密码算法的简称,由国家密码管理局管理和发布标准。国家密码管理局的官方网站是:http://www.oscca.gov.cn/sca/index.shtml就如同其它政府...原创 2020-03-02 12:14:55 · 4499 阅读 · 1 评论 -
写给开发人员的实用密码学 - 国密哈希算法SM3实现要点
在《写给开发人员的实用密码学 - Hash算法》和《写给开发人员的实用密码学 - MAC》这两篇文章分别介绍了哈希算法和消息验证码,其中消息验证码使用到了哈希算法。国密标准中也定义了一种哈...原创 2021-03-11 20:03:39 · 4243 阅读 · 0 评论 -
写给开发人员的实用密码学 - 国密对称加密算法SM4实现要点
在上一篇文章《写给开发人员的实用密码学 - 对称加密算法》中,介绍了现代密码学中非常重要的加密解密算法,国密标准中 SM4/SMS4 就是一种对称加密算法。本文将介绍密码库 libtomc...原创 2021-03-10 11:35:19 · 4654 阅读 · 2 评论 -
解读国密非对称加密算法SM2
本文先介绍非对称加密算法,然后聊一聊椭圆曲线密码算法(Elliptic Curve Cryptography,ECC),最后才是本文的主题国密非对称加密...原创 2020-03-19 22:21:22 · 14978 阅读 · 1 评论 -
详解国密SM2的加密和解密
在上一篇文章《解读国密非对称加密算法SM2》介绍了国密非对称算法SM2,在文章中说到,如果现有的网络库中已经实现ECC算法,只需加入SM2命名曲线的参数...原创 2020-03-25 21:25:26 · 36660 阅读 · 21 评论 -
详解国密SM2的数字签名
在《解读国密非对称加密算法SM2》一文中,我讲到过非对称加密算法的用途之一就是数字签名。本文就来聊一聊国密SM2的数字签名算法。数字签名(又称公钥数字签名)是只有信息的发送者才能产生的...原创 2020-04-03 21:59:00 · 26370 阅读 · 5 评论 -
SSL通信双方如何判断对方采用了国密?
SSL通信涉及两方的参与者,通常采用的模型是Client/Server。如果我们开发Client端产品(比如浏览器),可能会和多方的Server产品对接...原创 2020-03-14 22:25:02 · 1758 阅读 · 0 评论 -
详解国密SSL ECC_SM4_SM3套件
国密算法最好的应用场景应该是SSL/TLS通信,然而国密文档中并没有单独规范SSL/TLS协议,我们能参考的只有《GM/T 0024-2014 SSL ...原创 2020-03-29 22:16:25 · 15050 阅读 · 7 评论 -
搭建个人国密CA(Certification Authority)
在SSL/TLS/HTTPS通信中,证书虽然不是TLS/SSL协议的一部分,却是HTTPS非常关键的一环,网站引入证书才能避免中间人攻击。证书涉及了很多密码学知识,理解证书后,再深入理解...原创 2020-03-09 22:04:59 · 5147 阅读 · 3 评论 -
搭建国密SSL开发测试环境
国密算法包含了一系列的加密算法,用途广泛,可以用于软硬件加密、签名等地方。我主要研究国密算法在SSL/TLS/HTTPS通信中的应用,这会涉及到客户端和服务器端,最典型的用例就是浏览器访...原创 2020-03-05 20:19:38 · 8026 阅读 · 10 评论 -
国密SSL通信的调试技巧
前面写了几篇国密开发相关的文章:解读国密非对称加密算法SM2啥?双证书?详解国密SM2的加密和解密详解国密SSL ECC_SM4_SM3套件详解国密SM2的数字签名这篇文章来聊一聊国密S...原创 2020-05-09 23:13:20 · 3041 阅读 · 1 评论 -
编译支持国密的抓包工具 WireShark
本文介绍了分析网络协议交互过程的工具 WireShark,指出系统中的 WireShark 对国密支持不完善,并给出支持国密的 WireShark 的编译方法。原创 2024-03-10 21:08:01 · 965 阅读 · 0 评论 -
支持国密的 Web 服务器
本文介绍了支持国密算法的 Web 服务器的编译、运行与简单测试方法。原创 2024-03-06 22:03:45 · 710 阅读 · 0 评论 -
ARM 架构下国密算法库
介绍 ARM 架构银河麒麟系统下 GmSSL 国密套件的编译与安装原创 2024-03-04 23:05:00 · 607 阅读 · 0 评论 -
浏览器中的国密应用接口规范
最近,有客户咨询浏览器中是否提供了国密标准中的 js 接口。说实话,接到这个问题还有点懵。之前做浏览器中的国密,实现的是 sm2、sm3、sm4算法已经 ssl 通信的国密支持,并没有涉及 js 接口。上网搜索一下国密 js,得到的结果都是使用 js 代码实现 sm2/sm3/sm4算法。这肯定不是客户想要的答案。如果纯 js 实现国密算法,那就不需要浏览器做什么了。又进行了一番搜索,还是没找到答...原创 2024-12-19 21:44:45 · 341 阅读 · 0 评论