规范中有很多数学相关的推演和计算,并不打算在这里介绍,主要介绍一下相关的计算流程及最终的签名结果。

算法可以分为:对称算法和非对称算法两大类。对称算法加密和解密都用的是同一个密钥;而非对称算法却是有一对密钥对(公钥和私钥),但是这对公钥加密的东西,能用私钥解开;反之亦然。

RSA就是属于非对称算法,RSA也有一对密钥对用来参与运算。公钥,顾名思义就是可以公开的密钥,其实就是可以拿给大家看的密钥。私钥,当然就是只有自己才能知道的密钥,不可以给人看的,也就是说只有你自己才能知道的。

一开始的时候,总是会分不清楚RSA加解密与签名验签的关系是什么?

应用场景:

加解密,肯定是有什么东西是不想给别人知道的,好比有个宝贝得锁在箱子里,钥匙当然要在自己这里才安全。而RSA里面的私钥呢只有自己可以看见,相当于钥匙了。一把钥匙对应一把锁,这个锁自然就是公钥了。

签名验签呢,就好比目前有一份合同,甲乙双方都按了手印,以示达成协议,不再反悔,所以签名的内容需要是公示给大家看的。但是只有自己亲手按的才能认对吧,那肯定是要用私钥做签名了,因为私钥只有自己才有啊;公钥当然就用来验签了。

计算流程:

加解密:公钥(锁)对明文(宝贝)加密(锁在箱子里);私钥(钥匙)对密文(锁上的箱子)进行解密(打开箱子),就可以得到明文(宝贝)了。

签名验签:私钥(指纹)对明文(合同)进行签名(按手印);公钥(公安局里你的指纹记录)对签名值(按了手印的合同)进行验签(核验手印是否匹配),如果匹配,就是验签通过,就没有办法抵赖了。

计算方法:

从计算流程上可以看出,如果抛开应用场景,而只关注数学运算的话:

加密:公钥 + 明文 ---> 密文

验签:公钥 + 签名 ---> 验签结果

解密:私钥 + 密文 ---> 明文

签名:私钥 + 明文 ---> 签名

所以全部过程,只涉及:公钥运算和私钥运算而已。如果调用openssl的接口,就会发现只有RSA_decrypt和RSA_encrypt两个函数就够了。

PKCS#1规范阅读笔记1--------基本概念的更多相关文章

  1. PKCS#1规范阅读笔记2--------公私钥ASN.1结构

    PKCS#1种介绍了哈希算法的OID等的ASN.1结构,因为使用ASN.1的解码工具(比如:ASN1View)时,会自动显示出各OID的含义,所以这里就不说明了.下面就只简单摘抄一下RSA公私钥的AS ...

  2. 【阅读笔记】rocketmq 概念与架构 (一)

    介绍 rocketmq 框架与基本概念 1. 概念 1.1 namesrv(name server) 记录了 broker 集群信息,消息队列的信息以及 key-value 配置,见 RouteInf ...

  3. 《深入理解Linux网络技术内幕》阅读笔记 --- 路由基本概念

    一.路由的基本概念 1.一条路由就是一组参数,这些参数存储了往一个给定目的地转发流量所需的信息,而一条路由所需的最少的参数集合为:(1)目的网络,(2)出口设备,(3)下一跳网关 2.路由中的相关术语 ...

  4. 《Spring In Action》阅读笔记之核心概念

    DI 依赖注入:在xml中配置的bean之间的依赖关系就是依赖注入 AOP 面向切面编程:如在xml中定义某个方法为切点,然后配置在该切点(该方法)调用前后需要调用的方法,从而简化了代码并解耦. Sp ...

  5. 《Thinking In Java》阅读笔记

    <Thinking In Java>阅读笔记 前四章:对象导论. 一切都是对象. 操作符. 控制执行流程 public在一个文件中只能有一个,可以是一个类class或者一个接口interf ...

  6. 《大象Think in UML》阅读笔记(三)

    Think in UML 阅读笔记(三) 把从现实世界中记录下来的原始需求信息,再换成一种可以知道开发的表达方式.UML通过被称为之概念化的过程来建立适合计算机理解和实现的模型,这个模型被称为分析模型 ...

  7. 《C#程序设计教程 -李春保》阅读笔记

    <C#程序设计教程 -李春保>阅读笔记   ( 需注意程度:红>粗体>下划线,蓝色:我的疑问 )   老师的引言 [师]对待一种新语言的关注点 数据类型定义(python不用定 ...

  8. 《Java多线程编程实战指南(核心篇)》阅读笔记

    <Java多线程编程实战指南(核心篇)>阅读笔记 */--> <Java多线程编程实战指南(核心篇)>阅读笔记 Table of Contents 1. 线程概念 1.1 ...

  9. 阅读笔记 1 火球 UML大战需求分析

    伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本   <火球 UML大战需求分析>,首先 ...

随机推荐

  1. WCF学习系列四--【WCF Interview Questions – Part 4 翻译系列】

    WCF Interview Questions – Part 4   This WCF service tutorial is part-4 in series of WCF Interview Qu ...

  2. C#基础知识四之override和new的区别

    override override是派生类用来重写基类方法的.调用的派生类方法,如需调用基类方法用base关键字 override不能重写非虚方法或静态方法. override重写必须用abstrac ...

  3. C# DataGrid根据某列的内容设置行字体加粗 单元格设置对齐方式

    最近做了个功能,DataGrid显示具体内容的时候,根据某列分组. 每个分组具体内容后边,增加一行显示合计信息. 查询数据时,使用了union all将分组数据与明细数据合并起来,使用了排序达到了预期 ...

  4. [Excel] Worksheet.PasteSpecial

    PasteSpecial(Format, Link, DisplayAsIcon, IconFileName, IconIndex, IconLabel, NoHTMLFormatting) 1. F ...

  5. 背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令

    [源码下载] 背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令 作者:webabcd ...

  6. WNMP集成环境下配置thinkPHP

    在网上查了许多解决方法,下面是自己测试过能行的方法,只需在nginx.conf文件添加内容就可以了. 打开nginx.conf文件 ## Try the requested URI as files ...

  7. 复杂的xml转化为java实体

    一.样例一: 以根据订单号向支付宝查询支付是否成功为例(成功信息) 失败信息: <?xml version="1.0" encoding="utf-8"? ...

  8. 利用SCORE法则来总结一次偷懒的单元测试过程

    最近遇到一个单元测试的问题,本周正好学个了一个SCORE法则,这里正好练练手应用此法则将问题的前因后果分享给大家. S:背景  代码要有单元测试,检测的标准就是统计代码的单元测试覆盖率,程序员需要达到 ...

  9. 十一个行为模式之状态模式(State Pattern)

    定义: 当一个对象有多个状态,并且在每个状态下有不同的行为,可以使用状态模式来在其内部改变状态时改变其行为,而客户端不会察觉状态的改变,仍使用同样的方法或接口与对象进行交互. 结构图: Context ...

  10. [ASP.NET Core] Static File Middleware

    前言 本篇文章介绍ASP.NET Core里,用来处理静态档案的Middleware,为自己留个纪录也希望能帮助到有需要的开发人员. ASP.NET Core官网 结构 一个Web站台最基本的功能,就 ...