Logaritmo discreto

Na matemática, para determinados números reais e , o logaritmo é um número tal que . O logaritmo discreto generaliza este conceito para um grupo cíclico. Um exemplo simples é o grupo de inteiros módulo um número primo (como 5) sob a multiplicação modular de elementos não nulos.
Por exemplo, considere no grupo multiplicativo módulo 5, cujos elementos são . Então: As potências de 2 módulo 5 percorrem todos os elementos não nulos, portanto, os logaritmos discretos existem e são dados por:
Mais genericamente, em qualquer grupo , as potências podem ser definidas para todos os inteiros , e o logaritmo discreto é um inteiro tal que . Na aritmética modular em relação a um inteiro , o termo mais comumente usado é índice: Pode-se escrever (lê-se "o índice de na base módulo ") para se for uma raiz primitiva de e .
Os logaritmos discretos são rapidamente computáveis em alguns casos especiais. No entanto, não se conhece nenhum método eficiente para calculá-los em geral. Na criptografia, a complexidade computacional do problema do logaritmo discreto, juntamente com sua aplicação, foi proposta pela primeira vez no Problema de Diffie–Hellman. Vários algoritmos importantes em criptografia de chave pública, como o ElGamal, baseiam sua segurança na suposição de dificuldade computacional de que o problema do logaritmo discreto (PLD) sobre grupos cuidadosamente escolhidos não tem solução eficiente,[1] e em um grupo geral de caixa preta carece totalmente de uma solução subexponencial.
Definição
Seja um grupo qualquer. Denote sua operação de grupo por multiplicação e seu elemento neutro por . Seja qualquer elemento de . Para qualquer inteiro positivo , a expressão denota o produto de com ele mesmo vezes:[2]
De forma semelhante, seja o produto de com ele mesmo vezes. Para , a -ésima potência é a identidade: .
Seja também um elemento de . Um inteiro que resolve a equação é chamado de logaritmo discreto (ou simplesmente logaritmo, neste contexto) de na base . Escreve-se .
Exemplos
Potências de 10
As potências de 10 são
Para qualquer número nesta lista, pode-se calcular . Por exemplo, e . Essas são instâncias do problema do logaritmo discreto.
Outros logaritmos de base 10 nos números reais não são instâncias do problema do logaritmo discreto, porque envolvem expoentes não inteiros. Por exemplo, a equação significa que . Embora os expoentes inteiros possam ser definidos em qualquer grupo usando produtos e inversos, expoentes reais arbitrários, como este 1.724276…, exigem outros conceitos, como a função exponencial.
Em termos de teoria de grupos, as potências de 10 formam um grupo cíclico sob a multiplicação, e 10 é um gerador para este grupo. O logaritmo discreto é definido para qualquer em .
Potências de um número real fixo
Um exemplo semelhante vale para qualquer número real não nulo . As potências formam um subgrupo multiplicativo dos números reais não nulos. Para qualquer elemento de , pode-se calcular .
Aritmética modular
Um dos cenários mais simples para logaritmos discretos é o grupo Zp×. Este é o grupo da multiplicação módulo o primo . Seus elementos são as classes de congruência não nulas módulo , e o produto de grupo de dois elementos pode ser obtido pela multiplicação inteira comum dos elementos seguida da redução módulo .
A -ésima potência de um dos números deste grupo pode ser calculada encontrando sua -ésima potência como um número inteiro e depois encontrando o resto após a divisão por . Quando os números envolvidos são grandes, é mais eficiente reduzir módulo várias vezes durante o cálculo. Independentemente do algoritmo específico usado, essa operação é chamada de exponenciação modular. Por exemplo, considere Z17×. Para calcular neste grupo, calcula-se e depois divide-se por , obtendo um resto de . Portanto, no grupo Z17×.
O logaritmo discreto é apenas a operação inversa. Por exemplo, considere a equação . A partir do exemplo acima, uma solução é , mas ela não é a única solução. Como — conforme o Pequeno teorema de Fermat — também se deduz que se for um inteiro, então . Portanto, a equação tem infinitas soluções da forma . Além disso, como é o menor inteiro positivo satisfazendo , essas são as únicas soluções. De forma equivalente, o conjunto de todas as soluções possíveis pode ser expresso pela restrição de que .
Potências da identidade
No caso especial em que é o elemento neutro do grupo , o logaritmo discreto é indefinido para diferente de , e todo inteiro é um logaritmo discreto para .
Propriedades
As potências obedecem à identidade algébrica comum .[2] Em outras palavras, a função
definida por é um homomorfismo de grupos do grupo dos números inteiros sob a adição sobre o subgrupo de gerado por . Para todo em , existe. Inversamente, não existe para valores de que não estão em .
Se for infinito, então também é único, e o logaritmo discreto equivale a um isomorfismo de grupos
Por outro lado, se for finito de ordem , então é único apenas até a congruência módulo , e o logaritmo discreto equivale a um isomorfismo de grupo
onde denota o grupo aditivo de inteiros módulo .
A fórmula familiar de mudança de base para logaritmos comuns permanece válida: Se for outro gerador de , então
Algoritmos
O problema do logaritmo discreto é considerado computacionalmente intratável. Para um computador clássico (ou seja, não quântico), nenhum algoritmo eficiente (de tempo polinomial) é conhecido ainda para o cálculo de logaritmos discretos em geral.
Um algoritmo geral para computar em grupos finitos consiste em elevar a potências cada vez maiores até que o desejado seja encontrado. Esse algoritmo às vezes é chamado de multiplicação por tentativa. Requer um tempo de execução linear no tamanho do grupo e, portanto, exponencial no número de dígitos do tamanho do grupo. Assim, trata-se de um algoritmo de tempo exponencial, prático apenas para pequenos grupos .
Algoritmos mais sofisticados existem, geralmente inspirados em algoritmos semelhantes para a fatoração de inteiros. Esses algoritmos são executados mais rapidamente do que o algoritmo ingênuo, alguns deles em tempo proporcional à raiz quadrada do tamanho do grupo e, portanto, exponencial na metade do número de dígitos do tamanho do grupo. Entretanto, nenhum deles é executado em tempo polinomial (no número de dígitos do tamanho do grupo).
- Baby-step giant-step (Passo-bebê passo-gigante)
- Crivo do corpo de funções
- Algoritmo de cálculo de índice
- Crivo do corpo de números geral
- Algoritmo de Pohlig–Hellman
- Algoritmo rho de Pollard para logaritmos
- Algoritmo do canguru de Pollard (também conhecido como algoritmo lambda de Pollard)
Existe um algoritmo quântico eficiente criado por Peter Shor.[3]
Também existem algoritmos clássicos eficientes em certos casos especiais. Por exemplo, no grupo dos números inteiros módulo sob adição, a potência torna-se um produto , e a igualdade significa congruência módulo nos números inteiros. O algoritmo de Euclides estendido encontra rapidamente.
No Diffie–Hellman, é usado um grupo cíclico módulo um primo , permitindo um cálculo eficiente do logaritmo discreto com Pohlig–Hellman se a ordem do grupo (sendo ) for suficientemente suave, isto é, não possuir grandes fatores primos.
Comparação com a fatoração de inteiros
Embora o cálculo de logaritmos discretos e a fatoração de inteiros sejam problemas distintos, eles compartilham algumas propriedades:
- ambos são casos especiais do problema do subgrupo oculto para grupos abelianos finitos;
- ambos os problemas parecem ser difíceis (não há algoritmos eficientes conhecidos para computadores não quânticos);
- para ambos os problemas, algoritmos eficientes em computadores quânticos são conhecidos;
- os algoritmos de um problema são frequentemente adaptados para o outro, e;
- a dificuldade de ambos os problemas tem sido usada para construir vários sistemas criptográficos.
Criptografia
Existem grupos nos quais calcular logaritmos discretos é aparentemente difícil. Em alguns casos (por exemplo, subgrupos de ordem prima grande de grupos ), não apenas não há um algoritmo eficiente conhecido para o pior caso, como a complexidade do caso médio pode ser demonstrada como sendo quase tão difícil quanto o pior caso usando autorredutibilidade aleatória.[4]
Ao mesmo tempo, o problema inverso da exponenciação discreta não é difícil (ele pode ser computado eficientemente usando a exponenciação por quadratura, por exemplo). Essa assimetria é análoga àquela existente entre a fatoração de inteiros e a multiplicação de inteiros. Ambas as assimetrias (e outras possíveis funções de via única) têm sido exploradas na construção de sistemas criptográficos.
Escolhas populares para o grupo na criptografia de logaritmo discreto (CLD) são os grupos cíclicos (por exemplo, o sistema ElGamal, a Troca de Chaves Diffie-Hellman e o Algoritmo de Assinatura Digital) e subgrupos cíclicos de curvas elípticas sobre corpos finitos (veja Criptografia de curvas elípticas).
Embora não exista nenhum algoritmo publicamente conhecido para resolver o problema do logaritmo discreto em geral, as três primeiras etapas do algoritmo do crivo do corpo de números dependem apenas do grupo , e não dos elementos específicos de cujo finito é desejado. Ao pré-computar essas três etapas para um grupo específico, é necessário realizar apenas a última etapa, que é muito menos custosa computacionalmente do que as três primeiras, para se obter um logaritmo específico naquele grupo.[5]
Acontece que grande parte do tráfego da internet usa um punhado de grupos que têm ordem de 1024 bits ou menos, por exemplo, grupos cíclicos com ordem dos primos Oakley especificados na RFC 2409.[6] O ataque Logjam usou essa vulnerabilidade para comprometer uma variedade de serviços de internet que permitiam o uso de grupos cuja ordem era um número primo de 512 bits, grau conhecido como de exportação.[5]
Os autores do ataque Logjam estimam que a pré-computação, muito mais difícil, necessária para resolver o problema do logaritmo discreto para um número primo de 1024 bits estaria dentro do orçamento de uma grande agência de inteligência nacional, como a NSA dos EUA. Os autores especulam que a pré-computação contra primos DH de 1024 bits amplamente reutilizados está por trás das alegações contidas em documentos vazados da NSA de que a agência é capaz de quebrar grande parte da criptografia atual.[5]
Ver também
- Percy Ludgate e o logaritmo irlandês
Referências
- ↑ Menezes, Alfred J.; van Oorschot, Paul C.; Vanstone, Scott A. (1996). «Public-Key Encryption» (PDF). Handbook of Applied Cryptography (em inglês) 1 ed. [S.l.]: CRC Press. 294 páginas. ISBN 978-0-429-46633-5. doi:10.1201/9780429466335
- 1 2 Lam, Kwok-Yan; Shparlinski, Igor; Wang, Huaxiong; Xing, Chaoping, eds. (2001). Cryptography and Computational Number Theory (em inglês). Basel: Birkhäuser Basel. pp. 54–56. ISBN 978-3-0348-9507-1. ISSN 2297-0576. doi:10.1007/978-3-0348-8295-8. eISSN 2297-0584
- ↑ Shor, Peter (1997). «Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer». SIAM Journal on Computing. 26 (5): 1484–1509. MR 1471990. arXiv:quant-ph/9508027
. doi:10.1137/s0097539795293172 - ↑ Blake, Ian F.; Garefalakis, Theo (1 de abril de 2004). «On the complexity of the discrete logarithm and Diffie–Hellman problems». Journal of Complexity. Festschrift for Harald Niederreiter, Special Issue on Coding and Cryptography (em inglês). 20 (2): 148–170. ISSN 0885-064X. doi:10.1016/j.jco.2004.01.002

