class PaillierCipher {

	public static BigInteger decrypt(final PaillierPrivateKey decryptionKey, final BigInteger ciphertext) {

		// Get private key parameters
		final BigInteger lambda = decryptionKey.getLambda();
		final BigInteger mu = decryptionKey.getMu();
		final BigInteger n = decryptionKey.getN();
		final BigInteger nSquared = decryptionKey.getNSquared();

		final BigInteger innerPart = Exponentiation.modPow(ciphertext, lambda, nSquared);
		return l(innerPart, n).multiply(mu).mod(n);
	}

}