Modular Arithmetic and Primality
Modular Arithmetic and Primality Modular Arithmetic and Primality
function multiply(x,y) Input: Two n-bit integers x and y, where y ≥ 0 Output: Their product if y = 0: return 0 z = multiply(x, floor(y/2)) if y is even: return 2z else: return x+2z Is it better than classical multiplication CS 312 - Complexity Examples - Arithmetic and RSA 14
function multiply(x,y) Input: Two n-bit integers x and y, where y ≥ 0 Output: Their product if y = 0: return 0 z = multiply(x, floor(y/2)) if y is even: return 2z else: return x+2z Is it better than classical multiplication Don’t need to know all the times tables, just need to double and half, which could be an advantage - especially easy in binary Complexity – n function calls where n is the length in bits of the binary y (n = log 2 y) – Each call has how many n-bit adds – Thus big-OH complexity is CS 312 - Complexity Examples - Arithmetic and RSA 15
- Page 1 and 2: Addition Multiplication Bigger Ex
- Page 3 and 4: Addition of two numbers of length n
- Page 5 and 6: Addition of two numbers of length n
- Page 7 and 8: Isn’t addition in a computer just
- Page 9 and 10: x y 15 11 At each step double x and
- Page 11 and 12: ⎧⎧ 2(x⋅ ⎣⎣y/2⎦⎦) if y
- Page 13: x y y binary # of x’s 15 8 0 1 30
- Page 17 and 18: Is multiplication O(n 2 ) - Could w
- Page 19 and 20: Assume we start with numbers Mod N
- Page 21 and 22: There is a faster algorithm - Rathe
- Page 23 and 24: ⎧⎧ (x ⎣⎣y/2⎦⎦ ) 2 if y
- Page 25 and 26: x y y binary power of x z return va
- Page 27 and 28: function modexp (x, y, N) //Iterati
- Page 29 and 30: function primality(N) Input: Positi
- Page 31 and 32: How often does a composite number c
- Page 33 and 34: Primality testing is efficient! - O
function multiply(x,y)<br />
Input: Two n-bit integers x <strong>and</strong> y, where y ≥ 0<br />
Output: Their product<br />
if y = 0: return 0<br />
z = multiply(x, floor(y/2))<br />
if y is even: return 2z<br />
else: return x+2z<br />
Is it better than classical multiplication<br />
CS 312 - Complexity Examples - <strong>Arithmetic</strong> <strong>and</strong> RSA 14