数据常见的加密方法和应用

上传人:豆浆 文档编号:48420069 上传时间:2018-07-15 格式:PPTX 页数:43 大小:668.44KB
返回 下载 相关 举报
数据常见的加密方法和应用_第1页
第1页 / 共43页
数据常见的加密方法和应用_第2页
第2页 / 共43页
数据常见的加密方法和应用_第3页
第3页 / 共43页
数据常见的加密方法和应用_第4页
第4页 / 共43页
数据常见的加密方法和应用_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《数据常见的加密方法和应用》由会员分享,可在线阅读,更多相关《数据常见的加密方法和应用(43页珍藏版)》请在金锄头文库上搜索。

1、数据常见的加密方法和应用信息安全问题 通信过程中的问题: 发送方如何确保内容正确的传输到接收方,即内容没有被修改过? 发送方如何确保在传输内容的过程中不被除接收人以外的第三方知道? 接收方如何确内容确实是由发送方传输过来的,而不是由其它伪造的? 等等信息安全的基本要求 真实性 对信息的来源进行判断,能对伪造来源的信息予以鉴别 保密性 保证机密信息不被窃听,或窃听者不能了解信息的真实含义 完整性 保证数据的一致性,防止数据被非法用户篡改 其它(如不可抵赖、可控性等)内容提要 信息摘要算法 加密算法 对称加密 非对称加密 综合应用 SSL的应用 数字证书与数字签名 附:常见编码方法MD5算法介绍

2、MD5 = Message Digest Algorithm V5 中文名为:消息摘要算法第五版 当然由MD2、MD3、MD4发展而来 是最常用的一种散列函数,用以提供消息完整性保护 无法从结果还原出原始信息 算法的输入输出 输入:任何长度的字节流 输出:16字节值(有时会以32位十六进制字符表示) 关键点:输入不同,输出也不同(并非绝对)MD5算法过程 MD5算法简要描述 MD5以512位分组来处理输入的信息,且每一分组又 被划分为16个32位子分组,经过了一系列的处理后, 算法的输出由四个32位分组组成,将这四个32位分组 级联后将生成一个128位散列值。 更简单的描述 对原始数据分组 每

3、一组进行大量复杂的与、或、异或等运算 运算过程中有很多精心挑选的常量参与 结果处理成16字节的信息MD5算法的应用 给文件生成“指纹” 不同的文件,其MD5算法的结果也不同,相当于一个 独一无二的“指纹”。 例如下载的软件,通常会提供一个MD5值,下载完成 后可以重新计算MD5值以校验下载是否损坏,或者是 被人恶意修改过 登录认证时保护敏感信息 例如网站将你的登录密码经过计算为MD5后存储,验 证时也将用户的输入的密码计算MD5,对两个MD5以 后的值比较,而不是比较原始密码,这样就没有任何 人知道你的密码,包括网站本身SHA-1算法介绍 SHA-1 = Secure Hash Algorit

4、hm 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值与 给定值相同(即所谓产生碰撞),是非常因难的。 当前仍广泛应用于互联网信息安全应用中。 安

5、全性:SHA-2 SHA-1 MD5 碰撞 碰撞是存在的,但产生是困难的 山东大学王小云以研究用更少的计算产生碰撞的方法 出名内容提要 信息摘要算法 加密算法 对称加密 非对称加密 综合应用 SSL的应用 数字证书与数字签名 附:常见编码方法对称加密算法的概念 概念 简单来说,加密和解密使用同一个密钥的算法,称为对称加密算法。 特点:算法公开、计算量小、加密速度快 不足:双方都使用同样钥匙,安全性较低 常见对称密算法 DES/3DES RC2/RC4 Blowfish等等异或加密的安全性分析 异或加密 即用一个密钥对给定的信息进行异或运算,得到的密 文,可以用相同的密钥再异或一次解密 安全性分

6、析 不要采用该算法,因为这种加密算法和直接给明文基 本没有区别 用所谓重合码计数法找出密钥长度,按此长度移动密 文并且和自身异或。这样就消除了密钥 破解只需要几秒到几小时的时间 用rand()随机数产生的一系列结果作为密钥进行异或的 方法也不可取,也是易于解密的。结论结论 : 不要自己随便去“创创造”加密算法 算法保密不是真保密,密钥钥保密才是真谛谛DES算法(一) DES = Data Encryption Standard 口气很大:数据加密标准,确实应用非常文泛 现在已经不被视为一种安全的加密算法,主要因为它 使用的56位密钥(7字节),过短,易于暴力破解,据 说有人在22小时15分钟内

7、即公开破解了一个DES密钥 3DES更加安全,但也存在理论上的攻击办法 2001年,DES被更高级的加密标准AES取代 特点 明文和密文是等长的 一次只能对8字节数据进行加密或解密 加密和解密的过程是互相可逆的DES算法(二) 密钥 DES使用56位密钥,但实际使用中,通用会指定64位(8个字节) ,最后8位丢弃不用。 加/解密过程 将数据分成8字节一组的一个一个块(Block) 对每一块用密钥进行复杂的变换,得到加/解密结果 安全性 目前为止,最有效的破解办法仍然是暴力破解法 56位的加密强度确实不高,实际使用中多用3DES加密模式及相关概念(一) ECB加密模式ECB是最简单的加密模式,需

