Algoritmos de criptografia e hashing mais strongs hoje [fechado]

3

Basicamente, eu quero saber qual é o algoritmo de criptografia mais strong (mais difícil de quebrar) hoje. O mesmo vale para o algoritmo de hash. Digamos que eu escolha uma senha super-strong também (bônus: quanto tempo é uma senha segura com o algoritmo de criptografia?), Para a parte do algoritmo de criptografia. Eu não me importo quanto tempo demora, ou se é o "padrão" de hoje (ex .: eu ouvi dizer que o AES é o "padrão", mas que não é o algoritmo mais seguro lá fora), apenas contanto que seja impenetrável.

UPDATE: Eu percebo que esta é uma questão muito geral, então deixe-me resumir um pouco. Digamos que estou tentando corresponder com segurança a alguém, ou que não quero que ninguém decifre meu texto, e quero que ele seja tão seguro quanto é humanamente possível. Que tipo de algoritmo de criptografia eu devo analisar, qual tamanho de chave, qual tamanho de bit e qual algoritmo específico devo usar? O mesmo vale para o hashing.

UPDATE: Para reduzi-lo mais, digamos que o 'Bob' deste caso tem uma chave privada que só ele sabe. Digamos que todos no mundo receberam uma cópia da mensagem criptografada, mas apenas "Bob" deve ser capaz de decifrá-la.

(Eu percebo que isso pode estar começando a parecer sombrio, mas isso é tudo uma situação hipotética.)

    
por user244358 09.08.2013 / 00:48

2 respostas

2

A pergunta é realmente impossível de responder. Não existe um conceito universal de "força" algorítmica. Força é, essencialmente, resistência a um ataque. Como existem diferentes categorias de ataques, a força depende de quais ataques você precisa resistir. Não há limite para o quão strong você pode fazer um algoritmo de criptografia ou hash se você não tiver requisitos. O truque é encontrar o algoritmo mais strong (ou suficientemente strong) que atenda a requisitos específicos.

Existem alguns aplicativos em que "ataques" específicos são irrelevantes porque não afetam os requisitos. Por exemplo, pode haver um algoritmo de hash muito strong contra tudo contra ataques de extensão de comprimento. Isso pode torná-lo o algoritmo mais strong para um aplicativo em que os ataques de extensão de comprimento não importam (como assinar hashes), mas são totalmente inadequados para um deles (como chaves de API).

Além disso, existem categorias completamente diferentes de algoritmos de criptografia com propriedades drasticamente diferentes. Por exemplo, existem algoritmos de criptografia simétrica e assimétrica.

Atualização 1 : você ainda não está nos fornecendo as informações mais básicas. Para que a criptografia funcione, deve haver algo que o destinatário pretendido tenha ou saiba que ninguém mais sabe ou que permite que eles, e somente eles, decriptografem a mensagem. Sem qualquer ideia do que isso possa ser, não há como saber até que classe de algoritmos estar olhando. Se não houver requisitos, a resposta provavelmente é um bloco de tempo único, embora isso seja quase totalmente impraticável.

Atualização 2 : com suas informações adicionais, RSA com OAEP é a escolha óbvia.

    
por 09.08.2013 / 01:27
1

Existe algo como bcrypt . O ponto principal é que é muito lento. Então, brevemente - levará anos para o hacker quebrá-lo, porque você pode fazer isso para calcular seu hash em 1 segundo. Não há muito tempo para um usuário para o procedimento de autenticação única. Mas para hackers 1 segundo é MUITO porque ele tem que tentar milhões de combinações. Em comparação - SHA-1 (por exemplo) calcula seu cache por milissegundos. Mesmos thins para hacker - será muito conveniente para ele forçar sua senha. Então, eu recomendo bcrypt .

EDITAR Eu quero muito admitir o comentário de @Huskehn. É muito importante como é implementado. A segurança inclui muitos aspectos, não apenas escolhendo o algoritmo hash mais strong.

    
por 09.08.2013 / 00:56