数字签名一般用什么算法实现?
应该是非对称加密算法。DES是一种对称加密算法,不能做为数字签名的算法。对称加密算法由于加密和解密都是使用同一个密钥,所以无法保证密钥的完全保密(至少加密解密的两个人知道),也就不能唯一的确定加密者的身份。
延伸阅读
你知道数字签名的是一个怎样的过程吗?
数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明,数字签名是非对称密钥加密技术与数字摘要技术的应用。
对一个电子文件进行数字签名并在网上传输,其技术实现过程大致如下:首先要在网上进行身份认证,然后再进行签名,最后是对签名的验证。
1. 认证
PKI提供的服务首先是认证,即身份识别与鉴别,确认实体即为自己所声明的实体。认证的前提是甲乙双方都具有第三方CA所签发的证书,认证分单向认证和双向认证。
(1)单向认证是甲乙双方在网上通信时,甲只需要认证乙的身份即可。这时甲需要获取乙的证书,获取的方式有两种,一种是在通信时乙直接将证书传送给甲,另一种是甲向CA的目录服务器查询索取。甲获得乙的证书后,首先用CA的根证书公钥验证该证书的签名,验证通过说明该证书是第三方CA签发的有效证书。然后检查证书的有效期及检查该证书是否已被作废(LRC检查)而进入黑名单。
(2)双向认证。双向认证是甲乙双方在网上通信时,甲不但要认证乙的身份,乙也要认证甲的身份。其认证过程与单向认证过程相同。
甲乙双方在网上查询对方证书的有效性及黑名单时,采用的是LDAP协议(Light Directory Access Protocol),它是一种轻型目录访问协议。
2. 数字签名与验证过程
网上通信的双方,在互相认证身份之后,即可发送签名的数据电文。数字签名的全过程分两大部分,即签名与验证。
数字签名过程分两部分:左侧为签名,右侧为验证过程。即发方将原文用哈希算法求得数字摘要,用签名私钥对数字摘要加密得数字签名,发方将原文与数字签名一起发送给接受方;收方验证签名,即用发方公钥解密数字签名,得出数字摘要;收方将原文采用同样哈希算法又得一新的数字摘要,将两个数字摘要进行比较,如果二者匹配,说明经数字签名的电子文件传输成功。
3. 数字签名的操作过程
数字签名的操作过程需要有发方的签名证书的私钥及其验证公钥。
数字签名操作具体过程如下:首先是生成被签名的电子文件(《电子签名法》中称数据电文),然后对电子文件用哈希算法做数字摘要,再对数字摘要用签名私钥做非对称加密,即做数字签名;之后是将以上的签名和电子文件原文以及签名证书的公钥加在一起进行封装,形成签名结果发送给收方,待收方验证。
4. 数字签名的验证过程
接收方收到发方的签名结果后进行签名验证,其具体操作过程如下:
接收方收到数字签名的结果,其中包括数字签名、电子原文和发方公钥,即待验证的数据。接收方进行签名验证。验证过程是:接收方首先用发方公钥解密数字签名,导出数字摘要,并对电子文件原文做同样哈希算法得出一个新的数字摘要,将两个摘要的哈希值进行结果比较,相同签名得到验证,否则无效。这就做到了《电子签名法》中所要求的对签名不能改动,对签署的内容和形式也不能改动的要求。
5. 数字签名的作用
如果接收方对发方数字签名验证成功,就可以说明以下三个实质性的问题:
(1) 该电子文件确实是由签名者的发方所发出的,电子文件来源于该发送者。因为,签署时电子签名数据由电子签名人所控制。
(2) 被签名的电子文件确实是经发方签名后发送的,说明发方用了自己的私钥做的签名,并得到验证,达到不可否认的目的。
(3) 接收方收到的电子文件在传输中没有被篡改,保持了数据的完整性,因为,签署后对电子签名的任何改动都能够被发现。
以上三点就是对《电子签名法》中所规定的“安全的电子签名具有与手写签名或者盖章同等的效力”的具体体现。
D5算法可以用于数字签名吗?
D5算法可以用于数字签名。D5算法即Message-Digest Algorithm 5(信息-摘要算法5),是一种用于产生数字签名的单项散列算法。
RSA数字签名算法的核心思想是
RSA的核心思想是产生一对密钥,这对密钥在数学上地位完全平等,它们的特点是用其中一个密钥加密生成的密文,只能用另一个密钥解密。RSA算法的安全性来源于质数(素数)的特质。质数大家都知道,就是只能分解成1和它本身乘积的自然数。
我们把两个非常大的质数(想多大都可以)相乘,很容易就可以得到一个乘积结果,但根据这个结果分解出那两个质数,却是相当困难的。RSA的安全就是靠这种大质数乘积难以分解的数学原理(PS:质数真的很神奇)。
dss 数字签名加密算法?
密钥算法用来对敏感数据、摘要、签名等信息进行加密,常用的密钥算法包括:
DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;
3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高;
RC2和 RC4:用变长密钥对大量数据进行加密,比 DES 快;
IDEA(International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性;
RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件快的长度也是可变的;
DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准);
AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法;
BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快;
其它算法,如ElGamal、Deffie-Hellman、新型椭圆曲线算法ECC等。
数字签名要满足的条件?
1. 接收者能够核实发送者对报文的签名;
2. 发送者事后不能抵赖对其报文的签名;
3. 接收者无法伪造对报文的签名。
数字签名算法是数字签名标准的一个子集,表示了只用作数字签名的一个特定的公钥算法。密钥运行在由SHA-1产生的消息哈希:为了验证一个签名,要重新计算消息的哈希,使用公钥解密签名然后比较结果。缩写为DSA。
数字签名是电子签名的特殊形式。到目前为止,至少已经有 20 多个国家通过法律 认可电子签名,其中包括欧盟和美国,我国的电子签名法于 2004 年 8 月 28 日第十届全 国人民代表大会常务委员会第十一次会议通过。
数字签名怎么做?
数字签名是一种安全技术,用于验证数据的真实性和完整性,可以防止数据被篡改和伪造。下面是数字签名的简要步骤:
选择数字签名算法:首先需要选择一种数字签名算法,常用的数字签名算法有RSA、DSA、ECDSA等。
生成公钥和私钥:数字签名使用公钥和私钥进行加密和解密,因此需要生成一对公钥和私钥。通常,私钥只有签名者自己拥有,而公钥可以公开发布,供验证者使用。
对原始数据进行哈希:数字签名需要对原始数据进行哈希处理,将原始数据转换为一个固定长度的摘要,以保护数据的完整性和一致性。
使用私钥对哈希值进行加密:签名者使用自己的私钥对哈希值进行加密,生成数字签名。
将数字签名和原始数据一起发送:签名者将数字签名和原始数据一起发送给验证者。
使用公钥对数字签名进行解密:验证者使用签名者的公钥对数字签名进行解密,得到哈希值。
对原始数据进行哈希:验证者对原始数据进行哈希处理,得到一个新的哈希值。
比较哈希值:验证者比较签名者生成的哈希值和自己重新计算的哈希值,如果两者相等,则表明数据未被篡改和伪造,数字签名验证成功。
需要注意的是,数字签名技术需要遵守相关的安全规范和标准,以确保数字签名的安全性和可靠性。同时,在应用数字签名技术时,也需要注意保护个人隐私和安全,遵守相关的法律法规和使用规范。