Fakultas Ilmu Komputer
6542
Implementasi Algoritme Grain V1 Pada Protokol MQTT Menggunakan
Raspberry Pi Untuk Mengamankan Data
IoT
Iskar Maulana1, Ari Kusyanti2, Adhitya Bhawiyuga3
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1imaulana@student.ub.ac.id, 2ari.kusyanti@ub.ac.id, 3bhawiyuga@ub.ac.id
Abstrak
Internet of Things (IoT) menjadi salah satu teknologi masa kini yang sering digunakan karena IoT dapat menghubungkan perangkat dengan perangkat lainnya. Pada umumnya, protokol yang digunakan adalah protokol MQTT. Ketika perkembangan IoT semakin pesat, semakin banyak pula data yang dilewatkan pada protokol tersebut. Apalagi banyak penggunaan IoT yang memanfaatkan wireless sebagai media pertukaran data. Sedangkan media wireless rentan terhadap penyadapan. Ancaman data dapat terlihat pun tidak dapat dihindari sehingga perlu adanya suatu cara untuk mengamankan data. Salah satu teknik untuk mengamankan data yakni menggunakan algoritme Grain v1. Algoritme ini merupakan suatu algoritme dalam kriptografi yang digunakan untuk mengenkripsi dan mendekripsi pesan. Penulis menggunakan Raspberry Pi sebagai publisher dan subscriber serta Virtual Machine (VM) sebagai
broker. Algoritme Grain v1 diletakkan pada setiap client (publisher dan subscriber) dengan tujuan ketika payload ditransmisikan melewati protokol MQTT, data yang terdapat dalam payload tersebut dalam keadaan terenkripsi. Begitu juga sebaliknya, payload didekripsi setelah diterima oleh subscriber. Terdapat 5 pengujian untuk memastikan sistem bekerja dengan optimal meliputi pengujian validasi test vector, fungsional sistem, pengujian validasi hasil enkripsi dan dekripsi, sniffing, dan kinerja waktu. Dengan hasil dari setiap pengujian validasi adalah valid, hasil dari pengujian sniffing data tidak dapat terbaca dengan jelas, kemudian hasil kinerja rata-rata waktu pemrosesan keystream 0,01246 second, enkripsi 0,01627 second, dan dekripsi 0,02238 second.
Kata kunci: kriptografi, algoritme Grain v1, Internet of Things, Raspberry Pi, MQTT
Abstract
Internet of Things (IoT) is one of the most commonly used technologies today because IoT can connect various devices. In general, the protocol used in IoT is the MQTT protocol that utilize wireless as a medium for data exchange. However, wireless media is vulnerable to wiretapping. Data threats become an unavoidable so there is a need secure the data. One technique for securing data is Grain v1 algorithm. This algorithm is an algorithm in cryptography that is used to encrypt and decrypt messages. The author uses Raspberry Pi as a publisher and subscriber as well as a Virtual Machine (VM) as a broker. The Grain v1 algorithm is placed on each client (publisher and subscriber) so that when the payload is transmitted over the MQTT protocol, the data contained in the payload is encrypted. Likewise, the payload is decrypted after it is received by the subscriber. There are 5 tests to ensure that the system works well including test vector validation testing, system functional, validation testing, encryption and decryption results, sniffing, and time performance. The result shows that test vector validation, encryption and decryption process validation are valid. Functional test shows that system can run well. Based on sniffing test, the payload cannot be read by unauthorized party. Finally, the execution time of processing keystream, encryption and decryption take 0.01246 second, 0.01627 second, and 0.02238 second.
1. PENDAHULUAN
Internet of Things (IoT) merupakan salah satu teknologi paling mutakhir yang ada di dunia saat ini. IoT merupakan sebuah konsep yang merujuk kepada suatu objek yang memiliki kemampuan untuk mengirimkan data dari perangkat ke perangkat lainnya tanpa harus ada campur tangan manusia. Komponen IoT terdiri dari sensor, software, perangkat (Raspberry Pi, Arduino), dan jaringan internet. Semua komponen tersebut saling terhubung untuk berkomunikasi dan melakukan pertukaran data (Xia, et al., 2012).
Salah satu protokol yang sering dipakai dalam komunikasi antar perangkat IoT adalah protokol MQTT. Pola komunikasi pertukaran pesan pada protokol ini menggunakan
publish/subscribe. Terdapat 3 aktor utama yang bekerja dalam metode ini, yaitu publisher,
subscriber dan broker. Pengirim data pada metode publish/subsribe ini disebut publisher
sedangkan penerima data disebut subscriber.
Lalu broker berfungsi sebagai jembatan penghubung antara keduanya. Protokol ini tepat digunakan dalam IoT karena bersifat
lightweight, terbuka, sederhana, dan dapat digunakan dalam banyak situasi termasuk lingkungan yang terbatas sumber daya (Rochman, et al., 2017).
Protokol MQTT secara default tidak memiliki keamanan dan IoT pada umumnya menggunakan media wireless sebagai media pertukaran data. Sedangkan penggunaan
wireless sangat rentan terhadap pencurian dan penyadapan. Data yang ditransmisikan melalui protokol MQTT juga tidak lepas dari resiko tersebut. Oleh karena itu, perlu suatu cara untuk menjaga data agar aman dan tidak disadap oleh pihak yang tidak berwenang (Elkhodr, et al., 2016).
Salah satu upaya untuk mengamankan data yakni melalui kriptografi. Kriptografi merupakan teknik penyandian untuk menjaga keamanan data. (Chandra, 2016). Terdapat beberapa algoritme kriptografi pada saat ini salah satunya algoritme Grain. Algoritme ini merupakan algoritme stream cipher yang di desain untuk lingkungan hardware dengan memori yang terbatas, daya yang rendah dan juga memiliki komputasi yang cepat. Dengan beberapa kelebihan tersebut algoritme ini cocok digunakan dalam skenario IoT (Hell, et al., 2006).
Ada beberapa penelitian mengenai yang berkaitan dengan penelitian yang akan dilakukan
oleh penulis. Penelitian berjudul “Grain – A Stream Cipher for Constrain Environment”
menjelaskan bahwa algoritme Grain memiliki desain yang menargetkan hardware, konsumsi daya, memori yang sangat terbatas, dan komplesitasnya lebih baik dibandingkan E0 dan A5/1 (Hell, et al., 2006). Penelitian selanjutnya
berjudul “Sistem Kendali Berbasis Mikrokontroler Menggunakan Protokol MQTT pada Smartphone” yang dilakukan (Rochman, et
al., 2017) menjelaskan bahwa protocol MQTT bersifat open, lightweight, memiliki konsumsi daya rendah dan mudah digunakan untuk keperluan IoT. Penelitian ini menyimpulkan bahwa banyaknya data yang dirimkan melalui protokol MQTT mempengaruhi nilai delta time -nya, tetapi pada sisi keamanannya belum ada.
Penelitian berjudul “Implementasi Algoritme Grain v1 dan 128 bit Pada Arduino Mega 2560”
menjelaskan bahwa algoritme Grain v1 dapat diterapkan pada hardware, tetapi pada penelitian tersebut hardware digunakan untuk menghasilkan keystream saja (Nurrohmah, et al., 2018).
Dari berbagai permasalahan dan bukti yang telah diuraikan sebelumnya, maka penulis melakukan penelitian yang membahas tentang
“Implementasi Algoritme Grain v1 Pada
Protokol MQTT Menggunakan Raspberry Pi Untuk Mengamankan Data IoT”. Sistem ini
mempunyai 3 komponen yang bekerja,
publisher, subscriber, dan broker. Pada setiap
client (publisher dan subscriber) diletakkan algoritme Grain v1. Ketika subscriber
berlangganan topik, publisher akan mengirimkan data yang sesuai dengan topik yang diinginkan. Sebelum data dikirimkan, terlebih dahulu data dienkripsi dengan menggunakan keystream yang dihasilkan oleh algoritme Grain v1. Setelah data dienkripsi kemudian data tersebut dibawa menuju broker. Kemudian broker akan meneruskan data yang telah terenkripsi menuju subscriber. Pada saat data telah diterima oleh subscriber, data tersebut didekripsi terlebih dahulu dengan keystream
yang sama dari proses algoritme Grain v1 sebelum ditampilkan kepada pengguna.
2. DASAR TEORI
2.1. Internet of Things
Secara umum, Internet of Things (IoT)
sehari-hari yang sering dilengkapi dengann
kecerdasan. IoT melakukan peningkatan dengan adanya internet dengan mengintegrasikann
setiap benda/objek untuk berinteraksi melalui
embedded system, yang mengarahh ke pendistribusian data dengan cara berkomunikasi dengan manusia serta perangkat-perangkat lainnya (Xia, et al., 2012).
Arsitektur IoT dibagi menjadi 3 layer yaitu,
preception layer, network layer, dan application layer. Namun pada beberapa research terdapat 1
layer tambahan yaitu support layer. Layer
tambahan ini digunakan untuk komputasi awan, komputasi cerdas, dan komputasi fog yang posisinya terletak diantara network layer dan
application layer (Bilal, 2017). Pada application layer terdapat beberapa protokol komunikasi yang biasanya digunakan, contohnya
Constrained Application Protocol (CoAP), Representational State Transfer (REST), Advanced Message Queueing Protocol (AMQP)
dan Message Queue Telemetry Transfer Protocol (MQTT).
2.2. MQTT
Message Queue Telemetry Transport
(MQTT) adalah suatu protokol komunikasii
yang bersifat terbuka, ringan, simple, cocok untuk komunikasi real-time dengan bandwidth
rendah, dan didesain agar mudah diimplementasikan. Karakteristik seperti itu membuatnya cocok untuk digunakann dalam berbagai situasi termasuk lingkungann
komunikasi Machine to Machine (M2M) dan
Internet of Things (IoT) (Rochman, et al., 2017). Protokol MQTT ini berkonsep
publish/subscribe, yang merupakan sebuah metode pertukaran pesan secara indirect communication (tidak langsung).
Pada metode indirect communication publish/subscribe terdapat 3 aktor utama terjadinya pertukaran pesan, yaitu publisher, broker, dan subscriber. Publisher sebagai pengirim informasi dengan topik tertentu kee
broker. Subscriber berlangganan iinformasi dengan topik yang tertentu pula ke broker. Tugas
broker meneruskan informasi yang didapatnya dari publisher menuju subscriber sesuai dengan topik yang diminati. Beberapa kelebihan dari metode indirect ini yakni ketiganya tidak harus saling mengetahui keberadaan dan identitas masing-masing, publisher dan subscriber tidak harus aktif dalam waktu yang bersamaan, dan pengiriman data pada salah satu node tidak akan
mengganggu pengiriman data pada node lainnya (Rochman, et al., 2017).
Gambar 1. Skema Publish/Subscribe
Mosquitto broker merupakan satu dari beberapa broker yang ada di pasaran saat ini.
Mosquitto merupakan broker yang bersifat open source yang menerapkan protokol MQTT.
Moosquitto cocok digunakan pada perangkat IoT
karena ringan dan mempunyai proses yang rendah. Sesuai dengan namanya, Mosquitto
berperan sebagai broker. Broker bertugas untuk menyediakan alur komunikasi antara publisher
dengan subscriber (Eclipse, 2013).
Paho MQTT ialah sebuah proyek open source yang dibangun dan dikembangkan oleh
Eclipse.Paho MQTT menyediakan library untuk
MQTT client dan tersedia dalam berbagai bahasa, termasuk Python, C#, dan Java. Paho MQTT juga mendukung penggunaan level QoS
untuk pengiriman dan penerimaan pesan (Eclipse, 2013).
2.3. Algoritme Grain v1
Algoritme Grain v1 merupakan algoritme enkripsi yang dipersiapkan untuk menggantikan algoritme A5/1. Algoritme ini tergolong baru yang terpilih pada project eSTREAM (Babbage, et al., 2008). Memiliki daya yang sangat rendah, kecepatan yang sangat tinggi dengan memori serta termasuk lightweight crypto, yaitu algoritma enkripsi yang ringan. Stream cipher
ini didasarkan pada 2 shift register, satu dengan
linear feedback (LFSR) dan satu nonlinear feedback (NFSR).
Gambar 2. Grain Cipher
Gambar 2 adalah bagian uutama dari Grain yang terdirii dari sebuah LFSR, NFSR, dan filter
(h(x)). Pada Grain v1 menggunakann key 80 bit,
si,si+1,…,si+79 dan isi NFSR dinotasikan dengan
bi,bi+1,…:,bi+79.
Fungsi feedback dari LFSR f(x) yang memiliki fungsi polynomial berderajat 80. Didefinisikan sebagai:
Untuk menghapuss segala kkeambiguan yang mungkin tterjadi, Grain juga menyediakan fungsiiupdate pada LFSR sebagai berikut:
Lalu feedback polynomial dari NFSR dinotasikan sebagai g(x):
Sama seperti LFSR, NFSR juga mempunyai fungsi update yang dinotasikan dengan
𝑏𝑖 sebagai berikut:
Isi dari 2 register (NFSR dan LFSR) mewakili keadaan chiper. Dari keadaan ini, 5 variabell diambil sebagai input ke fungsi filter h(x). Fungsi h(x) didefinisikan sebagaii berikut:
Pengubah 𝑥0, 𝑥1, 𝑥2, 𝑥3, dan 𝑥44 sesuai dengan 𝑠𝑖+3, 𝑠𝑖+25, 𝑠𝑖+46, 𝑠𝑖+64, dan 𝑏𝑖+63. Fungsi filterr ini kemudian di-xor dengann bit 𝑏𝑖 dari NFSR untuk menghasilkan sebuah
keystream. 2.4. Raspberry Pi
Raspberry Pi atau sering disebut dengan Raspi, merupakan sebuah minikomputer yang dapat menjalankan program-program salah satunya IoT. System operasi yang digunakan pun dapat bermacam-macam, mulai dari Noobs, Raspbian, Ubuntu Mate, dan masih banyak
lainnya (Raspberrry, 2005). Raspberry Pi juga memiliki beberapa tipe, dari Raspberry Pi 3 Model B+, Raspberry Pi 3 Model B, Raspberry Pi 2 Model B, Raspberry Pi 1 Model B+, Raspberry Pi 1 Model A+, Raspberry Pi Zero W,
dan Raspberry Pi Zero. Berikut gambar dan spesifikasi dari Raspberry Pi seperti pada Gambar 3 dan Tabel 1:
Gambar 3. Raspberry Pi 2
(Sumber:
https://www.raspberrypi.org/products/raspberry-pi-2-model-b/)
Tabel 1. Spesifikasi Raspberry PI 2
System on Chip (SoC) Broadcom BCM2836
CPU 900 MHz Quad-core ARM
Cortex-A7
RAM 1GB LPDDR2 (900 Mhz)
Networking 10/100 Mbps Ethernet
Storage microSD
GPIO 40-pin extended GPIO
Ports HDMI, 2.5mm analogue audio-video jack, 4x USB 2.0, Ethernet, Camera Serial Interface (CSI), Display Serial Interface (DSI)
3. ANALISIS KEBUTUHAN
3. 1. Kebutuhan Fungsional
Pada penelitian ini, ada beberapa kebutuhan fungsional, yakni:
1. Sistem dapat menghasilkan keystream
sebanyak 80 bit
2. Sistem dapat memasukkan data dengan maksimal nilai binary-nya 80 bit
3. Sistem dapat mengenkripsi data yang akan dikirimkan
4. Sistem dapat mendekripsii ciphertext
yang diterimaa oleh subscriber
5. Sistem dapat mem-publishh payload
sesuai dengan topikk yang diminta oleh
6. Sistem dapat menampilkann payload
sesuaii dengan topik yang di subscribe
3.2. Kebutuhan Perangkat Keras
Penelitian ini menggunakan beberapa perangkat keras, yakni:
1. Laptop, dengan spesifikasi sebagai berikut:
- Model : Lenovo S410p
- OS : Windows 10 Pro (64 bit)
- Processor : Intel (R) Core (TM) i5-4200U
- RAM : 8 GB
- Jumlah : 1
- Fungsi : Untuk menjalankan
virtual machine
2. Raspberry PI 2 + module wifi
3.3. Kebutuhan Perangkat Lunak
Penulis menggunakan 2 perangkat llunak pada penelitian iini. Berikut beberapa perangkat lunak yang digunakan beserta spesifikasinya:
1. VirtualBox
Spesifikasi dari Virtual Machine yang digunakan sebagai berikut:
- OS : Ubuntu Server 16.04 (64 bit)
- RAM : 1 GB
- Harddisk : 8 GB
- Jumlah : 1 (dijalankan sebagai
broker)
2. Wireshark
Wireshark digunakan untuk
meng-capture paket data maupun informasi yang tersedia di jaringan
3. PyCharm
PyCharm digunakan dalam menuliskan
code berupa bahasa Python
4. PERANCANGAN DAN
IMPLEMENTASI
4.1. Perancangan Sistem
Pada tahap ini terdapat 3 aktor utama yang akan bekerja dalam sistem yakni publisher,
subscriber, dan broker. Pada client (publisher dan subscriber) akan diperankan oleh Raspberry Pi yang didalamnya diletakkan algoritme Grain v1. Seperti pada Gambar 4.
Gambar 4. Gambaran Umum Sistem
Berikut alur sistem secara menyeluruh dan terperinci, seperti yang dilihat pada Gambar 5.
Gambar 5. Alur Perancangan Sistem
Gambar 5 menjelaskan bahwa pada perancangann sistem dimulaii dengan mengkoneksikan antara publisherr dan
subscriber kee broker. Kemudiann setelah keduanya telah terhubung dengan broker barulah
subscriber me-request payload berdasarkan
topic yang sama. Lalu publisher akan meminta nilai berupa angka. Setelah nilai diinputkan, nilai tersebut akan dioperasikan dengann keystream
publisherr akan mengirimkan payloadd ke broker. Padaa paket mqtt-publish, berisi bermacam-macamm header di dalamnya, sepertiidup, qos, retain, dan payload. Payload
telahh sampai pada subscriber, payload tersebut di unpack terlebih dahulu kemudian data yang ada di dalam payload didekripsi sebelum ditampilkan kepada pengguna.
4.2. Implementasi
Pada implementasi, semua kebutuhan dan perancangan telah dilakukan. Gambar 6 dan Gambar 7 merupakan hasil dari implementasi sistem yang ditampilkan dalam Command Line Interface (CLI)
Gambar 6. Tampilan CLI publisher
Gambar 7. Tampilan CLI subscriber
Seperti pada Gambar 6, pengguna menginputkan nilai dari kedua variable terlebih dahulu sebelum data dikirimkan oleh publisher, kemudian data tersebut akan dienkripsi dengan menggunakan keystream yang dihasilkan oleh algoritme Grain v1. Setelah data dienkripsi kemudian data tersebut dibawa menuju broker. Kemudian broker akan meneruskan data yang telah terenkripsi menuju subscriber. Pada saat data telah diterima oleh subscriber, data tersebut didekripsi terlebih dahulu dengan keystream
yang sama dari proses algoritme Grain v1 sebelum ditampilkan kepada pengguna seperti yang terlihat pada Gambar 7.
5. PENGUJIAN
5.1. Pengujian Validasi Test Vector
Pada pengujian ini keystream yang dihasilkan oleh sistem akan dicocokkan dengan
test vector. Seperti pada Tabel 2.
Tabel 2. Hasil Pengujian Validasi Keystream
Algoritme Grain v1
Kombinasi Test Keystream Status
key dan iv Vector sistem
Pada Tabel 2. terlihat bahwa keystream yang dihasilkan oleh sistem sesuai dengan testvector. Ini membuktikan bahwa pengujian ini valid.
5.2. Pengujian Validasi Enkripsi dan Dekripsi
Pada pengujian validasi enkripsi dan dekripsi, misalnya sistem mempunyai 1 variabel kelembaban yang memiliki nilai 72. Nilai ini akan dienkripsi dan didekripsi dengan kedua
keystream yang dihasilkan oleh sistem.
Tabel 3. Enkripsi Plaintext Kelembaban
Plaintext
Tabel 4. Dekripsi Ciphertext Kelembaban
Ciphertext Keystream
sistem
5.3. Pengujian Fungsional
Pada pengujian fungsional bertujuan untuk memastikan sistem dapat bekerja dengan baik. Pengujian dilakukan sesuai dengan kebutuhan sistem yang telah dijelaskan pada analisis kebutuhan.
Tabel 5. Hasil Pengujian Fungsional
No Test Name Hasil Status maksimal nilai binary-nya 80 bit ciphertext yang diterima oleh subscriber sesuai dengan topik yang di subscribe
Berhasil
Pada Tabel 5 setiap pengujian yang dilakukan dari pengujian hasil keystream hingga pengujian subscribe pesan hasil yang diharapkan sesuai dengan hasil sistem. Ini membuktikan bahwa pengujian fungsional dapat dinyatakan valid.
5.4. Pengujian Sniffing
Pengujian ini dilakukan untuk memastikan data yang ditransmisikan melalui protokol MQTT telah dilakukan pengamanan sehingga data tidak dapat dibaca. Pengujian ini menggunakan Wireshark sebagai tool untuk
sniffing paket di jaringan internet.
Gambar 8. Capture Wireshark Ketika Data Tidak Dienkripsi
Gambar 9. Capture Wireshark Ketika Data Dienkripsi
Pada Gambar 8 merupakan gambar capture wireshark ketika data tidak menggunakan algoritme untuk enkripsi, sehingga data dapat dengan jelas terbaca yakni suhu dengan nilai 89 dan kelembaban dengan nilai 45. Berbeda dengan Gambar 9, data yang dikirimkan adalah
ciphertext yang telah dienkripsi dengan algoritme yakni nilai suhu 43ae dan nilai kelembaban 4fa2. Ini membuktikan bahwa dengan adanya algoritme Grain v1 pada sistem membuat data jadi lebih aman.
5.5. Pengujian Performa
Pada pengujian ini penulis menguji waktu ketika sistem memproses keystream, enkripsi dan dekripsi. Dengan 2 skenario pengujian waktu, yakni menguji waktu dengan melakukan 1024 variasi key dan iv.
Gambar 10. Rata-rata waktu keystream, enkripsi, dan dekripsi
Pada Gambar 10 merupakan rata-rata dari hasil pengujian performa waktu. Dari Gambar 8 dapat disimpulkan bahwa rata-rata sistem dapat memproses keystream dengan waktu 0.012
second, mengenkripsi data dengan waktu 0.016
second, dan dekripsi data dengan waktu 0.022
second.
6. KESIMPULAN DAN SARAN
6.1. Kesimpulan
1. Algoritme Grain v1 dapat diterapkan pada protokol MQTT dengan meletakkan algoritme Grain v1 pada setiap client (publisher dan subscriber). Nilai key dan iv
harus sesuai di setiap client agar keystream
yang dihasilkan sama. Enkripsi data terjadi pada publisher, keystream yang dihasilkan oleh sistem di-xor-kan dengan plaintext
yang telah diubah menjadi bentuk binary.
Dekripsi data terjadi di sisi subscriber, payload yang diterima dari broker terlebih dahulu di-unpack. Lalu keystream yang dibuat subscriber di-xor-kan dengan
ciphertext yang terdapat pada payload.
2. Keystream yang terbentuk oleh sistem sesuai dengan test vector algoritme Grain v1.
3. Sistem telah berhasil diimplementasikan. Waktu yang dibutuhkan sistem dalam memproses keystream dari 1024 variasi tersebut adalah sekitar 0,01246 second.
Waktu yang dibutuhkan sistem dalam mengenkripsi data dari 1024 variasi tersebut adalah sekitar 0,01627 second.
Waktu yang dibutuhkan sistem dalam mendekripsi data dari 1024 variasi tersebut adalah sekitar 0.02238 second.
6.2. Saran
Dari penelitian yang telah dilakukan, berikut merupakan saran yang penulis untuk pengembangan sistem lebih lanjut:
1. Dapat menggunakan sensor sehingga data yang dienkripsi lebih nyata.
2. Dapat memasukkan key dan iv secara otomatis.
7. DAFTAR PUSTAKA
Chandra. 2016. Kriptografi. “Keamanan Data dengan Metode Kriptografi Kunci Publik”,
pp. 11-15
Eclipse, 2013. Mosquitto. [online]. Tersedia di: <https://www.eclipse.org/proposals/techn ology.mosquitto/> [Diakses 11 Januari 2018].
Eclipse, 2013. Eclipse Paho. [online]. Tersedia di: <https://www.eclipse.org/paho/> [Diakses 11 Januari 2018].
Elkhodr, Mahmoud, Seyed Shahrestani, and Hon
Cheung. 2016. “Emerging Wireless
Technologies In The Internet Of Things: A
Comparative Study”, International
Journal of Wireless & Mobile Networks(IJWMN) Vol. 8, No. 5
Hell, Martin, Thomas Johansson, and Willi
Meier, “Grain - A Stream Cipher for Constrained Environments”, in Informations Theory, 2006 IEEE International Symposium on, July 2006, pp. 1614-1618.
HiveMQ, 2018. [online] HiveMQ. Tersedia di: < https://www.hivemq.com/blog/mqtt- security-fundamentals-payload-encryption> [Diakses 9 Januari 2018].
Muhammad, Bilal. 2017. “A Review of Internet of Things Architecture, Technologies and Analysis Smartphone-based Attacks Against 3D Printers”, Department of
Computer Science, Zhejiang University Hangzhou, China.
Nurrohmah, Ajeng, Ari Kusyanti, dan Rakhmadhany Primananda. 2018.
“Implementasi Algoritme Grain V1 Dan 128 Bit Pada Arduino Mega 2560”, Jurnal
Pengembangan Teknologi Informasi dan Ilmu Komputer Vol. 2 No. 8.
Oracle, 2016. VirtualBox. [online]. Tersedia di: < https://www.virtualbox.org/> [Diakses 11 Januari 2018].
Raspberrypi, 2005. [online] Raspberrypi. Tersedia di:
<https://www.raspberrypi.org> [Diakses 19 Januari 2018].
Rochman, Hudan Abdur, Rakhmadhany Primananda, dan Heru Nurwasito. 2017.
“Sistem Kendali Berbasis Mikrokontroler Menggunakan Protokol MQTT pada Smartphone”, Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol. 1 No. 6.
Roman, Rodigro, Pablo Najera, Javier Lopez.
2016. “Securing the Internet of Things”,
University of Malaga
Shahid, Syahifudin, Ari Kusyanti, dan Rakhmadhany Primananda. 2018.
“Implementasi Algoritme Grain V1 Dan 128 Bit Pada Raspberry PI”, Jurnal
Pengembangan Teknologi Informasi dan Ilmu Komputer Vol. 2 No. 4.
Xia, Feng, Laurence T. Yang, Lizhe Wang, and