RSA算法、SSL协议学习笔记

更新时间:2023-06-02 22:31:38 阅读: 评论:0

RSA算法、SSL协议学习笔记
最近学习计算机⽹络,涉及到SSL协议,我想起了去年密码学课程讲过的⾮对称加密RSA算法,结合阮⽼师的博客,写写学习笔记,这⾥再回忆⼀下。
RSA算法
RSA算法是⼀种⾮对称密码算法,所谓⾮对称,就是指该算法需要⼀对密钥,使⽤其中⼀个加密,则需要⽤另⼀个才能解密。
思想unico
(1)⼄⽅⽣成两把密钥(公钥和私钥)。公钥是公开的,任何⼈都可以获得,私钥则是保密的。
  (2)甲⽅获取⼄⽅的公钥,然后⽤它对信息加密。
  (3)⼄⽅得到加密后的信息,⽤私钥解密。
RSA的算法涉及三个参数,n、e1、e2。
关于n:
n是两个⼤质数p、q的积,n的⼆进制表⽰时所占⽤的位数,就是所谓的密钥长度。
traver关于e1,e2:
e1和e2是⼀对相关的值,e1可以任意取,但要求e1与(p-1)(q-1)互质;再选择e2,要求(e2e1)mod((p-1)*(q-1))=1。
密钥对:
(n,e1),(n,e2)就是密钥对。其中(n,e1)为公钥,(n,e2)为私钥。
RSA加解密算法:
RSA加解密的算法完全相同,设A为明⽂,B为密⽂,则:A=B^e2 mod n;B=A^e1 mod n;(公钥加密体制中,⼀般⽤公钥加密,私钥解密)
e1和e2可以互换使⽤,即:A=B^e1 mod n;B=A^e2 mod n;
SSL协议
明⽂传播风险
不使⽤SSL/TLS的HTTP通信,就是不加密的通信。所有信息明⽂传播,带来了三⼤风险
(1)窃听风险(eavesdropping):第三⽅可以获知通信内容。
(2)篡改风险(tampering):第三⽅可以修改通信内容。
(3)冒充风险(pretending):第三⽅可以冒充他⼈⾝份参与通信。
SSL协议优点:
(1)所有信息都是加密传播,第三⽅⽆法窃听。
(2)具有校验机制,⼀旦被篡改,通信双⽅会⽴刻发现。clever
(3)配备⾝份证书,防⽌⾝份被冒充。
开始加密通信之前,客户端和服务器⾸先必须建⽴连接和交换参数,这个过程叫做握⼿(handshake)
握⼿过程:
戏谑
第⼀步,爱丽丝给出协议版本号、⼀个客户端⽣成的随机数(Client random),以及客户端⽀持的加密⽅法。
戏谑第⼆步,鲍勃确认双⽅使⽤的加密⽅法,并给出数字证书、以及⼀个服务器⽣成的随机数(Server random)。
信任英文第三步,爱丽丝确认数字证书有效,然后⽣成⼀个新的随机数(Premaster cret),并使⽤数字证书中的公钥,加密这个随机数,发给鲍勃。
第四步,鲍勃使⽤⾃⼰的私钥,获取爱丽丝发来的随机数(即Premaster cret)。
第五步,爱丽丝和鲍勃根据约定的加密⽅法,使⽤前⾯的三个随机数,⽣成"对话密钥"(ssion key),⽤来加密接下来的整个对话过程。
1.客户端发出请求(ClientHello)抗遗忘英语单词速记
(1)⽀持的协议版本,⽐如TLS 1.0版。
fal什么意思(2)⼀个客户端⽣成的随机数,稍后⽤于⽣成"对话密钥"。
(3)⽀持的加密⽅法,⽐如RSA公钥加密。
(4)⽀持的压缩⽅法。
2.服务器响应(SeverHello)
服务器收到客户端请求后,向客户端发出回应,这叫做SeverHello。服务器的回应包含以下内容。
(1)确认使⽤的加密通信协议版本,⽐如TLS 1.0版本。如果浏览器与服务器⽀持的版本不⼀致,服务器关闭加密通信。
最好的爱(2)⼀个服务器⽣成的随机数,稍后⽤于⽣成"对话密钥"。
(3)确认使⽤的加密⽅法,⽐如RSA公钥加密。
(4)服务器证书。
3.客户端回应
mosc
客户端收到服务器回应以后,⾸先验证服务器证书。如果证书不是可信机构颁布、或者证书中的域名与实际域名不⼀致、或者证书已经过期,就会向访问者显⽰⼀个警告,由其选择是否还要继续通信。如果证书没有问题,客户端就会从证书中取出服务器的公钥。然后,向服务器发送下⾯三项信息。
(1)⼀个随机数。该随机数⽤服务器公钥加密,防⽌被窃听。
(2)编码改变通知,表⽰随后的信息都将⽤双⽅商定的加密⽅法和密钥发送。
(3)客户端握⼿结束通知,表⽰客户端的握⼿阶段已经结束。这⼀项同时也是前⾯发送的所有内容的hash值,⽤来供服务器校验。
4.服务器最后响应
(1)编码改变通知,表⽰随后的信息都将⽤双⽅商定的加密⽅法和密钥发送。
(2)服务器握⼿结束通知,表⽰服务器的握⼿阶段已经结束。这⼀项同时也是前⾯发送的所有内容的hash值,⽤来供客户端校验。
⾄此,整个握⼿阶段全部结束。接下来,客户端与服务器进⼊加密通信,就完全是使⽤普通的HTTP协议,只不过⽤"会话密钥"加密内容。握⼿阶段注意事项:
(1)⽣成对话密钥⼀共需要三个随机数。
(2)握⼿之后的对话使⽤"对话密钥"加密(对称加密),服务器的公钥和私钥只⽤于加密和解密"对话密钥"(⾮对称加密),⽆其他作⽤。
(3)服务器公钥放在服务器的数字证书之中。
防⽌公钥被篡改:
解决⽅法:将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。
公钥加密计算量太⼤,如何减少耗⽤的时间?
解决⽅法:每⼀次对话(ssion),客户端和服务器端都⽣成⼀个"对话密钥"(ssion key),⽤它来加密信息。由于"对话密钥"是对称加密,所以运算速度⾮常快,⽽服务器公钥只⽤于加密"对话密钥"本⾝,这样就减少了加密运算的消耗时间。
参考⽂章:

本文发布于:2023-06-02 22:31:38,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/131873.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:加密   服务器   客户端   公钥   证书   密钥
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图