Implementasi Sistem Keamanan Data Menggunakan Steganografi Teknik First Of File Dan Inverse Matrix Cipher Kunci Ganda

(1)

LISTING PROGRAM

function varargout = beranda(varargin)

Kode Program Tampilan Home

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @beranda_OpeningFcn, ... 'gui_OutputFcn', @beranda_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

function beranda_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;

guidata(hObject, handles);

function varargout = beranda_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;

function Beranda_Callback(hObject, eventdata, handles) function Untitled_2_Callback(hObject, eventdata, handles) function Help_Callback(hObject, eventdata, handles)

help

function Exit_Callback(hObject, eventdata, handles) close all

function Enkripsi_Callback(hObject, eventdata, handles) hill

function Dekripsi_Callback(hObject, eventdata, handles) extract

function latar_CreateFcn(hObject, eventdata, handles) FKripto=guidata(gcbo);

p=imshow('bgr.bmp');

set(FKripto.latar,'Userdata',p);

function latar_ButtonDownFcn(hObject, eventdata, handles) function About_Callback(hObject, eventdata, handles) about

function latar_DeleteFcn(hObject, eventdata, handles)

Kode Program Enkripsi dengan kunci 1

function enkrip1_Callback(hObject, eventdata, handles) % hObject handle to enkrip1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) FKripto=guidata(gcbo);

k11=str2double(get(handles.k11,'string')); k12=str2double(get(handles.k12,'string'));


(2)

k13=str2double(get(handles.k13,'string')); k14=str2double(get(handles.k14,'string')); k21=str2double(get(handles.k21,'string')); k22=str2double(get(handles.k22,'string')); k23=str2double(get(handles.k23,'string')); k24=str2double(get(handles.k24,'string')); k31=str2double(get(handles.k31,'string')); k32=str2double(get(handles.k32,'string')); k33=str2double(get(handles.k33,'string')); k34=str2double(get(handles.k34,'string')); k41=str2double(get(handles.k41,'string')); k42=str2double(get(handles.k42,'string')); k43=str2double(get(handles.k43,'string')); k44=str2double(get(handles.k44,'string'));

kunci=[k11 k12 k13 k14;k21 k22 k23 k24;k31 k32 k33 k34;k41 k42 k43 k44];

dk=det(kunci); if dk==0

errordlg('Determinan matriks kunci 1 tidak boleh 0'); guidata(hObject,handles);

end

input=get(FKripto.listbox1,'Userdata'); if isequal(input,[])

errordlg({'Plaintext tidak ditemukan.','silahkan isi plaintext .'},'Error','modal'); guidata(hObject,handles); end tic; handles.kata=abs(input); guidata(hObject,handles); handles.l=length(handles.kata);

guidata(hObject,handles); %menambahkan spasi agar jumlah array habis dibagi 4 handles.kata if mod(handles.l,4)~=0 while mod(handles.l,4)~=0 handles.l=handles.l+1; guidata(hObject,handles); handles.ltemp=handles.l; guidata(hObject,handles); i=1; guidata(hObject,handles); for i=1:i<=(handles.ltemp-length(handles.kata)) end handles.kata=[handles.kata char(32)]; end end handles.kata;

%membuat matriks baru dengan ukuran 4xn, n=jumlah kolom (panjang kalimat/4)

handles.word=abs(handles.kata); guidata(hObject,handles);

handles.temp=zeros(4,length(handles.word)/4); guidata(hObject,handles);


(3)

handles.poskata=1; guidata(hObject,handles); for i=1:(length(handles.word)/4) for k=1:4 handles.temp(k,i)=handles.word(1,handles.poskata); guidata(hObject,handles); handles.poskata=handles.poskata+1; end end %disp(temp) %kata=kata handles.temp

%perkalian matriks dengan kunci pertama handles.m=handles.temp; guidata(hObject,handles); for i=1:length(handles.kata)/4 temp2=handles.m(:,i); sel=kunci*temp2; handles.m(:,i)=sel; guidata(hObject,handles); end handles.m

%mengubah kebentuk array 1 dimensi

handles.kos=zeros(1,length(handles.kata)); guidata(hObject,handles); handles.poskol=1; guidata(hObject,handles); h=waitbar(0,'Harap Tunggu...'); while handles.poskol<=length(handles.kata); for i=1:(length(handles.kata)/4) sem=handles.m(:,i);

handles.sem2= sem'; %sem' artinya transpose matriks sem guidata(hObject,handles); for k=1:4 handles.kos(1,handles.poskol)=handles.sem2(1,k); handles.poskol=handles.poskol+1; end end %kos handles.askos=(abs(num2str(handles.kos)))'; guidata(hObject,handles); handles.laskos=length(handles.askos); guidata(hObject,handles); s=handles.laskos+4; %cp=abs(plain); %k=str2Double(get(FKripto.ekunci1,'String')); %pt=abs(plain); set(FKripto.listbox2,'string',handles.askos); set(FKripto.listbox2,'Userdata',handles.askos); set(FKripto.r,'String',num2str(s)); wk=toc*1000; set(FKripto.wkten,'String',num2str(wk)); waitbar(handles.poskol/length(handles.kata)); end


(4)

close(h);

function enkripsi2_Callback(hObject, eventdata, handles)

Kode Program Enkripsi dengan kunci 2

% hObject handle to enkripsi2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) FKripto=guidata(gcbo); m11=str2double(get(handles.m11,'string')); m12=str2double(get(handles.m12,'string')); m13=str2double(get(handles.m13,'string')); m14=str2double(get(handles.m14,'string')); m21=str2double(get(handles.m21,'string')); m22=str2double(get(handles.m22,'string')); m23=str2double(get(handles.m23,'string')); m24=str2double(get(handles.m24,'string')); m31=str2double(get(handles.m31,'string')); m32=str2double(get(handles.m32,'string')); m33=str2double(get(handles.m33,'string')); m34=str2double(get(handles.m34,'string')); m41=str2double(get(handles.m41,'string')); m42=str2double(get(handles.m42,'string')); m43=str2double(get(handles.m43,'string')); m44=str2double(get(handles.m44,'string'));

kunci2=[m11 m12 m13 m14;m21 m22 m23 m24;m31 m32 m33 m34;m41 m42 m43 m44];

dm=det(kunci2); if dm==0

errordlg('Determinan matriks kunci 2 tidak boleh 0'); guidata(hObject,handles);

end

cipher1=get(FKripto.listbox2,'Userdata'); if isequal(cipher1,[])

errordlg({'Belum ada ciphertext hasil enkripsi kunci 1.','silahkan lakukan enkripsi dengan kunci 1 .'},'Error','modal');

guidata(hObject,handles); end tic; handles.word=abs(handles.kata); guidata(hObject,handles); handles.temp=zeros(4,length(handles.word)/4); guidata(hObject,handles); handles.poskata=1; guidata(hObject,handles); for i=1:(length(handles.word)/4) for k=1:4 handles.temp(k,i)=handles.word(1,handles.poskata); guidata(hObject,handles); handles.poskata=handles.poskata+1; end end

%perkalian matriks dengan kunci kedua for i=1:length(handles.kata)/4


(5)

sel=kunci2*temp2; handles.m(:,i)=sel;

guidata(hObject,handles); end

handles.m

%mengubah kebentuk array 1 dimensi

handles.kos=zeros(1,length(handles.kata)); guidata(hObject,handles); handles.poskol=1; guidata(hObject,handles); h=waitbar(0,'Harap Tunggu...'); while handles.poskol<=length(handles.kata); for i=1:(length(handles.kata)/4) sem=handles.m(:,i);

handles.sem2= sem'; %sem' artinya transpose matriks sem guidata(hObject,handles); for k=1:4 handles.kos(1,handles.poskol)=handles.sem2(1,k); handles.poskol=handles.poskol+1; end end %kos handles.askos=(abs(num2str(handles.kos)))'; guidata(hObject,handles); handles.laskos=length(handles.askos); guidata(hObject,handles); s=handles.laskos+4; %cp=abs(plain); %k=str2Double(get(FKripto.ekunci1,'String')); %pt=abs(plain); set(FKripto.listbox3,'string',handles.askos); set(FKripto.listbox3,'Userdata',handles.askos); set(FKripto.r2,'String',num2str(s)); wk=toc*1000; set(FKripto.wkten2,'String',num2str(wk)); waitbar(handles.poskol/length(handles.kata)); end close(h); wkt1=str2double(get(FKripto.wkten,'string')); totalwktm=wkt1+wk; set(FKripto.totalwkt,'string',num2str(totalwktm)); set(FKripto.totalwkt,'Userdata',num2str(totalwktm));

Kode Program Dekripsi

function pushbutton6_Callback(hObject, eventdata, handles) FKripto=guidata(gcbo);

k11=str2double(get(handles.k11,'string')); k12=str2double(get(handles.k12,'string'));


(6)

k13=str2double(get(handles.k13,'string')); k14=str2double(get(handles.k14,'string')); k21=str2double(get(handles.k21,'string')); k22=str2double(get(handles.k22,'string')); k23=str2double(get(handles.k23,'string')); k24=str2double(get(handles.k24,'string')); k31=str2double(get(handles.k31,'string')); k32=str2double(get(handles.k32,'string')); k33=str2double(get(handles.k33,'string')); k34=str2double(get(handles.k34,'string')); k41=str2double(get(handles.k41,'string')); k42=str2double(get(handles.k42,'string')); k43=str2double(get(handles.k43,'string')); k44=str2double(get(handles.k44,'string')); m11=str2double(get(handles.m11,'string')); m12=str2double(get(handles.m12,'string')); m13=str2double(get(handles.m13,'string')); m14=str2double(get(handles.m14,'string')); m21=str2double(get(handles.m21,'string')); m22=str2double(get(handles.m22,'string')); m23=str2double(get(handles.m23,'string')); m24=str2double(get(handles.m24,'string')); m31=str2double(get(handles.m31,'string')); m32=str2double(get(handles.m32,'string')); m33=str2double(get(handles.m33,'string')); m34=str2double(get(handles.m34,'string')); m41=str2double(get(handles.m41,'string')); m42=str2double(get(handles.m42,'string')); m43=str2double(get(handles.m43,'string')); m44=str2double(get(handles.m44,'string'));

kunci=[k11 k12 k13 k14;k21 k22 k23 k24;k31 k32 k33 k34;k41 k42 k43 k44];

kunci2=[m11 m12 m13 m14;m21 m22 m23 m24;m31 m32 m33 m34;m41 m42 m43 m44]; tic; data=get(handles.cpt,'Userdata') data=str2num(data) data=data' data=char(data) data=str2num(data) detemp=zeros(4,length(data)/4); posdata=1; h=waitbar(0,'Harap Tunggu...'); while posdata<=length(data)/4 for i=1:(length(data)/4) for k=1:4 detemp(k,i)=[data(1,posdata)]; posdata=posdata+1; end end waitbar(posdata/length(data)/4); end close(h); detemp

%perkalian matriks dengan invers kunci kedua for i=1:length(data)/4


(7)

detemp2=detemp(:,i);

desel=inv(kunci2)*detemp2; detemp(:,i)=round(desel); end

detemp

%perkalian matriks dengan invers kunci pertama for i=1:length(data)/4 detemp2=detemp(:,i); desel=inv(kunci)*detemp2; detemp(:,i)=round(desel); end detemp

