• Tidak ada hasil yang ditemukan

Implementasi Algoritma Zig-Zag Cipher Dan Algoritma Rc4+ Cipher Dalam Skema Super Enkripsi Untuk Pengamanan Teks

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Zig-Zag Cipher Dan Algoritma Rc4+ Cipher Dalam Skema Super Enkripsi Untuk Pengamanan Teks"

Copied!
15
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1.Kriptografi

2.1.1 Definisi Kriptografi

Kata Kriptografi berasal dari bahasa Yunani yang terdiri dari dua kata yaitu kryptós dan gráphein, “kryptós” yang mempunyai arti tersembunyi dan “gráphein” yang berarti tulisan. Sehingga secara etimologi kriptografi adalah “tulisan tersembunyi”. Menurut Request for Comments (RFC), kriptografi adalah ilmu matematika yang berhubungan dengan transformasi data untuk membuat artinya tidak dapat dipahami (untuk menyembunyikan makna data tersebut), mencegahnya dari perubahan tanpa izin, atau mencegahnya dari penggunaan yang tidak sah. Kriptografi juga bisa diartikan sebagai proses mengubah kembali data yang terenkripsi menjadi bentuk yang dapat dipahami jika transformasinya dapat dikembalikan. Kriptografi dapat diartikan sebagai proses untuk melindungi data dalam arti yang luas (Oppliger, 2005). Selain bertujuan untuk merahasiakan data (privacy), tujuan lain dari kriptografi yaitu menjaga integritas data (integrity), autentikasi (authentication) dan mencegah terjadinya penyangkalan terhadap pengiriman informasi oleh pengirim pesan (Non-Repudiation).

(2)
(3)

disebut dengan ciphertext, biasanya disimbolkan dengan c. Kunci yang dikirimkan pengirim kepada penerima pesan untuk proses dekripsi disebut dengan key, biasanya disimbolkan dengan k. Fungsi enkripsi disimbolkan dengan E(p) sedangkan fungsi dekripsi disimbolkan dengan D(c) (Schneier, 1996).

Proses dari enkripsi dan dekripsi dapat dilihat pada Gambar 2.1.

Gambar 2.1 Diagram Proses Enkripsi dan Dekripsi

Super Enkripsi merupakan salah satu kriptografi yang menggabungkan dua buah cipher, baik itu untuk karakter, citra, dan audio. Hal tersebut bertujuan untuk mendapatkan cipher yang lebih andal (susah untuk dipecahkan) dan juga untuk mengatasi penggunaan cipher tunggal yang secara komparatif lemah.

2.1.2. Tujuan Kriptorafi

Ada pun tujuan kriptografi lebih jelasnya adalah sebagai berikut (Zelvina et al., 2012) :

1. Kerahasiaan (confidentiality), yaitu layanan yang digunakan untuk menjaga isi informasi dari semua pihak kecuali pihak yang memiliki kepentingan dengan informasi tersebut. Istilah lain yang sama dengan confidentiality adalah secrecy atau privacy.

2. Integritas data, merupakan layanan yang digunakan untuk menjaga data dari pengubahan data dari pihak yang tidak berwenang. Sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berwenang seperti penyisipan, penghapusan, dan pengsubsitusian data ke dalam pesan asli.

(4)

pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asal sumbernya.

4. Nirpenyangkalan (non-repudiation), merupakan layanan untuk menghindari pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.

2.1.3. Kriptografi Klasik

Teknik kriptografi klasik digunakan beberapa abad yang lalu, sebelum adanya komputer. Kriptografi klasik yaitu suatu algoritma yang menggunakan satu kunci untuk mengamankan data. Terdapat dua teknik dasar yang digunakan dalam kriptografi klasik, yaitu teknik subsitusi dan teknik transposisi (permutasi). Teknik subsitusi dilakukan dengan penggantian setiap karakrer pesan asli dengan karakter lain. Sedangkan teknik transposisi (permutasi) dilakukan dengan menggunakan permutasi atau pengacakan urutan karakter pada pesan asli tersebut (Ariyus, 2008).

2.1.4. Kriptografi Modern

Teknik kriptografi modern sudah menggunakan perhitungan komputasi atau program dalam pengoperasiannya karena teknik kriptografi modern lebih berorientasi pada bit. Hal ini sangat berguna untuk melindungi keamanan, integritas, dan keaslian pesan. Operasi kriptografi modern terbagi menjadi dua bagian, yaitu stream cipher dan block cipher. Stream cipher melakukan operasi penyandian bit per bit atau byte per byte pada satu waktu. Sedangkan block cipher melakukan penyandian dalam bentuk blok bit yang panjang bit-nya sudah ditentukan sebelumnya (Sadikin, 2012).

