0Pricing
Cryptology Academy · Lezione

La famiglia SHA-1 e SHA-2

Comprenda la debolezza di SHA-1 e le differenze tra SHA-256 e SHA-512.

La famiglia SHA-1 e SHA-2 è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Benvenuto

SHA-1 e SHA-2 sono i successori di MD5 progettati dalla NSA. SHA-1 è ormai ritirato. SHA-256 e SHA-512 restano lo standard del settore per la maggior parte delle applicazioni.

Panoramica di SHA-1

SHA-1 produce un hash di 160 bit (20 byte). Progettato dalla NSA e pubblicato nel 1995. Esempio: SHA1('hello') = aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

Struttura di SHA-1

SHA-1 utilizza 80 round raggruppati in 4 fasi da 20 round. Ogni fase utilizza funzioni logiche diverse (Ch, Parity, Maj). Espande 16 parole di input a 80 utilizzando XOR e rotazioni.

Collisione SHA-1: SHAttered (2017)

Nel 2017, Google e CWI Amsterdam produssero la prima collisione pratica di SHA-1 (l'attacco SHAttered). Due PDF con hash SHA-1 identici ma contenuti diversi. Costo: circa 6500 anni di calcolo su GPU.

Famiglia SHA-2

SHA-2 include: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256. Tutte usano la costruzione Merkle-Damgård. SHA-256 è la variante più utilizzata.

Struttura di SHA-256

SHA-256 utilizza 64 round su blocchi da 512 bit. Mantiene 8 parole di stato da 32 bit ciascuna (a,b,c,d,e,f,g,h). Ogni round combina le parole di input utilizzando le funzioni Ch, Maj, Σ0, Σ1.

SHA-256 in Python

import hashlib msg = b'hello' digest = hashlib.sha256(msg).hexdigest() print(digest) # 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

SHA-512 e SHA-256

SHA-512 utilizza 80 round con parole da 64 bit e produce 512 bit. È più veloce sull'hardware a 64 bit, ma produce digest più grandi. Utilizzi SHA-512 quando è richiesto un livello di sicurezza di 256 bit.

SHA-3 (Keccak)

SHA-3 è stato standardizzato nel 2015 come progetto alternativo. Utilizza la costruzione a spugna invece di Merkle-Damgård, risultando immune agli attacchi di estensione della lunghezza.

Attacchi di estensione della lunghezza su SHA-2

SHA-256(secret || message) è vulnerabile: un attaccante che conosce Hash(message) può calcolare Hash(message || padding || extra). Per questo HMAC utilizza una costruzione a doppio hash.

Quale utilizzare e quando

SHA-256: uso generale, TLS, certificati, HMAC. SHA-512: applicazioni con un margine di sicurezza maggiore. SHA-3: nuovi protocolli che non presentano problemi di estensione della lunghezza. Mai SHA-1 o MD5 per nuovi progetti.

Verifica rapida

Quale costruzione utilizza SHA-3 per risultare immune agli attacchi di estensione della lunghezza?

Riepilogo

Ora comprende l'evoluzione della famiglia SHA. Passiamo alle applicazioni pratiche degli hash: checksum, HMAC e uso di SHA da parte di Git.

Domande Frequenti

La lezione «La famiglia SHA-1 e SHA-2» è gratuita?

Sì — il testo completo di «La famiglia SHA-1 e SHA-2» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «La famiglia SHA-1 e SHA-2»?

Comprenda la debolezza di SHA-1 e le differenze tra SHA-256 e SHA-512. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «La famiglia SHA-1 e SHA-2»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Cosa rende efficace una funzione hash
  2. MD5: storia, utilizzi e motivi della sua insicurezza
  3. La famiglia SHA-1 e SHA-2
  4. Applicazioni degli hash: checksum, HMAC e Git
← Torna a Cryptology Academy