Cosa rende esattamente SPECK e SIMON particolarmente adatti ai dispositivi IoT?


12

Per alcuni dispositivi IoT, i dati che devono essere inviati sono confidenziali, quindi l'invio in testo normale non è accettabile. Pertanto, ho considerato come crittografare i dati inviati tra i dispositivi IoT. Un articolo che ho letto di recente sul sito web del RFID Journal menziona i codici SPECK e SIMON sviluppati dalla NSA come particolarmente adatti alle applicazioni IoT:

L'NSA sta rendendo le cifre [...] pubblicamente disponibili gratuitamente, nell'ambito di uno sforzo per garantire la sicurezza nell'Internet of Things (IOT), in cui i dispositivi condividono dati con altri su Internet.

[...]

I ricercatori dell'NSA hanno sviluppato SIMON e SPECK come un miglioramento degli algoritmi di cifratura a blocchi già in uso che erano, nella maggior parte dei casi, progettati per computer desktop o sistemi molto specializzati

Perché dovrei selezionare un algoritmo più recente come SIMON o SPECK per il mio dispositivo IoT, in particolare per le applicazioni in cui l'alimentazione è limitata (ad esempio, solo la batteria)? Quali sono i vantaggi rispetto ad altri sistemi di crittografia come AES ?

Risposte:


7

In "The Simon e Speck Block Ciphers su microcontroller AVR a 8 bit" Beaulieu et al. esaminare l'implementazione di SIMON e SPECK su un microcontrollore a 8 bit di fascia bassa e confrontare le prestazioni con altri cypher. Un Atmel ATmega128 viene utilizzato con 128 Kbyte di memoria flash programmabile, 4 Kbyte di SRAM e trentadue registri di uso generale a 8 bit.

Vengono confrontate tre implementazioni di crittografia:

  1. RAM-minimizzando

    Queste implementazioni evitano l'uso della RAM per memorizzare chiavi rotonde includendo le chiavi rotonde pre-espanse nella memoria del programma flash. Non è inclusa alcuna pianificazione delle chiavi per l'aggiornamento di questa chiave espansa, rendendo queste implementazioni adatte per le applicazioni in cui la chiave è statica.

  2. High-throughput / a basso consumo energetico

    Queste implementazioni includono la pianificazione delle chiavi e srotolano sufficienti copie della funzione rotonda nella routine di crittografia per raggiungere un throughput entro circa il 3% di un'implementazione completamente srotolata. Il tasto, memorizzato in flash, viene utilizzato per generare i tasti rotondi che vengono successivamente memorizzati nella RAM.

  3. Flash-minimizzazione

    Il programma chiave è incluso qui. Le limitazioni di spazio significano che possiamo fornire solo una descrizione incompleta di queste implementazioni. Tuttavia, va notato che i due precedenti tipi di implementazioni hanno già dimensioni di codice molto modeste.


Per confrontare diversi cypher viene utilizzata una misura di efficienza delle prestazioni - rango -. Il rango è proporzionale alla velocità effettiva divisa per l'utilizzo della memoria.

SPECK si posiziona al primo posto per ogni blocco e dimensione chiave supportata. Ad eccezione della dimensione del blocco a 128 bit, SIMON è al secondo posto per tutte le dimensioni di blocco e chiave.

...

Non sorprende che AES-128 abbia ottime prestazioni su questa piattaforma, sebbene per lo stesso blocco e le stesse dimensioni della chiave, SPECK abbia circa il doppio delle prestazioni. Per le stesse dimensioni della chiave ma con una dimensione del blocco a 64 bit, SIMON e SPECK ottengono prestazioni complessive rispettivamente due e quattro volte migliori rispetto ad AES.

Confrontando SPECK 128/128 con AES-128 gli autori ritengono che il footprint di memoria di SPECK sia significativamente ridotto (460 byte contro 970 byte) mentre il throughput è solo leggermente ridotto (171 cicli / byte contro 146 cicli / byte). Pertanto le prestazioni di SPECK (nella metrica scelta) sono superiori a AES. Considerando che la velocità è correlata al consumo di energia, gli autori concludono che "AES-128 potrebbe essere una scelta migliore in applicazioni critiche dal punto di vista energetico rispetto a SPECK 128/128 su questa piattaforma". Tuttavia, gli autori non sono sicuri se un uso intenso dell'accesso alla RAM (implementazioni AES ad alta velocità) sia più efficiente dal punto di vista energetico rispetto a un'implementazione basata su registro di SPECK. In entrambi i casi, è possibile ottenere una riduzione significativa dell'utilizzo della memoria flash che potrebbe essere rilevante per i microcontrollori di fascia bassa.

Se un'applicazione richiede alta velocità e l'utilizzo della memoria non è una priorità, AES ha l'implementazione più rapida (utilizzando 1912 byte di flash, 432 byte di RAM) tra tutti i cifrari con un blocco a 128 bit e una chiave di cui siamo a conoscenza, con un costo di soli 125 cicli / byte. Il concorrente AES più vicino è SPECK 128/128, con un costo di 138 cicli / byte per un'implementazione completamente srotolata. Poiché la velocità è correlata al consumo di energia, AES-128 potrebbe essere una scelta migliore in applicazioni critiche dal punto di vista energetico rispetto a SPECK 128/128 su questa piattaforma. Tuttavia, se non è necessario un blocco a 128 bit, come ci si potrebbe aspettare per molte applicazioni su un microcontrollore a 8 bit, una soluzione più efficiente dal punto di vista energetico (utilizzando 628 byte di flash, 108 byte di RAM) è SPECK 64/128 con stessa dimensione della chiave di AES-128 e un costo di crittografia di soli 122 cicli / byte,


Inoltre, in questo discorso c'è una figura di Enigma , che potrebbe resistere a un codice che fa riferimento a Enigma ?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.