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

Documentos relacionados
AES - Noções Fortes de Segurança - InfoSec. 4 de Outubro de 2016

Anéis quocientes k[x]/i

Corpos Finitos Parte I

Introdução à Algebra para Criptografia de Curvas Elipticas

Introdução aos números inteiros

Definição: Uma função de uma variável x é uma função polinomial complexa se pudermos escrevê-la na forma n

Notas sobre teoria dos números (2)

A = B, isto é, todo elemento de A é também um elemento de B e todo elemento de B é também um elemento de A, ou usando o item anterior, A B e B A.

Troca de chaves Diffie-Hellman Grupos finitos Grupos cíclicos

DE MATEMÁTICA I. Prof. ADRIANO CATTAI. Corpos Numéricos (Atualizada em 8 de março de 2016)

Teoria dos anéis 1 a parte 3

Matemática Discreta. Fundamentos e Conceitos da Teoria dos Números. Universidade do Estado de Mato Grosso. 4 de setembro de 2017

Notas sobre teoria dos números - Aritmática Modular (2) Anjolina Grisi de Oliveira

(Ciência de Computadores) 2005/ Diga quais dos conjuntos seguintes satisfazem o Princípio de Boa Ordenação

4 ÁLGEBRA ELEMENTAR. 4.1 Monômios e polinômios: valor numérico e operações.

obs: i) Salvo menção em contrário, anel = anel comutativo com unidade. ii) O conjunto dos naturais inclui o zero.

CRITÉRIO DE EISENSTEIN. Marília Martins Cabral Orientador: Igor Lima

Relações Binárias, Aplicações e Operações

Primeiro Desao Mestre Kame

Dado um inteiro positivo n, definimos U(n) como sendo o conjunto dos inteiros positivos menores que n e primos com n. Não é difícil ver que a

1. Prove que (a+b) c = a c+b c para todo a, b, c em ZZ /mzz. (Explique cada passo).

Aula 1. e o conjunto dos inteiros é :

Um polinômio com coeficientes racionais é uma escrita formal

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Teoria dos Números

1. Conhecendo-se somente os produtos AB e AC, calcule A = X 2 = 2X. 3. Mostre que se A e B são matrizes que comutam com a matriz M = 1 0

11.1) Noções Elementares 11.2) MDCs e algoritmos de Euclides 11.3) Aritmética modular 11.4) Aplics da MD: O sistema criptográfico RSA

Ficha de trabalho Decomposição e resolução de equações e inequações polinomiais

Números Inteiros Algoritmo da Divisão e suas Aplicações

1 INTRODUÇÃO 3 PRODUTO 2 SOMA 4 DIVISÃO. 2.1 Diferença de polinômios. 4.1 Divisão Euclidiana. Matemática Polinômios

Erivaldo. Polinômios

MÉTODOS DISCRETOS EM TELEMÁTICA

Aritmética Racional MATEMÁTICA DISCRETA. Patrícia Ribeiro. Departamento de Matemática, ESTSetúbal 2018/ / 42

Operações Fundamentais com Números

Matemática para Ciência de Computadores

POLINÔMIOS 1. INTRODUÇÃO Uma função é dita polinomial quando ela é expressa da seguinte forma:

Introdução à Teoria dos Números Notas de Aulas 3 Prof Carlos Alberto S Soares

parciais primeira parte

REDES DE COMPUTADORES

Teorema 1.1 (Teorema de divisão de Euclides). Dados n Z e d N, existe uma única dupla q Z, r. n = qd + r

1. O que podemos dizer sobre a imagem da função. f : Z Z, f(x) = x 2 + x + 1?

Corpos estendidos no espaço em grupos

2. Expressões Algébricas, Equações e Inequações

Alguns exercícios amais para vocês (as resoluções dos exercícios anteriores começam na próxima pagina):

Programa Combinatória Aritmética Racional MATEMÁTICA DISCRETA. Patrícia Ribeiro. Departamento de Matemática, ESTSetúbal 2018/ / 52

OPERAÇÕES - LEIS DE COMPOSIÇÃO INTERNA

Fundamentos de Matemática Curso: Informática Biomédica

, com k 1, p 1, p 2,..., p k números primos e α i, β i 0 inteiros, as factorizações de dois números inteiros a, b maiores do que 1.

Operações Fundamentais com Números

MATEMÁTICA I. Profa. Dra. Amanda L. P. M. Perticarrari

m 1 Grupo A é 3, então ( P + Q R) Como o maior expoente da variável x do polinômio P + Q R Analogamente ao item a, (PQ) = 3.

Definição 1. Um ideal de um anel A é um subgrupo aditivo I de A tal que ax I para todo a A, x I. Se I é um ideal de A escrevemos I A.

Denominamos equação polinomial ou equação algébrica de grau n a toda equação da forma:

Inteiros. Inteiros. Congruência. Discrete Mathematics with Graph Theory Edgar Goodaire e Michael Parmenter, 3rd ed 2006.

MATEMÁTICA 1 MÓDULO 2. Divisibilidade. Professor Matheus Secco

Divisibilidade e Números primos. George Darmiton da Cunha Cavalcanti CIn - UFPE

Introdução à Teoria dos Números - Notas 4 Tópicos Adicionais II

Polinômios irredutíveis

MAT 1351 : Cálculo para Funções de Uma Variável Real I. Sylvain Bonnot (IME-USP)

Este material é apenas um resumo de parte do conteúdo da disciplina.

ANÉIS. Professora: Elisandra Bär de Figueiredo

Reticulados e Álgebras de Boole

Decomposição de um número composto. Todo número composto pode ser decomposto em fatores primos Ex: = 2 2 X 3 X 5 X 7

Polinômios (B) 4 (C) 2 (D) 1 3 (E). 2

Slides de apoio: Fundamentos

EDOs lineares de coeficientes constantes via Álgebra Linear

complemento para a disciplina de Matemática Discreta versão 1 - Jerônimo C. Pellegrini Relações de Equivalência e de Ordem

CONJUNTO DOS NÚMEROS REAIS. Apostila do 8º ano Números Reais Apostila I Bimestre 8º anos

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Álgebra Moderna Profª Ana Paula OPERAÇÕES

LAÉRCIO VASCONCELOS O ALGEBRISTA. Volume 1. Rio de Janeiro

Material Teórico - Módulo de Potenciação e Dízimas Periódicas. Números Irracionais e Reais. Oitavo Ano. Prof. Ulisses Lima Parente

Introdução à Teoria dos Números - Notas 4 Tópicos Adicionais II

Material Teórico - Módulo de Potenciação e Dízimas Periódicas. Números Irracionais e Reais. Oitavo Ano

Curso Satélite de. Matemática. Sessão n.º 1. Universidade Portucalense

Introdução à Teoria dos Números - Notas 4 Máximo Divisor Comum e Algoritmo de Euclides

Álgebra I Israel. Bárbara Lopes Amaral. 19 de novembro de Universidade Federal de Minas Gerais. Fatoração de Polinômios. Lagrange.

Propriedades dos inteiros Aritmética modular Aplicações (detecção de erros e sistema RSA)

E essa procura pela abstração da natureza foi fundamental para a evolução, não só, mas também, dos conjuntos numéricos

EQUAÇÕES POLINOMIAIS

(g) (G, +, ) sendo G = {a + ib a, b Z}, o conjunto dos inteiros de Gauss, + e a adição e a multiplicação usuais de números complexos.

Parte 2 N Z Q R C. Não faremos a construção axiomática dos números naturais, usaremos apenas as noções intuitivas.

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Algoritmos. OBMEP Teoria dos números - Parte I. Algoritmo da divisão:

Polinômios. Acadêmica: Vanessa da Silva Pires

Apresentar o conceito de anel, suas primeiras definições, diversos exemplos e resultados. Aplicar as propriedades dos anéis na relação de problemas.

1 Congruências e aritmética modular

Funções Polinomiais com Coeficientes Complexos. Divisão de Funções Polinomiais. 3 ano E.M. Professores Cleber Assis e Tiago Miranda

= = 20 4 (3 + 4) 2 = = 56

MA14 - Aritmética Lista 1. Unidades 1 e 2

MAT 2110 : Cálculo para Química

2. PRODUTOS NOTÁVEIS 2.1. EXPANSÃO DE PRODUTOS

Renato Martins Assunção

Introdução à Teoria dos Números Notas de Aulas 3 Prof Carlos Alberto S Soares

ESCOLA SECUNDÁRIA COM 3º CICLO D. DINIS 10º ANO DE MATEMÁTICA A Tema II Funções e Gráficos. Funções polinomiais. Função módulo.

Definimos a soma de seqüências fazendo as operações coordenada-a-coordenada:

MA14 - Aritmética Unidade 22 Resumo. Aritmética das Classes Residuais

MÉTODOS MATEMÁTICOS. Claudia Mazza Dias Sandra Mara C. Malta

a = bq + r e 0 r < b.

O que é Álgebra Abstrata?

Lista 2 - Álgebra I para Computação - IME -USP -2011

Transcrição:

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

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

Introdução Tópico de importância crescente na criptografia AES, Curvas Elípticas, IDEA, Chave pública Diz respeito à operações com números Onde o conceito de número e os tipos de operação podem variar consideravelmente. Começaremos com conceitos de grupos, anéis e corpos da álgebra abstrata.

Grupo Um conjunto de elementos ou números Com algumas operações cujo resultado também está no conjunto (fechado) Obedece: Associatividade: (a.b).c = a.(b.c) Possui identidade e: e.a = a.e = a Possui elemento inverso a -1 :a.a -1 = e Se for comutativa a.b = b.a Então constitui um grupo abeliano.

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

Anél Um conjunto de números Com duas operações (adição e multiplicação) que formam: Um grupo comutativo em relação à operação de adição: Fechado Associativo Distributivo em relação à adição: a(b+c) = ab + ac Se a operação de multiplicação for comutativa, constitui um anel comutativo Se a operação de multiplicação tem um elemento identidade e nenhum divisor que resulte em zero, consitui um domínio integral

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) Um anél Segue uma hierarquia de axiomas/leis grupo -> anél -> corpo

Aritmética Modular Define-se módulo a a mod n como o resto da divisão de a por n Congruência: : para a = b mod n Quando divididos por n, a & b tem o mesmo resto Ex.: 100 mod 11 = 34 mod 11 b é chamado o resíduo de a mod n Uma vez que com inteiros pode-se sempre escrever: a = qn + b Normalmente escolhe-se o menor inteiro positivo para deixar como resíduo 0 <= b <= n-1 o processo é conhecido como Redução de Módulo

Divisores Dizemos que b 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

Operações de Aritmética Modular Usa um número finito de valores e considera contíguos ambos os extremos Aritmética modular considera adição & multiplicação, com a redução de módulo do resultado Pode-se fazer a redução a qualquer momento, Ex.: a+b mod n = [a mod n + b mod n] mod n

Aritmética Modular Pode-se realizar aritmética modular com qualquer grupo de inteiros: Z n = {0, 1,, n-1} Formando um anel comutativo para adição Com um elemento identidade para multiplicação Algumas peculiaridades se (a+b)=(a+c) mod n então b=c mod n mas se (a.b)=(a.c) mod n then b=c mod n somente se a e n forem primos entre si

Modulo 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

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 a e b Ex.: MDC(60,24) = 12 Dizemos que dois inteiros a e b são primos entre si quando o MDC = 1 Ex.: MDC(8,15) = 1 8 & 15 são primos entre si

Algoritmo Euclidiano Um método eficiente para encontrar o 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

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)

Corpo de Galois GF(p) Pode-se mostrar que o número de elementos em um corpo finito deve ser a potência de um número primo p (p n ) Conhecidos por corpo de Galois Denotados por GF(p n ) De interesse em particular os corpos: GF(p) GF(2 n )

Corpo de Galois GF(p) É o conjunto de inteiros {0,1,2...p-1} juntamente com as operações aritméticas de módulo p (primo) Forma um anel comutativo

GF(7) Exemplo para Multiplicação 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

Algoritmo Euclidiano Extendido Encontra não somente o MDC(a,b) = d, mas também os inteiros x e y que satisfazem a sequinte relação: ax+by = d = MCD(a,b)

Algoritmo Euclidiano Extendido 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

Aritmética Polinomial Um polinômio de grau n é uma expressão na forma f(x) ) = a n x n + a n-1 x n-1 + + a 1 x + a 0 = a i x i Podemos distinguir três classes de aritmética de polinômios: Aritmética de polinômios ordinária; 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)

Aritmérica Polinomial Comum Adição ou subtração dos coeficientes correspondentes Multiplicação de cada termo pelos outros Ex.: let f(x) ) = x 3 + x 2 + 2 and g(x) ) = x 2 x + 1 f(x) ) + g(x) ) = x 3 + 2x2 2 x + 3 f(x) ) g(x) ) = x 3 + x + 1 f(x) ) x g(x) ) = x 5 + 3x3 2 2x 2 + 2

Aritmética de Polinomial com Coeficientes em Módulo No cálculo de do valor de cada coeficiente, utiliza aritmética de módulo Forma um anel polinomial Pode ser modulo com qualquer número primo, mas existe interesse especial no módulo 2. Isto é, os coeficientes são 0 ou 1 Ex.: f(x) ) = x 3 + x 2 e g(x) ) = x 2 + x + 1 f(x) ) + g(x) ) = x 3 + x + 1 f(x) ) x g(x) ) = x 5 + x 2

Divisão Polinomial Pode-se escrever qualquer polinômio da seguinte forma: f(x ) = q(x) g(x) ) + r(x) r(x ) é o resto. r(x ) = f(x) ) mod g(x) Se r(x) = 0, diz-se que g(x) ) divide f(x) se g(x) ) não tem outro divisor além dele mesmo & 1 dizemos ser um polinômio irredutível (ou primo) Arimética de módulo com um polinômio primo constitui um corpo

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)] b 1. A(x) ) = a(x); B(x) ) = b(x) 2. if B(x) ) = 0 return A(x) ) = mdc[a(x),, b(x)] b 3. R(x) ) = A(x) ) mod B(x) 4. A(x) ) B(x) 5. B(x) ) R(x) 6. goto 2

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

Examplo: GF(2 3 )

Considerações Computacionais Como os coeficientes são 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

Exemplo Computacional para GF(2 3 ) temos (x 2 +1) é 101 2 & (x 2 +x+1) é 111 2 Então a adição é: (x 2 +1) + (x 2 +x+1) = x 101 XOR 111 = 010 2 E a multiplicação é: (x+1).(x 2 +1) = x.(x 2 +1) + 1.(x 2 +1) = x 3 +x+x 2 +1 = x 3 +x 2 +x+1 011.101 = (101)<<1 XOR (101)<<0 = 1010 XOR 101 = 1111 2 Redução do modulo polinomial (get q(x) & r(x)) é (x 3 +x 2 +x+1 ) mod (x 3 +x+1) = 1.(x 3 +x+1) + (x 2 ) = x 2 1111 mod 1011 = 1111 XOR 1011 = 0100 2

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 0, g 0, g 1,, g q-2 Implementa-se a multiplicação adicionando expoentes do gerador

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(2 n )