《深入浅出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,则签名验证成功,否则失败。

相关推荐
繁华似锦respect4 分钟前
C++ 设计模式之观察者模式详细介绍
linux·开发语言·c++·windows·观察者模式·设计模式·visual studio
LDG_AGI4 分钟前
【推荐系统】深度学习训练框架(九):推荐系统与LLM在Dataset、Tokenizer阶段的异同
人工智能·深度学习·算法·机器学习·推荐算法
爪哇部落算法小助手8 分钟前
每日两题day61
数据结构·c++·算法
Swift社区9 分钟前
LeetCode 439 - 三元表达式解析器
算法·leetcode·ssh
小殊小殊9 分钟前
重磅!DeepSeek发布V3.2系列模型!
论文阅读·人工智能·算法
ljj2535575051__9 分钟前
nginx的https的搭建
运维·nginx·https
裤裤兔11 分钟前
利用matlab进行FDR校正的实现方式
数据结构·算法·matlab·多重比较矫正·校正·fdr
野蛮人6号11 分钟前
力扣热题100道之31下一个排列
算法·leetcode·职场和发展
子一!!12 分钟前
哈希桶,元素插入逻辑实现
算法·哈希算法
敲代码的嘎仔12 分钟前
LeetCode面试HOT100——160. 相交链表
java·学习·算法·leetcode·链表·面试·职场和发展