%mengubah kebentuk array 1 dimensi kalimat=zeros(1,length(data)); poskol=1; h=waitbar(0,'Harap Tunggu...'); while poskol<=length(data)/4 for i=1:(length(data)/4) sem=detemp(:,i);

sem2= [sem']; %sem' artinya transpose matriks sem for k=1:4 kalimat(1,poskol)=sem2(1,k); poskol=poskol+1; end end waitbar(poskol/length(data)/4); end close(h); kalimat; handles.kalimat=char(kalimat); set(FKripto.plain,'string',handles.kalimat); set(FKripto.plain,'Userdata',handles.kalimat); wkt=toc*1000; set(FKripto.wktemb,'string',num2str(wkt));

Kode Program Embed

function embed_Callback(hObject, eventdata, handles) )

leb=str2num(get(handles.w,'string')) leg=str2num(get(handles.r,'string')) sisa=mod(leg,leb)

if(sisa==1||sisa==2)

errordlg({'Lebar gambar anda tidak memenuhi syarat untuk penanda akhir,','silahkan cari gambar lain .'},'Error','modal');

guidata(hObject,handles); else tic; FKripto=guidata(gcbo); a=handles.askos; a=a'; last=[double('basrah')] a=[14 a 35 35 35]

s=length(a)

aa=get(handles.w,'string'); aa=str2double(aa);


(8)

if(s<aa) lm=1; else lm=ceil(s/aa); end za=zeros(1,(lm*aa)-s); a=[a za] detemp=zeros(lm,aa,3); pos=1; for i=1:lm for k=1:aa detemp(i,k,1)=a(1,pos); detemp(i,k,2)=0; detemp(i,k,3)=0; pos=pos+1; end end pos; stego2=detemp stego2; citcover=[handles.data1]; stegolay1=[citcover]; handles.citstego=[stego2;stegolay1]; gbr=handles.citstego(:,:,1) axes(handles.axes2); guidata(hObject,handles); handles.open=imshow(handles.citstego); set(FKripto.axes2,'Userdata',handles.open); t=toc*1000; set(FKripto.wkt,'String',num2str(t)); end

Kode Program Ekstrak

function extract_Callback(hObject, eventdata, handles) FKripto=guidata(gcbo) tic; I=handles.data1(:,:,1); w=get(handles.w,'String'); w=str2double(w); h=get(handles.h,'String'); h=str2double(h); if (I(1,1)==14) for i=1:h for k=1:w if((I(i,k)==35&&I(i,k+1)==35&&I(i,k+2)==35)) bakhir=i kakhir=k break end end end tamp=zeros(1,bakhir*w);


(9)

posdata=1;

h=waitbar(0,'Harap Tunggu...'); while posdata<=bakhir;

for i=1:bakhir for k=1:w

tamp(1,posdata)=I(i,k); posdata=posdata+1; end

end

waitbar(posdata/bakhir); end

close(h);

tamp

for k=1:bakhir*w

if(tamp(1,k)==35&&tamp(1,k+1)==35&&tamp(1,k+2)==35) behind=k

break end

end

cptx =[tamp(1,2:behind-1)] cipher=cptx';

cipher=[(num2str(cipher))];

set(handles.cpt,'string',cipher); set(handles.cpt,'Userdata',cipher); wt=toc*1000;

set(FKripto.wkteks,'string',num2str(wt)); else

errordlg('Citra tidak menyimpan pesan rahasia'); guidata(hObject,handles);


(10)

CURRICULUM VITAE

1. DATA PRIBADI

Nama Lengkap : BASRAH NASUTION Nama Panggilan : BASRAH

Tempat/ Tgl. Lahir : Padangsidimpuan, 14 Agustus 1990 Jenis Kelamin : Laki-laki

Agama : Islam

Warga Negara : Indonesia

Alamat : Jln. Dr. Mansyur Gg. Sipirok No.3 Medan No. Telp./HP : -/ 085296114588

Email : banasti@gmail.com Status : Belum Menikah

2. LATAR BELAKANG PENDIDIKAN

No. Nama Sekolah Tahun

1. SDN .200206 Kota Padangsidimpuan 1997 - 2003

3. SMP N.2 Kota Padangsidimpuan 2003 - 2006

4. SMA N.4 Kota Padangsidimpuan 2006 - 2009

5. S1 Ilmu Komputer Universitas Sumatera Utara 2009 - 2013

3. PENGALAMAN KERJA

No. Instansi/Unit Jabatan/Posisi Tahun

1. Asisten Ilmu Komputer USU Asisten Laboratorium (Pengajaran Berbantuan Komputer)

2012

2. IKLC(Ilmu Komputer Laboratory Center)

Asisten Laboratorium (Grafika Komputer)

2012 3. IKLC(Ilmu Komputer

Laboratory Center)

Asisten Laboratorium (Pemrograman Internet)

2013

4. PENGALAMAN KURSUS/PELATIHAN/SEMINAR

No. Nama Kursus/Pelatihan/Seminar Tahun

1. Jaya Course 2009

2. Workshop Addakwah Bloggership Camp (ABC) 2012

3. PELADKES BKM Al-Khuwarizmi 2010

4. Pelatihan Dasar Organisasi IMILKOM USU 2010

5. Seminar Sehari ROBOTIKA dan INFORMATIKA 2011 6. Seminar Teknologi Informasi “ “The Development of Modern 2011


(11)

Operating System Technolog: Android The New Trend in Modern Operating System”.

7. Workshop Digital Paperless Publication 2011

8. Workshop dasar pemrograman mikrokontroler 2010

9. SMART LIBRARY 2012

10. Diskusi Panel Sains Interdisipliner Dunia Terkini: Pengenalan Agent Based Model dan Aplikasinya

2010

11. Workshop Teknik Hacking 2010

12. Workshop Teknik Dasar Fotografi 2010

13. Pembicara PLADKES UKMI Al-Khuwarizmi 2013

14. Pembicara Pelatihan Dasar Organisasi IMILKOM USU 2012

15. USU Workshop English Debating 2012

16. Seminar Nasional Kongres Nasional ILP2MI “Pencaplokan Budaya”

2013

5. PENGALAMAN ORGANISASI

No Nama Organisasi Jabatan Tahun

1. Ikatan Mahasiswa Kota Padangsidimpuan (IMAKOPASID)

Kabid. LITBANG 2012

2. UKMI Al-Khuwarizmi Fasilkom-TI USU

Sekretaris Umum 2011

3. UKMI Ad-Dakwah USU Anggota Komunikasi Dakwah 2012 4. SGC (Smartgeneration

Community) USU

Anggota Divisi Jaringan 2012

5. PEMA Fasilkom-TI USU Kabid. ROHIS 2012

6. IKLC (Ilmu Komputer Laboratory Center)

Ketua Umum 2013

7. Sobat Bumi Medan Anggota 2012-2013

6. PRESTASI/PENGHARGAAN

No Prestasi/Penghargaan Tahun

1. Finalis Nasional Trust By Danone 2012 2. Cadre Of This Month UKMI

Ad-Dakwah USU.

2012

3. Pemenang Hibah Bina Desa MITI 2013

7. PENGABDIAN MASYARAKAT

No Kegiatan Pengabdian Tahun

1. IKLC Mengabdi “Pelatihan Spesifikasi Ilmu Komputer di SMA N 1 Perbaungan Kab.Serdang Bedagai SUMUT

2012

2. Bakti Sosial Panti Asuhan Bani Adam UKMI Al-Khuwarizmi Fasilkom-TI USU


(12)

3. Gerakan Seribu Qur’an UKMI Ad-Dakwah USU 2012

4. Sedekah Bumi Sobat Bumi Medan 2013

5. Sedekah Bumi “ Aksi tanam pohon di pondok pesantren yatim darul fatimah Binjai SUMUT”

2013 6 Penyelenggara Try Out SNMPTN Se-Kota

Padangsidimpuan IMAKOPASID

2012

Demikian riwayat hidup ini saya perbuat dengan sebenar-benarnya.

Hormat saya,


(13)

DAFTAR PUSTAKA

[1] Anonim. Memahami model enkripsi dan security data. Yogyakarta: Penerbit Andi.

[2] Brigida. 2013. Unified Modeling Language. (Online)

[3] Dony Ariyus. 2006. Computer Security. Yogyakarta: Penerbit ANDI.

[4] Erick & Yessica. 2007. Cepat Mahir GUI MATLAB. Yogyakarta: Penerbit ANDI.

[5] Krisnawati. 2008. Metode Least Significant Bit (LSB) dan End of File untuk menyisipkan teks kedalam citra grayscale. Skripsi. Yogyakarta, Indonesia STMIK AMIKOM Yogyakarta.

[6] Kurniawan,Y. 2004. Kriptografi: Keamanan Internet Dan Jaringan Telekomunikasi. Bandung: Informatika Bandung.

[7] Molin, Richard A. 2007. An Introduction to Cryptography (Discrete mathematics and its application). Boca Raton: Chapman & Hall/CRC [8]Munawar. 2005. Pemodelan Visual dengan UML.Yogyakarta: Garaha Ilmu. [9] Sinaga,Y.A. Program Steganalisis Metode LSB pada Citra dengan

Enhanced LSB, Uji Chi-Square, dan RS-Analysis. Skripsi. Bandung, Indonesia: Institut Teknologi Bandung.

[10] Soplanoit, S. 2006. Steganografi dengan Chaotic Least Significant Bit Encoding pada Telepon Genggam. Skripsi. Jakarta Barat, Indonesia: Universitas Taruma Negara.

[11] Sutoyo,T dkk. 2009. Teori Pengolahan Citra Digital. Yogyakarta: Penerbit ANDI.

[12] T.Sutojo, dkk. 2010. Teori dan Apliasi Aljabar Linier dan Matriks. Yogyakarta: ANDI.

[13] Wandani, H. 2012. Implementasi Sistem Keamanan Data dengan menggunakan Teknik Steganografi End of File (EOF) dan Rabin Public Key Cryptosystem. Skripsi. Medan, Indonesia: Universitas Sumatera Utara.


(14)

[14] Zarlis,M., Handrizal & Sembiring, S. 2010. Pemrograman Komputer: Satu Pendekatan kepada Pemrograman Berorientasi Objek dalam C++. Medan: USU Press.


(15)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Analisis sistem merupakan tahapan pemahaman yang menyeluruh terhadap kebutuhan sistem sehingga diperoleh gambaran tugas-tugas yang akan dikerjakan sistem. Analisis sistem bertujuan agar sistem yang dibangun tepat guna dan mempermudah dalam pengembangan sistem selanjutnya.

3.1.1 Analisis Masalah

Mengamankan kerahasiaan data menggunakan kriptografi artinya menyamarkan data menjadi kode tertentu. Teknik steganografi yang digunakan dalam sistem membantu meningkatkan pengamanan dengan cara menyisipkan pesan kedalam media digital berupa citra bmp. Kemunculan sistem ini dapat dilihat dari diagram ishikawa yang menunjukkan hubungan sebab akibat dari masing-masing komponen.


(16)

Gambar 3.1 Diagram Ishikawa

Berdasarkan gambar 3.1 dapat dilihat bahwa masalah dipengaruhi oleh empat faktor primer yaitu people, method, material, dan machine. Kemudian faktor-faktor tersebut dijabarkan lagi menjadi faktor sekunder yang lebih rinci.

