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

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

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

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

Criptografia e Criptografia e Segurança de Rede Segurança de Rede

Capítulo 4Capítulo 4

Quarta EdiçãoQuarta Edição

por William Stallingspor William Stallings

Tradução por Carlos Daniel AbreuTradução por Carlos Daniel Abreu

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

Living with birds, Len HowardLiving with birds, Len Howard

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

IntroduçãoIntrodução

Vamos agora apresentar Corpos FinitosVamos agora apresentar Corpos Finitos Do seu importante aumento na criptografiaDo seu importante aumento na criptografia

AES, Curvas Elípticas, IDEA, Chave públicaAES, Curvas Elípticas, IDEA, Chave pública Dizem a respeito de operações com númerosDizem a respeito de operações com números

Quando o que constitui um “número” e os tipos de Quando o que constitui um “número” e os tipos de operações varia consideravelmente.operações varia consideravelmente.

Começaremos com conceitos de grupos, anéis Começaremos com conceitos de grupos, anéis e corpos de álgebra abstrata.e corpos de álgebra abstrata.

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

GrupoGrupo

Um conjunto de elementos ou númerosUm conjunto de elementos ou números Com algumas operações cujo resultado é Com algumas operações cujo resultado é

também no conjunto (encerramento) também no conjunto (encerramento) Devemos cumprir:Devemos cumprir:

Lei da associatividade:Lei da associatividade: (a.b).c = a.(b.c)(a.b).c = a.(b.c) Possui identidade: Possui identidade: e.a = a.e = ae.a = a.e = a Possui inversa Possui inversa aa-1-1:: a.aa.a-1-1 = e = e

Se for comutativo Se for comutativo a.b = b.aa.b = b.a Então forma um Então forma um grupo algébrico.grupo algébrico.

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

Grupo CíclicoGrupo Cíclico

definir definir exponenciaçãoexponenciação como aplicação como aplicação repetida do operadorrepetida do operador exemplo:exemplo: aa-3-3 = a.a.a = a.a.a

A identidade deve ser:A identidade deve ser: e=ae=a00

Um grupo é cíclico se cada elemento for Um grupo é cíclico se cada elemento for uma potência de um elemento fixo.uma potência de um elemento fixo. Ex.: Ex.: b =b = aakk para algum para algum aa e todo e todo bb no grupo no grupo

aa é dito ser um gerador do grupo é dito ser um gerador do grupo

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

AnélAnél Um conjunto de númerosUm conjunto de números Com duas operações (adição e multiplicação) Com duas operações (adição e multiplicação)

que formam:que formam: Um grupo comutativo com a operação de adição Um grupo comutativo com a operação de adição E multiplicação:E multiplicação:

fechamentofechamento AssociatividadeAssociatividade Leis distributivas:Leis distributivas: a(b+c) = ab + aca(b+c) = ab + ac

Se a operação de multiplicação é comutativa, Se a operação de multiplicação é comutativa, isso forma um isso forma um anel comutativoanel comutativo

Se a operação de multiplicação tem uma Se a operação de multiplicação tem uma identidade e nenhum divisor por zero, isso identidade e nenhum divisor por zero, isso forma um forma um domínio integraldomínio integral

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

CorposCorpos

Um conjunto de númerosUm conjunto de números Com duas operações que formam:Com duas operações que formam:

Um grupo comutativo para adição Um grupo comutativo para adição Um grupo comutativo para multiplicação Um grupo comutativo para multiplicação

(ignorando o 0)(ignorando o 0) AnelAnel

Tem hierarquia com mais axiomas/leisTem hierarquia com mais axiomas/leis grupo -> anel -> corpogrupo -> anel -> corpo

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

Aritmética ModularAritmética Modular Definimos Definimos módulomódulo “ “a mod n”a mod n” como o resto como o resto

quando a é dividido por nquando a é dividido por n Usa-se o termo Usa-se o termo congruênciacongruência para: para: a = b mod a = b mod nn Quando divididos por Quando divididos por n,n, a & b tem o mesmo resto a & b tem o mesmo resto Ex.: 100 = 34 mod 11 Ex.: 100 = 34 mod 11

