對稱密鑰加密
对称密钥算法是密码学中的一种方法。它是当解密和加密的密钥是完全相同的共享秘密。你可以随机生成秘密,或从密码中生成,或通过像Diffie-Hellman这样的秘密密钥交换程序生成。
对称密钥算法非常重要,因为它们在计算机上的速度比另一种:公钥算法快。在公钥密码学(非对称密钥密码学)中,加密用的密钥可以毫无问题地给公众,每个人都可以给你发送密文。加密用的密钥是"公开的",因为在实践中,它不能用来获得解密用的密钥。这是很有用的,但是公钥加密算法在计算机上的速度很慢,所以只能用来发送秘钥。那么其他的一切都用对称密钥算法,因为它们更快。
对称密钥算法有两种,称为流密码和块密码。流密码器将信息作为一个比特流,一次一个地加密。块密码器把比特块,作为一个单元进行加密,有时也会在后面使用答案。64位的区块已被普遍使用;尽管像高级加密标准这样的现代密码器使用128位的区块。
流行的对称加密器的例子包括Twofish、Serpent、AES(又名Rijndael)、Blowfish、CAST5、RC4、TDES和IDEA。
在历史上,一些密码分析方法利用了对称性,所以对称系统的安全性较低。一些攻击被称为已知明文攻击、选择明文攻击、差分密码分析和线性密码分析。
对称密钥加密的其他术语是秘密密钥、单密钥、共享密钥、一密钥和最终的私钥加密。最后一个术语与公钥密码学中的私钥一词的含义不同。
在对称密钥算法中,用于加密的密钥与用于解密的密钥是相同的。因此,需要对其进行保密。
对称与非对称算法对比
与对称算法不同,非对称密钥算法使用的加密密钥与解密密钥不同。意思是说,知道非对称算法的加密密钥的用户可以对消息进行加密,但不能计算解密密钥,也不能对用该密钥加密的消息进行解密。下面对这两类算法进行简单的比较。
速度
对称密钥算法的计算量一般比非对称密钥算法小得多。在实践中,非对称密钥算法通常比对称密钥算法慢数百到数千倍。
关键管理
对称密钥算法的一个缺点是需要一个共享的秘密密钥,双方在两端持有相同的副本。为了保证n人小组中每个人之间的安全通信,总共需要n(n - 1)/2个密钥,也就是可能的通信渠道总数。为了限制密码攻击者可能发现的影响,应该定期更换,并在分发和服务过程中保持安全。选择、分发和存储密钥的过程被称为密钥管理,很难可靠、安全地实现。
混合密码系统
在现代密码系统设计中,非对称(公钥)和对称算法都被用来利用两者的优点。非对称算法用于在一个会话开始时分配对称密钥。一旦会话的所有各方都知道对称密钥,使用该密钥的更快的对称密钥算法就可以用来加密会话的剩余部分。这就简化了密钥分配问题,因为非对称密钥只需要真实地分配,而对称密钥则需要以真实和保密的方式分配。
采用这种混合方式的系统包括SSL、PGP和GPG等。
相关网页
- 非对称密钥算法
问题和答案
问:什么是对称密钥算法?答:对称密钥算法是密码学中的一种方法,解密和加密的密钥是完全相同的共享秘密。
问:如何生成秘密?
答:秘密可以随机产生,或从密码中产生,或通过像Diffie-Hellman这样的秘密密钥交换程序产生。
问:为什么对称密钥算法很重要?
答:对称密钥算法非常重要,因为它们在计算机上比公钥算法更快。
问:什么是公钥密码学(非对称密钥密码学)?
答:在公开密钥加密法(非对称密钥加密法)中,加密的密钥可以毫无问题地交给公众,每个人都可以给你发送秘密信息。加密用的密钥是 "公开的",因为在实践中,它不能被用来获取解密用的密钥。
问:什么是两种对称性的加密器?
答:两种对称密码器包括流密码器和块密码器。流式密码器将信息作为比特流逐一加密,而块式密码器将比特块作为一个单元进行加密,有时也会在以后使用答案。
问:现代密码器使用多大的块?
答:现代密码器如高级加密标准使用128位块。
问:在历史上,有哪些类型的攻击被用来利用对称性?
答:在历史上,一些密码分析方法利用了对称性,所以对称系统的安全性较低。已经使用的一些攻击包括已知明文攻击、选择明文攻击、差分密码分析和线性密码分析。