【知识】数字签名的原理和过程以及数字证书的作用

1. 摘要

本文用图例形式介绍数字签名的原理和过程,并说明其中数字证书的作用。

2. 内容

2.1 基础知识

摘要算法

摘要算法是单向算法,明文只能转换成密文,密文却无法转换成明文,这种算法也叫HASH算法,如SHA1,MD5,CRC,SHA256等。可以这样理解,几乎很难找到两个不同的明文能生成同一个摘要。所以摘要算法能够用于验证数据的完整性,防篡改。

一般在软件发布时会同时公布软件的摘要信息,用户下载软件后再自行计算一次摘要,如果和发布者公布的值一致,则认为该软件由发布者发布未经更改过。

对称加密

即加密和解密都用同样的密钥,如 AES,DES。

非对称加密

非对称加密即有两个密钥,一个用于加密(私钥),一个用于解密(公钥),并且是成对出现。用一个加密后需用另一个解密。公钥是公开的(大家都能看到),而私钥只能自己知道。常见的算法是RSA。

RSA算法的原理是基于这样的数学事实:两个大质数相乘得到的大数难以被因式分解。即一个大数很难被因式分解。

对称加密和非对称加密的作用都是对明文进行保护,但是他们都面临着一个问题,怎样分发密钥才安全?对称加密需要在网络中传输密钥显然不安全,而非对称加密确没有该问题。由于非对称密钥的公钥是公开的,所以即使在网络中传输也无所谓,所以现在互联网上大多都使用的非对称加密。但是这又产生了新的问题,怎样保证公钥的真实性,如果通信中有中间人存在,并且它伪造了通信呢?带着这些问题,数字签名和数字证书应运而生。

数字签名

数字签名的计算方法:算出内容HASH值,然后用私钥加密,这就是数字签名。
客户收到信息后,用公钥解密数字签名得到HASH值,然后算出内容的HASH值,两者相对比。

数字签名的作用: 不可抵赖与数据完整性
不可抵赖:如果公钥能解密,则内容一定是与该公钥对应的私钥加密而来,即可证明来源。
数据完整性:数字签名的HASH值和自己计算出的HASH值一致,即可证明该内容是完整的未经修改过。

但是数字签名不能确保"公钥"的真实性,第三方可偷换"公钥",达到与伪服务器通信的目的,这样又产生了数字证书。

数字证书

由权威证书中心CA(certificate authority,简称CA)颁发,作用是证明"公钥"的真实信。
数字证书里面包含了服务器的公钥,服务器的域名以及服务器所属的公司信息等内容,并且该信息是用CA的私钥进行加密的。客户请求服务时,服务器会同时发送数字签名和数字证书给客户。证书工作流程如下:

服务器向CA中心申请证书,CA负责核实服务器的真实性,并在证书里内置服务器域名证书使用者信息
客户浏览器或操作系统里内置有权威CA的公钥信息(即CA公钥不需要在网络中传输)
客户请求服务时,服务器把自己申请的数字证书和内容的数字签名一同发给客户
客户收到信息后在本地CA列表里查找CA公钥对数字证书解密,拿到真正的签名公钥,再用该公钥去解密数字签名,拿到HASH值去对比完整性

漏洞

CA的公钥是存储在本地计算机列表的,如果手动往列表里面导入了不可信的CA公钥,那么CA就可以仿冒,失去了权威性。

2.2 数字签名过程

假设现在有通信双方A和B,两者之间使用两套非对称加密机制。

现在A向B发消息。

那么,如果在发送过程中,有人修改了里面密文消息,B拿到的密文,解密之后得到明文,并非A所发送的,信息不正确。

要解决两个问题:
1. A的身份认证
2. A发送的消息完整性
那么就要用到上面所讲的基础知识。

数字签名的过程如下图:

简单解释:
A:将明文进行摘要运算后得到摘要(消息完整性),再将摘要用A的私钥加密(身份认证),得到数字签名,将密文和数字签名一块发给B。
B:收到A的消息后,先将密文用自己的私钥解密,得到明文。将数字签名用A的公钥进行解密后,得到正确的摘要(解密成功说明A的身份被认证了)。

