Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample...

84
Number Theory & Asymmetric Cryptography

Transcript of Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample...

Page 1: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Number Theory &Asymmetric Cryptography

Page 2: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Modular ArithmeticNotations

Ζ={−∞ ,⋯−2,−1, 0,1 ,2 ,⋯,∞}

Ζm={0,1 ,2 ,⋯,m−2,m−1}

a≡b mod m⇒a=b+km, integer k

Page 3: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Addition mod m

Given a≡b mod m and c≡d mod m

(a+c)≡(b+d ) mod ma−b=km ,c−d=lm, integers k , l(a+c)=b+d+(k+ l)m=(b+d)+ jm

Examples(25+15)≡(1+3)≡0 mod 4(25+15)≡(4+1)≡5 mod 7

Page 4: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Multiplication mod m

a≡b mod m,c≡d mod ac≡bd mod m

ac=(b+km)(d+lm)=bd+(bl+kd+klm)mExample

26≡2 mod 4,11≡3 mod 426∗11=286≡2 mod 4

2∗3=6≡2 mod 4

Page 5: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

What about division?Is division possible in Zm?

(A long detour necessary at this point)

Group, Abelian Group, Ring and Field

Group

Abelian Group

Ring

Field

Page 6: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Group, Ring and FieldGroup: Addition is closed, and associative, additive

identity and additive inverse exist

Abelian group: Addition is also commutative

Ring: Multiplication is closed, associative, commutative, and distributive; multiplicative identity exists

Field: Every element except “additive identity” has multiplicative inverse

In Zm additive identity is 0, multiplicative identity is 1. Its

a Ring.

Is Zm a Field?

Page 7: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Multiplicative InverseConsider m = 5, or {0,1,2,3,4}

– 2*3 == 3*2 == 1 mod 5. So 2↔3

● (3 and 2 are multiplicative inverses in Z5)

– 4*4 == 1 mod 5, or 4 ↔ 4

– obviously, 1 ↔ 1

Z5 is clearly a field (all elements except additive identity have a multiplicative inverse)

Consider m = 6, or {0,1,2,3,4,5}

– 5↔5 , 1 ↔ 1

– No inverses for 2,3 and 4? (why?)

– Z6 is not a Field (it is a Ring)

– (As we shall see soon) the reason for this is that 6 is not a prime mumber

Page 8: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Basic Theorems of ArithmeticAny number can be represented as a product

of powers of primes. Let pi be the ith prime

n=∏i=1

piei ,e i≥0

If n=∏i=1

pini ,m=∏i=1

pimi

lcm(m,n )=∏i=1

pimax (ni,mi)

gcd(m,n)=∏i=1

pimin(ni,mi)

60=22 .31 .51 ,18=21 .32

lcm(60,18)=22 .32 .51=180

gcd(60,18)=21 .31 .50=6

Page 9: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

GCD Definitions

gcd(m,n) represented as (m,n)

If a = kb, where k is an integer, we say b | a (b divides a)

s = (m,n) is the largest positive integer satisfying s|m and s|n

If s=(m,n)=1, m and n are relatively prime

Euclidean algorithm used for finding gcd

Page 10: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

GCD PropertiesIf (m,n)=1, m|a, n|a then mn|a

