【密码学】 一篇文章讲透数字签名

这篇具有很好参考价值的文章主要介绍了【密码学】 一篇文章讲透数字签名。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【密码学】 一篇文章讲透数字签名

数字签名介绍

   数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。

   数字签名可以识别消息是否被篡改, 并验证消息的可靠性, 也可以防止否认。 在之前的博客文章中,我们介绍过消息认证码,它也可以防止消息被篡改,验证消息可靠性。 而数字签名与消息认证码的最大不同在于, 数字签名算法可以防止否认, 因为私钥只有签名者持有, 而消息认证码中的密钥由双方共享。常用的数字签名方法有三种,分别是RSA、 DSA和ECDSA。

数字签名原理

数字签名类似于现实世界中的盖章和签字, 它具有以下四大特征:

  • 可验证性——接收者可以验证发送者签名的真实性和有效性;
  • 不可伪造性——除签名者之外, 任何人不可伪造签名;
  • 不可否认性——发送方不能否认自己所发送的签名;
  • 数据完整性——能够提供对所签消息的完整性检验。

下面通过一个示例来说明数字签名是如何防止否认的:

数字签名的三种方法,物联网安全,密码学,网络,安全

Alice通过密钥生成算法生成密钥对;
2) Alice将公钥发送给Bob, 私钥自己保留;
3) Alice使用单向数列函数计算出合同的摘要值;
4) Alice使用私钥对消息摘要值进行签名;
5) Alice将合同和签名值分别发送至Bob;
6) Bob使用单向散列函数计算出合同的消息摘要值;
7) Bob使用Alice的公钥对签名进行验证, 若验证通过则说明合同内容完整且来自于Alice。

  从本应用场景中可以看出, 虽然数字签名的工作模式与消息认证码较为相似, 但不同的是数字签名可防止否认。 消息认证码使用的密钥为对称密钥, 如果基于消息认证码完成消息的认证过程, 一旦Alice否认曾经向Bob发送过预订合同, 那么Bob将无法对Alice进行指控。 而数字签名算法中私钥只有Alice持有, 其他人无法对签名进行伪造, 这一特点也使得Alice无法对这一过程进行否认。

RSA数字签名算法

  RSA数字签名算法基于RSA密钥系统实现, 在第8章中已经详细介绍了RSA算法。 RSA数字签名过程与RSA加解密过程较为相似, 但公钥和私钥的使用方法却存在明显区别。为了方便描述RSA数字签名过程, 此处依然借助假想场景加以说明, 在假想场景中:
1) Alice通过RSA密钥生成算法生成密钥对;
2) Alice将公钥发送给Bob, 私钥自己保留;
3) Alice使用RSA私钥对消息进行加密操作, 并将消息和签名结果分别发送给Bob;
4) Bob使用RSA公钥对签名进行解密操作, 判断解密结果和消
息是否一致。

  此处Alice使用私钥对消息执行加密操作, 该加密操作可理解为对消息进行数字签名, 该私钥可称为签名密钥; Bob收到消息之后使用Alice的公钥执行解密操作, 该解密操作可理解为对消息执行数字签名验证, 该公钥可称为验证密钥。 总之, 在RSA数字签名中, 私钥用于加密消息, 公钥用于解密消息; 而在RSA加密中, 公钥用于加密消息, 而私钥用于解密消息。 无论如何, 公钥总是可以公开的, 而私钥却不能泄露。

RSA数字签名详细说明

RSA签名

RSA数字签名和RSA加密过程恰好相反, 签名过程使用私钥对数据执行加密操作, RSA数字签名表达式如下, 其中s为签名结果, m为消息(消息可以是明文也可以是消息摘要) 。

s ≡ mdmod n

###RSA验证签名

  同样, 验证签名过程使用公钥对签名数据进行解密, RSA验证签名表达式如下, 其中s为签名结果, m’为解密结果。 验证签名过程判断m’≡mmod n, 成立则为有效签名, 不成立则签名无效。

m' ≡ semod n

   由于参数e的值远小于参数d, 所以RSA验证签名的计算量小于RSA签名, 也就说RSA验证签名速度快于签名速度。

ECDSA数字签名

  ECDSA算法基于椭圆曲线离散对数问题, 使用较短的密钥长度便可提供与RSA签名算法或DSA算法等同的安全等级, 密钥长度为160256位的椭圆曲线算法与密钥长度为10243072位的非椭圆曲线算法安全性相同。 椭圆曲线的基础知识可以参考我之前的博客。

  ECDSA数字签名算法和DSA算法在概念上有紧密联系, 但其计算过程是在椭圆曲线群上完成的, 所以计算过程相差较大。 ECDSA算法与DSA算法相似, 该算法只能提供数字签名功能, 而不能用于加密或密钥交换。

ECDSA生成签名

  ECDSA的签名结果由两部分构成: r和s。 其中r和s的长度与n相同, 例如在secp256r1曲线中, n的长度为256比特, r和s也分别为256比特, 不使用任何编码方式的情况下签名总长度为512比特。 假设消息为M, 单向散列函数为HASH()。 使用ECDSA对消息进行签名的计
算过程如下:
1) 选择一个随机数k, 满足条件0<k<n;
2) 计算R=k·G;
3) 计算z=HASH(M);
4) 设置r=xR, xR为点R的横坐标;
5) 计算s≡(z+d·r)k-1mod n;
6) 得到签名(r,s)。

