0x01 数字签名标准

数字签名标准 (DSS) 是美国国家安全局开发的一种数字签名算法,作为电子文档的身份验证手段。
DSS 创建后,于 1994 年由美国国家标准与技术研究院出版,此后成为美国政府认证电子文档的标准。

DSS 还被指定为联邦信息处理标准 ( FIPS ) 186 中经过验证的身份验证方式。

目前的几个参考文献标准
“FIPS PUB 186-1:数字签名标准 (DSS),1998-12-15” (PDF)。csrc.nist.gov。于 2013 年 12 月 26日从原始 文件 (PDF)存档。
“FIPS PUB 186-2:数字签名标准 (DSS),2000-01-27” (PDF)。csrc.nist.gov。
“FIPS PUB 186-3:数字签名标准 (DSS),2009 年 6 月” (PDF)。csrc.nist.gov。
“FIPS PUB 186-4:数字签名标准(DSS),2013-07-19” (PDF)。csrc.nist.gov。

0x02 数字签名标准运作

数字签名标准包含椭圆曲线数字签名算法 (DSA),以及基于公钥加密标准 #1和美国国家标准协会 X9.31的Rivest-Shamir-Adleman签名定义。

数字签名标准运作过程

  • 生成密钥,包括公钥和私钥
  • 消息来源创建数字签名
  • 接收方验证数字签名

DSS 只为我们提供数字签名功能,不提供任何加密或密钥交换策略。签名是结合使用私钥生成的,验证私钥是参照相应的公钥进行的。

DSS 不同于 RSA 算法使用公钥、私钥和散列函数,而 DSS 使用公钥、私钥、散列函数、随机数和全局公钥。

发送方

在 DSS 方法中,将消息通过数字签名算法,通过消息生成哈希码,并将输入提供给签名函数:

  • 哈希码(哈希码从消息中生成,并作为发送方签名函数的输入。)
  • 为该特定签名生成的随机数“k”
  • 发送者的私钥PR(a)
  • 全局公钥PU(g)

接收方

在接收端,对发送者进行验证,验证用于验证发送方发送的消息和签名,生成发送消息的哈希码,通过以下的输入进行验证:

  • 接收方生成的哈希码(发送消息的哈希码由接收方通过应用哈希函数生成)
  • 签名组件
  • 发件人的公钥
  • 全局公钥

最后将签名函数与验证函数的输出进行比较,如果两个值匹配,则签名有效。

References:
https://www.geeksforgeeks.org/digital-signature-standard-dss/
https://usemynotes.com/what-is-digital-signature-standard/

数字签名标准(DSS)相关推荐

  1. 数字签名标准(DSS)工作原理指南

    正如我们所研究的, 签名是一种验证来自受信任个人的数据的方法.同样, 电子签名是一种对来自可信来源的数字数据进行身份验证的方法. 数字签名标准(DSS)是联邦信息处理标准(FIPS), 它定义了用于在 ...

  2. 密码学---数字签名和认证协议---数字签名标准

    数字签名标准 DSS的基本方式 RSA签名过程 DSS签名过程 数字签名算法DSA 全局公钥 用户私钥x 用户公钥y 用户为待签消息选取的秘密数k 签名过程 验证过程 数字签名标准(Digital S ...

  3. dss数字签名技术java_DSS数字签名标准

    DSS数字签名标准 签名过程: graph TD; id2 -.Signature.-> id12 subgraph Signature Generation; id0(Message/Data ...

  4. 数字签名标准算法——DSA

    数字签名标准算法--DSA 1. 算法简述 2.模型分析 3. 代码实现 3.1 算法实现 3.2 测试代码 3.3 运行结果 1. 算法简述 RSA为经典数字签名算法 数字签名标准(Digital ...

  5. 数字签名(RSA签名、ElGamal签名、Schnorr签名、DSS、DSA、离散对数签名、特殊性质的签名算法、Chaum盲签名、Chaum-Antwerpen不可否认签名、群签名、MUO代理签名)

    数字签名基本概念 数字签名的必要性: 消息认证能够使通信双方对接收到的信息来源及完整性进行验证,防止第三方的攻击,然而却不能防止通信双方中的一方对另一方的欺诈. 这种欺诈有多种形式,例如通信双方(发送 ...

  6. 密码学基础知识(八)略说数字签名

    简略说说数字签名体制DSS: 怎么说呢,咱们之前在公钥密码那大致说了说,现在结合之前的DSA,ElGamal 等说一说. 首先,数字签名不能伪造,不能复制,不能篡改,不能抵赖,可验证. 那签名是啥呢, ...

  7. 密码学系列之七:数字签名

    数字签名 1. 概述 1.1 基本概念 1.2 签名原理 1.2.1 形式化定义 1.2.2 签名过程 2 基于RSA的签名方案 2.1 实现过程 2.2 安全性分析 3 基于离散对数的签名方案 3. ...

  8. 信息安全——消息认证与数字签名

    消息认证和数字签名是为防止以下情况: (1)伪造:从假冒信源向网络插入消息. (2)内容修改:消息内容被插入.删除.变换等. (3)顺序修改:重组消息序列. (4)时间修改:消息延迟或重放. (5)否 ...

  9. 【graceup系列】--基于Java带数字签名的邮件收发系统

    公钥和私钥就是俗称的不对称加密方式,使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的: 1.我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到. 2.必须保证是我发送的邮件,不是别 ...

最新文章

  1. 收藏!工作中Git使用实践和常用命令流程合集
  2. eclipse如何连接mysql_Python如何连接 MySQL?
  3. C 工具库3:固定大小的 obj pool
  4. 华为故事,李一男,任正非
  5. 曼哈顿距离和欧拉距离
  6. 星跃计划 | 新项目持续招募中!MSR Asia-MSR Redmond 联合科研计划邀你申请!
  7. matplotlib color可选
  8. java 日期处理_JAVA 日期处理大全
  9. Dubbo的SPI实现
  10. python3基础(九)内置函数
  11. CentreonMonitoringEvent Logs没有结果的解决方法
  12. 医院绩效考核系统设计方案
  13. matlab画图画点画直线
  14. 路由器无线模式与信道检测
  15. html+移动端图片点击放大,移动端点击图片放大特效PhotoSwipe.js插件实现
  16. 2.CPU体系架构-寄存器
  17. Excel:一个Excel自动计算公式,一个Excel手动计算?多进程
  18. Wallpaper 双屏单独显示壁纸
  19. 2021年终总结暨2022年计划安排
  20. java 动态添加字段 以及 动态新增字段注解

热门文章

  1. windows下更改中文用户名为英文
  2. java 从已知日期计算干支纪日_天干地支纪日怎么计算?
  3. vue中使用电子签名
  4. 基于Halcon学习的一维码识别【十三】ean13.hdev
  5. 2-5 修理牧场【优先队列/最小堆】
  6. [电脑]电脑面前的自我保护
  7. 文末送书 | 手把手教你玩转,Python 会交互的超强绘图库 Plotly!
  8. 词云可视化——四行代码轻松上手
  9. mysql:innodb存储引擎之表结构
  10. 有服务器必须要虚拟主机吗,有服务器还要虚拟主机吗