1. 首页
  2. 个性签名

加密、数字签名和数字证书是什么?

多次数字签名

加密、数字署名和数字证书

1 对称加密

对称加密算法中,加密和好息争密使用的是同一个秘钥,以是秘钥的葆护是很重要的,对称加密和好息争密過逞如下图: wKioL1mvvsuiJa7CAAhYSOJpHlw952.bmp wKiom1mvvwrRiGXeAAfImDkIBEo454.bmp 尽管对称秘钥可以或许满意对内容的加密了,但是对称算法还是存在以下两个问题的。

1 、秘钥泄密风险:务端与客户端相互之间必须约定将使用的密钥,而这个约定的過逞本身就大概存在泄密的风险;

2 、假如有 100 甚至更多的客户端要向服务器发送文件。那么,服务器大概需要有 100 多次约定密钥的過逞。

由此可见,无论是安全性还是可用性上,对称密钥都是存在问题的。而两个问题则是必须解决的。

2 非对称加密

非对称算法加密和好息争密使用的是差别的秘钥,加密算法有一对秘钥,分别是公钥和私钥,公钥是公开的,私钥则是自己保管。 wKioL1mvvxnAPhJVAAetLCUyqfo998.bmp wKioL1mvvyziq9EPAAdXiC_aypw581.bmp

3 数字署名和加密

加密是指对某个内容加密,加密后的内容还可以通过解密进行还原。 好比我们把一封邮件进行加密,加密后的内容在网络上进行传输,吸收者在收到后,通过解密可以还原邮件的真实内容。

署名就是在信息的背面再加上一段内容,可以证实信息没有被修改过。署名一样平常是对信息做一个 hash 盘算得到一个 hash 值,留意,这个過逞是不可逆的,也就是说无法通过 hash 值得出原来的信息内容。在把信息发送出去时,把这个 hash 值加密 ( 使用非对称算法的私钥进行加密 ) 后做为一个署名和信息一起发出去。 吸收方在收到信息后,会重新盘算信息的 hash 值,并和信息所附带的 hash ( 解密后 ) 进行对比,假如同等,就说明信息的内容没有被修改过,由于这里 hash 盘算可以保证差别的内容肯定会得到差别的 hash 值,以是只要内容一被修改,根据信息内容盘算的 hash 值就会变革。固然,不怀美意的人也可以修改信息内容的同时也修改 hash 值,从而让它们可以相匹配,为了防备这种环境, hash 值一样平常都市加密后 ( 也就是署名 ) 再和信息一起发送,以保证这个 hash 值不被修改。

数字署名解决了信息安全上面的不可狡辩性和不可窜改性问题。

4 数字证书

基于非对称密钥算法, Bob 天生了一对公私钥。 Bob 将公钥公布在公开的密钥库中。而 Alice 在向 Bob 发送加密文件要么验证 Bob 署名的文件时,均要从公钥库取到 Bob 的公钥。我们已经知道,一样平常来说公钥就是一段固定长度的字符串,并没有特定的含义。

为了让 Alice 可以或许方便的辨别公钥,我们可以思量对给公钥附加一些信息,比方该公钥使用的算法,该公钥的全部者(主题),该公钥的有用期等一系列属性。这样的数据布局我们称作 PKCS10 数据包

wKioL1mvv-zTnMCpAAC6fpatIJg317.jpg

公钥的主题我们接纳唯一标示符 ( 或称 DN-distinguished name) ,以尽量唯一的标示公钥全部者。以下是基于抽象语法表现法所定义的 PKCS10 数据布局:

我们已经有了 PKCS10 数据包,除了公钥信息外,另有公钥的持有者,公钥的版本号等信息。然而这样的数据布局实在并没有任何权威性。比方有一天一个叫做 Richard 的人想假冒 Bob ,也天生一对公私钥,而且使用了相同的公钥主题封装为 P10 数据布局。 Alice 实在并没有措施辨别哪个是真实 Bob 的公钥。

为理解决这个问题,就需要一个权威的第三方机构,对 P10 布局的数据进行认证。就犹如对 P10 文件盖上一个权威的章,防备模仿。这样的权威机构,我们称作 CA(Certificate Authority) 数字证书认证中心。而 CA 怎样为 P10 数据盖印呢?非常简单,就是我们前文已经提到的数字署名技能:

wKiom1mvwCzTSY6FAAD_5NSlBDI694.jpg

① 如上图所示, CA 机构实在也持有一张私钥。一样平常来说, CA 会对这份私钥进行特殊的葆护,严禁走漏和盗用。

Bob 将自己的公钥附加上一系列信息后,形成了 P10 数据包(请求包),并发送给 CA

CA 机构通过其他一些本领,比方察看 Bob 的身份信息等方法,承认了 Bob 的身份。于是使用自己的私钥对 P10 请求进行署名。(也大概会先对数据进行一些简单修改,如修改有用期或主题等)

④ 这样的署名结果,我们就称作数字证书。

数字证书同样遵照一个格式尺度,我们称作 X509 尺度,我们一样平常提到的 X509 证书就是如此。

