Fonction de hachage, qu'est-ce que c'est?

Salutations au cher lecteur!





Aujourd'hui, je voudrais parler de ce qu'est une fonction de hachage, aborder ses propriétés principales, donner des exemples d'utilisation et décrire en général l'algorithme de hachage SHA-3 moderne, qui a été publié en tant que norme de traitement de l'information fédérale américaine en 2015.





informations générales

Une fonction de hachage cryptographique est un algorithme mathématique qui mappe des données de taille arbitraire dans une image bitmap de taille fixe.





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





- :





) - ̆, -

b) -

c) ̆ , -

d) ̆ -

e) ,





- SHA3-256.





256 , 256 , .





, 64 . , 256 .





: " , , 256 ?"





: 256 !

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

, , :





2 ^ {256} \ environ 1,158 \ fois 10 ^ {77}





, , !





.





- .

̆ - ̆:





Pre-image resistance





h, m , h = hachage (m)





Second pre-image resistance





m_1, ̆ m_2,





hachage (m_1) = hachage (m_2)





Collision resistance





m_1 m_2,





hachage (m_1) = hachage (m_2)





m_1 m_2 -





.





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





, -̆ ̆ , ̆ .





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





Second pre-image resistance. . , - . , , , , . , , , hachage (m_1) = h, m_2 , hachage (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 \ dans \ {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 \ fois 5 w = 64, 5 \ fois 5 \ fois 64 = 1600 . Keccak w, 2.





- :





• M P ̆ r





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





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





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





, :









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 \ fois 5 \ fois 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





J'espère que tout était clair et intéressant





Merci à tous pour votre attention!












All Articles