# An Improved Algorithm for Iterative Matrix-Vector Multiplications over Finite Fields

• Ceyda Mangır
• Murat Cenk
• Murat Manguoğlu
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11359)

## Abstract

Cryptographic computations such as factoring integers and computing discrete logarithms over finite fields require solving a large system of linear equations. When dealing with such systems iterative approaches such as Wiedemann or Lanczos are used. Both methods are based on the computation of a Krylov subspace in which the computational cost is often dominated by successive matrix-vector products. We introduce a new algorithm for computing iterative matrix-vector multiplications over finite fields. The proposed algorithm consists of two stages. The first stage (preprocessing) sorts the elements of the matrix row by row in ascending order and produces permutation tables. After preprocessing, many consecutive multiplications can be performed by the second stage of the algorithm using sequential additions on vector elements by the guidance of the permutation tables. We show that the preprocessing cost of the proposed algorithm can easily be amortized after several matrix-vector multiplications are performed. We implemented the algorithm using the C++ programming language and compared the performance with a classical method. The proposed algorithm exhibits significant improvement between $$35\%$$ and $$67\%$$.

## Keywords

Matrix-vector multiplication Index calculus algorithm Wiedemann Lanczos

## References

1. 1.
Adleman, L.M., DeMarrais, J.: A subexponential algorithm for discrete logarithms over all finite fields. In: Stinson, D.R. (ed.) CRYPTO 1993. LNCS, vol. 773, pp. 147–158. Springer, Heidelberg (1994).
2. 2.
Coppersmith, D.: Solving homogeneous linear equations over GF(2) via block Wiedemann algorithm. Math. Comput. 62(205), 333–350 (1994).
3. 3.
Joux, A.: Algorithmic Cryptanalysis, 1st edn. Chapman & Hall/CRC, Boca Raton (2009).
4. 4.
Kleinjung, T., et al.: Factorization of a 768-bit RSA modulus. In: Rabin, T. (ed.) CRYPTO 2010. LNCS, vol. 6223, pp. 333–350. Springer, Heidelberg (2010).
5. 5.
Kleinjung, T., Diem, C., Lenstra, A.K., Priplata, C., Stahlke, C.: Computation of a 768-bit prime field discrete logarithm. In: Coron, J.-S., Nielsen, J.B. (eds.) EUROCRYPT 2017. LNCS, vol. 10210, pp. 185–201. Springer, Cham (2017).
6. 6.
Montgomery, P.L.: A block lanczos algorithm for finding dependencies over GF(2). In: Guillou, L.C., Quisquater, J.-J. (eds.) EUROCRYPT 1995. LNCS, vol. 921, pp. 106–120. Springer, Heidelberg (1995).
7. 7.
Odlyzko, A.M.: Discrete logarithms in finite fields and their cryptographic significance. In: Beth, T., Cot, N., Ingemarsson, I. (eds.) EUROCRYPT 1984. LNCS, vol. 209, pp. 224–314. Springer, Heidelberg (1985).
8. 8.
Pomerance, C.: The quadratic sieve factoring algorithm. In: Beth, T., Cot, N., Ingemarsson, I. (eds.) EUROCRYPT 1984. LNCS, vol. 209, pp. 169–182. Springer, Heidelberg (1985).
9. 9.
Pomerance, C.: A tale of two sieves. Not. Am. Math. Soc. 43, 1473–1485 (1996)
10. 10.
Wiedemann, D.H.: Solving sparse linear equations over finite fields. IEEE Trans. Inf. Theor. 32(1), 54–62 (1986).