23
Tajuk penuh tesis : APLIKASI KESELAMATAN MENGGUNAKAN KRIPTOGRAFI DAN TEKNIK PENYAMARAN DAN PENYARINGAN Nama penulis : GAN TECK LENG Nama ijazah : IJAZAH SARJANA MUDA SAINS (SAINS KOMPUTER) Fakulti : FALKULTI SAINS KOMPUTER DAN SISTEM MAKLUMAT Tarikh penghantaran : 7 MEI 2008

Tajuk penuh tesis : APLIKASI KESELAMATAN MENGGUNAKAN ...ir.fsksm.utm.my/116/1/gantecklengac050019d08ttp.pdf · Perhargaan ini juga ditunjukkan kepada ahli keluarga ... saya juga ingin

Embed Size (px)

Citation preview

Tajuk penuh tesis : APLIKASI KESELAMATAN MENGGUNAKAN KRIPTOGRAFI DAN TEKNIK PENYAMARAN DAN PENYARINGAN

Nama penulis : GAN TECK LENG Nama ijazah : IJAZAH SARJANA MUDA SAINS (SAINS KOMPUTER) Fakulti : FALKULTI SAINS KOMPUTER DAN SISTEM

MAKLUMAT Tarikh penghantaran : 7 MEI 2008

UNIVERSITI TEKNOLOGI MALAYSIA

PSZ 19:16 (Pind. 1/97)

BORANG PENGESAHAN STATUS TESISJUDUL : Saya

APLIKASI KESELAMATAN MENGGUNAKAN KRITOPGRAFI DAN ALGORITMA PENYAMARAN DAN PENYARINGAN

SESI PENGAJIAN: 2007/2008

GAN TECK LENG (HURUF BESAR)

mengaku membenarkan tesis (PSM/Sarjana/Doktor Falsafah)* ini disimpan di Perpustakaan Universiti Teknologi Malaysia dengan syarat-syarat kegunaan seperti berikut: 1. Tesis adalah hakmilik Universiti Teknologi Malaysia. 2. Perpustakaan Universiti Teknologi Malaysia dibenarkan membuat salinan untuk tujuan

pengajian sahaja. 3. Perpustakaan dibenarkan membuat salinan tesis ini sebagai bahan pertukaran antara institusi

pengajian tinggi. 4. **Sila tanda ( )

(Mengandungi maklumat yang berdarjah keselamatan atau

 

SULIT TERHAD

TIDAK TERHAD

kepentingan Malaysia seperti yang termaktub di dalam AKTA RAHSIA RASMI 1972) (Mengandungi maklumat TERHAD yang telah ditentukan oleh organisasi/badan di mana penyelidikan dijalankan)

Disahkan oleh

(TANDATANGAN PENULIS) Alamat Tetap

100,TAMAN BENUT JAYA, 82200 BENUT, PONTIAN JOHOR

(TANDATANGAN PENYELIA)

DR.SUBARIAH BINTI IBRAHIM

Tarikh:

7 MEI 2008

Tarikh:

7 MEI 2008

CATATAN: * Potong yang tidak berkenaan. ** Jika tesis ini SULIT atau TERHAD, sila lampirkan surat daripada pihak

berkuasa / organisasi berkenaan dengan menyatakan sekali sebab dan tempoh tesis ini perlu dikelaskan sebagai SULIT atau TERHAD.

Tesis dimaksudkan sebagai tesis bagi Ijazah Doktor Falsafah dan Sarjana secara penyelidikan, atau disertasi bagi pengajian secara kerja kursus dan penyelidikan, atau Laporan Project Sarjana Muda (PSM)

“Saya akui bahawa saya telah membaca karya ini dan pada pandangan saya karya ini

adalah memadai dari segi skop dan kualiti untuk tujuan penganugerahan Ijazah

Sarjana Muda Sains (Sains Komputer)”.

Tandatangan : …………………………

Nama Penyelia : DR. SUBARIAH IBRAHIM

Tarikh : 7 MEI 2008

APLIKASI KESELAMATAN MENGGUNAKAN KRITOGRAFI DAN ALGORITMA PENYAMARAN DAN PENYARINGAN

