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:
- 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.
- 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.
- 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 ?