对称密钥算法和非对称密钥算法
密码学中两种常见的密码算法为对称密码算法(单钥密码算法)和非对称密码算法(公钥密码算法)。
所谓对称密钥算法是指如果一个加密算法的加密密钥和解密密钥相同,或者虽然不相同,但是可由其中的任意一个很容易的推导出另一个,即密钥是双方共享的。
非对称密钥算法是指一个加密算法的加密密钥和解密密钥是不一样的,或者说不能由其中一个密钥推导出另一个密钥。这两个密钥其中一个称为公钥,用于加密,是公开的,另一个称为私钥,用于解密,是保密的。其中由公钥计算私钥是计算上不可行的。
这两种密码算法的不同之处主要有如下几个方面:
1、加解密时采用的密钥的差异:从上述对对称密钥算法和非对称密钥算法的描述中可看出,对称密钥加解密使用的同一个密钥,或者能从加密密钥很容易推出解密密钥;而非对称密钥算法加解密使用的不同密钥,其中一个很难推出另一个密钥。
2、算法上区别:①对称密钥算法采用的分组加密技术,即将待处理的明文按照固定长度分组,并对分组利用密钥进行数次的迭代编码,最终得到密文。解密的处理同样,在固定长度密钥控制下,以一个分组为单位进行数次迭代解码,得到明文。而非对称密钥算法采用的思想是从一个方向求值是容易的,而其逆向计算却很困难,或者说是计算不可行的。加密时对明文利用公钥进行加密变换,得到密文。解密时对密文利用私钥进行解密变换,得到明文。②对称密钥算法具有加密处理简单,加解密速度快,密钥较短,发展历史悠久等特点,非对称密钥算法具有加解密速度慢的特点,密钥尺寸大,发展历史较短等特点。
3、密钥管理安全性的区别:对称密钥算法由于其算法是公开的,其保密性取决于对密钥的保密。由于加解密双方采用的密钥是相同的,因此密钥的分发、更换困难。而非对称密钥算法由于密钥已事先分配,无需在通信过程中传输密钥,安全性大大提高,也解决了密钥管理问题。
4、安全性:对称密钥算法由于其算法是公开的,其安全性依赖于分组的长度和密钥的长度,常的攻击方法包括:穷举密钥搜索法,字典攻击、查表攻击,差分密码分析,线性密码分析,其中最有效的当属差分密码分析,它通过分析明文对密文对的差值的影响来恢复某些密钥比特。非对称密钥算法安全性建立在所采用单向函数的难解性上,如椭圆曲线密码算法,许多密码专家认为它是指数级的难度,从已知求解算法看,160bit的椭圆曲线密码算法安全性相当于1024bit RSA算法。
对称算法有:DES IEDS