• Tidak ada hasil yang ditemukan

Implementasi Algoritma Vernam Cipher dan Algoritma DES (Data Encryption Standard) pada Aplikasi Chatting Berbasis Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Vernam Cipher dan Algoritma DES (Data Encryption Standard) pada Aplikasi Chatting Berbasis Android"

Copied!
85
0
0

Teks penuh

(1)

LAMPIRAN B : CURICULUM VITAE

Nama Lengkap : Patra Abdala

NIM : 111401127

Tempat/ Tanggal Lahir : Ranai, 09 Januari 1993 Jenis Kelamin : Laki-laki

Agama : Islam

Alamat : Jl. Bhakti 1, No.08, Sekip, Lubuk Pakam

RIWAYAT PENDIDIKAN

Tahun 1999 – 2002 : SD Negeri 1, Ranai Tahun 2002 – 2003 : SD Negeri 2, Cepu

Tahun 2003 – 2005 : SD Negeri 060817, Medan Tahun 2005 – 2008 : SMP Negeri 1, Lubuk Pakam Tahun 2008 – 2011 : SMA Negeri 1, Lubuk Pakam

Tahun 2011 – 2016 : Jurusan S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

KEAHLIAN

(2)

Daftar Pustaka

Andri, M. Y. 2009. Implementasi Algoritma Kriptografi DES, RSA dan Algoritma Kompresi LZW pada berkas digital. Skripsi. Universitas Sumatera Utara. Medan.

Ariyus, D. 2008. Pengantar Ilmu Kriptografi: Teori, Analisis dan Implementasi. ANDI: Yogyakarta.

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.

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.

Kahate, Atul. 2013. Cryptography and Network Security. Tata McGraw-Hill Education: New Delhi.

Karch, Marziah. 2010. Android for Work: Productivity for Professionals. Apress: United State of America.

Knudsen, Jonathan. 1993. Java Cryptography. O'Reilly Media, Inc.: United State of America.

Komputer, Wahana. 2010. The Best Encryption Tools. Elex Media Komputindo: Jakarta

Kumar, N. & Gopal, B.V. 2012. VLSI Implementation of Data Encryption Standard Algorithm. International Journal of Advanced Research in Computer Science and Software Engineering (IJCTEE). 1(6): 106 – 110.

Menezes, A., van Oorschot, Paul,. & Vanstone, S. 1997. Handbook of Applied Cryptography. CRC Press: United State of America.

Park, Jin-Woo. 2007. AsiaSim 2007. Springer: Seoul.

(3)

Data Encryption Standard (DES) dan First Of File (FOF). Skripsi. Universitas

Sumatera Utara. Medan.

Primartha, Rifkie. 2011. Penerapan Enkripsi dan Dekripsi File Menggunakan Algoritma Data Encryption Standard (DES). Jurnal Sistem Informasi (JSI). 3(2): 371 - 387

Ramadayanti, A. L. 2008. Analisa Algoritma Vernam (OTP). Skripsi. Universitas Sriwijaya. Palembang.

Retnoningsih, E. 2007. Belajar Internet secara Mandiri. Salemba Infotek: Jakarta. Rhee, Man Young. 2003. Internet Security: Cryptographic Principles, Algorithms and

Protocols. John Wiley & Sons: Chichester.

(4)

BAB III

ANALISIS DAN PERANCANGAN

4.1. Analisis Sistem

Analisis sistem merupakan tahap penguraian dari suatu sistem informasi yang utuh ke dalam bagian komponennya dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan, kebutuhan fungsional dan non-fungsional maupun proses dari suatu sistem sehingga dapat di usulkan perbaikan sistem tersebut.

4.1.1. Analisis Masalah

Pencurian informasi / penyadapan merupakan hal yang mudah terjadi pada era digital sekarang ini. Umumnya pencurian informasi dilakukan pada pesan-pesan yang mengandung rahasia. Masalah utama dari penelitian ini adalah bagaimana menerapkan algoritma Vernam Cipher dan DES (Data Encryption Standard) dalam pengamanan pesan chatting.

Masalah penelitian dapat di identifikasikan ke dalam model diagram Ishikawa atau diagram sebab-akibat. Diagram ini di gunakan untuk menganalisa permasalahan secara spesifik.

Permasalahan pada penelitian ini ditunjukkan pada diagram Gambar 3.1.

(5)

Pada Gambar 3.1 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.

4.1.2. Analisis Kebutuhan

Terdapat 2 bagian pada analisis kebutuhan, yaitu kebutuhan fungsional dan kebutuhan non-fungsional.

4.1.2.1. Kebutuhan Fungsional

Kebutuhan fungsional adalah kebutuhan yang berisi proses-proses apa saja yang akan dilakukan sistem, yaitu :

1. Fungsi Enkripsi

Proses enkripsi pesan plaintext menjadi pesan ciphertext yang dilakukan oleh pengirim sebelum pesan tersebut dikirim ke penerima pesan menggunakan kunci tertentu.

2. Fungsi Dekripsi

Proses dekripsi pesan ciphertext menjadi pesan plaintext yang dilakukan oleh penerima pesan.

4.1.2.2. Kebutuhan Non-Fungsional

Kebutuhan non-fungsional menjelaskan tentang properti-properti sistem, seperti performa, penggunaan, model penyimpanan data, dokumentasi, kontrol, dan ekonomi. 1. Performa

(6)

23

2. Mudah digunakan

Aplikasi yang dibangun mudah untuk digunakan (user-friendly). 3. Dokumentasi

Aplikasi yang dibangun memiliki paduan penggunaan (user-guide). 4. Kontrol

Aplikasi yang dibangun menampilkan pesan petunjuk kesalahan apabila user melakukan kesalahan input.

5. Ekonomi

Aplikasi yang dibangun tidak membutuhkan perangkat dan biaya tambahan.

4.1.3. Analisis Proses

(7)

4.2. Pemodelan

Pemodelan sistem dilakukan untuk mendeskripsikan gambaran dari sistem yang dibangun. Pada penelitian ini dilakukan pemodelan dengan menggunakan UML untuk mendesain dan merancang sistem. UML adalah bahasa spesifikasi standard untuk mendokumentasikan, menspesifikasikan dan membangun sistem perangkat lunak. Model UML yang digunakan pada penelitian ini antara lain use-case diagram, activity diagram, serta sequence diagram.

4.2.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.

(8)

25

Pada Gambar 3.2 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.

Berikut merupakan Tabelnarrative Use-case Enkripsi pesan yang dapat dilihat pada Tabel 3.1.

Tabel 3.1.Narrative Use-case Enkripsi / Mengirim pesan

