CubeHash

Introdução

Uma função hash criptográfica é um conjunto de etapas que permitem converter um bloco arbitrário de dados em uma sequência de comprimento fixo. Qualquer mudança nos dados de entrada leva a uma mudança no valor da função. As funções de hash são usadas para calcular somas de verificação, ao gerar uma assinatura eletrônica, ao armazenar senhas em sistemas de segurança na forma de um código hash, etc.





A família CubeHash de funções hash foi proposta como o novo padrão SHA-3 na competição de hash do Instituto Nacional de Padrões e Tecnologia (NIST) de 2009 .





Este artigo descreve o princípio de operação dessa família e também discute a resistência do algoritmo a vários ataques.





Descrição do Algoritmo

A seguir está um algoritmo de trabalho de acordo com a especificação [1].





O funcionamento do algoritmo é determinado por 3 parâmetros:





  • - o tamanho da sequência de saída em bits,





  • - o número de rodadas,





  • - o tamanho dos blocos da mensagem de entrada em bytes,





A ideia do algoritmo é transformar sequencialmente o estado com base na sequência de entrada. O algoritmo consiste em 5 etapas:





  • inicialização do estado interno





  • quebrar uma mensagem em blocos





  • transformação iterativa de estado













.





32 - ( little-endian).





3 . . .





. . . .





. . .





1, .





.





F

, , , . 10 :









  1. ,





  2. ,





  3. ,





  4. ,





  5. 1





  6. ,





  7. ,





  8. 4





  9. ,









[2]:





-

:





  • : - .





  • : 2 .





-, , - , , , .





CubeHash

, . .. , , .





50% . . , 128 [3].





. . , . . , 64 [3].





.





[4] , , .





. ( ), . , , .





, , , . , , , [2]. , , , .





F

128- [2]. 15 :









AABBCCDD





EEFFGGHH





IIJJKKLL





MMNNOOPP









ABABCDCD





EFEFGHGH





IJIJKLKL





MNMNOPOP









ABBACDDC





EFFEGHHG





IJJIKLLK





MNNMOPPO









ABCDABCD





EFGHEFGH





IJKLIJKL





MNOPMNOP









ABCDBADC





EFGHFEHG





IJKLJILK





MNOPNMPO









ABCDCDAB





EFGHGHEF





IJKLKLIJ





MNOPOPMN









ABCDDCBA





EFGHHGFE





IJKLLKJI





MNOPPONM









ABCDEFGH





ABCDEFGH





IJKLMNOP





IJKLMNOP









ABCDEFGH





BADCFEHG





IJKLMNOP





JILKNMPO









ABCDEFGH





CDABGHEF





IJKLMNOP





KLIJOPMN









ABCDEFGH





DCBAHGFE





IJKLMNOP





LKJIPONM









ABCDEFGH





EFGHABCD





IJKLMNOP





MNOPIJKL









ABCDEFGH





FEHGBADC





IJKLMNOP





NMPOJILK









ABCDEFGH





GHEFCDAB





IJKLMNOP





OPMNKLIJ









ABCDEFGH





HGFEDCBA





IJKLMNOP





PONMLKJI









32- . . , , , . , .





.









  • ( )





  • ,





  • .





  • ,





, 2 ^ {501}. . 2 ^ {256}.





(cycle per byte cpb). , 1 .





SHA-256, SHA-512 CubeHash16/32 Intel Core 2Duo 6f6 (a) Intel Core 2 Duo E8400 1067a (b) [5]:





  • 11.47 cpb: CubeHash 16/32, (b), amd64 architecture.





  • 12.60 cpb: SHA-512, (b), amd64 architecture.





  • 12.60 cpb: SHA-512, (a), amd64 architecture.





  • 12.66 cpb: CubeHash 16/32, (a), amd64 architecture.





  • 12.74 cpb: CubeHash 16/32, (b), x86 architecture.





  • 14.07 cpb: CubeHash 16/32, (a), x86 architecture.





  • 15.43 cpb: SHA-256, (b) x86 architecture.





  • 15.53 cpb: SHA-256, (b), amd64 architecture.





  • 15.56 cpb: SHA-256, (a), amd64 architecture





  • 17.76 cpb: SHA-512, (b), x86 architecture.





  • 20.00 cpb: SHA-512, (a), x86 architecture





  • 22.76 cpb: SHA-256, (a), x86 architecture





CubeHash SHA-3 -, NIST. Cubehash , . , CubeHash , .





. , CubeHash 8 / 1-512 CubeHash 1 / 1-512, CubeHash 1 / 1-512 , CubeHash 1 / 2-512. - CubeHash 1/128- h.





: .





  1. DJ Bernstein. Especificação Cubehash (2.b.1)





  2. Vikash Jha. Criptoanálise de Cubehash.





  3. Philip Doughty Jr. Um ataque genérico a CubeHash, um candidato SHA-3.





  4. Benjamin Bloom e Alan Kaminsky. Ataques de bloco único e testes estatísticos em CubeHash.





  5. DJ Bernstein. Ajuste do parâmetro CubeHash: 16 vezes mais rápido.












All Articles