• 图文讲解:什么是数字签名


    图文讲解:什么是数字签名

    数字签名简单介绍 By David Youd

    前言

             近期在在网上浏览SSL协议加密有关的文章时,越感对“数字签名”产生了不小的困惑。直接搜索“什么是数字签名”,发现了这篇早期文章:

    http://www.youdzone.com/signature.html,非常早。可是依然耐人寻味。在网贴上也找到了相关的翻译:http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html。

    读了下来,认为它这个翻译事实上仅仅是义译。连“故事情节”都变动不少。于是就自己动起手来,于是就有了本文..


    译文

            Bob有两把钥匙,一把被称作公共钥匙。即公钥;还有一把则被称作私钥。


         

            Bob的公钥对于须要它的不论什么人都能得到,可是他的私钥则自己保留。密钥(公钥和私钥)是用来加密信息的。

    加密信息的过程意味着“混淆打乱”,以至于仅仅有拥有合适密钥的人才干将其再次变得可读。

    Bob的两把钥匙中,不论什么一把用来加密数据,还有一把就能解密数据。

          

            Susan(例如以下展示)用Bob的公钥加密了一条信息发给Bob,Bob则用私钥来解密信息进行读取。Bob的任一同事可能都能够拿到Susan已经加密的信息。可是没有Bob的私钥,这些数据都是无用的。

        

            利用他的私钥和适当的软件。Bob放置了数字签名在文档和一些数据中。这个数字签名是Bob放在数据中的,是对于Bob而言唯一的“标识”,是很难以捏造的。而且,这个签名可以确保当数据发生不论什么变动时都会被发现。
    对文档签名时。Bob的软件会将数据揉碎压缩成只几行。这个过程被称为“HASH校验”。形成的几行则被称作信息的摘要。(直接将信息摘要还原成原始的数据信息是不可能的)

          

           然后Bob的软件再利用他的私钥加密信息的摘要。这个结果就是数字签名。

         

         最后,Bob的软件将这个数字签名与信息文档放在一块。全部的数据已经被有所标识了。
        

         如今Bob把文档传递给了Pat。




    Plot 纠结ing..(悲剧,没故事...)

     
           碰巧的是。Suan工作在公司的CA中心(证书认证)。Susan能够对Bob的公钥和他的一些资料信息一并签名,简单地为Bob制作一个数字证书。

        

            如今Bob的同事可以通过检測Bob受信任的证书来确保他们拥有的公钥确实是Bob的。其实,Bob公司中没有人会接受没有Susan生成证书的那个签名。这个就给了Susan撤销私钥被泄露的数字证书的权利。而这差点儿是不太可能的。

    Susan的CA证书验证则被广泛的接受。
    我们接着说Bob把已经签名的文档发给了Pat。

    为了验证在文档上的数字签名。Pat首先借助软件用Susan(即CA)的公钥来检測Bob文档上的证书。假设顺利解开了证书则证明是Susan生成的它。

    解开证书之后。Pat能够通过联系CA中心。与Bob证书上的信息对比,以检查文档是否被改动过。
    然后。pat从证书中拿到Bob的公钥。用它来检測Bob的签名。

    假设Bob的公钥可以顺利解开签名,Pat就行确定这个签名是利用Bob的私钥生成的。同一时候也匹配了Susan颁发的证书公钥。而且。假设签名是对比的,也说明了Doug不可能改动了文档内容。
    虽然,这些步骤看起来挺让人头疼的,它们却以Pat有关的用户友好的软件场景手把手似的。

    验证签名信息,Pat仅仅需点击下图:
                                                                     

                                                                            (图为验证数字证书的标识)


    有关下载

    链接: http://pan.baidu.com/s/1qWNrSZy password: vsi1


  • 相关阅读:
    解决org.openqa.selenium.WebDriverException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms org.springframework.beans.BeanInstantiation
    jsp学习---css基础知识学习,float,position,padding,div,margin
    jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门
    java 查询 mongodb 中的objectid
    jsp学习---使用jsp和JavaBean实现超简单网页计算器
    jsp学习--JavaBean定义和在Jsp中使用JavaBean
    jsp学习--如何定位错误和JSP和Servlet的比较
    jsp学习--JSP运行原理,九大隐式对象和JSP常用标签
    jsp学习--基本语法和基础知识
    android开发学习---layout布局、显示单位和如何进行单元测试
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5351738.html
Copyright © 2020-2023  润新知