Я написал этот метод util с использованием безопасности Java (обычный J2SE):
public static boolean validateRSAKeyPair(RSAPrivateCrtKey privateKey, RSAPublicKey publicKey) {
BigInteger n = publicKey.getModulus();
BigInteger e = publicKey.getPublicExponent();
BigInteger d = privateKey.getPrivateExponent();
BigInteger p = privateKey.getPrimeP();
BigInteger q = privateKey.getPrimeQ();
BigInteger pq = p.multiply(q);//shold equal to n
BigInteger eulerMod = p.add(NEGATIVE_ONE).multiply(q.add(NEGATIVE_ONE));// φ(n)=(p-1)*(q-1)
BigInteger mod = d.multiply(e).mod(eulerMod);// (d*e) mod φ(n), should be 1
return n.equals(pq) && BigInteger.ONE.equals(mod);
}
Он проверяет пару ключей RSA по параметрам алгоритма RSA.