浅浅瞅瞅RSA-PSS 算法
一、前言
按照惯例传统,还是要讲讲为什么来学习这个东西。我的原则学习无非是项目驱动、和知识联系。
学习这个是因为在看代码的时候看到了RSA一个宏定义后面加了一个PSS,我就奇了怪了,这玩意是个啥呢?
咱们得循序渐进哦!!!
- SSA = Signature Scheme with Appendix
- PSS = Probabilistic Signature Scheme
- ES = Encryption Schemes
SSA是填充、封装格式;PSS是私钥签名流程;ES是公钥加密流程。
即中间人有办法控制m。
二、来讲讲RSASA-PSS
2018年发布的 TLS v1.3(TLS:Transport Layer Security,传输安全层协议,TLS v1.3 对应 RFC 8446)中,其支持的数字签名算法有:RSASSA-PKCS1-v1_5、RSASSA-PSS、ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法)、EdDSA(Edwards-Curve Digital Signature Algorithm,爱德华曲线签名算法)。
这些算法已经是标准(或者是事实上的标准),不过从某种意义上说,这些算法也代表着美国签名算法流派。
除美国外,俄罗斯在1994年发布数字签名算法标准 GOST R 34.10-94,并在2001年发布椭圆曲线数字签名算法标准GOST R34.10- 2001。GOST R34.10-2001在2012年更新为 GOST R34.10-2012。韩国在1998年发表韩国基于证书的数字签名算法 KCDSA 和 EC- KCDA,对应标准发布于[88,89]。德国在 2005 年发布德国椭圆曲线数字签名算法标准 EC- GDSA。中国在 2012 年发布 SM2 椭圆曲线数字签名算法标准,在 2016 年发布 SM9 标识密码数字签名算法标准。
作为重要的国际标准化组织,ISO/IEC 同样也发布了一系列的数字签名算法标准:ISO/IEC 9796、ISO/ IEC 14888、ISO/IEC 20008、ISO/IEC 18370、ISO/IEC 23264 等等。
弱水三千,只取一瓢。由于文章主题和篇幅的关系,本文只介绍 RSASA-PSS 算法。
PSS (Probabilistic Signature Scheme,概率签名方案)是私钥签名的一种填充方式。RSASA(RSA Signature Algorithm,RSA 数字签名算法)目前支持两种算法:RSASSA-PKCS1-v1_5、RSASSA-PSS。由于安全的原因,RSASSA-PKCS1-v1_5 现在的使用场景仅仅是为了兼容,当前主流推荐使用 RSASSA-PSS 算法。
PSS 方案首先由 Bellare和Rogaway 首先提出,PSS 与 OAEP(Optimal Asymmetric Encryption Padding,最优非对称加密填充)非常相像,当然 OAEP也是由这两位大神提出的。
Mihir Bellare是加州大学圣地亚哥分校(UCSD,University of California, San Diego)计算机科学与工程系的教授。Bellare 于1986年在加州理工学院获得学士学位,1991年在麻省理工学院获得博士学位。1991年至1995年,Bellare 在IBM担任研究员 Bellare 是HMAC、RSA-OAEP、RSA-PSS和OCB的联合开发者。Bellare 是 ACM 和 IACR 的研究员。他曾获得 ACM 巴黎Kanellakis 理论与实践奖,RSA 会议数学奖,David 和 Lucille Packard基金会科学与工程奖学金,以及NSF职业奖( He has received an ACM Paris Kanellakis Theory and Practice Award, an RSA Conference Award in Mathematics, a David and Lucille Packard Foundation Fellowship in Science and Engineering, and an NSF Career award)。
Phillip Rogaway 是美国加州大学戴维斯分校(UCD,University of California, Davis)计算机科学系的教授。Rogaway 本科毕业于加州大学伯克利分校(UCB,University of California, Berkeley),并于1991年到麻省理工计算理论小组攻读博士学位(MIT s Theory of Computation group )。博士毕业之后,Rogaway 到 IBM 担任安全架构师,然后于1994年到 UCD 工作。Rogaway 获得过 Levchin 奖(2016),PET 奖(2015),IACR 研究员(2012),ACM巴黎 Kanellakis 奖(2009),RSA 数学奖(2003)(Levchin prize (2016), PET Award (2015), IACR Fellow (2012), ACM Paris Kanellakis Award (2009), RSA Award in Mathematics (2003))。
1-那RSA和RSASSA是个什么关系
RSA 数字签名算法(RSASA)的本质,仍然是 RSA 加密/解密算法,如图2所示。
从图中可以看到,RSSSA 分为两步。
- 将待签名的 M 进行 Hash,从而得到 H
- 将 H 进行 RSA 私钥加密
既然是 RSA 加密,就绕不开 RSA 那个致命问题——能够非常简单地被选择密文攻击所破解,于是也就引发了 RSA 填充算法。
RSASSA-PKCS1-v1_5 采用的就是 RSA_PKCS1_PADDING_v1_5 填充算法,而 RSASSA-PSS 的填充算法则与 RSA_PKCS1_OAEP_PADDING 填充算法比较相像。下面我们就介绍 RSASSA-PSS 算法(一个填充算法)。
2-RSASSA-PSS 的填充算法
RSASSA-PSS 算法本质就是在 RSA 算法的基础上叠加上一种填充算法(为了便于表述,这种填充算法也可以称为 RSA-PSS 填充算法,或者 RSA-PSS 编码),如图3所示。
在 Hash 之后,在 RSA 之前,RSASA-PSS 算法插入了一个 RSA-PSS 填充算法。RSA-PSS 的具体算法,如图所示:
图中,RSA-PSS 填充算法,分为四步。下面我们分别讲述这四步。
1 M 转换成 M1
2 构建 DB
3 MGF
4 构建 EM
2-RSASA-PSS 的签名算法
经过 RSA-PSS 填充以后,接下来的签名算法,就比较简单了,
EM = RSA-PSS(M)S = RSAEP(EM)
3-RSASA-PSS 的签名验证
RSASA-PSS 签名验证,分为如下几个步骤。
1 解密
2 分割 EM
3 计算 salt
4 校验 Hash
4-RSAES-PKCS1-v1_5 加密流程
作⽤:RSA公钥加密
常见于使⽤RSA算法的TLS握⼿,例如客户端拿到服务端的公钥后,对⾃⼰⽣成的key进⾏加密。
5-RSASSA-PKCS1-V1_5-SIGN 签名流程
该签名流程,使⽤了EMSA-PKCS1-v1_5 封装格式
就是RSA签名,常见于 数字证书的签名,例如CA证书是RSA证书,那么由他⽣成的下级证书,就会⽤CA证书的私钥进⾏签名,获得⼀个值插在下级证书⾥⾯。
感谢前辈的文章
参考链接:
https://www.51cto.com/article/663141.html
https://wenku.baidu.com/view/1367392cf48a6529647d27284b73f242336c3192.html?wkts=1675347108003&bdQuery=PKCS1_PSS
浅浅瞅瞅RSA-PSS 算法相关推荐
- 2-路插入排序c语言算法,浅谈2路插入排序算法及其简单实现
2路插入排序算法是在直接插入排序算法的基础上增加了一个辅助数组,其目的是减少排序过程中的移动次数,需要增加n个记录的辅助空间. 难点可能在于对取余的考虑吧,可以把辅助数组看成一个环状空间,这样就能更好 ...
- python算法程序_浅谈python常用程序算法
一.冒泡排序: 1.冒泡排序是将无序的数字排列成从小到大的有序组合: 过程:对相邻的两个元素进行比较,对不符合要求的数据进行交换,最后达到数据有序的过程. 规律: 1.冒泡排序的趟数时固定的:n-1 ...
- 技术分享:浅谈滴滴派单算法
浅谈滴滴派单算法 原创: 王犇 刘春阳 徐哲 滴滴技术 桔妹导读:说到滴滴的派单算法,大家可能感觉到既神秘又好奇,从出租车扬召到司机在滴滴平台抢单最后到平台派单,大家今天的出行体验已经发生了翻天覆地的 ...
- **浅谈三角测距激光雷达测距算法**
浅谈三角测距激光雷达测距算法 此篇文章主要对我这半年以来对激光雷达光斑定位算法上一些粗浅的见解,三角测距的基本原理在这里就不做基本的叙述,百度一下都有.本文主要对三角法激光雷达比较重要和比较难以匹配的 ...
- 带你浅浅了解自动驾驶激光雷达
"激光雷达市场竞争异常激烈,国内两大巨头厂商禾赛科技.速腾聚创一较高下,国外FMCW方案厂商Aeva一骑绝尘.本文将介绍TOF和FMCW的激光雷达以及行业现状,带大家浅浅了解激光雷达小知识. ...
- 真-浅浅了解下音视频文件格式和相关概念
真-浅浅了解下音视频文件格式和相关概念 散装知识,只是突然对这类知识感兴趣,想简单了解下,找到啥就记录啥,没有深入研究文件内部组成构造和底层实现技术和相关标准,毕竟内容挺多的,我也不是必须得学透,况且 ...
- 花嫁之容氏浅浅最后怎么样了_花嫁之容氏浅浅小说
<花嫁之容氏浅浅>小说节选免费试读 梅姐变成了植物人? 我惊呆了. 我知道梅姐在雪山那次受了伤,可我没想到严重到这种地步.毕竟陆亦辰.梅婷婷也都被那女鬼抓走了,都没什么大碍啊. " ...
- 浅浅轻吟如花的芬芳,开始散漫着
落日红极惹上彩色的画面,黄昏的夕阳化了妆,红红升腾洒遍各个角落,一种美丽的惆怅安详端坐,独享这份安乐.剧情中的主角何慕天,李梦竹几度夕阳.摊开的落日,晚霞布满落日四周的云彩,那海的岸边,夕阳映照余晖恋 ...
- 花嫁之容氏浅浅最后怎么样了_花嫁之容氏浅浅最后怎么样了小说完整版
花嫁之容氏浅浅最后怎么样了?小说花嫁之容氏浅浅中主角舒浅容祁最后都怎么样了?推荐在线阅读小说完整版,了解更多故事精彩内容.昨晚那不是梦那.那是真的?男鬼邪性的笑了笑,还不算太笨,所以舒浅昨晚是真实存在 ...
最新文章
- 京东金融晒 “打黑成绩单”:一年内避免用户损失上亿元
- Seq2Seq实现闲聊机器人
- 51定时器控制4各led,使用回调函数机制
- 使用Python的http.server实现一个简易的Web Api对外提供HanLP拼音转换服务
- SAP 系统中图标代码的查找
- jsoup 去除html标签,如何使用jsoup取消注释html标签
- mysql中国菜刀连接_中国菜刀使用方法以及小技巧
- 穿越剧_零差评的5部穿越剧,少有的巅峰之作,第一堪称穿越鼻祖!
- vs2013代码模板设置
- office mime type
- pandas如何往mysql追加数据
- oracle 设置不可重复,oracle – 不可重复读和幻读之间有什么区别?
- 王者QQ微信都在用的动画神器要开源了:把交付时间缩短90%
- 论文查重 降重复度?如何进行毕业论文查重--总结贴
- java碳纤维折叠车评测_开启轻奢生活 SAVA Z1碳纤维折叠车 评测
- 个人陈述 计算机专业,研究生个人陈述范例,计算机专业
- 大学生做 app 开发,用云服务和租赁服务器,哪个更合适?
- StartActivity的2种用法
- 如果写不好 SQL,有没有好用的报表软件?
- 【前端】JS的BOM和DOM,事件,表单验证案例