Say a have a group $G$ chosen as $Z_N^*$ where $N=pq$ and both $p$ and $q$ are safe primes. The algorithm for discrete logarithm is as follows:
- Pick $g$ as a random element from $Z_N^*$
- Pick $x$ as a random element from $(0, N')$ where ${N' = p' q'}$ where ${p=2p' + 1}$ and ${q=2q' + 1}$
- Evaluate ${y = g^x \: mod \: N}$
For public $y$ and $g$, what is the easiest way to construct ZKP that the prover knows $x$ without revealing it?