Penyembunyian Gambar Dalam Gambar Menggunakan Sistem Fungsi Iterasi.

(1)

i

Universitas Kristen Maranatha

PENYEMBUNYIAN GAMBAR DALAM GAMBAR

MENGGUNAKAN SISTEM FUNGSI ITERASI

Joseph Radiant (0722081)

Jurusan Teknik Elektro Universitas Kristen Maranatha email: joseph_nerrazuri@yahoo.com

ABSTRAK

Steganografi adalah teknik penyembunyian pesan rahasia sehingga tidak terlihat secara kasat mata dan tidak diketahui oleh pihak lain. Pada Tugas Akhir ini, pesan rahasia dan media yang akan digunakan adalah citra. Citra digital yang digunakan adalah citra grayscale dengan format citra bitmap.

Sistem fungsi iterasi adalah metoda yang menurunkan transformasi affine pada setiap pasangan blok pada cover image dan secret image. Metode ini menyembunyikan setiap koefisien transformasi affine yang telah dibinerisasi dari tiap pasangan blok yang terpilih ke tiap bit terakhir dari cover image. Perbandingan kualitas citra stego image dan extracted image berdasarkan penilaian objektif dan subjektif. Penilaian objektif pada stego image dan extracted image memiliki nilai PSNR ≥ 40,1649 dB dan ≥ 26,0510 dB. Penilaian subjektif pada stego image dan

extracted image memiliki nilai MOS ≥ 4 dan ≥ 1,6.

Kata kunci : Steganografi, sistem fungsi iterasi, transformasi affine, PSNR, MOS.


(2)

ii

Universitas Kristen Maranatha

HIDING IMAGE IN IMAGE USING ITERATED FUNCTION

SYSTEM

Joseph Radiant (0722081)

Department of Electrical Engineering Maranatha Christian University email: joseph_nerrazzuri@yahoo.com

ABSTRACT

Steganography is technique of hiding secret message until the message become unvisible by human vision and unknown by the others. In this Final Project, the media and secret message to be embedded are image. The digital image is a grayscale image with bitmap format.

Iterated function system is a method that use affine transform in every matching blocks of cover image and secret image. This method hide every binary coefficient of affine transform from the best matching blocks to every least bit of cover image. The quality comparison of stego image and extracted image are based on objective and subjective assessments. Objective assessments of stego image and extracted image has PSNR value ≥ 40,1649 dB and ≥ 26,0510 dB. Subjective assessments of stego image and extracted image has MOS value ≥ 4 and ≥ 1,6.

Keywords : Steganography, iterated function system, affine transform, PSNR,


(3)

Universitas Kristen Maranatha v

DAFTAR ISI

Halaman

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... viii

DAFTAR LAMPIRAN ... ix

BAB I. PENDAHULUAN ... 1

I.1 Latar Belakang ... 1

I.2 Identifikasi Masalah ... 2

I.3 Rumusan Masalah ... 2

I.4 Tujuan ... 2

I.5 Pembatasan Masalah ... 2

I.6 Sistematika Penulisan ... 2

BAB II. LANDASAN TEORI ... 4

II.1 Citra Digital ... 4

II.1.1 Citra Bitmap ... 5

II.1.2 Citra Hitam Putih (Grayscale) ... 5

II.2 Steganografi ... 6

II.2.1 Sejarah Steganografi ... 8

II.2.2 Kriteria Steganografi ... 9

II.3 Iterated Function System (IFS) ... 10

II.4 Transformasi Affine ... 14

II.5 Peak Signal-to-Noise Ratio (PSNR) ... 18

II.6 Mean Opinion Score (MOS) ... 19

BAB III. PERANCANGAN DAN IMPLEMENTASI PERANGKAT LUNAK ... 20


(4)

Universitas Kristen Maranatha vi

III.2 Blok Diagram Proses Penyisipan Pesan Rahasia ... 21

III.2.1 Penjelasan Tahapan Proses Penyembunyian Pesan Rahasia ... 25

III.3 Blok Diagram Proses Pengambilan Pesan Rahasia ... 28

III.4 Perancangan Perangkat Lunak ... 31

BAB IV. PENGUJIAN DAN ANALISA DATA ... 33

IV.1 Tujuan Pengujian ... 33

IV.2 Data Pengujian ... 33

IV.3 Kasus Pengujian ... 33

IV.4 Hasil Pengujian dan Evaluasi ... 34

BAB V. KESIMPULAN DAN SARAN ... 43

V.1 Kesimpulan ... 43

V.2 Saran ... 43

DAFTAR PUSTAKA ... 44


(5)

Universitas Kristen Maranatha vii

DAFTAR GAMBAR

Halaman

Gambar 2.1 Citra Hitam Putih ... 6

Gambar 2.2 Ilustrasi Perbedaan Kriptografi dan Steganografi ... 7

Gambar 2.3 Diagram Sistem Steganografi ... 10

Gambar 2.4 Multiple Reduction Copy Machine ... 11

Gambar 2.5 Attractor Multiple Reduction Copy Machine ... 12

Gambar 2.6 Kemiripan Lokal pada Citra Lena ... 14

Gambar 3.1 Diagram Blok Proses Penyembunyian Pesan Rahasia ... 21

Gambar 3.2 Diagram Alir Proses Penyembunyian Pesan Rahasia ... 25

Gambar 3.3 Nilai Intensitas Piksel Blok Jelajah ... 26

Gambar 3.4 Nilai Intensitas Piksel Blok Ranah ... 27

Gambar 3.5 Nilai Intensitas Blok Ranah Setelah Proses Penskalaan ... 27

Gambar 3.6 Diagram Blok Proses Pengambilan Pesan Rahasia ... 28

Gambar 3.7 Diagram Alir Proses Pengambilan Pesan Rahasia ... 30


(6)

viii

Universitas Kristen Maranatha

