Dear EHT Team,
The details of the algorithm and the analysis was presented in the linked script with extensive comments [1], so I do not agree that none such details were given.
Anyway, I never mind a challenge so below a solution obtained via a method similar to the first attack we presented.
In short, to solve it:
1. Create a basis of the q-ary lattice L = A*Z^n + q*Z^m starting with m-n q-vectors.
2. BKZ-reduce it with blocksize 100
3. Find a close vector to h using Babai reduction. Randomize with the last few basis vectors to obtain multiple close vectors and pick one that satisfies the constraints.
For step 2 I used [2] with pump_and_jump+gpu and jump=3, but with a bit more patience plain G6K should also work.
In terms of quality it seems comparable to BKZ with blocksize +-90.
The total runtime was less than 3 hours on 8 threads and 1 partial a100 gpu.
For step 3 a simple sage script is available at [3], which runs in a few seconds. The output is copied below.
# output of break.sage using the BKZ-100 reduced basis B100.txt:
Loading data..
Starting babai reduction..
Solution found with minl = 273 >= l
x_vec = (23, 22, 46, 33, 1, 7, 3, 42, 29, 17, 18, 12, 14, 15, 12, 30, 18, 27, 11, 27, 26, 18, 17, 36, 6, 38, 0, 9, 13, 31, 23, 23, 36, 26, 16, 3, 42, 0, 39, 21, 10, 16, 46, 23, 5, 9, 37, 34, 0, 19, 37, 40, 42, 31, 24, 3, 27, 31, 9, 23, 35, 29, 3, 23, 30, 19, 8, 6, 14, 11, 44, 29, 31, 17, 36, 37, 22, 32, 10, 43, 42, 25, 13, 19, 9, 22, 31, 31, 6, 31, 8, 27, 25, 42, 0, 11, 42, 8, 9, 3, 36, 2, 11, 37, 43, 21, 8, 29, 27, 46, 26, 34, 5, 37, 15, 17, 16, 21, 20, 6, 6, 43, 28, 10, 42, 14, 20, 7, 39, 40, 12, 10, 9, 41, 9, 4, 29, 17, 41, 4, 1, 38, 21, 30, 27, 8, 20, 35, 21, 21, 41, 7)
Verify solution..
Solution verified, e= (1, -8, -2, 6, 4, -12, 3, -5, 0, 3, 0, -1, 2, 6, -2, -2, 8, -7, 1, 1, 0, 11, -2, -7, -8, -7, 9, 4, 1, -4, -3, 0, 3, 4, -2, -4, -1, 0, -2, 3, -3, 3, 2, 8, -3, -7, -1, 0, 1, -3, -5, 4, -3, -1, 3, -3, -4, -3, -7, 0, -6, 1, -5, 4, -5, 0, -6, 0, -10, -3, 9, -3, -2, -10, 0, 0, -1, 0, -2, 1, -9, -8, 7, 0, 0, -2, 7, 0, 3, 0, 6, 0, -2, 4, 1, -1, 4, -2, 0, -7, 0, 7, -6, 6, -1, -3, 0, 3, 0, 0, 0, 0, 0, 4, -2, 0, 0, -9, -1, 0, 0, 0, 0, 0, 0, 1, 0, -6, 0, 0, 0, 0, 0, 8, 6, 0, 2, 0, 0, 0, 6, -1, 0, 0, 0, 0, -3, 0, 10, 0, -17, 0, 16, 6, 9, 5, 1, -4, -18, 1, 6, -3, 17, 10, -3, -3, -2, 3, 9, -2, 3, 2, -23, 7, -1, 3, 13, 0, 10, 22, -2, 1, -2, 7, 9, -2, 14, -1, -2, 1, 4, 1, -9, -5, 0, 12, -3, 3, 4, -2, -4, -1, 0, -7, -1, 5, -7, -3, -4, -1, 1, 0, 1, 1, -1, -5, 3, -3, -6, 2, -9, -5, -6, -4, 1, -4, 4, 0, 4, 7, -9, -6, -3, -2, -3, -1, 1, 3, 5, 4, 2, 6, -4, 1, -3, 6, -3, 0, 2, -1, -4, -3, 3, -3, 0, 3, 2, 5, -3, 1, 1, -3, 8, 9, 2, 1, -2, -3, -1, -4, 0, -7, -1, -1, 0, -2, -1, 0, -6, -1)
Best regards,
Wessel van Woerden
IMB, Université de Bordeaux