数据加密与解密
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LOGO
Page 11
HTTPS工作原理
HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程 中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经 过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。握手过程 的简单描述如下: 1.浏览器将自己支持的一套加密规则发送给网站。 2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书(证书可以自己制作也可 以申请~)的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信 息。 3.获得网站证书之后浏览器要做以下工作: a) 验证证书的合法性(颁发证书的机构是否合法,证 书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一 个小锁头,否则会给出证书不受信的提示。 b) 如果证书受信任,或者是用户接受了不受信的证书 ,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密【 RSA 】。 c) 使用约定好的 HASH计算握手消息【 MD5 】,并使用生成的随机数对消息进行加密【 3DES 】,最后将之前生 成的所有信息发送给网站。 4.网站接收浏览器发来的数据之后要做以下的操作: a) 使用自己的私钥将信息解密取出密码【 RSA 】,使用密码解密浏览器发来的握手消息【 3DES 】,并验证HASH是否与浏览器发来的一 致【 MD5 】。 b) 使用密码加密一段握手消息【 3DES 】【 MD5 】,发送给浏览器。 5.浏览器解密并计算握手消息的HASH【 3DES 】【 MD5 】,如果与服务端发来的HASH一致, 此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行 加密【 3DES 】~。
Other:单表置换法
a b c d e f
g h i
j
k l
m n o p q r s t
u v w x y z
B E I J N G T S H U A C D F K L M O P Q R V W X Y Z
LOGO
Page 3
摩斯密码 Morse code
Morse code 是一种时通时断的信号代码,通过不同的排列顺序来表 达不同的英文字母、数字和标点符号。它由美国人艾尔菲德· 维尔发 明,当时(1835年)他正在协助萨缪尔· 摩尔斯进行摩尔斯电报机的 发明。 摩尔斯电码是一种早期的数字化通信形式。
LOGO
Page 13
完毕,下次再见!
LOGO
Page 14
一句话点评:“防君子不防小人”
LOGO
Page 5
单向加密算法
MD5、SHA这两种加密算法,可谓是非可逆加密,就是不可解密的加 密方法,我们称之为单向加密算法。我们通常只把他们作为加密的基 础。 MD5 加密 MD5 -- message-digest algorithm 5 (信息-摘要算法)缩写,广泛用 于加密和解密技术,常用于文件校验。校验?不管文件多大,经过 MD5后都能生成唯一的MD5值。
LOGO
Page 10
非对称加密算法
RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能用 于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发 明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。 这种加密算法的特点主要是密钥的变化,上文我们看到DES只有一 个密钥。相当于只有一把钥匙,如果这把钥匙丢了,数据也就不安全 了。RSA同时有两把钥匙,公钥与私钥。同时支持数字签名。数字签 名的意义在于,对传输过来的数据进行校验。确保数据在传输过程中 不被修改。
LOGO
Page 4
BASE64编码
ห้องสมุดไป่ตู้
按照RFC2045的定义,Base64被定义为:Base64内容传送编码被设 计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。 (The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.) 常见于邮件、http加密,截取http信息,你就会发现登录操作的用户 名、密码字段通过BASE64加密的。
LOGO
Page 2
Caesar(恺撒)密码
密码的使用最早可以追溯到古罗马时期,《高卢战记》有描述恺撒曾 经使用密码来传递信息,即所谓的“恺撒密码”。
其实也就是现代的移位密码 通过字母偏移来达到加密效果,偏移量即为密钥 明文a,偏移量为2,密文为c 密文zkpjwk(密钥为2)——》明文?【 】 恺撒密码升级版
DES安全性相关:
缺点:密钥短,只有56位有效 优点:加密、解密速度快;宜于对大数据量加密。
LOGO
Page 8
对称加密算法对比
LOGO
Page 9
Comparison of DES, Triple DES, AES encryption for data In more details: DES is the old "data encryption standard" from the seventies. Its key size is too short for proper security (56 effective bits; this can be brute-forced, as has been demonstrated more than ten years ago). Also, DES uses 64-bit blocks, which raises some potential issues when encrypting several gigabytes of data with the same key (a gigabyte is not that big nowadays). 3DES is a trick to reuse DES implementations, by cascading three instances of DES (with distinct keys). 3DES is believed to be secure up to at least "2112" security (which is quite a lot, and quite far in the realm of "not breakable with today's technology"). But it is slow, especially in software (DES was designed for efficient hardware implementation, but it sucks in software; and 3DES sucks three times as much). AES is the successor of DES as standard symmetric encryption algorithm for US federal organizations (and as standard for pretty much everybody else, too). AES accepts keys of 128, 192 or 256 bits (128 bits is already very unbreakable), uses 128-bit blocks (so no issue there), and is efficient in both software and hardware. It was selected through an open competition involving hundreds of cryptographers during several years. Basically, you cannot have better than that. So, when in doubt, use AES.
SHA1和MD5安全性探讨
探讨这个话题是因为山东大学的王小云教授通过碰撞法攻破了SHA1和MD5算法。其成 果已经被Crypto大会中的科学家所认可。具体还是要根据应用场景。王教授的碰撞法 虽然能找出指纹相同的另一个数据。但这另一个数据的内容是不确定的。
LOGO
Page 7
对称加密算法
DES( Data Encryption Standard)算法,于1977年得到美国政府的正 式许可,是一种用56位密钥来加密64位数据的方法。
LOGO
Page 12
一切的一切,都是在为后面真正的传输做准备!!! 这里浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并 且可以正常的加密解密数据,为后续真正数据的传输做一次测试。另外,HTTPS一般使用的加密 与HASH算法如下: 非对称加密算法:RSA,DSA/DSS 【*****加密浏览器随机生成的密码】 对称加密算法:AES,RC4,3DES 【(随机数密码)对真正传输的数据进行加密】 HASH算法:MD5,SHA1,SHA256 【验证数据的完整性】 其中非对称加密算法用于在握手过程中加密生成的密码,对称加密算法用于对真正传输的数据进行 加密,而HASH算法用于验证数据的完整性。由于浏览器生成的密码是整个数据加密的关键,因此 在传输的时候使用了非对称加密算法对其加密。非对称加密算法会生成公钥和私钥,公钥只能用于 加密数据,因此可以随意传输,而网站的私钥用于对数据进行解密,所以网站都会非常小心的保管 自己的私钥,防止泄漏。 【握手过程中如果有任何错误,都会使加密连接断开,从而阻止了隐私信息的传输。】 (12306就是没有申请证书,自己制作的) 证书不受信任,只是说明这个证书不是通过证书认证机 构颁发的,不影响加密效果,数据传输仍然是加密的。
LOGO
Page 6
SHA(Secure Hash Algorithm,安全散列算法),数字签名等密码学应用中重要的工具 ,被广泛地应用于电子商务等信息安全领域。
MD5 与SHA-1 的比较:
由于MD5 与SHA-1均是从MD4 发展而来,它们的结构和强度等特性有很多相似之处, 表(1)是对MD5 与SHA-1 的结构比较。SHA-1与MD5 的最大区别在于其摘要比 MD5 摘要长 32 比特。对于强行攻击,产生任何一个报文使之摘要等于给定报文摘要 的难度:MD5 是2128数量级的操作,SHA-1 是2160 数量级的操作。产生具有相同摘 要的两个报文的难度:MD5是 264 是数量级的操作,SHA-1 是280 数量级的操作。因 而,SHA-1 对强行攻击的强度更大。但由于SHA-1 的循环步骤比MD5 多(80:64)且要 处理的缓存大(160 比特:128 比特),SHA-1 的运行速度比MD5 慢。
LOGO
数据的加密与解密
— — 技术部 xxx
密码技术简介
密码学的历史比较悠久,在四千年前,古埃及人就开始使用密码来保 密传递消息。 两千多年前,罗马国王Julius Caesare(恺撒)就开始使用目前称为 “恺撒密码”的密码系统。但是密码技术直到本20世纪40年代以后才 有重大突破和发展。 特别是20世纪70年代后期,由于计算机、电子通信的广泛使用,现代 密码学得到了空前的发展