- 1 2 3 Adrian, David; Bhargavan, Karthikeyan; Durumeric, Zakir; Gaudry, Pierrick; Green, Matthew; Halderman, J. Alex; Heninger, Nadia; Springall, Drew; Thomé, Emmanuel; Valenta, Luke; VanderSloot, Benjamin; Wustrow, Eric; Zanella-Béguelin, Santiago; Zimmermann, Paul (12 de outubro de 2015). «Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice». Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security (em inglês). [S.l.]: ACM. pp. 5–17. ISBN 978-1-4503-3832-5. doi:10.1145/2810103.2813707
- ↑ Harkins, D.; Carrel, D. (novembro 1998). The Internet Key Exchange (IKE)
(Relatório) (em inglês). RFC Editor. doi:10.17487/rfc2409
- Rosen, Kenneth H. (2011). Elementary Number Theory and Its Application 6 ed. [S.l.]: Pearson. p. 368. ISBN 978-0321500311
- Weisstein, Eric W. «Discrete Logarithm». MathWorld. Wolfram Web. Consultado em 1 janeiro 2019
Leitura adicional
- Richard Crandall; Carl Pomerance. Capítulo 5, Prime Numbers: A computational perspective, 2ª ed., Springer.
- Stinson, Douglas Robert (2006). Cryptography: Theory and Practice 3 ed. London, UK: CRC Press. ISBN 978-1-58488-508-5
Predefinição:Algoritmos da teoria dos números Predefinição:Criptografia de chave pública Predefinição:Premissas de dificuldade computacional