Como uma criptografia RSA 2048 pode ser quebrada?


Melhor resposta

No campo da criptoanálise, há uma grande diferença entre “ crack “e” break “.

Você quebra uma senha no sentido mais simples, tentando desbloquear o sistema com todas as iterações possíveis dessa senha, um método conhecido como cracking de força bruta. Se você conhece as regras que regem a criação e o uso da senha, também sabe com antecedência o custo de tempo / esforço inerente a essa cifra. Cada algoritmo que existe tem uma expectativa pré-conhecida no esforço de computação necessário para quebrá-lo.

Um algoritmo, como MD5 ou SHA-1 (exemplos reais), é considerado quebrado quando você encontra algum tipo de colisão que reduz o universo esperado (todas as soluções possíveis para a fórmula usada para criar a chave / senha).

Para simplificar, vou mostrar um exemplo da vida real de WPS (Wi-Fi Protected Setup ) O WPS foi criado para tornar mais fácil para os usuários proteger sua rede Wi-Fi. Ele consistia em um PIN de oito dígitos que seria trocado entre o usuário solicitante e o roteador ao pressionar um botão.

Os criadores do sistema sabiam de antemão o universo esperado: 8 números fornecem 100 milhões de possibilidades combinações (10 ^ 8). No entanto, a implementação do protocolo dividiu esse número em 2 combinações de quatro dígitos que foram validadas separadamente.

Isso significa que você só teria que tentar 10.000 (10 ^ 4) + 10.000 (10 ^ 4) combinações, na pior das hipóteses, para quebrar o PIN. Seu universo de 100 milhões de combinações agora de repente caiu para apenas 20.000 combinações. O algoritmo está efetivamente quebrado . Você pode então tentar quebrá-lo – como faria se não estivesse quebrado – mas como está quebrado, suas chances de ter sucesso são muito maiores, exigindo no máximo 20.000 tentativas em vez de 100 milhões.

A conclusão a tirar disso:

Quebrar e quebrar são coisas diferentes. Uma cifra quebrada não significa que seja insegura, apenas que é mais fácil quebrar agora. Dependendo do valor do que está sendo protegido por ele, ser quebrado não significa morte para um determinado sistema, apenas o entendimento de que é menos seguro agora do que se esperava originalmente.

RSA-2048 será quebrado se alguém encontrar uma maneira de criar colisões que reduzem inerentemente o número esperado de combinações para quebrar a cifra. RSA 2048 pode ser quebrado como está, como qualquer outra cifra, por força bruta.

Resposta

RSA, por si só, tem apenas alguns ataques ao módulo público (que é tipicamente um semiprime, ou dois grandes números primos selecionados aleatoriamente s multiplicados juntos). O algoritmo clássico mais eficiente para resolver o problema de fatoração, que permite a derivação da chave privada usando aritmética básica, é o General Number Field Sieve (GNFS). Este algoritmo é executado em tempo subexponencial e não é viável para uso em sistemas implementados corretamente RSA-2048 bits.

Também existe Algoritmo de Shor, mas que não pode ser montado no RSA-2048 por um atacante típico. Os fabricantes de computadores quânticos administram um oligopólio, principalmente liderado pela D-Wave. Não só é incrivelmente caro obter um, mas também requer equipamento especializado para operá-lo e mantê-lo. Nenhum chip foi criado com persistência de informações e poder suficiente para quebrar mais do que alguns bits.

Como mencionado anteriormente, um criptosistema não é nada sem uma implementação correta. A maioria das implementações de RSA também utiliza um algoritmo de impressão digital de chave pública, geralmente um hash. Além disso, encontrar a fatoração de primos é possível com um exploit que é incrivelmente raro e também estatisticamente insignificante em termos de taxa de sucesso. Como Euclides apontou , existem números primos infinitos, mas não apenas existem números primos infinitos, há muitos deles dentro de um certo keyspace. Se dois módulos compartilham o mesmo primo, é fácil encontrar sua fatoração. Usando o algoritmo do maior divisor comum , que é executado em tempo linear (pode ser executado facilmente no dispositivo que você está visualizando em milissegundos), o fator comum pode ser encontrado, então dividido fora dos módulos para render os outros dois primos ausentes. Isso leva ao acesso a ambas as chaves. Qualquer implementação correta de RSA nunca reutilizaria números primos para chaves separadas; em vez disso, os selecionaria completamente ao acaso. Como existem muitos módulos possíveis dentro do keyspace de 2048 bits, que podem ser escritos como o número de comprimento dos primos 2048 select 2 (ou superior a 2 se estiver trabalhando com módulos não padrão), as chances de duas chaves compartilharem dois primos são insignificantes . Em outras palavras, pegar todas as chaves de um servidor de chaves e executar o algoritmo GCD em todos eles é simplesmente uma perda de tempo.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *