analisis pemprosesan digital signature · pdf fileuji satu-sampel kolmogorov-smirnov ......
TRANSCRIPT
i
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
ii
iii
iv
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 Yudi Mahatma, M.Si
NIP. 19740623 199312 1 001 NIP. 19761020 200812 1 001
Mengetahui,
Dekan Fakultas Sains dan Teknologi Ketua Prodi Matematika
Dr. Syopiansyah Jaya Putra, M.Sis Yanne Irene, M.Si
NIP. 150 317 956 NIP. 19741231 200501 2 018
v
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 Yanti, M.Si
NIP…………….. NIP……………..
Mengetahui,
Dekan Fakultas Sains dan Teknologi
Dr. Syopiansyah Jaya Putra, M.Sis
NIP. 150 317 956
vi
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-
BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN
SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI
ATAU LEMBAGA MANAPUN.
Jakarta, April 2010
Dindin Alawi
103094029730
vii
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.
viii
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 sebesar-
besarnya 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.
ix
3. Ibu Yanne Irene M.si sebagai Ketua Prodi Matematika dan dosen
pembimbing I Bapak Hermawan Setiawan S.Si, MTI, MM yang bersama-
sama 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.
x
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, Q-
think, 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
xi
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
xii
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.1.5.1. Pemberian Tandatangan Digital ................ 14
2.1.5.2. Verifikasi Tandatangan Digital ................. 14
2.2. 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
2.3. 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 ..........................................
xiii
3.2.5.2. Menentukan Nilai T ................................... 31
3.2.5.3. Menentukan Nilai k .................................... 32
3.2.5.4. Menentukan Nilai s .................................... 32
3.3. Teknik Pengolahan dan Analisa Data ................................. 33
3.3.1. Uji Distribusi ............................................................. 33
3.3.2. Uji Homogenitas ...................................................... 34
BAB IV. PENGUJIAN DAN ANALISIS ..................................................... 36
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
xiv
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
xv
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
xvi
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
1
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
2
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
3
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 1282 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].
4
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
5
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).
6
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.
7
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 benar-
benar 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.
8
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
9
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 tanda-
tangan 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
10
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
)(MHh
Keluaran fungsi hash disebut juga nilai hash (hash-value) atau pesan-
ringkas (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 Nilai hash
Gambar 2.1 input dan output fungsi hash
aa6df57fb6fe377d80b4a257b4a92cba Halo Fungsi hash
Nomor teleponku
08122113451
Fungsi hash 09c88f0b91d74b292
e6f89587ab63921
11
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 )()( yHxH .
12
Tidak mungkin (secara komputasi) mencari pasangan x dan y
sedemikian sehingga )()( yHxH
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,
),( 1 ii hMHh
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
13
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]
14
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 kunci-
publik 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.
15
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.
16
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 xA 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) = 11mod3)( xxf 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]
17
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
0a .
Algoritma Pembagian
Teorema 2.2.2.a (Grimaldi,1999)
Untuk semua ba, maka
a) [(|)(|)] ab ba a b
b) cacbba |)]|()|[(
c) bxaba || untuk setiap x
d) yxcybxacaba ,);(|)]|()|[(
Bukti:
a). Karena |a b dan |b a maka ada bilangan bulat k dan m
sedemikian sehingga kab dan a mb . Jadi
( ) ( ).amka mka Karena 0a persamaan ini terpenuhi
hanya jika 1mk . Untuk m dan k bilangan bulat, persamaan
ini terpenuhi hanya jika 1m k . Jadi ba
b). Jika ba | dan cb | maka menurut definisi 2.2.1 ada bilangan
bulat k dan m sedemikian sehingga kab dan mbc . Oleh
18
karena kab maka () atau ( )cmka cmka sedemikian
sehingga ca |
c). Jika ba | maka ada bilangan bulat k sedemikian sehingga
kab . Jika persamaan ini dikali dengan x maka
atau (). Jadi |bxkax bxkxa abx .
d). Jika ba | dan ca | maka kab dan mac untuk suatu k
dan m bialngan bulat sehingga
( ) ( )bxcy kaxmay ( )akx my . Kita dapatkan
)(| cybxa .
Misalkan a dan b adalah dua buah bilangan bulat dengan
0b , 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
rbqa dengan br 0 .
19
Bukti:
Jika ab | maka a bq r dengan r = 0. Andaikan b tidak
membagi a. Untuk himpunan { | }S atbt Z , akan dibuktikan S
memuat bilangan bulat positif. Jika 0a dan 0t ditulis
.a a ob Jadi Sa dan dengan demikian S memuat bilangan
positif. Jika ,0a ambil 1 at maka kita dapatkan
( 1)atba a b (1 )a b b . Karena 1b maka (1 ) 0b
sehingga (1 ) 0a b . Karena 0b maka 0a tb . 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 .
Jika br maka abbqa |)1( . Hal ini kontradiksi
dengan pernyataan bahwa b tidak membagi a.
Jika br maka cbr untuk Zc dan
Sbqaccbrqba )1( .
Hal ini kontradiksi dengan pernyataan bahwa r adalah element
terkecil dari S, oleh karena itu br . Untuk membuktikan
ketunggalan q dan r, andaikan ,11 rbqa untuk br 10 dan
,22 rbqa untuk br 20 .
Maka
brrqqbrbqrbq 12212211 ,
20
karena brr 21,0 . Hal ini terpenuhi hanya jika 1 2 0q q atau
1 2 1 2 kita dapatkan qq rr . Jadi hasil bagi dan sisa adalah unik.
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 mr0 [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
modulo m ditulis )(modmba . Bilangan bulat m disebut sebagai
modulus dari kekongruenan .[2]
21
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) )(modmaa
(ii) Jika )(modmba maka )(modmab
(iii) Jika )(modmba dan )(modmcb maka )(modmca
Teorema 2.2.3.2.b
Misalkan m adalah bilangan bulat positif.
1. Jika )(modmba dan c adalah sembarang bilangan bulat maka
(i) ))(mod()( mcbca
(ii) )(modmbcac
(iii) )(modmba pp untuk suatu bilangan bulat tak ngatif p.
2. Jika )(modmba dan )(mod mdc , maka
(i) ))(mod()( mdbca
(ii) )(modmbdac
Teorema 2.2.3.2.c Modulus Keterbagian
Misalkan a dan b adalah bilangan bulat. Ambil m dan d bilangan bulat
positif dengan d|m. Jika )(modmba , maka )(moddba .
Bukti:
Diketahui d|m dan m|(a-b). Berdasarkan teorema 2.2.1.1.b maka diperoleh
d|(a-b).
22
Teorema 2.2.3.2.d
Jika 1),gcd( ma maka ada x tunggal dengan mx0 sedemikian
sehingga )(mod1 max
Teorema 2.2.3.2.e
Jika 1m , a, b, dan c bilangan bulat dengan 0c , gcd( , ) 1 cm maka
(mod ) ac bc m sehingga (mod )a b m .
Bukti:
Berdasarkan teorem asebelumnya ada x sedemikian sehingga
1(mod )cx m . Dengan demikian (mod )ac bc m akan menghasilkan
(mod)acx bcx m atau 1 1(mod )a b m . Jadi (mod )a b m
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]
23
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 )(0 xF adalah suatu fungsi distribusi frekuensi kumulatif yang
sepenuhnya ditentukan, yaitu distribusi kumulatif teoritis. Nilai dari
)(0 xF adalah proporsi kasus yang diharapkan mempunyai nilai yang sama
atau kurang dari pada x.
Misalkan )(xSN adalah distribusi kumulatif yang diobservasi dari
suatu sampel andom dengan N observasi. Di mana x adalah sembarang
nilai, )(xSN =k
N , di mana k adalah banyaknya observasi, k ≤ x.
Observasi-observasi yang dilakukan jarang sekali distribusi frekuensi
pengamatan )(xSN sama dengan fungsi distribusi frekuensi yang
diharapkan )(0 xF walaupun pengujian hipotesanya benar. Uji ini membuat
perbandingan antara frekuensi pengamatan )(xSN dengan frekuensi yang
diharapkan )(0 xF untuk berbagai nilai variabel random. Uji Kolmogorov-
Smirnov memusatkan perhatian pada penyimpangan (deviasi) terbesar.
Harga )(0 xF – )(xSN terbesar dinamakan deviasi maksimum. Berikut
adalah persamaan Kolmogorov-Smirnov :
0() ()hitung NDmaksimumFxSx
24
Uji satu sampel Kolmogorov-Smirnov bisa digunakan untuk
menganalisa data yang jumlahnya sedikit. Lain halnya dengan uji χ2 (Chi-
Square) 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]
12
1 2
1 2 1 2
11
2xx
SSSSs
nn nn
Sumsquare didefinisikan:
2
2 i
i
XSS X
n
di mana : SS1 = sumsquare dari sampel 1
SS2 = sumsquare dari sampel 2
n1 = besar sampel 1
25
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 :
26
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 :
1 2
_ _
1 2
| |
hitung
x x
x x
ts
d. 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.
27
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
28
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
29
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
30
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:
])[][),,(( iTkXdcbgaCLSba s
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
31
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 322
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) )()( dbcb 1
fG G(b,c,d) )()( dcdb 2
fH H(b,c,d) dcb 3
fI I(b,c,d) )( dbc 4
3.2.5.2 Menentukan Nilai T
Nilai T[i] diperoleh dengan fungsi T[i] = )),1(sin(.232 iabs dengan
i adalah sudut dalam radian[6]. Nilai T[i] dapat dilihat pada lampiran.
32
3.2.5.3 Menentukan nilai k
Nilai k pada setiap operasi dasar dapat disajikan secara matematis
dengan persamaan:
ik = untuk 16i
16mod)15( ik = untuk 3216 i
16mod)53( ik = untuk 4832 i
16mod7ik = untuk 6448 i
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
siTkXdcbgaba ])[][),,(((
yang dalam hal ini <<<s melambangkan operasi circular left shift 32-bit,
maka operasi dasar pada masing-masing putaran dapat ditabulasikan
sebagai berikut:
33
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.
34
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 Kolmogorov-
Smirnov 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
35
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]
36
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:
37
Tabel 4.1 Data Kecepatan Masing-masing File
NO Size
(kb)
Waktu Hashing File (detik)
Percobaan
I
Percobaan
II
Percobaan
III
Percobaan
IV
Percobaan
V
Doc MP
3 Doc
MP
3 Doc
MP
3 Doc
MP
3 Doc
MP
3
1 235 5 5 4 4 5 5 6 5 4 5
2 482 7 7 7 7 6 6 8 6 7 6
3 937 11 10 10 9 10 11 10 10 10 9
4 1126 11 11 11 11 11 12 10 11 11 10
5 1337 13 13 13 12 12 13 13 13 13 11
6 1554 15 15 13 14 14 14 15 15 14 14
7 1767 15 15 16 15 15 15 16 16 16 15
8 1900 16 17 16 16 15 16 16 16 16 16
9 2231 18 18 18 18 19 18 18 19 19 17
10 2328 19 18 20 19 18 2 20 19 19 19
11 2444 20 20 20 19 19 19 20 20 19 19
12 2628 21 19 20 19 21 22 24 20 19 19
13 2832 22 21 22 21 22 23 23 23 21 20
14 2912 23 21 23 21 23 23 23 23 21 21
15 3040 23 21 23 23 23 24 25 24 24 24
16 3600 27 26 26 26 27 28 27 27 26 26
17 4008 30 29 29 30 31 30 31 31 30 29
18 4672 34 33 33 34 34 34 34 35 35 34
19 4906 36 35 35 37 36 36 35 35 35 36
20 5008 37 38 35 37 38 40 38 37 37 35
21 5690 40 41 39 39 41 42 40 41 43 36
22 5940 42 42 40 41 43 42 41 43 42 44
23 6238 44 43 43 42 43 43 43 44 44 43
24 6658 46 46 44 46 49 46 45 47 46 46
25 7464 52 51 54 54 52 52 52 53 52 51
26 7999 54 57 56 54 56 59 55 56 58 54
27 8643 59 62 58 58 59 60 59 59 60 59
28 9147 62 62 61 62 63 62 63 66 65 63
29 10498 72 70 72 70 76 70 69 72 70 70
30 12372 81 84 81 84 84 82 82 83 83 83
38
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 Uji Distribusi
Normal
N
Asymp.
Sig. (2-
tailed)
Hasil Pengujian Parame
ter
Mean
1 Percobaan 1
Doc 31.83 30 0.34 H0 Tidak ditolak
2 Percobaan 1
MP3 31.67 30 0.18 H0 Tidak ditolak
3 Percobaan 2
Doc 31.4 30 0 H0 ditolak
4 Percobaan 2
MP3 31.4 30 0.4 H0 Tidak ditolak
5 Percobaan 3
Doc 32.17 30 0.35 H0 Tidak ditolak
6 Percobaan 3
MP3 31.63 30 0.57 H0 Tidak ditolak
7 Percobaan 4
Doc 32.03 30 0.6 H0 Tidak ditolak
8 Percobaan 4
MP3 32.3 30 0.44 H0 Tidak ditolak
9 Percobaan 5
Doc 31.97 30 0.35 H0 Tidak ditolak
10 Percobaan 5
MP3 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
39
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.(2-
tailed)) 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 percabaan-
percobaan 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
40
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
41
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.
42
4.2.3 Uji t (Independent Sample T-Test)
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
Tabel 4.4 Output Independent Sample T-Test
Uji |thitung| df ttabel
Sig (2-
tailed)
Hasil Pengujian
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
43
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 ke-
1 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
44
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.
45
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.
46
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.