3.1.2 Analisis Persyaratan

3.1.2.1 Analisis Fungsional

Analisis fungsional menjelaskan segala sesuatu yang dimiliki dan dikerjakan oleh sistem. Dalam sistem keamanan data menggunakan steganografi teknik First of File dan Inverse Matrix Cipher Kunci Ganda memiliki persyaratan fungsional, antara lain:

1. Pesan yang digunakan untuk proses enkripsi berformat (*.txt) dengan cover image berformat (*.bmp).

2. Digunakan dua matriks kunci masing-masing berordo 4x4.

3. Tanda pengenal steganografi yang digunakan untuk membaca pesan terletak pada awal pesan didefault berupa kode ASCII dari “#” dan diakhir pesan didefault berupa kode ASCII dari “###”.

4. Citra stego hasil penyembunyian pesan pada cover image disimpan dalam format (*.bmp).

5. Kunci yang digunakan untuk mendekripsi pesan sama dengan kunci yang digunakan untuk proses enkripsi.


(17)

3.1.2.2 Analisis Nonfungsional

Persyaratan nonfungsional meliputi kinerja, mudah digunakan, hemat biaya, dokumentasi dan kontrol.

1. Kinerja

Sistem yang dibangun harus dapat menunjukkan hasil nyata dari penggabungan proses antara metode First of File dan Inverse Matrix Cipher Kunci Ganda.

2. Mudah digunakan

Sistem yang dibangun harus memiliki sifat mudah untuk digunakan oleh pengguna. Hal ini erat kaitannya dengan interface (antarmuka) yang memberikan pemahaman penggunaan dengan mudah bagi pengguna.

3. Hemat Biaya

Sistem yang dibangun tidak mengeluarkan tambahan piranti lain sebagai pendukung yang membutuhkan biaya.

4. Dokumentasi

Sistem yang dibangun dapat menunjukkan rekaman waktu pemrosesan data disetiap tahapan (enkripsi, dekripsi, embed dan ekstrak).

5. Kontrol

Sistem memiliki kontrol berupa aturan-aturan seperti kemunculan kotak peringatan ketika user menginputkan inputan yang tidak diizinkan oleh sistem.

3.2 Pemodelan

Pemodelan sistem dilakukan bertujuan untuk mepermudah dalam pengembangan sistem. Pemodelan sistem dibuat dalam bentuk flowchart, pseudocode, use case diagram serta perancangan antarmuka (interface). Perancangan sistem ini nantinya akan menjadi acuan dalam pengembangan sistem selanjutnya.


(18)

3.2.1 Flowchart Gambaran Umum Sistem

Ada empat proses yang dikelompokkan dalam dua kategori pada sistem yang akan dibagun, yaitu proses embedding dan extraction. Proses Embedding terdiri dari proses enkripsi plaintext dan penyisipan ciphertext ke cover image. Proses extraction terdiri dari proses ekstraksi ciphertext dari citra stego dan dekripsi ciphertext. Keseluruhan proses tersebut secara umum dapat dilihat melalui flowchart pada Gambar 3.2:


(19)

3.2.1.1 Flowchart Enkripsi

Flowchart untuk proses enkripsi dengan algoritma Inverse Matrix Cipher dapat dilihat melalui Gambar 3.3 berikut:

Gambar 3.3 Flowchart Proses Enkripsi Dengan Inverse Matrix Cipher

3.2.1.2 Flowchart Dekripsi

Guna mengembalikan ciphertext hasil enkripsi mejadi plaintext maka dibutuhkan proses dekripsi dengan algoritma Inverse Matrix Cipher. Secara terperinci alur proses


(20)

dekripsi dengan algoritma Inverse Matrix Cipher dapat dilihat melalui flowchart pada Gambar 3.4.

Gambar 3.4 Flowchart Proses Dekripsi Dengan Inverse Matrix Cipher

3.2.1.3 Flowchart Proses Embedding

Proses penyisipan pesan kedalam citra penampung menggunakan metode First of File dapat dilihat melalui flowchart berikut:


(21)

Gambar 3.5 Flowchart Proses Embedding Dengan Metode First Of File

3.2.1.4 Flowchart Proses Ekstraksi

Proses ekstraksi menggunakan metode First of File dapat dilihat melalui Gambar 3.6 sebagai berikut:


(22)

Gambar 3.6 Flowchart Proses Ekstraksi Dengan Metode First Of File

3.2.2 Unified Modeling Language (UML)

Unified modeling language (UML) menunjukkan bagaimana mengekspresikan sebuah desain berorientasi objek. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Konsep dasar UML terdiri dari structural classification, dynamic behavior, dan model management, dapat kita pahami dengan mudah apabila kita melihat dari diagram. Diagram yang akan penulis gunakan untuk pemodelan sistem ini adalah:

1. Use Case Diagram. 2. Activity Diagram.


(23)

3.2.2.1 Use Case Diagram

Use case diagram yang menggambarkan bagaimana orang-orang berinteraksi dengan sistem tersebut. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case diagram pada sistem seperti yang dijelaskan pada Gambar 3.7.

Gambar 3.7 Use Case Diagram Sistem

3.2.2.1.1 Use Case Enkripsi/Embed

Rincian use case Enkripsi/Embed dapat dilihat pada Tabel 3.2

Penggun


(24)

Tabel 3.1 Rincian Use Case Enkripsi/Embed

Name Enkripsi/Embed.

Actors Pengguna.

Trigger Pengguna memilih sub menu Enkripsi/Embed.

Preconditions Pengguna menggunakan sistem pengamanan data.

Post Conditions Pengguna dapat melihat citra stego hasil penyisipan data kedalam citra asli (citra kover) .

Success Scenario 1. Pengguna membuka aplikasi keamanan data.

2. Pengguna memilih sub menu Enkripsi/Embed dari menu Proses.

3. Sistem menampilkan Form enkripsi/embed. 4. Pengguna menginputkan kunci 1 .

5. Pengguna menekan tombol buka dan memilih file plaintext (.txt).

6. Pengguna menekan tombol enkripsi untuk mengenkripsi pesan menjadi ciphertext 1 dan menampilkan hasil enkripsi kunci 1.

7. Pengguna menginputkan kunci 2.

8. Pengguna menekan tombol enkripsi untuk mengenkripsi chipertext 1 menjadi ciphertext 2 dan menampilkan hasil enkripsi kunci 2.

9. Pengguna menekan tombol browse untuk memilih citra kover.

10.Pengguna menekan tombol embed untuk menyisipkan pesan ke dalam citra kover.

11.Sistem menampilkan citra stego.

12.Pengguna menekan tombol save untuk menyimpan citra stego.


(25)

3.2.2.1.2 Use Case Ekstrak/Dekripsi

Rincian use case Ekstrak/Dekripsi dapat dilihat pada Tabel 3.3

Tabel 3.2 Rincian Use Case Ekstrak/Dekripsi

Name Ekstrak/Dekripsi

Actors Pengguna

Trigger Pengguna memilih sub menu ekstrak/dekripsi dari menu

proses.

Preconditions Pemgguna menggunakan sistem pengamanan data

Post Condition Pengguna dapat melihat ciphertext dari citra stego yang

kemudian didekripsi menjadi plaintext.

Success Scenario 1. Pengguna membuka aplikasi pengamanan data.

2. Pengguna memilih sub menu ekstrak/dekripsi dari menu proses.

3. Sistem menampilkan form ekstrak/dekripsi.

4. Pengguna menekan tombol browse untuk memilih citra stego.

5. Pengguna menekan tombol ekstrak untuk menguraikan ciphertext yang disisipkan dalam gambar.

6. Sistem menampilkan ciphertext.

7. Pengguna memasukkan kunci 1 dan 2 sebelum melakukan proses dekripsi.

8. Pengguna menekan tombol dekripsi untuk dekripsi ciphertext menjadi plaintext.

Alternative Flow -

3.2.2.2 Activity Diagram

dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses


(26)

paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram untuk sistem ini dapat dilihat seperti Tabel 3.4:

Tabel 3.3 Activity Diagram FOF dan Inverse Matrix Cipher

User


(27)

3.2.3 Pseudocode

Pseudocode secara singkat dapat diartikan kode semu merupakan urutan baris algoritma yang menyerupai bahasa pemrograman guna menjelaskan cara menyelesaikan suatu masalah. Setiap tahapan proses yang terlibat dalam sistem ini digambarkan kedalam beberapa pseudocode berikut:

3.2.3.1 Pseudocode Proses Enkripsi

Tahapan langakah yang berlangsung dalam proses enkripsi dengan Inverse Matrix Cipher dapat dilihat melalui pseudocode berikut:

Gambar 3.8 Pseudocode Enkripsi Dengan Inverse Matrix Cipher

3.2.3.2 Pseudocode Proses Dekripsi

Langkah-langkah proses dekripsi dengan Inverse Matrix Cipher dapat dilihat melalui pseudocode berikut:


(28)

Gambar 3.9 Pseudocode Dekripsi Dengan Inverse Matrix Cipher 3.2.3.3 Pseudocode Proses Embedding

Tahapan proses penyisipan ciphertext kedalam citra penampung dapat dilihat melalui pseudocode berikut:


(29)

3.2.3.4 Pseudocode Proses Ekstraksi

Langkah-langkah proses ekstraksi ciphertext dari citra stego dapat dilihat melalui pseudocode berikut:


(30)

3.3 Tahapan Inverse Matrix Cipher

Pada tahapan Inverse Matrix Cipher dilakukan enkripsi dan dekripsi. Dalam melakukan proses enkripsi dengan algoritma Inverse Matrix Cipher digunakan dua matriks kunci untuk pengamanan pesan. Matriks kunci beordo 4x4 untuk kedua kunci. Kunci untuk enkripsi dapat diinputkan secara langsung oleh user atau menggunakan matriks dengan nilai elemen yang diacak oleh komputer.

3.3.1 Proses Enkripsi Inverse Matrix Cipher

Proses enkripsi Inverse Matrix Cipher melibatkan matriks kunci persegi ordo

4x4 untuk kedua kunci yang digunakan. K= . Misalkan

kunci yang digunakan untuk kedua kunci adalah sebagai berikut:

K1=

K2=

Tahapan proses enkripsi adalah:

1. Masukkan plaintext yang akan dienkripsi. Agar dapat dikalikan dengan plaintext maka plaintext diubah kedalam kode ASCII. Misalkan pesan ‘BISA DICOBA” sesuai kode ASCII menjadi 66 73 83 65 32 68 73 67 79 66 65. Agar proses perkalian matriks dapat berlangsung maka panjang plaintext harus habis dibagi 4, untuk itu ditambahkan spasi diakhir plaintext, spasi memiliki kode ASCII 32, sehingga data plaintext menjadi seperti Tabel 3.1.


(31)

Tabel 3.4 Konversi Plaintext Menjadi Kode ASCII

B I S A space D I C O B A space

66 73 83 65 32 68 73 67 79 66 65 32

2. Plaintext yang telah diubah kebentuk ASCII dikalikan dengan matriks kunci sesuai rumus Yi=K*Xi

Keterangan: Y=ciphertext K=kunci

X=plaintext

