• Tidak ada hasil yang ditemukan

Noni Ciptania Lase 1*

N/A
N/A
Protected

Academic year: 2021

Membagikan "Noni Ciptania Lase 1*"

Copied!
12
0
0

Teks penuh

(1)

Hal: 232-243

Pengamanan Teks Terenkripsi Dengan Algoritma RC4+

Dan Steganografi DCS Pada Citra Digital

Noni Ciptania Lase1*

1Fakultas Ilmu Komputer dan Teknologi Informasi, Program Studi Teknik Informatika, Universitas Budi Darma, Medan, Indonesia

Email: 1*nonilase08@gmail.com

Abstrak

Keamanan adalah sebuah keadaan yang ingin bebas dari segala bentuk serangan apapun dan bertujuan untuk melindungi data maupun informasi dari berbagai tindakan kejahatan cyber seperti yang dilakukan para hacker dan cracker. Data maupun informasi menjadi target serangan oleh pihak-pihak yang tidak bertanggung jawab sehingga perlu untuk menjaga integritas data dan informasi. Isu keamanan data saat ini yang terus berkembang adalah salah satunya keamanan data teks. Dimana data teks banyak berisi tentang informasi penting maupun data rahasia. Teknik peretasan saat ini semakin meningkat sehingga perlindungan terhadap kerahasiaan data perlu ditingkatkan. Kriptografi merupakan ilmu mengenai teknik enkripsi dimana data diacak menggunakan kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi. Teknik steganografi merupakan ilmu yang mempelajari tentang seni menyembunyikan pesan atau informasi. Kedua teknik ini dapat digunakan dalam mengamankan data. Penelitian ini membahas kriptografi dengan menggunakan algoritma RC4+ untuk mengenkripsi teks. Steganografi dengan menggunakan Teknik Dynamic Cell Spreading yang merupakan teknik menyembunyikan/menyisipkan teks dengan cara mengganti susunan palet warna yang ada dalam sebuah citra dengan format jpeg/jpg. Akan dibahas juga bagaimana proses encoding dan decoding pesan dalam citra dengan menggunakan teknik Dynamic Cell Spreading.

Kata Kunci : Pengamanan, Kriptografi, Algoritma RC4+, Steganografi DCS, Micrososft Visual Studio 2008.

1. PENDAHULUAN

Adanya internet sebagai sistem jaringan terluas yang menghubungkan hampir seluruh komputer di dunia, membuat semua komputer dapat dengan mudah untuk saling bertukar data. Dalam dunia maya ini, hampir segala jenis informasi dapat diperoleh, yang dibutuhkan hanyalah sebuah komputer yang terhubung dengan dunia maya ini. Dengan luasnya teknologi sangat membantu dan memilki dampak positif, disamping itu sering kali terbengkali dalam keamanan setiap data.

Masalah keamanan merupakan masalah yang penting dan utama dalam sistem komputer yang terhubung dalam suatu jaringan. Data maupun informasi menjadi target serangan oleh pihak-pihak yang tidak bertanggung jawab sehingga perlu untuk menjaga integritas data dan informasi. Isu keamanan data saat ini yang terus berkembang adalah salah satunya keamanan data teks. Dimana data teks banyak berisi tentang informasi penting maupun data rahasia. Teknik peretasan saat ini semakin meningkat sehingga perlindungan terhadap kerahasiaan data perlu ditingkatkan, salah satu caranya dengan penyandian data atau enkripsi. Ada dua teknik pengamanan yaitu kriptografi dan steganografi. Kombinasi kedua teknik tersebut dapat digunakan sebagai salah satu solusi untuk meningkatkan keamanan data ataupun informasi, dimana teknik kriptografi digunakan untuk menyandikan pesan dan steganografi untuk menyembunyikan pesan yang telah disandikan sebelumnya.

Kriptografi merupakan ilmu mengenai teknik enkripsi dimana data diacak menggunakan kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi. Teks yang terenkripsi merupakan sebuah teknik kriptografi yang telah di enkripsi terlebih dahulu yang bertujuan untuk memperkuat ciphertext sehingga lebih sulit dipecahkan dan kerahasiaan pesan terjamin keamanannya lalu menggunakan teknik steganografi agar lebih sulit lagi

dalam memecahkannya dan lebih terjamin data atau informasi tersebut. Salah satu algoritma yang digunakan dalam pengacakan pada kriptografi modern adalah algoritma RC4+. RC4+ adalah salah satu jenis dari algoritma RC4 di mana algoritma RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher untuk melakukan proses enkripsi dan dekripsi dalam satu byte menggunakan kunci yang sama[1]. RC4+ adalah algoritma kunci simetris yang berbentuk synchronous stream cipher, yaitu cipher yang memiliki kunci simetris dan mengenkripsi atau mendekripsi plaintext secara digit per digit atau bit per bit.

Steganografi merupakan ilmu pengetahuan dan seni dalam menyembunyikan data atau informasi. Suatu sistem Steganografi sedemikian rupa menyembunyikan isi suatu data di dalam suatu sampul media yang tidak dapat di duga oleh orang biasa sehingga tidak membangunkan suatu kecurigaan kepada orang yang melihatnya (Ermadi Satriya Wijaya). Metode yang sering digunakan dalam steganografi dalam penyembunyian data salah satunya metode DCS (Dynamic Cell Spreading). Metode DCS (Dynamic Cell Spreading) merupakan steganografi dengan menggunakan model proteksi terhadap deteksi yang dikembangkan oleh Holger Ohmacht dengan konsep dasar yaitu menyembunyikan pesan ke dalam media citra digital. Penyembunyian pesan dilakukan dengan cara menyisipkan pada bit rendah dari data piksel yang menyusun file tersebut menggunakan buffer memori sebagai media penyimpanan sementara[2].

Penulis menggunakan algoritma RC4+ dalam mengenkripsi password tersebut karena dalam penelitian sebelumnya yang dilakukan oleh Lysa Aprilla Br Kaban “Teknik Super Enkripsi Menggunakan Algoritma Affine Cipher, One Time Pad dan RC4+ dalam pengamanan File Teks” menyimpulkan bahwa proses enkripsi dan dekripsi dengan algritma RC4+ dapat memenuhi kriteria dalam keutuhan data karena plainteks yang dihasilkan dari proses

(2)

Hal: 232-243 dekripsi sama dengan plainteks awal. Penulis juga

menggunakan steganografi DCS dalam menyembunyikan ciphertxt dari algoritma RC4+ dalam citra digital karena pada penelitian yang dilakukan oleh Desi Lilyani dengan judul “Implementasi Steganografi Pada Citra Digital Dengan Menggunakan Metode Dynamic Cell Spreading” menyimpulkan bahwa penerapan steganografi DCS (Dynamic Cell Spreading) baik untuk mengamankan data digital berupa teks pada sebuah file citra jpeg/jpg.

2. TEORITIS A. Kriptografi

Salah satu cara yang dapat dilakukan untuk dapat mengamankan sistem informasi adalah kriptografi. Kata kriptografi berasal dari bahasa Yunani, yaitu Kryptos (tersembunyi, rahasia) dan Graphein (tulisan). Jadi kriptografi didefenisikan sebagai ilmu seni untuk menjaga kerahasiaan pesan dengan cara menyandikan kebentuk yang tidak dapat dimengerti (Random). Kriptografi merupakan bidang pengetahuan yang menggunakan persamaan matematis untuk melakukan proses enkripsi (encrypt) maupun dekripsi (decrypt) pesan [2].

B. Algoritma RC4+

Salah satu algoritma kunci simetris dalam bentuk stream cipher adalah algoritma RC4+. Dalam hal ini stream cipher sangat penting dan tidak dapat diabaikan pada aplikasi komputer. Agar sandi pada lagoritma RC4+ lebih kuat, maka ditambahkan beberapa operasi menggunakan struktur seperti RC4. Keamanan yang lebih baik diperoleh dengan memanfaatkan poin yang ada pada RC4 kemudian memberikan fitur tambahan. Algoritma RC4+ terdiri dari 2 komponen, yaitu Key Scheduling Algorithm (KSA+) dan Pseudo Random Generation Algorithm (PRGA+) [9].

RC4+ merupakan salah satu jenis dari algoritma RC4. Dimana algoritma RC4 adalah salah satu algoritma kunci simetris yang berbentuk stream cipher yang melakukan proses enkripsi atau 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 byte yang digunakan untuk menginisialisasikan tabel sepanjang 256 byte [9].

C. Metode Dynamic Cell Spreading (DCS)

Teknik Dynamic Cell Spreading (DCS) merupakan steganografi dengan menggunakan model proteksi terhadap deteksi yang dikembangkan oleh Holger Ohmacht dengan konsep dasar yaitu menyembunyikan teks pesan (semua data elektronik) kedalam media gambar (JPEG). Penyembunyian pesan dilakukan dengan cara menyisipkanya pada bit rendah LSB (Least Significant Bit) dari data pixel yang menyusun file tersebut menggunakan buffer memori sebagai media penyimpan sementara[9].

