ArticleslgStudy

computer science

Lattice sieving

Lattice sieving is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Lattice sieving rather than just read about it. In short: Lattice sieving is a technique for finding smooth values of a bivariate polynomial f ( a , b ) {\displaystyle f(a,b)} over a large region. It is almost exclusively used in conjunction with the number field sieve.

Key takeaways

  • Lattice sieving belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Lattice sieving to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Lattice sieving from memory before moving on to harder problems.

Reference excerpt

Lattice sieving is a technique for finding smooth values of a bivariate polynomial f ( a , b ) {\displaystyle f(a,b)} over a large region. It is almost exclusively used in conjunction with the number field sieve. The original idea of the lattice sieve came from John Pollard. The algorithm implicitly involves the ideal structure of the number field of the polynomial; it takes advantage of the theoremWhich one? that any prime ideal above some rational prime p can be written as p Z [ α ] + ( u + v α ) Z [ α ] {\displaystyle p\mathbb {Z} [\alpha ]+(u+v\alpha )\mathbb {Z} [\alpha ]} . One then picks many prime numbers q of an appropriate size, usually just above the factor base limit, and proceeds by

For each q, list the prime ideals above q by factorising the polynomial f(a,b) over G F ( q ) {\displaystyle GF(q)}

For each of these prime ideals, which are called 'special q {\displaystyle {\mathfrak {q}}} 's, construct a reduced basis x , y {\displaystyle \mathbf {x} ,\mathbf {y} } for the lattice L generated by q {\displaystyle {\mathfrak {q}}} ; set a two-dimensional array called the sieve region to zero. For each prime ideal p {\displaystyle {\mathfrak {p}}} in the factor base, construct a reduced basis x p , y p {\displaystyle \mathbf {x} _{\mathfrak {p}},\mathbf {y} _{\mathfrak {p}}} for the sublattice of L generated by p q {\displaystyle {\mathfrak {pq}}}

For each element of that sublattice lying within a sufficiently large sieve region, add log ⁡ | p | {\displaystyle \log |{\mathfrak {p}}|} to that entry. Read out all the entries in the sieve region with a large enough value For the number field sieve application, it is necessary for two polynomials both to have smooth values; this is handled by running the inner loop over both polynomials, whilst the special-q can be taken from either side.

Treatments of the inmost loop There are a number of clever approaches to implementing the inmost loop, since listing the elements of a lattice within a rectangular region efficiently is itself a non-trivial problem, and efficiently batching together updates to a sieve region in order to take advantage of cache structures is another non-trivial problem. The normal solution to the first is to have an ordering of the lattice points defined by couple of generators picked so that the decision rule which takes you from one lattice point to the next is straightforward; the normal solution to the second is to collect a series of lists of updates to sub-regions of the array smaller than the size of the level-2 cache, with the number of lists being roughly the number of lines in the L1 cache so that adding an entry to a list is generally a cache hit, and then applying the lists of updates one at a time, where each application will be a level-2 cache hit. For this to be efficient you need to be able to store a number of updates at least comparable to the size of the sieve array, so this can be quite profligate in memory usage.

References

Worked examples

Example 1 — a first encounter with Lattice sieving

Start with the simplest possible case. Write down what Lattice sieving claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Lattice sieving before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Lattice sieving ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Lattice sieving

In research
Lattice sieving appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Lattice sieving in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Lattice sieving is common in secondary-school and first-year university syllabi. It links to neighbouring topics Integer factorization algorithms, so understanding it makes those chapters shorter.
In everyday life
Look for Lattice sieving outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Lattice sieving in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Lattice sieving means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Lattice sieving out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Lattice sieving in simple terms?

Lattice sieving is a technique for finding smooth values of a bivariate polynomial f ( a , b ) {\displaystyle f(a,b)} over a large region. It is almost exclusively used in conjunction with the number field sieve.

Why does Lattice sieving matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Lattice sieving?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Lattice sieving.

Tags

  • Integer factorization algorithms

Keep exploring