今天讲一下,商用密码的的常识,密码工具箱,商用密码算法的简要介绍,我们的重点在于使用,所更重要的是放在算法可以做什么。
密码常识如下,需要我们仔细体会。
- 不要使用保密的密码算法
- 使用低强度的密码比不进行任何加密更危险
- 任何一种密码算法总有一天都会被破解
- 密码只是信息安全的一部分
- 柯克霍夫原则密码系统的安全性主要依赖于【密钥】安全。
- 一次性密码本在理论上是无法破译的【原因:无法判断明文的正确性。】
密码工具箱,如果有些密码算法不再安全可以替换,这个非常重要!!!
1)对称密码,如:SM1,SM4,SM7,ZUC,3DES,AES
2)公钥密码,如:SM2,SM9,RSA2048及以上
3)单向散列函数,如SM3,SHA256,SHA384,SHA512,
注意:SHA1,MD5 已经不安全,非必要不再使用。
4)消息认证码,如HMAC-SM3,MAC,HMAC-SHA256,
CBC-MAC【SM4-CBC 取右边32个字符】,约定好长度的消息产生消息验证码,不建议使用。
5)数字签名,如:SM2(SM3(Random))] ,RSA(SHA256(R))
6)伪随机数生成器(Random)
我们在考虑密码能力的时候,实际上就是提供一个密码套件,可以为用户提供符合业务需要的密码套件,由业务系统调用,完成业务系统的保护。
密码套件包括一个密钥交换算法、一个加密算法及密钥长度和一个校验算法
推荐密码套件包括: Random,SM4(CBC/GCM),HMAC-SM3,SM2(公钥加密,私钥解密,用于密码分发和极端数据要求下的数据加密),非必要不要使用数字签名,如果使用可以外接CA接口。【根据《商用密码管理条例》自建CA不再合规】。

详细介绍一下密码的四个特性,以及如何实现,以及推荐【蓝色】的算法
- 保密性/机密性 :
概念:保证信息不被泄露给非授权实体的性质/信息不被未授权者知晓的属性
实现方式:1.访问控制 2.信息隐藏 3.加密
1)对称加密:3DES,AES,ZUC,SM1,SM4 (CBC模式,IV随机;CRT模式统一密钥,计数器值用一次)
2)公钥加密:RSA1024,RSA2048,SM2,ECC,SM9 。禁止对稍大数据使用非对称算法直接加密
3)信封/混合密钥: 1.对称密钥(数据) 2.PubKey(对称密钥);1.PriKey(对称密钥的加密制), 对称密钥(数据)
- 完整性
概念:数据没有遭受非授权方式所作的改变的性质/信息是正确的、真实的、未被篡改的、完整无缺的属性
实现方式:1.访问控制 2.损坏检测
1)HASH:MD5,SHA1,SHA256,SM3 ; 确保杂凑值无法被修改。(代码中一般混合使用SM3+SM4)
2)CBC-MAC(CBC模式右侧取32位)【IV不能全为0】/CMAC:3DES/AES,SM4
3)HMAC-SM3
4)数字签名(篡改可识别):RSA1024,RSA2048,SM2,ECC,SM9(私钥不唯一所有),等保三级要求
消息鉴别码message authentication code:利用对称密码技术或密码杂凑技术,在秘密密钥参与下,由消息所导出的数据项。任何持有这一秘密密钥的实体,可利用消息鉴别码检查消息的完整性和始发者身份。
注意:用于SM4,MAC,HMAC-SM3的密钥应该是两个不同的密钥,要求每个密钥只有一个用途 GCM 模式使用一个密钥!
GCM模式(Galois/Counter Mode)
结合了CTR模式和GMAC(Galois Message Authentication Code)进行消息加密和认证,不需要进行加密块填充。在GCM模式中,使用CTR模式对消息进行加密,然后使用GMAC算法生成认证标签。总体而言,SM4 GCM模式提供了一种安全的加密和认证机制,适用于保护数据的机密性和完整性。
GCM 模式一个算法完成机密性+完整性+真实性(认证)。特别适合于高效率的接口设计(配套硬件)。
不同的分组密码操作模式可能具有明显不同的性能和效率特性,即使使用相同的分组密码也是如此。 GCM 可以充分利用并行处理,实现 GCM 可以有效利用指令流水线或硬件流水线。相比之下,密码块链接(CBC)操作模式会导致流水线停顿,从而影响其效率和性能。
- 真实性
概念:一个实体是其所声称实体的这种特性。真实性适用于用户、进程、系统和信息之类的实体。
实现方式: 1.密码技术 2.静态口令(PIN)3.动态口令 4.生物特征+密码技术
1)CBC-MAC/CMAC(共享对称密钥):3DES,SM4 等【IV不能全为0】,注意要约定位数
2)HMAC-SM3(共享对称密钥)
3)PriKeySign(唯一所有):RSA1024,RSA2048,SM2,ECC, SM9(私钥不唯一所有)
4)对称加密(共享对称密钥):3DES,AES,ZUC,SM1,SM4 (代码中一般混合使用SM3+SM4)
使用对称密钥需要额外的交互,对数据约定如外部认证。
客户端认证服务端:1.客户端获取随机数并保存,2.服务端加密,3.到客户端认证,4.客户端清理随机数
- 不可抵赖性/不可否认性
概念:证明一个已经发生的操作行为无法否认的性质。
实现方式:一般对数据HASH(SHA1,SH256,SM3)再签名
PriKeySign:RSA1024,RSA2048, SM2,ECC,SM9(私钥不唯一所有,合规,不能用于数字证书,不合法)。
使用不可否认性功能,虽然不能防止通信参与方否认通信交换行为的发生,但是能够在厂商纠纷时提供可信证据。
网络环境分类:1.起源不可否认 2.传递不可否认。
有效证书,时间(接收时间),数据签名值(原值),如实记录时间发生情况,这时候双签名很重要。
据称法律上是以发起时间计算,如邮件的发出时间是11:59 那么,截止时间是12:00,接收到邮件仍是有效的。
一张表总结一下密码算法

参考密评的一些要求,推荐一下实现方法。


被折叠的 条评论
为什么被折叠?



