IMPLEMENTASI TANDA TANGAN DIGITAL DENGAN MENGGUNAKAN ALGORITMA RSA PADA APLIKASI WORLD WIDE WEB SKRIPSI oleh Nurkomariyah 1100029210 PROGRAM GANDA TEKNIK INFORMATIKA DAN MATEMATIKA BINUS UNIVERSITY JAKARTA 2012
IMPLEMENTASI TANDA TANGAN DIGITAL DENGAN MENGGUNAKAN ALGORITMA RSA PADA APLIKASI WORLD WIDE WEB SKRIPSI Diajukan sebagai salah satu syarat untuk gelar kesarjanaan pada Program Ganda Jenjang Pendidikan Sastra 1 Oleh Nurkomariyah 1100029210 PROGRAM GANDA TEKNIK INFORMATIKA DAN MATEMATIKA BINUS UNIVERSITY JAKARTA 2012 ii
IMPLEMENTASI TANDA TANGAN DIGITAL DENGAN MENGGUNAKAN ALGORITMA RSA PADA APLIKASI WORLD WIDE WEB SKRIPSI Diajukan sebagai salah satu syarat untuk gelar keserjanaan pada Program Ganda Jenjang Pendidikan Sastra 1 Oleh Nurkomariyah 1100029210 disetujui oleh Pembimbing Rojali, S.Si., M.Si D2297 Dr. Widodo Budiharto, S.Si., M.Kom. D2637 PROGRAM GANDA TEKNIK INFORMATIKA DAN MATEMATIKA BINUS UNIVERSITY JAKARTA 2012 iii
PERNYATAAN Dengan ini saya, Nama : Nurkomariyah NIM : 1100029210 Judul skripsi : IMPLEMENTASI TANDA TANGAN DIGITAL DENGAN MENGGUNAKAN ALGORITMA RSA PADA APLIKASI WORD WIDE WEB Memberikan kepada Universitas Bina Nusantara hak non-eksklusif untuk menyimpan, memperbanyak, dan menyebarluaskan skripsi karya saya, secara keseluruhan atau hanya sebagian atau hanya ringkasannya saja, dalam bentuk format tercetak dan atau elektronik. Menyatakan bahwa saya, akan mempertahankan hak non - ekslusif saya, untuk menggunakan seluruh atau sebagian isi skripsi saya, guna pengembangan karya di masa depan, misalnya bentuk artikel, buku, perangkat lunak, ataupun sistem informasi. Jakarta, 6 Februari 2012 Nurkomariyah iv
KATA PENGANTAR Segala puji dan syukur Kehadirat Allah SWT yang telah memberikan begitu banyak nikmat kepada seluruh makhluk-nya, sehingga penulis dapat menyelesaikan penyusunan skripsi yang berjudul IMPLEMENTASI TANDA TANGAN DIGITAL DENGAN MENGGUNAKAN ALGORITMA RSA PADA APLIKASI WORLD WIDE WEB dengan sebaik mungkin. Adapun maksud dan tujuan penilaian skripsi ini yaitu sebagai salah satu persyaratan dalam menyelesaikan program strata satu (S1) Mathematics & Statistics Department BINUS University, Jakarta. Dalam menyusun skripsi ini, penulis menyadari bahwa tanpa bimbingan dan dorongan dari semua pihak, maka penulisan skripsi ini tidak akan berjalan lancar. Oleh karena itu pada kesempatan ini, penulis ingin menyampaikan terima kasih kepada pihak-pihak yang telah membantu dalam penyelesaian skripsi ini, antara lain: 1. Bapak Prof. Dr. Ir. Harjanto Prabowo, MM. selaku Rektor BINUS University. 2. Bapak Fredy Purnomo, S.Kom., M.Kom., selaku Head of School of Computer Science dan Head of Computer Science Department BINUS University. 3. Bapak Alexander Agung Santoso Gunawan, S.Si., M.T., selaku Head of Mathematics & Statistics Department BINUS University. 4. Bapak Rojali, S.Si, M.Si., selaku Dosen Pembimbing yang telah meluangkan banyak waktu, tenaga dan pikiran untuk memberikan bimbingan, serta saran kepada penulis selama proses penyusunan skripsi ini. 5. Bapak Dr.Widodo Budiharto, S.Si.,M.Kom. selaku dosen pembimbing skripsi ini yang telah meluangkan banyak waktu, tenaga dan pikiran untuk memberikan bimbingan, serta saran kepada penulis selama proses penyusunan skripsi ini. 6. Seluruh dosen BINUS University yang telah memberikan bimbingan dan tuntunan selama penulis menjadi mahasiswa di BINUS University. 7. Segenap dosen Mathematics & Statistics Department BINUS University yang telah memberikan bimbingan dan ilmunya kepada penulis selama belajar di Binus University. 8. Mama dan Papa yang tidak henti hentinya selalu berdo a dan berusaha untuk memberikan semangat kepada penulis baik secara moril maupun materil. 9. Uni Della, Yuli dan Henny yang selalu memberikan semangat,dukungan dan selalu menemani penulis selama proses penyusunan skripsi ini berlangsung. 10. Diah Tri Gustiani selaku adik penulis yang sama sama sedang menyusun Tugas Akhir, serta senantiasa menemani, memberikan semangat dan menemani penulis dalam menyusun skripsi. 11. Keluarga tercinta yang selalu memberikan semangat, doa, dan bantuan kepada penulis baik secara moril maupun materil. 12. Deny Yovianto yang telah memberikan motivasi awal sehingga penulis optimis dalam memulai pengerjaan skripsi. 13. Maha Andar Pasaribu yang telah meluangkan banyak waktu dalam membantu penulis menyusun skripsi ini. 14. Christina, Hendrik, Axel, Fetty, Christian, Rico, Kevin, Pretty, Janice, Rudini, Eka dan Vino, sahabat - sahabat yang telah memberi masukan, vii
dukungan, perhatian, do a serta setia menemani penulis selama proses penyusunan skripsi ini berlangsung. 15. Rekan-rekan di jurusan ganda Teknik Informatika Matematika angkatan 2007 atas dukungan dan bantuan yang diberikan kepada penulis. 16. Pihak-pihak lain yang banyak memberikan bantuan baik secara langsung maupun tidak langsung yang namanya tidak mungkin penulis sebutkan satu persatu. Dalam penyusunan skripsi ini, penulis menyadari bahwa penyusunan skripsi ini masih jauh dari sempurna, oleh karena itu kritik dan saran yang membangun sangat penulis harapkan. Akhirnya penulis berharap agar skripsi ini dapat berguna bagi kepentingan berbagai pihak dan bermanfaat serta menambah pengetahuan bagi rekan-rekan pembaca sekalian. Jakarta, Februari 2012 Nurkomariyah viii
DAFTAR ISI Halaman Abstrak Prakata Daftar Isi Daftar Tabel Daftar Gambar Daftar Lampiran vi vii ix xii xiii xv BAB 1 PENDAHULUAN 1.1 Latar Belakang 1 1.2 Identifikasi Masalah 3 1.3 Ruang Lingkup 3 1.4 Tujuan dan Manfaat 4 1.4.1 Tujuan 4 1.4.2 Manfaat 4 1.5 Metodologi 5 1.6 Sistematika Penulisan 6 BAB 2 LANDASAN TEORI 2.1 Pengantar Kriptografi 8 2.1.1 Definisi dan Terminologi 8 2.1.2 Tujuan Kriptografi 10 2.1.3 Sejarah Kriptografi 11 2.1.4 Kriptografi Kunci Simetri dan Asimetri 13 2.2 Kriptografi Kunci Publik 15 2.2.1 Konsep Kriptografi Kunci Publik 15 2.2.2 Sejarah Kriptografi Kunci Publik 16 2.3 Teori Bilangan 17 2.3.1 Pembagi Bersama Terbesar 17 2.3.2 Relatif Prima 17 2.3.3 Aritmatika Modulo 17 2.3.4 Kekongkruenan 17 ix
2.3.5 Fungsi Totient Euler 18 2.4 Metode RSA 18 2.4.1 Perumusan Algoritma RSA 19 2.4.2 Algoritma Membangkitkan Pasangan Kunci 21 2.4.3 Algoritma Enkripsi/ Dekripsi 22 2.5 Fungsi Hash 22 2.5.1 Sifat sifat Fungsi Hash 23 2.5.2 Secure Hash Algorithm (SHA) 24 2.5.2.1 Cara Kerja SHA 25 2.6 Tanda Tangan Digital 25 2.6.1 Konsep Tanda Tangan Digital 25 2.6.2 Tanda Tangan Digital dengan menggunakan RSA 27 2.7 World Wide Web (WWW) 28 2.7.1 Hypertext Transfer Protocol (HTTP) 28 2.7.2 Aplikasi Web 30 2.7.2.1 Webmail 30 2.7.3 Web Client (Browser) 31 2.7.4 Web Server 31 2.7.5 Situs Web / Homepage 31 2.7.6 Web Service 31 2.7.7 Web Hosting 32 2.8 Pengenalan Java 32 2.8.1 Sekilas Java di Web 33 2.8.2 Komponen Web 34 2.8.3 Keunggulan Java 34 BAB 3 ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Kebutuhan User 36 3.1.1 Dekripsi Umum Sistem 36 3.1.2 Analisis Metode RSA 38 3.1.3 Analisis Pembentukan Message Digest 39 3.1.4 Analisis Pembentukan Pasangan Kunci 39 3.1.5 Analisis Pembentukan Signature 41 3.1.6 Analisis Penggabungan Pesan dan Signature 41 x
3.1.7 Analisis Proses Otentikasi 42 3.2 Analisis Kebutuhan Sistem 44 3.3 Analisis Program Aplikasi 44 3.4 Perancangan Program 44 3.4.1 Struktur Menu 44 3.4.2 Usecase Diagram 47 3.4.3 State Transition Diagram (STD) 47 3.4.4 Perancangan Layar 51 3.4.4.1 Layar Halaman Awal 52 3.4.4.2 Layar Halaman Registrasi 53 3.4.4.3 Layar Halaman Kriptografi 55 3.4.4.4 Layar Halaman Digital Signature 56 3.4.4.5 Layar Halaman Bantuan 59 BAB 4 PENGUJIAN DAN EVALUASI PROGRAM 4.1 Perangkat Keras dan Piranti Lunak yang Dibutuhkan 60 4.1.1 Spesifikasi Kebutuhan Perangkat Keras 60 4.1.2 Spesifikasi Kebutuhan Piranti Lunak 60 4.1.3 Kebutuhan Sumber Daya Manusia 61 4.2 Petunjuk Penggunaan Program pada Pengguna 61 4.3 Pengujian Program Aplikasi 67 BAB 5 KESIMPULAN DAN SARAN 5.1 Kesimpulan 86 5.2 Saran 87 DAFTAR PUSTAKA 88 RIWAYAT HIDUP 90 LAMPIRAN L1 xi
DAFTAR TABEL Halaman Tabel 4.1 Tabel Pembangkitan Kunci File A.doc 71 Tabel 4.2 Tabel Hasil Evaluasi Pengujian File A.doc 72 Tabel 4.3 Tabel Pembangkitan Kunci File B.doc 72 Tabel 4.4 Tabel Hasil Evaluasi Pengujian File B.doc 73 Tabel 4.5 Tabel Pembangkitan Kunci File C.doc 73 Tabel 4.6 Tabel Hasil Evaluasi Pengujian File C.doc 74 Tabel 4.7 Tabel Pembangkitan Kunci file D.txt 74 Tabel 4.8 Tabel Hasil Evaluasi Pengujian file D.txt 75 Tabel 4.9 Tabel Pembangkitan Kunci file E.txt 75 Tabel 4.10 Tabel Hasil Evaluasi Pengujian file E.txt 75 Tabel 4.11 Tabel Pembangkitan Kunci file F.txt 76 Tabel 4.12 Tabel Hasil Evaluasi Pengujian file F.txt 76 Tabel 4.13 Tabel Pembangkitan Kunci file G.txt 77 Tabel 4.14 Tabel Hasil Evaluasi Pengujian file G.txt 77 Tabel 4.15 Tabel Pembangkitan Kunci File H.doc 78 Tabel 4.16 Tabel Hasil Evaluasi Pengujian File H.doc 78 Tabel 4.17 Tabel Pembangkitan Kunci File I.doc 79 Tabel 4.18 Tabel Hasil Evaluasi Pengujian File I.doc 79 Tabel 4.19 Tabel Pembangkitan Kunci File J.txt 80 Tabel 4.20 Tabel Hasil Evaluasi Pengujian file J.txt 80 Tabel 4.21 Tabel Pembangkitan Kunci File K.doc 81 Tabel 4.22 Tabel Hasil Evaluasi Pengujian File K.doc 81 Tabel 4.23 Tabel Pembangkitan Kunci File L.doc 82 Tabel 4.24 Tabel Hasil Evaluasi Pengujian File L.doc 82 Tabel 4.25 Tabel Pembangkitan Kunci File M.doc 83 Tabel 4.26 Tabel Hasil Evaluasi Pengujian File M.doc 83 Tabel 4.27 Tabel Pembangkitan Kunci File N.doc 84 Tabel 4.28 Tabel Hasil Evaluasi Pengujian File N.doc 84 Tabel 4.29 Tabel Pembangkitan Kunci File O.doc 85 Tabel 4.30 Tabel Hasil Evaluasi Pengujian File O.doc 85 xii
DAFTAR GAMBAR Gambar 2.1 Gambaran Umum Sistem RSA Digital Signature 9 Gambar 2.2 Skema proses enkripsi dan dekripsi kriptografi simetri 14 Gambar 2.3 Skema kriptografi Asimetri 15 Gambar 2.4 Skema Fungsi Hash satu arah 23 Gambar 2.5 Proses Penandatanganan dan Verifikasi 26 Gambar 2.6 Ilustrasi Client Server 28 Gambar 2.7 Ilustrasi Client Server via HTTP 29 Gambar 2.8 J2EE Server dan container 34 Gambar 3.1 Gambaran Umum Sistem 36 Gambar 3.2 Flowchart Proses Tanda Tangan Digital 38 Gambar 3.3 Flowchart Pembentukan Message Digest 39 Gambar 3.4 Flowchart Pembentukan Kunci 40 Gambar 3.5 Flowchart Pembentukan Digital Signature 41 Gambar 3.6 Flowchart Penggabungan Pesan dan Digital Signature 42 Gambar 3.7 Flowchart Proses Otentikasi 43 Gambar 3.8 Rancangan Struktur Menu Utama sebelum user Login 45 Gambar 3.9 Rancangan Struktur Menu Utama setelah user Login 45 Gambar 3.10 Rancangan Struktur Menu Profil 45 Gambar 3.11 Rancangan Struktur Menu Digital Signature 46 Gambar 3.12 Rancangan Struktur Menu Bantuan 46 Gambar 3.13 Usecase Diagram 47 Gambar 3.14 STD Menu Utama 48 Gambar 3.15 STD Menu Login 49 Gambar 3.16 STD Menu Registrasi 49 Gambar 3.17 STD Menu Profil 49 Gambar 3.18 STD Menu Kriptografi 50 Gambar 3.19 STD Menu Digital Signature 50 Gambar 3.20 STD Menu Bantuan 50 Gambar 3.21 Rancangan Layar Halaman Login 52 Gambar 3.22 Rancangan Layar Halaman Awal Ketika user sudah Login 53 Gambar 3.23 Rancangan Layar Halaman Menu Registrasi 54 Gambar 3.24 Rancangan Layar Halaman Menu Kriptografi 55 xiii
Gambar 3.25 Rancangan Layar Menu Message Digest 56 Gambar 3.26 Rancangan Layar Menu Enkripsi 57 Gambar 3.27 Rancangan Layar Menu Kirim File 58 Gambar 3.28 Rancangan Layar Menu Dekripsi 58 Gambar 3.29 Rancangan Layar Halaman Bantuan 59 Gambar 4.1 Halaman Utama sebelum user Login 61 Gambar 4.2 Halaman Utama ketika user sudah Login 62 Gambar 4.3 Halaman Menu Tentang Aplikasi 62 Gambar 4.4 Halaman Menu Kriptografi 63 Gambar 4.5 Halaman Awal Layar Menu Digital Signature 64 Gambar 4.6 Halaman Layar Menu Enkripsi 64 Gambar 4.7 Halaman Layar Menu Dekripsi 65 Gamber 4.8 Halaman Layar Menu Cek File 66 Gambar 4.9 Halaman Layar Menu Kirim File 66 Gambar 4.10 Halaman Layar Menu Cara Penggunaan 67 Gambar 4.11 Tampilan ketika Menu Message Digest dijalankan 68 Gambar 4.12 Tampilan ketika tombol proses ditekan 68 Gambar 4.13 Tampilan ketika user menjalankan Menu Enkripsi 69 Gambar 4.14 Tampilan ketika tombol Enkripsi ditekan 69 Gambar 4.15 Tampilan ketika user menjalankan Menu Dekripsi 70 Gambar 4.16 Tampilan ketika tombol Proses ditekan 70 Gambar 4.17 Tampilan ketika penerima menjalankan Menu Cek File 71 xiv
DAFTAR LAMPIRAN Halaman Lampiran 1 Daftar Isi File L1 1.1 File A.doc L1 1.2 File B.doc L2 1.3 File C.doc L2 1.4 File D.txt L4 1.5 File E.txt L5 1.6 File F.txt L5 1.7 File G.txt L5 1.8 File H.doc L7 1.9 File I.doc L9 1.10 File J.txt L10 1.11 File K.doc L14 1.12 File L.doc L16 1.13 File M.doc L17 1.14 File N.doc L18 1.15 File O.doc L19 1.16 File Tampung A.doc L20 1.17 File Tampung B.doc L21 1.18 File Tampung C.doc L21 1.19 File Tampung D.doc L21 1.20 File Tampung E.doc L21 Lampiran 2 Listing Program 2.1 Web.xml L22 2.2 Index.jsp L23 2.3 Logout.jsp L25 2.4 404.jsp L25 2.5 Bantuan.jsp L25 2.6 Deskripsi.jsp L26 2.7 Edit.jsp L28 2.8 Enkripsi.jsp L29 2.9 Kriptografi.jsp L31 xv
2.10 Lihat.jsp L33 2.11 Login.jsp L35 2.12 MessageDigest.jsp L36 2.13 Penggunaan.jsp L36 2.14 Register.jsp L37 2.15 Send.jsp L38 2.16 Cek.jsp L40 2.17 Tampil.jsp L41 2.18 Cek.java L43 2.19 Dekripsi.java L46 2.20 Edit.java L48 2.21 Enkripsi.java L50 2.22 Kriptografi.java L54 2.23 Login.java L56 2.24 MDigest.java L58 2.25 Register.java L62 2.26 Remove.java L64 2.27 Send.java L65 xvi
xvii