Algorithme SHA-3

Qu'est-ce qu'une fonction de hachage?

La sécurité de l'information fait désormais partie intégrante de toute opération numérique. Le rÎle clé dans la sécurité de l'information est joué par le concept de fonction cryptographique. Les fonctions de hachage cryptographiques sont une classe dédiée de fonctions de hachage qui ont certaines propriétés qui les rendent adaptées à une utilisation en cryptographie.





La transformation effectuée par la fonction de hachage est appelée hachage. Les données d'origine sont appelées le tableau d'entrée, "clé" ou "message". Le résultat de la transformation (données de sortie) est appelé «hash», «hash code», «hash sum».





En d'autres termes, une fonction de hachage est une technique de calcul qui peut mapper une taille de données indéfinie à une taille de données fixe. Ou, plus simplement, la conversion produit une valeur numérique qui est caractérisée par les données d'entrée. Une fonction de hachage cryptographique utilise des fonctions mathématiques irréversibles (unidirectionnelles) pour générer une valeur de hachage à partir de l'entrée. L'un des moyens courants de générer des hachages cryptographiques consiste à utiliser des chiffrements par blocs.





Les fonctions de hachage cryptographiquement fiables doivent répondre aux exigences de base suivantes:





  1. La fonction de hachage doit ĂȘtre une fonction Ă  sens unique, c'est-Ă -dire par l'image (hachage), il est impossible ou presque impossible de trouver la prĂ©-image (message) d'origine.





  2. La fonction de hachage doit ĂȘtre rĂ©sistante aux collisions. Une collision est une paire de messages originaux qui ont la mĂȘme valeur de sortie. On pense que la dĂ©couverte relativement rapide d'une collision dans l'algorithme de hachage rend un tel algorithme peu fiable du point de vue de la cryptanalyse.





Passons à un examen détaillé de l'un des algorithmes de hachage les plus sûrs et les plus efficaces d'aujourd'hui.





Qu'est-ce que SHA-3?

SHA-3 est un algorithme cryptographique essentiel pour assurer la sécurité des informations ainsi que l'intégrité des données dans les transactions numériques. Les algorithmes de hachage sécurisés récents, notamment MD5, RIPEMD, SHA-0, SHA-1 et SHA-2, ont été déconseillés et se sont révélés sensibles aux attaques de divers types.





SHA-3 (Keccak) – , 2012 . 5 2015 FIPS 202. Keccak SHA-3 2012 . [1] Keccak Sponge (), -, — , MD(x).





MD(x) OR, XOR, AND, NOT. , . , MD(x) - , .





— .





- SHA-3 :





1 :

. , , ( ), .





, , , , , Keccak .





b = 25 * 2 ^ lb = Ă©tat \ taille  valeur \ of \ l = \ {0, 1, 2, 3, 4, 5, 6 \} valeur \ of \ b = \ {25, 50, 100, 200, 400, 800, 1600 \}





SHA-3 l 6. , , . , "l", , .





tours = 12 + 2 * l

tours = 12 + 12 = 24;  comme l = 6

24 \ tours \ dans \ total





, SHA-3 1600 , - 24.





, , .





, "r" -.





‘1", "0". " n " , n \ * \ r . :





p = n * r;

p = longueur \ de \ message \ aprĂšs \ padding

n = number\ of\ parts\ in\ which\ we\ divide\ 'p'

r =\ length\ of\ the\ rate





2 :

‘ r ' ' c ' 1600, .





, "r" .(P n r: P0,P1,
,Pn-1)





, , «» (. rate) r, , / , «» (. capacity) c.





: “” “”.





3 :

Pi b (b=r+c) 2 S b. S . — , .





. , SHA-3, «» (XOR), «» (AND) (NOT). - 2. w=2^l(l=6) →w=64 S A 5×5×5.





A[i][j][k] (5i+j)×w+k S





\{Ξ, ρ, π, χ, Îč\} .





A A':





:

i k , 0≀?<5,0≀?<?,





C(i,k) = A[i,0,k]  \oplus A[i,1,k]  \oplus A[i,2,k]  \oplus A[i,3,k]  \oplus A[i,4,k]

