密码技术应该怎么用第三天!

今天讲一下,商用密码的的常识,密码工具箱,商用密码算法的简要介绍,我们的重点在于使用,所更重要的是放在算法可以做什么。

密码常识如下,需要我们仔细体会。

  • 不要使用保密的密码算法
  • 使用低强度的密码比不进行任何加密更危险
  • 任何一种密码算法总有一天都会被破解
  • 密码只是信息安全的一部分
  • 柯克霍夫原则密码系统的安全性主要依赖于【密钥】安全。
  • 一次性密码本在理论上是无法破译的原因:无法判断明文的正确性。

密码工具箱,如果有些密码算法不再安全可以替换,这个非常重要!!!

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-SM3SM2(公钥加密,私钥解密,用于密码分发和极端数据要求下的数据加密),非必要不要使用数字签名,如果使用可以外接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,接收到邮件仍是有效的。

 一张表总结一下密码算法

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值