2.1.5. Algoritma Kunci Simetrik

(5)

Gambar 2.2 Proses Algoritma Kunci Simetrik (Sumber: Dafid, 2006)

2.1.6. Algoritma Kunci Asimetrik

Algoritma kunci asimetrik disebut juga algoritma kunci umum (public key algorithm). Algoritma kunci asimetrik (Asymmetric atau Public Key) adalah algoritma yang menggunakan kunci yang berbeda pada proses enkripsi dan dekripsinya (Dafid, 2006).

Gambar 2.3 Proses Algoritma Kunci Asimetrik (Sumber: Dafid, 2006)

Pada gambar 2.3 dapat dilihat bahwa kunci yang digunakan untuk proses enkripsi dan proses dekripsi berbeda. Kunci enkripsi dibuat umum, sedangkan kunci dekripsi hanya diketahui oleh orang yang berhak mengetahui data yang dienkripsi. Kunci enkripsi pada algoritma ini disebut kunci public (public key) dan kunci dekripsi disebut kunci pribadi (private key) (Dafid, 2006).

2.2.Algoritma Zig-zag Cipher

(6)

tertentu agar isi pesan tersebut tidak dimengerti kecuali oleh orang-orang tertentu. Cara agar algoritma Zig-zag Cipher sama kuatnya seperti algoritma modern yaitu dengan cara memakai ASCII karakter dan kemudian mengubahnya menjadi biner dengan bermain di bit-nya. Dalam sistem komputasi yang modern, karakter atau simbol biasanya menggunakan ASCII. Setiap simbol yang muncul di layar komputer mempunyai kode ASCII yang berbeda, panjang tiap kode ASCII dalam biner adalah 8 bit dan ada 28 simbol unik yang terdapat pada tabel ASCII (Budiman and Rachmawati, 2017).

Transposisi zig-zag dapat dilakukan berturut-turut dengan cara membentuk baris atau kolom yang diatur dalam format matriks. Jika zig-zag transposisi baris, maka pesan dibaca dalam model zig-zag berdasarkan angka dalam kunci. Jika digit di kuncinya adalah i, maka urutan posisi matriks pesan dibaca sebagai berikut :

(i, 1) (i +1, 2) (i, 3) (i +1, 4) (i, 5) … (m, n) Jika transposisi kolom, maka pesan dibaca :

(1, i) (2, i +1) (3, i) (4, i +1) (5, i) … (m, n)

Setelah transposisi diproses dengan kunci pada enkripsi simetris cipher, kunci yang sama digunakan untuk dekripsi. Jika digit ke j dikuncinya adalah i, maka baris j teks cipher adalah :

(i, 1) (i +1, 2) (i, 3) (i +1, 4) (i, 5) … (m, n)

Jumlah digit pada kunci (key) yang digunakan pada algoritma zig-zag cipher tergantung pada jumlah baris jika menggunakan transposisi baris dan tergantung pada jumlah kolom jika menggunakan transposisi kolom (Annalakshmi & Padmapriya).

Berikut adalah contoh proses enkripsi dengan menggunakan algorima zig-zag cipher transposisi baris :

Plaintext : NOERINDACHAYANIE Key : 2 3 4 1

Ciphertext : IHDYCNAEAOIRNNEA

Adapun cara untuk mendapatkan ciphertext dari plaintext di atas dengan menggunakan transposisi baris adalah :

(7)

kunci (dalam hal ini digit pertama kunci = 2, maka i = 2) maka posisi matriks karakter menjadi (2, 1) (3, 2) (2, 3) (3, 4).

Matriks Plaintext Matriks Ciphertext

1 2 3 4 1 2 3 4

1 N O E R 1 I H D Y

2 I N D A 2

3 C H A Y 3

4 A N I E 4

2. Setelah kunci digit pertama telah selesai, maka dapat menggunakan digit selanjutnya dari kunci (dalam hal ini digit kedua kunci = 3, maka i = 3) maka posisi matriks karakter menjadi (3, 1) (4, 2) (3, 3) (4, 4).

Matriks Plaintext Matriks Ciphertext

1 2 3 4 1 2 3 4

1 N O E R 1 I H D Y

2 I N D A 2 C N A E

3 C H A Y 3

4 A N I E 4

