78
1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection, system testing, vulnerability testing and penetration testing“ --"The SANS 2005 Salary Survey," System Administration, Networking, and Security (SANS) Institute

1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

Embed Size (px)

Citation preview

Page 1: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

1

"The demand is for people who really understand and

have practiced forensics, for people who reallyunderstand and have practiced intrusion

detection,system testing, vulnerability testing and

penetrationtesting“ --"The SANS 2005 Salary Survey," System

Administration, Networking, and Security (SANS) Institute

Page 2: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

2

Public Key SystemsTwo keys: Public Key=(n, e) n and e are public. Private Key=(n, d) d:

known only to the owner of the key; infeasible to find d, given n and e.

EXAMPLE: Let m: plaintext message c: cipher

Page 3: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

3

Example of RSA System ….. 1 (developed by Rivest, Shamir, and Adleman) Let the key belong to Alice. Bob wants to send a confidential

message to Alice, using PK system. Bob knows only the public key. He uses the public key to create c=me mod n …………….[1] He sends c to Alice on the Internet. Eve can sniff c. But she cannot

understand it.

Page 4: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

4

Example of RSA System ….. 2

Alice can find m: m = cd mod n …………….[2] To Prove: (a) possible to find n, e and d so that

equations [1] and [2] can work out; (b) infeasible to find d, given n and e.Note: The minimum size of n: 1024 bits ( i.e.309 digit decimal number).

Page 5: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

5

…aesthetic distance: To appreciate art you need be not too far and not too close.

Engineers are too close to Mathematics to appreciate, admire and enjoy Mathematics.

-- From King's 'The Art of Mathematics‘

Note: Both engineers and scientists use Mathematics extensively. So King’s quote is equally true for scientists.

Page 6: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

6

Number Theory: A Revision nla n divides a or n is a divisor of a Þ prime number if its only divisors are

±1 Unique factors of any integer a > 1:

a = pap

where P is the set of prime numbers

p P and where ap is the degree of p c = a.b cp = (ap+bp) for all p.Ex:33033 = 3x7x112 X13; 85833 = 3x3x3x11x172

c3 = 3+1 =4, c7 = 1, c11 = 2 +1 = 3, c13 = 1, c17 = 2

a|b ap bp for all p; 143|33033

Page 7: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

7

gcd, Relative prime number: Greatest Common Divisor:

gcd(a,b) = max [k such that k|a and k|b] kp= min(ap,bp) for all p;

Ex: to find gcd(33033, 85833): k3= 1, k11= 1 Calculating the prime factors of a large number is a difficult task.

So this formula does not really provide an easy method for evaluation of gcd.

Relative Prime Numbers: a and b are said to be relative prime numbers if they have no

factor (other than ±1 ) in common, i.e, if gcd (a, b) = ±1.

Page 8: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

8

Modular Arithmetic: A Revision

If a is an integer and n is a positive integer a mod n = remainder on dividing a by n a = a/n * n + a mod n Two numbers are said to be CONGRUENT

MODULO n if a mod n = b mod n a b mod n

Page 9: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

9

Modular Arithmetic: A Revision (continued)

Modular Arithmetic: a = q.n + r 0 <= r <n; q = a/n

x largest integer that is less than or equal to x.

0 1.n 2.n q.n a (q+1).n

r

-q.n a -(q-1).n -3.n -2.n -n

r0

Thus 11 = 1.7 + 4 r = 4 = 11 mod 7 -11 = -2.7 + 3 r = 3 =-11mod 7

Page 10: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

10

Theorems:

Theorems:1. a b mod n if n | (a-b)2. a mod n = b mod n a = b mod n3. a = b mod n b = a mod n4. a = b mod n and b = c mod n a = c mod n

Page 11: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

11

Modular Arithmetic Operations:

All Integers Integers from 0 to (n-1)Modulo operator

• Modular Arithmetic Operations:1. [(a mod n) + (b mod n)] mod n = (a + b) mod n2. [(a mod n) – (b mod n )] mod n = (a – b) mod n3. [(a mod n) * (b mod n )] mod n = (a * b) mod n

Page 12: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

12

Examples of Modular Arithmetic:

