sha1
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
sha1 [2023/09/25 09:46] – tekst katarina | sha1 [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 | + | |
+ | ==SHA-1== | ||
+ | **SHA-1 (Secure Hash Algorithm 1)** je **funkcija sažetka** | ||
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 | ||
</ | </ | ||
- | podblokovi M< | + | podblokovi M< |
< | < | ||
| | ||
Line 13: | Line 15: | ||
| | ||
- | Ki = 5A827999 1 ≤ i ≤ 20 | + | |
- | Ki = 6ED9EBA1 21 ≤ i ≤ 40 | + | Ki = 6ED9EBA1 21 ≤ i ≤ 40 |
- | Ki = 8F1BBCDC 41 ≤ i ≤ 60 | + | Ki = 8F1BBCDC 41 ≤ i ≤ 60 |
- | Ki = CA62C1D6 61 ≤ i ≤ 80 | + | Ki = CA62C1D6 61 ≤ i ≤ 80 |
</ | </ | ||
+ | {{ :: | ||
- | 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, | + | 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, |
+ | {{ :: | ||
+ | |||
+ | ===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, | ||
+ | |||
+ | {{ :: | ||
+ | |||
+ | Pobliže ćemo proučiti verziju SHA-256. | ||
+ | |||
+ | U SHA-256 inicijalne heksadekadske vrijednosti 512-bitnog sažetka H su: | ||
+ | < | ||
+ | A0 = 6A09E667 B0 = BB67AE85 C0 = 3C6EF372 D0 = A54FF53A | ||
+ | E0 = 510E527F F0 = 9b05688C G0 = 1F83D9AB H0 = 5BE0CD19 | ||
+ | </ | ||
+ | Zatim se obavljaju 64 runde računskih operacija po zadanim funkcijama i konstantama, | ||
+ | < | ||
+ | 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 | ||
+ | </ | ||
+ | {{ :: | ||
+ | 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**, | ||
+ | {{ :: | ||
- | ===Izvori=== | + | Kao i kod SHA-2, postoje 4 verzije SHA-3 algoritma, ovisno o duljini ulaznog bloka, ali se same duljine ulaznih blokova razlikuju. Tako razlikujemo SHA3-224 (1152 bitova), SHA3-256 (1088 bitova), SHA3-384 (832 bitova) i SHA3-512 (576 bitova). |
- | [1] Christof Paar, Jan Pelzl, Understanding Cryptography, | + | |
- | [2] https:// | + | |
- | [3] Kriptografija i kriptoanaliza, predavanja, FER | + | |
- | [4] https:// | + | |
+ | 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: | ||
+ | |||
+ | < | ||
+ | Keccak-f[b](A) | ||
+ | za i 0 do nr-1 | ||
+ | // (x,y) element {0…4} | ||
+ | // funkcija θ | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | // funkcije ρ i π | ||
+ | B[y, | ||
+ | | ||
+ | // funkcija χ | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | return A; | ||
+ | </ | ||
+ | {{ :: | ||
+ | |||
+ | ===Izvori=== | ||
+ | [1] Christof Paar, Jan Pelzl, Understanding Cryptography, | ||
+ | [2] https:// | ||
+ | [3] Kriptografija i kriptoanaliza, | ||
+ | [4] https:// | ||
+ | [5] http:// | ||
+ | [6] https:// | ||
+ | [7] https:// | ||
sha1.1695635202.txt.gz · Last modified: 2025/06/03 10:22 (external edit)