About the Naccache-Stern cryptosystem, I have found two different encryption algorithms:
- In the original paper from Naccache and Stern, the encryption step is performed by calculating $c = g^m \hspace{2mm} (mod \hspace{2mm} n)$, with $m$ being the plaintext, with $\sigma$ being optionally kept private. Then decryption is performed by applying some series of congruences mod n, which are easy to understand.
- However, on Wikipedia (https://en.wikipedia.org/wiki/Naccache%E2%80%93Stern_cryptosystem), and many other sites, such as Crypto Wiki, the encryption step is performed differently: previously, an element $x \in \mathbb{Z}_{n}$ is randomly selected, and the plaintext $m$ is encrypted as $c = x^{\sigma}g^{m} \hspace{2mm} mod \hspace{2mm} n$, forcing $ \sigma$ to be part of the public key. Now, as for the explanation on why decryption works, they apply the following congruence: $$ c_{i} = c^{\phi(n)/p_{i}} \equiv x^{\sigma\phi(n)/p_{i}}g^{m\phi(n)/p_{i}} \hspace{2mm} mod \hspace{2mm} n \equiv g^{m\phi(n)/p_{i}} \hspace{2mm} mod \hspace{2mm} n $$ so basically, the same process as in the paper is applied, but with this different step, which I don't understand why is correct. Eventually, we get $c_{i}$ is an element of the cyclic subgroup generated by $g$.
So, my questions here are:
- Is this congruence true? If so, why, if $x$ was randomly chosen?
- Does this mean that $x$ is also an element of the cyclic subgroup generated by $g$?