COT 3100 Applications of Discrete Structures Dr. Michael P. Frank

Similar documents
Discrete Mathematics GCD, LCM, RSA Algorithm

2.5 정수와알고리즘 (Integers and Algorithms)

Base-b representations of integers. (b 진법표현 ) Algorithms for computer arithmetic: Euclidean algorithm for finding GCD s.

ICS141: Discrete Mathematics for Computer Science I

3 The fundamentals: Algorithms, the integers, and matrices

4 Number Theory and Cryptography

With Question/Answer Animations. Chapter 4

The set of integers will be denoted by Z = {, -3, -2, -1, 0, 1, 2, 3, 4, }

Math.3336: Discrete Mathematics. Primes and Greatest Common Divisors

Notes. Number Theory: Applications. Notes. Number Theory: Applications. Notes. Hash Functions I

Applied Cryptography and Computer Security CSE 664 Spring 2017

Integers and Division

Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices. Integers & Algorithms (2.5)

Lecture 5: Arithmetic Modulo m, Primes and Greatest Common Divisors Lecturer: Lale Özkahya

Number Theory: Applications. Number Theory Applications. Hash Functions II. Hash Functions III. Pseudorandom Numbers

Sets. We discuss an informal (naive) set theory as needed in Computer Science. It was introduced by G. Cantor in the second half of the nineteenth

Slides by Christopher M. Bourke Instructor: Berthe Y. Choueiry. Spring 2006

cse 311: foundations of computing Fall 2015 Lecture 12: Primes, GCD, applications

ECE 646 Lecture 5. Mathematical Background: Modular Arithmetic

CS March 17, 2009

Numbers. Çetin Kaya Koç Winter / 18

CPSC 467: Cryptography and Computer Security

4. Number Theory (Part 2)

Mat Week 8. Week 8. gcd() Mat Bases. Integers & Computers. Linear Combos. Week 8. Induction Proofs. Fall 2013

Student Responsibilities Week 8. Mat Section 3.6 Integers and Algorithms. Algorithm to Find gcd()

Chapter 5. Number Theory. 5.1 Base b representations

Number theory (Chapter 4)

Ch 4.2 Divisibility Properties

Math.3336: Discrete Mathematics. Primes and Greatest Common Divisors

Part I, Number Systems. CS131 Mathematics for Computer Scientists II Note 1 INTEGERS

Section Summary. Division Division Algorithm Modular Arithmetic

Introduction to Number Theory. The study of the integers

Basic elements of number theory

Basic elements of number theory

Number Theory and Group Theoryfor Public-Key Cryptography

CSE 311 Lecture 13: Primes and GCD. Emina Torlak and Kevin Zatloukal

Number Theory. CSS322: Security and Cryptography. Sirindhorn International Institute of Technology Thammasat University CSS322. Number Theory.

Public Key Cryptography

CPSC 467b: Cryptography and Computer Security

CSE 311: Foundations of Computing. Lecture 12: Two s Complement, Primes, GCD

a the relation arb is defined if and only if = 2 k, k

cse 311: foundations of computing Spring 2015 Lecture 12: Primes, GCD, applications

Course 2BA1: Trinity 2006 Section 9: Introduction to Number Theory and Cryptography

INTEGERS. In this section we aim to show the following: Goal. Every natural number can be written uniquely as a product of primes.

W3203 Discrete Mathema1cs. Number Theory. Spring 2015 Instructor: Ilia Vovsha. hcp://

Proofs. Methods of Proof Divisibility Floor and Ceiling Contradiction & Contrapositive Euclidean Algorithm. Reading (Epp s textbook)

Introduction to Information Security

2 Arithmetic. 2.1 Greatest common divisors. This chapter is about properties of the integers Z = {..., 2, 1, 0, 1, 2,...}.

Number Theory and Cryptography

MATH 433 Applied Algebra Lecture 4: Modular arithmetic (continued). Linear congruences.

Addition. Ch1 - Algorithms with numbers. Multiplication. al-khwārizmī. al-khwārizmī. Division 53+35=88. Cost? (n number of bits) 13x11=143. Cost?

CS 5319 Advanced Discrete Structure. Lecture 9: Introduction to Number Theory II

CSE 20 DISCRETE MATH. Fall

Introduction to Number Theory

Topics in Cryptography. Lecture 5: Basic Number Theory