11 7 mod 13 = (11 4 * 11 2 * 11) mod 13 =[(11 4 mod 13) * (11 2 mod 13) * (11 mod

13)]mod 13 11 2 mod 13 = 4 (11 2 * 11 2) mod 13 = ((11 2 mod 13) * (11 2 mod 13)) mod 13= 16 mod 13 = 3 11 7 mod 13 = (3 * 4 * 11) mod 13 = 2 Thus Rules of Addition, Subtraction and

Multiplication carry over into Modular Arithmetic.

Page 13: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

13

Additive inverse, Multiplicative inverse:

Additive Inverse or Negative of a number: y = negative of a number x mod n if x + y 0 mod n Example: Additive inverse of 5 mod 8 is 3.

Multiplicative Inverse: y = multiplicative inverse of a number x if x * y = 1 mod n

Page 14: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

14

Properties of Modular Arithmetic:

Example: Multiplicative inverse of 3 mod 8 is 3 Not all numbers may have a multiplicative

inverse. Properties of Modular Arithmetic: for a prime

number n: Zn = set of non-negative integers less than n

={0, 1, 2, ………….(n-1)} Zn Set of residues modulo n.

Page 15: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

15

Properties of Modular Arithmetic: (cont.)

For integers in Zn, the following properties hold: Commutative law: (w + x) mod n = (x + w) mod n (w * x) mod n = ( x * w) mod n Associative laws: [(w + x) + y] mod n = [w + (x + y)] mod n [(w * x) * y] mod n = [w * (x * y)] mod n Distributive law: [w * (x + y)] mod n = [(w * x) + (w * y)] mod n

Page 16: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

16

Properties of Modular Arithmetic: (cont.)

Identities: (0 + w) mod n = w mod n (1 * w) mod n = w mod n Additive Inverse (w):For each w Zn ,

there exists a z in Zn such that w + z 0 mod n

Page 17: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

17

4 steps to Euler’s Corollary Step 1a a positive integer, not divisible by ÞÞ a prime number Fermats Theorem: ap-1= 1 mod p Alternate Form: ap= a mod p For Fermat’s Theorem, it is SUFFICIENT for p

to be a prime number. Even if ap-1 were to be 1 for all values of a, it

does not NECESSARILY mean that p is prime.

Note: LHS = a**p

Page 18: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

18

Fermat’s TheoremIf Þ is prime and a is a positive integer not

divisible by p,aÞ-1 = 1 mod Þ OR aÞ = a mod Þ PROOF:Consider the set

ZÞ= {0,1,…. Þ –1}

We know that if each element of ZÞ is multiplied by “a mod Þ”, the result is a set of all the

elements of ZÞ (with a different sequence)

Page 19: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

19

Fermat’s Theorem: Proof

On multiplying all the elements of ZÞ ,except 0, we get (Þ-1)!

On multiplying each element of ZÞ,, except 0, with “a mod p”, we get

{0, a mod Þ, 2a mod Þ……(Þ-1)a mod Þ}

This set consists of all the elements of ZÞ in some order. Hence if all the elements are multiplied together, except 0, we should get (Þ-1)!

Page 20: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

20

Fermat’s Theorem: Proof (cont.)

{a mod Þ * 2a mod Þ… *(Þ-1) a mod p} mod Þ

= (Þ-1)!OR a Þ-1 (Þ-1)! mod Þ = (Þ-1)!(Þ-1)! is relatively prime to Þ. So It can be

cancelledOR a Þ-1 mod Þ = 1OR a Þ-1 =1 mod ÞOR aÞ = a mod Þ

Page 21: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

21

A Definition: Square-free numbers

a square-free, or quadratfrei, integer: one divisible by no perfect square, except 1.

Examples: 10 is square-free but 18 is not, as it is divisible by 9 = 32.

The smallest square-free numbers: 1, 2, 3, 5, 6, 7, 10, 11, 13, 14, 15, 17, 19, 21, 22, 23, 26, 29, 30, 31, 33, 34, 35, 37, 38, 39, ...

Page 22: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

22

Fermat Liars Carmichael number: a composite positive

integer n which satisfies the equation bn-1 = 1 mod n for all positive integers b which are

relatively prime to n

Korselt Theorem (1899): A positive odd composite integer n is a Carmichael number if and only if n is square-free, and for all prime divisors p of n, it is true that (p − 1) divides (n − 1).

