RSA 키를 생성하는 기본 절차를 구현하려고합니다. 절차는 a와 b의 범위를 허용합니다. a와 b 사이의 intervall이 "5 자리"인지 확인해야합니다. Maple에서 숫자가 몇 자리인지 알아보기
그래서 나는 해결책을했다 :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)
[...]
것입니다 : 메이플 유형 기능의 변수로 p와 q를 이해하는 것 같다. 나는 안전한 RSA 키를 계산하기 위해 log10을 사용하여 소수에 얼마나 많은 숫자가 있는지 알고 싶다. 따라서 evalb
은 두 로그를 결정할 수 없으므로 실패합니다. ??
에이서의 훌륭한 답변 외에도 : 귀하의 응용 프로그램에 대해 ilog10으로 충분하다고 생각합니다. 기본적으로'ilog10 (n) = floor (log10 (n))'이므로 일부 정보는 잃어 버리지 만 그 대가로 즉시 숫자로 평가되는 반면, log10 (n)은 그렇지 않은 숫자에 대해 평가되지 않은 부분 정확한 결과는 10입니다. 이로 인해 log10에 대한 평가 문제는 ilog10에서 발생하지 않습니다. –