Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

(1)

LISTING PROGRAM

Kode Program Class Enkrip

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Numerics;

using System.IO;

namespace test1 {

class enkrip {

public int[] cipher(int p, int ea, int[] arrayint) {

BigInteger e = 0;

//stringtochar arrchar = new stringtochar(); //char[] arraychar = arrchar.arrasci(text); //int[] arrayint = new int[arraychar.Length]; int key = ea;

int prime = p;

for (int i = 0; i <= arrayint.Length - 1; i++) {

// arrayint[i] = (int)arraychar[i];

e = BigInteger.ModPow(arrayint[i], key, prime); arrayint[i] = (int)e;

}

return arrayint; }

public void buatfiletextpengirim(string text, string filename) {

string direktoriawal = Directory.GetCurrentDirectory(); if (!Directory.Exists(direktoriawal + "/Pengirim")) {

Directory.CreateDirectory(direktoriawal + "/Pengirim"); }

System.IO.File.WriteAllText(direktoriawal + "/Pengirim/" + filename, text);

}

public void buatfiletextpenerima(string text, string filename) {

string direktoriawal = Directory.GetCurrentDirectory(); if (!Directory.Exists(direktoriawal + "/Penerima")) {

Directory.CreateDirectory(direktoriawal + "/Penerima"); }

System.IO.File.WriteAllText(direktoriawal + "/Penerima/" + filename, text);

} } }


(2)

Kode Program Class Dekrip

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Numerics;

namespace test1 {

class dekrip {

public int[] plaintxt(int p, int[] enkripted, BigInteger da) {

BigInteger e = 0;

//enkrip ciphertext = new enkrip();

int[] arrayint = new int[enkripted.Length]; for (int i = 0; i <= enkripted.Length - 1; i++) {

arrayint[i] = (int)enkripted[i]; }

BigInteger key = da; int prime = p;

for (int i = 0; i <= arrayint.Length - 1; i++) {

e = BigInteger.ModPow(arrayint[i], key, prime); arrayint[i] = (int)e;

}

/*char[] hasildekrip = new char[arrayint.Length]; for (int j = 0; j <= arrayint.Length - 1; j++) {

hasildekrip[j] = (char)arrayint[j]; }

string result = string.Join("", hasildekrip);

System.IO.File.WriteAllText("C:/Users/Asus/Documents/Visual Studio 2012/Projects/test1/dekripted.txt", result);*/

return arrayint; }

} }

Kode Program Class Embed

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Drawing;

using System.Drawing.Imaging;