8、要加密的消息按照块密码的块大小被分为数个块 ,并对每个块进行独立加密 缺点:在于同样的平文块会被加密成相同的密文块;因此,它不能很好的隐藏数 据模式 例如:左图是原图,中图可能是ECB模式加密的结果,而好的加密模式则可能要 加密成形如右图的结果加密模式及相关概念(二) CBC加密模式 每个块先与前一个密文块进行异或后,再进行加密 这种方法,每个密文块都依赖于它前面的所有明文块 因为前一个密文块可能不同,即使是相同的块加密的结果也会不 同,达到前文所说的要求。 初始化向量(IV) CBC模式下,对每一个块进行加密,除了需要密钥,还需要前一 个块的密文,那么对于第一个块怎么办呢? 初始化向量即是用

9、于第一块加密,相当于另一个密钥 其它加密模式 很多:PCBC、CFB、OFB 等加密模式及相关概念(三) 填充(Padding) 加密的算法只能对一块数据进行加密,每一块长度是 固定的,例如8字节。那么对于明文不是8字节的整数 倍时,最后一块怎么办? 对,对最后一块填充补齐,补足8字节。 填充模式 PKCS7、ANSIX923、ISO10126 PKCS5Padding、SSL3Padding None、Zero 等很多很多 C#和Java支持的填充模式不完全一样,经常搞出问题 填充算法都很简单,如遇两者不兼容,可以自己写代码C#和Java比较: http:/ 密钥(Key) 8字节密钥(实际

10、只用前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算法速度可

11、以达到DES加密的10倍内容提要 信息摘要算法 加密算法 对称加密 非对称加密 综合应用 SSL的应用 数字证书与数字签名 附:常见编码方法非对称加密的概念 非对称加密算法使用两把完全不同但又是完全匹配的一对钥匙公钥 和私钥 公钥:公开的,任何人都知道 私钥:只有自己知道 算法:公开的,任何人都可以拿其它人的公钥进行计算加密/解密。而 计算的结果,只有拥有私钥的人才可以解密/加密 常见算法:RSA、DiffieHellman等。非对称加密使用场景A要向B发送信息,A和B都要产生一对用于加密和 解密的公钥和私钥。 A的私钥保密,A的公钥告诉B;B的私钥保密,B 的公钥告诉A。 A要给B发送信息时

12、,A用B的公钥加密信息,因为 A知道B的公钥。 A将这个消息发给B(已经用B的公钥加密消息) 。 B收到这个消息后,B用自己的私钥解密A的消息 。其他所有收到这个报文的人都无法解密,因为 只有B才有B的私钥。RSA算法概念 RSA算法是最常用的一种非对称加密算法 由三个人(分别是R、S、A开头)一起提出得名 RSA算法安全性 RSA算法安全性的基础是:大整数的因数分解极为困难,假如有人 找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠 性就肯定会极度下降。但找到这样的算法的可能性是非常小的。 通常越大越安全(不容易暴力破解),为了安全,实际使用中, RSA的密钥通常在1024位以上

13、。 目前世界上还没有任何可靠的攻击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串在一起,就是密文,发送即可。RS

14、A算法原理(二) 解密消息 Alice得到Bob的消息c后就可以利用她的密钥(N,d)来解码。她 可以用以下这个公式来将c转换为n: 得到n后,她可以将原来的信息m重新复原。 算法的运算速度 比起DES和其它对称算法来说,RSA要慢得多。 实际上通常来说,RSA算法不用来加密消息,加密消息用对称算 法如DES,而用RSA来加密传输密钥。 密钥分配 对RSA来说分配公钥的过程是非常重要的。假设蛋蛋交给阿庆一个公钥( 蛋蛋自己的),并使阿庆相信这是小Q的公钥,并且她可以截下小Q和阿 庆之间的信息传递,蛋蛋即可用自己的私钥解密他们传递信息。这个问 题需要用数字证书来解决(后边会讲)内容提要 信息摘要

15、算法 加密算法 对称加密 非对称加密 综合应用 SSL的应用 数字证书与数字签名 附:常见编码方法SSL的概念 SSL = Secure Sockets Layer 是网景公司(Netscape)在推出Web浏览器首版的同 时,提出的协议。 现在的Web浏览器普遍将Http和SSL相结合,从而实 现安全通信。 TLS(Transport Layer Security)协议是SSL的继任者 SSL协议包含: 握手:加密算法协商 认证:确认通信双方的身份(对双方均可认证) 数据加密:对需要传输的数据进行加密SSL的工作方式 以客户端为例: 发送一个“ClientHello”消息,说明它支持的密码算法列 表、压缩方法及最高协议版本,以及稍后将被使用的随机数 。 然后收到一个“ServerHello”消息,包含服务器选择的连 接参数,源自客户端初期所提供的“C

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号