Page 23: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

23

Carmichael Numbers Korselt: found the properties, but could not

find an example Carmichael (1910) found the first example of

561 = 3x11x17. positive odd composite integer square-free for all prime divisors p of n, (p − 1) divides (n − 1).

2, 10 and 16 divide 560

Other Examples: = 1105, 1729, 2465, 2821, 6601, 8911….

Page 24: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

24

4 steps …..continued 2

Step 2: n a positive integerEuler’s Totient Function(n) = number of positive integers less than

n and relatively prime to nIf n = Þ, a prime number,(n) = (Þ-1); Ex 1: (37) = 36 because 37 is prime;Ex 2: (35) =24; leaving aside

5,10,15,20,25,30,7,14,21,28

Page 25: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

25

Euler’s Totient Function(n) = number of positive integers less than

n and relatively prime to n.

If n = Þ * q where Þ and q are both prime.n is called a SMOOTH NUMBER (ie it is a

product of smaller prime numbers.)(n) = (Þ*q) (p) = Þ - 1(q) = q – 1To Prove: (p.q) = (p-1).(q-1)

Page 26: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

26

Euler’s Totient Function for the product of two prime numbers

For (n) the residues will be

S1={0,1,2,………………..(Þq-1)}Out of S1, the residues that are not

relatively prime to n are:S2 = {Þ, 2Þ, ….(q-1) Þ},S3 = {q, 2q,……(Þ-1)q} and 0

Page 27: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

27

Euler’s Totient Function for the product of two prime numbers contd.

The number of elements of S1 = ÞqThe number of elements of S2 = q-1The number of elements of S3 = Þ-1Hence the number of relatively prime

elements in S1 is:(n)= Þq – [(q-1)+(Þ-1)+1]

= Þq – q + 1 - p = (Þ-1)(q-1) = (Þ) * (q)

Page 28: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

28

4 steps …..continued 3

Step 3: Euler’s theorem: Generalization of Fermat’s theorem:

If a and n are relatively prime Euler’s Theorema(n) + 1 = a mod nNote: LHS = a**{(n) +1}

Page 29: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

29

Euler’s TheoremFor every a and n that is relatively prime,a(n) = 1 mod nPROOF:If n = prime, (n) = n – 1 By Fermat’s Theorem a(n) = 1 mod n

If n is a positive integer, (n) = the number of positive integers less than n and relatively prime to n.

Page 30: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

30

Euler’s Theorem: Proof

Consider such positive integers as follows:S1 = {x1, x2…… x(n) }

The members of S1 contain no duplicates.

Now multiply each element with a mod n

S2 = {a x1mod n, a x2mod n… a x(n) mod n}

Page 31: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

31

Euler’s Theorem Proof ……..cont.

The set S2 is a permutation of S1 because:i) a is relatively prime to n. ii) xi is relatively prime to n.

iii) Therefore axi is also relatively prime to n.

Hence every element axi mod n will have avalue less than n. Hence every element of S2 is relatively prime ton and less than n. Moreover the number of elements of S2 is equalto that of S1.

Page 32: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

32

Euler’s Theorem Proof ……..cont.

Moreover S2 contains no duplicates. It is because if axi mod n = axj mod n, then

xi must be equal to xj

But S1 has no duplicates

Page 33: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

33

Euler’s Theorem Proof ……..cont.

On multiplying the terms of S1 and S2

( axi mod n) = xi OR

(axi)=( xi )mod n OR

a = 1 mod n OR a = a mod n

(n)

i=1 i=1

(n)

i=1

(n)

(n)

i=1

(n) (n) + 1

Page 34: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

34

4 steps …..continued 4 Step 4: Euler’s Corollary Given two prime numbers p and q,Two integers n and m such that

n=pq, and, m is any number such that 0<m<nNow m and n are not required to be relativelyprime.Euler’s Corollary: m(n) + 1 =m(p-1)(q-1) +1

=m mod n

Page 35: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

35

ProofCorollary to Euler’s Theorem …1

Given: 2 prime numbers p and q. Consider two integers m and n such that n = p*q and 0<m<n

Step 1m (n) + 1 = m(p-1)(q-1) + 1

