• Tidak ada hasil yang ditemukan

Rancang Bangun Prototipe Modul Enkripsi/Dekripsi Menggunakan Algoritma Blowfish pada Mikrokontroler STM32F103 Berbasis Prosesor ARM Cortex-M3

N/A
N/A
Protected

Academic year: 2021

Membagikan "Rancang Bangun Prototipe Modul Enkripsi/Dekripsi Menggunakan Algoritma Blowfish pada Mikrokontroler STM32F103 Berbasis Prosesor ARM Cortex-M3"

Copied!
7
0
0

Teks penuh

(1)

15

Rancang Bangun Prototipe Modul

Enkripsi/Dekripsi Menggunakan Algoritma

Blowfish pada Mikrokontroler STM32F103

Berbasis Prosesor ARM Cortex-M3

Febrianto Dicky Saputra, Rahmat Purwoko

Sekolah Tinggi Sandi Negara

febrianto.dicky@student.stsn-nci.ac.id, rahmat.purwoko@stsn-nci.ac.id

Abstrak

Embedded system merupakan kombinasi dari perangkat keras dan perangkat lunak yang dirancang untuk melakukan fungsi tertentu. Penelitian ini dilakukan dengan tujuan untuk membuat prototipe modul enkripsi/dekripsi yang menyediakan fungsi kriptografi bagi perangkat host. Prototipe modul enkripsi/dekripsi mengimplementasikan algoritma Blowfish pada mikrokontroler STM32F103 berbasis prosesor ARM 32-bit Cortex-M3. Selain itu, dilakukan implementasi Application Programming Interface (API) yang digunakan sebagai acuan bagi perangkat host untuk dapat mengakses prototipe modul enkripsi/dekripsi. Dengan menggunakan protokol komunikasi serial sebagai antarmuka komunikasi, prototipe modul enkripsi/dekripsi dapat diakses menggunakan Notebook/PC dan Arduino Uno. Dari hasil pengujian performa, didapatkan hasil bahwa prototipe modul enkripsi/dekripsi memiliki performa yang relatif baik. Prototipe modul enkripsi/dekripsi hanya menggunakan memori sebesar 9,57% dari total flash memory yang dimiliki. Selain itu, penggunaan kunci dengan panjang yang bervariasi pada algoritma Blowfish tidak terlalu berpengaruh terhadap performa yang dimiliki oleh prototipe modul enkripsi/dekripsi.

Kata Kunci: ARM, Blowfish, Embedded System, Komunikasi Serial, STM32F103

I.

PENDAHULUAN

Embedded system merupakan kombinasi dari perangkat keras dan perangkat lunak yang dirancang untuk melakukan fungsi tertentu, biasanya sebagai bagian dari sistem yang lebih besar [1]. Dalam beberapa tahun terakhir, penggunaan embedded system telah meningkat karena kemajuan teknologi, jaringan komunikasi, dan rendah biaya [2]. Sudah banyak ditemukan aplikasi embedded system berbasis mikrokontroler yang digunakan dalam berbagai bidang seperti pada militer, industri, perbankan, e-commerce, sistem biometrik, telemedicine, dan untuk membantu komputasi. Salah satu kekurangan pada perancangan embedded system adalah keamanan belum dianggap sebagai persyaratan utama, persyaratan lain seperti biaya, kinerja, dan konsumsi daya lebih diprioritaskan [3]. Hal ini menimbulkan masalah keamanan terkait dengan data rahasia yang

dikirimkan melalui internet [2]. Untuk menjamin kerahasiaan, keaslian, dan integritas data dapat diterapkan algoritma enkripsi pada embedded system.

Salah satu algoritma enkripsi yang dapat digunakan pada embedded system adalah Blowfish [4]. Blowfish merupakan pilihan yang tepat untuk implementasi pada hardware dengan minimum resource karena membutuhkan memori kecil. Blowfish dipilih karena memiliki performa yang paling cepat, konsumsi memori paling sedikit, dan keamanan yang lebih baik di antara algoritma block cipher lainnya [5]–[7].

