嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在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