O que exatamente torna o SPECK e o SIMON particularmente adequado para dispositivos IoT?


12

Para alguns dispositivos de IoT, os dados que precisam ser enviados são confidenciais e, portanto, o envio em texto sem formatação não é aceitável. Portanto, estive pensando em como criptografar dados enviados entre dispositivos IoT. Um artigo que li recentemente no site do RFID Journal menciona as cifras SPECK e SIMON desenvolvidas pela NSA como particularmente adequadas para aplicativos de IoT:

A NSA está disponibilizando as cifras [...] ao público gratuitamente, como parte de um esforço para garantir a segurança na Internet das Coisas (IOT), na qual os dispositivos compartilham dados com outras pessoas na Internet.

[...]

Os pesquisadores da NSA desenvolveram o SIMON e o SPECK como uma melhoria nos algoritmos de cifra de bloco já em uso que foram, na maioria dos casos, projetados para computadores desktop ou sistemas muito especializados

Por que devo selecionar um algoritmo mais recente, como SIMON ou SPECK, para o meu dispositivo IoT, especialmente para aplicativos onde a energia é limitada (por exemplo, apenas a energia da bateria)? Quais são os benefícios em comparação com outros sistemas de criptografia, como o AES ?

Respostas:


7

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:

  1. 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.

  2. 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.

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.