Use-case Name Enkripsi Pesan Design Scope Sistem (black box) Goal Level User-goal

Stakeholder and Interest

Pengirim(Pengguna): dapat mengenkripsikan pesan dan kunci pesan untuk meningkatkan kemananan pesan. Precondition Penggirim(Pengguna) menginput pesan dan kunci.

Minimal Guarantee Sistem akan menampilkan pesan error ketika proses enkripsi gagal.

Success Guarantee Sistem akan menampilkan pesan bahwa pesan berhasil di enkripsi.

Trigger Pengguna menekan tombol kirim (send). Main Success

Scenario

1. Pengirim menginput kunci pada menu setting 2. Pengirim menginput pesan yang akan di kirim dan

menekan tombol send.

3. Sistem akan melakukan enkripsi pesan.

4. Sistem akan mengirim pesan ter-enkripsi ke server.

Extensions

1. Kunci enkripsi tidak lengkap atau kosong.

(9)

Berikut merupakan TabelNarrative Use-case dekripsi pesan yang dapat dilihat pada Tabel 3.2.

Tabel 3.2.Narrative Use-case Dekripsi / Menerima pesan

Use-case Name Dekripsi Pesan Design Scope Sistem (black box) Goal Level User-goal

Stakeholder and Interest

Penerima dapat mendekripsikan ciphertext ke dalam bentuk plaintext sehingga pesan dapat di mengerti. Precondition Penerima menerima ciphertextdari server.

Minimal Guarantee Sistem akan menampilkan ciphertext apabila proses dekripsi gagal.

Success Guarantee Sistem akan menampilkan plaintextapabila proses dekripsi berhasil.

Trigger Pesan ciphertext di terima dari server.

Main Succes Scenario

1. Penerima memiliki kunci vernam cipher dan DES 2. Sistem akan melakukan dekripsi pesan ciphertext

menjadi plaintext dengan menggunakan kunci dari user.

3. Sistem akan menampilkan plaintext yang dapat di mengerti.

Berikut merupakan Tabel Narrative Use-case input parameter sistem yang dapat dilihat pada Tabel 3.3.

Tabel 3.3.Narrative Use-Case input parameter sistem

Use-case Name Input parameter sistem Design Scope Sistem (black box) Goal Level User-goal

Stakeholder and Interest

Client dapatmenginputkan beberapa parameter dari sistem seperti username, ip server dan kunci.

Precondition Client menginputkan parameter sistem seperti username, ip server dan kunci.

Minimal Guarantee Sistem akan menampilkan bahwa inputan error atau salah. Success Guarantee Sistem akan melakukan proses enkripsi/dekripsi pesan. Trigger Aplikasi di buka oleh client.

Main Succes Scenario

(10)

27

3.2.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 3.3 dan Gambar 3.4.

(11)

3.2.3. Acivity 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 3.5 dan Gambar 3.6.

(12)

29

Gambar 3.6. Activity diagram penerimaan pesan

3.3. Flowchart Sistem

Flowchart merupakan bagan yang menunjukkan arus pekerjaan dari sistem secara

(13)
(14)
(15)

3.3.1. Flowchart pembangkitan kunci internal

Sebelum kunci digunakan untuk proses enkripsi maupun dekripsi, kunci eksternal perlu terlebih dahulu dicari kunci internalnya. Flowchart pembangkitan kunci internal dapat di lihat pada Gambar 3.9.

(16)

33

3.3.2. Flowchart Enkripsi Pesan menggunakan Vernam Cipher

Flowchart enkripsi pesan menggunakan Vernam Cipher dapat dilihat pada Gambar

3.10.

(17)

3.3.3. Flowchart Dekripsi Pesan menggunakan Vernam Cipher

Flowchart dekripsi pesan menggunakan Vernam Cipher dapat di lihat pada Gambar

3.11.

(18)

35

3.3.4. Flowchart Enkripsi pesan menggunakan DES

Flowchart proses enkripsi pesan menggunakan DES dapat dilihat pada Gambar 3.12.

(19)

3.3.5. Flowchart Dekripsi pesan menggunakan DES

Dekripsi DES memiliki proses dan alur yang sama dengan enkripsi, hanya saja pada proses dekripsi kunci internal ke-16 (K16) diubah menjadi kunci yang pertama (K1),

kunci ke-15 (K15) menjadi kunci ke-2 (K2), dan seterusnya. Flowchart proses dekripsi

pesan dapat dilihat pada Gambar 3.13.

(20)

37

3.4. Pseudocode Sistem

Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya.

Pseudocode ditulis berbasiskan bahasa pemrograman tertentu, sehingga lebih tepat

digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Berikut adalah pseudocode dari program yang dibangun.

3.4.1. Pseudocode enkripsi pesan menggunakan Vernam

public String encryptText(String str){ int txtcode[];

chipertext = new String(chiperchar);

return chipertext; }

3.4.2. Pseudocode dekripsi pesan menggunakan Vernam

public String decryptText(String str){ int dechipercode[]; if(dechipercode[i]<0){

dechipercode[i]=(dechipercode[i]+95)%95; }

dechiperchar[i] = turnToChar(dechipercode[i]); }

dechipertext = new String(dechiperchar);

(21)

3.4.3. Pseudocode enrkispi pesan menggunakan DES

public String encryptDES(String str){ byte[] keyBytes = key.getBytes();

SecretKeySpec key = new SecretKeySpec(keyBytes, "DES");

Cipher desCipher;

desCipher = Cipher.getInstance("DES/ECB/NoPadding"); desCipher.init(Cipher.ENCRYPT_MODE, key);

byte[] text = str.getBytes();

byte[] textEncrypted = desCipher.doFinal(text);

String strEn = new String(Base64.encode(textEncrypted, 0)); System.out.println("Text Encryted : " + strEn);

return strEn; }

3.4.4. Pseudocode dekripsi pesan menggunakan DES

public String decryptDES(String str){ byte[] keyBytes = key.getBytes();

SecretKeySpec key = new SecretKeySpec(keyBytes, "DES");

Cipher desCipher;

desCipher = Cipher.getInstance("DES/ECB/NoPadding"); desCipher.init(Cipher.DECRYPT_MODE, key);

String textDecrypted = new String(desCipher.doFinal(Base64.decode(str,0)));

return textDecrypted; }

3.4.5. Pseudocode server

public void start() {

System.out.println("Secure chat server started on port " + PORT_NUMBER + "!");

System.out.println("Secure chat server stopped."); }

(22)

39

Perancangan antarmuka merupakan perancangan yang menguraikan form-form yang ada di dalam aplikasi. Sistem yang dibangun terdiri dari form login, form chatroom, dan form input kunci. Untuk server tidak memiliki GUI sehingga hanya berupa program saja.

