前言
安利一个网站:网安网:https://www.wangan.com/discuss/zhishi/docs
上面有很多规范文档,如下图所示:
PKI相关规范
常用技术 | 规范 |
---|---|
电子印章签章 | GB/T 38540-2020 信息安全技术 安全电子签章密码技术规范 GM/T0031 安全电子签章密码技术规范 |
时间戳 | GM/T 0033 时间戳接口规范 |
软加密 | GM/T 0009-SM2密码算法使用规范-报批稿 |
硬加密 | GM/T 0016-智能密码钥匙密码应用接口规范(SKF) GM/T 0018-密码设备应用接口规范.pdf(SDF) |
数字证书、CRL | GB/T 20518—2018信息安全技术 公钥基础设施 数字证书格式https://www.wangan.com/docs/5140 |
SM2 | GM/T 0003-2012 SM2 椭圆曲线公钥密码算法(0003.1-0003.5 共5部分) |
SM3 | GM/T 0004-2012 SM3 密码杂凑算法 |
SM4 | GB/T 32907-2016 SM4分组密码算法 |
PKCS7相关请参考另一片博文:https://blog.csdn.net/qq_42873640/article/details/117463593
GMT 0009
国密 TLS ECDHE 协商算法主要参考国密标准 GMT 0009-2012 SM2 密码算法(国密非对称密码)使用规范中关于 SM2 密钥协商算法的适配
id:1234567812345678
SM3需要摘要签名方ID(默认1234567812345678)、曲线参数a,b,Gx,Gy、共钥坐标(x,y)计算出Z值,然后再杂凑原文得出摘要数据。
规范中建议使用1234567812345678
应用场景:sm3摘要、签名、验签、加密、解密
对称加密
优点:加密速度快
缺点:不安全,无法用于签名
1字节(Byte) = 8位(bit)
算法 | 加密模式 | 分组长度(位) | 密钥长度(位) |
---|---|---|---|
AES | 分组加密 | 64 | 128、192、256 |
DES | 分组加密 | 64 | 64 |
3DES | 分组加密 | 192 | |
RC4 | 流加密 | ||
SM1 | 128 | 128 | |
SM4 | 128 | 128 | |
SM7 | 128 | 128 |
分组加密
分组加密分为4种模式:ECB、CBC、CFB、OFB等。
https://www.cnblogs.com/happyhippy/archive/2006/12/23/601353.html
分组加密,没法避免的问题就是原文长度不够分成整块的情况,这就涉及padding填充。
参考文章:Padding填充以及加密模式概念
ECB
将数据按照8个字节(64位)一段分组,每组加密后连在一起。
不足8字节的在末尾补0或F?????
优点:
- 简单;
- 有利于并行计算;
- 误差不会被传递;
缺点:
- 不能隐藏明文的模式;
- 可能对明文进行主动攻击;
签名类型
1.1、Attached签名
Attached签名符合PKCS#7 的语法标准,其特点是将数据原文、签名证书(或证书链)、签名算法、签名数据封装成签名结果,因此,在验证签名时,只需提供签名结果便可。
1.2、Detached签名
Detached签名符合PKCS#7的语法标准,其特点是将签名证书(或证书链)、签名算法、签名数据封装成签名结果。
由于签名结果中不包含数据原文,因此验证签名时,需将签名结果和数据原文一起提交到签名服务器。
1.3、RAW签名
RAW签名也称裸签名,签名结果只包含纯粹的签名数据,即将摘要运算结果和算法OID经过PKCS1Padding之后进行RSA私有密钥加密的结果。
由于签名结果中只包含纯粹的签名数据,因此验证签名时,需将签名结果、数据原文、和签名证书三种数据一起提交到签名服务器。