简述DSA数字签名算法

在之前的文章中,我们了解了很多加密算法,基本上都是作为加密数据的工具出现,那么今天我们来了解一个不能用来加密数据,但却被美国NIST作为DSS数字签名的标准的加密算法——DSA数字签名算法。

什么是DSA算法?

DSA数字签名算法全称为Digital Signature Algorithm,它是Schnorr和ElGamal签名算法的变种,一种公开密钥算法,不能用来加密数据,一般用于数字签名和认证。

DSA

DSA算法的特点

DSA算法中不单单只有公钥、私钥,还有数字签名。私钥加密生成数字签名,公钥验证数据及签名。在DSA数字签名和认证中,发送者使用自己的私钥对文件或消息进行签名,接受者收到消息后使用发送者的公钥来验证签名的真实性,包括数据的完整性以及数据发送者的身份,如果数据和签名不匹配则认为验证失败。

DSA数字签名可以理解为是单向加密的升级,不仅校验数据完整性,还校验发送者身份,同时还由于使用了非对称的密钥来保证密钥的安全,所以相比消息摘要算法更安全。

DSA和RSA不同之处在于它不能用作加密和解密,也不能进行密钥交换,只用于签名,DSA比RSA要快很多。

DSA算法

DSA算法的原理

DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,用户也能确认它们是否是随机产生的。

DSA

DSA算法签名过程

  1. 使用消息摘要算法将要发送数据加密生成信息摘要。
  2. 发送方用自己的DSA私钥对信息摘要再加密,形成数字签名。
  3. 将原报文和加密后的数字签名一并通过互联网传给接收方。
  4. 接收方用发送方的公钥对数字签名进行解密,同时对收到的数据用消息摘要算法产生同一信息摘要。
  5. 将解密后的信息摘要和收到的数据在接收方重新加密产生的摘要进行比对校验,如果两者一致,则说明在传送过程中信息没有破坏和篡改;否则,则说明信息已经失去安全性和保密性。

DSA算法

DSA算法因为强大的安全性,成为数字签名算法中的佼佼者,目前已经广泛应用于数字签名领域。

免责声明:素材源于网络,如有侵权,请联系删稿。

相关推荐

一篇文章带你看明白数字签名到底是个啥?

随着信息化时代的发展,相信很多年轻人都没有写过信,但是经历过的人都知道,在信件落款处往往都要留下自己的姓名,以确定和表明我们的身份。 [success]但你可听说过“数字签名”?[/success] “数字签名”简单的来说, ...

干货!当前流行的几种加密体制汇总

古典密码 古典密码是以语言学为基础,对文字进行字符转化,最核心的有两种加密技巧:移位和替代,移位算法也叫错位算法,就是讲数字重新排序,例如123456变成341265。替代算法也叫置换算法,将明文中的一组字符替代 ...

RSA加密算法被广泛应用于数字签名等领域

在计算机信息传递中,信息发送方甲方,为了保护传输的明文信息不被第三方窃取,采用一个密钥A对要发送的信息进行加密而形成密文M并且发送给乙方,信息的接收方-乙方用另一把密钥B对密文M解密,得到明文消息,从而完 ...

简述Akelarre加密算法

Akelarre加密算法是一种分组密码算法,是由Alvarez G和Montoya F等人于1996年年提出的。我们今天就来简单了解一下Akelarre加密算法。 Akelarre加密算法简介 Akelarre加密算法是一种结构类似于IDEA的分组密码算法,和 ...

微信扫一扫,分享到朋友圈

简述DSA数字签名算法