3.5.1. 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.

Gambar 3.14 menunjukkan

tampilan sementara dari form login.

Gambar 3.14. Rancangan tampilan Form Login Masuk Chatroom

Masukkan nama

(23)

3.5.2. Form Chatroom

Form Chatroom merupakan form yang digunakan untuk proses chatting. Form ini

juga menjadi tempat untuk proses enkripsi dan dekripsi pesan chatting. Gambar 3.15 menunjukkan tampilan sementara form chatroom.

Gambar 3.15. Rancangan tampilan Form Chatroom

Keterangan :

1. Sebelum dapat mengirimkan pesan, pengguna harus terlebih dahulu menginputkan kunci kriptografi pada menu setting.

2. Pada saat pengguna menekan tombol send, maka proses enkripsi akan otomatis dilakukan dengan menggunakan kunci yang telah di setting.

Textbox input pesan (plaintext)

Send

Tampilan pesan chatting (Plaintext/ciphertext)

Setting

(24)

41

3. Pesan chiphertext dari server akan otomatis di dekripsi oleh aplikasi sebelum pesan di tampilkan pada client.

4. Apabila pengirim dan penerima memiliki kunci kriptografi yang sama maka penerima akan menerima pesan dalam bentuk plaintext, dan apabila pengirim dan penerima memiliki kunci yang berbeda maka penerima akan menerima pesan dalam bentuk ciphertext.

3.5.3. Form Setting

Form Setting merupakan form preferensi yang digunakan untuk menginput dan

menyimpan kunci kriptografi yang digunakan. Gambar 3.16 menunjukkan tampilan sementara form setting.

Gambar 3.16. Rancangan tampilan Form Setting

3.5.4. Perancangan Server

(25)
(26)

BAB IV

IMPLEMENTASI DAN PERANCANGAN

4.1. Implementasi

4.1.1. Skenario Enkripsi Vernam Cipher

Misalkan kita ingin menguji enkripsi pesan “ILKOM011” dengan kunci “KOMPUTER”,

Plaintext = ILKOM011 Kunci = KOMPUTER

Dengan menggunakan Algoritma Vernam Cipher maka kita lakukan langkah-langkah sebagai berikut :

1. Langkah pertama adalah kita harus mengubah tiap karakter plaintext dan kunci tersebut ke dalam urutan tertentu, misalkan urutan karakter ASCII.

Plaintext = 73 76 75 79 77 48 49 49 2. Lakukan langkah yang sama untuk karakter kunci.

Kunci = 75 79 77 80 85 84 69 82

3. Tambahkan setiap nomor dari alfabet plaintext kepada alfabet kunci yang bersangkutan, secara matematis dapat dituliskan dengan rumus Ci = Pi + Ki (mod n).

Plaintext = 73 76 75 79 77 48 49 49

Kunci = 75 79 77 80 85 84 69 82

--- (+)

= 148 155 152 159 162 132 118 131 4. Setelah itu lakukan modulo hasil penjumlahan sebelumnya dengan n = jumlah

populasi karakter yang digunakan, dalam hal ini ASCII = 255.

(27)

5. Terakhir terjemahkan setiap nomor hasil yang didapat ke dalam karakter alfabet, sehingga didapat karakter chipertext.

Ciphertext = ” › ˜ Ÿ ¢ „ v ƒ

Maka ciphertext dari plaintext “ILKOM011” dengan kunci “KOMPUTER” adalah “”›˜Ÿ¢„vƒ”.

4.1.2. Skenario Dekripsi Vernam Cipher

Agar pesan ciphertext dapat dibaca maka pesan tersebut harus dienkripsi terlebih dahulu. Misalkan kita ingin mendekripsikan pesan ciphertext “”›˜Ÿ¢„vƒ”, maka kita harus menggunakan kunci yang sama dengan proses enkripsi agar dapat dicari plaintext pesan tersebut.

Ciphertext = ”›˜Ÿ¢„vƒ Kunci = KOMPUTER

Dengan menggunakan Algoritma Vernam Cipher maka kita lakukan langkah-langkah sebagai berikut :

1. Langkah pertama adalah kita harus mengubah tiap karakter ciphertext dan kunci tersebut ke dalam urutan tertentu, misalkan urutan karakter ASCII.

Ciphertext = 148 155 152 159 162 132 118 131 2. Lakukan langkah yang sama untuk karakter kunci.

Kunci = 75 79 77 80 85 84 69 82

3. Kurangkan setiap nomor dari alfabet ciphertext kepada alfabet kunci yang bersangkutan, secara matematis dapat dituliskan dengan rumus Pi = Ci - Ki (mod n).

Ciphertext = 148 155 152 159 162 132 118 131

Kunci = 75 79 77 80 85 84 69 82

--- (-)

(28)

44

4. Setelah itu lakukan modulo hasil penjumlahan sebelumnya dengan n = jumlah populasi karakter yang digunakan, dalam hal ini ASCII = 255.

= 73 76 75 79 77 48 49 49

--- (mod 255)

= 73 76 75 79 77 48 49 49

5. Terakhir terjemahkan setiap nomor hasil yang didapat ke dalam karakter alfabet, sehingga didapat karakter chipertext.

Plaintext = I L K O M 0 1 1

(29)

4.1.3. Skenario Enkripsi DES

Misalkan kita ingin menguji plaintext “ILKOM011” dan kunci “KOMPUTER”, maka kita ubah dulu tiap karakter keduanya ke dalam bilangan biner,

Plaintext = (01001001), (01001100), (01001011), (01001111), (01001101), (00110000), (00110001), (00110001)

Kunci = (01001011), (01001111), (01001101), (01010000), (01010101), (01010100), (01000101), (01010010)

Berikut adalah proses enkripsi dengan algoritma Data Encryption Standard.

4.1.3.1.Proses pembangkitan kunci Internal

Sebelum kunci DES digunakan untuk proses enkripsi, kunci internal DES sebanyak 16 kunci harus dibangkitkan terlebih dahulu. Langkah pertama adalah melakukan Permutation Choice-1 (PC-1) pada kunci eksternal.

�� −1 = �

Setelah proses Permutation Choice-1 dilakukan maka akan didapat kunci PC-1 = 00000000111111110000000010111000001101110110000001111000

Setelah itu bagi 56 bit tersebut menjadi 2 bagian, bagian kiri (C0) dan kanan (D0),

C0 = 0000000011111111000000001011

D0 = 1000001101110110000001111000

Selanjutnya lakukan proses left shift pada kedua binaryC0 dan D0,

Tabel 4.1. Tabel Left Shift Round

