public static final EuclideanNumberPair decipher(BigInteger quotient, int bits, boolean store) {
		boolean unsafe = false;
		
		BigInteger product = inverse(quotient, bits);
		BigInteger g = gcd(product, quotient);

		if (g.longValue() != 1) {// Double check common divisor
			// Make sure that "g" truly is common.
			long v1 = product.divide(g).multiply(quotient).longValue();
			long v2 = quotient.divide(g).multiply(product).longValue();

			if (v1 != v2) {
				unsafe = true;
			}
		}

		if(!store)
			return new EuclideanNumberPair(product, quotient, g, bits, unsafe);
		else 
			return new EuclideanNumberPair(quotient, product, g, bits, unsafe);

	}