DAFTAR TABEL

Halaman

Tabel 2.1 Tabel Kategori penilaian Mean Opinion Score ... 19

Tabel 3.1 Atribut MATLAB pada perancangan perangkat lunak ... 31

Tabel 4.1 Tabel Pengujian Proses Penyisipan Pesan ... 35

Tabel 4.2 Tabel Pengujian Proses Ekstraksi Pesan ... 37

Tabel 4.3 Tabel Pengujian Gambar Hasil Penyisipan dan Hasil Ekstraksi... 36


(7)

Universitas Kristen Maranatha ix

DAFTAR LAMPIRAN

Halaman

LAMPIRAN A : CITRA ……… A-1

A.1 Citra Pengujian Proses Penyisipan Pesan dan Ekstraksi Pesan …..…... A-2

LAMPIRAN B: PENILAIAN SUBJEKTIF ……….……….……... B-1 B.1 Tabel Penilaian Subjektif Citra Hasil Penyisipan... B-2 B.2 Tabel Penilaian Subjektif Citra Hasil Ekstraksi... B-3


(8)

LAMPIRAN A

CITRA


(9)

A-1

A.1 Citra Pengujian Proses Penyisipan Pesan dan Ekstraksi Pesan

Cover Image Secret Image Stego Image Extract Image

Barbara80.bmp Baboon80.bmp StegoBA80BA80.bmp

MSE=3,7341 PSNR=42,409 dB

MOS=4,5

ExtBA80BA80.bmp

MSE=20,5973 PSNR=34,9927 dB

MOS=2,8

Barbara80.bmp Boat80.bmp StegoBA80BO80.bmp

MSE=3,4958 PSNR=42,6954 dB

MOS=4,3

ExtBA80BO80.bmp

MSE=129,8067 PSNR=26,9978 dB

MOS=3,1

Barbara80.bmp Lena80.bmp StegoBA80LE80.bmp

MSE=3,6591 PSNR=42,4971 dB

MOS=4,2

ExtBA80LE80.bmp

MSE=26,9709 PSNR=33,8218 dB

MOS=2,5 Salesman80.bmp Baboon80.bmp StegoSA80BA80.bmp

MSE=3,9987 PSNR=42,1116 dB

MOS=4,2

ExtSA80BA80.bmp

MSE=59,3142 PSNR=30,3992 dB


(10)

A-2

Salesman80.bmp Boat80.bmp StegoSA80BO80.bmp

MSE=4,0106 PSNR=42,0987 dB

MOS=4,2

ExtSA80BO80.bmp

MSE=161,4298 PSNR=26,0510 dB

MOS=3,6

Salesman80.bmp Lena80.bmp StegoSA80LE80.bmp

MSE=3,8247 PSNR=42,3048 dB

MOS=4

ExtSA80LE80.bmp

MSE=65,9288 PSNR=29,9404 dB

MOS=2,7 Peppers80.bmp Baboon80.bmp StegoPE80BA80.bmp

MSE=3,9389 PSNR=42,177 dB

MOS=4,4

ExtPE80BA80.bmp

MSE=44,2197 PSNR=31,6746 dB

MOS=1,6

Peppers80.bmp Boat80.bmp StegoPE80BO80.bmp

MSE=4,0684 PSNR=42,0365 dB

MOS=4,3

ExtPE80BO80.bmp

MSE=133,9245 PSNR=26,8622 dB


(11)

A-3

Peppers80.bmp Lena80.bmp StegoPE80LE80.bmp

MSE=3,6694 PSNR=42,4495 dB

MOS=4,2

ExtPE80LE80.bmp

MSE=46,3664 PSNR=31,4688 dB

MOS=1,8 Barbara96.bmp Baboon96.bmp StegoBA96BA96.bmp

MSE=4,1855 PSNR=41,9133 dB

MOS=4,4

ExtBA96BA96.bmp

MSE=4,4760 PSNR=41,6219 dB

MOS=3,3 Barbara96.bmp Boat96.bmp StegoBA96BO96.bmp

MSE=4,2323 PSNR=41,865 dB

MOS=4,2

ExtBA96BO96.bmp

MSE=1,6701 PSNR=45,9033 dB

MOS=3,4

Barbara96.bmp Lena96.bmp StegoBA96LE96.bmp

MSE=4,0545 PSNR=42,0515 dB

MOS=4,3

ExtBA96LE96.bmp

MSE=11,5803 PSNR=37,4936 dB


(12)

A-4

Salesman96.bmp Baboon96.bmp StegoSA96BA96.bmp

MSE=4,8244 PSNR=41,2963 dB

MOS=4,3

ExtSA96BA96.bmp

MSE=61,8606 PSNR=30,2167 dB

MOS=3,4

Salesman96.bmp Boat96.bmp StegoSA96BO96.bmp

MSE=5,047 PSNR=41,1005 dB

MOS=4,5

ExtSA96BO96.bmp

MSE=145,3037 PSNR=26,5080 dB

MOS=3,2

Salesman96.bmp Lena96.bmp StegoSA96LE96.bmp

MSE=4,7948 PSNR=41,3231 dB

MOS=4,1

ExtSA96LE96.bmp

MSE=66,1828 PSNR=29,9233 dB

MOS=2,5 Peppers96.bmp Baboon96.bmp StegoPE96BA96.bmp

MSE=4,1725 PSNR=41,9268 dB

MOS=4,2

ExtPE96BA96.bmp

MSE=19,2707 PSNR=35,2818 dB


(13)

A-5

Peppers96.bmp Boat96.bmp StegoPE96BO96.bmp

MSE=4,504 PSNR=41,5948 dB

MOS=4,3

ExtPE96BO96.bmp

MSE=15,1382 PSNR=36,3301 dB

MOS=3

Peppers96.bmp Lena96.bmp StegoPE96LE96.bmp