Proses embedding dalam teknik DCS mempunyai beberapa tahapan proses yaitu:

1. Membuat registry address untuk mempersiapkan tempat penyimpan memori sementara guna proses dalam penghitunggan LSB (Least Significant Bit) pada gambar maupun data yang akan digabungkan (embed).

2. Konversi JPEG ke dalam bitmap dalam arti format gambar JPEG yang merupakan format kompresi gambar dirubah atau di unkompres agar mempermudah dalam penghitunggan dan penempatan data.

3. Mengkalkulasikan jarak antar bit yang ada pada file gambar agar mempermudah penghitunggan dan penyisipan bit data yang akan dimasukkan.

4. Mengalokasikan memori untuk menampung bit gambar pada saat proses steganografi akan dijalankan.

5. Mengcopi bitmap ke dalam buffer memori. Mendapatkan ukuran input byte file yaitu sama dengan proses pada gambar yang dimana untuk mengetahui besar dari data yang akan digabungkan ke dalam gambar.

6. Mengcopi buffer memori ke bentuk bitmap mengubah kembali dari memori menjadi file gambar.

Proses ekstrakting dalam teknik DCS mempunyai beberapa tahapan proses yaitu:

1. Membuat registry address untuk mempersiapkan tempat penyimpan memori sementara guna proses dalam penghitungan LSB (Least Significant Bit) pada gambar maupun data yang akan dipisahkan (extract).

2. Mengkalkulasikan variabel yang ada pada media pembawa pesan dalam hal ini adalah file gambar yang berformat bmp.

3. Mengalokasikan ukuran memori yang akan digunakan dalam proses.

4. Mengcopi bitmap ke dalam buffer memori.

5. Ekstrak ukuran file pembawa bertujuan untuk menghitung dan mengembalikan kembali ukuran file pembawa ke dalam ukuran yang semula sebelum disisipkan file lain.

6. Mengkalkulasikan variabel yang ada menghitung kembali setelah proses ekstrak dilewati.

7. Ekstrak file bertujuan untuk mengambil data dalam file gambar yang telah dihitung dan disiapkan dalam memori sebelumnya sehingga proses dapat berjalan dengan cepat. 3. ANALISA

A. Analisa Masalah

Analisa merupakan kegiatan utama dalam penelitian skripsi ini untuk proses penguraian dari suatu aplikasi yang diracang secara utuh kedalam bagian-bagian atau komponen-komponen yang dimaksud untuk mengidentifikasikan dan mengevaluasi permasalahn yang akan dihadapi pada pengamanan suatu teks. Data maupun informasi menjadi target serangan oleh pihak-pihak yang tidak bertanggung jawab sehingga perlu untuk menjaga integritas data dan informasi. Isu keamanan data saat ini yang terus berkembang adalah salah satunya keamanan data teks. Dimana data teks banyak berisi tentang informasi penting maupun data rahasia. Teknik peretasan saat ini semakin meningkat sehingga perlindungan terhadap kerahasiaan data perlu ditingkatkan

(3)

Hal: 232-243 Dari uraian diatas perlu adanya pengamanan data

agar tidak disalah gunakan oleh orang yang tidak bertanggung jawab. Kriptografi salah satu solusi untuk menyelesaikan masalah tersebut, dengan adanya kriptografi dapat dilakukan pengamanan teks yang terenkripsi menggunakan algoritma RC4+ disertai dengan teknik steganografi untuk menyembunyikan teks tersebut dengan metode DCS melalui proses penyisipan teks ke dalam citra digital agar tidak mudah disadap oleh pihak yang tidak bertanggung jawab.

Berdasarkan proses yang dilakukan mulai dari proses enkripsi selanjutnya dilakukan penyisipan teks ke dalam citra digital dengan metode DCS dan mengekstraksi serta mendekripsi kembali dengan menggunakan metode yang sama. Teknik ini baik untuk mengamankan teks pada sebuah citra digital. Karena setelah citra disisipi teks, tidak menimbulkan adanya perbedaan dalam citra.

B. Penerapan Algoritma RC4+

Berikut merupakan tahapan enkripsi dan dekripsi terhadap plaintext menjadi ciphertext pada algoritma RC4+. Key yang dimasukkan akan diacak dengan Key Scheduling Algorithm (KSA) sebanyak 256 kali. Lalu dilanjutkan dengan Pseudo Random Generation Algorithm (PRGA) sepanjang plaintext untuk mendapatkan hasil keystream yang akan di xor dengan plaintext.

Inisalisasi state awal tersebut merupakan langkah pertama dari key scheduling. Berikut inisialisasi state awal dari Key Scheduling Algorithm (KSA) berupa larik 256 elemen ditunjukkan pada tabel 1. Tahap ini kunci akan diinisialisasi state awal berupa larik 256, seperti pada tabel berikut ini.

Tabel 1. Larik State Awal RC4+

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 10 0 10 1 10 2 10 3 10 4 10 5 10 6 10 7 10 8 10 9 11 0 11 1 11 2 11 3 11 4 11 5 11 6 11 7 11 8 11 9 12 0 12 1 12 2 12 3 12 4 12 5 12 6 12 7 12 8 12 9 13 0 13 1 13 2 13 3 13 4 13 5 13 6 13 7 13 8 13 9 14 0 14 1 14 2 14 3 14 4 14 5 14 6 14 7 14 8 14 9 15 0 15 1 15 2 15 3 15 4 15 5 15 6 15 7 15 8 15 9 16 0 16 1 16 2 16 3 16 4 16 5 16 6 16 7 16 8 16 9 17 0 17 1 17 2 17 3 17 4 17 5 17 6 17 7 17 8 17 9 18 0 18 1 18 2 18 3 18 4 18 5 18 6 18 7 18 8 18 9 19 0 19 1 19 2 19 3 19 4 19 5 19 6 19 7 19 8 29 9 20 0 20 1 20 2 20 3 20 4 20 5 20 6 20 7 20 8 20 9 21 0 21 1 21 2 21 3 21 4 21 5 21 6 21 7 21 8 21 9 22 0 22 1 22 2 22 3 22 4 22 5 22 6 22 7 22 8 22 9 23 0 23 1 23 2 23 3 23 4 23 5 23 6 23 7 23 8 23 9 24 0 24 1 24 2 24 3 24 4 24 5 24 6 24 7 24 8 24 9 25 0 25 1 25 2 25 3 25 4 25 5

Dapat dilihat pada contoh kasus dibawah ini tentang algoritma RC4+ dengan metode enkripsi di bawah ini :

Plainteks : [ N, O, N, I, 9, 7 ] Plainteks : [ 78, 79, 78, 57, 55 ] Dalam ASCII Index : [ 0, 1, 2, ... 225 ]

Kunci = [ L A S E]

Kunci = [ 76, 65, 83, 69 ] Dalam ASCII Jumlah karakter plaintext 6 (length of plaintext) Jumlah karakter kunci 4 (length of key)

Kunci akan di-generate dengan Key Scheduling Algorithm (KSA) dan Pseudo Random Generation Algorithm (PRGA) adalah sebagai berikut :

1. Tahap Key Scheduling Algorithm (KSA) algoritma RC4+

Dengan nilai i = 0 hingga 255, lakukan perhitungan nilai j yang pertama. Proses perhitungan sebagai berikut : Nilai i = 0

1. j = (j + S[i] + key[i mod keylength]) mod 256 j = (0 + S[0] + key[0]) mod 256

j = (0 + 0 + 76) mod 256 j = 76 mod 256

j = 76

Nilai S[i] swap dengan nilai S[j] nilai S[0] ditukar dengan (swap) dengan nilai S[76], maka nilai dari S[0] = 76 dan nilai dari S[76] = 0. Nilai i = 1, lakukan perhitungan nilai j yang kedua yaitu j = 76 Proses perhitungan sebagai berikut :

Nilai i = 1

2. j = (j + S[i] + key[i mod keylength]) mod 256 j = (76 + S[1] + key[1 mod 4]) mod 256 j = (76+ 1 + key[1]) mod 256

j = (76 + 1 + 65) mod 256 j = (142) mod 256 j = 142

Tukarkan nilai S[1] dengan S[142], maka nilai dari S[1] = 142 dan nilai dari S[142] = 1. Maka i dimulai dari 0 hingga 255 pada saat nilai i=2 maka ingat bahwa nilai j pada saat i=1 adalah 142 maka proses perhitungan sebagai berikut :

Nilai i = 2

3. j = (j + S[i] + key[i mod keylength]) mod 256 j = (142 + S[2] + key[2 mod 4]) mod 256 j = (142+ 2 + key[2]) mod 256

j = (142 + 2 + 83) mod 256 j = (227) mod 256

j = 227

