• Tidak ada hasil yang ditemukan

Implementasi Algoritma Rc4a Dan Md5 Untuk Menjamin Confidentiality Dan Integrity Pada File Teks

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Rc4a Dan Md5 Untuk Menjamin Confidentiality Dan Integrity Pada File Teks"

Copied!
11
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1 Kriptografi

Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi (Kromodimoeljo, 2010). Kriptografi adalah ilmu tentang metode-metode untuk mengirimkan pesan secara rahasia (disebut enkripsi atau bentuk samaran) sehingga hanya penerima yang dimaksud yang dapat memecahkan dan membaca pesan (dekripsi). Kriptografi secara etimologi terdiri dari kata kryptos berasal dari bahasa Yunani yang berarti tersembunyi dan graphein yang berarti tulisan. Pesan asli disebut plaintext dan pesan yang disamarkan disebut ciphertext (Mollin, 2007).

Secara garis besar, proses enkripsi adalah proses pengacakan naskah asli (plaintext) menjadi naskah acak (ciphertext) yang sulit untuk dibaca oleh seseorang yang tidak mempunyai kunci dekripsi. Yang dimaksud dengan sulit untuk dibaca disini adalah probabilitas mendapat kembali naskah asli oleh seseorang yang tidak mempunyai kunci dekripsi dalam waktu yang tidak terlalu lama adalah sangat kecil (Kromodimoeljo, 2010). Dekripsi merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi dikembalikan ke bentuk asalnya (teks asli), disebut dengan dekripsi pesan (Ariyus, 2008).

Algoritma kriptografi dibagi menjadi dua bagian berdasarkan kunci yang dipakainya:

