Modern Computer Arithmetic
|
|
- Cory Dixon
- 7 years ago
- Views:
Transcription
1 INRIA Nancy - Grand Est, France Microsoft Research, Redmond, June 12, 2009 (common work with Richard Brent, ANU, Canberra, Australia)
2 Richard P. Brent and Version 0.3
3 History of Started in July 2003, still in progress. Freely available from zimmerma/mca/pub226.html Current version (0.3) has 221 pages. Paper version hopefully out in The on-line version should remain available.
4 Yet another book? Some parts of Knuth vol. 2 are out-of-date: divide and conquer division, Schönhage-Strassen FFT, floating-point algorithms Most books only cover schoolbook-range algorithms or FFT-range algorithms, not middle-range algorithms Most books only cover fast multiplication, a few cover fast division, very few cover other algorithms (square root, radix conversion, gcd,... ) Most books let the reader deal with carries, rounding errors,... We claim our algorithms can be implemented out-of-the-box.
5 Other Related Books (1/2) The Design and Analysis of Computer Algorithms, Aho, Hopcroft, Ullman, 1974, fast polynomial gcd The Art of Computer Programming, vol.2, Seminumerical Algorithms, D. E. Knuth, 3rd edition, 1998, many algorithms Fast Algorithms, A Multitape Turing Machine Implementation, Schönhage, Grotefeld, Vetter, 1994, some nice algorithms Handbook of Applied Cryptography, Chapter 14, Menezes, van Oorschot, Vanstone, 1997: only covers schoolbook range
6 Other Related Books (2/2) Modern Computer Algebra, von zur Gathen and Gerhard, 1999: same spirit for polynomial and power series Prime Numbers: A Computational Perspective, Chapter 9 (Fast Algorithms for Large-Integer Arithmetic), 2001 Handbook of Elliptic and Hyperelliptic Curve Cryptography, Cohen, Frey, Avanzi, Doche, Lange, Vercauteren, 2005 (chapters 9, 10, 11, 12), mainly covers schoolbook range Handbook of Floating-Point Arithmetic, Brisebarre, de Dinechin, Jeannerod, Lefèvre, Melquiond, Muller, Revol, Stehlé, Torres, Birkhäuser, , only covers floating-point algorithms GNU MP Reference Manual, Chapter Algorithms, unknown but very relevant
7 Why? Richard Brent has a long experience in designing fast arithmetic algorithms rpb017, rpb028,rpb032,rpb034,rpb042 rpb043,rpb052,rpb049,rpb052,rpb069 and implementing them (the Fortran MP package). has a long (but shorter) experience, with contributions to the GNU MP and the GNU MPFR libraries. Hopefully useful to researchers and engineers in computer arithmetic, developers of arithmetic packages, and also students.
8 Advertisement Slide GNU is an arbitrary precision floating-point library with correct rounding Written in the C language, download from Extends IEEE to arbitrary precision and mathematical functions Used by GCC and GFORTRAN for constant folding: double x = sin(3.14) Might enable to extend Microsoft Excel to arbitrary precision, while having reproducibility of the results across different platforms
9 How? The book contains 4 chapters: 1 Integer Arithmetic 2 The FFT and Modular Arithmetic 3 Floating-Point Arithmetic 4 Newton s Method and Function Evaluation In each chapter we try to cover the main algorithms. (Too complex or too technical algorithms in the exercises.) While writing this book, several questions came to us. Some questions led to new algorithms, some are still unanswered.
10 How do you discover a new algorithm? operation 1 operation 2 case A algo X algo Y case B algo Z???
11 Plan of the talk The Binary Gcd (a new algorithm due to the book) Divide and Conquer Division (middle-range algorithm) Hensel Division and Montgomery Reduction (better understanding) Odd-Even Karatsuba Scheme and Unbalanced Multiplication (new algorithm) Svoboda Division (lost algorithm?) Half-Montgomery-Reduction (almost new algorithm) Batch Multiplication (bonus track) Disclaimer: this is my view of the book.
12 The binary gcd (with Stehlé) We can compute a asymptotically fast gcd of two n-bit integers in O(M(n) log n) using Knuth-Schönhage s algorithm (proposed by Knuth in 1970 but with a O(n log 5 n log log n) complexity, improved by Schönhage in 1971 to O(n log 2 n log log n)) Because of carries, this fast-gcd algorithm requires a fix-up procedure, which is tricky to design and implement correctly (most textbooks descriptions are incomplete or wrong) On the other hand, we know how to divide integers by the least significant bits (LSB).
13 Question (asked to Damien Stehlé in 2003): can we design an asymptotically fast LSB gcd algorithm? division gcd classical O(M(n)) O(M(n) log n) binary O(M(n))???
14 Classical fast GCD Consider a = 935 and b = 714. a i 1 = q i a i + a i+1 a 0 = 935, a 1 = 714, a 2 = 221, a 3 = 51, a 4 = 17, a 5 = 0. ( ) ( ) ( ) ai 0 1 ai+1 = 1 q i a i a i 1 ( a1 a 0 ) = ( ) ( ) ( ) ( ) ( a5 a 4 ) ( Hint: determine ) the q i from the MSB of the a i, and multiply the 0 1 matrices using O(M(n)) multiplication (product tree) 1 q i Problem: correctly determine the q i despite carries.
15 Classical fast GCD: binary view
16 Binary division Definition (Binary Division) Let a, b Z with ν 2 (b) > ν 2 (a). Let j = ν 2 (b) ν 2 (a). There is a unique q < 2 j such that with ν 2 (b) < ν 2 (r): r = a + q2 j b q is the binary quotient of a by b r is the binary remainder of a by b Let a = a/2 ν 2(a), b = b/2 ν 2(b). ν 2 (a ) = ν 2 (b ) = 0 We want ν 2 (a + qb ) > j, thus a + qb 0 mod 2 j+1. q a /b mod 2 j+1
17 Binary division: example Let a = 935 = ( ) 2 with ν 2 (a) = 0. Let b = 714 = ( ) 2 with ν 2 (b) = 1 > ν 2 (a). q 935/(714/2) 1 mod 2 2 r = a + 1 b/2 = 1292 = ( ) 2. Important note: keep the LSB zeroes!
18 Binary GCD Simply iterate binary division until 0. i q i a i a i (binary) The gcd of a, b is the odd part of the last non-zero term.
19 Binary GCD: pros and cons carries go to the MSB: no fix-up needed any more q = a/b mod 2 j simpler to compute than q = a/b same complexity O(M(n) log n) for the divide and conquer variant as for the classical GCD small linear growth of the MSB part (about 10%), precisely analyzed by Brigitte Vallée using dynamic analysis
20 Modular Inverse via Binary GCD Assume we want to invert b modulo a. Given a, b, the binary GCD computes: Assume gcd(a, b) = g = 1: αa + βb = 2 k g 1 b = β 2 k mod a Note: 2 k mod a can be computed in O(M(n)), much faster than the GCD itself.
21 Divide and Conquer Division Precisely described with Karastuba multiplication by Burnikel and Ziegler (1998), previously proposed by Moenck and Borodin (1972) and Jebelean (1997). Input: A = n+m 1 0 a i β i, B = n 1 0 b j β j, B normalized, n m Output: quotient Q and remainder R of A divided by B. 1: if m < 2 then return BasecaseDivRem(A, B) 2: k m 2, B 1 B div β k, B 0 B mod β k 3: (Q 1, R 1 ) RecursiveDivRem(A div β 2k, B 1 ) 4: A R 1 β 2k + (A mod β 2k ) Q 1 B 0 β k 5: while A < 0 do Q 1 Q 1 1, A A + β k B 6: (Q 0, R 0 ) RecursiveDivRem(A div β k, B 1 ) 7: A R 0 β k + (A mod β k ) Q 0 B 0 8: while A < 0 do Q 0 Q 0 1, A A + B 9: return Q := Q 1 β k + Q 0, R := A. Ready to implement, with carries
22 Divide and Conquer Division: Graphical View A h A l div B h B l A h = Q h B h + R h R h A l - Q h B l 0 = A h A l A h = Q l B h + R l R l A l - Q l B l = A l
23 Divide and Conquer Division: Graphical View quotient Q M( n 8 ) M( n 8 ) M( n 8 ) M( n 8 ) M( n 8 ) M( n 8 ) M( n 8 ) M( n 8 ) M(n/4) M(n/2) M(n/4) M(n/4) M(n/2) M(n/4) divisor B
24 Divide and Conquer Division: Complexity D(n) = 2D(n/2) + 2M(n/2) Karatsuba range: D(n) = 2M(n) (best possible D(n) = M(n) with van der Hoeven s algorithm) Toom-Cook range: M(n) n 1.47 : D(n) 2.63M(n) FFT range: D(n) = Θ(M(n) log n) Still the only subquadratic division in GMP 4.3! (Threshold is 27 limbs on a Pentium M.)
25 Classical vs Hensel Division A A B B QB Q B R classical division (MSB left) A = QB + R R Hensel division (LSB right) A = Q B + R 2 n
26 Hensel Division vs Montgomery Reduction
27 Hensel Division vs Montgomery Reduction Hensel division: A = QB + R2 n Quotient is the 2-adic quotient: Q = A/B mod 2 n Remainder is the result of Montgomery REDC: R = A/2 n mod B
28 Odd-Even Karatsuba Scheme (with Hanrot) Classical Karatsuba scheme. A = a 2n 1 β 2n a 1 β + a 0 Write A = A h β n + A l, B = B h β n + B l Evaluate A h B h, A l B l, (A h + A l )(B h + B l ). Odd-Even Karatsuba scheme. Write A = A odd β + A even, B = B odd β + B even Evaluate A odd B odd, A even B even, (A odd + A even )(B odd + B even ).
29 Karatsuba for unbalanced operands A h A l }{{} B h m B l } {{ } n K (m, n) = K (m/2, n m/2) + 2K (m/2) Better to center B? A h A l }{{} B h m B l } {{ } n K (m, n) = 2K (m/2, n/2) + K (m/2)
30 LSB aligned vs centered A h A l }{{} B h m B l } {{ } n K (5, 3) = K (2, 0) + K (3, 3) + K (3, 3) = 2 7 = 14 K (3, 3) = 2K (2, 2) + K (1, 1) = 7 A h A l }{{} B h m B l } {{ } n K (5, 3) = K (2, 2) + K (3, 1) + K (3, 3) = = 13 Not always best: K (6, 4) = 17 LSB aligned, 19 centered
31 Unbalanced operands with the odd-even scheme a 4 a 3 a 2 a 1 a 0 b 2 b 1 b 0 a 4 a 2 a 0 b 2 b 0 a 3 a 1 b 1 a 4 a 3 + a 2 a 1 + a 0 b 2 b 1 + b 0 K (m, n) = 2K ( m/2, n/2 ) + K ( m/2, n/2 ) K (3, 2) = 2K (2, 1) + K (1, 1) = 5 K (5, 3) = 2K (3, 2) + K (2, 1) = = 12
32 We can do even better! When both m and n are odd, zero-pad b to the LSB: a 4 a 3 a 2 a 1 a 0 b 2 b 1 b 0 0 a 4 a 2 a 0 b 1 0 a 3 a 1 b 2 b 0 a 4 a 3 + a 2 a 1 + a 0 b 2 + b 1 b 0 K (m, n) = K ( m/2, n/2 )+K ( m/2, n/2 )+K ( m/2, n/2 ) K (3, 2) = K (2, 1) + K (1, 1) + K (2, 1) = = 5 K (5, 3) = K (3, 1) + K (2, 2) + K (3, 2) = = 11
33 Montgomery s Multiplication Idea: AB mod D = REDC(A, B) := ABβ n mod D A = Ã := Aβn
34 Montgomery s Multiplication Idea: AB mod D = REDC(A, B) := ABβ n mod D A = à := Aβn à = Aβ n B = Bβ n
35 Montgomery s Multiplication Idea: AB mod D = REDC(A, B) := ABβ n mod D A = à := Aβn à = Aβ n B = Bβ n M(n) à B = ABβ 2n
36 Montgomery s Multiplication Idea: AB mod D = REDC(A, B) := ABβ n mod D A = à := Aβn à = Aβ n B = Bβ n M(n) à B = ABβ 2n D(n) à Bβ n = ABβ n = ÃB mod D
37 Montgomery s Reduction (schoolbook range) Input: C < D 2, µ = D 1 mod β (precomputed) Output: R = Cβ n mod D for i from 0 to n 1 do q i µc i mod β (quotient selection) C C + q i Dβ i R Cβ n if R β n then return R D else return R (fixup)
38 Montgomery s Multiplication: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
39 Montgomery s Multiplication: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
40 Montgomery s Multiplication: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
41 Montgomery s Multiplication: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
42 Montgomery s Multiplication: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
43 Montgomery s Multiplication: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
44 Montgomery s Multiplication: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
45 Montgomery s Multiplication: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
46 Montgomery s Multiplication: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
47 Montgomery s Multiplication: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
48 Montgomery s Multiplication: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
49 Montgomery s Multiplication: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
50 Montgomery s Multiplication: An Example Precompute µ = 1/913 mod 1000 = 23. C = D = C D = = 10 9 (D )
51 Classical vs Montgomery Quadratic Division quotient selection is expensive (128 bits 64 bits) 64 bits 64 bits mod 2 64 : cheap
52 Classical vs Montgomery Quadratic Division quotient selection is expensive (128 bits 64 bits) 64 bits 64 bits mod 2 64 : cheap up to 2n repair steps per division at most one final repair step
53 Classical vs Montgomery Quadratic Division quotient selection is expensive (128 bits 64 bits) 64 bits 64 bits mod 2 64 : cheap up to 2n repair steps per division at most one final repair step difficult branch prediction no branch inside loop
54 Classical vs Montgomery Quadratic Division quotient selection is expensive (128 bits 64 bits) 64 bits 64 bits mod 2 64 : cheap up to 2n repair steps per division at most one final repair step difficult branch prediction no branch inside loop dependency between repair step and next loop: c n+j, c n+j 1 still holds for c i
55 Classical vs Montgomery Quadratic Division quotient selection is expensive (128 bits 64 bits) 64 bits 64 bits mod 2 64 : cheap up to 2n repair steps per division at most one final repair step difficult branch prediction no branch inside loop dependency between repair step and next loop: c n+j, c n+j 1 still holds for c i and it is quadratic... still holds
56 Svoboda Division When dividing by D = d n 1 {}}{ 1, 000,..., quotient selection is easy: c n+jβ + c n+j 1 = c d n+j n 1 Svoboda s idea: force d n 1 = β!
57 Svoboda Division: An Example Precompute D = 1160 D =
58 Svoboda Division: An Example Precompute D = 1160 D =
59 Svoboda Division: An Example Precompute D = 1160 D =
60 Svoboda Division: An Example Precompute D = 1160 D =
61 Svoboda Division: An Example Precompute D = 1160 D =
62 Svoboda Division: An Example Precompute D = 1160 D =
63 Svoboda Division: An Example Precompute D = 1160 D =
64 Svoboda Division: An Example Precompute D = 1160 D =
65 Svoboda Division: An Example Precompute D = 1160 D =
66 Svoboda Division: An Example Precompute D = 1160 D =
67 Svoboda Division: An Example Precompute D = 1160 D =
68 Svoboda Division: An Example Precompute D = 1160 D =
69 Svoboda Division: An Example Precompute D = 1160 D =
70 Svoboda Division: An Example Precompute D = 1160 D = C = ( )D
71 Svoboda Division: C = Q(kD) + qd + R quotient selection becomes trivial (except last step) smaller repair probability, since d n 1 larger very interesting when quotient is not needed
72 How to Use Svoboda Division? either choose D such that d n 1 = β or work modulo kd of n + 1 words or perform a last ordinary division step
73 Montgomery-Svoboda Division Montgomery Reduction: Input: C < D 2, µ = D 1 mod β (precomputed) Output: R = Cβ n mod D for i from 0 to n 1 do q i µc i mod β C C + q i Dβ i R Cβ n if R β n then return R D else return R (quotient selection)
74 Montgomery-Svoboda Division Montgomery Reduction: Input: C < D 2, µ = D 1 mod β (precomputed) Output: R = Cβ n mod D for i from 0 to n 1 do q i µc i mod β C C + q i Dβ i R Cβ n if R β n then return R D else return R (quotient selection) Montgomery-Svoboda Reduction: Input: C < D 2, µ = D 1 mod β (precomputed), µd Output: R = Cβ n mod D for i from 0 to n 2 do q i c i mod β (trivial quotient selection) C C + q i (µd)β i q n 1 µc n 1 mod β C C + q n 1 Dβ n 1 R Cβ n if R β n then return R D else return R
75 Montgomery-Svoboda: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
76 Montgomery-Svoboda: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
77 Montgomery-Svoboda: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
78 Montgomery-Svoboda: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
79 Montgomery-Svoboda: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
80 Montgomery-Svoboda: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
81 Montgomery-Svoboda: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
82 Montgomery-Svoboda: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
83 Montgomery-Svoboda: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
84 Montgomery-Svoboda: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
85 Montgomery-Svoboda: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
86 Montgomery-Svoboda: An Example Precompute µ = 1/913 mod 1000 = 23. C = D =
87 Montgomery-Svoboda: An Example Precompute µ = 1/913 mod 1000 = 23. C = D = C + ( )D = 10 9 (D )
88 Subquadratic Svoboda Division Svoboda Division: kd = β n+1 + R, 0 R < D < β n. Could also choose kd = β n+1 R: β n+1 R mod D Generalization: β n+i R i mod D Take i = n/2: reduce from 2n to 3 2n words in M(n, n/2): R n/2 C 3 C 2 C 1 C 0 C 3 R n/2 Hasenplaugh, Gaubatz, Gopal, Fast Modular Reduction, ARITH 18, 2007.
89 Half-Montgomery-Reduction Almost discovered while writing the book (cf last slide of talk at CECC 08). Bipartite Modular Multiplication Method, Kaihara and Takagi, IEEE TC, Idea: half classical divide, half Montgomery reduction. C D QD R C = QD + Rβ n/2
90 Bipartite Modular Multiplication: an Example Divide 868, 323, 539, 104, 235, 651, 444, 705 by D = 996, 417, 214, , 323, 539, 104, 235, 651, 444, 705
91 Bipartite Modular Multiplication: an Example Divide 868, 323, 539, 104, 235, 651, 444, 705 by D = 996, 417, 214, , 323, 539, 104, 235, 651, 444, 705 ( ) D
92 Bipartite Modular Multiplication: an Example Divide 868, 323, 539, 104, 235, 651, 444, 705 by D = 996, 417, 214, , 323, 539, 104, 235, 651, 444, 705 ( ) D 000, 444, 145, 552, 584, 651, 444, 705
93 Bipartite Modular Multiplication: an Example Divide 868, 323, 539, 104, 235, 651, 444, 705 by D = 996, 417, 214, , 323, 539, 104, 235, 651, 444, 705 ( ) D 000, 444, 145, 552, 584, 651, 444, D
94 Bipartite Modular Multiplication: an Example Divide 868, 323, 539, 104, 235, 651, 444, 705 by D = 996, 417, 214, , 323, 539, 104, 235, 651, 444, 705 ( ) D 000, 444, 145, 552, 584, 651, 444, D 000, 444, 145, 746, 886, 008, 210, 000
95 Bipartite Modular Multiplication: an Example Divide 868, 323, 539, 104, 235, 651, 444, 705 by D = 996, 417, 214, , 323, 539, 104, 235, 651, 444, 705 ( ) D 000, 444, 145, 552, 584, 651, 444, D 000, 444, 145, 746, 886, 008, 210, 000 ( ) D
96 Bipartite Modular Multiplication: an Example Divide 868, 323, 539, 104, 235, 651, 444, 705 by D = 996, 417, 214, , 323, 539, 104, 235, 651, 444, 705 ( ) D 000, 444, 145, 552, 584, 651, 444, D 000, 444, 145, 746, 886, 008, 210, 000 ( ) D 000, 000, 740, 086, 575, 463, 210, 000
97 Bipartite Modular Multiplication: an Example Divide 868, 323, 539, 104, 235, 651, 444, 705 by D = 996, 417, 214, , 323, 539, 104, 235, 651, 444, 705 ( ) D 000, 444, 145, 552, 584, 651, 444, D 000, 444, 145, 746, 886, 008, 210, 000 ( ) D 000, 000, 740, 086, 575, 463, 210, 000 +( ) D
98 Bipartite Modular Multiplication: an Example Divide 868, 323, 539, 104, 235, 651, 444, 705 by D = 996, 417, 214, , 323, 539, 104, 235, 651, 444, 705 ( ) D 000, 444, 145, 552, 584, 651, 444, D 000, 444, 145, 746, 886, 008, 210, 000 ( ) D 000, 000, 740, 086, 575, 463, 210, 000 +( ) D 000, 001, 327, 972, 731, 830, 000, 000
99 Bipartite Modular Multiplication: an Example Divide 868, 323, 539, 104, 235, 651, 444, 705 by D = 996, 417, 214, , 323, 539, 104, 235, 651, 444, 705 ( ) D 000, 444, 145, 552, 584, 651, 444, D 000, 444, 145, 746, 886, 008, 210, 000 ( ) D 000, 000, 740, 086, 575, 463, 210, 000 +( ) D 000, 001, 327, 972, 731, 830, 000, 000 D 10 6
100 Bipartite Modular Multiplication: an Example Divide 868, 323, 539, 104, 235, 651, 444, 705 by D = 996, 417, 214, , 323, 539, 104, 235, 651, 444, 705 ( ) D 000, 444, 145, 552, 584, 651, 444, D 000, 444, 145, 746, 886, 008, 210, 000 ( ) D 000, 000, 740, 086, 575, 463, 210, 000 +( ) D 000, 001, 327, 972, 731, 830, 000, 000 D , 000, 331, 555, 517, 649, 000, 000
101 Bipartite Modular Multiplication: an Example Divide 868, 323, 539, 104, 235, 651, 444, 705 by D = 996, 417, 214, , 323, 539, 104, 235, 651, 444, 705 ( ) D 000, 444, 145, 552, 584, 651, 444, D 000, 444, 145, 746, 886, 008, 210, 000 ( ) D 000, 000, 740, 086, 575, 463, 210, 000 +( ) D 000, 001, 327, 972, 731, 830, 000, 000 D , 000, 331, 555, 517, 649, 000, , 555, 517, 649 mod D
102 Both reduction can be performed independently!
103 Both reduction can be performed independently! Step 1a: compute the classical quotient from upper n words 868, 323, 539, 104, 235, 651, 444, 705 (10 6 D) = 871, 445
104 Both reduction can be performed independently! Step 1a: compute the classical quotient from upper n words 868, 323, 539, 104, 235, 651, 444, 705 (10 6 D) = 871, 445 Step 1b: get the Montgomery quotient from lower n/2 words 868, 323, 539, 104, 235, 651, 444, 705 µ 590, 195 mod 10 6 (µ = 1/D mod 10 6 )
105 Both reduction can be performed independently! Step 1a: compute the classical quotient from upper n words 868, 323, 539, 104, 235, 651, 444, 705 (10 6 D) = 871, 445 Step 1b: get the Montgomery quotient from lower n/2 words 868, 323, 539, 104, 235, 651, 444, 705 µ 590, 195 mod 10 6 (µ = 1/D mod 10 6 ) Step 2: apply the classical quotient 868, 323, 539, 104, 235, 651, 444, 705 (871, )D = 739, 892, 274, 106, 444, 705
106 Both reduction can be performed independently! Step 1a: compute the classical quotient from upper n words 868, 323, 539, 104, 235, 651, 444, 705 (10 6 D) = 871, 445 Step 1b: get the Montgomery quotient from lower n/2 words 868, 323, 539, 104, 235, 651, 444, 705 µ 590, 195 mod 10 6 (µ = 1/D mod 10 6 ) Step 2: apply the classical quotient 868, 323, 539, 104, 235, 651, 444, 705 (871, )D = 739, 892, 274, 106, 444, 705 Step 3: apply the Montgomery quotient 739, 892, 274, 106, 444, , 195 D = 1, 327, 972, 731, 830, 000, 000 Step 4: fixup if needed. Remark: Steps 1a and 2 can be merged.
107 Batch Multiplication (with Kruppa) Context: in some applications (e.g., stage 2 of ECM), we have points (x 1 :: z 1 ),..., (x k :: z k ) on an elliptic curve modulo an integer n, and we want to find a match between them. (x i z j x j z i ) i<j requires 3 2 k 2 modular products. It is better to normalize (x i :: z i ) to (x i /z i :: 1), and compute (x i /z i x j /z j ) i<j with only 1 2 k 2 modular products. The x i /z i can be computed in k modular inversions and k modular multiplications...
108 Montgomery s batch inversion... or better in 1 modular inversion and 3k 3 modular multiplications using Montgomery s batch inversion.
109 Montgomery s batch inversion... or better in 1 modular inversion and 3k 3 modular multiplications using Montgomery s batch inversion. Input: z 1, z 2,..., z k mod n Output: 1/z 1,..., 1/z k mod n (All operations are performed modulo n.) 1. s 1 = z 1, s 2 z 1 z 2,..., s k z 1... z k (k 1 mults) 2. t k 1/s k (1 inversion) 3. 1/z k = s k 1 t k,..., 1/z j = s j 1 t j, t j 1 = t j z j (2k 2 mults) Total 1 inversion, 3k 3 multiplications (plus k mults for x j /z j )
110 Batch multiplication Idea: Instead of normalizing z to 1, normalize to Z = z 1 z 2... z k. Example (k = 3): (x 1 :: z 1 ) (x 1 z 2 z 3 :: Z ), (x 2 :: z 2 ) (z 1 x 2 z 3 :: Z ), (x 3 :: z 3 ) (z 1 z 2 x 3 :: Z ). 1. l 2 = z 1, l 3 = z 1 z 2,..., l k = z 1... z k 1 (k 2 mults) 2. r k 1 = z k, r k 2 = z k 1 z k,..., r 1 = z 2... z k (k 2 mults) 3. x 1 r 1, l 2 x 2 r 2,..., l k 1 x k 1 r k 1, l k r k (2k 2 mults) Total 4k 6 multiplications (saved 1 inversion and 3 mults)
A Binary Recursive Gcd Algorithm
A Binary Recursive Gcd Algorithm Damien Stehlé and Paul Zimmermann LORIA/INRIA Lorraine, 615 rue du jardin otanique, BP 101, F-5460 Villers-lès-Nancy, France, {stehle,zimmerma}@loria.fr Astract. The inary
More informationA simple and fast algorithm for computing exponentials of power series
A simple and fast algorithm for computing exponentials of power series Alin Bostan Algorithms Project, INRIA Paris-Rocquencourt 7815 Le Chesnay Cedex France and Éric Schost ORCCA and Computer Science Department,
More informationThe Mixed Binary Euclid Algorithm
Electronic Notes in Discrete Mathematics 35 (009) 169 176 www.elsevier.com/locate/endm The Mixed Binary Euclid Algorithm Sidi Mohamed Sedjelmaci LIPN CNRS UMR 7030 Université Paris-Nord Av. J.-B. Clément,
More informationU.C. Berkeley CS276: Cryptography Handout 0.1 Luca Trevisan January, 2009. Notes on Algebra
U.C. Berkeley CS276: Cryptography Handout 0.1 Luca Trevisan January, 2009 Notes on Algebra These notes contain as little theory as possible, and most results are stated without proof. Any introductory
More informationFaster deterministic integer factorisation
David Harvey (joint work with Edgar Costa, NYU) University of New South Wales 25th October 2011 The obvious mathematical breakthrough would be the development of an easy way to factor large prime numbers
More informationDivide: Paper & Pencil. Computer Architecture ALU Design : Division and Floating Point. Divide algorithm. DIVIDE HARDWARE Version 1
Divide: Paper & Pencil Computer Architecture ALU Design : Division and Floating Point 1001 Quotient Divisor 1000 1001010 Dividend 1000 10 101 1010 1000 10 (or Modulo result) See how big a number can be
More information8 Primes and Modular Arithmetic
8 Primes and Modular Arithmetic 8.1 Primes and Factors Over two millennia ago already, people all over the world were considering the properties of numbers. One of the simplest concepts is prime numbers.
More informationHigh-Performance Modular Multiplication on the Cell Processor
High-Performance Modular Multiplication on the Cell Processor Joppe W. Bos Laboratory for Cryptologic Algorithms EPFL, Lausanne, Switzerland joppe.bos@epfl.ch 1 / 19 Outline Motivation and previous work
More informationKapitel 1 Multiplication of Long Integers (Faster than Long Multiplication)
Kapitel 1 Multiplication of Long Integers (Faster than Long Multiplication) Arno Eigenwillig und Kurt Mehlhorn An algorithm for multiplication of integers is taught already in primary school: To multiply
More informationTYPES Workshop, 12-13 june 2006 p. 1/22. The Elliptic Curve Factorization method
Ä ÙÖ ÒØ ÓÙ Ð ÙÖ ÒØ ÓÑ Ø ºÒ Ø TYPES Workshop, 12-13 june 2006 p. 1/22 ÄÇÊÁ ÍÒ Ú Ö Ø À ÒÖ ÈÓ Ò Ö Æ ÒÝÁ. The Elliptic Curve Factorization method Outline 1. Introduction 2. Factorization method principle 3.
More informationModélisation et résolutions numérique et symbolique
Modélisation et résolutions numérique et symbolique via les logiciels Maple et Matlab Jeremy Berthomieu Mohab Safey El Din Stef Graillat Mohab.Safey@lip6.fr Outline Previous course: partial review of what
More informationBreaking The Code. Ryan Lowe. Ryan Lowe is currently a Ball State senior with a double major in Computer Science and Mathematics and
Breaking The Code Ryan Lowe Ryan Lowe is currently a Ball State senior with a double major in Computer Science and Mathematics and a minor in Applied Physics. As a sophomore, he took an independent study
More informationNEW DIGITAL SIGNATURE PROTOCOL BASED ON ELLIPTIC CURVES
NEW DIGITAL SIGNATURE PROTOCOL BASED ON ELLIPTIC CURVES Ounasser Abid 1, Jaouad Ettanfouhi 2 and Omar Khadir 3 1,2,3 Laboratory of Mathematics, Cryptography and Mechanics, Department of Mathematics, Fstm,
More informationBasic Algorithms In Computer Algebra
Basic Algorithms In Computer Algebra Kaiserslautern SS 2011 Prof. Dr. Wolfram Decker 2. Mai 2011 References Cohen, H.: A Course in Computational Algebraic Number Theory. Springer, 1993. Cox, D.; Little,
More informationLibrary (versus Language) Based Parallelism in Factoring: Experiments in MPI. Dr. Michael Alexander Dr. Sonja Sewera.
Library (versus Language) Based Parallelism in Factoring: Experiments in MPI Dr. Michael Alexander Dr. Sonja Sewera Talk 2007-10-19 Slide 1 of 20 Primes Definitions Prime: A whole number n is a prime number
More informationFAST FOURIER TRANSFORM ALGORITHMS WITH APPLICATIONS. A Dissertation Presented to the Graduate School of Clemson University
FAST FOURIER TRANSFORM ALGORITHMS WITH APPLICATIONS A Dissertation Presented to the Graduate School of Clemson University In Partial Fulfillment of the Requirements for the Degree Doctor of Philosophy
More informationDiscrete Mathematics, Chapter 4: Number Theory and Cryptography
Discrete Mathematics, Chapter 4: Number Theory and Cryptography Richard Mayr University of Edinburgh, UK Richard Mayr (University of Edinburgh, UK) Discrete Mathematics. Chapter 4 1 / 35 Outline 1 Divisibility
More informationFaster polynomial multiplication via multipoint Kronecker substitution
Faster polynomial multiplication via multipoint Kronecker substitution 5th February 2009 Kronecker substitution KS = an algorithm for multiplying polynomials in Z[x]. Example: f = 41x 3 + 49x 2 + 38x +
More informationComputation of 2700 billion decimal digits of Pi using a Desktop Computer
Computation of 2700 billion decimal digits of Pi using a Desktop Computer Fabrice Bellard Feb 11, 2010 (4th revision) This article describes some of the methods used to get the world record of the computation
More informationDetermining the Optimal Combination of Trial Division and Fermat s Factorization Method
Determining the Optimal Combination of Trial Division and Fermat s Factorization Method Joseph C. Woodson Home School P. O. Box 55005 Tulsa, OK 74155 Abstract The process of finding the prime factorization
More informationThe Euclidean Algorithm
The Euclidean Algorithm A METHOD FOR FINDING THE GREATEST COMMON DIVISOR FOR TWO LARGE NUMBERS To be successful using this method you have got to know how to divide. If this is something that you have
More informationInteger Factorization using the Quadratic Sieve
Integer Factorization using the Quadratic Sieve Chad Seibert* Division of Science and Mathematics University of Minnesota, Morris Morris, MN 56567 seib0060@morris.umn.edu March 16, 2011 Abstract We give
More informationD. J. Bernstein University of Illinois at Chicago. See online version of paper, particularly for bibliography: http://cr.yp.to /papers.
The tangent FFT D. J. Bernstein University of Illinois at Chicago See online version of paper, particularly for bibliography: http://cr.yp.to /papers.html#tangentfft Algebraic algorithms f 0 f 1 g 0 g
More informationFaster Cryptographic Key Exchange on Hyperelliptic Curves
Faster Cryptographic Key Exchange on Hyperelliptic Curves No Author Given No Institute Given Abstract. We present a key exchange procedure based on divisor arithmetic for the real model of a hyperelliptic
More informationStudy of algorithms for factoring integers and computing discrete logarithms
Study of algorithms for factoring integers and computing discrete logarithms First Indo-French Workshop on Cryptography and Related Topics (IFW 2007) June 11 13, 2007 Paris, France Dr. Abhijit Das Department
More informationThe last three chapters introduced three major proof techniques: direct,
CHAPTER 7 Proving Non-Conditional Statements The last three chapters introduced three major proof techniques: direct, contrapositive and contradiction. These three techniques are used to prove statements
More informationIntroduction to Programming (in C++) Loops. Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC
Introduction to Programming (in C++) Loops Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC Example Assume the following specification: Input: read a number N > 0 Output:
More informationExample. Introduction to Programming (in C++) Loops. The while statement. Write the numbers 1 N. Assume the following specification:
Example Introduction to Programming (in C++) Loops Assume the following specification: Input: read a number N > 0 Output: write the sequence 1 2 3 N (one number per line) Jordi Cortadella, Ricard Gavaldà,
More informationA simple and fast online power series multiplication and its analysis
A simple and fast online power series multiplication and its analysis Romain Lebreton LIRMM UMR 5506 CNRS Université Montpellier II Montpellier, France Email: lebreton@lirmm.fr Éric Schost Computer Science
More informationOn the complexity of some computational problems in the Turing model
On the complexity of some computational problems in the Turing model Claus Diem November 18, 2013 Abstract Algorithms for concrete problems are usually described and analyzed in some random access machine
More informationPrinciples of Public Key Cryptography. Applications of Public Key Cryptography. Security in Public Key Algorithms
Principles of Public Key Cryptography Chapter : Security Techniques Background Secret Key Cryptography Public Key Cryptography Hash Functions Authentication Chapter : Security on Network and Transport
More informationa 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2.
Chapter 1 LINEAR EQUATIONS 1.1 Introduction to linear equations A linear equation in n unknowns x 1, x,, x n is an equation of the form a 1 x 1 + a x + + a n x n = b, where a 1, a,..., a n, b are given
More informationPublic Key Cryptography: RSA and Lots of Number Theory
Public Key Cryptography: RSA and Lots of Number Theory Public vs. Private-Key Cryptography We have just discussed traditional symmetric cryptography: Uses a single key shared between sender and receiver
More informationCHAPTER 5. Number Theory. 1. Integers and Division. Discussion
CHAPTER 5 Number Theory 1. Integers and Division 1.1. Divisibility. Definition 1.1.1. Given two integers a and b we say a divides b if there is an integer c such that b = ac. If a divides b, we write a
More informationRSA and Primality Testing
and Primality Testing Joan Boyar, IMADA, University of Southern Denmark Studieretningsprojekter 2010 1 / 81 Correctness of cryptography cryptography Introduction to number theory Correctness of with 2
More informationV55.0106 Quantitative Reasoning: Computers, Number Theory and Cryptography
V55.0106 Quantitative Reasoning: Computers, Number Theory and Cryptography 3 Congruence Congruences are an important and useful tool for the study of divisibility. As we shall see, they are also critical
More informationPROPERTIES OF ELLIPTIC CURVES AND THEIR USE IN FACTORING LARGE NUMBERS
PROPERTIES OF ELLIPTIC CURVES AND THEIR USE IN FACTORING LARGE NUMBERS A ver important set of curves which has received considerabl attention in recent ears in connection with the factoring of large numbers
More informationECE 842 Report Implementation of Elliptic Curve Cryptography
ECE 842 Report Implementation of Elliptic Curve Cryptography Wei-Yang Lin December 15, 2004 Abstract The aim of this report is to illustrate the issues in implementing a practical elliptic curve cryptographic
More informationLecture 3: Finding integer solutions to systems of linear equations
Lecture 3: Finding integer solutions to systems of linear equations Algorithmic Number Theory (Fall 2014) Rutgers University Swastik Kopparty Scribe: Abhishek Bhrushundi 1 Overview The goal of this lecture
More informationHYPERELLIPTIC CURVE METHOD FOR FACTORING INTEGERS. 1. Thoery and Algorithm
HYPERELLIPTIC CURVE METHOD FOR FACTORING INTEGERS WENHAN WANG 1. Thoery and Algorithm The idea of the method using hyperelliptic curves to factor integers is similar to the elliptic curve factoring method.
More informationSection 4.2: The Division Algorithm and Greatest Common Divisors
Section 4.2: The Division Algorithm and Greatest Common Divisors The Division Algorithm The Division Algorithm is merely long division restated as an equation. For example, the division 29 r. 20 32 948
More informationContinued Fractions and the Euclidean Algorithm
Continued Fractions and the Euclidean Algorithm Lecture notes prepared for MATH 326, Spring 997 Department of Mathematics and Statistics University at Albany William F Hammond Table of Contents Introduction
More informationStupid Divisibility Tricks
Stupid Divisibility Tricks 101 Ways to Stupefy Your Friends Appeared in Math Horizons November, 2006 Marc Renault Shippensburg University Mathematics Department 1871 Old Main Road Shippensburg, PA 17013
More informationLecture 13 - Basic Number Theory.
Lecture 13 - Basic Number Theory. Boaz Barak March 22, 2010 Divisibility and primes Unless mentioned otherwise throughout this lecture all numbers are non-negative integers. We say that A divides B, denoted
More informationNumber Theory and Cryptography using PARI/GP
Number Theory and Cryptography using Minh Van Nguyen nguyenminh2@gmail.com 25 November 2008 This article uses to study elementary number theory and the RSA public key cryptosystem. Various commands will
More informationSome facts about polynomials modulo m (Full proof of the Fingerprinting Theorem)
Some facts about polynomials modulo m (Full proof of the Fingerprinting Theorem) In order to understand the details of the Fingerprinting Theorem on fingerprints of different texts from Chapter 19 of the
More informationBinary Division. Decimal Division. Hardware for Binary Division. Simple 16-bit Divider Circuit
Decimal Division Remember 4th grade long division? 43 // quotient 12 521 // divisor dividend -480 41-36 5 // remainder Shift divisor left (multiply by 10) until MSB lines up with dividend s Repeat until
More informationMATH 537 (Number Theory) FALL 2016 TENTATIVE SYLLABUS
MATH 537 (Number Theory) FALL 2016 TENTATIVE SYLLABUS Class Meetings: MW 2:00-3:15 pm in Physics 144, September 7 to December 14 [Thanksgiving break November 23 27; final exam December 21] Instructor:
More informationArithmetic algorithms for cryptology 5 October 2015, Paris. Sieves. Razvan Barbulescu CNRS and IMJ-PRG. R. Barbulescu Sieves 0 / 28
Arithmetic algorithms for cryptology 5 October 2015, Paris Sieves Razvan Barbulescu CNRS and IMJ-PRG R. Barbulescu Sieves 0 / 28 Starting point Notations q prime g a generator of (F q ) X a (secret) integer
More informationElementary Number Theory and Methods of Proof. CSE 215, Foundations of Computer Science Stony Brook University http://www.cs.stonybrook.
Elementary Number Theory and Methods of Proof CSE 215, Foundations of Computer Science Stony Brook University http://www.cs.stonybrook.edu/~cse215 1 Number theory Properties: 2 Properties of integers (whole
More informationThe Piranha computer algebra system. introduction and implementation details
: introduction and implementation details Advanced Concepts Team European Space Agency (ESTEC) Course on Differential Equations and Computer Algebra Estella, Spain October 29-30, 2010 Outline A Brief Overview
More informationFactorization Methods: Very Quick Overview
Factorization Methods: Very Quick Overview Yuval Filmus October 17, 2012 1 Introduction In this lecture we introduce modern factorization methods. We will assume several facts from analytic number theory.
More informationThe Quadratic Sieve Factoring Algorithm
The Quadratic Sieve Factoring Algorithm Eric Landquist MATH 488: Cryptographic Algorithms December 14, 2001 1 Introduction Mathematicians have been attempting to find better and faster ways to factor composite
More informationThe BBP Algorithm for Pi
The BBP Algorithm for Pi David H. Bailey September 17, 2006 1. Introduction The Bailey-Borwein-Plouffe (BBP) algorithm for π is based on the BBP formula for π, which was discovered in 1995 and published
More informationFPGA Implementation of an Extended Binary GCD Algorithm for Systolic Reduction of Rational Numbers
FPGA Implementation of an Extended Binary GCD Algorithm for Systolic Reduction of Rational Numbers Bogdan Mătăsaru and Tudor Jebelean RISC-Linz, A 4040 Linz, Austria email: bmatasar@risc.uni-linz.ac.at
More informationNumber Systems and Radix Conversion
Number Systems and Radix Conversion Sanjay Rajopadhye, Colorado State University 1 Introduction These notes for CS 270 describe polynomial number systems. The material is not in the textbook, but will
More informationAn Overview of Integer Factoring Algorithms. The Problem
An Overview of Integer Factoring Algorithms Manindra Agrawal IITK / NUS The Problem Given an integer n, find all its prime divisors as efficiently as possible. 1 A Difficult Problem No efficient algorithm
More informationRN-coding of Numbers: New Insights and Some Applications
RN-coding of Numbers: New Insights and Some Applications Peter Kornerup Dept. of Mathematics and Computer Science SDU, Odense, Denmark & Jean-Michel Muller LIP/Arénaire (CRNS-ENS Lyon-INRIA-UCBL) Lyon,
More informationThe van Hoeij Algorithm for Factoring Polynomials
The van Hoeij Algorithm for Factoring Polynomials Jürgen Klüners Abstract In this survey we report about a new algorithm for factoring polynomials due to Mark van Hoeij. The main idea is that the combinatorial
More informationThe Mathematics of the RSA Public-Key Cryptosystem
The Mathematics of the RSA Public-Key Cryptosystem Burt Kaliski RSA Laboratories ABOUT THE AUTHOR: Dr Burt Kaliski is a computer scientist whose involvement with the security industry has been through
More informationFactoring Polynomials
Factoring Polynomials Sue Geller June 19, 2006 Factoring polynomials over the rational numbers, real numbers, and complex numbers has long been a standard topic of high school algebra. With the advent
More informationFactoring & Primality
Factoring & Primality Lecturer: Dimitris Papadopoulos In this lecture we will discuss the problem of integer factorization and primality testing, two problems that have been the focus of a great amount
More informationPartial Fractions. Combining fractions over a common denominator is a familiar operation from algebra:
Partial Fractions Combining fractions over a common denominator is a familiar operation from algebra: From the standpoint of integration, the left side of Equation 1 would be much easier to work with than
More informationPOLYNOMIAL FUNCTIONS
POLYNOMIAL FUNCTIONS Polynomial Division.. 314 The Rational Zero Test.....317 Descarte s Rule of Signs... 319 The Remainder Theorem.....31 Finding all Zeros of a Polynomial Function.......33 Writing a
More informationPrimality - Factorization
Primality - Factorization Christophe Ritzenthaler November 9, 2009 1 Prime and factorization Definition 1.1. An integer p > 1 is called a prime number (nombre premier) if it has only 1 and p as divisors.
More informationLecture 8: Binary Multiplication & Division
Lecture 8: Binary Multiplication & Division Today s topics: Addition/Subtraction Multiplication Division Reminder: get started early on assignment 3 1 2 s Complement Signed Numbers two = 0 ten 0001 two
More informationFactoring Algorithms
Institutionen för Informationsteknologi Lunds Tekniska Högskola Department of Information Technology Lund University Cryptology - Project 1 Factoring Algorithms The purpose of this project is to understand
More informationRSA Question 2. Bob thinks that p and q are primes but p isn t. Then, Bob thinks Φ Bob :=(p-1)(q-1) = φ(n). Is this true?
RSA Question 2 Bob thinks that p and q are primes but p isn t. Then, Bob thinks Φ Bob :=(p-1)(q-1) = φ(n). Is this true? Bob chooses a random e (1 < e < Φ Bob ) such that gcd(e,φ Bob )=1. Then, d = e -1
More informationMath Review. for the Quantitative Reasoning Measure of the GRE revised General Test
Math Review for the Quantitative Reasoning Measure of the GRE revised General Test www.ets.org Overview This Math Review will familiarize you with the mathematical skills and concepts that are important
More informationCS 103X: Discrete Structures Homework Assignment 3 Solutions
CS 103X: Discrete Structures Homework Assignment 3 s Exercise 1 (20 points). On well-ordering and induction: (a) Prove the induction principle from the well-ordering principle. (b) Prove the well-ordering
More informationA New Euclidean Division Algorithm for Residue Number Systems
A New Euclidean Division Algorithm for Residue Number Systems Jean-Claude Bajard and Laurent Stéphane Didier Laboratoire d Informatique de Marseille CMI, Université de Provence, 39 rue Joliot-Curie, 3453
More informationCryptographically Secure Pseudo-Random Bit Generator for RFID Tags
Cryptographically Secure Pseudo-Random Bit Generator for RFID Tags Pedro Peris-Lopez Security Lab Faculty of EEMCS Delft University of Technology Delft, The Netherlands P.PerisLopez@tudelft.nl Jan C.A.
More informationA NEW REPRESENTATION OF THE RATIONAL NUMBERS FOR FAST EASY ARITHMETIC. E. C. R. HEHNER and R. N. S. HORSPOOL
A NEW REPRESENTATION OF THE RATIONAL NUMBERS FOR FAST EASY ARITHMETIC E. C. R. HEHNER and R. N. S. HORSPOOL Abstract. A novel system for representing the rational numbers based on Hensel's p-adic arithmetic
More informationShor s algorithm and secret sharing
Shor s algorithm and secret sharing Libor Nentvich: QC 23 April 2007: Shor s algorithm and secret sharing 1/41 Goals: 1 To explain why the factoring is important. 2 To describe the oldest and most successful
More informationZero: If P is a polynomial and if c is a number such that P (c) = 0 then c is a zero of P.
MATH 11011 FINDING REAL ZEROS KSU OF A POLYNOMIAL Definitions: Polynomial: is a function of the form P (x) = a n x n + a n 1 x n 1 + + a x + a 1 x + a 0. The numbers a n, a n 1,..., a 1, a 0 are called
More informationHomework until Test #2
MATH31: Number Theory Homework until Test # Philipp BRAUN Section 3.1 page 43, 1. It has been conjectured that there are infinitely many primes of the form n. Exhibit five such primes. Solution. Five such
More information-4- Algorithm Fast LU Decomposition
Appears in SIGSAM Bulletin 22(2):4-49 (April 988). Analysis of the Binary Complexity of Asymptotically Fast Algorithms for Linear System Solving* Introduction Brent Gregory and Erich Kaltofen Department
More informationSpeeding up XTR. P.O.Box 513, 5600 MB Eindhoven, The Netherlands stam@win.tue.nl
Speeding up XTR Martijn Stam 1, and Arjen K. Lenstra 2 1 Technische Universiteit Eindhoven P.O.Box 513, 5600 MB Eindhoven, The Netherlands stam@win.tue.nl 2 Citibank, N.A. and Technische Universiteit Eindhoven
More informationThe finite field with 2 elements The simplest finite field is
The finite field with 2 elements The simplest finite field is GF (2) = F 2 = {0, 1} = Z/2 It has addition and multiplication + and defined to be 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 0 0 = 0 0 1 = 0
More informationCopy in your notebook: Add an example of each term with the symbols used in algebra 2 if there are any.
Algebra 2 - Chapter Prerequisites Vocabulary Copy in your notebook: Add an example of each term with the symbols used in algebra 2 if there are any. P1 p. 1 1. counting(natural) numbers - {1,2,3,4,...}
More information11 Ideals. 11.1 Revisiting Z
11 Ideals The presentation here is somewhat different than the text. In particular, the sections do not match up. We have seen issues with the failure of unique factorization already, e.g., Z[ 5] = O Q(
More informationFaster polynomial multiplication over nite elds
Faster polynomial multiplication over nite elds David Harvey School of Mathematics and Statistics University of New South Wales Sydney NSW 2052 Australia Email: d.harvey@unsw.edu.au Joris van der Hoeven
More informationRuntime and Implementation of Factoring Algorithms: A Comparison
Runtime and Implementation of Factoring Algorithms: A Comparison Justin Moore CSC290 Cryptology December 20, 2003 Abstract Factoring composite numbers is not an easy task. It is classified as a hard algorithm,
More information8 Square matrices continued: Determinants
8 Square matrices continued: Determinants 8. Introduction Determinants give us important information about square matrices, and, as we ll soon see, are essential for the computation of eigenvalues. You
More information9. POLYNOMIALS. Example 1: The expression a(x) = x 3 4x 2 + 7x 11 is a polynomial in x. The coefficients of a(x) are the numbers 1, 4, 7, 11.
9. POLYNOMIALS 9.1. Definition of a Polynomial A polynomial is an expression of the form: a(x) = a n x n + a n-1 x n-1 +... + a 1 x + a 0. The symbol x is called an indeterminate and simply plays the role
More informationTest1. Due Friday, March 13, 2015.
1 Abstract Algebra Professor M. Zuker Test1. Due Friday, March 13, 2015. 1. Euclidean algorithm and related. (a) Suppose that a and b are two positive integers and that gcd(a, b) = d. Find all solutions
More informationEMBEDDING DEGREE OF HYPERELLIPTIC CURVES WITH COMPLEX MULTIPLICATION
EMBEDDING DEGREE OF HYPERELLIPTIC CURVES WITH COMPLEX MULTIPLICATION CHRISTIAN ROBENHAGEN RAVNSHØJ Abstract. Consider the Jacobian of a genus two curve defined over a finite field and with complex multiplication.
More informationIMPLEMENTATION AND PERFORMANCE ANALYSIS OF ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM
NABI ET AL: IMPLEMENTATION AND PERFORMANCE ANALYSIS OF ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM 28 IMPLEMENTATION AND PERFORMANCE ANALYSIS OF ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM Mohammad Noor
More informationCS321. Introduction to Numerical Methods
CS3 Introduction to Numerical Methods Lecture Number Representations and Errors Professor Jun Zhang Department of Computer Science University of Kentucky Lexington, KY 40506-0633 August 7, 05 Number in
More informationNumber Theory and the RSA Public Key Cryptosystem
Number Theory and the RSA Public Key Cryptosystem Minh Van Nguyen nguyenminh2@gmail.com 05 November 2008 This tutorial uses to study elementary number theory and the RSA public key cryptosystem. A number
More informationTwo Integer Factorization Methods
Two Integer Factorization Methods Christopher Koch April 22, 2014 Abstract Integer factorization methods are algorithms that find the prime divisors of any positive integer. Besides studying trial division
More informationSTUDY ON ELLIPTIC AND HYPERELLIPTIC CURVE METHODS FOR INTEGER FACTORIZATION. Takayuki Yato. A Senior Thesis. Submitted to
STUDY ON ELLIPTIC AND HYPERELLIPTIC CURVE METHODS FOR INTEGER FACTORIZATION by Takayuki Yato A Senior Thesis Submitted to Department of Information Science Faculty of Science The University of Tokyo on
More informationPYTHAGOREAN TRIPLES KEITH CONRAD
PYTHAGOREAN TRIPLES KEITH CONRAD 1. Introduction A Pythagorean triple is a triple of positive integers (a, b, c) where a + b = c. Examples include (3, 4, 5), (5, 1, 13), and (8, 15, 17). Below is an ancient
More informationHigh-Speed RSA Implementation C etin Kaya Koc Koc@ece.orst.edu RSA Laboratories RSA Data Security, Inc. 100 Marine Parkway, Suite 500 Redwood City, CA 94065-1031 Copyright c RSA Laboratories Version 2.0
More informationA SOFTWARE COMPARISON OF RSA AND ECC
International Journal Of Computer Science And Applications Vol. 2, No. 1, April / May 29 ISSN: 974-13 A SOFTWARE COMPARISON OF RSA AND ECC Vivek B. Kute Lecturer. CSE Department, SVPCET, Nagpur 9975549138
More informationJUST THE MATHS UNIT NUMBER 1.8. ALGEBRA 8 (Polynomials) A.J.Hobson
JUST THE MATHS UNIT NUMBER 1.8 ALGEBRA 8 (Polynomials) by A.J.Hobson 1.8.1 The factor theorem 1.8.2 Application to quadratic and cubic expressions 1.8.3 Cubic equations 1.8.4 Long division of polynomials
More informationNumber Theory. Proof. Suppose otherwise. Then there would be a finite number n of primes, which we may
Number Theory Divisibility and Primes Definition. If a and b are integers and there is some integer c such that a = b c, then we say that b divides a or is a factor or divisor of a and write b a. Definition
More informationALGORITHMS AND FLOWCHARTS
ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: Problem solving phase produce an ordered sequence of steps that describe solution of problem this sequence of steps
More informationA Study on the Necessary Conditions for Odd Perfect Numbers
A Study on the Necessary Conditions for Odd Perfect Numbers Ben Stevens U63750064 Abstract A collection of all of the known necessary conditions for an odd perfect number to exist, along with brief descriptions
More informationPublic Key Cryptography. Performance Comparison and Benchmarking
Public Key Cryptography Performance Comparison and Benchmarking Tanja Lange Department of Mathematics Technical University of Denmark tanja@hyperelliptic.org 28.08.2006 Tanja Lange Benchmarking p. 1 What
More information