我正在尝试实现生成 RSA 密钥的基本过程。该过程接受一系列数字 a 和 b。它必须检查 a 和 b 之间的间隔是“五位数”。
所以我想出了一个解决方案:
with (numtheory);
gen_rsa := proc(a, b)
local p, q, len_p, len_q, larger;
# the two prime-numbers
p:=safeprime(round(RandomTools[Generate](integer(range=a .. b))-1/2));
q:=safeprime(round(RandomTools[Generate](integer(rande=a .. b))-1/2));
if( evalb(log10(p) > log10(q)+5 )
[...]
事情是:Maple 似乎将 p 和 q 理解为类型函数的变量。我想使用 log10 来找出素数有多少位,以便计算安全的 RSA 密钥。所以evalb
失败了,因为它无法确定两个对数??