//  Return a random generator of RQn with high probability.  THIS METHOD
//  ONLY WORKS IF N IS THE PRODUCT OF TWO SAFE PRIMES! This heuristic is used
//  threshold signature paper in the Victor Shoup
Return a random generator of RQn with high probability.
// Return a random generator of RQn with high probability . THIS METHOD // ONLY WORKS IF N IS THE PRODUCT OF TWO SAFE PRIMES! This heuristic is used // threshold signature paper in the Victor Shoup
func GetRandomGeneratorOfTheQuadraticResidue(n *big.Int, rand io.Reader) (*big.Int, error) {
	r, err := GetRandomNumberInMultiplicativeGroup(n, rand)
	if err != nil {
		return nil, err
	}
	return new(big.Int).Mod(new(big.Int).Mul(r, r), n), nil
}
func GetRandomGeneratorOfTheQuadraticResidue ( n * big . Int , rand io . Reader ) ( * big . Int , error ) { r , err := GetRandomNumberInMultiplicativeGroup ( n , rand ) if err != nil { return nil , err } return new ( big . Int ) . Mod ( new ( big . Int ) . Mul ( r , r ) , n ) , nil }
Return a random generator of RQn with high probability.
Return a random generator of RQn with high probability .