1. Algoritma simetris (menggunakan satu kunci untuk enkripsi dan dekripsinya). 2. Algoritma asimetris (menggunakan kunci yang berbeda untuk enkripsi dan

(2)

2.2 Algoritma Kriptografi Kunci Simetris

Algoritma kriptografi simetris menggunakan kunci yang sama untuk enkripsi dan dekripsinya. Kunci pada penyandian simetris diasumsikan bersifat rahasia yakni hanya pihak yang melakukan enkripsi dan dekripsi yang mengetahui nilainya. Oleh karena itu, penyandian dengan kunci simetris disebut juga dengan penyandian kunci rahasia (Sadikin, 2012).

Dalam lingkungan komunikasi, algoritma kriptografi kunci simetris dapat digunakan jika kedua belah pihak yang berkomunikasi satu dengan yang lainnya saling membagi kunci enkripsi sebelumnya (Wahana Komputer, 2003).

Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci. Jika kunci tersebut diketahui oleh orang lain maka orang tersebut akan dapat melakukan enkripsi dan dekripsi terhadap pesan. Contoh algoritma yang memakai kunci simetris antara lain DES, RC4, IDEA, AES, OTP, A5, dan lain sebagainya (Ariyus, 2008).

Algoritma kriptografi kunci simetris dibagi menjadi dua yaitu : 1. Stream cipher

Stream cipher adalah suatu sistem di mana proses enkripsi dan dekripsinya dilakukan dengan cara bit per bit. Pada sistem ini aliran bit kuncinya dihasilkan oleh suatu pembangkit bit acak atau disebut juga pembangkit aliran kunci (Zain, 2012).

(3)

2. Block cipher

Sistem block cipher mengkodekan data dengan cara membagi plaintext menjadi per blok dengan ukuran yang sama dan tetap. Kemudian setiap bloknya dienkripsi atau didekripsi sekaligus (Zain, 2012). Contoh algoritma ini adalah RC5, DES, AES, IDEA, dan Blowfish.

2.3 Algoritma Kriptografi Kunci Asimetris

Penyandian dengan kunci asimetris atau sering juga disebut dengan penyandian kunci publik adalah penyandian dengan kunci enkripsi dan dekripsi yang berbeda nilai. Kunci yang digunakan untuk enkripsi disebut dengan kunci publik (public key) dan kunci yang digunakan untuk dekripsi disebut kunci rahasia (private key) (Sadikin, 2012).

Kunci asimetris adalah pasangan kunci kriptografi yang salah satunya digunakan untuk proses enkripsi dan yang satu lagi untuk proses dekripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya untuk mengenkripsi suatu pesan, sedangkan hanya satu orang saja yang memiliki kunci rahasia yang dapat melakukan pembongkaran terhadap sandi yang dikirim untuknya (Ariyus, 2006).

Contoh, Alice ingin mengirim pesan kepada Bob, maka hal yang harus dilakukan adalah :

1. Bob memberitahukan kunci publiknya ke Alice.

2. Alice mengenkripsi pesan dengan menggunakan kunci publik Bob. 3. Bob mendekripsi pesan dari Alice dengan kunci rahasianya.

4. Begitu juga sebaliknya jika Bob ingin mengirim pesan kepada Alice. Contoh algoritma yang menggunakan kunci asimetris adalah RSA, DSA, Diffie-Hellman (DH), dan lain-lain (Ariyus, 2008).

2.4 Algoritma RC4

(4)

merilis RC4 secara resmi, akibatnya banyak yang menyebutnya sebagai ARC4 (alleged RC4 atau tersangka RC4) untuk menghindari masalah trademark (Kromodimoeljo, 2010).

RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau input data pada satu saat. Unit atau data pada umumnya merupakan sebuah byte. Dengan cara ini enkripsi atau dekripsi dapat dilaksanakan pada panjang yang variabel. Algoritma ini tidak harus menunggu sejumlah input data tertentu sebelum diproses, atau menambahkan byte tambahan untuk mengenkrip (Sukmawan, 1998).

Algoritma RC4 terdiri atas 2 bagian yaitu Key Scheduling Algorithm (KSA) dan Pseudo-Random Generation Algorithm (PRGA).

1. Key Scheduling Algorithm (KSA)

Dalam proses KSA terdapat 2 state array yang harus diinisialisasi yakni S dan K. Array S sepanjang 256 diinisialisasi dengan bilangan 0 sampai 255, S[0] = 0, S[1] = 1, ... , S[255] = 255. Sedangkan array K dengan panjang 256 diinisialisasi dengan kunci yang diulangi sampai seluruh array K[0], K[1], ... , K[255] terisi penuh (Ariyanto, 2009).

Berikut adalah algoritma KSA, dimana simbol l menyatakan panjang kunci dalam byte.

for i from 0 to 255

S[i] := i

endfor

j := 0

for i from 0 to 255

j := (j + S[i] + K[i mod l]) mod 256

swap values of S[i] and S[j]

(5)

2. Pseudo-Random Generation Algorithm (PRGA)

State array S hasil dari proses KSA digunakan lagi dalam proses PRGA ini untuk menghasilkan keystream yang akan di XOR kan dengan plaintext untuk menghasilkan ciphertext (Mooduto & Albar, 2004).

Berikut adalah algoritma PRGA :

i := 0

j := 0

while GeneratingOutput:

i := (i + 1) mod 256

j := (j + S[i]) mod 256

swap values of S[i] and S[j]

output := S[(S[i] + S[j]) mod 256]

endwhile

2.5 Algoritma RC4A

Pada FSE 2004, Souradyuti Paul dan Bart Preneel telah mengusulkan sebuah varian baru dari RC4 yang diberi nama RC4A. RC4A merupakan sebuah upaya untuk meningkatkan keamanan dari RC4 tanpa mengurangi efisiensi.

RC4A adalah stream cipher yang berorientasi byte. Tahap pembentukan dari RC4A lebih efisien dibanding RC4, tetapi tahap inisialisasinya memerlukan setidaknya dua kali proses inisialisasi dari RC4.

Berikut adalah algoritma KSA dari RC4A (Tsunoo, et al. circa 2005):

RC4_KSA(K,�1)

for i = 0 ... l-1

WK[i] = RC4_PRGA(�1)

(6)

Berikut adalah algoritma PRGA dari RC4A (Tsunoo, et al. circa 2005):

Initialization:

i = 0

�1 = �2 = 0

Generation loop

i = i + 1

�1 = �1 + �1[i]

Swap (�1[i], �1[�1])

Output z = �2[�1[i] + �1[�1]]

�2 = �2 + �2[i]

Swap (�2[i], �2[�2])

Output z = �1[�2[i] + �2[�2]]

RC4A menggunakan dua state array, S1 dan S2, dan tiga buah indeks i, j1, dan

j2. RC4A menggunakan KSA yang sama dengan RC4 kecuali satu hal dimana KSA

digunakan dua kali, masing-masing sekali untuk S1 dan S2. Semua operasi aritmetika

dihitung dengan modulo 256.

Proses KSA dari RC4A terdiri atas 2 bagian yaitu : 1. KSA dengan masukan K dan S1.

2. KSA dengan masukan WK dan S2.

WK dihasilkan dari PRGA milik RC4. l di sini merupakan panjang kunci dalam byte.

Setelah S1 dan S2 diperoleh dari proses KSA, selanjutnya digunakan kembali dalam

PRGA. Tiap putaran dalam PRGA menghasilkan 2 byte output.

2.6 Fungsi Hash

(7)

Fungsi hash satu arah (one-way hash function) sering disebut juga sebagai message digest, fingerprint, dan fungsi kompresi. Fungsi ini biasanya diperlukan bila kita menginginkan pengambilan sidik jari suatu pesan. Sebagaimana sidik jari manusia yang menunjukkan identitas si pemilik sidik jari, fungsi ini diharapkan pula mempunyai kemampuan yang serupa dengan sidik jari manusia, di mana sidik jari pesan diharapkan menunjuk ke satu pesan dan tidak dapat menunjuk kepada pesan lainnya. Dinamakan sebagai fungsi kompresi karena biasanya, masukan fungsi hash ini selalu lebih besar dari pada keluarannya, sehingga seolah-olah mengalami kompresi. Namun kompresi hasil fungsi ini tidak dapat dikembalikan ke bentuk awalnya sehingga disebut fungsi satu arah. Dinamakan message digest karena seolah-olah merupakan inti sari pesan, meskipun sebenarnya tidak demikian (Kurniawan, 2004).

Fungsi hash dapat digunakan untuk mewujudkan layanan keutuhan data. Misalnya M merupakan pesan dan h adalah fungsi hash, maka �= ℎ(�) disebut dengan message digest. Sebelum pesan M disebarkan/dikirimkan sebuah message digest ����� = ℎ(�) disimpan sebagai acuan. Misalnya didapatkan kembali �′ setelah disebarkan/dikirim apabila ingin menguji apakah � =�′ hitung kembali message digest baru ����= ℎ(�′) disimpulkan pesan tidak berubah bila ����� = ����� (Sadikin, 2012).

Fungsi hash memiliki karakteristik sebagai berikut (Kromodimoeljo, 2010) : 1. Preimage resistance.

Untuk suatu nilai hash yang sembarang (tidak diketahui asal-usulnya), sangat sukar untuk mencari naskah yang mempunyai nilai hash tersebut. 2. Second preimage resistance.

Untuk suatu naskah �1, sangat sukar untuk mencari naskah lain �2 yang mempunyai nilai hash yang sama.

3. Collision resistance.

Sangat sukar untuk mencari dua naskah �1 dan �2 yang berbeda, yang mempunyai nilai hash yang sama.

2.7 Algoritma MD5

(8)

umumnya digunakan sebagai checksum untuk verifikasi integritas file yang didownload dari internet.

MD5 memproses teks masukan ke dalam blok-blok 512 bit, kemudian dibagi menjadi 16 buah sub blok sebesar 32 bit. Keluaran dari algoritma MD5 adalah sebuah set dari 4 buah blok masing-masing 32 bit, yang kemudian menghasilkan nilai hash 128 bit (Schneier, 1996).

Langkah-langkah pembuatan message digest pada MD5 adalah sebagai berikut: 1. Penambahan bit-bit pengganjal (padding bits)

Pesan ditambahkan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam bit) kongruen dengan 448, modulo 512. Hal ini berarti pesan akan mempunyai panjang yang hanya kurang 64 bit dari kelipatan 512. Penambahan bit selalu dilakukan walaupun panjang pesan sudah kongruen dengan 448, modulo 512. Jika panjang pesan jumlahnya 448 bit, maka pesan tersebut ditambah dengan 512 bit menjadi 960 bit, jadi panjang bit-bit pengganjal adalah antara 1 sampai 512 bit-bit. Bit-bit-bit pengganjal terdiri dari sebuah bit 1 dan diikuti dengan bit 0 yang menjadi sisanya (Chulkamdi, dkk. 2015).

