MA/CSSE 473 Day 9 Primality Testing Encryption Intro.

Slides:



Advertisements
Similar presentations
Number Theory Algorithms and Cryptography Algorithms Prepared by John Reif, Ph.D. Analysis of Algorithms.
Advertisements

WS Algorithmentheorie 03 – Randomized Algorithms (Primality Testing) Prof. Dr. Th. Ottmann.
Cryptography and Network Security
Computability and Complexity
Primality Testing Patrick Lee 12 July 2003 (updated on 13 July 2003)
Announcements: 1. Congrats on reaching the halfway point once again! 2. DES graded soon 3. Short “pop” quiz on Ch 3. (Thursday at earliest) 4. Reminder:
Data encryption with big prime numbers
BY : Darshana Chaturvedi.  INTRODUCTION  RSA ALGORITHM  EXAMPLES  RSA IS EFFECTIVE  FERMAT’S LITTLE THEOREM  EUCLID’S ALGORITHM  REFERENCES.
Lecture 8: Primality Testing and Factoring Piotr Faliszewski
Introduction to Modern Cryptography Lecture 6 1. Testing Primitive elements in Z p 2. Primality Testing. 3. Integer Multiplication & Factoring as a One.
Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.
COM 5336 Cryptography Lecture 7a Primality Testing
22C:19 Discrete Math Integers and Modular Arithmetic Fall 2010 Sukumar Ghosh.
Notation Intro. Number Theory Online Cryptography Course Dan Boneh
Great Theoretical Ideas in Computer Science.
and Factoring Integers (I)
Cryptography Lecture 11: Oct 12. Cryptography AliceBob Cryptography is the study of methods for sending and receiving secret messages. adversary Goal:
Announcements: 1. Congrats on reaching the halfway point once again! 2. Reminder: HW5 due tomorrow, HW6 due Tuesday after break 3. Term project groups.
CSE 321 Discrete Structures Winter 2008 Lecture 8 Number Theory: Modular Arithmetic.
Theory I Algorithm Design and Analysis (9 – Randomized algorithms) Prof. Dr. Th. Ottmann.
CSE 321 Discrete Structures Winter 2008 Lecture 10 Number Theory: Primality.

Prabhas Chongstitvatana 1 Primality Testing Is a given odd integer prime or composite ? No known algorithm can solve this problem with certainty in a reasonable.
MA/CSSE 473 Day 08 Randomized Primality Testing Carmichael Numbers Miller-Rabin test.
The Complexity of Primality Testing. What is Primality Testing? Testing whether an integer is prime or not. – An integer p is prime if the only integers.
Cryptography Dec 29. This Lecture In this last lecture for number theory, we will see probably the most important application of number theory in computer.
MA/CSSE 473 Day 11 Primality testing summary Data Encryption RSA.
Cryptography Lecture 7: RSA Primality Testing Piotr Faliszewski.
Introduction to Algorithms Second Edition by Cormen, Leiserson, Rivest & Stein Chapter 31.
Modular Arithmetic with Applications to Cryptography Lecture 47 Section 10.4 Wed, Apr 13, 2005.
MA/CSSE 473 Day 10 Primality testing summary Data Encryption RSA.
1 Section Congruences In short, a congruence relation is an equivalence relation on the carrier of an algebra such that the operations of the algebra.
CS Modular Division and RSA1 RSA Public Key Encryption To do RSA we need fast Modular Exponentiation and Primality generation which we have shown.
6.3 Primality Testing. p2. (1) Prime numbers 1. How to generate large prime numbers? (1) Generate as candidate a random odd number n of appropriate size.
Primality Testing. Introduction The primality test provides the probability of whether or not a large number is prime. Several theorems including Fermat’s.
Data encryption with big prime numbers DANIEL FREEMAN, SLU.
Chapter 1 Algorithms with Numbers. Bases and Logs How many digits does it take to represent the number N >= 0 in base 2? With k digits the largest number.
MA/CSSE 473 Day 10 Primality Testing. MA/CSSE 473 Day 10 In-class exam: Friday, Sept 28 –You may bring a two-sided 8.5x11 inch piece of paper containing.
MA/CSSE 473 Day 09 Modular Division Revisited Fermat's Little Theorem Primality Testing.
1 Solve it with the Computer Rick Spillman CSCE 115 Spring 2013 Lecture 12.
A Prime Example CS Lecture 20 A positive integer p  2 is prime if the only positive integers that divide p are 1 and p itself. Positive integers.
RSA Encryption Greg Gronn Laura Trimmer. RSA Encryption  Requires two 30 digit prime numbers to create an encoding/decryption key.  Goal: analyze different.
MA/CSSE 473 Day 9 Primality Testing Encryption Intro.
MA/CSSE 473 Day 07 Extended Euclid's Algorithm Modular Division
MA/CSSE 473 Day 08 Randomized Primality Testing Carmichael Numbers
Encryption Take 2: Practical details
Public Key Encryption Major topics The RSA scheme was devised in 1978
Practical Aspects of Modern Cryptography
Mathematics of Cryptography
High order procedures Primality testing The RSA cryptosystem
Chapter Applications of Number Theory Some Useful Results
Probabilistic Algorithms
CS 2210:0001Discrete Structures Modular Arithmetic and Cryptography
Handbook of Applied Cryptography - CH4, from 4.1~4.3
DTTF/NB479: Dszquphsbqiz Day 22
Randomness and Computation: Some Prime Examples
Number-Theoretic Algorithms (UNIT-4)
Cryptography and Network Security
MA/CSSE 473 Day 08 Randomized Primality Testing Carmichael Numbers
MA/CSSE 473 Day 10 Data Encryption RSA.
Introduction to Number Theory
Public Key Cryptosystems - RSA
Number Theory (Chapter 7)
RSA Cryptosystem Bits PCs Memory MB ,000 4GB 1,020
Introduction to Cryptography
Practical Aspects of Modern Cryptography
Mathematical Background for Cryptography
Patrick Lee 12 July 2003 (updated on 13 July 2003)
Presentation transcript:

MA/CSSE 473 Day 9 Primality Testing Encryption Intro

The algorithm (modified) To test N for primality –Pick positive integers a 1, a 2, …, a k < N at random –For each a i, check for a i N-1  1 (mod N) Use the Miller-Rabin approach, (next slides) so that Carmichael numbers are unlikely to thwart us. If a i N-1 is not congruent to 1 (mod N), or Miller-Rabin test produces a non-trivial square root of 1 (mod N) –return false –return true Note that this algorithm may produce a “false prime”, but the probability is very low if k is large enough.

Miller-Rabin test A Carmichael number N is a composite number that passes the Fermat test for all a with 1 ≤ a <N and gcd(a, N)=1. A way around the problem (Rabin and Miller): Note that for some t and u (u is odd), N-1 = 2 t u. As before, compute a N-1 (mod N), but do it this way: –Calculate a u (mod N), then repeatedly square, to get the sequence a u (mod N), a 2u (mod N), …, a 2 t u (mod N)  a N-1 (mod N) Suppose that at some point, a 2 i u  1 (mod N), but a 2 i-1 u is not congruent to 1 or to N-1 (mod N) –then we have found a nontrivial square root of 1 (mod N). –We will show that if 1 has a nontrivial square root (mod N), then N cannot be prime.

Example (first Carmichael number) N = 561. We might randomly select a = 101. –Then 560 = 2 4 ∙35, so u=35, t=4 –a u   560 (mod 561) which is -1 (mod 561) (we can stop here) –a 2u   1 (mod 561) –…–… –a 16u   1 (mod 561) –So 101 is not a witness that 561 is composite (we say that 101 is a Miller-Rabin liar for 561, if indeed 561 is composite) Try a = 83 –a u   230 (mod 561) –a 2u   166 (mod 561) –a 4u   67 (mod 561) –a 8u   1 (mod 561) –So 83 is a witness that 561 is composite, because 67 is a non- trivial square root of 1 (mod 561).

Lemma: Modular Square Roots of 1 If there is an s which is neither 1 or -1 (mod N), but s 2  1 (mod N), then N is not prime Proof (by contrapositive): –Suppose that N is prime and s 2  1 (mod N) – s 2 -1  0 (mod N) [subtract 1 from both sides] – (s - 1) (s + 1)  0 (mod N) [factor] – So N divides (s - 1) (s + 1) [def of congruence] –Since N is prime, N divides (s - 1) or N divides (s + 1) [def of prime] –s is congruent to either 1 or -1 (mod N) [def of congruence] This proves the lemma, which validates the Miller-Rabin test

Accuracy of the Miller-Rabin Test Rabin* showed that if N is composite, this test will demonstrate its non-primality for at least ¾ of the numbers a that are in the range 1…N-1, even if a is a Carmichael number. Note that 3/4 is the worst case; randomly-chosen composite numbers have a much higher percentage of witnesses to their non-primeness. If we test several values of a, we have a very low chance of incorrectly flagging a composite number as prime. *Journal of Number Theory 12 (1980) no. 1, pp

