Implementasi Algoritma Blowfish Pada Aplikasi Enkripsi Dan Dekripsi Citra Berbasis Windows

(1)

CURRICULUM VITAE

Ahda Andi Ahda Andi ---

Data Pribadi

Nama : Ahda Andi Kurnia Tempat/Tanggal Lahir : Medan/27 Mei 1993 Tinggi/Berat Badan : 168 cm/58 kg

Agama : Islam

Kewarganegaraan : Indonesia

Alamat : Jl.Surya Haji Komp. Surya Indah No.43 Alamat Orang Tua : Jl.Surya Haji Komp. Surya Indah No.43 Telp/ Hp : 081260831254

Email : ahda.andi@gmail.com

--- Riwayat Pendidikan

[2010 – 2016] : S1 Ilmu Komputer Universitas Sumatera Utara, Medan [2006 – 2009] : SMA Islam Al Ulum Terpadu Medan

[2003 – 2006] : SMP Islam Al Ulum Terpadu Medan [1997 – 2003] : SD Pertiwi Medan

--- Keahlian/Kursus

Keahlian Komputer Bahasa :

Pemrograman : C# English

Database : MySQL Indonesia


(2)

--- Pengalaman Organisasi

[2013 - 2014] Anggota PEMA FASILKOM-TI USU 2013-2014 [2012 – 2013] Anggota IMILKOM 2012/2013

[2013 – 2014] Anggota IMILKOM 2013/ 2014

--- Pengalaman Kepanitiaan

[2012] Anggota Panitia PORSENI ILKOM [2013] Ketua Seminar Public Speaking

--- Seminar


(3)

LISTING PROGRAM

1. FORM MAIN MENU /*

* Created by SharpDevelop. * User: Excited

* Date: 2/16/2016 * Time: 7:11 PM *

* To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; namespace enkrip { /// <summary>

/// Description of MainForm. /// </summary>

public partial class MainForm : Form

{

public MainForm() {

//

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent();

//

// TODO: Add constructor code after the InitializeComponent() call. //

}

void Button3Click(object sender, EventArgs e) {


(4)

}

void Button1Click(object sender, EventArgs e) {

}

void ExitToolStripMenuItemClick(object sender, EventArgs e) {

Application.Exit(); }

void EnkripToolStripMenuItemClick(object sender, EventArgs e) {

enkrip pindah = new enkrip(); this.Hide();

pindah.ShowDialog(); }

void DekripToolStripMenuItemClick(object sender, EventArgs e) {

dekrip pindah = new dekrip(); this.Hide();

pindah.ShowDialog(); }

void AboutToolStripMenuItemClick(object sender, EventArgs e) {

about pindah = new about(); this.Hide();

pindah.ShowDialog(); }

void HomeToolStripMenuItemClick(object sender, EventArgs e) {

MainForm pindah = new MainForm(); this.Hide();

pindah.ShowDialog(); }


(5)

} } 2. FORM ENKRIPSI

/*

* Created by SharpDevelop. * User: Excited

* Date: 2/17/2016 * Time: 7:32 PM *

* To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Drawing; using System.Windows.Forms; using org.jivesoftware.util; namespace enkrip { /// <summary>

/// Description of enkrip. /// </summary>

public partial class enkrip : Form {

public enkrip() {

//

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent();

//

// TODO: Add constructor code after the InitializeComponent() call. //

}

void ExitToolStripMenuItemClick(object sender, EventArgs e) {


(6)

Application.Exit(); }

void HomeToolStripMenuItemClick(object sender, EventArgs e) {

MainForm pindah = new MainForm(); this.Hide();

pindah.ShowDialog(); }

void DekripToolStripMenuItemClick(object sender, EventArgs e) {

dekrip pindah = new dekrip(); this.Hide();

pindah.ShowDialog(); }

void AboutToolStripMenuItemClick(object sender, EventArgs e) {

about pindah = new about(); this.Hide();

pindah.ShowDialog(); }

void EnkripToolStripMenuItemClick(object sender, EventArgs e) {

enkrip pindah = new enkrip(); this.Hide();

pindah.ShowDialog(); }

void Button1Click(object sender, EventArgs e) {try

{

OpenFileDialog open = new OpenFileDialog(); open.Filter = "Image Files( *.bmp)|*.bmp"; if (open.ShowDialog() == DialogResult.OK) {

Bitmap bit = new Bitmap(open.FileName); if (bit.Height <= 600 && bit.Width <= 600)


(7)

{

pictureBox1.Image = bit; }

else

MessageBox.Show("Image Pixel must be 300x300 px", "Warning"); }

}

catch (Exception) {

throw new ApplicationException("Failed loading image"); }

}

void Button2Click(object sender, EventArgs e) {

Blowfish algo = new Blowfish(textBox1.Text); Bitmap image = new Bitmap(pictureBox1.Image); int isi = 0;

int xi = image.Width; int yi = image.Height; string redasli=""; string greenasli=""; string blueasli=""; for (int i = 0; i < yi; i++) {

for (int j = 0; j < xi; j++) {

redasli = redasli + (char)image.GetPixel(j,i).R; greenasli = greenasli + (char)image.GetPixel(j,i).G;

blueasli = blueasli + (char)image.GetPixel(j,i).B; }

}

string redenkrip = algo.encryptString(redasli); string greenenkrip = algo.encryptString(greenasli); string blueenkrip = algo.encryptString(blueasli); int ukurenkrip

= (int)Math.Ceiling((double)Math.Sqrt(redenkrip.Length)); Bitmap imagehasil = new Bitmap(ukurenkrip,ukurenkrip); double redf,greenf,bluef;


(8)

for (int i = 0; i < ukurenkrip; i++) {

for (int j = 0; j < ukurenkrip; j++) {

if(isi>redenkrip.Length-1) break;

redf = (double)redenkrip[isi]; greenf = (double)greenenkrip[isi]; bluef = (double)blueenkrip[isi];

imagehasil.SetPixel(j,i,Color.FromArgb(255,(int)redf,(int)greenf,(i nt)bluef));

redf=0;greenf=0;bluef=0;isi++; }

}

pictureBox2.Image = imagehasil;

/*richTextBox1.Text = redasli.Length.ToString(); richTextBox2.Text = greenasli.Length.ToString(); richTextBox3.Text = blueasli.Length.ToString(); richTextBox4.Text = redenkrip.Length.ToString(); richTextBox5.Text = greenenkrip.Length.ToString(); richTextBox6.Text = ukurenkrip.ToString();*/ MessageBox.Show("siap");

}

void Button3Click(object sender, EventArgs e) {

if ( pictureBox2.Image !=null) {

SaveFileDialog simpan = new SaveFileDialog(); simpan.Filter = "Image Files | *.bmp";

simpan.FileName = "*.bmp";

if (simpan.ShowDialog() == DialogResult.OK) {

pictureBox2.Image.Save(simpan.FileName, System.Drawing.Imagin g.ImageFormat.Bmp);


(9)

MessageBox.Show("Citra hasil telah

disimpan", "simpan", MessageBoxButtons.OK, MessageBoxIcon.Information); }

} else

{

MessageBox.Show("Citra hasill belum ada"); }

} } } 3. FORM DEKRIPSI