Misalkan plaintext diatas kita enkripsi. Maka sebelum dienkripsi agar dapat dikalikan dengan matriks kunci persegi ordo 4x4, deret angka dipartisi menjadi beberapa kelompok array dengan jumlah elemen sebanyak 4 untuk masing-masing array yang diubah dalam bentuk matriks ordo 4x1, karena dibagi 4 akan ditemukan tiga matriks misalkan X1, X2 dan X3, maka dapat dituliskan sebagai berikut,

X1= , X2= dan X3= .

sehingga ciphertext yang dihasilkan sebagai berikut: Y1=K*X1

Y1 = =

Y2=K*X2

Y2= =

Y3=K*X3

Y3= =

Sampai disini proses perkalian dengan kunci pertama selesai selanjutnya dikalikan dengan matriks kunci kedua, sehinga ditemukan ciphertext seperti berikut :


(32)

Y1= =

Y2= =

Y3= =

Hasil gabungan ketiganya menjadi rangkaian ciphertext berikut 13071 14895

23387 41495 11415 12920 20247 35891 10121 11263 17910 32554. Mengingat

setelah proses enkripsi akan ada proses penyisipan ciphertext kedalam gambar dimana nilai elemen ciphertext maksimal 255, maka dengan angka yang besar seperti diatas tidak memungkinkan disematkan kedalam gambar. Selanjutnya string ciphertext tersebut diubah kedalam kode ASCII lagi untuk tiap-tiap karakternya, sehingga ditemukan ciphertext menjadi 49 51 48 55 49 32 32 49 52 56 57 53 32 32 50 51 51 56 55 32 32 52 49 52 57 53 32 32 49 49 52 49 53 32 32 49 50 57 50 48 32 32 50 48 50 52 55 32 32 51 53 56 57 49 32 32 49 48 49 50 49 32 32 49 49 50 54 51 32 32 49 55 57 49 48 32 32 51 50 53 53 52.

Dengan kondisi seperti ini maka ciphertext dapat disisipkan kedalam gambar.

3.3.2 Proses Dekripsi Inverse Matrix Cipher

Tahapan proses dekripsi Inverse Matrix Cipher adalah sebagai berikut:

1. Inputkan ciphertext. Sebagai contoh digunakan ciphertext hasil enkripsi yang disematkan kedalam gambar yaitu: 49 51 48 55 49 32 32 49 52 56 57 53 32 32 50 51 51 56 55 32 32 52 49 52 57 53 32 32 49 49 52 49 53 32 32 49 50 57 50 48 32 32 50 48 50 52 55 32 32 51 53 56 57 49 32 32 49 48 49 50 49 32 32 49 49 50 54 51 32 32 49 55 57 49 48 32 32 51 50 53 53 52.


(33)

2. Masukkan matriks kunci satu dan dua.

Sebagai contoh digunakan matriks kunci yang digunakan pada bagian enkripsi

yaitu: K1= dan K2=

3. Ubah ciphertext menjadi tipe string sehingga ditemukan kembali angka hasil perkalian plaintext terhadap kunci pada tahap enkripsi, seperti berikut:

13071 14895 23387 41495 11415 12920 20247 35891 10121 11263 17910 32554

4. Ubah tipe ciphertext dari string menjadi number agar dapat dikalikan dengan matriks kunci.

5. Partisi array ciphertext kedalam bentuk matriks 4x1 sehingga ditemukan tiga matriks hasil partisi sebagai berikut:

Y1= , Y2= , Y3=

6. Kalikan masing-masing kelompok matriks ciphertext dengan inverse matriks kunci kedua yang hasilnya dibulatkan kedalam bilangan bulat terdekat.

Xi=K2

-X1=

Yi

=

X2= =

X3= =

7. Hasil perkalian pada langkah keenam dikalikan lagi dengan matriks kunci pertama yang hasilnya dibulatkan kebilangan bulat terdekat, sehingga Xi=K1

-X1=

Xi


(34)

X2= =

X3= =

8. Hasil perkalian terakhir merupakan plaintext dalam bentuk decimal kode ASCII, selanjutnya seluruh partisi matriks digabung menjadi satu array dan dikonversikan kebentuk alfabet sehinga ditemukan:

66 73 83 65 32 68 73 67 79 66 65 32

B I S A space D I C O B A space 9. Plaintext ditemukan bertuliskan “BISA DICOBA”

10. Proses dekripsi selesai.

3.4 Tahapan Metode First Of File

Proses End Of File mencakup dua kerja utama yaitu proses penyisispan pesan kedalam gambar (embedding) dan proses ekstraksi pesan (extraction). Pada metode First Of File pesan akan disisipkan dibagian atas dari file (header). Pada system ini pesan yang disisipkan yaitu ciphertext berupa angka hasil enkripsi menggunakan algoritma kriptografi Inverse Matrix Cipher dan citra penampung yang digunakan adalah citra berformat bmp.

3.4.1 Proses Embedding

Tahapan proses embedding menggunakan metode steganografi First Of File dilakukan dengan langkah sebagai berikut:

1. Masukkan ciphertext yang akan disematkan. 2. Inputkan citra bitmap sebagai media penyisipan. 3. Baca nilai setiap piksel citra.


(35)

4. Tambahkan ciphertext diawal piksel citra dan diberi penanda diawal dan diakhir dari ciphertext yang disisipkan.

5. Petakan menjadi citra baru.

Berikut contoh penyisispan ciphertext menggunakan metode First Of File kedalam citra RGB dimensi 8x8. Matriks piksel citra tersebut digambarkan seperti Gambar 3.1:

97 98 70 52 60 62 52 99 51 56 14 38 55 104 96 96 77 92 14 38 55 104 96 96 92 12 34 67 88 99 211 34 55 66 43 89 211 234 209 45 66 80 93 60 60 60 51 56 94 91 79 16 62 90 69 73 87 66 62 60 32 105 88 71

Gambar 3.12 Matriks Piksel Citra 8x8

Matriks piksel citra diatas akan disisipkan ciphertext 49 51 48 55 49 32 32 49 52 56 57 53 32 32 50 51 51 56 55 32 32 52 49 52 57 53 32 32 49 49 52 49 53 32 32 49 50 57 50 48 32 32 50 48 50 52 55 32 32 51 53 56 57 49 32 32 49 48 49 50 49 32 32 49 49 50 54 51 32 32 49 55 57 49 48 32 32 51 50 53 53 52. Sebelum disematkan ciphertext tersebut diberi penanda awal dengan nilai ASCII dari “#” yaitu 35 dan penanda akhir dengan karakter “###” yang memiliki nilai desimal ASCII “35 35 35”. Dengan demikian dipetakan citra baru, citra baru ini disebut dengan stego image (citra stego) dengan matriks piksel seperti pada Gambar 3.2:


(36)

35 49 51 48 55 49 32 32 49 52 56 57 53 32 32 50 51 51 56 55 32 32 52 49 52 57 53 32 32 49 49 52 49 53 32 32 49 50 57 50 48 32 32 50 48 50 52 55 32 32 51 53 56 57 49 32 32 49 48 49 50 49 32 32 49 49 50 54 51 32 32 49 55 57 49 48 32 32 51 50 53 53 52 35 35 35 0 0 97 98 70 52 60 62 52 99 51 56 14 38 55 104 96 96 77 92 14 38 55 104 96 96 92 12 34 67 88 99 211 34 55 66 43 89 211 234 209 45 66 80 93 60 60 60 51 56 94 91 79 16 62 90 69 73 87 66 62 60 32 105 88 71

Gambar 3.13 Matriks Piksel Citra Disisipi Pesan

3.4.2 Proses Extraction

Proses extraction merupakan proses pengambilan ciphertext dari citra stego atau media penampung menggunakan metode First Of File, adapun langkah-langkahnya adalah sebagai berikut:

1. Inputkan citra stego.

2. Cek piksel awal apakah sesuai penanda. 3. Cek posisi penanda akhir.


(37)

Proses diatas dapat dilihat dari contoh pengambilan ciphertext dari citra stego sebagaimana pada Gambar 3.3.

35 49 51 48 55 49 32 32 49 52 56 57 53 32 32 50 51 51 56 55 32 32 52 49 52 57 53 32 32 49 49 52 49 53 32 32 49 50 57 50 48 32 32 50 48 50 52 55 32 32 51 53 56 57 49 32 32 49 48 49 50 49 32 32 49 49 50 54 51 32 32 49 55 57 49 48 32 32 51 50

53 53 52 35 35 35 0 0

97 98 70 52 60 62 52 99 51 56 14 38 55 104 96 96

77 92 14 38 55 104 96 96

92 12 34 67 88 99 211 34

55 66 43 89 211 234 209 45

66 80 93 60 60 60 51 56

94 91 79 16 62 90 69 73

87 66 62 60 32 105 88 71

Gambar 3.14 Matriks Piksel Citra Stego

Dari matriks piksel citra tersebut dibaca nilai piksel matriks dari penanda awal sampai penanda akhir sehingga ditemukan

35 49 51 48 55 49 32 32 49 52 56 57

53 32 32 50 51 51 56 55 32 32 52 49 52 57 53 32 32 49 49 52 49 53 32 32 49 50 57 50 48 32 32 50 48 50 52 55 32 32 51 53 56 57 49 32 32 49 48 49 50 49 32 32 49 49 50 54 51 32 32 49 55 57 49 48 32 32 51 50 53 53 52 35 35 35.


(38)

Selanjutnya penanda awal dan akhir diuraikan sehingga hanya ciphertext asli saja yang diambil seperti yang dijelaskan Gambar 3.4.

49 51 48 55 49 32 32 49 52 56 57 53 32 32 50 51 51 56 55 32 32 52 49 52 57 53 32 32 49 49 52 49 53 32 32 49 50 57 50 48 32 32 50 48 50 52 55 32 32 51 53 56 57 49 32 32 49 48 49 50 49 32 32 49 49 50 54 51 32 32 49 55 57 49 48 32 32 51 50 53 53 52

Gambar 3.15 Ciphertext Dari Citra Stego

3.5 Perancangan Antarmuka (Interface)

Perancangan antarmuka menampilkan antarmuka sistem yang akan digunakan sebagai jembatan bagi user dalam menggunakan sistem yang dibuat. Antarmuka dirancang sedemikian rupa agar pengguna sistem mendapat kemudahan dalam menggunakan sistem. Dalam sistem yang akan dibangun, antarmuka terdiri dari lima halaman utama, yaitu halaman Home, Embed, Extract, Help, dan About .

3.5.1 Halaman Home

Halaman Home merupakan tampilan awal sistem ketika sistem dijalankan, pada menu bar terdapat pilihan menu utama sistem yaitu termasuk Home, Proses, Help dan About. Pada menu Proses terdapat dua sub menu yaitu Enkripsi/Embed dan Ekstrak/Dekripsi. Setiap menu yang dipilih sistem akan membuka halaman kerja menu tersebut. Setiap menu memiliki fungsi yang berbeda. Tampilan Home akan dirancang seperti Gambar 3.15


(39)

Home

X

Home Proses Help About Exit 1

Enkrip/Embed Ekstrak/Dekripsi

Gambar 3.16 Rancangan Halaman Home

Berikut ini penjelasan dari rancangan visual dari halaman Home:

1. Bagian menu bar terdiri dari pilihan menu utama sistem yaitu Home,Proses,Help,About dan Exit.

