ANALISIS PEMPROSESAN DIGITAL SIGNATURE MENGGUNAKAN FUNGSI HASH MD5 Skripsi Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Sains
Oleh :
DINDIN ALAWI 103094029730
PROGRAM STUDI MATEMATIKA JURUSAN MIPA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2010 i
ii
iii
PROGRAM STUDI MATEMATIKA JURUSAN MIPA FAKULTAS SAINS DAN TEKNOLOGI UIN SYARIF HIDAYATULLAH JAKARTA
Dengan ini menyatakan bahwa skripsi yang ditulis oleh : Nama
: Dindin Alawi
NIM
: 103094029730
Program Studi : Matematika Judul Skripsi : Analisis Pemprosesan Digital Signature Menggunakan Fungsi Hash MD5 Dapat diterima sebagai syarat kelulusan untuk memperoleh gelar Sarjana Sains pada Program Studi Matematika Jurusan MIPA, Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta.
Jakarta, Juli 2006 Menyetujui, Dosen Pembimbing Pembimbing I
Pembimbing II
Hermawan Setiawan, S.Si, MTI, MM NIP. 19740623 199312 1 001
Yudi Mahatma, M.Si NIP. 19761020 200812 1 001
Mengetahui, Dekan Fakultas Sains dan Teknologi
Ketua Prodi Matematika
Dr. Syopiansyah Jaya Putra, M.Sis NIP. 150 317 956
Yanne Irene, M.Si NIP. 19741231 200501 2 018
iv
PENGESAHAN UJIAN Skripsi yang berjudul “Analisis Pemprosesan Digital Signature Menggunakan Fungsi Hash MD5”. Telah diuji dan dinyatakan lulus dalam sidang Munaqosyah Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif Hidayatullah Jakarta pada hari …., ……... Skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh gelar sarjana strata satu (S1) pada Jurusan MIPA Program Studi Matematika.
Jakarta, Juli 2006
Tim Penguji
Penguji I
Penguji II
Summaina, M.SI NIP……………..
Yanti, M.Si NIP……………..
Mengetahui, Dekan Fakultas Sains dan Teknologi
Dr. Syopiansyah Jaya Putra, M.Sis NIP. 150 317 956
v
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENARBENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU LEMBAGA MANAPUN.
Jakarta, April 2010
Dindin Alawi 103094029730
vi
ABSTRAK
Dindin Alawi, Analisis Pemprosesan Digital Signature Menggunakan Fungsi Hash MD5. (Di bawah bimbingan Hermawan Setiawan dan Yudi Mahatma).
Dalam pertukaran pesan (misalnya surat) dengan orang lain melalui internet, kita tentu ingin pesan yang kita kirim sampai ke pihak yang dituju dengan aman. Artinya isi pesan tidak diubah atau dimanipulasi selama pengiriman oleh pihak ketiga. Disisi penerima pesan, ia tentu ingin memastikan bahwa pesan yang ia terima adalah pesan yang masih asli, bukan pesan yang ditambah-tambah atau dikurangi. Ini adalah masalah keamanan pesan yang disebut dengan integritas data (data integrity). Selain itu, penerima yakin bahwa pesan tersebut memang benar dari pengirim yang benar. Dengan semakin maraknya orang memanfaatkan layanan komunikasi, maka permasalahanpun bermunculan, apalagi ditambah dengan adanya hacker dan cracker.
Objek penelitian dari penulisan skripsi ini adalah Digital Signature menggunakam Fungsi Hash MD5, yang merupakan salah-satu solusi yang bias digunakan dalam pertukaran pesan. Dalam penulisan skripsi ini, penulis ingin mengetahui proses kriptografi MD5 dengan percobaan menggunakan dua jenis file (audio dan dokumen) sekaligus penulis mencoba membongkar algoritma fungsi hash MD5 secara matematika manual dengan bantuan teori bilangan dan logika matematika.
Kata Kunci : Digital Signature, Kriptografi, Autentikasi, teori bilangan, logika sdgdfsgsfhyfghmatematika.
vii
KATA PENGANTAR
Puja dan puji, sembah dan sujud hanya kepada Allah S.W.T. Penguasa alam jagat raya, yang Maha Pengasih tak pilih kasih dan Maha Penyayang yang sayangnya tiada akan pernah terbilang. Dan berkat kasih sayang-Nya pulalah penulis dapat menyelesaikan skripsi ini. Shalawat serta salam kecintaan hanya tercurahkan kepada insan budiman manusia pilihan, junjungan alam Nabi besar Muhammad S.A.W. Semoga kita semua mendapatkan syafaatnya baik di dunia maupun di akhirat kelak. Amin. Setelah berusaha keras akhirnya atas izin Allah SWT penulis dapat menyelesaikan skripsi ini. Meskipun demikian, penulis sadar bahwa dalam mengerjakan skripsi ini penulis banyak dibantu oleh berbagai pihak. Oleh karena itu pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesarbesarnya kepada : 1.
Ayahanda H. Aceng Basir, dan ibunda Hj. Ii Yuningsih, tidak lupa untuk keluarga kecilku Istri tercinta Solihat dan ananda Mykola Faeyza Alawi yang menyadarkan arti sebuah kehidupan serta kaka-adikku tercinta kel. Badru Jaman(Abah), kel. Ayi s, Kel. Rohayati, kel. Iis, Mulki Fajri juga seluruh keluarga besarku dan keluarga besar mertua K.H. Farhan yang selalu memberikan doa, kasih sayang, dukungan moril maupun materi dan semangat yang tiada hentinya.
2.
Bapak Dr. Syopiansyah Jaya Putra, M.Sis, sebagai Dekan Fakultas Sains dan Teknologi. viii
3.
Ibu Yanne Irene M.si
sebagai Ketua Prodi Matematika
dan dosen
pembimbing I Bapak Hermawan Setiawan S.Si, MTI, MM yang bersamasama dengan Bapak Yudi Mahatma, M.Si telah memberikan bimbingan dan saran-saran dalam penyusunan skripsi penulis. 4.
Ibu Nur Inayah, S.Pd, M.Si, yang tidak bosan memberikan nasehat dan semangat kepada penulis dan Dosen Penguji Ibu Sumaina, M. Si. Beserta Ibu Yanti, M.Si. tidak lupa seluruh dosen Jurusan MIPA berikut Program Studi Matematika yang sudah mengajarkan ilmu-ilmu yang bermanfaat bagi penulis selama kuliah wabil khusus Bapak Suherman, MSi dan Bapak Taufik Msc. Tech.
5.
Seluruh staf akademik Fakultas Sains dan Teknologi, Pa Gun, Bu Opah, dan semuanya yang tidak dapat penulis sebutkan satu-persatu, yang dengan sabar melayani masalah administrasi mahasiswa program studi Matematika khususnya penulis sendiri.
6.
Pengelola Perpustakaan Fakultas Sains dan Teknologi yang telah memberikan fasilitas untuk mengadakan studi kepustakaan.
7.
Sahabat-sahabat Matematika angkatan 2002, Team JAMBRONG (Bambang Hata, Abub, Andi, Farid, Sopi, Mute), CH3COOH, Indri, Bu’ay, Cie2, Ubed, Irfan, Ucus, Dedi, Febri, Haidar, Nana, dan semuanya yang tidak bisa penulis sebutkan satu per satu.
8.
Sahabat-sahabat Matematika angkatan 2003, Denis, Mriyadi,Nano, Sandi, Iin, Yos, Iiq, Cit, Mimi, farida, dan semuanya yang tidak bisa penulis sebutkan satu per satu. ix
9.
Adik-adik angkatanku di Program Studi Matematika semoga kalian menjadi lebih baik dari angkatan di atas kalian. “Marilah kita bergerak dan bangun bersama HIMATIKA”, dan jangan lupakan angkatan di atas kalian.
10.
Sahabat Seperjuangan di Mat Uin Takin, Mamet, Beni, Alwi, qinoy.
11.
Sahabat sepergerakan Zaky, Zabir, Faris, Bulet, Reza, Hata, Bambang, Qthink, wawan, Ba’i dan sahabat lainnya teruslah bergerak bergerak dan bergerak.
12.
KKS Lintas Prodi Rulan, Ubay, Angga, Gun, Dam, Upi, Ika, Rul, Riska, Isna special buat Ambon dan mae seperjuangan piket di KKS Ciwithey Bandung.
13.
Guru beserta rekan Seperjuangan dalam dunia bisnis kel. Bpk. Agus Ridwan, kel. Kang dian, Basuki Rahmat, kel. U.K. Ajat, kel Bapak Subo, kel. Bpk. Yudi, kel. Selvin, kel. Ika, Ucup, Zeris, Riska, Dewi, Teti, Melly, Luri, Minten, Wahyu, special Arif.
14.
SMAN 1 Ciranjang Ratih, Rudi, Yono, Adi, Amet, Kuncen dst. Penulis menyadari bahwa masih banyak kelemahan dan kekurangan yang
terdapat dalam skripsi ini, yang masih harus diperbaiki. Akhir kata penulis berharap semoga skripsi ini dapat bermanfaat bagi kita semua. Jakarta, April 2010
Penulis
x
DAFTAR ISI
HALAMAN JUDUL ....................................................................................
i
HALAMAN PERSETUJUAN PEMBIMBING ..........................................
iii
HALAMAN PENGESAHAN UJIAN .........................................................
v
HALAMAN PERNYATAAN .....................................................................
vi
ABSTRAK ...................................................................................................
vii
KATA PENGANTAR .................................................................................. viii DAFTAR ISI .................................................................................................
xi
DAFTAR TABEL .......................................................................................
xiv
DAFTAR GAMBAR .................................................................................... xv DAFTAR LAMPIRAN ................................................................................. xvi
BAB I.
PENDAHULUAN .........................................................................
1
1.1.
Latar Belakang .....................................................................
1
1.2.
Perumusan Masalah .............................................................
4
1.3.
Pembatasan Masalah ..............................................................
4
1.4.
Tujuan ...................................................................................
8
BAB II. LANDASAN TEORI ......................................................................
6
2.1.
Kriptografi ..............................................................................
6
2.1.1. Konsep Tandatangan Digital ......................................
8
xi
2.1.2. Fungsi Hash ................................................................
9
2.1.3. Fungsi Hash Satu Arah ............................................
11
2.1.4. Fungsi Hash MD5 ....................................................
12
2.1.5. Penandatanganan dan Verifikasi Tanda-tangan Digital ..13
2.2.
2.3.
2.1.5.1. Pemberian Tandatangan Digital ................
14
2.1.5.2. Verifikasi Tandatangan Digital .................
14
Dasar-dasar Matematika Untuk MD5 ................................... 15 2.2.1. Fungsi Satu Arah ......................................................
16
2.2.2. Relasi Keterbagian ....................................................
16
2.2.3. Aritmatika Modulo ....................................................
20
Analisis Data ......................................................................... 22 2.3.1.
Uji Satu-Sampel Kolmogorov-Smirnov ....................... 22
2.3.2.
Uji t (Independent Sample t Test)………......................24
BAB III. METODOLOGI PENELITIAN ...................................................
27
3.1.
Representasi Data ..................................................................
27
3.2.
Algoritma MD5 .....................................................................
27
3.2.1. Penambahan bit–bit pengganjal (padding bits) ..........
27
3.2.2. penambahan nilai panjang pesan semula ...................
28
3.2.3. Inisialisasi penyangga (buffer) MD............................
28
3.2.4. Pengolahan pesan dalam blok berukuran 512 bit........... 29 3.2.5
Operasi Dasar MD5....................................................
30
3.2.5.1. Fungsi dalam HMD5 .......................................... xii
3.2.5.2. Menentukan Nilai T ...................................
31
3.2.5.3. Menentukan Nilai k ....................................
32
3.2.5.4. Menentukan Nilai s ....................................
32
Teknik Pengolahan dan Analisa Data .................................
33
3.3.1. Uji Distribusi .............................................................
33
3.3.2. Uji Homogenitas ......................................................
34
BAB IV. PENGUJIAN DAN ANALISIS .....................................................
36
3.3.
4.1.
Data Hasil Penelitian ...........................................................
36
4.2.
Pengolahan Data ..................................................................
38
4.2.1. Uji Distribusi .............................................................
38
4.2.2. Uji Variansi ................................................................
40
4.2.2. Uji t (Independent Sample T-Test) ............................
42
BAB V. KESIMPULAN DAN SARAN ..................................................... 45 5.1.
Kesimpulan .......................................................................... 45
5.2.
Saran ..................................................................................... 46
DAFTAR PUSTAKA ................................................................................... 47 LAMPIRAN ................................................................................................... 48
xiii
DAFTAR TABEL
Tabel 3-1. Jenis File Input ............................................................................... 27 Tabel 3.2 Fungsi Manipulasi ............................................................................ 31 Tabel 3.3 Nilai s pada circular left shift.......................................................... 32 Tabel 4.1 Data Kecepatan Masing-masing File ............................................... 37 Tabel 4.2 Output Uji Distribusi........................................................................ 38 Tabel 4.3 Output Uji Variansi .......................................................................... 40 Tabel 4.4 Output Independent Sample T-Test .................................................. 42
xiv
DAFTAR GAMBAR
Gambar 2.1 input dan output fungsi hash ......................................................
10
Gambar 2.2 Pengolahan Gambar 2.2 Pengolahan .......................................... 13 Gambar 2.3 Proses Penandatanganan dan Ferifikasi Pesan ........................... 13 Gambar 3.1Pengolahan pesan dalam Blok 512 ............................................... 14 Gambar 3.2 Operasi Dasar MD5 ...................................................................... 14
xv
DAFTAR LAMPIRAN
LAMPIRAN 1 : Tabel T. Nilai T[i] .............................................................. 48 LAMPIRAN 2 : Persamaan Operasi Dasar MD5 (Putaran 1-4) .................... 49 LAMPIRAN 3 : Analisa Percobaan 1-5 ........................................................ 52 LAMPIRAN 4 : Uji Normalitas Data ............................................................. 57
xvi
BAB I PENDAHULUAN
1.1
Latar Belakang Seiring dengan perkembangan sistem informasi yang sangat pesat, berbagai macam layanan komunikasi tersedia di internet, di antaranya adalah web, e-mail, milis, dan sebagainya. Dengan semakin maraknya orang memanfaatkan
layanan
komunikasi
di
internet
tersebut,
maka
permasalahanpun bermunculan, apalagi ditambah dengan adanya hacker dan cracker. Salah satu aspek penting dari sebuah sistem informasi adalah masalah keamanan, namun masalah keamanan ini sering kali kurang mendapat perhatian dari para pemilik dan para pengelola sistem informasi. Seringkali masalah keamanan berada di urutan kedua atau bahkan di urutan terakhir dalam hal yang dianggap penting apabila mengurangi performansi dari sistem, maka seringkali keamanan dikurangi atau bahkan ditiadakan. Dalam pertukaran pesan (misalnya surat) dengan orang lain melalui internet, maka kita tentu ingin pesan yang kita kirim sampai ke pihak yang dituju dengan aman. Aman bisa juga berarti bahwa kita ingin pesan yang dikirim sampai dengan utuh ke tangan penerima, artinya isi pesan tidak diubah atau dimanipulasi selama pengiriman oleh pihak ketiga. Disisi penerima pesan, ia tentu ingin memastikan bahwa pesan yang ia terima adalah pesan yang masih asli, bukan pesan yang ditambah-tambah atau
1
dikurangi. Ini adalah masalah keamanan pesan yang disebut dengan integritas data (data integrity). Selain itu, penerima yakin bahwa pesan tersebut memang benar dari pengirim yang benar, bukan dari orang lain yang menyambar. Ini adalah masalah keamanan yang dinamakan otentikasi. Otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan dimodifikasi berarti sumber pesan sudah tidak benar, oleh karena itu penulis mengkombinasikan integritas data dengan layanan otentikasi sumber pesan. Untuk menjaga keotentikan suatu pesan diperlukan suatu identitas pengirim dalam hal ini adalah tandatangan. Sejak berabad-abad lamanya, tandatangan digunakan untuk membuktikan keotentikan dokumen kertas (misalnya surat, piagam, ijazah, karya seni, dan sebagainya). Fungsi tandatangan di sini diterapkan untuk otentikasi. Pada data digital seperti pesan yang dikirim melalui saluran komunikasi dan dokumen elektronis yang disimpan melalui memori komputer, tandatangan pada data digital ini dinamakan tandatangan digital (digital signature).[6] Dapat dibayangkan jika ada orang yang tidak bertanggun jawab mampu meniru tandatangan milik orang lain, tentu saja ada pihak yang dirugikan. oleh karenanya diperlukan suatu system keamanan yang baik, adapun teknik yang digunakan adalah kriptografi. Kriptografi adalah ilmu yang mempelajari teknik–teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiahan, integritas data, serta otentikasi. Kriptografi menggunakan berbagai macam
2
teknik dalam dalam upaya untuk mengamankan data. Tenik kriptografi yang berkaitan dengan tandatangan digital, adalah fungsi Hash. Fungsi Hash adalah fungsi publik (tidak dirahasiahkan) dan keamanannya terletak pada sifat satu arahnya itu. Salah satu Fungsi hash yang dapat digunakan untuk tandatangan digital adalah MD5. Fungsi hash MD5
menerima masukan berupa pesan yang berukuran sebarang dan
menghasilkan message digest yang panjangnya 128 bit. [6] Dengan panjang message digest 128 bit, maka secara brute force dibutuhkan percobaan sebanyak 2128 kali untuk menemukan dua buah pesan atau lebih yang mempunyai message digest yang sama. Pada awalnya penemu algoritma MD5 menganggap usaha tersebut hampir tidak mungkin dilakukan karena membutuhkan waktu yang sangat lama. Tetapi pada tahun 1996, Dobbertin melaporkan penemuan kolisi pada algoritma MD5 meskipun kecacatan ini bukan kelemahan yang fatal, pada tahun 2004, sebuah proyek yang bernama MD5CRK memperlihatkan bahwa MD5 tidak aman karena ditemukan kolisi dengan birthday attack. Pada tanggal 1 Maret 2005,
Arjen
Lenstra,
Xiaoyun
Wang
dan
Benne
deWeger
mendemonstrasikan pembentukan dua buah sertifikat X.509 dengan kunci publik yang berbeda tetapi mempunyai nilai hash yang sama, beberapa hari kemudian, Vlastimil Klima memperbaiki algoritma Lenstra yang dapat menghasilkan kolisi MD5 hanya dalam waktu beberapa jam dengan menggunakan computer [6].
3
Penemuan
kolisi pada MD5 mendorong para kriptografer
merekomendasikan fungsi hash yang baru, hingga saat ini fungsi hash untuk digital signature sudah mengalami banyak perkembangan dan melahirkan nama-nama algoritma selain MD5. Namun demikian penulis tetap memilih MD5 sebagai Algoritma hashing untuk digital signature, karena MD5 merupakan pelopor dari keluarga fungsi hash di masa kini maupun di masa mendatang. Hal inilah yang menjadi motivasi penulis memilih MD5 sebagai tema pada tugas akhir ini.
1.2
Perumusan Masalah Masalah yang akan dibahas pada penelitian ini adalah :
Bagaimana cara mengkonstruksi dan menganalisa algoritma MD5 secara umum
Bagaimana menganalisa proses Digital Signature untuk jenis file dokumen dan audio
Bagaimana mengimplementasikan kriptosistem algoritma MD5 ke dalam bentuk perangkat lunak (pemograman)
1.3 Pembatasan masalah Pada penelitian ini penulis tidak membahas kegunaan algoritma MD5 secara menyeluruh tetapi hanya terfokus pada tandatangan digital dengan input berupa dokumen dan audio (MP3). Untuk menterjemahkan algoritma
4
MD5 ke dalam perangkat lunak, penulis menggunakan bahasa pemrograman Java.
1.4
Tujuan Tujuan penulisan ini adalah sebagai berikut:
Mempelajari cara mengkonstruksi algoritma MD5 secara umum
Mengetahui perbandingan waktu proses hasing algoritma MD5 terhadap file jenis dokumen dan audio (MP3)
Mengimplementasikan kriptosistem algoritma MD5 ke dalam bentuk perangkat lunak (pemrograman).
5
BAB II LANDASAN TEORI
2.1 Kriptografi Kriptografi adalah ilmu dan seni yang mempelajari teknik–teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Pada mulanya kriptografi bertujuan untuk merahasiakan pesan. Kata „seni‟ pada definisi di atas, berasal dari fakta sejarah bahwa pada masa awal–awal sejarah kriptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan pesan. Cara– cara unik tersebut mungkin berbeda–beda pada setiap pelaku kriptografi sehingga setiap penulisan pesan rahasia mempunyai nilai estetika tersendiri. Sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan (kata “graphy” pada “cryptography” itu sendiri sudah menyiratkan sebuah seni). Berikut ini adalah penjelasan mengenai aspek keamanan yang disediakan oleh kriptografi tersebut: Kerahasiaan (confidentiality) Layanan yang digunakan untuk menjaga isi pesan dari siapa pun yang tidak berhak untuk membacanya. Di dalam kriptografi, layanan ini umumnya direalisasikan dengan cara menyandikan pesan menjadi bentuk yang tidak dapat dimengerti.
6
Integritas data (data integrity) Layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan: "Apakah pesan yang diterima masih asli atau tidak mengalami perubahan (modifikasi)?". Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain ke dalam pesan yang sebenarnya. Otentikasi (authentication) Layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan: "Apakah pesan yang diterima benarbenar berasal dari pengirim yang benar?". Otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan.
7
Nirpenyangkalan (non-repudiation) Layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. Nirpenyangkalan tampak dalam kalimat berikut: "Saya menyangkal telah mengirim pesan ini termasuk isinya".[6]
2.1.1 Konsep Tandatangan Digital Sejak
berabad-abad
lamanya,
tanda
tangan
digunakan
untuk
membuktikan otentikasi dokumen kertas (misalnya surat, piagam, ijazah, buku, karya seni, dan sebagainya). Tanda-tangan mempunyai karakteristik sebagai berikut
Tanda-tangan adalah bukti yang otentik.
Tanda tangan tidak dapat dilupakan.
Tanda-tangan tidak dapat dipindah untuk digunakan ulang.
Dokumen yang telah ditandatangani tidak dapat diubah.
Tanda-tangan tidak dapat disangkal (repudiation).
Fungsi tanda tangan pada dokumen kertas juga diterapkan untuk otentikasi pada data digital seperti pesan yang dikirim melalui saluran komunikasi dan dokumen elektronis yang disimpan di dalam memori komputer. Tanda tangan pada data digital ini dinamakan tanda-tangan digital (digital signature). Yang dimaksud dengan tanda-tangan digital bukanlah tanda tangan yang di digitisasi dengan alat scanner, tetapi suatu
8
nilai kriptografis yang bergantung pada pesan dan pengirim pesan (Hal ini kontras dengan tanda tangan pada dokumen kertas yang bergantung hanya pada pengirim dan selalu sama untuk semua dokumen). Dengan tandatangan digital, maka integritas data dapat dijamin, disamping itu ia juga digunakan untuk membuktikan asal pesan (keabsahan pengirim), dan nirpenyangkalan. Menandatangani pesan dapat dilakukan dengan salah satu dari dua cara:
Enkripsi pesan Mengenkripsi pesan dengan sendirinya juga menyediakan ukuran otentikasi. Pesan yang terenkripsi sudah menyatakan bahwa pesan tersebut telah ditandatangani.
Tanda tangan digital dengan fungsi hash (hash function) Tanda-tangan digital dibangkitkan dari hash terhadap pesan. Nilai hash adalah kode ringkas dari pesan. Tanda tangan digital berlaku seperti tanda-tangan pada dokumen kertas. Tanda-tangan digital ditambahkan (append) pada pesan.
2.1.2 Fungsi Hash Di dalam kriptografi terdapat sebuah fungsi yang sesuai untuk aplikasi keamanan seperti otentikasi dan integritas pesan. Fungsi tersebut adalah fungsi hash (kadang-kadang dinamakan juga fungsi hash kriptografi). Fungsi hash adalah fungsi yang menerima masukan string yang panjangnya sebarang dan mengkonversinya menjadi string keluaran yang
9
panjangnya tetap (fixed) (umumnya berukuran jauh lebih kecil daripada ukuran string semula). Fungsi hash dapat menerima masukan string apa saja. Jika string menyatakan pesan (message), maka sebarang pesan M berukuran bebas dikompresi oleh fungsi hash H melalui persamaan h H (M )
Keluaran fungsi hash disebut juga nilai hash (hash-value) atau pesanringkas (message digest). Pada persamaan di atas, h adalah nilai hash atau message digest dari fungsi H untuk masukan M. Dengan kata lain, fungsi hash mengkompresi sembarang pesan yang berukuran berapa saja menjadi message digest yang ukurannya selalu tetap (dan lebih pendek dari panjang pesan semula). Gambar 2.1 memperlihatkan contoh dua buah pesan dengan panjang yang berbeda-beda setelah di hash menghasilkan pesan ringkas yang panjangnya tetap (dalam contoh ini pesan ringkas dinyatakan dalam kode heksadesimal yang panjangnya 128 bit. Satu karakter heksadesimal = 4 bit). Nama lain fungsi hash adalah: fungsi kompresi/kontraksi
(compression
function),
cetak-jari
(fingerprint),
cryptographic checksum, message integrity check (MIC) dan manipulation detection code (MDC). masukan Halo
Nilai hash Fungsi hash
Nomor teleponku 08122113451
aa6df57fb6fe377d80b4a257b4a92cba Fungsi hash
09c88f0b91d74b292 e6f89587ab63921
Gambar 2.1 input dan output fungsi hash
10
Aplikasi fungsi hash antara lain untuk memverifikasi kesamaan salinan suatu arsip dengan arsip aslinya yang tersimpan di dalam sebuah basis data terpusat. Dari pada mengirim salinan arsip tersebut secara keseluruhan ke komputer pusat (yang membutuhkan waktu transmisi lama dan ongkos yang mahal), lebih efisien mengirimkan message digest-nya saja. Jika message digest salinan arsip sama dengan message digest arsip asli, berarti salinan arsip tersebut sama dengan arsip di dalam basis data.
2.1.3 Fungsi Hash Satu Arah Fungsi hash satu-arah (One-way Hash) adalah fungsi hash yang bekerja dalam satu arah: pesan yang sudah diubah menjadi message digest tidak dapat dikembalikan lagi menjadi pesan semula. Dua pesan yang berbeda akan selalu menghasilkan nilai hash yang berbeda pula. Sifat-sifat fungsi hash satu-arah adalah sebagai berikut [5]:
Fungsi H dapat diterapkan pada blok data berukuran berapa saja.
H menghasilkan nilai (h) dengan panjang tetap (fixed-length output). H(x) mudah dihitung untuk setiap nilai x yang diberikan. Untuk setiap h yang diberikan, tidak mungkin menemukan x sedemikian sehingga
H(x) = h. Itulah sebabnya fungsi H
dikatakan fungsi hash satu-arah (oneway hash function). Untuk setiap h yang diberikan, tidak mungkin mencari y ≠ x sedemikian sehingga
H ( x) H ( y ) .
11
Tidak mungkin (secara komputasi) mencari pasangan x dan y sedemikian sehingga H ( x) H ( y) Keenam sifat di atas penting sebab sebuah fungsi hash seharusnya berlaku seperti fungsi acak (randomize). Sebuah fungsi hash dianggap tidak aman jika secara komputasi dimungkinkan menemukan pesan yang bersesuaian dengan pesan ringkasnya, dan terjadi kolisi (collision), yaitu terdapat beberapa pesan berbeda yang mempunyai pesan ringkas yang sama. Fungsi hash bekerja secara iteratif. Masukan fungsi hash adalah blok pesan (M) dan keluaran dari hashing blok pesan sebelumnya,
h H (M i , hi1 ) Fungsi Hash adalah Publik (tidak dirahasiakan) dan keamanannya terletak pada sifat satu arahnya. Ada beberapa fungsi hash satu-arah yang sudah dibuat orang, antara lain: MD2, MD4 MD5, Secure Hash Function (SHA), RIPMEND,
WHIRPOOL, dan lain–lain. Fungsi Hash yang banyak
digunakan didalam kriptografi adalah MD5 dan SHA.
2.1.4 Fungsi Hash MD 5 Fungsi hash MD5 adalah fungsi hash satu-arah yang dibuat oleh Ronald Rivest pada tahun 1991. Fungsi hash MD5 merupakan perbaikan dari MD4 setelah MD4 berhasil diserang oleh kriptanalis. Algoritma MD5 menerima masukan berupa pesan dengan ukuran sembarang dan menghasilkan message digest yang panjangnya 128 bit. Langkah–langkah
12
pembuatan message digest MD5 secara garis besar adalah
mengolah
masukan yang berupa blok 512 bit, dibagi kedalam 16 sub blok berukuran 32-bit. Keluaran algoritma diset menjadi 4 blok yang masing–masing berukuran 32-bit, dan setelah digabungkan akan membentuk nilai Hash 128 bit.[1]
Gambar 2.2 Pengolahan Pesan dalam Blok 512
2.1.5 Penandatanganan dan Verifikasi Tanda-tangan Digital Dengan MD5 Penandatanganan
pesan
dengan
cara
mengenkripsinya
selalu
memberikan dua fungsi yang berbeda: kerahasiaan pesan dan otentikasi. Sistem
kriptografi
kunci-publik
sangat
cocok
untuk
pemberian
tandatangan digital dengan menggunakan fungsi hash. [6]
13
2.1.5.1 Pemberian Tanda-tangan Digital Langkah–langkah pemberian tandatangan digital
Pengirim pesan mula-mula menghitung message digest MD (dengan mentransformasikan pesan M dengan menggunakan fungsi hash MD5)
Message digest MD dienkripsi dengan algoritma kriptografi kuncipublik dan menggunakan kunci rahasia (SK) si pengirim. Hasil enkripsi inilah yang dinamakan dengan tanda-tangan digital S,
Tandatangan digital S dilekatkan ke pesan M (dengan cara menyambung/append ) S, lalu keduanya dikirim melalui saluran komunikasi. Dalam hal ini, kita katakan bahwa pesan M sudah ditandatangani oleh pengirim dengan tanda-tangan digital S.
2.1.5.2 Verifikasi Tandatangan Digital Langkah–langkah Verifikasi tandatangan digital
Tanda-tangan digital S didekripsi dengan menggunakan kunci publik (PK) pengirim pesan, menghasilkan message digest semula, dengan persamaan sebagai berikut: MD = DPK(S)
Penerima kemudian mengubah pesan M menjadi message digest MD menggunakan fungsi hash satu-arah yang sama dengan fungsi hash yang digunakan oleh pengirim.
14
Jika MD = MD’ berarti tanda-tangan yang diterima otentik dan berasal dari pengirim yang benar. penandatanganan dan pemverifikasian tanda-tangan digital yang menggunakan fungsi Hash MD5 ditunjukkan pada pada gambar berikut.
Gambar 2.3 Proses Penandatanganan dan Ferifikasi Pesan 2.2 Dasar–dasar Matematika Untuk MD 5 Peranan
matematika
sangat
penting
dalam
membangun
dan
mengembangkan algoritma kriptografi khususnya untuk algoritma kriptografi MD5. Berikut adalah beberapa teorema yang mendukung terhadap proses hashing pada algoritma MD5.
15
2.2.1 Fungsi Satu Arah Didalam kriptografi terdapat fungsi yang penting, yaitu fungsi satu arah (ona-way function) fungsi satu arah didefinisikan sebagai berikut. Fungsi f dari yang memetakan himpunan A ke himpunan B dikatakan fungsi satu-arah jika f(x) “mudah” dihitung untuk semua x A
tetapi
“sangat sukar” atau bahkan “hampir tidak mungkin secara komputasi” menemukan inversnya, yaitu menemukan x sedemikian sehingga f(x) = y untuk semua y anggota jelajah f. Contoh: Misalkan X = {1,2,3,4……………10} didefinisikan fungsi f pada X sedemikian sehingga f(x) = f ( x) 3 x mod 11 untuk semua x anggota X, jelas kita mudah menghitung f(1) = 3, f(2) = 9, f(3) = 5, f(4) = 4, f(5) = 1, f(6) = 3, f(7) = 9, f(8) = 5, f(9) = 4, f(10) = 1. tetapi, sangat sukar menemukan x sedemikian sehingga f(x)=4. Pekerjaan menemukan x semakin sukar lagi jika bilangan yang digunakan adalah bilangan yang besar.
2.2.2 Relasi Keterbagian Definisi 2.2.2 Diberikan suatu bilangan bulat a, b dengan a 0. Bilangan a dikatakan membagi habis bilangan b (a divides b) ditulis a | b, jika dan hanya jika ada bilangan bulat k sedemikian sehingga b = ka.[3]
16
Jika a | b dan k adalah bilangan bulat dengan b = ka maka k disebut hasil bagi (quotient) dari b oleh a. Dapat juga disebut bahwa k adalah faktor dari b yang menjadi komplemen dari a. Jadi a dan k merupakan komplementer dari b. Berikut beberapa sifat dari operasi pembagian, dengan asumsi bahwa a 0.
Algoritma Pembagian Teorema 2.2.2.a (Grimaldi,1999) Untuk semua a, b maka (| a b ) (| b a ) ] a b a) [ a |b ) ( b |c )] a |c b) [(
c) a| ba| bxuntuk setiap x a | b ) ( a | c )] a | ( bx cy ); x , y d) [(
Bukti: a). Karena a | b dan b | a maka ada bilangan bulat k dan m sedemikian sehingga b ka dan a mb . Jadi a m (k a ) (m k ). a Karena a 0 persamaan ini terpenuhi
hanya jika mk 1 . Untuk m dan k bilangan bulat, persamaan ini terpenuhi hanya jika mk 1. Jadi a b b).
Jika a | b dan b | c maka menurut definisi 2.2.1 ada bilangan bulat k dan m sedemikian sehingga b ka dan c mb . Oleh
17
( k a )a t a u c ( m k ) asedemikian karena b ka maka cm sehingga a | c c).
Jika a | b maka ada bilangan bulat k sedemikian sehingga b ka . Jika persamaan ini dikali dengan x maka
b x k a x a t a u b xk ( x ) a . J a d i a | b x .
d).
Jika a | b dan a | c maka b ka dan c ma untuk suatu k dan
m
bialngan
b xc y ( k a ) x ( m a ) y ak ( xmy).
bulat Kita
sehingga dapatkan
a| (bxcy).
Misalkan a dan b adalah dua buah bilangan bulat dengan b 0 , maka a dibagi oleh b kita mendapatkan hasil bagi
(quotient) dan sisa pembagian (remainder). Hal ini dinyatakan dalam teorema berikut ini yang dikenal dengan nama Algoritma Pembagian.
Teorema 2.2.2.b (Algoritma Pembagian) Jika a dan b suatu bilangan bulat dengan b > 0 , maka ada bilangan bulat q dan r
yang tunggal sedemikian sehingga
a bqr dengan 0 r b .
18
Bukti: Jika b | a maka a bq r dengan r = 0. Andaikan b tidak { a tbt | Z }, akan dibuktikan S membagi a. Untuk himpunan S
memuat bilangan bulat positif. Jika
a 0 dan
t 0 ditulis
a aob. Jadi a S dan dengan demikian S memuat bilangan
positif. Jika
a 0,
ambil
t a 1
maka kita dapatkan
a tb a (a 1 )ba(1b)b. Karena b 1 maka (1b) 0
sehingga a(1b) 0. Karena b 0 maka a tb 0 . Dalam hal ini kita dapatkan S memuat bilangan bulat positif . Sehingga merupakkan The Well Ordering Property (WOP), S memliki unsur positif terkecil andaikan itu r. Akan dibuktikan r b . (q 1 ) b b |a Jika r b maka a . Hal ini kontradiksi
dengan pernyataan bahwa b tidak membagi a. Jika
r b
maka
r b c untuk
cZ
dan
a qb r b c c a ( q 1 ) b S .
Hal ini kontradiksi dengan pernyataan bahwa r adalah element terkecil dari S, oleh karena itu r b . Untuk membuktikan ketunggalan q dan r, andaikan aq1br1, untuk 0 r1 b dan
aq2br2, untuk 0 r2 b . Maka
q b r q b r b q q r r b 1 1 2 2 1 2 2 1 ,
19
karena 0r1,r2 b. Hal ini terpenuhi hanya jika q1 q2 0 atau
qq k i t a d a p a t k a n r r . Jadi hasil bagi dan sisa adalah unik. 1 2 1 2
2.2.3 Aritmetika Modulo Aritmetika modulo (modular arithmetic) memainkan peranan yang penting dalam komputasi integer, khususnya pada aplikasi kriptografi. Operator yang digunakan pada aritmetika modulo adalah mod. Operator mod memberikan sisa pembagian. Misalnya 23 dibagi 5 memberikan hasil 4 dan sisa 3, sehingga kita tulis 23 mod 5 = 3. Definisi 2.2.3.1 Misalkan a adalah bilangan bulat dan m, q adalah bilangan bulat . Operasi a mod m ( dibaca a modulo m ) menghasilkan sisa pembagian a oleh m. Dengan kata lain a mod m = r Jika dan hanya jika a = mq + r, dengan 0 r m [10]. Definisi 2.2.3.2 (Kekongruenan) Misalkan a dan b adalah bilangan bulat dan m adalah bilangan bulat positif. Jika m membagi a – b, maka a dikatakan kongruen terhadap b
m ). Bilangan bulat m disebut sebagai modulo m ditulis ab(mod modulus dari kekongruenan .[2]
20
Sifat-sifat Dasar Kekongruenan Teorema 2.2.3.2.a Misalkan m adalah bilangan bulat positif. Ambil sebarang bilangan bulat a, b dan c. Maka (i)
aa(mod m )
(ii)
m )maka ba(mod m ) Jika ab(mod
(iii)
m ) dan bc(mod m )maka ac(mod m ) Jika ab(mod
Teorema 2.2.3.2.b Misalkan m adalah bilangan bulat positif.
m ) dan c adalah sembarang bilangan bulat maka 1. Jika ab(mod a c ) ( b c )(mod m ) (i) ( bc (mod m ) (ii) ac p p m ) untuk suatu bilangan bulat tak ngatif p. (iii) a b (mod
m )dan c d (mod m) , maka 2. Jika ab(mod a c ) ( b d )(mod m ) (i) ( bd (mod m ) (ii) ac
Teorema 2.2.3.2.c Modulus Keterbagian Misalkan a dan b adalah bilangan bulat. Ambil m dan d bilangan bulat m ), maka ab(mod d). positif dengan d|m. Jika ab(mod
Bukti: Diketahui d|m dan m|(a-b). Berdasarkan teorema 2.2.1.1.b maka diperoleh d|(a-b).
21
Teorema 2.2.3.2.d
a,m) 1 maka ada x tunggal dengan 0 x msedemikian Jika gcd( 1 (mod m ) sehingga ax
Teorema 2.2.3.2.e , ) 1 maka Jika m 1 , a, b, dan c bilangan bulat dengan c 0 , gcd(cm
a cb c(m o dm ) sehingga ab(m odm ). Bukti: Berdasarkan
teorem
asebelumnya
ada
x
sedemikian
sehingga
cx1(m odm ). Dengan demikian a cb c(m o dm )akan menghasilkan a c x b c x (m o d m )atau a 1b 1 (m odm ). Jadi ab(m odm )
2.3 Analisis Data Dalam pengambilan keputusan sebuah penelitian diperlukan data-data hasil penelitian yang kemudian dilanjutkan dengan sebuat analisa data dengan metode
tertentu. Dalam hal ini untuk pengujian data menggunakan Uji
Satu-Sampel
Kolmogorov-Smirnov sedangkan metode yang digunakan
untuk menganalisis data adlah Uji t (Independent Sample t Test)
2.3.1 Uji Satu-Sampel Kolmogorov-Smirnov Uji Satu-Sampel Kolmogorov-Smirnov mencakup per hitungan distribusi frekuensi kumulatif teoritis serta membandingkannya dengan distribusi frekuensi kumulatif hasil observasi. Distribusi teoritis tersebut merupakan representasi dari apa yang diharapkan[8] 22
Uji ini menentukan suatu titik dimana kedua distribusi itu yakni distribusi yang diharapkan dan distribusi hasil pengamatan memiliki perbedaan terbesar. Dengan melihat distribusi samplingnya, apakah perbedaan besar yang diamati mungkin terjadi apabila observasi-observasi itu benar-benar suatu sampel random dari distribusi teoritis. Misalkan F0 ( x) adalah suatu fungsi distribusi frekuensi kumulatif yang sepenuhnya ditentukan, yaitu distribusi kumulatif teoritis. Nilai dari
F0 ( x) adalah proporsi kasus yang diharapkan mempunyai nilai yang sama atau kurang dari pada x. Misalkan S N (x) adalah distribusi kumulatif yang diobservasi dari suatu sampel andom dengan N observasi. Di mana x adalah sembarang
k nilai, S N (x) = N , di mana k adalah banyaknya observasi, k ≤ x. Observasi-observasi yang dilakukan jarang sekali distribusi frekuensi pengamatan S N (x) sama dengan fungsi distribusi frekuensi yang diharapkan F0 ( x) walaupun pengujian hipotesanya benar. Uji ini membuat perbandingan antara frekuensi pengamatan S N (x) dengan frekuensi yang diharapkan F0 ( x) untuk berbagai nilai variabel random. Uji KolmogorovSmirnov memusatkan perhatian pada penyimpangan (deviasi) terbesar. Harga F0 ( x) – S N (x) terbesar dinamakan deviasi maksimum. Berikut adalah persamaan Kolmogorov-Smirnov :
D m a k s i m u m F ( x ) S ( x ) h i t u n g 0 N
23
Uji
satu
sampel
Kolmogorov-Smirnov
bisa
digunakan
untuk
menganalisa data yang jumlahnya sedikit. Lain halnya dengan uji χ2 (ChiSquare) hanya dapat digunakan untuk data yang berjumlah banyak. Selain itu, uji satu sampel Kolmogorov-Smirnov tidak perlu kehilangan informasi karena digabungkannya kategori-kategori seperti yang dilakukan pada uji χ2, bila sampelnya kecil dan disebabkan kategori-kategori yang berhampiran harus digabungkan sebelum χ2 dapat dihitung. Fakta ini menunjukkan bahwa uji Kolmogorov-Smirnov mungkin lebih besar kekuatannya dalam semua kasus jika dibandingkan dengan tes lainnya yaitu uji χ2.
2.3.2 Uji t (Independent Sample t Test) Uji t merupakan pengujian perbedaan rata-rata terhadap dua buah sampel yang independen, uji t dapat dilakukan dengan prosedur yang akan dijelaskan di bawah ini. Dalam uji t untuk membedakan dua buah mean (rata-rata), perlu dihitung standar error dari beda, di mana persamaannya adalah sebagai berikut :[7]
S SS S1 1 s 1 2 xx 1 2 nn nn 1 2 2 1 2 X Sumsquare didefinisikan: S S X n
2
2 i
i
di mana : SS1 = sumsquare dari sampel 1 SS2 = sumsquare dari sampel 2 n1 = besar sampel 1 24
n2 = besar sampel 2 sx1-x2
= standar error dari beda dimana Xi adalah pengamatan variabel ke-i.
Dalam menggunakan uji t, perlu diperhatikan hipotesa yang dirumuskan tentang kedua rata-rata yang akan dibandingkan. Ada tiga cara untuk merumuskan hipotesa, yaitu : 1. H0 : µ1 = µ2, dengan hipotesa alternatif H1 : µ1 ≠ µ2, keputusan : Jika |thitung| > ttabel , maka H0 ditolak, H1 tidak ditolak Jika |thitung| ≤ ttabel, maka H0 tidak ditolak, H1 ditolak 2. H0 : µ1 > µ2, dengan HA : µ1 ≤ µ 2, daerah keputusan : Jka |thitung| ≤ -ttabel, maka H0 ditolak, H1 tidak ditolak Jika |thitung| > -ttabel, maka H0 tidak ditolak, H1 ditolak 3. H0 : µ1 < µ2, dengan HA : µ1 ≥ µ2, daerah keputusan : Jika |thitung| ≥ ttabel, maka H0 ditolak, H1 tidak ditolak Jika |thitung| < ttabel, maka H0 tidak ditolak, H1 ditolak
Jenis hipotesis yang dirumuskan menentukan apakah uji-t menggunakan two-tailed (2 ekor) ataukah 1 ekor. Hipotesis yang sering digunakan adalah hipotesis pertama, di mana dinyatakan bahwa rata-rata dari populasi 1 sama dengan rata-rata populasi 2 (µ1=µ2), dengan hipotesis alternatif bahwa populasi 1 tidak sama dengan populasi 2 (µ1≠µ2). Prosedur uji-t adalah sebagai berikut1 :
25
a. Tentukan rumusan hipotesa tentang kedua rata-rata populasi b. Nyatakan besar masing-masing sampel yang independen tersebut, yaitu
n1, n2.
c. Hitung statistik thitung yang akan digunakan, yaitu : _
| thitung |
d.
_
x1x2 sx1x2
Tentukan level significance, yaitu α untuk mencari ttabel
e. Cari harga ttabel pada tabel dengan degree of freedom n1 + n2 – 2 f. Tentukan daerah penilikan hipotesis sesuai dengan rumusan hipotesa yang digunakan.
26
BAB III METODOLOGI PENELITIAN
3.1 Representasi Data Data yang digunakan pada penelitian ini berupa file jenis dokumen dan audio (suara). Dari masing-masing jenis file diambil secara acak tiga puluh (30)
kapasitas file yang berbeda. Sedangkan aplikasi yang digunakan
masing-masing file dapat dilihat pada tabel berikut:
3.2 Algoritma MD5 Dimisalkan kita memiliki pesan sepanjang “n”-bit, dan akan dicari message digestnya. Untuk menghitung message digest dari sebuah pesan, pada MD5 dilakukan langkah-langkah sebagai berikut
3.2.1 Penambahan bit–bit pengganjal (padding bits) Pertama
tama
pesan
diberi
tambahan
sedemikian
sehingga
panjangnya menjadi k bit, dimana k = 512n – 64 bit. n adalah jumlah blo masukan. Tambahan ini berupa bit tunggal „1‟ yang diletakan pada akhir
27
pesan, diikuti bit „0‟ sebanyak yang diperlukan hingga panjangnya menjadi k bit. 3.2.2 penambahan nilai panjang pesan semula pesan yang telah diberi bit–bit pengganjal selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula. Jika panjang pesan > 2^64 maka yang diambil adalah panjangnya dalam modulo 2^64.dengan kata lain, jika panjang pesan semula adalah K bit, maka 64 bit yang ditambahkan menyatakan K modulo 2^64. Setelah ditambah dengan 64 bi, panjang pesan sekarangmenjadi kelipatan 512 bit.[5]
3.2.3 inisialisasi penyangga (buffer) MD. MD5 membutuhkan 4 buah penyangga (buffer) yang masing–masing panjangnya 32 bit. Total panjang penyangga adalah 4x32 = 128 bit. Keempat penyangga ini diberi nama A,B,C, dan D. setiap penyangga diinisialisasi dengan nilai–nilai (dalam notasi HEX) sebagai berikut :
A = 01234567 B = 89ABCDEF C = FEDCBA98 D = 76543210
28
3.2.4 Pengolahan pesan dalam blok berukuran 512 bit. Pesan dibagi menjadi L blok yang masing–masing panjangnya 512 bit (Y0 sampai YL-1). Setiap blok 512-bit diproses bersama dengan penyangga MD menjadi keluaran 128-bit, dan ini disebut proses HMD5. Gambaran proses HMD5 diperlihatkan pada gambar….
Gambar 3.1Pengolahan pesan dalam Blok 512
29
3.2.5 Operasi Dasar MD5 Proses HMD5 terdiri dari 4 buah putaran, dan masing–masing putaran melakukan operasi dasar MD5 sebanyak 16 kali dan setiap operasi dasar memakai sebuah elemen T. Operasi dasar MD5 diperlihatkan pada Gambar berikut
Gambar 3.2 Operasi Dasar MD5 Operasi dasar MD5 yang diperlihatkan pada Gambar di atas dapat ditulis dengan sebuah persamaan sebagai berikut:
a b CLS s (a g (b, c, d ) X [k ] T [i]) yang dalam hal ini, a,b,c,d = empat buah penyangga 32-bit (berisi nilai penyangga A, B, C, D) g = salah satu fungsi F, G, H, I 30
CLSs = circular left shift sebanyak s bitt (notasi: <<<) X[k]
= kelompok 32-bit ke-k dari blok 512 message ke-q. nilai k = 0
sampai 15. T[i]
= elemen tabel T ke-i (32 bit)
+
= operasi penjumlahan modulo 2 32
Selanjutnya, setiap kali selesai satu operasi dasar, penyangga-penyangga tersebut digeser ke kanan secara sirkuler.
3.2.5.1 Fungsi dalam HMD5 fF, fG, fH, dan fI adalah fungsi untuk memanipulasi masukan a, b, c, dan d dengan ukuran 32-bit. Masing-masing dapat dilihat pada tabel berikut[9]. Tabel 3.2 Fungsi Manipulasi Nama
Notasi
G(b,c,d)
Putaran
fF
F(b,c,d)
(b c ) ( b d )
1
fG
G(b,c,d)
(b d ) (c d )
2
fH
H(b,c,d)
b c d
3
fI
I(b,c,d)
c(bd)
4
3.2.5.2 Menentukan Nilai T 32 (sin( i 1 )), Nilai T[i] diperoleh dengan fungsi T[i] = 2.abs dengan
i adalah sudut dalam radian[6]. Nilai T[i] dapat dilihat pada lampiran.
31
3.2.5.3 Menentukan nilai k Nilai k pada setiap operasi dasar dapat disajikan secara matematis dengan persamaan: k i
= untuk i 16
k (5 i 1 )mod 16 = untuk 16i 32 k (3 i 5 )mod 16 = untuk 32i 48 k7imod 16
= untuk 48i 64
3.2.5.4 Menentukan nilai s Sedangkan nilai s pada CLSs dapat ditemukan dengan menggunakan table berikut[4] Tabel 3.3 Nilai s pada circular left shift
Misalkan Notasi [abcd k s i] menyatakan operasi a b ((a g (b, c, d ) X [k ] T [i]) s
yang dalam hal ini <<<s melambangkan operasi circular left shift 32-bit, maka
operasi dasar pada masing-masing putaran dapat ditabulasikan
sebagai berikut:
32
3.3 Teknik Pengolahan dan Analisa Data Umumnya dalam proses eksekusi algoritma memerlukan waktu tempuh mulai dari awal proses hingga algoritma itu berhenti. Mengenai seberapa besar waktu yang dibutuhkan tergantung pada sistem konstruksi algoritma, bahasa pemrograman yang digunakan, spesifikasi computer yang dipakai hingga seberapa besar kapasitas inputan. Dalam hal ini yang akan dianalisis adalah dengan adanya perbedaan jenis file apakah ada pengaruhnya terhadap kecepatan eksekusi suatu algoritna yang dalam hal ini adalah fungsi hash MD5. Dengan cara menginput dua kelompok jenis file, dapat diperoleh data untuk dianalisa.
3.3.1 Uji Distribusi Data kecepatan yang telah diperoleh, selanjutnya diperlakukan pengujian distribusi pengujian ini dilakukan terhadap setiap data kecepatan pada seluruh percobaan. Tujuan dari perlakuan ini adalah adalah menguji kesesuaian distribusi dari rata-rata kecepatan inputan file jenis dokumen dan rata-rata kecepatan file jenis audio (MP3) antara hasil pengamatan (observasi) dengan distribusi yang diharapkan. Untuk menguji kecocokan atau goodness of fit dari suatu distribusi empirik terhadap distribusi teoritik seperti distribusi Normal, distribusi Poisson dan lain-lain, dapat diuji dengan Kolmogorov-Smirnov.
33
Hipotesis untuk uji Kolmogorov-Smirnov : H0
: F0(x) = SN(x), distribusi yang diharapkan sesuai dengan distribusi hasil pengamatan.
H1
: F0(x) ≠ SN(x) atau distribusi yang diharapkan tidak sesuai dengan distribusi hasil pengamatan.
Daerah penilikan hipotesa dengan nilai α = 0,05 adalah sebagai berikut : Jika Dhitung > Dtabel, maka H0 ditolak Jika Dhitung < Dtabel, maka H0 tidak ditolak Adapun kaitannya dengan penulisan skripsi ini, pengujian data untuk menentukan kesesuaian distribusi populasi dengan uji KolmogorovSmirnov diolah dengan software SPSS. Output yang dihasilkan dari pengolahan SPSS, dilakukan pengujian dengan pengambilan keputusan berdasarkan nilai probabilitas (Asymp.Sig.(2-tailed)) di mana nilai α = 0,05 : Jika probabilitas > 0,05 , maka H0 tidak ditolak Jika probabilitas < 0,05 , maka H0 ditolak[8]
3.3.2 Uji Homogenitas Setelah pengujian distribusi, data selanjutnya diperlakukan pengujian Homogenitas dengan melakukan uji t dari dua sampel independen. Pengujian ini dilakukan terhadap setiap waktu dari keseluruhan data kecepatan untuk mencari nilai rata-rata berbeda dari setiap jumlah total
34
dua kecepatan yang independen tersebut. Adapun kaitannya dengan penulisan skripsi ini, pengolahan data dengan uji
t dilakukan
menggunakan software SPSS. Output yang dihasilkan dari pengolahan SPSS, dilakukan pengujian untuk menentukan kecepatan rata-rata dengan ketentuan-ketentuan sebagai berikut. Hipotesa untuk menentukan kecepatan rata-rata : H0 : Kedua rata-rata populasi adalah sama H1 : Kedua rata-rata populasi adalah berbeda Pengambilan keputusan didasarkan atas dua metode:
Berdasarkan perbandingan nilai thitung dengan ttabel di mana µ1= µ2 Jika |thitung| > ttabel, maka H0 ditolak dan H1 tidak ditolak Jika |thitung| < ttabel, maka H0 tidak ditolak dan H1 ditolak
Berdasarkan nilai probabilitas dengan α = 0,05: Jika probabilitas > 0,05 , maka H0 tidak ditolak Jika probabilitas < 0,05 , maka H0 ditolak
Penentuan dimulainya waktu sibuk, dilihat ketika nilai thitung selalu lebih kecil dari ttabel atau nilai probabilitasnya (sig(2-tailed)) selalu lebih besar dari nilai α (0,05) sampai pada titik konsisten, yaitu rata-rata antara dua sampel independen yang diuji selalu sama.[8]
35
BAB IV PENGUJIAN DAN ANALISIS
4.1 Data Hasil Penelitian Data yang diperlukan untuk pembahasan telah dikumpulkan dengan melakukan percobaan hashing file jenis dokumen dan file jenis audio (MP3) pada seperangkat Komputer dengan spesifikasi sebagai berikut: 1. Prosesor Intel 2,9 GHz 2. Ram 1 GB 3. Hardisk 160 GB 4. Monitor 15 inci Sistem operasi yang menjadi lingkungan pengembangan perangkat lunak ini adalah Microsoft Windows XP Home Editor. Bahasa yang digunakan dalam implementasi perangkat lunak adalah bahasa pemrograman Php dan Java, sedangkan kompilator yang digunakan adalah Mozilla Firefox 3.6 Beta 5. Pengukuran kecepatan aplikasi merupakan sebuah analisa yang akan dipakai untuk mengukur tingkat kecepatan
proses mencari nilai hash suatu file
dengan menggunakan aplikasi MD5. Dalam analisa kecepatan ini, dilakukan sebanyak 5 (lima) kali pengambilan waktu terbaik yang diperlukan untuk hashing setiap file-nya . Data hasing file dapat dilihat pada table berikut:
36
Tabel 4.1 Data Kecepatan Masing-masing File
NO
Size (kb)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
235 482 937 1126 1337 1554 1767 1900 2231 2328 2444 2628 2832 2912 3040 3600 4008 4672 4906 5008 5690 5940 6238 6658 7464 7999 8643 9147 10498 12372
Waktu Hashing File (detik) Percobaan Percobaan Percobaan Percobaan I II III IV MP MP MP MP Doc Doc Doc Doc 3 3 3 3 5 5 4 4 5 5 6 5 7 7 7 7 6 6 8 6 11 10 10 9 10 11 10 10 11 11 11 11 11 12 10 11 13 13 13 12 12 13 13 13 15 15 13 14 14 14 15 15 15 15 16 15 15 15 16 16 16 17 16 16 15 16 16 16 18 18 18 18 19 18 18 19 19 18 20 19 18 2 20 19 20 20 20 19 19 19 20 20 21 19 20 19 21 22 24 20 22 21 22 21 22 23 23 23 23 21 23 21 23 23 23 23 23 21 23 23 23 24 25 24 27 26 26 26 27 28 27 27 30 29 29 30 31 30 31 31 34 33 33 34 34 34 34 35 36 35 35 37 36 36 35 35 37 38 35 37 38 40 38 37 40 41 39 39 41 42 40 41 42 42 40 41 43 42 41 43 44 43 43 42 43 43 43 44 46 46 44 46 49 46 45 47 52 51 54 54 52 52 52 53 54 57 56 54 56 59 55 56 59 62 58 58 59 60 59 59 62 62 61 62 63 62 63 66 72 70 72 70 76 70 69 72 81 84 81 84 84 82 82 83
Percobaan V MP Doc 3 4 5 7 6 10 9 11 10 13 11 14 14 16 15 16 16 19 17 19 19 19 19 19 19 21 20 21 21 24 24 26 26 30 29 35 34 35 36 37 35 43 36 42 44 44 43 46 46 52 51 58 54 60 59 65 63 70 70 83 83
37
4.2 Pengolahan Data Langkah pertama yang dilakukan dalam pengujian adalah uji distribusi 4.2.1 Uji Distribusi Output hasil pengujian distribusi dengan bantuan software SPSS dapat dilihat pada table berikut. Tabel 4.2 Output Uji Distribusi
No
1 2 3 4 5 6 7 8 9 10
Uji Distribusi Percobaan Doc Percobaan MP3 Percobaan Doc Percobaan MP3 Percobaan Doc Percobaan MP3 Percobaan Doc Percobaan MP3 Percobaan Doc Percobaan MP3
1 1 2 2 3 3 4 4 5 5
Normal Parame ter Mean
N
Asymp. Sig. (2- Hasil Pengujian tailed)
31.83
30
0.34
H0 Tidak ditolak
31.67
30
0.18
H0 Tidak ditolak
31.4
30
0
H0 ditolak
31.4
30
0.4
H0 Tidak ditolak
32.17
30
0.35
H0 Tidak ditolak
31.63
30
0.57
H0 Tidak ditolak
32.03
30
0.6
H0 Tidak ditolak
32.3
30
0.44
H0 Tidak ditolak
31.97
30
0.35
H0 Tidak ditolak
31.13
30
0.44
H0 Tidak ditolak
Untuk memperoleh kesimpulan apakah distribusi dari proses hashing yang diharapkan sesuai dengan distribusi hasil pengamatan, maka dilakukan uji hipotesis terhadap output hasil pengolahan SPSS yang ditampilkan pada Tabel di atas
38
Hipotesis untuk uji Kolmogorov-Smirnov : H0: F0(x) = SN(x), populasi kecepatan berdistribusi Normal. H1: F0(x) ≠ SN(x) atau distribusi kecepatan tidak berdistribusi Normal. Pengambilan keputusan berdasarkan nilai probabilitas (Asymp.Sig.(2tailed)) dengan nilai α = 0,05 : Jika probabilitas > 0,05 , maka H0 tidak ditolak Jika probabilitas < 0,05 , maka H0 ditolak Untuk memperoleh hasil hipotesa, pengujian dilakukan pada nilai probabilitas yang diperoleh dari masing-masing percobaan. Pada percobaan 1 file jenis dokumen nilai probabilitas yang didapatkan adalah 0,34 dan hasil ini ada di atas 0,05 (0,34 > 0,05). Maka H0 untuk percobaan 1 file jenis dokumen tidak ditolak, dengan kata lain ada kesesuaian antara distribusi yang diharapkan dengan distribusi pengamatan sehingga distribusi kecepatannya adalah distribusi Normal. Begitu juga untuk percobaan 1 file jenis audio, nilai probabilitas yang didapat adalah 0,18 dan lebih besar dari 0,05 menghasilkan putusan bahwa H0 tidak ditolak atau kecepatannya berdistribusi Normal. Hal yang sama dilakukan terhadap percabaanpercobaan selanjutnya yaitu percobaan 2 sampai yang terakhir percobaan 10 untuk
masing-masing
jenis
file
dengan
membandingkan
nilai
probabilitasnya terhadap nilai α(0,05) sesuai dengan ketentuan dari uji probabilitas yang telah disebutkan sebelumnya. Secara keseluruhan, dari 10 percobaan Kolmogorov-Smirnov yang dilakukan terhadap data kecepatan, perhatikan Tabel diatas pada kolom hasil
39
pengujian terlihat ada 1 pengujian yaitu uji 2 file jenis dokumen dengan nilai probabilitas 0,00 (0,00 < 0,05) yang menghasilkan hipotesa H0 ditolak (yang dicetak hitam) atau distribusi yang diharapkan tidak sesuai dengan distribusi hasil pengamatan. Untuk ke 9 uji yang lainnya menghasilkan hipotesa distribusi yang diharapkan sesuai dengan distribusi hasil pengamatan (H0 tidak ditolak) Dengan perbandingan 9 uji menghasilkan H0 tidak ditolak (90%) dan 1 uji menghasilkan H0 ditolak (10,%), maka dapat disimpulkan dengan mayoritasnya hipotesa yang menyatakan adanya kesesuaian antara distribusi harapan dengan distribusi pengamatan, maka distribusi kecepatan proses hashing untuk file jenis dokumen dan file jenis audio (MP3) berdistribusi Normal.
4.2.2 Uji Variansi Analisis menggunakan F test adalah untuk menguji apakah ada kesamaan varians file jenis dokumen dan audio (mp3) Tabel 4.3 Output Uji Variansi Uji Uji Variansi
|fhitung| Sig.
Hasil Pengujian
1
Percobaan 1
0.029
0.87
H0 Tidak ditolak
2
Percobaan 2
0.026
0.871
H0 Tidak ditolak
3
Percobaan 3
0
0.983
H0 Tidak ditolak
4
Percobaan 4
0.072
0.79
H0 Tidak ditolak
5
Percobaan 5
0.014
0.905
H0 Tidak ditolak
40
Hipotesis H0 : Kedua varians populasi adalah identik (varians populasi kecepatan file jenis dokumen dan audio (mp3) adalah sama). H1 : Kedua varians populasi adalah tidak identik (varians populasi kecepatan file jenis dokumen dan suara (mp3) adalah berbeda). Pengambilan keputusan
Jika probabilitas > 0,05, H0 diterima
Jika probabilitas < 0,05, H0 ditolak
Keputusan: Dari table hasil uji variansi diatas terlihat bahwa F hitung untuk kecepatan dengan Equal variance assumed (diasumsi kedua varians sama atau menggunakan pooled variance t test ) pada percobaan 1 adalah 0,029 dengan probabilitas 0,87. Oleh karena probabilitas > 0,05 (0,87 > 0,05), maka H0 diterima, atau kedua varians sama. Hal yang sama juga berlaku pada percobaan 2 dimana F hitung pada percobaan tersebut adalah 0,026 dengan probabilitas 0,871 > 0,05 hal ini menyebabkan H0 diterima. Dari table diatas jika kita amati nilai probabilitas dari semua percobaan akan mengarah untuk tidak menolak H0, dengan kata lain dapat disimpulkan bahwa kedua varians sama.
41
4.2.3 Uji t (Independent Sample T-Test)
Tabel 4.4 Output Independent Sample T-Test Sig (2Uji |thitung|
df
ttabel
Hasil Pengujian tailed)
1
0.032
58
2.048
0.974
H0 Tidak ditolak
2
0
58
2.048
1
H0 Tidak ditolak
3
0.1
58
2.048
0.921
H0 Tidak ditolak
4
-0.052
58
2.048
0.959
H0 Tidak ditolak
5
0.159
58
2.048
0.875
H0 Tidak ditolak
Output yang telah didapat setelah diolah dengan menggunakan SPSS, dilakukan pengujian hipotesa untuk menentukan rata-rata waktu dengan melihat ada tidaknya perbedaan rata-rata dari dua Jenis file independen yang diuji sampai pada titik konsisten di mana nilai dari |thitung| selalu lebih kecil dari ttabel atau nilai probabilitasnya (sig(2-tailed)) selalu lebih besar dari nilai α (0,05). Hipotesa untuk menentukan rata-rata waktu waktu : H0 : Kedua rata-rata populasi antar kapasitas adalah sama H1 : Kedua rata-rata populasi antar kapasitas adalah berbeda
42
Pengambilan keputusan didasarkan atas dua metode: 1. Berdasarkan nilai probabilitas dengan α = 0,05 : Jika probabilitas > 0,05 , maka H0 tidak ditolak Jika probabilitas < 0,05 , maka H0 ditolak 2. Berdasarkan perbandingan nilai thitung dengan ttabel di mana µ1=µ2 Jika |thitung| > ttabel, maka H0 ditolak dan H1 tidak ditolak Jika |thitung| < ttabel, maka H0 diterima dan H1 ditolak Pengujian menggunakan probabilitas di mana nilai α = 0,05, pada Tabel diatas terlihat bahwa nilai probabilitas lebih besar dari α (0,05) pada uji ke1 yaitu 0,974, artinya nilai rata-rata dari dua file yang diuji (file jenis dokumen dan file jenis audio) memiliki rata-rata yang sama (H0 tidak ditolak). Pengujian ke-2 sampai ke-5 dengan masing-masing nilai probabilitas 1, 0,921, 0,959 dan 0,875 > 0,05 artinya nilai rata-rata dari dua file yang diuji (file jenis dokumen dan file jenis audio) memiliki rata-rata yang sama (H0 tidak ditolak). Selanjutnya, pembuktian dengan uji t dapat diketahui dengan membandingkan nilai |thitung| dengan nilai ttabel. Pada output didapatkan nilai degree of fredom (df) = 58 dan α = 0,05, dengan melihat tabel uji t, didapatkan nilai ttabel = 2,048. Analisa ini juga bisa dilihat pada Tabel diatas bahwa mulai uji ke-2 sampai uji ke-5, nilai |thitung|
< ttabel, hal ini
menunjukkan nilai rata-rata dari kedua file yang di uji mempunyai rata-rata yang sama. Untuk thitung yang bernilai negatif, ketentuan yang digunakan adalah µ1 = µ2, di mana penentuan titik batas dari kurva distribusi normal
43
diambil dari dua titik, yaitu titik negatif dan titik positif. Dengan demikian nilai thitung yang bernilai negatif dimutlakkan menjadi positif ketika akan di uji atau dibandingkan dengan nilai ttabel. Data keseluruhan hasil pengamatan yang telah di uji dengan Independent Samplet t-Test, didapatkan kesimpulan rata-rata waktu tempuh dari kedua file yang di uji selama proses hashing mempunyai rata-rata yang sama.
44
BAB V KESIMPULAN DAN SARAN
5.1
Kesimpulan Berdasarkan simulasi yang telah dilakukan terhadap data hasil percobaan dengan menggunakan fungsi hash MD5 dan analisa data (Uji Distribusi, Uji Varians, dan Uji t), berkaitan dengan tujuan dari penulisan skripsi ini diperoleh informasi sebagai berikut : 1. Digital signature menggunakan fungsi hash MD5 (Message digest MD5) adalah sebuah fungsi hash satu arah yang mengubah masukan dengan panjang variabel menjadi keluaran dengan panjang tetap yaitu 128 bit. 2. Sumberdaya komputer dan kapasitas file berpengaruh terhadap waktu tempuh program aplikasi MD5 dalam pemprosesan suatu imputan menjadi digital signature khususnya dalam hal ini file jenis dokumen dan file jenis audio. 3. Distribusi waktu tempuh hashing file jenis dokumen dan file jenis audio (MP3) berdistirbusi normal. 4. Waktu tempuh hashing untuk file jenis dokumen dan audio mempunyai varians yang sama. 5. Dalam pemprosesan digital signature menggunakan fungsi hash MD5 untuk file jenis dokumen dan audio memiliki rata-rata waktu tempuh yang sama.
45
5.2
Saran Dari hasil pengamatan dan pembahasan yang dilakukan, terdapat beberapa
saran
yang
bisa
dipertimbangkan
dalam
upaya
untuk
mengoptimalkan digital signature, yaitu : 1. Digital signature mengguakan fungsi hash MD5 memungkinkan terjadinya kolisi, dengan adanya perkembangan kontruksi algoritma fungsi hash seperti SHA-0 SHA-1 SHA-224 SHA-256 SHA-384 dan SHA-512. Pengguna digital signature dapat menggunakan fungsi hash selain MD5 untuk menandatangani dokumen elektronis. 2. Untuk mempersingkat waktu tempuh pemprosesan digital signature pengguna dapat menggunakan spesifikasi komputer yang lebih mutakhir atau menggunakan lebih dari satu computer. Penulis memiliki saran yang mungkin dapat dipertimbangkan oleh pembaca yang berminat dalam penelitian yang berkaitan dengan MD5, yaitu pengaruh buffer terhadap message digest MD5.
46