keamanan sms berbasis androidrepository.umrah.ac.id/3789/1/nuragusyani-140155201022...algoritma...
TRANSCRIPT
1
Enkripsi Pesan Menggunakan Algoritma Blowfish dan RSA untuk
Keamanan SMS Berbasis Android
Nur agusyani1, Nerfita Nikentari2, Nurul Hayaty3
1,2,3Jurusan Teknik Informatika, Fakultas Teknik,
Universitas Maritim Raja Ali Haji 1,2,3Jl. Politeknik Senggarang, Tanjungpinang 29100
Corresponding Author : [email protected]
Abstract- SMS (Short Message Service) is no stranger to the public, so many
people use the SMS feature to interact with other people, and become an
alternative if the cellular person they want to go to is off and when people activate
their cellular, there will be a notification incoming message. Of all the
conveniences, of course there is a bad side that we can get. One of them is
security in sending SMS whose contents are only certain people who can know it.
To overcome this problem the author wants to improve SMS security by applying
the Blowfish Algorithm and RSA. The results of this study are that the messages
sent are not easy to read by others, thus fulfilling the confidentiality requirements
of data in cryptography.
Keywords: Cryptography, SMS, Blowfish, RSA, Android
Abstrak- SMS (Short Message Service) sudah tidak asing lagi dimata
masyarakat, banyak sekali orang menggunakan fitur SMS untuk berinteraksi
dengan orang lain, serta menjadi alternatif lain jika selular orang yang ingin dituju
dalam keadaan off dan saat orang mengaktifkan selular mereka, maka akan ada
notifikasi pesan yang masuk. Dari semua kemudahan itu tentu ada sisi buruk yang
kita dapat. Salah satunya adalah keamanan dalam mengirim SMS yang isinya
hanya orang tertentu saja yang boleh mengetahuinya. Untuk mengatasi masalah
tersebut penulis ingin meningkatkan keamanan SMS dengan menerapkan
Algoritma Blowfish dan RSA. Hasil dari penelitian ini adalah pesan yang dikirim
tidak mudah dibaca oleh orang lain, sehingga memenuhi syarat kerahasiaan data
dalam ilmu kriptografi.
Kata Kunci : Kriptografi, SMS, Blowfish, RSA, Android
I. PENDAHULUAN
a. Latar Belakang
SMS (Short Message Service) sudah tidak asing lagi dimata masyarakat,
banyak sekali orang menggunakan fitur SMS untuk berinteraksi dengan orang
lain, serta menjadi alternatif lain jika selular orang yang ingin dituju dalam
keadaan off dan saat orang mengaktifkan selular mereka, maka akan ada notifikasi
pesan yang masuk. Dari semua kemudahan itu tentu ada sisi buruk yang kita
dapat. Salah satunya adalah keamanan dalam mengirim SMS yang isinya hanya
orang tertentu saja yang boleh mengetahuinya. Seperti SMS yang kita kirim tidak
boleh diketahui oleh orang lain karna bersifat rahasia. Keamanan dalam
melakukan mengirim dan menerima pesan saat ini masih lemah, dikarenakan
adanya pihak – pihak yang tidak berwenang untuk mendapatkan informasi berupa
pesan SMS yang ada di Smartphone kita. Hal ini membuat kita sulit menjaga
privasi yang ada di Smartphone sehingga hal yang tidak perlu orang lain tahu
menjadi mudah diketahui orang lain.
2
Dalam tugas akhir ini penulis menerapkan Algoritma Blowfish dan RSA, yang
mana dalam pemilihan Algoritma Blowfish dikarenakan sampai saat ini belum
ada Cryptoanalyst yang dapat membongkar pesan tanpa kunci yang dienkripsi
dengan Algoritma Blowfish. Sedangkan RSA memiliki keamanan yang terletak
pada sulitnya memfaktorkan bilangan prima yang relatif besar. Dengan
menggabungkan kedua algoritma tersebut diharapkan teks SMS menjadi lebih
aman karena melalui 2 (dua) kali proses penyandian.
Pada penelitian yang dilakukan oleh Prafanto, (2016) mengatakan Algoritma
Blowfish termasuk kedalam chipper block dan sampai saat ini masih dianggap
aman karena belum ada attack yang benar-benar mematahkan algoritma Blowfish.
Namun pada penelitian juga menyarankan untuk menambahkan metode lain untuk
memperkuat hasil enkripsi dari Algoritma Blowfish dengan metode lain, sehingga
penulis menambahkan metode RSA untuk memperkuat kunci dalam mengenkripsi
pesan SMS.
b. Rumusan Masalah
Berdasarkan uraian latar belakang diatas, maka masalah yang dapat
dirumuskan yaitu bagaimana merancang dan membuat aplikasi android dengan
menggunakan Algoritma Blowfish dan RSA untuk mengamankan pesan berupa
SMS berbasis Android yang dapat membantu user dalam menjaga privasinya.
c. Batasan Masalah
Berdasarkan rumusan masalah di atas maka terdapat batasan masalah dalam
penelitian ini yang menjadi acuan sehingga penelitian menjadi terarah. Adapun
batasan masalah sebagai berikut:
1. Data yang dienkripsi berupa pesan teks.
2. Penelitian ini tidak memfokuskan penyerangan jaringan pengiriman SMS
pada operator.
3. Aplikasi hanya dibuat untuk merahasiakan pesan teks dengan cara enkripsi
menggunakan Algoritma Blowfish dan RSA.
d. Tujuan Penelitian
Tujuan dari penelitian ini adalah untuk mengimplementasikan dan
mengamankan pesan berupa SMS berbasis android dengan menggunakan
Algoritma Blowfish dan RSA.
e. Penelitian Terdahulu
Sebuah sistem keamanan sangat diperlukan bagi setiap orang demi menjaga
privasi yang seharusnya tidak perlu diketahui orang lain. Pada penelitian yang
dilakukan oleh Prafanto, (2016) dengan judul “Penerapan Algoritma Blowfish
Untuk Keamanan SMS Pada Android” juga mengatakan Algoritma Blowfish
termasuk kedalam chipper block dan sampai saat ini masih dianggap aman karena
belum ada attack yang benar-benar mematahkan algoritma Blowfish. Namun pada
penelitian juga menyarankan untuk menambahkan metode lain untuk memperkuat
hasil enkripsi dari Algoritma Blowfish dengan metode lain, sehingga penulis
menambahkan metode RSA untuk memperkuat kunci dalam mengenkripsi pesan
SMS.
3
Pada penelitian yang di lakukan oleh Rahmah & Andoko, (2015) dengan judul
“Rancang Bangun Aplikasi Enkripsi SMS (Short Message Service) dengan
Metode RSA pada Telepon Seluler Berbasis Android “ penelitian ini bertujuan
untuk mengenkripsi SMS menggunakan metode RSA dengan melakukan
algoritma enkripsi maupun deskripsi, teknik ini digunakan untuk mengkonversi
data kedalam bentuk kode-kode tertentu, dengan tujuan agar informasi yang
tersimpan tidak dapat terbaca oleh siapa pun kecuali orang-orang yang berhak.
Hasil dalam penelitian ini juga menunjukkan bahwa aplikasi enkripsi SMS
menggunakan RSA mampu mengacak pesan sehingga sulit untuk dibobol. Namun
jika jumlah pesan pada SMS mengalami peningkatan maka akan dibatasi jumlah
pesan maksimal 30 karakter.
Pada penelitian yang di lakukan oleh Wibowo et al. (2015) dengan judul
“Analisis dan Implementasi Enkripsi dan Dekripsi Ganda Kombinasi Algoritma
Blowfish dan Algoritma Triple DES untuk SMS pada Smartphone Android”
Mengatakan Algoritma blowfish dan Algoritma Triple DES di implementasikan
pada smartphone android dapat mengenkripsi SMS sebelum dikirim dan
mendekripsi sms ketika diterima. Dengan menggunakan enkripsi ganda keamanan
SMS menjadi lebih terjamin dan waktu enkripsi dan dekripsi tidak memakan
waktu yang lama serta nilai Avalanche Effect yang baik. Dilihat dari nilai
Avalanche effect yang berkisar antara 43 % - 48 %.
Pada penelitian yang di lakukan oleh Rao, (2012) dengan judul “Security
Providing using Blowfish, RSA and SHA-512 Algorithms” mengatakan keamanan
baru pada transaksi dapat dirancang dengan menggunakan kombinasi dari teknik
kriptografi simetrik dan asimetrik. Tiga kriptografi seperti integritas, kerahasiaan
dan otentikasi. Perintah ini dapat dicapai dengan bantuan Secure Hash Algorithm,
Algoritma Blowfish dan Algoritma RSA. Menggunakan Blowfish untuk enkripsi,
algoritma RSA untuk otentikasi dan SHA-512 untuk integritas. Keamanan yang
baru ini telah dirancang untuk keamanan yang lebih baik dengan menggunakan
kombinasi teknik kriptografi simetrik dan asimetrik integritas.
Pada penelitian yang dilakukan oleh Hatta et al. (2016) dengan judul
”Implementasi Algoritma Blowfish dan Vigenere Chiper pada Aplikasi SMS
Berbasis Android” mengatakan bahwa untuk pengamanan isi pesan SMS melalui
aplikasi ponsel dengan cara melakukan penyandian (enkripsi) dengan Algoritma
Blowfish dan Vigenere Chiper dapat menghasilkan chipertext yang semakin rumit
dan tanpa kata kunci yang tepat pesan tidak dapat dibaca dengan jelas.
f. Landasan Teori
• SMS (Short Messaging Service)
Short Messaging Service (SMS) merupakan salah satu fitur dari GSM yang
dikembangkan dan distandarisasi oleh ETSI. Pada saat kita mengirim pesan SMS
dari handphone, maka pesan SMS tersebut tidak langsung dikirim ke handphone
tujuan, akan tetapi terlebih dahulu dikirim ke SMS Center (SMSC) dengan prinsip
Store and Forward, setelah itu baru dikirimkan ke handphone yang dituju. Proses
pengiriman SMS dapat dilihat pada gambar 1 (Prafanto, 2016).
4
Gambar 1. Skema Proses SMS
SMS bekerja dalam jaringan nirkabel. Dalam aplikasinya, pentrasmisian
SMS membutuhkan beberapa komponen khusus untuk mengirimkan pesan
sampai ke tujuan. Komponen yang diperlukan untuk melakukan komunikasi
SMS diantaranya adalah :
a. BTS (Base Transceiver Station) BTS ini merupakan sebuah perangkat yang
memfasilitasi komunikasi nirkabel antara perangkat user dengan jaringan.
Perangkat user ini dapat meliputi telepon selular, komputer dengan
koneksi internet nirkabel, dan lain-lain.
b. MSC (Mobile Switching Center) MSC ini adalah sebuah noda layanan
pengiriman utama bagi GSM/CDMA. Perangkat ini berfungsi untuk
routing panggilan suara, SMS, FAX, maupun conference call.
c. SMSC (SMS Service Center) SMSC adalah sebuah perangkat yang
terpasang pada jaringan utama SMSC ini berfungsi untuk menerima SMS
dan menelusuri nomor tujuan, dan mengirimkannya ke perangkat tujuan
(Telepon Seluler).
• Kriptografi
Kriptografi (cryptography) berasal dari bahasa Yunani, terdiri dari dua suku
kata yaitu Crypto dan Graphia. Crypto artinya menyembunyikan, sedangkan Graphia artinya tulisan. Kriptografi adalah ilmu yang mempelajari teknik-teknik
matematika yang berhubungan dengan aspek keamanan informasi, seperti
kerahasiaan data, keabsahan data, integritas data, serta autentikasi data. Untuk
melakukan kriptografi digunakan algoritma kriptografi. Algoritma kriptografi
terdiri dari dua bagian, yaitu fungsi enkripsi dan dekripsi. Enkripsi adalah proses
untuk mengubah plaintext menjadi ciphertext, sedangkan dekripsi adalah
kebalikannya yaitu mengubah ciphertext menjadi plaintext. Terdapat dua jenis
algoritma kriptografi berdasar jenis kuncinya, yaitu :
a. Algoritma Simetri : adalah algoritma yang menggunakan kunci enkripsi
yang sama dengan kunci dekripsinya. Algoritma standar yang
menggunakan prinsip kunci simetri antara lain OTP, DES, RC2, RC4,
RC5, RC6, IDEA, Twofish, Blowfish, dan lain lain.
5
b. Algoritma Asimetri : adalah algoritma yang kunci untuk enkripsi dan
dekripsinya jauh berbeda. Algoritma standar yang termasuk algoritma
asimetri adalah ECC, LUC, RSA, EI, Gamal dan DH.
Algoritma kriptografi ada dua, yaitu:
1. Plaintext dan Ciphertext : Pesan adalah data atau informasi yang dapat dibaca
dan dimengerti maknanya. Nama lain untuk pesan adalah plainteks atau teks
yang dapat dibaca dengan jelas. Pesan dapat berupa data atau informasi yang
dikirim atau yang disimpan di dalam media perekaman. Pesan yang tersimpan
tidak hanya berupa teks, tetapi dapat berbentuk gambar, suara atau bunyi,
dokumen, dan video. Agar pesan tidak dapat dimengerti maknanya oleh pihak
lain, maka pesan perlu disandikan kebentuk lain yang tidak dapat dipahami.
Bentuk pesan yang tersandi disebut cipherteks. Cipherteks harus dapat diubah
kembali menjadi plainteks semula agar pesan yang diterima bisa dibaca.
2. Enkripsi dan Dekripsi : Proses menyandikan plaintext menjadi cipherteks
disebut enkripsi. Sedangkan proses mengembalikan ciphertext menjadi
plaintext semula dinamakan dekripsi. Enkripsi dan dekripsi dapat diterapkan
baik pada pesan yang dikirim maupun pada pesan tersimpan. Istilah encryption
of data in motion mengacu pada enkripsi pesan yang ditransmisikan melalui
saluran komunikasi, sedangkan istilah encryption of data at-rest mengacu pada
enkripsi dokumen yang disimpan di dalam storage.
3. Tujuan Kriptografi : Ada empat tujuan dari ilmu kriptografi ini yang juga
merupakan aspek keamanan informasi yaitu:
a. Kerahasiaan adalah layanan yang digunakan untuk menjaga isi dari
informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia
untuk membuka atau mengupas informasi yang telah disandi.
b. Integritas data adalah berrhubungan dengan penjagaan dari perubahan
data secara tidak sah. Untuk menjaga integritas data, sistem harus
memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-
pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan
pensubsitusian data lain kedalam data yang sebenarnya.
c. Autentifikasi adalah berhubungan dengan identifikasi atau pengenalan,
baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak
yang saling berkomunikasi harus saling memperkenalkan diri. Informasi
yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya,
dan waktu pengiriman.
d. Non-repudiasi adalah usaha untuk mencegah terjadinya penyangkalan
terhadap pengiriman suatu informasi oleh yang orang mengirimkan atau
membuat (Hatta et al., 2016).
• Algoritma blowfish
Blowfish adalah kunci dengan panjang variabel, 64-bit block cipher. Algoritma
ini terdiri dari dua bagian: bagian ekspansi kunci dan bagian enkripsi data.
Ekspansi kunci mengkonversi kunci paling banyak 448 bit menjadi beberapa subkunci array sebesar 4168 byte.
Enkripsi data terjadi melalui jaringan Feistel 16-putaran. Setiap putaran terdiri
dari permutasi bergantung-kunci, dan substitusi bergantung pada kunci dan data.
Semua operasi adalah XOR dan tambahan pada kata-kata 32-bit. Satu-satunya
6
operasi tambahan adalah empat pencarian data array yang diindeks perputaran
(Schneier, 1996).
Pada saat Blowfish dirancang, diharapkan mempunyai kriteria perancangan
sebagai berikut :
a. Cepat, Blowfish melakukan enkripsi data pada microprocessors 32-bit
dengan rate 26 clock cycles per byte.
b. Compact (ringan), Blowfish dapat dijalankan pada memori kurang dari 5K.
c. Sederhana, Blowfish hanya menggunakan operasi-operasi sederhana:
penambahan, XOR, dan lookup tabel pada operan 32-bit.
d. Memiliki tingkat keamanan yang bervariasi, panjang kunci yang digunakan
oleh Blowfish dapat bervariasi dan bisa sampai sepanjang.
• Struktur Algoritma Blowfish
Blowfish menggunakan sejumlah besar subkunci. Kunci ini harus diprediksi
sebelum enkripsi atau dekripsi data. Langkah – langkahnya sebagai berikut:
Pembangkitan Kunci - Kunci
1. Terdapat kotak permutasi (P-box) yang terdiri dari 18 buah 32 bit subkunci:
P1,P2, P3, ... P18. P-box ini telah ditetapkan sejak awal, 4 buah P-box awal
adalah sebagai berikut:
P1 = 0x243f6a88
P2 = 0x85a308d3
P3 = 0x13198a2e
P4 = 0x03707344
2. XOR-kan P1 dengan 32 bit awal kunci, xorkan P2 dengan 32 bit berikutnya
dari kunci, dan teruskan hingga seluruh panjang kunci telah terxorkan.
3. Terdapat 64 bit dengan isi kosong, bit-bit tersebut dimasukkan ke langkah 2.
4. Gantikan P1 dan P2 dengan keluaran dari langkah 3.
5. Enkripsikan keluaran langkah 3 dengan langkah 2 kembali.
6. Gantikan P3 dan P4 dengan keluaran dari langkah 5
7. Lakukan seterusnya hingga seluruh P-box teracak sempurna.
8. Total keseluruhan, terdapat 521 iterasi untuk menghasilkan subkunci subkucni
yang dibutuhkan. Aplikasi hendaknya menyimpannya daripada menghasilkan
ulang subkunci-subkunci tersebut.
Enkripsi-Dekripsi Data
Proses enkripsi-dekripsi data pada algoritma blowfish sebagai berikut:
1. Masukan dari proses ini adalah 64 bit data yang diinisialkan “x”.
2. Bagi x menjadi 2 buah bagian sama besar, xL (x kiri) sepanjang 32 bit, dan xR
(x kanan) sepanjang 32 bit.
3. Lakukan iterasi sebanyak i=1 hingga i=16:
xL = xL XOR P[i]; (2,1) (2,1)
xR = F(xL) XOR xR; (2,2)
Swap(xL, xR); (2,3)
4. Fungsi F adalah sebagai berikut:
bagi xL menjadi 4 buah 8 bit a, b, c, dan d.
F(xL) = ((S[1,a] + S2[2,b] mod 232) XOR S[3,c]) + S[4,d] mod 232. (2,4) 5. Langkah terakhir adalah:
Swap(xL, xR); (2,5)
xL = xR XOR P[17]; (2,6)
xR = xL XOR P[18]; (2,7)
7
gabungkan xL dan xR menjadi 64 bit return hasil gabungan.
6. Pada proses dekripsi langkah-langkahnya sama persis dengan proses enkripsi,
namun hanya saja P-box digunakan dengan urutan yang terbalik
(Octamanullah, 1997) .
• Algoritma RSA
RSA merupakan algoritma kriptografi asimetris. Ditemukan pertama kali pada
tahun 1977 oleh Ron Rivest, Adi Shamir, dan Leonard Adleman. Nama RSA
sendiri diambil dari inisial nama depan ketiga penemunya tersebut. Sebagai
algoritma kunci publik, RSA mempunyai dua kunci, yaitu kunci publik dan kunci
pribadi. Kunci publik boleh diketahui oleh siapa saja, dan digunakan untuk proses
enkripsi. Sedangkan kunci pribadi hanya pihak - pihak tertentu saja yang boleh
mengetahuinya, dan digunakan untuk proses dekripsi. Keamanan sandi RSA
terletak pada sulitnya memfaktorkan bilangan yang besar. Sampai saat ini RSA
masih dipercaya dan digunakan secara luas di internet.
RSA adalah metode yang menggunakan perhitungan matematika yang rumit
dan disertai dengan kunci pengaman awal (dengan private key maupun dengan
public key) sehingga amat sulit untuk ditembus oleh hacker. Adapun prinsip
pengamanan metode ini adalah bagaimana sistem dapat mengamankan proses
penyimpanan dan pengiriman dokumen. Mula-mula dokumen dalam bentuk teks
dienkripsi dengan metode RSA.Sehingga dokumen tidak dapat dibaca oleh
siapapun, karena teks telah berubah menjadi susunan huruf yang teracak.
Dokumen yang susunan hurufnya telah teracak tersebut jika ingin dibaca oleh
pemilik dokumen, maka dokumen tersebut harus dibuka dengan dekripsi RSA
kembali (Sahara et al., 2017).
• Struktur Algoritma RSA
Pembangkitan Kunci
1. Pilih dua bilangan prima sembarang, p dan q secara acak. p ≠ q. Bilangan ini
harus cukup besar.
2. Hitung n = p . q (sebaiknya p ≠ q, sebab jika p = q maka n = p2 sehingga, p
dapat diperoleh dengan menarik akar pangkat dua dari n).
3. Hitung Φ(n) = (p - 1)(q - 1)
4. Pilih kunci public key , e yang relatif prima dengan Φ(n).
5. Bangkitkan kunci private dengan menggunakan persamaan (V), yaitu e . d = 1
(mod Φ(n)) ekivalen dengan e . d = k Φ(n)+1, sehingga secara sederhana d
dapat dihitung dengan d = 1 + kΦ(n) e.
Hasil dari algoritma di atas :
- Kunci public adalah pasangan (e,n)
- Kunci private adalah pasangan (d,n)
8
Metode Enkripsi
Langkah-langkah dalam mengenkripsi pesan:
1. Nyatakan pesan menjadi blok-blok plainteks: m1, m2, m3, … ( syarat: 0 < mi
< n – 1)
2. Hitung blok cipherteks ci untuk blok plainteks pi dengan persamaan
ci = mie mod n , dalam hal ini, e adalah kunci publik
Metode Dekripsi
Proses dekripsi dilakukan dengan menggunakan persamaan
mi = cid mod n, dalam hal ini, d adalah kunci privat.
• Android
Android merupakan sistem operasi (OS) untuk perangkat mobile berbasiskan
linux, yang dimodifikasi sedemikan rupa, sehingga dapat dijalankan dalam
perangkat seperti komputer tablet dan smartphone. Dikembangkan pertama kali
oleh Andorid.Inc, yang kemudian namanya digunakan sebagai nama proyek
sistem operasi Android.
Pada tahun 2005, Google membeli OS (Operating System) Android dari
Android.Inc, sebagai strategi untuk memasuki pasar mobile handset. Google
mengambil alih seluruh pengembangannya dan memperkerjakan Andy Rubin,
Rich Miner, Nick Sears dan Chris White. Andy Rubin sebagai pimpinan proyek
tersebut. Di bawah manajemen Google, android dan kode – kodenya dirilis secara
open source di bawah lisensi Apache. Google juga menyediakan platform terbuka,
agar para pengembang dapat menciptakan aplikasi mereka sendiri untuk perangkat
mobile, dan hal inilah yang membuat android tumbuh dengan cepat.
Android dikembangkan dengan modifikasi dari kernel linux, tujuannya agar
lebih ringan dan dapat dijalankan didalam sebuah perangkat mobile seperti
smartphone dan komputer tablet. Saat ini banyak sekali vendor – vendor besar
yang sudah menggunakan android sebagai operating system di perangkat mereka.
Jika dahulu Nokia dengan Syimbian-nya yang sempat menjadi market leader,
sekarang sudah tertinggal oleh Android sebagai sistem operasi smartphone (Ardi,
2013).
9
II. METODE PENELITIAN
• Diagram Alir Enkripsi Blowfish dan RSA
Mulai
Inisialisasi Pbox
P1...P18, Kunci (K),
K1, K2
Tentukan
(K) 64 bit
K/2 = K1 dan K2
P [1] = P[1] Xor K1[1]
P[i] = P[i] Xor K2[i]
Tentukan
String_Nol = 0
64 bit
NewP[1] = String_Nol Xor P[1]
NewP[i] = String_Nol Xor P[i]
Tukar NewP[1]
dan NewP[i]
I 16
P[1] = P[17] Xor K1[1]
P[i] = P[18] Xor K2[i]
Tentukan
String_Nol = 0
64 bit
NewP[1] = String_Nol Xor P[1]
NewP[i] = String_Nol Xor P[i]
Tukar NewP[1]
dan NewP[i]
Tentukan bil prima p
dan q. Dimana p q
dan p > q
Hitung n = p * q
M = (p-1)(q-1)
Jika (e.m) = 1
Tentukan e
Dimana
1 < e < n-1
Hitung (e,m)
T
Y
Kunci publik (e,n)
Tentukan d
Hitung d = (1+n.m)/e
Kunci privat (d,n)
Plainteks
x = 64 Bit
x/2 = xL & xR
xL = xL XOR Pi
Xr = F(xL) XOR xR
Bagi xL menjadi 4 bagian 8 bit
a,b,c dan d
F(xL)= ((S[1,a] + S[2,b] mod 232)
XOR S[3,c]) + S[4,d] mod 232
Tukar xL dan xR
xL = xR XOR P17
xR = xL XOR P18
Tukar xL & xR
I = 16
T
Y
Satukan
xL dan xR = Chiperteks
Kunci publik (e,n)
Chiperteks > ASCII (Desimal) = m
n m
C = me mod n
Selesai
Chiperteks
Y
T
Chiperteks
x = 64 Bit
Pembangkitan kunci
Blowfish dan RSA
Proses Enkripsi Blowfish
dan RSA
T
Y
Gambar 2. Flowchart Proses Enkripsi Algoritma Blowfish dan RSA
10
• Diagram Alir Dekripsi Blowfish dan RSA
Mulai
Inisialisasi Pbox
P1...P18, Kunci (K),
K1, K2
Tentukan
(K) 64 bit
K/2 = K1 dan K2
P [1] = P[1] Xor K1[1]
P[i] = P[i] Xor K2[i]
Tentukan
String_Nol = 0
64 bit
NewP[1] = String_Nol Xor P[1]
NewP[i] = String_Nol Xor P[i]
Tukar NewP[1]
dan NewP[i]
I 16
P[1] = P[17] Xor K1[1]
P[i] = P[18] Xor K2[i]
Tentukan
String_Nol = 0
64 bit
NewP[1] = String_Nol Xor P[1]
NewP[i] = String_Nol Xor P[i]
Tukar NewP[1]
dan NewP[i]
Tentukan bil prima p
dan q. Dimana p q
dan p > q
Hitung n = p * q
M = (p-1)(q-1)
Jika (e.m) = 1
Tentukan e
Dimana
1 < e < n-1
Hitung (e,m)
T
Y
Kunci publik (e,n)
Tentukan d
Hitung d = (1+n.m)/e
Kunci privat (d,n)
Pembangkitan kunci
Blowfish dan RSA
Proses Dekkripsi
Blowfish dan RSA
x/2 = xL & xR
xL = xR XOR P18
xR = xL XOR P17
Bagi xL menjadi 4 bagian 8 bit
a,b,c dan d
F(xL)= ((S[1,a] + S[2,b] mod 232)
XOR S[3,c]) + S[4,d] mod 232
Tukar xL dan xR
xL = xL XOR Pi
Xr = F(xL) XOR xR
Tukar xL & xR
I = 16
Satukan xL dan xR
T
Y
Selesai
Kunci rahasia (d,n)
M = Cd mod n
Plainteks
X = 64 bit
m > ASCII (Karakter)
Chiperteks
Plainteks
T
Y
Gambar 3. Flowchart Proses Dekripsi Algoritma Blowfish
11
III. HASIL PENELITIAN
A. Tampilan Enkripsi Pesan
Gambar 4. Tampilan Enkripsi Pesan
Penjelasan gambar 4 merupakan tampilan Enkripsi Pesan yang mana user
dapat menginput pesan asli yang akan dikirimkan, setelah itu user menginputkan
kunci Blowfish dan RSA, lalu klik button Enkripsi pesan maka akan muncul hasil
pembangkitan kunci RSA, yang mana hasil ini akan dipakai untuk mendekripsi
pesan yang terenkripsi maka secara otomatis pesan ter-enkripsi akan muncul
dibawahnya.
B. Tampilan Dekripsi Pesan
Gambar 5. Tampilan Dekripsi Pesan
Penjelasan gambar 5 merupakan tampilan dekripsi pesan yang mana pesan
yang ter-enkripsi akan didekripsi dengan cara user memasukkan kunci Blowfish
dan kunci. Pada kunci RSA ini adalah hasil dari pembangkitan kunci pada gambar
4, setelah itu user klik button dekripsi pesan maka pesan asli akan muncul sesuai
yang di inputkan dari awal.
12
IV. KESIMPULAN
Kesimpulan yang dapat diambil dari penelitian ini adalah sebagai berikut :
1. Aplikasi mampu mengamankan isi pesan dengan melakukan enkripsi
pesan.
2. Tanpa menggunakan hasil pembangkitan kunci RSA yang tepat maka
chiperteks tidak dapat didekripsi dengan benar.
3. Sistem telah memenuhi kerahasian data.
V. DAFTAR PUSTAKA
Ardi, A., 2013, “Mobile Programming: Pengembangan Aplikasi untuk Android
Phone”, PT. Skripta Media Creative, Yogyakarta
Hatta, M., Kusnadi, & Sanjaya, N., 2016, Implementasi Algoritma Blowfish dan
Vigenere Chiper pada Aplikasi SMS Berbasis Android, 15–22.
Octamanullah, M., 1997, Perbandingan Algoritma Kriptografi Kunci Simetrik
BlowFish dan TwoFish, 1–15.
Prafanto, A., 2016, Penerapan Algoritma Blowfish Untuk Keamanan SMS Pada
Android.
Rahmah, I. F., & Andoko, B. S. Rancang Bangun Aplikasi Enkripsi SMS (
SHORT MESSAGE SERVICE ) Dengan Metode RSA Pada Telepon
Seluler, 2015.
Rao, G. H., 2012, Security Providing using Blowfish , RSA and SHA-512
Algorithms, 8491, 4–6.
Sahara, R., Prastiawan, H., Rohman, A., Komputer, F. I., Buana, U. M., Raya, J.,
Barat, J., 2017, Implementasi Keamanan SMS Dengan Algoritma RSA Pada
Smartphone Android, IX(2), 118–122.
Shceneir, B., 1996, "Shceneir On Security", Tanggal akses 07 Januari 2019.,
https://www.scheneir.com/academic/blowfish/
Wibowo, guntur tri, Rumani, & Saputra, R. E., 2015, Analisa dan Implementasi
Enkripsi dan Dekripsi Ganda Kombinasi Algoritma Blowfish dan Algoritma
Tripple DES untuk SMS pada Smartphone Android, 2(2), 3404–3411.