RSA实现数字签名

RSA实现数字签名

ID:38358628

大小:17.73 KB

页数:4页

时间:2019-06-11

RSA实现数字签名_第1页
RSA实现数字签名_第2页
RSA实现数字签名_第3页
RSA实现数字签名_第4页
资源描述:

《RSA实现数字签名》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、RSA实现数字签名数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。主要功能保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。数字签名是个加密的过

2、程,数字签名验证是个解密的过程。数字签名签名过程“发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是

3、它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。”数字签名:发送方用自己的密钥对报文X进行Encrypt(编码)运算,生成不可读取的密文Dsk,然后将Dsk传送给接收方,接收方为了核实签名,用发送方的公用密钥进行Decrypt(解码)运算,还原报文。我自己看了crypto++的文档,利用文档给的rsa签名的示例代码自己做了一个小程序,代码示例如下:#defineCRYPTOPP_ENABLE_NAMESPACE_WEAK1#in

4、clude"md5.h"#include#include"pssr.h"#include#include"rsa.h"#include"osrng.h"usingnamespaceCryptoPP;#pragmacomment(lib,"cryptlib.lib")usingnamespacestd;boolmd5(conststring&src,string&digest){Weak::MD5md5;StringSource(src,true,newHashFilter(md5,newHexEnco

5、der(newStringSink(digest))));returntrue;}intmain(){try{//////////////////////////////////////////////////GeneratekeysAutoSeededRandomPoolrng;InvertibleRSAFunctionparameters;parameters.GenerateRandomWithKeySize(rng,1024);RSA::PrivateKeyprivateKey(parameters);RSA::PublicK

6、eypublicKey(parameters);//Messagestringmessage;//="Yodasaid,DoorDoNot.Thereisnottry.";stringsignature,md5_message;cout<<"请输入要签名的内容:";cin>>message;cout<

7、/////////////////SignandEncodeRSASS::Signersigner(privateKey);StringSource(md5_message,true,newSignerFilter(rng,signer,newStringSink(signature))//SignerFilter);//StringSourcecout<

8、rifyandRecoverRSASS::Verifierverifier(publicKey);StringSource(md5_message+signature,true,newSignatur

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。