GAN TECK LENG

Tesis ini dikemukakan sebagai memenuhi syarat penganugerahan Ijazah Sarjana Muda Sains Komputer

Fakulti Sains Komputer dan Sistem Maklumat

Universiti Teknologi Malaysia

MEI, 2008

ii

“saya akui ini adalah hasil kerja saya sendiri kecuali nukilan dan ringkasan yang

tiap-tiap satunya telah saya jelaskan sumbernya.”

Tandatangan : …………………………

Nama Penulis :GAN TECK LENG

Tarikh :7 MEI 2008

iii

Untuk bapa, emak, kakak, adik sekeluarga,

Rakan-rakan yang memahami,

Para pensyarah yang jerih mendidik,

Mereka yang menceburi bidang keselamatan

Dan khas buat untuk semua pelajar

iv

PENGHARGAAN

Dengan mengambil kesempatan ini, saya ingin mengucapkan ribuan

penghargaan kepada penyelia saya, Dr.Subariah Binti Ibrahim atas segala pandangan,

nasihat serta perhatian yang beri sepanjang proses penyiapkan projek ini.

Perhargaan ini juga ditunjukkan kepada ahli keluarga dan rakan-rakan yang

sentiasa membantu dan tidak putus memberi dorongan kepada saya untuk

menyiapkan projek ini. Tanpa kalian semua, mungkin projek ini tidak dapat

disiapkan.

Akhirnya, saya juga ingin mengucapkan terima kasih kepada para pensyarah

Fakulti Sains Komputer dan Sistem Maklumat yang mengajar dan juga mereka yang

terlibat secara langsung mahupun tidak demi menjayakan penghasilan projek ini.

v

ABSTRAK

Pada zaman ini, internet dan sistem rangkaian semakin canggih. Dengan

adanya internet, pengguna komputer dapat berkomunikasi antara satu sama lain

dengan mudah. Selain itu, proses penghantaran fail juga menjadikan semakin

mudah dengan adanya internet. Selain membawa faedah kepada pengguna, internet

juga membawa masalah kepada pengguna. Dengan adanya kemudahan komunikasi

ini, internet menimbulkan masalah keselamatan informasi. Untuk mengatasi

masalah keselamatan data, teknik penyulitan dan pemyembunyian data digunakan

untuk memastikan data tidak dilihat atau diambil oleh pihak ketiga dengan tiada

aplikasi penyahsulitan yang betul. Aplikasi yang akan dibangunkan adalah

menggunakan dua teknik untuk melindungi fail iaitu teknik kriptografi dan teknik

steganografi. Ini adalah kerana, hanya menggunakan teknik kriptografi, data yang

hendak dilindungi akan menarik perhatian pihak ketiga untuk mencari jalan

penyahkodan untuk mendapat data tersebut. Oleh itu, steganografi diimplemenkan

dalam aplikasi ini supaya dapat menyembunyikan data. Selain itu, aplikasi ini juga

boleh menyulitkan pelbagai format data seperti fail image, audio dan teks. Matlamat

projek ini adalah melindungi data daripada dilihat, diguna, dan diubah oleh pihak

ketiga. Secara kesimpulannya, pembangunan applikasi ini harap boleh melindungi

data penting yang disimpan dan dihantar oleh orang ramai.

vi

ABSTRACT

Nowadays, the rapid development of internet promotes interactivity among

PC users worldwide. It is a way to communications and data transference. However,

this interconnectivity also creates data security and privacy issues. Data encryption

and hidden techniques can solve many data security issues by making encrypted data

virtually impossible to read without the proper decryption and retrieve tools.

However, most of the tools only support one type of technique to protect the file. To

solve this problem, this project developed an application, which can encrypt and

hide data by combining cryptography and steganography together. Beside that, it

also can encrypt some formats of data like video file, audio file and text file. The

main purpose of this project is to protect the data from unauthorized access, use, and

modification. In conclusion, the development of this application hopefully can

provide a more secure way for people to save and send their important data.

vii

KANDUNGAN

BAB PERKARA HALAMAN

JUDUL i

PENGAKUAN ii

DEDIKASI iii

PENGHARGAAN iv

