什么是私有密钥密码技术
私有密钥(Symmetric Key),又叫对称密钥。密钥加密算法采用同一把密钥进行加密和解密。它的优点是加密和解密速度非常快,但密钥的分发和管理比较困难。信息的发送者和接收者必须明确同一把密钥。因此,必须进行密钥交流,这通常需要其他更安全的信道来传送密钥。另外,每一对用户都需要有自己的一个独一无二的密钥。因此,如果一个发送者与很多人通信,就需要管理很多密钥。主要的对称密钥加密算法有DES、3DES、RC2、RC4、RC5、Blowtish和CAST等。在VPN中常用的有DES和3DES。DES是一个分组加密算法,它利用56位密钥对64位的分组进行数据加密。64位一组的明文从算法的一端输入,64位一组的密文从另一端输出。加密和解密用的是同一个算法。3DES利用3个密钥加密3次,但速度要慢得多。
对称(传统)密码体制是从传统的简单换位,代替密码发展而来的,自1977年美国颁布DES密码算法作为美国数据加密标准以来,对称密钥密码体制得到了迅猛地发展,在世界各国得到了关注和使用。对称密钥密码体制从加密模式上可分为序列密码和分组密码两大类。
1、序列密码
序列密码一直是作为军事和外交场合使用的主要密码技术之一,它的主要原理是,通过有限状态机产生性能优良的伪随机序列,使用该序列加密信息流,(逐比特加密)得到密文序列,所以,序列密码算法的安全强度完全决定于它所产生的伪随机序列的好坏。衡量一个伪随机序列好坏的标准有多种,比较通用的有著名的Golamb的三个条件,Rueppel的线性复杂度随机走动条件,线性逼近以及产生该序列的布尔函数满足的相关免疫条件等。
产生好的序列密码的主要途径之一是利用移位寄存器产生伪随机序列, 典型方法有:
反馈移位寄存器:采用n阶非线性反馈函数产生大周期的非线性序列,例如M序列,具有较好的密码学性质,只是反馈函数的选择有难度,如何产生全部的M序列至今仍是世界难题。
利用线性移位寄存器序列加非线性前馈函数,产生前馈序列,如何控制序列相位及非线性前馈函数也是相当困难的问题,Bent序列就是其中一类好的序列,我国学者对反馈序列和前馈序列的研究都取得了相当多的成果。
钟控序列,利用一个寄存器序列作为时钟控制另一寄存器序列(或自己控制自己)来产生钟控序列,这种序列具有大的线性复杂度。 组合网络及其他序列,通过组合运用以上方法,产生更复杂的网络,来实现复杂的序列,这种序列的密码性质理论上比较难控制。 利用混沌理论,细胞自动机等方法产生的伪随机序列。
对序列密码攻击的主要手段有代数方法和概率统计方法,两者结合可以达到较好的效果。目前要求寄存器的阶数大于100阶,才能保证必要的安全。
序列密码的优点是错误扩展小,速度快,利于同步,安全程度高。
2、分组密码
分组密码的工作方式是将明文分成固定长度的组(块),如64比特一组 ,用同一密钥和算法对每一块加密,输出也是固定长度的密文。例如DES密码算法的输入为64比特明文,密钥长度56比特,密文长度64比特。
设计分组密码算法的核心技术是:在相信复杂函数可以通过简单函数迭代若干圈得到的原则下,利用简单圈函数及对合等运算,充分利用非线性运算。以DES算法为例,它采用美国国家安全局精心设计的8个S-Box 和P-置换,经过16圈迭代,最终产生64比特密文,每圈迭代使用的48比特子密钥是由原始的56比特产生的。
DES算法加密时把明文以64bit为单位分成块,而后用密钥把每一块明文转化成同样64bit的密文块。DES可提供72,000,000,000,000,000个密钥,用每微秒可进行一次DES加密的机器来破译密码需两千年。采用DES的一个著名的网络安全系统是Kerberos,由MIT开发,是网络通信中身份认证的工业上的事实标准。
DES(或其他分组密码)算法的使用方式有4种,电子密本(ECB), 密码分组链接(CBC),输出反馈(OFB)和密文反馈(CFB)。
DES的密钥存在弱密钥,半弱密钥和互补密钥,选择密钥时要注意这些问题。DES受到的最大攻击是它的密钥长度仅有56比特,强力攻击的代价低于1000万美元,1990年S.Biham 和 A.Shamir提出了差分攻击的方法,采用选择明文247攻击,最终找到可能的密钥,M.Matsui 提出的线性分析方法,利用243个已知明文,成功地破译了16圈DES算法,到目前为止,这是最有效的破译方法。
基于以上弱点,人们将DES算法作了多种变形,三重DES方式,独立子密钥方法,可变的S-Box及其使用次序以及推广的GDES等。这些改变有些是增强了密码算法的安全性,有些作用不大,有些还削弱了DES的安全性。
自从DES算法颁布以来,世界各地相继出现了多种密码算法,之所以出现这些算法,有政治原因和技术原因,各国在商用方面都需要自己设计的密码算法,不能依靠外国的算法,又因为DES算法的弱点和软件实现中面临的位操作及大量的置换,设计寿命仅有5年,所以必须设计出更高强度的密码算法,以代替DES,这些算法有:
LUCIFER算法,Madryga算法,NewDES算法,FEAL-N算法,REDOC算法, LOKI算法,KHUFU算法, KHAFRE算法,RC2及RC4算法,IDEA算法, MMB算法,CA-1.1算法,SKIPJACK算法,Karn 算法以及MDC算法等。其中多数算法为专利算法。以上这些算法有些已经遭到了破译,有些安全强度不如DES,有些强度高于DES,有些强度不明,还有待于进一步分析。其中安全强度高于DES算法的如RC2及RC4算法,IDEA算法, SKIPJACK算法等。
总之,因为对称密钥密码系统具有加解密速度快,安全强度高等优点,在军事,外交以及商业应用中使用越来越普遍。