电子商务数字加密与认证

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章数字加密与认证第3章数字加密与认证加密是为了保证信息安全而采取的一种措施。加密能够有效地保护数据文件或传输数据的内容,从而减少被非授权方窃取的可能性。加密可以检测出对数据的偶然或故意的变动,也能提供对文档作者的验证。本章将首先介绍有关密码学的基本概念和典型算法以及密码管理与分析的相关知识,然后详细介绍数字签名、数字证书和身份认证、消息认证等技术,最后通过RSA加密算法分析与PGP的安装、配置和使用等实践项目加深读者对本章内容的理解。3.1密码学基础3.1.1加密的起源及发展密码学的发展大致可分为以下3个阶段:第一阶段为从古代到1949年。这一时期可以看作是科学密码学的前夜时期,这阶段的密码技术可以说是一种艺术,而不是一种科学。密码学专家常常是凭知觉和灵感来进行密码设计和分析而不是通过推理和证明。第二阶段为从1949年到1957年。1949年,Shannon发表的《保密系统的信息理论》为私钥密码系统建立了理论基础,从此密码学成为一门科学。第三阶段为从1976年至今。1978年,Diffie和Hellman发表的文章《密码学的新动向》一文导致了密码学上的一场革命。他们首先证明了在发送端和接收端无密钥传输的保密通讯是可能的,从而开创了公钥密码学的新纪元。此外,排列码加密解密方法使加密强度有了一个飞跃性的提高。3.1.2密码学概述1.密码系统的定义与相关基本概念下面对密码系统定义中出现的几个术语和密码学涉及的概念加以解释:(1)明文:被隐蔽的消息称作明文(plaintext)。(2)密文:隐蔽后的消息称作密文(ciphertext)或密报(cryptogram)。(3)加密:将明文变换成密文的过程称作加密(encryption)。(4)解密:由密文恢复出原明文的过程称作解密(decryption)。(5)加密算法:密码员对明文进行加密时采用的一组规则称作加密算法(encryptionalgorithm)。(6)发送者和接收者:传送消息的一方称作发送者(sender)简称为发方,而传送消息的预定对象称作接收者(receiver)简称为收方。(7)解密算法:接收者对密文进行解密时采用的一组规则称作解密算法(decryptionalgorithm)。(8)加密密钥和解密密钥:加密算法和解密算法的操作通常是在一组密钥(key)的控制下进行的,分别称为加密密钥(encryptionkey)和解密密钥(decryptionkey)。3.1.2密码学概述在所有著名密码系统中,凯撒密码是一个典型的替代密码。该密码系统可表达为如下:M={所有的罗马字母序列}K={i|i是整数,满足0≤i≤25}E={Ek|k∈K且对所有m∈M,Ek(m)=(m+k)mod26}D={Dk|k∈K且对所有c∈C,Ek(c)=(26+c-k)mod26}每一个Dk仅仅是相应Ek的转换。且有:C=M因为E明显是一个满射函数。3.1.2密码学概述2.数据加密模型3.1.2密码学概述3.网络数据加密的主要方式目前,网络数据加密主要有3种方式:链路加密、结点加密、端到端加密。1)链路加密对于在两个网络结点间的某一个通信链路,链路加密能为网上传输的数据提供安全保证。对于链路加密(又称在线加密),所有消息在被传输之前进行加密,在每一个结点对接收到的消息进行解密,然后先使用下一个链路的密钥对消息进行加密再传输。在到达目的地之前,一条消息可能要经过许多通信链路的传输。2)结点加密与链路加密不同,结点加密不允许消息在网络结点以明文形式存在,它先把收到的消息进行解密,然后采用另一个不同的密钥进行加密,这一过程在结点上的一个安全模块中进行。尽管结点加密能给网络数据提供较高的安全性,但它在操作方式上与链路加密是类似的。两者均在通信链路上为传输的消息提供安全保证;都在中间结点先对消息进行解密,然后进行加密。因为要对所有传输的数据进行加密,所以加密过程对用户是透明的。3.1.2密码学概述3)端到端加密端到端加密允许数据在从源点到终点的传输过程中始终以密文形式存在。采用端到端加密,消息在到达终点之前不进行解密,在整个传输过程中均受到保护。因此,即使有结点被损坏也不会使消息泄露。端到端加密系统的成本比较低,并且与链路加密和结点加密相比更可靠,更容易设计、实现和维护。端到端加密还避免了其他加密系统所固有的同步问题,因为每个报文包均是独立被加密的,所以一个报文包所发生的传输错误不会影响后续的报文包。此外,从用户对安全需求的直觉上讲端到端加密更自然些。单个用户可能会选用这种加密方法,以便不影响网络上的其他用户。端到端加密系统通常不允许对消息的目的地址进行加密,这是因为每一个消息所经过的结点都要用此地址来确定如何传输消息。由于这种加密方法不能掩盖被传输消息的源结点与目的结点,因此它对于防止攻击者分析通信业务是脆弱的。3.1.2密码学概述4.网络加密算法根据对明文信息加密方式的不同进行分类,网络加密算法可分为分组加密算法和序列加密算法:(1)分组加密算法:每次只加密一个二进制位。(2)序列加密算法:每次对一组进行加密。根据收发双方的密钥是否相同来进行分类,又可以分为对称式加密算法和非对称式加密算法:(1)对称式加密算法:加密和解密使用同一个密钥。(2)非对称式加密算法:加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必须配对使用,否则不能打开加密文件。“公钥”是可以对外公布的,“私钥”只能由持有人知道。采用对称式加密算法的文件在网络上传输时,如果把文件的密钥告诉对方,不管用什么方法都有可能被别人窃取。而非对称式加密算法有两个密钥,其中的“公钥”是可以公开的,收件人解密时只要用自己知道的“私钥”即可,这样就很好地避免了密钥的传输安全性问题。3.1.3对称密钥算法1.基本工作原理及特点对称密钥算法是指加密算法的加密密钥与解密密钥是相同的,或者虽然不同但由其中一个可以很容易地推导出另一个。密钥在信息传输的双方之间需要建立安全通道进行传递和分发,如果有第三方发现该密钥则会造成失密。因此,对称密钥算法的安全性依赖于密钥,泄露密钥就意味着任何人都能对消息进行加密解密。只要通信需要保密,密钥就必须保密,密钥在传输通道中的传递与分发不适合用明文的形式。3.1.3对称密钥算法尽管对称密钥算法有一些很好的特性,但也存在着明显的缺陷,主要有:(1)进行安全通信前需要以安全方式进行密钥交换。这一步,在某种情况下是可行的,但在某些情况下会非常困难,甚至无法实现。(2)密钥长度短,密码空间小,穷举方式攻击的代价小。(3)密钥数量众多。A与B两人之间的密钥必须不同于A和C两人之间的密钥,否则,A给B或C的消息的安全性就会受到威胁。3.1.3对称密钥算法2.常用的对称密钥算法常用的对称密钥算法有DES算法与IDEA算法。1)DES算法DES算法是一种迭代的分组密码,1977年,美国政府颁布采纳IBM公司设计的方案作为非机密数据的数据加密标准(dataencryptionstandard,DES)。它的输入与输出都是64位,包括一个56位的密钥和附加的8位奇偶校验位。攻击该算法的主要方法是穷举密钥法,因此,DES算法并不算非常安全,但是破译它也需要较长的时间,所以只要破译的时间超过了密文的有效期,则该加密就是有效的。现在为了提高安全性,出现了112位密钥,即对数据进行3次加密的算法,称为3DES。DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密。如信用卡持卡人的PIN的加密传输、IC卡与POS间的双向认证、金融交易数据包的MAC校验等均用到DES算法。3.1.3对称密钥算法3.1.3对称密钥算法2)IDEA算法国际数据加密算法IDEA是由瑞士联邦技术学院的中国学者来学嘉博士和著名的密码专家JamesL.Massey共同提出的。它在1990年被正式公布并在以后得到增强。这种算法是在DES算法的基础上发展出来的,类似于3DES。发展IDEA也是因为DES密钥太短。IDEA的密钥为128位,在今后若干年内此密钥应该是安全的,比DES算法更有效。类似于DES,IDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。与DES的不同之处在于,它采用软件实现和采用硬件实现同样迅速。3.1.4公开密钥算法20世纪70年代,美国斯坦福大学的两名学者Diffie和Hellman提出了一种新的加密方法PKE,即公开密钥加密方法。与传统的加密方法不同,该技术采用两个不同的密钥来对信息加密和解密,它也称为非对称式加密方法。每个用户有一个对外公开的加密算法E和对外保密的解密算法D,它们须满足如下条件:(1)D是E的逆,即D[E(X)]=X。(2)E和D都容易计算。(3)由E出发去求解D十分困难。3.1.4公开密钥算法公开密钥密码体制下加密密钥不等于解密密钥。加密密钥可对外公开,使任何用户都可将传送给此用户的信息用公开密钥加密发送,而该用户唯一保存的私人密钥是保密的,只有它能将密文解密。虽然解密密钥理论上可由加密密钥推算出来,但这种算法设计在实际上是不可能的,或者虽然能够推算出,但要花费很长的时间,因而是不可行的。所以,将加密密钥公开也不会危害密钥的安全。3.1.4公开密钥算法1977年出现了著名的RSA算法,该算法是基于单向陷门函数理论而设计的,数学上的单向陷门函数的特点是:单个方向求值很容易,其逆向计算却很困难。许多形式为y=f(x)的函数。对于给定的自变量x值,很容易计算出函数y的值;而由给定的y值,在很多情况下依照函数关系f(x)计算x值却十分困难。例如,两个大素数p和q相乘得到乘积n比较容易计算,但从它们的乘积n分解为两个大素数p和q则十分困难。如果n为足够大,当前的算法更不可能在有效的时间内实现。3.1.4公开密钥算法RSA算法的加密密钥和加密算法分开,使得密钥分配更为方便。它特别适合计算机网络环境。对于网络上的大量用户,可以将加密密钥用电话簿的方式打印出来。如果某用户想与另一用户进行保密通信,只需从公钥簿上查出对方的加密密钥,用它对所传送的信息加密发出即可。对方收到信息后用仅为自己所知的解密密钥将信息解密后查看报文的内容。由此可看出,RSA算法解决了大量网络用户密钥管理的难题。RSA并不能替代DES,它们是互补的。RSA的密钥很长且加密速度慢,而采用DES正好弥补了RSA的缺点,即DES适用于明文加密,RSA可用于DES密钥的加密。3.1.5密钥管理一个好的密钥管理系统应该做到以下几点:(1)密钥难以被窃取。(2)在一定条件下窃取了密钥也没有用,密钥的使用有范围和时间的限制。(3)密钥的分配和更换过程对用户透明,用户不一定要亲自掌管密钥。3.1.5密钥管理通常,人们使用以下几种密钥管理技术:(1)多密钥的管理。如果某机构中有100个人,任意两人之间要求可以进行秘密对话,那么总共需要4950个密钥,而且每个人应记住99个密钥。如果机构的人数非常多的话,那么,用这种办法管理密钥将是一件可怕的事情。(2)对称密钥管理。对称加密是基于共同保守秘密来实现的。采用对称加密技术的双方必须要保证采用的是相同的密钥,要保证彼此密钥的交换是安全可靠的,同时还要设定防止密钥泄露和更改密钥的程序。这样,对称密钥的管理和分发工作将变成一个存在潜在危险的和繁琐的过程。通过公开密钥加密技术实现对称密钥的管理,使相应的管理变得简单和更加安全,同时还解决了纯对称密钥模式中存在的可靠性问题和鉴别问题。3.1.5密钥管理(3)公开密钥管理/数字证书。贸易伙伴间可以使用数字证书(公开密钥证书)来交换公开密钥。国际电信联盟(ITU)制定的标准X509对数字证书进行了定义。数字证书通常包含唯一标识证书所有者(即贸易方)的名称、发布者的名称、证书所有者的公开密钥、证书发布者的数字签名、证书

1 / 52
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功