number 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Number of

left shift 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 C1 = 0000000111111110000000010110

(30)

46

Kemudian gabungkan kembali C0 dan D0,

C1, D1 = 0000000111111110000000010110000001101110110000001111

0001

Terakhir lakukan proses Permutation Choice-2 untuk mendapatkan kunci internal.

�� −2 = �

Maka akan di dapat

K1 = 101100001001001011001010110100001000011110011000

Selanjutnya lakukan proses pengulangan perhitungan yang sama pada (C1,

D1), (C2, D2), sampai (C16, D16) pada left shift dan PC-2 sebanyak 15 kali putaran

untuk mendapatkan kunci internal DES sebanyak 16 kunci. Maka akan didapat,

K2 = 101000000001101011010010100101011011010010001100

K3 = 001101000111101001010000001010000001011011100101

K4 = 000001100111010101010000000110101110100010100111

K5 = 010011100100010101010101001001100100110110010001

K6 = 010011111100000100001001100010110010000101010011

K7 = 000010111000000110101011111001111100001100000000

K8 = 101110010000100010001011010100000000011101001110

K9 = 000110010001101010001010010101001001010101010100

K10 = 001100000011100011001100000010011010010011101100

K11 = 000100000110110001000100011010001111110010000001

K12 = 010000000110110100110100001010100100010000111111

K13 = 110001001010010100100101100011110101100110000010

K14 = 110000111000011000100011100001000100001101110001

K15 = 111010011001001010100010110100111000101001000100

(31)

4.1.3.2.Proses Enkripsi DES

Dengan menggunakan algoritma DES, maka kita lakukan langkah-langkah sebagai berikut :

1. Proses awal dalam enkripsi DES adalah melakukan Initial Permutation (IP) pada binaryplaintext.

2. Setelah itu akan didapat plaintext hasil Initial Permutation

IP = 0001111111100000000110101101110100000000111000000001111 100001100

3. Selanjutnya bagi hasil dari Initial Permutation tadi menjadi 2 bagian, masing-masing sepanjang 32 bit. Maka akan didapat,

L0 = 00011111111000000001101011011101

R0 = 00000000111000000001111100001100

(32)

48

Kemudian setelah didapatkan L0 dan R0 lakukan proses ekspansi pada R0

menggunakan Permutasi Ekspansi (E),

�=

E(R0) = 000000000001011100000000000011111110100001011000

Langkah selanjutnya lakukan XOR antara hasil ekspansi R0 dengan K1sehingga

di dapat binary A.

E(R0) = 000000000001011100000000000011111110100001011000

K1 = 101100001001001011001010110100001000011110011000

--- (XOR) A = 101100001000010111001010110111110110111111000000

Selanjutnya lakukan proses subtitusi dari binary A yang di dapat ke dalam kotak-S (S-boxes). Sebelumnya kelompokkan terlebih dahulu binary A ke dalam 6 bit tiap kelompok agar mempermudah proses subtitusi.

(33)
(34)

50

Setelah dilakukan permutasi kotak-S maka akan didapat, B = 00100110111001101001101011001101

Kemudian lakukan proses subtitusi kembali terhadap binary hasil yang didapat dengan menggunakan matriks kotak-P (P-Boxes).

�=

f = 01111001011100010001101100110101

Selanjutnya lakukan XOR antara L0 dengan hasil fungsi f yang didapat

sehingga ditemukan R1,

f = 01111001011100010001101100110101 L0 = 00011111111000000001101011011101

--- (XOR) R1 = 01100110100100010000000111101000

(35)

R2 = 11011110000100001100100011100000

R3 = 11100000000000011100010010011000

R4 = 01000000010101111001101011001011

R5 = 10001110011100011000000000000000

R6 = 11101110000100110001011010001110

R7 = 11100011110100011100100100011001

R8 = 10111010100110010010000101100010

R9 = 00111111010001011001111010100100

R10 = 01101000100001000011011111011010

R11 = 11100010110110010011010001100100

R12 = 11000100011110010111100101100100

R13 = 11000111111110111110110110100000

R14 = 11010101111001011111110110110111

R15 = 11111111000001000100101001101000

R16 = 11110101000001010010101000011111

Langkah terakhir setelah didapat R16 gabungkan binaryL16 dengan R16, dan

lakukan proses Invers Initial Permutation (IP-1) untuk mendapatkan binaryciphertext,

L16, R16 = 1111010100000101001010100001111111111111000001000

100101001101000

Kemudian konversikan binary yang didapat ke dalam string agar didapat ciphertext,

(36)

52

4.1.3.3.Proses Dekripsi DES

Proses dekripsi pada algoritma DES memiliki langkah-langkah yang sama dengan proses enkripsinya. Hanya saja pada proses dekripsi kunci internal ke-16 (K16) diubah

menjadi kunci yang pertama (K1), kunci ke-15 (K15) menjadi kunci ke-2 (K2), dan

seterusnya.

Dengan menggunakan algoritma DES, maka kita lakukan langkah-langkah sebagai berikut :

1. Langkah pertama adalah melakukan Initial Permutation-1 pada ciphertext. Ciphertext = Ñ?ñ?ÁÆÊÀ

2. Setelah itu akan didapat hasil Initial Permutation

IP = 111101010000010100101010000111111111111100000100010010100

1101000

3. Selanjutnya bagi hasil dari Initial Permutation tadi menjadi 2 bagian, masing-masing sepanjang 32 bit. Maka akan didapat,

L0 = 11110101000001010010101000011111

R0 = 11111111000001000100101001101000

4. Selanjutnya lakukan proses enkripsi sebanyak 16 kali putaran.

Setelah didapatkan L0 dan R0 lakukan proses ekspansi pada R0 menggunakan

(37)

�=

E(R0) = 011111111110100000001000001001010100001101010001

Langkah selanjutnya lakukan XOR antara hasil ekspansi R0 dengan K1sehingga

di dapat binary A.

E(R0) = 000000000001011100000000000011111110100001011000

K1 = 101000011001001000101010010000011000001001011110

--- (XOR) A = 110111100111101000100010011001001100000100001111

Selanjutnya lakukan proses subtitusi dari binary A yang di dapat ke dalam kotak-S (S-boxes). Sebelumnya kelompokkan terlebih dahulu binary A ke dalam 6 bit tiap kelompok agar mempermudah proses subtitusi.

A = (110111)(100111)(101000)(100010)(011001)(001100)(000100) (001111)

Tabel 4.2. Tabel Subtitusi Kotak-S

(38)

54

(39)

Kemudian lakukan proses subtitusi kembali terhadap binary hasil yang didapat dengan menggunakan matriks kotak-P (P-Boxes).