Example (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30

(9,6) not equal to 1 : a number divisible by both six and 9 does not have to be divisible by 54 (example, 18)

A useful result:

If (m,n)=1, x=a mod m, and x=a mod n, then x=a mod mn

(x-a) divisible by m and n. So it has to be divisible by mn

Page 11: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Bezout's Representations = (a,b) = ia+jb (where i and j are integers)

s (the gcd) is the smallest positive integer that can be written as a combination of a and b

Practical Implications:● If coins are minted in only two denominations

a and b can we accomplish any transaction● How can you measure 1 foot with two sticks

– one 9 feet long and the other 7 feet long? We can because (7,9)=1.

● 1 = 4*7 + (-3)*9

Page 12: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Algorithm for GCD

Basic idea - if a = qb + c then (a,b) = (b,c)

Let s = (a,b) and t = (b,c)s|a, s|b, t|b, t|cc = a – qb = s(a1-qb1) or s|c

As s|b and s|c and t is the largest integer that divides both b and c, so s<=t

a = qb+c = t(qb2+c2) or t|aAs t|b and t|a and s is the largest integer that divides

both a and b, so t<=st<=s and s<=t possible only if s=t

(a ,b)=(b ,c ) if a=qb+c

Page 13: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Euclidean Algorithm

(a0, a1) ,a0>a1

Let a0=q1a1+a2

(a0,a1)=(a1, a2)

Let a1=q2 a2+a3

(a1, a2)=(a2, a3)⋮

and so on until we can trivially find the GCDby inspection

(a ,b)=(b ,c ) if a=qb+c

Page 14: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Euclidean Algorithm

(457, 283)

Page 15: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Euclidean Algorithm

(457, 283)

457 = 1*283+174 {or (457,283)=(283,174)}

Page 16: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Euclidean Algorithm

(457, 283)

457 = 1*283+174

283 = 1*174+109

174 = 1*109+65

109 = 1*65 + 44

65 = 1*44 + 21

44 = 2*21 + 2

21 = 10*2 + 1

Page 17: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Euclidean Algorithm

(457, 283)457 = 1*283+174 283 = 1*174+109174 = 1*109+65109 = 1*65 + 4465 = 1*44 + 2144 = 2*21 + 2 21 = 10*2 + 1 2 = 2*1 + 0 , or (457,283) = (2,1) = 1

Page 18: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Euclidean Algorithm

(457, 283)457 = 1*283+174 283 = 1*174+109174 = 1*109+65109 = 1*65 + 4465 = 1*44 + 2144 = 2*21 + 2 21 = 10*2 + 1 1 = 21-10*2 (Bezout Representation)2 = 2*1 + 0 (457,283) =(283,174) = (174,109) = (109,65) = (65,44) =

(44,21) = (21,2) = (2,1) = 1

Page 19: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Backtracking for Bezout

(457, 283)457 = 1*283+174 283 = 1*174+109174 = 1*109+65109 = 1*65 + 4465 = 1*44 + 2144 = 2*21 + 2 1 = 21-10*(44-2*21)

21 = 10*2 + 1 1 = 21-10*2

2 = 2*1 + 0 or (457,283) = (2,1) = 1

Page 20: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Backtracking Euclid

(457, 283)457 = 1*283+174 1 = 135*457 + (-218)*283

283 = 1*174+109174 = 1*109+65109 = 1*65 + 4465 = 1*44 + 2144 = 2*21 + 2 1 = 21-10*(44-2*21)

21 = 10*2 + 1 1 = 21-10*2

2 = 2*1 + 0 or (457,283) = (2,1) = 1

Page 21: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Modular InverseDoes inverse of a exist in Zm?

Inverse exists only if (a,m)=1

Else we can not get a Bezout representation linking 1, a and m (like 1 = xa+ym)

If (a,m)=1 we can use extended Euclidean algorithm to find the inverse of a in Zm

aa−1≡1 mod m

Let b=a−1

ab≡1 mod m⇒ab=1+km⇒1=(−b)a+km(a ,m)=1

Page 22: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Multiplicative Inverse of 283 in Z457

(457, 283)457 = 1*283+174 1 = 135*457 + (-218)*283

283 = 1*174+109 174 = 1*109+65 109 = 1*65 + 44 65 = 1*44 + 2144 = 2*21 + 2 1 = 21-10*(44-2*21)

21 = 10*2 + 1 1 = 21-10*2

2 = 2*1 + 0 or (457,283) = (2,1) = 1

Page 23: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Multiplicative Inverse of 283 in Z457

(457, 283)457 = 1*283+174 1 = 135*457 + (-218)*283

283 = 1*174+109 (-218*283) = 1 + (-135)*457

174 = 1*109+65 (-218*283) == 1 mod 457

109 = 1*65 + 44 -218 == 239 mod 457

65 = 1*44 + 21 (239*283) == 1 mod 457

44 = 2*21 + 2 21 = 10*2 + 1 1 = 21-10*2

2 = 2*1 + 0 or (457,283) = (2,1) = 1

Page 24: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Multiplicative Inverse of 283 in Z457

(457, 283)457 = 1*283+174 1 = 135*457 + (-218)*283

283 = 1*174+109 (-218*283) = 1 + (-135)*457

174 = 1*109+65 (-218*283) == 1 mod 457

109 = 1*65 + 44 -218 == 239 mod 457

65 = 1*44 + 21 (239*283) == 1 mod 457

239 is the inverse of 283 mod 457Check: 239*283 = 67637 = 1 + 148*457

Page 25: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Extended Euclid Algorithm

d=(a,b)=ak+bl

EE Algorithm returns d,k,l

u=[a 1 0];

v=[b 0 1];

while (v(0) != 0) do

y=floor(u(0)/v(0));

w=u-y*v;

u=v; v=w;

endwhile

d=u(0); k=u(1); l=u(2);

a=457,b=283

u(0) u(1) u(2) v(o) v(1) v(2)

457 1 0 283 0 1

283 0 1 174 1 -1

174 1 -1 109 -1 2

109 -1 2 65 2 -3

65 2 -3 44 -3 5

44 -3 5 21 5 -8

21 5 -8 2 -13 21

2 -13 21 1 135 -283

1 135 -218 0 -283 457

1=135*457 + (-218)*283

Page 26: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

End of Detour

Now we know why inverses do not exist for 2,3 and 4 in Z6

Note that (5,6)=1

(That's why 5 has an inverse in Z6)

Page 27: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Prime Modulus

● What if m is prime?

● We have Zm = {0,1,2,...,m-1}

● Every number is relatively prime to a prime number

● So every number 1 ... m-1 has an inverse

● Zm is a FIELD if m is prime

● Normally we call it prime field Zp

Page 28: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

RECAP

Zm = {0,1,2,...,m-1}

Zm is a group, and ring Multiplicative inverse of a exists only if (a,m)=1;GCD computed using Euclidean algorithmMultiplicative Inverse using Extended Euclidean Algorithm

If m = p (a prime) then Zp is a field

All elements (except additive identity 0) have a multiplicative inverse.

Page 29: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Square and Multiply Algorithm for Exponentiation

Compute y = ax mod nGet binary representation of xLet b(r)b(r-1)...b(0) represent bits of x

z=1;for i=r downto 0 z=z*z mod n if (b(i)==1) z=z*a mod n endifendfor

Page 30: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

ExampleCompute y = 3643 mod 8743=101011b; r=5; a=36; n=87;z=1

Step Beginning End of step1. b5=1, z=1 z=z*z*a = 36 mod 872. b4=0,z=36 z=z*z=78 mod 873. b3=1,z=78 z=z*z*a=45 mod 874. b2=0,z=45 z=z*z=24 mod 875. b1=1,z=24 z=z*z*a=30 mod 876. b0=1,z=30 z=z*z*a=36 mod 87

3643 = 36 mod 87

Page 31: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Public Key Cryptography

● Symmetric cryptography requires every pair of interacting entities to share a secret

● Asymmetric cryptography is useful in establishing pair-wise secrets

● Every entity begins by generating a key pair

– Let Alice's key pair be (RA,UA)

● The private key RA is a secret known only to Alice

● The public key UA is made know to everyone

Page 32: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Public key Algorithms

● Two algorithms (E() and D()) were defined for symmetric ciphers● A “public key algorithm” (for example, RSA) refers to a “system” with up to

6 different sub-algorithms– Key pair generation algorithm– Encryption algorithm– Decryption algorithm– Signing algorithm– Verification algorithm– Key-exchange algorithm

● Not all 6 by necessary for every public-key system – Key pair generation is necessary for all. – Some do only encryption and decryption, – some do only signing/verification, – some do only key-exchange

Page 33: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Key Generation Algorithm

● Alice chooses a random private key RA

● And computes the corresponding public UA

● It should be impractical for anyone to compute the private key given the public key

– Even while the relationship between (RA,UA) is one-to-one

– Example: ● Private key is two randomly chosen large primes p and q● The public key is n=pq

Page 34: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Encryption Algorithm

● Any one with knowledge of Alice's public key can send a secret message to Alice

● To send a secret P, the sender (say, Bob)

– Uses an encryption algorithm C=Enc(P,UA)

– Cipher-text C sent to Alice

Page 35: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Decryption Algorithm

● Only the entity with the corresponding private key can decrypt the cipher-text

● C=Enc(P,UA) can be decrypted using the Dec() algorithm as

– P = Dec(C,RA)

– As only Alice is privy to her private key RA, only Alice can decrypt C

– Can Alice confirm the identity of the sender?

Page 36: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Signing/Verification Algorithms

● To sign a message (typically the hash of a message) Alice uses the signing algorithm Sig()

● Let M be the message hash to be signed● The signature S is computed as

– S=Sig(M,RA)

● Anyone with access to Alice's public key can verify the signature using algorithm Ver()

● Algorithm Ver(M,S,UA) returns TRUE only if S was computed using the corresponding private key, and the same message.

● If TRUE, the verifier concludes that the message was signed by Alice.

Page 37: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Inputs and Outputs

● In symmetric cryptography the inputs and outputs (to E()/D()) were bit-strings of fixed sizes, with no special interpretation

● In asymmetric cryptography the inputs and outputs to the five algorithms are seen as numbers belonging to a finite field/ring/group

● The sizes of inputs/outputs are also more substantial (typically few thousand bits)

Page 38: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Field, Ring, and Group(Once Again)

● Finite sets (of numbers/elements)● Group:

– Addition is closed, associative

– Additive inverse exists; additive identity exists

● Abelian Group are subsets of Groups, where– Addition is also commutative

● Rings are subsets of Abelian Groups– Multiplication is closed, associative, distributive, and commutative

– A multiplicative identity exists

● Fields are subsets of Rings– Every element except the additive identity has a multiplicative inverse

Field

Ring

Abelian Group

Group

Page 39: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Rings and Fields

● We limit ourselves to one type of finite sets– Set of integers modulo m

– Zm = (0,1,2,...,m-1)

– With modular addition and multiplication

– Zm is a● Field if m is prime; ● Ring if m is not prime

Page 40: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Prime Numbers● Prime Number Theorem

– Number of prime numbers less than n is approx. n/log(n)

– Prime numbers are dense

● Any number can be represented as a product of powers of primes–

– For example

Ψ(n)≈n/ log (n)

n=Πi=1∞ p i

ai

10=21 30 51

12=2231

148=22 ... 371

Page 41: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Euler Totient

● Two numbers are relatively prime if they have no common factors – their GCD is 1. – example (9,14)=1,(7,22)=1, etc

● Positive integers <n (or elements of Zn) that are relatively prime to n are totatives of n

● The Euler Totient Function Phi(n) is the count of the totatives of n

If n=Πi=1∞ pi

ai then Φ(n)=Πi=1∞ p i

ai−1( pi−1)

Page 42: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Euler Totientn=Πi=1

∞ piai Φ(n)=Πi=1

∞ p iai−1

( pi−1)

n=12=223 Φ(12)=21(2−1)30

(3−1)=4n=15=3151 Φ(15)=(3−1)(5−1)

n=13=13 Φ(13)=(13−1)

● We are particularly interested in two cases● Case 1: n is a prime p

● the Euler totient is p-1 ● all elements in Z

p except 0 are totatives

● Case 2: ● n=pq where p and q are primes:

● the Euler totient is (p-1)(q-1)● Only (p-1)(q-1) of n=pq elements of Z

p are totatives

Page 43: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Example, m=35 = 5x7

● Zm={0,1,2,3,..., 34}● 7 multiples of 5, and 5 multiples of 7, are obviously

not totatives● 7 multiples of 5 are 0,5,10,15,20,25,30● 5 multiples of 7 are 0,7,14,21,28● 0 is in both ● 7+5-1 = 11 numbers are not totatives● 35-11 = 24 = (5-1)(7-1) numbers are totatives● {1,2,3,4,6,8, 9,11,12,13,16,17, 18,19,22,23,24,26, 27,29,31,32,33,34}

are the 24 totatives of 35.

Page 44: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

For General m=pq

● More generally● p multiples of q are not totatives● q multiples of p are not totatives● 0 is in both ● p+q-1 are not totatives● pq-(p+q-1) = (p-1)(q-1) numbers are totatives

Page 45: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Multiplicative Inverses

● All totatives of Zm have multiplicative inverses modulo m● Totatives of 35

{01,02,03,04,06,08,09,11,12,13,16,17,18,19,22,23,24,26,27,29,31,32,33,34}● (Corresponding) Multiplicative inverses

{01,18,12,09,06,22,04,16,03,27,11,33,02,24,08,32,19,31,13,29,26,23,17,34}● (1,1),(2,18),(3,12).... are inverses mod 35 ● If m is prime are numbers in Zm (except 0) have multiplicative inverses● If m=pq then only the (p-1)(q-1) totatives have multiplicative inverses

4.9≡36≡35.1+1≡1 mod 3511.16≡176≡35.5+1≡1 mod 35

a . a−1≡35k+1≡1 mod 35 where k is some integer

Page 46: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Set of Totatives

Consider the set of Φ(m) totatives {a1 a2⋯aΦ(m )} of mWhat happens when you multiply a totative with another?The result has to be a totative. Why?

aia j=x can NOT have any factor common with mx too has to be a totative

Example 9.12≡96≡3 mod 35, 19.32≡13 mod 35Any power of a totative also has to be a totativeFor e.g. in mod 35, 322

≡9,323≡8, 324

≡11,325≡2

Page 47: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Permutation of Totative Set

Set of Φ(m) totatives {a1 , a2 ,⋯aΦ(m )} of mChoose any a=a i from the setMultiply every number in the set by a to get {a1a ,a2 a ,⋯aΦ(m)a }Now {a1a ,a2 a ,⋯aΦ(m)a} is a PERMUTATION of {a1 , a2 ,⋯aΦ(m)}. Why?Pick two indexes i , j∈{1⋯Φ(m)}

ai a≡a ja⇒(ai−a j)a≡0 mod mOr m divides (a i−a j)a .As a has no common factors with mwe need m to divide ai−a j

Which can only happen if ai−a j=0 or i= j

Page 48: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Euler Fermat's TheoremΦ(m)Totatives {a1 , a2 ,⋯aΦ(m )} of m

{a1 a ,a2a ,⋯aΦ(m) a} is a PERMUTATION of {a1 , a2 ,⋯aΦ(m )}

Multiply all elements together in both sides. The result in both sidesshould be the same if one side is a permutation of the other

{a1 a×a2a×⋯×aΦ(m) a}≡{a1×a2×⋯×aΦ(m )} mod m

aΦ(m ){a1×a2×⋯×aΦ(m )}≡{a1×a2×⋯×aΦ(m )} mod m

aΦ(m )≡1 mod m . if a is relatively prime tomFermat's Theorem (special case of Euler-Fermat Theorem)

a p−1≡1 mod p if p is prime

Page 49: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Euler Fermat's TheoremFermat's Theorem

ap−1≡1 mod p ∀ a

ak (p−1)

≡1 mod p ∀aak (p−1)+1

≡a mod p ∀a

Euler Fermat's TheoremaΦ(m)≡1 mod m . if (a ,m)=1akΦ(m)≡1 mod m . if (a ,m)=1

akΦ(m)+1≡a mod m . if (a ,m)=1However, if m=pq then we can show that akΦ(m)+1≡a mod m ,EVEN IF (a ,m)≠1

Page 50: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Proof

akΦ(m)+1≡a mod m ∀ a if Φ(m)=( p−1)(q−1) .akΦ(m )+1=ak( p−1)(q−1)+1≡a mod pakΦ(m)+1=ak ( p−1)(q−1)+1≡a mod q

Thus, akΦ(m )+1≡a mod m=pq

Page 51: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Summary

akΦ(m)+1≡a mod m forall a :Useful for RSA

a p−1≡1 mod p Fermat's Little Theorem

Page 52: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Simplifying Modular Expressions

Given x y mod m, simplifying involvesremoving all multiples of m from xremoving all multiples of Φ(m)from the exponent y

x y mod m=(x mod m) y mod Φ(m ) mod mExamples

241456 mod 23Φ(23)=22 ; 241 mod 23=11 ; 456 mod 22=16

241456 mod 23=1116 mod 23241456 mod 119 (Φ(119=7.17)=6.16=96)

241 mod 119=3 ; 456 mod 96=72241456 mod 119=372mod 119

Page 53: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Difficult Inverse Problems

Factorization ProblemGiven two primes p ,q trivial to compute n=pqDifficult to find p or q given n Discrete logarithm Problemprime p , g generator of Z p

Given p ,g ,α≡ga mod pInfeasible to find a

Page 54: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Choosing a Prime

We know factorization is a difficult problemGiven a number pCan we say if it is a prime w/o factorizing? YesHow? Probabilistic Primality TestingWe can confirm if a number is a prime with a vanishingly small probability of failure

Choosing a prime is NOT a hard problem

Page 55: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Probabilistic Primality Check (PPC)

Given a number p 'If p ' is a prime we know

a p '−1 mod p '≡1∀ aBut, if a p '−1 mod p '≡1 for some awe can not say it will be true for all aSolution: Choose n random a ' s for the testif the test passes every time probability that p ' is NOT a prime is <1 /2n

Why?If the test fails for even for one a∈Ζp ' it should fail for atleast half the possible elements in Ζp '

Page 56: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

PPC

Assume test passes for a=a1⋯an

and fails for a=xa1

p '−1≡a2

p '−1≡⋯≡an

p '−1≡1 mod p'

x p '−1≠1 mod p '

In this case the test should also fail for x a1, x a2,⋯, x an

If the test fails even onceit should fail atleast as many timesas it passes!the probability of false choice with one test is 1 /2with n tests it reduces to 1/2n

Page 57: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

PPC Algorithm

IsPrime(p) count =0 while (count < n) a=rand() if ap mod p≡a count+=1 else break endif endwhile if (count=n) return TRUE

Page 58: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Algorithm to Pick n-digit Prime

Generate random n-bit odd number pwhile (!IsPrime(p)) p+=2; //next odd numberreturn p

Page 59: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Diffie-Helman Key Exchange

prime p , g∈Z p generator: both known to allAlice chooses random a∈Z p

Bob chooses random b∈Z p

Alice to Bob α≡ga mod pBob to Alice β≡gb mod pAlice computes K AB≡β

a≡gab

Bob computes K AB≡αb≡gab

Page 60: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

RSA

Key Pair Generation 1. Choose two large primes p ,q2. Compute n=pq ,ϕ(n)=(p−1)(q−1)3. Choose a small e such that (e ,ϕ(n))=14. Find d where de≡1 mod ϕ(n)5. Destroy p ,q ,ϕ(n) public (modulus and exponent) n , e private (exponent) d

Page 61: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

RSA Encryption/Decryption

Alice's public keys n ,e , private exponent dTo send a secret P to Alice, Bob computes

C≡P e mod n Alice decrypts C as

P≡Cd mod nWhy does this work?

Cd≡(Pe )d≡P(ed )≡Pk ϕ(n)+1≡P mod nAs d and e are multiplicative inverses mod ϕ(n)

Page 62: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

RSA Signing / Verification

To sign a hash M , Alice computes S≡M d mod n

Any one can verify M≡Se mod n

Page 63: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

RSA Example

Key Pair Generation p=1009,q=503

n=pq=507527,ϕ(n)=( p−1)(q−1)=506016e=5,d=404813 (5∗404813 mod 506016=1)

public (modulus and exponent) n=507527,e=5 private (exponent) d=404813

EncryptionP=423621

C=Pe mod n=4236215 mod 5070527=32110P=Cd mod n=32110404813 mod 5070527=423621

Page 64: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

El Gamal Key Generation

p , g , known to allAlice chooses random private key aPublic key is α=ga mod p

Example p=79, g=7Alice chooses a=43,α≡ga

≡743≡48 mod 79

Alice's private key 43,Alice's public key 48

Page 65: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

El Gamal Encryption/Decryption

To send a secret value P to AliceBob chooses random k∈Z p

C≡Pαk mod p , μ≡gk mod pC ,μ sent to Alice who can compute

x≡μa≡αk mod pP≡Cx−1 mod p

Page 66: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Primes are Dense

Recall. Total number of primes less than N is roughly N/ log(N)

Total number of primes with 150 or less digits is 2.8761e148

Total number of primes with 149 or less digits is 2.8953e147

Total number of 150 digit primes is 2.5866e148 (one in every 387 numbers)

On an average we need to test about 387/4 = 97 numbers (test if it is a prime) before we hit upon a 150 digit prime

Page 67: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

El Gamal Encryption/Decryption

Example p=79, g=7,a=43,α=48, P=21,k=5μ≡gk

≡75≡59 mod 79

αk≡485

≡54 mod 79C≡P αk

≡21.54≡28 mod 79Alice computes μa

≡5943≡54 mod p

and 54−1≡60 mod p

and P≡C (μa)−1≡28.60≡21 mod p

Page 68: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

El Gamal Signing/VerificationTo sign a hash M Alice chooses random k∈Z p

μ≡gk mod pS≡(M−aμ)k−1 mod p−1

Anyone can verify relationship between (M ,S ,μ ,α)

αμμ S≡gaμ gk (M−aμ) k−1

≡gM mod pExample p=79,a=43,α=48,M=12,k=5

μ≡gk≡75

≡59 mod 79k−1≡47 mod p−1

S≡(M−aμ)k−1≡(12−43.59) .47≡41 mod 78.

αμμ

S≡4859 .5941

≡8 mod pgh≡712

≡8 mod p .

Page 69: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Complexity

● Multiplication/Division/Square-root of n-bit number O(n2)● Modular Mutiplication: (one multiplication and one division) is

also O(n2)● Computing exponent: Order of r (r to 2r) modular multiplications

(MM), where r is the number of bits in the exponent● ab mod m, where a,b,m are n-bit integers: Complexity O(n3) ● Computing GCD (both numbers are n-bit numbers): About n

steps where each step has 1-2 MMs. Complexity O(n3) ● Computing Multiplicative Inverse: Same as GCD with exended

Euclidean Algorithm. Complexity O(n3)

Page 70: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Complexity of El Gamal

● Encryption: Two exponentiations● Decryption: One exponentiation, one

multiplicative Inverse● Signing: One exponentiation, One multiplicative

Inverse● Verification: Two exponentiations● Key Generation : One exponentiation

– All have the same O(n3) complexity

Page 71: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Complexity of RSA

● Encryption: Exponentiation with the small public exponent (3-bit exponent implies only 3-6 modular multiplications). Complexity O(n2)

● Decryption: Exponentiation with n-bit private exponent. Complexity O(n3)

● Signing: Exponentiation with n-bit private exponent. Complexity O(n3)

● Verification: Exponentiation with the small public exponent. Complexity O(n2)

● Key Generation: O(n4). Why?

Page 72: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Primes are Dense

Recall. Total number of primes less than N is roughly N/ log(N)

Total number of primes with 150 or less digits is 2.8761e148

Total number of primes with 149 or less digits is 2.8953e147

Total number of 150 digit primes is 2.5866e148 (one in every 387 numbers)

On an average we need to test about 387/4 = 97 numbers (test if it is a prime) before we hit upon a 150 digit prime

Page 73: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Complexity of Finding n-bit Prime

● Average distance between 2 n-bit primes is O(n). ● So O(n) PPCs (probabilistic primality checks) to determine a

prime. ● Most PPCs will fail soon (in one or two Fermat tests - which

requires one exponentiation)● The successful check will be require about 100

exponentiations ● Complexity of O(n) failing PPCs is O(n4) (each failing PPC

calls for 1-2 exponentiation)● Passing PPC is 100*O(n3) (can be ignored for large n)

Page 74: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

More on Choosing Primes

● RSA: – If modulus n is a 2000 bit number it is advisable to choose a 1001 bit and a

999 bit prime for p and q.

– Do not choose p and q close to each other (999 and 1001 is the farthest you can get)

– p-1 and and q-1 should have at least one very large factor

– Actually the complexity of one factorization algorithm will depend only on the size of the largest factor of p-1 or q-1

● El Gamal/Diffie Hellman– Choosing p close to 2m lends itself to fast algorithms for MM.

– All these “optimizations” not possible for RSA as every one works on a different modulus m=pq

Page 75: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Primes are Dense

Recall. Total number of primes less than N is roughly N/ log(N)

Total number of primes with 150 or less digits is 2.8761e148

Total number of primes with 149 or less digits is 2.8953e147

Total number of 150 digit primes is 2.5866e148 (one in every 387 numbers)

On an average we need to test about 387/4 = 97 numbers (test if it is a prime) before we hit upon a 150 digit prime

Page 76: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Factorization

● RSA relies on the assumption that factorization is hard● Brute force factorization of n = pq: Check all primes less than √n.● For 300 digit n (around 150 digit p and q) around 1e147

primes have to be tested - highly impractical● Attacker complexity of 1e20 may be acceptable (equivalent to

64-bit symmetric cipher)● Many sophisticated algorithms have been developed for

factorization● We will just need to increase the key lengths as sophistication

of attacks improve

Page 77: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Simple Factoring Algorithms

● Fermat’s factorization is effective if the two prime factors (p

and q) are close to each other● Pollards p − 1 algorithm is efficient in scenarios where either

p − 1 or q − 1 is comprised of many small factors● William’s p + 1 algorithm is efficient when p + 1 or q + 1 is

comprised entirely of small factors● Care should be taken to ensure that p and q are not close - for

example choosing 148-digit q and 150 digit p● Also necessary to ensure that p − 1, q − 1, p + 1, q + 1 do not have small

factors.● These requirements makes secure key generation even more

complex for RSA.

Page 78: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Advanced Factoring Algorithms

● Dixons random squares, number field sieves● All of them try to determine some “special relationships”● If we can find two numbers x and y such that

– x2 ≡ y2 mod n and

– x !≡ y mod n and x !≡ −y mod n,

– then we can easily factorize n

● Note that● x2 ≡ y2 mod n n divides (x − y)(x + y)⇒● x !≡ y mod n n does not divide (x − y)⇒● x !≡ −y mod n n does not divide (x + y)⇒● So (n, x + y) and (n, x − y) should give the factors of n

Page 79: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Attacking the Discrete Log Problem

● Shank’s Algorithm● Pohlig-Helman Algorithm (works well if p − 1

has no large factors)● Index Calculus method● Number-field seive

Page 80: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Order of a Number in Zp

● The order of a Z∈ p is the minimum value r for which ar ≡ 1 mod p

● The maximum order is p − 1. Also referred to as full order.● Generators have full order.● The order of any number divides p − 1● As p − 1 is always even at the minimum we should have 4

orders: p − 1, 1, 2, and (p−1)/2

● In Z11

– 2,6,7 and 8 have full order (p − 1 = 10);

– 3,4,5 and 9 have order (p − 1)/2 = 5;

– 10 has order 2;

– 1 has order 1;

Page 81: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Order Divides p-1

● The order of 1 is always 1; order of p − 1 is always 2 (irrespective of p)

● The number of elements with full order (the number of generators) is Φ(p − 1)

● The number of elements with order (p−1)/d is Φ((p − 1)/d)).

● The order of any number divides p − 1

Page 82: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

●Schnorr Signature Scheme

● DSA is a variant of the Schnorr Scheme

● Public p, q, gq, hash function H().

● Large prime p (say 1024-bits)● Prime q | (p − 1) (say 160-bit prime)

● Choose gq Z∈ p, where gq has order q.

– Zp will contain Φ(q) = q − 1 numbers of order q

● Alice’s private key a Z∈ p, public key α ≡ gqa mod p.

Page 83: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Schnorr Signature

● To sign a message M – Alice chooses a random 1 ≤ k ≤ q − 1 and calculates:

● r = H(M . gqk) mod q

● s = (k + ar) mod q

● Signature is r. s (both r and s are 160-bit quantities)

● Verifier (who has α = gqa mod p) can calculate

– x ≡ gqs α−r mod q ≡ gq

k+ar gq-ar ≡ gq

k mod q

– And verify that H(M. x) = r.

– Note that● The signature size is small (equivalent to 2 hashes)● All computations (for signing and verification) use smaller modulus q

Page 84: Number Theory & Asymmetric Cryptographyweb.cse.msstate.edu/~ramkumar/NumberTheoryS18.pdfExample (5,6)=1 : a number divisible by both 5 and 6 has to be divisible by 30 (9,6) not equal

Summary of Complexity

● O(n2): RSA encryption/signature verification: ● O(n3): RSA decryption/signing, EL Gamal

encryption/signing/decryption/verification/key generation● O(n4): RSA key generation● All of the above are very much practical though (thats why we use them).

No polynomial complexity algorithms exist for factorization/solving discrete log.

● Increasing complexity: each step by a factor of 100 -1000– Symmetric encryption/hashing

– RSA encryption/verification

– RSA signing, encryption, all of El Gamal

– RSA key generation