对称、非对称和HASH加密的应用(转)
加密可以保证数据的保密性,也可用于验证用户,它是在实现网络安全的重要手段之一。
加密提供以下四种服务:
数据保密性:这是使用加密的通常的原因。通过小心使用数学方程式,你可以保证只有你打算接收的人才可以查看它。
数据完整性:对需要更安全来说数据保密是不够的。数据仍能够被非法破解并修改。一种叫HASH的运算方法能确定数据是否被改过。
认证:数字签名提供认证服务。
不可否定性:数字签名允许用户证明一条信息交换确实发生过。金融组织尤其依赖于这种方式的加密,用于电子货币交易。
加密强度
加密文件一个常被讨论但又经常被误解的方面是加密强度。
加密强度取决于三个主要因素:
首先是算法的强度,包括几个因素,例如,除了尝试所有可能的密钥组合之外的任何方法都不能数学的使信息被解密。我们应该使用工业标准的算法,它们已经被加密学专家测试过无数次,任何一个新的或个体的配方将不被信任直到它被商业的认证。
第二个因素是密钥的保密性,一个合乎逻辑但有时被忽略了的方面,没有算法能够发挥作用如果密钥受到损害,因此,数据的保密程度直接与密钥的保密程度相关,注意区分密钥和算法,算法不需要保密,被加密的数据是先与密钥共同使用,然后再通过加密算法。
第三个因素是密钥程度,这是最为人所知的一个方面,根据加密和解密的应用程序,密钥的长度是由”位”为单位,在密钥的长度上加上一位则相当于把可能的密钥的总数乘以二倍,简单的说构成一个任意给定长度的密钥的位的可能组合的个数可以被表示为2的n次方,这儿的n是一个密钥长度,因此,一个40位密钥长度的配方将是2的40次方或1099511627776种可能的不同的钥。
尽管可能加密的密钥的总数是非常大的,专门的计算机现在可以在不到一天时间内试验许多种密钥的组合。其实任何密码都能破解而无论它的长度,想像一下这样的密钥利用现代的机器去破解是多么的快速。简单的说,一个人或组织在密钥破解的装备上花的钱越多,则密钥就会被越快的破解。
建立信任关系
应用加密指的是在主机之间建立一个信任关系。在最基本的级别上,一个信任关系包括一方加密的信息,并只有另一方的合作伙伴可以解密这个信息。这种任务是利用公钥加密来完成的。这种类型的加密要求你建立一个私钥和一个公钥。一旦你已经产生了一对密钥,你可以把公钥发布给任何人。
你可以通过以下两种方法来发布你的公钥:
手动:你首先必须和接收方交换公钥,然后用接收方的公钥来加密信息。PGP和S/MIME需要使用这种方法。
自动:SSL和IPSec通过一系列的握手可以安全地交换信息。
下面是在加密中一些术语的简单介绍:
对称加密
在对称加密(或叫单密钥加密)中,只有一个密钥用来加密和解密信息。尽管单密钥加密是一个简单的过程,但是双方都必须完全的相信对方,并都持有这个密钥的备份。但要达到这种信任的级别并不是想像中的那么简单。当双方试图建立信任关系时可能一个安全破坏已经发生了。首先密钥的传输就是一个重要问题,如果它被截取,那么这个密钥以及相关的重要信息就没有什么安全可言了。
但是,如果用户要在公共介质 (如互联网) 上传递信息,他需要一种方法来传递密钥,当然物理的发送和接收密钥是最安全的,但有时这是不可能的。一种解决方法就是通过电子邮件来发送,但这样的信息很容易的被截取到,从而击破了加密的目的。用户不能加密包含密钥的邮件,因为他们必须共享另一个用来加密含有密钥邮件的密钥。这种困境就产生了问题:如果对称密钥用它们自己来加密,那为什么不直接用相同的方法在第一步就使用?一个解决方案就是用非对称加密,我们将在本课的后面提到。
所有类型加密的一个主题就是破解。一种减少使用对称加密所造成的威胁的反措施就是改变密钥的规律性。然而,定期改变密钥经常是困难的,尤其是你的公司里有很多用户。另外,黑客可以使用字典程序,password sniffing来危及对称密钥的安全,或者通过搜翻办公桌,钱包以及公文包。对称加密也很容易被暴力攻击的手段击败。
非对称加密
非对称加密在加密的过程中使用一对密钥,而不像对称加密只使用一个单独的密钥。一对密钥中一个用于加密,另一个用来解密。如用A加密,则用B解密;如果用B加密,则要用A解密。
重要的概念是在这对密钥中一个密钥用来公用,另一个作为私有的密钥;用来向外公布的叫做公钥,另一半需要安全保护的是私钥。非对称加密的一个缺点就是加密的速度非常慢,因为需要强烈的数学运算程序。如果一个用户需要使用非对称加密,那么即使比较少量的信息可以也要花上几个小时的时间。
非对称加密的另一个名称叫公钥加密。尽管私钥和公钥都有与数学相关的,但从公钥中确定私钥的值是非常困难的并且也是非常耗时的。在互联网上通信,非对称加密的密钥管理是容易的因为公钥可以任易的传播,私钥必须在用户手中小心保护。
HASH加密把一些不同长度的信息转化成杂乱的128位的编码里,叫做HASH值。HASH加密用于不想对信息解密或读取。使用这种方法解密在理论上是不可能的,是通过比较两上实体的值是否一样而不用告之其它信息。HASH加密别一种用途是签名文件。它还可用于当你想让别人检查但不能复制信息的时候。
签名
信息鉴别的方法可以使信息接收者确定:信息发送者的身份以及信息在传送过程中是否被改动过。如果信息的收发双方对该信息的内容及发送端没有争执的话,那么只采用鉴别技术也就足够了。鉴别技术可以保证在信息传送过程中对信息内容的任何改动都可以被检测出来,并且能够正确的鉴别出信息发送方的身份。但是,当信息的收发方对信息的内容及发送端产生争执时,只用鉴别技术就不够了。
收方可以伪造一份信息,从中获得非法利益,并且自称该信息是由发送方发过来的。例如,银行通过通信网络传送一张支票,收方就可以对支票数额进行改动,并且声称他已收到了这张支票。利用前面的鉴别技术丝毫也解决不了这个问题,因为鉴别使用了一个收/发双方共享的秘密密钥,这样才能是发放产生一个鉴别码而接收方又能对该鉴别码进行校验。但是收方也能对他伪造的信息产生一个合法的鉴别码,这给整个系统带来严重的安全问题。
在许多情况下,特别是商业系统中,通常都利用书面文件来规定契约性的责任,虽然鉴别技术可以完全有效的防止第三者的介入,但是却丝毫不能防止接收者的伪造。问题的另一方面是发送方可能是不诚实的,由于他发送的信息变得对他很不利,而要逃避责任,那么发送方就可能谎称他从未发过这个信息。在整个争执过程中,第三方也无法分辨那种情况是真实的。
为了解决上述问题,就必须利用另外一种安全技术----数字签名。签名必须达到如下效果:在信息通信的过程中,接收方能够对公正的第三方(可以是双方事前统一委托其解决某一问题或某一争执的仲裁者)证明其收到的报文内容是真实的,而且确实是由那个发送方发过来的,同时签名还必须保证发送方发送后不能根据自己的利益否认他所发送过的报文,而收方也不能根据自己的利益来伪造报文或签名。
对于数字签名的产生过程来说,必须有足够的信息才能对报文和签名进行验证,没有足够的信息就会给伪造或否认报文提供可乘之机。但是收发双方用来产生与校验的签名的信息不能完全相同,因为一旦接收方能够用发送方用来产生签名的相同信息(算法和参数)来证实报文和签名,那么收方同样也能够用它来伪造报文和签名。所以签名产生者与签名证实者之间的相同信息绝对不能太多。如果发送方事后担心接收方否认接收到了他所发送的报文,那么发送方应能够请求获得报文证明,也就是说由接收方对发送方提供收到报文的证据。例如,如果甲方把报文发送给乙方,那么乙方就要向甲方发送一份签了名的报文证明收到了,由于这份报文有乙方的签名,所以乙方是不能抵赖他所收到的报文的。
随着信息经济和知识经济的迅猛发展,无纸办公彻底改变了过去手工操作的各种不便,显得更安全、更有效、更迅速、更简洁、更方便。数字签名以其独特的优势适应了这种发展,在无纸办公中占有十分重要的地位。例如,对公司内部有下级呈给上级请求批阅的公文 在以往只需领导大笔一挥签名盖章,以个人的笔迹来证明其真实性。但手写的文件签名非常容易伪造。除此之外,签名者还可以否认签名,宣称它是伪造的。但在无纸办公年代,计算机网络中传送的电子公文又如何盖章呢?又如何来证明签名的真实性呢?这就是——数字签名。