�=

f = 01111001011100010001101100110101

Selanjutnya lakukan XOR antara L0 dengan hasil fungsi f yang didapat

sehingga didapat R1,

f = 00100000111000001101011110101000 L0 = 11110101000001010010101000011111

--- (XOR) R1 = 11010101111001011111110110110111

Langkah selanjutnya adalah melakukan proses perhitungan yang sama pada R1, R2, sampai R16 sebanyak total 16 kali putaran.

R2 = 11000111111110111110110110100000

R3 = 11000100011110010111100101100100

R4 = 11100010110110010011010001100100

R5 = 01101000100001000011011111011010

R6 = 00111111010001011001111010100100

R7 = 10111010100110010010000101100010

R8 = 11100011110100011100100100011001

R9 = 11101110000100110001011010001110

R10 = 10001110011100011000000000000000

(40)

56

R12 = 11100000000000011100010010011000

R13 = 11011110000100001100100011100000

R14 = 0110011010010001000000011110100

R15 = 00000000111000000001111100001100

R16 = 00011111111000000001101011011101

Langkah terakhir setelah didapat R16 gabungkan binary L16 dengan R16, dan lakukan

proses Invers Initial Permutation (IP-1) untuk mendapatkan binaryciphertext,

��−1 =

L16, R16 = 010010010100110001001011010011110100110100110000001100

0100110001

(41)

4.2. Pengujian

Dalam pengujian ini penulis menggunakan pengujian black box testing yaitu pengujian dengan melihat input dan output apakah sesuai dengan kebutuhan atau belum, tanpa melihat sourecode program.

4.2.1. Pengujian Enkripsi Pesan

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 di progam jcreator.

Gambar 4.1. Tampilan server chatting

Setelah itu penulis akan mencatat IP dari server tersebut dengan melihat IP dari PC/Laptop server yang bersangkutan.

(42)

58

Gambar 4.2. Tampilan IPserver chatting

Kemudian penulis akan meng-inputkan username dan IP server sesuai IP server sebelumnya

Username = patra09 Server IP = 192.16.137.1

Gambar 4.3. Tampilan menu login IP server yaitu

192.16.137.1

Username

(43)

Setelah itu penulis akan melakukan input Kunci dengan memilih menu setting Kunci = 12345678

Gambar 4.4. Tampilan menu setting

Kemudian penulis akan mencoba menginputkan pesan “S1 Ilmu Komputer” Pesan = S1 ILMU KOMPUTER

(44)

60

Gambar 4.5. Pengujian Input Pesan yang akan dikirim

Setelah penulis menekan tombol “SEND” maka akan didapat hasil seperti Gambar 4.6.

Pesan yang akan dikirim

(45)

Pengujian selanjutnya dilakukan untuk mengetahui pengaruh panjang plaintext terhadap lama proses enkripsi Data Encryption Standard (DES).

Tabel 4.3. Hasil pengujian enkripsi dengan variasi panjang Plaintext

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 Tabel 4.3 dapat dilihat grafik pada Gambar 4.7 yaitu lama waktu dalam melakukan proses enkripsi pesan dengan beberapa contoh panjang plaintext yang berbeda. Dari data tersebut dapat diketahui bahwa lamanya waktu proses enkripsi berbanding lurus dengan jumlah plaintext yang digunakan.

Gambar 4.7. Grafik pengujian Enkripsi Pesan

0,57 0,636

0,779

2,081

0 0,5 1 1,5 2 2,5

1024 102400 1024000 10240000

Waktu Enkripsi (Detik)

(46)

62

4.2.2. Pengujian Dekripsi Pesan

Selanjutnya penulis akan melakukan proses dekripsi dari ciphertext sebelumnya dengan menggunakan kunci yang sama yaitu “12345678”.

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 . Penulis akan mekakukan inputan “S1 Ilmu Komputer”. Hasil dari proses dekripsi pesan dapat dilihat pada Gambar 4.8.

Gambar 4.8. Pengujian Dekripsi Pesan

Pengujian selanjutnya dilakukan untuk mengetahui pengaruh panjang plaintext terhadap lama proses dekripsi Data Encryption Standard (DES).

Tabel 4.4. Hasil pengujian dekripsi dengan variasi panjang Plaintext

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

Plaintext

Key toggle

(47)

Berdasarkan Tabel 4.4 dapat dilihat grafik pada Gambar 4.9 yaitu lama waktu dalam melakukan proses dekripsi pesan dengan beberapa contoh panjang plaintext yang berbeda. Dari data tersebut dapat diketahui bahwa lamanya waktu proses Dekripsi berbanding lurus dengan jumlah ciphertext yang digunakan.

Gambar 4.9. Grafik pengujian Dekripsi Pesan

Tabel 4.5. Perbandingan waktu Enkripsi dan Dekripsi pesan

(48)

64

Gambar 4.10. Grafik perbandingan waktu Enkripsi dan Dekripsi Pesan

Bersdasarkan Tabel 4.5 dan Gambar 4.10, dapat diinformasikan 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.

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

1024 102400 1024000 10240000

Waktu Enkripsi

(49)

BAB V

KESIMPULAN DAN SARAN

9.1. Kesimpulan

Berdasarkan pembahasan dan dari hasil penelitian, maka diperoleh beberapa kesimpulan sebagai berikut :

1. Pada penelitian ini panjang pesan chattingyang 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

(50)

66

9.2. 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.

(51)

BAB II

TINJAUAN PUSTAKA

2.1. Kriptografi

Kriptografi adalah ilmu yang mempelajari teknik-teknik matematis yang berhubungan dengan aspek keamanan informasi seperti keabsahan, integritas data, serta autentifikasi data. Kriptografi tidak berarti hanya memberikan keamanan informasi saja, namun lebih kearah teknik-teknik untuk mengamankannya. (Wahana Komputer, 2010)

2.1.1. Terminologi

Dalam menjaga kerahasiaan data, kriptografi mengubah data jelas (plaintext) ke dalam bentuk data sandi (ciphertext) yang tidak dapat dikenali. Ciphertext inilah yang kemudian dikirimkan oleh pengirim (sender) kepada penerima (receiver). Setelah sampai di penerima, ciphertext tersebut ditransformasikan kembali ke dalam bentuk plaintext agar dapat dikenali. (Wahana Komputer, 2010)

Proses pengubahan dari plaintext menjadi ciphertext disebut proses Encipherment atau enkripsi (encryption), sedangkan proses mengubah kembali

ciphertext disebut proses dekripsi (decryption). (Wahana Komputer, 2010)

Untuk mengenkripsi dan mendekripsi data, kriptografi menggunakan suatu algoritma dan kunci (key). Algoritma adalah fungsi matematika yang digunakan untuk mengenkripsi dan mendekripsi. Sedangkan kunci merupakan sederetan bit yang diperlukan untuk mengenkripsi dan mendekripsi data. (Wahana Komputer, 2010)

2.2. Teknik Kriptografi

Pada umumnya terdapat dua teknik yang digunakan dalam kriptografi, yakni kunci simetrik dan kunci asimetrik (public-key). (Wahana Komputer 2010)

2.2.1. Algoritma Kriptografi Simetris

(52)

6

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.(Amanda Lilda Ramadayanti, 2008)

Gambar 2.1. Kriptografi Simetris (Amanda Lilda Ramadayanti, 2008)

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). (Wahana Komputer, 2010)

2.2.2. Algoritma Kriptografi 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). (Wahana Komputer, 2010)

(53)

2.3. Sistem Kriptografi Vernam Cipher

Vernam Cipher ditemukan oleh Gilbert Sandford Vernam (1890-1960) yang juga

seorang penemu stream cipher 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.

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. (Dhiren R. Patel, 2008)

2.3.1. Algoritma Vernam Cipher

Rumus dasar untuk menghitung vernam cipher dalam mode binary dapat di tuliskan sebagai berkut :

Ci = Pi+ Ki(mod n) ………..………... (2.1)

Keterangan : Ci = Ciphertext

Pi = Plaintext

Ki = 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

(54)

8

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. (Kahate, 2013)

2.3.2. 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) …….……….……….……….….. (2.2)

Keterangan :

C = Ciphertext

M = Message / Plaintext k = Key / Kunci

n = Banyaknya jumlah karakter yang digunakan

2.3.3. Dekripsi Vernam cipher

Proses dekripsi ciphertext (C) menjadi plaintext (P) menggunakan kunci rahasia (k) dapat dinyatakan sebagai berikut :

M = C – k (mod n) ..……….……….…....… (2.3)

Keterangan :

M = Message / Plaintext C = Ciphertext

k = Key / Kunci

(55)

2.4. Sistem Kriptografi Data Encryption Standard (DES)

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). (Atul Kahate, 2013)

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. (Man Young Rhee, 2003)

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 TabelS-boxes. Pada algoritma DES Enkripsi dan dekripsi menggunakan algoritma yang sama namun dalam urutan yang terbalik. (Man Young Rhee, 2003)

2.4.1. Algoritma Data Encryption Standard

DES terdiri dari 16 tahapan, setiap tahapan disebut sebagai putaran. Setiap putaran

(56)

10

Gambar 2.3. Skema Algoritma DES (Atul Kahate, 2013)

1. Pada tahap pertama, permutasikan sebuah blok 64 bit plaintext dengan TabelInitial 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 TabelFinal Permutation (FP) / Invers Initial Permutation (IP-1). 6. Proses ini akan menghasilkan ciphertext. (Atul Kahate, 2013).

2.4.2. Pembangkitan kunci Internal

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

(57)

Misalnya Kunci Eksternal (KE) yang tersusun dari 64 bit. Kunci eksternal ini menjadi masukan untuk proses permutasi dengan menggunakan matriks permutasi kompresi (PC-1).

Proses selanjutnya lakukan permutasi dari matriks kunci eksternal 64 bit terhadap Permutation Choice (PC-1). (Nimmi Gupta, 2012)

�� −1 = �

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: (Rifkie Primartha, 2011)

C0 berisi bit-bit dari K pada posisi :

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. (Nimmi

(58)

12

Tabel 2.1. Jumlah pergeseran biat tiap putaran (Man Young Rhee, 2003) Round

number 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Number of

left shift 1 1 2 2 2 2 2 2 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). (Nimmi Gupta, 2010)

�� −2 = �

14 17 11 24 1 5 3 28 15 6 21 10

23 19 12 4 26 8 16 7 27 20 13 2

41 52 31 37 47 55 30 40 51 45 33 48

44 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 Gambar2.4. Bila jumlah pergeseran bit-bit pada Tabel 2.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. (Rifkie

Primartha, 2011)

(59)

2.4.3. Enkripsi DES

Proses awal yang dilakukan dalam enkripsi adalah Permutasi Awal (Initial Permutation, IP). Pengacakan dilakukan dengan menggunakan Matriks Initial Permutation.

�� = �

Proses enciphering terhadap blok plaintext dilakukan setelah permutasi awal. Setiap blok plaintext mengalami 16 kali putaran enciphering (Rifkie Primartha, 2010). Secara matematis, satu putaran DES dinyatakan sebagai (Nimmi Gupta, 2012):

Ln = Rn-1 ………..…………....……….. (2.4)

Kemudian setiap blok Rn-1di ekspansi dari 32 bit menjadi 48 bit. (Jin-Woo Park,

2007) Berikut matriks permutasi Ekspansi (E) (Man Young Rhee, 2003):

�=

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

(60)

14

B1,…,B1 6 = Bit hasil XOR yang dikelompokan masing-masing 6 bit

Fungsi f di dapat dari mengimplementasikan permutasi pada bit-bit vektor A sebagai berikut (Jin-Woo Park, 2007):

f = P(S1(B1)S2(B2),…,S8(B8))……… (2.8)

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. (Rifkie

Primartha, 2011) Kotak-S dapat dilihat pada Tabel 2.

Tabel 2.2. Matriks Kotak-S (Man Young Rhee, 2003)

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

S1

0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7

1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

(61)
(62)

16

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. (Nimmi Gupta, 2012)

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). (Rifkie Primartha, 2011)

�=

Selanjutnya setelah didapatkan f lakukan proses XOR antara f(Rn-1, Kn) dengan

Ln-1 untuk mendapatkan Rn menggunakan rumus (8.5) (Rifkie Primartha, 2011)

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). (Nimmi Gupta, 2010)

(63)

2.4.4. Dekripsi DES

Proses dekripsi DES menggunakan proses yang sama dengan enkripsi. Proses dekripsi DES menggunakan ciphertext sebagai inputan, tetapi gunakan kunci Kn dalam urutan

yang terbalik. Misalnya gunakan kunci K16 untuk iterasi yang pertama, K15 untuk

iterasi kedua, sampai K1 untuk iterasi yang terakhir. (Naveen Kumar, 2012) Secara

matematis dapat dituliskan sebagai berikut (Nimmi Gupta, 2012) :

Ln = Rn-1 ………..………..…….…….… (2.8)

maka untuk proses dekripsi urutan kunci yang digunakan adalah K16, K15, …, K1.

Masukan awalnya adalah R16 dan L16 untuk deciphering. Blok R16dan L16diperoleh

