下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

公钥密码学之数字签名概念

作者:课课家教育     来源: http://www.kokojia.com点击数:3019发布时间: 2019-02-28 10:46:34

标签: 信息安全工程师密码学公钥密码学

软考,您想通过吗?一次通过才是硬道理

      数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,它是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。在计算机通信中,当接收者收到一个消息时往往需要验证消息在传输过程中有没有被篡改,有时接收者还需要确认消息发送者的身份,所有这些都可以通过数字签名来实现。数字签名可以用来证实消息确实是由发送者签发的,而且当数字签名用于存储数据或程序时,可以用来验证数据或程序的完整性。

      数字签名的一个基本过程如下:

 公钥密码学之数字签名概念_信息安全工程师_密码学_公钥密码学_课课家

      在这里小编主要讲的关于数字签名概念的内容主要有以下几个方面,如下图所示:

 数字签名概念的内容

  1.数字签名的用途

  如今人们在工作和生活中,处理事情的时候很多都需要当事者签名,比如去银行办理业务需要签名等。签名可以起到确认、核准、生效和负责任等多种作用,这是证明当事者的身份和数据真实性的一种信息确认。签名有很多种形式来表示,在传统的以书面文件为基础的事物处理中,一般采用手签、印章、手印等书面签名形式,司法部门对于书面签名是支持的。而在以计算机文件为基础的现代事物处理中应当采用电子形式的签名,也就是数字签名(Digital Signature)。数字签名这一签名形式己经得到了一些国家的法律支持。

  想要用完善的签名应当需要满足以下三个条件:

      ①签名者签名后不能抵赖自己的签名;

      ②任何其他人不能伪造签名;

  ③如果属于当事的双方对签名的真伪发生争执,想要确认签名的真伪能够在公正的仲裁者面前通过验证。

  2.数字签名的特征

  数据签名和传统手写签名类似,它具备有以下的几个特征:

  ①不可伪造性:除了签名者外,任何人都不能伪造签名者的合法签名。

  ②认证性:接收者相信这份签名来自签名者。

  ③不可重用性:一个消息的签名不能用于其他消息。

  ④不可修改性:一个消息在签名后不能被修改。

  ⑤不可抵赖性:签名者事后不能否认自己的签名。

  3.数字签名的基本模型

  一个数字签名体制包括两个方面的处理:施加签名和验证签名。假设SIG为施加签名的算法,K为产生签名的密钥,M为被签名的数据,S为产生的签名信息,则有

  SIG(M,K)=S

  假设VER为验证签名的算法,用VER对签名S进行验证,可鉴别S的真假。即

  当S=SIG(M,K),签名为真;

  当S≠SIG(M,K),签名为假。

  4.数字签字的安全

  签名函数必须满足以下条件,不然文件内容以及签名均无法发现是否被篡改或者冒充:

  ①当M≠M时,有SIG(M',K)≠SIG(M,K)。

  条件①中需要签名S至少和被签名的数据M一样长。否则当M较长时,应用会很不方便。把条件①改为:虽然当M≠M时,存在S=S', 但对于已经给定的M或S,想要找出在计算上相应的M'是不可能的。

  ②只能由签名者产生签名S,否则别人就可以进行伪造,于是签名者也就可以抵赖。

  ③签名S的真伪可以由收信者验证,这样做可以使当签名S为假时收信者不用上当。

  ④当收信者出示签名时,签名者也应该有相应的办法来鉴别是否是自己的签名。这个可以使签名者有自卫的能力。

  对于一个公钥密码,如果满足

                                     E(D(M,Kd)Ke)=M,

  就可以保证数据的真实性。

  只要是是可以确保数据的真实性的公开密钥密码都可以用来实现数字签名,比如RSA密码、ELGaMal密码、椭圆曲线密码ECC等这些都可以用来实现数字签名。

  签名通信协议A    →    B

  ①A用自己的解密钥KdA对数据M进行签名:

                                                         SA=D(M, KdA

      ②如若不需要保密,A则直接将SA发送到用户B。

  ③若需要保密,则A查到B的公开的加密钥KeB,并且用KeB对SA再加密,继而得到一个密文C,

C=E(SA,KeB

      ④最后,A将C发送到B,并将SA或者C留底。

      ⑤B收到后,如果是不保密通信,则先查到A的公开加密钥KeA, 然后用KeA对签名进行验证:

   E(SA,KeA)=E(D(M,KdA),KeA)=M

  ⑥如果是保密通信,则B先用自己保密的解密钥KdB对C进行解密,然后再查到A的公开加密钥KeA,用KeA对签名进行验证:

  D(C,KdB)=D(E(SA,KeB),KdB)=SA

  E(SA,KeA)=E(D(M,KdA),KeA)=M

  若是能够恢复出正确的M,则说明SA是A的签名,若不能够恢复恢复出正确的M,SA则不是A的签名。

  签名通信协议安全分析:

  ①由于只有A才拥有KdA,并且保密的解密钥KdA不能由公开的KeA在计算上求出。所以只有A才能进行签名的操作,其他任何人都不能进行这个操作。由此可知,KdA就相当于A的印章或者指纹,而A对M的签名就是SA。对此A不能抵赖这个签名,而任何其他人不能进行伪造。

      ②A和B如果在事后关于签名的真伪发生争执,那么他们应当要向公正的仲裁者出示留底的签名数据,让仲裁者当众验证签名来解决这个纠纷。

 数字签名

      数字签名是公钥密码学发展中最重要的概念之一,它可以提供其他方法难以实现的安全性,可以保证保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。

      关于数字签名的一些基本概念小编已经在上面的描述中罗列出来了,想要了解这方面知识的朋友不妨细心地阅读一些,也许你就能从中得到不错的收获呢。更多的学习内容在我们课课家教育平台里哦,想要学习的同学就不要错过了,丰富的各种教程总有一种是适合你的。

赞(0)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程