2. Merupakan statsic text berisi judul dari sistem.

3. Merupakan static text berisi informasi singkat pembuat sistem.

3.5.2 Halaman Enkripsi/Embed.

Halaman Enkripsi/Embed menjadi antarmuka bagi user untuk melakukan enkripsi dan penyisipan ciphertext hasil enkripsi kedalam media citra bitmap. Rancangan halaman Enkripsi/Embed dapat dilihat pada Gambar 3.16.

IMPLEMENTASI SISTEM KEAAMANAN DATA

MENGGUNAKAN STEGANOGRAFI TEKNIK FIRST OF FILE DAN INVERSE MATRIX CIPHER KUNCI GANDA

Developed by: Basrah Nasution 2


(40)

14

Waktu Proses

Plaintext: Length

1 9

Length

Enkrip/Embed

X

Home Proses Help About Exit

Gambar 3.17 Rancangan Halaman Enkripsi/Embed

Beberapa komponen yang digunakan dalam merancang antarmuka halaman Enkripsi/Embed dijelasakan sebagai berikut:

1. Terdiri dari Menu Editor yang berupa menu bar yang menghubungkan user ke halaman utama lainya seperti Home, Proses, Help, About dan Exit.

2. Merupakan Edit Text untuk menampilkan text yang akan dienkripsi.

3. Merupakan baris dan kolom representasi matriks 4x4 sebagai kunci 1. Masing-masing elemen matriks terdiri dari Edit Text.

4. Merupakan Push Button untuk membuka file yang akan dienkripsi. 5. Merupakan Push Buton untuk melakukan setting ulang plaintext.

6. Tombol Random merupakan Push Button berfungsi memunculkan angka acak untuk tiap-tiap elemen matriks kunci 1.

7. Merupakan Push Buton untuk melakukan setting ulang elemen matriks kunci 1. 8. Merupakan Push Button untuk melakukan enkripsi pesan.

18 7 6 Waktu Proses Random Enkrip

Reset Waktu

Proses

Detail image

Browse image

Citra kover Embed Citra stego Save

2 3

4 8 13 15 Buk 5 Reset Enkri

10 12

11 Random Reset

16 17 19 20 21 22 23 24 25


(41)

9. Merupakan Edit Text untuk menampilkan panjang deret karakter hasil enkripsi. 10.Merupakan Edit Text untuk menampilkan ciphertext hasil enkripsi dengan kunci

pertama .

11.Merupakan Edit Text untuk menampilkan waktu proses enkripsi dengan kunci pertama.

12.Merupakan baris dan kolom representasi matriks 4x4 sebagai kunci 2. Masing-masing elemen matriks terdiri dari Edit Text.

13.Merupakan Push Button untuk melakukan enkripsi pesan dengan kunci 2.

14.Tombol Random merupakan Push Button berfungsi memunculkan angka acak untuk tiap-tiap elemen matriks kunci 2.

15.Merupakan Push Buton untuk melakukan setting ulang elemen matriks kunci 2. 16.Merupakan Edit Text untuk menampilkan panjang deret karakter hasil enkripsi

dengan kunci 2.

17.Merupakan Edit Text untuk menampilkan ciphertext hasil enkripsi dengan kunci 2.

18.Merupakan Edit Text untuk menampilkan waktu proses enkripsi dengan kunci 2. 19.Merupakan komponen Axes untuk menampilkan cover image.

20.Merupakan Push Button untuk menelusuri lokasi direktori cover image.

21.Terdiri dari beberapa Edit Text untuk menampilkan informasi rincian citra seperti lokasi, dimensi, nama file dan ukuran file.

22. Merupakan Push Button untuk melakukan proses penyisipan (embedding) ciphertext kedalam cover image.

23.Merupakan Axes untuk menampilkan citra stego.

24.Merupakan Push Button untuk melakukan proses penyimpanan citra stego. 25.Merupakan Edit Text untuk menunjukkan lama waktu proses embedding.

26.Merupakan Edit Text untuk menunjukkan total waktu proses enkripsi dengan kedua kunci.


(42)

Waktu Proses

Ciphertext:

Buka citra stego

Palintext:

1

5 6

3.5.3 Halaman Ekstrak/Dekripsi

Halaman Ekstrak/Dekripsi adalah antarmuka oleh user untuk melakukan ekstraksi pesan rahasia dan menguraikannya kembali menjadi plaintext dengan proses dekripsi pesan. Halaman Ekstrak/Dekripsi dirancang sedemikian seperti Gambar 3.17

Extract

X

Home Proses Help About Exit

Gambar 3.18 Rancangan Halaman Ekstrak/Dekripsi

Beberapa komponen yang digunakan untuk halaman Ekstrak/Dekripsi dijelaskan sebagai berikut:

1. Terdiri dari Menu Editor yang berupa menu bar yang menghubungkan user ke halaman utama lainya seperti Home, Proses, Help, About dan Exit.

2. Merupakan Axes untuk menapilkan citra stego yang akan diekstrak.

3. Merupakan kumpulan beberapa Edit Text untuk menampilkan informasi citra antara lain lokasi direktori, ukuran citra, nama file citra dan dimensi.

4. Merupakan Edit Text untuk menampilkan ciphertext hasil ekstraksi dari citra. 5. Merupakan Push Button untuk melakukan penelusuran lokasi file citra stego. 6. Merupakan Push Button untuk melakukan ekstraksi pesan yang ada dalam citra. 7. Merupakan Edit Text untuk menunjukkan waktu proses ekstraksi citra stego.

Ekstrak Waktu Proses Detail image Dekripsi Browse Image 2 3 4 7 8 9


(43)

1

8. Merupakan baris dan kolom representasi matriks 4x4 seabagai kunci, disediakan sebanyak dua buah yaitu kunci 1 dan kunci 2. Masing-masing elemen matriks terdiri dari Edit Text.

9. Merupakan Push Button untuk melakukan dekripsi pesan. 10.Merupakan Edit Text untuk menunjukkan waktu proses dekripsi.

11.Merupakan Edit Text untuk menunjukkan plaintext hasil dekripsi ciphertext.

3.5.4 Halaman Help

Halaman Help dirancang untuk memberikan informasi berupa petunjuk melakukan proses enkripsi, dekripsi, penyisipan dan ekstrak pada sistem. Halaman Help dirancang seperti visualisasi pada Gambar 3.18.

Extract

X

Home Proses Help About Exit

Gambar 3.19 Rancangan Halaman Help

Beberapa komponen yang digunakan untuk halaman Help dijelaskan sebagai berikut:

1. Terdiri dari Menu Editor yang berupa menu bar yang menghubungkan user ke halaman utama lainya seperti Home, Proses, Help, About dan Exit.

Petunjuk proses enkripsi

Petunjuk proses embedding

Petunjuk proses ekstrak

Petunjuk proses dekripsi 3

2


(44)

2. Merupakan Edit Text berisi petunjuk proses enkripsi. 3. Merupakan Edit Text berisi petunjuk proses embedding. 4. Merupakan Edit Text berisi petunjuk proses ekstraksi. 5. Merupakan Edit Text berisi petunjuk proses dekripsi.

3.5.5 Halaman About

Halaman About merupakan halaman yang memberikan informasi terkait pembuat program.

About

X

Gambar 3.20 Rancangan Halaman About

Beberapa komponen yang digunakan untuk halaman Help dijelaskan sebagai berikut:

1. Merupakan Edit Text berisi informasi tentang pembuat sistem. 2. Merupakan Push Button berfungsi untuk menutup halaman About.

Info tentang programmer

OK

1


(45)

BAB IV

IMPLEMENTASI DAN PENGUJIAN

4.1Implementasi Sistem

Tahap implementasi sistem dilakukan setelah tahap analisis First Of File dan Inverse Matrix Cipher serta perancangan sistem. Sistem diimplementasikan kedalam bahasa pemrograman MATLAB 7.5.0 (R2007b). Implementasi sistem akan disesuaikan dengan rancangan yang telah dimodelkan sebelumnya. Perancangan sistem yang baik akan berpengaruh pada pengembangan sistem ke tahap implementasi.

4.1.1 Spesifikasi Perangkat Keras

Spesifikasi peragkat keras yang digunakan untuk implementasi sistem ini adalah sebagai berikut:

1. Processor Intel Core i3 2.20 GHz 2. Memory (RAM) 2 GB

3. Harddisk 500 GB

4. Resolusi monitor 1366 x 768 pixel 5. Mouse dan Keyboard

4.1.2 Spesifikasi Perangkat Lunak

Spesifikasi perangkat lunak yang digunakan dalam implementasi sistem ini adalah sebagai berikut:

1. Sistestem Operasi Windows 7 Profesional. 2. Matlab 7.5.0 (R2007b)


(46)

4.2Tampilan Antarmuka (Interface)

Sesuai dengan perancangan sistem, maka ada lima halaman utama tampilan antarmuka dari sistem yang dibangun yaitu:

1. Halaman Home.

2. Halaman Enkripsi/Embed. 3. Halaman Ekstrak/Dekripsi. 4. Halaman Help.

5. Halaman About.

4.2.1 Tampilan Halaman Home.

Halaman Home adalah halaman yang muncul pertama sekali ketika sistem dijalankan, tampilan halaman Home seperti yang ditunjukkan Gambar 4.1

Gambar 4.1 Tampilan Halaman Home

Pada halaman Home terlihat bahwa terdapat lima pilihan pada menu bar yaitu Home, Proses, Help, About dan Exit. Seperti yang ditunjukkan oleh gambar, bahwa menu proses terdiri dari dua sub menu yaitu Enkripsi/Embed dan Dekripsi/Ekstrak.


(47)

4.2.2 Tampilan Halaman Enkripsi/Embed

Halaman Enkripsi/Embed merupakan halaman yang ditujukan untuk melakukan enkripsi plaintext dan penyisipannya ke dalam citra bitmap. Halaman Enkripsi/Embed merupakan sub menu dari menu proses. Halaman Enkripsi/Embed dapat dilihat melalui Gambar 4.2 berikut:

Gambar 4.2 Tampilan Halaman Enkripsi/Embed

4.2.3 Tampilan Halaman Ekstrak/Dekripsi

Halaman Ekstrak/Dekripsi merupakan halaman yang digunakan untuk ekstraksi pesan dari citra bitmap, selanjutnya di enkripsi untuk mendapatkan plaintext. Proses ini disajikan pada halaman Ekstraksi/Dekripsi seperti pada Gambar 4.3 berikut:


(48)

Gambar 4.3 Tampilan Halaman Ekstrak/Dekripsi

4.2.4 Tampilan Halaman Help

Halaman Help berisi informasi petunjuk penggunaan sistem. Penggunaan sistem yang dimaksud berupa penjelasan langkah-langkah melakukan enkripsi, embedding, ekstraksi dan dekripsi. Hasil tampilannya dapat dilihat pada Gambar 4.4 berikut:


(49)

Gambar 4.4 Tampilan Halaman Help

4.2.5 Tampilan Halaman About

Halaman About berisi informasi tentang programmer sistem. Tampilan halaman About dapat dilihat pada Gambar 4.5.


(50)

4.3Pengujian Sistem

