该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
clc
clear
ss=input(*输入两质数---1*);
bb=input(*输入两质数---2*);
%x=input(*随机输入两个数--第一个*);
%y=input(*随机输入两个数--第二个*);
%a=primes(p(1));%小于10000的素数
%b=primes(p(2));%小于20000的素数
%c=setxor(a,b);%10000到20000之间的素数
%m=round(1+(numel(c)-1)*rand());%素数的随机序号
%ss=c(x)
%bb=c(y)
n=ss*bb;
fain=(ss-1)*(bb-1);
e=floor(unifrnd(0,fain,1,1));
while (gcd(e,fain)~=1)|(e<2)
e=floor(unifrnd(0,fain,1,1));
end
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(*bucunzai*);
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*)
miwen
disp(*mingwen*)
mingwen