ABSTRAK v

ABSTRACT vi

KANDUNGAN vii

SENARAI JADUAL xi

SENARAI RAJAH xii

SENARAI SINGKATAN xv

SENARAI ISTILAH xvi

SENARAI LAMPIRAN xvii

BAB 1 PENGENALAN

1.1 Pengenalan 1

1.2 Latarbelakang Masalah 2

1.3 Matlamat 3

1.4 Objektif 3

1.5 Skop Projek 4

1.6 Justifikasi/Kepentingan 4

viii

BAB 2 KAJIAN LITERATUR

2.1 Pengenalan 5

2.2 Kajian Tentang Sistem Sedia Ada 5

2.2.1 Steg Hide 6

2.2.2 Invisible Secret 4 7

2.2.3 Sistem Crypteks 9

2.3 Analisis Masalah Mengenai Sistem Sedia Ada 9

2.4 Kajian Ke Atas Teknik-teknik Dan Teknologi-

Teknologi 11

2.5 Kriptografi 11

2.5.1 Sistem Penyulitan 11

2.5.1.1 Sifer Simetrik 12

2.5.1.2 Sifer Tak Simetrik 13

2.5.2 Kajian Algoritma Penyulitan Bagi Fail Teks 14

2.5.2.1 DES 14

2.5.2.2 AES 16

2.5.2.3 Blowfish 19

2.5.2.4 TEA 20

2.5.3 Kajian Algoritma Penyulitan Bagi Fail Audio 21

2.5.4 Kajian Algoritma Penyulitan Bagi Fail Imej 22

2.6 Teknik Steganografi 22

2.6.1 Jenis Steganografi 23

2.6.2 Teknik Penyamaran Dan Penyaringan 25

2.7 Teknik Fungsi Cincang 26

2.7.1 Algoritma Secure Hash Algorithm(SHA) 27

2.8 Rumusan 27

BAB 3 METODOLOGI

3.1 Pengenalan 28

3.2 Metodologi Yang Digunakan 28

3.3 Justifikasi Pemilihan Metodologi 29

3.4 Metodologi Pembangunan Aplikasi 30

ix

3.4.1 Fasa Penyiasatan Awalan dan Perancangan 30

3.4.2 Fasa Analisa Aplikasi 31

3.4.3 Fasa Rekabentuk Aplikasi 32

3.4.4 Fasa Implementasi 33

3.5 Spesifikasi Sistem 33

3.5.1 Keperluan Perkakasan 33

3.5.2 Keperluan Perisian 34

3.5.3 Spesifikasi Input Dan Hasil Jangkaan 34

3.6 Kesimpulan 35

BAB 4 REKABENTUK SISTEM

4.1 Pengenalan 36

4.2 Rekabentuk Sistem 36

4.2.1 Permodelan Rajah Kes Guna 38

4.2.1.1 Aktor 39

4.2.1.2 Rajah Kes Guna 39

4.2.2 Gambarajah Jujukan 41

4.2.3 Gambarajah Aktiviti 42

4.3 Fasa Rekabentuk Aliran Kerja 43

4.4 Rekabentuk Antaramuka 44

4.5 Proses Pengekodan Fungsi-Fungsi Aplikasi 48

BAB 5 IMPLEMENTASI DAN PENGUJIAN

5.1 Pengenalan 49

5.2 Persekitaran Pembangunan 49

5.2.1 Pemasangan dan Konfigurasi Perisian Visual

C++ 6.0 49

5.3 Pembangunan Antara Muka Sistem 50

5.4 Pembangunan Pengaturcaraan Aplikasi 51

5.5 Ralat Mesej Semasa Memasukkan Input Tidak

x

Benar 58

5.5.1 Mesej Ralat Untuk Validasi Kekunci 58

5.5.2 Mesej Ralat Semasa Validasi Saiz Fail

Untuk Proses Penyembunyian 60

5.6 Pengujian 61

5.6.1 Pengujian Proses Penyulitan Dan

Penyahsulitan 61

5.6.2 Pengujian Proses Penyembunyian Dan

Pemulihan Fail 61

BAB 6 PERBINCANGAN DAN KESIMPULAN

6.1 Pendahuluan 77

6.2 Ringkasan Projek 77

6.3 Hasil dan Capaian Projek 79

6.4 Sumbangan Projek 80

6.5 Cadangan Kajian Lanjutan 80

6.5.1 Kelemahan Aplikasi 80

6.5.2 Cadangan Pembaikan/Peningkatan 81

6.6 Kesimpulan 81

SENARAI DOKUMEN RUJUKAN 82

LAMPIRAN A 84

LAMPIRAN B 87

LAMPIRAN C 96

LAMPIRAN D 101

LAMPIRAN E 103

LAMPIRAN F 113

xi

SENARAI JADUAL

NO. JADUAL TAJUK HALAMAN

2.1 Perbandingan Sistem Cadangan Dengan Sistem

Sedia Ada 10

3.1 Senarai Perkakasan Yang Diperlukan Untuk

Membangunkan Sistem. 33

4.1 Peranan Rajah Kes Guna 40

xii

SENARAI RAJAH

NO.RAJAH TAJUK HALAMAN

2.1 Antaramuka Steg-hide 7

2.2 Invisible Secrets 4 8

2.3 Antaramuka Cryptext 9

2.4 Sifer Simetrik 12

2.5 Sifer Tak Simetrik 13

2.6 Struktur DES 15

2.7 Transformasi SubBytes 17

2.8 Transformasi Shiftrows 18

2.9 Transformasi Mixcolumns 18

2.10 Transformasi Addroundkey 19

2.11 Struktur Fiestel Bagi Blowfish 20

2.12 Dua Pusingan Fiestel Bagi TEA 21

2.13 Frekuensi Penyamaran Di Dalam

Human Audiotory System(HAS) 26

3.1 Model Proses Metodologi Prototaip 29

4.1 Rekabentuk Sistem 37

4.2 Rekabentuk Senibina Sistem 37

4.3 Kes Guna 38

4.4 Fasa Rekabentuk Aliran Kerja 44

4.5 Menu Untuk Proses Penyulitan 45

4.6 Menu Untuk Proses Penyembunyian Dan Pemulihan 46

5.1 Antaramuka Antaramuka Proses Penyulitan

Dan Penyahsulitan 50

5.2 Antaramuka Proses Penyembunyian Dan Pemulihan 51

xiii

5.3 Contoh Sebahagian Kod Penyulitkan AES 52

5.4 Sebahagian Kod Aturcara Algoritma Blowfish 53

5.5 Contoh Sebahagian Kod Aturcara TEA 54

5.6 Contoh Sebahagian Kod Aturcara Menyembunyikan

Fail Ke Dalam Fail Wave 55

5.7 Contoh Sebahagian Kod Aturcara Menyembunyikan

Fail Ke dalam Fail Teks 56

5.8 Contoh Sebahagian Kod Aturcara Menyembunyikan

Fail Ke Dalam Fail Bitmap 57

5.9 Mesej Ralat Bagi Kesalahan Katakunci 58

5.10 Mesej Ralat Semasa Tidak Memasukkan Katakunci 59

5.11 Ralat Semasa Memasukkan Katakunci Kali Kedua 59

5.12 Mesej Ralat Apabila Fail Yang Hendak Disembunyikan

Terlalu Besar 60

5.13 Perbandingan Fail Sebelum dan Selepas Proses

Penyembunyian 62

5.14 Perbandingan Fail Teks Asal Dengan Fail Teks

Yang Melindungi Fail Teks 63

5.15 Perbandingan Peyembunyian Fail Imej Ke Dalam Fail

Teks 64

5.16 Perbandingan Penyembunyian Fail Bunyi Ke Dalam

Fail Teks 66

5.17 Perbandingan Penyembunyian Mesej Ke Dalam

Fail Imej 69

5.18 Perbandingan Penyembunyian Fail Teks Ke Dalam

Fail Imej 70

5.19 Perbandingan Penyembunyian Fail Imej Ke Dalam

Fail Imej 72

5.20 Perbandingan Fail Imej Penyembunyian Fail Bunyi 73

5.21 Perbandingan Penyembunyian Fail Penyulitan Ke

