Cryptography, Cybersecurity, Cryptocurrency.
==") check=(A*pow(X,c,p)) %p gz=(pow(g,z,p)) %p print (f"A.X^c={check}, g^z={gz}") and a sample run shows that we generate a valid value of X [here]: z=1713689002964348707, A=1089902863577689045 X=4709536396455092582 == Now checking == A.X^c=9660029624058852496, g^z=9660029624058852496