实验四公钥加密算法实验(改)

实验四公钥加密算法实验(改)

ID:28056628

大小:70.00 KB

页数:5页

时间:2018-12-08

实验四公钥加密算法实验(改)_第1页
实验四公钥加密算法实验(改)_第2页
实验四公钥加密算法实验(改)_第3页
实验四公钥加密算法实验(改)_第4页
实验四公钥加密算法实验(改)_第5页
资源描述:

《实验四公钥加密算法实验(改)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验四公钥加密算法实验1、实验H的掌握消息RSA密钥生成和加密算法的原理。2、实验环境硬件:ZXBeeCC2530节点板2块、USB接口的CC2530仿真器,PC机;软件:Windows7/WindowsXP、IAR集成开发环境、串口监控程序。3、实验原理RSA算法的关键是生成公钥私钥对。本实验采用了一个简化的算法,通过一个给定的seed(实验组号)搜索两个不同的素数(100以A),并计算出公钥PubliceKey(e,n)和私钥PrivateKey(d,n)。RSA加/解密公式为C=Pemodn和P=Cdmodn,其中的幂指数运算速度

2、慢,可采用下面的公式进行转换:C=Pemodn=((...((P*Pmodn)*Pmodn)*Pmodn))*Pmodn此外,RSA算法的明文和密文均为0到n-1之间的整数,而一般传送消息的长度单位为字节(8bits),n的大小与消息长度难以匹配。因此,本实验采用如下的特殊处理方法:(1)令选定公钥/私钥的n值小于65536,即n值小于16bits的二进制。(2)将消息的每个字节(8biU)作为一个明文块。(3)每个明文块进行RSA加密后,得到的密文块为16bits,用2个字节存放。即密文的长度为明文的2倍。(4)接收方收到的密文,按2

3、个字节为一个密文块进行RSA解密,解密后的结果只保留低8bits。4、实验步骤1)本实验程序可在《指导书》4.4节程序上进行修改,可节约时间。信道编号不用更改。2)增加下列有关公钥和私钥的定义(全局定义)。typedefstruct{unsignedinte;unsignedintn;}RSA_PUBLICKEY;typedefstruct{unsignedintd;unsignedintn;}RSA_PRIVATEKEY;typedefstruct{RSA_PUBLICKEYPu;RSA_PRIVATEKEYPr;}RSAKEY;3)

4、增加一个RSA公钥/私钥产生函数。RSA_KEYCreateRSAKey(unsignedintseed){RSA_KEYRSAKey;unsignedinti,j;unsignedinta,b,temp;unsignedintp=O,q=O,fi=O;i=(seed*71-17)%29+ll;//产生第一个素数搜索的初始值,只搜索11〜39//搜索素数pwhile(p==O){for(j=2;j<=i/2-l;j++)if(i%j==O)break;if(j>(i/2-l)&&p==0)p=i;i=(i-10)%29+ll;i=(se

5、ed*171-51)%29+ll;//产生第二个素数搜索的初始值,只搜索11〜39//搜索素数qwhile(q==O){for(j=2;j<=i/2-l;j++)if(i%j==O)break;if(j>(i/2-l)&&i!=p&&q==0)q=i;i=(i-10)%29+ll;}RSAKey.Pu.n=p*q;RSAKey.Pr.n=p*q;fi=(p-l)*(q-l);//找出一个小于fi且与fi互素的efor(i=3;i

6、a%b;a=temp;}if(a=l){RSAKey.Pu.e=i;break;}}"计算clj=l;while((fi*j+1)%RSAKey.Pu.e!=O)j++;RSAKey.Pr.d=(fi*j+l)/RSAKey.Pu.e;//printf(,,p=%d,q=%d,",p,q);//printf("e=%d,d=%d,n=%d,RSAKey.Pu.e,RSAKey.Pr.d,RSAKey.Pu.n);returnRSAKey;1)增加一个RSA加密函数。//RSA加密函数,PlainText力8bit数组,Cipher

7、Text为16bits数组,Len为PlainText长度voidRSA_Encrypt(RSA_PUBLICKEYPuKey,uint8*PlainText,uint!6*CipherText,intLen){inti=0,j=0;uintl6temlnt=0;for(i=0;i

8、DataO。发送节点每隔Is发送一次数据。发送数据的格式为:字段名称接收方编号明文长度密文长度(字节)112-256代码:/*发送数据函数*/voidrfSendData(void){uint8PlainT

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

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

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