Función hash, ¿qué es?

¡Saludos al querido lector!





Hoy me gustaría hablar sobre qué es una función hash, tocar sus principales propiedades, dar ejemplos de uso y, en general, describir el algoritmo de hash SHA-3 moderno, que fue publicado como el Estándar Federal de Procesamiento de Información de EE. UU. En 2015.





Información general

Una función hash criptográfica es un algoritmo matemático que mapea datos de tamaño arbitrario en un mapa de bits de tamaño fijo.





, -, «-» «», «».





- :





) - ̆, -

b) -

c) ̆ , -

d) ̆ -

e) ,





- SHA3-256.





256 , 256 , .





, 64 . , 256 .





: " , , 256 ?"





: 256 !

, 256 - 2 ^ {256} , 2 ^ {256} .

, , :





2 ^ {256} \ aproximadamente 1,158 \ veces 10 ^ {77}





, , !





.





- .

̆ - ̆:





Pre-image resistance





h, m , h = hash (m)





Second pre-image resistance





m_1, ̆ m_2,





hash (m_1) = hash (m_2)





Collision resistance





m_1 m_2,





hash (m_1) = hash (m_2)





m_1 m_2 -





.





Collision resistance. , , ̆ . , - ̆̆ , , . , ̆ - ̆ , , . - ̆ , , ̆.





, -̆ ̆ , ̆ .





Pre-image resistance. . - , , , . , . .





Second pre-image resistance. . , - . , , , , . , , , hash (m_1) = h, m_2 , hash (m_2) = h





, . -, , .





, , .





, , , .





, - , .





-

-:







- ̆, , , - ̆.







. , . , . -, .







, , . . , -.





:





, . , , . , ( ). , , , . , -, .





SHA-3.





SHA-3

(NIST) 2007—2012 -, SHA-1 SHA-2.





, :

















,









, ISA





5 :





• BLAKE





• Grøstl





• JH





• Keccak





• Skein





SHA-3 Keccak.





Keccak .





Keccak

- ̆ Keccak ̆ , ̆ «» , Z «» .





Keccak Keccak-f, Keccak-f [b], b \ in \ {25, 50, 100, 200, 400, 800, 1600 \}





Keccak-f ̆ , . n_r n_r = 12 + 2l, 2l = b / 25





SHA-3 Keccak-f[1600], n_r = 24





Keccak-f [1600]





, .





1600 , r C , .





, , SHA3-256 r = 1088, c = 512





SHA-3 S 5 \ por 5 w = 64, 5 \ times 5 \ times 64 = 1600 . Keccak w, 2.





- :





• M P ̆ r





• P n r: P_0, P_1, ..., P_ {n-1}





• «»: ̆ Pi} segundo (b = r+c) 2 S, F S, 2 P_ {i + 1} F. S 0.





• «»: Z re, re - -, r S Z. F «» , re.





, :









SHA-3 10...1: 1, 0 r - 1 1.





r - 1 , ̆ r - 1 . , r - 1 .





M r, , ̆ ̆ , r - 2 . , , , - .





, - ̆, , .





12 + 2l :





  1. \ theta





  2. \ rho





  3. \ Pi





  4. \ chi





  5. \ iota





, , , ,





:





S 5 \ por 5 \ por 64, a [x] [y] [z]





A [x] [y] [z]





ROT (a, d), :









ROT (a [x] [y] [z], d) = a [x] [y] [z + d \: \: mod \: w]



ROT (a, d) - , z z + d \: \: mod \: w,





w- (64 )





, .





\ theta





\ theta : a [x] [y] [z] a [x-1] [\ cdot] [z] a [x + 1] [\ cdot] [z-1]





:





:





\ rho





\ rho ( z).





:





\ Pi





\ Pi :





\ chi





\ chi Keccak-f





:





\ iota





\ iota . Keccak-f , , . l .





RC [i] w = 64





:





r [x, y] :





, -

SHA-3 Keccak, Secure Hash Algorithm





Espero que todo haya sido claro e interesante





¡Gracias a todos por su atención!












All Articles