1 / 60

# Chapter 6: Number Theory - PowerPoint PPT Presentation

CHAPTER 6: NUMBER THEORY Topics : - prime numbers, relative prime numbers, modular arithmetic, discovering primes, finding inverses of large primes, Euclid’s algorithm, Fermat’s theorem, & Euler’s totient function. Motivation: - public key cryptography is based on large

Related searches for Chapter 6: Number Theory

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Chapter 6: Number Theory' - didrika

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

CHAPTER 6: NUMBER THEORY

Topics: - prime numbers, relative prime numbers,

modular arithmetic, discovering primes, finding inverses

of large primes, Euclid’s algorithm, Fermat’s theorem,

& Euler’s totient function.

Motivation: - public key cryptography is based on large

primes that have to be generated & tested using modular

arithmetic.

Fermat & Euler’s work is used to prime or relatively

prime numbers. Euclid’s algorithm finds multiplicative

inverses that are needed to find appropriate encryption

keys in public key cryptography.

Chapter 6: Number Theory

Numbers used - Non-negative integers

Prime # - A positive integer > 1 is prime iff it is evenly

divisible (zero remainder) by only two other numbers =

1 & itself.

Divisor- If a & b are positive integers, and b  0, b is a

divisor of a (b divides a) if a = mb for some integer m,

such that a/b = m.

