La crittografia, d'altra parte, è un processo a due vie. Si utilizza una chiave per crittografare i dati e la stessa (o una chiave correlata) per decrittarli.
Pertanto, non usi hashing * per * crittografia. Tuttavia, hashing svolge un ruolo cruciale in schemi di crittografia * sicuri * in diversi modi:
1. Derivazione chiave: L'hashing viene spesso utilizzato per derivare le chiavi di crittografia da una password o da una chiave principale. Questo è cruciale perché la memorizzazione diretta delle chiavi di crittografia è estremamente rischiosa. Invece, è possibile utilizzare una forte funzione di derivazione chiave come PBKDF2, Argon2 o BCrypt, che ha ripetutamente avviato la chiave di password/master con un sale (dati casuali) e un elevato conteggio di iterazione per renderlo computazionalmente costoso per la forza bruta o rompere la chiave. Questo processo trasforma una password relativamente debole in una chiave forte e crittograficamente sicura utilizzata per la crittografia.
2. Codici di autenticazione dei messaggi (Mac): I Mac forniscono sia integrità e autenticazione dei dati. Combinano una chiave segreta con i dati utilizzando una funzione hash crittografica (come HMAC-SHA256). Il tag Mac risultante viene aggiunto ai dati crittografati. Il destinatario utilizza la stessa chiave e i dati ricevuti per calcolare il Mac. Se il Mac calcolato corrisponde al Mac ricevuto, dimostra che i dati non sono stati manomessi e che provenivano da qualcuno che possiede la chiave segreta.
3. Firme digitali: Pur non essendo strettamente parte del processo di crittografia stesso, le firme digitali utilizzano hashing per verificare l'autenticità e l'integrità di un messaggio. Il mittente hash hash il messaggio e quindi firma l'hash utilizzando la loro chiave privata. Il destinatario può verificare la firma utilizzando la chiave pubblica del mittente e ricostruire il messaggio. Ciò dimostra che il messaggio è nato dal mittente rivendicato e non è stato modificato.
In sintesi: Non hai i dati di hash * invece * di crittografarli. Si utilizza hashing * insieme alla crittografia * per migliorare la sicurezza:
* Strong Key Derivation: Converti una password o una chiave master in una chiave di crittografia forte.
* Mac: Garantire l'integrità dei dati e l'autenticità.
* Firme digitali: Verificare l'autenticità e l'integrità di un messaggio (spesso utilizzato insieme alla crittografia).
Esempio (concettuale):
Diciamo che vuoi crittografare un messaggio:
1. Derivazione chiave: Utilizzare PBKDF2 per derivare una forte chiave di crittografia dalla password di un utente e un sale.
2. Crittografia: Crittografare il messaggio utilizzando un algoritmo di crittografia simmetrica come AES con la chiave derivata.
3. Generazione MAC: Utilizzare HMAC-SHA256 per generare un Mac utilizzando la stessa chiave di crittografia e il messaggio crittografato.
4. Trasmissione: Invia il messaggio crittografato e il Mac.
5. Verifica e decrittografia: Il destinatario riceve il messaggio crittografato e il Mac. Usano lo stesso processo di derivazione chiave (con lo stesso sale e password) per derivare la chiave di crittografia. Quindi decrittono il messaggio e generano il proprio Mac. Se il Mac generato corrisponde al Mac ricevuto, il messaggio è considerato autentico e inaltero.
Ricorda di utilizzare librerie e algoritmi crittografici ben controllati. Evita di implementare la propria crittografia a meno che tu non sia un esperto nel settore. L'implementazione impropria può indebolire gravemente la tua sicurezza.
Domanda © www.354353.com