1.对称加密
常见的加密技术通常分为两大类:对称加密和非对称加密。
对称加密也叫私有密钥加密,只有一个密钥对信息进行加密与解密,发送者与接收者都必须知道密钥。信息发送者就一个密钥对要发送的信息进行加密,然后将密钥和密文发送给对方,信息接收者用密钥解密密文,得到明文。如图4-4所示。
图4-4 对称加密示意图
从对称加密的过程来看,密钥是该加密系统最核心的部分。对称加密系统的安全性依赖于以下两个因素:第一,加密算法必须是足够强的,仅仅基于密文本身去解密信息在实践上是不可能的;第二,加密方法的安全性依赖于密钥的保密性,而不是算法的保密性。所以在实践中,算法是公开的,而密钥必须保密。对称加密系统的这些特点使其有着广泛的应用。因为算法不需要保密,所以制造商可以开发出低成本的芯片以实现数据加密,而这些芯片适用的范围广,所以适合于大规模生产。
对称加密系统的主要问题有三个:一是密钥的管理非常复杂、代价高昂。比如对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。但是对于大型网络,当用户群很大,分布很广时,密钥的分配和保存就成了大问题。假如在某机构中有100个人,如果他们任意两人之间可以进行秘密对话,那么总共需要多少个密钥呢?每个人需要知道多少个密钥呢?也许很同意得出的答案,如果任何两个人之间要有不同的密钥,则总共需要4950个密钥,而且每个人应记住99个密钥。如果机构的人数是1000、10000或更多,管理密钥将是一件麻烦的事情。二是密钥分发困难,很难找到安全的途径分发密钥。在对称加密中,用户必须让接收人知道自己所使用的密钥,这个密钥需要双方共同保密,任何一方的失误都会导致机密的泄露;而且在告诉收件人密钥的过程中,还需要防止任何人发现或偷听密钥,有些认证系统在会话初期用明文传送密钥,这就存在密钥被截获的可能性。三是对称加密算法不能实现数字签名。对称加密是发送者和接收者按照协商的规则进行加密和解密,所以在发生信息纠纷的时候,不存在第三方做认证。
对称加密系统最著名的是美国数据加密标准DES、高级加密标准AES和欧洲数据加密标准IDEA,典型代表为DES算法。下面以DES算法为例,介绍对称加密过程。
DES算法是美国国家标准局1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告。加密算法要达到的目的(通常成为DES密码算法要求)主要为以下四点:
(1)提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;
(2)具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握;
(3)DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础;
(4)实现经济,运行有效,并且适用于多种完全不同的应用。
1977年1月,美国政府颁布采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES——Data Encryption Standard)。
DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或解密的数据;Mode为DES的工作方式。它有两种:加密或解密。(www.daowen.com)
DES算法是这样工作的:如Mode为加密,则用Key将数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key将密码形式的数据解密,还原为Data的明码形式(64位)作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。
加密过程如下:
(1)加密前,先对整个的明文进行分组,每一个组长64位。
(2)使用密钥64位(实际56位,8位用于奇偶校验)。
(3)对每一个64位分组进行加密处理,产生一组64位密文数据。
(4)将各组密文串接起来,得出整个的密文。
解密只是加密的逆过程,使用以上相同的步骤,但要逆转应用子密钥的顺序。DES算法是可逆的。
DES算法具有极高的安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒钟检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的。当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度。
2.非对称加密
非对称式加密也称公开密钥加密,它用两个与数学相关的密钥对信息进行编码,其中一个叫公开密钥(Public-Key),可随意发给期望同密钥持有者进行安全通信的人;第二个密钥是私有密钥(Private-Key,也叫秘密密钥Secret-key),由用户自己秘密保存,私有密钥持有者对信息进行解密。现代加密算法将加密密钥与解密密钥区分开来,且由加密密钥事实上求不出解密密钥。两个密钥都可以用来加密或解密,当用公钥加密时,则用私钥去解密;反之,用私钥加密时则用公钥去解密。非对称加密的特点对信息的认证有着重要的意义。
非对称加密的过程如下:发送方收到接收方的公钥,将欲发送的信息用接收方的公钥加密;接收方接收到信息后,用自己的私钥解密。如图4-5所示。从非对称加密过程可以看出,如果发送方要与接收方进行安全的通信,即可用对方的公钥去加密,而公钥是不需要保密的,所以解决了对称加密中密钥分发困难的问题;另外,接收方只能用它自己的私有密钥解密得到原文,换句话说,就是只有接收方才能解读该信息,从而保证信息的保密性。
图4-5 非对称加密示意图
非对称加密对当代密码学的发展具有重要影响。当网络用户数很多时,对称密钥的管理十分烦琐,而公钥密码的密钥管理则可大大简化。
非对称加密的优越性就在于加密密钥可以公开,从而得到了密钥的分发的途径;而加密密钥不能用来解密,从而又保证了信息的保密性。从另一个角度看,用私钥解密,公钥验证又形成了数字签名的基础。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。