Since n = p.q where p and q are prime, Euler’s Totient function:

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

Page 36: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

36

ProofCorollary to Euler’s Theorem …2Step 2To prove

m (n) + 1 =m (p-1)(q-1)+1 = m mod nTwo possibilities: Either gcd(m,n) is equal

to 1 or it is NOT equal to 1.The First Possibility: If gcd(m,n) = 1i.e.if m and n are relatively prime, by virtue of Euler’s theorem, the relationship holds.

Page 37: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

37

ProofCorollary to Euler’s Theorem …3

The Second Possibility: If gcd(m,n) != 1,m is either a multiple of p or it is a multiple of q

(Can’t be a multiple of both since m<n)Consider m as a multiple of p. Then gcd(m,q)=1m (q) = 1 mod q --by Euler’s theorem Therefore by Modulo arithmetic rules, [m (q)](p) = 1 mod q ORm(n) = 1 mod q OR m(n) = 1 + kq (where k = some integer)

Page 38: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

38

ProofCorollary to Euler’s Theorem …4

Multiply with m = cp where c is an integerm(n)+1 = m + kcqp = m + kcn

= m mod nIf m was to be a multiple of q, a similar

processwould again bring us to the same

conclusion.Hence:m(n)+1 = m(p-1)(q-1)+1 = m mod n

Page 39: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

39

ProofCorollary to Euler’s Theorem …5

If k is an integer,mk(n)+1 = [(m(n) )k * m ] mod n

= [(1)k * m] mod n by Euler’s Theorem

= m mod n

Page 40: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

40

“Having a state-of-the-art alarm system for yourhome does little good, if a burglar can walk up toyour front door and watch you enter the disarmcode.”

Where is W. Diffie?: Whitfield Diffie, the inventor of the Public Key Encryption concept,and Sun's Chief Security Officer, named as a “SUN FELLOW”.

Page 41: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

41

A definition and a formula: A revisionTOTIENT FUNCTION: (n) = number of

positive integers less than n and relatively prime to n

If n = Þ * q where Þ and q are both prime,(n) = (Þ-1)(q-1) Step 4: Euler’s Corollary: Given

two prime numbers p and q, and, two integers n and m such that

n=pq, and, 0<m<n

m(n) + 1 =m mod n

Page 42: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

42

RSA Method Choose 2 prime numbers: p, q Compute n=pq, n is called the modulus. (an ordinary product, not a mod product; p and q: nearly equal, of 1024 bits or more) DEFINITION: Smooth Number: product of two prime numbers

z=(p-1)(q-1) ( i.e. z is the Totient function of n) Choose e, so that e is a part of the public key.

3 ≤ e < z, and, it has no common factor with z

(i.e. e and z are relatively prime or co-prime; e is usually a “smaller” odd number: Example: e =3 for signatures and 5 for encryption; values like 65537 may be considered.)

Page 43: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

43

RSA method public vs private Find d, so that

d is less than z, and, (ed-1) is exactly divisible by z --> (de mod z = 1)

(i.e. d is the multiplicative inverse of e mod z; d can be calculated by using the Extended Euclid’s Algorithm)

p, q, z and d are private.n and e are public. Public Key=(n, e) Private Key=(n, d)

It is infeasible to find d, given n and e.

Page 44: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

44

Size of Numbers 200 decimal digit number: approx 663 bits: factorization done in May

2005 by lattice sieve algorithm (takes thousands of MIPS years; 1 GHz:

Pentium: 250 MIPS machine) 309 decimal digits: 1024 bits Number of bits of plain text < key length Size of ciphertext = key length Public key: small; private key: larger

Page 45: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

45

Encryption and Decryption Encryption: Any number m (the plaintext

message), where m<n, can be encrypted.ciphertext c=me mod n .. by using the public key

NOTES: 1. If me < n, no reduction, and the message may be obtained easily from the ciphertext. Example: Encrypt a 256 bit data ( say secret key) by using the public key of 5. the result of 1280 bits. If n = 2048 bits, such small values of m, if encrypted, provide no security.

2. Public Key Cryptographic Standard #1 (PKCS #1) gives Octet-String-to-Integer Primitive (OS2IP) for

converting the message to an integer form. Reference: ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf as of Nov 15, 2007

