《深入浅出HTTPS》读书笔记(28):DSA数字签名

《深入浅出HTTPS​​​​​​​​​​》读书笔记(28):DSA数字签名

对称加密算法有很多算法,标准算法是RSA机密算法,数字签名技术也有一个标准DSS(Digital Signature Standard),其标准算法就是DSA签名算法(Digital Signature Algorithm)

(1)DSA算法的内部结构

p、q、g是公共参数,通过参数会生成密钥对

DSA的密钥对生成就取决于这三个公共参数,计算签名和验证签名也要依赖参数文件。

(2)生成DSA密钥对

◎选取一个随机数作为私钥x,0 < x < q。

◎基于私钥生成公钥,g^x mod p。

从中可以看出RSA算法、DH算法、DSA算法基于离散数学。

(3)签名生成

◎生成一个随机数k,1 < k < q。

◎计算r = ( g^k mod p ) mod q。

◎计算s = ( k^(-1) (H(m) + xr)) mod q, H是特定的摘要算法。

◎签名值就是(r, s),随同原始消息m一起发送。

(4)签名验证

◎假如r和s大于q或者小于0,则验证直接失败。

◎计算w = s^(-1) mod q。

◎计算u1 = H(m).w mod q。

◎计算u2 = r.w mod q。

◎计算v = ( g^u1 * y^u2 mod p ) mod q。

◎如果v等于r,则签名验证成功,否则失败。

相关推荐
http阿拉丁神猫19 小时前
Go语言入门笔记:从基础到开发环境搭建(二)
开发语言·笔记·golang
不会就选b19 小时前
C++补充部分(一)--lambda 表达式
开发语言·c++
Pniubi1 天前
HashMap的扩容和树化边界
java·开发语言
gCode Teacher 格码致知1 天前
Pandas教学-17:Series与Dataframe的关系
开发语言·python·pandas
发量惊人的中年网工1 天前
分公司访问总部ERP慢怎么办?SD-WAN组网的排查与验收要点
服务器·开发语言·php
下页、再停留1 天前
【C#桌面客户端系列学习-15】生成可视化图表之折线图、柱状图、饼状图
开发语言·c#
ShineWinsu1 天前
对于JavaScript:操作元素的解析
开发语言·前端·javascript·面试·web·dom·元素
罗西的思考1 天前
【Agentic RL】Dressage Staleness 控制深度分析
人工智能·算法·机器学习
quaer1 天前
弗洛伊德算法--判圈法寻找环的入口O(n) O(1)
数据结构·算法
益莱储中国1 天前
深度解析:RF 实验室从 5G迈向 6G 的过程中保持技术领先与设备升级的路径
开发语言·php