Abstract
In this paper we revisit the modular inversion hidden number problem (MIHNP) and the inversive congruential generator (ICG) and consider how to attack them more efficiently. We consider systems of modular polynomial equations of the form \(a_{ij}+b_{ij}x_i+c_{ij}x_j+x_ix_j=0~(\mathrm {mod}~p)\) and show the relation between solving such equations and attacking MIHNP and ICG. We present three heuristic strategies using Coppersmith’s lattice-based root-finding technique for solving the above modular equations. In the first strategy, we use the polynomial number of samples and get the same asymptotic bound on attacking ICG proposed in PKC 2012, which is the best result so far. However, exponential number of samples is required in the work of PKC 2012. In the second strategy, a part of polynomials chosen for the involved lattice are linear combinations of some polynomials and this enables us to achieve a larger upper bound for the desired root. Corresponding to the analysis of MIHNP we give an explicit lattice construction of the second attack method proposed by Boneh, Halevi and Howgrave-Graham in Asiacrypt 2001. We provide better bound than that in the work of PKC 2012 for attacking ICG. Moreover, we propose the third strategy in order to give a further improvement in the involved lattice construction in the sense of requiring fewer samples.
Similar content being viewed by others
References
Akavia A.: Solving hidden number problem with one bit oracle and advice. In: Advances in Cryptology—CRYPTO 2009: 29th Annual International Cryptology Conference, Santa Barbara, CA, USA, August 16–20, 2009, pp. 337–354. Springer, Berlin (2009). https://doi.org/10.1007/978-3-642-03356-8_20.
Bauer A., Vergnaud D., Zapalowicz J.C.: Inferring sequences produced by nonlinear pseudorandom number generators using coppersmiths methods. In: Fischlin M., Buchmann J., Manulis M. (eds.) Public Key Cryptography-PKC 2012. Lecture Notes in Computer Science, vol. 7293, pp. 609–626. Springer, Berlin (2012). https://doi.org/10.1007/978-3-642-30057-8_36.
Blackburn S., Gomez-Perez D., Gutierrez J., Shparlinski I.: Predicting the inversive generator. In: Paterson K. (ed.) Cryptography and Coding. Lecture Notes in Computer Science, vol. 2898, pp. 264–275. Springer, Berlin (2003). https://doi.org/10.1007/978-3-540-40974-8_21.
Blackburn S.R., Gomez-perez D., Gutierrez J., Shparlinski I.E.: Predicting nonlinear pseudorandom number generators. Math. Comput. 74, 1471–1494 (2005).
Boneh D., Venkatesan R.: Hardness of computing the most significant bits of secret keys in Diffie-Hellman and related schemes. In: CRYPTO 1996, pp. 129–142. Springer, Berlin (1996).
Boneh D., Halevi S., Howgrave-Graham N.: The modular inversion hidden number problem. In: ASIACRYPT 2001, pp. 36–51. Springer, Berlin (2001).
Boyar J.: Inferring sequences produced by pseudo-random number generators. J. ACM 36(1), 129–141 (1989). https://doi.org/10.1145/58562.59305.
Comtet L.: Advanced Combinatorics. D. Reidel Publishing Company, Boston (1974).
Cox D.A.: Ideals, Varieties, and Algorithms: An Introduction to Computational Algebraic Geometry and Commutative Algebra. Springer, New York (2007).
Eichenauer J., Lehn J.: A non-linear congruential pseudo random number generator. Stat. Hefte 27(1), 315–326 (1986). https://doi.org/10.1007/BF02932576.
Eichenauer-Herrmann J., Herrmann E., Wegenkittl S.: A survey of quadratic and inversive congruential pseudorandom numbers, pp. 66–97. Springer, New York (1998). https://doi.org/10.1007/978-1-4612-1690-2_4.
Howgrave-Graham N.: Finding small roots of univariate modular equations revisited. In: Crytography and Coding, pp. 131–142. Springer, New York (1997).
Howgrave-Graham N.A., Smart N.P.: Lattice attacks on digital signature schemes. Des. Codes Crypt. 23(3), 283–290 (2001). https://doi.org/10.1023/A:1011214926272.
Lenstra A.K., Lenstra H.W., Lovász L.: Factoring polynomials with rational coefficients. Math. Ann. 261(4), 515–534 (1982).
Ling S., Shparlinski I.E., Steinfeld R., Wang H.: On the modular inversion hidden number problem. J. Symb. Comput. 47(4), 358–367 (2012).
Niederreiter H.: Random Number Generation and Quasi-Monte Carlo Methods. Society for Industrial and Applied Mathematics, Philadelphia, RI (1992). https://doi.org/10.1137/1.9781611970081.
Niederreiter H.: New developments in uniform pseudorandom number and vector generation. In: Niederreiter H., Shiue P.S. (eds.) Monte Carlo and Quasi-Monte Carlo Methods in Scientific Computing. Lecture Notes in Statistics, vol. 106, pp. 87–120. Springer, New York (1995). https://doi.org/10.1007/978-1-4612-2552-2_5.
Niederreiter H., Rivat J.: On the correlation of pseudorandom numbers generated by inversive methods. Monatshefte Math. 153(3), 251–264 (2008). https://doi.org/10.1007/s00605-007-0503-3.
Niederreiter H., Shparlinski I.: Recent advances in the theory of nonlinear pseudorandom number generators. In: Fang K.T., Niederreiter H., Hickernell F. (eds.) Monte Carlo and Quasi-Monte Carlo Methods, pp. 86–102. Springer, Berlin (2000). https://doi.org/10.1007/978-3-642-56046-0_6.
Niederreiter H., Winterhof A.: On the Structure of Inversive Pseudorandom Number Generators, pp. 208–216. Springer, Berlin (2007). https://doi.org/10.1007/978-3-540-77224-8_25.
Pirsic G., Winterhof A.: On the structure of digital explicit nonlinear and inversive pseudorandom number generators. J. Complex. 26(1), 43–50 (2010). https://doi.org/10.1016/j.jco.2009.07.001.
Shparlinski I.E.: Playing hide-and-seek with numbers: the hidden number problem, lattices, and exponential sums. In: Proceeding of Symposia in Applied Mathematics, vol. 62, pp. 153–177 (2005).
Stern J.: Secret linear congruential generators are not cryptographically secure. In: 28th Annual Symposium on Foundations of Computer Science, 1987, pp. 421–426 (1987). https://doi.org/10.1109/SFCS.1987.51.
Topuzoğlu A., Winterhof A.: On the linear complexity profile of nonlinear congruential pseudorandom number generators of higher orders. Appl. Algebr. Eng. Commun. Comput. 16(4), 219–228 (2005). https://doi.org/10.1007/s00200-005-0181-0.
Winterhof A.: Recent Results on Recursive Nonlinear Pseudorandom Number Generators, pp. 113–124. Springer, Berlin (2010). https://doi.org/10.1007/978-3-642-15874-2_9.
Xu J., Hu L., Huang Z., Peng L.: Modular inversion hidden number problem revisited. In: Information Security Practice and Experience, pp. 537–551. Springer, New York (2014).
Acknowledgements
The authors would like to thank anonymous reviewers for their helpful comments and suggestions. The work of this paper was supported by the National Natural Science Foundation of China (Grant Nos. 61502488, 61472417, 61602471, 61702505 and 61732021), the National Cryptography Development Fund (Grant No. MMJJ20170115), and the Fundamental theory and cutting edge technology Research Program of Institute of Information Engineering, CAS (Grant No. Y7Z0341103).
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by I. Shparlinski.
Appendices
Appendix A: The leading monomial of the polynomial in (13)
From (12) and (13), we can deduce
Since that \(x^{i_0}_0x^{i_1}_1\ldots x^{i_n}_n\) is written as \(x^{i_0}_0\cdot (x_{j_1}\cdots x_{j_s})\), thus, our goal is to analyze \(x^{i_0}_0\cdot (x_{j_1}\ldots x_{j_s})\) is the leading monomial of \(f_{i_0, i_1, \ldots , i_n}(x_0, x_1, \ldots , x_n)\). Note that the polynomial \(h_l\) \((1\le l \le s)\) is composed of the terms in \(g_l\) except for the corresponding terms of monomials
Let \(x^{l_0}_0x_{k_1}\cdots x_{k_t}\) be a monomial of \(u_{{i_0+1},1}\cdot h_1+\cdots +u_{{i_0+1},s}\cdot h_s\). Hence, we can obtain \(\{k_1, \ldots , k_t\}\subset \{j_1, \ldots , j_s\}\) where \(t<s\). According to the defined order (1), there is
which implies that the leading monomial of \(f_{i_0, i_1, \ldots , i_n}(x_0, x_1, \ldots , x_n)\) is \(x^{i_0}_0\cdot (x_{j_1}\ldots x_{j_s})\).
Appendix B: Computation of the determinant of L(n, d)
Note that the determinant of L(n, d) is product of the diagonal entries. For the case 1, the contribution of \(h_{i_0, i_1, \ldots , i_n}(x_0, x_{1}, \ldots , x_n)\) to the determinant of L(n, d) is
For the case 2.a, the contribution of \(h_{i_0, i_1, \ldots , i_n}(x_0, x_{1}, \ldots , x_n)\) to the determinant of L(n, d) is given by:
For the case 2.b, the contribution of \(f_{i_0, i_1, \ldots , i_n}(x_0X, x_{1}X, \ldots , x_nX)\) is:
To sum up, we get
where \(\alpha (n,d)=d(d+1)\sum \limits ^d_{s=0}\left( {\begin{array}{c}n\\ s\end{array}}\right) - d\sum \limits ^d_{s=0}s\left( {\begin{array}{c}n\\ s\end{array}}\right) \) and \(\beta (n,d)=\frac{d(d+1)}{2}\sum \limits ^d_{s=0}\left( {\begin{array}{c}n\\ s\end{array}}\right) +(d+1)\sum \limits ^d_{s=0}s\left( {\begin{array}{c}n\\ s\end{array}}\right) \).
Appendix C: Computation on \(p^{F(n,d)-\epsilon _2}\)
Our goal is to derive a lower bound of
First, from the values \(\beta (n, d)=\frac{d(d+1)}{2}\sum \limits ^d_{s=0}\left( {\begin{array}{c}n\\ s\end{array}}\right) +(d+1)\sum \limits ^d_{s=0}s\left( {\begin{array}{c}n\\ s\end{array}}\right) \) and \(\omega =\dim (L(n,d))=(d+1)\sum \limits ^d_{s=0}\left( {\begin{array}{c}n\\ s\end{array}}\right) \), we get \(\frac{\omega }{\beta (n,d)}<\frac{2}{d+2}\). Further, there is
where \(\epsilon _2=\frac{2\log _2 \omega +\omega -1}{2(d+2) \log _2 p}+{\frac{dn}{\beta (n,d)}}\).
Second, plugging the values \(\omega \), \(\alpha (n,d)\) and \(\beta (n,d)\) into \(\frac{d \omega -\alpha (n, d)}{\beta (n, d)}\), we get that
Thus,
Appendix D: Analysis of the polynomial in (19)
First, we analyze the leading monomial of the polynomial. We know that the leading monomial of the polynomial in (19) is the product of the leading monomials of the following polynomials:
Note that the leading monomials of \(g{(x^{s_1}_0;S_1)}, \ldots , g{(x^{s_l}_0;S_l)}\) are respectively
the leading monomial of \(g{(x^{i_0-(s_1+\cdots +s_l)}_0;S_{l+1})}\) is \(x^{i_0-(s_1+\cdots +s_l)}\cdot (x_{j_{1}} \ldots x_{j_{s_{l+1}}})\) and the leading monomials of \(g{(x^0_0;S_{l+2})}, \ldots , g{(x^0_0;S_m)}\) are respectively
It is easy to compute that the leading monomial of the polynomial in (19) is
which is equal to \(x^{i_0}_0x^{i_1}_1\ldots x^{i_n}_n\) from (18) directly. Hence, the leading monomial of the polynomial in (19) is \(x^{i_0}_0x^{i_1}_1\ldots x^{i_n}_n\).
Next, we show that the polynomial in (19) has the following relation
Note that the polynomials in (19) are composed of the polynomials generated by the second strategy. From \(|S_1|=s_1, \ldots , |S_l|=s_l\), we have
From \(s_1+\cdots +s_l \le i_0<(s_1+\cdots +s_l)+s_{l+1}\), we get \(0\le i_0-(s_1+\cdots +s_l)<s_{l+1}=|S_{l+1}|\), thus there is
According to \(|S_m|\ge \cdots \ge |S_{l+2}|\ge |S_{l+1}|=s_{l+1}>0\), we obtain
Therefore, we get \(f_{i_0, i_1, \ldots , i_n}(x_0, x_1, \ldots , x_n)=0~\mathrm {mod}~p^{(s_1+\cdots +s_m)+(m-l)}.\) From (18), we have \(s_1+\cdots +s_m=i_1+\cdots +i_n\). Hence
Appendix E: Computation on dimension and determinant of L(n, d, k)
Let
Denote |S(n, d, k)| is the cardinality of S(n, d, k). Note that |S(n, d, k)| can also be regarded as the sum of coefficients of the \(x^s\) in the expansion of the polynomial \((1+x+\cdots +x^k)^n\), \(s=0, 1, \ldots , dk\). Namely, \(|S(n, d, k)|=\sum \limits ^{dk}_{s=0}\left( {\begin{array}{c}n\\ s\end{array}}\right) _{k+1}.\)
First, we compute the dimension of L(n, d, k). Clearly, the dimension of the lattice L(n, d, k) is equal to the number of vectors in I(n, d, k), which can be expressed as \((dk+1)\cdot |S(n, d, k)|\), Therefore,
Then, we compute the determinant of L(n, d, k). Since that the determinant of L(n, d, k) is product of the diagonal entries where all tuples \((i_0, i_1, \ldots , i_n)\in I(n, d, k)\), we consider the following cases.
For the case 1 and case 2.a, the contribution of \(h_{i_0, i_1, \ldots , i_n}(x_0, x_{1}, \ldots , x_n)\) to the determinant of L(n, d) is
where \(i_1+\cdots +i_n=0\) in the case 1 and \(i_1+\cdots +i_n>0\) in the case 2.a.
For the case 2.b, the contribution of \(h_{i_0, i_1, \ldots , i_n}(x_0X, x_{1}X, \ldots , x_nX)\) is given as follows:
which can be rearranged as
according to the relation \(s_1+\cdots +s_m=i_1+\cdots +i_n\) in (18).
Thus, we can get that \(\det (L(n,d,k))\) =
First, let us compute \(\prod \limits _{(i_1, \ldots , i_n)\in S(n, d, k)}\prod \limits ^{dk}_{i_0=0}p^{dk-(i_1+\cdots +i_n)}.\) We can deduce that
where \(s=i_1+\cdots +i_n\). Hence,
Second, let us compute \(\prod \limits _{(i_1, \ldots , i_n)\in S(n, d, k)}\prod \limits ^{dk}_{i_0=0}X^{i_0+i_1+\cdots +i_n}.\) Note that
Therefore,
Third, let us compute \(\prod \limits _{(i_1, \ldots , i_n)\in S(n, d, k)}p^{\sum \limits \limits ^{m-1}_{l=0}(m-l)s_{l+1}}\). We can rewrite
where \(s_0=0\). Note that there are exactly \((s_{l+1}-s_l)\) entries that are equal to \((m-l)\) in the exponent set \(\{i_1, \ldots , i_n\}\) for \(l=0, 1, \ldots , m-1\). Hence, \(\sum \limits \limits ^{m-1}_{l=0} (s_{l+1}-s_l)(1+\cdots +m-l)\) can be regarded as a rearrangement of \((1+\cdots +i_1)+\cdots +(1+\cdots +i_n)\), which is computed as \(\frac{i_1+\cdots +i_n+i^2_1+\cdots +i^2_n}{2}\). Therefore,
We have known \(\sum \limits _{(i_1, \ldots , i_n)\in S(n, d, k)}{\left( i_1+\cdots +i_n\right) }=\sum \limits ^{dk}_{s=0}s\left( {\begin{array}{c}n\\ s\end{array}}\right) _{k+1}.\) Next, we analyze
Since
Here, \(0\le i_n \le k\) and \(0 \le (i_1+\cdots +i_{n-1})\le {\min \{dk-i_n,(n-1)k\}}\) as \({(i_1, \ldots , i_n)\in S(n, d, k)}\). Thus, we can rewrite the above relation using polynomial coefficients:
Further, we obtain
According to the above analysis, we get \(\det (n, d, k)=p^{\alpha (n, d, k)}\cdot X^{\beta (n, d, k)}\), where \(\alpha (n, d, k)\)=
and
Appendix F: Computation on \(p^{F(n,d, k)-\epsilon _3}\)
Our goal is to show a lower bound of
where \(\omega =\dim (L(n,d,k))\).
First, from the values \(\dim (L(n,d,k))\) and \(\beta (n,d,k)\), we get \(\frac{\omega }{\beta (n,d,k)}<\frac{2}{dk+2}\), furthermore,
where \(\epsilon _3=\frac{2\log _2 \omega +(\omega -1)}{2(dk+2) \log _2 p}+\frac{ndk}{\beta (n,d,k)}\).
Second, according to the values \(\alpha (n, d, k)\), \(\beta (n, d,k)\), \(\omega \) and F(n, d, k), we can compute
Therefore, there is the following relation
Appendix G: Sage code for the first strategy
Appendix H: Sage code for the second strategy
Appendix I: Sage code for the third strategy
Rights and permissions
About this article
Cite this article
Xu, J., Sarkar, S., Hu, L. et al. Solving a class of modular polynomial equations and its relation to modular inversion hidden number problem and inversive congruential generator. Des. Codes Cryptogr. 86, 1997–2033 (2018). https://doi.org/10.1007/s10623-017-0435-4
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10623-017-0435-4
Keywords
- Modular inversion hidden number problem
- Inversive congruential generator
- Lattice
- LLL algorithm
- Coppersmith’s technique