3. Setelah kunci digit kedua telah selesai, maka dapat menggunakan digit selanjutnya dari kunci (dalam hal ini digit ketiga kunci = 4, maka i = 4) maka posisi matriks karakter menjadi (4, 1) (5, 2) (4, 3) (5, 4). Namun, posisi (5, 2) dan (5, 4) tidak memiliki posisi matriks di matriks plaintext. Maka untuk mengatasinya angka terbesar yang tidak termasuk pada kolom atau baris matriks plainteks diubah menjadi angka paling kecil pada matriks plaintext tersebut. Sehingga posisi matriks karakter menjadi (4, 1) (1, 2) (4, 3) (1, 4).

Matriks Plaintext Matriks Ciphertext

1 2 3 4 1 2 3 4

1 N O E R 1 I H D Y

2 I N D A 2 C N A E

3 C H A Y 3 A O I R

(8)

4. Setelah kunci digit ketiga telah selesai, maka dapat menggunakan digit selanjutnya dari kunci (dalam hal ini digit terakhir kunci = 1, maka i = 1) maka posisi matriks karakter menjadi (1, 1) (2, 2) (1, 3) (2, 4).

Matriks Plaintext Matriks Ciphertext

1 2 3 4 1 2 3 4

1 N O E R 1 I H D Y

2 I N D A 2 C N A E

3 C H A Y 3 A O I R

4 A N I E 4 N N E A

5. Maka ciphertext yang di dapat adalah IHDYCNAEAOIRNNEA.

Berikut adalah contoh proses enkripsi dengan menggunakan algoritma zig-zagcipher transposisi kolom :

Plaintext : NOERINDACHAYANIE Key : 2 3 4 1

Ciphertext : ODHIEAAERIYANNCN

Adapun cara untuk mendapatkan ciphertext dari plaintext di atas dengan menggunakan transposisi kolom adalah :

1. Apabila menggunakan zig-zag transposisi baris maka rumus yang digunakan adalah seperti rumus (1, i) (2, i +1) (3, i) (4, i +1). Dan apabila i adalah digit kunci (dalam hal ini digit pertama kunci = 2, maka i = 2) maka posisi matriks karakter menjadi (1, 2) (2, 3) (3, 2) (4, 3).

Matriks Plaintext Matriks Ciphertext

1 2 3 4 1 2 3 4

1 N O E R 1 O D H I

2 I N D A 2

3 C H A Y 3

(9)

2. Setelah kunci digit pertama telah selesai, maka dapat menggunakan digit selanjutnya dari kunci (dalam hal ini digit kedua kunci = 3, maka i = 3) maka posisi matriks karakter menjadi (1, 3) (2, 4) (3, 3) (4, 4).

Matriks Plaintext Matriks Ciphertext

1 2 3 4 1 2 3 4

1 N O E R 1 O D H I

2 I N D A 2 E A A E

3 C H A Y 3

4 A N I E 4

3. Setelah kunci digit kedua telah selesai, maka dapat menggunakan digit selanjutnya dari kunci (dalam hal ini digit ketiga kunci = 4, maka i = 4) maka posisi matriks karakter menjadi (1, 4) (2, 5) (3, 4) (4, 5). Namun, posisi (2, 5) dan (4, 5) tidak memiliki posisi matriks di matriks plaintext. Maka untuk mengatasinya angka terbesar yang tidak termasuk pada kolom atau baris matriks plainteks diubah menjadi angka paling kecil pada matriks plaintext tersebut. Sehingga posisi matriks karakter menjadi (1, 4) (2, 1) (3, 4) (4, 1).

Matriks Plaintext Matriks Ciphertext

1 2 3 4 1 2 3 4

1 N O E R 1 O D H I

2 I N D A 2 E A A E

3 C H A Y 3 R I Y A

4 A N I E 4

(10)

Matriks Plaintext Matriks Ciphertext

5. Maka ciphertext yang di dapat adalah ODHIEAAERIYANNCN.

Proses dekripsi pada algoritma zig-zag cipher dengan cara menggunakan kunci (key) dan cara transposisi yang digunakan pada enkripsi, apakah itu tranposisi baris atau kolom (Padmapriya & Annalakshmi, 2013).

2.3.Algoritma RC4+ RC4

Cipher +

Cipher adalah salah satu jenis dari algoritma RC4. Dimana algoritma RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher yang melakukan proses enkripsi/dekripsi dalam satu byte dan menggunakan kunci yang sama. Stream cipher digunakan untuk mengenkripsi plaintext menjadi ciphertext bit per bit (1 bit setiap kali transformasi) atau byte per byte (1 karakter = 1 byte). RC4 menggunakan variabel yang panjang kuncinya dari 1 sampai 256 bit yang digunakan untuk menginisialisasikan tabel sepanjang 256 bit.

RC4+

