crypto

Più volte abbiamo discusso sul possibile accesso “non consentito” alla memoria user di un RFId: quando la lettura non è protetta da una password, ogni reader può accedere alle informazioni contenute in esso in virtù dei canoni di standardizzazione.

Una operazione possibile a tutela delle informazioni è quella di rendere incomprensibili i dati scritti all’interno di un tag: questa operazione è detta crittografia delle informazioni. L’operazione di data encryption consiste nel “rimescolare” tramite algoritmi matematici ed una “chiave”, ovvero una sorta di password di una certa lunghezza, le informazioni in chiaro ottenendo come risultato il codice crittografato non comprensibile.
L’operazione inversa, ovvero la de-crittografia del codice, viene effettuata applicando un algoritmo inverso a quello usato per la fase di crittografia e, di importanza basilare, la stessa medesima chiave usata in precedenza.
Molti e diffusi sono gli algoritmi di crittografia conosciuti: i più famosi sono indiscutibilmente DES, 3DES e AES, la cui tabella che segue riporta una basilare comparazione in funzione della lunghezza e/o dal numero di chiavi.
Nome
Descrizione
Chiave
DES
Data Encryption Standard
56 bit + 8 bit di controllo
3DES
Triple DES
3 chiavi da 64 bit
AES
Advanced Encryption Standard
128, 196 o 256 bit
Maggiore è il numero di bit della chiave (o maggiore è il numero delle chiavi) e maggiore è la difficoltà nell’attaccare l’algoritmo. Ci sono parametri numerici che descrivono la resistenza di un algoritmo di crittografia all’attacco (ovvero alla decodifica dell’informazione) e che, quindi, rappresentano la bontà dell’algoritmo stesso.
Proteggere le informazioni è basilare: una password di accesso da 32 bit ed un algoritmo di crittografia dei dati garantisce l’inviolabilità della user memory: “mescolare” questi due elementi permette poi di suddividere l’area di memoria in più parti distinte caratterizzate da livelli di accesso diversi. Nel prossimo post presentiamo un esempio di suddivisione della memoria e codifica delle informazioni che può essere semplicemente applicato a qualsiasi necessità di codifica.