5 基于数字证书发送文件過逞

基于数字证书,我们可以再来看看 Bob 怎样给 Alice 发送一份不能否认、不可窜改的文件:

wKioL1mvwDnz6cTeAADYhNvFEUw516.jpg

第一步: Bob 除了对文件进行署名操作外,同时附加了自己的数字证书。一同发给 Alice

wKiom1mvwGrD6qRfAAC3h8RFkH4719.jpg

第二步: Alice 首先使用 CA 的公钥,对质书进行验证。假如验证成功,提取证书中的公钥,对 Bob 发来的文件进行验签。假如验证成功,则证实文件的不能否认和不可窜改。


可以看到,基于数字证书后, Alice 不在需要一个公钥库维护 Bob (或其他人)的公钥证书,只要持有 CA 的公钥即可。数字证书在电子商务,电子认证等方面使用非常广泛,就犹如盘算机全球的×××,可以证实企业、个人、网站等实体的身份。同时基于数字证书,加密算法的技能也可以支持一些安全交互协议(如 SSL )。


参考:https://yq.aliyun.com/divs/54155

今日,我读到一篇 好文章 。

它用图片普通易懂地讲明了,"数字署名"(digital signature)和"数字证书"!(digital certificate)到底是什么。

我对这些问题的明白,不停是迷迷糊糊的,许多细节搞不清晰。读完这篇文章后,发现思绪一下子就理清了。为了加深记忆,我把文字和图片都翻译出来了。

文中涉及的密码学基本知识,可以拜见我从前的 条记 。

====================================================

数字署名是什么?

作者:David Youd

翻译:阮一峰

原文网址: http://www.youdzone.com/signature.html

1.

鲍勃有两把钥匙,一把是公钥,另一把是私钥。

2.

鲍勃把公钥送给他的小伙伴们----帕蒂、道格、苏珊----每人一把。

3.

苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以到达保密的效果。

4.

鲍勃收信后,用私钥解密,就看到了信件内容。这里要夸大的是,只要鲍勃的私钥不泄漏,这封信就是安全的,纵然落在别人手里,也无法解密。

5.

鲍勃给苏珊复书,决定接纳"数字署名"。他写完后先用Hash函数,天生信件的摘要(digest)。

6.

然后,鲍勃使用私钥,对这个摘要加密,天生"数字署名"(signature)。

7.

鲍勃将这个署名,附在信件下面,一起发给苏珊。

8.

苏珊收信后,取下数字署名,用鲍勃的公钥解密,得到信件的摘要。由此证实,这封信确实是鲍勃发出的。

9.

苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。假如两者同等,就证实这封信未被修改过。

10.

庞杂的环境出现了。道格想诱骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以假冒鲍勃,用自己的私钥做成"数字署名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。

11.