Page 46: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

46

Proof Decryption: cd mod n gives us back m. PROOF: To prove that cd mod n is equal to m: cd mod n = (me)d mod n = m de mod n de =1 mod z. -- Refer to slide 43Therefore de = kz +1 =k(n) +1 m de = m k(n) +1 = m .(m (n)) k

By the corollary to Euler’s theorem, m(n) = 1 mod n = 1 since 1<nHence cd mod n= m de mod n = m

Page 47: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

47

Multiplicative Inverse: Revision Extended Euclid’s

Algorithm EXTENDED EUCLID(m, b)1.(A1, A2, A3)(1, 0, m); (B1, B2, B3)(0, 1, b)

2. if B3 = 0,return A3 = gcd(m, b); no inverse

3. if B3 = 1 return B3 = gcd(m, b); B2 = b–1 mod m

B2: multiplicative inverse of b

4. Q = A3/B3 5. (T1, T2, T3)(A1 – Q B1, A2 – Q B2, A3 – Q B3)6. (A1, A2, A3)(B1, B2, B3)7. (B1, B2, B3)(T1, T2, T3)8. goto 2

Page 48: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

48

Multiplicative Inverse

Let c be the Multiplicative Inverse of b mod n.

b.c = 1 mod n = k.n + 1Therefore b.(c + n) = (k + b).n + 1 = k1.n + 1Thus c, c + n, c + 2n……. are all multiplicative

inverses of c. However for a field Zp, with members as 0,1,2,3…….(p-1), the smallest positive number would be said to be the Multiplicative Inverse.

Page 49: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

49

Example 1 Ref: Q 4?p=3, q=11, two prime numbersn=p.q=33z=(p-1)(q-1)=2X10=20Choose e so that e<z AND e has no common

factor with z (Hint: e=9)Choose d so that (ed-1) is exactly divisible by z i.e. Find inverse of e mod z. d=9.Message = 1000, 0101, 1100, 1100, 1111For hand Computation: In decimal, these are

8,5,12,12,15

Page 50: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

50

Example1 continued Encryption and Decryption

m me c= me mod

n

8 134,217,728 29

5 1,953,125 20

12 5,159,780,352 12

12 5,159,780,352 12

15 38,443,359,375 3c cd m=cd mod n

29 14,507,145,975,869

8

20 512,000,000,000 5

12 5,159,780,352 12

12 5,159,780,352 12

3 19,683 15

Example of 1st row:

c=89 mod33

82mod33=31

84mod33=31x31mod33=961mod33=4

88mod33=4x4mod33 =16mod33=16

89mod33=16x8mod33=29

Page 51: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

51

"He that will not apply new remedies must expect new evils;….. for time is the greatest innovator"

Sir Francis Bacon (1561-1626), British philosopher

Page 52: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

52

Efficiency of computation Both encryption and decryption involve ab. ((a mod n) x (b mod n)) mod n= axb mod n

Thus a2, a4, a8, a16……….. may be computed.

Efficiency: 1.depends upon better algorithms; Cormen Leiserson

Rivest Stein (CLRS) algorithm for ab mod n.2. If p and q are known, Chinese Remainder Theorem

(CRT) can help in sharply reducing the calculation; Garner’s Formula: 11 times faster than CRT;

requires only one pre-computed multiplicative inverse at the cost of a higher memory requirement

Page 53: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

53

Developing an Algorithmb, the exponent, in its binary number representation: bk bk-1 bk-2……. b0

b = bk. 2k + bk-1. 2k-1 + ……… + b1. 21 + b0. 20

If ci = bi.2i

ab mod n = ((a ck

). (a ck

-1).…….. (a c

1 ). (a c

0 ))modn

ab mod n = ( (aci))mod n, as i varies from 0 to k.

Note: a ** ci

ab mod n = ( (aci))mod n

=(((((a ck

)mod n). (a ck

-1))mod n). …….. (a c

1 ))mod n. (a c

0 )) mod n

An algorithm for computing ab mod n would do the job.

Page 54: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

54

Cormen Leiserson Rivest Stein (CLRS) algorithm for efficiently computing d= ab

mod nk: the highest (non-zero) value when b is expressed in binary form: b = bk 2k+ bk-1 2k-1+ ..+ b1 21+ b0

