1 数字签名是什么
数字签名指的是通过某种密码运算生成一系列符号及代码组成电子密码进行签名,以代替手书签名或印章的技术。数字签名采用了规范化的程序和科学化的方法,用于鉴定签名人的身份以及对一项电子数据内容的认可,还能验证出文件的原文在传输过程中有无变动,确保发送者的身份认证,以及保证传输电子文件的完整、真实和不可抵赖。利用数字签名,信息的发送者可以产生别人无法伪造的一段数字串,同时这段数字串可以证明发送者发送信息的真实性。数字签名应用了非对称密钥加密技术与数字摘要技术。数字签名所具有的特点:身份认证、不可抵赖、保证数据的完整性。数字签名在网络中可以防重放、防冒充、防篡改、可鉴别身份和防抵赖。
2 数字签名中签名的性质
数字签名的安全前提条件是,不存在一个多项式时间的算法能够通过公钥获取私钥,签名方使用私钥对消息进行签名,验证方用公钥验证签名合法性。一般来说,签名应该具有下列的性质:
(1)签名是可信的。协议中的所有参与方均可以验证签名的有效性
(2)签名是不可伪造的。除合法签名方,攻击者很难伪造签名。
(3)签名是不可复制的。不同消息的签名是不同的,攻击者无法基于某个消息的签名,复制进而构造出另一个消息的签名。如果攻击者通过复制某消息的签名构造签名,验证方一定能发现此签名是伪造的,从而拒绝接受此签名
(4)签名的消息是不可改变的。一旦签名内部消息被更改,验证方会发现并且拒绝接受此签名,也就是签名协议提供的保障消息完整性。
(5)签名是不可抵赖的,也就是不可否认性。
3 数字签名认证过程
以设备A发送信息M到设备B为例。数字签名认证的过程可以用图表示:
首先,设备A对消息M进行哈希运算,可以得到信息摘要e。然后设备A通过私钥对信息摘要e进行签名运算得到签名S,设备A把签名S以及消息M发送到设备B。最后,当设备B接收到签名S和消息M后,为了验证消息M是否来自于设备A以及消息是否完整,利用公钥对签名进行验证运算。由于不需要像加密一样对整个消息进行运算,数字签名只对哈希后的e进行签名,可以减少签名的运算量。
4 数字签名的算法
目前,RSA算法(由Ron Rivest、Adi Shamir和Leonard Adleman提出)、DSA(Digital Signature Algorithm)算法和椭圆曲线算法(ECC)是较为成熟的数字签名算法。
(1)从安全性的角度考虑,在加密算法中,被攻破的时间越长,抗攻击能力越强,就越安全。RSA通过利用整数因式分解的难度保证了安全,该算法的破解难度是亚指数级的,DSA通过利用离散对数的难度保证了安全,该算法破解难度与RSA破解难度差别不大。ECC算法有着指数级的破解难度,RSA和DSA的密钥攻击难度相当,RSA和DSA破解难度低于ECC破解难度。数字签名算法的速度对于其应用有着十分重要的地位,从计算速度的角度考虑,ECC的总体速度比RSA和DSA算法要快。
(2)在安全性相当的条件下,在签名和验证的过程计算过程中,ECC算法的速度要比DSA算法快,在解密和签名过程的速度要比RSA算法快,但是在加密和验证过程计算速度低于RSA算法。在相同安全条件下,ECC算法比RSA和DSA算法在计算速度要快。在安全性相当的条件下,比较ECC、RSA、DSA算法在存储空间的需求,DSA算法和RSA算法所需要的存储空间相差不大,比ECC所需要的存储空间大。因此从空间需求的角度来看,ECC算法比较占优势。
以上是关于数字签名是什么及其相关知识的介绍,更多信息请关注本站的行业知识栏目
推荐阅读:
什么是数字签名?作用和原理是什么?龙头企业介绍
什么是电子签名?可靠的电子签名有什么特征?相关政策介绍
下一篇:养老地产投资前景如何?一文讲清
来源:互联网 / 发布时间:2023-12-05 09:00:30