CSE 20: Discrete Mathematics

Chapter 8 Public-key Cryptography and Digital Signatures

CS483 Design and Analysis of Algorithms

CIS 6930/4930 Computer and Network Security. Topic 5.1 Basic Number Theory -- Foundation of Public Key Cryptography

Course MA2C02, Hilary Term 2013 Section 9: Introduction to Number Theory and Cryptography

ECE 646 Lecture 5. Motivation: Mathematical Background: Modular Arithmetic. Public-key ciphers. RSA keys. RSA as a trap-door one-way function

Lecture 2. The Euclidean Algorithm and Numbers in Other Bases

Wednesday, February 21. Today we will begin Course Notes Chapter 5 (Number Theory).

CISC-102 Fall 2017 Week 6

MATH Dr. Halimah Alshehri Dr. Halimah Alshehri

cse547, math547 DISCRETE MATHEMATICS Professor Anita Wasilewska

Algorithms CMSC Basic algorithms in Number Theory: Euclid s algorithm and multiplicative inverse

Remainders. We learned how to multiply and divide in elementary

Outline. Some Review: Divisors. Common Divisors. Primes and Factors. b divides a (or b is a divisor of a) if a = mb for some m

Outline. AIT 682: Network and Systems Security. GCD and Euclid s Algorithm Modulo Arithmetic Modular Exponentiation Discrete Logarithms

Congruence Classes. Number Theory Essentials. Modular Arithmetic Systems

Senior Math Circles Cryptography and Number Theory Week 2

Number theory (Chapter 4)

Number Theory & Modern Cryptography

OWO Lecture: Modular Arithmetic with Algorithmic Applications

CSC 474 Network Security. Outline. GCD and Euclid s Algorithm. GCD and Euclid s Algorithm Modulo Arithmetic Modular Exponentiation Discrete Logarithms

Lecture 3.1: Public Key Cryptography I

Encryption: The RSA Public Key Cipher

2 Elementary number theory

CS1800 Discrete Structures Fall 2017 October, CS1800 Discrete Structures Midterm Version A

Homework #2 solutions Due: June 15, 2012

This is a recursive algorithm. The procedure is guaranteed to terminate, since the second argument decreases each time.

Exercises Exercises. 2. Determine whether each of these integers is prime. a) 21. b) 29. c) 71. d) 97. e) 111. f) 143. a) 19. b) 27. c) 93.

Lecture 6: Introducing Complexity

MATH 501 Discrete Mathematics. Lecture 6: Number theory. German University Cairo, Department of Media Engineering and Technology.

Lecture Notes. Advanced Discrete Structures COT S

The Euclidean Algorithm and Multiplicative Inverses

18 Divisibility. and 0 r < d. Lemma Let n,d Z with d 0. If n = qd+r = q d+r with 0 r,r < d, then q = q and r = r.

Mathematical Foundations of Public-Key Cryptography

Some Facts from Number Theory

COMP239: Mathematics for Computer Science II. Prof. Chadi Assi EV7.635

CIS 551 / TCOM 401 Computer and Network Security

MATH 2112/CSCI 2112, Discrete Structures I Winter 2007 Toby Kenney Homework Sheet 5 Hints & Model Solutions

Number Theory and Divisibility

2.3 In modular arithmetic, all arithmetic operations are performed modulo some integer.

CISC-102 Winter 2016 Lecture 11 Greatest Common Divisor

Conversions between Decimal and Binary

Chapter 4 Finite Fields

Chapter 3 Basic Number Theory

Transcription:

University of Florida Dept. of Computer & Information Science & Engineering COT 3100 Applications of Discrete Structures Dr. Michael P. Frank Slides for a Course Based on the Text Discrete Mathematics & Its Applications (5 th Edition) by Kenneth H. Rosen 2004/3/2 (c)2001-2003, Michael P. Frank 1 Module #8: Basic Number Theory Rosen 5 th ed., 2.4-2.62.6 ~31 slides, ~2 lectures 2004/3/2 (c)2001-2003, Michael P. Frank 2

