Seminar Nasional Teknologi Informasi dan Komuniksi (SNASTIKOM 2014) ISBN: 978-602-19837-5-1
8 I Computer Security
Implementasi Enkripsi dengan Metode Blowfish
pada Perangkat Lunak Administrasi Sekolah Berbasis Website
Awan Setiawan,
Iwan Abadi, Ima Siti Maryam
Jurusan Teaknik Informatika Fakultas Teknik Universitas Langlangbuana Bandung
Abstract
Perangkat Lunak Administrasi Sekolah dalam pengelolaan Control Admin (Data Siswa, Data Staff Mengajar, Data Berita Sekolah) dan Control Guru (Data Nilai dan Absensi) dilakukan Pengamanan Data dengan cara Enkripsi Data. Pengamanan dilakukan agar data yang rentan terhadap perubahan yang dilakukan oleh orang yang tidak berhak tidak terjadi. Enkripsi data dilakukan menggunakan Metode Algoritma Blowfish. Algoritma Blowfish termasuk algoritma kunci simetri yang dalam proses enkripsi dan deskripsi menggunakan kunci yang sama. Dalam algoritmanya menggunakan 16 putaran agar data tersebut tidak dapat dibongkar.
Kata kunci: Enkripsi Blowfish, Keamanan Data,
Prangkat Lunak Administrasi.
1. Pendahuluan
Data merupakan asset yang sangat berharga bagi suatu organisasi perusahaan maupun sebuah instansi. Data yang sensitive sebaiknya dikontrol terhadap akses yang tidak mempunyai hak agar data tersebut terjaga kerahasiaanya, tidak dapat dirubah oleh sembarang orang serta dapat tersedia apabila diperlukan.
Salah satu bentuk pengontrolan terhadap data yaitu dengan meng-Enkripsi data menjadi data yang tidak mudah dimengerti dengan menggunakan kunci tertentu.
Umumnya berdasarkan kesamaan kuncinya algoritma sandi dibedakan menjadi dua, yaitu kunci-simetris dan kunci-asimetris. Algoritma yang termasuk kunci simetris salah satunya yaitu Blowfish. Algoritma yang termasuk kunci Asimetris yaitu: Knapsack dan lain-lain. Dalam kesempatan ini penulis melakukan Implementasi Enkripsi tehadap Prangkat Lunak Administrasi Sekolah pada Madrasah Aliyah Al-Mukhlisin Berbasis Website agar data yang rentan terhadap perubahan oleh orang yang tidak berhak diharapkan tidak terjadi.
Penelitian ini bertujuan untuk: Memberikan control akses data, karena dengan Enkripsi Blowfish tidak semua orang dapat membuka atau masuk ke data yang di enkripsi, hanya yang mempunyai kunci yang dapat masuk.
2. Landasan Teori 2.1 Kriptografi
Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan [SCH96]. Keamanan pesan diperoleh dengan menyandikanya menjadi pesan yang tidak mempunyai makna (Rinaldi Munir, Matematika Diskrit : 203).
2.2 Blowfish
Blowfish atau yang disebut juga “OpenPGP .Chiper.4”
adalah algoritma kunci simetrik chiper blok yang dirancang pada tahun 1993 oleh Bruce Schneire untuk mengganti DES (Data Encryption Standar). Algoritma Blowfish dibuat untuk digunakan pada computer yang mempunyai microprosesor besar (32-bit keatas dengan cache data yang besar).Blowfish dirancang dan diharapkan mempunyai kriteria perancangan yang diinginkan sebagai berikut:
1. Cepat, Blowfish melakukan enkripsi data pada microprosesor 32-bit dengan rate 26 clock cycles ber byte.
2. Compact, Blowfish dapat dijalankan pada memory kurang dari 5K.
3. Sederhana, Blowfish hanya menggunakan oprasi – oprasi sederhana seperti penambahan, XOR dan lookup table pada operan 32 bit.
4. Memiliki tingkat yang bervariasi, panjang kunci yang digunakan oleh Blowfish dapat bervariasi dan bisa sampai sepanjang minimal 32-bit dan maksimal 448-bit, Multiple 8 bit, default 128 bit. Namun dalam penerapanya seringkali algoritma ini menjadi tidak optimal. Karena strategi implementasi yang tidak tepat. Algoritma blowfish akan lebih optimal jika digunakan untuk aplikasi yang tidak sering berganti kunci seperti jaringan komunikasi atau enkripsi file otomatis.
2.3 Struktur Algoritma Blowfish
Blowfish merupakan blok chiper 64 bit dengan panjang kunci variable. Algoritma ini terdiri dari dua bagian : key expansion atau peluasan kunci dan enkripsi data.
1. Key-Expansion
Berfungsi merubah kunci (Minimum 32-bit, maksimum 448-bit) menjadi beberapa array subkunci (subkey) dengan total 4168 byte.
2 Enkripsi Data
Terdiri dari itersi fungsi sederhana (Fiestel Network) sebanyak 16 kali putaran. Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi kunci dan data-dependent. Semua operasi adalah penambahan (addition) dan XOR pada variable 32-bit. Operasi tambahan lainya hanyalah 4 penelusuran table (table lookup) array berindeks untuk setiap putaran.
Seminar Nasional Teknologi Informasi dan Komuniksi (SNASTIKOM 2014) ISBN: 978-602-19837-5-1
9 I Computer Security
Empat 32-bit S-box masing-masing mempunyai 256 entri :
3. Plainteks yang akan dienkripsi diasumsikan sebagai masukan, Plainteks tersebut diambil sebanyak 64-bit, dan apabila kurang dari 64-bit maka kita tambahkan bitnya, supaya dalam oprasi nanti sesuai dengan datanya.
4. Hasil pengambilan tadi dibagi 2, 32 bit pertama disebut XL, 32-bit yang kedua disebut XR.
5. Selanjutnya lakukan operasi XL = XL xor Pi dan XR = F(XL) xor XR
6. Hasil dari operasi diatas ditukar XL menjadi XR dan XR menjadi XL.
7. Lakukan sebanyak 16 kali peluang yang ke 16 dilakukan lagi proses penukaran XL dan XR
8. Pada proses yang ke 17 lakukan operasi untuk XR = XR xor P17 dan XL = XL xor P18.
9. Proses terahir satukan kembali XL dan XR sehingga menjadi 64-bit kembali.
Blowfish menggunakan jaringan Fiestel yang terdiri dari 16 buah putaran. Sekema jaringan Fiestel dapat dilihat pada gambar 1berikut
Gambar 1 Jaringan Fiestel untuk algoritma Blowfish
Algoritma blowfish memiliki keunikan dalam hal proses deskripsi, yaitu proses deskripsi dilakukan dengan urutan yang sama persis dengan proses enkripsi, hanya saja pada
proses deskripsi P1, P2, …,P18 digunakan dalam urutan yang
terbalik. Dalam Algoritma blowfish juga terdapat fungsi f. berikut mengenai fungsi f tersebut.
Gambar 2 Fungsi f dalam algoritma Blowfish
Sebelumnya dijelaskan bahwa aray P terdiri dari 18 subkunci. Subkunci dihitung menggunakan algoritma Blowfish, metodenya adalah sebagai beriku :
1. Pertama-tama inisialisasi P-array dan kemudian empat S-box secara berurutan dengan string yang tepat. String ini terdiri atas digit hexsadesimal dari Pi.
2. XOR P1 dengan 32-bit pertama kunci, XOR P2 dengan 32-bit kedua dari kunci dan seterusnya untuk setiap bit dari kunci (sampai P18). Ulangi terhadap bit kunci sampai seluruh P-array di XOR dengan bit kunci.
3. Enkrip semua string nol dengan algoritma Blowfish dengan menggunakan subkunci seperti dijelaskan pada langkah (1) dan (2).
4. Ganti keluaran P1 dan P2 dengan keluaran dari langkah (3)
5. Enkrip keluaran dari langkah (3) dengan algoritma blowfish dengan subkunci yang sudah dimodifikasi 6. Ganti P3 dan P4 dengan keluaran dari langkah (5) 7. Lanjutkan proses tersebut, ganti seluruh elemen dari
P-array. Kemudian seluruh keempat S-box berurutan, dengan keluaran yang berubah secara kontiyu dari algoritma Blowfish.
Secara keseluruhan terdapat 521 iterasi atau putaran yang dibutuhkan untuk membangkitkan seluruh upa-kunci yang dibutuhkan. Aplikasi kemudian dapat menyimpan upa-kunci yang telah dihasilkan. Proses pembangkitan kunci ini tidah perlu selalu dilakukan setiap saat.
2.4 Perangkat Lunak
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer. Sedangkan prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses
informasi („Oberin, 1999).
Pada pembuatan perangkat lunak, model proses yang digunakan yaitu:
Unified Process
Gambar 3 RUP Life Cycle (Ambler, 2005).
2.5 UML
UML adalah bahasa pemodelan standar atau kumpulan tektik-teknik untuk menspesifikasi, mem-visualisasi, meng-konstruksi dan mendokumentasi hasil kerja dalam pengembangan perangkat lunak (Fowler, 2004).
Ada beberapa jenis diagram yang disediakan dalam UML, antara lain adalah:
1. Use-case diagram. Menggambarkan interaksi antara pengguna dengan sebuah perangkat lunak.
Seminar Nasional Teknologi Informasi dan Komuniksi (SNASTIKOM 2014) ISBN: 978-602-19837-5-1
10 I Computer Security
3. Class diagram. Menggambarkan class, fitur dan hubungan-hubungan yng terjadi.
4. Sequence diagram. Menggambarkan interaksi antar obyek dengan penekanan pada urutan proses atau kejadian. 5. State machine diagram. Menggambarkan bagaimana suatu kejadian mengubah obyek selama masa hidup obyek tersebut.
6. Component diagram.
Menggambarkan struktur dan koneksi komponen.
3. Analisis Dan Perancangan
3.1Work Flow Enkripsi Data Perangkat Lunak Administrasi Sekolah
Work Flow yang dilakukan admin yaitu mulai dari buka aplikasi,login,control panel, enkripsi data, sampai dengan tutup aplikasi.
Work Flow yang dilakukan guru hampir sama dengan admin, namun guru melakukan registrasi terlebih dulu, apabila belum punya username dan password.
Untuk lebih jelasnya, berikut gambar work flow enkripsi data perangkat lunak administrasi sekolah.
Gambar 4 Work Flow Enkripsi Data pada Perangkat Lunak
3.2Analisis Sistem
3.2.1 Algoritma Blowfish
X sebagai masukan (input) Panjang 64 bit, kemudian x dibagi ½ yaitu kiri (XL) dan kanan (XR) yang masing-masing Panjang 32 bit. Setelah itu, X mengalami operasi XOR dan iterasi sebanyak 16 kali. Kemudian XL dan XR ditukarkan, setelah itu dilakukan proses XOR. Kemudian gabung hasilnya XL dan XR, sehingga didapat byte chipertextnya. Proses deskripsi sama dengan proses enkripsi, tetapi menggunakan P-array dengan urutan terbalik.
Gambar 5 Flowchart Algoritma Blowfish
3.2.2 Algoritma Enkripsi dan Deskripsi Data Siswa
Proses algoritma enkripsi deskripsi data siswa alurnya seperti pada algoritma blowfish, akan tetapi ini sudah di implementasikan pada data siswa. Flow diagram dapat dilihat pada Gambar 6.
Gambar 6 Flowchart Enkripsi dan Deskripsi Data Siswa
3.2.3 Langkah-langkah untuk enkripsi data siswa dari database
- Memanggil algoritma blowfish - Membuat sebuah objek dan class - Koneksi ke database
- Memanggil data siswa dari database - Menetukan kunci
- Menginisialisasi data siswa yang berada di database - Mengenkripsi data siswa
- Write enkripsi data siswa
Seminar Nasional Teknologi Informasi dan Komuniksi (SNASTIKOM 2014) ISBN: 978-602-19837-5-1
11 I Computer Security
3.2.4 Langkah-langkah untuk deskripsi data siswa dari database
Admin yang akan mengelola data siswa terlebih dahulu menginputkan kunci, kemudian program memproses kunci yang di inputkan admin. Jika kunci kosong dan salah maka admin akan tetap pada posisi data yang di enkripsi, namun apabila kunci sama maka program akan memproses kunci kemudian:
-Data yang telah di enkripsi diubah menjadi data yang di deskripsi
-Kemudian ditampilkan ke halaman kelola data siswa
Berikut penulisan enkripsi data siswa di ubah ke deskripsi data
3.2.5 Usecase Diagram Sistem
Usecase diagram Enkripsi Data Kontrol Admin dan Guru
Terdapat Buka aplikasi,Login, Control Panel Admin, Control panel Guru, Tutup aplikasi, Log out,Database,Data siswa, Data staff Pengajar, Data nilai dan absensi, Data berita sekolah Registrasi guru, Enkripsi blowfish.
Berikut diagram Use case Admin dan Guru dilakukan Enkripsi Data.
Gambar 7 Usecase Diagram Sistem Control Admin dan Guru dilakukan Enkripsi data
3.2.6 Activity Diagram Sistem
Admin dan Guru masuk sistem untuk mengelola data
Menjelaskan tentang bagaimana Admin pada saat login. Sebelum admin masuk ke sistem,mengelola data, sampai admin dapat keluar dari aplikasi.
Pada control Guru dilakukan proses yang sama, namun pada control guru, hanya mengelola data nilai dan absensi.
Gambar 8 Activity Diagram Login Admin dan Guru Masuk Sistem Kelola Data
3.3Sequence Diagram Sistem Sequence Diagram Admin Login kelola Data Siswa
Admin mulanya menginputkan username dan
password,enkripsi data menggunakan algoritma blowfish, input kunci sampai keluar aplikasi.
Untuk lebih jelasnya berikut diagram sequence admin untuk mengelola data siswa.
Gambar 9 Sequence Diagram Admin Login Kelola Data Siswa
3.3.1 Class diagram Sistem
Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain.
Seminar Nasional Teknologi Informasi dan Komuniksi (SNASTIKOM 2014) ISBN: 978-602-19837-5-1
12 I Computer Security
3.4 Perancangan Sistem3.4.1 Perancangan Antar Muka Sistem
1. Form Enkripsi Data Siswa
Form ini merupakan form data siswa yang sudah dienkripsi, admin harus input kunci terlebih dahulu untuk mengelola data siswa.
Gambar 11 Form Enkripsi Data Siswa
2. Form Deskripsi dan Kelola Data siswa
Form ini merupakan form data siswa yang sudah dideskripsi, admin dapat melihat data siswa dan dapat mengelola data tersebut.
Gambar 12 Form Deskripsi dan Kelola Data Siswa
4. Implementasi Dan Pengujian 4.1 Implementasi Data Siswa
1. Tampilan Data Siswa yang dienkripsi
Pada halaman ini data siswa telah dienkripsi, untuk mengelola data siswa, admin harus input kunci terlebih dahulu.
Gambar 13 Tampilan Enkripsi Data Siswa
2. Tampilan Data siswa yang sudah di deskripsi dan admin dapat mengelola data siswa
3.
Gambar 14 Tampilan Deskripsi dan Mengelola Data Siswa 4.2Pengujian
Pengujian menjelaskan tentang kebutuhan fungsional apa saja yang akan diuji (kelas uji), apa saja kasus ujiny a(butir ujinya), apa jenis fungsinya, teknik pengujian yang akan digunakan.
Seminar Nasional Teknologi Informasi dan Komuniksi (SNASTIKOM 2014) ISBN: 978-602-19837-5-1
13 I Computer Security
4.2.1 Deskripsi dan hasil pengujian
Deskripsi hasil pengujian Data Siswa.
Kesimpulan pengujian terhadap Implementasi Enkripsi dengan metode blowfish pada prangkat lunak administrasi sekolah yang dibangun untuk keamanan data dapat berjalan dengan baik, Admin dan guru tidak dapat masuk untuk mengelola data apabila kunci yang dimasukan salah, Pada proses mulai dari buka aplikasi, login admin, tersedianya halaman control panel admin, registrasi guru, login guru, tersedianya control panel guru dan logout guru, dan tutup aplikasi berjalan dengan baik.
5. KESIMPULAN
5.1 Kesimpulan
Implementasi Enkripsi Data yang dilakukan pada Perangkat Lunak Administrasi Sekolah Berbasis Website
yang dibangun didapatkan hasil bahwa, Perangkat Lunak tersebut dalam hal keamanan data terhadap orang yang tidak berhak dapat diatasi dengan baik, salah satunya dengan mengenkripsi data. Enkripsi data dengan menggunakan metode algoritma blowfish. Agar Aman dari pembongkaran data maka dalam algoritmanya menggunakan 16 putaran. Sehingga data tidak mudah dibongkar. Admin dan Guru tidak dapat masuk untuk mengelola Data (Data Siswa, Data Staff Mengajar, Data Berita Sekolah) tanpa menginputkan kunci terlebih dahulu, serta Guru tidak dapat mengelola Data Nilai dan Absensi,sebelum guru tersebut menginputkan kunci.
DAFTAR PUSTAKA
1. Munir Rinaldi. “Matematika Diskrit”,
PenerbitINFORMATIKA, Bandung, 2009.
2. Sutanto, Alim, Candra.,”Penggunaan Algoritma Blowfish
dalam kriptografi”,Institut Teknologi Bandung.
3. Kadir, Abdul.,”Tuntuna Praktis Belajar Database
Menggunakan MySQL”, PenerbitANDI,
Yogyakarta,2008.
4. Mulyanto, R. Aunur.,”Rekayasa Perangkat Lunak Jilid
1”, Penerbit Direktorat Pembinaan Sekolah Menengah
Kejuruan, 2008.
5. Sidik, Betha, Ir., “MySQL Untuk Pengguna,
Adminstrator dan Pengembang Aplikasi Web”,
PenerbitInformatika, Bandung, 2005