Berdasarkan hal tersebut, dalam penelitian ini penulis akan membangun prototipe modul enkripsi/dekripsi menggunakan algoritma Blowfish pada mikrokontroler STM32F103. STM32F103 dipilih karena harganya yang terjangkau dan mempunyai spesifikasi yang cukup baik, dilengkapi dengan prosesor ARM 32-bit Cortex-M3 yang

(2)

16 merupakan generasi terakhir dari prosesor ARM untuk embedded system [8]. STM32F103 akan bertindak sebagai perangkat yang menyediakan fungsi kriptografi dan digunakan untuk membantu proses penyandian teks pada perangkat host, dalam hal ini proses enkripsi dan dekripsi menggunakan algoritma Blowfish. STM32F103 dan host akan dihubungkan dengan menggunakan protokol komunikasi serial. Perangkat host yang digunakan dapat berupa Notebook/PC, Arduino, atau perangkat lain yang menyediakan antarmuka komunikasi serial.

II.

METODE PENELITIAN

A. Algoritma Blowfish

Algoritma Blowfish merupakan algoritma block cipher yang didesain oleh Bruce Schneier pada tahun 1994 dan sangat efisien untuk enkripsi data pada mikroprosesor berukuran besar [9]. Blowfish didesain untuk memenuhi beberapa kriteria [10], yaitu:

1) Cepat, Blowfish dapat melakukan enkripsi data pada mikroprosesor 32-bit dengan kecepatan 26

clock cycles per byte.

2) Efisien, Blowfish dapat berjalan pada memori kurang dari 5 kB.

3) Sederhana, Blowfish hanya menggunakan operasi-operasi sederhana seperti: penjumlahan, XOR, dan tabel lookups pada 32-bit operands. 4) Keamanan yang beragam, panjang kunci dari

Blowfish bervariasi dan dapat mencapai 448-bit. Blowfish memiliki ukuran blok 64-bit dengan struktur Feistel dan melakukan iterasi fungsi enkripsi sederhana sebanyak 16 kali. Desain dari algoritma Blowfish ditunjukkan pada Gambar 1.

Gambar 1. Desain Algoritma Blowfish

B. Mikrokontroler STM32F103

STM32F103 merupakan mikrokontroler keluarga STM32 yang masuk dalam kategori mikrokontroler medium-density performance line

[8]. STM32F103 diproduksi oleh perusahaan STMicroelectronics, seperti ditunjukkan pada Gambar ‎2. STM32F103 menggunakan prosesor ARM 32-bit Cortex-M3 dengan kecepatan maksimum sebesar 72 MHz. Karena bentuknya yang kecil dan mempunyai kecepatan yang tinggi, STM32F103 banyak digunakan dalam berbagai aplikasi seperti driver motor, pengontrol aplikasi, peralatan medis, periferal PC dan games, platform

GPS, aplikasi industri, inverter, printer, scanners, sistem alarm, dan video intercoms.

Gambar 2. Mikrokontroler STM32F103

C. Komunikasi Serial

Recommended Standard-232 atau lebih dikenal dengan RS-232 merupakan standar komunikasi serial yang ditetapkan oleh Electronics Industry Alliance/Telecommunication Industry Association (EIA/TIA-232-F) pada tahun 1962 [11]. Dalam komunikasi RS-232 terdapat hubungan dua perangkat yaitu DTE (Data Terminal Equipment) yang berupa perangkat komputer dan DCE (Data Communication Equipment) yang merupakan perangkat periferal komputer seperti modem,

mouse, printer, scanner, atau joystick game [12]. Antara DTE dan DCE berkomunikasi dengan melakukan pertukaran data biner melalui port serial. Untuk melakukan komunikasi melalui protokol RS-232, diperlukan sebuah driver. Driver berfungsi untuk membaca beberapa informasi dari perangkat yang harus diketahui seperti nomor port com, baud rate, parity, data bits, dan stop bits.

