TLS学习系列之一:基本概念

来源:互联网 发布:linux翻墙工具 编辑:程序博客网 时间:2024/06/08 14:05

伴随着到处全网HTTPS的推广,有必要理解下其底层依赖的TSL协议,这是其安全的基石。然而在学习TLS的协议时,一个难点在于要理解很多密码学的概念,而很多像我一样的初学者在遇到这些时都很茫然,所以由必要先了解一些密码学的基本知识。

两种密码体制

  • 对称秘钥体制
    使用对称密码体制的双方都拥有相同的秘钥,任何一方加密的数据都可由对方进行解密,因此如果任何一方的秘钥泄露,则数据将无法保证其安全性。常用的对称密码方案有:DES,AES等分组加密方式,以及RC系列流式加密方式。
  • 公开秘钥体制
    公开密码体制使用一对秘钥,其中一个秘钥可以对外公开,称为公钥,另一个秘钥需要秘密保存,称为私钥。常见的公开秘钥方案有:Elliptic curve cryptography(ECC), RSA,ElGamal等。

秘钥交换方案

  • DH方案
    即Diffie–Hellman key exchange,基于有限域上的离散对数难题,允许通信双方在不安全信道上建立共享秘钥。
  • RSA方案
    RSA用作秘钥交换主要是利用”公钥加密的数据只能由对应的私钥进行解密”这个特点,而私钥由对方秘密保管,故外人无法知晓传递的共享秘钥。

常见的密码学名词

  • DES: Data Encryption Standard,属于分组加密方式,采用64bit的秘钥,曾作为对称秘钥的代表红极一时,被广泛使用,后因秘钥长度过短导致安全性降低,被逐渐废弃。随后衍生出2DES,3DES(表示两重DES,三重DES),采用长度更长的秘钥,安全性也大为增强。不过后来2DES也有安全性问题,因而现在还在使用的是3DES。
  • AES: Advanced Encryption Standard,主要是用来替换DES,秘钥长度可选128/192/256 bit,为现在最广泛使用的对称加密方案。
  • RSA: 公开秘钥方案的典型代表,目前得到广泛使用,用于签名及秘钥交换等场合,其安全性基于大整数的素数分解难题。
  • DSA:数字签名算法,源于ElGamal,虽属于公开秘钥体制,但却只能用于签名的场合,不能用于加解密。原因在于其设计之初的目标就定位于快速的签名,因而不具备类似RSA那样加解密可逆的特点。
  • DH: 也即Diffie–Hellman key exchange,也属于公开秘钥体制,但是主要用于在不安全的信道上建立共享秘钥。DH目前作为主要的秘钥交换方案被广泛使用,但其有一个致命缺点就是容易受到中间人攻击(man in the middle),因此,实际使用时必须结合身份认证方案进行。
  • ECC: 即Elliptic Curve Cryptography, 属于公开秘钥体制,其安全性基于椭圆曲线上的离散对数难题,其相对RSA的优势在于可以用更少的秘钥长度获得相同的安全性能。
  • ECDH: DH方案的一个变种,基于ECC,目前作为秘钥交换的主要方式被广泛使用。
  • ECDSA: DSA方案的一个变种,基于ECC,目前也作为身份认证的主要方案被广泛使用。
  • ECB/CBC:这些属于分组加密方案中的分组操作模式,主要是定义诸如分组不足如何padding,如何反复的作用于其他分组等等。
原创粉丝点击