1 / 31

Criptografia e Segurança de Rede Capítulo 4

Criptografia e Segurança de Rede Capítulo 4. Quarta Edição por William Stallings Tradução por Carlos Daniel Abreu. Capítulo 4 – Corpos Finitos.

sorcha
Download Presentation

Criptografia e Segurança de Rede Capítulo 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Criptografia e Segurança de Rede Capítulo 4 Quarta Edição por William Stallings Tradução por Carlos Daniel Abreu

  2. Capítulo 4 – Corpos Finitos Na manhã seguinte, ao nascer o dia, Star entrou em casa, aparentemente ávida por uma lição. Eu disse, "Mostre oito". Ela fez uma exibição brilhante, primeiro batendo 4-4, depois batendo rapidamente 2-2-2-2, antes de entrar. É incrível como Star aprendeu a contar até oito sem dificuldade. E do seu próprio jeito descobriu que cada número pode ser dado com diferentes divisões, isso não deixa dúvida de que estava conscientemente pensando em cada número. De fato, ela fez a aritmética mental, embora não possa, como os humanos, dar nome aos números. Mas ela aprendeu a reconhecer seus nomes falados quase imediatamente e lembrar dos sons dos nomes. Star é um pássaro silvestre único que, por vontade própria, buscou a ciência dos números com ávido interesse e incrível inteligência. Living with birds, Len Howard

  3. Introdução • Vamos agora apresentar Corpos Finitos • Do seu importante aumento na criptografia • AES, Curvas Elípticas, IDEA, Chave pública • Dizem a respeito de operações com números • Quando o que constitui um “número” e os tipos de operações varia consideravelmente. • Começaremos com conceitos de grupos, anéis e corpos de álgebra abstrata.

  4. Grupo • Um conjunto de elementos ou números • Com algumas operações cujo resultado é também no conjunto (encerramento) • Devemos cumprir: • Lei da associatividade: (a.b).c = a.(b.c) • Possui identidade: e.a = a.e = a • Possui inversa a-1: a.a-1 = e • Se for comutativo a.b = b.a • Então forma um grupo algébrico.

  5. Grupo Cíclico • definir exponenciação como aplicação repetida do operador • exemplo: a-3 = a.a.a • A identidade deve ser: e=a0 • Um grupo é cíclico se cada elemento for uma potência de um elemento fixo. • Ex.: b =ak para algum a e todo b no grupo • a é dito ser um gerador do grupo

  6. Anél • Um conjunto de números • Com duas operações (adição e multiplicação) que formam: • Um grupo comutativo com a operação de adição • E multiplicação: • fechamento • Associatividade • Leis distributivas: a(b+c) = ab + ac • Se a operação de multiplicação é comutativa, isso forma um anel comutativo • Se a operação de multiplicação tem uma identidade e nenhum divisor por zero, isso forma um domínio integral

  7. Corpos • Um conjunto de números • Com duas operações que formam: • Um grupo comutativo para adição • Um grupo comutativo para multiplicação (ignorando o 0) • Anel • Tem hierarquia com mais axiomas/leis • grupo -> anel -> corpo

  8. Aritmética Modular • Definimos módulo “a mod n” como o resto quando a é dividido por n • Usa-se o termo congruência para: a = b mod n • Quando divididos por n, a & b tem o mesmo resto • Ex.: 100 = 34 mod 11 • b é chamado o resíduo de a mod n • Desde que com inteiros possamos sempre escrever: a = qn + b • Normalmente escolha o menor positivo para deixar como reíduo • Ex.: 0 <= b <= n-1 • o processo é conhecido como Redução de Módulo • Ex.: -12 mod 7 = -5 mod 7 = 2 mod 7 = 9 mod 7

  9. Divisores • Dizemos que b diferente de zero divide a se a=mb para algum m, onde a,b e m são inteiros • b divide a se não houver resto na divisão • A notação é b|a • Dizemos que b é um divisor de a • Ex.: todos 1,2,3,4,6,8,12,24 dividem 24

  10. Operações de Aritmética Modular • Usa um número finito de valores • Aritmética modular é quando fazemos adição & multiplicação e redução de módulo. • Pode-se fazer a redução a qualquer momento, Ex.: • a+b mod n = [a mod n + b mod n] mod n

  11. Aritmética Modular • Pode-se fazer com qualquer grupo de inteiros: Zn = {0, 1, … , n-1} • Formando um anel comutativo para adição • Com identidade multiplicativa • Repare em algumas peculiaridades • if (a+b)=(a+c) mod n then b=c mod n • but if (a.b)=(a.c) mod n then b=c mod n somente se a for relativamente primo de n

  12. Modulo 8 Addition Example

  13. Máximo Divisor Comum (MDC) • Um problema comum na teoria dos números • MDC (a,b) de a e b é o maior número que divide igualmente em ambos a e b • Ex.: MDC(60,24) = 12 • Dizemos que dois inteiros a e b são relativamente primos se seu único fator inteiro positivo comum for 1 • Ex.: MDC(8,15) = 1 • 8 & 15 são relativamente primos

  14. Algoritmo Euclidiano • Um método eficiente para encontrar MDC(a,b) • Baseado no teorema: • MDC(a,b) = MDC(b, a mod b) • O algoritmo euclidiano para encontrar MDC(a,b) é: EUCLID(a,b) 1. A = a; B = b 2. if B = 0 return A = mdc(a, b) 3. R = A mod B 4. A = B 5. B = R 6. goto 2

  15. Exemplo MDC(1970,1066) 1970 = 1 x 1066 + 904 gcd(1066, 904) 1066 = 1 x 904 + 162 gcd(904, 162) 904 = 5 x 162 + 94 gcd(162, 94) 162 = 1 x 94 + 68 gcd(94, 68) 94 = 1 x 68 + 26 gcd(68, 26) 68 = 2 x 26 + 16 gcd(26, 16) 26 = 1 x 16 + 10 gcd(16, 10) 16 = 1 x 10 + 6 gcd(10, 6) 10 = 1 x 6 + 4 gcd(6, 4) 6 = 1 x 4 + 2 gcd(4, 2) 4 = 2 x 2 + 0 gcd(2, 0)

  16. Corpo de Galois • Copos finitos desempenham um papel fundamental na criptografia • Pode-se mostrar que a ordem de um corpo finito (número de elementos no corpo) precisa ser a potência de um primo pn • Conhecidos como Corpos Finitos • O corpo finito de ordem pn geralmente é escrito como GF(pn) [Galois Fields] • Dois casos especiais são de interesse para nosso propósito: • GF(p) • GF(2n)

  17. Corpo de Galois GF(p) • É definido como o conjunto de inteiros juntamente com as operações aritméticas de módulo p • Forma um anel comutativo • Desde que tenha inverso multiplicativo • hence arithmetic is “well-behaved” and can do addition, subtraction, multiplication, and division without leaving the field GF(p)

  18. GF(7) Multiplication Example

  19. Finding Inverses 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 div 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

  20. Inverse of 550 in GF(1759)

  21. Aritmética Polinomial • Um polinômio de grau n é uma expressão na forma f(x) = anxn + an-1xn-1 + … + a1x + a0 = ∑ aixi • Normalmente não nos interessamos por avaliar um polinômio para determinado valor de x. • Que é conhecida como indeterminada • Podemos distinguir três classes de aritmética de polinômios: • Aritmética de polinômios ordinários; • Aritmética de polinômios em que a aritmética sobre os coeficientes é realizada mod p • Aritmética de polinômios em que os coeficientes estão em GF(p)

  22. Aritmérica Polinomial Comum • Adição ou subtração dos coeficientes correspondentes • Multiplica-se todos os termos por cada outro • Ex.: let f(x) = x3 + x2 + 2 and g(x) = x2 – x + 1 f(x) + g(x) = x3 + 2x2 – x + 3 f(x) – g(x) = x3 + x + 1 f(x) x g(x) = x5 + 3x2 – 2x + 2

  23. Aritmética de Polinômios com Coeficientes em Zp • Se considerarmos que cada polinômio distinto é um elemento do conjunto. • Conhecido como anel polinomial • A divisão resultará em um quociente e um resto. • Porém estamos mais interessados no mod 2 • Ex.: os coeficientes são 0 ou 1 • Ex.: f(x) = x3 + x2 e g(x) = x2 + x + 1 f(x) + g(x) = x3 + x + 1 f(x) x g(x) = x5 + x2

  24. Divisão Polinomial • Pode-se escrever qualquer polinômio da seguinte forma: • f(x) = q(x) g(x) + r(x) • Aceitamos r(x) como sendo o resto. • r(x) = f(x) mod g(x) • Se não tem resto dizemos que g(x) divide f(x) • se g(x) não tem outro divisor além dele mesmo & 1 dizemos ser um polinômioirredutível (ou primo) • Módulo e primo formam um corpo

  25. Encontrando o Máximo Divisor Comum • Pode-se encontrar o maior divisor comum para um polinômio • c(x) = MDC(a(x), b(x)) se c(x) for o polinômio de maior grau que divide os dois a(x), b(x) • Pode-se usar o algoritmo euclidiano pra tal: EUCLID[a(x), b(x)] 1. A(x) = a(x); B(x) = b(x) 2. if B(x) = 0 return A(x) = mdc[a(x), b(x)] 3. R(x) = A(x) mod B(x) 4. A(x) ¨ B(x) 5. B(x) ¨ R(x) 6. goto 2

  26. Aritmética Polinomial Modular • Nos concentramos em GF(2n) • Polinômios com coeficientes de módulo 2 • Cujo grau é inferior a n • Por isso deve-se reduzir o modulo a um irredutível polinômio de grau n (para multiplicação somente) • Isso forma um corpo finito • Pode-se sempre encontrar o inverso • Pode-se usar o algoritmo do Inverso Euclidiano para encontrar.

  27. Example GF(23)

  28. Considerações Computacionais • Sejam os coeficientes 0 ou 1, pode-se representar qualquer polinômio como uma string de bits • Adições se tornam um XOR bit a bit • Multiplicação é deslocamento a esquerda seguido de um XOR • cf long-hand multiplication • Pode ser obtida pela aplicação repetida da Equação acrescentando resultados intermediários.

  29. Exemplo Computacional • para GF(23) temos (x2+1) é 1012 & (x2+x+1) é 1112 • Então a adição é: • (x2+1) + (x2+x+1) = x • 101 XOR 111 = 0102 • E a multiplicação é: • (x+1).(x2+1) = x.(x2+1) + 1.(x2+1) = x3+x+x2+1 = x3+x2+x+1 • 011.101 = (101)<<1 XOR (101)<<0 = 1010 XOR 101 = 11112 • Redução do modulo polinomial (get q(x) & r(x)) é • (x3+x2+x+1 ) mod (x3+x+1) = 1.(x3+x+1) + (x2) = x2 • 1111 mod 1011 = 1111 XOR 1011 = 01002

  30. Usando um Gerador • Técnica equivalente para definir um corpo finito • um gerador g é um elemento cujas potências geram todos os elementos diferentes de zero • Para F temos 0, g0, g1, …, gq-2 • Um elemento b contido em F é chamado de raíz do polinômio • Então implementa-se a multiplicação adicionando expoentes do gerador

  31. Resumo • Considerações • Conceito de grupos, anéis, corpos • Aritmética modular com inteiros • Algoritmo Euclidiano para MDC • Corpos Finitos GF(p) • Aritmética Polinomial em geral e para GF(2n)

More Related