c 0; d 1 ; for i k down to 0 do c 2xc ; d (dxd) mod n ; if bi = 1

then c c + 1 ; d (dxa) mod n ; return d ; The final value of c is the exponent b. The two

steps for the calculation of c are not required, if the only objective is to find the value of d.

Page 55: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

55

Example: 12811mod527 11 is 1011 in binary. So b3 = b1 = b0 = 1. Only b2= 0 c = 0, d = 1 Step 1: for i = 3 c=0, d = 1, For b3= 1, c = 1, d= 128 mod 527 = 128 Step 2: for i = 2: c =2, d = 128x128 mod

527 = 16,384 mod 527 =47

b2= 0

Page 56: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

56

Example: 12811mod527 continued Step3: for i =1: c = 4, d = 47x47mod 527 = 2209mod 527 =101For b1= 1, c = 5,

d= 101x128mod527= 12928mod527=280 Step4: for i =0: c = 10, d=280x280mod527= 78,400mod527=404For b0= 1, c = 11,

d= 404x128mod527= 51712mod527=66 Hence 12811mod527 = 66

Page 57: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

57

Use of CRT

Since the public key e may be much smaller in terms of number of bits than d Efficiency: more important while doing md mod n.

If the private key d owner knows the values of p and q, CRT can be used for better efficiency.

Page 58: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

58

Efficiency of computation: Chinese Remainder TheoremCRT: Possible to reconstruct integers in a particular range from

their residues modulo a set of pair-wise relatively prime moduli.

Ref: Sun Tzu Suan Ching of 3rd century: Sun Tzu's Calculation Classic" (more exact definition: next slide)

TERMINOLOGY: A and B: members of a group ZN:

Let N = n1. n2 . n3 . n4 . ………. nk, where n1 ..., nk are integers which are pairwise coprime (meaning gcd (ni, nj) = 1 whenever i ≠ j).

Let a1 = A mod n1; a2 = A mod n2 ; ……..

…………………….. ak = A mod nk

Page 59: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

59

Chinese Remainder Theorem continued 2CRT: (i) There is a one-to-one mapping

between A (a1, a2, ……… ak).

(a1, a2, ……… ak): called the CRT representation of A

(ii) Operations between any two members- A and B- of ZM may be equivalently performed on the corresponding elements of the two tuples (a1, a2, ……… ak) and

(b1, b2, ……… bk).

Page 60: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

60

CRT Two problems: Find AProblem 1: Find A if

A mod 3 = 2A mod 5 = 0A mod 7 = 0

Problem 2: Find B if

B mod 7 = 3B mod 11 = 0B mod 13 = 6

Page 61: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

61

CRT Two problems: One Solution

Let N = n1. n2 . n3 . n4 . ………. nk, where n1 ..., nk are integers which are pairwise coprime (meaning gcd (ni, nj) = 1 whenever i ≠ j).

For 1 ≤ i ≤ kai = A mod ni

Ni = N/ ni

Let inverse of Ni mod ni = Ri

( i. e. Ri.Ni mod ni = 1)

A = (Σ ai. Ni . Ri ) mod N

Page 62: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

62

CRT: Problem 1:Find A. Given a1, a2, ……… ak

Find A if A mod 3 = 2; A mod 5 = 0; A mod 7 = 0N = n1. n2 . n3 = 3*5*7 = 105

N1 = N/ n1 = 35; R1.N1mod 3 = 1 R1 = 2 (By using (a x b)mod n

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

R1.35 mod 3 (R1.(35 mod 3)) = R1.2 mod 3=1)

N2 = N/ n2 = 21 ; R2.N2mod 5 = 1 R2 = 1

N3 = N/ n3 = 15 ; R3.N3mod 7 = 1 R3 = 1

A = (2.35.2 + 0.21.1 + 0.15.1)mod 105 = 35

Page 63: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

63

CRT: Problem 2: Find BUse: (a + b)mod n =[a mod n + b mod n] mod n

Given: B mod 7 = 3; B mod 11 = 1; B mod 13 = 6

N = n1. n2 . n3 = 7*11*13 = 1001

N1 = N/ n1 = 143; R1.N1mod 7 = 1 R1 = 5

