Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por...

31
Criptografia e Criptografia e Segurança de Redes Segurança de Redes Capítulo 4 Capítulo 4 Quarta Edição Quarta Edição por William Stallings por William Stallings Slides por Lawrie Brown Slides por Lawrie Brown Tradução: Marcos J Pinto Tradução: Marcos J Pinto

Transcript of Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por...

Page 1: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Criptografia e Criptografia e Segurança de RedesSegurança de Redes

Capítulo 4Capítulo 4

Quarta EdiçãoQuarta Edição

por William Stallingspor William Stallings

Slides por Lawrie BrownSlides por Lawrie Brown

Tradução: Marcos J PintoTradução: Marcos J Pinto

Page 2: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Capítulo 4 – Corpos FinitosCapítulo 4 – Corpos FinitosNa alvorada da manhã seguinte, Star voou porta Na alvorada da manhã seguinte, Star voou porta adentro, parecendo ansiosa por uma aula. Eu disse: adentro, parecendo ansiosa por uma aula. Eu disse: “Bata oito”. Ela fez uma apresentação brilhante, primeiro “Bata oito”. Ela fez uma apresentação brilhante, primeiro batendo 4 e 4 e, em seguida, lançando-me um olhar batendo 4 e 4 e, em seguida, lançando-me um olhar rápido, fez em 2, 2, 2, 2 antes de pegar sua castanha. É rápido, fez em 2, 2, 2, 2 antes de pegar sua castanha. É impressionante como Star aprendeu a contar até 8 sem impressionante como Star aprendeu a contar até 8 sem dificuldade e, por conta própria, descobriu que cada dificuldade e, por conta própria, descobriu que cada número poderia ser dividido de diferentes formas, não número poderia ser dividido de diferentes formas, não deixando dúvidas de que ela estava obtendo deixando dúvidas de que ela estava obtendo conscientemente cada número. Na verdade, ela fazia conscientemente cada número. Na verdade, ela fazia aritmética mental, embora não tivesse a capcidade dos aritmética mental, embora não tivesse a capcidade dos humanos de nomear os números. Star é ímpar como humanos de nomear os números. Star é ímpar como uma ave silvestre que, por vontade própria, buscou a uma ave silvestre que, por vontade própria, buscou a ciência dos números com grande interesse e inteligência ciência dos números com grande interesse e inteligência surpreendente.surpreendente.

— — Vivendo com pássarosVivendo com pássaros, Len Howard, Len Howard

Page 3: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

IntroduçãoIntrodução

Veremos agora os corposVeremos agora os corpos de crescente importância em criptografiade crescente importância em criptografia

AES, Curvas Elipticas, IDEA, Chave PúblicaAES, Curvas Elipticas, IDEA, Chave Pública envolve operações com “numbers”envolve operações com “numbers”

onde o que constitui um “número” e os tipos onde o que constitui um “número” e os tipos de operações variam consideravelmentede operações variam consideravelmente

Iniciamos com conceitos sobre grupos, Iniciamos com conceitos sobre grupos, anéis e corpos a partir da álgebra abstrataanéis e corpos a partir da álgebra abstrata

Page 4: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

GrupoGrupo

um conjunto de elementos ou “números”um conjunto de elementos ou “números” com alguma operação cujo resultado também com alguma operação cujo resultado também

está presente no conjunto (fechamento) está presente no conjunto (fechamento) obedece:obedece:

lei associativa:lei associativa: (a.b).c = a.(b.c)(a.b).c = a.(b.c) tem a identidade tem a identidade ee:: e.a = a.e = ae.a = a.e = a possui inversas possui inversas aa-1-1:: a.aa.a-1-1 = e = e

se comutativo se comutativo a.b = b.aa.b = b.a então forma um então forma um grupo abelianogrupo abeliano

Page 5: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Grupo cíclicoGrupo cíclico define a define a exponenciaçãoexponenciação como a aplicação como a aplicação