b é chamado o b é chamado o resíduoresíduo de de a mod na mod n Desde que com inteiros possamos sempre escrever: Desde que com inteiros possamos sempre escrever: a = qn + ba = qn + b

Normalmente escolha o menor positivo para deixar Normalmente escolha o menor positivo para deixar como reíduocomo reíduo

• Ex.: Ex.: 0 <= b <= n-10 <= b <= n-1 o processo é conhecido como Redução de Móduloo processo é conhecido como Redução de Módulo

• 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 Rede Capítulo 4 Quarta Edição por William Stallings Tradução por Carlos Daniel Abreu.

DivisoresDivisores

Dizemos que b diferente de zero divide a Dizemos que b diferente de zero divide a se se a=mba=mb para algum m, onde a,b e m são para algum m, onde a,b e m são inteiros inteiros

b divide a se não houver resto na divisãob divide a se não houver resto na divisão A notação é A notação é b|ab|a Dizemos que Dizemos que bb é um é um divisordivisor de de aa Ex.: todos 1,2,3,4,6,8,12,24 dividem 24 Ex.: todos 1,2,3,4,6,8,12,24 dividem 24

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

Operações de Aritmética Operações de Aritmética ModularModular

Usa um número finito de valoresUsa um número finito de valores Aritmética modular é quando fazemos Aritmética modular é quando fazemos

adição adição & & multiplicação multiplicação e e redução de redução de módulomódulo..

Pode-se fazer a redução a qualquer Pode-se fazer a redução a qualquer momento, Ex.:momento, 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 Rede Capítulo 4 Quarta Edição por William Stallings Tradução por Carlos Daniel Abreu.

Aritmética ModularAritmética Modular

Pode-se fazer com qualquer grupo de inteiros: Pode-se fazer com qualquer grupo de inteiros: ZZnn = {0, 1, … , n-1} = {0, 1, … , n-1}

Formando um anel comutativo para adiçãoFormando um anel comutativo para adição Com identidade multiplicativaCom identidade multiplicativa Repare em algumas peculiaridadesRepare em algumas peculiaridades

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

thenthen b=c mod n b=c mod n but if but if (a.b)(a.b)=(a.c) mod n =(a.c) mod n

thenthen 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 Rede Capítulo 4 Quarta Edição por William Stallings Tradução por Carlos Daniel Abreu.

Modulo 8 Addition ExampleModulo 8 Addition Example+ 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 Rede Capítulo 4 Quarta Edição por William Stallings Tradução por Carlos Daniel Abreu.

Máximo Divisor Comum (MDC)Máximo Divisor Comum (MDC) Um problema comum na teoria dos Um problema comum na teoria dos

númerosnúmeros MDC (a,b) de a e b é o maior número que MDC (a,b) de a e b é o maior número que

divide igualmente em ambos a e bdivide igualmente em ambos a e b Ex.: MDC(60,24) = 12Ex.: MDC(60,24) = 12

Dizemos que dois inteiros a e b são Dizemos que dois inteiros a e b são relativamente primos se seu único fator relativamente primos se seu único fator inteiro positivo comum for 1inteiro positivo comum for 1 Ex.: MDC(8,15) = 1Ex.: MDC(8,15) = 1 8 & 15 são relativamente primos8 & 15 são relativamente primos

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

Algoritmo EuclidianoAlgoritmo Euclidiano

Um método eficiente para encontrar MDC(a,b)Um método eficiente para encontrar MDC(a,b) Baseado no teorema: Baseado no teorema:

MDC(a,b) = MDC(b, a mod b)MDC(a,b) = MDC(b, a mod b) O algoritmo euclidiano para encontrar MDC(a,b) O algoritmo euclidiano para encontrar MDC(a,b)

é: é: EUCLID(a,b)EUCLID(a,b)1. A = a; B = b 1. A = a; 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 = R 5. B = R 6. goto 26. goto 2

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

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

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

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

Corpo de GaloisCorpo de Galois Copos finitos desempenham um papel Copos finitos desempenham um papel

fundamental na criptografiafundamental na criptografia Pode-se mostrar que a ordem de um corpo finito Pode-se mostrar que a ordem de um corpo finito

