In the Paillier cryptosystem, decryption goes $m\gets\displaystyle\left\lfloor\frac {\left(c^\lambda\bmod N^2\right)-1}N\right\rfloor\mu\bmod N$ with $\mu<N$ being a part of the private key just like $\lambda=\operatorname{lcm}(p-1,q-1)$ for $N=p\,q$.
The Chineese Remainder Theorem allows to speed-up this computation knowing the factorization $N=p\,q$, as follows:
- Evaluate $x=c^\lambda\bmod N^2$ by the Chinese Remainder theorem, that is
- $x_{p}\gets c^\lambda\bmod p^2$
- $x_q\gets c^\lambda\bmod q^2$
- $x\gets\left(q^{-2}(x_p-x_q)\bmod p^2\right)q^2+x_q$
note: $q^{-2}\bmod p^2$ can be precomputed.
- Then evaluate $m\displaystyle\gets\left\lfloor\frac{x-1}N\right\rfloor\,\mu\bmod N$.
This speeds-up decryption by a factor of at most two (each of the first two modular exponentiations is manipulating values half as large as for $c^\lambda\bmod N^2$, and is thus at best four times faster). In RSA, the CRT gives larger savings (sometime approaching four), because the exponents $d_p$ and $d_q$ have about half the size of $d$.
Can we improve the savings obtained and exceed a factor of two?
This question is an attempt to compute $m_p=m\bmod p$ and $m_q=m\bmod q$, then use the CRT to get $m$. If the computation of $m_p$ could somewhat we performed mostly modulo $p$ or $p^2$, perhaps the savings would be improved.