2.4: The Integers and Division Of course you already know what the integers are, and what division is But: There are some specific notations, terminology, and theorems associated with these concepts which you may not know. These form the basics of number theory. Vital in many important algorithms today (hash functions, cryptography, digital signatures). 2004/3/2 (c)2001-2003, Michael P. Frank 3 Divides, Factor, Multiple Let a,b Z with a 0. a b a divides b : c Z: b=ac There is an integer c such that c times a equals b. Example: 3 12 True,, but 3 7 False. Iff a divides b,, then we say a is a factor or a divisor of b,, and b is a multiple of a. b is even : 2 2 b. Is 0 even? Is - 4? 2004/3/2 (c)2001-2003, Michael P. Frank 4

Facts re: the Divides Relation a,b,c Z: 1. a 0 2. (a b a c) a (b + c) 3. a b a bc 4. (a b b c) a c Proof of (2): a b means there is an s such that b=as,, and a c means that there is a t such that c=at,, so b+c = as+atat = a(s+t), so a ( (b+c) also. 2004/3/2 (c)2001-2003, Michael P. Frank 5 More Detailed Version of Proof Show a,b,c Z: (a b a c) a (b + c). Let a, b, c be any integers such that a b and a c,, and show that a (b + c). By defn. of, we know s: b=as,, and t: c=at.. Let s, t,, be such integers. Then b+c = as + at = a(s+t), so u: b+c=au,, namely u=s+t. Thus a ( (b+c). 2004/3/2 (c)2001-2003, Michael P. Frank 6

Prime Numbers An integer p>1 is prime iff it is not the product of any two integers greater than 1: p>1 a,b N: a>1, b>1, ab=p. The only positive factors of a prime p are 1 and p itself. Some primes: 2,3,5,7,11,13... Non-prime integers greater than 1 are called composite,, because they can be composed by multiplying two integers greater than 1. 2004/3/2 (c)2001-2003, Michael P. Frank 7 Review of 2.4 So Far a b a divides b c Z: b=ac p is prime p>1 a N: (1 < a < p a p) Terms factor, divisor, multiple, composite. 2004/3/2 (c)2001-2003, Michael P. Frank 8

Fundamental Theorem of Arithmetic Every positive integer has a unique representation as the product of a non- decreasing series of zero or more primes. 1 = (product of empty series) = 1 2 = 2 (product of series with one element 2) 4 = 2 2 2 (product of series 2,2) 2000 = 2 2 2 2 5 5 5; 5; 2001 = 3 23 29; 29; 2002 = 2 7 11 13; 13; 2003 = 2003 2004/3/2 (c)2001-2003, Michael P. Frank 9 An Application of Primes When you visit a secure web site (https: address, indicated by padlock icon in IE, key icon in Netscape), the browser and web site may be using a technology called RSA encryption. This public-key cryptography scheme involves exchanging public keys containing the product pq of two random large primes p and q (a private key) ) which must be kept secret by a given party. So, the security of your day-to-day web transactions depends critically on the fact that all known factoring algorithms are intractable! Note: There is a tractable quantum algorithm for factoring; so if we can ever build big quantum computers, RSA will be insecure. 2004/3/2 (c)2001-2003, Michael P. Frank 10

The Division Algorithm Really just a theorem,, not an algorithm The name is used here for historical reasons. For any integer dividend a and divisor d 0,, there is a unique integer quotient q and remainder r N a = dq + r and 0 r < (such that) d d. a,d Z, d>0:!q,r Z: : 0 r< < d d, a=dq+r. We can find q and r by: q= a/d, r=a qd. 2004/3/2 (c)2001-2003, Michael P. Frank 11 Greatest Common Divisor The greatest common divisor gcd(a,b) of integers a,b (not both 0) is the largest (most positive) integer d that is a divisor both of a and of b. d = gcd(a,b) = max(d: d a d b) d a d b e Z, (e a e b) d =e Example: gcd(24,36)=? Positive common divisors: 1,2,3,4,6,12 Greatest is 12. 2004/3/2 (c)2001-2003, Michael P. Frank 12

GCD shortcut If the prime factorizations are written as a a a a p 1 p n 2 2 b b bn = 1 K pn and b = p1 1 p2 2 K pn, then the GCD is given by: gcd( a, b) = p Example: min( a, b1 ) 1 min( a 2, b ) K p a=84=2 2 3 7 = 22 31 7 1 b=96=2 2 2 2 2 3 = 25 31 7 0 gcd(84,96) = 22 31 7 0 = 2 2 3 = 12. p min( a n, b ) n 1 2 2 n. 2004/3/2 (c)2001-2003, Michael P. Frank 13 Relative Primality Integers a and b are called relatively prime or coprime iff their gcd = 1. Example: Neither 21 and 10 are prime, but they are coprime.. 21=3 7 and 10=2 5, so they have no common factors > 1, so their gcd = 1. A set of integers {a 1,a 2, } is (pairwise) relatively prime if all pairs a i, a j, i j,, are relatively prime. 2004/3/2 (c)2001-2003, Michael P. Frank 14

Least Common Multiple lcm(a,b) of positive integers a, b,, is the smallest positive integer that is a multiple both of a and of b. E.g. lcm(6,10)=30 m = lcm(a,b) = min(m: a m b m) a m b m n Z: : (a n b n) (m =n) If the prime factorizations are written as a a a n b b b a p 1 p2 2 n = K pn and b = p 1 1 1 p2 2 K pn, then the LCM is given by max( a1, b1 ) max( a2, b2 ) max(, n ) lcm(, ) a n a b = p p K p b. 1 2 n 2004/3/2 (c)2001-2003, Michael P. Frank 15 The mod operator An integer division remainder operator. Let a,d Z with d>1. Then a mod d denotes the remainder r from the division algorithm with dividend a and divisor d; i.e. the remainder when a is divided by d. (Using e.g. long division.) We can compute (a mod d) ) by: a d a/d. In C programming language, % = mod. 2004/3/2 (c)2001-2003, Michael P. Frank 16

