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

server/2025/1/16 12:00:37/

《深入浅出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://www.ppmy.cn/server/158817.html

相关文章

高斯数据库 Shell 脚本:批量执行多个 SQL 文件

高斯数据库 Shell 脚本&#xff1a;批量执行多个 SQL 文件 优化后的高斯数据库 Shell 脚本 #!/bin/bash# 数据库信息文件路径 DB_INFO_FILE"db_info.txt"# 要执行的 SQL 文件列表 SQL_LIST_FILE"sql_files.txt"# 检查数据库信息文件是否存在 if [[ ! -f …

网络安全的几种攻击方法

攻击方法 挂马: 就是在别人的网站文件里面放入网页木马或者是将代码潜入到对方正常的网页文件里&#xff0c;以使浏览者中马。 挖洞: 指漏洞挖掘。 加壳: 就是利用特殊的算法&#xff0c;将EXE可执行程序或者DLL动态连接库文件的编码进行改变&#xff08;比如实现压缩、加密&a…

SQL 详解数据库

SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;是一种专门用于与关系型数据库进行交互的标准化语言。它可以用于查询、更新和管理数据库中的数据&#xff0c;以及定义和控制数据库的结构。 以下是 SQL 的主要功能模块及其详解&#xff1a; …

Django基础之ORM初识

一.前言 今天我们大致来了解一下django的orm&#xff0c;只是简单的了解&#xff0c;具体的会在下一期和大家来说&#xff0c;本质是关系对象映射&#xff0c;简单点来说就是翻译&#xff0c;利用类创建数据库 二.表结构 2.1 基础配置 首先在app中的models.py中按照规则编写…

mac下使用arthas分析工具报错

mac下使用arthas分析工具 依赖初次运行报错运行前的准备/usr/libexec/java_home -V 返回结果解释&#xff1a;为什么有两个版本&#xff1f;如果使用的是不带参数的命令&#xff1a;设置 JAVA_HOME / 如何选择要使用的 JVM&#xff1a;遗留的问题 依赖 在 JDK8 中&#xff0c;…

vue组件(Ⅰ)

目录 引入 一、组件基础 1.组件组成结构在components文件当中新建文件MyApp.vue 2.组件引用结构-----在App.vue当中设置如下属性 二、组件的嵌套关系 1.Header.vue 2.Main.vue 3.Aside.vue 4.Article.vue 在Main.vue当中注册 5.Itme.vue 在Aside.vue当中注册 三、组…

Jenkins-简介/安装!

一. 关于持续集成&#xff1a; 持续集成(CI ) [ Continuous Integration ]&#xff0c;通俗来讲&#xff0c;就是一个能监控版本控制系统变化的工具&#xff0c;可以自动编译和测试集成的应用程序。出现问题&#xff0c;能够及时的通知相应人员。持续集成是一种思维工具集&…

TypeScript 爬虫项目实战:抓取豆瓣电影 Top 250(TypeScript简单应用)

项目介绍 通过 TypeScript 实现一个简单的爬虫程序&#xff0c;从豆瓣电影 Top 250 页面抓取电影的标题和评论信息&#xff0c;并将数据存储到本地 JSON 文件中。该项目使用了 superagent 和 cheerio 两个核心工具&#xff1a; superagent&#xff1a;一个轻量的 HTTP 请求库…