(número de elementos no corpo) precisa ser a (número de elementos no corpo) precisa ser a potência de um primo ppotência de um primo pnn

Conhecidos como Corpos FinitosConhecidos como Corpos Finitos O corpo finito de ordem pO corpo finito de ordem pnn geralmente é escrito geralmente é escrito

como GF(pcomo GF(pnn) [Galois Fields]) [Galois Fields] Dois casos especiais são de interesse para nosso Dois casos especiais são de interesse para nosso

propósito:propósito: GF(p)GF(p) GF(2GF(2nn))

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

Corpo de Galois GF(p)Corpo de Galois GF(p) É definido como o conjunto de inteiros É definido como o conjunto de inteiros

juntamente com as operações aritméticas juntamente com as operações aritméticas de módulo pde módulo p

Forma um anel comutativoForma um anel comutativo Desde que tenha inverso multiplicativoDesde que tenha inverso multiplicativo

hence arithmetic is “well-behaved” and hence arithmetic is “well-behaved” and can do addition, subtraction, multiplication, can do addition, subtraction, multiplication, and division without leaving the field GF(p)and division without leaving the field GF(p)

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

GF(7) Multiplication Example GF(7) Multiplication Example

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 Rede Capítulo 4 Quarta Edição por William Stallings Tradução por Carlos Daniel Abreu.

Finding InversesFinding Inverses

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); no inverse); no inverse3. 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 Rede Capítulo 4 Quarta Edição por William Stallings Tradução por Carlos Daniel Abreu.

Inverse of 550 in GF(1759)Inverse of 550 in GF(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 Rede Capítulo 4 Quarta Edição por William Stallings Tradução por Carlos Daniel Abreu.

Aritmética PolinomialAritmética Polinomial Um polinômio de grau n é uma expressão na Um polinômio de grau n é uma expressão na

formaforma

ff((xx) = a) = annxxnn + a + an-1n-1xxn-1n-1 + … + a + … + a11x + x + aa00 = ∑ a = ∑ aiixxii

• Normalmente não nos interessamos por avaliar Normalmente não nos interessamos por avaliar um polinômio para determinado valor de x.um polinômio para determinado valor de x.

• Que é conhecida como Que é conhecida como indeterminadaindeterminada

Podemos distinguir três classes de aritmética de Podemos distinguir três classes de aritmética de polinômios:polinômios: Aritmética de polinômios ordinários;Aritmética de polinômios ordinários; Aritmética de polinômios em que a aritmética Aritmética de polinômios em que a aritmética

sobre os coeficientes é realizada mod psobre os coeficientes é realizada mod p Aritmética de polinômios em que os coeficientes Aritmética de polinômios em que os coeficientes

estão em GF(p)estão em GF(p)

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

Aritmérica Polinomial ComumAritmérica Polinomial Comum

Adição ou subtração dos coeficientes Adição ou subtração dos coeficientes correspondentescorrespondentes

Multiplica-se todos os termos por cada Multiplica-se todos os termos por cada outrooutro

Ex.:Ex.: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 Rede Capítulo 4 Quarta Edição por William Stallings Tradução por Carlos Daniel Abreu.

Aritmética de Polinômios com Aritmética de Polinômios com Coeficientes em ZpCoeficientes em Zp

Se considerarmos que cada polinômio Se considerarmos que cada polinômio distinto é um elemento do conjunto.distinto é um elemento do conjunto. Conhecido como anel polinomialConhecido como anel polinomial

A divisão resultará em um quociente e um A divisão resultará em um quociente e um resto.resto.

Porém estamos mais interessados no Porém estamos mais interessados no mod 2mod 2 Ex.: os coeficientes são 0 ou 1Ex.: os coeficientes são 0 ou 1 Ex.: Ex.: ff((xx) = ) = xx33 + + xx22 e e gg((xx) = ) = xx22 + + x x + 1+ 1

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

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

Divisão PolinomialDivisão Polinomial Pode-se escrever qualquer polinômio da Pode-se escrever qualquer polinômio da

seguinte forma:seguinte forma: ff((xx) = ) = qq((xx) ) gg((xx) + ) + rr((xx)) Aceitamos Aceitamos rr((xx) como sendo o resto.) como sendo o resto. rr((xx) = ) = ff((xx) mod ) mod gg((xx))

Se não tem resto dizemos que Se não tem resto dizemos que gg((xx) divide ) divide ff((xx))

se se gg((xx) não tem outro divisor além dele ) não tem outro divisor além dele mesmo & 1 dizemos ser um mesmo & 1 dizemos ser um polinômiopolinômio irredutívelirredutível (ou primo) (ou primo)

Módulo e primo formam um corpoMódulo e primo formam um corpo

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

Encontrando o Máximo Encontrando o Máximo Divisor ComumDivisor Comum

Pode-se encontrar o maior divisor comum para um Pode-se encontrar o maior divisor comum para um polinômiopolinômio

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 for o polinômio de maior grau que divide os dois grau que divide os dois a(x), b(x)a(x), b(x)

Pode-se usar o algoritmo euclidiano pra tal:Pode-se usar o algoritmo euclidiano pra tal: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) = mdc[) = mdc[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 Rede Capítulo 4 Quarta Edição por William Stallings Tradução por Carlos Daniel Abreu.

Aritmética Polinomial ModularAritmética Polinomial Modular

Nos concentramos em GF(2Nos concentramos em GF(2nn) ) Polinômios com coeficientes de módulo 2Polinômios com coeficientes de módulo 2 Cujo grau é inferior a nCujo grau é inferior a n Por isso deve-se reduzir o modulo a um Por isso deve-se reduzir o modulo a um

irredutível polinômio de grau n (para irredutível polinômio de grau n (para multiplicação somente)multiplicação somente)

Isso forma um corpo finitoIsso forma um corpo finito Pode-se sempre encontrar o inversoPode-se sempre encontrar o inverso

Pode-se usar o algoritmo do Inverso Pode-se usar o algoritmo do Inverso Euclidiano para encontrar.Euclidiano para encontrar.

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

Example GF(2Example GF(233))

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

Considerações Considerações ComputacionaisComputacionais

Sejam os coeficientes 0 ou 1, pode-se Sejam os coeficientes 0 ou 1, pode-se representar qualquer polinômio como uma representar qualquer polinômio como uma string de bitsstring de bits

Adições se tornam um XOR bit a bitAdições se tornam um XOR bit a bit Multiplicação é deslocamento a esquerda Multiplicação é deslocamento a esquerda

seguido de um XORseguido de um XOR cf long-hand multiplicationcf long-hand multiplication

Pode ser obtida pela aplicação repetida da Pode ser obtida pela aplicação repetida da Equação acrescentando resultados Equação acrescentando resultados intermediários.intermediários.

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

Exemplo ComputacionalExemplo Computacional

para para GF(2GF(233) temos ) temos (x(x22+1) é 101+1) é 10122 & (x & (x22+x+1) é +x+1) é 11111122

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 do modulo polinomial (get q(x) & r(x)) éRedução do modulo polinomial (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 Rede Capítulo 4 Quarta Edição por William Stallings Tradução por Carlos Daniel Abreu.

Usando um GeradorUsando um Gerador

Técnica equivalente para definir um corpo Técnica equivalente para definir um corpo finitofinito

um um geradorgerador g é um elemento cujas g é um elemento cujas potências geram todos os elementos potências geram todos os elementos diferentes de zerodiferentes de zero Para F temos 0, gPara F temos 0, g00, g, g11, …, g, …, gq-2q-2

Um elemento b contido em F é chamado Um elemento b contido em F é chamado de raíz do polinômiode raíz do polinômio

Então implementa-se a multiplicação Então implementa-se a multiplicação adicionando expoentes do geradoradicionando expoentes do gerador

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

ResumoResumo

ConsideraçõesConsiderações Conceito de grupos, anéis, corposConceito de grupos, anéis, corpos Aritmética modular com inteirosAritmética modular com inteiros Algoritmo Euclidiano para MDCAlgoritmo Euclidiano para MDC Corpos Finitos GF(p)Corpos Finitos GF(p) Aritmética Polinomial em geral e para GF(2Aritmética Polinomial em geral e para GF(2nn) )