志在指尖
用双手敲打未来

数字签名算法(常用的数字签名算法汇总)

数字签名算法

数字签名算法是数字签名规范的一个子集,表示了只用作数字签名的一个特定的公钥算法。密钥运行在由SHA-1发生的音讯哈希:为了验证一个签名,要重新核算音讯的哈希,运用公钥解密签名然后比较成果。缩写为DSA。
数字签名是电子签名的特殊形式。到目前为止,至少已经有20多个国家经过法律认可电子签名,其间包括欧盟和美国,我国的电子签名法于2004年8月28日第十届全国人民代表大会常务委员会第十一次会议经过。数字签名在ISO7498-2规范中定义为:“附加在数据单元上的一些数据,或是对数据单元所作的密码改换,这种数据和改换允许数据单元的接纳者用以承认数据单元来历和数据单元的完整性,并保护数据,防止被人(例如接纳者)进行假造”。数字签名机制供给了一种辨别方法,以解决假造、狡赖、冒充和篡改等问题,利用数据加密技能、数据改换技能,使收发数据双方可以满足两个条件:接纳方可以辨别发送方所声称的身份;发送方以后不能否定其发送过该数据这一事实。
数字签名是密码学理论中的一个重要分支。它的提出是为了对电子文档进行签名,以代替传统纸质文档上的手写签名,因而它必须具有5个特性。
(1)签名是可信的。
(2)签名是不行假造的。
(3)签名是不行重用的。
(4)签名的文件是不行改动的。
(5)签名是不行狡赖的。
数字签名的完成,一般是由信息的发送者经过一个单向函数对要传送的音讯进行处理发生其他人无法假造的一段数字串,用以认证音讯的来历并检测音讯是否被修正。音讯接纳者用发送者的公钥对所收到的用发送者私钥加密的音讯进行解密后,就可以确认音讯的来历以及完整性,并且发送者不能对签名进行狡赖。把哈希函数和公钥加密算法结合起来,能供给一个方法确保数据的完整性和真实性。完整性查看确保数据没有被改动,真实性查看确保数据真是由发生这个哈希值的人发出的。把这两个机制结合起来,就是“数字签名”。数字签名的第一步是发生一个需签名的数据的哈希值;第二步是把这个哈希值用咱们的私钥加密。这个被加密的哈希成果被添加到数据后,保护哈希成果的完整性。
数字签名具有许多重要的运用,例如在电子政务活动中的电子公函、网上报税、网上投票,在电子商务活动中的电子订单、电子账单、电子收据、电子合同、电子现金等电子文档都需求经过数字签名来确保文档的真实性和有效性;甚至于人们日常运用频繁的电子邮件,当触及重要内容时,也需求经过数字签名技能来对邮件的发送者进行承认和确保邮件内容未被篡改,并且邮件的发送者也不能对发出的邮件进行否定。由此可见,数字签名技能早已深化运用到国家的政治、军事、经济和人们生活中的各个方面,并将在国家数字化进程中发挥越来越重要的效果。数字签名算法

常用的数字签名算法汇总