repetida de um operadorrepetida de um operador exemplo:exemplo: aa-3-3 = a.a.a = a.a.a

seja a identidade:seja a identidade: e=e=aa00

umum grupo será cíclico se todos os elementos grupo será cíclico se todos os elementos forem uma potência de algum elemento fixoforem uma potência de algum elemento fixo ex ex b =b = aakk para alguns para alguns aa e todos os e todos os bb do grupo do grupo

diz-se que diz-se que aa é um gerador do grupo é um gerador do grupo

Page 6: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

AnelAnel

um conjunto de “números” um conjunto de “números” com duas operações (adição e multiplicação) que com duas operações (adição e multiplicação) que

formam:formam: um grupo abeliano com operação de adição um grupo abeliano com operação de adição e multiplicação:e multiplicação:

tem fechamentotem fechamento é associativoé associativo distributivo sobre a adição:distributivo sobre a adição:a(b+c) = ab + aca(b+c) = ab + ac

Se a operação de Se a operação de multiplicação formultiplicação for comutativa, comutativa, formará um formará um anel comutativoanel comutativo

se a operação de multiplicaçãose a operação de multiplicação tiver uma tiver uma identidade e nenhum divisor zero, formará um identidade e nenhum divisor zero, formará um domdomínio integralínio integral

Page 7: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

CorpoCorpo

um conjunto de números um conjunto de números com duas operações que formam:com duas operações que formam:

grupo abeliano para adição grupo abeliano para adição grupo abeliano para multiplicação (ignorando grupo abeliano para multiplicação (ignorando

0) 0) anelanel

ter hierarquia com mais axiomas/leister hierarquia com mais axiomas/leis grupo -> anel -> corpogrupo -> anel -> corpo

Page 8: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Aritmética ModularAritmética Modular define-se o define-se o operador módulooperador módulo “ “a mod n”a mod n” como o como o

resto da divisão de a is por nresto da divisão de a is por n usa-se o termo usa-se o termo congruênciacongruência para: para: a = b mod na = b mod n

quando dividido por quando dividido por n,n, a & b têm o mesmo resto a & b têm o mesmo resto ex.: 100 = 34 mod 11 ex.: 100 = 34 mod 11

b é chamado de b é chamado de resíduoresíduo de a mod n de a mod n como com inteiros pode-se sempre escrever: como com inteiros pode-se sempre escrever: a = qn + a = qn + bb

geralmente escolhe-se o menor resto positivo como geralmente escolhe-se o menor resto positivo como resíduoresíduo

• ex: ex: 0 <= b <= n-10 <= b <= n-1 o processo é conhecido como o processo é conhecido como redução modularredução modular

• ex: -12 mod 7 ex: -12 mod 7 == -5 mod 7 -5 mod 7 == 2 mod 7 2 mod 7 == 9 mod 7 9 mod 7

Page 9: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

DivisoresDivisores

digamos que um número diferente de zero digamos que um número diferente de zero bb dividadivida aa se para algum se para algum mm houver houver a=mba=mb ((a,b,ma,b,m todos inteiros) todos inteiros)

ou seja, ou seja, bb divide divide aa sem resto sem resto representa-se isso como representa-se isso como b|ab|a e diz-se que e diz-se que bb é um é um divisordivisor de de aa ex: 1,2,3,4,6,8,12,24 dividem 24 ex: 1,2,3,4,6,8,12,24 dividem 24

Page 10: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Operações de Aritmética ModularOperações de Aritmética Modular

é a ‘aritmética do relógio'é a ‘aritmética do relógio' emprega um número finito de valores e faz emprega um número finito de valores e faz

retorno circular de cada extremidaderetorno circular de cada extremidade há aritmética modular quando a adição & há aritmética modular quando a adição &

multiplicação e módulo reduzem a respostamultiplicação e módulo reduzem a resposta podem-se fazer reduções em qualquer podem-se fazer reduções em qualquer

ponto, exponto, ex a+b mod n = [a mod n + b mod n] mod na+b mod n = [a mod n + b mod n] mod n