D(i, k) = C[(i - 1)\ mod\ 5, k]\ \oplus \ C[(i + 1)\ mod\ 5, (k - 1)\ mod \ w]

(i,j,k) 0≀i<5,0≀j<5,0≀k<W:

A'[i,j,k]=a[i,j,k]\ \oplus \ D[i,k]





:

k, , 0≀k<w:\ Aâ€Č[0,0,k]=A[0,0,k]

(i,j)=(1,0). t 0 23:





  1. k, 0 ≀k<w, A'[i,j,k]=A[i,j,(k-(t+1)(t+x)/2)\ mod \ w]





  2. (i, j) = (j, (2i+3j)\ mod \ 5)





:

(i,j,k), , 0≀i<5,0≀j<5,0≀k<w:\ Aâ€Č[i,j,k]=A[(i+3j)\ mod\ 5,i,k]





:

(i,j,k), , 0≀i<5,0≀j<5,





A'[i,j,k]=A[i,j,k]\ \oplus\ ((A[(i+1)\ mod\ 5, j, k]\oplus1)\ *\ A[(i+2)\ mod\ 5,j,k])





:

rc(t), - t





rc(t) :





  1. t\ mod\ 255=0, 1





  2. R=[10000000]





  3. t 1 255:





    1. R = 0\ ||\ R





    2. R[0]=R[0]\ \oplus\ R[8]





    3. R[4]=R[4]\ \oplus\ R[8]





    4. R[5] =R[5]\ \oplus\ R[8]





    5. R [6] = R [6] \ \ oplus \ R [8]





    6. R = Trunc_8 [R]





  4. R [0]





:

i_r-





  1. (i, j, k), , 0≀i <5, 0≀j <5, 0≀l <w: \ A '[i, j, k] = A [i, j, k]





  2. RC- w,





  3. je 0 l: RC [2 ^ i-1] = rc (i + 7i_r)





  4. UNE ' S ' b





:

  1. S UNE





  2. i_r 12 + 2l-n_r 12 + 2l-1: \ A '= Îč (χ (π (ρ (Ξ (A)))), i_r)





  3. UNE ' S ' b





4 :





rĂ©( ré— -), r S S . rĂ© .





ré





SHA-3

- Keccak SHA-3 2008 [5]. 2012 Keccak SHA-3. SHA-3 - c (XOFs) SHAKE128 SHAKE256, Keccak.





Keccak, , . Keccak- Keccak -224 KECCAK -256, 4 , Dinur l.[3] 2012 [4]. 5- KECCAK -256. 4. Keccak, Keccak challenge [6] . 160 80 4 (state size 1 ) , 12 .. l 0 1 . 2^80 . , 4 SHA-3, . Dinur l. KECCAK -256 2 ^ {115} . , SHA-3, 5 .





32 AMD. [2]





Keccak, χ F. SHA-3 , , 2 ^ 2 - . ≀r-2 , (r - 1)- 1,





, , . , , 4, χ .





( ) χ Keccak. , r - 1 Keccak-f ( ).





c = br , , “” r - 1. .





, . .





, Sbox . , .





SHAKE128 (M, x)- SHA-3, Keccak [r = 1 344, c = 256], X(SHA3-X 1) SHAKE128 (M, 128), SHAKE128 .





[7]





a [i, j] je=0,2 j=0,1,2,3 , , . 10. A [0, 4] , M . - . , , :





[7]





6×64 , , 2 ^ {128}. , , 128- -.





64 , 0,75 ^ {64} = 2 ^ {- 26,6}. 2 ^ {26,6} , A [0,4]. , 2 ^ {26,6}





En général, les résultats de la recherche de collision et l'attaque de pré-image décrite montrent qu'aujourd'hui l'algorithme SHA-3 / Keccak est l'un des algorithmes de hachage les plus sûrs et les plus efficaces. Certains affirment qu'il ne sera pas piraté dans les 20 à 30 prochaines années. Les progrÚs dans le monde de l'informatique quantique peuvent raccourcir ce laps de temps, mais jusqu'à présent, cet algorithme est toujours l'un des meilleurs algorithmes de hachage que l'humanité possÚde pour le moment.












All Articles