N2 = N/ n2 = 91; R2.N2mod 11 = 1 R2 = 4

N3 = N/ n3 = 77; R3.N3mod 13 = 1 R3 = 12 A = (3.143.5 + 1.91. 4 + 6.77. 12)mod 1001 =(2145 mod 1001+364+5544 mod 1001) mod1001= (143 + 364 + 539) mod 1001 = 1046 mod 1001 = 45

Page 64: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

64

CRT Algorithm:Given: k, n1, n2 , n3 , a1, a2 , a3; To Find:

A A 0; N n1 ;

for i 2 to k N N*ni;

for i 1 to k

Ni N/ ni ;

Ri Ni-1

mod ni ;

c Ri.Ni.ai mod N ;

A A + c mod N ; return A ;

Page 65: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

65

CRT: Fermat’s Theorem for Computational EaseCRT representation of A = md mod pq: a1 = md mod p and a2 = md mod q.d may be much larger than p or q. In such a case,

Fermat’s Theorem may be used for simplification.

By Fermat’s Theorem: aÞ-1 = 1 mod Þ:

a1 = md mod p = md mod(p-1) mod p, and

a2 = md mod q = md mod(q-1) mod q. From a1, a2: A can be evaluated..

Page 66: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

66

Example: RSA Exponentiation using CRT

A= 1283031 mod 3599…1 N = 3599 = 61x59 = pq Using CRT: A = 1283031 mod 3599 a1. a2

Where a1 = 1283031 mod 61

a2 = 1283031 mod 59 Using Fermat’s theorem: aÞ-1 mod Þ = 1 a1 = 1283031 mod 60 mod 61 = 12831mod 61

a2 = 1283031mod58 mod 59 =12815 mod 59

Page 67: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

67

Example: 1283031 mod 3599 … continued 2

CLRS Algorithm for a1 = 12831mod 61

31: 11111; c 0; d 1; i = 4: c = 0, d = 1 b4 = 1: c = 1; d = 1x128 mod 61 = 6 i = 3: c = 2, d = 6x6 mod 61 = 36 b3 = 1: c = 3; d = 36x128 mod 61 = 33 (36x128 = 4608 = 61x75 + 33) i = 2: c = 6, d = 33x33 mod 61 = 52 (33x33 = 1089 = 61x17 + 52)

b2 = 1: c = 7; d = 52x128 mod 61 = 7 (52x128 = 6656 = 61x109 + 7)

Page 68: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

68

Example: 1283031 mod 3599 CLRS Algorithm for a1 = 12831mod 61 …. continued 3

i = 1: c = 14, d = 7x7 mod 61 = 49b1 = 1: c = 15; d = 49x128 mod 61 = 50 (49x128 = 6272 = 61x102 + 50) i = 0: c = 30, d = 50x50 mod 61 = 60 (50x50 = 2500 = 61x40 + 60)

b0 = 1: c = 31; d = 60x128 mod 61 = 55 (60x128 = 7680 = 61x125 + 55)

Hence a1 = 12831mod 61 = 55

Page 69: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

69

Example: 1283031 mod 3599 … continued 4

CLRS Algorithm for a2 = 12815 mod 59 15: 1111; c 0; d 1; i = 3: c = 0, d = 1 b3 = 1: c = 1; d = 1x128 mod 59 = 10 i = 2: c = 2, d = 10x10 mod 59 = 41 b2 = 1: c = 3; d = 41x128 mod 59 = 56 (41x128 = 5248 = 59x88 + 56) i = 1: c = 6, d = 56x56 mod 59 = 9 (56x56 = 3136 = 59x53 + 9)

b1 = 1: c = 7; d = 9x128 mod 59 = 31 (9x128 = 1152 = 59x19 + 31)

Page 70: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

70

Example: 1283031 mod 3599 … CLRS Algorithm for a2 = 12815 mod 59.. continued 5 i = 0: c = 14, d = 31x31 mod 59 = 17 (31x31 = 961 = 59x16 + 17)

b0 = 1: c = 15; d = 17x128 mod 59 = 52 (17x128 = 2176 = 59x36 + 52) Hence a2 = 12815 mod 59 = 52

For calculating A, assumen1 = p = 61

