zoukankan      html  css  js  c++  java
  • 从数学到密码学(五)


    公钥密码体制初步分析

    下面我们来看看公钥密码体制是如何满足前述要求的,简言之,要做到

    在验证对方真实身份的基础上,秘密地和对方进行通信(即不被第三方知道通信内容),同时可以检测明文是否被修改(请回忆前面讲的Dolev-Yao模型中攻击者的能力),最后在通信结束后,能够让对方无法否认进行过此次通信。

    一、通信内容保密--对要传输的数据进行保护,让其他人无法看到/知道

    没问题,这个对称密码和公钥密码体制都可以做到。

    二、数据的完整性--能够验证接收到的数据在传输过程中是否被修改

    回答此问题之前,再打断一次,请注意:数据的机密性并不能保证数据的完整性,必须要通过其它手段予以确保(在讨论对称密码时已经以XOR为例进行说明)。

    在这方面,公钥密码与对称密码基本差不多。不过因为公钥密码的特性--公、私密钥的不对称,通过某种办法,能够检测数据在传输过程中是否被修改,这就是大名鼎鼎的数字签名,后面将详细讨论。

    三、身份认证--正式传输(机密)数据前,能够确认对方的真实身份

    在对称密码体制中,身份认证的可靠性取决于共享密钥是否保密,如果A、B之间的共享密钥被E获得(无论是通过何种手段),则E就可以冒充B与A进行通信,身份认证的安全性就无法保证。因此共享密钥的保密程度决定了身份认证的可信度。

    公钥密码体制的可靠信更高,只要对方的私钥不泄露(即便泄密,一般而言,也比共享密钥泄露的可能性要大大降低),通过数字签名手段就可以确定对方的真实身份。

    四、事后对方不可抵赖

    不仅在事前可以验证对方的身份,在事后也能够证明对方确实参与了通信(想想采用对称密码体制,可以在一定程度上保证事前的身份验证,但对后事验证几乎无能为力)。而这正是公钥密码体制的独特优点--只要将A、B的通信记录及双方的数字签名(成熟实用的协议都考虑了这一点)公布于众,任何第三方都可以判断双方确实参与了此次通信,因而双方都无法抵赖。这在涉及利益相关的事务(比如网上支付)中,显得尤为重要。

    基于这种签名的高安全性,很多国家都颁布了类似的数字签名法案,在法律上承认数字签名和普通签名(即传统在纸上用笔签下自己的大名)具有相同的有效性。稍后我们会看到,数字签名具有比普通签名更为可信--普通签名可以通过字迹进行模仿,而没有私钥的话,数字签名无法进行模仿。这在仅有对称密码体制参与的情况下是不可能发生的。

    到目前为止,我们都是在“纸上谈兵”,从下节起,我们来进行具体的实践,看看是在一般人眼中,抽象、高深的数学是如何一步步走入我们的现实世界。

    NOTE:原则上只需要高中数学的基础(当然要比较牢固)就可以

  • 相关阅读:
    Knockout.js之初印象
    GroupBy之后加ToList和不加ToList有什么区别吗?
    值类型前加ref和out的区别
    引用类型前需要加ref?
    KEPServerEX连接SQLServer数据库操作
    nginx发布网站常用指令
    ASP.NET Core 布局 _Layout.cshtml
    ASP.NET Core-------appsettings.json文件配置与加载
    ASP.NET Core 入门程序
    ASP.NET.Core网站centerOS上部署发布
  • 原文地址:https://www.cnblogs.com/efzju/p/2119092.html
Copyright © 2011-2022 走看看