SHA-3-Algorithmus

Was ist eine Hash-Funktion?

Informationssicherheit ist mittlerweile ein wesentlicher Bestandteil jedes digitalen Betriebs. Die SchlĂŒsselrolle bei der Informationssicherheit spielt das Konzept einer kryptografischen Funktion. Kryptografische Hash-Funktionen sind eine dedizierte Klasse von Hash-Funktionen mit bestimmten Eigenschaften, die sie fĂŒr die Verwendung in der Kryptografie geeignet machen.





Die von der Hash-Funktion durchgefĂŒhrte Transformation wird als Hashing bezeichnet. Die Originaldaten werden als Eingabearray, "SchlĂŒssel" oder "Nachricht" bezeichnet. Das Ergebnis der Transformation (Ausgabedaten) heißt "Hash", "Hash-Code", "Hash-Summe".





Mit anderen Worten, eine Hash-Funktion ist eine Berechnungstechnik, die eine undefinierte DatengrĂ¶ĂŸe einer festen DatengrĂ¶ĂŸe zuordnen kann. Oder einfacher ausgedrĂŒckt, die Konvertierung gibt einen numerischen Wert aus, der durch die Eingabedaten gekennzeichnet ist. Die kryptografische Hash-Funktion verwendet irreversible (Einweg-) mathematische Funktionen, um aus der Eingabe einen Hash-Wert zu generieren. Eine der gĂ€ngigen Methoden zum Generieren kryptografischer Hashes ist die Verwendung von Blockchiffren.





Kryptografisch zuverlĂ€ssige Hash-Funktionen mĂŒssen die folgenden Grundanforderungen erfĂŒllen:





  1. Die Hash-Funktion muss eine Einwegfunktion sein, d.h. Durch das Bild (Hash) ist es unmöglich oder fast unmöglich, das ursprĂŒngliche Vorbild (Nachricht) zu finden.





  2. Die Hashing-Funktion muss kollisionssicher sein. Eine Kollision besteht aus zwei Originalnachrichten mit demselben Ausgabewert. Es wird angenommen, dass das relativ schnelle Auffinden einer Kollision im Hashing-Algorithmus einen solchen Algorithmus unter dem Gesichtspunkt der Kryptoanalyse unzuverlÀssig macht.





Kommen wir zu einem detaillierten Blick auf einen der sichersten und effizientesten Hashing-Algorithmen von heute.





Was ist SHA-3?

SHA-3 ist ein wesentlicher kryptografischer Algorithmus zur GewĂ€hrleistung der Informationssicherheit sowie der DatenintegritĂ€t bei digitalen Transaktionen. Neuere sichere Hash-Algorithmen, einschließlich MD5, RIPEMD, SHA-0, SHA-1 und SHA-2, sind veraltet und fĂŒr Angriffe verschiedener Art anfĂ€llig.





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 = Zustand \ GrĂ¶ĂŸe  Wert \ von \ l = \ {0, 1, 2, 3, 4, 5, 6 \} Wert \ von \ b = \ {25, 50, 100, 200, 400, 800, 1600 \}





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





rounds  = 12 + 2 * l

rounds  = 12 + 12 = 24 ; as l = 6

24\ rounds\ in\ total





, SHA-3 1600 , - 24.





, , .





, "r" -.





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





p = n * r ;

p = length\ of\ message\ after\ 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. ich 0 l: RC [2 ^ i-1] = rc (i + 7i_r)





  4. EIN ' S ' b





:

  1. S. EIN





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





  3. EIN ' S ' b





4 :





d( d— -), r S. S. . d .





d





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 = 1344, c = 256], X.(SHA3-X 1) SHAKE128 (M, 128), SHAKE128 .





[7]





a [i, j] ich=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}





Im Allgemeinen zeigen die Kollisionssuchergebnisse und der beschriebene Preimage-Angriff, dass der SHA-3 / Keccak-Algorithmus heute einer der sichersten und effizientesten Hashing-Algorithmen ist. Einige argumentieren, dass es in den nĂ€chsten 20-30 Jahren nicht gehackt wird. Der Fortschritt in der Welt des Quantencomputers mag diesen Zeitrahmen verkĂŒrzen, aber bisher ist dieser Algorithmus immer noch einer der besten Hashing-Algorithmen, die die Menschheit derzeit hat.












All Articles