• 数字签名标准(DSS)


    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/
  • 相关阅读:
    JMM对数据竞争的定义
    模仿Android微信小程序,实现小程序独立任务视图的效果
    slim.max_pool2d()
    「学习笔记」组合计数与中国剩余定理
    Yolov5实例分割Tensorrt部署实战
    Ubuntu下载工具ip addr、ifconfig、ping、make
    一文读懂区块链互操作性 - web3.0-区块链-元宇宙
    双十二蓝牙耳机哪款好?双十二平价蓝牙耳机推荐
    Angr-CTF学习笔记11-13
    【K8S系列】第九讲:Kubernetes 之探针
  • 原文地址:https://blog.csdn.net/weixin_43211186/article/details/125424597