2.3.1. Key Scheduling Algorithm (KSA)

menggunakan struktur seperti RC4 dan menambahkan beberapa operasi untuk memperkuat cipher. Struktur ini mencoba untuk memanfaatkan poin yang baik pada RC4 kemudian memberikan beberapa fitur tambahan untuk batas keamanan yang lebih baik (Paul & Subhamoy, 2012).

(11)

Tabel 2.1. Key Scheduling Algorithm (KSA) Algoritma RC4+ Cipher

Pada Tabel 2.1 menunjukkan Key Scheduling Algorithm (KSA) dari algoritma RC4+ Cipher. Terlihat bahwa i dan jadalah variabel awal yang bernilai 0 dan S adalah semua permutasi 256 yang mungkin terjadi.

2.3.2. Pseudo Random Generation Algorithm (PRGA)

Tidak seperti algoritma RC4 Cipher, Pseudo Random Generation Algorithm (PRGA) dari algoritma RC4+ Cipher berbeda dengan algoritma RC4 Cipher.Secara sistematis PRGA algoritma RC4+Cipher dituliskan sebagai berikut :

Tabel 2.2. Pseudo Random Generation Algorithm (PRGA) Algoritma RC4+ Cipher for i from 0 to 255

S[i] := i endfor j := 0

for i from 0 to 255

