Teoria de Números Computacional O problema do logaritmo discreto

Teoria de Números Computacional O problema do logaritmo discreto Teoria de Números Computacional O problema do logaritmo discreto

w3.math.uminho.pt
from w3.math.uminho.pt More from this publisher
12.07.2015 Views

Universidade do MinhoDepartamento de MatemáticaTeoria de Números ComputacionalL.C.C. – 3 ◦ anotrabalho de grupo 2 ◦ semestre, 2008/2009O problema do logaritmo discretoDado um natural n, seja Z ∗ n o grupo dos elementos de Z n que são unidades. Recorde que#Z ∗ n = φ(n), e que a φ(n) ≡ 1 mod n, para a ∈ Z ∗ n. Ou seja, a ordem de a, ord n (a), é nãosuperior a φ(n). Pelo Teorema de Lagrange, ord n (a) | φ(n). Um elemento a ∈ Z ∗ n diz-seprimitivo módulo n se Z ∗ n = 〈a〉, ou de forma equivalente, se ord n (a) = φ(n). No caso de a serum elemento primitivo, então para qualquer b ∈ Z ∗ n existe 0 ≤ x ≤ n − 1 para o qual b ≡ a xmod n. O elemento x é denotado log a b e denominado por logaritmo discreto de b na basea. O problema do logaritmo discreto não é mais que resolver a equação b ≡ a x mod n emordem a x.No caso de n ser primo, então φ(n) = n − 1. Assim, a ∈ Z n \ {0} é primitivo se e sóse ord n (a) = n − 1. Por exemplo, dado o primo n = 383, obtemos Z ∗ n = 〈5〉 mas 〈2〉 é umsubgrupo próprio de Z ∗ n.? n=383= 383? znprimroot(n)= Mod(5, 383)? znorder(Mod(2,n))= 191? znorder(Mod(5,n))= 382A proposta de trabalhoExplore o algoritmo “Shanks’ baby-step giant-step” para resolver o problema do logaritmodiscreto, descrito, por exemplo, em [1] e em [3]. Implemente-o no pari/gp, construindo umscript. Por fim, faça uma breve descrição desta solução para o problema num documentoque não tenha mais que 5 páginas onde deve explicar as opções que tomou na implementaçãodo algoritmo. Organize esse documento escrito como ditam as regras: sumário, introdução,corpo do trabalho, conclusões, bibliografia, anexos (se existentes). Seja claro e sucinto nasua exposição. Evite, a todo o custo, erros na escrita. Sugerimos que leia atentamente odocumento [2].Código de honra:Não está vedada qualquer comunicação entre grupos. No entanto, cada grupo deve submeteros seus documentos, da sua autoria. Evite colagens às referências bibliográficas.

Universida<strong>de</strong> <strong>do</strong> MinhoDepartamento <strong>de</strong> Matemática<strong>Teoria</strong> <strong>de</strong> <strong>Números</strong> <strong>Computacional</strong>L.C.C. – 3 ◦ anotrabalho <strong>de</strong> grupo 2 ◦ semestre, 2008/2009O <strong>problema</strong> <strong>do</strong> <strong>logaritmo</strong> <strong>discreto</strong>Da<strong>do</strong> um natural n, seja Z ∗ n o grupo <strong>do</strong>s elementos <strong>de</strong> Z n que são unida<strong>de</strong>s. Recor<strong>de</strong> que#Z ∗ n = φ(n), e que a φ(n) ≡ 1 mod n, para a ∈ Z ∗ n. Ou seja, a or<strong>de</strong>m <strong>de</strong> a, ord n (a), é nãosuperior a φ(n). Pelo Teorema <strong>de</strong> Lagrange, ord n (a) | φ(n). Um elemento a ∈ Z ∗ n diz-seprimitivo módulo n se Z ∗ n = 〈a〉, ou <strong>de</strong> forma equivalente, se ord n (a) = φ(n). No caso <strong>de</strong> a serum elemento primitivo, então para qualquer b ∈ Z ∗ n existe 0 ≤ x ≤ n − 1 para o qual b ≡ a xmod n. O elemento x é <strong>de</strong>nota<strong>do</strong> log a b e <strong>de</strong>nomina<strong>do</strong> por <strong>logaritmo</strong> <strong>discreto</strong> <strong>de</strong> b na basea. O <strong>problema</strong> <strong>do</strong> <strong>logaritmo</strong> <strong>discreto</strong> não é mais que resolver a equação b ≡ a x mod n emor<strong>de</strong>m a x.No caso <strong>de</strong> n ser primo, então φ(n) = n − 1. Assim, a ∈ Z n \ {0} é primitivo se e sóse ord n (a) = n − 1. Por exemplo, da<strong>do</strong> o primo n = 383, obtemos Z ∗ n = 〈5〉 mas 〈2〉 é umsubgrupo próprio <strong>de</strong> Z ∗ n.? n=383= 383? znprimroot(n)= Mod(5, 383)? znor<strong>de</strong>r(Mod(2,n))= 191? znor<strong>de</strong>r(Mod(5,n))= 382A proposta <strong>de</strong> trabalhoExplore o algoritmo “Shanks’ baby-step giant-step” para resolver o <strong>problema</strong> <strong>do</strong> <strong>logaritmo</strong><strong>discreto</strong>, <strong>de</strong>scrito, por exemplo, em [1] e em [3]. Implemente-o no pari/gp, construin<strong>do</strong> umscript. Por fim, faça uma breve <strong>de</strong>scrição <strong>de</strong>sta solução para o <strong>problema</strong> num <strong>do</strong>cumentoque não tenha mais que 5 páginas on<strong>de</strong> <strong>de</strong>ve explicar as opções que tomou na implementação<strong>do</strong> algoritmo. Organize esse <strong>do</strong>cumento escrito como ditam as regras: sumário, introdução,corpo <strong>do</strong> trabalho, conclusões, bibliografia, anexos (se existentes). Seja claro e sucinto nasua exposição. Evite, a to<strong>do</strong> o custo, erros na escrita. Sugerimos que leia atentamente o<strong>do</strong>cumento [2].Código <strong>de</strong> honra:Não está vedada qualquer comunicação entre grupos. No entanto, cada grupo <strong>de</strong>ve submeteros seus <strong>do</strong>cumentos, da sua autoria. Evite colagens às referências bibliográficas.


Referências[1] Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, Handbook of Applied Cryptography,CRC Press.[2] Eduar<strong>do</strong> M. <strong>de</strong> Sá, Como Escrever um Texto. Parte I - Estrutura, obti<strong>do</strong> <strong>de</strong>http://www.mat.uc.pt/~emsa/EscreverTexto/ComoEscrever-Estrutura.pdf a 4 <strong>de</strong>Maio <strong>de</strong> 2009.[3] Victor Shoup, A Computational Introduction to Number Theory and Algebra, CambridgeUniversity Press.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!