Implementasi Algoritme Grain V1 Pada Protokol MQTT Menggunakan Raspberry Pi Untuk Mengamankan Data IoT

  

Vol. 2, No. 12, Desember 2018, hlm. 6542-6549 http://j-ptiik.ub.ac.id

Implementasi Algoritme Grain V1 Pada Protokol MQTT Menggunakan

  IoT Raspberry Pi Untuk Mengamankan Data 1 2 3 Iskar Maulana , Ari Kusyanti , Adhitya Bhawiyuga

  Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya 1 2 3 Email: [email protected], [email protected], [email protected]

  

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.

  Keywords: cryptography, Grain v1 algorithm, Internet of Things, Raspberry Pi, MQTT Fakultas Ilmu Komputer Universitas Brawijaya

  

6542

  Internet of Things (IoT) merupakan salah

  Stream Cipher for Constrain Environment

  Secara umum, Internet of Things (IoT) mengacu pada a interkoneksi jaringan objek

  2.1. Internet of Things

  2. DASAR TEORI

  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.

  publisher, subscriber , dan broker. Pada setiap client (publisher dan subscriber) diletakkan

  ”. Sistem ini mempunyai 3 komponen yang bekerja,

  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

  ” menjelaskan bahwa algoritme Grain v1 dapat diterapkan pada hardware, tetapi pada penelitian tersebut hardware digunakan untuk menghasilkan keystream saja (Nurrohmah, et al., 2018).

  Grain v1 dan 128 bit Pada Arduino Mega 2560

  ” 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

  Kendali Berbasis Mikrokontroler Menggunakan Protokol MQTT pada Smartphone

  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

  Ada beberapa penelitian mengenai yang berkaitan dengan penelitian yang akan dilakukan oleh penulis. Penelitian berjudul “Grain – A

1. PENDAHULUAN

  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,

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

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

  wireless sangat rentan terhadap pencurian dan

  Protokol MQTT secara default tidak memiliki keamanan dan IoT pada umumnya menggunakan media wireless sebagai media pertukaran data. Sedangkan penggunaan

  digunakan dalam banyak situasi termasuk lingkungan yang terbatas sumber daya (Rochman, et al., 2017).

  lightweight , terbuka, sederhana, dan dapat

  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

  subscriber dan broker. Pengirim data pada

  bekerja dalam metode ini, yaitu publisher,

  publish /subscribe. Terdapat 3 aktor utama yang

  Salah satu protokol yang sering dipakai dalam komunikasi antar perangkat IoT adalah protokol MQTT. Pola komunikasi pertukaran pesan pada protokol ini menggunakan

  ), dan jaringan internet. Semua komponen tersebut saling terhubung untuk berkomunikasi dan melakukan pertukaran data (Xia, et al., 2012).

  Arduino sehari-hari yang sering dilengkapi dengan n kecerdasan. IoT melakukan peningkatan dengan adanya internet dengan mengintegrasikan n setiap benda/objek untuk berinteraksi melalui

  embedded system, yang mengarahh ke

  Constrained Application Protocol (CoAP), Representational State Transfer (REST), Advanced Message Queueing Protocol (AMQP)

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

  dan Message Queue Telemetry Transfer Protocol (MQTT).

  yang biasanya digunakan, contohnya

  pendistribusian data dengan cara berkomunikasi dengan manusia serta perangkat-perangkat lainnya (Xia, et al., 2012).

  layer terdapat beberapa protokol komunikasi

  (Bilal, 2017). Pada application

  application layer

  tambahan ini digunakan untuk komputasi awan, komputasi cerdas, dan komputasi fog yang posisinya terletak diantara network layer dan

  preception layer, network layer, dan application layer. Namun pada beberapa research terdapat 1 layer tambahan yaitu support layer. Layer

  Arsitektur IoT dibagi menjadi 3 layer yaitu,

  (Rochman, et al., 2017).

