Chapter 17: Problem 28
Let \(n\) be a large, positive integer. We can factor \(n\) using trial division in time \(n^{1 / 2+o(1)} ;\) however, using fast polynomial arithmetic in \(\mathbb{Z}_{n}[X],\) one can get a simple, deterministic, and rigorous algorithm that factors \(n\) in time \(n^{1 / 4+o(1)} .\) Note that all of the factoring algorithms discussed in Chapter \(15,\) while faster, are either probabilistic, or deterministic but heuristic. Assume that we can multiply polynomials in \(\mathbb{Z}_{n}[X]\) of length at most \(\ell\) using \(M(\ell)\) operations in \(\mathbb{Z}_{n},\) where \(M\) is a well-behaved complexity function, and \(M(\ell)=\ell^{1+o(1)}\) (the algorithm from Exercise 17.24 would suffice). (a) Let \(\ell\) be a positive integer, and for \(i=1, \ldots, \ell,\) let $$ a_{i}:=\prod_{j=0}^{\ell-1}(i \ell-j) \bmod n $$ Using fast polynomial arithmetic, show how to compute \(\left(a_{1}, \ldots, a_{\ell}\right)\) in time \(\ell^{1+o(1)} \operatorname{len}(n)^{O(1)}\) (b) Using the result of part (a), show how to factor \(n\) in time \(n^{1 / 4+o(1)}\) using a deterministic algorithm.
Short Answer
Step by step solution
Key Concepts
These are the key concepts you need to understand to accurately answer the question.