rsa_digital_signature.m
来自「RSA 数字签名 matlab实现 是密码学中一个重要的签名算法」· M 代码 · 共 39 行
M
39 行
function [out,sig]=RSA_digital_signature(n,m)
B=5;
[flag,p,q]=factors_resolve(n,B) ;
if flag==0
display('n不能分解成两个素数的乘积');
out=0;sig=0;
else
phi_n=(p-1)*(q-1);
e=2;%求e
while e<phi_n-1
if gcd(e,phi_n)~=1
e=e+1;
else
break;
end
end
d=1;%求d
while(1)
if mod(d*e,phi_n)~=1
d=d+1;
else
break;
end
end
sig=big_mod(m,d,n);%签名变换,获得签名
m1=big_mod(sig,e,n);%签名验证
if m1==m
display('sig为消息m的有效签名签名无效');
out=1;
else
display('sig对消息m的签名无效');
out=0;
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?