Algoritma Kriptografi LANDASAN TEORI

BAB 2 LANDASAN TEORI

2.1. Algoritma

“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik Handrizal Zarlis, 2008.

2.2. Kriptografi

Kriptografi cryptography berasal dari Bahasa Yunani: “cryptós” artinya “secret” rahasia, sedangkan “gráphein” artinya “writing” tulisan. Jadi, kriptografi berarti “secret writing” tulisan rahasia. Ada beberapa definisi kriptografi yang telah dikemukakan di dalam berbagai literatur. Definisi yang dipakai di dalam buku-buku yang lama sebelum tahun 1980-an menyatakan bahwa kriptografi adalah ilmu dan seni untuk menjaga kerahasian pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya Munir, 2006. Kriptografi juga diartikan sebagai ilmu mengenai teknik enkripsi dimana data diacak menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi. Dekripsi menggunakan kunci dekripsi mendapatkan kembali data asli. Proses enkripsi dilakukan menggunakan suatu algoritma dengan beberapa parameter Kromodimoeljo, 2010. Universitas Sumatera Utara Universitas Sumatera Utara Pada kriptografi, pesan asli disebut plaintext dan pesan yang disamarkan disebut ciphertext. Proses menyamarkan plaintext menjadi ciphertext disebut enkripsi. Sedangkan proses untuk mengubah ciphertext kembali menjadi plaintext disebut dekripsi Mollin, 2007. Skema rangkaian proses enkripsi dan dekripsi ditunjukkan secara umum pada Gambar 2.2. Gambar 2.1. Skema Proses Enkripsi dan Dekripsi Munir, 2006 2.2.1. Algoritma RC5 Algoritma RC5 adalah algoritma block cipher yang dirancang oleh Profesor Ronald L. Rivest dari MIT dan dipublikasikan pertama pada Desember 1994. RC5 memiliki ukuran blok 32, 64, 128 bits, ukuran key 0 - 2040 bits dan round 0 - 255. Parameter pilihan yang paling disarankan adalah menggunakan 64 bits block size, 128-bit key dan 12 round.secara ringkas algoritma bekerja dengan penambahan modulus 2w, melakukan XOR dan melakukan rotasi x kekiri dengan jumlah y bit. Semakin besar round maka semakin besar tingkat keamanannya Saputra Tinaliah, 2009. Algoritma RC5 terdiri dari 3 komponen, yaitu: 1. Key expansion algorithm 2. Encryption algorithm 3. Decryption algorithm 2.2.1.1 Key Expansion Algorithm Key Expansion Algorithm , yaitu algoritma yang digunakan untuk membangun tabel kunci S Rhee, 2003. Dalam Key expansion algorithm, terdapat 3 langkah yang harus dilakukan yaitu: Enkripsi Dekripsi Plaintext Ciphertext Plaintext Kunci Kunci Universitas Sumatera Utara Universitas Sumatera Utara a Pembuatan array L[0,1..c-1] Algoritma : b Pembuatan array S[0, 1..t-1] Dalam membangun tabel array S diperlukan dua konstanta “ajaib” magic constants P w dan Q w yang telah ditentukan dengan rumus sebagai berikut : P w = Odd e − 22 w Q w = Odd φ − 12 w Dimana : e = 2.71828 . . . basis logaritma natural φ = 1 +√52 = 1.61803 . . . golden ratio Sedangkan fungsi Oddx menghasilkan nilai integer ganjil yang paling dekat dengan x. Untuk nilai-nilai w yang diperbolehkan 16, 32 dan 64, nilai Pw dan Qw adalah dapat dilihat pada table 2.1. Tabel 2.1 Nilai Pw dan Qw w=16 w=32 w=64 P w B7E1 B7E15163 B7E151628AED2A6B Q w 9E37 9E3779B9 9E3779B97F4A7C15 Algoritma : c = bu; for i = b – 1 downto 0 do L[iu] = L[iu] 8 + K[i]; S[0] = P w ; For i = 1 to t-1 do S i = S i − + Q w : Universitas Sumatera Utara Universitas Sumatera Utara c Pencampuran array L dengan array S Algoritma : 2.2.1.2. Encryption Algorithm Encryption Algorithm, yaitu algoritma untuk melakukan enkripsi pada 1 blok plaintext menghasilkan 1 blok ciphertext Rhee, 2003. Algoritma : 2.2.1.3. Decryption Algorithm Decryption Algorithm ,yaitu algoritma untuk melakukan dekripsi pada 1 blok ciphertext menghasilkan 1 blok plaintext Rhee, 2003. i = j = 0; A = B = 0; do 3 ∗ max t, c times: A = S[i] = S[i] + A + B 3 B = L[j] = L[j] + A + B A + B; i = i + 1 mod t; j = j + 1 mod c. A = A + S[0]; B = B + S[1]; for i = 1 to r do A = A ⊕ B B + S[2i]; B = B ⊕ A A + S[2i + 1]; Universitas Sumatera Utara Universitas Sumatera Utara Algoritma :

2.3. Steganografi