rsa加密算法设计

rsa加密算法设计

ID:798417

大小:148.03 KB

页数:22页

时间:2017-09-05

rsa加密算法设计_第1页
rsa加密算法设计_第2页
rsa加密算法设计_第3页
rsa加密算法设计_第4页
rsa加密算法设计_第5页
资源描述:

《rsa加密算法设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、网络安全作业题目RSA加密算法学号专业及班级网络工程0902班姓名日期2012.04.14一、RSA简介:RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。二、RSA算法描述:RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。RSA的算法涉及三个参数,n、e1、e2。其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。e1和e2是一对相关的值,e1可以任意取,但要求e1与

2、(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。(n及e1),(n及e2)就是密钥对。RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1modn;B=A^e2modn;e1和e2可以互换使用,即:A=B^e2modn;B=A^e1modn;一、实现代码:1.实现RSA算法类的定义:classCRsaA:publicCCmdTarget{DECLARE_DYNCREATE(CRsaA)CRsaA();//protectedconstructorusedbydynamiccreation//成员函

3、数private:voidInitInt(void);//基本数据常量的初始化intIntValid(byteintvalidtemp);//返回大validtemp的非零位的个数intIntCmp(byteintA,byteintB);//比较大数A和B是否相等//自定义类型的基本运算voidPlus(byteintA,byteintB,byteintC);//C=A+BvoidSubstract(byteintSA,byteintSB,byteintSC);//SC=SA-SBvoidMultiply(byteintA,byteintB,byteint

4、C);//C=A*BvoidSetMode(byteintA,byteintB,byteintC,byteintD);//C=A%BintPowerMode(byteintA,byteintC,byteintD,signedcharflag[400]);//computingA^BmodC-->DvoidIntRandom(byteintRandomA,intnum);//随机产生一个大数voidLoadInt(byteintA,mtypeB);//将质数类型转换为大数类型voidTransBi(byteintB,signedcharflag[400])将

5、大数B转换为二进制形式voidMdata();产生用于生成质数中进行比较的数intPrime(byteintPrm);//产生一个长度为MLENGTH的质数intComputingPK(byteintRvalue,byteintSK,byteintPK);//计算公钥PKvoidComputingR(byteintp,byteintq,byteintR);//计算模值RvoidComputingRvalue(byteintp,byteintq,byteintRvalue);//计算$(r)voidIntCpy(byteintA1,byteintB1);//

6、将大数B1的值拷贝到大数A1中voidSetZero(byteintA);//将大数A清零CStringPrtInt(byteintA);//将一个大数类型转换为一个CString类型intGetinput(byteintresult,CStringinput);//将字符串转换为对应的大数形式intGetinput1(byteintresult,unsignedlonginput);//将长整形数转换为对应的大数形式voidRsaDo(byteintsource,byteintR,byteintkey,byteintdesti);//实现加解密unsig

7、nedlongOs2ip(unsignedchar*pstr);CStringIp2os(CStringstr);public:voidGenKeys(CString&pk,CString&sk,CString&R);//提供给服务器使用的秘钥产生函数intRsaEncrypt(CString&source,constchar*key,constchar*R,CStringArray&result);//加密CStringRsaDecrypt(CStringArray&source,constchar*sk,constchar*R);//解密voidGen

8、KeysTable();//生成秘钥对文件voidLoadKeys

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

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

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