RSA加密算法设计

RSA加密算法设计

ID:43325596

大小:278.32 KB

页数:23页

时间:2019-10-01

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

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

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

2、要求cl与(p-l)*(q-l)互质;再选择e2,要求(e2*el)mod((p-1)*(q-1))=1o(n及el),(n及e2)就是密钥对。RSA加解密的算法完全相同,设A为明文,B为密文,贝叽A=Bclmodn;B=Ac2modn;el和e2可以互换使用,即:A=Be2modn;B=Aelmodn:三、实现代码:1•实现RSA算法类的定义:classCRsaA:publicCCmdTarget{DECLARE_DYNCREATE(CRsaA)CRsaA();//protectedconstruct

3、orusedbydynamiccreation//成员函数private:voidInitlnt(void);//基本数据常量的初始化〃比较大数A和B是否相等intIntValid(byteintvalidtemp);//返回大validtemp的非零位的个数intIntCmp(byteintA,byteintB);〃自定义类型的基本运算//C二A+B//SC=SA-SB//C二A*BvoidPlus(byteintA,byteintB,byteintC);voidSubstract(byteintSA

4、,byteintSB,byteintSC);voidMultiply(byteintA,byteintB,byteintC);voidSetMode(byteintA,byteintB,byteintC,byteintD);//C二A%BD,signedcharintPowerMode(byteintA,byteintC,byteintflag[400]);//computingABmodC-->DvoidIntRandom(byteintRandomA,intnum);//随机产生一个大数voidLo

5、adlnt(byteintA,mtypeB);//将质数类型转换为大数类型voidTransBi(byteintB,signedcharflag[400])将大数B转换为二进制形式voidMdataO;产生用于生成质数中进行比较的数intPrime(byteintPrm);//产生一个长度为MLENGTI1的质数intComputingPK(byteintRvalue,byteintSK,byteintPK);//计算公钥PKvoidComputingR(byteintp,byteintq,bytein

6、tR);//计算模值RvoidComputingRvalue(byteintp,byteintq,byteintRvalue);//计算$(r)voidIntCpy(byteintAl,byteintBl);//将大数Bl的值拷贝到大数Al中voidSctZero(byteintA);//将大数A清零CStringPrtlnt(byteintA);//将一个大数类型转换为一个CString类型intGetinput(byteintresult,CStringinput);//将字符串转换为对应的大数形式

7、intGetinputl(byteintresult,unsignedlonginput);//将长整形数转换为对应的大数形式voidRsaDo(byteintsource,byteintR,byteintkey,byteintdesti);//实现加解密unsignedlong0s2ip(unsignedchar*pstr);CStringTp2os(CStringstr);public:voidGenKeys(CString&pk,CString&sk,CStringfeR);//提供给服务器使用的

8、秘钥产生函数intRsaEncrypt(CString&source,constchar*key,constchar*R,CStringArray&result);//加密CStringRsaDecrypt(CStringArray&source,constchar*sk,constchar*R);〃解密voidGenKeysTableO;//牛成秘钥对文件voidLoadKeysFromFi1e(CString&r,CString&sk,

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

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

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