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
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
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) Pw dan Qw yang telah ditentukan dengan rumus sebagai berikut :
Pw = Odd ((e − 2)2w)
Qw= Odd ((φ − 1)2w)
Dimana :
e = 2.71828 . . . (basis logaritma natural) φ = (1 +√5)/2 = 1.61803 . . . (golden ratio)
Sedangkan fungsi Odd(x) 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
Pw B7E1 B7E15163 B7E151628AED2A6B
Qw 9E37 9E3779B9 9E3779B97F4A7C15
Algoritma : c = b/u;
for i = b – 1 downto 0 do
L[i/u] = ( L[i/u] <<< 8 ) + K[i];
S[0] = Pw;
For i = 1 to t-1 do
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
Universitas Sumatera Utara
Algoritma :
2.3. Steganografi
Steganografi (steganography) berasal dari bahasa Yunani yaitu Steganos yang
berarti menyembunyikan dan Graptos yang artinya tulisan sehingga secara keseluruhan artinya adalah tulisan yang disembunyikan (Alatas, 2009). Ada dua proses utama dalam steganografi yaitu penyisipan (embedding) dan penguraian (extraction) pesan atau informasi dalam media cover. Embedding merupakan proses menyisipkan pesan atau informasi ke dalam media cover, sedangkan extraction adalah proses menguraikan pesan yang tersembunyi dalam gambar stego. Pesan yang akan disembunyikan dalam sebuah gambar membutuhkan dua file. Pertama adalah gambar asli yang belum dimodifikasi yang akan menangani pesan tersembunyi, yang disebut gambar cover (cover image). File kedua adalah informasi pesan yang disembunyikan. Suatu pesan dapat berupa plaintext, chipertext, gambar lain, atau apapun yang dapat ditempelkan ke dalam bit stream. Ketika dikombinasikan, cover image dan pesan yang ditempelkan membuat gambar stego (stego image) (Mahmudy & Setiana, 2006).
2.3.1. Metode Least Significant Bit (LSB)
Least Significant Bit (LSB) adalah teknik penyembunyian dengn menggunakan lokasi
bit terendah pada masing-masing pixel di dalam suatu citra. Pada susunan bit dalam
sebuah byte (1 byte = 8 bit), ada bit yang paling berarti (Most Significant Bit atau MSB) dan bit yang paling kurang berarti (Least Significant Bit atau LSB). Bit yang
cocok untuk diganti adalah bit LSB, sebab perubahan tersebut hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya (Sari et al, 2012).
Misalkan byte tersebut berwarna merah, maka perubahan satu bit LSB tidak mengubah For i = r down to 1 do
B = B − S i + >>> A ⊕ A; A = A − S i >>> B ⊕ B; B = B − S ;
warna merah tersebut secara berarti. Mata manusia tidak dapat membedakan perubahan kecil tersebut (Hastuti & Hidayat, 2013).
2.4. Citra
Citra merupakan salah satu bentuk multimedia yang memegang peranan sangat penting sebagai bentuk informasi visual. Citra memiliki beberapa jenis format, diantaranya yaitu JPEG, JPG, PNG dan lain-lain. Suatu citra dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial dan amplitudo f di titik koordinat (x,y) dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Indeks baris dan kolom (x,y) dari sebuah pixel dinyatakan dalam bilangan bulat (Kadir & Susanto, 2013).
2.5. Penelitian yang Relevan
Berikut ini beberapa penelitian yang terkait dengan algoritma kriptografi RC5 dan metode steganografi Least Significant Bit (LSB) :
1. Alatas (2009) dalam jurnal yang berjudul Implementasi Teknik Steganografi Dengan Metode LSB Pada Citra Digital. Menyatakan dalam penelitiannya bahwa proses penyisipan pesan (embedding message) dimulai dengan memilih
gambar yang akan dijadikan cover image untuk menyisipkan dan
menyembunyikan pesan ke dalam gambar kemudian menentukan key file yang akan digunakan sebagai password dalam proses extract dan menuliskan isi pesan text yang akan disisipkan kedalam gambar.sedangkan pada proses pendeteksian pesan (extraction message) dimulai dengan memilih file gambar atau cover object yang akan di extract dan memasukkan key file, yang hasil ekstraksi pesannya dapat disimpan.
Universitas Sumatera Utara random dan mengambil bit terakhirnya kemudian digabung kembali dan diubah menjadi karakter awal.
3. Saputra & Tinaliah (2009) dalam jurnal yang berjudul Perbandingan Enkripsi dan Dekripsi Password menggunakan Metode Serpent dan RC5 Pada Aplikasi
Perpustakaan Universitas Muhammadiyah Palembang. Menyatakan bahwa dalam algoritma RC5 terdapat 3 komponen, yaitu : Key Expansion Algorithm, Encryption Algorithm, dan Decryption Algorithm. Key Expansion Algorithm adalah algoritma yang digunakan untuk membangun tabel kunci S. Encryption Algorithm adalah algoritma untuk melakukan enkripsi pada 1 blok plaintext