public int Decrypto(BigInteger c) { BigInteger nSquare = n.multiply(n); BigInteger Ans = c.modPow(lambda, nSquare); Ans = Ans.subtract(BigInteger.ONE).divide(n); Ans = Ans.remainder(n).multiply(nu).remainder(n); return Ans.intValue(); }
public BigInteger Encrypto(int m, BigInteger n, BigInteger g) { int r = new Random().nextInt(10) + 3; BigInteger Ans = BigInteger.ZERO; BigInteger nSquare = n.multiply(n); Ans = g.modPow(BigInteger.valueOf(m), nSquare); Ans = Ans.multiply(BigInteger.valueOf(r).modPow(n, nSquare)); Ans = Ans.remainder(nSquare); return Ans; }