服务器之家:专注于服务器技术及软件下载分享
分类导航

服务器资讯|IT/互联网|云计算|区块链|软件资讯|操作系统|手机数码|百科知识|免费资源|头条新闻|

服务器之家 - 新闻资讯 - 百科知识 - 什么是数字签名?

什么是数字签名?

2019-10-15 20:13服务器之家 百科知识

数字签名 (Digital Signature)又称公钥数字签名,是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。数字签名不是指将签名扫描成数字图像,或者用触摸板获取的签名,更不是落

数字签名(Digital Signature)又称公钥数字签名,是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。数字签名不是指将签名扫描成数字图像,或者用触摸板获取的签名,更不是落款。

什么是数字签名?

在说明数字签名之前,需要了解密码学的一些基本概念:

明文:消息的初始形式

密文:加密后的形式

密钥:指某个用来完成 加密、 解密、完整性验证等密码学应用的秘密 信息。

如果我们将明文记为P,密文记为C,密钥记为K,加密算法记为E,解密算法记为D,则C=E(P),P=D(C);则要求密码系统满足P=D(E(P))。

对称加密以及非对称加密:

对称加密算法指的是在加密和解密的时候使用的是同一个秘钥,同一个密钥可以同时用作信息的加密和解密。

需要密钥的加密算法记为:C=E(K,P),并且P=D(K,E(K,P))。

而非对称加密算法则需要不同的两个密钥来进行加密和解密,这两个密钥一般分别叫做公钥和私钥。

加密与解密的密钥不同,则:P=D(KD,E(KE,P))。公钥和私钥成对出现,是通过某一种加密算法得到一个密钥对,公钥是密钥对中公开的部分,私钥则是非公开的部分。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。

步骤1-3

步骤1: A通过随机算法,生成一对密钥,有公钥和私钥;

步骤2:A将公钥公开,分别发给B,C,D;

步骤3:B想给A发送一条信息,首先用A的公钥对这条信息加密,然后将加密后的信息(密文)传播给A,A在接收到信息之后,用自己的私钥进行解密,从而得到B给A的信息原文。

那么数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。数字签名的生成和使用过程如下图所示:

步骤4-5

步骤4:A将要发送的信息通过哈希运算,得到摘要,并用私钥进行加密,生成这个信息的数字签名。

步骤5:A将所要发送的信息和数字签名同时发送给B,B利用A的公钥来对此数字签名解密,从而确定该信息的确来自A。另外,B通过对A发送的信息进行哈希运算得到的摘要与解密得到的摘要进行对比,可以确定该信息是否被篡改过。

什么是数字签名?

一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证,但法条中的电子签章与数字签名,代表之意义并不相同,电子签章用以辨识及确认电子文件签署人身份、资格及电子文件真伪者。而数字签名则是以数学算法或其他方式运算对其加密,才形成的电子签章,意即并非所有的电子签章都是数字签名。

数字签名了的文件的完整性是很容易验证的,而且数字签名具有不可抵赖性(即不可否认性),不需要笔迹专家来验证。

数字签名实现方法

数字签名算法依靠公钥加密技术来实现的。在公钥加密技术里,每一个使用者有一对密钥:一把公钥和一把私钥。公钥可以自由发布,但私钥则秘密保存;还有一个要求就是要让通过公钥推算出私钥的做法不可能实现。

普通的数字签名算法包括三种算法:

一种密码生成算法

标记算法

验证算法

RSA,EIGamal,DSA,ECDSA,Rabin 等算法可以实现数字签名。

延伸 · 阅读

精彩推荐