Page 11: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Aritmética ModularAritmética Modular

pode-se fazer aritmética modular com qualquer pode-se fazer aritmética modular com qualquer grupo de inteiros: grupo de inteiros: ZZnn = {0, 1, … , n-1} = {0, 1, … , n-1}

forma um anel comutativo para adiçãoforma um anel comutativo para adição com uma identidade multiplicativacom uma identidade multiplicativa observe algumas peculiaridadesobserve algumas peculiaridades

se se (a+b)(a+b)=(a+c) mod n =(a+c) mod n

entãoentão b=c mod n b=c mod n mas se mas se (a.b)(a.b)=(a.c) mod n =(a.c) mod n

entãoentão b=c mod n b=c mod n somente sesomente se a a for relativamente for relativamente primo deprimo de n n

Page 12: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Exemplo de adição módulo 8Exemplo de adição módulo 8+ 0 1 2 3 4 5 6 7

0 0 1 2 3 4 5 6 7

1 1 2 3 4 5 6 7 0

2 2 3 4 5 6 7 0 1

3 3 4 5 6 7 0 1 2

4 4 5 6 7 0 1 2 3

5 5 6 7 0 1 2 3 4

6 6 7 0 1 2 3 4 5

7 7 0 1 2 3 4 5 6

Page 13: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Máximo Divisor Comum (MDC)Máximo Divisor Comum (MDC)

um problema comum em teoria dos númerosum problema comum em teoria dos números MDC (a,b) entre a e b é o maior divisor MDC (a,b) entre a e b é o maior divisor

comum entre a e b comum entre a e b ex.: MDC(60,24) = 12ex.: MDC(60,24) = 12

frequentemente não exige frequentemente não exige fatores comuns fatores comuns (exceto 1) e então os números são (exceto 1) e então os números são relativamente primosrelativamente primos ex.: MDC(8,15) = 1ex.: MDC(8,15) = 1 então 8 & 15 são relativamente primos então 8 & 15 são relativamente primos

Page 14: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Algoritmo EuclideanoAlgoritmo Euclideano

maneira eficiente de encontrar MDC(a,b)maneira eficiente de encontrar MDC(a,b) emprega o teorema que: emprega o teorema que:

MDC(a,b) = MDC(b, a mod b)MDC(a,b) = MDC(b, a mod b) Algoritmo Euclideano para calcular MDC(a,b) é: Algoritmo Euclideano para calcular MDC(a,b) é:

EUCLID(a,b)EUCLID(a,b)1. A 1. A = = a; B a; B = = b b 2. if B = 0 return A = mdc(a, b) 2. if B = 0 return A = mdc(a, b) 3. R = A mod B 3. R = A mod B 4. A = B 4. A = B 5. B 5. B = = R R 6. goto 26. goto 2

Page 15: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Exemplo: MDC(1970,1066)Exemplo: MDC(1970,1066)

1970 = 1 x 1066 + 904 1970 = 1 x 1066 + 904 mdc(1066, 904)mdc(1066, 904)1066 = 1 x 904 + 162 1066 = 1 x 904 + 162 mdc (904, 162)mdc (904, 162)904 = 5 x 162 + 94 904 = 5 x 162 + 94 mdc (162, 94)mdc (162, 94)162 = 1 x 94 + 68 162 = 1 x 94 + 68 mdc (94, 68)mdc (94, 68)94 = 1 x 68 + 26 94 = 1 x 68 + 26 mdc (68, 26)mdc (68, 26)68 = 2 x 26 + 16 68 = 2 x 26 + 16 mdc (26, 16)mdc (26, 16)26 = 1 x 16 + 10 26 = 1 x 16 + 10 mdc (16, 10)mdc (16, 10)16 = 1 x 10 + 6 16 = 1 x 10 + 6 mdc (10, 6)mdc (10, 6)10 = 1 x 6 + 4 10 = 1 x 6 + 4 mdc (6, 4)mdc (6, 4)6 = 1 x 4 + 2 6 = 1 x 4 + 2 mdc (4, 2)mdc (4, 2)4 = 2 x 2 + 0 4 = 2 x 2 + 0 mdc (2, 0)mdc (2, 0)

