Seminar #3
Block ciphers
Kolybelnikov Alexander
kisttan@gmail.com
Agenda
•
•
•
•
•
•

Field of block ciphers application
Galois fields, operations with polynomials
Feistel scheme
GOST 2814...
Field of block ciphers application
Block ciphers advantages
• Effective realization on modern soft-hardware
platforms;
• High speed of encryption/decryption;...
Galois fields, operations with
polynomials
Galois fields
• Finite field (Galois field) is a field that contains
finite number of elements
• Finite field is commonly ...
Galois fields
•

Field GF(pn) defining (p is a prime number, n is a natural number) starts with defining
of its prime subf...
Operations with polynomials
•

Polynomial of n variables is a finite formal sum:

I = (i1,i2,...,in) is a set of integer n...
Feistel scheme
Feistel scheme
GOST 28147-89
GOST 28147-89
• Key length is 256 bits;
• Crypto unit is 64 bits;
• Number of cycles is 32.
Encryption GOST 28147-89
S-block example
• 4, 13, 0, 14, 8, 7, 10, 2, 5, 1, 9, 6, 11, 15, 12, 3
AES
AES
• Key length is 128-256 bits;
• Crypto unit is 128 bits;
• Number of cycles is 10, 12, 14.
AES cycle
•
•
•
•

SubBytes()
ShiftRows()
MixColumns()
AddRoundKey()
SubBytes

SubBytes() procedure processes each status byte,
independently making non-linear bytes replacement
with the use ...
SubBytes
bi is i bit of b, ci is i bit of c = {63}
or {01100011}. This provides attack
protection based on simple algebrai...
ShiftRows
• ShiftRows() procedure processes State rows. This
transformation automatically moves state rows cyclically
on r...
MixColumns
• In MixColumns() procedure four bytes of each
State column mix using reversible linear
transformation. MixColu...
AddRoundKey
• In AddRoundKey() procedure RoundKey of each
round is united with State. For each round
Roundkey is received ...
Ciphers application schemes
Electronic Code Book (ECB)
Cipher block chaining
Cipher Feed back mode
Output feedback mode
XTS mode
Upcoming SlideShare
Loading in …5
×

Information security Seminar #3

342 views

Published on

Information security seminar for 4th course of MIPT. Symmetric block ciphers. AES.

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
342
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Information security Seminar #3

  1. 1. Seminar #3 Block ciphers Kolybelnikov Alexander kisttan@gmail.com
  2. 2. Agenda • • • • • • Field of block ciphers application Galois fields, operations with polynomials Feistel scheme GOST 28147-89 AES Encryption algorithms application schemes
  3. 3. Field of block ciphers application
  4. 4. Block ciphers advantages • Effective realization on modern soft-hardware platforms; • High speed of encryption/decryption; • Guaranteed stability.
  5. 5. Galois fields, operations with polynomials
  6. 6. 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.
  7. 7. 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.
  8. 8. 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.
  9. 9. Feistel scheme
  10. 10. Feistel scheme
  11. 11. GOST 28147-89
  12. 12. GOST 28147-89 • Key length is 256 bits; • Crypto unit is 64 bits; • Number of cycles is 32.
  13. 13. Encryption GOST 28147-89
  14. 14. S-block example • 4, 13, 0, 14, 8, 7, 10, 2, 5, 1, 9, 6, 11, 15, 12, 3
  15. 15. AES
  16. 16. AES • Key length is 128-256 bits; • Crypto unit is 128 bits; • Number of cycles is 10, 12, 14.
  17. 17. AES cycle • • • • SubBytes() ShiftRows() MixColumns() AddRoundKey()
  18. 18. 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.
  19. 19. 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.
  20. 20. 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.
  21. 21. 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 .
  22. 22. 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.
  23. 23. Ciphers application schemes
  24. 24. Electronic Code Book (ECB)
  25. 25. Cipher block chaining
  26. 26. Cipher Feed back mode
  27. 27. Output feedback mode
  28. 28. XTS mode

×