Modular Congruence Let Z + ={n Z n>0}, the positive integers. Let a,b Z, m Z +. Then a is congruent to b modulo m,, written a b (mod m), iff m a b. Also equivalent to: (a b) mod m = 0. (Note: this is a different use of than the meaning is defined as I ve used before.) 2004/3/2 (c)2001-2003, Michael P. Frank 17 Spiral Visualization of mod Example shown: modulo-5 arithmetic 0 (mod 5) 20 15 1 10 (mod 5) 4 19 5 21 14 16 (mod 5) 9 4 0 11 6 1 3 2 8 7 13 12 18 17 22 3 2 (mod 5) (mod 5) 2004/3/2 (c)2001-2003, Michael P. Frank 18

Useful Congruence Theorems Let a,b Z, m Z +. Then: a b (mod m) k Z a=b+km. Let a,b,c,d Z, m Z +. Then if a b (mod m) ) and c d (mod m), then:? a+c b+d (mod m), and? ac bd (mod m) 2004/3/2 (c)2001-2003, Michael P. Frank 19 Rosen 2.5: Integers & Algorithms Topics: Euclidean algorithm for finding GCD s. Base-b representations of integers. Especially: binary, hexadecimal, octal. Also: Two s complement representation of negative numbers. Algorithms for computer arithmetic: Binary addition, multiplication, division. 2004/3/2 (c)2001-2003, Michael P. Frank 20

Euclid s Algorithm for GCD Finding GCDs by comparing prime factorizations can be difficult if the prime factors are unknown. Euclid discovered: For all integers a, b, gcd(a, b) ) = gcd((a mod b), b). Sort a,b so that a>b,, and then (given b>1) (a mod b) ) < a, so problem is simplified. Euclid of Alexandria 325-265 B.C. 2004/3/2 (c)2001-2003, Michael P. Frank 21 Euclid s Algorithm Example gcd(372,164) = gcd(372 mod 164, 164). 372 mod 164 = 372 164 372/164 = 372 164 2 = 372 328328 = 44. gcd(164,44) = gcd(164 mod 44, 44). 164 mod 44 = 164 44 164/44 = 164 44 3 = 164 132132 = 32. gcd(44,32) = gcd(44 mod 32, 32) = gcd(12, 32) = gcd(32 mod 12, 12) = gcd(8,12) = gcd(12 mod 8, 8) = gcd(4,8) = gcd(8 mod 4, 4) = gcd(0,4) = 4. 2004/3/2 (c)2001-2003, Michael P. Frank 22

Euclid s Algorithm Pseudocode procedure gcd(a, b: : positive integers) while b 0 r := a mod b; a := b; b := r return a Sorting inputs not needed b/c order will be reversed each iteration. Fast! Number of while loop iterations turns out to be O(log(max(a,b))). 2004/3/2 (c)2001-2003, Michael P. Frank 23 Base-b number systems Ordinarily we write base-10 representations of numbers (using digits 0-9). 10 isn t special; any base b>1 will work. For any positive integers n,b there is a unique sequence a k a k-1 a 1 a 0 of digits a i <b such that n = k a i b i= 0 See module #12 for summation notation. 2004/3/2 (c)2001-2003, Michael P. Frank 24 i The base b expansion of n