Page 16: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Corpo de GaloisCorpo de Galois corpos finitos são fundamentais em criptografiacorpos finitos são fundamentais em criptografia demonstra que o número de elementos em um demonstra que o número de elementos em um

corpo finito corpo finito deve deve ser uma potência de um ser uma potência de um primo pprimo pnn

Conhecido como corpo de GaloisConhecido como corpo de Galois representado como GF(prepresentado como GF(pnn)) particularmente costuma usar os corpos:particularmente costuma usar os corpos:

GF(p)GF(p) GF(2GF(2nn))

Page 17: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Corpo de Galois GF(p)Corpo de Galois GF(p)

GF(p) é o conjunto de inteiros {0,1, … , p-1} GF(p) é o conjunto de inteiros {0,1, … , p-1} com operações aritméticas módulo primo pcom operações aritméticas módulo primo p

formam um corpo finitoformam um corpo finito já que há inversos multiplicativosjá que há inversos multiplicativos

então a aritmética é “bem comportada” e então a aritmética é “bem comportada” e pode fazer adição, subtração, multiplicação pode fazer adição, subtração, multiplicação e divisão sem sair do corpo GF(p)e divisão sem sair do corpo GF(p)

Page 18: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Exemplo de multiplicação Exemplo de multiplicação GF(7) GF(7)

0 1 2 3 4 5 6

0 0 0 0 0 0 0 0

1 0 1 2 3 4 5 6

2 0 2 4 6 1 3 5

3 0 3 6 2 5 1 4

4 0 4 1 5 2 6 3

5 0 5 3 1 6 4 2

6 0 6 5 4 3 2 1

Page 19: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Cálculo de inversosCálculo de inversos

EXTENDED EUCLID(EXTENDED EUCLID(mm, , bb))1.1. (A1, A2, A3)=(1, 0, (A1, A2, A3)=(1, 0, mm); );

(B1, B2, B3)=(0, 1, (B1, B2, B3)=(0, 1, bb))2. if 2. if B3 = 0B3 = 0

return return A3 = gcd(A3 = gcd(mm, , bb); não há inverso); não há inverso3. if 3. if B3 = 1 B3 = 1

return return B3 = gcd(B3 = gcd(mm, , bb); B2 = ); B2 = bb–1–1 mod mod mm4. 4. Q = A3 div B3Q = A3 div B35. 5. (T1, T2, T3)=(A1 – Q B1, A2 – Q B2, A3 – Q B3)(T1, T2, T3)=(A1 – Q B1, A2 – Q B2, A3 – Q B3)6. 6. (A1, A2, A3)=(B1, B2, B3)(A1, A2, A3)=(B1, B2, B3)7. 7. (B1, B2, B3)=(T1, T2, T3)(B1, B2, B3)=(T1, T2, T3)8. goto 8. goto 22

Page 20: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Inverso de 550 em CF(1759)Inverso de 550 em CF(1759)

Q A1 A2 A3 B1 B2 B3

— 1 0 1759 0 1 550

3 0 1 550 1 –3 109

5 1 –3 109 –5 16 5

21 –5 16 5 106 –339 4

1 106 –339 4 –111 355 1

Page 21: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Aritmética de polinômiosAritmética de polinômios

é possível calcular com polinômiosé possível calcular com polinômiosff((xx) = a) = annxxnn + a + an-1n-1xxn-1n-1 + … + a + … + a11x + x + aa00 = ∑ a = ∑ aiixxii

• nota: não interessa qualquer valor específico de xnota: não interessa qualquer valor específico de x• que é conhecido como indeterminadoque é conhecido como indeterminado

