Uma carta que escrevi para a lista de discussão SHA-3 em 2010: De: Zooko O'Whielacronx Para: fórum de hash Data: 2010-10-14 03:46 UTC Pessoal: Se um hash tiver resistência à pré-imagem de 32 bits, isso significa que um invasor pode gastar cerca de 2³² recursos para encontrar uma pré-imagem. Se um hash tiver resistência à pré-imagem de 64 bits, isso significa que um invasor pode gastar cerca de 2⁶⁴ recursos para encontrar uma pré-imagem. E se um hash tiver resistência à pré-imagem de 512 bits? O que isso significaria? Que um invasor pode gastar cerca de 2⁵¹² recursos para encontrar uma pré-imagem nele? Essa é uma possibilidade sem sentido de discutir, uma vez que os recursos 2⁵¹² nunca existirão na vida deste universo, então não pode significar isso, ou se isso significa, então não adianta falar sobre "resistência pré-imagem de 512 bits". Talvez isso signifique outra coisa? Por analogia, suponha que você considerou a construção de uma ponte que suportou 10³ toneladas de pressão. Você também pode considerar uma ponte que possa suportar 10⁶ toneladas de pressão. Se a ponte fosse implantada em uma situação em que mais de 10³ toneladas, mas menos de 10⁶ toneladas, pudessem repousar sobre ela, essa seria uma distinção muito importante a ser feita. Mas o que significaria discutir um projeto para uma ponte que pudesse suportar 10¹⁵⁰ toneladas de pressão? Tal quantidade de pressão nunca poderia ser aplicada à ponte. Haveria algum valor em uma distinção entre um projeto de ponte que suportaria 10¹⁵⁰ toneladas de pressão e outro que suportaria 10³⁰⁰? Mesmo que nenhum deles pudesse experimentar até 10¹⁵⁰ toneladas de pressão, talvez a última ponte ainda fosse mais segura contra alguma outra ameaça - um erro por parte dos construtores ou projetistas ou um evento estressante que não foi incluído no modelo que usamos para avaliar nossas pontes em primeiro lugar. Ou talvez não. Talvez a ponte projetada para suportar 10 toneladas de pressão tenha maior probabilidade de falhar do que a outra quando atingida por esse evento imprevisto e não modelado. Quem pode dizer? Uma posição razoável a ser tomada é que foi um erro do NIST especificar que alguns dos hashes SHA-3 tinham que ter resistência de pré-imagem de 512 bits. (Se foi um erro, então eu realmente não tenho ideia do que fazer sobre isso neste momento!) Essa posição diz que há uma necessidade de uma função hash que leva muito mais tempo de CPU do que o SHA-3-256 para fornecer muito menos probabilidade de que um invasor seja capaz de encontrar uma pré-imagem nele do que no SHA-3-256, mas que essa "probabilidade muito menor" não está em nenhum sentido significativo correlacionada com a ideia de ter "resistência de pré-imagem de 512 bits". Outra posição razoável a ser tomada é que uma função hash que é conhecida por ter no máximo resistência de pré-imagem de 384 bits tem maior probabilidade de falhar do que uma que é conhecida por ter no máximo resistência de pré-imagem de 512 bits. É aqui que minha compreensão limitada da criptoanálise de função hash chega ao fim. Isso é plausível? Se eu lhe der duas funções de hash como essa, você está confiante de que poderia aprender como encontrar pré-imagens na primeira antes de encontrar pré-imagens na última? Quão certo você está? É possível que seja o contrário - que você descubra um método de encontrar pré-imagens no último antes de descobrir um método de encontrar pré-imagens no primeiro? Se alguém que tem experiência real em criptoanálise de função hash e que assume a última posição pudesse explicar o que quer dizer com "maior probabilidade de falhar", então eu ficaria fascinado em ouvi-lo. De qualquer forma, tenho certeza de que, como usuário de funções de hash, o que me preocupa é "mais probabilidade de falhar" (e eficiência), não com "bits de segurança" para qualquer nível de bit maior que cerca de 128 (incluindo consideração de ataques quânticos, ataques multi-alvo, etc.). Obrigado por reservar um tempo para ler isso. Relação Zooko Wilcox-O'Hearn
4,73K