我的RSA代码有问题。例如,如果我输入p = 11,q = 3,e = 3,n = 33和d = 7,则适用于小p和q。
但是,如果我为他们提供更大的价值,那就行不通了。我正在调试我的代码,发现问题发生在cryptoMsg方法中。我认为某些价值可能太大。但是例如Wolfram alpha可以处理此计算。在下面,您可以看到我的用于加密和解密方法的代码。
long double encryptMsg(int n, int e, long double message) {
// Encryption c = (msg ^ e) % n
long double c = pow(message, (long double)e);
long double k = fmod(c, (long double)n);
cout << "encrypted message : " << k << endl;
return k;
}
void decryptMsg(int n, int d, long double message) {
// Decryption m = (c ^ d) % n
long double k = pow(message, (long double)d);
long double erg = fmod(k, (long double)n);
cout << erg << endl;
}