Dalam Fail Imej 75

xiv

SENARAI SINGKATAN

AES - Advanced Encryption Standard

BMP - Bitmap

DES - Data Encryption Standard

ECKBA - Enhanced Chaostic Key-Based Algorithm

HAS - Human Auditory System

JPEG - Joint Photographic Expert Group

LSB - Least Significant Bits

RSA - Ron Rivest, Adi Shamir dan Len Adleman

RC5 - Rivest Code 5

TEA - Tiny Encryption Standard

xv

SENARAI ISTILAH

Kriptografi - Cryptography

Penyahsulitan - Decrypt

Penyulitan - Encrypt

Penyembunyian - Hidden

Pemulihan - Retrieve

Simetri - Symmetric

Steganografi - Steganography

Tak Simetri - Asymmetric

Teks - Text

xvi

SENARAI LAMPIRAN

LAMPIRAN TAJUK HALAMAN

LAMPIRAN A Carta Gantt Projek 1 Dan Carta Gantt Projek 2 84

LAMPIRAN B Rajah Jujukan Dan Rajah Kerjasama 87

LAMPIRAN C Rajah Aktiviti 96

LAMPIRAN D Soalan-Soalan Temuduga 101

LAMPIRAN E Laporan Kes Pengujian 103

LAMPIRAN F Manual Pengguna 113

BAB 1

PENGENALAN

1.1 Pengenalan

Pada zaman ini, revolusi digital dan kemajuan teknologi komputer membaw

perubahan yang besar kepada kehidupan masyarakat. Dengan adanya komputer,

kebanyakan kerja dapat diselesaikan dengan pantas dan segala data dapat disimpan

dalam format digital. Data digital membolehkan data dihantar dan dikongsi dengan

mudah. Walaupun, komputer membawa banyak faedah kepada pengguna tetapi

komputer juga membawa masalah keselamatan komputer kepada pengguna seperti

Trojan, Virus, dan Worm. Masalah keselamatan komputer ini membolehkan orang

ramai mengetahui kepentingan keselamatan komputer.

Keselamatan data adalah salah satu bahagian daripada keselamatan komput

yang dibimbangi orang ramai. Ini adalah kerana, semua orang tidak mengingini

rahsia mereka diketahui oleh orang lain. Dengan adanya teknik penyulitan dan

penyembunyian data, kita boleh menangani masalah keselamatan data dengan

menyulitkan dan menyembunyikan data supaya tidak dilihat atau dibaca oleh orang

yang tidak berhak untuk melihatkan data tersebut.

Keselamatan data adalah penting, ini dapat dilihatkan daripada pihak

berkuasa sesebuah negara sentiasa mencari penyelesaian untuk melindungi data

rahsia seperti maklumat tentera dan maklumat kewangan. Sekiranya maklumat

1

a

:

er

2

tersebut diketahui oleh pihak ketiga akan menyebabkan masalah yang besar terhadap

sesebuah negara. Selain itu, peniaga juga perlu melindungi maklumat rahsia seperti

maklumat pekerja, maklumat pembeli dan lain-lain lagi. Kebanyakan maklumat ini

disimpan dan diproses dalam komputer dan dihantarkan kepada komputer lain

melalui rangkaian komputer (21). Sekiranya maklumat yang rahsia ini diketahui

oleh pesaing akan menyebabkan perniaga tersebut mendapat kesan buruk seperti

hilang daya bersaing. Oleh itu, melindungi maklumat rahsia adalah keperluan

perniagaaan. Bagi orang ramai, teknik penyulitan dan penyembunyian digunakan

untuk melindungi data rahsia mereka.

Dalam projek ini, suatu aplikasi keselamatan dengan konsep kriptografi dan

steganografi dicadangkan untuk melindungi data. Teknik kriptografi adalah

digunakan untuk menyulitkan data supaya tidak dapat dibaca oleh orang lain. Bagi

teknik steganografi pula, adalah digunakan untuk menyembunyikan data ke dalam

fail lain supaya orang lain tidak dapat mengetahui kewujudan fail tersebut. Alasan

mengimplemenkan dua teknik dalam aplikasi ini adalah kerana dengan hanya

