ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数字签名简记

2021-12-01 11:59:15  阅读:208  来源: 互联网

标签:签名者 验证 数字签名 简记 签名 mod 消息


概念:

   1976年Diffie和Hellman提出电子签名的概念,目的是通过签名者对电子文件进行电子签名,使签名者无法否认自己的签名,同时别人也不能伪造或复制签名,从而实现与手写签名相同的功能,具有与手写签名相同的法律效力。数字签名就相当于社会中的身份证,用户在进行电子商务活动时可以通过数字证书来证明自己的身份。数字证书当中包含了用户的基本信息及公钥信息。利用数字证书上的相关信息,可对数字证书的真伪进行验证。

目前数字签名技术的研究主要集中在基于公钥密码体制的数字签名。

原理:

数字签名一般都要求有可信任的第三方,在发生纠纷的时候作为仲裁者,所以,在研究中多以非对称密码体制为基础提出数字签名方案。下面以RSA算法为例。

假如用户Bob的参数选取简单写为n=pq,其中p和q是大素数。{e,n}为公钥,{d,n}为私钥,一个用户的公钥会在较长时间内保持不变,所以我们可以说,在一定时间内,{e,n}表示了私秘秘钥{d,n}的持有者的身份。

私钥签名,公钥验证;人人皆可验证签名(签名者的公钥人人皆知 

 一个签名方案至少满足以下三个条件:

1签名者事后不能否认自己的签名。

2接受者能验证签名,而任何其他人都不能伪造签名。

3当双方关于签名的真伪发生争执,一个第三方能解决双方之间的争执。

补充: 

消息认证码(MAC)并不能很好地解决“不可否认”的问题

MAC中用的是对称密码体制的思想,发送方和接收方共享一个密钥。

发送方事后可能会否认自己生成的MAC,并且把他赖在接受方身上。

接受方也确实有可能生成新MAC的能力,对于纠纷,第三方很难解决。

分类:

1基于大数难解题的数字签名,(RSA数字签名方案

2基于离散对数的数字签名,(ElGamal数字签名方案

3基于椭圆曲线离散对数的数字签名 

数字签名算法:

一个数字签名包含两个算法,即签名算法和验证算法。在签名阶段,签名者用自己的私钥对消息进行签名。在验证阶段,验证者则通过签名者对应的公开钥进行验证。

RSA数字签名: 

以{e,n}为公钥,{d,n}为私钥。

签名过程:假设签名者Bob,则只有Bob知道私钥{d,n}。

设需要签名消息为m,则签名者Bob通过s = m^e mod N

(m,s)为对消息m的签名。Bob在公共媒体上宣布他发布了消息,同时把m的签名s置于消息后用于公众验证签名。

验证过程:私钥签名,公钥验证

  公众在看到消息m和其签名s后,利用Bob的公开验证密钥{e,n}对消息进行验证。公众计算

m = s^d mod 是否成立,若成立,则Bob的签名有效。公众认为消息m的确是Bob所发布,且消息内容没有被篡改。

改进:

假设公开的安全hash函数 H()

1)签名过程
设需要签名的消息m,签名者Bob通过如下计算完成签名

S=H(m)^d mod n

(m,s)为对消息m的签名。

验证过程:

在收到消息后,验证 H(m)=s^e mod n是否成立。成立则签名有效。

通过哈希函数,有效防止了对签名的伪造,增强了签名算法的安全性。

ElGamal数字签名方案:

私钥生成签名,但签名算法和ElGamal相差较大

 ElGamal加密

{g,y,p}是公钥  {g,x,p}是私钥

过程:

r=g^k(mod p)
s=k^-1(m-rx)(mod p-1)(k^-1 表示 k mod p-1 的逆元)
(m, r, s)为对消息 m 的数字签名。

对方收到对消息 m 的数字签名(m, r, s)后,利用签名者的公开密钥(y, g, p)对签名进行以下验证:
(y^r)(r^s) mod p=g^m(mod p)(左式计算时可以使用快速幂取模)
如果上式成立,则接受该签名,否则拒绝该签名。

补充:

 数字签名实现了对消息的完整性认证,同时消息发送方不能抵赖自己的签名。

在进行数字签名时,往往需要对消息计算其消息摘要。一般来说,计算消息的消息摘要值有两个作用,一个是增强了算法的安全性,比如前面我们在RSA签名算法中所看到的,二是代签名的消息往往比较长一般会超过其消息摘要值,计算其消息摘要值有利于减少签名的计算量。ElGamal最好也结合hash函数使用.

我国数字签名标准:非对称算法SM2和摘要算法SM3

SM2数字签名标准

图解SM2签名流程

 

标签:签名者,验证,数字签名,简记,签名,mod,消息
来源: https://blog.csdn.net/weixin_52369224/article/details/121648235

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有