Post on 30-Oct-2019
JURNAL ILMIAH CORE IT e-ISSN: 2548-3528 p-ISSN: 2339-1766
Implementasi Algoritma Kriptografi Vernam Cipher dan
DES (Data Encryption Standard) pada Aplikasi Chatting
berbasis Android
Patra Abdala1)
, Mohammad Andri Budiman2)
, Herriyance3)
Program Studi S1 Ilmu Komputer,Fasilkom-TI Universitas Sumatera Utara
Jalan Universitas No. 9 Kampus Universitas Sumatera Utara Medan 20155
e-mail: patra.abdala@gmail.com, mandrib@usu.ac.id, herriyance_usu@yahoo.com
Abstrak Pada era serba digital sekarang ini pertukaran informasi menjadi hal yang sangat penting dan
menjadi kebutuhan umum masyarakat. Contohnya adalah dengan melakukan chatting. Pertukaran
informasi melalui chatting melibatkan pihak ketiga sebagai perantara (server). Untuk data yang bersifat
rahasia tentunya hal seperti ini harus di hindari karena apabila informasi rahasia itu jatuh ke tangan
yang salah maka hal ini dapat menyebabkan kerugian. Maka daripada itu pesan yang akan dikirimkan
perlu di ubah menjadi sandi terlebih dahulu sebelum dikirimkan ke server. Salah satu solusi
pengamanan informasi yang dilakukan adalah dengan Ilmu Kriptografi. Pengirim akan mengirimkan
pesan kepada si penerima, tetapi sebelum pesan tersebut dikirimkan ke server, pesan tersebut akan di
enkripsikan menjadi sandi terlebih dahulu, kemudian sandi tersebut akan di teruskan ke penerima, dan
terakhir penerima akan mendekripsikan sandi tersebut kembali menjadi pesan yang mengandung
informasi. Dalam penelitian ini penulis menggabungkan dua algoritma kriptografi untuk mengamankan
pesan chatting yaitu Vernam Cipher dan DES (Data Encryption Standard) dengan menggunakan Android
Studio sebagai IDE. Waktu untuk melakukan enkripsi lebih lama dibandingkan waktu untuk melakukan
dekripsi.
Kata kunci: Kriptografi, Vernam Cipher, DES, Chatting, Android.
Abstract
In the digital age, the exchange of information becomes very important and a common need of society. An
example is to chat. The exchange of information through chat involves a third party as an intermediary
(server). For confidential data of course things like this should be avoided because if the confidential
information that falls into the wrong hands then this can cause losses. So than that the message will be
sent needs to be changed into a password first before sent to the server. One of the information security
solutions is Cryptography. The sender will send the message to the recipient, but before the message is
sent to the server, the message will be encrypted to the password first, then the password will be
forwarded to the recipient, and the recipient will decrypt the password again into a message containing
the information. In this study the authors combine two cryptographic algorithms to secure chat messages
namely Vernam Cipher and DES (Data Encryption Standard) by using Android Studio as IDE. Time for
encryption is longer than time for decryption.
Keywords: Cryptography, Vernam Cipher, DES, Chatting, Android.
1. Pendahuluan Pada era serba digital sekarang ini pertukaran informasi menjadi hal yang sangat penting dan sudah
menjadi kebutuhan umum masyarakat. Pertukaran informasi tersebut bisa di lakukan dari berbagai
perangkat elektronik seperti ponsel dan komputer. Informasi yang dikirimkan tentunya meliputi berbagai
informasi berupa teks ataupun multimedia yang bersifat publik maupun rahasia. Tentunya hal ini perlu
dibekali dengan pengamanan agar informasi yang bersifat rahasia tetap aman.
Kriptografi adalah ilmu yang mempelajari tentang bagaimana cara menyembunyikan pesan, namun
pada pengertian yang lebih modern kriptografi adalah ilmu matematika yang digunakan untuk keamanan
informasi seperti kerahasiaan, keutuhan, dan otentikasi entitas data[17]. Kriptografi terdiri dari dua
komponen dasar, yaitu algoritma dan kunci [4].
�
2
Algoritma Vernam merupakan suatu algoritma stream cipher yang dapat didefenisikan pada suatu
Alfabet. Pesan yang akan di enkripsi harus memiliki panjang yang samadengan kunci yang digunakan,
sehingga menghasilkan pesan cipher [9]. Ciphertext hasil dari vernam didapat dari hasil penjumlahan
nilai kunci dan nilai plaintext yang kemudian di modulus dengan jumlah karakter yang tersedia [5].
Algoritma DES (Data Encryption Standard) merupakan salah satu algoritma modern. DES termasuk
ke dalam sistem kriptografi simetri dan tergolong jenis block cipher. DES memiliki masukan berupa
plaintext sepanjang 8 karakter (64 bit) dan menghasilkan ciphertext sepanjang 8 karakter pula. DES
memiliki kunci internal 56 bit yang di bangkitkan dari kunci eksternal sepanjang 8 karakter (64 bit) [2].
DES memiliki 16 kali putaran dari berbagai proses subtitusi maupun transposisi [5]. Sehingga kemanan
untuk algoritma ini cukup tinggi karena banyaknya proses pengulangan.
Salah satu cara pertukaran informasi yang paling digemari adalah dengan mekakukan chatting melalui
ponsel. Selain praktis, chatting juga memungkinkan pengguna berkirim pesan dimanapun dan kapanpun
tanpa ada batasan wilayah dengan biaya yang relatif murah.
Android merupakan sistem operasi ponsel yang paling populer dan paling banyak digunakan saat ini.
Sehingga keamanan ponsel Android perlu ditingkatkan khususnya pada aplikasi chatting. Oleh karena itu
penulis akan merancang sebuah aplikasi chatting yang aman berbasis Android agar informasi yang
dikirimkan aman dan terhindar dari tindakan pencurian data bahkan untuk server sekalipun, karena pesan
tersebut akan di enkripsi sebelum di terima oleh server.
Batasan masalah yang dapat diambil dari latar belakang di atas adalah
1. Kunci yang digunakan pada Algoritma Vernam dan DES (Data Encryption Standard) adalah sama
yaitu berupa teks sepanjang 8 karakter.
2. Kunci Algoritma Vernam Cipher dan DES ditentukan oleh user.
3. Data yang dienkripsikan hanya berupa teks.
4. Teks yang digunakan dapat berupa kombinasi huruf, angka maupun simbol.
5. Bahasa pemrograman yang digunakan adalah bahasa pemrograman berorientasi objek dengan
Android Studio sebagai IDE dan berjalan pada sistem operasi Android versi 5.0 (Lollipop) ke atas.
2. Tinjauan Pustaka
A. Kriptografi
Kriptografi merupakan ilmu yang mempelajari teknik-teknik matematis yang berhubungan dengan aspek
keamanan informasi seperti keabsahan, integritas serta autentifikasi data. Kriptografi tidak hanya
memberikan keamanan informasi tetapi lebih kearah teknik-teknik untuk mengamankannya [8].
B. Terminologi Kriptografi
Dalam menjaga kerahasiaan data, kriptografi mengubah data jelas (plaintext) ke dalam bentuk data sandi
(ciphertext). Ciphertext inilah yang nantinya dikirim oleh si pengirim kepada penerima. Setelah sampai di
penerima, ciphertext ini kemudian di transformasikan kembali ke dalam bentuk plaintext agar dapat
dikenali [8].
Proses pengubahan dari plaintext menjadi ciphertext disebut proses enkripsi sedangkan proses
mengubah kembali ciphertext menjadi plaintext disebut proses dekripsi. [8].
Untuk melakukan proses enkripsi dan dekripsi, kriptografi harus memiliki 2 komponen dasar yaitu
algoritma dan kunci [8].
C. Teknik Kriptografi
Ada dua teknik yang digunakan dalam kriptografi, yaitu kunci simetris dan kunci asimetris [8].
1. Algoritma Simetris
Algoritma Kriptografi Simetris merupakan algoritma yang menggunakan kunci enkripsi yang sama
dengan kunci dekripsinya. Algoritma simetri sering juga disebut sebagai algoritma kunci rahasia,
algoritma kunci tunggal atau algoritma satu kunci dan mengharuskan pengirim dan penerima
menyetujui suatu kunci tertentu sebelum mereka dapat berkomunikasi dengan aman[14].
Gambar 1. Kriptografi Simetris [14]
�
Implementasi Algoritma Kriptografi Vernam Cipher dan DES (Data Encryption Standard) pada Aplikasi
Chatting berbasis Android ( Patra Abdala, Mohammad Andri Budiman, Herriyance )
3
Algoritma kriptografi simetris dibagi menjadi dua kategori yaitu algoritma aliran (Stream Cipher)
dan algoritma blok (Block Cipher). Pada algoritma aliran, proses penyandiannya berorientasi pada
satu bit atau satu byte data. Sedangkan pada algoritma blok, proses penyandianya berorientasi pada
sekumpulan bit atau byte data (per blok) [8].
2. Algoritma Asimetris
Algoritma Kriptografi Asimetris merupakan algoritma yang menggunakan kunci yang berbeda untuk
proses enkripsi dan dekripsinya. Algoritma ini disebut juga algoritma kunci umum (public key
algorithm) karena kunci untuk enkripsi dibuat umum (public key) atau dapat diketahui oleh setiap
orang, tapi kunci untuk dekripsi hanya diketahui oleh orang yang berwenang saja atau sering disebut
kunci pribadi (private key) [8].
Gambar 2. Kriptografi Asimetris
D. Algoritma Vernam Cipher
Vernam Cipher ditemukan oleh Gilbert Sandford Vernam (1890-1960) pada tahun 1917. Vernam berkerja
di suatu perusahaan bernama Bell Labs, dia memiliki hak paten yang menjelaskan tentang sebuah cipher
dengan kunci yang telah disiapkan pada sebuah pita kertas, kemudian dikombinasikan dengan sebuah
plaintext untuk menghasilkan sebuah pesan ciphertext yang dapat ditransmisikan. Pita yang sama
kemudian digunakan pula untuk mendekripsikan ciphertext [11].
Vernam Cipher merupakan stream cipher yang didefenisikan pada sebuah alfabet. Sebuah pesan
binaryM1, M2, M3, …, Mt dioperasikan dengan kunci string binaryK1, K2, K3, …, Kt yang memiliki
panjang yang sama untuk menghasilkan sebuah string ciphertextC1, C2, C3, …, Ct [11].
1. Enkripsi Vernam Cipher
Secara matematis proses enkripsi plaintext (M) menjadi ciphertext (C) menggunakan kunci rahasia
(k) dapat dinyatakan sebagai berikut :
C = M + k (mod n)
Dimana :
C = Ciphertext
M = Message / Plaintext
k = Key / Kunci
n = Banyaknya jumlah karakter yang digunakan
2. Dekripsi Vernam Cipher
Proses dekripsi ciphertext (C) menjadi plaintext (P) menggunakan kunci rahasia (k) dapat dinyatakan
sebagai berikut :
M = C – k (mod n)
Dimana :
M = Message / Plaintext
C = Ciphertext
k = Key / Kunci
n = Banyaknya jumlah karakter yang digunakan
Dimana Ci adalah digit binary dari ciphertext, Pi adalah digit binary dari plaintext, sedangkan Ki adalah
bit binary dari kunci, dan + adalah operasi penjumlahan [3].
Algoritma yang digunakan untuk Vernam Cipher dapat dinyatakan sebagai berikut:
1. Misalkan setiap alfabet plaintext sebagai sebuah urutan nomor yang meningkat, contoh A=0, B=1,
…, Z=25.
2. Lakukan hal yang sama untuk setiap karakter input plaintext
3. Tambahkan setiap nomor yang bersangkutan dari alfabet plaintext kepada nomor alfabet kunci yang
bersangkutan.
4. Jika hasil yang dikeluarkan melebihi 26, modulo hasilnya dengan 26.
5. Terjemahkan setiap nomor hasil yang didapat tadi kembali kedalam alfabet yang bersangkutan. Hal
ini akan memberikan outputciphertext [5].
�
4
E. Algoritma DES (Data Encryption Standard)
Pada tahun 1972 sebuah perusahaan National Bureau Standard (NBS) di Amerika Serikat, yang sekarang
dikenal sebagai National Institute of Standard and Technology (NIST), memulai sebua projek untuk
mengamankan data dan komunikasi komputer. Mereka ingin mengembangkan algoritma kriptografi
tunggal. Setelah dua tahun, NBS menyadari bahwa IBM’s Lucifer dapat menjadi kandidat yang bagus, dari
pada mengembangkan algoritma baru dari awal. Setelah beberapa diskusi, pada tahun 1975 NBS
mengumumkan detail dari algoritma tersebut. Pada akhir tahun 1976, pemerintah federal Amerika Serikat
mengadopsi algoritma ini dan kemudian mengganti namanya menjadi Data Encryption Standard (DES)
[5].
DESmerupakan blockcipher simetris yang beroperasi pada blok 64 bit yang menggunakan sebuah kunci
56 bit. DES mengenkripsi data dalam blok 64 bit. Input dari dari algoritma ini adalah blok plaintext
sepanjang 64 bit dan menghasilkan output blok ciphertext sepanjang 64 bit pula, yang didapat setelah
dilakukan 16 kali putaran dari operasi pengulangan yang sama[16].
Seperti algoritma lainya, algoritma ini mempunyai dua input pada fungsi enkripsinya: sebuah plaintext 64
bit yang akan di enkrispi dan sebuah kunci 56 bit. Hal yang paling utama yang diperlukan untuk
membangun blok-blok dari plaintext adalah kombinasi dari permutasi dan subtitusi pada blok plaintext.
Subtitusi didapatkan dari pencarian pada Tabel S-boxes. Pada algoritma DES Enkripsi dan dekripsi
menggunakan algoritma yang sama namun dalam urutan yang terbalik[16].
DES terdiri dari 16 tahapan, setiap tahapan disebut sebagai putaran. Setiap putaran dilakukan sebuah
langkah subtitusi dan transposisi. Berikut Algoritma langkah-langkah enkripsi menggunakan Algoritma
DES :
Gambar 3. Skema Algoritma DES [5]
1. Pada tahap pertama, permutasikan sebuah blok 64 bit plaintext dengan Tabel Initial Permutation
(IP).
2. Setelah itu akan didapatkan plaintext hasil initial permutation (IP).
3. Selanjutnya bagi hasil dari initial permutation tadi menjadi dua bagian, yaitu bagian kiri (L) dan
bagian kanan (R).
4. Kemudian lakukan proses enkripsi sebanyak 16 kali putaran pada tiap bagian kiri (L) dan kanan (R)
dengan kunci masing-masing.
5. Terakhir gabungkan bagian kiri (L) dan kanan (R) dan lakukan permutasi terakhir menggunakan
Tabel Final Permutation (FP) / Invers Initial Permutation (IP-1).Proses ini akan menghasilkan
ciphertext.
F. Pembangkitan kunci Internal DES
Karena ada 16 putaran maka dibutuhkan kunci internal sebanyak 16 pula, yaitu K1, K2, K3, ..., K16. Kunci-
kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi.
Kunci internal dibangkitkan dari kunci eksternal yang diinputkan oleh pengguna. Kunci eksternal
panjangnya 64 bit atau 8 karakter sedangkan kunci internal panjangnya 56 bit[13].
�
Implementasi Algoritma Kriptografi Vernam Cipher dan DES (Data Encryption Standard) pada Aplikasi
Chatting berbasis Android ( Patra Abdala, Mohammad Andri Budiman, Herriyance )
5
Misalnya Kunci Eksternal (KE) yang tersusun dari 64 bit. Kunci eksternal ini menjadi masukan untuk
proses permutasi dengan menggunakan matriks permutasi kompresi (PC-1).
�� =������
1 2 3 4 5 6 7 89 10 11 12 13 14 15 1617 18 19 20 21 22 23 2425 26 27 28 29 30 31 3233 34 35 36 37 38 39 4041 42 43 44 45 46 47 4849 50 51 52 53 54 55 5657 58 59 60 61 62 63 64������
Proses selanjutnya lakukan permutasi dari matriks kunci eksternal 64 bit terhadap Permutation Choice
(PC-1) [4].
�� − 1 = �57 49 41 33 25 17 9 1 58 50 42 34 26 1810 2 59 51 43 35 27 19 11 3 60 52 44 3663 55 47 39 31 23 15 7 62 54 46 38 30 2214 6 61 53 45 37 29 21 13 5 28 20 12 4 �
Dalam permutasi ini, tiap bit ke delapan (parity bit) diabaikan. Hasil permutasinya adalah sepanjang 56
bit dibagi menjadi 2 bagian kiri dan kanan yang masing masing panjangnya 28 bit, yang masing-masing
disimpan dalam C0 dan D0[13].
C0 berisi bit-bit dari K pada posisi : �� = �57 49 41 33 25 17 9 1 58 50 42 34 26 1810 2 59 51 43 35 27 19 11 3 60 52 44 36�
D0 berisi bit-bit dari K pada posisi : �� = �63 55 47 39 31 23 15 7 62 54 46 38 30 2214 6 61 53 45 37 29 21 13 5 28 20 12 4 �
Selanjutnya, kedua bagian digeser ke kiri (left shift) sepanjang satu atau dua bit tergantung pada tiap
putaran. Operasi pergeseran bersifat wrapping atau round shift. (Rifkie Primartha, 2011). Setiap pasang
blok Cn dan Dn, dibentuk dari pasang blok sebelumnya Cn-1 dan Dn-1masing-masing, untuk n = 1, 2, .., 4
menggunakan pergeseran left shift. Untuk melakukan left shift , geser setiap satu bit ke kiri, kecuali untuk
bit yang pertama, dimana bit tersebut akan di pindahkan ke bagian akhir dari blok. Artinya C3 dan D3,
diperoleh dari pergeseran left shift C2 dan D2, C4 dan D4 diperoleh dari C3dan D3, begitu seterusnya [4].
Tabel 1. Jumlah pergeseran bit tiap putaran [16]
Round
number 1 2 3 4 5 6 7 8
Number of
left shift 1 1 2 2 2 2 2 2
Round
number 9 10 11 12 13 14 15 16
Number of
left shift 1 2 2 2 2 2 2 1
Setelah proses pergeseran bit (Cn, Dn) lakukan permutasi kompresi 56 bit menjadi 48 bit dengan
menggunakan matriks permutation choice 2 (PC-2)[4].
�� − 2 = �14 17 11 24 1 5 3 28 15 6 21 1023 19 12 4 26 8 16 7 27 20 13 241 52 31 37 47 55 30 40 51 45 33 4844 49 39 56 34 53 46 42 50 36 29 32�
Jadi setiap kunci internal Knmempunyai panjang 48 bit. Proses pembangkitan kunci-kunci internal
ditujukkan pada Gambar 4. Bila jumlah pergeseran bit-bit pada Tabel 1 dijumlahkan maka akan
menghasilkan jumlah 28, yang sama dengan jumlah bit pada Cn dan Dn. Karena itu, setelah putaran ke-16
akan didapatkan kembali C16 = C0 dan D16 = D0[13].
�
6
Gambar 4. Proses pembangkitan kunci internal DES [13]
G. Enkripsi dan DekripsiDES
Proses awal yang dilakukan dalam enkripsi adalah Permutasi Awal (Initial Permutation, IP). Pengacakan
dilakukan dengan menggunakan Matriks Initial Permutation.
�� = �58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 8�
� = �57 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7�
Proses enciphering terhadap blok plaintext dilakukan setelah permutasi awal. Setiap blok plaintext
mengalami 16 kali putaran enciphering [13]. Secara matematis, satu putaran DES dinyatakan sebagai :
Ln = Rn-1
Rn = Ln-1 ⊕ f(Rn-1, Kn)
Dimana :
Rn = Right permutation ke – n
Ln = Left permutation ke – n
Kn = Key permutation ke – n
f = Fungsi permutasi f [4]
Kemudian setiap blok Rn-1di ekspansi dari 32 bit menjadi 48 bit [10].Berikut matriks Permutasi Ekspansi
(E)[16]:
� = ������
32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1 ������
Selanjutnya hasil ekspansi, yaitu E(Rn-1) yang panjangnya 48 bit di XOR-kan dengan Knyang panjangnya
48 bit dan menghasilkan vektor A yang panjangnya 48 bit pula[13].
E(Rn-1) ⊕ Kn = A
�
Implementasi Algoritma Kriptografi Vernam Cipher dan DES (Data Encryption Standard) pada Aplikasi
Chatting berbasis Android ( Patra Abdala, Mohammad Andri Budiman, Herriyance )
7
A = (B1)(B2)(B3)(B4)(B5)(B6)(B7)(B8)
Dimana :
E =Fungsi ekspansi
Rn = Right permutation ke – n
Kn = Key permutation
A = Vektor hasil XOR yang panjangnya 48 bit
B1,…,B16 = Bit hasil XOR yang dikelompokan masing-masing 6 bit
Fungsi f di dapat dari mengimplementasikan permutasi pada bit-bit vektor A sebagai berikut [10]:
f = P(S1(B1)S2(B2),…,S8(B8))
Dimana :
f = Fungsi permutasi f
P = Permutasi kotak – P
S1,…,S8 = Subtitusi kotak – S
B1,…,B16 = Bit hasil XOR yang dikelompokan menjadi 6 bit
Vektor A dikelompokkan menjadi 8 kelompok, masing-masing 6 bit, dan menjadi masukan bagi proses
subtitusi. Proses subtitusi dilakukan dengan menggunakan delapan kotak-S (S-boxes), S1sampai S8. Setiap
kotak-S menerima masukan 6 bit dan menghasilkan keluaran 4 bit. Kelompok 6 bit pertama
menggunakan S1, kelompok 6 bit kedua menggunakan S2, dan seterusnya [13].
Hal pertama yang harus dilakukan adalah menuliskan kembali bit-bit vektor A dan kemudian
kelompokkan bit-bit tersebut menjadi 8 kelompok yang masing-masing kelompok terdiri dari 6 bit.
Kotak-S menerima masukan 6 bit dan menghasilkan keluaran 4 bit, bit pertama dan terakhir dari masukan
menggambarkan sebuah angka desimal dari range 0 sampai 3 (00 sampai 11) misalkan i. 4 bit
pertengahan menggambarkan sebuah angka desimal dari range 0 sampai 15 (0000 sampai 1111) misalkan
j. Kemudian lihat Tabel kotak-S, carilah angka yang didapat dari kolom i dan baris j. Kemudian ubah
angka desimal yang didapat ke dalam binary [4].
Setelah didapat hasil dari kotak-S, maka selanjutnya dilakukan proses permutasi yang bertujuan untuk
mengacak hasil proses subtitusi kotak-S. Permutasi dilakukan dengan matriks permutasi kotak-P (P-
box)[13].
� = ������
16 7 20 2129 12 28 171 15 23 265 18 31 102 8 24 1432 27 3 919 13 30 622 11 4 25������
Selanjutnya setelah didapatkan f lakukan proses XOR antara f(Rn-1, Kn) dengan Ln-1 untuk mendapatkan
Rn.Langkah terakhir setelah dilakukan 16 kali putaran, gabungkan blok kiri (L16) dan blok kanan (R16),
kemudian lakukan proses permutasi menggunakan Matriks Permutasi Awal Balikan (Invers Initial
Permutation, IP-1
) [4].
!�"# = ������
40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25������
Untuk proses dekripsi DES dilakukan dengan proses dan langkah-langkah yang sama namun
perbedaanya hanya terletak pada urutan kunci yang digunakan. Untuk dekripsi DES kunci yang
digunakan kebalikan dari enkripsinya, yaitu K1 menjadi K16, K2 menjadi K15, K3 menjadi K15 dan
seterusnya [13].
�
8
H. Sistem Operasi Android
Pada tahun 2005, Google mengakuisisi sebuah perusahaan kecil yang didirikan oleh Andy Ruben yang
bernama Danger, Inc. Danger merupakan sebuah perusahaan yang membuat ponsel dengan merek T-
Mobile. Pada awalnya pengembangan Android sama sekali tidak diketahui. Perusahaan Danger memang
dikenal membuat software mobile, tetapi Google tidak pernah memberikan keterangan atau rencana
bahwa Android akan dikembangkan [6].
Setelah adanya rumor bahwa Google akan mengeluarkan kompetitor iPhone, barulah Google
memperkenalkankan OS (Operating System) baru untuk ponsel. Pada 5 November 2007, Google
mengumumkan sistem operasi Android dan aliansi handset terbuka, yaitu sebuah kelompok dari beberapa
perusahaan yang ingin membantu untuk mengembangkan Android. Anggota dari aliansi handset terbuka
mencakup operator selular, software developers, perusahaan perangkat keras, dan komponen [6].
I. Chatting / Messagging
Di dunia Internet, chatting (mengobrol) merupakan komunikasi tertulis secara online melalui media
internet. Komunikasi tersebut umumnya dilakukan dengan cara mengetikkan kata-kata yang ingin di
sampaikan dengan lawan bicara.
Ada beberapa cara dalam melakukan chatting, yaitu melalui halaman Web dan menggunakan program
aplikasi tertentu. Banyak situs yang menyediakan fasilitas untuk chatting dalam bentuk Webchatting,
seperti Yahoo! Messenger, MSN Messenger, ICQ, Plasa Messenger, dan sebagainya[15].
J. Skema Encoding base64
Base64 merupakan sebuah sistem yang merepresentasikan data mentah seperti halnya karakter ASCII.
Apabila kita menggunakan hexadecimal, hal ini sama sekali tidak efesien. Satu digit hex (delapan bit)
menyerupai empat bit inputan. Data yang diwakili ke dalam hexadecimal akan menghasilkan ukuran dua
kali lipat dari aslinya. Seperti namanya, base64 memperbaiki rasio ini dengan mewakilkan 6 bit untuk
setiap digit. Jadi 3 byte inputan (3 x 8 = 24 bit) di terjemahkan ke dalam 4 digit base64 (4 x 6 = 24 bit).
Setiap digit base64 diwakili oleh karakter ASCII [7].
Gambar 5. Konversi byte ke dalam base64 [7]
K. Penelitian Yang Relevan
Berikut ini beberapa penelitian tentang kriptografi yang berkaitan dengan Algoritma Vernam Cipher dan
Data Encryption Standard (DES) :
1. Rio Auditya Pratama Samosir (2015) degan judul penelitian Pengamanan Data Text dengan
kombinasi Algoritma Data Encryption Standard (DES) dan First Of File (FOF)menyatakan semakin
banyak pesan teks, maka semakin lama waktu yang dibutuhkan untuk proses enkripsi dan dekripsi.
2. M. Yuli Andri (2009) dengan judul penelitian Implementasi Algoritma Kriptografi DES, RSA dan
Algoritma Kompresi LZW pada berkas digital menyatakan penggunaan dua buah algoritma
kriptografi akan membuat berkas cipherteks semakin susah untuk dipecahkan. Karena seorang
kriptanalis tidak akan mengetahui algoritma apa yang digunakan pada berkas tersebut.
3. Amanda Lilda Ramadayanti (2008) dengan judul penelitian Analisa Algoritma Vernam (OTP)
menyatakanAlgoritma Vernam atau One-time pad merupakan algoritma pengenkripsian data dan
informasi yang relatif sederhana dan mudah digunakan namun cukup aman dalam menjamin
kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan kepada penerima pesan
tanpa dapat diketahui oleh pihak lain.
3. Tahapan Penelitian
Tahapan penelitian yang dilakukan dalam penelitian ini adalah :
1. Studi Literatur
Pada tahan ini dilakukan peninjauan terhadap buku, artikel, jurnal, maupun hasil penelitian terdahulu
sebagai referensi yang diperlukan dalam melakukan penelitian. Ini dilakukan untuk memperoleh
�
Implementasi Algoritma Kriptografi Vernam Cipher dan DES (Data Encryption Standard) pada Aplikasi
Chatting berbasis Android ( Patra Abdala, Mohammad Andri Budiman, Herriyance )
9
informasi yang terkait dengan metode Vernam Cipher dan Data Encryption Standard, serta
pemrograman Java di Android.
2. Analisis dan Perancangan
Tahap ini digunakan untuk mengolah data dari hasil studi literatur yang kemudian dilakukan analisis
dan perancangan menggunkan algoritma Vernam Cipher dan Data Encryption Standard sehingga
menjadi suatu aplikasi yang tersetruktur dan jelas. Proses ini meliputi pembuatan algoritma program,
Use case, flowchart sistem, rancangan aplikasi, dan pembuatan User Interface aplikasi.
3. Implementasi
Algoritma Vernam Cipher dan Data Encryption Standard di implementasi dalam pembuatan suatu
aplikasi Android dengan menggunakan bahasa pemrograman Java.
4. Pengujian
Menguji apakah aplikasi yang di buat telah berhasil berjalan sesuai dengan keinginan dan melakukan
perbaikan kesalahan jika masih tedapat error pada aplikasi.
5. Dokumentasi
Pada tahap ini berisi laporan dan kesimpulan akhir dari hasil akhir analisa dan pengujian dalam
bentuk laporan.
4. Analisis dan Perancangan
A. Analisis Masalah
Permasalahan pada penelitian ini ditunjukkan pada diagram Gambar 6.
Gambar 6. Diagram sebab-akibat pencurian informasi
Pada Gambar 6 dapat diketahui bahwa permasalahan dari pencurian informasi diakibatkan oleh keinginan
dari pihak ketiga untuk mengetahui informasi yang bersifat rahasia dari si pengirim pesan. Selain itu
pencurian informasi ini dapat dilakukan karena jalur pengiriman ke server pesan tersebut tidak aman atau
tidak dilengkapi dengan keamanan yang mumpuni.
Solusi yang ditawarkan adalah dengan mengamankan pesan chatting tersebut dengan kombinasi
algoritma Vernam Cipher dan DESsebelum pesan tersebut dikirimkan ke server.
B. Perancangan Sistem
1. Use-Case Diagram
Use-case diagram merupakan diagram yang menjelaskan apa yang akan dilakukan oleh sistem yang
akan dibangun dan siapa yang akan berinteraksi dengan sistem. Pengguna yang meakukan interaksi
terhadap sistem disebut aktor. Aktor berperan untuk melakukan komunikasi dengan sistem. Antara
aktor dengan use-case dihubungkan dengan garis lurus. Hubungan antara use-case dengan use-case
lainya di hubungkan dengan garis putus-putus, apabila use-case tersebut mereduksi use-case lainya
maka digunakan keterangan include, sedangkan apabila use-case tersebut mensimplifikasi use-case
lainya digunakan keterangan exclude.
�
10
Gambar 7. Use-case Diagram
Pada Gambar 7 terdapat aktor yang mempunyai peran yaitu sebagai pengirim atau penerima. Aktor
pengirim pesan mengenkripsikan pesan terlebih dahulu dengan algoritma Vernam Cipher dan DES.
Selanjutnya aktor penerima pesan mendekripsikan pesan dengan algoritma DESdan Vernam Cipher
agar pesan tersebut dapat diketahui isinya.
2. Sequence Diagram
Sequence diagram menjelaskan secara detil urutan proses yang dilakukan dalam sistem untuk
mencapai tujuan dari use-case. Berikut Sequence diagram dari sistem yang dirancang dapat dilihat
pada Gambar 8 dan Gambar 9.
Gambar 8. Sequence diagram pengiriman pesan
Gambar 9. Sequence diagram penerimaan pesan
�
Implementasi Algoritma Kriptografi Vernam Cipher dan DES (Data Encryption Standard) pada Aplikasi
Chatting berbasis Android ( Patra Abdala, Mohammad Andri Budiman, Herriyance )
11
3. Activity Diagram
Activity diagram adalah sebuah diagram alur kerja yang menjelaskan berbagai kegiatan pengguna
(atau sistem), orang yang melakukan masing-masing aktivitas, dan aliran sekuensial dari aktivitas-
aktivitas tersebut. Activity diagram dari sistem yang dirancang dapat dilihat pada Gambar 10 dan
Gambar 11.
Gambar 10. Activity diagram pengiriman pesan
Gambar 11. Activity diagram penerimaan pesan
C. Flowchart Sistem
Flowchart merupakan bagan yang menunjukkan arus pekerjaan dari sistem secara keseluruhan,
menjelaskan urutan dari prosedur-prosedur yang ada di dalam sistem serta menunjukkan apa yang
dikerjakan di dalam sistem. Flowchart dari sistem yang dibangun dapat di lihat pada Gambar 12 dan
Gambar 13.
�
Implementasi Algoritma Kriptografi Vernam Cipher dan DES (Data Encryption Standard) pada Aplikasi
Chatting berbasis Android ( Patra Abdala, Mohammad Andri Budiman, Herriyance )
13
Gambar 13. Flowchart penerimaan pesan
5. Implementasi dan Pengujian Pada tahap ini dilakukan pembuatan sistem sesuai dengan analisis dan perancangan. Kemudian
melakukan pengujian sistem.
�
14
A. Menghidupkan Server
Sebelum dilakukan proses pengujian enkripsi dan dekripsi, pertama-tama server perlu dihidupkan terlebih
dahulu, dalam penelitian ini server tidak memiliki GUI sehingga cukup di-run saja.
Gambar 14. Program server dijalankan
Kemudian setelah itu penulis akan mencatatIP server dari server yang bersangkutan yaitu IPv4 Address.
Gambar 15. Tampilan IP server
B. Pengujian Login melalui Form Login
Form Login merupakan tampilan awal ketika user ingin menggunakan aplikasi. User diminta
memasukkan nama pengguna dan IP server terlebih dahulu sebelum memasuki chatroom.
Pada tahap ini penulis melakukan pengujian login dengan cara menginputkan contoh sebagai berikut pada
formlogin :
• Username yang akan diinputkan adalah “patra09”
• Server IP yang diinputkan adalah “192.16.137.1”
Setelah contoh diinputkan dan menekan tombol “ENTER CHAT ROOM”, maka akan dihasilkan output
sesuai Gambar 16.
Gambar 16. Pengujian Login
�
Implementasi Algoritma Kriptografi Vernam Cipher dan DES (Data Encryption Standard) pada Aplikasi
Chatting berbasis Android ( Patra Abdala, Mohammad Andri Budiman, Herriyance )
15
C. Pengujian Input Kunci melalui Form Setting
Form Setting merupakan form preferensi yang digunakan untuk menginput dan menyimpan kunci
kriptografi yang digunakan.
Pada tahap ini penulis melakukan pengujian form setting dengan cara menginputkan contoh sebagai
berikut :
• Kunci yang diinputkan adalah“12345678”.
Setelah contoh diinputkan dengan menekan tombol “OK” maka proses enkripsi dan enkripsi pesan dapat
dilakukan. Proses enkripsi dan dekripsi pesan dapat dilihat pada Gambar 17 dan Gambar 18.
Gambar 17. Tampilan Form Setting
D. Pengujian Enkripsi Pesan melalui Form Chatroom
Form Chatroom merupakan form yang digunakan untuk proses chatting. Form ini juga menjadi tempat
untuk proses enkripsi dan dekripsi pesan chatting.
Pada tahap ini penulis melakukan pengujian enkripsi pesan dengan cara menginputkan contoh sebagai
berikut pada form chatroom :
• Pesan yang akan diinputkan adalah “S1 Ilmu Komputer”.
• Kunci yang digunakan adalah “12345678”.
Setelah contoh diinputkan dengan menekan tombol “SEND”, maka akan dihasilkan output pada Gambar
18.
Gambar 18. Pengujian Input Pesan
Dari Gambar 18 dapat diketahui bahwa proses enkripsi dari pesan “S1 Ilmu Komputer” dengan
menggunakan kunci “12345678” menghasilkan pesan ciphertext “hlj9I3lOfCh4DzgL5VRsTg==”.
�
16
E. Pengujian Dekripsi Pesan melalui Form Chatroom
Selanjutnya penulis akanmelakukan proses dekripsi dari ciphertext tadi dengan menggunakan kunci yang
sama.
Pada tahap ini penulis melakukan pengujian dekripsi pesan dengan cara menghidupkan tombol toggle,
yaitu tombol yang berfungsi sebagai pengatur dijalankan atau tidak dijalankanya suatu proses enkripsi :
• Pesan yang akan diinputkan adalah “S1 Ilmu Komputer”.
• Client menghidupkan tombol toggle agar proses enkripsi dapat dilakukan.
Setelah contoh diinputkan dengan menekan tombol “SEND”, maka akan dihasilkan output seperti pada
Gambar 19.
Gambar 19. Hasil Dekripsi Pesan
Dari Gambar 17 dapat diketahui bahwa proses dekripsi pesan dengan menggunakan kunci “12345678”
berhasil dan pesan plaintext dapat dilihat oleh client yaitu “S1 Ilmu Komputer”.
F. Pengujian Lama Waktu Enkripsi dan Dekripsi
Pengujian selanjutknya dilakukan untuk mengetahui pengaruh panjang pesan pesan terhadap lamanya
proses enkripsi dan dekripsi.
1. Pengujian Lama Waktu Enkripsi
Tabel 2. Hasil Pengujian Lamanya Proses Enkripsi
No. Panjang Plaintext
(Karakter)
Binary Waktu
(Detik)
1 1024 1 KB 0.57
2 102400 100 KB 0.636
3 1024000 1 MB 0.779
4 10240000 10 MB 2.081
Berdasarkan hasil tersebut, lamanya proses enkripsi berbanding lurus dengan panjang pesan yang
dikirimkan. Semakin panjang pesan yang akan dikirimkan maka semakin lama pula pula waktu yang
dibutuhkan untuk proses dekripsi.
Grafik perbandingan panjang plaintext dan waktu dapat dilihat pada Gambar 20.
�
Implementasi Algoritma Kriptografi Vernam Cipher dan DES (Data Encryption Standard) pada Aplikasi
Chatting berbasis Android ( Patra Abdala, Mohammad Andri Budiman, Herriyance )
17
Gambar 20. Perbandingan Panjang Pesan dengan Waktu Enkripsi
2. Pengujian Lama Waktu Dekripsi
Tabel 3. Hasil Pengujian Lamanya Proses Dekripsi
No. Panjang Plaintext
(Karakter)
Binary Waktu
(Detik)
1 1024 1 KB 0.002
2 102400 100 KB 0.024
3 1024000 1 MB 0.169
4 10240000 10 MB 1.258
Berdasarkan hasil tersebut, lamanya proses dekripsi berbanding lurus dengan panjang pesan yang
dikirimkan. Semakin panjang pesan yang akan dikirimkan maka semakin lama pula pula waktu yang
dibutuhkan untuk proses dekripsi.
Grafik perbandingan panjang plaintext dan waktu dapat dilihat pada Gambar 21.
Gambar 21. Perbandingan Panjang Pesan dengan Waktu Dekripsi
3. Perbandingan Waktu Enkripsi dan Dekripsi
Tabel 4. Perbandingan Waktu Enkripsi dan Dekripsi terhadap Panjang Pesan
No. Panjang
Plaintext
(Karakter)
Binary Waktu
Enkripsi
(Detik)
Waktu
Dekripsi
(Detik)
1 1024 1 KB 0.57 0.002
2 102400 100 KB 0.636 0.024
3 1024000 1 MB 0.779 0.169
4 10240000 10 MB 2.081 1.258
0.57 0.636 0.779
2.081
0
1
2
3
Waktu Enkripsi (Detik)
Waktu
Enkripsi
(Detik)
0.002 0.024 0.169
1.258
00.5
11.5
Waktu Dekripsi
(Detik)
Waktu
Dekripsi
(Detik)
�
18
Gambar 22. Perbandingan Waktu Enkripsi dan Dekripsi terhadap Panjang Pesan
Bersdasarkan Tabel 4 dan Gambar 22, dapat diketahui bahwa waktu yang digunakan untuk melakukan
proses enkripsi dan dekripsi adalah berbeda. Sistem membutuhkan waktu yang lebih lama pada proses
enkripsi pesan dari pada waktu pada proses dekripsi pesan.
6. Kesimpulan dan Saran A. Kesimpulan
Berdasarkan pembahasan dan dari hasil penelitian, maka diperoleh beberapa kesimpulan sebagai berikut :
1. Pada penelitian ini panjang pesan chatting yang akan dikirim berbanding lurus dengan lamanya
waktu enkrispi dan dekripsi.
2. Server hanya menerima dan meneruskan pesan dalam bentuk ciphertext, sehingga server tidak dapat
membaca isi pesan yang sedang dikirim.
3. Sebelum pesan ciphertext dikirimkan ke server, pesan akan di ubah ke dalam format base-64 agar
pesan dapat dikirimkan ke server tanpa ada kehilangan data.
4. Waktu yang digunakan untuk proses enkripsi lebih lama dari pada waktu yang digunakan untuk
proses dekripsi.
B. Saran
Berikut adalah saran yang dapat digunakan untuk tahap pengembangan penelitian sistem ini antara lain :
1. Didalam penelitian ini hanya pesan berupa teks saja yang akan dienkripsi dan dekripsi, diharapkan
kedepannya pesan yang dapat dienkripsi dan dekripsi dapat berupa file, foto maupun video.
2. Pada penelitian ini platform yang digunakan adalah Android, sehingga untuk penelitian kedepanya
diharapkan dapat diterapkan pula pada platform windows mobile dan iOS.
3. Pada penelitian ini tidak menggunakan sistem database untuk pengelolaan user, sehingga untuk
kedepanya diharapkan dapat menggunakan sistem database pada pengelolaan user agar program
lebih aman dan terstruktur.
4. Pada penelitian ini kunci untuk Vernam Cipher ditentukan oleh user, sehingga untuk kedepannya
diharapkan kunci Vernam Cipher dapat di generate secara acak.
Buku Teks : [1] Andri, M. Y. 2009. Implementasi Algoritma KriptografiDES, RSA dan Algoritma Kompresi
LZW pada berkas digital. Universitas Sumatera Utara. Medan.
[2] Ariyus, D. 2008. Pengantar Ilmu Kriptografi: Teori, Analisis dan Implementasi. ANDI:
Yogyakarta.
[3] Dhull, S., Beniwal, S,. & Kalra, P. 2013. Polyalphabetic Cipher Techniques Used For
Encryption Purpose. International Journal of Advanced Research in Computer Science and
Software Engineering (IJCTEE). 3(2): 64 – 66.
[4] Gupta, Nimmi. 2012. Implementation of Optimized DES Encryption Algorithm upto 4 Round
on Spartan 3. International Journal of Computer Technology and Electronics Engineering
(IJCTEE). 2(1): 82 – 86.
[5] Kahate, Atul. 2013. Cryptography and Network Security. Tata McGraw-Hill Education: New
Delhi.
0.57 0.636 0.779
2.081
0.002 0.024 0.169
1.258
0
0.5
1
1.5
2
2.5
Waktu
Enkripsi
Waktu
Dekripsi
�
Implementasi Algoritma Kriptografi Vernam Cipher dan DES (Data Encryption Standard) pada Aplikasi
Chatting berbasis Android ( Patra Abdala, Mohammad Andri Budiman, Herriyance )
19
[6] Karch, Marziah. 2010. Android for Work: Productivity for Professionals. Apress: United State
of America.
[7] Knudsen, Jonathan. 1993. Java Cryptography. O'Reilly Media, Inc.: United State of America.
[8] Komputer, Wahana. 2010. The Best Encryption Tools. Elex Media Komputindo: Jakarta.
[9] Menezes, A., van Oorschot, Paul,. & Vanstone, S. 1997. Handbook of Applied Cryptography.
CRC Press: United State of America.
[10] Park, Jin-Woo. 2007. AsiaSim 2007. Springer: Seoul.
[11] Patel, Dhiren R. 2008. Information Security: Theory and Practice. PHI Learning Pvt. Ltd: New
Delhi.
[12] Pratama, Rio Auditya S. 2015. Pengamanan Data Text dengan kombinasi Algoritma Data
Encryption Standard (DES) dan First Of File (FOF). Universitas Sumatera Utara. Medan.
[13] Primartha, Rifkie. 2011. Penerapan Enkripsi dan Dekripsi File Menggunakan Algoritma Data
Encryption Standard (DES). Jurnal Sistem Informasi (JSI). 3(2): 371 - 387
[14] Ramadayanti, A. L. 2008. Analisa AlgoritmaVernam (OTP). Universitas Sriwijaya. Palembang.
[15] Retnoningsih, E. 2007. Belajar Internet secara Mandiri. Salemba Infotek: Jakarta.
[16] Rhee, Man Young. 2003. Internet Security: Cryptographic Principles, Algorithms and
Protocols. John Wiley & Sons: Chichester.
[17] Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan dan Implementasinya dalam Bahasa
Java. ANDI: Yogyakarta.