dengan melakukan permutasi ciphertextdengan matriks permutasi IP-1. (Rifkie Primartha, 2011)

2.5. Sistem Operasi Android

Pada tahun 2005, Google mengakuisisi sebuah perusahaan kecil yang didirikan oleh Andy Ruben yang bernamaDanger, Inc. Danger merupakan sebuah perusahaan yang membuat ponsel dengan merek T-Mobile. Pada awalnya pengembangan Androidsama sekali tidak diketahui. Perusahaan Danger memang dikenal membuat software mobile, tetapi Google tidak pernah memberikan keterangan atau rencana bahwa

Android akan dikembangkan. (Marziah Karch, 2010)

(64)

18

operator selular, software developers, perusahaan perangkat keras, dan komponen. (Marziah Karch, 2010)

Sejak diakuisisi oleh Google dan diterapkan ke dalam sebuah perangkat mobile, OS Android dikembangkan dengan kode yang dinamai berdasarkan nama dessert

(pencuci mulut) dan diurut berdasarkan alfabet, seperti Cupcake (OS Android 1.5), Donut (OS Android 1.6), Eclair (OS Android 2.0 – 2.1), Froyo (OS Android 2.2 –

2.2.3), Gingerbread (OS Android 2.3–2.3.7), Honeycomb (OS Android 3.0–3.2.6), Ice

Cream Sandwich (OS Android 4.0–4.0.4), Jelly Bean (OS Android 4.1–4.3), KitKat

(OS Android 4.4+), Lollipop (OS Android 5.0) dan Marshmallow (OS Android 6.0).

2.6. Chatting / Messaging

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 mitra 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. (Era Retnoningsih, 2007)

2.7. Skema Encoding Base64

Base64 merupakan sebuah sistem yang merepresentasikan data mentah seperti halnya

(65)

Gambar 2.5. Konversi Byte ke dalam base64 (Knudsen, 1998)

Encoding base64 selalu merentangkan inputan data menjadi kelipatan 24 bit (3

byte). Berikut beberapa contoh algoritma base64 :

Inputan kelipatan dari 3 byte. Dalam hal ini, tidak memerlukan perentangan.

Inputan memiliki extra satu bit. Byte ini kemudian dibagi menjadi 2 digit base64, dan dua digit perentangan ditambahkan ke tiap akhir dari digit base64.

(66)

20

2.8. Penelitian yang relevan

Berikut ini beberapa penelitian tentang kriptografi yang berkaitan dengan Algoritma Vernam Cipher dan Data Encryption Standard(DES) :

No Nama/Tahun Judul Hasil Penelitian 1. Rio Auditya

Semakin banyak pesan teks, maka semakin lama waktu yang dibutuhkan untuk proses enkripsi dan dekripsi.

2. M. Yuli Andri

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)

Analisa Algoritma Vernam (OTP)

(67)

BAB I

PENDAHULUAN

1.1. Latar Belakang

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 maupun 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 bagaimana meyembunyikan pesan. Namun pada pengertian modern kriptografi adalah ilmu yang berdasarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan dan otentikasi entitas data. (Sadikin, 2012)Kriptografi terdiri dari dua komponen dasar, yaitu algoritma dan kunci. (Gupta, 2012)

Algoritma Vernam merupakan suatu stream cipheryang di defenisikan dari suatu

Alfabet. Pesan yang akan di enkripsi harus memiliki panjang string yang sama dengan kunci yang digunakan, sehingga dapat menghasilkan pesan cipher (pesan terenkripsi). (Menezes, 1997) Ciphertext hasil dari vernam didapat dari hasil penjumlahan nilai kunci dan nilai plaintext yang kemudian di modulus dengan jumlah karakter yang tersedia. (Kahate, 2013)

Salah satu contoh dari kriptografi modern adalah Algoritma DES (Data Encryption Standard).DES termasuk ke dalam sistem kriptografi simetri dan

tergolong jenis cipher blok. DES mengenkripsikan 64 bit plaintext menjadi 64 bit ciphertext. Kunci internal dibangkitkan dari kunci eksternal yang panjangnya 64 bit.

(Ariyus, 2008) CiphertextDES di dapat dari berbagai proses subtitusi dan transposisi plaintext sebanyak 16 kali putaran (Kahate, 2013) sehingga keamanan untuk

algoritma DES ini tergolong cukup tinggi.

(68)

2

Blackberry ataupun Windows. Ponsel berbasis Android merupakan salah satu ponsel

yang paling digandrungi dan perkembanganya sangat pesat sekarang 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-informasi yang akan dikirimkan aman dan tidak dapat dibaca

pihak lain bahkan untuk server sekalipun sehingga terhindar dari percobaan penyadapan oleh pihak-pihak yang tidak bertanggung jawab.

1.2. Rumusan Masalah

Berdasarkan latar belakang di atas, rumusan masalah pada penelitian ini adalah bagaimana cara mengamankan pesan chatting dengan mengimplementasikan Algoritma Vernam Chiper yang dikombinasikan dengan Algoritma DES berbasis Android sebelum pesan dikirim melewati pihak ke-tiga (server).

1.3. Batasan Masalah

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 VernamCipher 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.

1.4. TujuanPenelitian

(69)

1.5. Manfaat Penelitian

Dengan adanya penelitian ini diharapkan mampu melindungi serta meningkatkan keamanan data khususnya data yang mengandung informasi rahasia sehingga data tersebut tidak jatuh ke tangan yang tidak bertanggung jawab.

1.6. Metodologi 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 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 Scenario, flowchart sistem, flowchart algoritma, 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

(70)

4

1.7. Sistematika Penelitian

Agar pembahasan lebih sistematis, maka tulisan inidibuat dalam lima bab, yaitu : BAB I PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang penilitian judul skripsi “Implementasi algoritma vernam cipher dan algoritma DES (Data Encryption Standard) pada aplikasi chatting berbasis android”.

Rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, tinjauan pustaka,dan sistematika penulisan skripsi.

BAB II LANDASAN TEORI

Berisi tentang pembahasan teori-teori tentang Kriptografi algoritma Vernam Cipher dan Data Encryption Standard.

BAB III ANALISIS DAN PERANCANGAN

Berisi tentang uraian analisis mengenai proses kerja dari metode Vernam Cipher dan Data Encryption Standard yang terdiri dari

Flowchart, pseudocode, Unified Modeling Language (UML) serta

perancangan dari aplikasi.

BAB IV IMPLEMENTASI DAN PENGUJIAN

Pada tahap ini dilakukan pembuatan sistem sesuai dengan analisis dan perancangan. Kemudian melakukan pengujian sistem.

