210 likes | 429 Views
The Rijndael Block Cipher. By Vincent Leith. Basics of Cryptography. Encryption – turning plaintext into unreadable nonsense Plaintext – Regular type or data to be encrypted Ciphertext – converted plaintext Cipher – algorithm used to encrypt and decrypt plaintext and ciphertext.
E N D
The Rijndael Block Cipher By Vincent Leith
Basics of Cryptography • Encryption – turning plaintext into unreadable nonsense • Plaintext – Regular type or data to be encrypted • Ciphertext – converted plaintext • Cipher – algorithm used to encrypt and decrypt plaintext and ciphertext.
Introduction • Created by Joan Daemen and Vincent Rijmen • American National Institute of Standards and Technology • Trying to create a new Advanced Encryption Standard (AES) • Held a contest to create a new encryption standard
Design • Resistance against all known attacks • Speed and code compactness on a wide range of platforms • Design simplicity
Finite Field Arithmetic • Rijndael operates in a GF(2^8) finite field • The field is byte based and expressed in Hex • b7X7 + b6X6 + b5X5 + b4X4 + b3X3 + b2X2 + b1X1 + bo • Example: • X7 + X6 + X4 + X3 + X2 + 1 = {11011101}
Finite Field Arithmetic (cont.) • 0000 = 0 • 0001 = 1 • 0010 = 2 • 0011 = 3 • 0100 = 4 • 0101 = 5 • 0110 = 6 • 0111 = 7 • 1000 = 8 • 1001 = 9 • 1010 = A • 1011 = B • 1100 = C • 1101 = D • 1110 = E • 1111 = F
Finite Field Arithmetic (cont.) • Addition done using bitwise EXOR • Example: ‘57’ +’83’ = ‘D4’ • (X6 + X4 + X2 + X+ 1) + (X7 + X +1) = X7 + X6 + X4 + X2 • Multiplication using modulo X8 + X4 + X3 + X + 1 • Example: ‘57’ ● ‘83’ = ‘C1’ • (X6 + X4 + X2 + X+ 1) (X7 + X +1) • = X13 + X11 + X9 + X8 + X6 + X5 + X4 + X3 + 1 mod • = X7 + X6 + 1
ByteSub Transformation • Transformation is a non-linear byte substitution, operating on each of the Statebytes independently.
ShiftRow Transformation • The rows of the State are cyclically shifted over different offsets. • Row 0 is not shifted, Row 1 is shifted over C1 bytes, row 2 over C2 bytes and row 3 over C3 bytes.
MixColumn Transformation • The columns of the State are considered as polynomials over GF(28) and multiplied modulo X4 + 1 with a fixed polynomial c(X) • b(X) = c(X) * a(X):
Round Key Addition • Applied to the State by a simple bitwise EXOR.
The Round Transformation • Matrix implementation of key addition and MixColumn • For ShiftRow and ByteSub transformations
The Round Transformation (cont.) • Using Substitution and taking the column indices to modulo Nb • Matrix multiplication of a linear combination of vectors
The Round Transformation (cont.) • Perform a table lookup for input bytes ai,j in the S-box table S[256] for multiplication factors • Using the above 4 tables the round transformation can now be expressed
Example of Encryption • 128 bit cipher: • Key: E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FA • Plaintext: 014BAF2278A69D331D5180103643E99A • Ciphertext: 6743C3D1519AB4F2CD9A78AB09A511BD • 192 bit cipher: • Key: 04050607090A0B0C0E0F10111314151618191A1B1D1E1F20 • Plaintext: 76777475F1F2F3F4F8F9E6E777707172 • Ciphertext: 5D1EF20DCED6BCBC12131AC7C54788AA • 256 bit cipher: • Key: 08090A0B0D0E0F10121314151718191A1C1D1E1F21222324262728292B2C2D2E • Plaintext: 069A007FC76A459F98BAF917FEDF9521 • Ciphertext: 080E9517EB1677719ACF728086040AE3
For Example of Actual Code • http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndael.aspx
Acknowledgements • http://www.eng.tau.ac.il/~yash/crypto-netsec/rijndael_files/rijnov.gif • http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndael.aspx • http://www.hanewin.net/encrypt/aes/aes-test.htm • AES Proposal: Rijndael by Joan Daemen, Vincent Rijmen