j := (j + S[i] + key[ swap values of S[i] and S[j]

endfor

while |cipherkey| < |plaintext|: i := i + 1

a := S[i] j := j + a

Swap S[i] and S[j] (b := S[j]; S[i] := b; S[j] := a)

(12)

Tabel 2.2. menjukkan Pseudo Random Generation Algorithm(PRGA) dari algoritma RC4+ Cipher, dimanai dan j adalah 8-bit indeks array, S adalah semua permutasi 256 yang mungkin terjadi, << dan >>adalah left dan right shift, ⊕adalah exclusive OR.

2.4.Kompleksitas Algoritma

Algoritma yang digunakan tidak hanya harus benar, tetapi juga harus efisien. Efisien suatu algoritma dapat diukur dari waktu eksekusi algoritma dan kebutuhan ruang memori. Ukuran seberapa banyak perhitungan yang dibutuhkan suatu algoritma untuk menyelesaikan suatu masalah disebut dengan kompleksitas dari suatu algoritma. Secara umum, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sedangkan algoritma yang membutuhkan waktu yang lama untuk menyelesaikan suatu masalah mempunyai kompleksitas yang tinggi (Azizah, 2013).

Kompleksitas algoritma terbagi menjadi dua macam, yaitu (Azizah, 2013) : 1. Kompleksitas waktu, biasanya dinyatakan dengan T(n). Kompleksitas

waktu diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n, dimana ukuran masukan (n) merupakan jumlah data yang diproses oleh sebuah algoritma.

2. Kompleksitas ruang, biasanya dinyatakan dengan S(n). Kompleksitas ruang diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari masukan n.

Dengan menggunakan kompleksitas waktu dan kompleksitas ruang, maka dapat ditentukan laju peningkatan waktu dan ruang yang diperlukan algoritma tersebut, seiring dengan meningkatnya ukuran masukan (n). (Cormen et al., 2009).

Kompleksitas waktu algoritma dapat dihitung dari kode program yang digunakan. KolomC menunjukkan berapa kali processor melakukan komputasi. Kolom # sebagai variabel untuk menghitung pengerjaan satu baris program. Kolom C x # sebagai hasil perhitungan perkalian kolom C dengan #. Hasil dari kolom C x # dijumlahkan berdasarkan persamaan :

(13)

2.5.Notasi Asimptotik

Kompleksitas waktu asimptotik terdiri dari tiga macam, yaitu lower bounds

dinotasikan dengan ��(�)� (Big-Omega), tight bounds dinotasikan dengan

ϴ��(�)�(Big-Theta) dan upper bounds dinotasikan dengan О��(�)�(Big-O). Contoh dari grafik notasi asimptotik Ω digambarkan pada gambar 2.4.

Gambar 2.4 Contoh Grafik dari Notasi Asimptotik Ω (Cormen et al., 2009). Pada gambar 2.4 notasi Ω menjadi batas bawah dari suatu fungsi f(n) agar berada dalam suatu faktor konstan. Dinyatakan f(n) = О��(�)� jika terdapat konstanta positif n0 dan c sedemikian sehingga pada n0dan di kanan n0, nilai f(n) selalu berada tepat pada cg(n) atau di atas cg(n). Contoh dari grafik notasi asimptotik ϴ digambarkan pada gambar 2.5.

(14)

Pada gambar 2.5 notasi θ membatasi suatu fungsi f(n) agar berada dalam faktor konstan. Dinyatakan f(n) = ϴ��(�)� jika terdapat konstanta positif n0, c1 dan c2 sedemikian sehingga pada n0 dan di kanan n0, nilai f(n) selalu berada tepat pada c1g(n), tepat pada c2g(n) atau di antara c1g(n) dan c2g(n). Contoh dari grafik dari notasi asimptotik O digambarkan pada gambar 2.6.

Gambar 2.6 Contoh Grafik dari Notasi Asimptotik O (Cormen et al., 2009). Pada gambar 2.6 notasi O menjadi batas atas dari suatu fungsi f(n) agar berada dalam suatu faktor konstan. Dinyatakan f(n) = O��(�)� jika terdapat konstanta positif n0, dan c

sedemikian sehingga pada n0 dan di kanan n0, nilai f(n) selalu berada tepat pada cg(n) atau di

bawah cg(n). Kompleksitas waktu algoritma biasanya dihitung dengan notasi O��(�)�,

dibaca “big-O dari g(n)”.

2.6.Penelitian yang Terdahulu

Beberapa penelitian terdahulu yang relevan dengan penelitian yang akan dilakukan oleh penulis antara lain adalah sebagai berikut:

1. Algoritma Zig-zag Cipher dapat diterapkan lebih dari sekali untuk menghasilkan ciphertext dengan keamanan yang lebih tinggi. Transposisi juga dapat dikombinasikan dengan teknik lain seperti subsitusi untuk menghasilkan chipertext yang lebih sulit dipecahkan. (Padmapriya & Annalakshmi, 2013). 2. Pada algoritma RC4+ Cipher, cipher yang dihasilkan masih rentan terhadap

(15)

maksimum terhadap penyerangan jika pad yang digunakan sebagai parameter desain sama dengan 0x0.3(Banik &Jha, 2015).

3. (Alghazzawiet al., 2013) menyimpulkan bahwa pentingnya stream cipher dalam aplikasi komputer tidak dapat diabaikan. Oleh karena itu, model standard dari desain stream cipher sangat diperlukan di masa sekarang.

4. (Pramanik, 2014) menyimpulkan bahwa metode transposisi sebagian besar dikombinasikan dengan metode lain. Metode subsitusi dan transposisi mudah dilakukan, teknik-teknik klasik kombinasi memberikan cipher lebih aman dan kuat. Cipher akhir yang dihasilkan akan sangat kuat dan sangat sulit untuk dipecahkan.

5. (Nandal et al., 2012) mengimplementasikan Caesar Cipher dengan Rail Fence Cipher Untuk Meningkatkan Kemanan Data. Penelitian tersebut membuktikan bahwa kombinasi teknik transposisi dan subsitusi akan memberikan keamanan yang lebih pada teks. Akhirnya, algoritma yang digunakan dapat ditingkatkan untuk mendapatkan hasil yang lebih baik.

Gambar

Gambar 2.2 Proses Algoritma Kunci Simetrik (Sumber: Dafid, 2006)
Tabel 2.1. Key Scheduling Algorithm (KSA) Algoritma RC4+ Cipher

Referensi

Dokumen terkait

Enkrispi dengan menggunakan cipher transposisi yang paling sederhana dapat dilakukan dengan cara membagi karakter pada plainteks ke dalam beberapa blok berisi karakter

Gambar 3.15 Perancangan Interface Halaman Tentang Aplikasi 38 Gambar 3.16 Perancangan Interface Halaman Tentang Algoritma 39 Gambar 3.17 Perancangan Interface Halaman Enkripsi

Untuk kriptografi klasik, penulis memilih algoritma Columnar Transposition Cipher dikarenakan menggunakan teknik transposisi yang mengubah posisi karakter teks asli

Untuk kriptografi klasik, penulis memilih algoritma Columnar Transposition Cipher dikarenakan menggunakan teknik transposisi yang mengubah posisi karakter teks asli

Algoritma Beaufort termasuk algoritma klasik sehingga diperlukan kombinasi dengan algoritma modern untuk pengamanan yang lebih

Algoritma Beaufort termasuk algoritma klasik sehingga diperlukan kombinasi dengan algoritma modern untuk pengamanan yang lebih

dari jumlah data yang diperlukan untuk menembus algoritma tersebut, maka.. algoritma

Teknik transposisi merupakan suatu teknik yang menggunakan permutasi karakter, yang mana dengan menggunakan teknik ini pesan yang asli tidak dapat dibaca kecuali memiliki