Particular Bases of Interest Base b=10 (decimal): 10 digits: 0,1,2,3,4,5,6,7,8,9. Base b=2 (binary): 2 digits: 0,1. ( Bits = binary digits. ) Used only because we have 10 fingers Base b=8 (octal): 8 digits: 0,1,2,3,4,5,6,7. Base b=16 (hexadecimal): 16 digits: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Used internally in all modern computers Octal digits correspond to groups of 3 bits Hex digits give groups of 4 bits 2004/3/2 (c)2001-2003, Michael P. Frank 25 Converting to Base b (Algorithm, informally stated) To convert any integer n to any base b>1: To find the value of the rightmost (lowest- order) digit, simply compute n mod b. Now replace n with the quotient n/b. Repeat above two steps to find subsequent digits, until n is gone (=0). Exercise for student: Write this out in pseudocode 2004/3/2 (c)2001-2003, Michael P. Frank 26

Addition of Binary Numbers procedure add(a n- 1 a 0, b n- 1 b : binary 0 representations of non-negative negative integers a,b) carry := 0 for bitindex := 0 to n- 1 {go through bits} bitsum := a bitindex +b bitindex +carry {2-bit sum} s bitindex := bitsum mod 2 {low bit of sum} carry := bitsum / 2 {high bit of sum} s n := carry return s n s 0 : binary representation of integer s 2004/3/2 (c)2001-2003, Michael P. Frank 27 Two s Complement In binary, negative numbers can be conveniently represented using two s complement notation. In this scheme, a string of n bits can represent any integer i such that - 2 n- 1 = i < 2 n- 1. The bit in the highest-order bit-position (n- 1) represents a coefficient multiplying - 2 n- 1 ; The other positions i < n- 1 just represent 2 i, as before. The negation of any n-bit two s complement number a = a n- 1 a 0 is given by a n- 1 a 0 + 1. The bitwise logical complement of the n-bit string a n- 1 a 0. 2004/3/2 (c)2001-2003, Michael P. Frank 28

Correctness of Negation Algorithm Theorem: For an integer a represented in two s complement notation, - a = a + 1. Proof: a = - a n- 1 2 n- 1 + a n- 2 2 n- 2 + + a 0 2 0, so - a = a n- 1 2 n- 1 - a n- 2 2 n- 2 - - a 0 2 0. Note a n- 1 2 n- 1 = (1- a n- 1 )2 n- 1 = 2 n- 1 - a n- 1 2 n- 1. But 2 n- 1 = 2 n- 2 + + 2 0 + 1. So we have - a = - a n- 1 2 n- 1 + (1- a n- 2 )2 n- 2 + + (1- a 0 )2 0 + 1 = a + 1. 2004/3/2 (c)2001-2003, Michael P. Frank 29 Subtraction of Binary Numbers procedure subtract(a n- 1 a 0, b n- 1 b 0 : binary two s complement representations of integers a,b) return add(a, add(b,1)) { a + (- b) ) } This fails if either of the adds causes a carry into or out of the n- 1 position, since 2 n- 2 +2 n- 2-2 n- 1, and - 2 n- 1 + (- 2 n- 1 ) = - 2 n isn t representable! 2004/3/2 (c)2001-2003, Michael P. Frank 30

Multiplication of Binary Numbers procedure multiply(a n- 1 a 0, b n- 1 b 0 : binary representations of a,b N) product := 0 for i := 0 to n- 1 if b i = 1 then product := add(a n- 1 a 0 0 i, product) return product i extra 0-bits appended after the digits of a 2004/3/2 (c)2001-2003, Michael P. Frank 31 Binary Division with Remainder procedure div-mod(a,d Z + ) {Quotient & rem. of a/d.} n := max(length of a in bits, length of d in bits) for i := n- 1 downto 0 if a = d0 i then {Can we subtract at this position?} q i := 1 {This bit of quotient is 1.} a := a - d0 i {Subtract to get remainder.} else q i := 0 {This bit of quotient is 0.} r := a return q,r {q = quotient, r = remainder} 2004/3/2 (c)2001-2003, Michael P. Frank 32