Date post: | 06-May-2015 |
Category: |
Education |
Upload: | alexander-kolybelnikov |
View: | 161 times |
Download: | 0 times |
Agenda
• Field of block ciphers application
• Galois fields, operations with polynomials
• Feistel scheme
• GOST 28147-89
• AES
• Encryption algorithms application schemes
Field of block ciphers application
Block ciphers advantages
• Effective realization on modern soft-hardware platforms;
• High speed of encryption/decryption;
• Guaranteed stability.
Galois fields, operations with polynomials
Galois fields
• Finite field (Galois field) is a field that contains finite number of elements
• Finite field is commonly expressed as GF(q), q is a number of the field elements.
• Simple example of finite field is residue ring modulo a prime number p.
Galois fields• Field GF(pn) defining (p is a prime number, n is a natural number) starts with defining
of its prime subfield GF(p) (that is equal to the whole field for n=1).
• Prime field GF(p) is defined as a residue ring modulo p, that doesn't have zero divisors
and is a field (because p is a prime number).
• Elements are numbers. Operate with elements like integer numbers, reducting a result
on p modulo.
• Field GF(pn) for n>1 is defined as a factor ring, f(x) is a prime polynomial of degree n
on the field. So to define a field from pn elements it is enough to find a polynomial of
degree n that is a prime for the field.
• Field elements are polynomials of degree less than n. Arithmetic operations (addition
and multipliciation) are on modulo of polynomial f(x), so the result corresponding to an
operation is a remainder from division by f(x) with reduction of coefficients on modulo
p.
Operations with polynomials
• Polynomial of n variables is a finite formal sum:
I = (i1,i2,...,in) is a set of integer non-negative numbers (multiindex), cI is a number
(polynomial coefficient) that depends only on multiindex I.
Feistel scheme
Feistel scheme
GOST 28147-89
• Key length is 256 bits;
• Crypto unit is 64 bits;
• Number of cycles is 32.
GOST 28147-89
Encryption GOST 28147-89
S-block example
• 4, 13, 0, 14, 8, 7, 10, 2, 5, 1, 9, 6, 11, 15, 12, 3
AES
• Key length is 128-256 bits;
• Crypto unit is 128 bits;
• Number of cycles is 10, 12, 14.
AES
AES cycle
• SubBytes()
• ShiftRows()
• MixColumns()
• AddRoundKey()
SubBytes
SubBytes() procedure processes each status byte, independently making non-linear bytes replacement with the use of substitution table (S-box). This operation provides nonlinearity of encryption algorithm. S-box construction involves two stages. At first, taking of inverse number in GF{28} is executed. Secondly, the operation in the picture above is applied to each byte of S-box.
SubBytes
bi is i bit of b, ci is i bit of c = {63} or {01100011}. This provides attack protection based on simple algebraic properties.
ShiftRows• ShiftRows() procedure processes State rows. This
transformation automatically moves state rows cyclically on r bytes horizontally depending on a row number. For null row r = 0, for the first row r = 1b etc... So each result column (after ShiftRows() procedure applying) consists of bytes of each initial column. For Rijndael algorithm pattern of rows moving is identical for rows consisting of 128 and 192 bits. But for a block of 256 bits pattern differs in the way that 2, 3, and 4 rows are moved on 1, 3 and 4 bytes correspondingly.
MixColumns • In MixColumns() procedure four bytes of each
State column mix using reversible linear transformation. MixColumns() processes states by columns interpreting each column as a polynomial of 4 degree. Multiplying in GF(28) modulo x4 + 1 into fixed polynomial c(x) = 3x3 + x2 + x + 2 is applied to these polynomials. As ShiftRows() procedure, MixColumns() also adds diffusion to a cipher .
AddRoundKey• In AddRoundKey() procedure RoundKey of each
round is united with State. For each round Roundkey is received from CipherKey using KeyExpansion procedure; each RoundKey is of the same size as State. This procedure executes bit-mapped XOR of each State byte with each RoundKey byte.
Ciphers application schemes
Electronic Code Book (ECB)
Cipher block chaining
Cipher Feed back mode
Output feedback mode
XTS mode