Tukarkan nilai S[2] dengan S[227], maka nilai dari S[1] = 227 dan nilai dari S[227] = 1. Maka i dimulai dari 0 hingga 255 pada saat nilai i=2 maka ingat bahwa nilai j pada saat i=1 adalah 227 maka proses perhitungan sebagai berikut :

Nilai i = 3

4. j = (j + S[i] + key[i mod keylength]) mod 256 j = (227 + S[3] + key[3 mod 4]) mod 256 j = (227+ 3 + key[3]) mod 256

j = (227 + 3 + 69) mod 256 j = (299) mod 256

j = 43

Tukarkan nilai S[3] dengan S[43], maka nilai dari S[3] = 43 dan nilai dari S[43] = 3. Ulangi langkah 4

(4)

Hal: 232-243 hingga indeks i = 255, kemudian array s1 teracak

sebanyak 256 kali. Nilai-nilai pada state tersebut masih bersifat sementara hingga i = 255. Nilai state akhir didapatkan apabila i telah mencapai nilai 255. Hasil tahap Key Scheduling Algoritihm (KSA) berupa nilai state akhir dapat dilihat pada tabel 3.3 dimana nilai i berada pada baris yang berwarna putih dan nilai dari S[i] berada pada baris yang berwarna hijau.

Tabel 2. Larik 256 Byte Hasil Perhitungan Pengacakan Tahap KSA 0 1 2 3 4 5 6 7 8 9 10 11 12 13 12 4 14 6 19 0 45 21 9 17 4 10 9 23 8 51 13 6 71 49 99 14 15 16 17 18 19 20 21 22 23 24 25 26 27 13 2 15 0 60 18 1 11 12 7 20 24 1 57 40 28 22 2 17 7 12 9 28 29 30 31 32 33 34 35 36 37 38 39 40 41 14 8 18 9 22 1 84 15 8 13 1 24 5 93 19 5 21 1 10 78 40 10 2 42 43 44 45 46 47 48 49 50 51 52 53 54 55 65 63 24 4 17 2 54 19 0 13 7 39 71 16 9 20 3 32 12 15 3 56 57 58 59 60 61 62 63 64 65 66 67 68 69 53 87 19 4 13 17 3 12 0 14 1 3 9 11 9 24 25 2 21 2 14 70 71 72 73 74 75 76 77 78 79 80 81 82 83 17 5 31 15 8 17 8 69 21 4 19 3 44 23 7 5 19 8 67 68 84 85 86 87 88 89 90 91 92 93 94 95 96 97 21 74 20 6 23 10 7 55 34 18 3 38 46 53 24 1 56 82 98 99 10 0 10 1 10 2 10 3 10 4 10 5 10 6 10 7 10 8 10 9 11 0 11 1 22 19 1 20 8 66 15 1 24 6 7 14 7 22 0 12 2 35 25 19 7 18 5 11 2 11 3 11 4 11 5 11 6 11 7 11 8 11 9 12 0 12 1 12 2 12 3 12 4 12 5 61 76 4 50 16 2 26 11 7 10 4 90 12 8 11 4 79 10 5 15 2 12 6 12 7 12 8 12 9 13 0 13 1 13 2 13 3 13 4 13 5 13 6 13 7 13 8 13 9 10 0 13 4 23 1 29 41 16 0 23 5 16 4 20 5 16 3 13 5 16 6 37 14 0 14 1 14 2 14 3 14 4 14 5 14 6 14 7 14 8 14 9 15 0 15 1 15 2 15 3 47 62 1 91 11 8 11 3 21 6 16 1 25 0 58 96 19 9 14 3 22 7 15 4 15 5 15 6 15 7 15 8 15 9 16 0 16 1 16 2 16 3 16 4 16 5 16 6 16 7 23 4 35 18 4 10 3 52 24 0 11 5 22 4 48 89 25 3 22 5 16 6 43 16 8 16 9 17 0 17 1 17 2 17 3 17 4 17 5 17 6 17 7 17 8 17 9 18 0 18 1 13 0 64 13 8 14 9 21 3 18 8 15 6 75 73 14 0 94 17 23 6 11 1 18 2 18 3 18 4 18 5 18 6 18 7 18 8 18 9 19 0 19 1 19 2 19 3 19 4 19 5 16 5 20 7 15 9 88 8 81 18 2 90 22 3 36 22 6 15 7 15 4 19 1 19 6 19 7 19 8 19 9 20 0 20 1 20 2 20 3 20 4 20 5 20 6 20 7 20 8 20 9 19 6 18 0 10 1 17 9 25 5 11 2 17 1 80 14 0 18 7 10 8 59 18 6 20 4 21 0 21 1 21 2 21 3 21 4 21 5 21 6 21 7 21 8 21 9 22 0 22 1 22 2 22 3 20 2 24 9 85 42 23 9 21 5 22 8 92 98 20 1 20 2 12 6 77 24 7 22 4 22 5 22 6 22 7 22 8 22 9 23 0 23 1 23 2 23 3 23 4 23 5 23 6 23 7 12 4 11 6 86 23 7 13 9 2 12 5 23 2 23 0 19 2 17 0 14 4 97 23 3 23 8 23 9 24 0 24 1 24 2 24 3 24 4 24 5 24 6 24 7 24 8 24 9 25 0 25 1 25 1 20 0 27 15 5 13 3 95 22 9 21 8 30 16 8 12 1 21 0 10 6 17 6 25 2 25 3 25 4 25 5 11 0 25 4 24 2 21 7

2. Tahap Pseudo Random Generation Algorithm (PRGA)

Pada tahap awal inisialisasikan nilai i = 0 dan j = 0, Lakukan inisialisasi pada nilai i dan j sama dengan 0. Kemudian inisialisasikan a = S[i] dan b = S[j]. Selanjutnya

lakukan perhitungan nilai i, j, a, b, c dan z yang baru dengan cara :

Untuk i = 0

i = (i + 1) mod 256 = (0 + 1) mod 256 = 1 a = S[i] = S[1] = 146 j = (j + a) mod 256 = (0 + 146) mod 256 = 146

Selanjutnya tukarkan nilai S[i] dan S[j] dengan cara sebagai berikut :

b = S[j] = S[146] = 216 S[i] = b = S[1] = 216 S[j] = a = S[146] = 146

Dari perhitungan diatas didapat S[1] = 216 dan S[146] = 146. Berdasarkan proses sebelumnya yang didapatkan nilai i dan j adalah sebagai berikut :

i : 1 dan j :146

Selanjutnya hitung nilai c dengan cara :

𝑐 = (𝑆[((i≪5) (j≫3)) mod 256] + 𝑆[((j≪5) ⊕ (i≫3))

mod 256]) mod 256

𝑐 =(S[((1≪5)⊕ (146≫3)) mod 256] + S[((146≪5)⊕(1≫3))mod256])mod256

𝑐 = (S[(32 ⊕ 18) mod 256] + S[( 64⊕ 0) mod 256])

mod 256

𝑐 = (S[(50) mod 256] + S[(64) mod 256]) mod 256 𝑐 = (S[50] + S[64]) mod 256

𝑐 = (71 + 9) mod 256

c = 80 mod 256 c = 80

Setelah mendapatkan nilai c, selanjutnya hitung nilai z dengan cara sebagai berikut:

