RSA加密、解密和签名、验签过程理解 (www.jianshu.com)

【简介】

这里将A理解为客户端,B理解为服务端,可以比较好理解.

加解密过程简述
A和B进行通信加密,B要先生成一对RSA密钥,B自己持有私钥,给A公钥 --->A使用B的公钥加密要发送的内容,然后B接收到密文后通过自己的私钥解密内容

签名验签过程简述
A给B发送消息,A先计算出消息的消息摘要,然后使用自己的私钥加密消息摘要,被加密的消息摘要就是签名.(A用自己的私钥给消息摘要加密成为签名)

B收到消息后,也会使用和A相同的方法提取消息摘要,然后用A的公钥解密签名,并与自己计算出来的消息摘要进行比较-->如果相同则说明消息是A发送给B的,同时,A也无法否认自己发送消息给B的事实.(B使用A的公钥解密签名文件的过程,叫做\"验签\").

数字签名的作用:保证数据完整性,机密性和发送方角色的不可抵赖性
加密与签字结合时,两套公私钥是不同的

对签名和验签过程详细理解:
签名过程:

1. A计算消息m的消息摘要,记为 h(m)
2. A使用私钥(n,d)对h(m)加密,生成签名s, s满足:s=(h(m))^d mod n;
由于A是用自己的私钥对消息摘要加密,所以只用使用s的公钥才能解密该消息摘要,这样A就不可否认自己发送了该消息给B
3. A发送消息和签名(m,s)给B
验签过程:

1. B计算消息m的消息摘要(计算方式和A相同),记为h(m)
2. B使用A的公钥(n,e)解密s,得到 H(m), H(m) = s^e mod n
3. B比较H(m)与h(m),相同才能证明验签成功

对加密/解密和签名/验签完整过程详细理解:
A->B:
1. A提取消息m的消息摘要h(m),并使用自己的私钥对摘要h(m)进行加密,生成签名s
2. A将签名s和消息m一起,使用B的公钥进行加密,生成密文c,发送给B

B:
1. B接收到密文c,使用自己的私钥解密c得到明文m和数字签名s
2. B使用A的公钥解密数字签名s解密得到H(m)
3. B使用相同的方法提取消息m的消息摘要h(m)
4. B比较两个消息摘要。相同则验证成功;不同则验证失败

点击查看全文 >>

@shengting 2018-07-31 17:06分享 / 0个评论
赞过的人: 技术头条
要不要再学学下面的文章?
这款神器,能把 Python 代码执行过程看地一清二楚 (mp.weixin.qq.com)
对于一些刚入门 Python 的朋友来说,代码稍微复杂些就难以搞懂代码内部到底是怎么运行的了,而且有时一运行就报错,难以一下发现错误,只会用 Print 去慢慢找异常的地方,效率很低下。
by @code小生 2020-03-15 18:15 分享 查看详情
从 App 启动过程看 Android 10.0 Framework 重构 (mp.weixin.qq.com)
Android每个大版本都会对framework进行一定的重构,10.0也不例外。这次,谷歌把重构的对象瞄准了AMS。看过AMS代码的同学都知道,
by @code小生 2020-01-05 21:33 分享 查看详情
如何保障云上数据安全?一文详解云原生全链路加密 (yq.aliyun.com)
对于云上客户而言,其云上数据被妥善的安全保护是其最重要的安全需求,也是云上综合安全能力最具象的体现。本文作者将从云安全体系出发,到云数据安全,再到云原生安全体系对全链路加密进行一次梳理,从而回答:在云原生时代,全链路加密需要做什么?如何做到?以及未来要做什么?
by @可耐芊小仙女 2019-12-17 16:37 分享 查看详情
从零开始入门 K8s | 手把手带你理解 etcd (yq.aliyun.com)
etcd 是用于共享配置和服务发现的分布式、一致性的 KV 存储系统。本文从 etcd 项目发展所经历的几个重要时刻开始,为大家介绍了 etcd 的总体架构及其设计中的基本原理。希望能够帮助大家更好的理解和使用 etcd。
by @可耐芊小仙女 2019-12-16 14:57 分享 查看详情
都知道v1和v2签名,v3你了解吗? (mp.weixin.qq.com)
都知道v1和v2签名,v3你了解吗?Google又在签名证书上搞什么鬼?
by @SELECT-FROMALL 2019-11-11 09:29 分享 查看详情
Android路由框架ARouter的集成、基本使用以及踩坑全过程 (mp.weixin.qq.com)
对项目进行过组件化的同学肯定也都经历过这样的痛苦,在模块之间通过原生路由方案的界面跳转存在很多的约束,例如子模块向主模块显示跳转无法引用类依赖,又或者是隐式跳转时繁琐的规则定义。并且在项目中如果涉及到需要根据用户的角色或者权限来展示不同内容时,就会在各个界面产生大量的逻辑代码,后期很难进行统一维护,因此,一套类似于前端的路由框架就能解决我们这一系列的烦恼,而对于Android,如今其实已经有相当多成熟的路由框架了,刚好这次项目中准备使用阿里开发的ARouter框架,因此详细来说说这个框架的集成、使用和一些踩坑的过程。
by @code小生 2019-11-03 18:29 分享 查看详情
云栖深度干货 | 打造“云边一体化”,时序时空数据库TSDB技术原理深度解密 (yq.aliyun.com)
第一代时序时空数据处理工具 虽然通用关系数据库可以存储时序数据,但是由于缺乏针对时间的特殊优化,比如按时间间隔存储和检索数据等等,因此在处理这些数据时效率相对不高。 第一代时序数据典型来源于监控领域,直接基于平板文件的简单存储工具成为这类数据的首先存储方式。 以RRDTool,Wishper为代表,通常这类系统处理的数据模型比较单一,单机容量受限,并且内嵌于监控告警方案。
by @技术小编443 2019-10-22 14:21 分享 查看详情
打造“云边一体化”,时序时空数据库TSDB技术原理深度解密 (yq.aliyun.com)
第一代时序时空数据处理工具 虽然通用关系数据库可以存储时序数据,但是由于缺乏针对时间的特殊优化,比如按时间间隔存储和检索数据等等,因此在处理这些数据时效率相对不高。 第一代时序数据典型来源于监控领域,直接基于平板文件的简单存储工具成为这类数据的首先存储方式。 以RRDTool,Wishper为代表,通常这类系统处理的数据模型比较单一,单机容量受限,并且内嵌于监控告警方案。
by @可耐芊小仙女 2019-10-21 16:38 分享 查看详情
干货满满!解密阿里云RPA (机器人流程自动化)的产品架构和商业化发展 (yq.aliyun.com)
阿里云RPA,作为阿里云自研8年的技术,在资本的热捧下,逐渐从幕后来到台前,成为企业服务市场的黑马。本文将从产品上全面剖析,阿里云RPA这款产品的现阶段情况,同时简单谈谈阿里云RPA的商业化进展。
by @可耐芊小仙女 2019-10-18 17:21 分享 查看详情
研发效能提升 36 计第二课:照亮问题,效能提升从可视化交付过程开始 (yq.aliyun.com)
互联网时代,业务与协作复杂度与日俱增,竞争日趋激烈,提升研发效能已成为软件行业的共同挑战。《研发效能提升和敏捷实施 36 计》是阿里云联合 Teambition 精心打造的系列课程,课程由何勉、张刚、张燎原等国内多位在研发效能领域拥有数十年经验的精益敏捷资深专家担任讲师;将从敏捷项目协作、敏捷需求管理、持续交付与工程实践、设计及代码实践、业务创新 5 大方面,首次系统分享阿里巴巴研发效能提升方法、解析阿里巴巴及业界优秀实践案例,并通过工具的直观演示,帮助企业研发管理者们突破研发效能瓶颈、通往业务成功之路。
by @可耐芊小仙女 2019-09-23 15:24 分享 查看详情