密码技术 - 混合密码系统

用对称密码提高速度,用公钥密码保护会话密钥

May 27, 2017 - 1 minute read -
security cryptography

1. 混合动力汽车

混合动力汽车同时装备了电动机和发动机两种动力系统。

电动机由电池驱动,发动机由汽油驱动。当速度较慢时,汽车由电动机驱动,能够安静的行驶。当速度加快时,动力切换到发动机,以便输出更强大的动力。当踩下刹车时,损失的能量中的一部分能够被回收并用来对电池进行充电。

混合动力汽车将电动机和发动机两种不同的动力融合在一起,从而发挥了两种动力各自的优势。

2. 混合密码系统

混合密码系统用对称密码来加密明文,用公钥密码来加密对称密码中所使用的密钥。通过使用混合密码系统,就能够在通信中将对称密码和公钥密码的优势结合起来。

2.1 对称密码与公钥密码

对称密码确保通信中的机密性,公钥密码解决对称密码的密钥传输问题。但公钥密码有两个很大的问题:

  1. 处理速度远远低于对称密码;
  2. 难以抵御中间人攻击。

这里介绍的混合密码系统就是解决上述的问题1的方法。而要解决问题2,则需要对公钥进行认证。暂时不表🙄。

2.2 混合密码系统

混合密码系统的组成机制:

  • 用对称密码加密消息
  • 通过伪随机数生成器生成对称密码加密中使用的会话密钥
  • 用公钥密码加密会话密钥
  • 从混合密码系统外部赋予公钥密码加密时使用的密钥

2.3 加密

mix-crypto-sys-encryption

2.4 解密

mix-crypto-sys-decryption

2.5 混合密码系统的实践

混合密码系统解决了公钥密码速度慢的问题,并通过公钥密码解决了对称密码的密钥配送问题。

著名的密码软件PGP、以及网络上的密码通信所使用的SSL/TLS都运用了混合密码系统。PGP的处理除了混合密码系统之外,还包括数字签名、数字签名认证以及私钥管理等处理。

3. 怎样才是高强度的混合密码系统

混合密码系统运用了伪随机数生成器、对称密码和公钥密码,因此其中每一种技术要素的强度都必须很高。然后实际上还不仅如此,这些技术要素之间的强度平衡也非常重要。

3.1 伪随机数生成器

混合密码系统中,伪随机数生成器被用来产生会话密钥。如果伪随机数生成器的算法很差,生成的会话密钥很容易被攻击者推测出来。这样的话,会话密钥的密钥控件不大,很容易通过暴力破解来发动攻击。

3.2 对称密码

需要使用高强度的对称密码算法,并确保密钥具有足够的长度。此外,还需要选择使用合适的分组密码模式。

3.3 公钥密码

需要使用高强度的公钥密码算法,并确保密钥有足够的长度。

3.4 密钥长度的平衡

混合密码系统中运用了对称密码和公钥密码两种密码方式,无论其中任何一方的密钥过短,都可能遭到集中攻击,因此对称密码和公钥密码的密钥长度必须具备同等的强度。

然而,考虑到长期运用的情况,公钥密码的强度应该要高于对称密码,因为对称密码的会话密钥被破译只会影响本次通信的内容,而公钥密码一旦被破译,从过去到未来的所有通信内容就都能够被破译了。

4. 密码技术的组合

混合密码系统是将对称密码与公钥密码相结合,从而构建出一种同时发挥两者优势的系统。

分组密码模式,是将只能加密固定长度的数据的分组密码进行组合,从而使其能够对更长的明文进行加密的方法。通过采用不同的分组密码组合方式,可以构建出各种具有不同特点的分组密码模式。

三重DES,是将3个DES组合在一起,从而形成一种密钥比DES更长的对称密码。通过加密 - 解密 - 加密这样的连接方式 ,不但可以维持和DES的兼容性,同时还能够选择性的使用DES-EDE2这种密钥长度较短的密码。

数字签名,是由单向散列函数和公钥密码组合而成的。

证书,是由公钥和数字签名组合而成的。

消息认证码,是由单向散列函数和密钥组合而成的,也可以通过对称密码来生成。

伪随机数生成器,可以使用对称密码、单向散列函数或者公钥密码来构建。