D. Metodologi Penelitian

Pada penelitian ini penulis akan melakukan rancang bangun prototipe modul enkripsi/dekripsi menggunakan algoritma Blowfish pada mikrokontroler STM32F103 berbasis prosesor ARM Cortex-M3. Untuk melakukan penelitian tersebut penulis mengimplementasikan SDLC menggunakan metodologi Rapid Application

(3)

17

Development (RAD) dengan pendekatan

prototyping. Penulis memilih pendekatan

prototyping ini karena cepat menyediakan sistem bagi pengguna, walaupun belum memenuhi semua persyaratan sistem [13]. Pada penelitian ini akan dibangun dua buah prototipe.

III.

HASIL PENELITIAN

A. Gambaran Umum Sistem

Sistem yang dibangun pada penelitian ini adalah prototipe modul enkripsi/dekripsi yang menyediakan fungsi kriptografi dan digunakan untuk membantu proses penyandian data pada perangkat host. Perangkat keras utama yang digunakan pada sistem ini adalah mikrokontroler STM32F103 yang berfungsi sebagai prototipe modul enkripsi/dekripsi untuk melakukan proses enkripsi dan dekripsi data menggunakan algoritma Blowfish.

Perangkat host akan berfungsi sebagai user interface yang akan digunakan oleh user untuk melakukan input parameter seperti kunci, plaintext, atau ciphertext. Selain itu, user interface juga berfungsi menampilkan output (ciphertext atau

plaintext) hasil pemrosesan data oleh prototipe modul enkripsi/dekripsi. Pada penelitian ini perangkat host yang akan digunakan adalah

Notebook/PC dan Arduino Uno. Pada host Notebook/PC dibangun aplikasi berbasis desktop yang berfungsi untuk membaca komunikasi serial antara Notebook/PC dengan prototipe modul enkripsi/dekripsi. Secara umum, baik host berupa

Notebook/PC atau Arduino Uno, input data berasal dari user melalui keyboard dan output data akan ditampilkan pada layar LCD Notebook/PC. Data akan diproses (enkripsi atau dekripsi) oleh prototipe modul enkripsi/dekripsi yang terhubung dengan perangkat host sesuai dengan perintah yang diberikan oleh user. Berikut merupakan gambaran umum dari sistem dengan menggunakan host Notebook/PC, ditunjukkan pada Gambar 3.

Gambar 3. Gambaran Umum Sistem dengan Host Notebook/PC

B. Implementasi

Proses rancang bangun prototipe modul enkripsi/dekripsi dilakukan dengan mengimplementasikan dua buah prototipe. Prototipe I merupakan proses implementasi algoritma Blowfish pada mikrokontroler STM32F103 yang menyediakan fungsi dasar dari sistem yaitu fungsi enkripsi dan dekripsi. Prototipe II adalah prototipe I dengan penambahan fungsi sistem yaitu fungsi komunikasi yang menjadikan sistem dapat diakses oleh perangkat host. Pada prototipe II dilakukan implementasi protokol komunikasi serial dan

Application Programming Interface (API) pada mikrokontroler STM32F103.

C. Pengujian

Pengujian dilakukan untuk membuktikan bahwa sistem yang dibangun telah sesuai dan memenuhi kebutuhan dari sistem. Berikut merupakan pengujian yang dilakukan.

Pengujian Prototipe I

Pengujian prototipe I merupakan pengujian tes vektor dan bertujuan untuk memastikan implementasi algoritma Blowfish pada mikrokontroler STM32F103 telah dilakukan dengan benar. Tabel 1 menunjukkan hasil tes vektor yang sudah sesuai.

Tabel 1. Hasil Pengujian Tes Vektor Kunci Plaintext Ciphertext Hasil

Enkripsi 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4E F9 97 45 61 98 DD 78 4E F9 97 45 61 98 DD 78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 51 86 6F D5 B8 5E CB 8A 51 86 6F D5 B8 5E CB 8A 30 00 00 00 00 00 00 00 10 00 00 00 00 00 00 01 7D 85 6F 9A 61 30 63 F2 7D 85 6F 9A 61 30 63 F2 Pengujian Prototipe II