i : 1 dan j :146 a = S[i] = S[1] = 146 j = (j + a) mod 256 = (0 + 146) mod 256 = 146 S[i] = b = S[1] = 216 S[j] = a = S[146] = 146 Nilai c : 80 Mencari nilai z. 𝑧 =((S[(a+b)mod256]+S[((c ⊕170)mod 256)])⊕S[(j +b) mod256])mod 256 𝑧=((S[(146+216)mod256]+S[((80⊕170)mod256)])⊕S[ (146+216)mod256])mod256 𝑧 = ((S[(362) mod 256] + (80⊕170)mod 256)])⊕S[(362)mod 256]) mod 256 z = ((S[(106)+S[((80⊕170)mod 256)])⊕S[(106)mod 256]) mod 256 𝑧 =((S[106] + S[250]) ⊕S[106]) mod 256 𝑧 =((220 + 106) ⊕ 220) mod 256 𝑧 =((326) ⊕ 220) mod 256 𝑧 =410 mod 256 z = 154

Nilai z ini akan menjadi nilai kunci [0] untuk mengenkripsi plainteks.

Plainteks yang diamankan : N

Plainteks [0] N : 78 01001110

Kunci [0] : 154 10011010 ⊕

Ciphertext [0] : 212 11010100

Ciphertext [0] : Ô (dalam ASCII)

Inisialisasi pada nilai i = 1 dan j = 146. Selanjutnya lakukan perhitungan nilai i dan j yang baru dengan cara :

(5)

Hal: 232-243 Untuk i = 1

i = (i + 1) mod 256 = (1 + 1) mod 256 = 2 a = S[i] = S[2] = 19 j = (j + a) mod 256 = (146 + 19) mod 256 = 165

Selanjutnya tukarkan nilai S[i] dan S[j] dengan cara sebagai berikut :

b = S[j] = S[165] = 225 S[i] = b = S[2] = 225 S[j] = a = S[165] = 165

Dari perhitungan diatas didapat S[2] = 225 dan S[165] = 165. Berdasarkan proses sebelumnya yang didapatkan nilai i dan j adalah sebagai berikut :

i : 2 dan j :165

Selanjutnya hitung nilai c dengan cara :

𝑐 = (𝑆[((i≪5) (j≫3)) mod 256] + 𝑆[((j≪5) ⊕ (i≫3))

mod 256]) mod 256

𝑐 =(S[((2≪5)⊕ (165≫3)) mod 256] + S[((165≪5)⊕(2≫3))mod256])mod256

𝑐 = (S[(64 ⊕ 20) mod 256] + S[( 160⊕ 0) mod 256])

mod 256

𝑐 = (S[(84) mod 256] + S[(160) mod 256]) mod 256 𝑐 = (S[84] + S[160]) mod 256

𝑐 = (21 + 115) mod 256

c = 136 mod 256 c = 136

Setelah mendapatkan nilai c, selanjutnya hitung nilai z dengan cara sebagai berikut:

i : 2 dan j :165 a = S[i] = S[2] = 19 j = (j + a) mod 256 = (146 + 19) mod 256 = 165 S[i] = b = S[2] = 225 S[j] = a = S[165] = 165 Nilai c : 136 Mencari nilai z. 𝑧 =((S[(a+b)mod256]+S[((c ⊕170)mod 256)])⊕S[(j +b) mod256])mod 256 𝑧=((S[(19+225)mod256]+S[((136⊕170)mod256)])⊕S[ (165+225)mod256])mod256 𝑧 = ((S[(244) mod 256] + (136⊕170)mod 256)])⊕S[(390)mod 256]) mod 256 z = ((S[(155)+S[((136⊕170)mod 256)]) ⊕S[(134)mod 256]) mod 256 𝑧 =((S[155] + S[34]) ⊕ S[134]) mod 256 𝑧 =((35 + 245) ⊕ 205) mod 256 𝑧 =((280) ⊕ 205) mod 256 𝑧 =469 mod 256 z = 213

Nilai z ini akan menjadi nilai kunci [1] untuk mengekripsi plainteks.

Plainteks yang diamankan : O

Plainteks [0] 0 : 79 01001111

Kunci [0] : 213 11010101 ⊕

Cipheretxt [0] : 154 10011010

Ciphertext [0] : SCI (dalam ASCII)

Inisialisasi pada nilai i = 2 dan j = 146. Selanjutnya lakukan perhitungan nilai i dan j yang baru dengan cara : Untuk i = 2

i = (i + 2) mod 256 = (2 + 1) mod 256 = 3 a = S[i] = S[3] = 0

j = (j + a) mod 256 = (165 + 0) mod 256 = 165

Selanjutnya tukarkan nilai S[i] dan S[j] dengan cara sebagai berikut :

b = S[j] = S[165] = 225 S[i] = b = S[3] = 225 S[j] = a = S[165] = 165

Dari perhitungan diatas didapat S[3] = 225 dan S[165] = 165. Berdasarkan proses sebelumnya yang didapatkan nilai i dan j adalah sebagai berikut :

i : 3 dan j :165

Selanjutnya hitung nilai c dengan cara :

𝑐 = (𝑆[((i≪5) (j≫3)) mod 256] + 𝑆[((j≪5) ⊕ (i≫3))

mod 256]) mod 256

𝑐 =(S[((3≪5)⊕ (165≫3)) mod 256] + S[((165≪5)⊕(3≫3))mod256])mod256

𝑐 = (S[(96 ⊕ 20) mod 256] + S[( 160⊕ 0) mod 256])

mod 256

𝑐 = (S[(116) mod 256] + S[(160) mod 256]) mod 256 𝑐 = (S[116] + S[160]) mod 256

𝑐 = (162 + 115) mod 256

c = 277 mod 256 c = 21

Setelah mendapatkan nilai c, selanjutnya hitung nilai z dengan cara sebagai berikut:

i : 3 dan j :165 a = S[i] = S[3] = 0 j = (j + a) mod 256 = (165 + 0) mod 256 = 165 S[i] = b = S[3] = 225 S[j] = a = S[165] = 165 Nilai c : 21 Mencari nilai z. 𝑧 =((S[(a+b)mod256]+S[((c ⊕170)mod 256)])⊕S[(j +b) mod256])mod 256 𝑧=((S[(0+225)mod256]+S[((21⊕170)mod256)])⊕S[(1 65+225)mod256]) mod 256 𝑧 = ((S[(225) mod 256] + (21⊕170)mod 256)])⊕S[(390)mod 256]) mod 256 z = ((S[(225)+S[((21⊕170)mod 256)]) ⊕S[(134)mod 256]) mod 256 𝑧 =((S[225] + S[191]) ⊕ S[134]) mod 256 𝑧 =((116 + 36) ⊕ 205) mod 256 𝑧 =((152) ⊕ 205) mod 256 𝑧 =85 mod 256 z = 85

Nilai z ini akan menjadi nilai kunci [2] untuk mengekripsi plainteks.

Plainteks yang diamankan : N

Plainteks [0] 0 : 78 01001110

Kunci [0] : 85 01010101 ⊕

Ciphertext [0] : 27 00011011

Ciphertext [0] : ESC (dalam ASCII)

Inisialisasi pada nilai i = 3 dan j = 146. Selanjutnya lakukan perhitungan nilai i dan j yang baru dengan cara : Untuk i = 3

(6)

Hal: 232-243

a = S[i] = S[4] = 45 j = (j + a) mod 256 = (165 + 45) mod 256 = 210

Selanjutnya tukarkan nilai S[i] dan S[j] dengan cara sebagai berikut :

b = S[j] = S[210] = 202 S[i] = b = S[4] = 202 S[j] = a = S[210] = 210

Dari perhitungan diatas didapat S[4] = 202 dan S[210] = 210. Berdasarkan proses sebelumnya yang didapatkan nilai i dan j adalah sebagai berikut :

i : 4 dan j :210

Selanjutnya hitung nilai c dengan cara :

𝑐 = (𝑆[((i≪5) (j≫3)) mod 256] + 𝑆[((j≪5) ⊕ (i≫3))

mod 256]) mod 256

𝑐 =(S[((4≪5)⊕ (210≫3)) mod 256] + S[((210≪5)⊕(4≫3))mod256])mod256

𝑐 = (S[(128 ⊕ 26) mod 256] + S[( 64⊕ 0) mod 256])

mod 256

𝑐 = (S[(154) mod 256] + S[(64) mod 256]) mod 256 𝑐 = (S[154] + S[64]) mod 256

𝑐 = (234 + 9) mod 256

c = 243 mod 256 c = 243

Setelah mendapatkan nilai c, selanjutnya hitung nilai z dengan cara sebagai berikut:

i : 4 dan j :210 a = S[i] = S[4] = 45 j = (j + a) mod 256 = (165 + 45) mod 256 = 210 S[i] = b = S[4] = 202 S[j] = a = S[210] = 210 Nilai c : 243 Mencari nilai z. 𝑧 =((S[(a+b)mod256]+S[((c ⊕170)mod 256)])⊕S[(j +b) mod256])mod 256 𝑧=((S[(45+202)mod256]+S[((243⊕170)mod256)])⊕S[ (210+202)mod256])mod256 𝑧 = ((S[(247) mod 256] + (243⊕170)mod 256)])⊕S[(412)mod 256]) mod 256 z = ((S[(247)+S[((243⊕170)mod 256)]) ⊕S[(156)mod 256]) mod 256 𝑧 =((S[247] + S[89]) ⊕ S[156]) mod 256 𝑧 =((168 + 55) ⊕ 184) mod 256 𝑧 =((223) ⊕ 184) mod 256 𝑧 =103 mod 256 z = 103

Nilai z ini akan menjadi nilai kunci [3] untuk mengekripsi plainteks.

Plainteks yang diamankan : I

Plainteks [0] 0 : 73 01001001

Kunci [0] : 103 01100111 ⊕

Ciphertext [0] : 46 00101110

Ciphertext [0] : . (dalam ASCII)

Inisialisasi pada nilai i = 4 dan j = 210. Selanjutnya lakukan perhitungan nilai i dan j yang baru dengan cara : Untuk i = 4

i = (i + 4) mod 256 = (4 + 1) mod 256 = 5 a = S[i] = S[5] = 219 j = (j + a) mod 256 = (210 + 219) mod 256 = 173

Selanjutnya tukarkan nilai S[i] dan S[j] dengan cara sebagai berikut :

b = S[j] = S[173] = 188 S[i] = b = S[5] = 188 S[j] = a = S[173] = 173

Dari perhitungan diatas didapat S[5] = 188 dan S[173] = 173. Berdasarkan proses sebelumnya yang didapatkan nilai i dan j adalah sebagai berikut :

i : 5 dan j :173

Selanjutnya hitung nilai c dengan cara :

𝑐 = (𝑆[((i≪5) (j≫3)) mod 256] + 𝑆[((j≪5) ⊕ (i≫3))

mod 256]) mod 256

𝑐 =(S[((5≪5)⊕ (173≫3)) mod 256] + S[((173≪5)⊕(5≫3))mod256])mod256

𝑐 = (S[(0 ⊕ 21) mod 256] + S[( 160⊕ 0) mod 256])

mod 256

𝑐 = (S[(21) mod 256] + S[(160) mod 256]) mod 256 𝑐 = (S[21] + S[160]) mod 256

𝑐 = (241 + 115) mod 256

c = 356 mod 256 c = 100

Setelah mendapatkan nilai c, selanjutnya hitung nilai z dengan cara sebagai berikut:

i : 5 dan j :173 a = S[i] = S[5] = 219 j = (j + a) mod 256 = (210 + 219) mod 256 = 173 S[i] = b = S[5] = 188 S[j] = a = S[173] = 173 Nilai c : 100 Mencari nilai z. 𝑧 =((S[(a+b)mod256]+S[((c ⊕170)mod 256)])⊕S[(j +b) mod256])mod 256 𝑧=((S[(219+188)mod256]+S[((100⊕170)mod256)])⊕S [(173+188)mod256])mod256 𝑧 = ((S[(407) mod 256] + (100⊕170)mod 256)])⊕S[(361)mod 256]) mod 256 z = ((S[(151)+S[((100⊕170)mod 256)]) ⊕S[(105)mod 256]) mod 256 𝑧 =((S[151] + S[206]) ⊕ S[105]) mod 256 𝑧 =((199 + 108) ⊕ 147) mod 256 𝑧 =((307) ⊕ 147) mod 256 𝑧 =416 mod 256 z = 160

Nilai z ini akan menjadi nilai kunci [4] untuk mengekripsi plainteks.

Plainteks yang diamankan : 9

Plainteks [0] 9 : 57 00111001

Kunci [0] : 160 10100000 ⊕

Ciphertext [0] : 153 10011001

Ciphertext [0] : SGCI (dalam ASCII)

Inisialisasi pada nilai i = 4 dan j = 173. Selanjutnya lakukan perhitungan nilai i dan j yang baru dengan cara : Untuk i = 5

i = (i + 5) mod 256 = (5 + 1) mod 256 = 6 a = S[i] = S[6] = 174 j = (j + a) mod 256 = (173 + 174) mod 256 = 91

Selanjutnya tukarkan nilai S[i] dan S[j] dengan cara sebagai berikut :

(7)

Hal: 232-243

b = S[j] = S[91] = 183 S[i] = b = S[6] = 183 S[j] = a = S[91] = 91

Dari perhitungan diatas didapat S[6] = 183 dan S[91] = 91. Berdasarkan proses sebelumnya yang didapatkan nilai i dan j adalah sebagai berikut :

i : 6 dan j :91

Selanjutnya hitung nilai c dengan cara :

𝑐 = (𝑆[((i≪5) (j≫3)) mod 256] + 𝑆[((j≪5) ⊕ (i≫3))

mod 256]) mod 256

𝑐 =(S[((6≪5)⊕ (91≫3)) mod 256] + S[((91≪5)⊕(6≫3))mod256])mod256

𝑐 = (S[(192 ⊕ 11) mod 256] + S[( 96⊕ 0) mod 256])

mod 256

𝑐 = (S[(203) mod 256] + S[(96) mod 256]) mod 256 𝑐 = (S[203] + S[96]) mod 256

𝑐 = (80 + 56) mod 256

c = 136 mod 256 c = 136

Setelah mendapatkan nilai c, selanjutnya hitung nilai z dengan cara sebagai berikut:

i : 6 dan j :91 a = S[i] = S[6] = 174 j = (j + a) mod 256 = (173 + 174) mod 256 = 91 S[i] = b = S[6] = 183 S[j] = a = S[91] = 91 Nilai c : 136 Mencari nilai z. 𝑧 =((S[(a+b)mod256]+S[((c ⊕170)mod 256)])⊕S[(j +b) mod256])mod 256 𝑧=((S[(174+183)mod256]+S[((136⊕170)mod256)])⊕S [(91+183)mod256])mod256 𝑧 = ((S[(357) mod 256] + (136⊕170)mod 256)])⊕S[(274)mod 256]) mod 256 z = ((S[(101)+S[((136⊕170)mod 256)]) ⊕S[(18)mod 256]) mod 256 𝑧 =((S[101] + S[34]) ⊕ S[18]) mod 256 𝑧 =((66 + 245) ⊕ 11) mod 256 𝑧 =((311) ⊕ 11) mod 256 𝑧 =292 mod 256 z = 36

Nilai z ini akan menjadi nilai kunci [6] untuk mengekripsi plainteks.

Plainteks yang diamankan : 7

Plainteks [0] 7 : 55 00110111

Kunci [0] : 36 00100100 ⊕

Ciphertext [0] : 19 00010011

Ciphertext [0] : DC3 (dalam ASCII) Jadi hasil yang didapat adalah sebagai berikut : Plainteks : [ N, O, N, I, 9, 7 ]

Plainteks : [ 78, 79, 78, 73, 57,55 ] (dalam ASCII)

Ciphertext : [ 212, 154, 27, 46, 153, 19 ]

Ciphertext : [Ô, SCI, ESC, . , SGCI, DC3] (dalam

ASCII)

C. Penerapan Metode Dynamic Cell Spreading (DCS) Misalkan text berisikan dari hasil cipherteks dari proses enkripsi algoritma RC4+ Cipherteks : [ 212, 154, 27,

46, 153, 19 ] Cipherteks : [Ô, SCI, ESC, . , SGCI, DC3] (dalam ASCII).

Berikut ini akan diuraikan contoh penyembunyian (embedding) pesan teks pada citra digital berdasarkan algoritma dynamic cell spreading.

1. Siapkan pesan yang akan disembunyikan.

Pesan yang akan disembunyikan merupakan karakter-karakter dari tabel ASCII yang dirangka menjadi data teks. Mengingat proses yang sangat banyak, maka jumlah karakter pesan yang akan disisipkan adalah :

Char Pesan

Karakter Pesan Yang disembunyikan

Ô SCI ESC . SGCI DC3

Desim

al 212 154 27 46 153

19 Biner 11010100 10011010 00011011 00101110 10011001 00010011

Biner dari nilai desimal total bit pesan utama 48 bit

2. Tetapkan kunci yang digunakan baik untuk embedding maupun ekstraksi. Kunci = LASE Kunci L A S E Decimal 76 65 83 69 Biner 01001100 01000001 01010011 01000101 3. XOR biner kunci

L = 01001100 A = 01000001 XOR 1 00001101 S = 01010011 XOR 2 01011110 E = 01000101

XOR 3 00011011 = 27 desimal (Char g) Hasil XOR kunci digabungkan dengan pesan. Sehingga pesan keseluruhan setelah digabungkan dengan kunci, dan bit-bit pesan utama menjadi :

Hasil XOR Kunci

Karakter Pesan Utama

Biner Pesan Seluruh nya

ESC Ô SCI ESC . SGCI DC3

00011 011 11010 100 10011 010 00011 011 00101 110 10011 001 00010 011

4. Proses pemeriksaan jumlah bit yang dapat ditampung oleh citra cover.

Proses ini dilakukan dengan menghitung jumlah bit dari keseluruhan karakter pesan, kemudian membandingkan dengan jumlah bit-bit dari seluruh pixel citra penampung (citra cover).

Pesan keseluruhan adalah :

Hasil XOR Kunci

Karakter Pesan Utama

Biner Pesan Seluruhn

ya

ESC Ô SCI ESC . SGCI DC3

000110 11 110101 00 100110 10 000110 11 001011 10 100110 01 000100 11 Total Bit Pesan Keseluruhan Adalah 56 Bit

(8)

Hal: 232-243 Setiap pixel citra JPG 24 bit memiliki 3 elemen

warna yaitu red, green dan blue. Masing-masing elemen warna tersebut terdiri dari 8 bit, sehingga citra ini memiliki 24 bit setiap pixel (8 bit x 3 elemen warna).

Penyisipan dilakukan dengan mengganti bit-bit terakhir (1 bit) dari setiap elemen warna pixel atau dapat diartikan setiap pixel dapat menampung 3 bit pesan. Total pixel citra yang dapat menampung pesan yang akan disembunyikan dapat dihitung dengan total bit pesan dibagi dengan 3 (56 bit / 3 = 19). Artinya bahwa untuk menyembunyikan pesan 48 bit membutuhkan 19 pixel dari citra cover. Berdarkan hasil perhitungan ini, maka dapat disimpulkan bahwa citra cover dengan ukuran di atas dapat digunakan untuk menyembunyikan pesan 56 bit di atas. 5. Nilai pembangkit bilangan pengacakan (m) misalnya

adalah 367

6. Proses pengacakan posisi-posisi pixel citra penampung (citra cover)

Bangkitkan 20 bilangan acak dengan menggunakan nilai m, hasil dari pengacakan dijadikan sebagai parameter pemindahan posisi pixel citra cover.

a. Urutkan warna palet pixel citra beserta nilai desimalnya sesuai dengan urutan pixel yang masih natural. Nilai desimal setiap warna palet pixel citra didapatkan dengan cara melakukan konversi elemen setiap warna pixel menjadi bilangan desimal, dalam contoh kasus ini dilakukan dengan menggunakan matlab 6.0. Setiap warna dikonversikan dengan rumus (Nilai R *65536) + (Nilai G *256) + (Nilai B). Kemudian palet warna diurutkan berdasarkan besar bilangan integer yang mewakili warna tersebut.

b. Urutkan susunan palet pixel di atas mulai dari nilai total warna paling rendah :

c. Lakukan iterasi terhadap variabel i dengan nilai i sampai n (jumlah pixel dari citra penampung pesan). Setiap warna pada urutan n-i dipindahkan ke posisi baru yaitu m mod i, kemudian m dibagi dengan i. Nilai n = 20, nilai m = 367. d. Palet warna baru hasil iterasi pada setiap

langkah dimasukkan ke dalam palet warna berkas (buffer memory). Apabila ada sebuah tempat yang diisi oleh 2 buah warna maka warna yang sebelumnya menempati tempat tersebut akan digeser satu tempat ke posisi berikutnya.

Iterasi variabel i dari mulai 1 sampai n, nilai n = 20 (jumlah pixel citra penampung pesan yang digunakan dalam contoh kasus ini) :

Warna indeks ke-(n-i) dipindahkan ke indeks ke- (m mod i), m=m/i

Diketahui n = 20, m= 367 Nilai untuk i = 1, maka :

indeks ke- ( n – i ) = 20 - 1= 19, dipindahkan ke indeks pixel ke - ( m mod i ) = 367 mod 1 = 0 Sehingga diperoleh bahwa palet pixel yang berada pada indeks ke-19 dipindahkan ke indeks ke-0, kemudian simpan ke buffer memory.

7. Proses penggantian bit rendah (least significant bit) citra cover dengan bit-bit pesan.

8. Susun kembali palet warna pixel dari buffer memory setelah disisipkan pesan. Proses penyusunan ini dilakukan dengan mengurutkan kembali urutan pixel dari yang terkecil ke yang terbesar (urutkan berdasakan nomor index-nya), sehingga susunan pixel-pixel kembali sama seperti susunan pixel citra cover sebelum pengacakan tetapi telah tersisipkan pesan. Simpan citra yang baru menjadi steganoimage ke dalam media penyimpanan.

Proses dekripsi sama dengan proses enkripsi dengan menggunakan kunci yang sama, berikut ini adalah proses dekripsi yang bertujuan untuk mengembalikan pesan tersandi kepesan asli.

Cipherteks : [ 212, 154, 27, 46, 153, 19 ]

Cipherteks : [Ô, SCI, ESC, . , SGCI, DC3] (dalam ASCII)

Pada tahap awal inisialisasikan nilai i = 0 dan j = 0, Lakukan inisialisasi pada nilai i dan j sama dengan 0. Kemudian inisialisasikan a = S[i] dan b = S[j]. Selanjutnya lakukan perhitungan nilai i, j, a, b, c dan z yang baru dengan cara :

Untuk i = 0

i = (i + 1) mod 256 = (0 + 1) mod 256 = 1

a = S[i] = S[1] = 146

j = (j + a) mod 256 = (0 + 146) mod 256 = 146 Selanjutnya tukarkan nilai S[i] dan S[j] dengan cara sebagai berikut :

b = S[j] = S[146] = 216

S[i] = b = S[1] = 216

S[j] = a = S[146] = 146

Dari perhitungan diatas didapat S[1] = 216 dan S[146] = 146. Berdasarkan proses sebelumnya yang didapatkan nilai i dan j adalah sebagai berikut :

i : 1 dan j :146

Selanjutnya hitung nilai c dengan cara :

𝑐 = (𝑆[((i≪5) (j≫3)) mod 256] + 𝑆[((j≪5) ⊕ (i≫3)) mod 256]) mod 256

𝑐 =(S[((1≪5)⊕ (146≫3)) mod 256] + S[((146≪5)⊕(1≫3))mod256])mod256

𝑐 = (S[(32 ⊕ 18) mod 256] + S[( 64⊕ 0) mod 256]) mod 256

𝑐 = (S[(50) mod 256] + S[(64) mod 256]) mod 256 𝑐 = (S[50] + S[64]) mod 256

𝑐 = (71 + 9) mod 256 c = 80 mod 256 c = 80

Setelah mendapatkan nilai c, selanjutnya hitung nilai z dengan cara sebagai berikut:

i : 1 dan j :146 a = S[i] = S[1] = 146 j = (j + a) mod 256 = (0 + 146) mod 256 = 146 S[i] = b = S[1] = 216 S[j] = a = S[146] = 146 Nilai c : 80 Mencari nilai z.

(9)

Hal: 232-243 𝑧 =((S[(a+b)mod256]+S[((c ⊕170)mod 256)])⊕S[(j +b) mod256])mod 256 𝑧=((S[(146+216)mod256]+S[((80⊕170)mod256)])⊕S[( 146+216)mod256])mod256 𝑧 = ((S[(362) mod 256] + (80⊕170)mod 256)])⊕S[(362)mod 256]) mod 256 z = ((S[(106)+S[((80⊕170)mod 256)])⊕S[(106)mod 256]) mod 256 𝑧 =((S[106] + S[250]) ⊕S[106]) mod 256 𝑧 =((220 + 106) ⊕ 220) mod 256 𝑧 =((326) ⊕ 220) mod 256 𝑧 =410 mod 256 z = 154

Nilai z ini akan menjadi nilai kunci [0] untuk mengekripsi plainteks.

Cipherteks yang tersandi : Ô

Cipherteks [0] Ô : 212 11010100

Kunci [0] : 154 10011010 ⊕

Plainteks [0] : 78 01001110

Plainteks [0] : N (dalam ASCII)

Inisialisasi pada nilai i = 1 dan j = 146. Selanjutnya lakukan perhitungan nilai i dan j yang baru dengan cara : Untuk i = 1

i = (i + 1) mod 256 = (1 + 1) mod 256 = 2

a = S[i] = S[2] = 19

j = (j + a) mod 256 = (146 + 19) mod 256 = 165 Selanjutnya tukarkan nilai S[i] dan S[j] dengan cara sebagai berikut :

b = S[j] = S[165] = 225

S[i] = b = S[2] = 225

S[j] = a = S[165] = 165

Dari perhitungan diatas didapat S[2] = 225 dan S[165] = 165. Berdasarkan proses sebelumnya yang didapatkan nilai i dan j adalah sebagai berikut :

i : 2 dan j :165

Selanjutnya hitung nilai c dengan cara :

𝑐 = (𝑆[((i≪5) (j≫3)) mod 256] + 𝑆[((j≪5) ⊕ (i≫3)) mod 256]) mod 256

𝑐 =(S[((2≪5)⊕ (165≫3)) mod 256] + S[((165≪5)⊕(2≫3))mod256])mod256

𝑐 = (S[(64 ⊕ 20) mod 256] + S[( 160⊕ 0) mod 256]) mod 256

𝑐 = (S[(84) mod 256] + S[(160) mod 256]) mod 256 𝑐 = (S[84] + S[160]) mod 256

𝑐 = (21 + 115) mod 256 c = 136 mod 256 c = 136

Setelah mendapatkan nilai c, selanjutnya hitung nilai z dengan cara sebagai berikut:

i : 2 dan j :165 a = S[i] = S[2] = 19 j = (j + a) mod 256 = (146 + 19) mod 256 = 165 S[i] = b = S[2] = 225 S[j] = a = S[165] = 165 Nilai c : 136 Mencari nilai z. 𝑧 =((S[(a+b)mod256]+S[((c ⊕170)mod 256)])⊕S[(j +b) mod256])mod 256 𝑧=((S[(19+225)mod256]+S[((136⊕170)mod256)])⊕S[( 165+225)mod256])mod256 𝑧 = ((S[(244) mod 256] + (136⊕170)mod 256)])⊕S[(390)mod 256]) mod 256 z = ((S[(155)+S[((136⊕170)mod 256)]) ⊕S[(134)mod 256]) mod 256 𝑧 =((S[155] + S[34]) ⊕ S[134]) mod 256 𝑧 =((35 + 245) ⊕ 205) mod 256 𝑧 =((280) ⊕ 205) mod 256 𝑧 =469 mod 256 z = 213

Nilai z ini akan menjadi nilai kunci [1] untuk mengekripsi plainteks.

Cipherteks yang tersandi : SCI

Cipherteks [0] : 154 10011010

Kunci [0] : 213 11010101 ⊕

Plainteks [0] 0 : 79 01001111 Plainteks [0] 0 : O (dalam ASCII)

Inisialisasi pada nilai i = 2 dan j = 146. Selanjutnya lakukan perhitungan nilai i dan j yang baru dengan cara : Untuk i = 2

i = (i + 2) mod 256 = (2 + 1) mod 256 = 3

a = S[i] = S[3] = 0

j = (j + a) mod 256 = (165 + 0) mod 256 = 165 Selanjutnya tukarkan nilai S[i] dan S[j] dengan cara sebagai berikut :

b = S[j] = S[165] = 225

S[i] = b = S[3] = 225

S[j] = a = S[165] = 165

Dari perhitungan diatas didapat S[3] = 225 dan S[165] = 165. Berdasarkan proses sebelumnya yang didapatkan nilai i dan j adalah sebagai berikut :

i : 3 dan j :165

Selanjutnya hitung nilai c dengan cara :

𝑐 = (𝑆[((i≪5) (j≫3)) mod 256] + 𝑆[((j≪5) ⊕ (i≫3)) mod 256]) mod 256

𝑐 =(S[((3≪5)⊕ (165≫3)) mod 256] + S[((165≪5)⊕(3≫3))mod256])mod256

𝑐 = (S[(96 ⊕ 20) mod 256] + S[( 160⊕ 0) mod 256]) mod 256

𝑐 = (S[(116) mod 256] + S[(160) mod 256]) mod 256 𝑐 = (S[116] + S[160]) mod 256

𝑐 = (162 + 115) mod 256 c = 277 mod 256 c = 21

Setelah mendapatkan nilai c, selanjutnya hitung nilai z dengan cara sebagai berikut:

i : 3 dan j :165 a = S[i] = S[3] = 0 j = (j + a) mod 256 = (165 + 0) mod 256 = 165 S[i] = b = S[3] = 225 S[j] = a = S[165] = 165 Nilai c : 21 Mencari nilai z. 𝑧 =((S[(a+b)mod256]+S[((c ⊕170)mod 256)])⊕S[(j +b) mod256])mod 256 𝑧=((S[(0+225)mod256]+S[((21⊕170)mod256)])⊕S[(16 5+225)mod256])mod256

(10)

Hal: 232-243 𝑧 = ((S[(225) mod 256] + (21⊕170)mod 256)])⊕S[(390)mod 256]) mod 256 z = ((S[(225)+S[((21⊕170)mod 256)]) ⊕S[(134)mod 256]) mod 256 𝑧 =((S[225] + S[191]) ⊕ S[134]) mod 256 𝑧 =((116 + 36) ⊕ 205) mod 256 𝑧 =((152) ⊕ 205) mod 256 𝑧 =85 mod 256 z = 85

Nilai z ini akan menjadi nilai kunci [2] untuk mengekripsi plainteks.

Cipherteks yang disandikan : ESC

Cipherteks [0] : 27 00011011

Kunci [0] : 85 01010101 ⊕

Plainteks [0] 0 : 78 01001110 Plainteks [0] 0 : N (dalam ASCII) Inisialisasi pada nilai i = 3 dan j = 146. Selanjutnya lakukan perhitungan nilai i dan j yang baru dengan cara : Untuk i = 3

i = (i + 3) mod 256 = (3 + 1) mod 256 = 4

a = S[i] = S[4] = 45

j = (j + a) mod 256 = (165 + 45) mod 256 = 210 Selanjutnya tukarkan nilai S[i] dan S[j] dengan cara sebagai berikut :

b = S[j] = S[210] = 202

S[i] = b = S[4] = 202

S[j] = a = S[210] = 210

Dari perhitungan diatas didapat S[4] = 202 dan S[210] = 210. Berdasarkan proses sebelumnya yang didapatkan nilai i dan j adalah sebagai berikut :

i : 4 dan j :210

Selanjutnya hitung nilai c dengan cara :

𝑐 = (𝑆[((i≪5) (j≫3)) mod 256] + 𝑆[((j≪5) ⊕ (i≫3)) mod 256]) mod 256

𝑐 =(S[((4≪5)⊕ (210≫3)) mod 256] + S[((210≪5)⊕(4≫3))mod256])mod256

𝑐 = (S[(128 ⊕ 26) mod 256] + S[( 64⊕ 0) mod 256]) mod 256

𝑐 = (S[(154) mod 256] + S[(64) mod 256]) mod 256 𝑐 = (S[154] + S[64]) mod 256

𝑐 = (234 + 9) mod 256 c = 243 mod 256 c = 243

Setelah mendapatkan nilai c, selanjutnya hitung nilai z dengan cara sebagai berikut:

i : 4 dan j :210 a = S[i] = S[4] = 45 j = (j + a) mod 256 = (165 + 45) mod 256 = 210 S[i] = b = S[4] = 202 S[j] = a = S[210] = 210 Nilai c : 243 Mencari nilai z. 𝑧 =((S[(a+b)mod256]+S[((c ⊕170)mod 256)])⊕S[(j +b) mod256])mod 256 𝑧=((S[(45+202)mod256]+S[((243⊕170)mod256)])⊕S[( 210+202)mod256])mod256 𝑧 = ((S[(247) mod 256] + (243⊕170)mod 256)])⊕S[(412)mod 256]) mod 256 z = ((S[(247)+S[((243⊕170)mod 256)]) ⊕S[(156)mod 256]) mod 256 𝑧 =((S[247] + S[89]) ⊕ S[156]) mod 256 𝑧 =((168 + 55) ⊕ 184) mod 256 𝑧 =((223) ⊕ 184) mod 256 𝑧 =103 mod 256 z = 103

Nilai z ini akan menjadi nilai kunci [3] untuk mengekripsi plainteks.

Plainteks yang diamankan : .

Cipherteks [0] : 46 00101110

Kunci [0] : 103 01100111 ⊕

Plainteks [0] 0 : 73 01001001 Plainteks [0] 0 : I (dalam ASCII) Inisialisasi pada nilai i = 4 dan j = 210. Selanjutnya lakukan perhitungan nilai i dan j yang baru dengan cara : Untuk i = 4

i = (i + 4) mod 256 = (4 + 1) mod 256 = 5

a = S[i] = S[5] = 219

j = (j + a) mod 256 = (210 + 219) mod 256 = 173 Selanjutnya tukarkan nilai S[i] dan S[j] dengan cara sebagai berikut :

b = S[j] = S[173] = 188

S[i] = b = S[5] = 188

S[j] = a = S[173] = 173

Dari perhitungan diatas didapat S[5] = 188 dan S[173] = 173. Berdasarkan proses sebelumnya yang didapatkan nilai i dan j adalah sebagai berikut :

i : 5 dan j :173

Selanjutnya hitung nilai c dengan cara :

𝑐 = (𝑆[((i≪5) (j≫3)) mod 256] + 𝑆[((j≪5) ⊕ (i≫3)) mod 256]) mod 256

𝑐 =(S[((5≪5)⊕ (173≫3)) mod 256] + S[((173≪5)⊕(5≫3))mod256])mod256

𝑐 = (S[(0 ⊕ 21) mod 256] + S[( 160⊕ 0) mod 256]) mod 256

𝑐 = (S[(21) mod 256] + S[(160) mod 256]) mod 256 𝑐 = (S[21] + S[160]) mod 256

𝑐 = (241 + 115) mod 256 c = 356 mod 256 c = 100

Setelah mendapatkan nilai c, selanjutnya hitung nilai z dengan cara sebagai berikut:

i : 5 dan j :173 a = S[i] = S[5] = 219 j = (j + a) mod 256 = (210 + 219) mod 256 = 173 S[i] = b = S[5] = 188 S[j] = a = S[173] = 173 Nilai c : 100 Mencari nilai z. 𝑧 =((S[(a+b)mod256]+S[((c ⊕170)mod 256)])⊕S[(j +b) mod256])mod 256 𝑧=((S[(219+188)mod256]+S[((100⊕170)mod256)])⊕S[ (173+188)mod256])mod256 𝑧 = ((S[(407) mod 256] + (100⊕170)mod 256)])⊕S[(361)mod 256]) mod 256 z = ((S[(151)+S[((100⊕170)mod 256)]) ⊕S[(105)mod 256]) mod 256

(11)

Hal: 232-243 𝑧 =((S[151] + S[206]) ⊕ S[105]) mod 256 𝑧 =((199 + 108) ⊕ 147) mod 256 𝑧 =((307) ⊕ 147) mod 256 𝑧 =416 mod 256 z = 160

Nilai z ini akan menjadi nilai kunci [4] untuk mengekripsi plainteks.

Plainteks yang diamankan : SGCI

Cipherteks [0] : 153 10011001 Kunci [0] : 160 10100000 ⊕ Plainteks [0] : 57 00111001 Plainteks [0] : 9 (dalam ASCII)

Inisialisasi pada nilai i = 4 dan j = 173. Selanjutnya lakukan perhitungan nilai i dan j yang baru dengan cara : Untuk i = 5

i = (i + 5) mod 256 = (5 + 1) mod 256 = 6

a = S[i] = S[6] = 174

j = (j + a) mod 256 = (173 + 174) mod 256 = 91 Selanjutnya tukarkan nilai S[i] dan S[j] dengan cara sebagai berikut :

b = S[j] = S[91] = 183 S[i] = b = S[6] = 183

S[j] = a = S[91] = 91

Dari perhitungan diatas didapat S[6] = 183 dan S[91] = 91. Berdasarkan proses sebelumnya yang didapatkan nilai i dan j adalah sebagai berikut :

i : 6 dan j :91

Selanjutnya hitung nilai c dengan cara :

𝑐 = (𝑆[((i≪5) (j≫3)) mod 256] + 𝑆[((j≪5) ⊕ (i≫3)) mod 256]) mod 256

𝑐 =(S[((6≪5)⊕ (91≫3)) mod 256] + S[((91≪5)⊕(6≫3))mod256])mod256

𝑐 = (S[(192 ⊕ 11) mod 256] + S[( 96⊕ 0) mod 256]) mod 256

𝑐 = (S[(203) mod 256] + S[(96) mod 256]) mod 256 𝑐 = (S[203] + S[96]) mod 256

𝑐 = (80 + 56) mod 256 c = 136 mod 256 c = 136

Setelah mendapatkan nilai c, selanjutnya hitung nilai z dengan cara sebagai berikut:

i : 6 dan j :91 a = S[i] = S[6] = 174 j = (j + a) mod 256 = (173 + 174) mod 256 = 91 S[i] = b = S[6] = 183 S[j] = a = S[91] = 91 Nilai c : 136 Mencari nilai z. 𝑧 =((S[(a+b)mod256]+S[((c ⊕170)mod 256)])⊕S[(j +b) mod256])mod 256 𝑧=((S[(174+183)mod256]+S[((136⊕170)mod256)])⊕S[ (91+183)mod256])mod256 𝑧 = ((S[(357) mod 256] + (136⊕170)mod 256)])⊕S[(274)mod 256]) mod 256 z = ((S[(101)+S[((136⊕170)mod 256)]) ⊕S[(18)mod 256]) mod 256 𝑧 =((S[101] + S[34]) ⊕ S[18]) mod 256 𝑧 =((66 + 245) ⊕ 11) mod 256 𝑧 =((311) ⊕ 11) mod 256 𝑧 =292 mod 256 z = 36

Nilai z ini akan menjadi nilai kunci [6] untuk mengekripsi plainteks.

Plainteks yang diamankan : DC3

Cipherteks [0] : 19 00010011

Kunci [0] : 36 00100100 ⊕

Plainteks [0] : 55 00110111 Plainteks [0] : 7 (dalam ASCII) Jadi hasil yang didapat adalah sebagai berikut : Cipherteks : [ 212, 154, 27, 46, 153, 19 ]

Cipherteks : [Ô, SCI, ESC, . , SGCI, DC3] (dalam ASCII)

Plainteks : [ N, O, N, I, 9, 7 ]

Plainteks : [ 78, 79, 78, 73, 57,55 ] (dalam ASCII) Berdasarkan hasil perhitungan keseluruhan proses enkripsi dan dekripsi pengujian secara manual dengan Ciphertext [Ô, SCI, ESC, . , SGCI, DC3] menjadi Plaintext [ N, O, N, I, 9, 7 ] dengan algoritma RC4+ menunjukkan hasil yang sesuai.

4. KESIMPULAN

Berdasarkan hasil penelitian dan evaluasi sebelumnya, maka diambil beberapa kesimpulan-kesimpulan. Adapun kesimpulan-kesimpulan tersebut adalah Pengamanan teks dengan algoritma RC4+ dapat mengamankan teks karena hasil dari enkripsi merupakn simbol-simbol yang tidak mudah dipahami oleh orang lain. Berdasarkan pengujian yang dilakukan algoritma RC4+ dapat diterapkan diaplikasi melalui proses enkripsi dan dekripsi dengan baik mulai plaintext yang digunakan maupun kunci yang sama dan menghasilkan ciphertext serta memenuhi syarat dari plaintext maupun ciphertext. Sehingga setelah diuji berhasil, jika tidak memenuhi syarat dan tidak menggunakan kunci yang sama yang telah ditentukan maka pada pengujiannya akan gagal. Penerapan steganografi DCS (Dynamic Cell Spreading) baik untuk mengamankan teks, karena citra yang disisipkan teks tidak menimbulkan perbedaan dalam citra sehingga orang lain tidak curiga adanya teks rahasia dalam citra tersebut.

REFERENCES

[1] K. K. Kriptografi And C. Transposition, “Analisa Dan Implementasi Kriptografi Pada Pesan Rahasia,” Vol. 3, No. 1, Pp. 1–11, 2017.

[2] A. Arif, P. Mandarani, M. T. Informatika, And D. T. Informatika, “Rekayasa Perangkat Lunak Kriptografi Menggunakan Algoritma Advanced Encryption Standard ( Aes ) 128 Bit Pada Sistem Keamanan Short Message Service ( Sms ) Berbasis,” Vol. 4, No. 1, 2016.

[3] H. Hasanah And N. A. Hasibuan, “Implementasi Agoritma Rc6 Untuk Keamanan Pesan Sms ( Short Massage Service ) Berbasis Android,” No. April, Pp. 111–115, 2017.

[4] B. Kaban And L. Aprilla, Teknik Super Enkripsi Menggunakan Algoritma Affine Cipher , One Time Pad Dan Rc4 + Dalam Pengamanan File Teks. 2018.

(12)

Hal: 232-243

And M. Metode, “Implementasi Steganografi Pada Citra Digital Dengan Menggunakan Metode Dynamic Cell Spreading,” No. 0911074, Pp. 1–8, 2014.

[6] H. Kharisma And S. Arief, “Triple Transposisi Dan Spread Spectrum Sebagai Metode Untuk Pengembangan Algoritme Steganografi,” Vol. 17, 2018.

[7] M. Ricky, F. A. Setyaningsih, And M. Dipenogoro, “Analisis Kompresi Steganography Pada Citra Digital Dengan Menggunakan Metode Least Significant Bit Berbasis Mobile,” Vol. 06, No. 03, 2018.

Gambar

Tabel 2. Larik 256 Byte Hasil Perhitungan Pengacakan  Tahap KSA  0  1  2  3  4  5  6  7  8  9  10  11  12  13  12 4  146  19  0  45  219  174  10 9  238  51  136  71  49  99  14  15  16  17  18  19  20  21  22  23  24  25  26  27  13 2  150  60  18 1  11

Referensi

Dokumen terkait

Melalui Pengumuman ini maka Penyelenggara Negara telah memenuhi kewajiban mengumumkan harta kekayaan sesuai dengan ketentuan Undang Undang Republik Indonesia Nomor

Pengaruh negatif dan signifikan dari komitmen organisasional terhadap turnover intention berarti apabila karyawan memiliki loyalitas, memiliki perasaan yang sulit

Narasumber yang dipilih penulis adalah dua orang perawat yang telah bekerja lebih dari lima tahun di Panti Lansia Santa Anna dan dua orang lansia yang tinggal di Panti Lansia Santa

Bank Syariah Mandiri (BSM) merupakan salah satu perbankan yang dalam sistem operasionalnya berdasarkan atas syariah. Sistem Syariah yang digunakan yaitu kecenderungan untuk

Melakukan diskusi cara menggunakan operasi hitung tambah, kurang, kali atau bagi dalam menyelesaikan masalah sehari-hari yang berkaitan dengan pecahan.  Menggunakan

Penelitian ini telah mengukur tekanan darah pada penderita hipertensi di PSTW unit Abiyoso tahun 2012 yang diadakan pada kelompok eksperimen yang diberikan jus tomat selama 7

Hexc adalah medan yang dihasilkan oleh kumparan eksitasi, Ho medan eksternal, Iexc arus yang dialirkan ke kumparan eksitasi, Nexc jumlah lilitan eksitasi, Npc

Sehingga apabila sepanjang mengenai kepastian hukum anak sah maka diatur dalam Pasal 250 Burgelijk Wetboek voor Indonesie (BW) atau yang dikenal juga dengan Kitab