ECDSA验证签名

在验证签名之前需确保已经得到签名者的公钥、 消息以及签名信息(r,s)。 验证签名的过程如下:
1) 计算w≡s-1mod n;
2) 计算z=HASH(M);
3) 计算u1≡(wz)mod n;
4) 计算u2≡(wr)mod n;
5) 计算P=u1·g+u2·Q;
6) 如果xP≡r mod n, 则签名有效, 否则签名无效, 其中xP为点P的横坐标。文章来源地址https://www.toymoban.com/news/detail-738376.html

到了这里,关于【密码学】 一篇文章讲透数字签名的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 这篇文章把MOS管的基础知识讲透了

    MOS管(Metal-Oxide-Semiconductor field-effect transistor)是一种常见的半导体器件,它在数字电路、模拟电路、功率电子等领域都有广泛的应用。本文将从MOS管的基本结构、工作原理、参数特性等方面讲解MOS管的基础知识。 一、MOS管的基本结构 MOS管是由金属(Metal)、氧化物(Oxide)和

    2024年02月07日
    浏览(42)
  • 【Linux】进程的状态(运行、阻塞、挂起)详解,揭开孤儿进程和僵尸进程的面纱,一篇文章万字讲透!!!!进程的学习②

    目录 1.进程排队 时间片 时间片的分配 结构体内存对齐 偏移量补充 对齐规则  为什么会有对齐 2.操作系统学科层面对进程状态的理解 2.1进程的状态理解 ①我们说所谓的状态就是一个整型变量,是task_struct中的一个整型变量 ②.状态决定了接下来的动作 2.2运行状态 2.3 阻塞状

    2024年04月14日
    浏览(46)
  • 【11.10】现代密码学1——密码学发展史:密码学概述、安全服务、香农理论、现代密码学

    参考:密码学发展简史 骆婷老师的《现代密码学(32H)》课程,笔记+查找的资料补充 期末为闭卷考试的形式 密码学早在公元前400多年就已经产生,人类使用密码的历史几乎与使用文字的时间一样长,密码学的发展大致可以分为 3 个阶段: 1949年之前的古典密码学阶段; 1949 年

    2024年02月04日
    浏览(50)
  • 【密码学】高级密码学-1

      通信双方使用 同一个密钥 ,通过使用加密算法配合上密钥来加密,解密过程采用加密过程的逆过程配合密钥即可。   常见的对称加密算法有DES、AES等。   对称加密的缺点:不能在不安全的网络上传输密钥,一旦密钥泄露则加密通信失败。   非对称加密使用了一

    2024年02月05日
    浏览(54)
  • 【密码学】高级密码学-2

    🍬第⑤部分由L3H_CoLin编写,有一些修改。🍬 Song, Dawn Xiaoding, David Wagner, and Adrian Perrig. “Practical techniques for searches on encrypted data.” Proceeding 2000 IEEE Symposium on Security and Privacy. SP 2000. IEEE, 2000. 数据的安全外包存储 利用密码算法加密明文数据,使得云平台无法获得额外信息 解决

    2024年02月16日
    浏览(37)
  • 【密码学-1】一文入门非对称密码学

    本文共1932字,完成阅读约需6分钟。 犹记得2021年年初的一波区块链热潮让无数人第一次了解到了“公钥”和“私钥”的概念,那么,究竟什么是公钥私钥呢?和常见的密钥又有什么区别和联系呢?本文目的在用尽可能短的时间和简洁的语言,带你快速了解非对称密码学的基本

    2023年04月08日
    浏览(86)
  • 【密码学】python密码学库pycryptodome

    记录了一本几乎是10年前的书(python绝技–用python成为顶级黑客)中过时的内容 里面提到了python标准库中自带的crypt库,经验证Python 3.12.1中并没有这个自带的库,密码学相关的库目前(2024.1.12)是一个自包含库pycryptodome,导入的是 import Crypto pypi库的页面 可以在文档中查看详

    2024年01月17日
    浏览(57)
  • 密码学基本原理和发展——古典密码学

      目录 1 滚筒密码 2 棋盘密码 3 凯撒密码 4 单表代换与多表代换 4.1 单表代换 4.2 多表代换         密码技术最早起源于公元前404年的希腊,此后密码大致经历了 古典密码、近代密码和现代密码三个阶段。         古典密码(公元前五世纪~19世纪末)代表性的是 滚桶密

    2024年02月05日
    浏览(58)
  • 密码学基本原理和发展——近代密码学

    目录 1 密码机通信模型 2 Enigma密码机构造 3 Enigma密码机加解密过程 3.1 加密过程 3.2 解密过程 4 Enigma密码机的安全性 5 Enigma密码机破解 5.1 波兰雷耶夫斯基破解 5.2 图灵破解        近代密码一般指20世纪初~20世纪70年代期间的密码技术。20 世纪初电报的出现第一次使远距离

    2024年02月06日
    浏览(54)
  • 【密码学】量子安全的密码学算法以及原理介绍

    (1)“代数格密码套件”(CRYSTALS)包含两个密码原语Kyber和Dilithium。Kyber是一种抗适应性选择密文攻击(IND-CCA2)安全密钥封装机制,Dilithium是一种高度不可伪造性(EUF-CMA)安全数字签名算法。两种密码都是为了应对量子计算机的攻击,并且在操作过程中只需更改几个参数即

    2024年02月11日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包