密码技术小结
密码学家的工具箱
密码学家的工具主要包括6中密码技术
对称密码是一种用相同的密钥进行加密和解密的技术,用于确保消息的机密性。在对称密码的算法方面,DES和三重DES曾被广泛使用,但今后将逐步过渡到AES。尽管对称密码能够确保消息的机密性,但需要解决将解密密钥配送给接收者的密钥配送问题。
公钥密码是一种用不同的密钥进行加密和解密的技术,和对称密钥一样用于确保消息的机密性。使用最广泛的一种公钥密码是RSA,除此之外还有ElGamal和Rabin等算法,以及与其相关的Diffie-Hellman密钥交换技术。和对称密钥相比,公钥密码的速度非常慢,因此一般都和对称密码一起组成混合密钥系统来使用。公钥密码能够解决对称密码中的密钥交换问题,但存在通过中间人攻击被伪装的风险,因此需要对带有数字签名的公钥进行认证。
单向散列函数是一种将长消息转换为短散列值的技术,用于确保消息的完整性。在单向散列函数的算法方面,128比特的MD5和160比特的SHA1曾被广泛使用,但在今后将逐步使用能够产生长度更长的散列值的算法。单向散列函数可以单独使用,也可以作为消息认证码、数字签名以及伪随机数生成器等技术的组成元素来使用。
消息认证码是一种能够识别通信对象发送的消息是否被篡改的认证技术,用于验证消息的完整性,以及对消息进行认证。消息认证码的算法中,最常用的是利用单向散列函数的HMAC。HMAC的构成不依赖于某一种具体的单向散列函数算法。消息认证码能够对通信对象进行认证,但无法对第三方进行认证。此外,它也无法防止否认。
数字签名是一种能够对第三方进行消息认证,并能够防止通信对象作出否认的认证技术。数字签名的算法包括RSA,ElGamal和DSA。公钥基础设施(PKI)中使用的证书,就是对公钥加上认证机构的数字签名构成的。要验证公钥的数字签名,需要通过某种途径获取认证机构滋生的合法公钥。
伪随机生成器是一种能够生成具备不可预测性的比特序列的技术,由密码和单向散列函数等技术构成。伪随机数生成器用于生成密钥和初始化向量等。