Week 4 PDF
Week 4 PDF
Week 4 PDF
Introduction
will now introduce finite fields of increasing importance in cryptography
AES, Elliptic Curve, IDEA, Public Key
Divisors
say a non-zero number b divides a if for some m have a=mb (a,b,m all integers) that is b divides into a with no remainder denote this b|a and say that b is a divisor of a eg. all of 1,2,3,4,6,8,12,24 divide 24 eg. 13 | 182; 5 | 30; 17 | 289; 3 | 33; 17 | 0
Properties of Divisibility
If a|1, then a = 1. If a|b and b|a, then a = b. Any b /= 0 divides 0. If a | b and b | c, then a | c
e.g. 11 | 66 and 66 | 198 x 11 | 198
Division Algorithm
if divide a by n get integer quotient q and integer remainder r such that:
a = qn + r where 0 <= r < n; q = floor(a/n)
define gcd(0, 0) = 0 often want no common factors (except 1) define such numbers as relatively prime
eg GCD(8,15) = 1 hence 8 & 15 are relatively prime
Example GCD(1970,1066)
1970 = 1 x 1066 + 904 gcd(1066, 904) 1066 = 1 x 904 + 162 gcd(904, 162) 904 = 5 x 162 + 94 gcd(162, 94) 162 = 1 x 94 + 68 gcd(94, 68) 94 = 1 x 68 + 26 gcd(68, 26) 68 = 2 x 26 + 16 gcd(26, 16) 26 = 1 x 16 + 10 gcd(16, 10) 16 = 1 x 10 + 6 gcd(10, 6) 10 = 1 x 6 + 4 gcd(6, 4) 6 = 1 x 4 + 2 gcd(4, 2) 4 = 2 x 2 + 0 gcd(2, 0)
GCD(1160718174, 316258250)
Dividend a = 1160718174 b = 316258250 r1 = 211943424 r2 = 104314826 r3 = 3313772 r4 = 1587894 r5 = 137984 r6 = 70070 r7 = 67914 r8 = 2516 Divisor b = 316258250 r1 = 211943424 r2 = 104314826 r3 = 3313772 r4 = 1587894 r5 = 137984 r6 = 70070 r7 = 67914 r8 = 2516 r9 = 1078 Quotient q1 = 3 q2 = 1 q3 = 2 q4 = 31 q5 = 2 q6 = 11 q7 = 1 q8 = 1 q9 = 31 q10 = 2 Remainder r1 = 211943424 r2 = 104314826 r3 = 3313772 r4 = 1587894 r5 = 137984 r6 = 70070 r7 = 67914 r8 = 2516 r9 = 1078 r10 = 0
Modular Arithmetic
define modulo operator a mod n to be remainder when a is divided by n
where integer n is called the modulus
modular arithmetic is when do addition & multiplication and modulo reduce answer can do reduction at any point, ie
a+b mod n = [a mod n + b mod n] mod n
4 4 5 6 7 0 1 2 3
5 5 6 7 0 1 2 3 4 6 6 7 0 1 2 3 4 5 7 7 0 1 2 3 4 5 6
Modulo 8 Multiplication
* 0 1 2 3 4 5 6 7 0 0 0 0 0 0 0 0 0 1 0 1 2 3 4 5 6 7 2 0 2 4 6 0 2 4 6 3 0 3 6 1 4 7 2 5
4 0 4 0 4 0 4 0 4
5 0 5 2 7 4 1 6 3 6 0 6 4 2 0 6 4 2 7 0 7 6 5 4 3 2 1
Euclidean Algorithm
an efficient way to find the GCD(a,b) uses theorem that:
GCD(a,b) = GCD(b, a mod b)
at end find GCD value and also x & y if GCD(a,b)=1 these values are inverses
Finding Inverses
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 = b1 mod m 4. Q = A3 div 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
1
0
0
1
1759
550
0
1
1
3
550
109
5
21 1
1
5 106
3
16 339
109
5 4
5
106 111
16
339 355
5
4 1
Group
a set of elements or numbers
may be finite or infinite
with some operation whose result is also in the set (closure) obeys:
associative law: has identity e: has inverses a-1: (a.b).c = a.(b.c) e.a = a.e = a a.a-1 = e
if commutative
a.b = b.a
Cyclic Group
define exponentiation as repeated application of operator
example: a-3 = a.a.a
and let identity be: e=a0 a group is cyclic if every element is a power of some fixed element
ie b = ak for some a and every b in group
Ring
a set of numbers with two operations (addition and multiplication) which form: an abelian group with addition operation and multiplication:
has closure is associative distributive over addition:
a(b+c) = ab + ac
if multiplication operation is commutative, it forms a commutative ring if multiplication operation has an identity and no zero divisors, it forms an integral domain
Field
a set of numbers with two operations which form:
abelian group for addition abelian group for multiplication (ignoring 0) ring
hence arithmetic is well-behaved and can do addition, subtraction, multiplication, and division without leaving the field GF(p)
0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 2 0 2 4 6 1 3 5 3 0 3 6 2 5 1 4 4 0 4 1 5 2 6 3 5 0 5 3 1 6 4 2 6 0 6 5 4 3 2 1
Polynomial Arithmetic
can compute using polynomials
f(x) = anxn + an-1xn-1 + + a1x + a0 = aixi
nb. not interested in any specific value of x which is known as the indeterminate
Polynomial Division
can write any polynomial in the form:
f(x) = q(x) g(x) + r(x) can interpret r(x) as being a remainder r(x) = f(x) mod g(x)
if have no remainder say g(x) divides f(x) if g(x) has no divisors other than itself & 1 say it is irreducible (or prime) polynomial arithmetic modulo an irreducible polynomial forms a field
Polynomial GCD
can find greatest common divisor for polys
c(x) = GCD(a(x), b(x)) if c(x) is the poly of greatest degree which divides both a(x), b(x)
Example GF(23)
Computational Considerations
since coefficients are 0 or 1, can represent any such polynomial as a bit string addition becomes XOR of these bit strings multiplication is shift & XOR
cf long-hand multiplication
modulo reduction done by repeatedly substituting highest power with remainder of irreducible poly (also shift & XOR)
Computational Example
in GF(23) have (x2+1) is 1012 & (x2+x+1) is 1112 so addition is and multiplication is
(x2+1) + (x2+x+1) = x 101 XOR 111 = 0102
(x+1).(x2+1) = x.(x2+1) + 1.(x2+1) = x3+x+x2+1 = x3+x2+x+1 011.101 = (101)<<1 XOR (101)<<0 = 1010 XOR 101 = 11112
Using a Generator
equivalent definition of a finite field a generator g is an element whose powers generate all non-zero elements
in F have 0, g0, g1, , gq-2
can create generator from root of the irreducible polynomial then implement multiplication by adding exponents of generator
Summary
have considered:
divisibility & GCD modular arithmetic with integers concept of groups, rings, fields Euclids algorithm for GCD & Inverse finite fields GF(p) polynomial arithmetic in general and in GF(2n)
true random numbers provide this care needed with generated random numbers
PRNG Requirements
randomness
uniformity, scalability, consistency
unpredictability
forward & backward unpredictability use same tests to check
note that an attacker can reconstruct sequence given a small number of values have possibilities for making this harder
unpredictable, passes next-bit test security rests on difficulty of factoring N is unpredictable given any run of bits slow, since very large numbers must be used too slow for cipher use, good for key generation
OFB
Xi = EK[Xi-1]
Stream Ciphers
process message bit by bit (as a stream) have a pseudo random keystream combined (XOR) with plaintext bit by bit randomness of stream key completely destroys statistically properties in message
Ci = Mi XOR StreamKeyi
properly designed, can be as secure as a block cipher with same size key but usually simpler & faster
RC4
a proprietary cipher owned by RSA DSI another Ron Rivest design, simple but effective variable key size, byte-oriented stream cipher widely used (web SSL/TLS, wireless WEP/WPA) key forms random permutation of all 8-bit values uses that permutation to scramble input info processed a byte at a time
RC4 Encryption
encryption continues shuffling array values sum of shuffled pair selects "stream key" value from permutation XOR S[t] with next byte of message to en/decrypt
i = j = 0 for each message byte Mi i = (i + 1) (mod 256) j = (j + S[i]) (mod 256) swap(S[i], S[j]) t = (S[i] + S[j]) (mod 256) Ci = Mi XOR S[t]
RC4 Overview
RC4 Security
claimed secure against known attacks
have some analyses, none practical
result is very non-linear since RC4 is a stream cipher, must never reuse a key have a concern with WEP, but due to key handling rather than RC4 itself
starting to see such h/w in new CPU's problems of bias or uneven distribution in signal
have to compensate for this when sample, often by passing bits through a hash function best to only use a few noisiest bits from each sample RFC4086 recommends using multiple sources + hash
Published Sources
a few published collections of random numbers Rand Co, in 1955, published 1 million numbers
generated using an electronic roulette wheel has been used in some cipher designs cf Khafre
Summary
pseudorandom number generation stream ciphers RC4 true random numbers