namespace ConsoleApplication2 {

class embed {

int q = 0; int r = 0; int s = 0;


(3)

convertbiner binertext = new convertbiner();

public string replacebit(string a, int posisi, string b) {

var aStringBuilder = new StringBuilder(a); aStringBuilder.Remove(posisi-1, 1);

aStringBuilder.Insert(posisi-1, b); return aStringBuilder.ToString(); }

public int tanambiner(string binaryawal, char rgb, string text) {

string[] binertexta = binertext.splittext(text); //int c = 0;

int i; ulang:

for ( i = q; i < binertexta[r].Length; i++) {

string g;

string d = binertexta[r].Substring(i, 1); if (rgb == 'r')

{

g = replacebit(binaryawal, 8, d); q = q + 1;

}

else if (rgb == 'g') {

g = replacebit(binaryawal, 7, d); q = q + 1;

} else

{

g = replacebit(binaryawal, 6, d); q = q + 1;

}

// a2 = a+1;

return Convert.ToInt32(g, 2); }

// if ((rgb == 'g') || (rgb == 'b')) // {

if (r == binertexta.Length-1) {

return Convert.ToInt32(binaryawal, 2); }

q = 0; r++;

goto ulang;

// } /* else {

return Convert.ToInt32(binaryawal, 2); } */

}

public int ubahalpha(int alpha, string text) {


(4)

int t = s;

string[] binertexta = binertext.splittext(text); if (t <= binertexta.Length-1)

{

s = s + 1;

return ((binertexta[t].Length * 10) + 104); }

else

{

s = s + 1; return 255; }

}

public int menambahintensitas(int x) {

if (x < 128) {

x = x + 128; }

return x; }

public int mengurangiintensitas(int colorawal, int x) {

if (colorawal < 128) {

x = x - 128; }

return x; }

public int buatgambar(Bitmap img, string text, string filehasil) {

string r, g, b;

int nr, ng, nb, R, G, B, A; int na = 0;

//Bitmap img = new Bitmap(@"C:\Users\Asus\Documents\Visual Studio 2012\Projects\ls test\a.bmp");

Bitmap gr = new Bitmap(img.Width, img.Height);

for (int y = 0; y < img.Height; y++) {

for (int x = 0; x < img.Width; x++) {

//a = 0;

Color pixel = img.GetPixel(x, y); R = img.GetPixel(x, y).R;

G = img.GetPixel(x, y).G; B = img.GetPixel(x, y).B; A = img.GetPixel(x, y).A;

r = binertext.inttobiner(menambahintensitas(R)); g = binertext.inttobiner(menambahintensitas(G)); b = binertext.inttobiner(menambahintensitas(B)); //int s = 100;

nr = mengurangiintensitas( R, tanambiner(r, 'r', text)); ng = mengurangiintensitas( G, tanambiner(g, 'g', text)); nb = mengurangiintensitas( B, tanambiner(b, 'b', text)); na = ubahalpha(A, text);


(5)

gr.SetPixel(x, y, Color.FromArgb(na, nr, ng, nb)); // using (Graphics gfx = Graphics.FromImage(bitmap) //buat gambar } }

//img.DrawToImage(img, new Rectangle(0, 0, img.Width, img.Height)); //gr.Save("c:/temp/hasil.bmp", ImageFormat.Bmp);

gr.Save(filehasil); return 0;

} } }

Kode Program Class Ekstrak

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Drawing;

namespace ConsoleApplication2 {

class ekstrak {

//Bitmap img = new Bitmap(@"C:\Users\Asus\Documents\Visual Studio 2012\Projects\ls test\hasil.bmp");

convertbiner binertext = new convertbiner(); embed intensitas = new embed();

public string ambilbiner(string binary, char rgb) {

string g; if (rgb == 'r') {

g = binary.Substring(7, 1); return g;

}

else if (rgb == 'g') {

g = binary.Substring(6, 1); return g;

} else {

g = binary.Substring(5, 1); return g;

} }


(6)

public int ekstrakdata(Bitmap img, string filehasil) {

int R, G, B, A; int a = 0; int i = 0; int j = 0;

string r, g, b, fr, fg, fb; string q = "";

//int s = 0;

//string stringa = "";

int[] stringa = new int[img.Height * img.Width]; for (int y = 0; y < img.Height; y++)

{

for (int x = 0; x < img.Width; x++) {

Color pixel = img.GetPixel(x, y); R = img.GetPixel(x, y).R;

G = img.GetPixel(x, y).G; B = img.GetPixel(x, y).B; A = img.GetPixel(x, y).A;

r = binertext.inttobiner(intensitas.menambahintensitas(R)); g = binertext.inttobiner(intensitas.menambahintensitas(G)); b = binertext.inttobiner(intensitas.menambahintensitas(B));

if ( A == 255) {

stringa[i] = A; i++;

} else

{

a = (A - 104) / 10; stringa[i] = a; i++;

j++; }

fr = ambilbiner(r, 'r'); fg = ambilbiner(g, 'g'); fb = ambilbiner(b, 'b'); //stringa[i] = a;

//stringa += string.Join("", a); q += string.Join("", fr, fg, fb);

} }

// string[] stringb = stringa.Split(';');

int z; int v = 0;

int[] intrgb = new int[j];

for (int l = 0; l <= stringa.Length; l++) {

//z = Int32.Parse(stringb[i]); z = stringa[l];


(7)

{

break; }

intrgb[l] = Convert.ToInt32(q.Substring(v, z), 2); v += (z );

}

string result = string.Join(";", intrgb); // binary to int

// int to text file

System.IO.File.WriteAllText(filehasil, result);

return 0; }

} }

Kode Program Class Kripto

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Numerics;

namespace test1 {

public class kripto {

public string gettext(string path) {

return System.IO.File.ReadAllText(path); }

public int random(int a) {

Random rand = new Random(); if (a < 256)

{

int p = rand.Next(256, 25000); return p;

} else

{

int p = rand.Next(a, 25000); return p;

} }

public int rand(int b) {

Random rand = new Random(); int p = rand.Next(2, b); return p;

}

public bool test(int p, int b, double m) {

int a = rand(p); int j = 0;

double z = Math.Pow(a, m) % p; if ((z == 1) || (z == p - 1)) {


(8)

ulang4:

if ((j > 0) && (z == 1)) {

return false; }

j = j + 1;

if ((j < b) && (z != p -1)) {

z = Math.Pow(z, 2) % p; goto ulang4;

}

if (z == p -1) {

if ((j == b) && (z != p - 1)) {

return false; }

return true; }

return true; }

return false; }

public int prima(int textlenght) {

ganjil: int cek = 0;

int p =random(textlenght); if (p % 2 == 0)

{

if (p == 25000) { p--; } else p++; }

if ((p % 3 == 0) || (p % 5 == 0) || (p % 7 == 0) || (p % 11 == 0) || (p % 13 == 0) || (p % 17 == 0) || (p % 19 == 0))

{

goto ganjil; }

int b = 0; double m = 0; do

{

b++;

m = (p - 1) / Math.Pow(2, b); } while (m % 2 == 0);

do

{

if (test(p, b, m) == true) {

cek++; }

else goto ganjil; } while (cek <= 2000);


(9)

//Console.WriteLine("m ="+m); return p;

}

public int kea(int p) {

int b = p - 1; int c = 0; int a = 0; int eA = 0; do

{

eA = rand(b); a = GCD(b,eA, c); } while (a != 1); return eA;

}

public BigInteger kda(int p, int eA) {

BigInteger p1 = p - 1, eA1 = eA; BigInteger a = p1, da = 0, b = 1; while (eA1 > 0)

{

BigInteger t = a / eA1, x = eA1; eA1 = a % x;

a = x; x = b;

b = da - t * x; da = x;

}

da %= p1;

if (da < 0) da = (da + p1) % p1; return da;

}

public int GCD(int b, int A, int c) {

c = b % A; while (c != 0) {

b = A; A = c; c = b % A;

}

return A; }

} }


(10)

(SEPTIAN MAIHADI PUTRA LUBIS)

DATA PRIBADI

Nama Lengkap : Septian Maihadi Putra Lubis Nama Panggilan : Septian

Tempat/Tanggal Lahir: Tebing Tinggi / 20 September 1991 Jenis Kelamin : Pria

Agama : Islam

Warga Negara : Indonesia

Alamat : Jl. Abdul Hakim Gang Mustika No. 1B, Medan

HP : 081360145106

E-mail : [email protected] Status : belum menikah

RIWAYAT PENDIDIKAN

Sekolah Menengah Atas

SMA Perguruan Nasional Ir. H Djuanda, Tebing Tinggi 2006-2009

Sekolah Menengah Pertama

SMA Perguruan Nasional Ir. H Djuanda, Tebing Tinggi 2003-2006

Sekolah Dasar

SMA Perguruan Nasional Ir. H Djuanda, Tebing Tinggi 1995-2003

Programming: C++, C#, Prolog Database : MySQL

IDE : Visual Studio 2012

Software : Ms. Office, RPG Maker Vx Ace, KEMAMPUAN KOMPUTER


(11)

PENGALAMAN KERJA

No Instansi/Lembaga Jabatan/Posisi Tahun

1 Program Studi S1 Ilmu

Komputer Fasilkom-TI USU Asisten Laboratorium 2012-2014

SEMINAR

No. Seminar Tahun

1 Seminar Demo Software dan Diskusi Panel Integrasi Agent Based Model

(ABM) dan Geographic Information System (GIS) 2011 2 Seminar Nasional Creative Animation dan Gaming Industry 2013


(12)

DAFTAR PUSTAKA

Ade, A. 2011. Studi Perbandingan Kinerja Algoritma Kompresi Shannon-Fano Dan Huffman Pada Citra Digital. Skripsi. Medan, Indonesia : Universitas Sumatera Utara.

Ayushi. 2010. A Sysmetric Key Cryptographic Algorithm. International Journal of

Computer Aplications. Volume 1-No.14.

Cole, E. 2003. Hiding in Plain Sight: Steganography and Art of Convert Communication. Indianapolis, indiana. Willey Publishing, Inc.

Degraf, G.A., Pellenz, M.D., Santin, A.O., & Maziero, C.A. 2007. A Three Pass Protocol for

Cryptography Based on Padding for Wireless Network. Pontificial Catholic

University of Parana.

Gellert, W. 1975.The VNR Concise Encyclopedia of Mathematics.Van Nostrand Reinhold Company: New York.

Jasril. Marzuki, I,. Rahmat, F,. 2012. Modificattion Four Bits of Uncomppressed Steganography Using Least Significant Bit (LSB) Method. ICACSIS 2012. 287-292

Klitz, E. dan Pietzak, K. 2010. Leakage Resilient Elgamal Enkription. Journal of centrum

Winkunde and Informatica. Nedherland.

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

M. Dobsicek. 2004, Extended steganographic system, 2004 8th International Student

Conference on Electrical Engineering. FEE CTU.

Mollin, R. A. 2002. RSA and Public-Key Cryptography.2nd Edition. Chapman & Hall/CRC: Florida.

Mollin, R. A. 2007. An Introduction to Cryptography.2nd Edition. Chapman & Hall/CRC: Florida.

Munir, R. 2007. Matematika Diskrit. Edisi ke-3. Informatika: Bandung.

Neeta, D, Shehal, K. and Jacobs, D. 2007. Implementation of LSB Steganography and Its Evaluation for Various Bits. Digital Information Management, 2006 1st


(13)

Pramana, Tengku. S. 2013. Implenemtasi Massey-Omura Cryptosystem dan Lehman Prime

Generator untuk Keamanan E-mail Pada Mozilla Thunderbird. Skripsi. Medan:

Universitas Sumatera Utara

Prasetyo, E.2011.Pengolahan Citra Digital dan Aplikasinya menggunakan Matlab. Yogyakarta: Andi Offset.

Pusparani, N. A. 2009. Analisa RSA dengan Penambahan Chinese Remainder Theorem untuk mempercepat Proses. Skripsi. Departemen Ilmu Komputer. Institut Pertanian Bogor: Bogor.

Reza, M. 2012. Simulasi Pengamanan File Teks dengan Menggunakan Algoritma

Massey-Omura. Skripsi. Medan: Universitas Sumatera Utara.

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

Sharma, P., Gupta, A.K., dan Sherma, S. 2012. Intesified ElGamal Cryptosystem (IEC).

Internatioanal Journal of Advences in Engineering and Technology.

ISSN:2331-1963.

Simamora, Hermanda. I. T. 2013. Implementassi Algoritma Elgamal dengan Pembangkit Bilangan Prima Lehman dan Algoritma Least Significant Bit (LSB) dengan Cover

Image Bitmap untuk Keamanan Data Text. Skripsi. Medan: Universitas Sumatera

Utara.

van Tilborg, H.C.A., & Jajodia, S. 2011. Encyclopedia of Cryptography and Security. Springer: New York

Verma, V., Poonam., & Chawla, R. 2014. An Enchanced Least Significat Bit Steganography Method Using Midpoint Circle Approach. International Conference on

Communication and Signal Processing: 105-108.

Winton, R. 2007. Enhancing the Massey-Omura Cryptosystem. Journal of Mathematical

Science and Mathematics Education. 21-29

Zwillinger, D. 2003. CRC: Standard Mathematical Tables and Formulae. Chapman & Hall/CRC: New York.


(14)

BAB III

ANALISI DAN PERANCANGAN

3.1 Analisis Sistem

Analisis sistem merupakan tahap awal untuk pengembangan sistem. Yang dilakukan untuk memahami kebutuhaan sistem dan gambaran tugas-tugas yang akan dikerjakan sistem. Dalam tahap ini akan dilakukan pemodelan rancang bangun sistem yang akan diimplementasi dalan bentuk nyata.

3.1.1 Analisis Masalah

Adanya kriptografi sebagai metode untuk mengirim suatu pesan dengan aman, chipertext

yang dihasilkan oleh metode kriptografi merupakan kumpulan karakter acak yang

mengundang kecurigaan.

Sehingga untuk meningkatkan pengamanan pesan dilakukan penggabungan kriptografi dan steganografi. Algoritma kriptografi yang digunakan adlah Massey-Omura dengan algortima sreganografi Least Significant Bit (LSB) modifikasi tempat penyisipan.

Dalam analisis masalah, dapat digambarkan lebih jelas melalui Diagram Ishikawa (Fishbone Diagram) yang dapat dilihat pada Gambar 3.1.


(15)

Pengamanan pesan Algoritma Kriptografi Methods People Teknik Steganografi Hanya menggunakan satu teknik untuk menyembunyikan pesan Sudah banyak algoritma kriptografi yang tidak aman

Proses enkripsi dan dekripsi dilakukan dengan

algoritma Massey-Omura

yang tidak ada pendistribusian kunci Proses embedding dan

extracting dilakukan dengan algoritma steganografi Least significant bit modifikasi

tempat penyimpanan Kekhawatiran akan

pembobolan pesan

Gambar 3.1 Diagram Ishikawa Analisis Masalah 3.1.2 Analisis Persyaratan

Analisis persyaratan merupakan tahap yang penting, yaitu menentukan persyaratan dari sistem seperti kebutuhan dari pengguna. Analisis Persyaratan terbagi dua, yaitu analisis fungsional dan analisis nonfungsional

3.1.2.1 Analisis Fungsional

Analisis fungsional dilakukan untuk dapat mendeskripsikan tentang aktivitas dan layanan apa saja yang harus disediakan ole sebuah sistem. Berikut adalah aktivitas yang dapat dilakukan oleh sistem.

1. File gambar yang digunakan hanya berFormat Bitmap (*.bmp) dan jumlah

minimal pixel pada gambar berjumlah (((jumlah karakter) x 5)+1) pixel.

2. File yang akan di enkripsi adalah berupa pesan teks dengan Format *.txt dengan

karakter ASCII dan jumlah karakter terbatas hanya sampai 10.000 karakter.

3. Maksimal jumlah karakter yang dapat di embed adalah (jumlah pixel / 5 ) karakter. 4. Metode yang digunakan untuk membangkitkan bilangan prima adalah metode

Rabin miller.

5. Sistem mengenkripsi pesan menggunakan algoritma Massey-Omura kemudian menyisipkannya ke gambar dengan algoritma LSB modifikasi penyisipan tempat. 6. Karakter yang digunakan berdasarkan table ASCII 127


(16)

3.1.2.2 Analisis Nonfungsional

Analisis nonfungsional dilakukan untuk dapat mendeskripsikan mengenai fitur, karakteristik dan batasan lainnya yang menentukan kepuasan pengguna terhadap sistem.

1. PerForma

Sistem yang akan dibangun harus dapat menunjukan hasil dari embedding dan

extracting.

2. Mudah dipelajari dan digunakan

Sistem yang akan dibangun harus memiliki tampilan yang user friendly dan juga memiliki respon yang baik dalam proses penggunaannya.

3. Hemat biaya

Sistem yang akan dibangun bebas digunakan dan tidak membutuhkan perangkat lain.

4. Dokumentasi

Sistem yang akan dibangun dapat menyimpan pesan hasil enkripsi sesuai algoritma kriptografi serta dapat menyimpan citra hasil embedding sesuai metode steganografi.

5. Manajemen kualitas

Sistem yang akan dibangun memiliki kualitas yang baik. 6. Kontrol

Sistem yang akan dibangun menampilkan pesan error untuk setiap input yang tidak sesuai dengan sistem.

3.1.3 Pemodelan Persyaratan Sistem Dengan Use Case

Pada dasarnya Use Case adalah urutan langkah-langkah yang saling terkait untuk satu tujuan. Sedangkan Use Case Diagram adalah suatu diagram yang menggambarkan interaksi antar sistem dengan pengguna. Pemodelan Use Case merupakan pemodelan yang baik untuk menentukan, mendokumentasikan dan memahami persyaratan fungsional.

Use Case diawali oleh pengguna yang disebut Actor yang menginisiasi kegiatan

sistem yaitu sebuah use case. Yang berperan sebagai Actor dalam sistem ini terdiri dari pengirim pesan (sender) dan penerima pesan (recipient).

Sebelum melakukan pengiriman pesan sender dan recipient menyepakati sebuah bilangan prima, bilangan prima ini akan digunakan untuk proses enkripsi dan dekripsi.


(17)

Generate Prime

Encryption1 Generate Key A

Embedding1

Extracting1

Generate Key B

Encryption2

Embedding2 Extracting2

Decryption1

Embedding3 Extracting3

Decryption2 System

Sender Recipient

Bilangan prima di distribusikan dengan cara yang berbeda dengan cara pengiriman pesan, seperti interaksi langsung antar sender dengan recipient atau dengan atau dengan pengiriman melalui fedex. Bilangan prima yang di sepakati dapat di gunakan terus menerus dalam penbangkit kunci enkripsi dan dekripsi selama tidak lebih kecil dari panjang pesan yang akan di enkripsi. User dapat menggunakan proses Generate prime untuk membantu mencari bilangan prima yang dibutuhkan.

Proses yang dilakuan sender yaitu Generate Prime, Generate Key A, Encryption1,

Embedding1, Extracting2, Decryption1, Embedding3. Sedangkan recipient melakukan

proses Extracting1, Generate Key B, encryption2, Embedding2, Extracting3, Decryption2. Pada proses Generate Prime nilai bilangan prima akan disimbolkan sebagai (p), pada proses

Generate Key A, kunci enkripsi akan disimbolkan sebagai (eA) dan kunci dekripsi

disimbolkan sebagai (dA), sedangkan pada Generate Key B, kunci enkripsi disimbolkan sebagai (eB) dan kunci dekripsi disimbolkan sebagai (dB).

Use Case diagram sistem ini dapat dilihatt pada gambar 3.2


(18)

Sender System

Memilih menu Start Menampilkan halaman enkrip1 Memilih atau

menginput langsung Plaintext

Mengeksekusi tombol Generate

Membangkitkan dan menampilkan bilangan

prima

Melihat bilangan prima p

Menampilkan Plaintext 3.1.3.1 Spesifikasi Use Case

Spesifikasi Use Case Generate Prime dapat dilihat pada Tabel 3.1 Tabel 3.1 Spesifikasi Use Case Generate Prime

Name Generate Prime Actors Sender

Trigger Sender memilih menu Start

Preconditions Sender memilih atau menginput langsung Plaintext Postconditions Sender mendapatkan nilai bilangan prima p

Success Scenario 1. Sender memilih menu Start

2. Sistem menampilkan halaman enkripsi1 3. Sender memasukkan data Plaintext

4. Sender mengeksekusi tombol generate

5. Sistem membangkitkan bilangan prima dan menampilkan bilangan prima p

6. Sender dapat melihat bilangan prima p Alternative Flow -

Activity Diagram untuk Generate Prime dapat dilihat pada Gambar 3.3


(19)

Sender System

Memiliki bilangan prima p Mengeksekusi tombol

Generate

Membangkitkan dan menampilkan kunci enkripsi eA dan kunci

dekripsi dA Melihat nilai eA dan dA

Spesifikasi Use Case Generate Key A dapat dilihat pada table 3.2

Tabel 3.2 Spesifikasi Use Case untuk Generate Key A

Name Generate Key A Actors Sender

Trigger Sender memiliki bilangan prima p Preconditions Sender mengeksekusi tombol Generate

Postconditions Sender mendapatkan nilai kunci Enkripsi eA dan nilai kunci Dekripsi dA Success Scenario 1. Sender memiliki bilangan prima p

2. Sender mengeksekusi tombol generate

3. Sistem membangkitkan dan menampilkan kunci enkripsi eA dan kunci dekripsi dA

4. Sender dapat melihat nilai eA dan dA Alternative Flow -

Activity Diagram untuk Generate Key A dapat dilihat pada Gambar 3.4


(20)

Sender System

Memiliki Plaintext, bilangan prima p, kunci

enkripsi eA, dan kunci dekripsi dA

Mengeksekusi tombol Enkripsi1

Melakukan proses Enkrip Mendapatkan

Ciphertext1

Spesifikasi Use Case Encryption1 dapat dilihat pada table 3.3

Tabel 3.3 Spesifikasi Use Case untuk Encryption1

Name Encryption1 Actors Sender

Trigger Sender memiliki Plaintext, bilangan prima p, kunci enkripsi eA dan kunci

dekripsi dA

Preconditions Sender mengeksekusi tombol Enkripsi1 Postconditions Sender mendapatkan Ciphertext1

Success Scenario 1. Sender memiliki Plaintext, bilangan prima p, kunci enkripsi eA dan

kunci dekripsi dA

2. Sender mengeksekusi tombol Enkripsi1

3. Sistem melakukan proses Enkrip 4. Sender mendapatkan Ciphertext1 Alternative Flow -

Activity Diagram untuk Encryption1 dapat dilihat pada Gambar 3.5


(21)

Sender System

Memilih Ciphertext1

Memilih gambar awal

Mengeksekusi tombol embed1

Mendapatkan gambar Embeded1

Menampilkan Cipertext1

Menampilkan gambar awal

Melakukan proses Embedding

Menampilkan gambar Embeded1

Melihat gambar embeded1

Spesifikasi Use Case Embedding1 dapat dilihat pada Tabel 3.4

Tabel 3.4 Spesifikasi Use Case untuk Embedding1

Name Embedding1 Actors Sender

Trigger Sender memiliki Ciphertext1 yang akan di embed

Preconditions Sender telah memilih gambar awal sebagai media penampung Ciphertext1

Postconditions Sender mendapatkan gambar Embeded1

Success Scenario 1. Sender memilih Ciphertext1 yang akan di Embed

2. Sistem menampilkan Ciphertext1 3. Sender memilih gambar awal

4. Sistem menampilkan gambar awal 5. Sender mengeksekusi tombol embed1

6. Sistem melakukan proses Embedding 7. Sender mendapatkan gambar Embeded1

8. Sistem menampilkan gambar Embeded1 9. Sender melihat gambar Embeded1 Alternative Flow -

Activity Diagram untuk Embedding1 dapat dilihat pada Gambar 3.6


(22)

Recipient System

Memilih gambar Embeded1 Mengeksekusi tombol

extract1 Mendapatkan

Ciphertext1

Menampilkan gambar Embeded1 Melakukan proses

Extracting

Spesifikasi Use Case Extracting1 dapat dilihat pada Table 3.5

Tabel 3.5 Spesifikasi Use Case untuk Extracting1

Name Extracting1 Actors Recipient

Trigger Recipient menerima gambar Embeded1

Preconditions Recipient telah memilih gambar Embeded1 untuk di extract Postconditions Recipient mendapatkan Ciphertext1

Success Scenario 1. Recipient memilih gambar Embeded1

2. Sistem menampilkan gambar Embeded1 3. Recipient mengeksekusi tombol Extract1

4. Sistem melakukan proses Extract 5. Recipient mendapatkan Ciphertext1 Alternative Flow -

Activity Diagram untuk Extracting1 dapat dilihat pada Gambar 3.7


(23)

Recipient System

Memiliki bilangan prima p Mengeksekusi tombol

Generate

Membangkitkan dan menampilkan kunci enkripsi eB dan kunci

dekripsi dB Melihat nilai eB dan dB

Spesifikasi Use Case Generate key B dapat dilihat pada Table 3.6

Tabel 3.6 Spesifikasi Use Case untuk Generate Key B

Name Generate Key B Actors Recipient

Trigger Recipient telah menginput bilangan prima p Preconditions Recipient mengeksekusi tombol Generate

Postconditions Recipient mendapatkan nilai kunci Enkripsi eB dan nilai kunci Dekripsi

dB

Success Scenario 1. Recipient menginput bilangan prima p

2. Recipient mengeksekusi tombol Generate

3. Sistem membangkitkan dan memanpilkan Kunci Enkripsi eB dan Kunci Dekripsi dB

4. Recipient dapat melihat nilai eB dan dB Alternative Flow -

Activity Diagram untuk Generate Key B dapat dilihat pada Gambar 3.8


(24)

Recipient System

Memiliki Ciphertext1, bilangan prima p, kunci

enkripsi eB, dan kunci dekripsi dB

Mengeksekusi tombol Enkripsi2

Melakukan proses Enkrip

Mendapatkan Ciphertext2

Spesifikasi Use Case Encryption2 dapat dilihat pada table 3.7

Tabel 3.7 Spesifikasi Use Case untuk Encryption2

Name Encryption2 Actors Recipient

Trigger Recipient memiliki Ciphertext1, bilangan prima p, kunci enkripsi eB dan

kunci dekripsi dB

Preconditions Recipient mengeksekusi tombol Enkripsi2 Postconditions Recipient mendapatkan Ciphertext2

Success Scenario 1. Recipient memiliki Ciphertext1, bilangan prima p, kunci enkripsi eB

dan kunci dekripsi dB

2. Recipient mengeksekusi tombol Enkripsi2

3. Sistem melakukan proses Enkrip 4. Recipient mendapatkan Ciphertext2 Alternative Flow -

Activity Diagram untuk Encryption2 dapat dilihat pada Gambar 3.9


(25)

Recipient System

Memilih Ciphertext2

Memilih gambar Embeded1

Mengeksekusi tombol embed2

Mendapatkan gambar Embeded2

Menampilkan Cipertext2

Menampilkan gambar Embeded1

Melakukan proses Embedding

Menampilkan gambar Embeded2

Melihat gambar embeded2

Spesifikasi Use Case Embedding2 dapat dilihat pada Tabel 3.8

Tabel 3.8 Spesifikasi Use Case untuk Embedding2

Name Embedding2 Actors Recipient

Trigger Recipient memiliki Ciphertext2 yang akan di embed

Preconditions Recipient telah memilih gambar Embeded1 sebagai media penampung Ciphertext2

Postconditions Recipient mendapatkan gambar Embeded2

Success Scenario 1. Recipient memilih Ciphertext2 yang akan di Embed

2. Sistem menampilkan Ciphertext2 3. Recipient memilih gambar Embeded1

4. Sistem menampilkan gambar Embeded1 5. Recipient mengeksekusi tombol embed2

6. Sistem melakukan proses Embedding 7. Recipient mendapatkan gambar Embeded2

8. Sistem menampilkan gambar Embeded2 9. Recipient melihat gambar Embeded2 Alternative Flow -

Activity Diagram untuk Embedding2 dapat dilihat pada Gambar 3.10


(26)

Sender System

Memilih gambar Embeded2 Mengeksekusi tombol

extract2 Mendapatkan

Ciphertext2

Menampilkan gambar Embeded2 Melakukan proses

Extracting

Spesifikasi Use Case Extracting2 dapat dilihat pada Table 3.9

Tabel 3.9 Spesifikasi Use Case untuk Extracting2

Name Extracting2 Actors Sender

Trigger Sender menerima gambar Embeded2

Preconditions Sender telah memilih gambar Embeded2 untuk di extract Postconditions Sender mendapatkan Ciphertext2

Success Scenario 1. Sender memilih gambar Embeded2

2. Sistem menampilkan gambar Embeded2 3. Sender mengeksekusi tombol Extract2

4. Sistem melakukan proses Extract 5. Sender mendapatkan Ciphertext2 Alternative Flow -

Activity Diagram untuk Extracting2 dapat dilihat pada Gambar 3.11


(27)

Sender System

Memilih Ciphertext2

Menginput Kunci dekripsi dA

Mendapatkan Ciphertext3

Menampilkan Ciphertext2

Melakukan proses Dekripsi Mengeksekusi tombol

Dekrip1

Spesifikasi Use Case Decryption1 dapat dilihat pada Table 3.10 Tabel 3.10 Spesifikasi Use Case Decryption1

Name Decryption1 Actors Sender

Trigger Sender memiliki Ciphertext2

Preconditions Sender telah memilih Ciphertext2 untuk di dekripsi Postconditions Sender mendapatkan Ciphertext3

Success Scenario 1. Sender memilih Ciphertext2

2. Sistem menampilkan Ciphertext2 3. Sender menginput kunci dekripsi dA

4. Sender mengeksekusi tombol Dekrip1

5. Sistem melakukan proses dekripsi 6. Sender mendapatkan Ciphertext3 Alternative Flow -

Activity Diagram untuk Decryption1 diliaht pada Gambar 3.12


(28)

Sender System

Memilih Ciphertext3

Memilih gambar Embeded2

Mengeksekusi tombol embed3

Mendapatkan gambar Embeded3

Menampilkan Cipertext3

Menampilkan gambar Embeded2

Melakukan proses Embedding

Menampilkan gambar Embeded3

Melihat gambar Embeded3

Spesifikasi Use Case Embedding3 dapat dilhat pada Tabel 3.11

Tabel 3.11 Spesifikasi Use Case Embedding3

Name Embedding3 Actors Sender

Trigger Sender memiliki Ciphertext3 yang akan di embed

Preconditions Sender telah memilih gambar Embeded2 sebagai media penampung Ciphertext3

Postconditions Sender mendapatkan gambar Embeded3

Success Scenario 1. Sender memilih Ciphertext3 yang akan di Embed

2. Sistem menampilkan Ciphertext3 3. Sender memilih gambar Embeded2

4. Sistem menampilkan gambar Embeded2 5. Sender mengeksekusi tombol embed3

6. Sistem melakukan proses Embedding 7. Sender mendapatkan gambar Embeded3

8. Sistem menampilkan gambar Embeded3 9. Sender melihat gambar Embeded3 Alternative Flow -

Activity Diagram untuk Embedding3 diliaht pada Gambar 3.13


(29)

Recipient System

Memilih gambar Embeded3 Mengeksekusi tombol

Extract3 Mendapatkan

Ciphertext3

Menampilkan gambar Embeded3 Melakukan proses

Extracting

Spesifikasi Use Case Extracting3 dapat dilhat pada Tabel 3.12

Tabel 3.12 Spesifikasi Use Case Extracting3

Name Extracting3 Actors Recipient

Trigger Recipient menerima gambar Embeded3

Preconditions Recipient telah memilih gambar Embeded3 untuk di extract Postconditions Recipient mendapatkan Ciphertext3

Success Scenario 1. Recipient memilih gambar Embeded3

2. Sistem menampilkan gambar Embeded3 3. Recipient mengeksekusi tombol Extract3

4. Sistem melakukan proses Extract 5. Recipient mendapatkan Ciphertext3 Alternative Flow -

Activity Diagram untuk Extracting3 diliaht pada Gambar 3.14


(30)

Recipient System

Memilih Ciphertext3

Menginput Kunci dekripsi db

Mendapatkan Plaintext

Menampilkan Ciphertext3

Melakukan proses Dekripsi Mengeksekusi tombol

Dekrip2

Menampilkan Plaintext

Melihat plaintext

Spesifikasi Use Case Decryption2 dapat dilihat pada Table 3.13 Tabel 3.13 Spesifikasi Use Case Decryption2

Name Decryption2 Actors Recipient

Trigger Recipient memiliki Ciphertext3

Preconditions Recipient telah memilih Ciphertext3 untuk di dekripsi Postconditions Recipient mendapatkan Plaintext

Success Scenario 1. Recipient memilih Ciphertext3

2. Sistem menampilkan Ciphertext3 3. Recipient menginput kunci dekripsi db

4. Recipient mengeksekusi tombol Dekrip2

5. Sistem melakukan proses dekripsi 6. Recipient mendapatkan Plaintext

7. Sistem menampilkan Plaintext

8. Recipient melihat Plaintext Alternative Flow -

Activity Diagram untuk Decryption2 diliaht pada Gambar 3.15


(31)

3.1.4 Pseudocode

Pseudocode adalah kode atau bentuk penulisan algoritma dengan struktur pemograman yang

sederhana dan dapat dimengerti manusia sehingga memudahkan dalam memahami suatu algoritma.

3.1.4.1 Pseudocode Proses Generate Prime Berikut merupakan Pseudocode Generate Prime

Proses Generate Prime dimulai dengan mendapatkan bilangan acak p dari panjang karakter hingga 25000. Kemudian hitung nilai b dan m, lalu bilangan acak di periksa dengan fungsi test. Jika hasil pemeriksaan adalah true maka bilangan acak p merupakan bilangan prima.

3.1.4.2 Pseudocode Proses Rabin Miller Berikut merupakan Pseudocode Rabin Miller

Ganjil:

p = random(textlenght) b = 0

Lakukan b++

m = (p – 1) / pow(2,b) ketika m genap

if test(p, b, m) = true returm p

goto Ganjil

a = bilangan acak < p j = 0

z = pow(a, m) % p

jika z == 1 atau z == p-1 ulang:

jika j > 0 dan z == 1 retirn false j = j + 1

jika j < b dan z != p-1 z = pow(z, 2) % p goto ulang

jika z == p-1

jika j == b dan z != p-1 return false

return true return true


(32)

Proses rabinmiller dimulai dengan mencari bilangan acak a yang lebih kecil dari p. kemudian menghitung z. selanjutnya dengan mengikuti langkah-langkah pada metode pengujian bilangan prima Rabin Miller.

3.1.4.3 Pseudocode Proses Euclidean GCD Berikut merupakan Pseudocode Euclidean GCD

Proses Euclidean GCD digunakan saat mencari kunci enkripsi. untuk mencari relatif prima dari p -1.

3.1.4.4 Pseudocode Proses Generate Kunci Enkripsi

Berikut merupakan pseudocode proses Generate Kunci Enkripsi

Proses Generate Kunci Enkripsi dilakukan dengan mencari relative prima dari p – 1 menggunakan metode Euclidean GCD.

3.1.4.5 Pseudocode Proses Generate Kunci Dekripsi

Berikut merupakan pseudocode proses Generate Kunci Dekripsi

c = (b)% a ketika c != 0

b = a a = c c = b % a return a

P = bilangan prima Lakukan

eA = bilangan acak antara 2 dan p -1 a = GCD((p – 1), eA)

ketika a != 1 return eA

P1 = p - 1, eA1 = eA, a = p1, da = 0, b = 1 Ketika eA1 > 0

t = a / eA1, x = eA1 eA1 = a % x;

a = x x = b

b = da – t * x da = x

da %= p1;

jika da < 0 da = (da + p1) % p1 return da


(33)

Proses Generate Kunci Dekripsi dilakukan dengan mencari invers modulo dari kunci enkripsi eA jika di modulokan dengan p – 1.

3.1.4.6 Pseudocode Proses Enkripsi

Berikut merupakan pseudocode proses enkripsi

Proses enkripsi dilakukan setelah tedapat plain text, bilangan prima p, kunci enkripsi ea. Proses enkripsi dilakukan melalui perhitungan C = meA mod p dimana m adalah nilai ascii dari karakter di plain text. Hasil perhitungan akan dimasukkan kembali kedalam array untuk dapat dip roses lebih lanjut.

3.1.4.7 Pseudocode Proses Dekripsi

Berikut merupakan pseudocode proses dekripsi

Proses dekripsi dilakukan dengan melakukan perhitungan C = mdA mod p dimana m merupakan nilai ascii pada karakter di plain text yang telah di enkripsi. Hasil perhitungan akan dimasukkan kembali kedalam array untuk dapat dip roses lebih lanjut.

ea = kunci enkripsi prime = bilangan prima

arrayint[] = ascii tiap karakter dari plain text for (i = 0; i <= arrayint.lenght -1; i++)

e = ModPow(arrayint[i], key, prime) arrayint[i] = e

return arrayint

da = kunci dekripsi prime = bilangan prima

enkripted[] = cipher text dalam bentuk array for (i = 0; i <= enkripted.lenght -1; i++)

e = ModPow(enkripted[i], key, prime) arrayint[i] = e


(34)

3.1.4.8 Pseudocode Proses Embedding

Berikut merupakan pseudocode proses Embedding

Pada proses embedding perlu diketahui nilai biner dari cipher text dan nilai biner dari nilai RGB pixel tempat penyisipan. Proses akan mengambil 1 digit biner dari cipher text kemudian menyisipkannya dinilai biner RGB. Digit penyisipan tergantung warna dari nilai RGB yang menjadi tempat penyisipan, apabila nilai R maka akan berada pada digit ke-8, bila nilai G, maka akan berada pada digit ke-7, bila nilai B maka akan berada pada digit ke 6. Proses akan terus berulang sampai semua pixel diproses. Apabila digit yang mau disisipkan telah habis maka proses akan mengembalikan nilai awal dari nilai RGB.

Binertexta[] = array dari cipher text dalam bentuk biner q = 0

r = 0

rgb = warna yang akan disisipkan

binaryawal = nilai binary dari nilai rgb dari pixel ulang:

For i = q; binertexta[r].lenght; i++ d = binertexta[r].substring(i,1)

// d = nilai dari digit biner pada yang akan disisipkan jika rgb == r //jika binerawal dari nilai Red

g = replacebit(binaryawal, 8, d)

/*replacebit digunakan untuk menggantikan digit ke 8 pada biner awal dengan d*/

q = q +1

else jika rgb == g //jika binerawal dari nilai blue g = replacebit(binaryawal, 7, d)

/*replacebit digunakan untuk menggantikan digit ke 7 pada biner awal dengan d*/

q = q +1 else

g = replacebit(binaryawal, 6, d)

/*replacebit digunakan untuk menggantikan digit ke 6 pada biner awal dengan d*/

q = q +1 return g

if r == binertexta.length -1 return binaryawal q = 0

r++


(35)

3.1.4.8 Pseudocode Proses Extracting

Berikut merupakan pseudocode proses extracting

Proses Extracting dilakukan dengan mengambil satu digit biner dari nilai RGB pixel, tempat pengambilam tergantng pada warna dari nilai RGB yang menjadi tempat pengambil, apabila nilai R maka tempat pengambilan pada digit ke 8, bila nilai G maka tempat pengambilan pada digit ke 7, bila nilai B maka tempat pengambilan pada digit ke 6, proses akan diulang sampai semua digit dari pixel di ambil.

binary = nilai biner dari nilai rgb dari pixel rgb = warna yang akan diekstrak nilainya

jika rgb == r

g = binary.substring(7,1) return g;

else jika rgb == g

g = binary.substring(6,1) return g;

else

g = binary.substring(5,1) return g;


(36)

Start

Generate Prime (Sender)

Generate Key A (Sender) Encryption 1 (Sender) Embedding 1 (Sender) Kirim Embedded image Extracting 1 (Recipient)

Generate key B (Recipient) Encryption 2 (Recipient) Embedding 2 (Recipient) Kirim Embedded image Extracting 2 (Sender) Decryption 1 (Sender) Embedding 3 (Sender) Kirim Embedded image Extracting 3 (Recipient) Decryption 2 (Recipient) Output Plaint text End

3.1.5 Flowchart Sistem

Flowchart keseluruhan sistem dapat dilihat pada Gambar 3.16

Gambar 3.16 Flowchart Keseluruhan Sistem

Pada Gambar 3.16 digambarkan bahwa sistem yang dibuat akan dapat melakukan enkripsi dan dekripsi pesan menggunakan algoritma kriptografi Massey Omura serta dapat melakukan embedding dan extracting dengan menggunakan algoritma steganografi Least

Significant Bit modifikasi tempat penyisipan. Pada algoritma Massey Omura digunakan

metode Three Pass Protocol yang membuat terjadinya proses pengiriman seperti yang ditunjukkan pada kotak proses berwarna abu-abu. Algoritma Massey Omura mencakup proses Generate prime, Generate Key A, Encryption 1, Generate Key B, Encryption 2,

Decryption 1, Decryption 2. Algoritma Least Significant Bit modifikasi tempat penyisipan

mencakup proses Embedding 1, Extracting 1, Embedding 2, Extracting 2, Embedding 3,


(37)

Start

Random nilai p > plain text Length; b = 0;

b++; m = (p – 1) / pow(2, b);

If m mod 2 = 0

If

Rabinmillertest (p, b, m) = true

Output p

End

True

False

True

False Input

Plain text 3.1.5.1 Flowchart Generate Prime

Flowchart proses Generate Prime dapat dilihat pada Gambar 3.17

Gambar 3.17 Flowchart Generate Prime

Pada Gambar 3.17 mengambarkan proses Generate Prime. Bilangan prima yang dihasilkan harus memenuhi syarat p > jumlah karaktet pada plain text dan harus diuji menggunakan metode Rabin Miller.


(38)

Start

Random 2 < eA < p-1 Input

p

A = GCD((p – 1), eA)

If a != 1

dA = eA-1 (mod p – 1)

Output eA, dA

True

False

End 3.1.5.2 Flowchart Generate Key A (Sender)

Flowchart proses Generate Key A dapat dilihat pada Gambar 3.18

Gambar 3.18 Flowchart Generate Key A

Pada Gambar 3.18 menggambarkan proses Generate kunci enkripsi (eA) dan kunci dekripsi (dA). Dimana proses dimulai dengan memasukkan bilangan prima (p) kemudian mencari nilai eA secara acak dengan batasan 2 < eA < p-1 selanjutnya diuji apakah eA merupakan relaif prima dari p – 1 (GCD(p -1, eA) = 1) jika tidak maka nilai eA akan dicari secara acak kembali dan diuji kembali, jika ya maka nilai dA akan di hitung dimana dA merupakan invers modulo dari eA jika dimodulokan dengan p – 1. Kemudian akan menampilkan nilai eA dan dA.


(39)

Start

Input p; eA; Plaintext

m = konversi Plaintext ke ASCII

C1 = meA mod p

Output C1

End

Start

Input Cipertext1; Gambar awal;

Bace pixel citra

Embedding Ciphertext1 dengan metode LSB

modifikasi tempat penyisipan

Petakan menjadi Image baru

Simpan Embeded1.bmp

Output Embeded1.bmp

End 3.1.5.3 Flowchart Encryption1 (Sender)

Flowchart proses enkripsi1 dapat dilihat pada Gambar 3.19

Gambar 3.19 Flowchart Encryption 1

Pada Gambar 3.19 menggambarkan proses Encryption 1 yang dilakukan oleh sender, dimulai dengan input p = bilangan prima, eA = kunci enkripsi, plaintext = text yang akan dienkripsi.

Plaintext akan di konversi untuk mendapatkan nilai ASCII karakter, kemudian dihitung,

sehingga mendapatkan c1 = Ciphertext1. 3.1.5.4 Flowchart Embedding1 (Sender)

Flowchart proses Embedding1 dapat dilihat pada Gambar 3.20

Gambar 3.20 Flowchart Embedding1

Pada Gambar 3.20 menggambarkan proses embedding1 yang dilakukan oleh Sender dimulai dengan input Ciphertext1, Gambar awal, kemudian mengambil nilai RGB pada pixel.


(40)

Start Input Embeded1.bmp

Baca nilai pixel pada Embeded1.bmp

Ambil Ciphertext1 pada gambar Embeded1.bmp

sesuai dengan metode LSB modifikasi tempat

Output Ciphertext1

End

Selanjutnya dilakukan penyisipan dengan metode LSB modifikasi tempat penyisipan, penyisipan dilakukan pada bit ke-8 nilai biner RED, pada bit ke-7 nilai biner GREEN, pada bit ke-6 nilai biner BLUE, kemudian hasil penyisipan dipetakan menjadi image baru lalu disimpan dengan nama “Embeded1.bmp”.

3.1.5.5 Flowchart Extracting1 (Sender)

Flowchart proses Extracting1 dapat dilihat pada Gambar 3.21

Gambar 3.21 Flowchart Extracting1

Pada Gambar 3.21 menggambarkan proses Extracting1 yang dilakukan oleh Recipient setelah menerima gambar dari Sender. Proses Extracting1 dimulai dengan input gambar “Embeded1.bmp”, kemudian dilakukan pengambilan Ciphertext1 dengan metode LSB

modifikasi tempat penyisipan, yang dimana tempat pengambilan nilai ada dibit ke-8 nilai biner RED, bit ke-7 nilai biner GREEN, bit ke-6 nilai biner Blue.


(41)

Start

Random 2 < eB < p-1 Input

p

A = GCD((p – 1), eB)

If a != 1

dB = eB-1 (mod p 1)

Output eB, dB

True

False

End 3.1.5.6 Flowchart Generate Key B (Recipient)

Flowchart proses Generate Key B dapat dilihat pada Gambar 3.22

Gambar 3.22 Flowchart Generate Key B

Pada Gambar 3.22 menggambarkan proses Generate kunci enkripsi (eB) dan kunci dekripsi (dB). Dimana proses dimulai dengan memasukkan bilangan prima (p) kemudian mencari nilai eB secara acak dengan batasan 2 < eB < p-1 selanjutnya di uji apakah eB merupakan relaif prima dari p – 1 (GCD(p -1, eB) = 1) jika tidak maka nilai eB akan dicari secara acak kembali dan diuji kembali, jika ya maka nilai dB akan dihitung dimana dB merupakan invers modulo dari eB jika dimodulokan dengan p – 1. Kemudian akan menampilkan nilai eB dan dB.


(42)

Start

Input p; eB; Ciphertext1;

C2 = C1eB mod p

Output C2

End

Start

Input Cipertext2; Embeded1.bmp;

Bace pixel citra

Embedding Ciphertext2 dengan metode LSB

modifikasi tempat penyisipan

Petakan menjadi Image baru

Simpan Embeded2.bmp

Output Embeded2.bmp

End 3.1.5.7 Flowchart Encryption2 (Recipient)

Flowchart proses Encryption2 dapat dilihat pada Gambar 3.23

Gambar 3.23 Flowchart Encryption2

Pada Gambar 3.23 menggambarkan proses Encryption2 yang dilakukan oleh Recipient dimulai dengan input bilangan prima(p), kunci enkripsi(eB), dan Ciphertext1. Kemudian dilakukan perhitungan sehingga mendapatkan Ciphertext2(C2).

3.1.5.8 Flowchart Embedding2 (Recipient)

Flowchart proses Embedding2 dapat dilihat pada Gambar 3.24

Gambar 3.24 Flowchart Embedding2

Pada Gambar 3.24 menggambarkan proses Embedding2 yang dilakukan oleh Recipient yang dimulai dengan input Ciphertext2 dan gambar “Embeded1.bmp” kemudian dilakukan pembacaan nilai pixel pada gambar. Selanjutnya dilakukan proses penyisipan dengan metode


(43)

Start Input Embeded2.bmp

Baca nilai pixel pada Embeded2.bmp

Ambil Ciphertext2 pada gambar Embeded2.bmp

sesuai dengan metode LSB modifikasi tempat

Output Ciphertext2

End

Start

Input p; Ciphertext2;

dA;

C3 = C2dA mod p

Output C3 = Cipertext3

End

LSB modifikasi tempat penyisipan, penyisipan dilakukan pada bit ke-8 nilai biner RED, pada bit ke-7 nilai biner GREEN, pada bit ke-6 nilai biner BLUE, kemudian dipetakan menjadi gambar baru lalu di simpan dengan nama “Embeded2.bmp”.

3.1.5.9 Flowchart Extracting2 (Sender)

Flowchart proses Extracting2 dapat dilihat pada Gambar 3.25

Gambar 3.25 Flowchart Extracting2

Pada Gambar 3.25 menggambarkan proses Extracting2 yang dilakukan oleh Sender setelah menerima gambar “Embeded2.bmp” dari Recipient. Proses Extracting2 dimulai dengan input

gambar “Embeded2.bmp”, kemudian dilakukan pengambilan Ciphertext2 dengan metode

LSB modifikasi tempat penyisipan, yang dimana tempat pengambilan nilai ada dibit ke 8 nilai biner RED, bit ke 7 nilai biner GREEN, bit ke 6 nilai biner Blue.

3.1.5.10Flowchart Decryption1 (Sender)

Flowchart proses Decrypion1 dapat dilihat pada Gambar 3.26


(44)

Start Input Cipertext3; Embeded2.bmp;

Bace pixel citra Embedding Ciphertext3

dengan metode LSB modifikasi tempat penyisipan Petakan menjadi Image baru Simpan Embeded3.bmp Output Embeded3.bmp End Start Input Embeded3.bmp

Baca nilai pixel pada Embeded3.bmp

Ambil Ciphertext3 pada gambar Embeded3.bmp

sesuai dengan metode LSB modifikasi tempat

Output Ciphertext3

End

Pada Gambar 3.26 menggambarkan proses Decryption1 yang dilakukan oleh Sender dimulai dengan input bilangan prima (p), Ciphertext2 (C2), dan kunci dekripsi (dA), kemudian dilakukan perhitungan sehingga mendapatkan hasil Ciphertext3 (C3).

3.1.5.11 Flowchart Embedding3 (Sender)

Flowchart proses Embedding3 dapat dilihat pada Gambar 3.27

Gambar 3.27 Flowchart Embedding3

Pada Gambar 3.27 menggambarkan proses Embedding3 yang dilakukan oleh Sender yang dimulai dengan input Ciphertext3 dan gambar “Embeded2.bmp” kemudian dilakukan pembacaan nilai pixel pada gambar. Selanjutnya dilakukan proses penyisipan dengan metode LSB modifikasi tempat penyisipan, penyisipan dilakukan pada bit ke-8 nilai biner RED, pada bit ke-7 nilai biner GREEN, pada bit ke-6 nilai biner BLUE, kemudian dipetakan menjadi gambar baru lalu di simpan dengan nama “Embeded3.bmp”.

3.1.5.12 Flowchart Extracting3 (Recipient)

Flowchart proses Extracting3 dapat dilihat pada Gambar 3.28


(45)

Start

Input p; Ciphertext3;

dB;

Plaintext = C3dB mod p

Output Plaintext

End

Pada Gambar 3.29 menggambarkan proses Extracting3 yang dilakukan oleh Recipient setelah menerima gambar “Embeded3.bmp” dari Sender. Proses Extracting3 dimulai dengan input

gambar “Embeded3.bmp”, kemudian dilakukan pengambilan Ciphertext3 dengan metode

LSB modifikasi tempat penyisipan, yang dimana tempat pengambilan nilai ada di bit ke 8 nilai biner RED, bit ke 7 nilai biner GREEN, bit ke 6 nilai biner Blue.

3.1.5.13 Flowchart Decryption2 (Recipient)

Flowchart proses Decryption2 dapat dilihat pada Gambar 3.29

Gambar 3.29 Flowchart decryption2

Pada Gambar 3.29 menggambarkan proses Decryption2 yang dilakukan oleh Recipient dimulai dengan input bilangan prima (p), Ciphertext3 (C3), dan kunci dekripsi (dB), kemudian dilakukan perhitungan sehingga mendapatkan hasil Plaintext.


(46)

Home

About Help Start Exit

Gambar depan home 3.2 Perancangan sistem

Sistem yang akan dibangun menggunakan Bahasa Pemograman Microsoft Visual Studio 2012 (C#). Rancangan sistem disesuaikan dengan kebutuhan yang mendukung Algoritma Kriptografi Massey Omura dan Algoritma Steganografi Least Significan Bit modifikasi penyisipan tempat. Terdiri dari 13 Form yaitu Form Home, Help, About, Enkrip1, Embed1, Extract1, Enkrip2, Embed2, Extract2, Dekrip1, Embed3, Extract3, dan Dekrip2.

3.2.1 Home

Pada Form Home dirancang sehingga menampilkan gambar yang memiliki keterangan judul sistem yang dibuat Form ini terdiri dari 4 sub menu yaitu About, Help, Start, Exit. Form home dibuat dengan menggunakan mdi parent dan Form lainnya merupakan mdi child.

Tampilan rancangan Form Home ditunjukkan pada Gambar 3.30

Gambar 3.30 Rancangan Form Home 3.2.2 About

Form About akan muncul jika user memilih sub menu About. Form ini akan menampilkan

judul sistem dan inFormasi pembuat aplikasi. Terdapat juga Button Close untuk menutup


(47)

Close About

Tentang Pembuat Aplikasi

Close Help

Petunjuk peggunaan sistem Nama proses

Sender Recipient

1. Enkrip 1 2. Embed 1

3. Extract 1 4. Enkrip2

. . . .

Petunjuk Penggunaan 1.

2. 3.

Tampilan rancangan Form About ditunjukkan pada Gambar 3.31

Gambar 3.31 Rancangan Form About 3.2.3 Help

Form Help akan muncul jika memilih sub menu Help. Form ini akan menampilkan petunjuk

penggunaan sistem. User dapat memilih proses yang ingin di tampilkan petunjuk penggunaannya dengan menekan tombol dengan nama proses yang diinginkan.

Tampilan rancangan Form Help ditunjukkan pada Gambar 3.32


(48)

Enkrip1 (sender) Plain Text

Bilangan prima Kunci enkripsi 1 Kunci dekripsi 1

Waktu enkrip Generate

Enkripsi 1

Generate Kunci

Open File plain text Next

1

3 4 5

6

2

7 8 9

10

Komponen yang digunakan pada Form Help berdasarkan Gambar 3.32 terdiri dari Groupbox untuk memisahkan Nama Proses dengan Petunjuk Penggunaan, Button pada Groupbox Nama Proses untuk memilih proses yang akan ditampilkan petunjuk penggunaannya dan Button Close untuk menutup Form Help.

3.2.4 Enkrip1 (Sender)

Form Enkrip1 akan muncul jika user memilih sub menu Start yang menandakan bahwa user

akan menuju proses awal dari sistem.

Tampilan rancangan Form Enkrip1 ditunjukkan pada Gambar 3.33

Gambar 3.33 Rancangan Form Enkrip1

Komponen yang digunakan untuk pada Form Enkrip1 berdasarkan Gambar 3.33 terdiri dari: 1. TextBox (Plain Text) berfungsi untuk menampilkan Plain text yang akan

diEnkripsi.

2. Button (Open File plain text) berfungsi untuk membuka file teks dengan Format

*.txt apabila tidak memasukkan teks secara langsung.

3. TextBox (bilangan prima) berfungsi untuk menampilkan bilangan prima yang

telah dibangkitkan.

4. Button (Generate) berfungsi untuk membangkitkan bilangan prima.

5. Label (kunci enkripsi 1) berfungsi untuk menampilkan kunci enkripsi 1 yang telah


(49)

Embed1 (Sender) Cipher Text 1

Gambar awal

Waktu Embed

Open File cipher text 1

Open File Gambar awal

Sisip 1

Image info Resolution Size

Gambar hasil sisip 1

Next Back 1

2

3

4

5

6

7

8

9 10

6. Label (kunci dekripsi 1) berfungsi untuk menampilkan kunci dekripsi 1 yang telah

dibangkitkkan.

7. Button (Generate) berfungsi untuk membangkitkan kunci enkripsi 1 dan kunci

dekripsi 1.

8. Button (Enkripsi 1) berfungsi untuk melakukan proses enkripsi 1 oleh Sender.

9. Label (Waktu Enkrip) berfungsi untuk menampilkan total waktu yang digunakan

untuk melakukan proses enkripsi 1.

10.Button (Next) berfungsi untuk menuju ke From selanjutnya yaitu Embed1.

3.2.5 Embed1 (Sender)

Form Embed1 akan muncul jika user memilih Button Next pada Form Enkrip1.

Tampilan rancangan Form Embed1 ditunjukkan pada Gambar 3.34

Gambar 3.34 Rancangan Form Embed1

Komponen yang digunakan untuk pada Form Embed1 berdasarkan Gambar 3.34 terdiri dari: 1. TextBox (Cipher Text 1) berfungsi untuk menampilkan Cipher Text 1.

2. Button (Open File cipher text 1) berfungsi untuk membuka file teks Cipher Text 1

yang memiliki Format *.txt.

3. PictureBox (Gambar awal) berfungsi untuk menampilkan gambar awal untuk cover image.


(50)

extract1 (Recipient) Gambar Embeded1

Waktu Extract

Open File Gambar

Ekstrak 1

Image info Resolution Size

Text hasil Ekstrak 1

Next Back 1

2

3

4

5

6

7 8

4. Button (Open File Gambar Awal) berfungsi untuk membuka gambar Bitmap

memiliki Format *bmp sebagai gambar awal untuk cover image.

5. Button (Sisip 1) berfungsi untuk memulai proses Embedding 1 oleh Sender.

6. Label (Waktu Embed) berfungsi untuk menampilkan total waktu yang digunakan

untuk melakukan proses Embedding 1.

7. Groupbox (image Info) terdiri dari Label (Resolution) yang menampilkan height

dan Widht dari gambar awal, dan Label (Size) yang menampilkan size dari gambar awal.

8. PictureBox (Gambar Hasil Sisip 1) berfungsi untuk menampilkan gambar hasil

Proses Embedding 1.

9. Button (Back) berfungsi untuk kembali ke Form sebelumnya yaitu Form Enkrip1.

10.Button (Next) berfungsi untuk menuju ke Form selanjutnya yaitu Form Extract1.

3.2.6 Extract1 (Recipient)

Form Extract1 akan muncul jika user memilih Button Next pada Form Embed1.

Tampilan rancangan Form Extract1 ditunjukkan pada Gambar 3.35

Gambar 3.35 Rancangan Form Extract1

Komponen yang digunakan untuk pada Form Extract1 berdasarkan Gambar 3.35 terdiri dari: 1. PictureBox (Gambar Embeded1) berfungsi untuk menampilkan gambar


(51)

Enkrip2 (Recipient) Cipher Text 1

Bilangan prima Kunci enkripsi 2 Kunci dekripsi 2

Waktu enkrip Enkripsi 2

Generate Kunci

Open Cipher text 1 Back Next

1

2

3 4

5

6 7

8

9 10

2. Button (Open File Gambar) berfungsi untuk memasukkan gambar Embeded1

untuk diekstrak.

3. Button (Ekstrak 1) berfungsi untuk memulai proses Ekstrak 1.

4. Label (Waktu Ekstrak) berfungsi untuk menampilkan total waktu yang digunakan

untuk melakukan proses Ekstrak 1.

5. GroupBox (Image Info) terdiri dari Label (Resolution) yang menampilkan height

dan Widht dari gambar Embeded1, dan Label (Size) yang menampilkan size dari gambar Embeded 1.

6. TextBox (Text Hasil Ekstrak 1) berfungsi untuk menampilkan hasil dari proses

Ekstrak 1.

7. Button (Back) berfungsi untuk kembali ke Form sebelumnya yaitu Form Embed1.

8. Button (Next) berfungsi untuk menuju ke Form selanjutnya yaitu Form Enkrip2.

3.2.7 Enkrip2 (Recipient)

Form Enkrip2 akan muncul jika user memilih Button Next pada Form Extract1.

Tampilan rancangan Form Enkrip2 ditunjukkan pada Gambar 3.36

Gambar 3.36 Rancangan Form Enkrip2

Komponen yang digunakan untuk pada Form Enkrip2 berdasarkan Gambar 3.36 terdiri dari: 1. TextBox (Cipher Text 1) berfungsi untuk menampilkan Cipher text 1 yang akan


(52)

Embed2 (Recipient) Cipher Text 2

Gambar Embeded1

Waktu Embed

Open File cipher text 2

Open File Gambar

Sisip 2

Image info Resolution Size

Gambar hasil Sisip 2

Next Back 1

2

3

4

5

6

7

8

9 10

2. Button (Open Cipher text 1) berfungsi untuk membuka file teks Cipher Text 1.

3. TextBox (bilangan prima) berfungsi untuk tempat memasukkan bilangan prima

yang telah dibangkitkan sebelumnya..

4. Label (kunci enkripsi 2) berfungsi untuk menampilkan kunci enkripsi 2 yang telah

dibangkitkan.

5. Label (kunci dekripsi 2) berfungsi untuk menampilkan kunci dekripsi 2 yang telah

di bangkitkkan.

6. Button (Generate) berfungsi untuk membangkitkan kunci enkripsi 2 dan kunci

dekripsi 2.

7. Button (Enkripsi 2) berfungsi untuk melakukan proses enkripsi 2 oleh Recipient.

8. Label (Waktu Enkrip) berfungsi untuk menampilkan total waktu yang digunakan

untuk melakukan proses enkripsi 2.

9. Button (Back) berfungsi untuk kembali ke Form sebelumnya yaitu Form Extract1.

10.Button (Next) berfungsi untuk menuju ke Form selanjutnya yaitu Form Embed2.

3.2.8 Embed2 (Recipient)

Form Embed2 akan muncul jika user memilih Button Next pada Form Enkrip2.

Tampilan rancangan Form Embed2 ditunjukkan pada Gambar 3.37

Gambar 3.37 Rancangan Form Embed2

Komponen yang digunakan untuk pada Form Embed2 berdasarkan Gambar 3.37 terdiri dari: 1. TextBox (Cipher Text 2) berfungsi untuk menampilkan Cipher Text 2.


(53)

extract2 (Sender) Gambar Embeded2

Waktu Extract

Open File Gambar

Ekstrak 2

Image info Resolution Size

Text hasil Ekstrak 2

Next Back 1

2

3

4

5

6

7 8

2. Button (Open File cipher text 2) berfungsi untuk membuka file teks Cipher Text 2

yang memiliki Format *.txt.

3. PictureBox (Gambar Embeded1) berfungsi untuk menampilkan gambar

Embeded1 untuk cover image.

4. Button (Open File Gambar) berfungsi untuk membuka gambar Embeded1 yang

memiliki Format *bmp sebagai cover image.

5. Button (Sisip 2) berfungsi untuk memulai proses Embedding 2 oleh Recipient.

6. Label (Waktu Embed) berfungsi untuk menampilkan total waktu yang digunakan

untuk melakukan proses Embedding 2.

7. Groupbox (image Info) terdiri dari Label (Resolution) yang menampilkan height

dan Widht dari gambar Embeded1, dan Label (Size) yang menampilkan size dari gambar Embeded1.

8. PictureBox (Gambar Hasil Sisip 2) berfungsi untuk menampilkan gambar hasil

Proses Embedding 2.

9. Button (Back) berfungsi untuk kembali ke Form sebelumnya yaitu Form Enkrip2.

10.Button (Next) berfungsi untuk menuju ke Form selanjutnya yaitu Form Extract2.

3.2.9 Extract2 (Sender)

Form Extract2 akan muncul jika user memilih Button Next pada Form Embed2.

Tampilan rancangan Form Extract2 ditunjukkan pada Gambar 3.38

Gambar 3.38 Rancangan Form Extract2


(54)

Dekrip1 (Sender) Cipher Text 2

Bilangan prima Kunci dekripsi 1

Wakru Dekrip Dekripsi 1

Open Cipher Text 2 Back Next

1

2

3 4

5

6

7 8

1. PictureBox (Gambar Embeded2) berfungsi untuk menampilkan gambar

Embeded2 yang ingin diekstrak.

2. Button (Open File Gambar) berfungsi untuk memasukkan gambar Embeded2

untuk diekstrak.

3. Button (Ekstrak 2) berfungsi untuk memulai proses Ekstrak 2.

4. Label (Waktu Ekstrak) berfungsi untuk menampilkan total waktu yang digunakan

untuk melakukan proses Ekstrak 2.

5. GroupBox (Image Info) terdiri dari Label (Resolution) yang menampilkan height

dan Widht dari gambar Embeded2, dan Label (Size) yang menampilkan size dari gambar Embeded2.

6. TextBox (Text Hasil Ekstrak 2) berfungsi untuk menampilkan hasil dari proses

Ekstrak 2.

7. Button (Back) berfungsi untuk kembali ke Form sebelumnya yaitu Form Embed2.

8. Button (Next) berfungsi untuk menuju ke Form selanjutnya yaitu Form Dekrip1.

3.2.10 Dekrip1 (Sender)

Form Dekrip1 akan muncul jika user memilih Button Next pada Form Extract2.

Tampilan rancangan Form Dekrip1 ditunjukkan pada Gambar 3.39

Gambar 3.39 Rancangan Form Dekrip1


(55)

Embed3 (Sender) Cipher Text 3

Gambar Embeded2

Waktu Embed

Open File cipher text 3

Open File Gambar

Sisip 3

Image info Resolution Size

Gambar hasil Sisip 3

Next Back 1

2

3

4

5

6

7

8

9 10

1. TextBox (Cipher Text 2) berfungsi untuk menampilkan Cipher text 2 yang akan

didekripsi.

2. Button (Open Cipher text 2) berfungsi untuk membuka file teks Cipher Text 2.

3. TextBox (bilangan prima) berfungsi untuk tempat memasukkan bilangan prima

yang telah dibangkitkan sebelumnya..

4. TextBox (kunci dekripsi 1) berfungsi untuk Tempat memasukkan kunci dekripsi 1

yang telah di bangkitkkan.

5. Button (Dekripsi 1) berfungsi untuk melakukan proses Dekripsi 1 oleh Sender.

6. Label (Waktu Dekrip) berfungsi untuk menampilkan total waktu yang digunakan

untuk melakukan proses Dekripsi 1.

7. Button (Back) berfungsi untuk kembali ke Form sebelumnya yaitu Form Extract2.

8. Button (Next) berfungsi untuk menuju ke Form selanjutnya yaitu Form Embed3.

3.2.11 Embed3 (Sender)

Form Embed3 akan muncul jika user memilih Button Next pada Form Dekrip1.

Tampilan rancangan Form Embed3 ditunjukkan pada Gambar 3.40

Gambar 3.40 Rancangan Form Embed3


(56)

1. TextBox (Cipher Text 3) berfungsi untuk menampilkan Cipher Text 3.

2. Button (Open File cipher text 3) berfungsi untuk membuka file teks Cipher Text 3

yang memiliki Format *.txt.

3. PictureBox (Gambar Embeded2) berfungsi untuk menampilkan gambar

Embeded2 untuk cover image.

4. Button (Open File Gambar) berfungsi untuk membuka gambar Embeded2 yang

memiliki Format *bmp sebagai cover image.

5. Button (Penyisipan 3) berfungsi untuk memulai proses Embedding 3 oleh Sender.

6. Label (Waktu Embed) berfungsi untuk menampilkan total waktu yang digunakan

untuk melakukan proses Embedding 3.

7. Groupbox (image Info) terdiri dari Label (Resolution) yang menampilkan height

dan Widht dari gambar Embeded2, dan Label (Size) yang menampilkan size dari gambar Embeded2.

8. PictureBox (Gambar Hasil Penyisipan 3) berfungsi untuk menampilkan gambar

hasil Proses Embedding 3.

9. Button (Back) berfungsi untuk kembali ke Form sebelumnya yaitu Form Dekrip1.


(57)

extract3 (Recipient) Gambar Embeded3

Waktu Extract

Open File Gambar

Ekstrak 3

Image info Resolution Size

Text hasil Ekstrak 3

Next Back

1

2

3

4

5

6

7 8

3.2.12 Extract3 (Recipient)

Form Extract3 akan muncul jika user memilih Button Next pada Form Embed3.

Tampilan rancangan Form Extract3 ditunjukkan pada Gambar 3.41

Gambar 3.41 Rancangan Form Extract3

Komponen yang digunakan untuk pada Form Extract3 berdasarkan Gambar 3.41 terdiri dari: 1. PictureBox (Gambar Embeded3) berfungsi untuk menampilkan gambar

Embeded3 yang ingin diekstrak.

2. Button (Open File Gambar) berfungsi untuk memasukkan gambar Embeded3

untuk diekstrak.

3. Button (Ekstrak 3) berfungsi untuk memulai proses Ekstrak 3.

4. Label (Waktu Ekstrak) berfungsi untuk menampilkan total waktu yang digunakan

untuk melakukan proses Ekstrak 3.

5. GroupBox (Image Info) terdiri dari Label (Resolution) yang menampilkan height

dan Widht dari gambar Embeded3, dan Label (Size) yang menampilkan size dari gambar Embeded3.

6. TextBox (Text Hasil Ekstrak 3) berfungsi untuk menampilkan hasil dari proses

Ekstrak 3.

7. Button (Back) berfungsi untuk kembali ke Form sebelumnya yaitu Form Embed3.


(58)

Dekrip2 (Recipient) Cipher Text 3

Bilangan prima Kunci dekripsi 2

Wakru Dekrip Dekripsi 2

Open Cipher Text 3 Back Finish

Plain Text

1

2

3 4 5 6

7

8 9

3.2.13 Dekrip2 (Recipient)

Form Dekrip2 akan muncul jika user memilih Button Next pada Form Extract3.

Tampilan rancangan Form Dekrip2 ditunjukkan pada Gambar 3.42

Gambar 3.42 Rancangan Form Dekrip2

Komponen yang digunakan untuk pada Form Dekrip2 berdasarkan Gambar 3.42 terdiri dari: 1. TextBox (Cipher Text 3) berfungsi untuk menampilkan Cipher text 3 yang akan

didekripsi.

2. Button (Open Cipher text 3) berfungsi untuk membuka file teks Cipher Text 3.

3. TextBox (bilangan prima) berfungsi untuk tempat memasukkan bilangan prima

yang telah dibangkitkan sebelumnya..

4. TextBox (kunci dekripsi 2) berfungsi untuk Tempat memasukkan kunci dekripsi 2

yang telah dibangkitkkan.

5. Button (Dekripsi 2) berfungsi untuk melakukan proses Dekripsi 2 oleh Recipient.

6. Label (Waktu Dekrip) berfungsi untuk menampilkan total waktu yang digunakan

untuk melakukan proses Dekripsi 2.

7. TextBox (Plain Text) berfungsi untuk menampilkan hasil proses Dekripsi 2.

8. Button (Back) berfungsi untuk kembali ke Form sebelumnya yaitu Form Extract3.

9. Button (Finish) berfungsi untuk Menutup aplikasi yang menandakan user telah


(59)

BAB IV

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi sistem

Implementasi sistem merupakan kelanjutan dari tahap perancangan. sistem yang dibangun ini menggunakan bahasa pemograman Microsoft Visual Studio 2012 (C#). terdiri dari 13 Form yaitu Form Home, Help, About, Enkrip1, Embed1, Extract1, Enkrip2, Embed2, Extract2, Dekrip1, Embed3, Extract3, dan Dekrip2.

4.1.1 Home

pada saat dijalankan, Form Home akan muncul dan menampilkan keterangan judul sistem yang dibuat, Form ini terdapat 4 sub menu yaitu About, Help, Start, Exit

Tampilan Form Home dapat dilihat pada Gambar 4.1


(60)

4.1.2 About

Form About akan muncul apabila User memilih sub menu About pada aplikasi. Form ini

menampilkan judul sistem dan informasi pembuat aplikasi. Tampilan Form About dapat dilihat pada Gambar 4.2

Gambar 4.2 Form About 4.1.3 Help

Form Help akan muncul apabila user memilih sub menu Help pada aplikasi. pada Form ini

aplikasi akan menampilkan petunjuk penggunaan sistem, user dapat memilih proses yang ingin ditampilkan petunjuk penggunaannya.


(61)

Tampilan Form Help dapat dilihat pada Gambar 4.3

Gambar 4.3 Form Help 4.1.4 Enkrip1

Form Enkrip1 akan muncul jika user memilih sub menu Start pada aplikasi. Pada Form ini user harus memasukkan Plain Text, meng-generate bilangan prima, meng-generate kunci

enkripsi 1, dan kunci dekripsi 1 untuk dapat memulai proses enkripsi 1. Tampilan Form Enkrip1 dapat dilihat pada Gambar 4.4


(62)

4.1.5 Embed1

Form Embed1 akan muncul setelah user menekan tombol Next pada Form Enkrip1. Pada Form ini user harus memasukkan Cipher Text 1 dan gambar yang akan menjadi cover image,

untuk memulai proses Embed 1.

Tampilan Form Embed1 dapat dilihat pada gambar 4.5

Gambar 4.5 Form Embed1 4.1.6 Extract1

Form Extract1 akan muncul setelah user menekan tombol Next pada Form Embed1. pada Form ini user harus memasukkan gambar Embeded1 untuk dapat memulai proses Ekstrak 1.


(1)

vii

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

Abstract vi

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Bab 1 Pendahuluan 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 3

1.3 Batasan Penelitian 3

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metode Penelitian 4

1.7 Sistematika Penulisan 5

Bab 2 Landasan Teori 6

2.1 Kriptografi 6

2.1.1 Definisi Kriptografi 6

2.1.2 Tujuan Kriptografi 6

2.1.3 Cryptosystem 7

2.2 Three-Pass Protocol 8

2.3 Algoritma Massey-Omura 9

2.4 Algoritma Rabin Miller 11

2.5 GCD dan Euclid’s Algorithm 11

2.6 Steganografi 12

2.6.1 Pengertian Steganografi 12

2.6.2 Teknik Steganografi 13

2.6.3 Algoritma Least Significant Bit (LSB) 14

2.7 Citra Digital 15

2.7.1 Pengertian Citra Digital 15

2.7.2 Citra Bitmap 16

2.8 Penelitian Terdahulu 19

Bab 3 Analisis dan Perancangan 22

3.1 Analisis Sistem 22

3.1.1 Analisis Masalah 22

3.1.2 Analisis Persyaratan 23

3.1.2.1 Analisis Fungsional 23

3.1.2.2 Analisis Nonfungsional 24

3.1.3 Pemodelan Persyaratan Sistem Dengan Use Case 24

3.1.3.1 Spesifikasi Use Case 25


(2)

3.1.4.1 Pseudocode Proses Generate Prime 39 3.1.4.2 Pseudocode Proses Rabin Miller 39 3.1.4.3 Pseudocode Proses Euclidean GCD 40 3.1.4.4 Pseudocode Proses Generate Kunci Enkripsi 40 3.1.4.5 Pseudocode Proses Generate Kunci Dekripsi 40 3.1.4.6 Pseudocode Proses Enkripsi 41 3.1.4.7 Pseudocode Proses Dekripsi 41 3.1.4.8 Pseudocode Proses Embedding 42 3.1.4.9 Pseudocode Proses Extracting 43

3.1.5 Flowchart Sistem 44

3.1.5.1 Flowchart Generate Prime 45 3.1.5.2 Flowchart Generate Key A 46 3.1.5.3 Flowchart Encryption1 (Sender) 47 3.1.5.4 Flowchart Embedding1 (Sender) 47 3.1.5.5 Flowchart Extracting1 (Sender) 48 3.1.5.6 Flowchart Generate Key B (Recipient) 49 3.1.5.7 Flowchart Encryption2 (Recipient) 50 3.1.5.8 Flowchart Embedding2 (Recipient) 50 3.1.5.9 Flowchart Extracting2 (Sender) 51 3.1.5.10 Flowchart Decryption1 (Sender) 51 3.1.5.11 Flowchart Embedding3 (Sender) 52 3.1.5.12 Flowchart Extracting3 (Recipient) 52 3.1.5.13 Flowchart Decryption2 (Recipient) 53

3.2 Perancangan Sistem 54

3.2.1 Home 54

3.2.2 About 54

3.2.3 Help 55

3.2.4 Enkrip1 (Sender) 56

3.2.5 Embed1 (Sender) 57

3.2.6 Extract1 (Recipient) 58

3.2.7 Enkrip2 (Recipient) 59

3.2.8 Embed2 (Recipient) 60

3.2.9 Extract2 (Sender) 61

3.2.10 Dekrip1 (Sender) 62

3.2.11 Embed3 (Sender) 63

3.2.12 Extract3 (Recipient) 65

3.2.13 Dekrip2 (Recipient) 66

Bab 4 Implementasi dan Pengujian Sistem 67

4.1 Implementasi Sistem 67

4.1.1 Home 67

4.1.2 About 68

4.1.3 Help 68

4.1.4 Enkrip1 69

4.1.5 Embed1 70

4.1.6 Extract1 70

4.1.7 Enkrip2 71

4.1.8 Embed2 72

4.1.9 Extract2 73


(3)

ix

4.1.11 Embed3 74

4.1.12 Extract3 74

4.1.13 Dekrip2 75

4.2 Pengujian Sistem 76

4.2.1 Pengujian Proses Enkrip1 (Sender) 76 4.2.2 Pengujian Proses Embed1 (Sender) 79 4.2.3 Pengujian Proses Extract1 (Recipient) 82 4.2.4 Pengujian Proses Enkrip2 (Recipient) 82 4.2.5 Pengujian Proses Embed2 (Recipient) 84 4.2.6 Pengujian Proses Extract2 (Sender) 84 4.2.7 Pengujian Proses Dekrip1 (Sender) 85 4.2.8 Pengujian Proses Embed3 (Sender) 86 4.2.9 Pengujian Proses Extract3 (Recipient) 87 4.2.10 Pengujian Proses Dekrip2 (Recipient) 88 4.2.11 Hasil Pengujian Proses Embedding dan Extracting 91 4.2.12 Pengujian Mengekstrak Data Menggunakan LSB 92 4.2.13 Hasil Pengujian Menggunakan LSB Tradisional 95

Bab 5 Kesimpulan dan Saran 96

5.1 Kesimpulan 96

5.2 Saran 97

Daftar Pustaka 98


(4)

DAFTAR TABEL

Nomor Judul Halaman

2.1 2.2 2.3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11

Penelitian Terdahulu

Penelitian Terdahulu (Lanjutan 1) Penelitian Terdahulu (Lanjutan 2) Spesifikasi Use Case Generate Prime Spesifikasi Use Case untuk Generate Key A Spesifikasi Use Case untuk Encryption1 Spesifikasi Use Case untuk Embedding1 Spesifikasi Use Case untuk Extracting1 Spesifikasi Use Case untuk Generate Key B Spesifikasi Use Case untuk Encryption2 Spesifikasi Use Case untuk Embedding2 Spesifikasi Use Case untuk Extracting2 Spesifikasi Use Case Decryption1 Spesifikasi Use Case Embedding3 Spesifikasi Use Case Extracting3 Spesifikasi Use Case Decryption2

Hasil enkripsi Cipher Text 1 untuk Plain Text “SEPTIAN” Hasil Cipher Text 2 dari proses Enkripsi 2

Hasil Cipher Text 3 dari proses Dekripsi 1 Hasil Plain Text dari proses Dekripsi 2

Hasil Pengujian Proses Embedding dan Extracting

Susunan RGB Gambar Awal Pengujian Mengekstrak Data Menggunakan Algoritma LSB

Pengubahan Pesan Menjadi Kode Biner

Susunan RGB Gambar Awal Dalam Kode Biner

Hasil Embed Menggunakan Algoritma Modifikasi Least Significant Bit Hasil Ekstrak menggunakan Algoritma Least Significant Bit

Hasil Pengujian Proses Embedding dan Extracting Menggunakan LSB Tradisional

19 20 21 26 27 28 29 30 31 32 33 34 35 36 37 38 78 83 86 88 91 92 92 93 93 94 95


(5)

xi

DAFTAR GAMBAR

Nomor Judul Halaman

2.1 2.2 2.3 2.4 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 3.25 3.26 3.27 3.28 3.29 3.30 3.31 3.32 3.33 3.34 3.35 3.36 3.37 3.38 3.39

Proses Enkripsi dan dekripsi Symmetric Cryptosystem Proses Enkripsi dan Dekripsi Asymmetric Cryptosystem Gambar Kagamine Rin, merupakan contoh citra digital Citra bitmap Flower1.bmp dengan ukutan 410 x 308 pixel Diagram Ishikawa Analisis Masalah

Use Case Diagram Sistem

Activity Diagram Generate Prime Activity Diagram Generate Key A Activity Diagram Encryption1 Activity Diagram Embedding1 Activity Diagram Extracting1 Activity Diagram Generate Key B Activity Diagram Encryption2 Activity Diagram Embedding2 Activity Diagram Extracting2 Activity Diagram Decryption1 Activity Diagram Embedding3 Activity Diagram Extracting3 Activity Diagram Decryption2 Flowchart Keseluruhan Sistem Flowchart Generate Prime Flowchart Generate Key A Flowchart Encryption 1 Flowchart Embedding1 Flowchart Extracting1 Flowchart Generate Key B Flowchart Encryption2 Flowchart Embedding2 Flowchart Extracting2 Flowchart Decryption1 Flowchart Embedding3 Flowchart Extracting3 Flowchart decryption2 Rancangan Form Home Rancangan Form About Rancangan Form Help Rancangan Form Enkrip1 Rancangan Form Embed1 Rancangan Form Extract1 Rancangan Form Enkrip2 Rancangan Form Embed2 Rancangan Form Extract2 Rancangan Form Dekrip1

7 8 16 18 23 25 26 27 28 29 30 32 33 34 35 35 36 37 38 44 45 46 47 47 48 49 50 50 51 51 52 52 53 54 55 55 56 57 58 59 60 61 62


(6)

Nomer Judul Halaman

3.40 3.41 3.42 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27 4.28 4.29 4.30 4.31 4.32

Rancangan Form Embed3 Rancangan Form Extract3 Rancangan Form Dekrip2 Form Home

Form About Form Help Form Enkrip1 Form Embed1 Form Extract1 Form Enkrip2 Form Embed2 Form Extract2 Form Dekrip1 Form Embed3 Form Extract3 Form Dekrip2

Pop-up Window Open File Plain Text Hasil Plain Text yang dipilih

Hasil proses generate bilangan prima

Hasil proses generate kunci enkripsi 1 dan kunci dekripsi 1 Tanda proses enkripsi selesai

Direktori penyimpanan Cipher Text 1 Pop-up Window Buka File Cipher Text 1 Pop-up Window Open File Gambar Awal

Hasil memasukan Cipher Text 1 dan Cover image Hasil Penyisipan 1 dan DialogBox

Hasil proses Extract1

Hasil Generate kunci dan Enkrip2 Hasil proses Embed2

Hasil proses Extract2 Hasil proses Dekrip1 Hasil proses Embed3 Hasil proses Extract3 Hasil proses Dekrip2 DialogBox Error

63 65 66 67 68 69 69 70 71 71 72 73 73 74 75 75 76 77 77 78 79 79 80 80 81 81 82 83 84 85 86 87 88 89 90


Dokumen yang terkait

Implementasi Algoritma Elgamal Dengan Pembangkit Bilangan Prima Lehmann Dan Algoritma Least Significant Bit (Lsb) Dengan Cover Image Bitmap Untuk Keamanan Data Text

4 68 130

Implementasi Kriptografi Algoritma Elgamal Dengan Steganografi Teknik Least Significant Bit (LSB) Berdasarkan Penyisipan Menggunakan Fungsi Linier

5 81 114

Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

1 1 13

Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

0 0 2

Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

0 0 5

Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

1 6 16

Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

0 0 2

Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

1 2 11

Implementasi Algoritma Elgamal Dengan Pembangkit Bilangan Prima Lehmann Dan Algoritma Least Significant Bit (Lsb) Dengan Cover Image Bitmap Untuk Keamanan Data Text

0 0 35

IMPLEMENTASI ALGORITMA ELGAMAL DENGAN PEMBANGKIT BILANGAN PRIMA LEHMANN DAN ALGORITMA LEAST SIGNIFICANT BIT (LSB) DENGAN COVER IMAGE BITMAP UNTUK KEAMANAN DATA TEXT

0 0 11