EECS 658_________________________PROBLEM SET #5_________________________Fall 1999

ASSIGNED: Oct. 14, 1999. READ: Primitive Roots+Generators, Rings+Fields of Polynomials.
DUE DATE: Oct. 28, 1999. THIS WEEK: Cyclotomic, primitive roots, public-key cryptography.

1. Factor x15-1 over the field of rationals, i.e., into cyclotomic polynomials (straightforward).
NOTE: "over the rationals" means that all coefficients are restricted to be rational numbers.
2. The fundamental theorem of algebra states that a polynomial of degree N has at most N zeros.
Show that polynomial x²-1 over Z/(15) has more than two zeros! Explain how this can be true.
3. Let p(x)=x4+x³+x²+x+1. FACT: p(x) is prime over GF(2)={{0,1}, +,× mod(2)}.
So {{polynomials of degree < 4 over GF(2)}, +,× mod(p(x))} is the finite field GF(24)=GF(16).
Huh? There are 16 polynomials with coefficients 0 or 1 with degree < 4. Add and multiply
mod(p(x)) and then reduce the coefficients mod(2) gives another such polynomial (closure).
The other properties required of a field can also be shown to hold (not required).
1. Show that "x" is not a primitive element. HINT: Show that its order < 15.
2. Show that "x+1" IS a primitive element. HINT: Show that its order is 15.
3. Show that f(z)=z4+z3+1 is the minimal polynomial of "x+1".
MEANING: This is the polynomial of smallest degree such that f(z)|z=x+1=0.

1. The decimal expansion of 1/p (where p is an odd prime) repeats after k digits. Examples:
1/7=0.142857142857...(k=6), 1/11=0.0909...(k=2) and 1/13=0.0769230769230...(k=6).
2. Show that the period k of 1/p is the order of 10 mod(p). Also show k is a factor of p-1.
3. What is the condition for k to take on its maximum possible value of p-1 (as with p=7)?

• Public Key Cryptography using Euler's totient function Ø(N) (simple using this concept):
• p and q are large prime numbers (kept secret); but their product r=pq is made public.
• s is the sending key (made public); s must be relatively prime to p-1 and q-1.
• t is the decoding key (kept secret); t is defined by solving st=1 mod((p-1)(q-1)).
• m is the message; encoded using 01=A, 02=B, 03=C...26=Z (can encode other characters).

Send and receive a message m by transmitting and receiving the coded message M:
• Encode the message using M=ms mod(r). Remember r and s have been made public.
• Decode the message using m=Mt mod(r). Remember t has been kept private.
• POINT: If r could be factored into p and q, then t could quickly be found from s.
• But factoring the product of large prime numbers is very difficult (but not impossible!)

Now explain why this works, and try a simple but illustrative example using Matlab:
1. Explain why m can be decoded from M. HINT: Ø(pq)=(p-1)(q-1) and Euler's theorem.
2. Let r=2146189 and s=257. Decode the message M=1494449 (isn't that a cute number?).
3. I will give you p in class Thursday; otherwise, you must break the code by factoring r!

Even for this small example, you need some help in computing ms and Mt:
• Noting 257=28, you could compute M from m by squaring and reducing mod(r) 8 times.
• For the numbers in this problem, you can compute m from M by doing something similar.
• Do NOT let the numbers get too large, or Matlab will give incorrect answers (roundoff).