Co dokładnie sprawia, że ​​SPECK i SIMON są szczególnie odpowiednie dla urządzeń IoT?


12

W przypadku niektórych urządzeń IoT dane, które należy przesłać, są poufne, dlatego wysyłanie ich w postaci zwykłego tekstu jest niedopuszczalne. Dlatego zastanawiałem się, jak szyfrować dane przesyłane między urządzeniami IoT. Artykuł, który niedawno przeczytałem na stronie RFID Journal, wspomina o opracowanych przez NSA szyfrach SPECK i SIMON jako szczególnie odpowiednich do aplikacji IoT:

NSA upublicznia szyfry [...] bezpłatnie, w ramach starań o zapewnienie bezpieczeństwa w Internecie rzeczy (IOT), w którym urządzenia współużytkują dane z innymi w Internecie.

[...]

Naukowcy z NSA opracowali SIMON i SPECK jako ulepszenie już używanych algorytmów szyfrów blokowych, które w większości przypadków zostały zaprojektowane dla komputerów stacjonarnych lub bardzo wyspecjalizowanych systemów

Dlaczego powinienem wybrać nowszy algorytm, taki jak SIMON lub SPECK dla mojego urządzenia IoT, szczególnie w aplikacjach, w których moc jest ograniczona (np. Tylko z baterii)? Jakie są zalety w porównaniu z innymi systemami szyfrowania, takimi jak AES ?

Odpowiedzi:


7

W „The Simon and Speck Block Ciphers on 8-bit AVR Microcontrollers” Beaulieu i in. zbadaj implementację SIMON i SPECK na 8-bitowym mikrokontrolerze niskiej jakości i porównaj wydajność z innymi szyframi. Atmel ATmega128 jest używany z 128 KB programowalnej pamięci flash, 4 KB SRAM i trzydziestoma dwoma 8-bitowymi rejestrami ogólnego przeznaczenia.

Porównano trzy implementacje szyfrowania:

  1. Minimalizacja pamięci RAM

    W tych implementacjach unika się użycia pamięci RAM do przechowywania okrągłych kluczy poprzez włączenie wstępnie rozszerzonych okrągłych kluczy w pamięci programu flash. Nie uwzględniono harmonogramu aktualizacji tego rozszerzonego klucza, dzięki czemu te implementacje są odpowiednie dla aplikacji, w których klucz jest statyczny.

  2. Wysoka wydajność / niska energia

    Implementacje te obejmują harmonogram kluczy i rozwijają wystarczającą liczbę kopii funkcji rundy w procedurze szyfrowania, aby osiągnąć przepustowość w granicach około 3% w pełni rozwiniętej implementacji. Klucz zapisany w pamięci flash służy do generowania okrągłych kluczy, które są następnie przechowywane w pamięci RAM.

  3. Minimalizacja błysku

    Kluczowy harmonogram znajduje się tutaj. Ograniczenia przestrzeni oznaczają, że możemy jedynie podać niepełny opis tych implementacji. Należy jednak zauważyć, że poprzednie dwa typy implementacji mają już bardzo skromne rozmiary kodu.


Do porównania różnych szyfrów służy miara wydajności - ranga . Ranga jest proporcjonalna do przepustowości podzielonej przez użycie pamięci.

SPECK zajmuje pierwsze miejsce w każdym obsługiwanym rozmiarze bloku i klucza. Oprócz 128-bitowego rozmiaru bloku, SIMON zajmuje drugie miejsce dla wszystkich rozmiarów bloków i kluczy.

...

Nic dziwnego, że AES-128 ma bardzo dobrą wydajność na tej platformie, chociaż dla tego samego rozmiaru bloku i klucza SPECK ma około dwukrotnie większą wydajność. Dla tego samego rozmiaru klucza, ale z 64-bitowym rozmiarem bloku, SIMON i SPECK osiągają odpowiednio dwa i cztery razy lepszą ogólną wydajność niż AES.

Porównując SPECK 128/128 z AES-128, autorzy stwierdzili, że ślad pamięci SPECK jest znacznie zmniejszony (460 bajtów vs. 970 bajtów), podczas gdy przepustowość jest tylko nieznacznie zmniejszona (171 cykli / bajt vs. 146 cykli / bajt). Zatem wydajność SPECK (w wybranej metryce) jest wyższa niż AES. Biorąc pod uwagę, że prędkość jest skorelowana ze zużyciem energii, autorzy stwierdzają, że „AES-128 może być lepszym wyborem w aplikacjach o kluczowym znaczeniu dla energii niż SPECK 128/128 na tej platformie”. Autorzy nie są jednak pewni, czy intensywne wykorzystanie dostępu do pamięci RAM (szybkie implementacje AES) jest bardziej energooszczędne niż implementacja SPECK oparta na rejestrze. W obu przypadkach można uzyskać znaczne zmniejszenie zużycia pamięci flash, co może mieć znaczenie w przypadku mikrokontrolerów niskiej klasy.

Jeśli aplikacja wymaga dużej prędkości, a użycie pamięci nie jest priorytetem, AES ma najszybszą implementację (przy użyciu 1912 bajtów pamięci flash, 432 bajtów pamięci RAM) spośród wszystkich szyfrów blokowych ze znanym nam 128-bitowym blokiem i kluczem koszt zaledwie 125 cykli / bajt. Najbliższym konkurentem AES jest SPECK 128/128, którego koszt wynosi 138 cykli / bajt dla w pełni rozwiniętej implementacji. Ponieważ prędkość jest skorelowana ze zużyciem energii, AES-128 może być lepszym wyborem w aplikacjach o kluczowym znaczeniu dla energii niż SPECK 128/128 na tej platformie. Jeśli jednak 128-bitowy blok nie jest wymagany, jak można się spodziewać w przypadku wielu aplikacji na 8-bitowym mikrokontrolerze, bardziej energooszczędnym rozwiązaniem (wykorzystującym 628 bajtów pamięci flash, 108 bajtów pamięci RAM) jest SPECK 64/128 z taki sam rozmiar klucza jak AES-128 i koszt szyfrowania wynoszący zaledwie 122 cykli / bajt,


Ponadto w tej rozmowie znajduje się postać Enigmy , kto mógłby się oprzeć szyfrowi, który odwołuje się do Enigmy ?

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.