后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个措施,要求鲍勃去找"证书中心"(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,天生"数字证书"(Digital Certificate)。

12.

鲍勃拿到数字证书以后,就可以放心了。以后再给苏珊写信,只要在署名的同时,再附上数字证书就行了。

13.

苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证实"数字署名"是否真的是鲍勃签的。

14.

下面,我们看一个应用"数字证书"的实例:https协议。这个协议重要用于网页加密。

15.

首先,客户端向服务器发出加密请求。

16.

服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端。

17.

客户端(browser)的"证书管理器",有"受信托的根证书颁发机构"列表。客户端会根据这张列表,察看解开数字证书的公钥是否在列表之内。

18.

假如数字证书纪录的网址,与你正在欣赏的网址不同等,就说明这张证书大概被冒用,browser会发出告诫。

19.

假如这张数字证书不是由受信托的机构颁发的,browser会发出另一种告诫。

20.

假如数字证书是可靠的,客户端就可以使用证书中的服务器公钥,对信息进行加密,然后与服务器互换加密信息。

(完)

数字署名(Digital Signature)技能是不对称加密算法的典型应用。数字署名的应用過逞是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处置,完成对数据的正当“署名”,数据吸收方则使用对方的公钥来解读收到的“数字署名”,并将解读结果用于对数据完备性的查验,以确认署名的正当性。数字署名技能是在网络系统虚拟环境中确认身份的重要技能,完全可以取代实际過逞中的“亲笔具名”,在技能和法律上有保证。在公钥与私钥管理方面,数字署名应用与加密邮件PGP技能恰好相反。在数字署名应用中,发送者的公钥可以很方便地得到,但他的私钥则需要严格保密。

数字署名包括普通数字署名和特别数字署名。普通数字署名算法有RSA、ElGmal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir数字署名算法、Des/DSA,椭圆曲线数字署名算法和有限主动机数字署名算法等。特别数字署名有盲署名、代理署名、群署名、不能否认署名、公正!盲署名、门限署名、具有消息恢复功能的署名等,它与详细应用环境密切相关。

署名:在实际生活中,署名作为署名者身份的一种证实,署名代表对署名文件的承认,不可狡辩。理论上署名是可信、不可伪造的。每次你刷卡消耗后,营业员肯定需要你对回执上进行署名,这就是一种对消耗生意业务的承认。

数字署名(又称公钥数字署名、电子签章):是一种类似写在纸上的普通的物理署名,但是使用了公钥加密范畴的技能实现,用于辨别数字信息的方法。一套数字署名通常定义两种互补的运算,一个用于署名,另一个用于验证。就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有用证实。简单证实“我就是我”。

和传统的署名不一样,互联网的发展和数字署名的出现,让署名认证这个观点应用到了更多的层面。

1.署名认证,数字署名在网络生意业务上和实际署名一样的承认功能,不可狡辩,署名放拥有私钥,保证署名只能自己操作,在出现署名的环境下,使用私钥验证署名的真伪。

2.防窜改,这个通过网络下载来说明最为直观,你在网络上下载一个文件,数字署名和文件混合一个整体数据包,通过对数字署名的验证,保证文件在传输過逞中未被窜改。

3.验证数据的完备性,如2同理,假如文件有丢失,署名将不完备,解开数字署名和之前的比较就会出现不同等。保证文件的完备。

4.仲裁机制,数字署名也可以以为是一个数字身份,通过唯一私钥天生,在网络上生意业务互动时要求收到一个数字署名的回文,保证過逞的完备。假如对交互過逞出现狡辩,那么用数字便于仲裁。

5.保密性,对于有安全级别要求文件,数字署名加密后传输,保证数据在被中途截取后无法得到其真实内容。有利于数据的安全性。

6.防重放:在数字署名中,假如接纳了对署名报文添加流水号、时戳等技能,可以防备重放打击。

7.多重数字署名,通过多次数字署名,对文件数据进行多人认证。

数字署名整个過逞验证简单,只需要公钥、私钥进行加解密的验证,和传统署名不同等,一样平常都市看到电视剧中常出现署名验证的时间需要专业的条记签证专家,接纳数字署名节流了验证流程和本钱。

所谓数字署名就是附加在数据单位上的一些数据,或是对数据单位所作的密码变更。这种数据或变更容许数据单位的吸收者用以确认数据单位的出处和数据单位的完备性并葆护数据,防备被人(比方吸收者)进行伪造。它是对电子情势的消息进行署名的一种方法,一个署名消息能在一个通讯网络中传输。

实现数字署名有许多方法,数字署名接纳较多的是公钥加密方法,1994年美国尺度与技能协会宣布了数字署名尺度而使公钥加密技能广泛应用。公钥加密系统接纳的黑白对称加密算法。之前的文章对非对称加密也有过说明,有爱好可以参考。

它的重要方法是,报文的发送方从报文文本中天生一个128位的散列值(或报文摘要)。发送方用自己的私家密钥对这个散列值进行加密来形成发送方的数字署名。

然后,这个数字署名将作为报文的附件和报文一起发送给报文的吸收方。报文的吸收方首先从吸收到的原始报文中盘算出128位的散列值(或报文摘要),接着再用发送方的公用密钥来对报文附加的数字署名进行解密。

假如两个散列值相同、那么吸收方就能确认该数字署名是发送方的。通过数字署名可以或许实现对原始报文的辨别。上文数字署名步骤讲明的也就是一种公钥加密署名的模式。固然另有对称加密方法,如今常用为非对称加密算法。

在区块链技能中公钥、私钥、地点、就是通过非对称加密算法(区块链!中现在用到的是椭圆曲线算法)和哈希加密算法天生的。有了这三个要素,然后通过上述数字署名的从過逞发送信息摘要和数字署名,验证同等性。

案例举例:

如果如今 Alice 向 Bob 传送数字信息,为了保证信息传送的保密性、真实性、完备性和不能否认性,需要对传送的信息进行数字加密和署名,其传送過逞为:

1.Alice 预备好要传送的数字信息(明文);

2.Alice 对数字信息进行哈希运算,得到一个信息摘要;

3.Alice 用自己的私钥对信息摘要进行加密得到 Alice 的数字署名,并将其附在数字信息上;

4.Alice 随机产生一个加密密钥,并用此密码对要发送的信息进行加密,形成密文;

5.Alice 用 Bob 的公钥对适才随机产生的加密密钥进行加密,将加密后的 DES 密钥连同密文一起传送给Bob;

6.Bob 收到 Alice 传送来的密文和加密过的 DES 密钥,先用自己的私钥对加密的 DES 密钥进行解密,得到 Alice随机产生的加密密钥;

7.Bob 然后用随秘密钥对收到的密文进行解密,得到明文的数字信息,然后将随秘密钥扬弃;

8.Bob 用 Alice 的公钥对 Alice 的数字署名进行解密,得到信息摘要;

9.Bob 用相同的哈希算法对收到的明文再进行一次哈希运算,得到一个新的信息摘要;

10.Bob 将收到的信息摘要和新产生的信息摘要进行比较,假如同等,说明收到的信息没有被修改过。

本文网址: http://www.v4ad.com/d/202081933148_1557_1313399560/home