Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Mathematics of radio engineering wikipedia , lookup
Location arithmetic wikipedia , lookup
Index of cryptography articles wikipedia , lookup
Vincent's theorem wikipedia , lookup
List of prime numbers wikipedia , lookup
List of first-order theories wikipedia , lookup
Factorization wikipedia , lookup
Proofs of Fermat's little theorem wikipedia , lookup
Quadratic reciprocity wikipedia , lookup
Factorization of polynomials over finite fields wikipedia , lookup
Number Theory and Advanced Cryptography 1. Finite Fields and AES Part I: Introduction to Number Theory Part II: Advanced Cryptography Chih-Hung Wang Sept. 2011 1 Group A set of elements or “numbers” obeys: (A1) Closure: If a and b belong to G, then ab is also in G. (A2) Associative: (ab) c = a(b c) (A3) Identity element: There is an element e in G such that a e = e a = a (A4) Inverses element: For each a in G there is an element a’ in G such that a a’ = a’ a = e If commutative (A5) a b = b a for all a, b in G then forms an abelian group 2 Cyclic Group Define exponentiation as repeated application of operator Define identity: e=a0 a-n=(a’)n A group is cyclic if every element is a power of some fixed element example: a-3 = a a a ie b = ak for some a and every b in group G a is said to generate the group G or to be a generator of G. 3 Ring A set of “numbers” with two operations (addition + and multiplication ) which are: An abelian group with addition operation (A1-A5) Multiplication: (M1) Closure (M2) Associative: a(bc)=(ab)c (M3) Distributive law: a(b+c) = ab + ac If multiplication operation is commutative, it forms a commutative ring (M4) Commutativity of multiplication: ab=ba If multiplication operation has identity and no zero divisors, it forms an integral domain (M5) Multiplicative identity: There is an element 1 in R such that a1=1a =a (M6) No zero divisors: If a,b in R and ab=0, then either a=0 or 4 b=0. Field A set of numbers with two operations: Abelian group for addition (A1-A5) Abelian group for multiplication (ignoring 0) (M1M6) (M7) Multiplicative inverse: For each a in F, except 0, there is an element a-1 in F such that aa-1=(a-1)a =1. 5 Group, Ring and Field 6 Modular Arithmetic Define modulo operator a mod n to be remainder when a is divided by n Use the term congruence for: a ≡ b mod n r is called the residue of a mod n when divided by n, a & b have the same remainder eg. 73 ≡ 4 mod 23 since with integers can always write: a = qn + r Usually have 0 <= b <= n-1 -12 mod 7 ≡ -5 mod 7 ≡ 2 mod 7 ≡ 9 mod 7 7 The Relationship a = qn + r, 0r<n 8 Modulo 7 Example ... -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 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 ... 9 Divisors Say a non-zero number b divides a if for some m have a=mb (a,b,m are all integers) That is b divides into a with no remainder Denote this b|a Also say that b is a divisor of a eg. all of 1,2,3,4,6,8,12,24 divide 24 10 Modular Arithmetic Operations is 'clock arithmetic' uses a finite number of values, and loops back from either end 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 a-b mod n = [(a mod n) – (b mod n)] mod n ab mod n = [(a mod n) (b mod n)] mod n 11 Property a b mod n if n | (a b) a b mod n implies b a mod n a b mod n and b c mod n imply a c mod n 12 Modular Arithmetic Can do modular arithmetic with any group of integers: Zn = {0, 1, … , n-1} form a commutative ring for addition with a multiplicative identity note some peculiarities if (a+b)≡(a+c) mod n then b≡c mod n but (ab)≡(ac) mod n then b≡c mod n only if a is relatively prime to n 13 Relatively Prime Relative prime: their only common positive integer factor is 1. An integer has a multiplicative inverse in Zn if that integer is relatively prime to n. (( a 1 )ab) (( a 1 )ac) mod n b c mod n Example: 63=18 ≡ 2 mod 8 67=42 ≡ 2 mod 8 3 ≡ 7 mod 8 6 and 8 are not relatively prime 14 Residue Class The residue classes modulo n as [0], [1], [2], …, [n-1] where [r] = {a: a is an integer, a ≡ r mod n} Z8 0 1 2 3 4 5 6 7 6 0 6 12 18 24 30 36 42 Residues 0 6 4 2 0 6 4 2 15 Multiplicative Inverse Z8 0 1 2 3 4 5 6 7 5 0 5 10 15 20 25 30 35 Residues 0 5 2 7 4 1 6 3 If p is a prime number, then all the elements of Zp are relatively prime to p Multiplicative inverse (w-1) For each w Z p there exists a z such that w z 1 mod p For each w Z n and gcd(w,n)=1, there exists a z such that w z 1 mod n 16 Modulo 8 Example (1) 17 Modulo 8 Example (2) 18 Properties of Modular Arithmetic for Integer Zn 19 Greatest Common Divisor (GCD) A common problem in number theory GCD (a,b) of a and b is the largest number that divides evenly into both a and b eg GCD(60,24) = 12 Often want no common factors (except 1) and hence numbers are relatively prime eg GCD(8,15) = 1 hence 8 & 15 are relatively prime 20 Euclid's GCD Algorithm An efficient way to find the GCD(a,b) uses theorem that: GCD(a,b) = GCD(b, a mod b) gcd(55,22)=gcd(22,55 mod 22)=gcd(22,11)=11 Euclid's Algorithm to compute GCD(a,b): EUCLID(a,b) 1. A a; B b 2. If B=0 return A=gcd(a,b) 3. R = A mod B 4. A B 5. B R 6. goto 2 21 Example GCD(1970,1066) 1970 = 1 x 1066 + 904 1066 = 1 x 904 + 162 904 = 5 x 162 + 94 162 = 1 x 94 + 68 94 = 1 x 68 + 26 68 = 2 x 26 + 16 26 = 1 x 16 + 10 16 = 1 x 10 + 6 10 = 1 x 6 + 4 6=1x4+2 4=2x2+0 gcd(1066, 904) gcd(904, 162) gcd(162, 94) gcd(94, 68) gcd(68, 26) gcd(26, 16) gcd(16, 10) gcd(10, 6) gcd(6, 4) gcd(4, 2) gcd(2, 0) 22 Galois Fields Finite fields play a key role in cryptography Can show number of elements in a finite field must be a power of a prime pn Known as Galois fields Denoted GF(pn) In particular often use the fields: GF(p) GF(2n) 23 Galois Fields GF(p) GF(p) is the set of integers {0,1, … , p-1} with arithmetic operations modulo prime p These form a finite field since have multiplicative inverses Hence arithmetic is “well-behaved” and can do addition, subtraction, multiplication, and division without leaving the field GF(p) 24 Example GF(7) -- (1) 25 Example GF(7) -- (2) 26 Finding Inverses (1) Can extend 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 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 27 Finding Inverses (2) mT1 bT2 T3 mA1 bA2 A3 mB1 bB2 B3 mB1 bB2 B3 mB1 bB2 1 bB2 1 mB1 bB2 1 mod m 28 Inverse of 550 in GF(1759) 3 1759 1650 550 545 109 5 5 29 Polynomial Arithmetic Ordinary polynomial arithmetic A polynomial with degree n n n n 1 f ( x) an x an 1 x ... a1 x a0 ai x i i 0 n m i 0 i 0 f ( x) ai x i , g ( x) bi x i , n m m f ( x) g ( x) (ai bi ) x i i 0 n i a x i i m 1 nm f ( x) g ( x) ci x i , where i 0 ck a0bk a1bk 1 ... ak 1b1 ak b0 30 Polynomial Arithmetic with Coefficients in Zp Polynomial ring Example of GF(2) 31 Example of GF(2) 32 Irreducible A polynomial f(x) over a field F is called irreducible if and only if f(x) cannot be expressed as a product of two polynomials. The polynomial f ( x) x 4 1 over GF(2) is reducible because x 4 1 ( x 1)( x3 x 2 x 1) x3 x 1 is irreducible 33 Finding the GCD EUCLID Algorithm 34 Finite Fields of the Form GF(2n) To work with integers that fit exactly into a given number of bits, with no wasted bit patterns. (for implementation efficiency) Arithmetic in GF(23) Addition 35 Arithmetic in GF(23) Multiplication 36 Arithmetic in GF(23) Additive and multiplicative inverses 37 Modular Polynomial Arithmetic Consider the set S of all polynomials of degree n-1 or less over the field Zp. Thus, each polynomial has the form n 1 f ( x) ai x i i 1 where each ai takes on a value in the set {0,1,…,p-1}. There are a total of pn different polynomials in S. 38 Arithmetic Operations Arithmetic follows the ordinary rules of polynomial arithmetic using the basic rules of algebra, with the following refinements. Arithmetic on the coefficients is performed modulo p. That is, we use the rules of arithmetic for the finite field Z p. If multiplication results in a polynomial of degree greater than n-1, than the polynomial is reduced modulo some irreducible polynomial m(x) of degree n. That is, we divide by m(x) and keep the remainder. For a polynomial f(x), the remainder is expressed as r(x)=f(x) mod m(x). 39 Example of GF(28) – in AES (1) 40 Example of GF(28) – in AES (2) 41 Construction of GF(23) Two irreducible polynomials in GF(23) x3 x 2 1 x3 x 1 42 Polynomial Arithmetic Modulo 3 x x 1 (1) 43 Polynomial Arithmetic Modulo 3 x x 1 (2) 44 Finding the Multiplicative Inverse 45 Implementation Considerations (1) Addition 46 Implementation Considerations (2) Multiplication (1) 47 Implementation Considerations (3) Multiplication (2) 48 Implementation Considerations (4) Multiplication (3) 49 AES (Advanced Encryption Standard) Next generation encryption standard of NIST/FIPS It will replace the use of DES in the following 30 years The sensitive information protected by AES can not be revealed within 100 years It is selected by the competition from international selection process 50 Calendar of AES Announcement Requirements workshop Final requirements Pre-submission Submission AES conference 1-presentation AES conference 2-analysis Selection of 5 finalists AES conference 3 Final AES selection January 1997 April 1997 September 1997 April 15,1998 June15,1998 August 20-22,1998 March 22-23,1999 April 15,1999 Beginning of 2000? October 2, 2000 51 AES Requirements Block cipher 128-bit block 128/192/256-bit keys It is equal to Triple DES at least on security and is more efficient Provide descriptions and analysis Provide three implementations in two languages (reference and optimized in C,optimized in Java) IF selected, royalty free world wide 52 The 15 Submission for AES (1) Cipher Submitted Country CAST-256 Entrust Canada Crypton Future Korea Deal Outerbridge Canada DFC ENS-CNRS France E2 NTT Japan Frog TecApro Costa Rica HPC Schroeppel USA LOKI97 Brown,Pieprzyk,Seberry Australia 53 The 15 Submission for AES (2) Magenta * Mars * RC6 * Rijndael Safer+ * Serpent * Twofish Deutsche IBM RSA Daeman,Rijmen Cylink Anderson,Biham ,Kundsen Counterpane Germany USA USA Belgium USA UK,Israel ,Norway USA 54 Final AES Selection Rijndael Block cipher with block size 128 bits Accept 128-, 192-, 256-bit length keys Easy to implement in H/W 55 The Implementation of Crypto Algorithms (W32) http://www.cryptosoft.com Crypto++: a C++ Class Library of Cryptographic Primitives Different platforms: win16, win32, linux, OS/2,… Triple DES, Rijndael, Safer+, Blowfish, Cast-128, … Version 3.0 1/1/1999 http://www.eskimo.com/~weidai/cryptlib.html Microsoft CryptoAPI 56 More AES Information NIST AES Homepage http://csrc.nist.gov/encryption/aes/ Rijndael Specification Those who are interested in the AES specification (i.e., what will be in the standard) should refer to the Draft FIPS for the AES. Test Values Supporting Documentation Rijndael Developers' Contact Information Rijndael Code: C/C++/Java/Visual Basic Rijndael Homepage http://www.esat.kuleuven.ac.be/~rijmen/rijndael/ 57 The AES Cipher AES Parameters 58 The AES Cipher - Rijndael Designed by Rijmen-Daemen in Belgium 128/192/256 bit keys, 128 bit data An iterative rather than feistel cipher treats data in 4 groups of 4 bytes operates an entire block in every round Designed to be: resistant against known attacks speed and code compactness on many CPUs design simplicity 59 Rijndael Processes data as 4 groups of 4 bytes (state) Steps byte substitution (uses an S-box to perform a byte-by-byte substitution of the block) shift rows (a simple permutation) mix columns (substitution uses arithmetic over GF(28)) add round key (a simple bitwise XOR of the current block with a portion of the expanded key) All operations can be combined into XOR and table lookups - hence very fast & efficient 60 Rijndael 61 AES Data Structure 62 Byte Substitution A simple substitution of each byte Uses one table of 16x16 bytes containing a permutation of all 256 8-bit values Each byte of state is replaced by byte in row (left 4bits) & column (right 4-bits) eg. byte {95} is replaced by row 9 col 5 byte which is the value {2A} S-box is constructed using a defined transformation of the values in GF(28) Designed to be resistant to all known attacks 63 Example of the SubBytes 64 S-box of AES (1) 65 S-box of AES (2) 66 AES Byte-Level Operations (1) 67 AES Byte-Level Operations (2) 68 Construction of the S-box (1) 69 Construction of the S-box (2) 70 Construction of the S-box (3) {95}-1 in GF(28) = {8A} = {10001010} 71 Construction of the S-box (4) Inverse substitute byte transformation 72 Construction of the S-box (5) 73 Shift Rows (1) A circular byte shift in each each 1st row is unchanged 2nd row does 1 byte circular shift to left 3rd row does 2 byte circular shift to left 4th row does 3 byte circular shift to left Decrypt does shifts to right Since state is processed by columns, this step permutes bytes between the columns 74 Shift Rows (2) 75 Mix Columns (1) Each column is processed separately Each byte is replaced by a value dependent on all 4 bytes in the column Effectively a matrix multiplication in GF(28) using prime polynomial m(x) =x8+x4+x3+x+1 76 Mix Columns (2) 77 Example of the MixColumns (1) 78 Example of the MixColumns (2) 79 Inverse MixColumns (1) 80 Inverse MixColumns (2) 81 Add Round Key XOR state with 128-bits of the round key Again processed by column (though effectively a series of byte operations) Inverse for decryption is identical since XOR is own inverse, just with correct round key Designed to be as simple as possible 82 AES Round 83 Example of Add Round Key 84 AES Key Expansion Takes 128-bit (16-byte) key and expands into array of 44/52/60 32-bit words Start by copying key into first 4 words Then loop creating words that depend on values in previous & 4 places back in 3 of 4 cases just XOR these together every 4th has S-box + rotate + XOR constant of previous before XOR together Designed to resist known attacks 85 Algorithm (1) 86 Algorithm (2) 87 Example of AES Key Expansion 88 AES Decryption (1) AES decryption is not identical to encryption since steps done in reverse But can define an equivalent inverse cipher with steps as for encryption but using inverses of each step with a different key schedule Works since result is unchanged when swap byte substitution & shift rows swap mix columns & add (tweaked) round key 89 AES Decryption (2) Equivalent Inverse 90 Implementation Aspects Can efficiently implement on 8-bit CPU byte substitution works on bytes using a table of 256 entries shift rows is simple byte shifting add round key works on byte XORs mix columns requires matrix multiply in GF(28) which works on byte values, can be simplified to use a table lookup 91 Implementation Aspects Can efficiently implement on 32-bit CPU redefine steps to use 32-bit words can precompute 4 tables of 256-words then each column in each round can be computed using 4 table lookups + 4 XORs at a cost of 4*(1024 bytes) to store tables Designers believe this very efficient implementation was a key factor in its selection as the AES cipher 92