Pengujian pada prototipe II bertujuan untuk membuktikan modul yang telah dibuat dapat diakses dan digunakan oleh perangkat host. Host

yang digunakan dalam pengujian ini adalah

Notebook/PC dan Arduino Uno. Antara host dan prototipe modul enkripsi/dekripsi dihubungkan dengan protokol komunikasi serial. Pengujian ini dilakukan dengan melakukan proses enkripsi dan dekripsi pada prototipe modul enkripsi/dekripsi melalui kedua host tersebut. Pada Gambar 4,

(4)

18 Gambar 5, dan Gambar 6 menunjukkan hasil enkripsi melalui host Notebook/PC menggunakan aplikasi berbasis desktop, sedangkan pada Gambar 7, Gambar 8, dan Gambar 9 menunjukkan hasil enkripsi menggunakan host Arduino Uno melalui serial monitor.

Gambar 4. Contoh Pengiriman Kunci pada Aplikasi Berbasis Desktop

Gambar 5. Contoh Pengiriman Plaintext pada Aplikasi Berbasis Desktop

Gambar 6. Tampilan Ciphertext Hasil Proses Enkripsi pada Aplikasi Berbasis Desktop

Gambar 7. Contoh Pengiriman Kunci pada Serial Monitor

Gambar 8. Contoh Pengiriman Plaintext pada Serial Monitor

Gambar 9. Tampilan Ciphertext pada Proses Enkripsi pada Serial Monitor

Dari pengujian pada prototipe II, dibuktikan bahwa prototipe modul enkripsi/dekripsi yang dibangun dapat diakses dan digunakan menggunakan host Notebook/PC dan Arduino Uno.

Pengujian Performa

Pengujian performa dilakukan setelah dipastikan prototipe modul enkripsi/dekripsi telah berfungsi dengan benar dan bertujuan untuk mengetahui performa dari prototipe modul enkripsi/dekripsi yang berhasil dibangun. Terdapat beberapa parameter yang digunakan untuk mengukur performa dari modul antara lain memory usage,

clock cycles, execution time, dan throughput. Skenario dalam pengujian ini adalah melakukan proses inisialisasi kunci, proses enkripsi, dan proses dekripsi pada setiap sampel pengujian yang ditentukan. Pengujian ini dilakukan dengan

(5)

19

Gambar 13. Grafik Rata-rata Hasil Pengujian

Execution Time pada Proses Inisialisasi Kunci

menggunakan sampel plaintext dengan panjang yang berbeda yaitu 64-bit, 128-bit, 256-bit, 512-bit, dan 1024-bit. Karena Blowfish merupakan algoritma yang menggunakan kunci dengan panjang yang bervariasi yaitu empat bytes sampai 56 bytes, maka akan dilakukan pengujian terhadap setiap kemungkinan panjang kunci yang dapat digunakan untuk setiap sampel plaintext yang telah ditentukan. Dari serangkaian percobaan yang dilakukan akan di cari nilai rata-rata untuk setiap parameter pengujian yang digunakan pada setiap sampel plaintext. Berikut merupakan hasil dari pengujian performa untuk masing-masing parameter.

Memory usage, dari hasil proses implementasi diketahui bahwa memori yang digunakan untuk menjalankan program pada prototipe modul enkripsi/dekripsi adalah flash memory sebesar 12,25 kB atau 9,57% dari total flash memory

yang dimiliki (128 kB) dan RAM sebesar 18,92 kB atau sekitar 94,6% dari total SRAM yang dimiliki (20 kB).

Clock cycles, pengujian ini bertujuan untuk mengetahui berapa banyak cycles yang dibutuhkan untuk menjalankan program pada prototipe modul enkripsi/dekripsi. Pengujian dilakukan pada proses inisialisasi kunci, proses enkripsi, dan proses dekripsi. Gambar 10, Gambar 11, dan Gambar 12 menunjukkan hasil dari pengujian clock cycles yang telah dilakukan.

