• 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!
16
0
0

Teks penuh

(1)

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

(2)

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)

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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)

(9)

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):

�=

(10)

E(Rn-1) Kn = A ……….………..………... (2.6) A = (B1)(B2)(B3)(B4)(B5)(B6)(B7)(B8).……….... (2.7) Keterangan :

E =Fungsi ekspansi

Rn = Right permutation ke – n

Kn = Key permutation

A = Vektor hasil XOR yang panjangnya 48 bit

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) Keterangan :

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

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

(11)
(12)

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)

� = 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)

(13)

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) Rn = Ln-1 f(Rn-1, Kn) ……….………..….. (2.9) Keterangan :

Ln = Left permutation Ke – n Rn = Right permutation Ke – n Kn = Key permutation Ke – n f = Fungsi permutasi f

Jika pada proses enkripsi urutan kunci yang digunakan adalah K1, K2, …, K16, 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)

(14)

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

(15)

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.

(16)

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 tidak akan mengetahui algoritma apa yang digunakan pada berkas tersebut.

3. Amanda Lilda Ramadayanti (2008)

Analisa Algoritma Vernam (OTP)

Gambar

Gambar 2.1. Kriptografi Simetris (Amanda Lilda Ramadayanti, 2008)
Gambar 2.3. Skema Algoritma DES (Atul Kahate, 2013)
Tabel 2.1. Jumlah pergeseran biat tiap putaran (Man Young Rhee, 2003)
Tabel 2.2. Matriks Kotak-S (Man Young Rhee, 2003)
+2

Referensi

Dokumen terkait

Komunikasi matematis merupakan kemampuan untuk menggunakan bahasa matematika (terkait istilah dan simbol matematika), mengekspresikan gagasan dan argument matematika

PENGARUH ADITIF Nd 2 O 3 TERHADAP SIFAT FISIS, SIFAT MAGNET DAN STRUKTUR KRISTAL PADA PEMBUATAN.. MAGNET

Memilih meng-klik button field 2 berarti memilih masuk ke room help (bantuan), dalam room bantuan user akan diberi petunjuk sebelum memulai permainan game edukasi ini.. Selain

p-ISSN: 2528-102X e-ISSN: 2541-4321 Melihat kenyataan seperti demikian peneliti berkeyakinan bahwa pembelajaran dengan menggunakan pendekatan realistik dapat membuat siswa

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

Untuk menemukan hubungan pola asuh orang tua, pergaulan teman sebaya dan media televisi terhadap karakter siswa di SMP Negeri 25 Purworejo, dengan unsur pokok kajian seperti

Setidaknya 33,92% dari peserta sosialisasi telah memiliki usaha sampingan yang terbagi menjadi 24,42% usaha budidaya jangkrik dan sisanya tertarik mengembangkan usaha

Sumardjono (2001) dalam Premonowati (2006) menyebutkan untuk mengatasi masalah penyediaan tanah perkotaan dapat ditempuh melalui berbagai kebijakan antara lain dengan