图解密码技术 - 密钥

什么是密钥

密钥其实就是一个巨大的数字,在使用对称密码、公钥密码(非对称密码)、消息认证码、数字签名等密码技术时,都需要使用密钥。

数字本身的大小并不重要,重要的是密钥空间的大小,也就是可能出现的密钥的总数量,密钥空间越大,进行暴力破解就越难。另一方面,密钥空间的大小密钥的长度决定。

密钥和明文是等价的,攻击者知道密钥、密文和加密方式后,就能知道明文。

信息的机密性不应该依赖于密码算法本身,而是应该依赖密钥。

图解密码技术 - 消息认证码

消息认证码(Message Authentication Code)是一种确认完整性并进行认证的技术。

对于单向散列函数来说,主要的作用是为了确保消息的完整性。但对于消息认证码,主要作用是认证,指的是消息来自正确的发送者这一性质。

消息认证码的输入包括任意长度的消息和一个发送者与接收者之间的共享密钥,输出为一个固定长度的数据,称为MAC值

图解密码技术 - 混合密码系统

混合密码系统(hybird cryptosystem)结合了对称密码非对称密码两种加密方式各自的优势,使用对称密码对数据的明文进行加密,使用非对称密码对称密码的密钥进行加密。

这种方式解决了只使用非对称密码时,处理速度慢的问题,但对于中间人的攻击并无抵御。

图解密码技术 - 随机数

随机数的作用

随机数主要用来:

  • 生成密钥:用于对称密码和消息认证码
  • 生成密钥对:用于非对称密码和数字签名
  • 生成初始化向量(IV):用于对称密码的CBC、CFB、OFB模式
  • 生成nonce:用于防御重放攻击以及对称密码CTR模式
  • 生成盐