Gambar 10. Grafik Rata-rata Hasil Pengujian

Clock Cycles pada Proses Inisialisasi Kunci

Gambar 11. Grafik Rata-rata Hasil Pengujian

Clock Cycles pada Proses Enkripsi

Gambar 12. Grafik Rata-rata Hasil Pengujian

Clock Cycles pada Proses Dekripsi

Execution time, pengujian ini bertujuan untuk mengetahui waktu yang dibutuhkan untuk menyelesaikan suatu proses pada program. Pengujian dilakukan pada proses inisialisasi kunci, proses enkripsi, dan proses dekripsi. Gambar 13 dan Gambar 14 menunjukkan hasil dari pengujian execution time yang telah dilakukan.

(6)

20

Gambar 14. Grafik Rata-rata Hasil Pengujian

Execution Time pada Proses Enkripsi dan Dekripsi

Throughput, pengujian ini bertujuan untuk mengetahui rata-rata jumlah data yang dapat dikirimkan dalam setiap detiknya. Sesuai dengan skenario pengujian yang digunakan, pada Gambar 15 menunjukkan data hasil pengujian

throughput yang dilakukan.

Gambar 15. Grafik Rata-rata Hasil Pengujian

Throughput pada Proses Enkripsi dan Dekripsi

IV.

KESIMPULAN

Berdasarkan penelitian yang telah dilakukan, dapat diambil kesimpulan sebagai berikut:

 Hasil implementasi algoritma Blowfish pada mikrokontroler STM32F103 sebagai prototipe modul enkripsi/dekripsi telah dilakukan dengan benar, terbukti dengan hasil pengujian tes vektor pada prototipe I yang telah dilakukan. Serta, implementasi API dan penggunaan protokol komunikasi serial sebagai antarmuka komunikasi juga telah berjalan dengan baik, terbukti dengan hasil pengujian pada prototipe II. Prototipe modul enkripsi/dekripsi dapat diakses melalui perangkat host yang berbeda yaitu menggunakan Notebook/PC dan Arduino Uno.

 Berdasarkan hasil pengujian performa yang telah dilakukan, didapatkan hasil bahwa prototipe modul enkripsi/dekripsi yang dibangun memiliki performa yang relatif baik, dibuktikan dari data hasil pengujian sebagai berikut:

a.

Penggunaan memori pada prototipe modul enkripsi/dekripsi ini yaitu sebesar 12,25 kB atau sekitar 9,57% dari total flash memory

yang dimiliki (128 kB).

b.

Pada pengujian clock cycles, untuk proses inisialisasi kunci, panjang kunci yang digunakan tidak terlalu berpengaruh terhadap jumlah clock cycles yang dibutuhkan untuk melakukan proses inisialisasi kunci. Sedangkan pada proses enkripsi dan dekripsi, jumlah clock cycles pada setiap sampel

plaintext yang digunakan selalu konstan dan berbanding lurus dengan panjang data yang diproses.

c.

Pada pengujian execution time, untuk proses inisialisasi kunci, panjang kunci yang digunakan tidak terlalu berpengaruh terhadap waktu yang dibutuhkan untuk melakukan proses inisialisasi kunci. Sedangkan pada proses enkripsi dan dekripsi, execution time

berbanding lurus dengan panjang data yang diproses.

d.

Pada pengujian throughput, dihasilkan bahwa

throughput proses enkripsi selalu lebih besar dari throughput proses dekripsi untuk panjang data yang sama.

REFERENSI

[1] M. Barr, Programming Embedded Systems in C and C++, no. January. 1999.

[2] M. A. Murillo-Escobar, C. Cruz-Hernández, F. Abundiz-Pérez, and R. M. López-Gutiérrez, “Implementation of an improved chaotic encryption algorithm for real-time embedded systems by using a 32-bit microcontroller,” Microprocess. Microsyst., vol. 45, pp. 297–309, 2016.