Tahap pengujian sistem merupakan lanjutan dari tahap implementasi sistem. Tahap pengujian sistem bertujuan untuk membuktikan bahwa sistem yang dibangun berjalan dengan baik sesuai analaisis dan perancangan sistem yang telah direnacanakan sebelumnya.

4.3.1 Pengujian Proses Enkripsi

Untuk melakukan proses enkripsi pertama sekali dilakukan penginputan plaintext dengan cara meng-klik tombol buka.Setelah tombol buka ditekan akan muncul kotak dialog pop up window pencarian file .txt yang akan dienkripsi.

Gambar 4.6 Inputan Plaintext

Berikutnya adalah memasukkan nilai elemen matriks pertama dengan cara menginputkan secara manual atau dengan menekan tombol random. Jika menekan tombol random, maka komputer akan mengacak sendiri nilai untuk tiap-tipa elemen.


(51)

Tidak ada algoritma khusus yang penulis tambahkan untuk proses ini, penulis hanya memanfaatkan fungsi random yang telah disediakan matlab.

Gambar 4.7 Tampilan Input Kunci Matriks 1

Selanjutnya dilakukan enkripsi dengan kunci pertama. Dengan demikian hasil enkripsi dengan kunci pertama akan ditampilkan pada kolom ciphertext yang telah disediakan, secara otomatis panjang karakter ciphertext dan lama proses diberitahukan lewat kolom yang tersedia. Kondisi ini dijelaskan pada Gambar 4.8:


(52)

Gambar 4.8 Tampilan Ciphertext Hasil Enkripsi dengan Kunci 1

Kembali dilakukan pemasukan kunci, sama seperti kunci 1, kunci 2 juga dapat dilakukan secara manual ataupun random, yang secara otomatis diisi oleh komputer


(53)

Setelah di klik tombol enkripsi maka akan menghasilkan ciphertext hasil enkripsi 2 seperti yang tampak pada Gambar 4.8. Tahap enkripsi berakhir sampai pada langkah ini.

Gambar 4.10 Tampilan Ciphertext Hasil Enkripsi dengan Kunci 2

4.3.2 Pengujian Proses Embedding

Proses embedding dapat dilakukan setelah ciphertext ditmukan dari hasil enkripsi. Proses penyisipan (embedding) diawali dengan pemilihan file citra penampung format bmp. Penelusuran file citra dapat dilihat seperti yang ditunjukkan oleh Gambar 4.9.


(54)

Gambar 4.11 Pop Up Window Pencarian File

Setelah file bitmap dipilih, selanjutnya citra bitmap tersebut akan ditampilkan pada kotak tampilan citra yang telah disediakan secara bersamaan informasi seputar file citra ditampilkan pada kotak Detail. Seperti yang ditunjukkan pada Gambar 4.12.


(55)

Selanjutnya adalah menekan tombol embed untuk eksekusi embedding ciphertext kedalam cover image. Cover image yang berisi pesan akan dipetakan kembali dan ditampilkan pada kotak tampilan yang disediakan, waktu proses embedding juga akan muncul pada kotak yang disediakan . Citra ini disebut citra stego (stego image). Citra stego yang dihasilkan dapat dilihat seperti pada Gambar 4.13

.

Gambar 4.13 Tampilan Citra Stego

Tahap terakhir citra stego dapat disimpan dengan menekan tombol save. Pop Up Window akan muncul untuk menentukan lokasi penyimpanan dari citra stego seperti yang ditunjukkan pada Gambar 4.14


(56)

Gambar 4.14. Pop Up Window Penyimpan File Citra Stego

4.3.3 Pengujian Proses Ekstrak

Pengujian proses ekstraksi dimulai dengan pengambilan citra stego dengan cara menekan tombol browse sehingga mucul pop-up window untuk memilih file citra stego seperti yang ditunjukkan Gambar 4.15 berikut:


(57)

Setelah citra stego dipilih maka akan ditampilkan pada kotak citra stego yang telah disediakan. Bersamaan juga akan ditampilkan informasi terkait file citra yang dimunculkan di kotak detail. Hal ini dapat dilihat pada Gambar 4.16.

Gambar 4.16 Tampilan Citra Stego

Tahap terakhir adalah menekan tombol ekstrak untuk eksekusi ekstraksi ciphertext yang terkandung dalam citra stego. Ciphertext hasil ekstraksi akan dimunculkan di kotak ciphertext, juga akan ditampilkan waktu proses ekstrak pada kotak yang disediakan. Untuk lebih jelasnya dapat dilihat pada Gambar 4.17.


(58)

Gambar 4.17 Tampilan Ciphertext Hasil Ekstraksi

4.3.4 Pengujian Proses

Dekripsi

Proses dekripsi dapat dilakukan jika ciphertext dan kunci telah diinputkan. Penginputan kunci dilakukan secara manual pada kotak matriks yang telah disediakan untuk kedua matriks baik kunci matriks satu maupun kunci matriks dua. Gambar 4.18 berikut menunjukkan proses penginputan matriks untuk tahap awal proses dekripsi.


(59)

Gambar 4.18 Tampilan Masukan Matriks Kunci

Langkah terakhir adalah menekan tombol dekripsi untuk memunculkan plaintext hasil dekripsi pada kotak plaintext yang disediakan. Waktu proses dekripsi juga akan muncul setelah menekan tombol dekripsi. Hal ini dapat kita lihat melalui Gambar 4.19.


(60)

Gambar 4.19 Tampilan Plaintext Hasil Dekripsi

4.4 Hasil Pengujian

Dalam penelitian ini dilakukan pengujian pada beberapa citra bitmap dengan menggunaan plaintext dan kunci yang berbeda untuk masing-masing citra pengujian, hasilnya seperti yang dijelaskan oleh Tabel 4.1


(61)

Tabel 4.1 Hasil Pengujian Pada Beberapa Citra

No Plaintext Kunci 1 dan Kunci 2/ Citra Kover Citra Stego Panjang Ciphertext

