Fakultas Ilmu Komputer
Universitas Brawijaya
6635
Implementasi Algoritme Trivium Untuk Mengamankan Data Pada
Protokol MQTT Menggunakan Perangkat Raspberry Pi
Alan Maulana Hamid1, Ari Kusyanti2, Adhitya Bhawiyuga3
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1alanmaulana@student.ub.ac.id, 2ari.kusyanti@ub.ac.id, 3bhawiyuga@ub.ac.id
Abstrak
Protokol MQTT (Message Queuing Telemetry Transport) banyak diterapkan pada medium komunikasi wireless pada IoT(Internet of Things). Namun, penggunaan medium wireless memiliki kekurangan yaitu
sangat rentan terhadap penyadapan data (sniffing data). Potensi bahaya dari penyadapan atau sniffing
adalah hilangnya keamanan. Sehingga, dibutuhkan sebuah mekanisme yang dapat mengamankan data, salah satunya menggunakan mekanisme kriptografi. Algoritme Trivium merupakan salah satu algoritme kriptografi enkripsi stream cipher synchronous yang digunakan untuk mengamankan data dan Trivium
telah diuji dan tetapkan sebagai algoritme enkripsi stream cipher oleh ISO/IEC 29192-3:2012. Penulis
menggunakan Raspberry Pi sebagai publisher dan subscriber serta virtual machine sebagai broker. Publisher akan melakukan enkripsi pada data sebelum data dan topik dikirimkan ke broker. Kemudian, broker akan meneruskan data kepada subscriber yang telah berlangganan topik yang sesuai. Setelah
data sampai pada subscriber, data akan didekripsi sehingga menjadi plaintext. Hasil pengujian dalam
penelitian ini antara lain, pertama hasil pengujian keystream terhadap test vector adalah valid. Kedua
pengujian validasi hasil enkripsi dan dekripsi adalah valid. Ketiga hasil pengujian sniffing data pada
Wireshark, data tidak dapat dibaca oleh otoritas yang tidak berhak atas data. Keempat hasil pengujian enam fungsional sistem menunjukkan bahwa seluruh fungsional dapat berjalan dengan baik. Kelima hasil pengujian kinerja rata-rata waktu untuk menghasilkan keystream adalah 0,034886725 detik, proses
enkripsi adalah 0,047045873 detik dan proses dekripsi adalah 0,053834003 detik.
Kata kunci: MQTT, trivium, internet of things, enkripsi, dekripsi, raspberry pi
Abstract
MQTT Protocol (Message Queuing Telemetry Transport) is widely used in wireless communication medium on IOT (Internet of Things). On the other hand, the use of wireless medium has a disadvantage. As an example, the data are highly vurnerable to eavesdropping (sniffing data). The dangerous impact of eavesdropping or sniffing is that the loss of security. Therefore, it is required to have a mechanism to ensure data security. Trivium algorithm is one of the cryptographic synchronous encryption cryptographic algorithms used to secure data and Trivium is tested well and Trivium is assigned as a stream cipher encyption algorithms by ISO/IEC 29192-3; 2012. Raspberry Pi is used as a publisher, subscriber and virtual machine as a broker. Publisher will encrypt the data before the data and topic are sent to the broker. Broker will forward the data to the subscriber that is subscribed. After the data is received by the subscriber, the data will be decrypted into plaintext. Here are the results of the study; keystream result to the vector test is valid, validation result of encyption and decryption is valid, the result of sniffing data of Wireshark shows that the data cannot be read by an unofficial authority, and the result of six functional systems showed that all of the functional work well, the result of the average time to produce keystream is that 0.034886725 seconds, encryption process is that 0.047045873 seconds and decryption process is that 0.053834003 seconds.
Keywords: MQTT, trivium, internet of things, encryption, decryption, raspberry pi
1. PENDAHULUAN
Message Queuing Telemetry Transport
(MQTT) merupakan protokol komunikasi yang
di desain untuk perangkat IoT (Internet of Things). Ada tiga komponen dalam MQTT
pertama yaitu publisher adalah pengirim pesan
berfungsi sebagai perantara antara publisher dan subscriber dan broker juga bertugas untuk
mengirimkan pesan kepada subscriber yang
telah berlangganan topik sesuai.
Medium komunikasi wireless banyak
digunakan dalam penerapan protokol Message Queuing Telemetry Transport (MQTT) pada
IoT. Namun, penggunaan medium wireless
memiliki kekurangan yaitu sangat rentan terhadap penyadapan data (sniffing data).
Potensial bahaya dari penyadapan atau sniffing
adalah hilangnya keamanan. Sehingga, dibutuhkan sebuah mekanisme yang dapat mengamankan data, salah satunya menggunakan mekanisme kriptografi.
Algoritme Trivium merupakan salah satu algoritme kriptografi enkripsi stream cipher synchronous yang dibuat oleh Christophe De
Canni`ere dan Bart Preneel. Trivium telah diuji dan tetapkan sebagai algoritme enkripsi stream cipher oleh ISO/IEC 29192-3:2012. Trivium memiliki 80 bit kunci rahasia (secret key) dan 80
bit Initial Value (IV) yang dapat menghasilkan
kunci (keystream) sebanyak 264 bit yang dapat
digunakan untuk proses enkripsi dan dekripsi. Trivium didesain khusus untuk perangkat keras yang memiliki daya komputasi rendah namun, tidak mengurangi kecepatan, fleksibilitas dan keamanan dari data yang akan dienkripsi. (Canni`ere & Preneel, 2005).
Pada penelitian yan dilakukan oleh (Mohanty, et al., 2016) yang berjudul “MQTT –
Messaging Queue Telemetry Transport IOT based Messaging Protocol” diperoleh hasil
penelitian yaitu protokol MQTT memiliki waktu respon yang cepat, throughput, penggunaan
sumber daya energi dan bandwith yang rendah
dalam kasus jaringan yang memiliki koneksi tidak stabil (intermitten connectivity).
Kekurangan pada penelitian ini yaitu tidak ada sistem pengamanan data saat dikirimkan.
Berdasarkan hasil penelitian yang dilakukan oleh (Mohanty, et al., 2016) tersebut memberikan ide bagi penulis untuk melakukan penelitian tentang penerapan algoritme Trivium untuk mengamankan data saat dikirimkan oleh
publisher ke broker hingga sampai pada subscriber dengan aman. Diharapkan algortime
Trivium ini dapat menjadi alternatif lain untuk merahasiakan data yang dikirimkan melalui protokol MQTT pada perangkat Raspberry Pi.
2. DASAR TEORI.
2.1 Algoritme Trivium
Algoritme ini dibuat untuk perangkat keras yang memiliki daya komputasi rendah namun tidak mengurangi kecepatan, fleksibilitas dan keamanan dari data yang akan dienkripsi. Trivium ini dapat memiliki initialstate sebanyak
288 bit dan memiliki 80 bit kunci rahasia dan 80 bit Initial Value (IV).
Tabel 1. Notasi pada algoritme Trivium
Notasi Fungsi
(Sm,...,Sn) Keadaan (m-n+1) internalstate
bits
Zt
Bit yang dihasilkan berupa keystream pada
waktu t
+ XOR
. AND
(s1;s2;s3;;s288) internal state
Gambar 1. State Trivium
Gambar 1 merupakan bentuk dari Trivium. Trivium terbentuk dari 3 Non Linear Shift Register. NLFSR pertama terdapat 93 bit. Pada
NLFSR kedua terdapat (177-93) = 84 bit dan NLFSR 3 terdapat (288-178) = 111 bit.
{(𝑆94(𝑆, … , 𝑆1,…,𝑆93177) = (𝐾) = (𝐼𝑉0, … ,0, 𝐾0, … ,0, 𝐼𝑉80, … , 𝐾80, … , IV)0)
(𝑆188, … , 𝑆288) = (0, … ,0, 𝑆285, 1,1,1)
(1)
Persamaan 1 merupakan tahap pengisian nilai
state pada masing-masing shift register. Shift register pertama bit 1 sampai bit 80 akan diisi key dan bit ke 81 sampai bit ke 93 akan diisi 0.
Pada shiftregister kedua dari bit 94 sampai bit
ke 174 akan diisi Initial Value (IV) dan bit ke
175 sampai bit ke 177 akan diisi 0. Pada shift register ketiga pada bit ke 178 sampai bit ke 285
{
𝑆𝑅1 = 𝑆66+ 𝑆93
𝑆𝑅3= 𝑆243+ 𝑆288
𝑆𝑅2= 𝑆162+ 𝑆177
𝑍𝐼= 𝑆𝑅1+ 𝑆𝑅2+ 𝑆𝑅3
𝑆𝑅1= 𝑆𝑅1+ 𝑆91 . 𝑆92+ 𝑆171
𝑆𝑅2= 𝑆𝑅2+ 𝑆175 . 𝑆176+ 𝑆264
𝑆𝑅3= 𝑆𝑅3+ 𝑆286 . 𝑆287+ 𝑆69
(𝑆1,…,𝑆93) = (𝑆𝑅3, … , 𝑆93)
(𝑆94,…,𝑆177) = (𝑆𝑅1, … , 𝑆177)
(𝑆178,…,𝑆288) = (𝑆𝑅2, … , 𝑆288)
(2)
Persamaan 2 merupakan tahap untuk membuat keystream setelah diulang sebanyak
1152. Setelah mencapai perulangan ke 1153 dan seterusnya keystream (Zi) yang diperoleh dapat
digunakan untuk proses enkripsi dan dekripsi.
2.2 Protokol MQTT
Protokol MQTT (Message Queuing Telemtry Transport) didesain oleh IBM
merupakan sebuah protokol yang berjalan pada stack TCP/IP dan memiliki paket data yang
ringan sehingga akan berpengaruh pada penggunaan daya (Lampkin, et al., 2012). Protokol MQTT merupakan protokol yang memakai model komunikasi publish/subscribe, publisher adalah pengirim pesan dan subscriber
adalah penerima pesan. Broker adalah salah satu
komponen dalam MQTT, broker berfungsi
sebagai perantara antara publisher dan subscriber yang telah berlangganan topik
tertentu.
Gambar 2. Sistem Protokol MQTT Gambar 2 merupakan gambar sistem umum protokol MQTT.MQTT memiliki 3 aktor yaitu
publisher, subscriber, broker. Pertama subscriber akan mengirimkan pesan subscribe
topik tertentu ke broker. Publisher akan
mengirimkan data topik dan pesan tertentu ke
broker. Peran broker adalah mengelola koneksi subscriber dan publisher selanjutnya broker
akan mengirimkan pesan ke subscriber yang
telah berlangganan topik yang sesuai.
2.3 Raspberry Pi
Raspberry Pi adalah mini computer yang
memiliki daya rendah. Raspberry Pi juga memungkinkan untuk menghubungkan monitor,
keyboard, mouse dan juga televisi sehingga
dapat terhubung ke Raspberry pi.
Gambar 3. Raspberry Pi 2 Model B board
Sumber : (Kulkarni, et al., 2017) Gambar 3 sebuah board Raspberry Pi
memiliki port USB, HDMI post, port DSI, audio jack, 40 pin GPIO, bluethooth built-in.
Raspberry Pi memiliki sistem operasi yaitu Raspbian, Ubuntu Mate, Pidora, dan Linutop, (Kulkarni, et al., 2017). Pada Raspberry Pi juga mendukung berbagai macam bahasa pemrograman diantaranya C++, Python, SQL, Java Script, PHP dan HTSQL (Query Hyper Text Structured).
3. REKAYASA KEBUTUHAN SISTEM 3.1. Kebutuhan Fungsional
Prosedur pada pengujian ini yaitu melakukan eksekusi setiap fungsional pada program yang telah diimplementasikan, kemudian mengamati hasil dari eksekusi sistem.
Tabel 2. Kebutuhan fungsional sistem
No Fungsi Dekripsi
1 Input nilai suhu dan kelembapan
publisher dapat
menerima masukan data suhu dan kelembapan
2 Menghasilkan
kesytream yang
sesuai dengan test vector
Publisher dan subscriber dapat
menghasilkan
kesytream yang
sesuai dengan test vector
3 Melakukan enkripsi data
plain text (suhu
dan kelembapan)
Publisher dapat
menjadi cipher text
4 Mengirim topik dan cipher text ke broker
Publisher dapat
melakukan
pengiriman data yang telah dienkripsi ke
broker
5 Melakukan
subscribe topik
ke broker
subscriber dapat
melakukan
pengiriman topik ke
broker
6 Melakukan dekripsi data
cipher text (suhu
dan kelembapan) menjadi plain text
Subcriber dapat
melakukan dekripsi data suhu dan kelembapan dari
publisher.
3.2. Kebutuhan Perangkat Keras
Perangkat keras yang digunakan untuk mengimplementasikan sistem ini antara lain :
1. Raspberry Pi 2
Raspbery Pi 2 merupakan mini computer
yang digunakan untuk mengenkripsi dan mendekripsi data menggunakan algoritme Trivium.
2. Laptop
Penggunaan laptop pada sistem ini adalah untuk konfigurasi sistem Virtual Machine
(VM). Spesifikasi laptop yang dipakai adalah :
- Model laptop : Lenovo ideapad S410P
- Processor :
Intel(R) Core(TM) i5-42000 CPU @ 1.60GHz
- Installed memory (RAM): 12 GB
- System type : 64-bit
3. Wifiadapter
Wifi adapter digunakan untuk menangkap
sinyal wifi sehingga perangkat Raspberry Pi
2 dapat terkoneksi dengan internet. 4. Micro SD 8 GB
Micro SD 8 GB digunakan untuk media
penyimpanan data dan operating system
untuk Raspberry Pi 2
3.3 Kebutuhan Perangkat Lunak
Pada penelitian ini perangkat lunak yang digunakan untuk mengimplementasikan sistem ini antara lain:
1. VirtualMachine
Virtual Machine (VM) pada sistem ini
digunakan sebagai virtualisasi broker dan
memiliki spesifikasi sebagai berikut :
- System Operation: Ubuntu Server 16.04 64
bit
- RAM : 512 MB
2. Python
Bahasa pemrograman Python digunakan untuk mengimplementikasn algoritme Trivium pada protokol MQTT menggunakan Raspberry Pi
4. PERANCANGAN DAN IMPLEMENTASI SISTEM 4.1 Perancangan Sistem
Pada tahap perancangan ini terdapat 3 komponen utama dalam sistem ini yaitu
publisher, subscriber dan broker. Raspberry Pi
digunakan untuk publisher dan subscriber dan virtual machine sebagai broker.
Gambar 4. Diagram alir perancangan sistem Gambar 4 adalah alur dalam memulai perancangan, dimulai dari melakukan konfigurasi pada Raspberry Pi kemudian melakukan konfigurasi pada virtual machine.
Kemudian melakukan implementasi pada algoritme Trivium pada protokol MQTT dan diterapkan pada publisher dan subscriber.
Raspberry Pi bertindak sebagai publisher akan
sebagai subscriber yang mengirimkan topik ke broker dan juga melakukan dekripsi serta
menampilkan hasil dekripsi. Broker akan
menerima data dari publisher dan juga subscriber kemudian broker juga akan
meneruskan pesan dari publisher ke subscriber
yang berlangganan topik yang sesuai.
4.2 Implementasi
Implementasi sistem dapat digambarkan pada Gambar 5.
Gambar 5. Gambaran sistem
Gambar 5 adalah gambaran dari sistem yang akan diimplementasikan. Susbcriber melakukan subscribe topik ke broker. Publisher akan
terlebih dahulu melakukan enkripsi data pesan sebelum dikirimkan bersama topik ke broker.
Selanjutnya, broker akan meneruskan data
kepada subscriber yang telah berlangganan topik
yang sesuai. Setelah data sampai pada subscriber
data akan didekripsi sehingga menjadi plaintext
oleh subscriber.
Perangkat Raspberry Pi baik itu publisher
dan subscriber akan melakukan proses untuk
menghasilkan keystream yang akan digunakan
untuk melakukan proses enkripsi oleh publisher
dan dekripsi oleh subscriber.
Gambar 6. Tampilan implementasi command-line interface (CLI) pada publisher
Gambar 6 menunjukkan publisher
mengirimkan data plaintext (suhu dan
kelembapan) ke broker. Namun, data terlebih
dahulu akan diubah ke dalam bentuk biner dan diproses dengan keystream yang telah dihasilkan
oleh sistem menggunakan initial value dan key
hingga menjadi cipher text dalam bentuk biner.
Kemudian dari cipher text dalam bentuk biner
tersebut selanjutnya akan diubah ke dalam bentuk heksa desimal. Data heksa desimal tersebut akan dikirimkan dengan format JSON (JavaScript Object Notation) bersama dengan
topik.
Gambar 7. Tampilan implementasi command-line interface (CLI) pada subscriber Pada Gambar 7. Data yang dikirim oleh
publisher akan diteruskan oleh broker ke subscriber yang telah berlangganan topik yang
sama. Setelah data dalam heksa desimal diterima oleh subscriber maka data akan diubah menjadi
biner dan didekripsi dengan menggunakan initial value dan key yang sama pada saat proses
enkripsi sehingga menghasilkan plain text biner. Plain text biner tersebut akan diubah ke dalam
bentuk desimal sehingga plain text dapat dibaca
oleh subscriber.
5. PENGUJIAN
Pada pengujian dalam penelitian ini menggunakan beberapa parameter antara lain :
1. Pengujian validasi antara keystream dan test vector.
2. Pengujian validasi hasil enkripsi dan dekripsi.
3. Pengujian fungsional sistem.
4. Pengujian kinerja waktu sistem untuk menghasilkan keystream dan waktu kinerja
sistem pada saat melakukan enkripsi dan dekripsi.
5. Pengujian sniffing data menggunakan
Wireshark.
4.1 Pengujian Test Vector
Pada pengujian ini bertujuan untuk mengetahui hasil keystream sistem memiliki
yang sesuai dengan test vector yang dibuat oleh
Christophe De Canni`ere dan Bart Preneel. Prosedur pengujian ini, sistem akan meggunakan masukan masing-masing 4 sampel key dan initial value. Keystream yang dihasilkan dari
kombinasi key dan initial value akan diuji
dengan kesesuaian nilai dengan test vector.
Tabel 3. Hasil pengujian testvector
Kombinasi
key dan
initial value
(IV)
Keystream
Sistem
Test Vector
Key :
Tabel 3 Terdapat kolom key dan initial value, keystream, test vector dan status. Masing-masing
kolom tersebut adalah nilai heksa desimal. Pada kolom key dan initial value akan diproses oleh
sistem menjadi biner dan menghasilkan
keystream biner, kemudian diubah kembali
menjadi heksa desimal. Hasil antara test vector
dan keystream dari sistem memiliki nilai yang
sama atau valid.
4.2. Pengujian Validasi Enkripsi dan Dekripsi
Pada pengujian validasi enkripsi dan dekripsi ini merupakan pengujian untuk mengetahui kesamaan antara data sebelum dienkripsi dengan data seteleh didekripsi.
Tabel 4. Validasi hasil enkripsi
Keystream
Sistem
Plain text Cipher text Status
0x38EB86FF
730D7A9CA 0x313692614708381611 0xEF1486FF730D7A9 Valid
F8DF13A442
0540D 19611667979924668416 0
menjadi data cipher text.
Tabel 5. Validasi hasil dekripsi
Keystream
Sistem
Cipher text
Plain text Status
0x38EB86F
merupakan hasil dari proses dekripsi antara nilai pada kolom keystream sistem dengan cipher text
sehingga menghasilkan nilai plain text kembali.
Dari hasil yang diperoleh menunjukkan bahwa seluruh proses dekripsi pada kolom plain text
pada Tabel 5 dengan kolom plain text pada
4.3 Pengujian Fungsional Sistem
Prosedur pada pengujian ini yaitu melakukan eksekusi setiap fungsional pada program yang telah diimplementasikan, kemudian mengamati hasil dari eksekusi sistem.
Tabel 6. Fungsional sistem
No Fungsi Result Status
1 Masukan nilai suhu dan kelembapan
publisher dapat
melakukan input data suhu dan
kelembapan
Berhasil
2 Menghasilkan
kesytream yang
sesuai dengan
test vector
Publisher dan subscriber
dapat
menghasilkan
kesytream yang
sesuai dengan
test vector
Berhasil
3 Melakukan enkripsi data plain text (suhu dan
kelembapan) menjadi cipher text
Publisher dapat
melakukan dan cipher text
ke broker
Publisher dapat
melakukan pengiriman data yang telah dienkripsi ke
broker
Berhasil
5 Melakukan
subscribe topik
ke broker
subscriber
dapat melakukan pengiriman topik ke broker
Berhasil menjadi plain text
Subcriber dapat
melakukan
4.4 Pengujian Kinerja Waktu Enkripsi Dan Dekripsi
Pada pengujian kinerja waktu sistem akan dibuat beberapa pengujian yaitu pengujian kinerja waktu sistem untuk proses menghasilkan
keystream dan kinerja waktu sistem untuk proses
enkripsi dan dekripsi.
Gambar 8. Grafik rata – rata waktu proses
keystream, enkripsi dan dekripsi
Gambar 8 merupakan hasil pengujian kinerja waktu proses inisialisasi keystream,
enkripsi dan dekripsi yang diperoleh dari 1024 sample pengujian initial value dan key dan
panjang data plain text 128 bit. Berdasarkan
hasil pengujian tersebut rata-rata waktu untuk melakukan proses untuk menghasilkan
keystream adalah 0,034886725 detik. Proses
enkripsi adalah 0,047045873 detik dan proses dekripsi adalah 0,053834003 detik.
4.5 Pengujian Sniffing Data Pada Wireshark Tujuan pengujian ini adalah untuk mengetahui apakah data yang dikirim oleh
publisher tidak dapat dibaca oleh individu lain
yang tidak memiliki otoritas terhadap data.
Terdapat 2 prosedur pengujian ketika data akan dikirim ke broker. Pertama publisher melakukan
pengiriman dengan data tidak dienkripsi. Kedua adalah melakukan pengiriman data namun data di enkripsi. Setiap prosedur pengujian tersebut akan dilihat bentuk data yang dikirim ke broker
pada aplikasi Wireshark.
Gambar 10.Sniffing data tanpa dienkripsi pada Wireshark
Gambar 10 dan Gambar 11 adalah hasil data komunikasi antara publisher dan broker sebelum
dienkripsi menggunakan aplikasi Wireshark dengan melakukan filter protokol MQTT. Data yang dikirim adalah data desimal 30, 80. Hasil pada Gambar 10 data yang ditangkap pada
aplikasi Wireshark : suhu:”30”
,kelembapan:”80”. Sedangkan pada Gambar 11 adalah data yang ditangkap pada aplikasi Wireshark : suhu:”1d” , kelembapan:”5e”. Sehingga dengan menggunakan algoritme Trivium data tidak dapat dibaca oleh pihak lain yang tidak memiliki hak atas data.
6. KESIMPULAN
Kesimpulan dalam penelitian ini adalah sebagai berikut:
1. Algoritme Trivium berhasil
diimplementasikan pada protokol MQTT menggunakan perangkat Raspberry Pi dengan cara, menerapkan algoritme Trivium pada Raspbery Pi (publisher) untuk proses
enkripsi data sebelum data dikirimkan ke
broker dan menerapkan algoritme Trivium
pada Raspberry PI (subscriber) untuk proses
dekripsi data. Pada proses enkripsi dan dekripsi menggunakan kunci (key dan initial value) yang sama.
2. Algoritme Trivium pada protokol MQTT menggunakan Raspberry Pi dapat menghasilkan keystream yang sesuai dengan test vector yang berarti bahwa hasil keystream yang dihasilkan oleh sistem valid.
3. Berdasarkan hasil kinerja proses untuk menghasilkan keystream, enkripsi dan
dekripsi pada plaintext 128 bit menggunakan
1024 bit sample initial value dan key
membutuhkan rata-rata waktu 0,034886725 detik untuk proses menghasilkan keystream,
untuk proses enkripsi membutuhkan waktu 0,047045873 detik dan proses dekripsi membutuhkan waktu 0,053834003 detik.
Berikut adalah beberapa saran untuk penelitian selanjutnya antara lain;
1. Pada penelitian ini hanya menggunakan data dummy sehingga untuk penelitian selanjutnya dapat menggunakan data asli data yang diperoleh dari sensor.
2. Pada proses pertukaran key dan IV masih
dilakukan secara manual sehingga untuk penelitian selanjutnya dapat dipadukan menggunakan algoritme lain sehingga
publisher dan subscriber dapat saling
bertukar kunci secara otomatis.
3. Pada penelitian ini hanya mengamankan data pada bagian payload, sehingga untuk
penelitian selanjutnya dapat juga mengamankan seperti topik atau Quality of Services (QoS).
7. DAFTAR PUSTAKA
Buchanan,B., 2014. Trivium. [Online]. Tersedia
di<https://asecuritysite.com/encryption/tr ivium> [diakses pada tanggal 24 april 2018]
Burt , Kaliski., Terry S., Arnold, Schla., Robert , Markowitz., Michael & Yin, Yiquin Lisa.2000. IEEE Standard Specifications for Public-Key Cryptography. [pdf].
Tersedia di <
ieeexplore.ieee.org/iel5/9276/29460/0133 5427.pdf > [diakses pada tanggal 1 agustus 2018]
Canni`ere & Preneel, 2005. Trivium Spesification. Belgium: Heverlee.
Islam & Haq, 2016. Authenticated Mode of Trivium. [Pdf]. Tersedia di: <
ieeexplore.ieee.org/document/7429904/ > [diakses pada 12 Februari 2018]
Kulkarni, B.P, Joshi, Aniket V, Jadhav, Vaibhav V, Dhamange & Akshaykumar T, 2017.
IoT Based Home Automation Using Raspberry PI. [Pdf]. Tersedia di : <
ijisset.org/wp-content/uploads/2017/04/ IJISSET-030406.pdf> [Di akses pada 7 Februari 2018]
Lampkin, Valerie., Leong, Weng Tat., Olivera, Leonardo., Rawat , Sweta, Subrahmanyam & Nagesh; Xiang, Rong. 2012. Building Smarter Planet Solutions with MQTT and IBM WebSphere MQ Telemetry. New York:IBM Corp.
Mattern & Floerkemeier, 2010. From the Internet of Computers to the Internet of Things. ETH Zurich: Institute for
Pervasive Computing
Menezes, Alfred J., Oorschot, Paul C. Van, Vanstone & Scott A.1996. A Graduate Course in Applied Cryptography. Version
0.4.Stanford:England
Mohanty, Suvam, Sharma, Sagar & Vishal, Vaibhav. 2016)., 2016. MQTT – Messaging Queue Telemetry Transport IOT based Messaging Protocol. [pdf].
Ramdhansya, Adimas Fiqri, Ariyanto, Endro & Nuha, Hilal Hudan.2014. Implementasi Advanced Encryption Standard (AES) Pada Sistem Kunci Elektronik Kendaraan Berbasis Sistem Operasi Android Dan Mikrokontroler Arduino. Seminar
Nasional Informatika 2014 (semnasIF 2014). Teknik Informatika : Universitas Telkom
Rochman, Rakhmadhany & Heru., 2017. Sistem Kendali Berbasis Mikrokontroler Menggunakan Protokol MQTT pada smarthome. FILKOM : Universitas
Brawijaya
Sei, Sun, zewu, Wang, Kun, Zhao, Ruichen, Sun & Shuai, Li .2018. Research and Design of Cryptography Cloud Framework. the 3rd IEEE International Conference on Cloud Computing and Big Data Analysis.
Zhengzhou, China
Togan, mihai., feraru, alin, popescu & andrian 2017. Virtual Machine for Encrypted Code Execution. ECAI 2017 -