2.2. MQTT

  publish/subscribe terdapat 3 aktor utama s i ,s i+1 i+79

  Internet of Things (IoT) (Rochman, et al., 2017).

  Gambar 2 adalah bagian u utama dari Grain yang terdiri i dari sebuah LFSR, NFSR, dan filter (h(x)). Pada Grain v1 menggunakan n key 80 bit, initial value (IV) 64, , dan internal state 160 bit t . Pada Grain, isi dari LFSR dinotasikan sebagai

  Gambar 2. Grain Cipher

  linear feedback (LFSR) dan satu nonlinear feedback (NFSR) .

  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

  2.3. Algoritme Grain v1

  Message Queue Telemetry Transport

  (MQTT) adalah suatu protokol komunikasi i yang bersifat terbuka, ringan, simple, cocok untuk komunikasi real-time dengan bandwidth rendah, dan didesain agar mudah diimplementasikan. Karakteristik seperti itu membuatnya cocok untuk digunakan n dalam berbagai situasi termasuk lingkungan n komunikasi Machine to Machine (M2M) dan

  Protokol MQTT ini berkonsep

  Pada metode indirect communication

  publish/subscribe , yang merupakan sebuah

  metode pertukaran pesan secara indirect communication (tidak langsung).

  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

  broker meneruskan informasi yang didapatnya

  dengan topik yang tertentu pula ke broker. Tugas

  broker. Subscriber berlangganan i informasi

  pengirim informasi dengan topik tertentu ke e

  broker, dan subscriber. Publisher sebagai

  terjadinya pertukaran pesan, yaitu publisher,

  dan isi NFSR dinotasikan dengan lainnya (Raspberrry, 2005). Raspberry Pi juga

  ,…,s

b i ,b i+1 i+79 . memiliki beberapa tipe, dari Raspberry Pi 3

