Em "The Simon and Speck Block Ciphers on AVR 8-bit Microcontrollers" Beaulieu et al. investigue a implementação do SIMON e SPECK em um microcontrolador low-end de 8 bits e compare o desempenho com outros códigos. Um Atmel ATmega128 é usado com 128 Kbytes de memória flash programável, 4 Kbytes de SRAM e trinta e dois registradores de uso geral de 8 bits.
Três implementações de criptografia são comparadas:
- Minimização de RAM
Essas implementações evitam o uso da RAM para armazenar chaves redondas, incluindo as chaves redondas pré-expandidas na memória do programa flash. Nenhuma programação de chave está incluída para atualizar essa chave expandida, tornando essas implementações adequadas para aplicativos em que a chave é estática.
- Alto rendimento / baixo consumo de energia
Essas implementações incluem a programação principal e desenrolam cópias suficientes da função round na rotina de criptografia para obter uma taxa de transferência dentro de cerca de 3% de uma implementação totalmente desenrolada. A chave, armazenada em flash, é usada para gerar as chaves redondas que são armazenadas posteriormente na RAM.
- Minimização de flash
A programação principal está incluída aqui. Limitações de espaço significam que só podemos fornecer uma descrição incompleta dessas implementações. No entanto, deve-se notar que os dois tipos anteriores de implementações já possuem tamanhos de código muito modestos.
Para comparar diferentes códigos, é utilizada uma medida de eficiência de desempenho - classificação -. A classificação é proporcional à taxa de transferência dividida pelo uso de memória.
O SPECK ocupa o primeiro lugar em todos os blocos e tamanhos de chave que ele suporta. Exceto pelo tamanho do bloco de 128 bits, o SIMON ocupa o segundo lugar em todos os tamanhos de bloco e chave.
...
Não é de surpreender que o AES-128 tenha um desempenho muito bom nessa plataforma, embora para o mesmo tamanho de bloco e chave, o SPECK tenha aproximadamente o dobro do desempenho. Para o mesmo tamanho de chave, mas com um tamanho de bloco de 64 bits, o SIMON e o SPECK alcançam um desempenho geral duas e quatro vezes melhor, respectivamente, que o AES.
Comparando o SPECK 128/128 com o AES-128, os autores descobriram que o espaço de memória do SPECK é reduzido significativamente (460 bytes vs. 970 bytes), enquanto a taxa de transferência é levemente reduzida (171 ciclos / byte vs. 146 ciclos / byte). Portanto, o desempenho do SPECK (na métrica escolhida) é superior ao AES. Considerando que a velocidade está correlacionada com o consumo de energia, os autores concluem que "o AES-128 pode ser uma escolha melhor em aplicações críticas de energia do que o SPECK 128/128 nesta plataforma". Os autores, no entanto, não têm certeza se o uso intenso do acesso à RAM (implementações de alta velocidade do AES) é mais eficiente em termos de energia do que uma implementação do SPECK baseada em registro. Em ambos os casos, pode ser alcançada uma redução significativa no uso da memória flash, o que pode ser relevante nos microcontroladores de gama baixa.
Se um aplicativo exigir alta velocidade e o uso da memória não for uma prioridade, o AES terá a implementação mais rápida (usando 1912 bytes de flash, 432 bytes de RAM) entre todas as cifras de bloco com um bloco e chave de 128 bits que estamos cientes, com um custo de apenas 125 ciclos / byte. O concorrente mais próximo da AES é o SPECK 128/128, com um custo de 138 ciclos / byte para uma implementação totalmente desenrolada. Como a velocidade está correlacionada com o consumo de energia, o AES-128 pode ser uma escolha melhor em aplicações críticas de energia do que o SPECK 128/128 nesta plataforma. No entanto, se um bloco de 128 bits não for necessário, como seria de esperar para muitas aplicações em um microcontrolador de 8 bits, uma solução mais eficiente em termos de energia (usando 628 bytes de flash, 108 bytes de RAM) é SPECK 64/128 com o mesmo tamanho de chave do AES-128 e um custo de criptografia de apenas 122 ciclos / byte,
Além disso, essa palestra tem uma figura do Enigma , quem poderia resistir a um código que faz referência ao Enigma ?