2. Penambahan nilai panjang pesan semula

Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula. Jika panjang pesan semula > 264, maka hanya 64 bit secara low-order yang digunakan. Pada saat ini, pesan yang dihasilkan memiliki panjang yang merupakan kelipatan dari 512.

3. Inisialisasi penyangga (buffer) MD

MD5 membutuhkan 4 buah penyangga atau buffer yang masing-masing panjangnya 4 x 32 bit = 128 bit. Setiap penyangga diinisialisasi dengan nilai hexadesimal sebagai berikut :

(9)

4. Pengolahan pesan dalam blok berukuran 512 bit

Dalam tahap ini terdapat fungsi yang akan menghasilkan output satu buah word 32 bit yang didefinisikan sebagai berikut :

F(b,c,d) = (b∧c) ( b∧d)

G(b,c,d) = (b∧d)∨(c ∧∼d)

H(b,c,d) = b c d

I(b,c,d) = c (b∨ d)

(Operator logika and, or, not, xor masing-masing dilambangkan dengan

, , , ).

Tahap ini menggunakan sebuah tabel 64 elemen T[1 ... 64] yang dibangun dari fungsi sinus. T[i] menunjukkan urutan ke-i elemen dari tabel yang merupakan 232 × abs(sin(i)), di mana i dalam radian. Nilai T[i] dapat dilihat pada Tabel 2.1.

