comparison of block lanczos and block wiedemann for
play

Comparison of Block-Lanczos and Block-Wiedemann for Solving Linear - PowerPoint PPT Presentation

Motivation Lanczos and Wiedemann Algorithms Implementation of Block-Lanczos Timings Comparison of Block-Lanczos and Block-Wiedemann for Solving Linear Systems in Large Factorizations A. Kruppa Centrum Wiskunde & Informatica Amsterdam


  1. Motivation Lanczos and Wiedemann Algorithms Implementation of Block-Lanczos Timings Comparison of Block-Lanczos and Block-Wiedemann for Solving Linear Systems in Large Factorizations A. Kruppa Centrum Wiskunde & Informatica Amsterdam Workshop on Computational Number Theory 2011 A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  2. Motivation Lanczos and Wiedemann Algorithms Implementation of Block-Lanczos Timings Outline Motivation 1 Linear Algebra in Integer Factoring Algorithms for Finding Kernel Vectors Lanczos and Wiedemann Algorithms 2 The Lanczos Algorithm The Wiedemann Algorithm Implementation of Block-Lanczos 3 The CWI Implementation of Block-Lanczos The Huygens Supercomputer Timings 4 A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  3. Motivation Lanczos and Wiedemann Algorithms Linear Algebra in Integer Factoring Implementation of Block-Lanczos Algorithms for Finding Kernel Vectors Timings Outline Motivation 1 Linear Algebra in Integer Factoring Algorithms for Finding Kernel Vectors Lanczos and Wiedemann Algorithms 2 The Lanczos Algorithm The Wiedemann Algorithm Implementation of Block-Lanczos 3 The CWI Implementation of Block-Lanczos The Huygens Supercomputer Timings 4 A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  4. Motivation Lanczos and Wiedemann Algorithms Linear Algebra in Integer Factoring Implementation of Block-Lanczos Algorithms for Finding Kernel Vectors Timings Factoring with Congruent Squares Sieving-based factoring algorithms (QS, NFS) construct congruent squares: X 2 ≡ Y 2 ( mod N ) If X �≡ ± Y ( mod N ) , then gcd ( X − Y , N ) is a proper factor So how do we find congruent squares? Sieving step: Find a lot of relations, i.e., pairs of congruent 1 values that both factor over a small set of primes Linear Algebra step: Find a subset of them such that in the 2 product both sides are squares A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  5. Motivation Lanczos and Wiedemann Algorithms Linear Algebra in Integer Factoring Implementation of Block-Lanczos Algorithms for Finding Kernel Vectors Timings Constructing Congruent Squares: Example Example: Factor 77 2 4 5 1 3 1 80 = × ≡ = 3 5 3 2 4 3 1 125 = ≡ × = 48 2 5 5 1 2 1 3 1 160 = × ≡ × = 6 2 1 3 4 2 3 162 = × ≡ = 8 Want square product: all primes in even exponent. Look at exponent vectors A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  6. Motivation Lanczos and Wiedemann Algorithms Linear Algebra in Integer Factoring Implementation of Block-Lanczos Algorithms for Finding Kernel Vectors Timings Constructing Congruent Squares: Example Example: Factor 77 4 1 1 80 = ≡ = 3 3 4 1 125 = ≡ = 48 5 1 1 1 160 = ≡ = 6 1 4 3 162 = ≡ = 8 Interested only in even or odd: look at exponent vectors over F 2 A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  7. Motivation Lanczos and Wiedemann Algorithms Linear Algebra in Integer Factoring Implementation of Block-Lanczos Algorithms for Finding Kernel Vectors Timings Constructing Congruent Squares: Example Example: Factor 77 1 1 80 = ≡ = 3 1 1 125 = ≡ = 48 1 1 1 1 160 = ≡ = 6 1 1 162 = ≡ = 8 Find linear combination of exponent vectors over F 2 that adds to zero vector: write exponent vectors as columns of a matrix, find a kernel vector A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  8. Motivation Lanczos and Wiedemann Algorithms Linear Algebra in Integer Factoring Implementation of Block-Lanczos Algorithms for Finding Kernel Vectors Timings Constructing Congruent Squares: Example Example: Factor 77 1 1 80 = ≡ = 3 1 1 125 = ≡ = 48 1 1 1 1 160 = ≡ = 6 1 1 162 = ≡ = 8 One solution: use relations 80 ≡ 3, 160 ≡ 6, and 162 ≡ 8 ( mod 77 ) A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  9. Motivation Lanczos and Wiedemann Algorithms Linear Algebra in Integer Factoring Implementation of Block-Lanczos Algorithms for Finding Kernel Vectors Timings Constructing Congruent Squares: Example Example: Factor 77 1 1 80 = ≡ = 3 1 1 125 = ≡ = 48 1 1 1 1 160 = ≡ = 6 1 1 162 = ≡ = 8 One solution: use relations 80 ≡ 3, 160 ≡ 6, and 162 ≡ 8 ( mod 77 ) Product: 1440 2 ≡ 12 2 ( mod 77 ) . gcd ( 1440 − 12 , 77 ) = 7 A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  10. Motivation Lanczos and Wiedemann Algorithms Linear Algebra in Integer Factoring Implementation of Block-Lanczos Algorithms for Finding Kernel Vectors Timings Constructing Congruent Squares: Example Example: Factor 77 1 1 80 = ≡ = 3 1 1 125 = ≡ = 48 1 1 1 1 160 = ≡ = 6 1 1 162 = ≡ = 8 One solution: use relations 80 ≡ 3, 160 ≡ 6, and 162 ≡ 8 ( mod 77 ) Product: 1440 2 ≡ 12 2 ( mod 77 ) . gcd ( 1440 − 12 , 77 ) = 7 Construct congruent squares from relations by finding kernel vectors of a binary matrix A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  11. Motivation Lanczos and Wiedemann Algorithms Linear Algebra in Integer Factoring Implementation of Block-Lanczos Algorithms for Finding Kernel Vectors Timings Shape of the Matrices Sparse overall (few prime factors in each relation=column), rows corresponding to small primes are heavy RSA768 Input number of 232 digits Matrix size 192 795 550 × 192 796 550, weight 27 797 115 920, average column weight 144 . 2. RSA190 Input number of 190 digits Matrix size 33 218 122 × 33 643 088, total weight 2 115 794 780, average column weight 62 . 9. A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  12. Motivation Lanczos and Wiedemann Algorithms Linear Algebra in Integer Factoring Implementation of Block-Lanczos Algorithms for Finding Kernel Vectors Timings Outline Motivation 1 Linear Algebra in Integer Factoring Algorithms for Finding Kernel Vectors Lanczos and Wiedemann Algorithms 2 The Lanczos Algorithm The Wiedemann Algorithm Implementation of Block-Lanczos 3 The CWI Implementation of Block-Lanczos The Huygens Supercomputer Timings 4 A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  13. Motivation Lanczos and Wiedemann Algorithms Linear Algebra in Integer Factoring Implementation of Block-Lanczos Algorithms for Finding Kernel Vectors Timings Algorithms for Finding Kernel Vectors Gaussian Elimination, bad: O ( n 3 ) , matrix fill in Iterative methods instead: Lanczos, Wiedemann: all O ( wn 2 ) ( w average column weight) Both Block-Lanczos (BL) and Block-Wiedemann (BW) used in practice for factoring A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  14. Motivation Lanczos and Wiedemann Algorithms Linear Algebra in Integer Factoring Implementation of Block-Lanczos Algorithms for Finding Kernel Vectors Timings The RSA768 Matrix Was solved by BW Total CPU time: about 160 core years, 119 days elapsed Intended race BW vs. BL BW finished too fast, BL code was not ready Current project: get BL ready for RSA768 matrix, compare speed A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  15. Motivation Lanczos and Wiedemann Algorithms The Lanczos Algorithm Implementation of Block-Lanczos The Wiedemann Algorithm Timings Outline Motivation 1 Linear Algebra in Integer Factoring Algorithms for Finding Kernel Vectors Lanczos and Wiedemann Algorithms 2 The Lanczos Algorithm The Wiedemann Algorithm Implementation of Block-Lanczos 3 The CWI Implementation of Block-Lanczos The Huygens Supercomputer Timings 4 A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  16. Motivation Lanczos and Wiedemann Algorithms The Lanczos Algorithm Implementation of Block-Lanczos The Wiedemann Algorithm Timings The Lanczos Algorithm Solve Ax = y , symmetric A in K n , n , x ∈ K n , y � = 0 ∈ K n Our matrix B is not symmetric, set A = B T B , compute Av = B T ( Bv ) Create orthogonal base for RHS with known preimage { Av 1 , . . . , Av m } , m = dim K ( A , v 1 ) Express y in that base: y = � � y , Av i � | Av i | 2 Av i Then x = � � b , Av i � | Av i | 2 v i is a solution Homogeneous system: find distinct x 1 , x 2 for random y , x 1 − x 2 is kernel vector A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  17. Motivation Lanczos and Wiedemann Algorithms The Lanczos Algorithm Implementation of Block-Lanczos The Wiedemann Algorithm Timings The Lanczos Algorithm The Lanczos iteration: v i + 1 = Av i − � Av i , Av i � � v i , Av i � v i − � Av i , Av i − 1 � � v i − 1 , Av i − 1 � v i − 1 A ( Av i ) automatically orthogonal to Av 1 , . . . , Av i − 2 Lanczos iteration orthogonalizes Av i + 1 w.r.t. Av i , Av i − 1 Needs m ≈ n iterations, 2 matrix mul ( B T ( Bv i ) ), fixed number of scalar ops in each Problem in F 2 : self-orthogonal vectors � v i , Av i � = 0 → zero denominator A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

  18. Motivation Lanczos and Wiedemann Algorithms The Lanczos Algorithm Implementation of Block-Lanczos The Wiedemann Algorithm Timings The Block Lanczos Algorithm Block Algorithm: each column vector element is itself a length- b row vector ( b blocking factor, e.g, b = 128) Block vector V i is basis for vector space of dim = 128 Orthogonalize these subspaces instead of individual vectors Cover (almost) 128 dimensions of RHS in each iteration, need only (about) n / 128 iterations Word-wide bit operations ( + :XOR, ∗ : AND) treat whole block element in a single instruction A. Kruppa Comparison of Block-Lanczos and Block-Wiedemann

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend