Apa, tepatnya, yang membuat SPECK dan SIMON sangat cocok untuk perangkat IoT?

12

Untuk beberapa perangkat IoT, data yang perlu dikirim bersifat rahasia, dan karenanya mengirimkannya dalam teks biasa tidak dapat diterima. Oleh karena itu, saya telah mempertimbangkan cara mengenkripsi data yang dikirim antara perangkat IoT. Sebuah artikel yang baru-baru ini saya baca di situs web RFID Journal menyebutkan sandi SPECK dan SIMON yang dikembangkan NSA sangat cocok untuk aplikasi IoT:

NSA membuat sandi [...] tersedia untuk umum tanpa biaya, sebagai bagian dari upaya untuk memastikan keamanan di Internet of Things (IOT), di mana perangkat berbagi data dengan orang lain di Internet.

[...]

Peneliti NSA mengembangkan SIMON dan SPECK sebagai peningkatan pada algoritma cipher blok yang sudah digunakan yang, dalam banyak kasus, dirancang untuk komputer desktop atau sistem yang sangat khusus.

Mengapa saya harus memilih algoritma yang lebih baru seperti SIMON atau SPECK untuk perangkat IOT saya, terutama untuk aplikasi di mana daya terbatas (misalnya daya baterai saja)? Apa manfaatnya dibandingkan dengan sistem enkripsi lain seperti AES ?

Aurora0001
sumber

Jawaban:

7

Dalam "The Simon and Speck Block Ciphers pada AVR 8-bit Microcontrollers" Beaulieu et al. menyelidiki implementasi SIMON dan SPECK pada mikrokontroler 8-bit low-end dan membandingkan kinerja dengan sandi lainnya. Atmel ATmega128 digunakan dengan 128 Kbytes memori flash yang dapat diprogram, 4 Kbytes SRAM, dan tiga puluh dua register tujuan umum 8-bit.

Tiga implementasi enkripsi dibandingkan:

  1. Meminimalkan RAM

    Implementasi ini menghindari penggunaan RAM untuk menyimpan kunci bundar dengan memasukkan kunci putaran pra-diperluas dalam memori program flash. Tidak ada jadwal kunci yang disertakan untuk memperbarui kunci yang diperluas ini, menjadikan implementasi ini cocok untuk aplikasi yang kuncinya statis.

  2. Throughput tinggi / energi rendah

    Implementasi ini termasuk jadwal kunci dan membuka gulungan yang cukup dari fungsi bundar dalam rutin enkripsi untuk mencapai throughput dalam waktu sekitar 3% dari implementasi yang sepenuhnya tidak terkontrol. Kunci, disimpan dalam flash, digunakan untuk menghasilkan tombol bulat yang selanjutnya disimpan dalam RAM.

  3. Meminimalkan flash

    Jadwal kunci termasuk di sini. Keterbatasan ruang berarti kami hanya dapat memberikan deskripsi yang tidak lengkap tentang implementasi ini. Namun, perlu dicatat bahwa dua jenis implementasi sebelumnya sudah memiliki ukuran kode yang sangat sederhana.


Untuk membandingkan berbagai cipher, digunakan ukuran efisiensi kinerja - peringkat -. Peringkat tersebut sebanding dengan throughput dibagi dengan penggunaan memori.

SPECK berada di peringkat teratas untuk setiap blok dan ukuran kunci yang didukungnya. Kecuali untuk ukuran blok 128-bit, SIMON berada di peringkat kedua untuk semua ukuran blok dan kunci.

...

Tidak mengherankan, AES-128 memiliki kinerja yang sangat baik pada platform ini, meskipun untuk ukuran blok dan kunci yang sama, SPECK memiliki kinerja sekitar dua kali lipat. Untuk ukuran kunci yang sama tetapi dengan ukuran blok 64-bit, SIMON dan SPECK mencapai kinerja keseluruhan dua dan empat kali lebih baik, masing-masing, daripada AES.

Membandingkan SPECK 128/128 dengan AES-128 penulis menemukan bahwa jejak memori SPECK berkurang secara signifikan (460 byte vs 970 byte) sementara throughput hanya sedikit menurun (171 siklus / byte vs 146 siklus / byte). Dengan demikian kinerja SPECK (dalam metrik yang dipilih) lebih tinggi dari AES. Mempertimbangkan bahwa kecepatan berkorelasi dengan konsumsi energi, penulis menyimpulkan bahwa "AES-128 mungkin merupakan pilihan yang lebih baik dalam aplikasi energi kritis daripada SPECK 128/128 pada platform ini." Namun penulis tidak yakin apakah penggunaan berat akses RAM (implementasi AES kecepatan tinggi) lebih hemat energi daripada implementasi SPECK berbasis register. Dalam kedua kasus, pengurangan yang signifikan dalam penggunaan memori flash dapat dicapai yang mungkin relevan pada mikrokontroler low-end.

Jika sebuah aplikasi membutuhkan kecepatan tinggi, dan penggunaan memori bukan prioritas, AES memiliki implementasi tercepat (menggunakan 1912 byte flash, 432 byte RAM) di antara semua blok cipher dengan blok 128-bit dan kunci yang kami ketahui, dengan biaya hanya 125 siklus / byte. Pesaing AES terdekat adalah SPECK 128/128, dengan biaya 138 siklus / byte untuk implementasi yang sepenuhnya terbuka. Karena kecepatan berkorelasi dengan konsumsi energi, AES-128 mungkin merupakan pilihan yang lebih baik dalam aplikasi energi kritis daripada SPECK 128/128 pada platform ini. Namun, jika blok 128-bit tidak diperlukan, seperti yang mungkin kita harapkan untuk banyak aplikasi pada mikrokontroler 8-bit, maka solusi yang lebih efisien energi (menggunakan 628 byte flash, 108 byte RAM) adalah SPECK 64/128 dengan ukuran kunci yang sama dengan AES-128 dan biaya enkripsi hanya 122 siklus / byte,


Selain itu, pembicaraan ini memiliki tokoh Enigma di dalamnya, siapa yang bisa menolak sandi yang merujuk Enigma ?

Ghanima
sumber