采用密码技术可以隐藏和加密需要保护的信息,使未授权者不能提取原始的信息。被隐藏的原始信息称为明文,隐藏后的信息称为密文,将明文变换为密文的过程称为加密,其逆过程,即将密文变为明文的过程为解密,对明文加密操作时所采用的一组规则称为加密算法,对密文解密所采用的一组规则为解密算法,加密和解密算法的操作通常都是在一组密钥的控制下进行的,分别称为加密密钥和解密密钥。数据以密文的形式存储于计算机中,或者在数据通信网络中传输,因此即使数据被未授权者非法窃取,未授权者也不能理解它的真实含义,从而达到数据保密的目的,同样,未授权者也不能伪造合理的密文,因而不能纂改数据,从而达到确保数据真实性的目的。
现有密码系统有:古典密码系统和现代密码学。古典密码系统是加密和解密都使用相同密钥的密码系统。现代密码学由1976年Diffie和Hellman提出的一种新型的密码学方法,它的加解密不再使用同一密钥,加密、解密的密钥一个被公开,成为公钥,另一个由使用者保密,称为私钥。
现有密码技术局限性
当前密码技术的安全信息系统都是基于以下三个公设:
1、随机性公设:认为产生均匀分布的随机比特序列是可能的。
2、计算公设:认为在一个合理的计算时间内,单向函数是存在的,它正向计算容易,求逆困难。
3、物理公设:认为对存储于单一地域的信息实行物理保护是可能的。
密钥需不停更新,其产生要随机产生,做到不可预测,来防止敌手在已破译部分密文掌握密钥的情况下,破译接下来的加密信息。理论上,真随机数可从自然的随机现象中提取,但在实现过程中,存在着电子技术中客观存在的频率不稳、相位不稳、幅度不稳以及同步捕捉等不确定因素,所以真的随机数不能再生且很难获得,而由算法和电子硬件所产生的伪随机数并不是都具有不可预测性,这样的随机序列是不安全不能用的。
对于加密算法,是越来越复杂,在已知密钥的情况下,解密容易,不知密钥的情况下,解密从时间上看成为不可能;从已知公钥推算私钥在时间上不可能,这就是计算公设中的“单向函数是存在的,它正向计算容易,求逆困难”。然而,单钥分组密码、公钥密码依赖于器件,公钥密码还有依赖于数学难题,在当前硬件设备的各能力下,各计算公设成立的加密技术,并不一定能保证以后计算能力加大的情况下也是“在一个合理的计算时间内求逆困难”。因为在理论上这些数学难题是可破的,只是现在的设备无法在合理的时间内完成。对于RSA,其安全性是基于大素数分解的难解性,目前尚未证明大整数的素分解问题是难解问题,对于椭圆曲线公钥密码,其安全性依赖于椭圆曲线离散对数问题,一样不是不可解的。
对于物理公设,认为对储存在单一地域的信息实行物理保护是可能的,但物理保护长距离的发送信息是非常困难的。对于单钥密码系统,密钥的共享要求密钥进行分发需要长距离传送;公钥密码系统中,公钥的分发也是长距离传送,要保证传送密钥的安全,在现代网络条件下就要求更高级的安全信道来传送密钥,而高级的安全信道又要求好的密码体制……如此反复。
除了以上所提到的这些尴尬以外,为了提高加密的安全性强度,密钥长度不断加大,密钥长度直接关系到计算资源、存储、通信和计算时间的开销,即成本上和时间上的开销。安全性要求密钥增长,密钥增长加大各类开销而导致密码系统又不实用,这又是一对尴尬的矛盾。