对明文进行摘要运算,得到实际收到的摘要,将两份摘要进行对比,如果一致,说明消息没有被篡改(消息完整性)。

疑问1:
摘要使用A的私钥加密,如果被拥有A的公钥的第三者截获,不就可以获取到摘要了么?会不会对安全造成威胁。
不会。因为摘要是不可逆推出原文的。

疑问2:
由于网络上通信的双方可能都不认识对方,怎么认为A,B是各自标称的对应的实体呢?

2.3 引入CA数字证书后流程

B(就是鲍勃)去找“证书中心”(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥(根证书),对鲍勃的公钥和一些相关信息一起加密,生成“数字证书”(Digital Certificate)。



A用“证书中心”的公钥解开B的数字证书,获得B的公钥信息,把双方传输的对称加密算法用B的公钥加密。

然后就可以进行通信了,与上面的数字签名相似。不同的是,使用了对称加密。这是因为,非对称加密在解密过程中,消耗的时间远远超过对称加密。如果密文很长,那么效率就比较低下了。但密钥一般不会特别长,对对称加密的密钥的加解密可以提高效率。

3. 电子合同的数字签名过程

电子合同的数字签名的相对简单点,全过程分两大部分,即签名与验证。

一侧为签名,一侧为验证过程。

发方将原文用哈希算法求得数字摘要,用签名私钥对数字摘要加密得数字签名,发方将原文与数字签名一起发送给接受方;

收方验证签名,即用发方公钥解密数字签名,得出数字摘要;收方将原文采用同样哈希算法又得一新的数字摘要,将两个数字摘要进行比较,如果二者匹配,说明经数字签名的电子文件传输成功。

1、数字签名的签名过程

数字签名的操作过程需要有发方的签名数字证书的私钥及其验证公钥。 具体过程如下:首先是生成被签名的电子文件(《电子签名法》中称数据电文),然后对电子文件用哈希算法做数字摘要,再对数字摘要用签名私钥做非对称加密,即做数字签名;之后是将以上的签名和电子文件原文以及签名证书的公钥加在一起进行封装,形成签名结果发送给收方,待收方验证。

2、数字签名的验证过程

接收方收到发方的签名结果后进行签名验证,其具体操作过程如下: 接收方收到数字签名的结果,其中包括数字签名、电子原文和发方公钥,即待验证的数据。接收方进行签名验证。验证过程是:接收方首先用发方公钥解密数字签名,导出数字摘要,并对电子文件原文做同样哈希算法得出一个新的数字摘要,将两个摘要的哈希值进行结果比较,相同签名得到验证,否则无效。这就做到了《电子签名法》中所要求的对签名不能改动,对签署的内容和形式也不能改动的要求。

4.参考

(1)数字签名原理简介(附数字证书)
https://www.cnblogs.com/yaowen/p/9133048.html

(2)区块链数字签名技术的过程及原理介绍
http://www.elecfans.com/blockchain/956793.html

(3)数字签名和数字证书的原理解读(图文)
https://www.wosign.com/News/news_2018101101.htm

(4)数字签名与数字证书入门级解读
https://blog.csdn.net/lbcwnu/article/details/88569438

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,640评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,254评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,011评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,755评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,774评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,610评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,352评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,257评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,717评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,894评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,021评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,735评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,354评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,936评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,054评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,224评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,974评论 2 355

推荐阅读更多精彩内容

  • 前言 文中首先解释加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的...
    sunny冲哥阅读 2,991评论 0 2
  • 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现...
    sunny冲哥阅读 1,388评论 0 3
  • 数字证书原理 - 无恙 - 博客园 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明...
    拉肚阅读 1,663评论 0 3
  • 本文转载,出处如下:数字证书原理 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了...
    随安居士阅读 1,683评论 1 8
  • 原文地址: 不详 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,...
    Caiaolun阅读 1,440评论 0 3