• Tidak ada hasil yang ditemukan

Implementasi Modified LSB (Least Significant Bit) dan Algoritma DES (Data Encryption Standard) Pada Pengamanan Data Text

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Modified LSB (Least Significant Bit) dan Algoritma DES (Data Encryption Standard) Pada Pengamanan Data Text"

Copied!
98
0
0

Teks penuh

(1)

LISTING PROGRAM

private void button1_Click(object sender, EventArgs e) { start the python program with two parameters

p.Start(); // start the process (the python program) StreamReader s = p.StandardOutput;

(2)

string[] r = output.Split(new char[] { ' ' }); // get the

private void button3_Click(object sender, EventArgs e) {

plainText.Text.Replace(' ', '_') + " " + ekskey.Text;// start the python program with two parameters

waktupenyisipan = Convert.ToInt32(total.TotalMilliseconds); MessageBox.Show("Waktu enkripsi adalah: " + waktupenyisipan + " ms.");

}

(3)

StreamReader objReader = new

private void button5_Click(object sender, EventArgs e) {

private void button14_Click_1(object sender, EventArgs e) { start the python program with two parameters

(4)

StreamReader s = p.StandardOutput;

private void button12_Click_1(object sender, EventArgs e) { eksdek.Text;// start the python program with two parameters

p.Start(); // start the process (the python program)

waktupenyisipan = Convert.ToInt32(total.TotalMilliseconds); MessageBox.Show("Waktu dekripsi adalah: " + waktupenyisipan + " ms.");

}

(5)

p.StartInfo.UseShellExecute = false; // make sure we can read the output from stdout

p.StartInfo.Arguments = "imgPadding.py " + imgPath + " " + ekskey.Text + " " + plainText.Text.Replace(' ', '_');// start the python program with two parameters

pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage; pictureBox2.Image = image;

fs.Close();

akhir = DateTime.Now; total = akhir - awal;

waktupenyisipan = Convert.ToInt32(total.TotalMilliseconds); MessageBox.Show("Pesan Berhasil disisipkan!", "Informasi!", MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("Waktu penyisipan adalah: " + waktupenyisipan + " ms.");

p.Close(); }

private void button10_Click(object sender, EventArgs e) {

(6)

p.StartInfo.Arguments = "imgExtractMsg.py " + imgPath;// start the python program with two parameters

p.Start(); // start the process (the python program)

waktupenyisipan = Convert.ToInt32(total.TotalMilliseconds); MessageBox.Show("Pesan berhasil diekstrak!", "Informasi!", MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("Waktu ekstrsi adalah: " + waktupenyisipan + " ms.");

p.Close(); }

private void button1_Click_1(object sender, EventArgs e) {

private void label7_Click(object sender, EventArgs e) {

}

private void button2_Click_1(object sender, EventArgs e) {

(7)

def divide_side(message_bit): i = 0

left = "" right = ""

half_size = len(message_bit)/2; while (i < half_size):

(8)

ip = [58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7];

message_permutation_1 = "" for i in range(0, len(ip)):

message_permutation_1 += message[ip[i]-1]; return message_permutation_1

def e_bit(message):

(9)
(10)

ip_inv = [40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, 38,

# Get blue pixels from image for padding process def get_bluePx0(rgbaPx):

bluePx = []

for i in range (0, len(rgbaPx)): bluePx.append(rgbaPx[i][2]) return bluePx

# Get blue pixels from image to get padded message def get_bluePx1(rgbaPx):

(11)

plain_pixel[i] = temp return plain_pixel

def extract_bluePx(bluePx): msgBit = ''

for i in range(0, len(bluePx)):

bluePxList = list(bin(bluePx[i]).replace("0b", "")) msgBit += bluePxList[len(bluePxList)-1]

return msgBit

def create_png(imgPath, rgbaPx, imgName, msgLength): x = get_img_res(imgPath, 'height')# x -> height

key_bin_pc1 = get_key_plus_bit(key_bin) key_bin_div = divide_side(key_bin_pc1) c0 = key_bin_div[0]

d0 = key_bin_div[1] c = [c0]

d = [d0]

key_bin_c1_c16 = get_c1_to_c16(c, d) c0 = key_bin_c1_c16[0]

d0 = key_bin_c1_c16[1] key_bin_join = join(c0,d0)

key_bin_pc2 = get_key_plus_bit_2(key_bin_join) return key_bin_pc2

ip1 = message_permutation_1(message_bin)

(12)

rn = lnrn(key_bin_pc2, x, ln, rn)

join_e_m += encrypt_m(key_bin_pc2,message[i:i+8]) return join_e_m

def decrypt_m(key_bin_pc2, message_bin): ip1 = message_permutation_1(message_bin)

message_divide = divide_side(ip1) l0 = message_divide[0]

(13)

3. Internal_key.py from function import * import sys

#mengambil nilai dari argument ekskey.text key = sys.argv[1]

message = sys.argv[1].replace('_', ' '); key = sys.argv[2]

(14)

6. Dekripsi_pesan.py from function import * import binascii

import sys

key = sys.argv[2] imgPath = sys.argv[1]

key_bin_pc2 = get_key_bin(key) plainPx = get_img_px(imgPath) bluePx = get_bluePx1(plainPx) message = extract_bluePx(bluePx)

plain_bit = get_plain_message(key_bin_pc2, message) print bit_to_ascii(plain_bit)

7. ImgExtractMsg.py from function import * import sys

imgPath = sys.argv[1]

(15)

CURRICULUM VITAE

---

Data Pribadi

Nama : Hengky Prayson Fangaro Gulo

Tempat/Tanggal Lahir : Gunung Sitoli / 28 Agustus 1992

Tinggi/Berat Badan : 169 cm / 100 kg

Agama : Kristen Protestan

Kewarganegaraan : Indonesia

Alamat : Jl. Jahe 6 no.2 Perumnas Simalingkar Medan

Alamat Orang Tua : Jl. Jahe 6 no.2 Perumnas Simalingkar Medan

Telp/ Hp : 085362402072

Email : hengkygulo@gmail.com

---

Riwayat Pendidikan

[2010 – 2016] : S1 Ilmu Komputer Universitas Sumatera Utara, Medan [2007 – 2010] : SMK Negeri 9 Medan

[2004 – 2007] : SMP Negeri 10 Medan

(16)

---

Keahlian/Kursus

Keahlian Komputer Bahasa :

Pemrograman :Pyhton, C#, C++ English

Database : MySQL Indonesia

(17)

Daftar Pustaka

Anggraini, Siska.2012.Implementasi Sistem Keamanan Data Menggunakan Algoritma RSA dan Modified LSB.Skripsi.Universitas Sumatera Utara

Batten, Lynn M.2013.Public Key cryptography Applications and Attacks.IEEE press.USA

Gabriel,Stephen, Waweru, 2012, An enhanced Least Significant Bit Steganographic Method for Information Hiding, Journal of Information Engineering and Applications, Vol 2, No.9:1-11.

Kromodimoeljo, Sentot. 2010. Teori dan Aplikasi Kriptografi. SPK IT Consulting : Jakarta.

Kipper,Gregory.2004.Invetigator’s Guide To Steganography.A CRC Press Company.London

Kadir, A. & Susanto A. 2013. Teori dan Aplikasi Pengolahan Citra. Yogyakarta ANDI: Yogyakarta.

Mollin, Richard a. 2007. An Introduction To Cryptography 2nd. Chapman & Hall : London

Miano, John. 2004. Compressed image file formats : JPEG, PNG, GIF, XBM, BMP. Canada: ACM Press

Munir, Rinaldi. 2004. Pengolahan Citra. Bandung Penerbit Informatika

Schneier, Bruce. 1996. Applied Cryptography : Protocols, Algorithms, and Source Code in C. 2nd Edition. John Wiley & Sons, Inc: New Jersey.

Sadikin, Rifki. 2012. Kriptografi Untuk Keamanan Jaringan. Penerbit ANDI: Yogyakarta.

Vijayakumar. Soniya.2011. Image Steganography Based On Polynomial Functions. Journal of Global Research in Computer Science.Volume 2 no 3:13-15.

(18)

ANALISIS DAN PERANCANGAN

3.1. Analisis Sistem

Analisis sistem merupakan fase awal pada pengembangan sistem yang bertujuan untuk memahami dan mempelajari masalah yang akan diselesaikan oleh suatu sistem. Dan juga untuk merancang sistem sesuai dengan kebutuhan pengguna (user). Dengan adanya analisis terhadap suatu sistem diharapkan agar suatu sistem atau apilkasi dapat berjalan dengan baik dan sesuai dengan kebutuhan.

3.1.1. Analisis Masalah

Masalah yang akan diselesaikan pada penelitian ini adalah bagaimana cara meningkatkan keamanan dan melindungi suatu data dari pihak ketiga. Dan untuk meningkatkan keamanan suatu data maka diperlukan teknik pengamanan data yaitu dengan teknik kriptografi dan steganografi. Pada penelitian ini algoritma kriptografi yang digunakan adalah algoritma DES (Data Encryption Standard) dan teknik steganogarfi yang digunakan adalah metode LSB(Least Significant Bit) yang akan dimodifikasi.

(19)

Gambar 3.1. Diagram Ishikawa

Pada gambar 3.1. menunjukkan permasalahan yang terjadi. Permasalahan tersebut dapat dibagi 4 kategori yaitu manusia(Man), mesin(Machine), materi(Material), dan metode(Method).

3.1.2. Analisis Persyaratan

Analisis persyaratan sistem dikelompokkan ke dalam dua kategori yaitu, analisis persyaratan fungsional dan analisis persyaratan non-fungsional. Persyaratan fungsional berisi persyaratan pokok dari suatu sistem dimana persyaratan tersebut wajib ada atau disediakan dalam sistem tersebut. Sedangkan persyaratan non-fungsional berupa persyaratan tambahan yang dapat menunjang kinerja dari persyaratan fungsional.

3.1.2.1. Persyaratan Fungsional

Persyaratan fungsional dari sistem yang akan dirancang adalah sebagai berikut. 1. Plaintext yang dienkripsi adalah data text berformat *.TXT

2. Citra digital yang digunakan untuk penyisipan pesan adalah file dengan format *.PNG

3. Kunci eksternal 64 bit atau 8 karakter 4. Hasil enkripsi akan berbentuk biner

5. Citra digital yang disisipkan disimpan dalam format *.PNG

(20)

3.1.2.2. Persyaratan Non-Fungsional

Adapun persyaratan non-fungsional pada sistem ini adalah sebagai berikut : 1. Performa

Sistem yang dibangun harus dapat menunjukkan hasil dari proses enkripsi dan penyisipan pesan menggunakan algoritma DES (Data Encryption Standard)

dan Modified LSB (Least Significant Bit).Dan pesan tersebut dapat diekstraksi kembali dari citra penampung.

2. Mudah dipelajari dan digunakan

Sistem dibangun sederhana agar mudah digunakan dan dipelajari oleh pengguna (user).

3. Hemat biaya

Perangkat lunak yang dibangun tidak memerlukan peralatan tambahan ataupun perangkat pendukung dalam proses eksekusinya.

4. Dokumentasi

Perangkat lunak yang akan dibangun mampu menyimpan citra digital disisipkan pesan dan dapat menyimpan pesan yang diekstraksi kembali.

5. Manajemen kualitas

Perangkat lunak yang akan dibangun harus memiliki kualitas yang baik yaitu proses enkripsi dan penyisipan pesan relatif cepat. Begitu juga saat proses ekstraksi pesan dan dekripsi

6. Kontrol

Perangkat lunak harus mampu memanajemen proses error yang terjadi pada saat penggunaan.

3.1.3. Analisis Proses

(21)

eksternal sebesar 64 bit atau 8 karakter. Dari kunci eksternal akan didapat 16 kunci internal yang berfungsi untuk mengenkripsi dan mendekripsikan pesan, dan masing-masing kunci internal sebesar 56 bit. Pesan yang telah diinputkan akan dienkripsi menggunakan kunci internal dan akan menghasilkan ciphertext dalam bentuk biner. Setelah enkripsi, ciphertext akan disisipkan pada citra asli berformat *.PNG.

Citra hasil penyisipan akan disimpan dalam bentuk citra stego yang berformat *.PNG, dan kemudian akan dikirim kepada penerima pesan. Untuk mengetahui pesan yang terlah disisipkan maka pesan yang sudah disisipkan harus diekstrasikan dan kemudian didekripsi untuk mendapat pesan teks yang utuh.

3.2. Perancangan Sistem

Perancangan sistem merupakan tahapan yang dilakukan setelah tahap analisis sistem.

Adapun perancangan sistem yang dilakukan adalah perancangan flowchart, kemudian dilanjutkan dengan pembuatan diagram Unified Modeling Language (UML) dari sistem.

3.2.1. Perancangan Flowchart Aplikasi

Pada bagian ini akan dijelaskan langkah-langkah pembuatan aplikasi dalam flowchart

sistem kemudian akan dijabarkan dalam bagian-bagian flowchart algoritma.

Flowchart di dalam sistem diantaranya:

3.2.1.1 Flowchart Pembangkitan Kunci

(22)

permutasi kembali dengan tabel 2.3. PC-2. Dari hasil permutasi tersebut, kita akan mendapat 16 kunci internal yang masing-masing sebesar 56 bit.

Gambar 3.2. Flowchart Pembangkitan Kunci

3.2.1.2. Flowchart Enkripsi Algoritma DES (Data Encryption Standard)

Pada proses ini, plaintext akan dienkripsi sehingga menjadi ciphertext. Algoritma yang digunakan untuk mengenkripsi pesan adalah algoritma DES. Hal yang pertama yang harus dilakukan adalah membangkitkan kunci internal yang kemudian menginput plaintext. Plaintext yang sudah diinputkan akan diubah menjadi pesan

start

Kunci Eksternal (Biner) Input Kunci

Permutasi PC-1

C0 D0

Left Shift bit

C1D1,C2D2,....C16D16

Permutasi PC-2

K1,....K16

(23)

biner, dan kemudian mengalami permutasi dengan tabel 2.4 tabel IP. Dan kemudian pesan dibagi menjadi dua bagian L0R0. Dan kemudian bagian R0 akan ditambah jumlah bitnya dengan menggunakan tabel 2.5. tabel ekspansi. R0 akan di XOR kan dengan Kn (kunci internal) dan menghasilkan B1,….,B8. Setelah mendapatkan Bn, maka proses selanjutnya adalah mensubtitusikan Bn dengan tabel 2.6. tabel S-Box. Dan kemudian dilanjutkan dengan permutasi tabel 2.7. tabel P. Proses terakhir enkripsi ialah dengan melakukan permutasi terakhir pada R16L16 dengan menggukan tabel 2.8. tabel IP-1.

Gambar 3.3. Flowchart Enkripsi

3.2.1.3. Flowchart Penyisipan Modified LSB (Least Significant Bi)

(24)

Hasil enkripsi pesan akan disisipkan pada citra digital yang mempunyai 24 bit kedalaman warna. Pada penyisipan pesan, metode yang digunakan adalah Modified LSB (Least Significant Bit). Pesan akan disisipkan pada salah satu warna dari warna RGB (Red, Green, Blue) yaitu warna biru (Blue), pesan akan disisipkan pada bit terendah yang ada pada warna biru (Blue).

Gambar 3.4. Flowchart Penyisipan Pesan

3.2.1.4 Flowchart Ekstrasi Pesan

start

Input Cover Image

Ambil Nilai Biru setiap

pixel

Ubah ke biner

nilai biner biru

Input Ciphertext

Penyisipan dengan LSB

Stego Image

(25)

Untuk mengekstrasi pesan, maka pertama yang harus diinput adalah stego image atau citra yang telah disisipkan pesan. Setelah citra stego diinput maka sistem akan membaca nilai setiap pixel citra stego.

Gambar 3.5. Flowchart Ekstrasi Pesan

3.2.1.5. Flowchart Dekripsi DES (Data Encypstion Standard)

Untuk dekripsi pesan dengan algoritma DES (Data Encryption Standard), hampir sama dengan alur untuk mengenkripsi pesan. Proses dekripsi pesan DES merupakan kebalikan dari proses enkripsi pesan, dengan menggunakan kunci eksternal yang sama. Tetapi yang berbeda ialah blok masukkan proses, kalau pada proses enkripsi blok masukkan adalah L0R0 maka untuk dekripsi blok masukkan awal adalah R16L16.

Start

Input Stego Image

Ambil Nilai Biru setiap

pixel

Ubah ke biner

Ciphertext

(26)

Gambar 3.6. Flowchart Dekripsi Pesan Start

Input Ciphertext (Biner)

Ubah ke Ascii Permutasi

dengan IP

Ln Rn

Ekspansi Rn

dengan tabel E

E(Rn-1)

N=16

Kn XOR E(Rn-1)

B1,...,B8

Subtitusi B1...8

dengan S-Box Sn

Permutasi Sn

dengan tabel P

F(Kn + (Rn-1))

R1= L0 + F

(Kn + (Rn-1))

L0 R0

L0 R0

dipermutasikan dengan IP-1

Plaintext (Biner)

(27)

3.2.2. Perancangan Unified Modeling Language (UML)

Model diagram UML yang digunakan pada penelitian ini antara lain Use-case diagram, Sequence diagram, dan Activity diagram.

3.2.2.1 Use Case Diagram

Use Case berfungsi untuk menggambarkan langkah-langkah yang dapat dikerjakan oleh pengguna (user). Use case juga berfungsi untuk melihat interaksi pengguna dan sistem.

Gambar 3.7. Use Case Diagram Sistem

Pada gambar 3.7, pengguna memiliki peran sebagai pengirim dan penerima pesan. Untuk melakukan enkripsi pesan, pengirim terlebih dahulu membangkitkan kunci internal dengan cara menginputkan kunci eksternal. Kunci internal digunakan untuk mengenkripsi pesan plaintext. Ciphertext sebagai hasil enkripsi akan disisipkan pada citra asli (cover image). Citra stego merupakan citra hasil dari penyisipan

ciphertext ke citra asli (cover image).

Actor

SYSTEM

Enkripsi Penyisipan Pesan

Ekstrasi Pesan Dekripsi Pesan

<<D epends

On>>

<<Extends>>

<<Extends>> <<Extends>>

<< Exten

ds>>

(28)

Untuk melakukan dekripsi pesan, maka pengguna akan memerima pesan dalam bentuk citra untuk diekstrasi menjadi ciphertext. Kemudian ciphertext akan didekirpsikan menggunakan kunci eksternal yang sama.

Setiap use case diagram akan dijelaskan dengan dokumentasi naratif. Dokumentasi naratif pada proses pembangkitan kunci yang terdapat dalam use case

diagram dilihat pada Tabel 3.1

Tabel 3.1. Dokumentasi Naratif Use Case Bangkitkan kunci

Nama use case Pembangkitan Kunci

Aktor Pengguna

Deskripsi Use case berfungsi untuk membangkitkan kunci internal

Pre-condition -

Typical course of event

Aksi actor Respon sistem

Langkah 1: Pengguna

menginputkan kunci eksternal sebesar 64 bit atau 8 karakter

Langkah 2 : Pengguna

mengeksekusi tombol generate Langkah 3: Sistem

membangkitkan kunci Internal.

Langkah 4 : sistem

menampilkan kunci Internal

Alternate course - -

Post condition Kunci internal berhasil dibangkitkan.

(29)

Tabel 3.2 Dokumentasi Naratif Use Case Enkripsi Nama use case Enkripsi

Aktor Pengguna

Deskripsi Use case mendekripsikan proses enkripsi plaintext.

Pre-condition Kunci internal telah dibangkitkan

Typical course of event

Aksi actor Respon sistem

Langkah 1: Menginput

plaintext dengan menekan

button Cari

Langkah 3: Melakukan proses enkripsi dengan menekan button Enkripsi

Langkah 2: Sistem membaca inputan

plaintext.

Langkah 4: Sistem mengenkripsi

plaintext dan menghasilkan

ciphertext

Langkah 5: Sistem menampilkan

ciphertext.

Alternate course - -

Post condition Diperoleh ciphertext hasil enkripsi.

Dokumentasi naratif pada proses penyisipan ciphertext yang terdapat dalam

use case diagram dilihat pada Tabel 3.3

Tabel 3.3 Dokumentasi Naratif Use Case Penyisipan Nama use case Penyisipan

Aktor Pengguna

Deskripsi Use case mendekripsikan proses penyisipan ciphertext.

(30)

Typical course of event

Aksi actor Respon sistem

Langkah 1 : Menginputkan

citra asli

Langkah 3: Melakukan proses penyisipan dengan menekan button Penyisipan

Langkah 2: Sistem membaca nilai warna biru setiap pixel dan mengubahnya ke biner

Langkah 4: Sistem menyisipkan

ciphertext biner ke bit paling rendah pada warna biru.

Langkah 5: Sistem menyimpan citra stego.

Alternate course

Post condition Diperoleh citrastego yang telah disisipkan ciphertext.

Dokumentasi naratif pada proses ekstraksi ciphertext yang terdapat dalam use case diagram dilihat pada Tabel 3.4

Tabel 3.4 Dokumentasi Naratif Use Case Ekstraksi Nama use case Ekstraksi

Aktor Pengguna

Deskripsi Use case mendekripsikan proses ekstraksi ciphertext.

Pre-condition Citra stego telah disisipkan ciphertext.

Typical course of event

Aksi actor Respon sistem

Langkah 1 : Menginputkan

(31)

Langkah 3: Melakukan proses ekstraksi dengan

menekan button Ekstraksi Langkah 4: Sistem mengekstraksi

ciphertext di bit paling rendah dari warna biru

Langkah 5: Sistem menampilkan

ciphertext

Alternate course - -

Post condition Diperoleh ciphertext yang akan didekripsi

Dokumentasi naratif pada proses dekripsi ciphertext yang terdapat dalam use case diagram dilihat pada Tabel 3.5

Tabel 3.5 Dokumentasi Naratif Use Case Dekripsi Nama use case Dekripsi

Aktor Pengguna

Deskripsi Use case mendekripsikan proses dekripsi ciphertext.

Pre-condition Ciphertext telah diekstraksi dari citra stego.

Typical course of event

Aksi actor Respon sistem

Langkah 1 : Menginputkan kunci eksternal yang sama dengan kunci eksternal enkripsi

(32)

Langkah 5: Melakukan dekripsi dengan menekan

button Dekripsi.

Langkah 3 : sistem menampilkan kunci internal

Langkah 4 : sistem menampilkan

ciphertext

Langkah 6: Sistem mendekripsi

ciphertext menjadi plaintext.

Alternate course - -

Post condition Diperoleh plaintext hasil dekripsi

3.2.2.2. Sequence Diagram

Sequence diagram digunakan untuk menggambarkan skenario atau rangkaian

langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output

tertentu. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Garis berpanah penuh menunjukan input yang dilakukan pengguna terhadap sistem, sedangkan garis putus-putus menunjukan output yang dihasilkan oleh sistem.

Activation bar menunjukkan periode waktu proses diilakukan, sebuah activation bar

dimiliki oleh setiap input dan output yang terjadi. Sequence diagram pada sistem ini terbagi dua: gambar 3.8 merupakan sequence diagram enkripsi dan penyisipan

plaintext, sedangkan gambar 3.9 merupakan sequence diagram ekstraksi dan dekripsi

(33)

Pembangkitan kunci Enkripsi Penyisipan

user

input eksternal key Tampilkan eksternal key Bangkitkan internal key

Tampilkan internal Key

input plaintext tampilkan plaintext

enkripsi plaintext tampilkan ciphertext

Import citra tampilkan citra

penyisipan pesan tampilkan stego image

simpan stego image stego image.bmp

(34)

Pembangkitan kunci ekstrasi Dekripsi

user

input eksternal key

Tampilkan eksternal key

Bangkitkan internal key

Tampilkan internal Key

import stego image

tampilkan stego image

ektrasi ciphertext

tampilkan ciphertext

Dekripsi ciphertext

tampilkan plaintext

(35)

3.2.2.3. Activity Diagram

Activity diagram menggambarkan alir aktivitas dalam sistem yang dirancang,

bagaimana awal alir sistem, decision yang mungkin terjadi, dan bagaimana sistem berakhir. Nodes bulat berwarna hitam menunjukkan awal proses sedangkan nodes

bulat berwarna hitam ditengah menunjukkan akhir proses. Activity diagram pada sistem ini terbagi dua: gambar 3.10 merupakan activity diagram enkripsi dan penyisipan plaintext, sedangkan gambar 3.11 merupakan activity diagram ekstraksi dan dekripsi ciphertext.

Gambar 3.9. Activity diagram enkripsi dan penyisipan

pengguna sistem

input kunci tampilkan kunci

bangkitkan kunci internal tampilkan kunci internal

input plaintext tampilkan plaintext

enkripsi plaintext

tampilkan ciphertext import citra

tampilkan file citra sisipkan pesan

proses penyisipan pesan

tampilkan stego image simpan stego image

meyimpan stego image .png

(36)

Gambar 3.10. Activity diagram ekstraksi dan dekripsi

3.2.3. Perancangan User Interface

Adapun perancangan User Interface yang dilakukan yaitu perancangan form home, perancangan form enkripsi dan perancangan form dekripsi.

3.2.3.1 Perancangan Interface Form Home

Pada saat aplikasi dijalankan, form yang pertama kali dilihat oleh user adalah form home. Adapun rancangan interface form home dapat dilihat pada gambar 3.11.

pengguna sistem

input kunci tampilkan kunci

bangkitkan kunci internal tampilkan kunci internal

tampilkan plaintext dekripsi ciphertext tampilkan ciphertext

ekstrasi pesan proses ekstrasi pesan tampilkan stego image input stego image

(37)

Gambar 3.12. Tampilan Form Home

Keterangan:

1. Tab control yang berfungsi untuk menampilkan tab page home.

2. Tab control yang berfungsi untuk menampilkan tab page enkripsi.

3. Tab control yang berfungsi untuk menampilkan tab page dekripsi.

4. Label yang berisi judul skripsi penulis. 5. Label yang berisi nama penulis.

6. Label yang berisi logo.

3.2.3.2 Perancangan Interface Form Enkripsi

Pada form enkripsi, user dapat menginputkan kunci eksternal, plaintext yang akan di enkripsikan dan citra yang akan disisipkan setelah pesan selesai dienkripsi. Adapun rancangan interface form enkripsi dapat dillihat pada gambar 3.12

(38)

Keterangan

1. Button yang berfungsi untuk mengambil atau mencari file citra

2. Button yang berfungsi untuk mereset semua yang ada di form enkripsi

3. Picturebox yang berfungsi untuk menampilkan citra yang akan disisipkan

4. Textbox yang berfungsi untuk menampilkan ekternal key

5. Button yang berfungsi untuk membangkitkan kunci

6. Richtextbox yang berfungsi untuk menampilkan kunci internal

7. Button yang berfungsi untuk mencari atau mengambil file text 8. Richtextbox yang berfungsi menampilkan pesan atau plaintext

9. Button yang berfungsi mengenkripsi pesan atau plaintext

10. Richtextbox yang berfungsi untuk menampilkan ciphertext dalam bentuk biner 11. Button yang berfunsi untuk menyisipkan pesan cipher ke dalam citra

12. Picturebox yang berfungsi untuk menampilkan citra yang telah disispkan pesan

3.2.3.3 Perancangan Interface Form Dekripsi

Pada form dekripsi, user dapat menginputkan kunci eksternal, citra yang sudah disisipkan pesan,mengekstrasikan pesan dan mendekripsikan pesan. Adapun rancangan interface form enkripsi dapat dillihat pada gambar 3.13

(39)

Keterangan :

1. Textbox yang berfungsi untuk menampilkan ekternal key

2. Button yang berfungsi untuk membangkitkan kunci

3. Richtextbox yang berfungsi untuk menampilkan kunci internal

4. Button yang berfungsi untuk mencari citra

5. Picturebox yang berfungsi untuk menampilkan citra 6. Button yang berfungsi untuk mengambil pesan dari citra

7. Button yang berfungsi untuk mereset semua yang ada dalam form dekripsi

8. Richtextbox yang berfungsi untuk menampilkan cipher bit

(40)

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi Sistem

Setelah melakukan analisis dan perancangan sistem, tahap selanjutnya adalah implementasi. Sistem ini menggunakan dua bahasa pemrograman yaitu bahasa pemrograman Python dan bahasa pemrograman C# . Intergrated Development

Environment (IDE) yang digunakan adalah Wing IDE untuk bahasa pemrograman

python dan Microsoft Visual Studio Ultimate 2012 untuk C#.

Spesifikasi perangkat keras yang digunakan untuk pembangunan dan pengujian sistem ini adalah sebagai berikut:

Tabel 4.1 Spesifikasi Kebutuhan Perangkat Keras untuk Implementasi Spesifikasi Komputer

CPU : Intel Core i3 RAM : 6 Giga Byte Hard Disk : 600 Giga Byte Monitor : 14”

Sistem Operasi : Windows 7 Home Premium

4.1.1 Form Home

(41)

Gambar 4.1 Form Home

4.1.2 Form Enkripsi

Pada form enkripsi, user dapat menginputkan kunci eksternal, citra, dan plaintext. Pertama user harus menginputkan citra yang akan disisipkan pesan. Setelah citra berhasil diinputkan kemudian user harus menginputkan kunci eksternal untuk dibangkitkan. Setelah kunci internal didapat dari hasil pembangkitan kunci maka user dapat menginputkan plaintext. Plaintext akan dienkripsi dengan algoritma DES (Data Encryption Staqndard), maka akan dihasilkan pesan cipher dalam bentuk bit. Kemudian pesan yang berbentuk cipher bit tersebut akan disisipkan pada citra yang telah diinputkan tadi. Gambar 4.2 merupakan tampilan dari form enkripsi.

(42)

4.1.3 Form Dekripsi

Pada form dekripsi ini, user dapat mengektrasi pesan dari citra yang telah disisipkan pesan dan mendekripsikan pesan cipher bit menjadi plaintext atau pesan asli. Yang dapat dilakukan user pada form dekripsi adalah user harus menginputkan kunci eksternal yang sama dengan kunci eksternal pada proses enkripsi. Kemudian user menginputkan citra yang telah disisipkan pesan dan mengektrasikan pesan tersebut menjadi pesan cipher bit. Setelah pesan cipher bit didapat maka user dapat mendekripsikan pesan tersebut menjadi plaintext atau pesan yang asli. Pada gambar 4.3 adalah tamipilan form dekripsi.

Gambar 4.3 Form Dekripsi

4.2 Pengujian Sistem

(43)

4.2.1 Proses Pembangkitan Kunci Internal

Pada proses pembangkitan kunci internal, user harus menginputkan kunci eksternal sebesar 64 bit atau 8 karakter. Kunci eksternal akan menghasilkan 16 buah kunci internal dan masing-masing kunci internal memiliki ukuran yang sama yaitu 56 bit. Kunci eksternal yang akan digunakan adalah ”clairine”. Kunci eksternal harus diubah ke dalam bentuk biner. Berikut proses pembangkitan kunci internal.

Kunci eksternal : clairine

Ubah kunci eksternal kedalam benttuk biner

clairine = 01100011 01101100 01100001 01101001 01110010 01101001 01101110 01100101

a. Permutasi kunci

Untuk mendapat kunci K, maka kunci eksternal yang dalam bentuk biner harus mengalami permutasi dengan menggunakan tabel 2.1 permuted choice-1. Cara menggunakan tabel 2.1 permuted choice adalah dengan cara mengganti posisi bit. Misalkan kolom 1 baris 1 pada tabel 2.1 permuted choice-1 adalah 57, artinya bit ke 57 dari kunci eksternal akan menjadi bit pertama pada kunci K. Pada tahap ini bit yang kelipatan 8 tidak akan digunakan, seperti bit ke 8,16,24,32,40,48,56 dan 64. Kunci eksternal

01100011 01101100 01100001 01101001 01110010 01101001 01101110 01100101 K

00000000 11111111 11111111 00010101 00011100 00100110 10100000

b. Pembagian Kunci

Setelah mendapat kunci K sebesar 56 bit, maka kunci K akan dibagi dua untuk menghasilkan C0 dan D0

C0 = 0000 0000 1111 1111 1111 1111 0001 D0 = 0101 0001 1100 0010 0110 1010 0000

c. Pembuatan 16 Kunci Internal

Pada tahap ini C0 dan D0 masing-masing bit pertamanya akan digeser dengan

(44)

Tabel 4.2 Hasil Pergeseran bit Putaran Jumlah pergeseran bit Cn Dn

0 0 0000000011111111111111110001

0101000111000010011010100000

1 1 0000000111111111111111100010

1010001110000100110101000000

2 1 0000001111111111111111000100

0100011100001001101010000001

3 2 0000111111111111111100010000

0001110000100110101000000101

4 2 0011111111111111110001000000

0111000010011010100000010100

5 2 1111111111111111000100000000

1100001001101010000001010001

6 2 1111111111111100010000000011

0000100110101000000101000111

7 2 1111111111110001000000001111

0010011010100000010100011100

8 2 1111111111000100000000111111

1001101010000001010001110000

9 1 1111111110001000000001111111

0011010100000010100011100001

10 2 1111111000100000000111111111

1101010000001010001110000100

11 2 1111100010000000011111111111

0101000000101000111000010011

12 2 1110001000000001111111111111

0100000010100011100001001101

13 2 1000100000000111111111111111

0000001010001110000100110101

14 2 0010000000011111111111111110

(45)

15 2 1000000001111111111111111000 0010100011100001001101010000

16 1 0000000011111111111111110001

0101000111000010011010100000

d. Permutasi Kunci Internal

Pada tahap ini Cn dan Dn akan digabungkan dan akan dipermutasikan kembali menggunakan tabel 2.3 Permuted choice-2 dan akan menghasilkan 16 kunci K+ atau kunci internal.

Tabel 4.3 Kunci K+ atau Kunci Internal 16 Kunci K+n

K+1 = '111000001011111001101110001100000101000000111110',

K+2 = '111000001011011011110110100010100100110110000100',

K+3 = '111101001101011001110110000010000110001110010001',

K+4 = '111001101101001101110010111100110100000000000001', K+5 = '101011101101001101110111110000100000001100001010',

K+6 = '101011110101001101011011100101000011001100001100',

K+7 = '001011110101001111111001011100000001001011100000',

K+8 = '100111110101100111011001010100001010100000101011',

K+9 = '000111110100100111011011001000001100010110001101', K+10 = '001111110110100110011101100010100001010010000011',

K+11 = '000111110010110110001101110011100100001100100001',

K+12 = '010110110010110010111101000100100100101101001000',

K+13 = '110111011010110010101100110100001001000100010000',

K+14 = '110100101010111010101110110000010010011000101000',

K+15 = '111110001011111000100110011110000011101000001000',

(46)

4.2.2 Proses Enkripsi

Pada proses enkrispi, user harus menginputkan plaintext atau pesan. Pesan yang telah diinputkan akan diubah kedalam bentuk pesan biner M, dan proses enkripsi akan diulang sebanyak 16 kali sehingga akan didapat R16L16 yang akan menjadi cipher bit. Plaintext = toshibao

M = 01110100 01101111 01110011 01101000 01101001 01100010 01100001 01101111

Sebelum pesan M dienkripsi, pesan M akan dipermutasikan menggunakan tabel 2.4 initial permutation. Cara menggunakan tabel 2.4 initial permtation yaitu dengan cara mengganti posisi bit pada pesan M. Misalkan kolom 1 baris 1 pada tabel 2.4 initial permutation adalah 58, artinya bit ke 58 pada pesan M akan menjadi bit pertama pada pesan IP.

IP = 11111111 00000101 10000011 11010110 00000000 11111111 10011010 10100110

Pesan IP kemudian akan dibagi dua menjadi L0 = 11111111 00000101 10000011 11010110 R0 = 00000000 11111111 10011010 10100110

Lakukan proses iterasi sebanyak 16 kali dengan :

Ln = Rn – 1

Rn = Ln – 1 + f(Rn-1, K+n)

Diman n = 1. Untuk fungsi f , fungsi f akan dihasilkan dari proses perhitungan 2 blok bit yaitu Rn-1 dan K+n.

Untuk proses enkripsi selanjutnya, blok Rn-1 akan diubah dari 32 bit menjadi 48 bit dengan menggunkan tabel 2.5 Tabel ekspansi dimana n=1, cara menggunakan tabel ekspansi adalah dengan mengganti posisi bit dan akan mengulangi beberapa bagian bit.

R0 = 00000000 11111111 10011010 10100110

(47)

Selanjutnya E(R0) akan di XOR kan dengan K+1.

K+1 = 11100000 10111110 01101110 00110000 01010000 00111110 E(R0) = 00000000 00010111 11111111 11001111 01010101 00001100

f(K+1,E(R0)) = 111000 001010 100110 010001 111111 110000 010100 110010

Setelah mendapat f , selanjutnya f akan dibagi 8 blok bit masing-masing blok bit berisi 6 bit. Dimana setiap blok bit akan disubtitusikan dengan tabel 2.6 Tabel Substitution Box DES menurut urutan blok bit, misalkan blok bit pertama akan disubstitusikan dengan S1 dan seterusnya sampai blok ke 8.

f = S1(111000) S2(001010) S3(100110) S4(010001) S5(111111) S6(110000)

S7(010100) S8(110010)

Cara menggunakan tabel 2.6 Tabel Substitution Box DES adalah bit pertama dan bit terakhir pada blok bit akan digabungkan dan akan menjadi penunjuk baris sedangkan bit yang berada pada tengah blok akan menjadi penunjuk posisi kolom.

S1(111000) bit pertama = 1, bit terakhir = 0, bit tengah = 1100. Jadi baris 10 diubah ke desimal menjadi baris 2, kolom 1100 diubah ke desimal menjadi kolom 12. Nilai yang ada pada baris 2 kolom 12 adalah 3 jika dibinerkan adalah 0011.

S2(001010) bit pertama = , bit terakhir = 0, bit tengah = 0101. Jadi baris 00 diubah ke desimal menjadi baris 0, kolom 0101 diubah ke desimal menjadi kolom 5. Nilai yang ada pada baris 0 kolom 5 adalah 11 jika dibinerkan adalah 1011.

S3(100110) bit pertama = 1, bit terakhir = 0, bit tengah = 0011. Jadi baris 10 diubah ke desimal menjadi baris 2, kolom 0011 diubah ke desimal menjadi kolom 3. Nilai

yang ada pada baris 2 kolom 3 adalah 9 jika dibinerkan adalah 1001.

S4(010001) bit pertama = 0, bit terakhir = 1, bit tengah = 1000. Jadi baris 01 diubah ke desimal menjadi baris 1, kolom 1000 diubah ke desimal menjadi kolom 8. Nilai yang ada pada baris 1 kolom 8 adalah 4 jika dibinerkan adalah 0100.

(48)

S6(110000) bit pertama = 1, bit terakhir = 0, bit tengah = 1000. Jadi baris 10 diubah ke desimal menjadi baris 2, kolom 1000 diubah ke desimal menjadi kolom 8. Nilai yang ada pada baris 2 kolom 8 adalah 7 jika dibinerkan adalah 0111.

S7(010100) bit pertama = 0, bit terakhir = 0, bit tengah = 1010. Jadi baris 00 diubah ke desimal menjadi baris 0, kolom 1010 diubah ke desimal menjadi kolom 10. Nilai yang ada pada baris 0 kolom 10 adalah 9 jika dibinerkan adalah 1001.

S8(110010) bit pertama = 1, bit terakhir = 0, bit tengah = 1001. Jadi baris 10 diubah ke desimal menjadi baris 2, kolom 1001 diubah ke desimal menjadi kolom 9. Nilai yang ada pada baris 2 kolom 9 adalah 6 jika dibinerkan adalah 0110.

Nilai f setelah disubtitusikan dengan tabel 2.6 tabel Substitution Box DES adalah

f = 0011 1011 1001 0100 0011 0111 1001 0110

Setelah mendapat nilai f, maka f akan dipermutasikan dengan tabel 2.7 Tabel Permutasi. Cara penggunaan tabel 2.7 tabel permutasi adalah mengganti posisi bit f, misalkan pada kolom 1 baris 1 menunjukkan 16, maka bit ke 16 dari f akan menjadi bit pertama setelah dipermutasikan.

f = 0110 0110 0010 1010 0111 0011 1010 1011

Setelah mendapat nilai f , maka nilai R1 akan didapat. Sehingga

R1 = L0 + f (R0 , K1 )

R1 = 1111 1111 0000 0101 1000 0011 1101 0110 + 0110 0110 0010 1010 0111 0011

1010 1011

R1 = 1001 1001 0010 1111 1111 0000 0111 1101

Dari proses enkripsi ini akan didapat nilai R1L1, dimana nilai L1 sama dengan nilai R0.

R1 = 1001 1001 0010 1111 1111 0000 0111 1101

(49)

Proses enkripsi DES akan terus berulang sebanyak 16 kali dengan menggunkan 16 kunci internal dimana nilai n akan dimulai dari 1 (n = 1). Berikut adalah hasil dari proses enkripsi yang akan ditunjukkan pada tabel 4.4 Hasil Proses Iterasi Enkripsi.

Tabel 4.4 Hasil Proses Iterasi Enkripsi

n Rn Ln

0 00000000111111111001101010100110 11111111000001011000001111010110

1 10011001001011111111000001111101 00000000111111111001101010100110 2 00011101100010001001010001100011 10011001001011111111000001111101

3 11010010010011010100111101101110 00011101100010001001010001100011

4 01100000000001000100000110010010 11010010010011010100111101101110

5 11010010001010100111100110111010 01100000000001000100000110010010

6 11000001011010111110110110001100 11010010001010100111100110111010 7 01110001000100011100001101100110 11000001011010111110110110001100

8 10100001000001010110010100100101 01110001000100011100001101100110

9 00000111101000011111010001011101 10100001000001010110010100100101

10 00100100011000101101101011101111 00000111101000011111010001011101 11 01001110000100110011100111010000 00100100011000101101101011101111

12 00111001100100101001001110100010 01001110000100110011100111010000

13 00101111111100011100011001010111 00111001100100101001001110100010

14 01001101001001101111000000010011 00101111111100011100011001010111

15 10101101010110111110000011000001 01001101001001101111000000010011 16 00111111101101100000111110010010 10101101010110111110000011000001

Langkah selanjutnya adalah menggabungkan bit-bit R16 dan L16 menjadi satu.

R16 L16 = 00111111 10110110 00001111 10010010 10101101 01011011 11100000 11000001

Langkah terakhir dari proses enkripsi adalah R16L16 akan mengalami permutasi kembali dengan menggunakan tabel 2.8 tabel Initial Permutation -1.

(50)

C = 11100110 01110101 11010100 11100100 01110001 11011000 00101010 10011011

Jadi C adalah hasil dari proses enkripsi pesan dalam bentuk biner dengan menggunakan algoritma DES (Data Encryption Standard).

4.2.3 Proses Deskripsi

Untuk proses dekripsi pesan, inputannya adalah kebalikan dari input proses enkripsi pesan. Dimana input awalnya adalah pesan C. Untuk langah awal proses dekripsinya pesan C juga akan dibagi dua tetapi untuk blok awalannya adalah R16 dan L16. Dan untuk kunci dekripsinya juga adalah kunci ekternal yang sama dengan kunci eksternal untuk proses enkripsi. Pada proses dekripsi nilai n sama dengan 16 (n = 16). Jadi kunci internal yang digunakan juga akan dimulai dari K+16. Semua langkah-langkah

proses dekripsi pesan sama dengan langkah-langkah proses enkripsi.

C = 11100110 01110101 11010100 11100100 01110001 11011000 00101010 10011011

Permutasikan pesan C menggunakan tabel 2.4 tabel Initial Permutation.

C = 11100110 01110101 11010100 11100100 01110001 11011000 00101010 10011011

IP = 00111111 10110110 00001111 10010010 10101101 01011011 11100000 11000001

Pesan IP akan dibagi dua masing- masing berukuran 32 bit

L0 = 00111111 10110110 00001111 10010010

R0 = 10101101 01011011 11100000 11000001

c. Iterasi

(51)

Ln = Rn – 1

Rn = Ln – 1 + f(Rn-1, K+n)

Diman n = 1. Untuk fungsi f , fungsi f akan dihasilkan dari proses perhitungan 2 blok bit yaitu Rn-1 dan K+n melalui 4 tahapan proses yaitu :

Proses ekspansi akan menggunakan tabel 2.5 tabel ekspansi. R0 = 10101101 01011011 11100000 11000001

E(R0) = 11010101 10101010 11110111 11110000 00010110 00000011

XOR Bit

K+16 = '111100011011111000100110000110101000010000100101'

E(R0) = 11010101 10101010 11110111 11110000 00010110 00000011

f(K+16,E(R0)) = 00100100 00010100 11010001 11101010 10010010 00100110

Setelah mendapat f , selanjutnya f akan dibagi 8 blok bit masing-masing blok bit berisi 6 bit. Dimana setiap blok bit akan disubtitusikan dengan tabel 2.6 Tabel Substitution Box DES menurut urutan blok bit, misalkan blok bit pertama akan disubstitusikan dengan S1 dan seterusnya sampai blok ke 8.

f = S1(001001) S2(000001) S3(010011) S4(010001) S5(111010) S6(101001) S7(001000) S8(100110)

Setelah disubtitusikan maka nilai f adalah

f = 1110 0011 1000 0100 0011 1001 1111 0001

1. Proses Permutasi

Setelah mendapat nilai f, maka f akan dipermutasikan dengan tabel 2.7 Tabel Permutasi. Maka nilai f setelah dipermutasikan adalah

f = 0111 0010 1001 0000 1111 1111 1000 0001

Setelah mendapat nilai f , maka nilai R16 akan didapat. Sehingga

(52)

R16 = 10101101 01011011 11100000 11000001 + 01110010 1001000011111111 10000001

R16 = 01001101 00100110 11110000 00010011

Dari proses iterasi dekripsi ini maka didapat nilai R16 dan L16

R16 = 01001101 00100110 11110000 00010011

L16 = 10101101 01011011 11100000 11000001

Berikut adalah hasil dari proses iterasi dekripsi yang akan ditunjukkan pada tabel 4.5 Hasil Proses Iterasi Dekripsi.

Tabel 4.5 Hasil Iterasi Dekripsi

n Rn Ln

16 01001101001001101111000000010011 10101101010110111110000011000001

15 00101111111100011100011001010111 01001101001001101111000000010011

14 00111001100100101001001110100010 00101111111100011100011001010111 13 01001110000100110011100111010000 00111001100100101001001110100010

12 00100100011000101101101011101111 01001110000100110011100111010000

11 00000111101000011111010001011101 00100100011000101101101011101111

10 10100001000001010110010100100101 00000111101000011111010001011101

9 01110001000100011100001101100110 10100001000001010110010100100101 8 11000001011010111110110110001100 01110001000100011100001101100110

7 11010010001010100111100110111010 11000001011010111110110110001100

6 01100000000001000100000110010010 11010010001010100111100110111010

5 11010010010011010100111101101110 01100000000001000100000110010010

4 00011101100010001001010001100011 11010010010011010100111101101110 3 10011001001011111111000001111101 00011101100010001001010001100011

2 00000000111111111001101010100110 10011001001011111111000001111101

(53)

Langkah selanjutnya adalah menggabungkan bit-bit R1 dan L1 menjadi satu.

R1L1 = 11111111 00000101 10000011 11010110 00000000 11111111 10011010 10100110

Langkah terakhir dari proses enkripsi adalah R1L1 akan mengalami permutasi kembali dengan menggunakan tabel 2.8 tabel Initial Permutation -1.

R1L1 = 11111111 00000101 10000011 11010110 00000000 11111111 10011010 10100110

M = 01110100 01101111 01110011 01101000 01101001 01100010 01100001 01101111

Jadi M adalah hasil dari proses Dekripsi pesan dalam bentuk biner dengan menggunakan algoritma DES (Data Encryption Standard). Dan menghasilkan

plaintext= ”toshibao”

4.2.4 Proses Penyisipan

Pada proses penyisipan pesan, pesan akan disisipkan pada salah satu warna dari citra digital yang telah diinput. Warna yang disisipkan pesan adalah warna biru (blue). Pesan akan disisipkan pada bit terendah dari warna biru. Misalkan kita mempunyai nilai 3 buah pixel dengan format RGB yang telah dirubah ke bentuk biner untuk meyisipkan pesan “010” pada salah satu warna RGB dalam hal ini warna yang akan disisipkan pesan adalah warna Biru (Blue)

ͳͲͲͳͲͳͲͳ ͲͲͲͲͳͳͲͳ ͳͳͲͲͳͲͲͳ ͳͲͲͳͲͳͳͲ ͲͲͲͲͳͳͳͳ ͳͳͲͲͳͲͳͳ ͳͲͲͳͳͳͳͳ ͲͲͲͳͲͲͲͲ ͳͳͲͲͳͲͳͳ

Bit yang disisipkan pesan adalah bit terendah dari warna biru(Blue) yaitu posisi matriks (1,3), (2,3), (3,3) dan menghsailkan perubahan

(54)

Dikarenakan bit yang mengalami perubahan hanya satu warna yaitu warna biru(Blue) maka dibutuhkan cover image yang mempunyai ukuran yang besar dan pesan yang disisipkan akan terbatas.

4.3 Hasil Pengujian

4.3.1 Pengujian Enkripsi Plaintext dan Dekripsi Ciphertext

Setelah mendapat kunci internal, kemudian pesan harus diinputkan untuk dilakukan proses enkripsi. Pesan yang akan digunakan adalah file berformat *.txt. Panjang pesan tidak ditentukan. Berikut beberapa pesan yang akan dienkrispi dapat dilihat pada tabel 4.6.

Tabel 4.6 Hasil Enkripsi Pesan

Kunci Plaintext (*.txt)

(55)

0100010000110100

Untuk proses pendekripsian pesan, cipher bit yang telah didapat akan didekripsikan dengan kunci yang sama pada saat proses enkripsi pesan. Tabel 4.7 akan menunjukkan

(56)

Tabel 4.7 Hasil Dekripsi Pesan

Kunci Cipher Bit Plaintext Waktu

(57)

111000110000000000011100101011 111000100111111011111110011011 011011010100100101111100100110 010111100010100100110010011001 101101101101110101000000111010 010010000101010010110010100001 001100110110000011110100111001 110110000110111100111001101110 110101001001011000110111000100 010100101000010100100010111001 110110010100011010101000010011 001101011111110011001101011111 1011010111

4.3.2 Perbandingan waktu Enkripsi dan Dekripsi

Pada pengujian ini, akan dilakukan terhadap waktu proses enkripsi dan proses dekripsi dengan jumlah panjang karakter pesan.

Tabel 4.8 Perbandingan Waktu Enkripsi dan Dekripsi

Panjang Plaintext (karakter)

Panjang cipher bit

Waktu enkripsi (ms) Waktu Dekripsi (ms)

27 236 92 365

32 256 110 518

80 640 117 902

(58)

Gambar 4.4 Grafik Perbandingan Waktu Enkripsi dan Dekripsi

Dari beberapa pengujian terhadap dekripsi pesan, untuk mendekripsikan pesan dibutuhkan waktu yang sedikit lama dibandingkan dengan proses enkripsi pesan.

4.3.3 Pengujian Penyisipan dan Ekstrasi Pesan

Setelah proses enkripsi pesan selesai, maka cipher bit akan disisipkan pada citra yang telah diinputkan dan berformat *.png. Cipher bit akan disisipkan pada salah warna dari setiap pixel, yaitu warna biru (blue). Cipher bit disisipkan pada bit terendah dari warna biru. Berikut cover image yang akan disisipkan pesan dan dapat dilihat pada tabel 4.9.

0 100 200 300 400 500 600 700 800 900 1000

27 karakter 32 karakter 80 karakter

w

a

k

tu

(

m

s)

panjang pesan (karakter)

enkripsi

(59)
(60)

Nama file :

FASILKOMTI.png Dimensions : 1063 x 1063 Ukuran : 524 kb

Nama file :

PaddedImage3.png

Dimensions : 1063 x 1063 Ukuran : 543 kb

Dari beberapa pengujian dapat dilihat bahwa jumlah karakter pada setiap pesan akan mempengaruhi waktu untuk mengenkrispi suatu pesan. Sedangkan untuk citra asli dan citra stego yang telah disisipkan cipher bit terlihat tidak ada perbedaan secara kasat mata, dimensi citra sebelum dan setelah disisipkan pesan juga tidak berubah walaupun ukuran citra sebelum dan setelah disisipkan pesan sedikit berbeda namun tidak telalu jauh perbedaan ukuran citranya. Dan semakin banyak jumlah pesan yang disisipkan maka semakin lama juga waktu penyisipan pesan. Sedangkan untuk proses ekstrasi pesan dilakukan sebelum proses dekripsi pesan dilakukan. Lama waktu ekstrasi juga dapat dipengaruhi oleh panjang cipher bit yang telah disisipkan pada citra asli.

Tabel 4.10 Proses Ekstrasi Pesan

Citra Stego Cipher Bit Waktu

(61)
(62)

Pada proses ekstrasi pesan, waktu yang dibutuhkan untuk ekstrasi pesan hanya sedikit dibandingkan dengan proses penyisipan pesan yang membutuhkan waktu sedikit lama. Kemudian Pada gambar 4.5 akan menunjukkan grafik lama waktu penyisipan pesan dan ekstrasi pesan.

Gambar 4.5 Grafik Perbandingan Waktu Penyisipan dan Ekstrasi

Pada gambar 4.5 menunjukkan bahwa waktu yang dibutuhkan untuk proses penyisipan pesan lebih lama dibandingkan dengan proses ekstrasi pesan dikarenakan bit-bit pada proses penyisipan mengalami perubahan sehingga citra kembali disusun menjadi satu citra baru.

0 1000 2000 3000 4000 5000

236 256 640

w

a

k

tu

(

m

s)

panjang cipher bit

ekstrasi

(63)

BAB V

KESIMPULAN DAN SARAN

5.1 KESIMPULAN

Berdasarkan pembahasan dan hasil dari penelitian, maka diperoleh beberapa kesimpulan sebagai berikut:

1. Implementasi Modified LSB (Least Significant Bit) dan Algoritma DES (Data

Encrypstion Standard) dapat digunakan untuk mengamankan data berupa teks. 2. Semakin panjang pesan yang akan dienkripsi maka semakin lama juga proses

enkripsi dan begitu juga dengan proses dekripsi, semakin panjang pesan maka

semakin lama juga proses dekripsi

3. Untuk penyisipan pesan, semakin panjang jumlah pesan yang akan disisipkan maka ukuran dimensi citra yang akan digunakan juga semakin besar

4. Pesan yang disembunyikan Modified LSB (Least Significant Bit) lebih terjaga dikarenakan pesan hanya akan disisipkan pada bit terendah dari salah satu warna yang terdapat pada citra.

(64)

5.2 SARAN

Berikut beberapa saran untuk pengembangan sistem ini:

1. File yang dapat dienkripsi bukan hanya file berformat *.txt melainkan dapat juga mengenkripsi dengan format lain seperti *.doc dan *.docx

2. Pada pengujian ini, citra yang digunakan hanya citra berformat *.png. Dan untuk selanjutnya file citra yang digunakan bukan hanya *.png melainkan *.jpeg, *.gif dan sebagainya

(65)

TINJAUAN PUSTAKA

2.1.Kriptografi

Kriptografi (cryprography) berasal dari bahasa Yunani : “cryptos” artinya “secret

(rahasia), sedangkan “graphein” artinya “writing” (tulisan). Jadi, kriptografi berarti

secret writing” (tulisan rahasia). Pesan asli biasanya disebut plaintext sedangkan pesan yang disembunyikan disebut ciphertext (Mollin,2007).

Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak

menggunakan suatu kunci enkripsi menjadi sesuatu yang suit dibaca oeh seseorang

yang tidak memiliki kunci dekripsi. Dekripsi menggunakan kunci dekripsi

mendapatkan kembali data asli. Proses enkripsi dilakukan menggunakan algoritma

dengan beberapa parameter. Biasanya algoritma tidak dirahasikan, tetapi rahasinya

terletak pada parameter yang digunakan. Jadi kunci ditentukan oleh parameter dan

parameter yang menentukan kunci dekripsi. Dalam kriptografi klasik, teknik enkripsi

yang digunakan adalah enkripsi simetris dimana kunci enkripsi sama dengan kunci

dekripsi. Untuk kriptografi kunci publik, diperlukan teknik enkripsi asimetris dimana

kunci dekripsi tidak sama dengan kunci enkripsi. Enkripsi, dekripsi dan pembuatan

kunci untuk teknik enkripsi asimetris memerlukan komputasi yang lebih intensif

dibandingkan enkripsi simetris, karena enkripsi asimetris menggunakan bilangan -

bilangan yang sangat besar (Kromodimoeljo,2010).

Menurut Schneier (1996), dalam pemenuhan kerahasiaan, kriptografi sering

digunakan untuk :

1. Authentication. Memungkinkan penerima pesan menegaskan keaslian dari data

(66)

2. Integrity. Memungkinkan penerima pesan memeriksa bahwa data tersebut

tidak dimodifikasi selama pengiriman; penyusup tidak dapat mengganti pesan

yang salah dengan yang asli.

3. Non-repudiation. Pengirim tidak dapat menyangkal telah melakukan

pengiriman.

2.1.1. Kriptografi Simetri

Algoritma simetri juga sering disebut algoritma klasik, dimana untuk melakukan

proses enkripsi dan dekripsi dapat menggunakan kunci yang sama. Sistem algoritma

simetri merupakan sistem dekripsin yang mana adalah hasil dari pembalikkan dari

enkripsi yang digunakan. Jadi untuk menggunakan algoritma simetri, pengirim dan

penerima pesan harus menggunakan kunci yang sama (Batten,2013).

Algoritma simetris, biasanya disebut juga sebagai algoritma konvensional,

merupakan algoritma dimana kunci enkripsi dapat dihitung dari kunci dekripsi dan

sebaliknya. Algoritma ini, disebut juga algoritma kunci-privat (secret-key), algoritma

kunci-tunggal (single-key), algoritma satu kunci (one-key), dimana pengirim dan

penerima sepakat dengan sebuah kunci sebelum berkomunikasi dengan aman.

Keamanan algoritma simetris terletak pada kunci. Algoritma simetri dapat dibagi dua,

yaitu stream chipher dan block chipher (Schneier, 1996). Proses algoritma simetri

dapat dilihat pada gambar 1.

Gambar 2.1. Kriptografi Simetri

Menurut Schneier (1996), enkripsi dan dekripsi dengan menggunakan

algoritma simetris disimbolkan dengan:

EK (M) = C………..(1)

DK (C) = M …………...(2)

Plaintext Enkripsi Dekripsi Plaintext

Kunci

(67)

Berdasarkan rumus (1), M adalah plaintext, C adalah Ciphertext, Ek adalah algoritma

enkripsi dan pada rumus (2) Dk adalah algoritma dekripsi.

2.1.2 Kriptografi Asimetri

Algoritma asimetri sering juga disebut algoritma kunci public. Algoritma ini

dirancang sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci yang

digunakan untuk dekripsi. Pada algortima ini, kunci enkripsi disebut kunci public

sedangkan untuk kunci dekripsi disebut kunci private(Scheiner, 1996).

Enkripsi menggunakan kunci publik K disimbolkan :

EK (M) = C………..(3)

Walaupun kunci publik dan kunci privat berbeda, dekripsi dengan kunci privat yang

cocok disimbolkan dengan :

DK (C) = M………(4)

Keterangan :

E = Fungsi enkripsi

D = Fungsi dekripsi

C = Cipherteks

M = Pesan (Message) atau plainteks

2.2. DES (Data Encryption Standard)

DES (Data Encryption Standard) dirancang oleh tim IBM yang dipimpin Horst

Feistel dengan bantuan dari NSA(National Security Agency) (Kromodimoeljo,2010).

Pada tahun 1970, penelitian tentang kriptografi tidak boleh dilakukan secara

sembarangan. Hampir semua dokumen di bidang kriptografi tidak diterbitkan. Pada

tahun itu semua orang tahu bahwa pihak militer menggunakan sandi dalam

berkomunikasi, tetapi hanya sebagian kecil yang mengerti tentang

(68)

DES pertama kali dipublikasikan di Federal Register pada 17 Maret 1975.

Setelah melalui banyak diskusi, akhirnya algortima DES diadopsi sebagai algoritma

standar yang digunakan oleh NBS (National Bureau of Standards) pada 15 Januari

1977. Sejak saat itu, DES banyak digunakan pada dunia penyebaran informasi untuk

melindungi data agar tidak bisa dibaca oleh orang lain.

DES adalah algoritma block cipher yang mengenkripsi blok sebesar 64 bit

plaintext. Panjang kunci DES adalah 64 bit, akan tetapi kunci efektif yang digunakan

untuk proses enkripsi hanya sebesar 56 bit saja dan 8 bit dari kunci digunakan sebagai

parity(Scheiner, 1996).

2.2.1 Pembangkitan Kunci

Awalnya kunci DES yang sebesar 64 bit akan diperkecil menjadi 56 bit dengan

mengabaikan setiap bit kedelapan pada kunci. Dengan menggunakan tabel 2.1

permuted choice-1, maka kunci 56 bit dapat dihasilkan. Setiap bit kedelapan

digunakan sebagai parity(Scheiner, 1996).

Tabel 2.1. Permuted Choice -1(Kromodimoeljo,2010)

57 49 41 33 25 17 9 1 58 50 42 34 26 18

10 2 59 51 43 35 27 19 11 3 60 52 44 36

63 55 47 39 31 23 15 7 62 54 46 38 30 22

14 6 61 53 45 37 29 21 13 5 28 20 12 4

Setelah mendapatkan kunci 56 bit, kunci 56 bit akan dibagi menjadi 2 masing-masing

berukuran 28 bit. Kemudian setiap bagian akan mengalami pergeseran bit tergantung

pada setiap putaran. Setiap putaran akan menggeser bit sebanyak 1 atau 2

(69)

Tabel 2.2. Jumlah Pergeseran Bit(Kromodimoeljo,2010)

Setelah pergeseran bit, maka 48 bit dari 56 bit akan dipilih. Tabel 2.3 akan melakukan

kompersi permutasi terhadap 56 bit untuk menghasilkan 48 bit, permutasi ini juga

disebut permutasi pilihan (Permuted choice)(Scheiner, 1996).

Tabel 2.3. Permuted Choice -2(Kromodimoeljo,2010)

putaran jumlah pergeseran

1 1

2 1

3 2

4 2

5 2

6 2

7 2

8 2

9 1

10 2

11 2

12 2

13 2

14 2

15 2

16 1

14 17 11 24 1 5 3 28 15 6 21 10

23 19 12 4 26 8 16 7 27 20 13 2

41 52 31 37 47 55 30 40 51 45 33 48

(70)

Contoh:

1. Kunci K sebesar 64 bit = 133457799BBCDFF1 diubah dalam bentuk biner

dengan masing-masing 8 bit setiap bloknya K=00010011 00110100 01010111

01111001 10011011 10111100 11011111 11110001

2. Kunci K yang mempunyai ukuran 64 bit, setelah melakukan permutasi maka K

akan diubah menjadi K+ yang mempunyai ukuran sebesar 56 bit.

K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111

0001111

3. Kunci K+ dapat dipisah menjadi dua bagian dengan ukuran 28 bit

C0 = 1111000 0110011 0010101 0101111

D0 = 0101010 1011001 1001111 0001111

4. Dari C0 dan D0, maka dapat dibuat 16 block Cn dan Dn, 1<=n<=16. Dari C0 dan

D0 dapat menghasilkan

C0 = 1111000011001100101010101111

D0 = 0101010101100110011110001111

C1 = 1110000110011001010101011111

D1 = 1010101011001100111100011110

Sampai dengan

C16 = 1111000011001100101010101111

D16 = 0101010101100110011110001111

5. Setelah mengalami pergeseran bit maka kunci K+1 diturunkan dari C1D1

sampai K+16 diturunkan dari C16D16 akan mengalami kompresi dengan

menggunakan tabel 2.3.

K1 = 000110 110000 001011 101111 111111 000111

000001 110010 sampai dengan

K16 = 110010 110011 110110 001011 000011 100001

(71)

2.2.2 Enkripsi Algoritma DES (Data Encryption Standard)

Sebelum putaran pertama, terhadap blok plaintext dilakukan permutasi awal. Misalnya

bit ke 58 dari plaintext akan menjadi bit ke 1 setelah mengalami permutasi

awal(Scheiner, 1996).

Tabel 2.4. Initial Permutation(Kromodimoeljo,2010)

58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4

62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8

57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3

61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7

Menurut (Scheiner, 1996) rumus enkripsi DES adalah

Ln = Rn – 1………..(5)

Rn = Ln– 1 + f(Rn-1, K1)…….(6)

dimana

Ln-1 adalah blok yang sedang giliran tidak dienkripsi,

+ adalah operasi exclusive or secara bitwise,

f adalah fungsi cipher yang akan dijelaskan,

Rn-1 adalah blok yang sedang giliran dienkripsi, dan

Kn adalah kunci untuk putaran n

Untuk fungsi f , blok Rn-1 harus diubah dari 32 bit menjadi 48 bit. Dengan

menggunakan tabel E, fungsi dari tabel E (ekspansi) adalah mengulangi beberapa

(72)

Tabel 2.5. Tabel Ekspansi(Grabbe,1998)

Untuk selanjutnya output dari E(Rn-1) akan di XOR dengan kunci K1, dengan

menggunakan rumus(Scheiner, 1996). :

Kn + E(Rn-1) =B1B2B3B4B5B6B7B8……..(7)

Setelah kunci di XOR dengan E(Rn-1), akan dilakukan subtitusi menggunakan

substitution box atau S-box. S-box harus memiliki inputan sebesar 6 bit dan hasil

output dari S-box sebesar 4 bit.

Dari rumus diatas maka akan menghasilkan 8 blok yang berukuran 6 bit

S1(B1) S2(B2) S3(B3) S4(B4) S5(B5) S6(B6) S(B7) S8 (B8)

Sebagai contoh, misalkan input untuk S-box 6 adalah 110011. Bit pertama dan bit

terakhir digabung sehingga menjadi 11 dan akan menjadi penunjuk baris pada S-box,

jadi 11 bila didesimalkan menjadi 3. Dan bit tengah 1001 akan menjadi penunjuk

kolom, jika didesimalkan maka menjadi 9. Jadi outpunya berada di baris ke 3 kolom 9

adalah 14 dan dibinerkan menjadi 1110(Scheiner, 1996).

32 1 2 3 4 5

4 5 6 7 8 9

8 9 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

(73)

Tabel 2.6. Tabel Substitution Box DES(Kromodimoeljo,2010)

S1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7

1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0

3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

S2

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10

1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5

2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15

3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

S3

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8

1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1

2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7

3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

S4

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15

1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9

2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4

3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

S5

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9

1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 16

2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14

3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

Gambar

Tabel 3.4 Dokumentasi Naratif Use Case Ekstraksi
Tabel 3.5 Dokumentasi Naratif Use Case Dekripsi
Gambar 3.8. Sequence diagram enkripsi dan penyisipan
Gambar 3.9. Sequence diagram Dekripsi dan Ekstrasi
+7

Referensi

Dokumen terkait

plaintext -nya. Berikut merupakan proses enkripsi dan dekripsi algoritma ElGamal, dimana diasumsikan Alice ingin mengirim pesan m kepada Bob, dan m € {0,1, ..., p-1} [7].

Algoritma asimetris atau kunci publik didesain sehingga kunci yang digunakan untuk enkripsi berbeda dengankunci untuk dekripsi dimana kunci untuk enkripsi tidak

Algoritma asimetris disebut juga dengan kriptografi kunci publik karena algortima ini memiliki kunci yang berbeda untuk enkripsi dan dekripsi, dimana enkripsi

Algoritma kriptografi Rijndael bersifat simetris itu artinya kunci yang digunakan pada saat enkripsi dan dekripsi sama, oleh sebab itu pengguna harus terlebih dahulu menyepakati

Lama waktu yang digunakan untuk proses enkripsi dan dekripsi file dengan algoritma kriptografi IDEA dan DES dengan mode operasi ECB dan CBC adalah relatif sama/tidak jauh

kapasitas pesan yang mampu ditampung file audio , kualitas suara yang dihasilkan. oleh file audio , serta akan dihitung waktu enkripsi dan dekripsi pesan teks,

Di tahap ini user yang menerima pesan dari pengirim diminta untuk memilih pesan, yang nantinya akan menampilkan form Extract Message , di mana form ini berisi

Salah satunya adalah metode algoritma kriptografi simteris, karena algoritma ini menggunakan kunci yang sama pada saat melakukan proses enkripsi dan dekripsi sehingga data