projects
/
crypto_lab3.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Cleaning.
[crypto_lab3.git]
/
src
/
RsaStd.cpp
diff --git
a/src/RsaStd.cpp
b/src/RsaStd.cpp
index
17c2345
..
114fad0
100644
(file)
--- a/
src/RsaStd.cpp
+++ b/
src/RsaStd.cpp
@@
-1,5
+1,6
@@
#include "RsaStd.h"
#include "RsaStd.h"
+#include <iostream>
using namespace std;
#include "Rand.h"
using namespace std;
#include "Rand.h"
@@
-20,21
+21,17
@@
pair<Rsa::KeyPub, RsaStd::KeyPriv> RsaStd::generateRSAKeys(uint exponent, uint k
kPriv.n = kPub.n = p * q;
phi = (p - 1) * (q - 1);
kPriv.n = kPub.n = p * q;
phi = (p - 1) * (q - 1);
+ // d = e^-1 (mode phi).
} while (mpz_invert(kPriv.d.get_mpz_t(), kPub.e.get_mpz_t(), phi.get_mpz_t()) == 0); // If 'd' is not invertible we try another primes.
} while (mpz_invert(kPriv.d.get_mpz_t(), kPub.e.get_mpz_t(), phi.get_mpz_t()) == 0); // If 'd' is not invertible we try another primes.
-// For debugging purpose.
-// Utils::print("p", p);
-// Utils::print("q", q);
-// Utils::print("n", kPub.n);
-// Utils::print("phi", phi);
-// Utils::print("d", kPriv.d);
-
return make_pair(kPub, kPriv);
}
mpz_class RsaStd::sign(const mpz_class& m, const KeyPriv& kPriv)
{
mpz_class result;
return make_pair(kPub, kPriv);
}
mpz_class RsaStd::sign(const mpz_class& m, const KeyPriv& kPriv)
{
mpz_class result;
+
+ // m^d (mod n).
mpz_powm_sec(result.get_mpz_t(), m.get_mpz_t(), kPriv.d.get_mpz_t(), kPriv.n.get_mpz_t());
return result;
}
mpz_powm_sec(result.get_mpz_t(), m.get_mpz_t(), kPriv.d.get_mpz_t(), kPriv.n.get_mpz_t());
return result;
}