Oggi parliamo di crittografia a chiave privata e di come utilizzarla in Php.
Prima di tutto è importante capire cosa sia la crittografia a chiave privata, chiamata anche crittografia simmetrica, e le sue differenze con quella a chiave pubblica o asimmetrica.
Nella crittogravia a chiave privata viene utilizzata un’unica chiave sia per codificare, sia per decodificare i messaggi, quindi la segretezza di questa chiave risulta fondamentale. Questo presuppone che ci sia un canale sicuro con il quale i due interlocutori si scambiano questa chiave segreta.
Questo problema viene invece risolto dalla crittografica a chiave pubblica, nel quale ogni personaggio in gioco ha due chiavi, una pubblica e una privata. Chiunque voglia mandare a me un messaggio crittato deve crittare il messaggio con la mia chiave pubblica, e solo io lo posso decrittare grazie la mia chiave privata, che rimane sempre in mano mia.
Per maggiori informazioni vi rimando a Wikipedia.
Come anticipato prima in quest’articolo ci occuperemo solo della crittografia a chiave privata, e in particolare dell’algoritmo AES (Advanced Encryption Standard) con chiave a 256 bit, algoritmo utilizzato dal governo degli stati uniti d’america per la classificazione di documenti come TOP SECRET.
Nel seguente esempio in Php andremo prima a crittare, poi a decrittare, un brano della divina commedia. E’ importante notare che nella decrittazione, oltre ovviamente alla chiave segreta, c’è bisogno dell’ Initialization vector, non è importante hai fini della sicurezza che questo rimanga segreto, però è fondamentale per la decrittazione, quindi quano salvate nel database del testo crittato, salvate anche l’Initialization vector utilizzato per la crittazione, altrimenti non riuscirete più a decrittare il testo.
Continua »