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;
 }