Home
Accesso / Registrazione
 di 

Algoritmo di crittografia RollingCode

Crittografia Rolling Code

Riprendendo l’introduzione fatta nell’articolo “ Introduzione alla codifica RollingCode”, la parte interessante della codifica RollingCode è quella che si occupa di eseguire la crittografia e quindi la decrittografia, dell’informazione da inviare.

La codifica RollingCode è stata concepita per poter essere implementata su microcontrollori aventi risorse molto limitate, come può essere un comune PIC16F. Proprio per questo motivo l’algoritmo che implementa la crittografia non risulta particolarmente complicato e oneroso sotto un punto di vista computazionale, ma fornisce un grado di sicurezza abbastanza elevato per una trasmissione sicura. Questo tipo di algoritmo prevede che sorgente e destinazione siano a conoscenza di una chiave comune, solitamente a 64 bit, che permetta la crittografia e la decrittografia dell’informazione.

Volendo schematizzare la procedura di crittografia, questa può essere riassunta dal seguente schema:

 

 

 

Come si vede dalla figura precedente la crittografia può essere suddivisa in tre parti, le prime due per la generazione della chiave a partire da quella in possesso dalla sorgente e dal ricevitore e l’ultima che esegue la crittografia dei dati da inviare:

 

  1. questa fase si occupa di eseguire il “padding” del “Serial Number” (indicato con “S.N.” nella figura) con i due “SEED”, ovvero vengono accodati ai 28 bit del “Serial Number” altri 4 bit contenenti il valore “2”, nel caso del “SEED1”, e il valore “6”, nel caso del “SEED2”, in modo da ottenere due word distinte da 32 bit (i bit vengono accodati dal bit più significativo del “Serial Number”).

Volendo prendere come esempio un “Serial Number” di valore “0x5A5A5A5” (è stata utilizzata una notazione esadecimale per semplicità) avremo che nel primo caso atteniamo una word pari a  “0x25A5A5A5”, mentre nel secondo caso otteniamo una word di valore “0x65A5A5A5” (considerando una rappresentazione dei bit di tipo big-endian).

 

  1. in questa fase interviene la chiave a 64 bit in possesso sia dal trasmettitore sia dal ricevitore e che nello schema è chiamata con il nome “MANUFACTURER KEY”.

Questo procedimento utilizza il valore della “MANUFACTORY KEY” e i valori ricavati con il passo precedente, per darli in ingresso alla routine di decrittografia “KEELOQ DECRYPT”. Può sembrare un errore di battitura ma in realtà non lo è: in questa fase dell’algoritmo viene proprio utilizzata la routine di decrittografia che genererà altre due word da 32 bit (“CRIPTO KEY 1/2” e “CRIPTO KEY 2/2”) che unite insieme andranno a formare la chiave a 64 bit che verrà utilizzata nell’ultimo passaggio il quale eseguirà la crittografia vera e proprio dei dati.

Se per esempio si ha una “MANUFACTORY KEY” con il valore “0x0011223344556677” e supponiamo che, dopo aver dato in ingresso alla routine di decrittografia i dovuti valori, otteniamo i due valori “0x8899AABB” e “0xCCDDEEFF” (uno per la prima applicazione e l’altro per la seconda applicazione della “KEELOQ DECRYPT”), la chiave a 64 bit utilizzata nell’ultimo passaggio avrà il valore “0x8899AABBCCDDEEFF”.

Ritengo opportuno precisare che i valori utilizzati sono a scopo esemplificativo e quindi non hanno nessun riscontro con i risultati reali che si ottengono applicando l’algoritmo.

 

  1. come già accennato in precedenza, questo passaggio, nonché ultimo, è quello che esegue la crittografia vera e propria dei dati da inviare, ossia del “Sync Counter”, “Serial Number”, il “Button Status” e i bit di “OVR” opportunamente combinati (vedere l’articolo “Rolling Code – Introduzione 1 di 5”) e utilizzando la chiave ricavata con il passaggio precedente. Questi due valori verranno dati in ingresso alla routine di crittografia “KEELOQ ENCRYPT” (parte fondamentale di tutto il processo di crittografia e la quale verrà spiegata nel dettaglio negli articoli successivi) la quale fornirà una word a 32 contenente le informazioni da inviare opportunamente criptate (nella figura precedente questa word è indicata con il nome “HOPPING PART”).

 

Tutti questi passaggi sembrano complicati ma in realtà si riescono ad implementare con delle semplici operazioni sui bit, che possono essere eseguite con semplicità e in poco tempo anche da un semplice microcontrollore con scarse risorse.

 

Una volta terminato l’algoritmo di crittografia si procederà all’unione del valore criptato con la parte non criptata (vedere l’articolo “Introduzione alla codifica RollingCode), in modo da ottenere una word di 66 bit pronta ad essere inviata.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Francesco.Laezza

crittografia

salve essendo tempo fa ho letto su un altro blog per la crittografia questo mondo mi ha sempre un affascinato essendo che ho fatto rip. elettroniche
di svariate apparecchiature di natura elettronica nel 2001 incominciai a smanettare un po con i pic e allora imparai a capire un anche la crittografia pero adesso volevo sapere se in commercio ho sul sito potrei trovare dei manuali di crittorafia per il suo approfondimendo
grazie da francesco

ritratto di lucagiuliodori

Salve Framcesco.Laezza, si,

Salve Framcesco.Laezza,

si, in rete trovi parecchia documentazione a riguardo...anzi forse troppa!
Io ti consiglio di andare sul sito della Microchip, dove puoi trovare sia la teoria che accompagna la crittografia RollingCode, sia delle utili Application Note che ti fanno vedere come si può implementare questa tecnica su un PIC (ti consiglio quelle che usano l'assembler, sono più difficili ma così riesci a capire meglio come funziona questo algoritmo).

Saluti

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 20 utenti e 83 visitatori collegati.

Ultimi Commenti