n2 = q = 59Now we have to find Ni N/ ni ; Ri Ni

-1 mod ni

Page 71: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

71

Finding Inverses XTENDED EUCLID(m, b)ALGORITHM: m>b

1.(A1, A2, A3)(1, 0, m); (B1, B2, B3)(0, 1, b)

2. if B3 = 0,return A3 = gcd(m, b); no inverse

And gcd(m, b)= A2.b + A1.m 3. if B3 = 1

return B3 = gcd(m, b); B2 = b–1 mod mB2: multiplicative inverse of b with modulus m

4. Q = A3/B3 5. (T1, T2, T3)(A1 – Q B1, A2 – Q B2, A3 – Q B3)6. (A1, A2, A3)(B1, B2, B3)7. (B1, B2, B3)(T1, T2, T3)8. goto 2Note: In this process, the invariants are: A3 = A2.b + A1.m and B3 = B2.b + B1.m

Page 72: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

72

Example: Inverse of 550 in GF(1759)

Hence 355 is multiplicative inverse of 550 mod 1759. If B2 be –ve, subtract it from m to get the answer.

Page 73: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

73

Example: 1283031 mod 3599 … continued 6 Finding Inverses: EXTENDED EUCLID ALGORITHM

N1 = N/ n1 = 59; R1.59 mod 61 = 1

1 0 61 0 1 591 0 1 59 1 -1 229 1 -1 2 -29 30 1Therefore R1 = 30

N2 = N/ n2 = 61; R2.61 mod 59 = R2.(61 mod 59). mod 59 = R2.2 mod 59 =1

1 0 59 0 1 229 0 1 2 1 -29 1

Therefore R2 = -29 + 59 = 30

Page 74: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

74

Example: 1283031 mod 3599 … continued 7 To Find A by using CRTA = (55*59*30 + 52*61*30) mod 3599=((55*59 + 52*61) mod 3599 *30) mod 3599 =((3245 + 3172) mod 3599 *30) mod 3599 =((6417) mod 3599 *30) mod 3599=(2818*30) mod 3599=(84540) mod 3599=1763The calculation requires two multiplicative

inverses.

Page 75: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

75

Example: 1283031 mod 3599 … continued 8 To Find A by using Garner’s FormulaGarner’s Formula:

A = (((a1- a2)(R1 mod p)) mod p)q + a2

where (R1. q-1 )mod p = 1 i.e. R1 = q-1 for mod p

Note: Garner’s formula requires the calculation of only one inverse – which can be pre-computed.

R1 = 30

A = (((55- 52)(30 mod 61)) mod 61)59 + 52 = 29x59 + 52 = 1711 + 52 = 1763.Reference: http://en.wikipedia.org/?

title=Talk:Chinese_remainder_theorem

Page 76: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

76

Key Generation Select two large prime numbers p and q. -- each of the order of 1024 bits about 309

decimal digits n = p.q Iterative process: (may use Euclid’s Extended

Algorithm or some more efficient one) Select e such that gcd (z,e) =1 ---The probability that two random numbers would be

relatively prime is said to be 0.6.

Select d such that d.e = 1 mod zRSA decryption: 4 times faster than in CRT;

requires twice the memory

Page 77: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

77

Security Security is in factorization of large numbers 155 dec digits (512 bits) number was

factorized in Aug 99 using 8000 MIPs-Years. (A 1 GHz Pentium is a 250 MIPs machine. Thus using one pentium machine, it may have taken 32 years to do the job.)

In 1999, it was thought that 1024 bits number would take about 10 million

MIPs-Years (40,000 years of a pentium machine)

2005: 1024 bit number was factorized

Page 78: 1 "The demand is for people who really understand and have practiced forensics, for people who really understand and have practiced intrusion detection,

78

Public-Key Cryptography Standard (PKCS) #1: RSA Cryptography StandardReference: ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.doc as of Nov 18, 2007

Two Formats for RSA For message encryption (Ref: Section 7.2.1

Step 2b)

NOTES: 1 byte of 0s; second byte specifies message; eight random octets: cipher different; a byte of zeros ends padding

For signatures (Ref: Section 9.2 Step 5)

0 2 At least 8 random nonzero octets

0 data

0 1 At least 8 octets of FF

0 data