MSE=4,3857 PSNR=41,7104 dB

MOS=4,3

ExtPE96LE96.bmp

MSE=32,2092 PSNR=33,0510 dB

MOS=2,1 Barbara128.bmp Baboon128.bmp StegoBA128BA128.bmp

MSE=5,7797 PSNR=40,5117 dB

MOS=4,2

ExtBA128BA128.bmp

MSE=0,4099 PSNR=52,0039 dB

MOS=3,9 Barbara128.bmp Boat128.bmp StegoBA128BO128.bmp ExtBA128BO128.bmp


(14)

A-6

MSE=5,7328 PSNR=40,5471 dB

MOS=4,5

MSE=0,3069 PSNR=53,2062 dB

MOS=3,7 Barbara128.bmp Lena128.bmp StegoBA128LE128.bmp

MSE=5,6622 PSNR=40,601 dB

MOS=4,3

ExtBA128LE128.bmp

MSE=4,4323 PSNR=41,6645 dB

MOS=3,3 Salesman128.bmp Baboon128.bmp StegoSA128BA128.bmp

MSE=6,2418 PSNR=40,1777 dB

MOS=4,3

ExtSA128BA128.bmp

MSE=56,6924 PSNR=30,5956 dB

MOS=3,7 Salesman128.bmp Boat128.bmp StegoSA128BO128.bmp

MSE=6,2462 PSNR=40,1746 dB

MOS=4,2

ExtSA128BO128.bmp

MSE=130,2931 PSNR=26,9816 dB


(15)

A-7

Salesman128.bmp Lena128.bmp StegoSA128LE128.bmp

MSE=6,2603 PSNR=40,1649 dB

MOS=4

ExtSA128LE128.bmp

MSE=68,5855 PSNR=29,7685 dB

MOS=2,8 Peppers128.bmp Baboon128.bmp StegoPE128BA128.bmp

MSE=5,7722 PSNR=40,5174 dB

MOS=4,4

ExtPE128BA128.bmp

MSE=7,5240 PSNR=39,3663 dB

MOS=2,2 Peppers128.bmp Boat128.bmp StegoPE128BO128.bmp

MSE=6,0173 PSNR=40,3368 dB

MOS=4,4

ExtPE128BO128.bmp

MSE=3,9728 PSNR=42,1398 dB


(16)

A-8

Peppers128.bmp Lena128.bmp StegoPE128LE128.bmp

MSE=5,6567 PSNR=40,6052 dB

MOS=4,3

ExtPE128LE128.bmp

MSE=19,0355 PSNR=35,3352 dB


(17)

LAMPIRAN B


(18)

B-1

B.1 Tabel Penilaian Subjektif Citra Hasil Penyisipan

Nama Gambar Kevin Yenni Glen Ellis Richard Febryan Oskardy Rafles Andi Dhani MOS

stegoBa80Ba80 5 5 4 4 4 5 5 4 4 5 4.5

stegoBa80Bo80 5 4 3 4 4 5 5 4 4 5 4.3

stegoBa80Le80 5 4 3 4 4 5 5 4 3 5 4.2

stegoSa80Ba80 5 3 3 4 4 5 5 4 4 5 4.2

stegoSa80Bo80 5 4 4 4 4 5 4 4 3 5 4.2

stegoSa80Le80 5 4 3 4 3 5 4 4 3 5 4

stegoPe80Ba80 5 5 4 4 4 4 5 4 4 5 4.4

stegoPe80Bo80 5 4 4 4 4 4 5 4 4 5 4.3

stegoPe80Le80 4 5 4 4 4 4 5 4 3 5 4.2

stegoBa96Ba96 5 5 4 4 4 4 5 4 4 5 4.4

stegoBa96Bo96 5 4 3 4 4 4 5 4 4 5 4.2

stegoBa96Le96 4 5 4 4 4 4 5 4 4 5 4.3

stegoSa96Ba96 5 4 4 4 4 5 5 4 3 5 4.3

stegoSa96Bo96 5 4 5 4 4 5 5 4 4 5 4.5

stegoSa96Le96 4 3 4 4 4 5 5 4 3 5 4.1

stegoPe96Ba96 4 4 3 4 4 5 5 4 4 5 4.2

stegoPe96Bo96 5 4 4 4 4 4 5 4 4 5 4.3

stegoPe96Le96 4 4 5 4 4 4 5 4 4 5 4.3

stegoBa128Ba128 4 5 4 4 3 4 5 4 4 5 4.2

stegoBa128Bo128 5 5 4 4 4 5 5 4 4 5 4.5

stegoBa128Le128 5 4 4 4 3 5 5 4 4 5 4.3

stegoSa128Ba128 4 4 5 4 3 5 5 4 4 5 4.3

stegoSa128Bo128 5 3 4 4 4 4 5 4 4 5 4.2

stegoSa128Le128 4 3 4 4 4 4 5 4 3 5 4

stegoPe128Ba128 4 5 5 4 4 4 5 4 4 5 4.4

stegoPe128Bo128 4 4 5 4 4 5 5 4 4 5 4.4


(19)

B-2

B.2 Tabel Penilaian Subjektif Citra Hasil Ekstraksi

Nama Gambar Kevin Yenni Glen Ellis Richard Febryan Oskardy Rafles Andi Dhani MOS

extBa80Ba80 3 3 2 2 3 2 4 3 3 3 2.8

extBa80Bo80 4 3 2 2 3 3 5 3 3 3 3.1

extBa80Le80 3 2 2 2 3 2 4 3 2 2 2.5

extSa80Ba80 5 4 3 3 4 4 5 4 2 2 3.6

extSa80Bo80 5 4 2 3 4 4 4 4 3 3 3.6

extSa80Le80 3 3 2 2 2 3 5 3 2 2 2.7