menggunakan kriptografi akan menarik perhatian orang lain untuk mengetahui

kandungan fail tersebut. Oleh itu, dengan menggunakan teknik steganografi, fail

yang telah disulit dapat disembunyikan ke dalam fail lain supaya tidak menarik

perhatian orang lain.

Secara kesimpulannya, aplikasi yang akan dibangunkan di akhir projek ini

adalah dibangunkan dengan konsep kriptografi dan steganografi untuk memberi

perlindungan kepada data supaya tidak diketahui oleh pihak ketiga.

1.2 Latarbelakang Masalah

Penghantaran fail melalui rangkaian komputer menghadapi pelbagai

ancaman keselamatan (1). Ini akan mengurangkan tahap rahsia sesuatu data apabila

dihantarkan melalui rangkaian komputer kerana data tersebut boleh diambil atau

diketahui oleh orang lain semasa hantaran data sebab data tersebut akan melalui

3

banyak komputer semasa hantar melalui internet. Apabila data tersebut jatuh pada

orang yang tidak bertanggugjawab akan membawa kesan yang buruk kepada sesiapa

yang menghantarkan dan menerima data tersebut. Untuk mengatasi masalah ini,

aplikasi ini mengabungkan dua teknik iaitu kriptografi dan steganografi untuk

melindungi data daripada diperoleh oleh pihak ketiga.

Selain itu, banyak aplikasi keselamatan yang terdapat di pasaran hanya

menyokong sejenis format data (9). Dengan mengambil berat faktor ini, projek ini

akan menghasilkan satu aplikasi yang menyokong pelbagai format data seperti fail

teks, fail imej, dan fail audio.

Dalam aplikasi ini, dua teknik digunakan untuk melindungi data iaitu

kriptografi dan steganografi. Kalau kita hanya menyulitkan data dengan teknik

kriptografi, ini akan menarik perhatian orang lain untuk mengetahui kandungan fail

tersebut (10). Oleh itu, aplikasi ini menyembunyikan data dengan teknik

steganografi selepas menyulitkan data dengan teknik kriptografi supaya data yang

disembunyikan dengan aplikasi ini tidak menarik perhatian orang lain. Selain itu,

untuk memudahkan pengguna menggunakan aplikasi ini. Proses penyembunyian

dan penyulitan dapat dijalankan secara berasingan.

1.3 Matlamat

Matlamat bagi projek ini adalah membangunkan suatu aplikasi yang boleh

melindungi keselamatan data dengan menggunakan konsep kriptografi dan

steganografi.

1.4 Objektif

Objektif-objektif bagi projek ini adalah:

4

1. Mengkaji kriptografi dengan teliti untuk mencari algoritma yang sesuai

untuk melindungi keselamatan data.

2. Mengkaji teknologi steganografi untuk menyembunyikan data ke dalam

data lain.

3. Membangunkan satu modul yang boleh melindungi keselamatan data

dengan menggunakan teknik kriptografi dan steganografi.

4. Melaksanakan pengujian terhadap keberkesanan aplikasi.

1.5 Skop Projek

Skop-skop projek adalah:

1. Beberapa algoritma kriptografi dikaji iaitu AES, DES, Blowfish dan

TEA.

2. Dua algoritma steganografi dikaji iaitu LSB dan penyamaran dan

penyaringan.

3. Tiga jenis fail dikaji iaitu imej, teks dan bunyi.

4. Aplikasi ini boleh digunakan dalam sistem pengoperasian window XP.

1.6 Justifikasi/ Kepentingan

Projek ini dibangunkan untuk melindungi data yang penting daripada dibaca

oleh orang lain apabila dihantar melalui rangkaian komputer atau disimpan dalam

komputer. Pengguna yang akan mendapat faedah daripada aplikasi ini adalah

sesiapa yang bekerja di syarikat kecil. Dengan adanya aplikasi ini, pengguna tidak

perlu membimbangkan data rahsia dilihat atau diambil oleh orang lain. Selain itu,

aplikasi ini memudahkan pengguna dengan membolehkan pengguna memilih proses

yang hendak dijalankan sama ada proses penyulitan atau proses penyembunyian.