diversas alternativas disponíveisdiversas alternativas disponíveis aritmética de polinômios comumaritmética de polinômios comum aritmética de pol com coordenadas mod paritmética de pol com coordenadas mod p aritmética de pol com coordenadas mod p e aritmética de pol com coordenadas mod p e

polinômios mod m(x)polinômios mod m(x)

Page 22: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Aritmética comum entre Aritmética comum entre polinômiospolinômios

adicionar ou subtrair coeficientes adicionar ou subtrair coeficientes correspondentescorrespondentes

multiplicar todos os termos um pelo outromultiplicar todos os termos um pelo outro exex

let let ff((xx) = ) = xx33 + + xx22 + 2 and + 2 and gg((xx) = ) = xx22 – – x x + 1+ 1ff((xx) + ) + gg((xx) = ) = xx33 + 2 + 2xx22 – – x x + 3+ 3ff((xx) – ) – gg((xx) = ) = xx33 + + x x + 1+ 1ff((xx) x ) x gg((xx) = ) = xx55 + 3 + 3xx22 – 2 – 2x x + 2+ 2

Page 23: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Aritmética de polinômios com Aritmética de polinômios com Coeficientes de MóduloCoeficientes de Módulo

ao calcular o valor de cada coeficiente, ao calcular o valor de cada coeficiente, calcular modulo algum valorcalcular modulo algum valor forma um anel de polinômiosforma um anel de polinômios

poderia ser modulo qualquer primopoderia ser modulo qualquer primo mas estamos mais interessados em mod 2mas estamos mais interessados em mod 2

ou seja, todos os coeficientes são 0 ou 1ou seja, todos os coeficientes são 0 ou 1 ex. seja ex. seja ff((xx) = ) = xx33 + + xx22 and and gg((xx) = ) = xx22 + + x x + 1+ 1

ff((xx) + ) + gg((xx) = ) = xx33 + + x x + 1+ 1 ff((xx) x ) x gg((xx) = ) = xx55 + + xx22

Page 24: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Divisão de PolinômiosDivisão de Polinômios pode-se escrever qualquer polinômio na pode-se escrever qualquer polinômio na

forma:forma: ff((xx) = ) = qq((xx) ) gg((xx) + ) + rr((xx)) pode-se interpretar pode-se interpretar rr((xx) ) como um restocomo um resto rr((xx) = ) = ff((xx) mod ) mod gg((xx))

Se não houver resto, digamos Se não houver resto, digamos gg((xx) divide ) divide ff((xx)) Se Se gg((xx) não tiver divisores além dele próprio ) não tiver divisores além dele próprio

& 1 diz-se polinômio & 1 diz-se polinômio irredutívelirredutível(ou primo)(ou primo) aritmética módulo um polinômio irredutível aritmética módulo um polinômio irredutível

forma um corpoforma um corpo

Page 25: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

MDC de PolinômiosMDC de Polinômios pode-se calcular o máximo divisor comum entre pode-se calcular o máximo divisor comum entre

polinômiospolinômios c(x)c(x) = MDC( = MDC(a(x), b(x)a(x), b(x)) se ) se c(x)c(x) for o polinômio de maior grau for o polinômio de maior grau

que divide tanto que divide tanto a(x) como b(x)a(x) como b(x) pode-se adaptar o Algoritmo de Euclides para calcular:pode-se adaptar o Algoritmo de Euclides para calcular:

EUCLID[EUCLID[aa((xx)), b, b((xx)])]1. 1. A(A(xx) = ) = aa((xx); B(); B(xx) = ) = bb((xx))2. if 2. if B(B(xx) = 0 ) = 0 return return A(A(xx) = gcd[) = gcd[aa((xx)), b, b((xx)])]3. 3. R(R(xx) = A() = A(xx) mod B() mod B(xx))4. 4. A(A(xx) ¨ B() ¨ B(xx))5. 5. B(B(xx) ¨ R() ¨ R(xx))6. goto 6. goto 22

Page 26: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Aritmética de Polinômios Aritmética de Polinômios ModularModular