数字签名是一个带有密钥的音讯摘要算法,这个密钥包含了公钥和私钥,用于验证数据完整性、认证数据来源和抗否认,遵从OSI参阅模型、私钥签名和公钥验证。也是非对称加密算法和音讯摘要算法的结合体,常见的数字签名算法主要有RSA、DSA、ECDSA三种,本文对数字签名算法进行详细介绍。
Hash又译散列、摘要等名,本文统一称Hash。
1.RSA数字签名算法
RSA是现在计算机暗码学中最经典算法,也是现在为止运用最广泛的数字签名算法,RSA数字签名算法的密钥完成与RSA的加密算法是相同的,算法的名称都叫RSA。密钥的发生和转换都是相同的,包含在售的一切SSL数字证书、代码签名证书、文档签名以及邮件签名大多都选用RSA算法进行加密。
RSA数字签名算法主要包含MD和SHA两种算法,例如我们熟知的MD5和SHA-256即是这两种算法中的一类,详细如下表格散布
1.1.MD2、MD4、MD5算法
最常见的是我们熟知的MD5加密算法,MD5全称Message-DigestAlgorithm5(信息-摘要算法5),现在比较遍及的Hash算法,是散列算法的基础原理,MD5的前身有MD2、MD3和MD4。MD5算法法是输入任意长度字符,输出固定长度128位的算法。通进程序流程,生成四个32位数据,最终联合起来成为一个128位Hash值,主要方式是通过求余、取余、调整长度、与链接变量进行循环运算从而得出成果。
1.2.SHA-1算法
SHA-1是由NISTNSA规划为同DSA一起运用的,SHA-1规划时根据和MD4相同原理,而且仿照了该算法,SHA-1抗穷举(brute-force)性更好,它产出160位的Hash值,对于非线性运算、移位和加法运算也与MD5相似。SHA-1也运用于包含TLS和SSL、PGP、SSH、S/MIME和IPsec等多种协议中,曾被视为是MD5的后继者。SHA-1的如今已经明确不具备安全性可言了。
在2016年1月1日后根据SHA-1签发的SSL和代码签名的X.509证书已不具备安全性可言,多个操作系统、浏览器都主张将根据SHA-1而签发的证书、代码签名替换至SHA-2的产品,但现在在WindowsXP(官方已停更)操作系统上依然只兼容根据SHA-1算法的SSL和代码签名产品。
就在2017年2月23日Google宣告完成了对SHA-1算法的磕碰破解,所以SHA-1算法已经正式被宣告为不安全的算法,干流厂商对本身产品及安全要求都提升至了SHA-2算法。
1.3.SHA-2算法
SHA-224、SHA-256、SHA-384和SHA-512并称为SHA-2,发布于2001年,现在比较广泛运用的SSL数字证书和代码签名证书签名算法均选用SHA-256算法,相较于SHA-1算法而言,至今SHA-2算法还未被破解,从某种意义上SHA-2延用了SHA-1算法,所以至少发文时刻起是安全的。现在顶级CA和Google、苹果等公司都选用根据SHA-256算法作为SSL证书和代码签名证书的干流签名算法。
1.4.SHA-3算法
SHA-3算法正式发布于2015年,SHA-3并不是要取代SHA-2,因为SHA-2现在并没有呈现明显的缺点。因为对MD5、SHA-0和SHA-1呈现成功的破解,NIST感觉需求一个与之前算法不同的,可替换的加密Hash算法,也便是现在的SHA-3。
SHA-3选用keccak算法为规范,以太坊便是选用keccak算法。
2.DSA数字签名算法
DSA全称DigitalSignatureAlgorithm,DSA仅仅一种算法,和RSA不同之处在于它不能用作加密和解密,也不能进行密钥交流,只用于签名,所以它比RSA要快许多,其安全性与RSA比较差不多。DSA的一个重要特点是两个素数公开,这样,当运用他人的p和q时,即使不知道私钥,你也能确认它们是否是随机发生的,还是作了四肢。RSA算法却做不到。
DSA的整个签名算法流程如下:
a.发送方运用SHA-1和SHA-2编码将发送内容加密发生的数字摘要;
b.发送方用自己的专用密钥对摘要进行再次加密得到数字签名;
c.发送方将原文和加密后的摘要传给接收方;
d.接收方运用发送方供给的密钥对进行解密,同时对收到的内容用SHA-1/SHA-2编码加密发生同样的摘要;
e.接收方再将解密后的摘要和d进程中加密发生的摘要进行比对,假如两者一至,则阐明传输进程的信息没有被破坏和篡改,不然传输信息则不安全。
3.ECDSA椭圆曲线数字签名算法
ECDSA是用于数字签名,是ECC与DSA的结合,整个签名进程与DSA相似,所不相同的是签名中采取的算法为ECC,最终签名出来的值也是分为r,s。而ECC(全称EllipticCurvesCryptography)是一种椭圆曲线暗码编码学。
ECDH每次用一个固定的DHkey,导致不能向前保密(forwardsecrecy),所以一般都是用ECDHE(ephemeral)或其他版本的ECDH算法。ECDH则是根据ECC的DH(Diffie-Hellman)密钥交流算法。
ECC与RSA比较,有以下的优点:
a.相同密钥长度下,安全功用更高,如160位ECC已经与1024位RSA、DSA有相同的安全强度。
b.计算量小,处理速度快,在私钥的处理速度上(解密和签名),ECC远比RSA、DSA快得多。
c.存储空间占用小ECC的密钥尺寸和系统参数与RSA、DSA比较要小得多,所以占用的存储空间小得多。
d.带宽要求低使得ECC具有广泛得运用前景。
下表是ECC和RSA安全性比较
攻破时刻(MIPS年)RSA/DSA(密钥长度)ECC密钥长度RSA/ECC密钥长度比1045121065:11087681326:1101110241607:11020204821010:110782100060035:1
下表是RSA和ECC速度比较
功用SecurityBuilder1.2BSAFE3.0163位ECC(ms)1,023位RSA(ms)密钥对生成3.84,708.3签名2.1(ECNRA)228.43.0(ECDSA)认证9.9(ECNRA)12.710.7(ECDSA)Diffie—Hellman密钥交流7.31,654.0
在ECDHE密钥交流中,服务端运用证书私钥对相关信息进行签名,假如浏览器能用证书公钥验证签名,就阐明服务端的确拥有对应私钥,从而完成了服务端认证。密钥交流和服务端认证是彻底分隔的。
可用于ECDHE数字签名的算法主要有RSA和ECDSA,也便是现在密钥交流+签名有三种干流挑选:
RSA密钥交流(无需签名);
ECDHE密钥交流、RSA签名;
ECDHE密钥交流、ECDSA签名;
4.总结
对于SSL数字证书和代码签名证书以及其它非对称加密产品来说,RSA现在普及度最高,以SHA-256签名算法最广,对于更高级根据ECC签名算法是需求对证书恳求文件CSR和根证书都有相应的要求。

未经允许不得转载:IT技术网站 » 数字签名算法(常用的数字签名算法汇总)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载