Paar & Pelzl, Capítulos 3,4 Confusão e difusão Cifras de Feistel, DES S-box e criptanálise diferencial Ataques de força bruta O standard AES ByteSub, ShiftRows & MixColumns, KeySchedule Aritmética em corpos de Galois %%%% Cifras de Feistel e DES (standard 1977-1999) e(x,c) = (IP; h1; s; … ; hn-1; s; hn; IPinv) (x) com hi(L,R) = (L + f(R,ci), R) s(L,R) = (R,L) d(x,c) = (IP; hn; s; hn-1; s … ; h2; s; h1; IPinv) (x) basta inverter as subchaves ci DES usa blocos de 64 bits, c de 56 bits, ci de 48 bits, n = 16 Função f usa expansão de 32 para 48 bits, permutação e soma com ci 8 S-boxes não lineares de 6 para 4 bits permutação final subchaves geradas por rotação de blocos e permutação %%%% Criptanálise diferencial de S-box usa (muitos!) pares texto-cifra análise estatística de diferenciais (Dx,Dy) onde Dy=S(x+Dx)+S(x) %%%% Ataques de força bruta 56 bits … 3DES seguro, usado em sistemas antigos %%%% Cifra por camadas, Rijndael = AES (standard desde 2001) AES(x,c) = (KeyAdd(c0); ByteSub; ShiftRows; MixColumns; KeyAdd(c1); ByteSub; ShiftRows; MixColumns; KeyAdd(c2); … ByteSub; ShiftRows; MixColumns; KeyAdd(cr-1); ByteSub; ShiftRows; KeyAdd(cr))(x) x tem 128 bits, tal como cada ci KeyAdd (ci) (x) = ci+x mod 2 ByteSub(A00 A04 A08 A12) = B onde Bi = M.inv(Ai) + V mod 2 e inv(Ai1,Ai2)=(invGF(Ai1),invGF(Ai2)) A01 A05 A09 A13 inversão em GF(2^8) altamente não linear A02 A05 A10 A14 seguida de afim que destrói a estrutura de GF A03 A09 A11 A15 confusão!!! ShiftRows(B00 B04 B08 B12) = (B00 B04 B08 B12) B01 B05 B09 B13 B05 B09 B13 B01 1 rotação à esquerda B02 B06 B10 B14 B10 B14 B02 B06 2 rotações à esquerda B03 B07 B11 B15 B15 B03 B07 B11 3 rotações à esquerda MixColumns(coluna) = M.coluna (em GF(2^8)) Por exemplo: ByteSub-byte(1100 0010) = ByteSub-byte (C2) = M.2F + V = M.(00101111) + V = 25 = 0010 0101 MixColumns(25)= (x.(x^5+x^2+1)) = (x^6+x^3+1) = (0100 1001) 00 … … 25 00 Subchaves ci: não linear e não simétrica Exercícios Ex1 O DES e o AES são cifras construídas sobre S-boxes não lineares. a) Traduza matematicamente o significado da afirmação. b) Calcule, para cada uma das cifras o resultado da aplicação de uma S-box aos seguintes pares de dados: i. x1 = 000000, x2 = 000001 ii. x1 = 111111, x2 = 100000 iii. x1 = 101010, x2 = 010101 c) O que pode concluir sobre a veracidade da afirmação! Ex2 Qual é o resultado da primeira iteração do DES quando o texto só contém zeros? E quando só contem 1's? Investigue o que sucede quando, em vez do DES, se usa o AES. Ex3 Recorde que uma boa cifra por blocos tem a propriedade de difusão. Considere o DES. a) Qual o significado da afirmação? b) Suponha que tem o texto a cifrar é composto por 0s excepto na posição 57 em que é 1, e que a chave também é composta apenas por 0s. i. Quantas S-boxes recebem inputs diferentes quando comparamos com o texto que só tem 0's? ii. Qual é o número de bits do texto cifrado que se espera que sejam alterados? Ex4 Uma chave DES diz-se fraca se o processo de cifra coincide com o processo de decifra qualquer que seja o texto cifrado. a) Existem algumas chaves fracas. Quantas e quais são? b) Deduza a probabilidade de uma chave gerada aleatoriamente ser fraca. Ex5 Calcule em GF(2^4) a soma e o produto (módulo o polinómio irredutível x^4 + x + 1) dos seguintes pares de polinómios: a) A(x)=x^2+1 e B(x)=x^3+x^2+1; b) A(x)=x^2+1 e B(x)=x+1; Ex6 Calcule em GF(2^4) os inversos de A(x)=x e de B(x)=x^2+x (módulo x^4 + x + 1). Ex7 Encontre todos os polinómios de grau 3 irredutíveis mod 2. Sugestão: considere todos os polinómios de grau inferior e teste se são factores ou não. Nível 1 – 1,2,5 Nível 2 – 3,6 Nível 3 – 4,7