Como medir a complexidade do problema do logaritmo discreto?

9

As respostas a essa pergunta no Crypto Stack Exchange basicamente dizem que, para medir a complexidade do problema do logaritmo, precisamos levar em consideração o tamanho do número que representa o tamanho do grupo. Parece arbitrário, por que não escolhemos o tamanho do grupo como argumento? Existe um critério para saber qual argumento escolher? Na verdade, eu sei que negligenciei algo importante, pois a complexidade muda enormemente se o fizermos pelo tamanho do grupo.

Nassim HADDAM
fonte
2
Pergunta interessante! Eu o editei para dizer "meça a complexidade", em vez de "calculá-la", pois a resposta de como calculamos é ¯ \ _ (ツ) _ / ¯. :-)
David Richerby
Eu acho que é melhor assim. :)
Nassim HADDAM

Respostas:

5

Não importa se você escolhe o tamanho do grupo ou o tamanho do número inteiro que representa n como parâmetro, já que n log|G|n. Há duas razões pelas quais geralmente a complexidade é descrita em termos de n em vez de | G | :nregistro|G|n|G|

  1. é o comprimento da entrada (mais precisamente, a entrada possui comprimento Θ ( n ) ), e geralmente medimos a complexidade dos algoritmos em função do comprimento da entrada.nΘ(n)

  2. Geralmente é um número pequeno, como 1024 , enquanton1024é um número enorme, como (aproximadamente) 2 1024 .|G|21024

Yuval Filmus
fonte
Entendo o seu argumento, mas isso não torna um problema em P se escolhermos o tamanho do grupo como parâmetro?
Nassim HADDAM
11
Você não pode escolher o parâmetro nesse caso - o parâmetro é sempre o comprimento da entrada.
Yuval Filmus
Obrigado pelas respostas. Eu tive um problema com o que poderia acontecer se considerarmos o outro caso (problemas em P se tornarem em NP e vice-versa). Eu posso ver claramente agora :) .
Nassim HADDAM
11
Não fazemos o cálculo de forma unária, pois nosso objetivo é fatorar algum número ou calcular algum logaritmo discreto, e não nos importamos como o número é representado. Dar como entrada em binário ou unário não afeta o "tempo de espera" necessário para resolver o problema, apenas sua complexidade em termos do tamanho da entrada (já que estamos alterando o tamanho da entrada!).
Yuval Filmus 23/10
11
Além disso, não podemos realmente ter um número inteiro de 128 bits como entrada unária para um algoritmo do mundo real. Não há átomos suficientes no universo.
Yuval Filmus 23/10