extPe80Ba80 2 2 1 1 1 1 3 2 1 2 1.6

extPe80Bo80 3 2 3 2 2 2 4 4 1 3 2.6

extPe80Le80 2 2 1 1 2 2 4 2 1 1 1.8

extBa96Ba96 4 3 3 2 3 4 5 4 2 3 3.3

extBa96Bo96 3 3 3 3 3 4 5 4 3 3 3.4

extBa96Le96 3 2 2 2 4 3 5 3 2 2 2.8

extSa96Ba96 3 3 3 2 4 4 5 4 3 3 3.4

extSa96Bo96 3 3 3 2 3 4 5 4 3 2 3.2

extSa96Le96 3 2 2 2 2 3 4 3 2 2 2.5

extPe96Ba96 2 2 2 2 1 2 3 2 2 2 2

extPe96Bo96 4 3 2 2 3 4 4 3 2 3 3

extPe96Le96 2 2 1 1 2 3 4 2 2 2 2.1

extBa128Ba128 4 5 3 4 3 5 5 4 3 3 3.9

extBa128Bo128 4 3 3 4 4 4 5 4 3 3 3.7

extBa128Le128 4 2 3 3 3 4 4 4 3 3 3.3

extSa128Ba128 4 3 3 4 3 5 5 4 3 3 3.7

extSa128Bo128 4 3 2 3 2 4 5 4 3 3 3.3

extSa128Le128 3 2 3 3 2 3 4 3 2 3 2.8

extPe128Ba128 2 3 2 2 2 3 3 2 1 2 2.2

extPe128Bo128 4 3 2 3 3 4 4 3 2 3 3.1


(20)

LAMPIRAN C


(21)

C-1 function varargout = GUI64(varargin) % GUI64 MATLAB code for GUI64.fig

% GUI64, by itself, creates a new GUI64 or raises the existing % singleton*.

%

% H = GUI64 returns the handle to a new GUI64 or the handle to % the existing singleton*.

%

