implementasi algoritma kriptografi vernam cipher dan des ... · kata kunci: kriptografi, vernam...

19
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 Abdala 1) , Mohammad Andri Budiman 2) , Herriyance 3) Program Studi S1 Ilmu Komputer,Fasilkom-TI Universitas Sumatera Utara Jalan Universitas No. 9 Kampus Universitas Sumatera Utara Medan 20155 e-mail: [email protected], [email protected], [email protected] 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].

Upload: others

Post on 30-Oct-2019

15 views

Category:

Documents


0 download

TRANSCRIPT

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: [email protected], [email protected], [email protected]

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.

12

Gambar 12. Flowchart pengiriman pesan

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.