常见加密方法及应用

上传人:gb****c 文档编号:242967064 上传时间:2024-09-13 格式:PPTX 页数:43 大小:180.23KB
返回 下载 相关 举报
常见加密方法及应用_第1页
第1页 / 共43页
常见加密方法及应用_第2页
第2页 / 共43页
常见加密方法及应用_第3页
第3页 / 共43页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,43,常见加密方法及应用,2011,年,5,月,31,日,信息安全问题,通信过程中的问题:,发送方如何确保内容正确的传输到接收方,即内容没有被修改过?,发送方如何确保在传输内容的过程中不被除接收人以外的第三方知道?,接收方如何确内容确实是由发送方传输过来的,而不是由其它伪造的?,等等,信息安全的基本要求,真实性,对信息的来源进行判断,能对伪造来源的信息予以,鉴别,保密性,保证机密信息不被窃听,或窃听者不能了解信息的真实,含义,完整性,保证数据的一致性,防止数据被非法用户,篡改,其它,(如不可抵赖、可控性等),内容提要,信息摘要算法,加密算法,对称加密,非对称加密,综合应用,SSL,的应用,数字证书与数字签名,附:常见,编码方法,MD5,算法介绍,MD5 =,Message Digest Algorithm,V5,中文名,为:消息,摘要算法第五,版,当然,由,MD2,、,MD3,、,MD4,发展而来,是最常用的一,种散列函数,用以提供,消息完整性保护,无法从结果还原出原始信息,算法的输入输出,输入:任何长度的字节流,输出:,16,字节值(有时会以,32,位十六进制字符表示),关键点:输入不同,输出也不同,(,并非绝对,),MD5,算法过程,MD5,算法,简要描述,MD5,以,512,位分组来处理输入的信息,且每一分组又被划分为,16,个,32,位子分组,经过了一系列的处理后,算法的输出由四个,32,位分组组成,将这四个,32,位分组级联后,将生成,一个,128,位散列值,。,更简单的,描述,对,原始数据分组,每一组进行大量复杂的与、或、异或等运算,运算过程中有很多精心挑选的常量参与,结果处理成,16,字节的信息,MD5,算法的应用,给文件生成“指纹”,不同的文件,其,MD5,算法的结果也不同,相当于一个独一无二的“指纹”。,例如下载的软件,通常会提供一个,MD5,值,下载完成后可以重新计算,MD5,值以校验下载是否损坏,或者是被人恶意修改过,登录认证时保护敏感信息,例如网站将你的登录密码经过计算为,MD5,后存储,验证时也将用户的输入的密码计算,MD5,,对两个,MD5,以后的值比较,而不是比较原始密码,这样就没有任何人知道你的密码,包括网站本身,SHA-1,算法介绍,SHA-1 =,Secure Hash,Algorithm V1,当然也有,SHA-2,,以及,SHA-0,SHA-2,是一组标准的统称:,SHA-224, SHA-256, SHA-384, SHA-512,同,MD5,类似,也是产生消息摘要的算法,SHA-1,算法的输入输出,输入:任何长度的字节流,输出,:,20,字节,值(有时会,以,40,位,十六进制字符表示,),SHA-1,算法的,应用,同,MD5,类似,用作信息摘要或敏感信息保护,信息摘要算法的安全性,安全性分析,理论上可以证明算法是不安全的。即不同的信息算出的摘要结果可能是相同的。,但是给定一个,MD5,值,要构造一个信息使其,MD5,值与给定值相同(即所谓产生碰撞),是非常因难的。,当前仍广泛应用于互联网信息安全应用中。,安全性:,SHA-2 SHA-1 MD5,碰撞,碰撞是存在的,但产生是困难的,山东大学王小云以研究用更少的计算产生碰撞的方法出名,内容提要,信息摘要算法,加密算法,对称加密,非对称加密,综合应用,SSL,的应用,数字证书与数字签名,附:常见,编码方法,对称加密算法的概念,概念,简单来说,加密和解密使用同一个密钥的算法,称为对称加密算法。,特点:算法公开、计算量小、加密速度,快,不足,:双方,都使用同样钥匙,,安全性较低,常见对称密算法,DES/3DES,RC2/RC4,Blowfish,等等,异或加密的安全性分析,异或加密,即用一个密钥对给定的信息进行异或运算,得到的密文,可以用相同的密钥再异或一次解密,安全性分析,不要采用该算法,因为这种加密算法和直接给,明文基本没有区别,用所谓重合,码计数,法找出,密钥,长度,,按此长度移动,密文并且,和自身异或。这样就消除了,密钥,破解只需要几秒,到,几小时的时间,用,rand(),随机数产生的一系列结果作为密钥进行异或的方法也不可取,也是易于解密的。,结论:,不要,自己随便,去“创造,”,加密算法,算法,保密,不是真保密,,密钥保密才是真谛,DES,算法(一),DES = Data Encryption,Standard,口气很大:数据加密标准,确实应用非常文泛,现在已经不被视为一种安全的加密算法,主要因为它使用的,56,位,密钥(,7,字节),过短,易于暴力破解,据说有人在,22,小时,15,分钟内即公开破解了一个,DES,密钥,3DES,更加安全,但也存在理论上的攻击办法,2001,年,,DES,被更高级的加密标准,AES,取代,特点,明文和密文是等长的,一次只能对,8,字节数据进行加密或解密,加密和解密的过程是互相可逆的,DES,算法,(二),密钥,DES,使用,56,位密钥,但实际使用中,通用会指定,64,位(,8,个字节,),最后,8,位丢弃不用。,加,/,解密过程,将,数据分成,8,字节一组的一个一个块(,Block,),对每一块用密钥进行复杂的,变换,,得到,加,/,解密结果,安全性,目前为止,最有效的破解办法仍然是暴力破解,法,56,位的加密强度确实不高,实际使用中多用,3DES,加密模式及相关概念(一),ECB,加密模式,ECB,是最简单的加密模式,需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密,缺点:在于同样的平文块会被加密成相同的密文块;因此,它不能很好的隐藏数据模式,例如,:左图是原图,中图可能是,ECB,模式加密的结果,而好的加密模式则可能要加密成形如右图的结果,加密模式及相关概念,(二),CBC,加密模式,每个块,先与前一个密文块进行异或后,再进行,加密,这种方法,,每个密文块都依赖于它前面的,所有明文块,因为前一个密文块可能不同,即使是相同,的块,加密的结果也会不同,达到前文所说的要求。,初始化,向量(,IV,),CBC,模式下,对每一个块进行加密,除了需要密钥,还需要前一个块的密文,那么对于第一个块怎么办呢?,初始化,向量即是用于第一块加密,相当于另一个密钥,其它加密模式,很多:,PCBC,、,CFB,、,OFB,等,加密模式及相关概念,(三),填充(,Padding,),加密的算法只能对一块数据进行加密,每一块长度是固定的,例如,8,字节。那么对于明文不是,8,字节的整数倍时,最后一块怎么办?,对,对最后一块填充补齐,补足,8,字节。,填充模式,PKCS7,、,ANSIX923,、,ISO10126,PKCS5Padding,、,SSL3Padding,None,、,Zero,等很多很多,C#,和,Java,支持的填充模式不完全一样,经常搞出问题,填充算法都很简单,如遇两者不兼容,可以自己写代码,C,#,和,Java,比较:,http,:/,DES,加密四要素总结,密钥(,Key,),8,字节密钥(实际只用前,7,个字节),块模式,CBC/ECB,(最常用,也可能有其它,),初始,向量(,IV,),如果块模式为,CBC,,则,需要初始向量,与密钥等长,填充模式(,Padding,),双方约定,好的填充,模式,3DES,算法,3DES = Triple,DES,使用,3,个,56,位密钥进行,3,次,DES,加密,是更安全,更实用的加密方法,算法简要,说明,设,Ek(),和,Dk(),代表,DES,算法的加密和解密过程,,K,代表,DES,算法使用的密钥,,P,代表明文,,C,代表,密文:,加密:,C=Ek3(Dk2(Ek1(P),解密:,P=Dk1(EK2(Dk3(C),3DES,使用,24,字节密初始向量(,IV,),RC4,算法,RC4,算法可以,使用,2048,位的,密钥,RC4,算法,速度,可以达到,DES,加密的,10,倍,内容提要,信息摘要算法,加密算法,对称加密,非对称加密,综合应用,SSL,的应用,数字证书与数字签名,附:常见,编码方法,非对称加密的概念,非对称,加密算法使用两把完全不同但又是完全匹配的一对钥匙,公钥和私,钥,公钥:公开的,任何人都知道,私钥:只有自己知道,算法:公开的,任何人都可以拿其它人的公钥进行计算加密,/,解密。而计算的结果,只有拥有私钥的人才可以解密,/,加密,常见算法:,RSA,、,DiffieHellman,等。,非对称加密使用场景,A,要向,B,发送信息,,A,和,B,都要产生一对用于加密和解密的公钥和私钥。,A,的私钥保密,,A,的公钥告诉,B,;,B,的私钥保密,,B,的公钥告诉,A,。,A,要给,B,发送信息时,,A,用,B,的公钥加密信息,因为,A,知道,B,的公钥。,A,将这个消息发给,B,(已经用,B,的公钥加密消息)。,B,收到这个消息后,,B,用自己的私钥解密,A,的消息。其他所有收到这个报文的人都无法解密,因为只有,B,才有,B,的私钥。,RSA,算法概念,RSA,算法是最常用的一种非对称加密算法,由三个人(分别是,R,、,S,、,A,开头)一起提出得名,RSA,算法安全性,RSA,算法安全性的基础是:大整数的因数分解极为困难,假如有人找到一种快速因数分解的算法的话,那么用,RSA,加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。,通常越大越安全(不容易暴力破解),为了安全,实际使用中,,RSA,的密钥通常在,1024,位以上。,目前世界,上还没有任何可靠的攻击,RSA,算法的方式,RSA,算法原理(一),公钥和私钥的产生,随意,选择两个大的质数,p,和,q,,,p,不等于,q,,计算,N=pq,根据欧拉函数,不大于,N,且与,N,互质的整数个数为,(p-1)(q-1),选择一个整数,e,与,(p-1)(q-1),互质,并且,e,小于,(p-1)(q-1,),用以下这个公式计算,d,:,de, 1 (mod (p-1)(q-1,),将,p,和,q,销毁,(N,e),是公钥,,(N,d),是私,钥,加密消息,假设,Bob,想给,Alice,送一个,消息,,他知道,Alice,产生的公钥,N,和,e,将原始信息分为多段,每一段(假定为,n,)分别用以下公式计算出,c,:,将多个,n,计算出的多个,c,串在一起,就是密文,发送即可。,RSA,算法原理,(二),解密消息,Alice,得到,Bob,的消息,c,后就可以利用她的,密钥(,N,d,)来,解码。她可以用以下这个公式来将,c,转换为,n,:,得到,n,后,她可以将原来的信息,m,重新复原,。,算法的运算速度,比起,DES,和其它对称算法来说,,RSA,要慢得多,。,实际上通常来说,,RSA,算法不用来加密消息,加密消息用对称算法如,DES,而用,RSA,来加密传输密钥。,密钥,分配,对,RSA,来说分配公钥的过程是非常重要的。假设蛋蛋交给阿庆一个公,钥(蛋蛋自己的),,并使阿庆相信这是小,Q,的公钥,并且她可以截下小,Q,和阿庆之间的信息,传递,,蛋蛋,即可用自己的私钥解密他们传递信息。这个问题需要用数字证书来解决(后边会讲,),内容提要,信息摘要算法,加密算法,对称加密,非对称加密,综合应用,SSL,的应用,数字证书与数字签名,附:常见,编码方法,SSL,的概念,SSL = Secure Sockets,Layer,是网景公司(,Netscape,)在推出,Web,浏览器首版的同时,提出的协议,。,现在的,Web,浏览器普遍将,Http,和,SSL,相结合,从而实现安全通信,。,TLS,(,Transport Layer,Security,)协议是,SSL,的继任者,SSL,协议包含:,握手:加密算法协商,认证:确认通信双方的身份(对双方均可认证),数据加密:对需要传输的数据进行加密,SSL,的工作方式,以客户端为例:,发送一个“,ClientHello”,消息,说明它支持的密码算法列表、压缩方法及最高协议版本,,以及稍后,将被使用的随机数。,然后收到一个“,ServerHello”,消息,包含服务器选择的连接参数,源自客户端初期所提供的“,ClientHello”,。,当双方知道了连接参数,客户端与服务器交换证书(依靠被选择的公钥系统)。这些证书通常基于,X.509,。,服务器请求客户端公钥。客户端有证书即双向身份认证,没证书时随机生成公钥。,客户端与服务器通过公钥保密协商共同的,主密钥,(双方随机协商,)。所有,其他关键数据的加密均使用这个,“主密钥”。,这个图详细地说明了整个过程:,http:/,upload.wikimedia.org/wikipedia/commons/a/ae/SSL_handshake_with_two_way_authentication_with_certificates.svg,SSL,的应用,HTTPS,(,HTTP With SSL/TLS,)应用,SSL,就像一个“插件”,工作在,TCP,与,HTTP,之间,HTTPS,只是对,HTTP,的传输部分增加了点东西,对,HTTP,协议没有任何修改,SSL,协议对客户端和服务端都可以认证,但通常浏览器不对客户端进行认证。(因为你没有证书),HTTPS,与,HTTP,的区别,默认使用不同的端口,,HTTPS,使用,443,,,HTTP,使用,80,HTTPS,在传输内容之前,需要先握手,确定双的方算法以及一些加密数据用的密钥等。,HTTPS,传输的所有内容都是加密的,接收方在收到后,必须解密还原成原始的,HTTP,报文。,发布,HTTPS,的网站,必须要购买相应的服务器证书。,银行、支付宝证书应用,双向认证,对客户端也认证,以确认身份,内容提要,信息摘要算法,加密算法,对称加密,非对称加密,综合应用,SSL,的应用,数字证书与数字签名,附:常见,编码方法,PKI,的概念,PKI =,Public Key,Infrastructure,即:公,钥基础设施,是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理,体系。,简单来说,,PKI,就是利用公钥理论和技术建立,的提供安全服务的基础,设施,是,电子商务的关键和基础,技术。,PKI,的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名,等。,X.509,标准是,PKI,的一个实现,PKI,的,组成部分,权威认证机构,(CA),、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(,API,)等基本构成部分,数字证书,定义,数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在,Internet,上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的,身份证。,是公钥体制和对称加密算法综合应用的产物,数字证书通常由权威机构,CA,来发行。,任何服务器都可以是,CA,,但操作系统默认认可的,CA,只有那么几家,除非你手工增加(这个行为是允许且可行的,例如公司的域环境下,可以用组策略直接让所有的客户机认可公司的,CA,),用途,加密和解密,用以安全地传输数据,数字签名和签名验证,,用以确保,网上传递信息的机密性、,完整性,X.509,证书,X.509,标准是,ITU-T,设计的,PKI,标准,X.509,标准规定的数字证书包括:,版本,序列号,签名算法,标识符,签发人姓名,有效期,主体名,主体公钥,信息,等等,看一个实际证书的例子,数字签名,定义,一种使用公钥原理,,用于,鉴别信息,的,方法,一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证,。,简单来说,数字签名,就是在原始数据上附加一些信息,这些附加数据可用于接收者确认数据来源,和,数据完整性,保护数据,,,防止,被,人伪造。,主要功能,保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖,发生等等。,数字签名的过程,发送方:,发送,方用一个哈希,函数(如,MD5,)从报文中生成摘要信息(散列值),发送方用自己的,私钥,对这个散列值进行,加密,发送方将加密后的散列值连同报文一起发给接收方,接收方:,接收方收到信息后,先用同样的哈希函数对报文主体进行摘要运算,得到散列值,接收方再用发送方的公钥对加密后的散列值,进行解密,接收方比较两次计算得到的散列值是否一样,一样则没有问题,不一样则说明报文被修改了。,实际使用中,数字签名的信息可能更多,例如附加一个,X.509,证书在上面等等。,代码签名,所谓代码签名,就是使用特定的数字证书,给软件(,EXE,、,DLL,、控件、,Jar,等等)增加一个数字签名,防止该软件在传输过程中被人修改。,代码签名是数字签名在特定场景下的另一种说法,签名以后的软件,含有数字签名的信息及用于签名的证书,可以验证该签名的有效性,演示:,查签名后的软件中的签名信息及证书,签名过程,内容提要,信息摘要算法,加密算法,对称加密,非对称加密,综合应用,SSL,的应用,数字证书与数字签名,附:常见,编码方法,常见编码为可阅读文本的方法,传输过程中的二进制内容在特点的情况下需要编码成可阅读的文本。,例如,WebService,在传输二进制内容时要进行,Base64,编码,,URL,含有特殊字符时要进行,URL,编码等。,常见的编码方式有,十六进制表示法,Base64,编码,QP(Quote-Printable),编码,URL,编码,十六进制表示法,将一个字节用两个十六进制字符表示,例如:,将四字节整型值,994766792,表示为,3B4AEFC8,将,16,字节的,MD5,值表示为,32,个字节的,十六进制字符,Base64,编码,Base64,编码,即使用,64,个可显示的字符来将二进制的内容转换为可显示的文本。,将每三个字节变成,4,个字节,如果最后剩下两个输入数据,在编码结果后,加个,“,=”,如果,最后剩下一个输入数据,编码结果后,加个“,=”,例如:,QP(Quote-Printable,),编码介绍,QP,编码是邮件内容在传输过程中常用的一种编码,编码的基本方法是:输入数据在,33-60,、,62-126,范围内的,直接输出;其它的需编码为“,=”,加两个字节的,HEX,码,(,大写,),。为保证输出行,不超过,规定长度,可在行尾加“,=rn”,序列作为软回车,。,URL,编码,URL,编码是,RFC,规定的,对于,URL,中特殊字符编码的规则。,URL,编码规则,0-9,,,a-z, A-Z,这些字符保持不变,-_.,四个特殊字符保持不变,其它字符,用特定的编码方式,将其用十六进制格式,表示,并在每两个字符间增加,%,要注意编码方式,如,GBK,还是,UTF8,编码出来的结果是不一样的,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!