Efficiency of the Test Testing a k-bit number is Ѳ(k 3 ) If we use the fastest-known integer multiplication techniques (based on Fast Fourier Transforms), this can be pushed to Ѳ(k 2 * log k * log log k)

Testing "small" numbers From Wikipedia article on the Miller-Rabin primality test: When the number N we want to test is small, smaller fixed sets of potential witnesses are known to suffice. For example, Jaeschke* has verified that –if N < 9,080,191, it is sufficient to test a = 31 and 73 –if N < 4,759,123,141, it is sufficient to test a = 2, 7, and 61 –if N < 2,152,302,898,747, it is sufficient to test a = 2, 3, 5, 7, 11 –if N < 3,474,749,660,383, it is sufficient to test a = 2, 3, 5, 7, 11, 13 –if N < 341,550,071,728,321, it is sufficient to test a = 2, 3, 5, 7, 11, 13, 17 * Gerhard Jaeschke, “On strong pseudoprimes to several bases”, Mathematics of Computation 61 (1993)

Generating Random Primes For cryptography, we want to be able to quickly generate random prime numbers with a large number of bits Are prime numbers abundant among all integers? Fortunately, yes Lagrange's prime number theorem –Let  (N) be the number of primes that are ≤ N, then  (N) ≈ N / ln N. – Thus the probability that an k-bit number is prime is approximately (2 k / ln (2 k ) )/ 2 k ≈ 1.44/ k

Random Prime Algorithm To generate a random k-bit prime: –Pick a random k-bit number N –Run a primality test on N –If it passes, output N –Else repeat the process –Expected number of iterations is Ѳ(k)

Interlude

CRYPTOGRAPHY INTRODUCTION We'll only scratch the surface, but there is MA/CSSE 479

Cryptography Scenario I want to transmit a message m to you –in a form e(m) that you can readily decode by running d(e(m)), –And that an eavesdropper has little chance of decoding Private-key protocols –You and I meet beforehand and agree on e and d. Public-key protocols –You publish an e for which you know the d, but it is very difficult for someone else to guess the d. –Then I can use e to encode messages that only you* can decode * and anyone else who can figure out what d is if they know e.

Messages can be integers Since a message is a sequence of bits … We can consider the message to be a sequence of b-bit integers (where b is fairly large), and encode each of those integers. Here we focus on encoding and decoding a single integer.

RSA Public-key Cryptography Rivest-Shamir-Adleman (1977) –A reference : Mark Weiss, Data Structures and Problem Solving Using Java, Section 7.4 Consider a message to be a number modulo N, an k-bit number (longer messages can be broken up into k-bit pieces) The encryption function will be a bijection on {0, 1, …, N-1}, and the decryption function will be its inverse How to pick the N and the bijection? bijection: a function f from a set X to a set Y with the property that for every y in Y, there is exactly one x in X such that f(x) = y. In other words, f is both one-to-one and onto.

N = p q Pick two large primes, p and q, and let N = pq. Property: If e is any number that is relatively prime to N' = (p-1)(q-1), then –the mapping x  x e mod N is a bijection on {0, 1, …, N-1}, and –If d is the inverse of e mod (p-1)(q-1), then for all x in {0, 1, …, N-1}, (x e ) d  x (mod N). We'll first apply this property, then prove it.

Public and Private Keys The first (bijection) property tells us that x  x e mod N is a reasonable way to encode messages, since no information is lost –If you publish (N, e) as your public key, anyone can encrypt and send messages to you The second tells how to decrypt a message –When you receive a message m', you can decode it by calculating (m') d mod N.

Example (from Wikipedia) p=61, q=53. Compute N = pq = 3233 (p-1)(q-1) = 60∙52 = 3120 Choose e=17 (relatively prime to 3120) Compute multiplicative inverse of 17 (mod 3120) –d = 2753 (evidence: 17∙2753 = = ∙3120) To encrypt m=123, take (mod 3233) = 855 To decrypt 855, take (mod 3233) = 123 In practice, we would use much larger numbers for p and q. On exams, smaller numbers

Recap: RSA Public-key Cryptography Consider a message to be a number modulo N, n k-bit number (longer messages can be broken up into n-bit pieces) Pick any two large primes, p and q, and let N = pq. Property: If e is any number that is relatively prime to (p-1)(q-1), then –the mapping x  x e mod N is a bijection on {0, 1, …, N-1} –If d is the inverse of e mod (p-1)(q-1), then for all x in {0, 1, …, N-1}, (x e ) d  x (mod N) We have applied the property; we should prove it