内容简介:打个比方,有两个小朋友在网上相互发消息,名字分别是小明和小红,小明想要给小红发个消息,但是呢,又担心发的消息被别人修改,就像信件被邮局修改那样。所以呢,小明想了个办法。给数据“签个名”,然后小红同学呢,就验证这个数据的签名是不是小明同学的,如果是,那么数据没有被修改。那怎么签名呢?联想到现实中,我们一般是手写个签名或者给信件盖个章,如果大家有一点经验的话,应该看到过这种盖章,就是把章盖在信件重要内容上。如下:
打个比方,有两个小朋友在网上相互发消息,名字分别是小明和小红,小明想要给小红发个消息,但是呢,又担心发的消息被别人修改,就像信件被邮局修改那样。所以呢,小明想了个办法。给数据“签个名”,然后小红同学呢,就验证这个数据的签名是不是小明同学的,如果是,那么数据没有被修改。那怎么签名呢?
数字签名
联想到现实中,我们一般是手写个签名或者给信件盖个章,如果大家有一点经验的话,应该看到过这种盖章,就是把章盖在信件重要内容上。如下:
这种盖章的好处是什么呢?很简单, 因为如果要改变内容的话,就一定会改变盖的章 ,所以,小红就可以轻易地检测出信件是否被修改过。好,这是现实情况。在数据的世界里怎么办呢?怎么给数据“盖章签名”呢?
要给数据盖章,我们就得搞懂两个问题:
- 数据世界里,什么是“章”
- 数据的重要内容是什么
“章”:非对称加密的公私钥
这部分可能得扯很久,为了简单起见,只简单的说一下。在数字的世界里,有一门学科叫密码学,密码学中又有一个领域就非对称加密,非对称加密有两个密钥,一个叫私钥,一个叫公钥。这两个密钥都可以用于给数据加解密:
- 如果是私钥加的密,那么就用公钥解密
- 如果是公钥加的密,那么就用私钥解密
都可以加解密的话,公钥私钥有什么区别,就一点: 私钥可以推断出公钥,但反过来不行 。所以,只要我们手里的私钥不给任何人,只有自己知道的前提下,我们就可以用私钥给数据加密,然后把公钥给别人,让他用公钥解密。如果公钥无法解密,说明私钥不是我的。所以,公钥体系能达到“章”的作用。
数据的重要内容
这就简单了,就是数据的哈希值(这里较为简单,就一笔带过了,如果有不懂的同学,可以google下)。
签名
懂了公私钥的话,签名的概念就容易理解了。签名就是 用私钥将数据的哈希值加密 ,然后接收方用公钥解密出哈希值,然后接收方再计算一次数据的哈希进行对比,不同,则数据被篡改。
回到例子本身,过程如下:
- 小明准备一套私钥和公钥
- 将公钥发给小红
- 编写一条消息
- 计算消息的哈希值
- 用私钥对上面计算出的哈希值加密,将签名附在消息的后面
- 将消息发给小红
- 小红接收到消息
- 解析出签名
- 用公钥解密签名获得哈希
- 自己计算一次数据哈希
- 对比哈希值
- 得出结果
以上就是数据签名的原理和用途。那到底什么是数字认证呢?
CA证书
上面有一个很重要的一步,就是第2步: 将公钥发给小红 。小红怎么知道这个公钥是小明给她的呢?
这里就需要数字证书了。也就是说,数据证书是来解决公钥的信任问题的。
到这一步,密码学的帮助其实就不大了,因为我们要引入权威第三方机构了。
首先,小红和小明得找到一个双方都信任的第三方机构,这个机构我们将它 称为CA(Certificate Authority)首先给两人各发一张证书。
这张证书里有下面这些内容:
签发者:CA自己 公钥:1024/2048位公钥(明文) 有效期:xx 哈希算法:将公钥生成哈希 加密算法:将哈希用私钥加密,生成签名 签名:见上
证书的签名就是上述的数字签名,数据是公钥,所以,小红和小明可以用证书里的公钥对签名进行解密,然后自己对公钥进行哈希计算,然后进行验证,从而可以确保CA证书是正确的。这个证书叫 根证书 。
小明的证书
然后接下来,小明将自己的公钥和自己的一些信息交给CA中心,CA中心呢,就按照上述的格式给小明签发了一组证书,内容如下:
签发者:CA 公钥:小明的公钥 有效期:xx 哈希算法:将小明的公钥生成哈希 加密算法:将哈希用私钥加密,生成签名 签名:见上
然后有了证书的小明就把自己的证书发给小红,小红拿到后,先用CA的公钥解密签名,然后就是将小明的公钥进行哈希计算,对比一下后就可确定这的确是小明的公钥。
以上就是数字证书的原理。
转载请注明出处:
http://zgljl2012.com/shi-yao-shi-shu-zi-zheng-shu/
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Approximation Algorithms
Vijay V. Vazirani / Springer / 2001-07-02 / USD 54.95
'This book covers the dominant theoretical approaches to the approximate solution of hard combinatorial optimization and enumeration problems. It contains elegant combinatorial theory, useful and inte......一起来看看 《Approximation Algorithms》 这本书的介绍吧!