,…:,b

  Model B+, Raspberry Pi 3 Model B, Raspberry

  Fungsi feedback dari LFSR f(x) yang

  Pi 2 Model B, Raspberry Pi 1 Model B+, memiliki fungsi polynomial berderajat 80. Raspberry Pi 1 Model A+, Raspberry Pi Zero W,

  Didefinisikan sebagai: dan Raspberry Pi Zero. Berikut gambar dan spesifikasi dari Raspberry Pi seperti pada Gambar 3 dan Tabel 1:

  Untuk menghapus s segala k keambiguan yang mungkin t terjadi, Grain juga menyediakan fungsi i update pada LFSR sebagai berikut:

  Lalu feedback polynomial dari NFSR dinotasikan sebagai g(x):

  Gambar 3. Raspberry Pi 2 (Sumber: https://www.raspberrypi.org/products/raspberry-pi- 2-model-b/)

  Tabel 1. Spesifikasi Raspberry PI 2

  Sama seperti LFSR, NFSR juga mempunyai fungsi update yang dinotasikan dengan

  System on Chip (SoC) Broadcom BCM2836

  sebagai berikut:

  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

  Isi dari 2 register (NFSR dan LFSR)

  2.0, Ethernet, Camera

  mewakili keadaan chiper. Dari keadaan ini, 5

  Serial Interface (CSI),

  variabel l diambil sebagai input ke fungsi filter

  Display Serial Interface h(x). Fungsi h(x) didefinisikan sebagai i berikut: (DSI) 3.

   ANALISIS KEBUTUHAN 3. 1. Kebutuhan Fungsional

  Pada penelitian ini, ada beberapa kebutuhan fungsional, yakni: Pengubah , , , , dan sesuai 1.

  Sistem dapat menghasilkan keystream

  1

  2

  3

  4

  4 dengan , , , , dan .

  sebanyak 80 bit

  • 3 +25 +46 +64 +63

  Fungsi filter r ini kemudian di-xor dengan n bit 2.

  Sistem dapat memasukkan data dengan dari NFSR untuk menghasilkan sebuah maksimal nilai binary-nya 80 bit keystream.

2.4. Raspberry Pi

  3. Sistem dapat mengenkripsi data yang

  akan dikirimkan

  Raspberry Pi atau sering disebut dengan

  4. i ciphertext Sistem dapat mendekripsi

  Raspi, merupakan sebuah minikomputer yang yang diterima a oleh subscriber dapat menjalankan program-program salah satunya IoT. System operasi yang digunakan pun

  5. h payload Sistem dapat mem-publish dapat bermacam-macam, mulai dari Noobs, sesuai dengan topik k yang diminta oleh

  Raspbian, Ubuntu Mate, dan masih banyak subscriber r

6. Sistem dapat menampilkan

  Pi yang didalamnya diletakkan algoritme Grain v1. Seperti pada Gambar 4.

  • Model : Lenovo S410p

  • Processor : Intel (R) Core (TM) i5-
  • RAM
  • Jumlah : 1
  • Fungsi : Untuk menjalankan

  • OS
  • RAM
  • Harddisk : 8 GB
  • Jumlah : 1 (dijalankan sebagai

  yang tersedia di jaringan 3. PyCharm

  PyCharm digunakan dalam menuliskan code berupa bahasa Python

  IMPLEMENTASI

  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

  • OS

  Gambar 5. Alur Perancangan Sistem

  Gambar 4. Gambaran Umum Sistem

  Berikut alur sistem secara menyeluruh dan terperinci, seperti yang dilihat pada Gambar 5.

  Gambar 5 menjelaskan bahwa pada perancangan n sistem dimulai i dengan mengkoneksikan antara publisher r dan

  subscriber ke e broker. Kemudian n 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 dengan n keystream yang terbentuk k dari algoritme Grain v1. Setelah hasil dari operasi angka dan keystream maka

  Wireshark digunakan untuk meng- capture paket data maupun informasi

  broker ) 2.

  Wireshark

  bit)

  n payload

  sesuai i dengan topik yang di subscribe

  3.2. Kebutuhan Perangkat Keras

  Penelitian ini menggunakan beberapa perangkat keras, yakni:

  1. Laptop, dengan spesifikasi sebagai berikut:

  : Windows 10 Pro (64

  4200U

  : 1 GB

  : 8 GB

  virtual machine 2. Raspberry PI 2 + module wifi

  3.3. Kebutuhan Perangkat Lunak

  Penulis menggunakan 2 perangkat l lunak pada penelitian i ini. Berikut beberapa perangkat lunak yang digunakan beserta spesifikasinya: 1.

  VirtualBox Spesifikasi dari Virtual Machine yang digunakan sebagai berikut:

  : Ubuntu Server 16.04

  (64 bit)

4. PERANCANGAN DAN

4.1. Perancangan Sistem

  key dan iv Vector sistem publisher r akan mengirimkan payload d ke

  Key : 0x7B978 0x7B978 Valid

  broker. Pada a paket mqtt-publish, berisi

  0x0000000000 CF368 CF368

  bermacam-macam m header di dalamnya,

  0000000000

  46E5F

  46E5F

  seperti i dup, qos, retain, dan payload. Payload

  IV :

  4EE0B

  4EE0B

  yang di dalamnya terdapat data a yang telah 0x00000000

  00000000

  dienkripsi dan ter-packing kemudian akan

  Key : 0x42B56 0x42B56 Valid dikirimkan n oleh publisher r ke subscriber.

  0x0123456789

  7CCC6

  7CCC6 ABCDEF1234 53176 53176

  Setelah itu, b broker akan meneruskan

  IV : 80225 80225

  kepada a subscriber yang meminta 0x0123456789

  payload ABCDEF

  dengan topic yang g sesuai. Pada saat t payload Pada Tabel 2. terlihat bahwa keystream yang telah h sampai pada subscriber, payload tersebut dihasilkan oleh sistem sesuai dengan test vector. di unpack terlebih dahulu kemudian data yang Ini membuktikan bahwa pengujian ini valid. ada di dalam payload didekripsi sebelum ditampilkan kepada pengguna.

  5.2. Pengujian Validasi Enkripsi dan Dekripsi

  Pada pengujian validasi enkripsi dan

4.2. Implementasi

  dekripsi, misalnya sistem mempunyai 1 variabel Pada implementasi, semua kebutuhan dan kelembaban yang memiliki nilai 72. Nilai ini perancangan telah dilakukan. Gambar 6 dan akan dienkripsi dan didekripsi dengan kedua Gambar 7 merupakan hasil dari implementasi keystream yang dihasilkan oleh sistem. sistem yang ditampilkan dalam Command Line

  Interface (CLI) Tabel 3. Enkripsi Plaintext Kelembaban

  Plaintext Keystream Ciphertext Status Kelembaban sistem 72 0x7B978

  4CA5 Valid CF368

  46E5F Gambar 6. Tampilan CLI publisher

  4EE0B 72 0x42B56 7587 Valid

  7CCC6 53176 80225 Gambar 7. Tampilan CLI subscriber

  Seperti pada Gambar 6, pengguna

  Tabel 4. Dekripsi Ciphertext Kelembaban

  menginputkan nilai dari kedua variable terlebih

  Keystream Plaintext Ciphertext Status

  dahulu sebelum data dikirimkan oleh publisher,

  sistem Kelembaban

  kemudian data tersebut akan dienkripsi dengan

  4CA5 0x7B978

  72 Valid

  menggunakan keystream yang dihasilkan oleh

  CF368

  algoritme Grain v1. Setelah data dienkripsi

  46E5F

  4EE0B kemudian data tersebut dibawa menuju broker. 7587 0x42B56

  72 Valid

  Kemudian broker akan meneruskan data yang

  7CCC6

  telah terenkripsi menuju subscriber. Pada saat

  53176

  data telah diterima oleh subscriber, data tersebut

  80225

  didekripsi terlebih dahulu dengan keystream Pada Tabel 3 terlihat bahwa plaintext yang sama dari proses algoritme Grain v1 kelembaban telah terenkripsi, kemudian pada sebelum ditampilkan kepada pengguna seperti Tabel 4 ciphertext kelembaban telah didekripsi yang terlihat pada Gambar 7. dengan menghasilkan nilai plaintext yang sama ketika nilai suhu belum dienkripsi. Ini

5. PENGUJIAN menandakan bahwa pengujian dikatakan valid.

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

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 Gambar 9. Capture Wireshark Ketika Data No Test Name Hasil Status

  Dienkripsi

  Pada Gambar 8 merupakan gambar capture

  1 Pengujian Sistem dapat Berhasil

  wireshark ketika data tidak menggunakan

  hasil menghasilkan keystream

  algoritme untuk enkripsi, sehingga data dapat

  keystream sebanyak 80 bit

  dengan jelas terbaca yakni suhu dengan nilai 89 dan kelembaban dengan nilai 45. Berbeda

  2 Pengujian Sistem dapat Berhasil

  dengan Gambar 9, data yang dikirimkan adalah

  input nilai memasukkan data dengan maksimal nilai binary- ciphertext yang telah dienkripsi dengan nya 80 bit

  algoritme yakni nilai suhu 43ae dan nilai kelembaban 4fa2. Ini membuktikan bahwa

  3 Pengujian Sistem dapat Berhasil enkripsi mengenkripsi data

  dengan adanya algoritme Grain v1 pada sistem membuat data jadi lebih aman.

  4 Pengujian Sistem dapat mendekripsi Berhasil dekripsi ciphertext yang diterima oleh subscriber

  5.5. Pengujian Performa

  Pada pengujian ini penulis menguji waktu

  5 Pengujian Sistem dapat mem- Berhasil publish publish payload sesuai ketika sistem memproses keystream, enkripsi pesan dengan topik yang

  dan dekripsi. Dengan 2 skenario pengujian

  diminta oleh subscriber

  waktu, yakni menguji waktu dengan melakukan

  6 Pengujian Sistem dapat Berhasil 1024 variasi key dan iv. subscribe menampilkan payload pesan sesuai dengan topik yang di subscribe

  Rata-rata Waktu 0,022381 195

  Pada Tabel 5 setiap pengujian yang 0,025

  ) 0,016272 d

  dilakukan dari pengujian hasil keystream hingga n

  0,02 0,012458 952 o c

  pengujian subscribe pesan hasil yang diharapkan 703

  e 0,015 s (

  sesuai dengan hasil sistem. Ini membuktikan

  0,01 u

  bahwa pengujian fungsional dapat dinyatakan

  kt 0,005 valid.

  Wa keystream enkripsi dekripsi

5.4. Pengujian Sniffing

  Pengujian ini dilakukan untuk memastikan Gambar 10. Rata-rata waktu keystream, data yang ditransmisikan melalui protokol enkripsi, dan dekripsi MQTT telah dilakukan pengamanan sehingga Pada Gambar 10 merupakan rata-rata dari hasil pengujian performa waktu. Dari Gambar 8 data tidak dapat dibaca. Pengujian ini menggunakan Wireshark sebagai tool untuk dapat disimpulkan bahwa rata-rata sistem dapat

  

sniffing paket di jaringan internet. 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

  Dari hasil penelitian yang telah dilakukan penulis, berikut merupakan kesimpulan yang

  Gambar 8. Capture Wireshark Ketika Data

  didapat:

  Tidak Dienkripsi

  1. Algoritme Grain v1 dapat diterapkan pada protokol MQTT dengan meletakkan algoritme Grain v1 pada setiap client

  Rochman, Hudan Abdur, Rakhmadhany Primananda, dan Heru Nurwasito. 2017.

  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: pberrypi.org> [Diakses 19 Januari 2018].

  “Sistem Kendali Berbasis Mikrokontroler

  (publisher dan subscriber). Nilai key dan iv

  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 Alexey Vinel. 2012. “Internet of Things”,

  International Journal of Communication System. 25:1101-1102.

   [Diakses 9 Januari 2018].

  

  pp. 1614-1618. HiveMQ, 2018. [online] HiveMQ. Tersedia di:

  IEEE International Symposium on, July 2006,

  Informations Theory , 2006

  ”, in

  Constrained Environments

  Hell, Martin, Thomas Johansson, and Willi Meier, “Grain - A Stream Cipher for

  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

  7. DAFTAR PUSTAKA

  2. Dapat memasukkan key dan iv secara otomatis.

  Dapat menggunakan sensor sehingga data yang dienkripsi lebih nyata.

  Dari penelitian yang telah dilakukan, berikut merupakan saran yang penulis untuk pengembangan sistem lebih lanjut: 1.

  dengan Metode Kriptografi Kunci Publik

  ”, pp. 11-15 Eclipse, 2013. Mosquitto. [online]. Tersedia di:

  

  Diakses 11 Januari 2018].

  Eclipse, 2013. Eclipse Paho. [online]. Tersedia di: [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

  Chandra. 2016. Kriptografi. “Keamanan Data