확장 유클리드 알고리즘을 사용하여 RSA 용 개인 키를 찾기 위해 함수를 작성하려고했지만 오류를 찾을 수는 없지만 처음부터 다시 시작하고 싶지는 않습니다! 특정 값에 대해서는 정확하지만 다른 사람에게는 그렇지 않은데 왜 작동하지 않을 수 있습니다.이 질문이 너무 모호하다면 도움에 감사 드리며 유감 스럽습니다 (나는 사람들을 괴롭히는 경향이 있음을 알고 있습니다). 누구든지 오류를 찾을 수 있습니까? 미리 감사드립니다.RSA 암호 해독을위한 개인 키 C++
unsigned long long int modinv(unsigned long long int u, unsigned long long int v)
{
unsigned long long int inv, u1, u3, v1, v3, t1, t3, q;
unsigned long long int iter;
u1 = 1;
u3 = u;
v1 = 0;
v3 = v;
iter = 1;
while (v3 != 0)
{
q = u3/v3;
t3 = u3 % v3;
t1 = u1 + q * v1;
u1 = v1; v1 = t1; u3 = v3; v3 = t3;
iter = -iter;
}
if (u3 != 1)
return 0;
if (iter < 0)
inv = v - u1;
else
inv = u1;
return inv;
}
덕분에 많이, I 암호문 입력'c'가 숫자라고 생각하십니까? – MichaelRad
"mpz_t는 형식을 지정하지 않습니다"라는 오류 메시지가 나타납니다. – MichaelRad
GMP를 설치해야 사용할 수 있습니다. 나는 너에게 몇 가지 아이디어를 주려고했다. 하지만 먼저 'long long int'를 데이터 타입으로 사용하여 부호가 없도록하십시오. 그런 다음 테스트 데이터를 다시 시도하십시오. –