1 Implementasi Sistem Keamanan Data Menggunakan Steganografi Teknik First Of File dan Inverse Matrix Cipher Kunci Ganda Kunci 1 Kunci 2 }}}}}}{ Nama: Iklc.bmp Ukuran: 1333.5 kb Dimensi: 960x463

Nama:hasil.bmp Ukuran:1336.37 kb Dimensi: 960x464

866

2 Manjadda Wa Jada

Kunci 1

Kunci 2

Nama:

awankecil.bmp Ukuran: 29.984 kb Dimensi: 115 x 86

Nama:

awankecil2.bmp Ukuran: 30.678 kb Dimensi:115 x 88 130

3 Pemisah antara keberhasilan dan kegagalan adalah keputusasaan Kunci 1 Kunci 2 Nama: sobatbumi.bmp Nama: sobatbumi2.bmp


(62)

514 Ukuran: 2073.65 kb Dimensi: 960 x 720

Ukuran: 2076.53 kb Dimensi: 960 x 721 4 Where there

is a will, there is a way

Kunci 1

Kunci 2

Nama: Kayu.bmp Ukuran: 1966.13 kb Dimensi:1024 x 640

Nama: Kayu2.bmp Ukuran:1969.21 kb Dimensi:1024 x 641 322

5 bersatu kita teguh, bercerai kita runtuh Kunci 1 Kunci 2 Nama: fotobareng.bmp Ukuran: 2073.65 kb Dimensi: 960 x 720

Nama:

fotobareng2.bmp Ukuran: 2076.53 kb Dimensi:960 x 721 322

6 Belajar ibarat mendayung melawan arah arus air, ketika berhenti mendayung kita akan mundur ke belakang Kunci 1 Kunci 2 Nama: tunas.bmp Ukuran: 3769.97 kb

Dimensi:960 x 1309

Nama: tunas2.bmp Ukuran: 3772.85 kb

Dimensi:960 x 1310 834


(63)

Tabel 4.1 menunjukkan bahwa sistem yang dibangun benar-benar dapat diimplementasikan untuk melakukan proses kriptografi dan steganografi untuk pengamanan data rahasia untuk berbagai jenis file bitmap dengan ukuran file yang berbeda-beda, matriks kunci yang berbeda dan plaintext yang berbeda.

4.4.1 Hasil Uji Waktu Proses Enkripsi dan Dekripsi

Proses enkripsi dilakukan pertama sekali untuk mendapatkan ciphertext sebelum proses embedding, sedangkan proses dekripsi dilakukan paling akhir untuk mendapatkan kembali plaintext, setelah terlebih dahulu dilakukan proses ekstrak. Pada pengujian ini digunakan plaintext dengan panjang file uji (.txt) yang berbeda. Proses enkripsi semua file uji (.txt) menggunakan matriks kunci yang sama yaitu:

Kunci 1

Kunci 2

Dari pengujian ini ditemukan data seperti yang dijelaskan Tabel 4.2.

Tabel 4.2 Uji Waktu Proses Enkripsi Dan Dekripsi

No. Panjang Plaintext (karakter)

Waktu rata-rata Enkripsi (Milliseconds)

Panjang Chipertex (karakter)

Waktu rata-rata Dekripsi (Milliseconds)

1. 44 106 386 168

2. 177 146 1506 223


(64)

4. 708 326 5954 270

5. 1416 516 11874 288

6. 2832 1124 23778 705

Berdasarkan data yang ditemukan terlihat bahwa semakin besar panjang plaintext maka semakin lama waktu proses. Dengan demikian dapat dikatakan bahwa waktu enkripsi berbanding lurus dengan panjang plaintext begitu juga dengan waktu dekripsi berbanding lurus dengan panjang ciphertext yang digunakan seperti yang dijelaskan grafik berikut:

Gambar 4.20 Grafik Hubungan Waktu Enkripsi Dengan Panjang Plaintext

Koordinat titik x menunjukkan panjang plaintext yang digunakan, sedangkan koordinat titik y menunjukkan waktu proses enkripsi, grafik berupa garis lurus warna biru menunjukkan x dan y berbanding lurus, dengan kata lain jika x semakin besar maka y juga akan semakin besar.


(65)

Gambar 4.21 Grafik Hubungan Waktu Dekripsi Dengan Panjang Ciphertext

Koordinat titik x menunjukkan panjang ciphertext yang digunakan, sedangkan koordinat titik y menunjukkan waktu proses dekripsi, grafik berupa garis lurus warna coklat menunjukkan x dan y berbanding lurus, dengan kata lain jika x semakin besar maka y juga akan semakin besar. Grafik hubungan waktu dekripsi dengan panjang ciphertext maupun grafik hubungan waktu enkripsi dengan panjang plaintext, menunjukkan kondisi yang sama, yaitu berbanding lurus.

4.4.2 Hasil Uji Waktu Proses Embedding Dan Ekstrak

Hasil pengujian waktu proses penyisipan dan ekstrak dijelaskan pada Tabel 4.3

Tabel 4.3 Uji Waktu Proses Embedding Dan Ekstrak

No.

Ukuran Citra Kover

(kb)

Panjang Ciphertext

(kb)

Waktu rata-rata

Embed

Ukuran Citra Stego (kb)

Waktu rata-rata

Ekstrak

1. 1333.5 358 511 1336.37 1438


(66)

3. 1333.5 2978 518 1345.01 1575

4. 1333.5 5954 527 1353.65 1730

5. 1333.5 11874 641 1370.93 1898

6. 1333.5 23778 758 1405.49 2565

Sesuai hasil yang ditemukan pada tabel 4.3 , terlihat bahwa waktu proses embedding berbanding lurus dengan panjang ciphertext. Selain itu ditunjukkan juga bahwa waktu proses ekstrak berbanding lurus dengan ukuran citra stego. Kedua hal ini ditunjukkan pada grafik berikut:

Gambar 4.22 Grafik Hubungan Waktu Embedding Dengan Panjang Ciphertext

Koordinat titik x menunjukkan panjang ciphertext yang digunakan, sedangkan koordinat titik y menunjukkan waktu proses embedding, grafik berupa garis lurus warna biru menunjukkan x dan y berbanding lurus, dengan kata lain jika x semakin besar maka y juga akan semakin besar.


(67)

Gambar 4.23 Grafik Hubungan Waktu Ekstrak Dengan Ukuran Citra Stego

Koordinat titik x menunjukkan besar ukuran citra stego yang digunakan, sedangkan koordinat titik y menunjukkan waktu proses ekstrak, grafik berupa garis lurus warna coklat menunjukkan x dan y berbanding lurus, dengan kata lain jika x semakin besar maka y juga akan semakin besar.

4.4.3 Hasil Uji Panjang Ciphertext Dengan Efek Piksel Hitam Pada Citra Stego

Citra stego hasil penyisipan pesan memiliki efek piksel hitam pada bagian atas (header) citra stego. Hal ini dikarenakan ciphertext disisipkan pada bagian awal citra. Dalam penelitian ini digunakan citra kover dengan ukuran yang sama kemudian sisisipkan dengan ciphertext dengan panjang yang berbeda sehingga menghasilkan ukuran citra stego dengan ukuran yang berbeda. Hal ini dijelaskan melalui Tabel 4.4.


(68)

Tabel 4.4 Tampilan Efek Piksel Hitam Pada Citra Stego

Stego 1 Stego 2 Stego 3

1336.37 kb 1339.25 kb 1345.01 kb

Ciphertext: 358 Ciphertext: 1506 Ciphertext: 2978

Stego 4 Stego 5 Stego 6

1353.65 kb 1370.93 kb 1405.49 kb

Ciphertext: 5954 Ciphertext: 11874 Ciphertext: 23778

Berdasarkan Tabel 4.4 terlihat bahwa ketebalan efek piksel hitam pada header file citra bitmap dipengaruhi oleh banyaknya karakter ciphertext yang disisipkan pada citra tersebut.


(69)

BAB V

KESIMPULAN DAN SARAN

5.1Kesimpulan

Berdasarkan analisis dan pengujian pada sistem keamanan data menggunakan steganografi First Of File dan Inverse Matrix Cipher Kunci Ganda dapat ditarik kesimpulan sebagai berikut:

1. Proses steganografi dengan metode first of file dan algoritma kriptografi Inverse Matrix Cipher dapat dikombinasikan untuk membangun sistem keamanan data.

2. Pada sisitem ini menggunakan dua kunci enkripsi Inverse Matrix Cipher (kunci ganda), sedangkan kunci pada steganografi dibuat dalam program berupa tanda pengenal pada piksel citra bitmap. Tanda pengenal disisipkan diawal piksel citra dan akhir piksel yang digunakan untuk menyembunyikan ciphertext.

3. Sistem ini menggunakan steganografi metode first of file, data hasil enkripsi disimpan diawal file citra bitmap sehingga membuat ukuran file citra bitmap lebih besar dari semula, kemudian memunculkan garis hitam pada bagian atas file citra bitmap tersebut.

4. Banyaknya garis hitam pada file citra bitmap berbanding lurus dengan panjang karakter hasil enkripsi plaintext (ciphertext). Dengan kata lain semakin panjang karakter ciphertext maka garis hitamnya semakin tebal.


(70)

5. Waktu proses enkripsi/dekripsi maupun embedding/ekstrak berbanding lurus dengan panjang karakter dan ukuran citra. Semakin besar ukurannya semakin lama waktu yang dibutuhkan.

5.2 Saran

Sebagai pertimbangan untuk pengembangan lebih lanjut dari sistem keamanan ini, maka penulis sampaikan saran-saran sebagai berikut:

1. Algoritma kriptografi klasik Inverse Matrix Cipher dapat dikombinasikan dengan algoritma lain misalnya Blowfish, El-Gamal, RSA dan algortima lainnya.

2. Untuk penelitian selanjutnya ukuran matriks persegi kunci enkripsi Inverse Matrix Cipher dapat dibuat pilihan ordo matriksnya misalnya 2x2, 3x3 dan 4x4.

3. Pada penelitian ini hanya melakukan enkripsi data teks pada file ekstensi .txt. Untuk penelitian berikutnya dapat dilakukan enkripsi untuk file format lain seperti .doc.


(71)

BAB II

LANDASAN TEORI

2.1 Kriptografi

Kriptografi adalah ilmu yang mempelajari cara-cara mengamankan informasi rahasia dari suatu tempat ke tempat lain [4]. Caranya adalah dengan menyandikan informasi rahasia agar tidak terbaca dan dimengerti oleh orang banyak selain si pengirim dan penerimanya serta mentransformasikan kembali ke bentuk semula yang bisa dimengerti. Teknik demikian dipergunakan untuk mengkonversi atau mengubah suatu data kedalam bentuk kode-kode tertentu, sehingga tidak dapat dibaca oleh pihak yang tidak dikehendaki.

2.1.1 Pengertian Kriptografi

Kriptografi berasal dari bahasa Yunani. Menurut bahasa tersebut kata kriptografi dibagi menjadi dua, Yaitu kripto dan graphia. Kripto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat yang lain. Dalam perkembangannya, kriptografi juga digunakan untuk mengidentifikasi pengiriman pesan dengan tanda tangan digital dan keaslian pesan dengan sidik jari digital (fingerprint). Dalam kriptografi dikenal beberapa istilah penting sebperti berikut:

1. Pesan

Pesan adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Pesan sering juga disebut plainteks (plaintext) atau pesan jelas (cleartext).


(72)

Plainteks merupakan suatu pesan bermakna yang akan diproses menggunakan algoritma kriptografi.

2. Cipherteks

Cipherteks (ciphertext) atau disebut juga kriptogram (cryptogram) merupakan pesan yang telah tersandi. Pesan dalam bentuk cipherteks tidak dapat dibaca karena berisi karakter-karakter yang tidak memiliki makna setelah melalui proses enkripsi.

3. Enkripsi

Enkripsi merupakan proses yang dilakukan untuk menyandikan plainteks menjadi cipherteks atau disebut sebagai enchipering. Enkripsi dilakukan dengan tujuan agar plainteks tersebut tidak dapat dibaca oleh pihak yang tidak berwenang.

4. Dekripsi

Dekripsi merupakan proses mengembalikan cipherteks menjadi plainteks semula atau disebut deciphering. Dekripsi dilakukan ketika pesan telah sampai kepada pihak yang dituju.

5. Kunci

Kunci adalah parameter yang digunakan untuk transformasi enkripsi dan dekripsi. Kunci biasanya berupa string atau deretan bilangan. Keamanan suatu algoritma kriptografi biasanya bergantung kepada kerahasiaan penyebaran kunci.

Setiap algoritma kriptografi terdiri algoritma enkripsi (E) dan algoritma dekripsi (D). Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah relasi antara dua himpunan yaitu himpunan yang berisi elemen plaintext dan himpunan yang berisi elemen ciphertext. Enkripsi dan dekripsi merupakan fungsi tranformasi antara dua himpunan tersebut. Secara umum dapat digambarkan secara matematis sebagai berikut:

Ek(P) = C (Proses Enkripsi) ... (2.1) Dk(C) = P (Proses Dekripsi) ... (2.2) Dk(E(P)) = P (Proses Dekripsi) ... (2.3)


(73)

Dalam proses tersebut, plaintext disandikan dengan P dengan suatu kunci K lalu dihasilkan pesan C. Pada proses dekripsi, C diuraikan dengan menggunakan kunci K sehingga menghasilkan pesan yang sama dengan sebelumnya.

Gambar 2.1. Cryptosystem

Setiap cryptosystem yang baik memiliki karakteristik sebagai berikut:

a. Keamanan sistem terletak pada kerahasiaan kunci dan bukan pada kerahasian algoritma yang digunakan.

b. Cryptosystem yang baik memiliki ruang kunci (keyspace) yang besar.

c. Cryptosystem yang baik akan menghasilkan ciphertext yang terlihat acak dalam seluruh test statistik yang dilakukan.

d. Cryptosystem yang baik mampu menahan seluruh serangan yang telah dikenal sebelumnya [10].

2.1.2 Aspek-aspek Keamanan

Selain memberikan kerahasiaan dalam telekomunikasi kriptografi juga memberikan komponen-komponen sebagai berikut:

1. Authentication

Penerima pesan dapat memastikan keaslian pengirimannya. Penyerang tidak dapat berpura-pura sebagai orang orang lain.

2. Integrity

Penerima harus dapat memeriksa apakah pesan telah dimodifikasi ditengah jalan atau tidak. Seorang penyusup seharussnya tidak dapat memasukkan tambahan kedalam pesan, mengurangi atau mengubah pesan selama data berada di perjalanan.

Original Plaintext Dekripsi

Enkripsi Plaintext

Kunci

Chipertext


(74)

3. Nonrepudiation

Pengirim seharusnya tidak dapat mengelak bahwa dialah pengirim pesan yang sesungguhnya. Tanpa kriptografi, seseorang dapat mengelak bahwa dialah pengrim email yang sesungguhnya

4. Authority

Informasi yang berada pada system jaringan seharusnya hanya dapat dimodifikasi oleh pihak yang berwenang. Modifikasi yang tidak diinginkan, dapat berupa penulisan tambahan pesan, pengubahan isi, pengubahan status, penghapusan, pembuatan pesan baru (pemalsuan), atau penyalinan pesan untuk digunakan kemudian oleh penyerang.

2.1.3 Klasifikasi Kriptografi

Terdapat dua jenis algortima kriptografi berdasarkan jenis kuncinya: 1. Algoritma Simetri (Konvensional)

2. Algoritma Asimetri (Kunci-publik)

1. Algoritma Simetri

Algoritma simetri disebut juga sebagai algoritma konvensional adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Disebut konvensional karena algoritma yang biasa digunakan orang sejak berabad-abad yang lalu adalah algoritma jenis ini. Algoritma simetri sering juga disebut algoritma kunci rahasia, algoritma kunci tunggal atau algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka dapat berkomunikasi dengan aman. Keamanan algoritma simetri tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkrip dan mendekrip pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan. Yang termasuk algoritma kunci simetri adalah OTP, DES, RC2, Hill Cipher, Inverse Matrix Cipher, RC4, RC5, RC6, IDEA, Twofish, Magenta, FEAL, SAFER, Blowfish, GOST, Kasumi dan lain-lain. Metode Hill Cipher dan Inverse Matrix Cipher akan dibahas lebih lanjut pada bagian berikutnya mengingat kedua


(75)

metode ini sama-sama menggunakan matriks sebagai kunci enkripsi dan dekripsinya.

2. Algoritma Asimetri

Algoritma asimetri (juga disebut algoritma kunci publik) didesain sedemikian sehingga kunci yang digunakan untuk enkripsi berbeda dari kunci yang digunakan untuk dekripsi. Lebih jauh lagi, kunci dekripsi tidak dapat (sedikitnya dalam waktu yang dapat diterima) dihitung dari kunci enkripsi. Algoritma disebut kunci publik karena kunci enkripsi dapat dibuat publik yang berarti semua orang boleh mengetahuinya. Sembarang orang dapat menggunakan kunci enkripsi tersebut untuk mengenkrip pesan, namun hanya orang tertentu (calon penerima pesan dan sekaligus pemilik kunci dekripsi yang merupakan pasangan kunci publik) yang dapat melakukan dekripsi terhadap pesan tersebut. Yang termasuk algoritma asimetri adalah ECC, LUC, RSA, El-Gamal dan DH.

2.1.4 Algoritma Kriptografi Hill Cipher

Hill Cipher termasuk dalam salah satu kriptosistem polialfabetik, artinya setiap karakter alfabet bisa dipetakan ke lebih dari satu macam karakter alfabet. Cipher tersebut ditemukan pada tahun 1929 oleh Lester S. Hill [2]. Misalkan m adalah bilangan bulat positif, dan P = C = (Z26)m

Misalkan m = 2, maka kita dapat menuliskan suatu elemen plaintext sebagai x=(x

. Ide dari Hill Cipher adalah dengan mengambil m kombinasi linier dari m karakter alfabet dalam satu elemen plaintext sehinga menghasilkan m alfabet karakter dalam satu elemen plaintext.

1,x2), dan suatu elemen ciphertext sebagai y=(y1,y2). Di sini, y1,y2 adalah

kombinasi linier dari x1 dan x2

y

. Kita misalkan:

1 = 11x1 + 3x

y

2 2 = 8x1 + 7x

Kita juga dapat menuliskannya dalam notasi matriks sebagai berikut:

2

(y1 y2) = (x1 x2)

Secara umum, kita akan menggunakan matriks K m x m sebagai kunci kita. Jika elemen pada baris i dan kolom j dari matriks K adalah kij, maka kita tuliskan K=(kij).


(76)

Untuk x=(x1,…, xm) P dan K K, kita menghitung y=ek(x)=(y1,…,ym) sebagai

berikut:

(y1 y2 … ym) = (x1 x2 … xm) ……….…………(2.4)

Dengan kata lain, y = xK………..(2.5) Syarat yang perlu diperhatikan adalah detertminan≠0, dan gcd(determinan,panjang tabel karakter)=1.

2.1.5 Algoritma Kriptografi Inverse Matrix Cipher

Kriptografi Inverse Matrix Cipher bekerja dengan membagi plaintext menjadi himpunan-himpunan n-huruf dan menggantinya dengan n-angka. Metode ini menggunakan matriks sebagai kuncinya dalam coding. Dalam hal ini matriks yang mempunyai invers yang dijadikan sebagai kunci. Misalkan diketahui dua buah matriks A dan B sedangkan hasil perkalian kedua matriks tersebut adalah:

C=B*A………(2.6) Untuk mendapatkan kembali matriks A, perlu dilakukan proses berikut: Kedua ruas dikalikan dengan invers matriks B dan B-1

B . -1 *C=B-1 Ingat (B*B *B*A………..(2.7) -1 B )=I………...(2.8) -1 atau *C=IA .………..(2.9) A=B-1

Konsep ini digunakan untuk membuat kriptografi, yaitu pesan rahasia disimpan dalam matriks A, kemudian di-encode menggunakan kunci B, dan pesan yang dikirim adalah matriks C. Dengan catatan bahwa penerima telah mengetahui bahwa kuncinya adalah matriks B [12].

*C………..(2.5)

Konsep enkripsi dan dekripsi menggunakan algoritma kriptografi Inverse Matrix Cipher dapat dilakukan juga dengan cara seperti berikut:


(1)

DAFTAR ISI

Halaman

Persetujuan. ii

Pernyataan iii Penghargaan iv Abstrak vi Abstract vii Daftar Isi viii Daftar Tabel xi Daftar Gambar xii BAB I PENDAHULUAN 1.1 Latar Belakang 1

1.2 Rumusan Masalah 3

1.3 Batasan Masalah 3

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 4

1.6 Metode Penelitian 4

1.7 Sistematika Penulisan 5

Bab II LANDASAN TEORI 2.1 Kriptografi 7

2.1.1 Pengertian Kriptografi 7

2.1.2 Aspek-aspek Keamanan 9

2.1.3 Klasifikasi Kriptografi 10

2.1.4 Algoritma Kriptografi Hill Cipher 11

2.1.5 Algoritma Kriptografi Inverse Matrix Cipher 12

2.2 Citra Digital 13

2.2.1 Definisi Citra 13

2.2.2 Format File Citra Bitmap 13

2.3 Steganografi 14

2.3.1 Metode First Of File 16

BAB III ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem 18

3.1.1 Analisis Masalah 18

3.1.2 Analisis Persyaratan 19

3.1.2.1 Analisis Fungsional 19


(2)

3.2 Pemodelan 20

3.2.1 Flowchart Gambaran Umum Sistem 21

3.2.1.1 Flowchart Enkripsi 22

3.2.1.2 Flowchart Dekripsi 22

3.2.1.3 Flowchart Proses Embedding 23

3.2.1.4 Flowchart Proses Ekstraksi 24

3.2.2 Unified Modeling Language (UML) 25

3.2.2.1 Use Case Diagram 26

3.2.2.1.1 Use Case Enkripsi/Embed 26 3.2.2.1.2 Use Case Ekstrak/Dekripsi 28

3.2.2.2 Activity Diagram 28

3.2.3 Pseudocode 30

3.2.3.1 Pseudocode Proses Enkripsi 30

3.2.3.2 Pseudocode Proses Dekripsi 30

3.2.3.3 Pseudocode Proses Embedding 31

3.2.3.4 Pseudocode Proses Ekstraksi 32

3.3 Tahapan Inverse Matrix Cipher 33

3.3.1 Proses Enkripsi Inverse Matrix Cipher 33 3.3.2 Proses Dekripsi Inverse Matrix Cipher 35

3.4 Tahapan Metode First Of File 37

3.4.1 Proses Embedding 37

3.4.2 Proses Extraction 39

3.5 Perancangan Antarmuka (Interface) 41

3.5.1 Halaman Home 41

3.5.2 Halaman Enkripsi/Embed 42

3.5.3 Halaman Ekstrak/Dekripsi 45

3.5.4 Halaman Help 46

3.5.5 Halaman About 47

BAB IV IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi Sistem 48

4.1.1 Spesifikasi Perangkat Keras 48

4.1.2 Spesifikasi Perangkat Lunak 48

4.2 Tampilan Antarmuka (Interface) 49

4.2.1 Tampilan Halaman Home 49

4.2.2 Tampilan Halaman Enkripsi/Embed 50

4.2.3 Tampilan Halaman Ekstrak/Dekripsi 50

4.2.4 Tampilan Halaman Help 50

4.2.5 Tampilan Halaman About 52

4.3 Pengujian Sistem 53

4.3.1 Pengujian Proses Enkripsi 53


(3)

4.3.3 Pengujian Proses Ekstrak 59

4.3.4 Pengujian Proses Dekripsi 61

4.4 Hasil Pengujian 63

4.4.1 Hasil Uji Waktu Proses Enkripsi dan Dekripsi 66 4.4.2 Hasil Uji Waktu Proses Embedding dan Ekstrak 68 4.4.3 Hasil Uji Panjang Ciphertext dengan Efek Piksel

Hitam Pada Citra Stego 70

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan 72

5.2 Saran 73

DAFTAR PUSTAKA 74

LAMPIRAN

Listing Program A-1

CV B-1


(4)

DAFTAR TABEL

Halaman

3.1 Rincian Use Case Enkripsi/Embed 27

3.2 Rincan Use Case Ekstrak/Dekripsi 28

3.3 Activity Diagram FOF dan Inverse Matrix Cipher 29

3.4 Konversi Plaintext Menjadi Kode ASCII 34

4.1 Hasil Pengujian Pada Beberapa File Citra 64

4.2 Uji Waktu Proses Enkripsi Dan Dekripsi 66

4.3 Uji Waktu Proses Embedding Dan Ekstrak 68


(5)

DAFTAR GAMBAR

Halaman

2.1 Cryptosystem 9

2.2 Citra Bitmap 14

2.3 Skema Umum Penyisipan Pesan Pada Citra Bitmap 16

2.4 Matriks Piksel Citra 8x8 17

2.5 Matriks Piksel Citra Disisipi Pesan 17

3.1 Diagram Ishikawa 19

3.2 Flowchart Gambaran Umum Sistem 21

3.3 Flowchart Enkripsi Dengan Inverse Matrix Cipher 22 3.4 Flowchart Proses Dekripsi Dengan Inverse Matrix Cipher 23 3.5 Flowchart Proses Embedding Dengan Metode First Of File 24 3.6 Flowchart Proses Ekstraksi Dengan Metode First Of File 25

3.7 Use Case Diagram Sistem 26

3.8 Pseudocode Enkripsi Dengan Inverse Matrix Cipher 30 3.9 Pseudocode Dekripsi Dengan Inverse Matrix Cipher 31 3.10 Pseudocode Embedding Dengan Metode First Of File 31 3.11 Pseudocode Ekstraksi Dengan Metode First Of File 32

3.12 Matriks Piksel Citra 8x8 38

3.13 Matriks Piksel Citra Disisipi Pesan 39

3.14 Matriks Piksel Citra Stego 40

3.15 Cphertext Dari Citra Stego 41

3.16 Rancangan Halaman Home 42

3.17 Rancangan Halaman Enkripsi/Embed 43

3.18 Rancangan Halaman Ekstrak/Dekripsi 45

3.19 Rancangan Halaman Help 46

3.20 Rancangan Halaman About 47

4.1 Tampilan Halaman Home 49


(6)

4.3 Tampilan Halaman Ekstrak/Dekripsi 51

4.4 Tampilan Halaman Help 52

4.5 Tampilan Halaman About 52

4.6 Inputan Plaintext 53

4.7 Tampilan Input Kunci Matriks 1 54

4.8 Tampilan Ciphertext Hasil Enkripsi dengan Kunci 1 55

4.9 Tampilan Input Kunci Matriks 2 55

4.10 Tampilan Ciphertext Hasil Enkripsi dengan Kunci 2 56

4.11 Pop Up Window Pencarian File 57

4.12 Tampilan Cover Image 57

4.13 Tampilan Citra Stego 58

4.14 Pop Up Window Penyimpanan File Citra Stego 59

4.15 Pop Up Window Pemilihan Citra Stego 59

4.16 Tampilan Citra Stego 60

4.17 Tampilan Ciphertext Hasil Ekstraksi 61

4.18 Tampilan Masukan Matriks Kunci 62

4.19 Tampilan Plaintext Hasil Dekripsi 63

4.20 Grafik Hubungan Waktu Enkripsi Dengan Panjang Plaintext 67 4.21 Grafik Hubungan Waktu Dekripsi Dengan Panjang Ciphertext 68 4.22 Grafik Hubungan Waktu Embedding Dengan Panjang Ciphertext 69 4.23 Grafik Hubungan Waktu Ekstrak Dengan Ukuran Citra Stego 70