MATH 470 Lecture 10

From Notes
Jump to navigation Jump to search

« previous | Thursday, February 14, 2013 | next »


Happy feast of St. Valentine!

Homework 5 out tonight


Cyclic Groups

We've heard twice that (/p)* for prime p is a cyclic group since it has a generator.

EX: p=17: 3 and 5 work as generators in that their powers give all elements in (/17)*.

How many generators are there?

Subgroup

A subgroup H of our group G is any subset closed under multiplication.

EX: {powers of 32} form a subgroup of (/p)* ({32,34,36,38,310,312,314,3161}; 8 elements)

Observe that 3 is a generator for (/p)*, 9 = 32 produces a subgroup with 8 elements 5 = 35 is also a generator for (/p)*

How many different powers does an element of (/p)* …?

The multiplicative order of a in any group is the least positive k with ak equal to the identity mod p

For p=17, we get

  1. ORD17 3 = 16
  2. ORD17 5 = 16
  3. ORD17 9 = 8
Note: Number of elements in subgroup {powers of a} of (/p)* is exactly the order of a mod p.


Why Care?

  1. Understanding cyclic subgroups clarifies square roots mod n
  2. El Gamal cryptosystem is based on cyclic groups
  3. More complicated cryptosystems (and methods for breaking them) are based on more general groups.


Returning to last lecture, we wanted to compute 11mod104729. We found that 104729 is prime and equivalent to 1 mod 4, and thus had to use Tonelli's Algorithm:

p = 104729 g = 42 (non-square mod p) p - 1 = 2^3 \cdot 13091 e = 0: age11104729121(modp)e=0+22=4h=age1142441237a=±42241237170922Inrelationtogenerators,<math>(/104729)* can be broken into two subgroups: {geneven power} and {gen odd power}. Even powers are squares, odd powers are non-squares.

(ZZ/pZZ)*
  |-- {gen ^ (even power)}
  |   |-- {gen ^ (multiple of 4)}
  |   |   |-- {gen ^ (multiple of 8)}
  |   |   |-- ...
  |   |   `-- {gen ^ (k + multiple of 8)}, where k in {1,...,7}
  |   `-- {gen ^ (2 + multiple of 4) }
  `-- {gen ^ (odd power)}
      |-- {gen ^ (1 + multiple of 4)}
      |   `-- ...
      `-- {gen ^ (3 + multiple of 4)}
          `-- ...

Generating Random Prime Numbers

Fundamental Theorem of Arithmetic: There are infinitely many primes

The Prime Number Theorem: limxπ(x)xlnx=1 [1]


We can do better:

Let Li(x)=2xdtlnt.

limxLi(x)xlnx=1

And |Li(x)π(x)| is actually tighter than |xlnxπ(x)|.


In 1901, Von Koch showed that xlnx<π(x)<1.25506xlnx

That is, π(x)Θ(xlnx)

This implies an easy way to generate random primes: Pick random numbes in {1, …, N} and check primality!

Analysis

Pr[uniformly random x{1,,n}]=number of primes in rangen=π(n)n

limnπ(n)n=1lnn, so we actually have a pretty good chance.

Pr[\text{random non-square} a \in \{1, \ldots, p-1\}] = \frac{1}{2}

In k trials, Pr[picking a prime in {1,,n}]=1nk


Testing Primality

How do you test primality?

Primality vs. factoring :: decision vs. enumeration

We know how to decide primality for any integer n in time O(ln6n) [2]. However, we still do not know how to factor any faster than eO(3lnn(ln(ln(lnn)))23)

By Fermat's Little Theorem, we know that ap11(modp) if p is prime and pa.

If the converse holds, maybe we can use it as a primality test—sometimes works

  • Carmichael numbers break this (e.g. p=561 yields a5601(mod561) for all a{1,,560}, but 561 = 3 &midot; 11 · 17


Solovay-Strassen Theorem

(1977; maybe Kraitchick & Lehmer earlier...)

n odd and composite → more than half of the a{1,,n1} satisfy (an)an12

Where (an) is the Jacobi symbol: it allows n to be composite (non-prime)

This theorem yields a fast (randomized) primality check:

  1. pick a few random a{1,,n}
  2. check whether (an)=an12.
  3. If any are not equal, n is composite.
  4. Otherwise, n is probably prime


Footnotes

  1. Proved in 1890s independently by De La Vallee Poussin and Hadamard
  2. 2002, Agrawac, Kayal, Sakena