% GUI64('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in GUI64.M with the given input arguments. %

% GUI64('Property','Value',...) creates a new GUI64 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before GUI64_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property application % stop. All inputs are passed to GUI64_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help GUI64

% Last Modified by GUIDE v2.5 02-Apr-2013 13:18:39

% Begin initialization code - DO NOT EDIT gui_Singleton = 1;

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

'gui_OpeningFcn', @GUI64_OpeningFcn, ... 'gui_OutputFcn', @GUI64_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

% End initialization code - DO NOT EDIT


(22)

C-2

% --- Executes just before GUI64 is made visible.

function GUI64_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to GUI64 (see VARARGIN)

% Choose default command line output for GUI64 handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% UIWAIT makes GUI64 wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = GUI64_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure

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

% Get default command line output from handles structure varargout{1} = handles.output;

% --- Executes on button press in pushbutton1_coverimage.

function pushbutton1_coverimage_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1_coverimage (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename, pathname] = uigetfile({'*.bmp','All Image Files';... '*.*','All Files' },'Select Cover Image');

if isequal([filename,pathname],[0,0]) return else handles.img=imread(fullfile(pathname, filename)); guidata(hObject, handles); axes(handles.Axes_CoverImage); imshow(handles.img);


(23)

C-3 handles.CoverImage=CoverImage; guidata(hObject, handles); end

% --- Executes on button press in pushbutton2_secretimage.

function pushbutton2_secretimage_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2_secretimage (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename, pathname] = uigetfile({'*.bmp','All Image Files';... '*.*','All Files' },'Select Secret Image');

if isequal([filename,pathname],[0,0]) return else handles.img=imread(fullfile(pathname, filename)); guidata(hObject, handles); axes(handles.Axes_SecretImage); imshow(handles.img);

SecretImage = handles.img;

handles.SecretImage = SecretImage; guidata(hObject, handles);

end

% --- Executes on button press in pushbutton3_hideimage.

function pushbutton3_hideimage_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3_hideimage (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) CoverImage=handles.CoverImage; %membaca variabel cover image SecretImage=handles.SecretImage; %membaca variabel secret image cover_image=imresize(CoverImage,[128 128]); Y=im2double(cover_image); secret_image=imresize(SecretImage,[128 128]); secret_image=im2double(secret_image); [m,n]=size(Y); jbs=(((m-16)/4)+1)*16; jbb=(((n-16)/4)+1)*16;


(24)

C-4 Temp=zeros([jbs jbb]); samping=1; bawah=1; hitung=1;hit=1; for k=1:jbs for o=1:jbb

if (bawah <= m) & (samping <= n) Temp(k,o)=Y(bawah,samping); end

if hitung < 16

samping = samping+1; hitung = hitung+1; else

hitung = 1;

samping = samping-11; end

end

samping=1; if hit < 16

bawah = bawah+1; hit = hit+1;

else hit = 1;

bawah = bawah-11; end

end

c = mat2cell(Temp, [16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16] , ...

[16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16]);

e = mat2cell(secret_image, [8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8] , [8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8]);

for cc=1:29 for dd=1:29 d{cc,dd}=rata(c{cc,dd}); end end

[X2, Y2, X1, Y1] = ndgrid(1:size(c,1), 1:size(c,2), 1:size(e,1), 1:size(e,2)); EE = X1 - X2./2;


(25)

C-5

ei = squeeze(mat2cell(EE, size(c,1), size(c,2), ones(1,size(e,1)), ones(1,size(e,2)))); fi = squeeze(mat2cell(FF, size(c,1), size(c,2), ones(1,size(e,1)), ones(1,size(e,2)))); for yy=1:29 for zz=1:29 for aa=1:16 for bb=1:16 di{yy,zz}=((sum(sum(d{yy,zz})))); ri{aa,bb}=((sum(sum(e{aa,bb})))); si{yy,zz,aa,bb}=(64*(sum(sum(d{yy,zz}.*e{aa,bb})))-(di{yy,zz}.*ri{aa,bb}))/((64*(sum(sum((d{yy,zz}).^2))))-(di{yy,zz}).^2); oi{yy,zz,aa,bb}=((ri{aa,bb})-(si{yy,zz,aa,bb}.*di{yy,zz}))/64; end end end end for mmm=1:16 for nnn=1:16 for ggg=1:29 for hhh=1:29 kurang{ggg,hhh,mmm,nnn}=d{ggg,hhh}-e{mmm,nnn}; rms{ggg,hhh,mmm,nnn}=(sqrt((sum(sum((kurang{ggg,hhh,mmm,nnn}))))^2))/64; mintemp(ggg,hhh,mmm,nnn)=rms{ggg,hhh,mmm,nnn}; end end end end [ii1,ii2,ii3,ii4]=size(mintemp); count=0; id=zeros(ii3*ii4,4); for k=1:ii3 for p=1:ii4 count=count+1; v=mintemp(:,:,k,p); [val,idx]=min(v(:)); [id1,id2]=ind2sub(size(v),idx); minval(count)=val; idx1(count)=id1; idx2(count)=id2; idx3(count)=k; idx4(count)=p;


(26)

C-6 id(count,:)=[id1 id2 k p];

end end for iii=1:256 jjj=1; idd1=id(iii,jjj); idd2=id(iii,jjj+1); idd3=id(iii,jjj+2); idd4=id(iii,jjj+3); EEi(iii)=EE(idd1,idd2,idd3,idd4); FFi(iii)=FF(idd1,idd2,idd3,idd4); SSi(iii)=si(idd1,idd2,idd3,idd4); SSii=cell2mat(SSi); OOi(iii)=oi(idd1,idd2,idd3,idd4); OOii=cell2mat(OOi); end

ggg=[EEi; FFi; SSii; OOii]; ggg1=ggg'; hhh1=reshape(ggg1,1,1024); for ppp=1:1024 if hhh1(ppp)<0 hhh1(ppp)=abs(hhh1(ppp)); tanda=dec2bin(1); else tanda=dec2bin(0); end jjj1=hhh1(ppp)*1000; kkk1=dec2bin(jjj1,15); lll1{ppp}=[tanda,kkk1]; end biner=reshape(lll1,256,4); for qqq=1:256 for rrr=1:4 biner1=biner{qqq,rrr}; biner2{qqq,rrr}=uint8(biner1); biner3{qqq,rrr}=bitget(biner2{qqq,rrr},1); end end biner4=cell2mat(biner3); biner4=reshape(biner4,128,128);


(27)

C-7 Mc=size(biner4,1); Nc=size(biner4,2); cover1_image=dec2bin(cover_image,8); cover2_image=str2num(cover1_image); for rr=1:Mc for ru=1:Nc stego128_image(rr,ru)=bitset(cover_image(rr,ru),1,biner4(rr,ru)); end end axes(handles.Axes_StegoImage); imshow(stego128_image); MSE=sum(sum(stego128_image-cover_image).^2)/(Mc*Nc); PSNR=10*(log10 ((255^2)/MSE)); MSE=num2str(MSE); PSNR=num2str(PSNR); set(handles.MSEhasil,'string',MSE); set(handles.PSNRhasil, 'string', PSNR); handles.secret_image=secret_image; handles.stego128_image=stego128_image; handles.kurang=kurang; guidata(hObject, handles);

% --- Executes on button press in pushbutton4_extractimage.

function pushbutton4_extractimage_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4_extractimage (see GCBO)

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

StegoImage=handles.StegoImage; %membaca variabel secret image kurang=handles.kurang; secret_image=handles.secret_image; stego1=reshape(StegoImage,256,64); stego_bit1=bitget(stego1,1); Y=im2double(StegoImage); for i=1:256 m=0; for j=1:16:64 x=stego_bit1(i,j:j+15);


(28)

C-8 if (x(1,1)==1)

y=x(1,2:16);

y2=bin2dec( char(y + '0') ); y2=-(y2/1000);

else

y=x(1,2:16);

y2=bin2dec( char(y + '0') )/1000; end m=m+1; z(i,m)=y2; end end z=z; a=repmat(1:16,16,[]); b=a'; a=a(:)'; b=b(:)'; a1=reshape(a,256,1); b1=reshape(b,256,1); posisi=(a1-z(:,1))*2; posisi1=(b1-z(:,2))*2;

id=[posisi posisi1 a1 b1]; [m,n]=size(Y); jbs=(((m-16)/4)+1)*16; jbb=(((n-16)/4)+1)*16; Temp=zeros([jbs jbb]); samping=1; bawah=1; hitung=1;hit=1; for k=1:jbs for o=1:jbb

if (bawah <= m) & (samping <= n) Temp(k,o)=Y(bawah,samping); end

if hitung < 16

samping = samping+1; hitung = hitung+1; else

hitung = 1;


(29)

C-9 end

end

samping=1; if hit < 16

bawah = bawah+1; hit = hit+1;

else hit = 1;

bawah = bawah-11; end

end

c = mat2cell(Temp, [16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16] , ...

[16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16]);

for cc=1:29 for dd=1:29 d{cc,dd}=rata(c{cc,dd}); end end for i1=1:256 j1=1; idd1=id(i1,j1); idd2=id(i1,j1+1); idd3=id(i1,j1+2); idd4=id(i1,j1+3); si{idd1,idd2,idd3,idd4}=z(i1,3); oi{idd1,idd2,idd3,idd4}=z(i1,4); d1{idd1,idd2}=(d{idd1,idd2}.*si{idd1,idd2,idd3,idd4})+oi{idd1,idd2,idd3,idd4}; d2{idd3,idd4}=d1{idd1,idd2}-kurang{idd1,idd2,idd3,idd4}; end d5=cell2mat(d2); handles.d5 = d5;

guidata(hObject, handles); axes(handles.Axes_ExtractImage); imshow(d5); MSE1=sum(sum(d5-secret_image).^2)/(128*128); PSNR1=10*(log10 ((255^2)/MSE1)); MSE1=num2str(MSE1);


(30)

C-10 PSNR1=num2str(PSNR1);

set(handles.MSEextract,'string',MSE1); set(handles.PSNRextract, 'string', PSNR1);

% --- Executes on button press in pushbutton5_SaveImageStego.

function pushbutton5_SaveImageStego_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5_SaveImageStego (see GCBO)

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

[FileName,PathName]=uiputfile('*.bmp','Save As Stego Image') imwrite(stego128_image,FileName,'bmp');

% --- Executes on button press in pushbutton6_StegoImage.

function pushbutton6_StegoImage_Callback(hObject, eventdata, handles) % hObject handle to pushbutton6_StegoImage (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename, pathname] = uigetfile({'*.bmp','All Image Files';... '*.*','All Files' },'Select Stego Image');

if isequal([filename,pathname],[0,0]) return

else

handles.img=imread(fullfile(pathname, filename)); guidata(hObject, handles);

axes(handles.Axes_StegoImage); imshow(handles.img);

StegoImage = handles.img;

handles.StegoImage = StegoImage; guidata(hObject, handles); end

% --- Executes on button press in pushbutton7_SaveImageExtract.

function pushbutton7_SaveImageExtract_Callback(hObject, eventdata, handles) % hObject handle to pushbutton7_SaveImageExtract (see GCBO)

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

[FileName,PathName]=uiputfile('*.bmp','Save extract Image') imwrite(d5,FileName,'bmp');


(31)

1

Universitas Kristen Maranatha

BAB I

PENDAHULUAN

Pada bab ini akan dibahas mengenai latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, dan sistematika penulisan dari Tugas Akhir ini.

1.1 Latar Belakang Masalah

Perkembangan teknologi informasi yang semakin maju juga diikuti dengan semakin berkembangnya berbagai kejahatan dalam penyalahgunaan data. Oleh karena itu, keamanan suatu data merupakan hal yang utama dalam proses pengiriman data. Kebutuhan akan keamanan data menjadi sangat penting apabila data bersifat rahasia. Data yang bersifat rahasia adalah data yang berisi informasi rahasia dan tidak boleh diketahui oleh siapapun kecuali pengirim dan penerima data. Pengamanan terhadap data yang dikirimkan sangat penting untuk menjaga kerahasiaan, keutuhan, dan keaslian informasi. Berbagai macam teknik dikembangkan untuk meningkatkan tingkat keamanan suatu data. Salah satunya yaitu steganografi. Steganografi menyediakan berbagai metode perlindungan data, yaitu dengan cara menyembunyikan data yang tidak terlihat secara kasat mata ke dalam suatu media lain. Data yang ingin disembunyikan atau pesan rahasia dapat berupa gambar, suara, teks, dan video. Dengan steganografi, semua orang dapat melihat data yang dikirimkan tetapi tidak menyadari bahwa data tersebut telah disisipkan pesan rahasia. Media dan pesan rahasia yang digunakan dalam Tugas Akhir ini adalah gambar. Media yang digunakan untuk penyembunyian pesan rahasia disebut dengan cover image. Sedangkan media penyembunyian data dengan pesan rahasia yang telah disisipkan disebut

stego image.

Proses penyembunyian data menggunakan metode IFS (Iterated Function

System). Metode ini hanya menyembunyikan informasi berupa koefisien

transformasi affine antara setiap blok cover image yang dipasangkan dengan setiap blok secret image.


(32)

Bab I Pendahuluan

2 Universitas Kristen Maranatha

1.2 Identifikasi Masalah

Berdasarkan latar belakang diatas, masalah utama yang diangkat adalah bagaimana merancang aplikasi untuk penyembunyian gambar dalam gambar menggunakan sistem fungsi iterasi.

1.3 Perumusan Masalah

Permasalahan yang akan dibahas dalam Tugas Akhir ini meliputi :

1. Bagaimana menyembunyikan dan mengambil kembali gambar dalam gambar menggunakan sistem fungsi iterasi ?

2. Bagaimana kualitas gambar setelah proses penyisipan dan ekstraksi ?

1.4 Tujuan

Tujuan yang ingin dicapai dari Tugas Akhir ini adalah :

1. Menyembunyikan dan mengambil kembali gambar dalam gambar menggunakan sistem fungsi iterasi.

2. Menganalisa kualitas gambar setelah proses penyisipan dan ekstraksi

1.5 Pembatasan Masalah

Pembatasan masalah pada Tugas Akhir ini adalah : 1. Pesan rahasia berupa gambar.

2. Format gambar yang digunakan adalah bitmap.

3. Pengujian kriteria steganografi, robustness, tidak dilakukan dalam tugas akhir ini tidak dilakukan.

4. Tipe gambar yang dipakai pada secret image dan cover image adalah

grayscale.

5. Program dibuat dengan menggunakan software matlab R2012A.

1.6 Sistematika Penulisan


(33)

Bab I Pendahuluan

3 Universitas Kristen Maranatha  Bab 1. Pendahuluan

Pada bab ini akan dibahas mengenai latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, dan sistematika penulisan Tugas Akhir ini.

 Bab 2. Landasan Teori

Pada bab ini akan dibahas mengenai teori-teori penunjang yang akan digunakan untuk merancang aplikasi penyembunyian gambar dalam gambar menggunakan sistem fungsi iterasi, antara lain citra digital, steganografi, IFS (Iterated Function System), transformasi affine, perbandingan kualitas citra hasil penyisipan dan ekstraksi.

 Bab 3. Perancangan Perangkat Lunak

Bab ini berisi penjelasan desain yang akan dilakukan dalam membuat perangkat lunak untuk menyembunyikan dan mengambil kembali gambar dalam gambar menggunakan sistem fungsi iterasi.

 Bab 4. Pengujian dan Analisa Data

Bab ini berisi data pengamatan hasil pengujian program dan simulasi.  Bab 5. Kesimpulan dan Saran

Bab ini berisi kesimpulan dari Tugas Akhir dan saran yang diperlukan untuk pengembangan di masa mendatang.


(34)

43

Universitas Kristen Maranatha

BAB V

KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan berdasarkan hasil penelitian dan analisis dari Tugas Akhir ini serta saran untuk pengembangan “Penyembunyian Gambar dalam Gambar Menggunakan Sistem Fungsi Iterasi”.

5.1 Kesimpulan

Dari kegiatan-kegiatan yang dilakukan terkait dengan pelaksanaan Tugas Akhir, dapat diambil kesimpulan sebagai berikut :

1. Telah berhasil dibuat program penyembunyian gambar dalam gambar menggunakan sistem fungsi iterasi. Fitur dari perangkat lunak seperti pembacaan citra, proses penyisipan, proses ekstraksi, dan penyimpanan citra sudah dapat dilakukan dengan benar.

2. Pada Tugas Akhir ini, metode sistem fungsi iterasi hanya menyembunyikan informasi berupa koefisien transformasi affine antara setiap blok cover image yang dipasangkan dengan setiap blok secret

image.

3. Citra yang dihasilkan setelah proses penyisipan pesan dengan metode sistem fungsi iterasi memiliki kualitas yang baik, yakni memiliki nilai

PSNR ≥ 40,1649 dB dan nilai MOS ≥ 4.

4. Citra yang dihasilkan proses ekstraksi pesan dengan metode sistem fungsi iterasi memiliki kualitas yang kurang baik, yakni memiliki nilai

PSNR ≥ 26,0510 dB dan nilai MOS ≥ 1,6.

5. Semakin besar ukuran citra semakin baik juga tampilan gambar hasil ekstraksinya. Hal ini berdasarkan nilai MOS yang didapatkan dari setiap gambar hasil ekstraksi.

5.2 Saran

1. Menambahkan dukungan ukuran citra tidak hanya 80x80, 96x96, dan 128x128 untuk cover image dan secret image.


(35)

43

Universitas Kristen Maranatha

DAFTAR PUSTAKA

[1] Ahmad Suad K, George Laay E. “Hiding Image In Image Using Iterated Function

System”.

[2] Fischer, Yuval. “Fractal Image Compression”.1995.Springer-Verlag.

[3] Gonzales, R.C., and Woods, R.E.. Digital Image Processing. Prentice Hall. 2002 [4] Munir, Rinaldi. Pengolahan Citra Digital dengan Pendekatan Algoritmik. Penerbit

Informatika. 2004.

[5] Peranginangin, Kasiman. Pengenalan Matlab. Penerbit Andi. 2006.

[6] Putra, Darma. Pengolahan Citra Digital. Penerbit ANDI Yogyakarta. 2010. [7] Wikipedia, Steganografi, http://id.wikipedia.org/wiki/Steganografi


(1)

PSNR1=num2str(PSNR1);

set(handles.MSEextract,'string',MSE1); set(handles.PSNRextract, 'string', PSNR1);

% --- Executes on button press in pushbutton5_SaveImageStego.

function pushbutton5_SaveImageStego_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5_SaveImageStego (see GCBO)

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

[FileName,PathName]=uiputfile('*.bmp','Save As Stego Image') imwrite(stego128_image,FileName,'bmp');

% --- Executes on button press in pushbutton6_StegoImage.

function pushbutton6_StegoImage_Callback(hObject, eventdata, handles) % hObject handle to pushbutton6_StegoImage (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename, pathname] = uigetfile({'*.bmp','All Image Files';... '*.*','All Files' },'Select Stego Image');

if isequal([filename,pathname],[0,0]) return

else

handles.img=imread(fullfile(pathname, filename)); guidata(hObject, handles);

axes(handles.Axes_StegoImage); imshow(handles.img);

StegoImage = handles.img;

handles.StegoImage = StegoImage; guidata(hObject, handles); end

% --- Executes on button press in pushbutton7_SaveImageExtract.

function pushbutton7_SaveImageExtract_Callback(hObject, eventdata, handles) % hObject handle to pushbutton7_SaveImageExtract (see GCBO)

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

[FileName,PathName]=uiputfile('*.bmp','Save extract Image') imwrite(d5,FileName,'bmp');


(2)

1

Universitas Kristen Maranatha

BAB I

PENDAHULUAN

Pada bab ini akan dibahas mengenai latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, dan sistematika penulisan dari Tugas Akhir ini.

1.1 Latar Belakang Masalah

Perkembangan teknologi informasi yang semakin maju juga diikuti dengan semakin berkembangnya berbagai kejahatan dalam penyalahgunaan data. Oleh karena itu, keamanan suatu data merupakan hal yang utama dalam proses pengiriman data. Kebutuhan akan keamanan data menjadi sangat penting apabila data bersifat rahasia. Data yang bersifat rahasia adalah data yang berisi informasi rahasia dan tidak boleh diketahui oleh siapapun kecuali pengirim dan penerima data. Pengamanan terhadap data yang dikirimkan sangat penting untuk menjaga kerahasiaan, keutuhan, dan keaslian informasi. Berbagai macam teknik dikembangkan untuk meningkatkan tingkat keamanan suatu data. Salah satunya yaitu steganografi. Steganografi menyediakan berbagai metode perlindungan data, yaitu dengan cara menyembunyikan data yang tidak terlihat secara kasat mata ke dalam suatu media lain. Data yang ingin disembunyikan atau pesan rahasia dapat berupa gambar, suara, teks, dan video. Dengan steganografi, semua orang dapat melihat data yang dikirimkan tetapi tidak menyadari bahwa data tersebut telah disisipkan pesan rahasia. Media dan pesan rahasia yang digunakan dalam Tugas Akhir ini adalah gambar. Media yang digunakan untuk penyembunyian pesan rahasia disebut dengan cover image. Sedangkan media penyembunyian data dengan pesan rahasia yang telah disisipkan disebut stego image.

Proses penyembunyian data menggunakan metode IFS (Iterated Function System). Metode ini hanya menyembunyikan informasi berupa koefisien transformasi affine antara setiap blok cover image yang dipasangkan dengan setiap blok secret image.


(3)

Bab I Pendahuluan

1.2 Identifikasi Masalah

Berdasarkan latar belakang diatas, masalah utama yang diangkat adalah bagaimana merancang aplikasi untuk penyembunyian gambar dalam gambar menggunakan sistem fungsi iterasi.

1.3 Perumusan Masalah

Permasalahan yang akan dibahas dalam Tugas Akhir ini meliputi :

1. Bagaimana menyembunyikan dan mengambil kembali gambar dalam gambar menggunakan sistem fungsi iterasi ?

2. Bagaimana kualitas gambar setelah proses penyisipan dan ekstraksi ?

1.4 Tujuan

Tujuan yang ingin dicapai dari Tugas Akhir ini adalah :

1. Menyembunyikan dan mengambil kembali gambar dalam gambar menggunakan sistem fungsi iterasi.

2. Menganalisa kualitas gambar setelah proses penyisipan dan ekstraksi

1.5 Pembatasan Masalah

Pembatasan masalah pada Tugas Akhir ini adalah : 1. Pesan rahasia berupa gambar.

2. Format gambar yang digunakan adalah bitmap.

3. Pengujian kriteria steganografi, robustness, tidak dilakukan dalam tugas akhir ini tidak dilakukan.

4. Tipe gambar yang dipakai pada secret image dan cover image adalah grayscale.

5. Program dibuat dengan menggunakan software matlab R2012A.

1.6 Sistematika Penulisan


(4)

Bab I Pendahuluan

3

Universitas Kristen Maranatha  Bab 1. Pendahuluan

Pada bab ini akan dibahas mengenai latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, dan sistematika penulisan Tugas Akhir ini.

 Bab 2. Landasan Teori

Pada bab ini akan dibahas mengenai teori-teori penunjang yang akan digunakan untuk merancang aplikasi penyembunyian gambar dalam gambar menggunakan sistem fungsi iterasi, antara lain citra digital, steganografi, IFS (Iterated Function System), transformasi affine, perbandingan kualitas citra hasil penyisipan dan ekstraksi.

 Bab 3. Perancangan Perangkat Lunak

Bab ini berisi penjelasan desain yang akan dilakukan dalam membuat perangkat lunak untuk menyembunyikan dan mengambil kembali gambar dalam gambar menggunakan sistem fungsi iterasi.

 Bab 4. Pengujian dan Analisa Data

Bab ini berisi data pengamatan hasil pengujian program dan simulasi.  Bab 5. Kesimpulan dan Saran

Bab ini berisi kesimpulan dari Tugas Akhir dan saran yang diperlukan untuk pengembangan di masa mendatang.


(5)

BAB V

KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan berdasarkan hasil penelitian dan analisis dari Tugas Akhir ini serta saran untuk pengembangan “Penyembunyian Gambar dalam Gambar Menggunakan Sistem Fungsi Iterasi”.

5.1 Kesimpulan

Dari kegiatan-kegiatan yang dilakukan terkait dengan pelaksanaan Tugas Akhir, dapat diambil kesimpulan sebagai berikut :

1. Telah berhasil dibuat program penyembunyian gambar dalam gambar menggunakan sistem fungsi iterasi. Fitur dari perangkat lunak seperti pembacaan citra, proses penyisipan, proses ekstraksi, dan penyimpanan citra sudah dapat dilakukan dengan benar.

2. Pada Tugas Akhir ini, metode sistem fungsi iterasi hanya menyembunyikan informasi berupa koefisien transformasi affine antara setiap blok cover image yang dipasangkan dengan setiap blok secret image.

3. Citra yang dihasilkan setelah proses penyisipan pesan dengan metode sistem fungsi iterasi memiliki kualitas yang baik, yakni memiliki nilai PSNR ≥ 40,1649 dB dan nilai MOS ≥ 4.

4. Citra yang dihasilkan proses ekstraksi pesan dengan metode sistem fungsi iterasi memiliki kualitas yang kurang baik, yakni memiliki nilai PSNR ≥ 26,0510 dB dan nilai MOS ≥ 1,6.

5. Semakin besar ukuran citra semakin baik juga tampilan gambar hasil ekstraksinya. Hal ini berdasarkan nilai MOS yang didapatkan dari setiap gambar hasil ekstraksi.

5.2 Saran

1. Menambahkan dukungan ukuran citra tidak hanya 80x80, 96x96, dan 128x128 untuk cover image dan secret image.


(6)

43

DAFTAR PUSTAKA

[1] Ahmad Suad K, George Laay E. “Hiding Image In Image Using Iterated Function System”.

[2] Fischer, Yuval. “Fractal Image Compression”.1995.Springer-Verlag.

[3] Gonzales, R.C., and Woods, R.E.. Digital Image Processing. Prentice Hall. 2002

[4] Munir, Rinaldi. Pengolahan Citra Digital dengan Pendekatan Algoritmik. Penerbit Informatika. 2004.

[5] Peranginangin, Kasiman. Pengenalan Matlab. Penerbit Andi. 2006.

[6] Putra, Darma. Pengolahan Citra Digital. Penerbit ANDI Yogyakarta. 2010.