/*

* Created by SharpDevelop. * User: Excited

* Date: 2/17/2016 * Time: 7:33 PM *

* To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Drawing; using System.Windows.Forms; using org.jivesoftware.util; namespace enkrip { /// <summary>

/// Description of dekrip. /// </summary>

public partial class dekrip : Form {

public dekrip() {

//

// The InitializeComponent() call is required for Windows Forms designer support.


(10)

//

InitializeComponent();

//

// TODO: Add constructor code after the InitializeComponent() call.

// }

void ExitToolStripMenuItemClick(object sender, EventArgs e) {

Application.Exit(); }

void HomeToolStripMenuItemClick(object sender, EventArgs e) {

MainForm pindah = new MainForm(); this.Hide();

pindah.ShowDialog(); }

void AboutToolStripMenuItemClick(object sender, EventArgs e) {

about pindah = new about(); this.Hide();

pindah.ShowDialog(); }

void EnkripToolStripMenuItemClick(object sender, EventArgs e) {

enkrip pindah = new enkrip(); this.Hide();

pindah.ShowDialog(); }

void DekripToolStripMenuItemClick(object sender, EventArgs e) {

dekrip pindah = new dekrip(); this.Hide();


(11)

}

void Button1Click(object sender, EventArgs e) {

try {

OpenFileDialog open = new OpenFileDialog(); open.Filter = "Image Files( *.bmp)|*.bmp"; if (open.ShowDialog() == DialogResult.OK) {

Bitmap bit = new Bitmap(open.FileName); if (bit.Height <= 600 && bit.Width <= 600) {

pictureBox1.Image = bit; }

else

MessageBox.Show("Image Pixel must be 300x300 px", "Warning");

} }

catch (Exception) {

throw new ApplicationException("Failed loading image");

} }

void PictureBox1Click(object sender, EventArgs e) {

}

void Button2Click(object sender, EventArgs e) {

Blowfish algo = new Blowfish(textBox1.Text); Bitmap image = new Bitmap(pictureBox1.Image); int isi = 0;

int xi = image.Width; int yi = image.Height; string redasli="";


(12)

string greenasli=""; string blueasli=""; for (int i = 0; i < yi; i++) {

for (int j = 0; j < xi; j++) {

if(((char)image.GetPixel(j,i).R)!='\0') {

redasli = redasli + (char)image.GetPixel(j,i).R; greenasli = greenasli + (char)image.GetPixel(j,i).G;

blueasli = blueasli + (char)image.GetPixel(j,i).B; }

} }

string redenkrip = algo.decryptString(redasli); string greenenkrip = algo.decryptString(greenasli); string blueenkrip = algo.decryptString(blueasli); int ukurenkrip

= (int)Math.Ceiling((double)Math.Sqrt(redenkrip.Length)); Bitmap imagehasil = new Bitmap(ukurenkrip,ukurenkrip); double redf,greenf,bluef;

try {

for (int i = 0; i < ukurenkrip; i++) {

for (int j = 0; j < ukurenkrip; j++) {

if(isi>redenkrip.Length-1) break;

redf = (double)redenkrip[isi]; greenf = (double)greenenkrip[isi]; bluef = (double)blueenkrip[isi];

imagehasil.SetPixel(j,i,Color.FromArgb(255,(int)redf,(int)gr eenf,(int)bluef));

redf=0;greenf=0;bluef=0;isi++; }

}

pictureBox2.Image = imagehasil; } catch (Exception) {


(13)

}

//richTextBox4.Text = redenkrip.Length.ToString(); //richTextBox5.Text = greenenkrip.Length.ToString(); //richTextBox6.Text = ukurenkrip.ToString();

MessageBox.Show("siap");

}

void Button3Click(object sender, EventArgs e) {

if ( pictureBox2.Image !=null) {

SaveFileDialog simpan = new SaveFileDialog(); simpan.Filter = "Image Files | *.bmp";

simpan.FileName = "*.bmp";

if (simpan.ShowDialog() == DialogResult.OK) {

pictureBox2.Image.Save(simpan.FileName, System.Drawing. Imaging.ImageFormat.Bmp);

MessageBox.Show("Citra hasil telah

disimpan", "simpan", MessageBoxButtons.OK, MessageBoxIcon.Informat ion);

} } else

{

MessageBox.Show("Citra hasill belum ada"); }

} } }


(14)

4. Form About

/*

* Created by SharpDevelop. * User: Excited

* Date: 2/17/2016 * Time: 7:56 PM *

* To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Drawing; using System.Windows.Forms; namespace enkrip { /// <summary>

/// Description of about. /// </summary>

public partial class about : Form {

public about() {

//

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent();

//

// TODO: Add constructor code after the InitializeComponent() call.

// }

void ExitToolStripMenuItemClick(object sender, EventArgs e) {

Application.Exit(); }


(15)

void HomeToolStripMenuItemClick(object sender, EventArgs e) {

MainForm pindah = new MainForm(); this.Hide();

pindah.ShowDialog(); }

void AboutToolStripMenuItemClick(object sender, EventArgs e) {

about pindah = new about(); this.Hide();

pindah.ShowDialog(); }

void EnkripToolStripMenuItemClick(object sender, EventArgs e) {

enkrip pindah = new enkrip(); this.Hide();

pindah.ShowDialog(); }

void DekripToolStripMenuItemClick(object sender, EventArgs e) {

dekrip pindah = new dekrip(); this.Hide();

pindah.ShowDialog(); }

void PictureBox2Click(object sender, EventArgs e) {

} } }


(16)

Daftar Pustaka

Alam, M. Agus J. 2005. BelajarSendiriPemrograman Database Borland Delphi dalam SQL Server 7.0 & 2005.Elex Media Komputindo: Jakarta. Ariyus, Dony. 2007. Keamanan Multimedia. Yogyakarta :PenerbitAndi.

Ayushi. 2010. A Sysmetric Key Cryptographic Algorithm. International Journal of Computer Aplications.Volume 1-No.14.

Bruce Schneier (1994), http://www.schneier.com/paper-Blowfishfse. html Heriyanto, Tedi. 1999. PengenalanKriptografi. Yogyakarta :PenerbitAndi. Kadir, Abdul. 2013. TeoridanAplikasiPengolahan Citra. Yogyakarta :Penerbit ANDI. Kromodimoeljo, S. 2009. TeoridanAplikasiKriptografi. SPK IT Consulting: Jakarta.

Munir, Rinaldi. 2003. MatematikaDiskrit. Bandung, Indonesia :Penerbit Informatika Bandung.

Munir, Rinaldi. 2006. Kriptografi. Bandung: PenerbitInformatika.

Nugroho, Bunafit.2007.Konfigurasi danmanipulasi Registry Windows XP PT. Elex Media Komputindo : Jakarta.

Putra, Darma. 2010. Pengolahan Citra Digital. Yogyakarta :Penerbit ANDI. Rosen, K. H. 2012. Discrete Mathematics and Its Applications.7th Edition. McGraw-Hill: New York nding Cryptography. Springer-Verlag: Berlin Sadikin, R. 2012. KriptografiuntukKeamananJaringandanImplementasinya dalamBahasa Java. Andi Offset: Yogyakarta.

Schneier, B. 1997. Applied Cryptography, 2nd edition. New York: John-Wiley & Sons. Sharma, P., Gupta, A.K., danSherma, S. 2012.IntesifiedElGamal Cryptosystem (IEC).

Internatioanal Journal of Advences in Engineering and Technology. ISSN:2331- 1963.

Sutoyo, T., Mulyanto, E., Suhartono, V., Nurhayati, O.D. &Wijanarto.2009. TeoriPengolahan Citra Digital.ANDI : Yogyakarta.


(17)

Berisi tentang uraian analisis mengenai proses kerja dari metode Blowfish yang terdiri dari flowchart, pseudocode, Unified Modeling Language (UML) serta perancangan dari aplikasi.

3.1 Analisis Sistem

Analisis sistem terdiri dari tahap-tahap berbeda yang mendeskripsikan pengembangan sistem. Dalam analisis sistem terdiri atas tiga tahap analisis yaitu analisis masalah, analisis kebutuhan dan analisis proses. Analisis masalah bertujuan untuk memahami kelayakan masalah. Analisis kebutuhan dilakukan untuk menjelaskan fungsi-fungsi yang ditawarkan dan mampu dikerjakan sistem. Sedangkan analisis proses untuk memodelkan tingkah laku sistem.

3.1.1. Analisis Masalah

Saat ini keamanan informasi pada suatu gambar sangatlah rentan akan kebocoran oleh pihak ketiga yang ingin mengetahui informasi dari suatu gambar. Masalah utama didalam penelitian ini adalah bagaimana menerapkan algortima Blowfish dalam pengamanan gambar.

Masalah-masalah pada penelitian ini diidentifikasikan dengan menggunakan diagram Ishikawa. Diagram Ishikawa atau yang sering dikenal dengan cause and effect diagram adalah diagram yang digunakan untuk memahami dan mengidentifikasi serta menggambarkan beberapa masalah yang terjadi pada sistem dan akibat yang ditimbulkan oleh masalah.

Permasalahan pada penelitian ini secara umum dapat ditunjukkan pada diagram Ishikawa. Gambar 3.1.


(18)

Mengamankan data berupa pesan Teks dengan Kriptografi Mesin Material Manusia Metode Kriptografi Simetri Kriptografi Asimetri Pengirim dan Penerima Pihak Ketiga Memiliki rasa curiga dan

Ingin tahu

Data yang dikirim aman Proses Komputasi

Yang relatif lama Jalur Pengiriman

Tidak Aman

Kunci dapat diketahui Pihak Ketiga Lemahnya Pengamanan Kunci

Gambar 3.1 Diagram Ishikawa

Pada gambar 3.1, dapat disimpulkan bahwa permasalahannya adalah muncul rasa curiga atau ingin tahu dari pihak ketiga terhadap informasi pada sebuah gambar.

Solusi yang dapat ditawarkan adalah dengan merahasiakan gambar dengan menggunakan algortima Blowfish.

3.1.2. Analisis Kebutuhan

Didalam analisis kebutuhan ini terdapat dua kebutuhan yaitu kebutuhan fungsional dan kebutuhan non fungsional.

3.1.2.1. Kebutuhan Fungsional Sistem

Kebutuhan fungsional adalah menjelaskan proses-proses aktifitas yang dapat dilakukan oleh sistem dalam melakukan pelayanan yang dilakukan sistem dan kebutuhan yang harus dipenuhi oleh sistem, yaitu:

1. Fungsi Enkripsi

Pengguna dapat melakukan proses enkripsi gambar dari gambar asli menjadi gambar rahasia dengan memasukkan kunci enkripsi terlebih dahulu.

2. Fungsi Dekripsi

Pengguna Pengguna dapat melakukan proses dekripsi gambar dari gambar rahasia menjadi gambar asli dengan memasukkan kunci yang sama pada saat proses enkripsi.

Mengamankan gambar dengan kriptografi


(19)

3.1.2.2. Kebutuhan Non-Fungsional Sistem

Kebutuhan non-fungsional adalah mendeskripsikan fitur, karakteristik dan batasan lainnya seperti performa, penggunaan, model penyimpanan data, dokumentasi, kontrol, dan ekonomi. Terdapat beberapa hal yang menjadi syarat kebutuhan non-fungsional antara lain:

1. Performa

Aplikasi yang dibangun dapat menampilkan hasil dari fungsi kriptografi yang dilakukan oleh sistem.

2. Mudah dipelajari dan digunakan

Aplikasi yang dibangun harus sederhana dan user friendly agar mudah digunakan dan dipelajari oleh pengguna.

3. Dokumentasi

Aplikasi yang akan dibangun memiliki panduan penggunaan aplikasi. 4. Kontrol

Aplikasi yang akan dibangun memiliki pesan error jika pengguna tidak memasukkan data input tidak lengkap atau salah.

5. Ekonomi

Aplikasi yang dibangun tidak membutuhkan biaya dan perangkat tambahan. 3.1.3. Analisis Proses

Pada penelitian ini Aplikasi yang dibangun menggunakan algoritma Blowfish untuk melakukan proses enkripsi dan dekripsi gambar.

3.2 Pemodelan

Pemodelan sistem dilakukan untuk menunjukkan dan mendeskripsikan gambaran dari sistem yang akan dibangun. Pada penelitian ini dilakukan pemodelan dengan menggunakan UML untuk mendesain serta merancang sistem. UML adalah bahasa yang digunakan untuk memberikan penjelasan mengenai komponen-komponen untuk membangun sistem dan interaksi antar komponen sistem. Model UML yang digunakan dalam penelitian ini antara lain adalah use-case diagram, activity diagram serta sequance diagram.


(20)

3.2.1. Use-Case Diagram

Use-case Diagram adalah gambaran skenario penggunaan aplikasi sistem tentang bagaimana cara sistem bekerja dengan pengguna. Use-case Diagram membutuhkan identifikasi siapakah pengguna yang akan menggunakan sistem tersebut. Pengguna tersebut dinamakan actor. Actor berperan untuk melakukan komunikasi dengan sistem. Hubungan antar actor dengan use-case dihubungkan dengan garis lurus. Sedangkan hubungan dimana satu use-case digunakan untuk meredudansi use-case lainnya digunakan garis putus-putus dengan keterangan include. Untuk extend digunakan untuk mensimplifikasi satu use-case dengan use-case lainnya

Gambar 3.2 Use-Case Diagram

Pada gambar 3.2 terdapat actor yang mempunyai peran yaitu sebagai pengekripsi atau pendekrip. Sebelum melalukan proses enkripsi actor harus menginputkan gambar asli, dan sebelum melakukan proses dekripsi actor harus menginputkan gambar rahasia.


(21)

Tabel 3.1 Narrative Use-Case Enkripsi Gambar Use-case Name Enkripsi Gambar

Design Scope Sistem (black box)

Goal Level User-goal

Stakeholder and Interest

User dapat mengenkripsikan gambar untuk menjaga keamanan informasi dari gambar.

Precondition User menginputkan gambar dan kunci yang digunakan. Minimal Guarantee Sistem akan memberikan pesan error ketika enkripsi gambar

gagal.

Success Guarantee Sistem akan memberikan pesan enkripsi telah sukses. Trigger Pengguna menekan tombol enkripsi gambar.

Main Success Scenario

1. User menginputkan gambar yang akan dienkripsi 2. User memasukkan kunci dan menekan tombol enkripsi. 3. Sistem akan melakukan enkripsi gambar.

4. User dapat menyimpan gambar hasil enkripsi. Extensions 1. Kunci enkripsi tidak lengkap atau kosong.

a. Sistem akan memberikan pesan kepada pengirim untuk dilakukan cek ulang kembali input-an yang telah diberikan.

2. Gambar masih belum di inputkan.

a. Sistem akan memberikan pesan kepada pengirim untuk dilakukan cek ulang kembali input-an yang telah diberikan.

Berikut ini merupakan tabel narrative use-case yang dapat dilihat pada tabel 3.2 yang menjelaskan Narrative Use-Case Dekripsi Gambar.

Tabel 3.2 Narrative Use-Case Dekripsi Gambar Use-case Name Dekripsi Gambar

Design Scope Sistem (black box)

Goal Level User-goal

Stakeholder and Interest

User dapat mendekripsikan kembali gambar rahasia ke dalam bentuk gambar asli..


(22)

Precondition Gambar rahasia Blowfish

Minimal Guarantee Sistem akan memberikan pesan error ketika dekripsi gambar gagal.

Success Guarantee Sistem akan memberikan pesan dekripsi telah sukses. Trigger User dapat menekan tombol Dekripsi Gambar. Main Succes

Scenario 1. Pendkripsi memiliki kunci Blowfish

2. User mendekripsikan gambar rahasia menjadi gambar asli.

3. Sistem akan melakukan dekripsi gambar.

4. Sistem akan memberikan pesan bahwa dekripsi telah sukses.

5. Sistem akan menampilkan gambar asli 3.2.2. Sequence Diagram

Sequence Diagram berfungsi untuk menggambarkan rangkaian pesan yang akan dikirim antara object yang ada serta interaksi yang terjadi antar object. Berikut Sequence Diagram dari sistem yang dirancang dapat dilihat pada gambar 3.3 dan gambar 3.4.


(23)

Gambar 3.4 Diagram Sequence untuk Dekripsi

3.2.3. Activity Diagram

Pada activity diagram menggambarkan berbagai alur aktivitas yang ada di dalam sistem yang sedang dirancang dan bagaimana masing-masing alur yang ada berawal serta berakhir. Activity diagram juga bertujuan untuk membantu bagaimana memahami proses dan menggambarkan setiap interaksi yang ada antara beberapa use case yang digunakan. Activity diagram dari sistem dapat dilihat pada gambar 3.5.


(24)

Gambar 3.5 Activity Diagram

3.3. Flowchart Sistem

Flowchart merupakan diagram alir dari bagan-bagan tertentu yang memiliki arus penggambaran mengenai langkah-langkah penyelesaian suatu permasalahan. Selain itu, flowchart juga memiliki fungsi memudahkan proses pengecekan terhadap sistem yang akan dibuat.

3.3.1. Flowchart Enkripsi gambar dengan Algoritma Blowfish

Berikut adalah flowchart enkripsi gambar dari sistem yang dibangun dapat dilihat pada gambar 3.6


(25)

Gambar 3.6 Flowchart Enkripsi gambar dengan Algoritma Blowfish

3.3.2. Flowchart Dekripsi gambar

Berikut adalah flowchart dekripsi gambar dari sistem yang dibangun dapat dilihat pada gambar 3.7


(26)

Gambar 3.7 Flowchart dekripsi gambar dengan Algoritma Blowfish

3.4. Pseudocode Sistem

Pseudocode merupakan gambaran dari algoritma pemrograman komputer yang ada dimana menggunakan struktur sederhana dari bahasa pemrograman yang digunakan dan dapat dimengerti. Berikut merupakan pseudocode dari sistem yang dibangun.

3.4.1. Pseudocode Enkripsi Gambar dengan Algoritma Blowfish

(xL, xR) = X // Bagi X menjadi 2 bagian, 32-bit/bagian Loop on i from = 1 to 16 // Lakukan iterasi

xL = xL XOR Pi // XOR xL dgn Pi

xR = F(xL) XOR xR // XOR F(xL) dgn xR

Swap xL and xR // Tukar xL dgn xR

End of loop // Akhir looping

Swap xL and xR // Tukar kembali xL dgn xR xR = xR XOR P17 // XOR xR dgn P17 -> xR xL = xL XOR P18 // XOR xL dgn P18 -> xL


(27)

C = (xL, xR) // 64 bit gambar rahasia

3.4.2. Pseudocode Dekripsi Gambar dengan Algoritma Blowfish

(a, b, c, d) = xL // Bagi xL jadi 4 bagian, 8-bit/bagian

(e, f, g, h) = xR // Bagi xR jadi 4 bagian. 8-bit/bagian F(xL) = ((S1[a] + S2[b] mod 2^32) XOR S3[c]) + S[d] mod 2^32

F(xR) = ((S1[e] + S2[f] mod 2^32) XOR S3[g]) + S[h] mod 2^32

3.5. Perancangan Antarmuka

Perancangan antarmuka adalah desain awal dari tampilan sistem yang akan sistem dibangun. Antarmuka harus dirancang dengan memperhatikan faktor pengguna sehingga sistem yang dibangun dapat memberikan kenyamanan dan kemudahan untuk digunakan oleh pengguna. Sistem yang dibangun terdiri dari Halaman utama, Halaman enkripsi dan Halaman dekripsi. 3.5.1 Halaman Utama

Halaman Utama adalah tampilan awal dari sistem ini dijalankan. Gambar 3.8 menunjukkan tampilan sementara dari form utama.


(28)

Gambar 3.8 Rancangan Tampilan Halaman Utama

3.5.2 Halaman Enkripsi

Pada Halaman Enkrip ini, pengguna dapat melakukan proses enkripsi gambar yang akan dikirim ke penerima. Gambar 3.9 menunjukkan rancangan dari Halaman pengirim.

Home

JUDUL

Nama

NIM

LOGO


(29)

Gambar 3.9 Rancangan Tampilan Halaman Enkripsi Keterangan:

1) Tombol untuk menginputkan gambar asli untuk di enkripsi. 2) Menampilkan gambar yang asli sebelum di enkripsi.

3) Textbox untuk menginputkan kunci yang digunakan. 4) Tombol untuk melakukan proses enkripsi.

5) Menampilkan hasil gambar rahasia hasil dari proses enkripsi.

6) Tombol untuk menyimpan gambar rahasia hasil enkripsi untuk digunakan.

3.5.3 Halaman Dekripsi

Halaman Dekrip adalah halaman dimana pengguna dapat melakukan proses dekripsi gambar. Gambar 3.10 menunjukkan rancangan dari Halaman dekrip.

Enkrip

home enkrip dekrip about exit

Input Citra

Kunci :

Enkripsi Save

1

2 5

3 4


(30)

Gambar 3.10 Rancangan Tampilan Halaman Dekripsi Keterangan:

1) Tombol untuk menginputkan gambar rahasia untuk di dekripsi. 2) Menampilkan gambar rahasia sebelum di dekripsi.

3) Textbox untuk menginputkan kunci yang digunakan. 4) Tombol untuk melakukasn proses dekripsi.

5) Menampilkan gambar asli hasil dari proses dekripsi. 6) Tombol untuk menyimpan gambar hasil dekripsi. Dekrip

home enkrip dekrip about exit

Input Citra

Kunci :

Dekripsi Save

1

2 5

3 4


(31)

BAB IV

IMPLEMENTASI DAN PENGUJIAN

Pada tahap ini dilakukan pembuatan sistem sesuai dengan analisis dan perancangan. Kemudian melakukan pengujian sistem

4.1. Implementasi

Dalam tugas akhir ini, program dibangun menggunakan bahasa pemrograman Java. Program ini terdiri dari 4 Halaman utama, yaitu: Halaman menu utama, Halaman Enkrip gambar, Halaman Dekrip gambar, dan Halaman About

4.1.1. Halaman Menu Utama

Halaman utama adalah halaman yang pertama kali muncul apabila sistem dibuka. Terdapat tiga menu yang masing-masing mempunyai fungsinya.


(32)

4.1.2. Halaman Enkrip

Halaman Enkrip adalah halaman yang berguna untuk menjadikan gambar asli ke gambar yang dirahasiakan/disamarkan. Sehingga gambar tersebut menjadi gambar rahasia yang bisa disimpan untuk digunakan sebagai gambar yang sudah terenkripsi.

Gambar 4.2. Halaman Enkrip

4.1.3. Halaman Dekrip

Halaman Dekrip adalah halaman yang berguna untuk menjadikan gambar dirahasiakan/disamarkan ke gambar yang asli. Sehingga gambar tersebut menjadi gambar asli yang bisa disimpan untuk digunakan sebagai gambar yang sudah terdekripsi.


(33)

Gambar 4.3. Halaman Dekrip

4.1.3. Halaman About

Halaman About adalah halaman informasi dan biodata dari penulis yang melakukan penelitian ini. Yang berisi profil dan latar belakang penulis.


(34)

Gambar 4.4. Halaman About

4.2. Pengujian

4.2.1. Pengujian Enkripsi

Pengujian ini dilakukan untuk mengetahui pengaruh panjang kunci yang digunakan terhadap lama enkripsi algoritma Blowfish.


(35)

Tabel 4.1. Hasil Pengujian Enkripsi dengan Variasi Panjang kunci

No Panjang kunci(byte) Resolusi (pixel)

Waktu (detik)

1. 4 50x50 0.506

2. 8 50x50 0.512

3. 16 50x50 0.550

4. 32 50x50 0.590

5. 64 50x50 0.603

Gambar 4.5. Grafik Pengujian Enkripsi terhadap panjang kunci

Berdasarkan tabel 4.1 dan gambar 4.5 dapat dilihat bahwa lama waktu dalam melakukan proses enkripsi sesuai dengan panjang kunci yang digunakan.


(36)

Tabel 4.2. Hasil Pengujian Enkripsi dengan Variasi Resolusi Citra

No Resolusi (pixel)

Panjang kunci (byte)

Waktu (detik)

1. 200 x 200 4 2.019

2. 400 x 400 4 44.284

3. 600 x 600 4 228.996

4. 800 x 800 4 743.701

5. 1000 x 1000 4 1843.097


(37)

Berdasarkan tabel 4.2 dan gambar 4.6 dapat dilihat bahwa lama waktu dalam melakukan proses enkripsi berbanding lurus dengan resolusi citra yang digunakan.

4.2.2. Pengujian Dekripsi

Pengujian dekripsi dilakukan untuk mengetahui pengaruh panjang kunci yang digunakan terhadap lama proses dekripsi algoritma Blowfish.

Tabel 4.3. Hasil Pengujian Dekripsi dengan Variasi Panjang Kunci

No Panjang kunci(byte) Resolusi (pixel)

Waktu (detik)

1. 4 50x50 0.465

2. 8 50x50 0.487

3. 16 50x50 0.492

4. 32 50x50 0.512


(38)

Gambar 4.7 Grafik Pengujian Dekripsi terhadap panjang kunci

Berdasarkan tabel 4.3 dan gambar 4.7 dapat dilihat bahwa lama waktu dalam melakukan proses dekripsi sesuai dengan panjang kunci.

Tabel 4.4. Hasil Pengujian Dekripsi dengan Variasi Resolusi Citra

No Resolusi

Panjang kunci (byte)

Waktu (detik)

1. 200 x 200 4 1.915

2. 400 x 400 4 42.585

3. 600 x 600 4 220.996

4. 800 x 800 4 730.701


(39)

Gambar 4.8 Grafik Pengujian Dekripsi Waktu vs Resolusi

Berdasarkan tabel 4.4 dan gambar 4.8 dapat dilihat bahwa lama waktu dalam melakukan proses dekripsi berbanding lurus dengan besar resolusi citra yang digunakan..

Berdasarkan tabel 4.1 , 4.2, 4.3, 4.4 dan gambar 4.5 ,4.6, 4.7, 48 dapat diinformasikan bahwa jumlah proses waktu enkripsi dan dekripsi berbeda. Sistem memerlukan waktu yang lebih lama untuk melakukan proses dekripsi daripada melakukan proses enkripsi dan juga sistem juga memerlukan waktu yang lebih lama untuk memproses resolusi yang lebih besar.

Tabel 4.5. Perbandingan Waktu Enkripsi dan Dekripsi terhadap panjang kunci

No Panjang

kunci(byte)

Resolusi (pixel)

Waktu Enkripsi (detik)

Waktu Dekripsi

(detik)

1 4 50x50 0.506 0.465

2 8 50x50 0.512 0.487


(40)

4 32 50x50 0.590 0.512

5 64 50x50 0.603 0.530

Gambar 4.9 Grafik Perbandingan Enkripsi dan Dekripsi terhadap panjang kunci

Tabel 4.6. Perbandingan Waktu Enkripsi dan Dekripsi terhadap Resolusi

No Resolusi

(pixel)

Panjang Kunci (byte)

Waktu Enkripsi (detik)

Waktu Dekripsi

(detik)

1 200 x 200 4 2.019 1.915

2 400 x 400 4 44.284 42.585

3 600 x 600 4 228.996 220.996

4 800 x 800 4 743.701 730.701


(41)

(42)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Pengamatan yang dilakukan penulis sejak perancangan, pembuatan hingga pengujian aplikasi menghasilkan beberapa kesimpulan, antara lain:

1. Algoritma Blowfish dapat berfungsi untuk mengamankan citra

2. Dalam proses enkripsi semakin besar resolusi maka semakin panjang pula waktu yang dibutuhkan proses enkripsi

3. Setelah di enkripsi, ukuran resolusi citra akan bertambah besar

4. Waktu untuk proses enkripsi lebih lama dari pada waktu pada proses dekripsi.

5.2 Saran

Berikut ini adalah saran yang dapat digunakan untuk pengembangan penelitian ini, antara lain: 1. Sistem ini bekerja pada data citra, sehingga penelitian selanjutnya dapat

diimplementasikan pada data suara, video dll.

2. Bahasa pemrograman yang digunakan adalah C# dan penerapannya pada desktop, penelitian selanjutnya dapat menggunakan bahasa pemrograman lain seperti Java dan diterapkan pada perangkat Android Phone atau yang lainnya.


(43)

Enkripi Dekripsi

BAB II

LANDASAN TEORI

2.1 Kriptografi

Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data ( Schneier, 1997).

2.1.1 Terminologi

Kriptografi merupakan seni dan ilmu untuk menjaga keamanan data dengan metode tertentu, dan pelakunya disebut kriptografer. Kriptografi disebut sebagai ilmu karena didalamnya terdapat metode yang digunakan, dan dikatakan sebagai seni karena dalam membuat suatu teknik kriptografi itu sendiri merupakan ciri tersendiri dari si pembuat dan memerlukan teknik khusus dalam mendesainnya. (Munir, 2006)

Pada standar ISO 7498-2 menggunakan istilah encipher untuk proses enkripsi dan decipher untuk proses dekripsi. Skema rangkaian proses enkripsi dan dekripsi ditunjukkan secara umum pada Gambar 2.1.

Dalam kriptografi, proses enkripsi dilakukan menggunakan suatu algoritma dengan beberapa parameter. Biasanya algoritma tidak dirahasiakan, bahkan enkripsi yang mengandalkan kerahasiaan algoritma dianggap sesuatu yang tidak baik. Rahasia terletak di beberapa parameter yang digunakan, jadi kunci ditentukan oleh parameter. Parameter yang menentukan kunci dekripsi itulah yang harus dirahasiakan (parameter menjadi equivalen dengan kunci).

Gambar 2.1 : Proses Enkripsi dan Dekripsi (Kromodimeoljo,2010) Naskah Asli Naskah Acak

Naskah Asli


(44)

2.1.2 Komponen Kriptografi

Pada dasarnya, kriptografi terdiri dari beberapa komponen (Ariyus, 2007) sebagai berikut : 1. Algoritma, merupakan himpunan aturan matematis yang digunakan dalam enkripsi dan

dekripsi.

2. Enkripsi, adalah transformasi data ke dalam bentuk yang tidak dapat terbaca tanpa sebuah kunci tertentu.

3. Dekripsi, merupakan kebalikan dari enkripsi, yaitu transformasi data terenkripsi kembali ke bentuknya semula.

4. Kunci, digunakan pada saat melakukan enkripsi dan dekripsi. Pada kriptografi modern, keamanan enkripsi tergantung pada kunci, dan tidak tergantung kepada algoritmanya apakah dilihat orang lain atau tidak.

5. Pesan asli (Plaintext), disebut juga dengan clear-text, merupakan teks asli yang akan diproses menggunakan algoritma kriptografi tertentu untuk menjadi Ciphertext.

6. Ciphertext, merupakan pesan yang telah melalui proses enkripsi yang merupakan himpunan karakter acak

7. Kriptologi, merupakan studi tentang kriptografi dan kriptanalisis.

8. Kriptanalisis (Cryptanalysist), merupakan aksi memecahkan mekanisme kriptografi dengan cara menganalisisnya untuk menemukan kelemahan dari suatu algoritma kriptografi sehingga akhirnya dapat ditemukan kunci atau teks asli.

9. Kriptosistem, adalah perangkat keras atau implementasi perangkat lunak kriptografi yang diperlukan dalam mentransformasi sebuah pesan asli menjadi Ciphertext dan juga sebaliknya.

2.1.3 Tujuan Kriptografi

Terdapat 4 tujuan dasar kriptografi ( Sharma, 2012) sebagai berikut:

Confidentiality (kerahasiaan) yaitu isi pesan yang dikirim tidak diketahui oleh pihak yang tidak berhak.

Data integrity (keutuhan data) yaitu isi pesan harus utuh, dimana tidak terjadi manipulasi data (penghapusan, pengubahan atau penambahan) oleh pihak yang tidak berhak.


(45)

Authentication (keotentikan) yaitu berhubungan dengan identifikasi, baik secara kesatuan sistem atau informasi itu sendiri.

Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya).

2.2 Jenis-Jenis Algoritma Kriptografi

Terdapat dua jenis kriptografi jika dibagi berdasarkan kunci yang digunakan untuk proses enkripsi dan dekripsi, yaitu algoritma simetris dan algoritma asimetris. 2.2.1 Algoritma Simetris

Jika kunci yang digunakan untuk proses enkripsi dan proses dekripsi sama, maka

algoritma tersebut disebut algoritma simetris (Ayushi, 2010). Keamanan dari pesan yang dikirim tergantung pada kunci tersebut, apabila kunci tersebut diperoleh kepada orang yang tidak berhak, maka dia dapat memperoleh isi pesan tersebut (Sadikin, 2012). Algoritma simetris memiliki dua kategori yaitu stream algorithms dan block algorithms. Stream algorithms beroperasi dalam satu bit tunggal selama satu selang waktu pada plainteks. Block algorithms beroperasi dalam group bit-bit dalam satu selang waktu pada plainteks.

Yang termasuk algoritma kunci simetris adalah Blowfish, OTP, DES, RC2, RC4, RC5, IDEA, Twofish, Magenta, FEAL, CAST, Rijndael (AES), GOST, A5, Kasumi dan lain-lainnya.

Gambar 2.2 :Skema Kunci Simetris ( Heriyanto, 1999).

Kelebihan kunci simetris:

a. Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetris.

b. Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem real time Kelemahan kunci simetris:

a. Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut.


(46)

b. Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution problem” .

2.2.2 Algoritma Asimetris

Algoritma asimetris adalah sebuah teknik enkripsi yang menggunakan dua kunci yang berbeda, yaitu kunci publik untuk proses enkripsi dan kunci privat untuk proses dekripsi (Ayushi, 2010).

1. Kunci umum (public key), kunci yang boleh semua orang tahu (dipublikasikan) 2. Kunci rahasia (private key), kunci yang dirahasiakan ( hanya boleh satu orang yang

tahu ).

Dengan kunci publik, orang dapat mengenkripsi tetapi tidak dapat mendekripsikanya, hanya orang yang memilikki kunci privat yang dapat mendekripsikannya.Beberapa algoritma yang menggunakan asimetri adalah DSA, RSA, DH, ECC, Kriptografi Quantum, dan lain sebagainya.

Gambar 2.3 : Skema Kunci Asimetris (Heriyanto, 1999).

Kelebihan kunci asimetris:

a. Masalah keamanan pada distribusi kunci dapat lebih baik

b. Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit, maksudnya untuk berkorespondensi secara rahasia dengan banyak pihak tidak diperlukan kunci rahasia sebanyak jumlah pihak tersebut, cukup membuat dua buah kunci (disebut public-key) bagi para koresponden untuk mengenkripsi pesan, dan private-key untuk mendekripsi pesan.

Kelemahan kunci asimetris:


(47)

b. Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang dibandingkan dengan algoritma simetris.

2.3. Teori Bilangan

2.3.1. Operator Logika XOR

Operator logika Xor akan menghasilkan niilai True jika ekspresi di sebelah kiri Xor berbeda dengan ekspresi di sebelah kanannya. Jadi, operator logika Xor dapat diartikan “jika beda” akan bernilai True. Tabel hasil ekspresi logika Xor adalah sebagai berikut ini

Tabel 2.1. Tabel Operasi Logika Xor (Alam, 2005).

2.3.2. Faktor Persekutuan Terbesar

Faktor persekutuan Terbesar atau Greatest Common Divisor (GCD) merupakan bilangan bulat terbesar yang merupakan pembagi yang sama dari dua bilangan bulat. Misalkan adan b adalah dua bilangan bulat yang tidak nol. Greatest Common Divisor (GCD) dari a dan b adalah bilangan bulat terbesar c sedemikian sehingga c|a dan c|b. Greatest Common Divisor (GCD) dari a dan b dapat dinotasikan dengan GCD(, b) (Munir, 2003).

2.3.3. Euclid

Salah satu cara untuk mendapatkan GCD(�, b) adalah membuat daftar semua faktor dari , membuat daftar semua dari b, dan kemudian mencari faktor yang terbesar yang ada dalam kedua daftar. Akan tetapi, untuk bilangan yang sangat besar, membuat daftar faktor bukanlah sesuatu yang mudah. Ada cara yang jauh lebih efisien untuk mendapatkan GCD(�, b) yaitu dengan menggunakan algoritma Euclid (Eulidean algorithm), yang seperti halnya dengan Chinese Remainder Theorem merupakan algoritma penting yang berusia lebih dari 2000 tahun (Kromodimoeljo, 2010).

Contoh :

GCD(50, 20) adalah : 50 mod 20 = 10 20 mod 10 = 0

Ekspresi Hasil

False Xor False False

FalseXor True True

True Xor False True


(48)

Karena telah menghasilkan sisa pembagian sama dengan 0, maka proses berakhir dan didapatlah GCD(50, 20) = 10.

2.3.4. Algoritma Euclid dan Extended Euclid

Teorema yang digunakan sebagai dasar dari algortima Euclid adalah sebagai berikut: Jika = qb + r maka GCD(, b) = GCD(b, r)………….……(1)

Algoritma Euclid menggunakan rumus di atas secara berulang untuk mendapatkan GCD, yaitu dengan memperkecil kedua bilangan yang dijadikan patokan untuk GCD setiap kali mengulang, tanpa merubah nilai GCD itu sendiri.Hasil dari komputasi GCD di dapat saat kedua patokan untuk GCD tidak dapat diperkecil lagi.

Untuk melakukan komputasi d = GCD(, b), pertama dilakukan preprocessing sebagai berikut :

1. Jika � = 0 maka d = |b| dan jika b = 0 maka d = || (GCDtidak dapat dikomputasi jika = b = 0).

2. Karena GCD(�, b) = GCD(-, b) = GCD(, -b) = GCD(-, -b), kita dapat mentransformasikan komputasi menjadi d = GCD(||, |b|), jadi kedua bilangan menjadi positif.

3. Karena GCD(�, b) = GCD(b,�), kita dapat saling tukar � dan b jika <b, dengan hasil >b.

4. Jika � = b maka d = .

Setelah preprocessing, jika � ≠ 0, b≠ 0, � ≠b, maka komputasi sudah dirubah menjadi d = GCD(, b) dengan >b >0 (Kromodimoeljo, 2010).

2.4 Algoritma Blowfish

Blowfish adalah algoritma kunci simetri, yang berarti menggunakan kunci yang sama untuk melakukan enkripsi dan dekripsi file. Blowfish juga merupakan cipher block, yang berarti selama proses enkripsi dan dekripsi, Blowfish akan membagi pesan menjadi blok-blok dengan ukuran yang sama panjang. Panjang blok untuk algoritma Blowfish adalah 64-bit. Pesan yang bukan merupakan kelipatan delapan byte akan ditambahkan bit-bit tambahan (padding) sehingga ukuran untuk tiap blok sama.

Algoritma dalam Blowfish terbagi menjadi dua bagiian, yaitu key expansion dan data encryption.

Proses key expansion akan melakukan konversi sebuah kuci mulai dari 56 byte sampai beberapa array subkunci dengan total mencapai 4168 byte. Proses data encryptionterjadi pada


(49)

jaringan feistel, mengandung fungsi pengulangan sederhana sebanyak enam belas kali. Setiap iterasi, terdiri dari sebuah perutasi yang tidak bergantung pada kunci dan sebuah subsitusi yang tidak bergantung pada data dan kunci. Semua operasi merupakan penambahan dan XOR pada word 32-bit. Operasi penambahan yang dilakukan hanya merupakan empat indeks array data lookup pada setiap iterasi.

2.4.1 Langkah kerja Blowfish A. Proses Ekspansi Kunci

1. Inisialisasi P-array yang pertama dan juga empat S-box, berututan, dengan string yang telah pasti.String tersebut terdiri dari digit-digit heksadesimal dari phi, tidak termasuk angka tiga di awal.

Contoh : P1= 0x243f6a88 P2= 0x85a308d3 P3= 0x13198a2e P4= 0x03707344

dan seterusnya sampai dengan P18.

2. XOR-kan P1 dengan 32-bit awal kunci, XOR-kan P2 dengan 32-bit berikutnya dari kunci, dan seterusnya untuk semua bit kunci. Jika panjang kunci ternyata kurang dari jumlah Pbox, maka siklus perhitungan akan diulangi hingga semua P ter-XOR-kan. 3. Enkripsikan string yang seluruhnya nol (all-zero string) dengan algoritma Blowfish,

menggunakan subkunci yang telah didekripsikan pada langkah 1 dan 2. 4. Gantikan P1 dan P2 dengan keluaran dari langkah 3

5. Enkripsikan keluaran langkah 3 menggunakan algoritma Blowfish dengan subkunci yang telah dimodifikasi.

6. Gantikan P3 dan P4 dengan keluaran dari langkah 5.

7. Lanjutkan langkah-langkah di atas, gantikan seluruh elemen P-array dan kemudian keempat S-box secara berurutan, dengan hasil keluaran algoritma Blowfish yang terus-menerus berubah.


(50)

B. Proses Enkripsi

1. Berdasarkan metode enkripsi Blowfish, untuk langkah awal yaitu file inputan atau file soal akan dirubah menjadi binary. Proses enkripsi dan dekripsi Blowfish dilakukan dengan pemecahan file menjadi per 64 bit. Dan kemudian 64 bit ini diinisialkan “x”. 2. Masukan data “x” 64 bit ini kemudian dipecah menjadi dua bagian yang disebut

dengan XR (X Right) dan XL (X Left) masing-masing 32 bit.

3. Menurut buku “Pengantar Ilmu Kriptografi” karangan Dony Ariyus [9], proses enkripsi maupun dekripsi dilakukan dengan iterasi fungsi sederhana sebanyak 16 kali.

Berikut rumus enkripsi : XL = XL XOR p[i]

XR = F(XL) XOR XR Tukar XL dan XR

Dimana rumus F adalah F(XL) = ((S[1,a] + S2[2,b] mod 232) XOR S[3,c]) + S[4,d] 4. Setelah iterasi ke-16, tukar XL dan XR lagi untuk melakukan pembatalan penukaran

terakhir.

5. Dari semua langkah di atas, langkah terakhir adalah kembali menggabungkan XR dan XL untuk mendapatkan cipherteks.

Proses enkripsi dengan algoritma Blowfish ini dapat digambarkan melalui bagan di bawah ini :


(51)

Gambar 2.4 : Alur Proses Enkripsi Blowfish

6. Untuk Proses Dekripsi, langkah sama persis dengan proses enkripsi, hanya saja urutan Pbox digunakan dengan urutan terbalik.

2.5. Citra

Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek.Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan (Sutoyo et al. 2009).

Citra tidak sama dengan teks yang hanya memberikan informasi secara jelas dengan kata-kata yang dipaparkan. Citra memberikan informasi dengan memberikan gambaran visual dan terkadang informasi yang diberikan dapat memacu imajinasi dari orang yang melihat citra tersebut.

Citra merupakan keluaran dari suatu sistem perekaman data yang bersifat optik, analog ataupun digital. Perekaman data citra dapat dibagi menjadi dua yaitu:


(52)

Citra analog adalah citra yang bersifat kontinu, seperti gambar pada monitor televisi, foto sinar-X, foto yang tercetak di kertas foto, lukisan , pemandangan alam, hasil CT scan, gambar-gambar yang terekam pada pita kaset, dan lain sebaginya (Sutoyo et al. 2009).

2. Citra Digital

Citra digital adalah citra yang dapat diolah oleh komputer (Sutoyo et al. 2009).Citra digital terdiri dari sinyal-sinyal yang dapat dibedakan dan mempunyai fungsi yang tidak kontinu yakni berupa titik-titik warna pembentuk citra.Hasil perekaman citra digital dapat disimpan pada suatu media magnetik (Handriyati, 2013).

Citra digital adalah citra yang terdiri dari sinyal-sinyal frekuensi elektromagnetis yang sudah di-sampling sehingga dapat ditentukan ukuran titik gambar tersebut yang pada umumnya disebut piksel (Santi, 2010).

Secara umum, pengolahan citra digital menunjuk pada pemrosesan gambar dua dimensi menggunakan komputer.Dalam konteks yang lebih luas, pengolahan citra digital mengacu pada pemrosesan setiap data dua dimensi. Citra digital merupakan sebuah larik (array) yang berisi nilai-nilai real maupun komplek yang direpresentasikan dengan deretan bit tertentu (Handriyati, 2013).

Suatu citra dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial, dan amplitudo f di titik koordinat (x,y) dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila nilai x,y, dan nilai amplitudo f secara keseluruhan berhingga (finite) dan bernilai diskrit maka dapat dikatakan bahwa citra tersebut adalah citra digital (Handriyati, 2013). Gambar 2.5 menunjukkan posisi koordinat citra digital.

Gambar 2.5. Posisi koordinat citra digital

2.5.1 Jenis-jenis Citra Digital

Ada banyak cara untuk menyimpan citra digital di dalam memori. Cara penyimpanan menentukan jenis citra digital yang terbentuk. Beberapa jenis citra digital yang sering digunakan adalah citra biner, citra grayscale dan citra warna(Abdul, 2013).


(53)

2.5.1.1 Citra Biner

Citra biner merupakan citra yang telah melalui proses pemisahan pixel-pixelberdasarkan derajat keabuan yang dimiliki. Citra biner adalah citra yang hanya direpresentasikan nilai tiap pixel-nya dalam satu bit (satu nilai binary). Citra biner adalah citra digital yang hanya memiliki dua kemungkinan nilai pixel yaitu hitam dan putih. Salah satu contoh dari gambar biner dapat dilihat pada Gambar 1. Dibutuhkan satu bit dimemori untuk menyimpan kedua warna ini. Setiap pixel pada citra bernilai 0 untuk warna hitam dan 1 untuk warna putih [] (Abdul kadir, 2013).

Gambar 2.6 Citra Biner

2.5.1.2. Citra Grayscale

Citra grayscale menggunakan warna tingkatan keabuan. Warna abu-abu merupakan satu-satunya warna pada ruang RGB dengan komponen merah, hijau, dan biru yang mempunyai nilai intensitas yang sama. Citra grayscale memiliki kedalaman warna 8 bit (256 kombinasi warna keabuan). Salah satu contoh gambar dari citra grayscaledapat dilihat pada Gambar 2.7. Banyaknya warna yang ada tergantung pada jumlah bit yang disediakan di memori untuk menampung kebutuhan warna ini (Darma, 2010).

Gambar 2.7 Citra Grayscale

2.5.1.3. Citra Warna

Citra berwarna, atau biasa dinamakan citra RGB, merupakan jenis citra yang menyajikan warna dalam bentuk komponen R (red), G (green), dan B (blue). Setiap komponen warna menggunakan 8 bit (nilainya berkisar antara 0 sampai dengan 255).


(54)

Dengan demikian, kemungkinan warna yang bisa disajikan mencapai 255 x 255 x 255 atau 16.581.375 warna.Itu sebabnya format ini dinamakan true color karena memiliki jumlah warna yang cukup besar.Adapun salah satu contoh dari citra RGB seperti pada Gambar 2.8 (Darma, 2010).


(55)

PENDAHULUAN

1.1 Latar Belakang

Saat ini komunikasi merupakan salah satu hal terpenting dalam kehidupan. Tidak hanya manusia tetapi semua makhluk hidup juga saling berkomunikasi satu dengan lainnya dengan caranya sendiri. Ada disaat dimana suatu informasi tersebut bersifat rahasia sehingga tidak boleh ada orang lain yang mengetahui informasi selain orang yang dituju. Oleh karena itu metode komunikasi yang digunakan harus dibuat sedemikian rupa sehingga tidak ada orang lain selain orang yang dituju mengetahui tentang informasi tersebut.

Kriptografi akan merahasiakan informasi dengan menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya. Saat ini banyak bermunculan algoritma kriptografi yang terus dianalisis dicoba dan disempurnakan untuk mencari algoritma yang dianggap memenuhi standar keamanan.

Salah satu algoritma kriptografi adalah algoritma Blowfish yang merupakan algoritma kriptografi modern kunci simetris berbentuk cipher blok. Dengan menggunakan algoritma Blowfish dapat dibangun sebuah aplikasi yang dapat mengenkripsi dan mendekripsi sebuah citra. Blowfish merupakan salah satu algoritma yang tidak dipatenkan dan cukup kuat karena memiliki ruang kunci yang besar dan panjangnya bisa beragam, sehingga tidak mudah diserang pada bagian kuncinya. Suatu sistem kriptografi yang baik terletak pada kerahasiaan kunci dan bukan pada kerahasiaan algoritma yang digunakan.

Pada saat Blowfish dirancang, diharapkan mempunyai kriteria perancangan sebagai berikut:

1. Cepat, Blowfish melakukan enkripsi data pada mikroprosesor 32-bit dengan rate 26 clock cyclesper byte.

2. Ringan, Blowfish dapat dijalankan pada memori kurang dari 5Kb.

3. Sederhana, Blowfish hanya menggunakan operasi-operasi sederhana penambahan, XOR, dan lookup table pada operan 32-bit.


(56)

4. Memiliki tingkat keamanan yang bervariasi, panjang kunci yang digunakan oleh Blowfish dapat bervariasi dan bisa sampai sepanjang 448 bit.

Enkripsi adalah cara untuk menyembunyikan informasi gambar asli dan dibuat gambar tersebut tidak tampak seperti aslinya. Enkripsi dilakukan dengan menggunakan kunci tertentu, sehingga menghasilkan chipertext (file yang sudah dienkrip atau disandikan) yang tidak dapat dibaca ataupun dimengerti. Chipertext tersebut dapat dikembalikan seperti semula jika didekripsi menggunakan kunci yang sama sewaktu mengenkripsi file tersebut.

Setiap gambar yang masuk pada perangkat seseorang merupakan merupakan suatu privasi bagi dirinya, oleh karena itu untuk menjaga kerahasiaan gambar diperlukan sebuah sistem keamanan yang berupa aplikasi keamanan dari suatu gambar.

Berdasarkan penjalasan di atas, algoritma Blowfish merupakan salah satu algoritma yang tepat untuk membangun sebuah aplikasi enkripsi dan dekripsi sebuah citra. Oleh sebab itu penulis akan melakukan penelitian dan merancang sebuah sistem aplikasi enkripsi dan dekripsi sebuah citra berbasis windows.

1.2 Perumusan Masalah

Berdasarkan latar belakang di atas, rumusan masalah pada penelitian ini adalah bagaimana cara penerapan algoritma Blowfish dalam proses enkripsi dan dekripsi citra berbasis windows.

1.3 Batasan Masalah

Batasan masalah dalam penelitian ini adalah sebagai berikut: 1. Bahasa pemograman yang digunakan adalah C# .

2. Citra yang dienkripsi dan didekripsi merupakan citra inputan. 3. Citra yang diinputkan bertipe .BMP

1.4 Tujuan Penelitian

Tujuan dilakukannya penelitian ini adalah :

1. Menerapkan algoritma Blowfish untuk merahasiakan gambar


(57)

1.5 Manfaat Penelitian

Penelitian ini diharapkan dapat memberikan maanfaat sebagai berikut :

1. Menambah pengetahuan penulis dalam melakukan proses enkripsi dan dekripsi suatu citra dengan menggunakan algoritma Blowfish.

2. Untuk meningkatkan keamanan citra yang bersifat rahasia

3. Sebagai bahan referensi bagi peneliti lain yang ingin membahas topik yang terkait dengan penelitian ini.

4. Membangun dan mengembangkan aplikasi enkripsi dan dekripsi citra berbasis windows menggunakan algoritma Blowfish

1.6 Metodologi Penelitian

Metodologi penelitian yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut:

1. Studi Literatur

Pada tahapan ini penulis mengumpulkan bahan dan data sebagai referensi dari berbagai buku, jurnal, prosiding, skripsi dan sumber lainnya yang berkaitan dengan penulisan tugas akhir. Ini dilakukan untuk memperoleh informasi yang terkait dengan metode Blowfish serta pemrograman C# untuk pemrograman berbasis Windows.

2. Analisis

Tahap ini digunakan untuk mengolah data dari hasil studi literatur yang kemudian dilakukan analisis terhadap cara kerja proses enkripsi dan dekripsi dengan menggunakan algoritma Blowfish.

3. Perancangan Sistem

Pada tahap ini dilakukan perancangan sistem yang meliputiproses pembuatan algoritma program, use case scenario, flowchart sistem, flowchart algoritma, rancangan aplikasi, dan pembuatan user interface aplikasi.

4. Implementasi Sistem

Metode ini dilakukan dengan mengimplementasikan rancangan sistem yang telah dibuat pada analisis dan perancangan sistem ke dalam program komputer dengan menggunakan


(58)

bahasa pemrograman C# kemudian dapat dijalankan di perangkat berbasis Windows.

5. Pengujian Sistem

Pada tahapan ini dilakukan pengujian aplikasi yang di buat telah berhasil berjalan sesuai dengan keinginan dan akan melakukan perbaikan apabila terdapat error.

6. Dokumentasi

Berisikan laporan dan kesimpulan akhir dari penelitian dan pengujian dalam bentuk skripsi.

1.7 Sistematika Penulisan

Agar pembahasan lebih sistematis, maka tulisan ini dibuat dalam lima bab, yaitu :

BAB I PENDAHULUAN

Berisi latar belakang, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.

BAB II LANDASAN TEORI

Berisi teori mengenai kriptografi, enkripsi, dekripsi, algoritma modern, algoritma klasik, dan citra.

BAB III ANALISIS DAN PERANCANGAN

Berisi tentang analisis algoritma blowfish terhadap proses enkripsi dan dekripsi citra berbasis windows yang terdiri dari Use Case Diagram, Activity Diagram, Flowchart dan perancangan tampilan form aplikasi.


(59)

BAB IV IMPLEMENTASI DAN PENGUJIAN

Berisi mengenai sistem dan pembuatan program sesuai dengan analisis dan perancangan sistem kemudian dilakukan pengujian terhadap sistem.

BAB V KESIMPULAN DAN SARAN

Berisi kesimpulan yang diperoleh dari hasil penelitian dan saran-saran yang berguna untuk pengembangan penelitian selanjutnya.


(60)

ABSTRAK

Seiring dengan perkembangan zaman, keamanan dalam pertukaran data sangat perlu ditingkatkan guna menghindari hal-hal yang tidak diinginkan. Ilmu yang mempelajari tentang pengamanan data dinamakan Kriptografi. Algoritma Blowfish adalah satu algoritma dari banyak algoritma kriptografi yang digunakan dalam pengenkripsian dan pendekripsian data. Dalam penelitian ini penulis membuat sebuah aplikasi yang berisikan implementasi enkripsi dan dekripsi citra dengan menggunakan algoritma Blowfish berbasis Windows. Besar data sesudah proses enkripsi akan meningkat, akan tetapi akan kembali ke ukuran semula setelah proses dekripsi. Waktu yang dibutuhkan untuk proses enkripsi cenderung lebih lama dibandingkan waktu yang dibutuhkan untuk proses dekripsi, dan semakin panjang kunci yang digunakan maka semakin lama waktu untuk proses, akan tetapi waktu yang dibutuhkan untuk proses enkripsi dan proses dekripsi masih tergolong sangat singkat.


(61)

ABSTRACT

Along with the times, security in data exchange needs to be improved in order to avoid things that are not desirable. The study of data security is called cryptography. Blowfish algorithm is an algorithm of many cryptographic algorithms used in encryption and decryption data. In this study the author makes an application that contains the implementation of encryption and decryption image using the Blowfish algorithm based on Windows. Size of the data after the encryption process will increase, but will return to its original size after decryption process. The time needed for the encryption process tends to be longer than the time it takes to decryption process. The longer the length of the key is used, the length the times to process, but the times it takes to process the encryption and decryption process is still relatively very short.


(62)

APLIKASI ENKRIPSI DAN DEKRIPSI CITRA BERBASIS WINDOWS

SKRIPSI

AHDA ANDI KURNIA 111401104

PROGRAM STUDI S-1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2016


(63)

CITRA BERBASIS WINDOWS SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

AHDA ANDI KURNIA 111401104

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2016


(64)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA BLOWFISH PADA APLIKASI ENKRIPSI DAN DEKRIPSI CITRA BERBASIS WINDOWS

Kategori : SKRIPSI

Nama : AHDA ANDI KURNIA

Nomor Induk Mahasiswa : 111401104

Program Studi : SARJANA (S1) ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

Diluluskan di Medan, MEI 2016 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Jos Timanta Tarigan, S.Kom, M.Sc M.Andri Budiman,ST,M.Comp.Sc,MEM NIP. 19850126 201504 1 001 NIP. 19751008 200801 1 011

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,


(65)

PERNYATAAN

IMPLEMENTASI ALGORITMA BLOWFISH PADA APLIKASI ENKRIPSI DAN DEKRIPSI

CITRA BERBASIS WINDOWS

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil kerya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Mei 2016

AHDA ANDI KURNIA 111401104


(66)

PENGHARGAAN

Alhamdulillah penulis panjatkan kehadirat Allah Subhanallahu wa Ta’ala yang telah memberikan rahmat dan ridho-Nya kepada penulis sehingga penulis dapat menyelesaikan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara..

Ucapan terima kasih penulis sampaikan kepada semua pihak yang mendukung dan memotivasi penulis, baik secara langsung maupun tidak langsung. Pada kesempatan ini, penulis mengucapkan terima kasih kepada:

1. Bapak Prof. Runtung Sitepu, SH, M.Hum selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom. selaku Ketua Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara.

4. Ibu Maya Silvi Lydia, B.Sc, M.Sc. selaku Sekretaris Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara.

5. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembimbing I yang telah memberikan ilmu dan pengalamannya juga kritik dan saran yang bermanfaat kepada penulis dalam menyelesaikan skripsi ini.

6. Bapak Jos Timanta Tarigan, S.Kom, M.Sc selaku Dosen Pembimbing II yang telah memberikan ilmu, saran dan solusi kepada penulis dalam mengerjakan skripsi ini.

7. Bapak Dr. Poltak Sihombing, M.Kom selaku Pembanding I yang telah memberikan kritik dan saran yang bermanfaat serta solusi dari kekurangan skripsi ini.

8. Bapak Drs. Marihat Situmorang, M.Kom selaku pembanding II yang telah memberikan kritik dan saran dalam pembuatan skripsi ini.

9. Seluruh dosen dan pegawai Program studi S1 Ilmu Komputer Fasilkom-TI USU terkhusus Abangda Faisal Hamid yang telah membantu penulis dalam proses pembuatan skripsi. 10. Orang tua saya, Ayah Ir. Miswanto, Mama Jasmiati., adik saya, Ihza Halizha, yang selalu


(67)

11. Teman-teman perkuliahan Kom A angkatan 2011 terkhusus Farid Akbar, S.Kom., Hari Rahman Nihe, S.Kom, juga Steven Sinaga, S.Kom yang telah membantu penulis dan selalu memberikan semangat dan motivasi kepada penulis.

12. Semua pihak yang telah membantu dalam menyelesaikan skripsi ini.

Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, penulis mengharapkan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Kiranya Allah selalu memberikan rahmat dan ridho-Nya kepada semua pihak yang telah membantu dan mendukung penulis.

Medan, Juli 2016


(68)

ABSTRAK

Seiring dengan perkembangan zaman, keamanan dalam pertukaran data sangat perlu ditingkatkan guna menghindari hal-hal yang tidak diinginkan. Ilmu yang mempelajari tentang pengamanan data dinamakan Kriptografi. Algoritma Blowfish adalah satu algoritma dari banyak algoritma kriptografi yang digunakan dalam pengenkripsian dan pendekripsian data. Dalam penelitian ini penulis membuat sebuah aplikasi yang berisikan implementasi enkripsi dan dekripsi citra dengan menggunakan algoritma Blowfish berbasis Windows. Besar data sesudah proses enkripsi akan meningkat, akan tetapi akan kembali ke ukuran semula setelah proses dekripsi. Waktu yang dibutuhkan untuk proses enkripsi cenderung lebih lama dibandingkan waktu yang dibutuhkan untuk proses dekripsi, dan semakin panjang kunci yang digunakan maka semakin lama waktu untuk proses, akan tetapi waktu yang dibutuhkan untuk proses enkripsi dan proses dekripsi masih tergolong sangat singkat.


(69)

ABSTRACT

Along with the times, security in data exchange needs to be improved in order to avoid things that are not desirable. The study of data security is called cryptography. Blowfish algorithm is an algorithm of many cryptographic algorithms used in encryption and decryption data. In this study the author makes an application that contains the implementation of encryption and decryption image using the Blowfish algorithm based on Windows. Size of the data after the encryption process will increase, but will return to its original size after decryption process. The time needed for the encryption process tends to be longer than the time it takes to decryption process. The longer the length of the key is used, the length the times to process, but the times it takes to process the encryption and decryption process is still relatively very short.


(70)

DAFTAR ISI

Hal.

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar isi viii

Daftar Gambar x

DaftarTabel xi

Daftar Lampiran xii

Bab I Pendahuluan

1.1 Latar Belakang 1

1.2 Perumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 3

1.7 Sistematika penulisan 5

Bab II Landasan Teori

2.1 Kriptografi 6

2.1.1 Terminlogi 6

2.1.2 Komponen Kriptografi 7

2.1.3Tujuan Kriptografi 7

2.2 Jenis-jenis Algoritma Kriptografi 8

2.2.1Algoritma Simetris 8

2.2.2Algoritma Asimetris 9

2.3 Teori Bilangan 10

2.3.1 Operator Logika XOR 10

2.3.2 Faktor Persekutuan Terbesar 10

2.3.3 Euclid 11

2.3.4 Algoritma Euclid dan Extended Euclid 11

2.4 Algoritma Blowfish 12

2.4.1 Langkah kerja Algoritma Blowfish 13

2.5Citra 15

2.5.1 Jenis-Jenis citra 16

2.5.1.1 Citra Biner 16


(71)

2.5.1.3 Citra Warna 18

Bab III Analisis dan Perancangan Sistem

3.1 Analisis Sistem 19

3.1.1 Analisis Masalah 19

3.1.2 Analisis Kebutuhan 20

3.1.2.1 Kebutuhan Fungsional Sistem 20 3.1.2.2 Kebutuhan Non-Fungsional Sistem 20

3.1.3 Analisis Proses 21

3.2 Pemodelan (UML) 21

3.2.1 Use Case Diagram 21

3.2.2 Sequence Diagram 24

3.2.3 Activity Diagram 25

3.3 Flowchart 25

3.3.1 Flowchart Enkripsi Gambar dengan Algoritma Blowfish 26 3.3.2 Flowchart Dekripsi Gambar dengan Algoritma Blowfish 26

3.4 Pseudocode Sistem 27

3.4.1 Pseudocode Proses Enkripsi Gambar 27

3.4.2 Pseudocode Proses Dekripsi Gambar 28

3.5 Perancangan Antarmuka 28

3.5.1 Halaman Utama 28

3.5.2 Halaman Enkripsi 29

3.5.3 Halaman Dekripsi 30

Bab IV Implementasi dan Pengujian

4.1 Implementasi Sistem 31

4.1.1 Halaman Menu Utama 31

4.1.2 Halaman Enkrip 32

4.1.3 Halaman Dekrip 32

4.1.4 Halaman About 33

4.2 Pengujian Sistem 34

4.2.1 Pengujian Enkripsi 34

4.2.2 Pengujian Dekripsi 37

Bab V Kesimpulan dan Saran

5.1 Kesimpulan 41

5.2 Saran 41

Daftar Pustaka 42

LAMPIRAN A : Listing Program A-1 LAMPIRAN B : Curriculum Vitae B-1


(72)

DAFTAR GAMBAR

Hal.

Gambar 2.1 Proses Enkripsi dan Dekripsi 6

Gambar 2.2 Skema Kunci Simetris 8

Gambar 2.3 Skema Kunci Asimetris 9

Gambar 2.4 Alur Proses Enkripsi Blowfish 14

Gambar 2.5 Posisi Koordinat Citra Digital 16

Gambar 2.6 Citra Biner 17

Gambar 2.7 Citra Grayscale 17

Gambar 2.8 Citra RGB 18

Gambar 3.1 Diagram Ishikawa 20

Gambar 3.2 Use-Case Diagram 22

Gambar 3.3 Diagram Sequence untuk Enkripsi 24

Gambar 3.4 Diagram Sequence untuk Dekripsi 24

Gambar 3.5 Activity Diagram 25

Gambar 3.6 Flowchart Enkripsi gambar dengan Algoritma Blowfish 26 Gambar 3.7 Flowchart Dekripsi gambardengan Algoritma Blowfish 27

Gambar 3.8 Rancangan Tampilan Halaman Utama 28

Gambar 3.9 Rancangan Tampilan Halaman Enkripsi 29

Gambar 3.10 Rancangan Tampilan Halaman Dekripsi 30

Gambar 4.1 Halaman Menu Utama 31

Gambar 4.2 Halaman Enkripsi 32

Gambar 4.3 Halaman Dekripsi 33

Gambar 4.4 HalamanAbout 34

Gambar 4.5 Grafik Pengujian Enkripsi terhadap panjang kunci 35 Gambar 4.6 Grafik Pengujian Enkripsi waktu vs resolusi 36 Gambar 4.7 Grafik Pengujian Dekripsi terhadap panjang kunci 37 Gambar 4.8 Grafik Pengujian Dekripsi Waktu vs Resolusi 38 Gambar 4.9 Grafik Perbandingan Enkripsi dan Dekripsi terhadap panjang kunci 39 Gambar 4.10 Grafik Perbandingan Enkripsi dan Dekripsi terhadap resolusi 40


(73)

DAFTAR TABEL

Hal.

Tabel 2.1 Tabel Operasi Logika Xor 10

Tabel 3.1 Narrative Use-Case Enkripsi Gambar 23

Tabel 3.2 Narrative Use-Case Dekripsi Gambar 23

Tabel 4.1 Hasil Pengujian Enkripsi dengan Variasi Panjang kunci 35 Tabel 4.2 Hasil Pengujian Enkripsi dengan Variasi Resolusi Citra 36 Tabel 4.3 Hasil Pengujian Dekripsi dengan Variasi Panjang kunci 37 Tabel 4.4 Hasil Pengujian Dekripsi dengan Variasi Resolusi Citra 38 Tabel 4.5 Perbandingan Waktu Enkripsi dan Dekripsi terhadap panjang kunci 39 Tabel 4.6 Perbandingan Waktu Enkripsi dan Dekripsi terhadap Resolusi 40


(1)

vi ABSTRAK

Seiring dengan perkembangan zaman, keamanan dalam pertukaran data sangat perlu ditingkatkan guna menghindari hal-hal yang tidak diinginkan. Ilmu yang mempelajari tentang pengamanan data dinamakan Kriptografi. Algoritma Blowfish adalah satu algoritma dari banyak algoritma kriptografi yang digunakan dalam pengenkripsian dan pendekripsian data. Dalam penelitian ini penulis membuat sebuah aplikasi yang berisikan implementasi enkripsi dan dekripsi citra dengan menggunakan algoritma Blowfish berbasis Windows. Besar data sesudah proses enkripsi akan meningkat, akan tetapi akan kembali ke ukuran semula setelah proses dekripsi. Waktu yang dibutuhkan untuk proses enkripsi cenderung lebih lama dibandingkan waktu yang dibutuhkan untuk proses dekripsi, dan semakin panjang kunci yang digunakan maka semakin lama waktu untuk proses, akan tetapi waktu yang dibutuhkan untuk proses enkripsi dan proses dekripsi masih tergolong sangat singkat.


(2)

vii ABSTRACT

Along with the times, security in data exchange needs to be improved in order to avoid things that are not desirable. The study of data security is called cryptography. Blowfish algorithm is an algorithm of many cryptographic algorithms used in encryption and decryption data. In this study the author makes an application that contains the implementation of encryption and decryption image using the Blowfish algorithm based on Windows. Size of the data after the encryption process will increase, but will return to its original size after decryption process. The time needed for the encryption process tends to be longer than the time it takes to decryption process. The longer the length of the key is used, the length the times to process, but the times it takes to process the encryption and decryption process is still relatively very short.


(3)

viii DAFTAR ISI

Hal.

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar isi viii

Daftar Gambar x

DaftarTabel xi

Daftar Lampiran xii

Bab I Pendahuluan

1.1 Latar Belakang 1

1.2 Perumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 3

1.7 Sistematika penulisan 5

Bab II Landasan Teori

2.1 Kriptografi 6

2.1.1 Terminlogi 6

2.1.2 Komponen Kriptografi 7

2.1.3Tujuan Kriptografi 7

2.2 Jenis-jenis Algoritma Kriptografi 8

2.2.1Algoritma Simetris 8

2.2.2Algoritma Asimetris 9

2.3 Teori Bilangan 10

2.3.1 Operator Logika XOR 10

2.3.2 Faktor Persekutuan Terbesar 10

2.3.3 Euclid 11

2.3.4 Algoritma Euclid dan Extended Euclid 11

2.4 Algoritma Blowfish 12

2.4.1 Langkah kerja Algoritma Blowfish 13

2.5Citra 15

2.5.1 Jenis-Jenis citra 16

2.5.1.1 Citra Biner 16


(4)

ix

2.5.1.3 Citra Warna 18

Bab III Analisis dan Perancangan Sistem

3.1 Analisis Sistem 19

3.1.1 Analisis Masalah 19

3.1.2 Analisis Kebutuhan 20

3.1.2.1 Kebutuhan Fungsional Sistem 20 3.1.2.2 Kebutuhan Non-Fungsional Sistem 20

3.1.3 Analisis Proses 21

3.2 Pemodelan (UML) 21

3.2.1 Use Case Diagram 21

3.2.2 Sequence Diagram 24

3.2.3 Activity Diagram 25

3.3 Flowchart 25

3.3.1 Flowchart Enkripsi Gambar dengan Algoritma Blowfish 26 3.3.2 Flowchart Dekripsi Gambar dengan Algoritma Blowfish 26

3.4 Pseudocode Sistem 27

3.4.1 Pseudocode Proses Enkripsi Gambar 27

3.4.2 Pseudocode Proses Dekripsi Gambar 28

3.5 Perancangan Antarmuka 28

3.5.1 Halaman Utama 28

3.5.2 Halaman Enkripsi 29

3.5.3 Halaman Dekripsi 30

Bab IV Implementasi dan Pengujian

4.1 Implementasi Sistem 31

4.1.1 Halaman Menu Utama 31

4.1.2 Halaman Enkrip 32

4.1.3 Halaman Dekrip 32

4.1.4 Halaman About 33

4.2 Pengujian Sistem 34

4.2.1 Pengujian Enkripsi 34

4.2.2 Pengujian Dekripsi 37

Bab V Kesimpulan dan Saran

5.1 Kesimpulan 41

5.2 Saran 41

Daftar Pustaka 42

LAMPIRAN A : Listing Program A-1 LAMPIRAN B : Curriculum Vitae B-1


(5)

x DAFTAR GAMBAR

Hal.

Gambar 2.1 Proses Enkripsi dan Dekripsi 6

Gambar 2.2 Skema Kunci Simetris 8

Gambar 2.3 Skema Kunci Asimetris 9

Gambar 2.4 Alur Proses Enkripsi Blowfish 14

Gambar 2.5 Posisi Koordinat Citra Digital 16

Gambar 2.6 Citra Biner 17

Gambar 2.7 Citra Grayscale 17

Gambar 2.8 Citra RGB 18

Gambar 3.1 Diagram Ishikawa 20

Gambar 3.2 Use-Case Diagram 22

Gambar 3.3 Diagram Sequence untuk Enkripsi 24

Gambar 3.4 Diagram Sequence untuk Dekripsi 24

Gambar 3.5 Activity Diagram 25

Gambar 3.6 Flowchart Enkripsi gambar dengan Algoritma Blowfish 26 Gambar 3.7 Flowchart Dekripsi gambardengan Algoritma Blowfish 27

Gambar 3.8 Rancangan Tampilan Halaman Utama 28

Gambar 3.9 Rancangan Tampilan Halaman Enkripsi 29

Gambar 3.10 Rancangan Tampilan Halaman Dekripsi 30

Gambar 4.1 Halaman Menu Utama 31

Gambar 4.2 Halaman Enkripsi 32

Gambar 4.3 Halaman Dekripsi 33

Gambar 4.4 HalamanAbout 34

Gambar 4.5 Grafik Pengujian Enkripsi terhadap panjang kunci 35 Gambar 4.6 Grafik Pengujian Enkripsi waktu vs resolusi 36 Gambar 4.7 Grafik Pengujian Dekripsi terhadap panjang kunci 37 Gambar 4.8 Grafik Pengujian Dekripsi Waktu vs Resolusi 38 Gambar 4.9 Grafik Perbandingan Enkripsi dan Dekripsi terhadap panjang kunci 39 Gambar 4.10 Grafik Perbandingan Enkripsi dan Dekripsi terhadap resolusi 40


(6)

xi DAFTAR TABEL

Hal.

Tabel 2.1 Tabel Operasi Logika Xor 10

Tabel 3.1 Narrative Use-Case Enkripsi Gambar 23

Tabel 3.2 Narrative Use-Case Dekripsi Gambar 23

Tabel 4.1 Hasil Pengujian Enkripsi dengan Variasi Panjang kunci 35 Tabel 4.2 Hasil Pengujian Enkripsi dengan Variasi Resolusi Citra 36 Tabel 4.3 Hasil Pengujian Dekripsi dengan Variasi Panjang kunci 37 Tabel 4.4 Hasil Pengujian Dekripsi dengan Variasi Resolusi Citra 38 Tabel 4.5 Perbandingan Waktu Enkripsi dan Dekripsi terhadap panjang kunci 39 Tabel 4.6 Perbandingan Waktu Enkripsi dan Dekripsi terhadap Resolusi 40