[3] P. Kocher, R. Lee, G. McGraw, and A. Raghunathan, “Security as a new dimension in embedded system design,” Proc. 41st Annu. Des. Autom. Conf., pp. 753–760, 2004.

[4] N. B. F. Silva, D. F. Pigatto, P. S. Martins, and K. R. L. J. C. Branco, “Case studies of performance evaluation of cryptographic algorithms for an embedded system and a general purpose computer,” J. Netw. Comput. Appl., vol. 60, pp. 130–143, 2016. [5] R. Bhanot and R. Hans, “A review and comparative analysis of various encryption algorithms,” Int. J. Secur. its Appl., vol. 9, no. 4, pp. 289–306, 2015. [6] M. Mathur, “Comparison between DES , 3DES ,

(7)

21 Conf. New Horizons IT, pp. 143–148, 2013.

[7] V. B. Patil, P. U. L. Bombale, and P. H. Dixit, “Implementation of AES algorithm on ARM processor for wireless network,” vol. 2, no. 8, pp. 3204–3209, 2013.

[8] STMicroelectronics, “STM32F103x8,” no. August, pp. 1–117, 2015.

[9] B. Schneier, “Description of a new variable-length key, 64-bit block cipher (Blowfish),” 1994, pp. 191–204.

[10] B. Schneier, Applied Cryptography. Protocols. Algorithm and Source Code in C. 2nd Edition., Second Edi. USA John Willey and Sons. Inc., 1996. [11] L. E. Frenzel Jr, Handbook of Serial

Communications Interfaces. 2014.

[12] Texas Instruments, “Interface Circuits for TIA/EIA-232-F,” Advanced Packaging, vol. 77, no. August. pp. 63–64, 2007.

[13] A. Dennis, B. H. Wixom, and R. M. Roth, System Analysis and Design. 2012.

Gambar

Gambar 2. Mikrokontroler STM32F103
Gambar 3. Gambaran Umum Sistem dengan Host  Notebook/PC
Gambar 5. Contoh Pengiriman Plaintext pada  Aplikasi Berbasis Desktop
Gambar  13  dan  Gambar  14  menunjukkan  hasil  dari  pengujian  execution  time  yang  telah  dilakukan
+2

Referensi

Dokumen terkait

Ber dasar kan Ber ita Acar a Penetapan Daftar Pendek (Shor t List) Nomor :050/ 06/ PBJ-Kons/ SMP- WAS/ 08/ VII/ 2011 tanggal 25 Juli 2011 dengan ini diumumkan Hasil Evaluasi

PUSAT PENGADAAN SECARA ELEKTRONIK UNIT LAYANAN PENGADAAN DAERAH KELOMPOK KERJA PROVINSI KEPULAUAN RIAU2. KPKNL

Hasil uji statistik didapatkan p-value = 0,0001 <  = 0,05 maka Ho ditolak dengan demikian dapat disimpulkan bahwa ada pengaruh yang signifikan antara

Praktik Pengalaman Lapangan adalah semua kegiatan kurikuler yang harus dilakukan oleh mahasiswa praktikan, sebagai pelatihan untuk menerapkan teori yang diperoleh dalam

Visualisasi bangun ruang dapat dilihat secara lebih nyata melalui software Geogebra sehingga siswa tidak menghabiskan waktu dalam menggambar bangun ruang dan

Menyatakan dengan sesungguhnya bahwa penulisan hukum (skripsi) berjudul : ANALISIS KETERANGAN SAKSI VERBALISAN SEBAGAI AKIBAT PENCABUTAN BERITA ACARA PEMERIKSAAN

 Marketing, Contracting, Customer Relationship Skills, Kemampuan menjual tidak hanya dimiliki oleh marketer saja, akan tetapi manajer proyek harus memiliki kemampuan untuk

Properties Window atau jendela properties adalah jendela yang memuat semua informasi mengenai objek, yang terdapat dalam aplikasi Microsoft Visual Basic 6.0.. Properties adalah