The LLL algorithm

A is a nonzero m × n matrix of integers, whose rows are LI and with at least two rows. Output: a unimodular matrix P and LLL(A), such that PA=LLL(A), where the rows of LLL(A) are LLL reduced.

The LLL parameter α = m1/n1 has to satisfy 1/4 < α ≤ 1, but here the default value is 1.

See pages 6-9 of slides and pages 406-416, An Introduction to Mathematical Cryptography, J. Hoffstein, J. Pipher, J.H. Silverman, Undergraduate Text, Springer, August 2008.

The matrix can be entered either (i) as a string of mn integers separated by spaces, or
(ii) cut and pasted from a text file, with entries separated by spaces and each row ended by a newline.

If the matrix entered has LD rows, this is detected during the initial Gram-Schmidt process when Di becomes 0.

    Enter m1(1 ≤ m1 ≤ 1000):
    Enter n1(1 ≤ m1 ≤ n1 ≤ 1000):
    Enter m(≤ 50):
    Enter n(≤ 50):

    Enter the m × n matrix entries :

Last modified 29th April 2016
Return to main page