Dgroove

Quali sono le differenze tra encoding, encryption e hashing?

Quali sono le differenze tra encoding, encryption e hashing?

Nonostante infatti siano tutte tecniche per convertire dati da una forma ad un’altra, esse possiedono differenze sostanziali e, nello specifico, non possono essere equivalentemente utilizzate nel caso in cui siano necessari particolari requisiti di sicurezza all’interno del vostro sistema o applicazione.

ENCODING

Lo scopo dell’encoding è quello di trasformare un dato in modo che possa essere consumato in modo appropriato e sicuro da un differente tipo di sistema.

Tale tecnica è principalmente usata nei sistemi di data storage o nei casi in cui debbano essere inviati dati in forma di testo, ad esempio via e-mail, oppure per la visualizzazione di caratteri speciali su una pagina web.

Lo scopo non è quello di mantenere l’informazione segreta, bensì che possa essere utilizzata da sistemi differenti!

L’encoding trasforma i dati in forme diverse utilizzando uno schema che è disponibile a tutti al fine di poter facilmente ricavare il valore originale. Per ottenere il valore iniziale non è necessaria una chiave ma è sufficiente soltanto conoscere l’algoritmo che è stato utilizzato per encodare il dato.

Esempi: URL Encoding, JSON Encoding, Base64, ASCII, UNICODE

Esempio di Base64 Encoding:

Per ottenere il valore originale a partire dalla stringa encodata è sufficiente utilizzare ad esempio un qualunque servizio online che effettui il Base64 Decoding, come https://www.base64decode.org/:

Base64 Decoding

ENCRYPTION

Lo scopo della cifratura è quello di trasformare un dato in modo che il suo contenuto venga reso segreto per tutti ad eccezione del destinatario previsto.

Il dato soggetto a cifratura viene chiamato plaintext, mentre il risultato generato in seguito ad algoritmo di cifratura viene definito ciphertext.

L’operazione di cifratura viene effettuata tramite l’utilizzo di una chiave che deve essere tenuta segreta.

Sulla base della chiave utilizzata, possono essere individuati due tipi di cifratura:

Cifratura a chiave simmetrica

La cifratura a chiave simmetrica rappresenta un metodo semplice per cifrare testo in chiaro dove la chiave di cifratura è la stessa utilizzata per la fase di decifratura, rendendo l’algoritmo molto performante e semplice da implementare.

Lo scambio della chiave deve avvenire tuttavia attraverso algoritmi a chiave asimmetrica, più complessi da implementare e da eseguire, ma che consentono questo tipo di scambio in modo sicuro.

Cifratura a chiave simmetrica

Esempi: AES, DES (Obsoleto), 3DES (Obsoleto)

Cifratura a chiave asimmetrica

La cifratura asimmetrica è un tipo di crittografia dove ad ogni attore coinvolto nella comunicazione è associata una coppia di chiavi:

Il meccanismo si basa sul fatto che, se con una delle due chiavi si cifra un messaggio, allora quest’ultimo sarà decifrato solo con l’altra.

Cifratura a chiave asimmetrica

Esempi: RSA, Diffie-Hellman, ElGamal

HASHING

Lo scopo dell’hashing è quello di assicurare l’integrità del dato, in modo da avere la garanzia che qualunque modifica effettuata al dato originale possa essere facilmente individuata.

Tecnicamente, l’hashing prende un input arbitrario e produce una stringa di lunghezza fissa avente i seguenti attributi:

L’hashing è tipicamente utilizzato insieme a meccanismi di autenticazione in modo da fornire prove concrete che il messaggio non sia stato modificato e, inoltre, che sia stato inviato dalla persona corretta (firma digitale).

Ciò avviene prendendo un input, effettuandone l’hash e quindi firmando l’hash con la chiave privata del mittente.

Quando il destinatario apre il messaggio, può validare la firma dell’hash tramite la chiave pubblica del mittente, quindi effettuare egli stesso l’hash della stringa in modo da confrontarlo con quello firmato dal mittente. Se corrispondono significa che il messaggio non è stato modificato ed è stato inviato dalla persona corretta.

Esempi: SHA-512, MD5 (Obsoleto)

Firma digitale
Verifica firma digitale

CONCLUSIONI

Encoding, encryption e hashing, pur avendo come caratteristica comune quella di trasformare i dati da una forma ad un’altra, devono essere utilizzati avendo bene in mente i loro differenti scopi.

Nello specifico:

QUANTO NE SAI SULLA SICUREZZA INFORMATICA?
Metti alla prova la tua conoscenza per non cadere nelle trappole dei cyber criminali!

Exit mobile version