[精选]计算机数据及软件的安全15168.pptx
《[精选]计算机数据及软件的安全15168.pptx》由会员分享,可在线阅读,更多相关《[精选]计算机数据及软件的安全15168.pptx(163页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3-1 3-1 计算机数据加密计算机数据加密第三章第三章 计算机数据及软件的安全计算机数据及软件的安全信息安全问题信息安全问题l通信过程中的问题:通信过程中的问题:l发送方如何确保内容正确的传输到接收方,即发送方如何确保内容正确的传输到接收方,即内容没有被修改过?内容没有被修改过?l发送方如何确保在传输内容的过程中不被除接发送方如何确保在传输内容的过程中不被除接收人以外的第三方知道?收人以外的第三方知道?l接收方如何确内容确实是由发送方传输过来的,接收方如何确内容确实是由发送方传输过来的,而不是由其它伪造的?而不是由其它伪造的?l等等等等信息安全的基本要求信息安全的基本要求l真实性真实性l对信
2、息的来源进行判断,能对伪造来源的信息予以鉴别l保密性保密性l保证机密信息不被窃听,或窃听者不能了解信息的真实含义l完整性完整性l保证数据的一致性,防止数据被非法用户篡改l其它其它(如不可抵赖、可控性等)信息摘要算法信息摘要算法3-1 3-1 计算机数据加密计算机数据加密MD5MD5算法介绍算法介绍lMD5=Message Digest AlgorithmV5MD5=Message Digest AlgorithmV5l中文名为:消息摘要算法第五版l当然由MD2、MD3、MD4发展而来l是最常用的一种散列函数,用以提供消息完整性保护l无法从结果还原出原始信息l算法的输入输出算法的输入输出l输入:
3、任何长度的字节流l输出:16字节值(有时会以32位十六进制字符表示)l关键点:输入不同,输出也不同关键点:输入不同,输出也不同(并非绝对)MD5MD5算法过程算法过程lMD5MD5算法简要描述算法简要描述lMD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。l更简单的描述更简单的描述l对原始数据分组l每一组进行大量复杂的与、或、异或等运算l运算过程中有很多精心挑选的常量参与l结果处理成16字节的信息MD5MD5算法的应用算法的应用l给文件生成给文件生成“指纹指纹”l
4、不同的文件,其MD5算法的结果也不同,相当于一个独一无二的“指纹”。l例如下载的软件,通常会提供一个MD5值,下载完成后可以重新计算MD5值以校验下载是否损坏,或者是被人恶意修改过l登录认证时保护敏感信息登录认证时保护敏感信息l例如网站将你的登录密码经过计算为MD5后存储,验证时也将用户的输入的密码计算MD5,对两个MD5以后的值比较,而不是比较原始密码,这样就没有任何人知道你的密码,包括网站本身SHA-1SHA-1算法介绍算法介绍lSHA-1=Secure Hash Algorithm V1SHA-1=Secure Hash Algorithm V1l当然也有SHA-2,以及SHA-0lSH
5、A-2是一组标准的统称:SHA-224,SHA-256,SHA-384,SHA-512l同MD5类似,也是产生消息摘要的算法lSHA-1SHA-1算法的输入输出算法的输入输出l输入:任何长度的字节流l输出:20字节值(有时会以40位十六进制字符表示)lSHA-1SHA-1算法的应用算法的应用l同MD5类似,用作信息摘要或敏感信息保护信息摘要算法的安全性信息摘要算法的安全性l安全性分析安全性分析l理论上可以证明算法是不安全的。即不同的信息算出的摘要结果可能是相同的。l但是给定一个MD5值,要构造一个信息使其MD5值与给定值相同(即所谓产生碰撞),是非常因难的。l当前仍广泛应用于互联网信息安全应用
6、中。l安全性:SHA-2 SHA-1 MD5l碰撞碰撞l碰撞是存在的,但产生是困难的l山东大学王小云以研究用更少的计算产生碰撞的方法出名。加密算法加密算法对称加密对称加密3-1 3-1 计算机数据加密计算机数据加密对称加密算法的概念对称加密算法的概念l概念概念l简单来说,加密和解密使用同一个密钥的算法,简单来说,加密和解密使用同一个密钥的算法,称为对称加密算法。称为对称加密算法。l特点:算法公开、计算量小、加密速度快特点:算法公开、计算量小、加密速度快l不足:双方都使用同样钥匙,安全性较低不足:双方都使用同样钥匙,安全性较低l常见对称密算法常见对称密算法lDES/3DESDES/3DESlRC
7、2/RC4RC2/RC4lBlowfishBlowfish等等等等异或加密的安全性分析异或加密的安全性分析l异或加密异或加密l即用一个密钥对给定的信息进行异或运算,得到的密文,可以用相同的密钥再异或一次解密l安全性分析安全性分析l不要采用该算法,因为这种加密算法和直接给明文基本没有区别l用所谓重合码计数法找出密钥长度,按此长度移动密文并且和自身异或。这样就消除了密钥l破解只需要几秒到几小时的时间l用rand()随机数产生的一系列结果作为密钥进行异或的方法也不可取,也是易于解密的。结论:不要自己随便去“创造”加密算法算法保密不是真保密,密钥保密才是真谛DESDES算法(一)算法(一)lDES=D
8、ata Encryption StandardDES=Data Encryption Standardl口气很大:数据加密标准,确实应用非常广泛l现在已经不被视为一种安全的加密算法,主要因为它使用的56位密钥(7字节),过短,易于暴力破解,据说有人在22小时15分钟内即公开破解了一个DES密钥l3DES更加安全,但也存在理论上的攻击办法l2001年,DES被更高级的加密标准AES取代l特点特点l明文和密文是等长的明文和密文是等长的l一次只能对一次只能对8 8字节数据进行加密或解密字节数据进行加密或解密l加密和解密的过程是互相可逆的加密和解密的过程是互相可逆的DESDES算法(二)算法(二)l密
9、钥密钥lDES使用56位密钥,但实际使用中,通用会指定64位(8个字节),最后8位丢弃不用。l加加/解密过程解密过程l将数据分成8字节一组的一个一个块(Block)l对每一块用密钥进行复杂的变换,得到加/解密结果l安全性安全性l目前为止,最有效的破解办法仍然是暴力破解法目前为止,最有效的破解办法仍然是暴力破解法l5656位的加密强度确实不高,实际使用中多用位的加密强度确实不高,实际使用中多用3DES3DES加密模式及相关概念(一)加密模式及相关概念(一)lECBECB加密模式加密模式lECB是最简单的加密模式,需要加密的消息按照块密码的块大小被分为若干块,并对每个块进行独立加密l缺点:在于同样
10、的平文块会被加密成相同的密文块;因此,它不能很好的隐藏数据模式l例如:左图是原图,中图可能是ECB模式加密的结果,而好的加密模式则可能要加密成形如右图的结果加密模式及相关概念(二)加密模式及相关概念(二)lCBCCBC加密模式加密模式l每个块先与前一个密文块进行异或后,再进行加密l这种方法,每个密文块都依赖于它前面的所有明文块l因为前一个密文块可能不同,即使是相同的块加密的结果也会不同,达到前文所说的要求。l初始化向量(初始化向量(IVIV)lCBC模式下,对每一个块进行加密,除了需要密钥,还需要前一个块的密文,那么对于第一个块怎么办呢?l初始化向量即是用于第一块加密,相当于另一个密钥l其它加
11、密模式其它加密模式l很多:很多:PCBCPCBC、CFBCFB、OFB OFB 等等加密模式及相关概念(三)加密模式及相关概念(三)DESDES加密四要素总结加密四要素总结l密钥(密钥(KeyKey)l8字节密钥(实际只用前7个字节)l块模式块模式lCBC/ECB(最常用,也可能有其它)l初始向量(初始向量(IVIV)l如果块模式为CBC,则需要初始向量,与密钥等长l填充模式(填充模式(PaddingPadding)l双方约定好的填充模式3DES3DES算法算法l3DES=Triple DES3DES=Triple DESl使用3个56位密钥进行3次DES加密(3重加密)l是更安全,更实用的加
12、密方法l算法简要说明算法简要说明l设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文:l加密:C=Ek3(Dk2(Ek1(P)l解密:P=Dk1(EK2(Dk3(C)l3DES使用24字节密钥初始向量(IV)RC4RC4算法算法lRC4RC4算法可以使用算法可以使用20482048位的密钥位的密钥lRC4RC4算法速度可以达到算法速度可以达到DESDES加密的加密的1010倍倍加密算法加密算法非对称加密非对称加密3-1 3-1 计算机数据加密计算机数据加密非对称加密的概念非对称加密的概念l非对称加密算法使用两把完全不同但又是完全匹非对称加密算
13、法使用两把完全不同但又是完全匹配的一对钥匙配的一对钥匙公钥和私钥公钥和私钥l公钥:公开的,任何人都知道公钥:公开的,任何人都知道l私钥:只有自己知道私钥:只有自己知道l算法:公开的,任何人都可以拿其它人的公钥进算法:公开的,任何人都可以拿其它人的公钥进行计算加密行计算加密/解密。而计算的结果,只有拥有私解密。而计算的结果,只有拥有私钥的人才可以解密钥的人才可以解密/加密加密l常见算法:常见算法:RSARSA、DiffieHellmanDiffieHellman等等。非对称加密使用场景非对称加密使用场景lA A要向要向B B发送信息,发送信息,A A和和B B都要产生一对用于加密和都要产生一对用
14、于加密和解密的公钥和私钥。解密的公钥和私钥。lA A的私钥保密,的私钥保密,A A的公钥告诉的公钥告诉B B;B B的私钥保密,的私钥保密,B B的的公钥告诉公钥告诉A A。lA A要给要给B B发送信息时,发送信息时,A A用用B B的公钥加密信息,因为的公钥加密信息,因为A A知道知道B B的公钥。的公钥。lA A将这个消息发给将这个消息发给B B(已经用(已经用B B的公钥加密消息)。的公钥加密消息)。lB B收到这个消息后,收到这个消息后,B B用自己的私钥解密用自己的私钥解密A A的消息。的消息。其他所有收到这个报文的人都无法解密,因为只其他所有收到这个报文的人都无法解密,因为只有有
15、B B才有才有B B的私钥。的私钥。RSARSA算法概念算法概念lRSARSA算法是最常用的一种非对称加密算法算法是最常用的一种非对称加密算法l由三个人(分别是R、S、A开头)一起提出得名lRSARSA算法安全性算法安全性lRSARSA算法安全性的基础是:大整数的因数分解极为困难,假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。l通常越大越安全(不容易暴力破解),为了安全,实际使用中,RSA的密钥通常在1024位以上。l目前世界上还没有任何可靠的攻击RSA算法的方式RSARSA算法原理(一)算法原理(一)l公钥和私钥的
16、产生公钥和私钥的产生l随意选择两个大的质数p和q,p不等于q,计算N=pql根据欧拉函数,不大于N且与N互质的整数个数为(p-1)(q-1)l选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1)l用以下这个公式计算d:de 1(mod(p-1)(q-1)l将p和q销毁l(N,e)是公钥,(N,d)是私钥l加密消息加密消息l假设Bob想给Alice送一个消息,他知道Alice产生的公钥N和el将原始信息分为多段,每一段(假定为n)分别用以下公式计算出c:l将多个n计算出的多个c串在一起,就是密文,发送即可。RSARSA算法原理(二)算法原理(二)l解密消息解密消息lAlice
17、得到Bob的消息c后就可以利用她的密钥(N,d)来解码。她可以用以下这个公式来将c转换为n:l得到n后,她可以将原来的信息m重新复原。l算法的运算速度算法的运算速度l比起DES和其它对称算法来说,RSA要慢得多。l实际上通常来说,RSA算法不用来加密消息,加密消息用对称算法如DES,而用RSA来加密传输密钥。l密钥分配密钥分配l对RSA来说分配公钥的过程是非常重要的。假设蛋蛋交给阿庆一个公钥(蛋蛋自己的),并使阿庆相信这是小Q的公钥,并且她可以截下小Q和阿庆之间的信息传递,蛋蛋即可用自己的私钥解密他们传递信息。这个问题需要用数字证书来解决(后边会讲)综合应用综合应用SSLSSL的应用的应用3-
18、1 3-1 计算机数据加密计算机数据加密SSLSSL的概念的概念lSSL=Secure Sockets LayerSSL=Secure Sockets Layerl是网景公司(Netscape)在推出Web浏览器首版的同时,提出的协议。l现在的Web浏览器普遍将Http和SSL相结合,从而实现安全通信。lTLS(Transport Layer Security)协议是SSL的继任者lSSLSSL协议包含:协议包含:l握手:加密算法协商l认证:确认通信双方的身份(对双方均可认证)l数据加密:对需要传输的数据进行加密SSLSSL的工作方式的工作方式l以客户端为例:以客户端为例:l发送一个“Clie
19、ntHello”消息,说明它支持的密码算法列表、压缩方法及最高协议版本,以及稍后将被使用的随机数。l然后收到一个“ServerHello”消息,包含服务器选择的连接参数,源自客户端初期所提供的“ClientHello”。l当双方知道了连接参数,客户端与服务器交换证书(依靠被选择的公钥系统)。这些证书通常基于X.509。l服务器请求客户端公钥。客户端有证书即双向身份认证,没证书时随机生成公钥。l客户端与服务器通过公钥保密协商共同的主密钥(双方随机协商)。所有其他关键数据的加密均使用这个“主密钥”。SSLSSL的应用的应用lHTTPSHTTPS(HTTP With SSL/TLSHTTP With
20、 SSL/TLS)应用)应用lSSL就像一个“插件”,工作在TCP与HTTP之间lHTTPS只是对HTTP的传输部分增加了点东西,对HTTP协议没有任何修改lSSL协议对客户端和服务端都可以认证,但通常浏览器不对客户端进行认证。(因为你没有证书)lHTTPS与HTTP的区别l默认使用不同的端口,默认使用不同的端口,HTTPSHTTPS使用使用443443,HTTPHTTP使用使用8080lHTTPSHTTPS在传输内容之前,需要先握手,确定双的方算法以及一些加密数据用的密钥在传输内容之前,需要先握手,确定双的方算法以及一些加密数据用的密钥等。等。lHTTPSHTTPS传输的所有内容都是加密的,
21、接收方在收到后,必须解密还原成原始的传输的所有内容都是加密的,接收方在收到后,必须解密还原成原始的HTTPHTTP报文。报文。l发布发布HTTPSHTTPS的网站,必须要购买相应的服务器证书。的网站,必须要购买相应的服务器证书。l银行、支付宝证书应用银行、支付宝证书应用l双向认证,对客户端也认证,以确认身份综合应用综合应用数字证书与数字签名数字证书与数字签名3-1 3-1 计算机数据加密计算机数据加密PKIPKI的概念的概念lPKI=Public Key InfrastructurePKI=Public Key Infrastructurel即:公钥基础设施,是一种遵循既定标准的密钥管理平台,
22、它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系。l简单来说,PKI就是利用公钥理论和技术建立的提供安全服务的基础设施,是电子商务的关键和基础技术。lPKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名等。lX.509标准是PKI的一个实现lPKIPKI的组成部分的组成部分l权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(API)等基本构成部分数字证书数字证书l定义定义l数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在供了一种在Int
23、ernetInternet上验证您身份的方式,其作用类似于司机的驾驶上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。执照或日常生活中的身份证。l它是公钥体制和对称加密算法综合应用的产物它是公钥体制和对称加密算法综合应用的产物l数字证书通常由权威机构数字证书通常由权威机构CACA来发行。来发行。l任何服务器都可以是任何服务器都可以是CACA,但操作系统默认认可的,但操作系统默认认可的CACA只有那么几家,除只有那么几家,除非你手工增加(这个行为是允许且可行的,例如公司的域环境下,可非你手工增加(这个行为是允许且可行的,例如公司的域环境下,可以用组策略直接让所有的客户机认可公司
24、的以用组策略直接让所有的客户机认可公司的CACA)l用途l加密和解密,用于安全地传输数据加密和解密,用于安全地传输数据l数字签名和签名验证,用以确保网上传递信息的机密性、完整性。数字签名和签名验证,用以确保网上传递信息的机密性、完整性。X.509X.509证书证书lX.509X.509标准是标准是ITU-TITU-T设计的设计的PKIPKI标准标准lX.509X.509标准规定的数字证书包括:标准规定的数字证书包括:l版本版本l序列号序列号l签名算法标识符签名算法标识符l签发人姓名签发人姓名l有效期有效期l主体名主体名l主体公钥信息主体公钥信息数字签名数字签名l定义定义l一种使用公钥原理,用于
25、鉴别信息的方法l一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。l简单来说,数字签名,就是在原始数据上附加一些信息,这些附加数据可用于接收者确认数据来源和数据完整性,保护数据,防止被人伪造。l主要功能主要功能l保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生等等。数字签名的过程数字签名的过程l发送方:发送方:l发送方用一个哈希函数(如MD5)从报文中生成摘要信息(散列值)l发送方用自己的私钥对这个散列值进行加密l发送方将加密后的散列值连同报文一起发给接收方l接收方:接收方:l接收方收到信息后,先用同样的哈希函数对报文主体进行摘要运算,得到散列值l接收方再用发送方的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精选 计算机 数据 软件 安全 15168
限制150内