pode-se calcular em corpo GF(2pode-se calcular em corpo GF(2nn) ) polinômios com coeficientes módulo 2polinômios com coeficientes módulo 2 cujo grau seja inferior a ncujo grau seja inferior a n assim deve-se reduzir modulo um poli irredutível assim deve-se reduzir modulo um poli irredutível

de grau n (somente para multiplicação)de grau n (somente para multiplicação) forma um corpo finitoforma um corpo finito pode-se sempre encontrar um inversopode-se sempre encontrar um inverso

pode-se ampliar o algoritmo inverso de Euclides pode-se ampliar o algoritmo inverso de Euclides para calcularpara calcular

Page 27: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Exemplo GF(2Exemplo GF(233))

Page 28: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Considerações Considerações ComputacionaisComputacionais

como os coeficientes são 0 ou 1, podem como os coeficientes são 0 ou 1, podem representar qualquer polinômio tal como uma representar qualquer polinômio tal como uma string de 1 bitstring de 1 bit

a adição se torna um XOR entre strings de bita adição se torna um XOR entre strings de bit a multiplicação é shift & XORa multiplicação é shift & XOR

cf long-hand multiplicationcf long-hand multiplication a redução módulo é feita substituindo-se a redução módulo é feita substituindo-se

repetidas vezes a maior potência com o resto repetidas vezes a maior potência com o resto do poli irredutível (também shift & XOR)do poli irredutível (também shift & XOR)

Page 29: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Exemplo computacionalExemplo computacional em em CG(2CG(233) tendo ) tendo (x(x22+1) é 101+1) é 10122 & (x & (x22+x+1) é 111+x+1) é 11122

então a adição éentão a adição é (x(x22+1) + (x+1) + (x22+x+1) = x +x+1) = x 101 XOR 111 = 010101 XOR 111 = 01022

e a multiplicação ée a multiplicação é (x+1).(x(x+1).(x22+1) = x.(x+1) = x.(x22+1) + 1.(x+1) + 1.(x22+1) +1)

= x= x33+x+x+x+x22+1 = x+1 = x33+x+x22+x+1 +x+1 011.101 = (101)<<1 XOR (101)<<0 = 011.101 = (101)<<1 XOR (101)<<0 =

1010 XOR 101 = 11111010 XOR 101 = 111122 redução módulo de polinômios (get q(x) & r(x)) redução módulo de polinômios (get q(x) & r(x))

(x(x33+x+x22+x+1 ) mod (x+x+1 ) mod (x33+x+1) = 1.(x+x+1) = 1.(x33+x+1) + (x+x+1) + (x22) = x) = x22

1111 mod 1011 = 1111 XOR 1011 = 01001111 mod 1011 = 1111 XOR 1011 = 010022

Page 30: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

Uso de um GeradorUso de um Gerador

definição equivalente de um corpo finitodefinição equivalente de um corpo finito um um generatorgenerator g é um elemento cujas g é um elemento cujas

potências geram todos elementos potências geram todos elementos diferentes de zerodiferentes de zero em F há 0, gem F há 0, g00, g, g11, …, g, …, gq-2q-2

pode-se criar um gerador a partir da pode-se criar um gerador a partir da raiz raiz do polinômio irredutíveldo polinômio irredutível

depois implementar a multiplicação depois implementar a multiplicação adicionando-se expoentes do geradoradicionando-se expoentes do gerador

Page 31: Criptografia e Segurança de Redes Capítulo 4 Quarta Edição por William Stallings Slides por Lawrie Brown Tradução: Marcos J Pinto.

SumárioSumário

foi abordado:foi abordado: conceito de grupos, anéis e corposconceito de grupos, anéis e corpos aritmética modular com inteirosaritmética modular com inteiros algoritmo de Euclides para MDCalgoritmo de Euclides para MDC corpos finitos GF(p)corpos finitos GF(p) aritmética de polinômios em geral e em aritmética de polinômios em geral e em

GF(2GF(2nn) )