数字签名一般用什么算法实现?
发布网友
发布时间:2022-04-20 06:48
我来回答
共1个回答
热心网友
时间:2023-08-12 23:08
数字签名的原理
数字签名是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人进行伪造。
它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码*和私钥密码*都可以获得数字签名,主要是基于公钥密码*的数字签名。包括普通数字签名和特殊数字签名。
扩展资料:
实现方法
数字签名算法依靠公钥加密技术来实现的。在公钥加密技术里,每一个使用者有一对密钥:一把公钥和一把私钥。公钥可以自由发布,但私钥则秘密保存;还有一个要求就是要让通过公钥推算出私钥的做法不可能实现。
普通的数字签名算法包括三种算法:
1.密码生成算法;
2.标记算法;
3.验证算法。
参考资料:百度百科-数字签名
简述数字签名的原理
数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人进行伪造。
它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码*和私钥密码*都可以获得数字签名,主要是基于公钥密码*的数字签名。包括普通数字签名和特殊数字签名。
扩展资料:
数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。
因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。”
数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
参考资料来源:百度百科-数字签名
数字签名的基本原理是什么?
数字签名是基于非对称密钥加密技术与数字摘要技术的应用,是一个包含电子文件信息以及发送者身份并能够鉴别发送者身份以及发送信息是否被篡改的一段数字串。
一段数字签名数字串包含了电子文件经过Hash编码后产生的数字摘要,即一个Hash函数值以及发送者的公钥和私钥三部分内容。
数字签名有两个作用,一是能确定消息确实是由发送方签名并发出来的。二是数字签名能确定数据电文内容是否被篡改,保证消息的完整性。数字签名的基本工作流程如下:
发送加密
1.数字签名用户发送电子文件时,发送方通过哈希函数对电子数据文件进行加密生成数据摘要;
2.数字签名发送方用自己的私钥对数据摘要进行加密,私钥加密后的摘要即为数字签名;
3.数字签名和报文将一起发送给接收方。
接收解密
1.接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要;
2.接收方用发送方的提供的公钥来对报文附加的数字签名进行解密,得到一个数字摘要;
3.如果以上两个摘要相一致,则可以确认文件内容没有被篡改。
4.发送方的公钥能够对数字签名进行解密,证明数字签名由发送方发送。
以上过程逆向也可以进行,即当文件接受者想要回信时,可以先通过hash函数生成数字摘要,再用公钥加密即可起到文件加密的作用,收信人可以用私钥解密查看文件数字摘要。
函数加密原理
Hash函数又叫加密散列函数,其特点在于正向输出结果唯一性和逆向解密几乎不可解,因此可用于与数据加密。
正向输出容易且结果唯一:由数据正向计算对应的Hash值十分容易,且任何的输入都可以生成一个特定Hash值的输出,完全相同的数据输入将得到相同的结果,但输入数据稍有变化则将得到完全不同的结果。
Hash函数逆向不可解:由Hash值计算出其对应的数据极其困难,在当前科技条件下被视作不可能。
了解了数字签名,我们顺便来提一嘴数字证书的概念:
数字证书
由于网络上通信的双方可能都不认识对方,那么就需要第三者来介绍,这就是数字证书。数字证书由CertificateAuthority颁发。
首先AB双方要互相信任对方证书。
然后就可以进行通信了,与上面的数字签名相似。不同的是,使用了对称加密。这是因为,非对称加密在解密过程中,消耗的时间远远超过对称加密。如果密文很长,那么效率就比较低下了。但密钥一般不会特别长,对对称加密的密钥的加解密可以提高效率。