Divisors of 36: 1, 2, 3, 4, 6, 9, 12, 18, & 36 (not a prime #).

Divisors of 17 are: 1 & 17 (i.e., 17 is a prime #).

Chapter 6: Number Theory

Notation - b|a means b divides a with no remainder,

or b is a divisor of a.

If a|1, then a = 1 (if a divides 1, a must be 1 - any larger a

would produce a non-integer - fractional result).

If a|b and b|a, then a = b (if not =, one of the divisions

would produce a fraction - 2|4, but 4|2 isn’t true).

a|0 for all a  0 (i.e., 0/5 = 0, but 0/0  0).

Chapter 6: Number Theory

If a|k and a|l, then a|(mk + nl) for arbitrary m & n

That is, since a|k, then k must be of the form k = ak1.

If a|l, then l is of the form l = al1, for some integers, k1

and l1. Then: For a|(mk + nl), and substituting for k

& l, we have a|(mak1 + nal1) = a|a(mk1 + nl1), so a

divides (mk + nl). Example:

If a = 6; k = 36; l = 54, m = 2; n = 3

6|36 = 6: 6|54 = 9, and so does 6|(2x36 + 3x54)

and = (2x6x6 + 3x6x9) = 6(2x6 + 3x9), 6|(2x36 + 3x54)

This is of the form a|(m x k + n x l)

Chapter 6: Number Theory

Prime = Integer p > 1 with only divisors being 1 & p.

Also means a prime is a whole number that is not the

product of 2 smaller integers.

Primes < 100 = 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,

41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97.

Primes < 2000, see Stallings, pg 237.

Primes: 1st 10,000, see http://www.utm.edu/research/

primes/lists/small/10000.html.

1 is not considered a prime.

Chapter 6: Number Theory

Two numbers are relatively prime if their gcd (greatest

common divisor) or gcf (greatest common factor) = 1.

gcd (a, b) means the greatest common divisor of a & b.

If gcd (a, b) = c, then c is a divisor of a & b (i.e., c|a, c|b),

and any divisor of c is a divisor of a & b

(i.e., d|c means d|a & d|b).

Chapter 6: Number Theory

Given: The following pairs, find the gcds:

gcd (10,100) = 10

gcd (24, 36) = 12

gcd (a, 0) = a, since all pos integers > 0 divide 0

GCD Method:

Find factors of each number, then match up their

common factors.

Chapter 6: Number Theory

gcd (102, 5292)

102 = 2 x 51 = 2 x 3 x 17= 2 x 3 x 17 = 21 x 31 x 171

5292 = 2 x 2646 = 2 x 2 x 1323 = 2 x 2 x 27 x 49

2 x 2 x 3 x 9 x 7 x 7 = 2 x 2 x 3 x 3 x 3 x 7 x 7 = 22 x 33 x 72

So, 102 = 20 x 21 x 31 x 171

5292 = 20 x 22 x 33 x 72

Common factors are 2, and 3 (7 & 17 are not common)

Since gcd(gcf) > 1, the numbers are not relatively prime.

Chapter 6: Number Theory

The case we are interested in is gcd = 1

Consider gcd (5, 14)

Factors of 5 are 1, 5

Factors of 14 are: 1, 2, 7, and 14

They share only the one common factor = 1,

thus 5 &14 are relatively prime!

Chapter 6: Number Theory

Step 1: Form 14/5 = 2, remainder 4

Step 2: Form 5/4 = 1, remainder 1

Step 3: Form 4/1 = 4, remainder 0

Last divisor = gcd = 1

This is an iterative method, where the factors are

successively removed.

Step 1 begins with a division, then the quotient is

Discarded, the divisor is brought down to Step 2 and the remainder from the previous step becomes the new divisor. Terminates when the remainder is 0.

Chapter 6: Number Theory

For x & y, with x > y: (x, y) and (x - y, y) have same gcd.

Example: (100,10) gcf = 10

(100-10,10) = (90,10) gcf = 10

(90-10,10) = (80,10) gcf = 10

…….

(20-10, 10) = (10,10) gcf = 10

(10-10, 10) = (0,10) no gcf

terminates with y = gcf

This is because if d|x & d|y, then y = kd & x = jd, so

x - y = jd - kd = (j - k)d (i.e., differences have same gcd).

Chapter 6: Number Theory

The same behavior holds in modulo arithmetic.

In modulo arithmetic: gcd(a, b) = gcd(a, a mod b)

Example: gcd(100,10) = gcd(100, 100 mod 10)

100 mod 10; 100/10 = 10, R = 0

True because if d = gcd(a, b), then d|a & d|b.

If 10 = gcd(100,10), then 10|100 & 10|10.

This means d is a divisor of a & b and also a divisor

of a mod b.

Chapter 6: Number Theory

Given X and Y, where X > Y

1 If Y = 0, done with gcd = X

R = X mod Y

X = Y

Y = R

GOTO 1

Chapter 6: Number Theory

Example: gcd 595, 408

595/408 = 1, R = 187 (x mod y = 187)

408/187 = 2, R = 34

187/34 = 5, R = 17

34/17 = 2, R = 0

17/0 Y is = 0

Stop gcd 595, 408 = 17

Note: Computationally intense for large numbers.

Chapter 6: Number Theory

Many methods, oldest = Sieve of Eratosthenes. Given the

first 100 numbers (1-100)

1. Remove 1 since it is not a prime by definition

2. Test 2 to see if it is only divisible by 1 and itself. Keep 2,

it passes.

3. Cross out every number divisible by 2 since they are

composite numbers with 2 as a factor.

4. Test 3. Keep 3, it passes.

5. Eliminate all multiples of 3 since they contain 3 as a

factor

6. Test 5. Keep 5, it passes. (we didn’t do 4 - a factor of 2).

Repeat this process for all numbers up to 100.

Chapter 6: Number Theory

1 is eliminated, so starting matrix is:

02 03 04 05 06 07 08 09 10

11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30

31 32 33 34 35 36 37 38 39 40

41 42 43 44 45 46 47 48 49 50

51 52 53 54 55 56 57 58 59 60

61 62 63 64 65 66 67 68 69 70

71 72 73 74 75 76 77 78 79 80

81 82 83 84 85 86 87 88 89 90

91 92 93 94 95 96 97 98 99 100

Chapter 6: Number Theory

Test 2, retain 2, eliminate all multiples of 2

since they are composite numbers with 2 as a factor.

02 03 05 07 09

11 13 15 17 19

21 23 25 27 29

31 33 35 37 39

41 43 45 47 49

51 53 55 57 59

61 63 65 67 69

71 73 75 77 79

81 83 85 87 89

91 93 95 97 99

Chapter 6: Number Theory

Test 3, retain 3, eliminate multiples of 3.

02 03 05 07

11 13 17 19

23 25 29

31 35 37

41 43 47 49

53 55 59

61 65 67

71 73 77 79

83 85 89

91 95 97

Chapter 6: Number Theory

Test 5, retain 5, eliminate multiples of 5.

02 03 05 07

11 13 17 19

23 29

31 37

41 43 47 49

53 59

61 67

71 73 77 79

83 89

91 97

Chapter 6: Number Theory

Test 7, retain 7, eliminate multiples of 7.

02 03 05 07

11 13 17 19

23 29

31 37

41 43 47

53 59

61 67

71 73 79

83 89

97

Chapter 6: Number Theory

Test 11, retain 11, eliminate multiples of 11 (there aren’t any).

We could go on, but all the remaining # are also primes.

02 03 05 07

11 13 17 19

23 29

31 37

41 43 47

53 59

61 67

71 73 79

83 89

97

Chapter 6: Number Theory

We have discovered all the primes less than 100. The

sieve computationally intensive (and dull)!

02 03 05 07

11 13 17 19

23 29

31 37

41 43 47

53 59

61 67

71 73 79

83 89

97

Chapter 6: Number Theory

There are infinitely many primes. Why?

Suppose you have a finite set of primes. Just multiply

them all together and add 1. The result will not be

divisible by any of the primes in your set (the remainder

will always be one when you divide). It is not in your set

and you have a new prime!

Example: the set is 2,3,5,7 - all primes

2x3x5x7 = 210 + 1 = 211; is it prime - yep!

2x3x5x7x11 = 2,310 + 1 = 2311; is it prime - yep!

Chapter 6: Number Theory

Primes thin out for larger primes (result of multiplying).

3 digit primes 25 in 100 (1 out of 4 numbers - 25%)

10 digit primes , 1 in 23 - 4.3%

100 digit primes, 1 in 230 - .43%

Going through all of them like the sieve does is too slow.

We need 100 - 150 digit primes. If we guess a 150 digit

number, we have 1 chance in 230 of it being a prime.

This is computationally feasible.

Chapter 6: Number Theory

This also means you must generate and test candidate

Prime numbers.

If you test 230 150 digit numbers, the probability it will

be a prime is about .63.

So, on average you will need to test about 230 numbers

before you find a prime.

Chapter 6: Number Theory

Given the positive integers, a & n; a/n = produces a

quotient + remainder.

Or a = n(q) + r, 0 < r < n; for 5/3 = 1 + 2 or 1, 2. Consider

the reals expressed from 0 to some large value (q+1)n:

Chapter 6: Number Theory

a, a positive integer, can appear anywhere on the line.

If a is a multiple of n it will appear in the same location as one of the

n’s with r = 0.

If a is not a multiple of n, it appears between 2 n’s, and the

distance between the lower n and a = r, the remainder

or residue.

Chapter 6: Number Theory

The same relationship can be expressed in modulo

(or modular) arithmetic.

That is, a modulo n, or a mod n = the remainder of a/n.

If a = 17, n = 7, then a/n = 2 + 3, so 7 mod 17 = 3

17/7 = Q of 2, R or 3

This is clock arithmetic

(i.e., 12 hours then repeat with no carry).

Chapter 6: Number Theory

Congruence: If a mod n = b mod n, a & b are congruent.

Notation: a  b mod n (a is congruent to b mod n)

a  b mod n if n|(a-b); If n divides a-b

a  b mod n implies a mod n = b mod n; as above

a  b mod n implies b = a mod n

a  b mod n and b  c mod n implies a  mod n

Chapter 6: Number Theory

Arithmetic operations (normal operations hold)

[(a mod n) + (b mod n)] mod n = (a + b) mod n

[(a mod n) - (b mod n)] mod n = (a - b) mod n

[(a mod n) x (b mod n)] mod n = (a x b) mod n

See Stallings, page 111 for worked examples.

Chapter 6: Number Theory

Observe that if (a + b)  (a + c) mod n, then b  c mod n

For a = 5; b = 23; c = 7, n = 8

If (5 + 23)  (5 + 7) mod 8; then 23  7 mod 8. Is this true?

Part 1: Is (5 + 23)  (5 + 7) mod 8?

(5 + 23) = 28; 28/8 = 3, 4 (i.e., r = 4), and

(5 + 7) mod 8 = 12 mod 8 = 12/8 = 1, 4 (i.e., r = 4) OK!

Part 2: Is 23  7 mod 8?

23/8 = 2, 7 (i.e., r = 7), and

7 mod 8 = 0, 7 (i.e., r = 7) OK! So, what is the point?

Chapter 6: Number Theory

This is true because there is an additive inverse.

It is the number you would have to subtract from the

original number to get 0. That is:

(a + b) - a  -a + (a + c) mod n, or b  c mod n

Chapter 6: Number Theory

Inverses - Key for Asymmetrical Encryption/Decryption

0 1 2 3 4 5 6 7 8 9

+

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9

0

2

3

4

5

6

7

8

9

0

1

3

4

5

6

7

8

9

0

1

2

4

5

6

7

8

9

0

1

2

3

5

6

7

8

9

0

1

2

3

4

6

7

8

9

0

1

2

3

4

5

7

8

9

0

1

2

3

4

5

6

8

9

0

1

2

3

4

5

6

7

9

0

1

2

3

4

5

6

7

8

Chapter 6: Number Theory

We will use one number to encrypt and its inverse to

decrypt.

Consider an input string to be encrypted = 3692.

Add a constant mod 10 to map the string to a new string

(character by character).

(3 + 6) mod 10 = 9

(6 + 6) mod 10 = 2

(9 + 6) mod 10 = 5

(2 + 6) mod 10 = 8 The encrypted string for 3692 = 9258

Chapter 6: Number Theory

Now use the additive inverse of 6; it is 6 + x = 0; x = 4

to decrypt (inverse is taken from the table).

(9 + 4) mod 10 = 3

(2 + 4) mod 10 = 6

(5 + 4) mod 10 = 9

(8 + 4) mod 10 = 2 The encrypted string is decrypted!

This is a simple substitution cipher (e.g., Caesar). The

only difference is numbers were used instead of letters.

But – easy to break – lets do something harder!

Chapter 6: Number Theory

0 1 2 3 4 5 6 7 8 9

x

0

1

2

3

4

5

6

7

8

9

0

0

0

0

0

0

0

0

0

0

0

1

2

3

4

5

6

7

8

9

0

2

4

6

8

0

2

4

6

8

0

3

6

9

2

5

8

1

4

7

0

4

8

2

6

0

4

8

2

6

5

0

0

5

0

5

0

5

0

5

0

6

2

8

4

0

6

2

8

4

0

7

4

1

8

5

2

9

6

3

8

0

6

4

2

0

8

6

4

2

0

9

8

7

6

5

4

3

2

1

If this works like addition, we should be able to encrypt

and decrypt. Trouble is, it only works part of the time.

We can encrypt/decrypt some, but not all, numbers.

Chapter 6: Number Theory

Encrypt the string 8732 using a muliplicative constant of:

5 mod 10

(8 x 5) mod 10 = 0; (40/10 = 4, 0)

(7 x 5) mod 10 = 5; (35/10 = 3, 5)

(3 x 5) mod 10 = 5; (15/10 = 1, 5)

(2 x 5) mod 10 = 0; (10/10 = 1, 0)

So the encrypted string would be 0550.

Trouble is, half the characters mapped to 0 and half to 5.

We might guess this is a problem since results are not

unique.

Chapter 6: Number Theory

However, if we use 3 mod 10 we get unique results:

(8 x 3) mod 10 = 4; (24/10 = 2, 4)

(7 x 3) mod 10 = 1; (21/10 = 2, 1)

(3 x 3) mod 10 = 9; (9/10 = 0, 9)

(2 x 3) mod 10 = 6; (6/10 = 0, 6)

The result is 4196.

This looks better, but do inverses work?

Can we decrypt?

Chapter 6: Number Theory

The multiplicative inverse of n is m, where (n x m) mod 10

= 1.

The multiplicative inverse of 3 is (3 x m) mod 10 = 1;

so m = 7. Decrypting 4196 (previous slide) using 7 :

(4 x 7) mod 10 = 8

(1 x 7) mod 10 = 7

(9 x 7) mod 10 = 3

(6 x 7) mod 10 = 2; So… the inverse decrypts the cipher!

What is the condition that makes 3 work and 5 not work?

Chapter 6: Number Theory

Why 3 works.

If (a x b)  (a x c) mod n, then b  c mod n, if and only if (iff) a is relatively prime to n.

Because ((a-1) x a x b)  ((a-1) x a x c) mod n = b  c mod n,

This is in accordance with Fermat’s theorem.

That is, a mod n will not produce a complete & unique set of residues if a & n have any factors in common except 1!

Chapter 6: Number Theory

For any prime p and any element a < p;

ap mod p = a OR ap-1 mod p = 1

Also… the inverse of a is x where ax mod p = 1

Substituting ax mod p = 1 = ap-1 mod p

So x = ap-1 mod p/a mod p = ap-2 mod p

The inverse of 3 mod 5 = 3-1 mod 5 = 35-2 mod 5

33 mod 5 = 27 mod 5 = Q = 5, R = 2

And 25-2 mod 5 = 23 mod 5 = 8 mod 5 = 3

Chapter 6: Number Theory

So what is the implication for cryptography?

We use one number to encrypt and a second number,

the inverse to decrypt – but only if an inverse exists.

A number and its inverse are used as the keys.

They are asymmetrical (i.e., public key cryptography).

Finding inverses of the simple integer was easy, but how

do we find inverses for large keys (56, 90, 128 bits)?

Chapter 6: Number Theory

Use an extended version of Euclid’s gcd algorithm.

For the notation GCD (d, f) = 1, d has a multiplicative

inverse mod f such that for d < f, there exists a d-1,

such that d x d-1 = 1 mod f.

This is the same as de = 1 mod (n),

Euclid’s gcd algorithm is given in detail by Stallings

(page 119).

Chapter 6: Number Theory

Euclid (d, f)

1 (X1,X2,X3)  (1, 0, f); (Y1, Y2, Y3)  (0, 1, d)

2 IF Y3 = 0, RETURN X3 = GCD (d, f); No inverse

3 If Y3 = 1, RETURN Y3 = GCD (d, f); Y2 = d-1 mod f

4 Q = X3/Y3

5 (T1,T2,T3)  (X1 - QY1, X2 - QY2, X3 - QY3)

6 (X1,X2,X3)  (Y1,Y2,Y3)

7 (Y1,Y2,Y3)  (T1,T2,T3)

8 GOTO 2

Relationships that hold during computation:

fT1 + dT2 = T3; fX1 + dX2 = X3; fY1 + dY2 = Y3

X3 & Y3 are comparable to X & Y in the original Euclid’s algorithm.

Chapter 6: Number Theory

We need to know how many numbers less than n are

relatively prime to n. For n = 10, we know 1, 3, 7, and 9

are relatively prime to 10.

Generally, the number of positive integers that are

relatively prime to a number n is (n), where  is

Euler’s Totient Function.

A number less than or equal to and relatively prime to a

number is called a totative. The Totient Function, then, is

simply the number of totatives of n.

Chapter 6: Number Theory

For example, the totient of 4 is defined as the number of

numbers that are relatively prime to 4. Those numbers

are 1 and 3.

2 isn’t a totative of 4 since it divides 4. So.. (4) = 2.

Similarly: (20) = 1, 3, 7, 9, 11, 13, 17, 19 = 8

(24) = 1, 5, 7, 11, 13, 17, 19, 23 = 8

See Stallings, page 241 for the 1st 30 totatives

(i.e., n = 1-30).

Chapter 6: Number Theory

For cryptography we are interested in certain totatives.

If n is a prime number then all the integers (1, 2, 3….n-1)

are relatively prime to n, so (n) = n-1.

The gcd for any prime number n, for any number less

than n, is = 1, so all numbers less than n are relatively

prime to n.

If n is a product of two primes, p and q, such that n = pq,

there are (p-1)(q-1) numbers relatively prime to n and

(n) = (p-1)(q-1).

Chapter 6: Number Theory

Fermat's theorem:

an-1 = 1 mod n; if a and n are relatively prime.

Also

(a)(an-1) = (a)(1 mod n) or simply that an = a mod n,

if n & a are relatively prime.

Chapter 6: Number Theory

Euler's Theorem:

a(n) = 1 mod n; if a and n are relatively prime

That is, if n is prime, then (n) = n-1, so (n) can be

substituted in Fermat's Theorem and be = 1 mod n.

We will use these to test candidate numbers for key

generation.

Chapter 6: Number Theory

We would expect modulo exponentiation to operate

similar to modulo multiplication since exponentiation

is a repeated form of multiplication.

That is:

212 = 2x2x2x2x2x2x2x2x2x2x2x2 = 4096, and

212 = 6 mod 10; 4096/10 = Q + R = 409 + 6

Chapter 6: Number Theory

In exponentiation, like multiplication, not all numbers

have inverses.

We also know that numbers without inverses cannot be

used to encrypt because they give ambiguous results.

The characteristics of prime numbers, and modular

arithmetic as well as the functions and theorems we

have described form the mathematical basis for public

key cryptography.

Chapter 6: Number Theory

RSA is a public key algorithm that uses two keys, one

public and one private. Keys are variable in length and

typically on the order of 512 bits long. The algorithm is:

1. Generate two prime numbers, p & q, say 512 bits long.

2. Multiply the prime numbers p & q together; p x q = n.

3. Keep p & q secret.

4. Generate a public key:

a. Compute the totient of n: (n) = (p-1)(q-1).

b. Choose a number e, relatively prime to (n).

The public key is [e, n].

Chapter 6: Number Theory

5. Generate a private key.

a. Find the multiplicative inverse d = e mod (n)

(Euclid’s extended algorithm).

The private key is [d, n]

6. To encrypt a message, m < n, use the public key e and

compute:

me mod n = c

7. To decrypt the encrypted message, compute:

m = cd mod n using the private key d

Chapter 6: Number Theory

RSA’s capability to encrypt and decrypt comes from

number theory.

It derives its strength from the difficulty in factoring

large prime numbers n into the factors p & q, which are

kept secret is computationally infeasible for large n

(recall n = p x q; where p & q > 512 bits).

Chapter 6: Number Theory

We know that we have to pick the primes p & q, and

then e.

From these we compute (p-1), (q-1), n, (n), and d.

We already said we could find q and p by trying some

large numbers and test them for primality.

We know e must be relatively prime to (p-1)(q-1).

Finally, we compute de = 1 mod (n) using Euler’s

extended algorithm.

Chapter 6: Number Theory

• Selecting e – Two Options

• Pick p & q, choose e at random and test for primality

• with (p-1)(q-1).

• If the primality test fails, select another e.

• Select e first, then select p-1 & q-1 to be relatively

• prime to e.

• Many times e is selected first. Moreover, e is often picked

• to be 3.

• It turns out RSA security is not weakened by either a

• small e or even if e is always the same number.

Chapter 6: Number Theory

The advantage is that if e, the public key, is small,

operations with the public key are fast.

Two popular values of e are 3 and 65537 (216 = 1).

3 because it only takes 2 multiplies to encrypt.

65537 takes 17 multiplies to encrypt.

A 512 bit number takes about 768 multiplies (average).

There are some precautions in using 3. Short messages

need to be padded (easy) and messages encrypted with

the same key should not be sent to more than 2 recipients.

Chapter 6: Number Theory

Only the public key = [e, n] is known, p & q and the

private key must be kept secret. p & q are often discarded

after being used.

To find the private key an adversary must find the

exponential inverse of e in (de = 1 mod (n)).

Creating the keys is relatively easy since two large primes

p & q were used to create n order 512-1024 bits.

Chapter 6: Number Theory

Finding d requires that the adversary find p & q by

factoring n.

Factoring a 512 bit number is formidable - required on

the order of 30,000 MIP-Years in 1995, but is no

longer considered secure.

I a paper published last year, a design was presented for a

device costing \$10k to factor a key in 10 minutes.

Even 1024 bit numbers may be suspect.

Chapter 6: Number Theory

February 2003 saw a paper claiming to factor 1024 bit

RSA numbers using a new design.

Cost \$10M and would factor 1024 bit keys in one year.

Reference: http://www.wisdom.weizmann.ac.il/

%7Etromer/papers/twirl.pdf

Chapter 6: Number Theory