📄 rsa.m
字号:
function [p,q,n,e,d] = rsa()
p=[];
q=[];
n=[];
e=[];
d=[];
format long g
bit = 1024;
e_bit = 64;
X = bit/2;
X = num2str(X);
maple('x:=',X);%x = 512
maple('y:=2^x');%y = 2^512
maple('z:=y*2');%z = 2^513
maple('pp:=rand(y..z)');%产生y和z之间的随机数
maple('pp()');%在没有计算pp之前,pp是一组命令集合(?)
maple('p:=nextprime(pp())');%这两句是利用maple集成的函数计算大素数
maple('q:=nextprime(pp())');
maple('n:=p*q');
maple('temp:=(p-1)*(q-1)');%欧拉函数
TEMP = 0;
while TEMP ~= '1'
XX = num2str(e_bit);
maple('xx:=',XX);
maple('xx:=2^xx');
maple('zz:=rand(xx..(10*xx))');
maple('e:=nextprime(zz())');
TEMP = maple('gcd(e,temp)');
end %求e,方法似乎有些费时间,是一个一个素数进行验证
maple('d:=e&^(-1) mod temp');%求私钥d
p = maple('p');
q = maple('q');
n = maple('n');
e = maple('e');
d = maple('d');%这一组语句是将maple内核中的数返回MATLAB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -