Criptografia com Curvas Elípticas
|
|
|
- Cássio Silveira Fonseca
- 7 Há anos
- Visualizações:
Transcrição
1 FUNDAÇÃO GETÚLIO VARGAS TRABALHO DE CONCLUSÃO DE CURSO Criptografia com Curvas Elípticas Autor: Camilla SILVA Supervisor: Luciano CASTRO Um trabalho de Conclusão de Curso que é requerido para a Graduação em Matemática Aplicada na Escola de Matemática Aplicada 21 de Dezembro de 2015
2 Declaração do Autor Eu, Camilla SILVA, declaro que este trabalho de conclusão de curso, cujo título é "Criptografia com Curvas Elípticas"e todo o trabalho apresentado nele é de minha autoria. Eu confirmo que: O trabalho for realizado em sua totalidade enquanto me graduava no curso de Matemática Aplicada. Onde consultei os trabalhos publicados por outros, o crédito foi claramente atribuído na Bibliografia. Assinatura: Data: i
3 Pure mathematics is, in its way, the poetry of logical ideas. Albert Einstein ii
4 FUNDAÇÃO GETÚLIO VARGAS Resumo Escola de Matemática Aplicada Graduação em Matemática Aplicada Criptografia com Curvas Elípticas Camilla SILVA O objetivo deste trabalho é apresentar técnicas de criptografia que utilizam Curvas Elípticas, desenvolver seus algoritmos e compará-los em rendimento com a técnica do RSA que é muito utilizada nos dias atuais, e também será apresentada no desenvolvimento do documento. iii
5 Conteúdo Declaração do Autor Resumo i iii 1 Introdução 1 2 A Criptografia RSA O método RSA de criptografia Criação das chaves Encriptação Desencriptação Problema do método Curvas Elípticas O que são? Condições para as constantes Garantir a não auto-interseção Garantir a ausência de cúspides O que são Grupos O que são Corpos A necessidade do ponto O Definindo a operação sobre os pontos da curva elíptica (C) Elemento simétrico Operação para dois pontos distintos Operação entre dois pontos iguais Multiplicação de um ponto por um escalar natural Subgrupos e suas propriedades Códigos para as operações Código para garantir a existência da curva Código para verificar se pontos são simétricos Código para realizar a operação iv
6 Código para a multiplicação de um ponto por um escalar 14 4 Algoritmos de Criptografia com Curvas Elípticas Diffie Hellman O porquê da força Um outro método usando curvas elípticas Encriptando uma mensagem Descriptografando a mensagem O porquê da fórmula para descriptografar funcionar Exemplo Códigos para o problema criptografar e descriptografar. 20 A força do algoritmo Conclusão 23 A A classe de problemas NP 25 A.1 Fatorar Números A.2 O problema do Logaritmo Discreto Bibliografia 28 v
7 Lista de Figuras 3.1 Exemplos de curvas elípticas Cúspide na curva y 2 = x Posição do ponto O em uma curva elíptica Representação geométrica de ponto simétrico A B = C A A = 2A Esquema para o algoritmo de Diffie-Hellman Tabela de consulta para exemplo Tabela comparativa entre RSA e Curvas Elípticas vi
8 Capítulo 1 Introdução A criptografia é definida pelo dicionário como Arte de escrever secretamente por meio de abreviaturas ou de sinais convencionados entre duas ou mais pessoas ou partes. Codificação de um artigo ou outra informação armazenada num computador, para que só possa ser lido por quem detenha a senha de sua decodificação. [2] Uma das primeiras máquinas conhecidas para o desenvolvimento da criptografia foi a Enigma, criada por Dr. Arthur Scherbius no ínicio do século XX. A máquina mantinha grande similaridade com máquinas de escrever, e se baseava em tabelas distribuídas mensalmente para criar o código necessário para encriptografar os dados. Durante as primeiras décadas do século XX, algumas outras versões da Enigma foram desenvolvidas, entre elas a Enigma G, que foi utilizada pelos alemães durante a segunda guerra mundial. A necessidade das técnicas de criptografia se dá pelo fato de que nem todas as informações devem ser públicas (como por exemplo as rotas de ataques de aviões durante a segunda guerra). Com o desenvolvimento rápido dos computadores nas últimas décadas, algumas formas de criptografia foram mais evidenciadas pelo maior rendimento e maior capacidade de manter os dados secretos. Neste trabalho abordaremos dois tipos fundamentais de criptografia utilizadas nos dias de hoje [3]: Criptografia com chaves simétricas; Criptografia com chaves assimétricas. A Criptografia com chaves simétricas consiste em criar um canal conhecido apenas pelas pessoas que vão partilhar a informação. Esse canal é formado com uma chave única que é compartilhada pelos indivíduos ou empresas que querem manter a comunicação privada. É possível usar métodos matemáticos 1
9 Capítulo 1. Introdução 2 para essa chave ser compartilhada de forma que fontes externas não consigam descobri-la. A Criptografia com chaves assimétricas também é conhecida como criptografia de chave pública, ela consiste no uso de duas chaves: uma pública e uma privada. Essa criptografia é baseada também em métodos matemáticos na criação das chaves, que utilizam operações difíceis de serem invertidas computacionalmente. A chave pública é conhecida por todos e é usada para criptografar a mensagem que é crida pela pessoa que quer passar a informação. Essa informação, por sua vez, só pode ser descriptografada por quem possui a chave privada. No desenvolvimento do trabalho serão analisados algoritmos que usam as duas formas de criptografia supracitadas, usando o método RSA e o método das curvas elípticas.
10 Capítulo 2 A Criptografia RSA RSA é um algoritmo de criptografia que utiliza chaves assimétricas, criado por Ron Rivest, Adi Shamir and Len Adleman em O algoritmo usa um fato conhecido na matemática: a dificuldade em fatorar números com fatores primos muito grandes. [1] 2.1 O método RSA de criptografia O método RSA é realizado da seguinte forma: Criação das chaves 1. Escolha aleatoriamente dois primos grandes distintos (ordem de ): p e q; 2. Faça n = pq; 3. Encontre φ(n) = (p 1)(q 1); 4. Escolha um número inteiro e, de tal forma que 1 < e < φ(n), e mdc(e, φ(n)) = 1; 5. Encontre d, o inverso de e mod(φ(n)) Temos assim: Chave pública = (n, e) Chave privada = (n, d) 3
11 Capítulo 2. A Criptografia RSA Encriptação Sendo m a mensagem a ser passada (já convertida para a forma numérica), calculamos: C m e (mod n) Assim, temos nossa mensagem criptografada C Desencriptação O receptor possui a chave privada. Com essa chave, é possível calcular m C d (mod n) e encontrar a mensagem original. Vamos verificar abaixo que a mensagem m é realmente dada pela conta proposta, ou seja, vamos demonstrar que m C d (mod n). É necessário escolher m < min{p, q}. Caso a mensagem a ser passada seja maior que min{p, q} ela deverá ser dividida em partes. Demonstração. Basta mostrar que C d (m e ) d m(mod n). Como sabemos que ed 1(modφ(n)), podemos escrever ed = kφ(n) + 1, k Z. Assim, m ed = m kφ(n) m. Como (mdc(m, n) = 1), pelo teorema de Euler-Fermat, m φ(n) 1(mod n). Com isso, temos que m kφ(n) m m(mod n) e, consequentemente: C d m(mod n) Problema do método Caso seja possível encontrar φ(n), é fácil encontrar um inverso de e(mod φ(n)), com tempo de execução O(log φ(n)). Com isso, para ser difícil encontrar o φ(n), a fatoração de n deve ser difícil, assim devemos usar primos grandes, já que o algoritmo de fatoração é NP. Uma outra forma de abordar a quebra da criptografia, seria tentar encontrar o φ(n) sem fatorar o n. Mas se isso fosse possível em tempo polinomial, seria também possível fatorar os números em tempo polinomial: Como φ(n) = (p 1)(q 1) = pq + p + q + 1 = n + p + q + 1, teríamos: p + q = φ(n) n 1 pq = n. Como não é conhecido nenhum algoritmo em tempo polinomial para a fatoração de números, também não existe para encontrar o φ.
12 Capítulo 3 Curvas Elípticas 3.1 O que são? Curvas Elípticas são curvas algébricas no plano cartesiano, cujas equações são da forma: y 2 = x 3 + ax + b. Como por exemplo os gráficos da Figura 3.1. [7] As Curvas Elípticas devem ser (a) a = 1, b = 5 (b) a = 1, b = 2 (c) a = 1, b = 0 (d) a = 1, b = 1 FIGURA 3.1: Exemplos de curvas elípticas não-singulares, ou seja, não deve existir auto-interseção nem cúspides. 5
13 Capítulo 3. Curvas Elípticas Condições para as constantes Para assegurar o fato de que a curva deve ser não singular, é necessário encontrar as condições para a e b em R. Garantir a não auto-interseção Para isso, parametrizamos a função por partes, considerando, separadamente, y > 0 e y 0. Para y > 0: x = t y = t 3 + at + b E para y 0: x = t y = t 3 + at + b É fácil perceber que para haver auto-interseção devemos ter y = 0, pois, para y 0 cada uma das definições paramétricas é uma função, e de sinais distintos. Com isso, é necessário saber se há algum valor de t que é raiz dupla da equação que define t. Suponha que exista um valor x 0 que satisfaz o pedido. Com isso: x ax 0 + b = 0 3x a = 0 Resolvendo o sistema encontramos x 0 = 3b, e substituindo na segunda equação, chegamos a 27b 2 + 4a 3 = 0. Esta é a condição para que a curva tenha 2a auto-interseção. Como queremos que não exista essa auto-interseção, precisamos que: 27b 2 + 4a 3 0 Garantir a ausência de cúspides Uma cúspide é um ponto em que há um "bico"na função, como na Figura 3.2. Para a cúspide existir em uma curva definida implicitamente por f(x, y) = 0, é
14 Capítulo 3. Curvas Elípticas 7 FIGURA 3.2: Cúspide na curva y 2 = x 3 necessário e suficiente que: δf δx (x 0, y 0 ) = 0 δf δy (x 0, y 0 ) = 0 Assim, podemos escrever a curva elíptica como as raízes de: f(x, y) = x 3 + ax + b y 2 Temos: δf δx (x 0, y 0 ) = 3x a = 0 δf δy (x 0, y 0 ) = 2y 0 = 0 Como (x 0, y 0 ) deve pertencer à Curva Elíptica, chegamos a contas similares às do outro caso, e chegamos novamente à conclusão de que, para não haver cúspides: 27b 2 + 4a 3 0. O que são Grupos Um grupo é uma estrutura algébrica formada por um conjunto de elementos (G) e uma operação ( : G G G). Podemos expressar o grupo como (G, ). Propriedades de grupos:
15 Capítulo 3. Curvas Elípticas 8 Fechado com relação a : u, v G (u v) G Associatividade : u, v, w G u (v w) = (u v) w Existência do elemento neutro: u G, o G u o = o u = u Existência do elemento simétrico: u G, u G u u = u u = o O que são Corpos Corpos são conjuntos nos quais as operações de soma, multiplicação, subtração e divisão (por não nulo) estão definidas. Valem nessas operações as propriedades já conhecidas destas operações, como a comutatividade da adição e da multiplicação. Um Corpo Finito é um corpo com um número finito de elementos. [8] As propriedades de grupos sobre os pontos de uma curva elíptica são válidas se trabalharmos sobre qualquer corpo. Para fins de criptografia trabalharemos sobre o conjunto dos inteiros módulo p (primo) (Z p ), e as operações definidas serão neste contexto. Os pontos das Curvas Elípticas em Z p são grupos abelianos. O grupo é abeliano quando, ademais, a operação tem propriedade comutativa: u, v G u v = u v. A necessidade do ponto O Para satisfazer as propriedades de grupos sobre os pontos da curva, é necessário adicionar um novo ponto na curva, que será o elemento neutro. A posição desse elemento neutro foi determinada usando Geometria Projetiva, e ele está localizado no infinito em todas as verticais possíveis que passam pela curva, como na Figura 3.3.
16 Capítulo 3. Curvas Elípticas 9 FIGURA 3.3: Posição do ponto O em uma curva elíptica Definindo a operação sobre os pontos da curva elíptica (C) Elemento simétrico Definimos o elemento simétrico como o simétrico em relação à reta y = 0, ou seja: se P = (x P, y P ) é um ponto da curva C, seu simétrico será P = P = (x P, y P ). Operação para dois pontos distintos Aqui definiremos a operação necessária para para verificarmos as propriedades de grupos sobre os pontos da curva. Se A e B são dois pontos distintos da curva, definimos resposta da operação A B como simétrico do terceiro ponto de interseção da reta AB com a curva, como na Figura 3.5. Sejam A = (x A, y A ) e B = (x B, y B ), onde as coordenadas de ambos os pontos são inteiras, para encontrar o ponto A B = C,consideramos inicialmente a reta y = mx + n que passa por A e B (m = y B y A x B x A e n = y A mx A ). Para encontrar C =
17 Capítulo 3. Curvas Elípticas 10 FIGURA 3.4: Representação geométrica de ponto simétrico FIGURA 3.5: A B = C (x ( C), y ( C) ), precisamos resolver o sistema: y 2 = x 3 + ax + b y = mx + n Temos então: (mx + n) 2 = x 3 + ax + b
18 Capítulo 3. Curvas Elípticas 11 x 3 m 2 x 2 + (a 2mn)x + b n = 0 Usando relações de Girard, encontramos m 2 = x A + x B + x C x ( C) = m 2 x A x B e substituindo essa informação na segunda equação do sistema, temos: y ( C) = m(m 2 x A x B ) + n. Como C = (x ( C), y ( C) ), temos: A B = C (x A, y A ) (x B, y B ) = (m 2 x A x B, m(m 2 x A x B ) n) Caso ambos os pontos A e B estejam na mesma vertical, queremos realizar a operação A A, como são simétricos, o resultado da operação é O. É possível perceber isso também geometricamente, pois não há outra interseção da reta vertical com C. A propriedade da associatividade em curvas elípticas tem uma demonstração que não cabe no escopo deste trabalho, e pode ser encontrada em [4]. As demais propriedades são simples de demonstrar. Operação entre dois pontos iguais Para realizar a operação A A, é necessário considerar que em A B temos B A, o que implica o uso da reta tangente passando por A. Nesse caso, encontramos a reta tangente por A: y = mx + n, com m = 3x2 A + a 2y A (se y A 0), e n = y A mx a. E podemos encontrar assim, analogamente ao item anterior: A A = (x A, y A ) (x A, y A ) = (m 2 2x A, m(m 2 2x A ) n). Caso y A = 0, temos que A = A, e, com isso, sua soma é O. FIGURA 3.6: A A = 2A
19 Capítulo 3. Curvas Elípticas 12 Multiplicação de um ponto por um escalar natural Usando as definições anteriores, é possível construir a operação αp, onde α N e P C. Subgrupos e suas propriedades αp = P P P }{{} α termos Um subgrupo de G é um grupo que está contido em G e possui um elemento gerador, que chamaremos de g. Esse elemento, como mostra o nome, é capaz de gerar todos os elementos do subgrupo analisado. Seja S G o subgrupo, temos: g S G ; α N, αg S G ; α N αg = O Chamamos de ordem de S C o menor número natural n tal que ng = O Códigos para as operações Nesta seção utilizaremos o software P ython para definir as funções necessárias para analisar a criptografia usando curvas elípticas. Trabalharemos, então com o corpo finito Z p onde p é um número primo. Código para garantir a existência da curva Dada uma curva com parâmetros a e b, a função existence_curve retorna True se a curva e elíptica, e False caso contrário. 1 def e x istence_curve ( a, b ) : 2 x = 27 a^2 + 4 a^3 3 i f x == 0 : 4 return F a l s e 5 e l s e : 6 return True
20 Capítulo 3. Curvas Elípticas 13 Código para verificar se pontos são simétricos A função issim verifica se os pontos A e B são simétricos em uma curva de parâmetros a e b trabalhada módulo p, e a função simetrico retorna o simétrico de A em uma curva de parâmetros também dados: 1 def issim (A, B, p ) : 2 i f A =="O" and B =="O" : 3 return True 4 e l i f A =="O" or B == "O" : 5 return F a l s e 6 i f A[0]==B [ 0 ] and A[ 1 ]! = B [ 1 ] and A[1]%p == B[1]%p : 7 return True 8 e l s e : 9 return F a l s e def s i m e t r i c o ( a, b, p,a) : 12 i f A!= "O" : 13 return (A[ 0 ], A[1]%p ) 14 i f A == "O" : 15 return A Código para realizar a operação A função oper retorna a A B (com A B) sobre a curva de parâmetros a e b, trabalhada módulo p. Para usá-la, foi necessária a construção de duas funções auxiliares: egcd que calcula o mdc entre dois números, e modinv que calcula o inverso de a módulo m (usando o Algoritmo de Euclides - para isso foi necessário usar o mdc). 1 def egcd ( a, b ) : 2 i f a == 0 : 3 return ( b, 0, 1) 4 e l s e : 5 g, y, x = egcd ( b % a, a ) 6 return ( g, x ( b // a ) y, y ) 7 8 def modinv ( a, m) : 9 g, x, y = egcd ( a%m, m) 10 i f g!= 1 : 11 r a i s e Exception ( Nao e x i s t e o inverso ) 12 e l s e : 13 return x % m def oper ( a, b, A, B, p ) :
21 Capítulo 3. Curvas Elípticas i f A == "O" : 17 return B 18 e l i f B=="O" : 19 return A 20 e l s e : 21 x_a = A[0]%p 22 y_a = A[1]%p 23 x_b = B[0]%p 24 y_b = B[1]%p 25 i f issim (A, B, p ) : 26 return "O" 27 e l i f A == B : 28 m = ( ( 3 pow( x_a, 2, p ) +a%p ) modinv (2 y_a, p ) )%p 29 n = ( y_a m x_a )%p 30 e l i f A!=B : 31 m = ( ( y_a y_b )%p modinv ( x_a x_b, p ) )%p 32 n = ( y_a m x_a )%p 33 return ( ( pow(m, 2, p ) x_a x_b )%p, ( m (m 2 x_a x_b ) n )%p ) Código para a multiplicação de um ponto por um escalar Para realizar a multiplicação de um ponto por um escalar de forma otimizada, usaremos a representação binária do escalar para diminuir o tempo do algoritmo. Por exemplo para realizar a operação 13A, faremos: 13A = 2 3 A 2 2 A A. Para otimizar o código foi necessário criar a função dobrar que recebe os parâmetros da curva, o ponto A e um número num e retorna 2 num A. Com isso foi possível construir a função mult que recebe como argumentos os parâmetros da curva a e b, o número x o ponto A e o módulo p trabalhado, e retorna xa na curva escolhida. 1 def dobrar ( a, b, p,a,num) : 2 while num> 0: 3 A = oper ( a, b,a,a, p ) 4 num =1 5 return A 6 7 def mult ( a, b, x, A, p ) : 8 x = bin ( x ) [ 2 : ] 9 ans = "O" 10 f o r i in range ( len ( x ) ) : 11 i f x [ i ] ==" 1 " : 12 ans = oper ( a, b, ans, dobrar ( a, b, p,a, len ( x ) 1 i ), p ) 13 return ans
22 Capítulo 4 Algoritmos de Criptografia com Curvas Elípticas Para abordar a criptografia com curvas elípticas, trabalharemos em Z p, ou seja, reduziremos as coordenadas dos pontos a módulo p primo. 4.1 Diffie Hellman O algoritmo Diffie-Hellman para curvas elípticas consiste em criar um canal para a comunicação entre duas partes.[5] A Chave pública é da forma (p, a, b, G, n), onde: p é o primo usado para redução de módulo; a e b são os parâmetros para a formação da curva elíptica no formato y 2 = x 3 + ax + b; G é um ponto gerador da curva; n a ordem da curva; Suponha que duas pessoas distintas, Alice e Bob querem criar um canal para comunicação: Para a criação do canal entre ambas as partes, o seguinte procedimento deve ser seguido: Ana deve: 1. Escolher de um número entre 1 e n 1: α; 2. Computar A = αg; 3. Enviar A para Bob. E Bob deve: 15
23 Capítulo 4. Algoritmos de Criptografia com Curvas Elípticas Escolher de um número entre 1 e n 1: β; 2. Computar B = βg; 3. Enviar B para Ana. Depois dos passos anteriores, cada um deles tem a capacidade de computar o mesmo ponto P = αβp = βαp, e o canal assim está criado. FIGURA 4.1: Esquema para o algoritmo de Diffie-Hellman O porquê da força De uma forma geral os parâmetros escolhidos para a curva e o primo escolhidos para usar a o algoritmo de Diffie-Hellman são números grandes, como por exemplo os parâmetros usados pela Microsoft: p = a = b = G x = G y = n = A força do algoritmo se dá pelo fato de que uma pessoa que queira descobrir o valor P, deve descobrir ou o α ou o β, ou seja: Sabendo αg e G é possível encontrar o valor de α?
24 Capítulo 4. Algoritmos de Criptografia com Curvas Elípticas 17 Esse problema é tratado em algoritmos como o problema do Logaritmo Discreto, que consiste em encontrar o valor de x tal que xg = P, onde conhecemos G e P que pertencem a um grupo cíclico finito. 4.2 Um outro método usando curvas elípticas Um outro método possível de se comunicar usando curvas elípticas - e usando chaves assimétricas - será descrito abaixo: [6] Suponha que duas pessoas - Ana e Bob - querem se comunicar, para isso eles precisam escolher uma curva elíptica y 2 = x 3 + ax + b, um número primo p, e um ponto pertencente a curva C. Ana deve: 1. Escolher α menor que a ordem da curva, e um ponto da curva A; 2. Gerar A 1 = α(c A), e A 2 = αa; 3. Publicar A 1 e A 2 como chave pública; E o Bob, analogamente, deve: 1. Escolher β menor que a ordem da curva, e um ponto da curva A; 2. Gerar B 1 = β(c B), e B 2 = βb; 3. Publicar B 1 e B 2 como chave pública; Depois disso, a Ana é capaz de calcular A B = αb 2, que será a será também publicada como chave pública, mas específica para Bob. E o Bob faz o mesmo: calcula B A = βa 2 e publica com chave pública específica para Ana. Com isso, é possível encriptar a mensagem. Encriptando uma mensagem Para codificar a mensagem, é necessário atribuir a cada ponto da curva um caractere, de forma que com esses caracteres seja possível formar a mensagem que deve ser passada. Após criar essa relação entre pontos e caracteres, é possível mandar a mensagem da seguinte forma: Se Ana quer mandar a mensagem para Bob, ela deve, para cada caractere X: 1. Escolher um número qualquer γ aleatoriamente; 2. Computar X 1 = γc e X 2 = X (α + γ)b 1 γb 2 B 1 A ; 1 Como os pontos da curva satisfazem as propriedades de grupos em Z p : E 1 e E2 pertencem à curva.
25 Capítulo 4. Algoritmos de Criptografia com Curvas Elípticas Encontrar os caracteres correspondentes a X 1 e X 2 na tabela compartilhada x 1 e x 2 ; 4. Enviar (x 1, x 2 ) para Ana. Descriptografando a mensagem Para encontrar o caractere correspondente a cada X, Bob deve: 1. Encontrar os pontos X 1 e X 2 usando a tabela de correspondência com x 1 e x 2 ; 2. Encontrar a o caractere que quer ser passado com a seguinte fórmula X = X 2 (βx 1 βa 1 A B ). Com isso cada caractere da mensagem pode ser passado de forma segura O porquê da fórmula para descriptografar funcionar A mensagem X é gerada de tal forma que X = X 2 ((α + γ)b 1 γb 2 B A ). Com isso: X = X 2 ((α + γ)b 1 γb 2 B A ) X = X 2 (γ(b 1 B 2 ) αb 1 B A ) X = X 2 (γβc αb 1 B A ) X = X 2 (γβc αβ(c B) βαa) X = X 2 (βx 1 βα(a B C)) X = X 2 (βx 1 βα(c A) βαb X = X 2 (βx 1 βa 1 αb 2 ) X = X 2 (βx 1 βa 1 A B ) O que mostra que a fórmula de descriptografar realmente funciona Exemplo Para construir um exemplo, usaremos a curva: y 2 = x 3 + 2x + 5(mod31) Encontrando todos os pontos da curva, podemos construir a tabela que consta na Figura 4.2. A ordem do grupo é 42 e podemos escolher C = (30, 8). Com isso, Ana pode escolher: 1. A = (10, 23);
26 Capítulo 4. Algoritmos de Criptografia com Curvas Elípticas 19 FIGURA 4.2: Tabela de consulta para exemplo 2. α = 13; 3. A 1 = α(c A) = (20, 4); 4. A 2 = αa = (10, 8). E Bob pode escolher: 1. B = (25, 5); 2. β = 9; 3. B 1 = β(c B) = (10, 23); 4. B 2 = βb = (24, 12). Assim, A B = αb 2 = (24, 19) e B A = βa 2 = (6, 27). Se a mensagem a ser passada de Ana para Bob é a letra m, por exemplo, o seguinte procedimento deve ser seguido: 1. Ela deve escolher um número qualquer γ = 241; 2. Encontrar o ponto da curva correspontente à letra m na tabela compartilhada : X = (10, 8); 3. Computar X 1 = γc = (5, 27) e X 2 = X (α + γ)b 1 γb 2 B A = (16, 17) 4. Calcular o par de letras referentes a X 1 ex 2 na tabela (h, u) e enviar esse par para Bob. Ao receber a o par (X 1, X 2 ), Bob deve:
27 Capítulo 4. Algoritmos de Criptografia com Curvas Elípticas Encontrar os pares X 1 = (5, 27) e X 2 = (16, 17) referentes a h e u, respectivamente, usando a tabela de referências compartilhada; 2. Calcular X = X 2 (βx 1 βa 1 A B ) = (10, 8); 3. Transformar X em um caractere usando a tabela de referências. Com isso, a mensagem é devidamente compartilhada. Códigos para o problema criptografar e descriptografar Para poder usar o Python para criptografar e descriptografar mensagens, é necessário primeiramente definir os parâmetros iniciais da curva e as escolhas de cada pessoa - para o exemplo acima, usamos os parêmetros: 1 t a b l e _ o f _ r e f e r e n c e s = { " " : "O", " a " : ( 0, 6 ), " b " : ( 0, 2 5 ), " c " : ( 1, 1 5 ), "d" : ( 1, 1 6 ), " e " : ( 3, 1 0 ), " f " : ( 3, 2 1 ), " g " : ( 5, 4 ), "h" : ( 5, 2 7 ), " i " : ( 6, 4 ), " j " : ( 6, 2 7 ), " k " : ( 9, 1 5 ), " l " : ( 9, 1 6 ), "m" : ( 1 0, 8 ), "n" : ( 1 0, 2 3 ), " o " : ( 1 1, 5 ), "p" : ( 1 1, 2 6 ), " q " : ( 1 4, 7 ), " r " : ( 1 4, 2 4 ), " s " : ( 1 5, 0 ), " t " : ( 1 6, 1 4 ), "u" : ( 1 6, 1 7 ), " v " : ( 1 8, 1 3 ), "w" : ( 1 8, 1 8 ), " x " : ( 1 9, 1 2 ), " y " : ( 1 9, 1 9 ), " z " : ( 2 0, 4 ), " : " : ( 2 0, 2 7 ), " ; " : ( 2 1, 1 5 ), " $ " : ( 2 1, 1 6 ), "%" : ( 2 2, 8 ), "@" : ( 2 2, 23), "&" : ( 2 3, 2 ), " ( " : ( 2 3, 2 9 ), " ) " : ( 2 4, 1 2 ), "+" : ( 2 4, 1 9 ), "=" : ( 2 5, 5 ), " " : ( 2 5, 2 6 ), " " : ( 2 6, 5 ), "? " : ( 2 6, 2 6 ), "! " : ( 3 0, 8 ), ". " : ( 3 0, 2 3 ) } 2 a=2 3 b=5 4 p=31 5 A= ( 1 0, 2 3 ) 6 alpha = 13 7 B= ( 2 5, 5 ) 8 beta = 9 9 C = ( 3 0, 8 ) 10 AmaisC = oper ( a, b,a, C, p ) 11 A1 = mult ( a, b, alpha, AmaisC, p ) 12 A2 = mult ( a, b, alpha, A, p ) 13 BmaisC = oper ( a, b, B, C, p ) 14 B1 = mult ( a, b, beta, BmaisC, p ) 15 B2 = mult ( a, b, beta, B, p ) 16 AB = mult ( a, b, alpha, B2, p ) 17 BA = mult ( a, b, beta, A2, p ) Podemos então definir as funções usadas: cript: Recebe os parâmetros da curva e de ambas as partes que querem se comunicar - exceto o beta(número escolhido pelo receptor da mensagem,
28 Capítulo 4. Algoritmos de Criptografia com Curvas Elípticas 21 quem manda não tem esse dado), e um "caracter"para ser criptografado. E retorna um par de caracteres gerado pela criptografia; descript: Recebe além dos parâmetros, o par gerado pela função cript, e retorna o "caracter"que estava criptografado; cript_msg e descript_msg funcionam de forma a operar as funções anteriores para uma sequência de caracteres. 1 def c r i p t ( a, b, p, C, l e t r a, alpha, B1, B2, BA, t a b l e _ o f _ r e f e r e n c e s ) : 2 X = t a b l e _ o f _ r e f e r e n c e s [ l e t r a ] 3 gamma = random. randint ( 2, 3 p ) 4 E1 = mult ( a, b, gamma, C, p ) 5 u1 = mult ( a, b, ( alpha+gamma), B1, p ) 6 u2 = mult ( a, b, gamma, B2, p ) 7 u3 = s i m e t r i c o ( a, b, p, u2 ) 8 S1 = oper ( a, b, X, BA, p ) 9 S2 = oper ( a, b, S1, u1, p ) 10 S3 = oper ( a, b, S2, u3, p ) 11 E2= S3 12 f o r l e t r a, ponto in t a b l e _ o f _ r e f e r e n c e s. i t e r i t e m s ( ) : 13 i f ponto == E1 : 14 x1 = l e t r a 15 f o r l e t r a, ponto in t a b l e _ o f _ r e f e r e n c e s. i t e r i t e m s ( ) : 16 i f ponto == E2 : 17 x2 = l e t r a 18 return ( x1, x2 ) def d e s c r i p t ( a, b, p, par, A1, AB, beta, t a b l e _ o f _ r e f e r e n c e s ) : 22 X1 = t a b l e _ o f _ r e f e r e n c e s [ par [ 0 ] ] 23 X2 = t a b l e _ o f _ r e f e r e n c e s [ par [ 1 ] ] 24 M1 = mult ( a, b, beta, X1, p ) 25 M2 = mult ( a, b, beta, A1, p ) 26 S1 = oper ( a, b, M1, M2, p ) 27 S2 = oper ( a, b, S1, AB, p ) 28 S22 = s i m e t r i c o ( a, b, p, S2 ) 29 X = oper ( a, b, S22, X2, p ) 30 f o r l e t r a, ponto in t a b l e _ o f _ r e f e r e n c e s. i t e r i t e m s ( ) : 31 i f ponto == X : 32 msg = l e t r a 33 return msg def cript_msg ( a, b, p, C, mensagem, alpha, B1, B2, BA, t a b l e _ o f _ r e f e r e n c e s ) :
29 Capítulo 4. Algoritmos de Criptografia com Curvas Elípticas l = [ ] 37 f o r i in mensagem : 38 l. append ( c r i p t ( a, b, p, C, i, alpha, B1, B2, BA, t a b l e _ o f _ r e f e r e n c e s ) ) 39 return l def descript_msg ( a, b, p, list_msg, A1, AB, beta, t a b l e _ o f _ r e f e r e n c e s ) : 42 msg = " " 43 f o r i in list_msg : 44 msg = msg + d e s c r i p t ( a, b, p, i, A1, AB, beta, t a b l e _ o f _ r e f e r e n c e s ) 45 return msg A força do algoritmo A força desse outro método de criptografia se dá basicamente pelo mesmo motivo do "Diffie-Hellman". Como a única chave que ambos não possuem são α e β, uma pessoa que queira descobrir a mensagem passada deveria tentar descobrir o valor de uma dessas constantes, o que se resume ao problema do "logaritmo discreto"em curvas elípticas que se enquadra na categoria de problemas NP.
30 Capítulo 5 Conclusão Com a evolução rápida dos computadores atuais, novas técnicas de criptografia se sobressaem no campo da segurança. O RSA é mais usado atualmente pelas grandes empresas, mas a criptografia com curvas elípticas tem traçado sua importância pela menor necessidade de memória para criar chaves. A tabela da Figura 5.1 mostra uma comparação entre o tamanho de chave necessário para um mesmo nível de segurança. (Tabela retirada de nsa.gov/business/programs/elliptic_curve.shtml em 10/11/2015) FIGURA 5.1: Tabela comparativa entre RSA e Curvas Elípticas Apesar da vantagem sobre o método RSA em relação ao tamanho das chaves, há um problema iminente para ambos os métodos: o desenvolvimento de "computadores quânticos". Esses "novos computadores"não funcionam com bits como os computadores simples atuais, e sim com qubits, onde cada espaço de memória pode assumir 1, 0 ou ambos simultaneamente. O fato desses computadores estarem sendo desenvolvidos ao longo dos anos pode dificultar as maiores formas de criptografia que existem por conseguir resolver problemas 23
31 Capítulo 5. Conclusão 24 tratados como NP em um tempo muito menor do que computadores tradicionais, fazendo assim com que as chaves tenham que ser significantemente aumentadas. Com isso, podemos concluir estudos de novos métodos de criptografia serão muito requeridos durante os próximos anos, e estudos e desenvolvimentos de métodos já existentes terão importância considerável na segurança dos dados.
32 Apêndice A A classe de problemas NP A classe de problemas NP (tempo polinomial não determinístico) engloba os problemas que não são resolvíveis em tempo polinomial por computadores atuais. Dentro da classe de problemas NP, existe um conjunto de problemas chamado NP-completo. Os problemas desse conjunto têm uma característica que os diferencia dos outros problemas NP: Se um problema for resolvido em tempo polinomial, todos os problemas desse conjunto também terão solução em tempo polinomial. O problema de fatoração, assim como o problema do logaritmo discreto, são dois problemas da classe NP. Esse fato implica a dificuldade de solução "rápida"de ambos os problemas. A.1 Fatorar Números Existem muitos algoritmos para tentar fatorar um número, o mais ingênuo dentre eles é a "fatoração por tentativa". Esse método tenta fatorar o número n por todos os primos menores que n. O tempo computacional necessário para encontrar a fatoração é O(2 x 2 ), com x = número de dígitos de n em sua representação binária. Os códigos abaixo mostram uma forma de tentar fatorar um número por tentativa, o teste de Miller-Rabin determina com uma alta probabilidade se o número é primo ou não. E assim, é possível usar o algoritmo para fatoração: 1 import random 2 def g ( x, i, n ) : 3 # r e t o r n a r x (2 i )%n 4 k = x%n 5 f o r j in range ( i ) : 6 k = ( k k )%n 25
33 Apêndice A. A classe de problemas NP 26 7 return k 8 9 def m i l l e r _ r a b i n _ t e s t ( n ) : 10 i f n == 2 : 11 return " pseudoprimo " 12 e l i f n%2 ==0: 13 return " composto " 14 e l s e : 15 dn = n 1 16 s = 0 17 while dn%2 ==0: 18 s += 1 19 dn = dn/2 20 a = random. randint ( 2, n 1) 21 i f pow( a, dn, n ) ==1: 22 return " pseudoprimo " 23 e l s e : 24 u = F a l s e 25 f o r i in range ( 0, s ) : 26 i f u ==False : 27 i f g (pow( a, dn, n ), i, n ) == n 1: 28 u = True 29 e l s e : 30 u =False 31 i f u == True : 32 return " pseudoprimo " 33 i f u==false : 34 return " composto " def f a t o r a c a o _ p o r _ t e n t a t i v a ( n ) : 37 i f n < 2 : 38 return [ ] 39 f a t o r e s = [ ] 40 f o r p in range ( 2, i n t ( n 0. 5 ) + 1) : 41 i f m i l l e r _ r a b i n _ t e s t ( p ) == " pseudoprimo " : 42 while n % p == 0 : 43 f a t o r e s. append ( p ) 44 n //= p 45 i f n > 1 : 46 f a t o r e s. append ( n ) 47 return f a t o r e s
34 Apêndice A. A classe de problemas NP 27 A.2 O problema do Logaritmo Discreto O problema do Logaritmo Discreto se resume a tentar descobrir o valor de α tal que αa = B, onde A e B são conhecidos e pertencem a um grupo cíclico finito. O algoritmo ingênuo para resolver esse problema seria tentar valores de α de uma forma crescente até descobri-lo, esse algoritmo seria de ordem O(n) onde n é o número de elementos do grupo, ou O(10 x ), onde x é o número de dígitos de n. Com isso seria um problema exponencial.
35 Bibliografia [1] S. Collier Coutinho. Números Inteiros e Criptografia RSA. IMPA. [2] Dicionário Português. Dez. de URL: org/pt/criptografia. [3] W. Burr W. Polk M. Smid E. Barker W. Barker. «COMPUTER SECURITY». Em: NIST Special Publication (jul. de 2012), pp URL: http: //csrc.nist.gov/publications/nistpubs/800-57/sp800-57_part1_rev3_general.pdf. [4] Nicolau C. Saldanha Eduardo Tengan Fabio E. Brochero Martinez Carlos Gustavo T. de A. Moreira. Teoria dos Números: um passeio com primos e outros familiares pelo mundo inteiro. IMPA. [5] N. Koblitz. A Course in Number Theory and Cryptography. Springer. [6] D. Sravanna Kumar, CH. Suneetha e A. ChandrasekhAR. «Encryption of Data using Elliptic Curve over finite fields». Em: International Journal of Distributed and Parallel Systems 3.1 (jan. de 2012), pp URL: http: //arxiv.org/ftp/arxiv/papers/1202/ pdf. [7] P. Salehyan. Introdução às Curvas Elípticas e Aplicações. IMPA. [8] C. Yuzo Shine. «Corpos Finitos». Em: X Semana Olímpica 1.1 (jan. de 2007), pp URL: semana_olimpica/docs/2007/corpos.pdf. 28
Troca de chaves Diffie-Hellman Grupos finitos Grupos cíclicos
Introdução à Chave Pública Troca de chaves Diffie-Hellman Grupos finitos Grupos cíclicos Troca de Chaves de Diffie-Hellman Parâmetros públicos p, α Alice: 1 Sorteia a = K pra {2, 3,..., p 2} 3 Envia para
D OLJHLUD UDSRVD PDUURP VDOWRX VREUH R FDFKRUUR FDQVDGR 1
Matemática Discreta October 12, 2018 1 1 Criptografia Criptografia de chave secreta: quando remetente e destinatário concordam um código. Exemplo: Código de Caesar O que está escríto? D OLJHLUD UDSRVD
TESTES DE PRIMALIDADE
TESTES DE PRIMALIDADE MOTIVACAO Testes de primalidade são ingredientes essenciais em sistemas de segurança computadorizados. Há uma série de sistemas de segurança que contam com a suposição que é difícil
Criptografia com Maple
Criptografia com Maple - Verão/2005 Fábio Borges & Renato Portugal Criptografia com Maple p.1/32 Simétrica versus Assimétrica Simétrica Criptografia com Maple p.2/32 Simétrica versus Assimétrica Simétrica
Complexidade de Algoritmos
Complexidade de Algoritmos Prof. Diego Buchinger [email protected] [email protected] Prof. Cristiano Damiani Vasconcellos [email protected] Um pouco de Teoria dos Números
Desvendando os mistérios do criptossistema RSA. Grasiele Cristiane Jorge. Pós-Doc - IMECC - UNICAMP
Desvendando os mistérios do criptossistema RSA Grasiele Cristiane Jorge Pós-Doc - IMECC - UNICAMP A internet tornou-se indispensável no nosso dia a dia (emails, redes sociais, fotos, compras, transações
Álgebra A - Aula 01 Algoritmo da divisão de Euclides e Algoritmo Euclideano estendido
Álgebra A - Aula 01 Algoritmo da divisão de Euclides e Algoritmo Euclideano estendido Elaine Pimentel Departamento de Matemática, UFMG, Brazil 2 o Semestre - 2010 Introdução Objetivo: estudar o método
OTES07 Segurança da Informação Módulo 05c: Criptografia Assimétrica RSA e ECC
OTES07 Segurança da Informação Módulo 05c: Criptografia Assimétrica RSA e ECC Prof. Charles Christian Miers e-mail: [email protected] Breve Histórico Primeiro algoritmo de chave pública foi desenvolvido
TOCI08 Segurança em Redes de Computadores Módulo 08: Criptografia Assimétrica RSA e ECC
TOCI08 Segurança em Redes de Computadores Módulo 08: Criptografia Assimétrica RSA e ECC Prof. M.Sc. Charles Christian Miers e-mail: [email protected] Roteiro Criptografia Moderna: Diferenças criptografia
Teoria dos Números e Criptografia
Teoria dos Números e Criptografia Prof André LB Cavalcante, DSc UPIS Faculdades Integradas Faculdade de Tecnologia Dept Sistemas de Informação (andre0@upisbr Resumo: O artigo apresenta de forma didática
Números Primos e Criptografia RSA
Números Primos e Criptografia RSA Jean Carlo Baena Vicente Matemática - UFPR Orientador: Carlos Henrique dos Santos 6 de outubro de 2013 Sumário Criptografia RSA Por que o RSA funciona? Fatoração Primalidade
AULA 08 CRIPTOGRAFIA E SEGURANÇA DE DADOS CRIPTOGRAFIA ASSIMÉTRICA CHAVES E ALGORITMOS 03/03/2016 PROF. FABIANO TAGUCHI
03/03/2016 PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com CRIPTOGRAFIA E SEGURANÇA DE DADOS AULA 08 CRIPTOGRAFIA ASSIMÉTRICA CHAVES E ALGORITMOS 1 CONCEITOS DA TECNOLOGIA CRIPTOGRAFIA ASSIMÉTRICA
Números primos e Criptografia
1 Universidade de São Paulo/Faculdade de Educação Seminários de Ensino de Matemática (SEMA-FEUSP) Coordenador: Nílson José Machado novembro/2008 Números primos e Criptografia Marisa Ortegoza da Cunha [email protected]
Mantendo Segredos com a ajuda da Matemática
Mantendo Segredos com a ajuda da Matemática Hemar Godinho Departamento de Matemática - UnB 21 de outubro de 2002 Vamos imaginar que dois colegas de uma turma estejam planejando uma festa surpresa. O sucesso
PTC Aula 20. (Kurose, p ) (Peterson, p ) 14/06/ Princípios de criptografia
PTC 2550 - Aula 20 5.2 Princípios de criptografia (Kurose, p. 587-626) (Peterson, p. 444-454) 14/06/2017 Muitos slides adaptados com autorização de J.F Kurose and K.W. Ross, All Rights Reserved Capítulo
Pré-Cálculo. Humberto José Bortolossi. Aula 5 27 de agosto de Departamento de Matemática Aplicada Universidade Federal Fluminense
Pré-Cálculo Humberto José Bortolossi Departamento de Matemática Aplicada Universidade Federal Fluminense Aula 5 27 de agosto de 200 Aula 5 Pré-Cálculo Expansões decimais: exemplo Números reais numericamente
Fatoração dos Números Inteiros e Curvas Eĺıticas
Fatoração dos Números Inteiros e Curvas Eĺıticas Prof. Dr. Parham Salehyan IBILCE - UNESP São José do Rio Preto Outubro de 2013 Fatoração dos Números Inteiros e Curvas Elíticas Parham Salehyan Unesp-Ibilce
Posição relativa entre retas e círculos e distâncias
4 Posição relativa entre retas e círculos e distâncias Sumário 4.1 Distância de um ponto a uma reta.......... 2 4.2 Posição relativa de uma reta e um círculo no plano 4 4.3 Distância entre duas retas no
CIC 111 Análise e Projeto de Algoritmos II
CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 21 Number theory Primes and factors Modular arithmetic Solving equations Other results
EQUAÇÕES POLINOMIAIS
EQUAÇÕES POLINOMIAIS Prof. Patricia Caldana Denominamos equações polinomiais ou algébricas, as equações da forma: P(x)=0, onde P(x) é um polinômio de grau n > 0. As raízes da equação algébrica, são as
Já sabemos como determinar todas as soluções de uma equação diofantina linear, caso esta seja resolúvel. Para conguências temos:
Seguidamente vamos determinar valores de b (em termos de a e n) para os quais a congruência ax b (mod n) tem solução. Se a = 0 esta congruência tem solução x se e só se n b, e, neste caso, qualquer x Z
TEMA 2 PROPRIEDADES DE ORDEM NO CONJUNTO DOS NÚMEROS REAIS
TEMA 2 PROPRIEDADES DE ORDEM NO CONJUNTO DOS NÚMEROS REAIS O conjunto dos números reais,, que possui as seguintes propriedades:, possui uma relação menor ou igual, denotada por O1: Propriedade Reflexiva:
Aula 27 - Álgebra II. x (m(x)), x 2 + x + (m(x)), x 2 + x (m(x)) operações deste corpo são as seguintes:
Já vimos maneiras de codificar mensagens de modo a que, no caso de ocorrerem alguns erros na sua transmissão, o receptor possa ser capaz de corrigir esses erros. Esses códigos, chamados códigos lineares
Polos Olímpicos de Treinamento. Aula 9. Curso de Teoria dos Números - Nível 2. O Teorema de Euler. Prof. Samuel Feitosa
Polos Olímpicos de Treinamento Curso de Teoria dos Números - Nível 2 Prof. Samuel Feitosa Aula 9 O Teorema de Euler Nesta aula, obteremos uma generalização do teorema de Fermat. Definição 1. Dado n N,
O USO DA CRIPTOGRAFIA EM ÁUDIO
O USO DA CRIPTOGRAFIA EM ÁUDIO SILVA, Mariana de Lourdes Godoy da 1 ; OLIVEIRA, Cintia Carvalho 2 ; RESUMO: Atualmente, a criptografia é o que norteia toda a segurança da informação nos canais web de comunicação.
Implementação para Multiplicação por Escalar. 2 Curvas Elípticas Sobre Z p
Anais do CNMAC v.2 ISSN 1984-820X Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Z p Pedro Lara, Fábio Borges, Coordenação de Sistemas e Redes, CSR, LNCC, 25651-075, Petrópolis,
Criptografia Pós-Quântica Corretores de Erros
Universidade de São Paulo Criptografia Pós-Quântica P com Códigos C Corretores de Erros Rafael Misoczki IME/USP [email protected] Prof. Dr. Paulo S. L. M. Barreto Poli/USP [email protected]
MATEMÁTICA I. Ana Paula Figueiredo
I Ana Paula Figueiredo Números Reais IR O conjunto dos números Irracionais reunido com o conjunto dos números Racionais (Q), formam o conjunto dos números Reais (IR ). Assim, os principais conjuntos numéricos
J. Delgado - K. Frensel - L. Crissaff Geometria Analítica e Cálculo Vetorial
178 Capítulo 10 Equação da reta e do plano no espaço 1. Equações paramétricas da reta no espaço Sejam A e B dois pontos distintos no espaço e seja r a reta que os contém. Então, P r existe t R tal que
Criptografia. Criptografia de Chave Pública. Manuel Barbosa (mbb at dcc.fc.up.pt) 2018/2019
Criptografia Criptografia de Chave Pública Manuel Barbosa (mbb at dcc.fc.up.pt) 2018/2019 Parte I Criptografia de chave pública Pressupostos Computacionais Nas aulas anteriores vimos diversas primitivas
Autenticação por par de. chaves assimétricas. Bruno Follmann
Autenticação por par de 1 chaves assimétricas Bruno Follmann 2 Criptografia assimétrica Criada em 1976 por Diffie e Hellman; Também chamada de criptografia de chave pública; Sistema para cifrar e decifrar
Geometria Analítica. Números Reais. Faremos, neste capítulo, uma rápida apresentação dos números reais e suas propriedades, mas no sentido
Módulo 2 Geometria Analítica Números Reais Conjuntos Numéricos Números naturais O conjunto 1,2,3,... é denominado conjunto dos números naturais. Números inteiros O conjunto...,3,2,1,0,1, 2,3,... é denominado
Existem infinitos números de Carmichael, mas não provaremos isso neste curso.
6 Pseudoprimos 6.1 O Pequeno Teorema de Fermat nos diz que, se n é primo, então temos b n b (mod n) para todo b Z. Portanto, a contrapositiva diz que se temos b n b (mod n) ( ) para algum b Z, então n
Roteiro da segunda aula presencial - ME
PIF Enumerabilidade Teoria dos Números Congruência Matemática Elementar Departamento de Matemática Universidade Federal da Paraíba 29 de outubro de 2014 PIF Enumerabilidade Teoria dos Números Congruência
Cálculo Diferencial e Integral Química Notas de Aula
Cálculo Diferencial e Integral Química Notas de Aula João Roberto Gerônimo 1 1 Professor Associado do Departamento de Matemática da UEM. E-mail: [email protected]. ÍNDICE 1. INTRODUÇÃO Esta notas de aula
Álgebra I Israel. Bárbara Lopes Amaral. 19 de novembro de Universidade Federal de Minas Gerais. Fatoração de Polinômios. Lagrange.
Álgebra I Israel Lopes Amaral Universidade Federal de Minas Gerais 19 de novembro de 2007 Lagange Lema Fatora polinômios em Z[x], utilizando uma idéia bastante simples. Esse método não é muito eficiente.
Material Teórico - Módulo Equações do Segundo Grau. Equações de Segundo Grau: outros resultados importantes. Nono Ano do Ensino Funcamental
Material Teórico - Módulo Equações do Segundo Grau Equações de Segundo Grau: outros resultados importantes Nono Ano do Ensino Funcamental Autor: Prof. Fabrício Siqueira Benevides Revisor: Prof. Antonio
CÁLCULO I. 1 Número Reais. Objetivos da Aula
CÁLCULO I Prof. Edilson Neri Júnior Prof. André Almeida EMENTA: Conceitos introdutórios de limite, limites trigonométricos, funções contínuas, derivada e aplicações. Noções introdutórias sobre a integral
Criptografia e Segurança de Rede Capítulo 4. Quarta Edição por William Stallings
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
1 Vetores no Plano e no Espaço
1 Vetores no Plano e no Espaço Definimos as componentes de um vetor no espaço de forma análoga a que fizemos com vetores no plano. Vamos inicialmente introduzir um sistema de coordenadas retangulares no
Matrizes - Parte 1. Márcio Nascimento
Matrizes - Parte 1 Márcio Nascimento Universidade Estadual Vale do Acaraú Centro de Ciências Exatas e Tecnologia Curso de Licenciatura em Matemática Disciplina: Álgebra Matricial - 20171 4 de setembro
Avaliação de Segurança em Curvas Eĺıpticas Usando o Corpo dos Números p-ádicos
Avaliação de Segurança em Curvas Eĺıpticas Usando o Corpo dos Números p-ádicos Marcio Belleza Fábio Borges Laboratório Nacional de Computação Científica - LNCC 10 de dezembro de 2018 Organização do Trabalho
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
Exemplo (U(n)) 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 multiplicação módulo n é uma operação binária
Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas.
Teoria dos Conjuntos Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas. Porém, não é nosso objetivo ver uma teoria axiomática dos conjuntos.
Engloba os criptossistemas clássicos. Outros nomes: (Criptografia...)
Principal característica: utilização da mesma chave para cifrar/decifrar. Engloba os criptossistemas clássicos. Outros nomes: (Criptografia...) convencional de chave única de chave secreta Os procedimentos
Capítulo Propriedades das operações com vetores
Capítulo 6 1. Propriedades das operações com vetores Propriedades da adição de vetores Sejam u, v e w vetores no plano. Valem as seguintes propriedades. Comutatividade: u + v = v + u. Associatividade:
Renato Martins Assunção
Análise Numérica Renato Martins Assunção DCC - UFMG 2012 Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 1 / 84 Equação linear Sistemas de equações lineares A equação 2x + 3y = 6 é chamada linear
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
Teoria de Números 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 Material extraído dos livros-textos (Cormen( Cormen)
DCC008 - Cálculo Numérico
DCC008 - Cálculo Numérico Polinômios de Taylor Bernardo Martins Rocha Departamento de Ciência da Computação Universidade Federal de Juiz de Fora [email protected] Conteúdo Introdução Definição
Cálculo Numérico / Métodos Numéricos. Solução de equações polinomiais Briot-Ruffini-Horner
Cálculo Numérico / Métodos Numéricos Solução de equações polinomiais Briot-Ruffini-Horner Equações Polinomiais p = x + + a ( x) ao + a1 n x n Com a i R, i = 0,1,, n e a n 0 para garantir que o polinômio
Espaços Euclidianos. Espaços R n. O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais:
Espaços Euclidianos Espaços R n O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais: R n = {(x 1,..., x n ) : x 1,..., x n R}. R 1 é simplesmente o conjunto R dos números
Tópicos de Ambiente Web Segurança
Tópicos de Ambiente Web Segurança Professora: Sheila Cáceres Componentes dos sistemas de segurança de dados Política de segurança de dados Serviços básicos para segurança computacional (security) Controle
Exercícios Operações com frações 1. Determine o valor das seguintes expressões, simplificando sempre que possível:
Exercícios Operações com frações. Determine o valor das seguintes expressões, simplificando sempre que possível: 7 c 6 8 6 d b a 8 : 8 7 0 f 8 7 h g e : 6 8 : 6 7 l k j i n m Equações de º Grau Resolva
3º. EM Prof a. Valéria Rojas Assunto: Determinante, Área do Triângulo, Equação da reta, Eq. Reduzida da Reta
1 - O uso do Determinante de terceira ordem na Geometria Analítica 1.1 - Área de um triângulo Seja o triângulo ABC de vértices A(x a, y a ), B(x b, x c ) e C(x c, y c ). A área S desse triângulo é dada
Sequências recorrentes e testes de primalidade
Polos Olímpicos de Treinamento Curso de Teoria dos Números - Nível 3 Carlos Gustavo Moreira Aula 18 Sequências recorrentes e testes de primalidade 1 A Sequência de Fibonacci A sequência de Fibonacci é
Álgebra Linear Semana 05
Álgebra Linear Semana 5 Diego Marcon 4 de Abril de 7 Conteúdo Interpretações de sistemas lineares e de matrizes invertíveis Caracterizações de matrizes invertíveis 4 Espaços vetoriais 5 Subespaços vetoriais
UNIVERSIDADE FEDERAL DO CEARÁ CENTRO DE TECNOLOGIA PROGRAMA DE EDUCAÇÃO TUTORIAL APOSTILA DE CÁLCULO. Realização:
UNIVERSIDADE FEDERAL DO CEARÁ CENTRO DE TECNOLOGIA PROGRAMA DE EDUCAÇÃO TUTORIAL APOSTILA DE CÁLCULO Realização: Fortaleza, Fevereiro/2010 1. LIMITES 1.1. Definição Geral Se os valores de f(x) puderem
Segurança da Informação Aula 6 Principais Algoritmos Simétricos. Criptografia Assimétrica.
Segurança da Informação Aula 6 Principais Algoritmos Simétricos. Criptografia Assimétrica. Prof. Dr. Eng. Fred Sauer [email protected] http://www.fredsauer.com.br Alguns cifradores simétricos: DES, 3DES
Os números reais. Capítulo O conjunto I
Capítulo 4 Os números reais De todos os conjuntos numéricos que estudamos agora, a transição de um para outro sempre era construída de forma elementar A passagem do conjunto dos números racionais aos reais
Material Teórico - Módulo: Vetores em R 2 e R 3. Operações Envolvendo Vetores. Terceiro Ano - Médio
Material Teórico - Módulo: Vetores em R 2 e R 3 Operações Envolvendo Vetores Terceiro Ano - Médio Autor: Prof. Angelo Papa Neto Revisor: Prof. Antonio Caminha M. Neto 1 Adição de vetores Na aula anterior
A origem de i ao quadrado igual a -1
A origem de i ao quadrado igual a -1 No estudo dos números complexos deparamo-nos com a seguinte igualdade: i 2 = 1. A justificativa para essa igualdade está geralmente associada à resolução de equações
Fácil e Poderoso. Dinâmica 1. 3ª Série 4º Bimestre. DISCIPLINA Série CAMPO CONCEITO. Matemática 3ª do Ensino Médio Algébrico-Simbólico
Fácil e Reforço escolar M ate mática Poderoso Dinâmica 1 3ª Série 4º Bimestre DISCIPLINA Série CAMPO CONCEITO Matemática 3ª do Ensino Médio Algébrico-Simbólico Polinômios e Equações Algébricas. Primeira
AKS: um algoritmo para identificar números primos
AKS: um algoritmo para identificar números primos IM-UFBA 08 de novembro de 2016 Índice 1 Preliminares 2 3 4 5 Introdução Números primos Comprovar a primalidade de um número natural significa comprovar
Ordens e raízes primitivas
Polos Olímpicos de Treinamento Curso de Teoria dos Números - Nível 3 Carlos Gustavo Moreira Aula 7 Ordens e raízes primitivas 1 Polinômios Dado um anel comutativo K, definimos o anel comutativo K[x] como
Análise I Solução da 1ª Lista de Exercícios
FUNDAÇÃO EDUCACIONAL SERRA DOS ÓRGÃOS CENTRO UNIVERSITÁRIO SERRA DOS ÓRGÃOS Centro de Ciências e Tecnologia Curso de Graduação em Matemática Análise I 0- Solução da ª Lista de Eercícios. ATENÇÃO: O enunciado
Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k
Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k Cristina Boeres Instituto de Computação (UFF) Fundamentos de Arquiteturas de Computadores Material de Fernanda Passos
MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL. ENQ Gabarito
MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL ENQ 2017.1 Gabarito Questão 01 [ 1,25 ] Determine as equações das duas retas tangentes à parábola de equação y = x 2 2x + 4 que passam pelo ponto (2,
Material Teórico - Módulo: Vetores em R 2 e R 3. Módulo e Produto Escalar - Parte 1. Terceiro Ano - Médio
Material Teórico - Módulo: Vetores em R 2 e R 3 Módulo e Produto Escalar - Parte 1 Terceiro Ano - Médio Autor: Prof. Angelo Papa Neto Revisor: Prof. Antonio Caminha M. Neto 1 Módulo de um vetor O módulo
Aula 5 Equações paramétricas de retas e planos
Aula 5 Equações paramétricas de retas e planos MÓDULO 1 - AULA 5 Objetivo Estabelecer as equações paramétricas de retas e planos no espaço usando dados diversos. Na Aula 3, do Módulo 1, vimos como determinar
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/30 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
Integral Definida. a b x. a=x 0 c 1 x 1 c 2 x 2. x n-1 c n x n =b x
Integral definida Cálculo de área Teorema Fundamental do cálculo A integral definida origina-se do problema para determinação de áreas. Historicamente, como descrito na anteriormente, constitui-se no método
(Ciência de Computadores) 2005/ Diga quais dos conjuntos seguintes satisfazem o Princípio de Boa Ordenação
Álgebra (Ciência de Computadores) 2005/2006 Números inteiros 1. Diga quais dos conjuntos seguintes satisfazem o Princípio de Boa Ordenação (a) {inteiros positivos impares}; (b) {inteiros negativos pares};
como aproximar bem números reais por números racionais
Frações contínuas: como aproximar bem números reais por números racionais Carlos Gustavo Moreira - IMPA A teoria de frações contínuas é um dos mais belos assuntos da Matemática elementar, sendo ainda hoje
Matrizes - Soma e Produto por Escalar
Prof. Márcio Nascimento UVA-CCET Curso de Licenciatura em Matemática Disciplina: Álgebra Matricial - 2015.2 16 de dezembro de 2015 Sumário 1 Representação de um conjunto de Matrizes 2 Operações Soma de
Representação de um conjunto de Matrizes Operações Produto de Matriz por escalar Transposição de Matrizes Simetrias Exercícios. Matrizes - Parte 1
Matrizes - Parte 1 Márcio Nascimento Universidade Estadual Vale do Acaraú Centro de Ciências Exatas e Tecnologia Curso de Licenciatura em Matemática Disciplina: Álgebra Matricial - 2019.1 11 de julho de