Tabel 2.1 Nilai T[i]

Proses pada tahap ini terdiri dari 4 buah putaran dan masing-masing putaran melakukan operasi dasar MD5 sebanyak 16 kali.

Operasi dasar MD5 ditulis dalam persamaan sebagai berikut:

a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s)

a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s)

a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s)

a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s)

(10)

Empat buah putaran ditunjukkan pada Tabel 2.2, Tabel 2.3, Tabel 2.4, dan Tabel 2.5.

Misalkan notasi [abcd k s i], maka

Tabel 2.2 Putaran 1

[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4] [ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]

[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]

[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]

Tabel 2.3 Putaran 2

[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]

[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]

[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]

[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]

Tabel 2.4 Putaran 3

[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]

[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]

[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]

[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]

Tabel 2.5 Putaran 4

[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]

[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]

[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]

[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]

5. Output

(11)

2.8 Penelitian yang Relevan

Berikut ini beberapa penelitian yang terkait dengan algoritma RC4A dan MD5 :

1. Rosyanti Harahap (2010) dalam skripsi yang berjudul Sistem Pengamanan Data Teks Menggunakan Algoritma Message Digest-5. Menyimpulkan bahwa MD5 dapat melakukan pengujian terhadap data teks untuk mengetahui apakah data sudah diubah atau belum.

2. M Taofik Chulkamdi, Sholeh Hadi Pramono, dan Erni Yudaningtyas (2015) dalam jurnal yang berjudul Kompresi Teks Menggunakan Algoritma Huffman dan MD5 pada Instant Messaging Smartphone Android. Menyimpulkan bahwa algoritma MD5 sesuai untuk aplikasi instant message berbasis android untuk menjaga integritas password.

Gambar

Tabel 2.1 Nilai T[i]

Referensi

Dokumen terkait

Hasil pengukuran nilai packet loss dari tiga skenario pengujian yang dilakukan diperoleh hasil perbandingan antara WMN tanpa manajemen bandwidth mempunyai nilai packet loss yang

Faktor-Faktor Yang Berhubungan Dengan Pemberian Imunisasi Campak Pada Batita di Wilayah Kerja Puskesmas Lareh Sago Halaban Kabupaten 50 Kota Tahun 2012. Diambil Pada Tanggal 21

“ Perancangan Mesin Press Dengan Sistem Pneumatik Untuk Produksi Paving Blok Dengan Gaya Tekan

Sebagai salah satu upaya untuk terus meningkatkan akses dan mutu pendidikan di Provinsi Papua, khususnya untuk mendukung kelancaran dan keberhasilan proses pembelajaran di

Dengan analisa SWOT dan IE-Matrix, disarankan beberapa hal, yaitu: strategi market intensive dilakukan melalui penetrasi pasar dan pengembangan pasar; mengembangkan

Seperti halnya dengan Asas legalitas yang tergambarkan dalam ungkapan “ nullum delictum nulla poena sine praevia lege poenali” yang kemudian menjadi asas dan merupakan

karona cuaoh untuk nondapatkan aurat porlntah darl hakin dongas oogoro, codon^can koadaaa aangat mcndcoak untuk cogara ncnboolah curat-aurat yang borada dl Kaator Poa* naka Jalan

Berdasarkan hasil penelitian dan pembahasan yang telah dilakukan, maka dapat disimpulkan bahwa gaya kepemimpinan dan ketidakapastian lingkungan memiliki pengaruh terhadap