rsa.m

来自「能够用matlab实现RSA算法中加密解密的功能」· M 代码 · 共 69 行

M
69
字号
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 + =
减小字号Ctrl + -
显示快捷键?