Computadores quânticos podem ter alguma vantagem sobre computadores clássicos em alguns casos. O exemplo mais notável é o algoritmo de Shor, que pode fatorar um grande número em tempo polinomial (enquanto classicamente, o algoritmo mais conhecido leva tempo exponencial). Isso quebra completamente esquemas como o RSA, com base na dureza da fatoração.
Esse não é necessariamente o caso das funções de hash. Primeiro, precisamos definir o que significa quebrar uma função hash. Uma maneira de quebrá-lo é chamada de ataque de pré-imagem : você me fornece o valor de hash , e eu preciso encontrar uma mensagem m tal que hash ( m ) = v . Outro ataque é o ataque de colisão , no qual você não me dá nada, e eu preciso apresentar duas mensagens diferentes m 1 , m 2 que tenham o mesmo hash hash ( m 1 ) = hash ( m 2 )vmcerquilha( m ) = vm1, m2cerquilha( m1) = hash( m2). Isso é mais fácil do que encontrar uma pré-imagem, pois não estou vinculado a um específico .v
O que os computadores Quantum podem fazer? O principal resultado é o algoritmo de pesquisa de Grover : um método para um computador quântico pesquisar em um banco de dados não classificado do tamanho com o tempo O ( √N(enquanto classicamente levará um tempo esperado deN/2).O ( N--√)N/ 2
Com o algoritmo de Grover, encontrar uma pré-imagem de uma função hash cuja saída é bits leva tempo O ( 2 k / 2 ) , em vez de O ( 2 k ) .kO ( 2k / 2)O ( 2k)
Isso é um problema ? Não necessariamente. As funções de hash são projetadas de modo que o tempo seja considerado "seguro" (em outras palavras, os designers de hash sempre dobram k ). Isso se deve ao paradoxo do aniversário com o qual é possível encontrar uma colisão com o tempo O ( 2 k / 2 ) por um computador clássico.2k / 2kO ( 2k / 2)
O bom do algoritmo de Grover é que ele é ótimo - todos os outros algoritmos quânticos que encontrarem um elemento em um banco de dados não classificado serão executados no tempo .Ω ( N--√)
Computadores quânticos podem realizar melhores ataques de colisão ? Na verdade, não tenho certeza. O algoritmo de Grover pode ser estendido, de modo que, se houver itens (ou seja, pré-imagens), o tempo para encontrar um seja reduzido a O ( √t. Mas isso não causa colisão - a execução do algoritmo novamente pode retornar a mesma pré-imagem. Por outro lado, se escolhermosm1aleatoriamente e usarmos o algoritmo de Grover, é provável que ele retorne uma mensagem diferente. Não tenho certeza se isso dá melhores ataques.O ( N/ t----√)m1
(isso responde à pergunta mais geral, sem restringir o computador a 20 qubits, o que não será suficiente para interromper os hashes atuais de 1024 bits).