LISTING PROGRAM
function varargout = beranda(varargin)
Kode Program Tampilan Home
gui_Singleton = 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;
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);
k13=str2double(get(handles.k13,'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); %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;
for i=1:i<=(handles.ltemp-length(handles.kata))
%membuat matriks baru dengan ukuran 4xn, n=jumlah kolom (panjang kalimat/4)
handles.word=abs(handles.kata); 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);
%perkalian matriks dengan kunci pertama handles.m=handles.temp;
guidata(hObject,handles); end
handles.m
%mengubah kebentuk array 1 dimensi
handles.kos=zeros(1,length(handles.kata));
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;
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);
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);
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
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));
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;
k13=str2double(get(handles.k13,'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];
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));
sem2= [sem']; %sem' artinya transpose matriks sem for k=1:4
errordlg({'Lebar gambar anda tidak memenuhi syarat untuk penanda akhir,','silahkan cari gambar lain .'},'Error','modal');
if(s<aa)
posdata=1;
if(tamp(1,k)==35&&tamp(1,k+1)==35&&tamp(1,k+2)==35) behind=k
errordlg('Citra tidak menyimpan pesan rahasia'); guidata(hObject,handles);
CURRICULUM VITAE
1. DATA PRIBADI
Nama Lengkap : BASRAH NASUTION Nama Panggilan : BASRAH
Tempat/ Tgl. Lahir : Padangsidimpuan, 14 Agustus 1990 Jenis Kelamin : Laki-laki
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
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
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,
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
[14] Zarlis,M., Handrizal & Sembiring, S. 2010. Pemrograman Komputer: Satu
Pendekatan kepada Pemrograman Berorientasi Objek dalam C++. Medan:
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
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
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
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:
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
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
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
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.
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
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.
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
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
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
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:
3.2.3.4 Pseudocode Proses Ekstraksi
Langkah-langkah proses ekstraksi ciphertext dari citra stego dapat dilihat melalui
pseudocode berikut:
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,
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
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
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
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.
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
35 49 51 48 55 49 32 32
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.
Proses diatas dapat dilihat dari contoh pengambilan ciphertext dari citra stego
sebagaimana pada Gambar 3.3.
35 49 51 48 55 49 32 32
Gambar 3.14 Matriks Piksel Citra Stego
Dari matriks piksel citra tersebut dibaca nilai piksel matriks dari penanda awal sampai
penanda akhir sehingga ditemukan
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
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
14
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
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
Waktu Proses
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.
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
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
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.
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
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
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,
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.
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
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
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
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
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.
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
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:
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
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
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
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,
Tabel 4.1 Hasil Pengujian Pada Beberapa Citra
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
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
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
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
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.
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
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
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
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.
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)
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
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
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
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
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
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
Misalkan digunakan dua buah kunci enkripsi yaitu matriks K1 dan K2, dengan syarat
determinan kedua kunci ≠ 0. Plaintext yang digunakan adalah matriks P. Proses enkripsi dilakukan sebanyak dua kali, enkripsi pertama menggunakan matriks pertama
sehingga menghasilkan ciphertext berupa matriks C1 seperti persamaan 2.6:
C1=P*K1 ... (2.6)
Selanjutnya ciphertext hasil pertama dienkripsi dengan kunci kedua seperti pada
persamaan 2.7:
C2=C1*K2 ... (2.7)
C2 adalah ciphertext akhir yang dikirim kepada penerima. Untuk mendapatkan
kembali pesan asli maka penerima pesan berupa ciphertext melakukan proses dekripsi
dengan langkah melakukan perkalian matriks C2 dengan inverse matriks K2, sehingga
ditemukan matriks ciphertext hasil perkalian dengan kunci K1, seperti persamaan 2.8:
C1=C2*K2-1
C1 dikalikan lagi dengan inverse matriks K1 untuk mendapatkan matriks plaintext
yang sebenarnya, seperti yang dijelaskan persamaan 2.9:
... (2.8)
P=C1*K1-1 ... (2.9).
2.2 Citra Digital
2.2.1 Definisi Citra
Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu
objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa
foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televise,
atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan.
2.2.2 Format File Citra Bitmap
Citra bitmap sering disebut juga dengan citra raster. Citra bitmap menyimpan data
kode citra secara digital dan lengkap (cara penyimpanannya adalah per piksel). Citra
bitmap di presentasikan dalam bentuk matriks atau dipetakan dengan menggunakan
memanipulasi warna, tetapi untuk mengubah objek lebih sulit. Tampilan bitmap
mampu menunjukkan kehalusan gradasi bayangan dan warna dari sebuah gambar.
Oleh karena itu, bitmap merupakan media elektronik yang paling tepat untuk
gambar-gambar dengan perpaduan gradasi warna yang rumit, seperti foto dan lukisan digital.
Citra bitmap biasanya diperoleh dengan cara Scanner, Camera Digital, Video Capture,
dan lain-lain [11].
Contoh gambar file citra *bmp.
Gambar 2.2 Citra Bitmap
2.3 Steganografi
Steganografi berasal dari bahasa Yunani, yang berarti tulisan yang
tertutup/tersamar (“covered letter”). Dalam arti lain dapat dikatakan sebagai cara
komunikasi yang menyembunyikan pesan [5]. Data atau pesan yang akan dikirim
disembunyikan ke media lain. Format media yang bisa dipakai diantaranya adalah:
a. Format image: bmp, jpg, gif dll