基本信息
源码名称:RSA的实现(matlab加密解密)
源码大小:1.18KB
文件格式:.m
开发语言:MATLAB
更新时间:2021-06-18
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

clc

clear

disp('产生密钥对:')

p=input('输入第一个大素数:p=');                                     

q=input('输入第二个大素数:q=');

n=p*q

fain=(p-1)*(q-1)

e=floor(unifrnd(0,fain,1,1))                  

while(gcd(e,fain)~=1)|(e<2);

 e=floor(unifrnd(0,fain,1,1))

end

%n求逆函数

n1=fain;n2=e;b1=0;b2=1;

for i=1:1000

        q1=floor(n1/n2);

        r=n1-q1*n2;

       if r~=0

           n1=n2;

           n2=r;

           t=b2;

           b2=b1-q1*b2;

           b1=t;

       else

         break

       end

end

if n2~=1

  warning('所求的模逆不存在') ;

end

if n2==1

  d=mod(b2,fain)

  fid=input('输入待加密的明文:','s');

f=abs(fid);

for i=1:length(f)  

a=f(i);b=e;c=1;

for j=1:1000

if b==0

        dashuchenmi=c;

end

if mod(b,2)~=0

         b=b-1;

         c=mod(c*a,n);

else

       b=b/2;

       a=mod(a*a,n);

end

end

  dashuchenmi=c;

  miwen(i)=setstr(dashuchenmi);

end

for i=1:length(f)

a2=miwen(i);b2=d;c2=1;

for j=1:1000

if b2==0

  dashuchenmi2=c2;

end

if mod(b2,2)~=0

       b2=b2-1;

       c2=mod(c2*a2,n);

else

       b2=b2/2;

       a2=mod(a2*a2,n);

end

end

       dashuchenmi2=c2;

       mingwen(i)=setstr(dashuchenmi2);

end

end

disp('对所输入的明文进行加密后的密文:')

miwen

disp('经过解密后恢复出的明文:')

mingwen