BAB V KESIMPULAN DAN SARAN

(71)

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 proses enkripsi lebih lama dari pada waktu untuk melakukan proses dekripsi.

(72)

vii

IMPLEMENTATION OF VERNAM CIPHER ALGORITHM AND DES (DATA ENCRYPTION STANDARD) FOR CHATTING

APPLICATION BASED ON ANDROID

ABSTRACT

Nowadays the exchange of digital information is an important part in our life. For example was doing Chatting. In chatting, the exchange of information must go through the server first. For the secret information leaking can be a serious problem. In order to secure the message we must encrypt the message first before sending it to server. One of the ways to secure our information is to use Cryptography technique. The sender will send the message to recipient, but before the message go through the server, it will be encrypted first, after that the server will forward the cipher to the recipient, and then recipient decrypted the cipher back to message that contain the information. In this research, the writer combines two cryptography algorithm for securing the chatting message, it was Vernam Cipher and DES (Data Encryption Standard) by using Android Studio as IDE. The encryption process takes more time than decryption process.

(73)

SKRIPSI

PATRA ABDALA 111401127

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(74)

IMPLEMENTASI ALGORITMA KRIPTOGRAFI VERNAM CIPHER DAN ALGORITMA DES (DATA ENCRYPTION STANDARD) PADA

APLIKASI CHATTING BERBASIS ANDROID

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

PATRA ABDALA 111401127

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(75)

Judul : IMPLEMENTASI ALGORITMA KRIPTOGRAFI VERNAM CIPHER DAN ALGORITMA DES (DATA ENCRYPTION STANDARD) PADA

APLIKASI CHATTING BERBASIS ANDROID

Kategori : SKRIPSI

Nama : PATRA ABDALA

Nomor Induk Mahasiswa : 111401127

Program Studi : SARJANA (S1) ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI (Fasilkom-TI)

Diluluskan di Medan, 31 Januari 2017

Komisi Pembimbing:

Dosen Pembimbing II Dosen Pembimbing I

Herriyance, ST, M. Kom M. Andri Budiman, ST, M.Comp.Sc, MEM NIP. 19801024 201012 1 002 NIP. 19751008 200801 1 011

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

(76)

iii

PERNYATAAN

IMPLEMENTASI ALGORITMA KRIPTOGRAFI VERNAM CIPHER DAN ALGORITMA DES (DATA ENCRYPTION STANDARD) PADA

APLIKASI CHATTING BERBASIS ANDROID

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 31 Januari 2017

(77)

Alhamdulillah. Puji dan syukur kehadirat Allah SWT yang dengan rahmat dan karunia-Nya penulis dapat menyelesaikan penyusunan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Pada pengerjaan skripsi dengan judulImplementasiAlgoritma Vernam Cipher dan Algoritma DES (Data Encryption Standard) pada Aplikasi Chatting berbasis Android, penulis menyadari bahwa banyakpihak yang turut membantu, baik dari pihak keluarga, sahabat dan orang-orang terkasih yang memotivasi dalam pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada:

Ucapan terima kasih penulis sampaikan kepada:

1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum. selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Opim Salim Sitompul, Msc selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom. selaku Ketua Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara.

4. Ibu Maya Silvi Lydia, B.Sc, M.Sc. selaku Sekretaris Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara.

5. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembimbing I yang telah memberikan bimbingan dan dukungan kepada penulis.

6. Bapak Herriyance, ST, M. Kom. selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran dan masukan kepada saya dalam pengerjaan skripsi ini.

7. Bapak Drs. Agus Salim Harahap, M.Si selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

(78)

v

9. Yang tercinta dan teristimewa, Ayahanda Syahidun S.ST dan Ibunda Dhedek Sri Muliyani, Abangku Syafitra Ibadillah, dan Adikku Vitriya Afdilla serta Yuliana yang selalu memberikan semangat buat penulis.

10. Seluruh tenaga pengajar dan pegawai pada Fakultas Ilmu Komputer dan Teknologi InformasiUSU, khususnya abangda faisal hamid di Program Studi S-1 Ilmu Komputer.

11. Sahabat seperjuangan yang telah memberikan dukungan, bantuan dan semangat yang luar biasa serta menjadi teman berbagi suka maupun duka terutama kepada Fernandes, Henry, Nihe, Tanta dan Madian.

12. Rekan-rekan pengurus IMILKOM (Ikatan Mahasiswa S1 Ilmu Komputer) Fasilkom-TI 2013-2014 yang telah memberikan banyak dukungan terutama kepada Farid Akbar Siregar, dan Joshua Christy

13. Seluruh Adik-adik stambuk, khususnya Ramdhan Syahputra dan adik stambuk 2013 Ilmu Komputer USU.

14. Semua pihak yang terlibat langsung atau tidak langsung yang penulis tidak dapat tuliskan satu per satu.

Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.

Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, penulis mengharapkan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya..

Medan, Januari 2017

Gambar

Tabel 3.3.Narrative Use-Case input parameter sistem
Gambar 3.4. Sequence diagram penerimaan pesan
Gambar 3.5. Activity diagram pengiriman pesan
Gambar 3.6. Activity diagram penerimaan pesan
+7

Referensi

Dokumen terkait

75 4.3.2 4.4 Kurva Perbandingan Karakteristik dan Efisiensi Generator Sinkron Hubung Wye dan Hubung Delta Pada Saat Beban Seimbang dan Tidak Seimbang. 81 Kurva

The present study describes the relationship between macerals constituent, chemical properties and hydrocarbon potential in some Tertiary coals from Lower and Upper Kutai

Pengakuan Model Noken Dalam Putusan Mahkamah Konstitusi Tentang Pemilukada Lanny Jaya Papua Dan Implementasinya Terhadap Sistem Pemilu Di Indonesia .Thesis :

tegangan generator sinkron hubung wye pada beban seimbang lebih besar dari. pada pengaturan tegangan pada hubung delta, yaitu sebesar 90 % dan

Batubara pada Formasi Batupasir Haloq merupakan bagian dari Cekungan Kutai Atas, yang terendapkan pada kondisi limnic (low moor) dengan genesa gambut ombrotrophic

a) Karakteristik litologi sandstone NAF mempengaruhi metode enkapsulasi yang diterapkan, disarankan melakukan kompaksi material sandstone atau pencampuran material

Seluruh adik – adik FISIKA USU stambuk 2014, 2015 dan 2016 dan juga Seluruh teman – teman di Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, Medan

• Bila subclass yang diturunkan dari abstract y g class tidak mengimplementasikan isi semua method abstrak parent class, maka subclass tersebut harus tetap dideklarasikan abstract..