User Tools

Site Tools


sha1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sha1 [2023/09/25 09:51] – gotovo katarinasha1 [2023/11/21 12:24] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====SHA-1==== +====SHA==== 
-**SHA-1 (Secure Hash Algorithm 1)** je **hash funkcija**, odnosno **funkcija sažetka**koja iz danog ulaza proizvodi 160-bitni sažetak. Jasni tekst dijeli se na 512-bitne blokove, nakon čega se nadopunjavanje zadjneg bloka (padding) odvija na isti način kao i kod MD5. Osim načina nadopunjavanja, SHA-1 s MD5 dijeli i Merkle-Damgård konstrukciju.+ 
 +==SHA-1== 
 +**SHA-1 (Secure Hash Algorithm 1)** je  **funkcija sažetka** (//hash// funkcija) koja za dani ulaz vraća 160-bitni sažetak. Jasni tekst dijeli se na 512-bitne blokove, nakon čega se nadopunjavanje zadnjeg bloka (//padding//) odvija na isti način kao i kod MD5. Osim toga, SHA-1 dijeli s MD5 i Merkle-Damgård konstrukciju.
  
 Sažetak H od 160 bitova sastoji se od 5 nadovezanih 32-bitovnih varijabli koje se inicijaliziraju s heksadekadskim vrijednostima: Sažetak H od 160 bitova sastoji se od 5 nadovezanih 32-bitovnih varijabli koje se inicijaliziraju s heksadekadskim vrijednostima:
Line 6: Line 8:
   A0 = 67452301 B0 =EFCDAB89 C0 =98BADCFE D0 =10325476 E0=C3D2E1F0   A0 = 67452301 B0 =EFCDAB89 C0 =98BADCFE D0 =10325476 E0=C3D2E1F0
 </file> </file>
-podblokovi M<sub>0</sub> , …, M<sub>15</sub> služe za stvaranje 80 riječi W<sub>1</sub>, ...,,W<sub>80</sub>. Sažimanje svakog podbloka obavlja se u 4 kruga, svaki sa po 20 koraka. Svaki od krugova koristi jednu od  4 funkcije i konstante:+podblokovi M<sub>0</sub> , …, M<sub>15</sub> služe za stvaranje 80 riječi W<sub>1</sub>, ...,,W<sub>80</sub>. Sažimanje svakog podbloka obavlja se u 4 kruga, svaki po 20 koraka. Svaki od krugova koristi jednu od  4 funkcije i konstante:
 <file> <file>
   Fi(x, y, z) = (X ^ Y) v (!X ^ Z) 1  ≤ i ≤ 20   Fi(x, y, z) = (X ^ Y) v (!X ^ Z) 1  ≤ i ≤ 20
Line 20: Line 22:
 {{ ::sha1.png?nolink&500 | Sha-1 shema}} {{ ::sha1.png?nolink&500 | Sha-1 shema}}
  
-SHA-1 je kriptografski slomljena, a već 2005. se smatrala nesigurnom protiv napadača sa velikom količinom resursa zbog svog kratkog sažetka. Danas se napadi na SHA-1 pomoću kolizijskog napada s odabranim prefiksom smatraju praktičnima, što je Google i dokazao 2017. generiranjem dvaju PDF-ova s istim sažetkom, tako da većina komercijalnih preglednika više ne prihvaća SSL certifikate temeljene na SHA-1 funkciji. Unatoč tome, SHA-1 se i dalje koristi.+SHA-1 je kriptografski slomljena, a već 2005. se smatrala nesigurnom protiv napadača sa velikom količinom resursa zbog svoga kratkog sažetka. Danas se napadi na SHA-1 pomoću kolizijskog napada s odabranim prefiksom smatraju praktičnima, što je Google i dokazao 2017. generiranjem dvaju PDF-ova s istim sažetkom, tako da većina komercijalnih preglednika više ne prihvaća SSL certifikate temeljene na SHA-1 funkciji. Unatoč tome, SHA-1 se i dalje koristi.
 {{ ::shattered.png?nolink&500 | Googleovi izračuni o lomljenju hash funkcija iz 2017. godine [4]}} {{ ::shattered.png?nolink&500 | Googleovi izračuni o lomljenju hash funkcija iz 2017. godine [4]}}
 +
 +===SHA-2===
 +**SHA-2** je **funkcija sažetka** (//hash// funkcija) temeljena na istoj konstrukciji kao SHA-1 (Merkle-Damgård) i ima identične principe nadopunjavanja, ali uz značajno izmijenjene funkcije po kojima se sažetak računa. SHA-2 dolazi u 4 verzije različitih duljina ulaznog bloka – SHA-224, SHA-256, SHA-384 i SHA-512.
 +
 + {{ ::sha2_var.png?nolink&600 |}}
 +
 +Pobliže ćemo proučiti verziju SHA-256.
 +
 +U SHA-256 inicijalne heksadekadske vrijednosti 512-bitnog sažetka H su:
 +<file>
 +  A0 = 6A09E667 B0 = BB67AE85 C0 = 3C6EF372 D0 = A54FF53A
 + E0 = 510E527F F0 = 9b05688C G0 = 1F83D9AB H0 = 5BE0CD19
 +</file>
 +Zatim se obavljaju 64 runde računskih operacija po zadanim funkcijama i konstantama, uz zbrajanje po modulu 2<sup>32</sup> :
 +<file>
 +Ch(X, Y, Z)  = (X ^ Y) v (!X ^ Z) 
 +Maj(X, Y, Z) = (X ^ Y) v (X ^ Z) v (X ^ Z)
 +
 +S0(x) = ROTR2(x) ⊕ ROTR13(x) ⊕ ROTR22(x)
 +S1(x) = ROTR6(x) ⊕ ROTR11(x) ⊕ ROTR22(x)
 +F0(x) = ROTR7(x) ⊕ ROTR18(x) ⊕ SHR3(x) F1(x) = ROTR17(x)⊕ ROTR19(x) ⊕ SHR10(x)
 +
 +Kt=5A827999 0 ≤ t ≤ 15
 +Kt=6Ed9EBA1 16 ≤ t ≤ 31
 +Kt=8F1BBCDC 32 ≤ t ≤ 47
 +Kt=CA62C1D6 48 ≤ t ≤ 64
 +</file>
 +{{ ::sha2.png?nolink&350 | SHA-2 shema}}
 +Trenutno najbolji objavljeni napadi (Biclique napadi, varijanta meet-in-the-middle) na SHA-2 „lome“ samo 52 od 64 runde SHA-256, odnosno 57/80 rundi SHA-512. SHA-2 se stoga još uvijek smatra sigurnim i široko primjenjivim. Danas se koristi za osiguravanje komunikacijskih protokola (TLS, SSL, SSH, Ipsec), autentifikaciju paketa i poruka (DKIM) te verifikaciju transakcija (Bitcoin). 
 +
 +===SHA-3===
 +**SHA-3** je **funkcija sažetka** (//hash// funkcija) temeljena na **Keccak algoritmu**, novoj **spužvastoj konstrukciji** te značajno izmijenjenim matematičkim principima u odnosu na prethodne iteracije SHA standarda. Izmijenjen je i način nadopunjavanja zadnjeg bloka teksta (//padding//) koji se u SHA-3 obavlja po shemi M||10*1
 +{{ ::spuzvabob.png?nolink&600 | Spužvasta konstrukcija SHA-3 funkcije}}
    
-===Izvori=== +Kao i kod SHA-2postoje 4 verzije SHA-3 algoritmaovisno o duljini ulaznog blokaali se same duljine ulaznih blokova razlikujuTako razlikujemo SHA3-224 (1152 bitova), SHA3-256 (1088 bitova), SHA3-384 (832 bitova) i SHA3-512 (576 bitova).
-[1] Christof PaarJan Pelzl, Understanding Cryptography, Springer-Verlag Berlin Heidelberg, 2009. +
-[2] https://platforma.hacknite.hr/challenges +
-[3] Kriptografija i kriptoanalizapredavanjaFER +
-[4] https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html+
  
 +Broj riječi i veličina bloka u SHA3 također ovise o verziji SHA-3 koja se koristi i računaju se po formuli 25w = c + r, gdje je w broj riječi, c kapacitet (2 puta veličina sažetka), a r veličina bloka (ostatak).
 +
 +SHA-3 funkcija f se obavlja u nr = 12 + w koraka. Sama se funkcija sastoji od 5 osnovnih funkcija za manipulaciju bitovima stanja: θ, ρ, π, χ i ι. Pseudokod je dan u nastavku:
 +
 +<code>
 +Keccak-f[b](A)
 +  za i 0 do nr-1
 +  // (x,y) element {0…4}
 +  // funkcija θ
 +  C[x] = A[x,0] xor A[x,1] xor A[x,2] xor A[x,3] xor A[x,4];
 +  D[x] = C[x-1] xor rot(C[x+1],1);
 +  A[x,y] = A[x,y] xor D[x];
 +
 +  // funkcije ρ i π
 +  B[y,2*x+3*y] = rot(A[x,y], r[x,y]);
 +  
 +                // funkcija χ
 +          A[x,y] = B[x,y] xor ((not B[x+1,y]) and B[x+2,y]); 
 +
 +          // funkcija ι
 +          A[0,0] = A[0,0] xor RC;
 +        return A; 
 + </code>
 +{{ ::fje.png?nolink&500 | Shema osnovnih funkcija koje koristi SHA3 funkcija sažetka}}
 +
 +===Izvori===
 +[1] Christof Paar, Jan Pelzl, Understanding Cryptography, Springer-Verlag Berlin Heidelberg, 2009.\\
 +[2] https://platforma.hacknite.hr/challenges\\
 +[3] Kriptografija i kriptoanaliza, predavanja, FER\\
 +[4] https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html\\
 +[5] http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf\\
 +[6] https://eprint.iacr.org/2011/286.pdf \\
 +[7] https://keccak.team/index.html
  
sha1.1695635461.txt.gz · Last modified: 2025/06/03 10:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki