IMPLEMENTASI DIGITAL SIGNATURE DENGAN ALGORITMA RSA DAN LEHMANN PRIME GENERATOR PADA PESAN TEKS SKRIPSI MIRNAWATI 081401005 DEPARTEMEN ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2013
PERSETUJUAN Judul : IMPLEMENTASI DIGITAL SIGNATURE DENGAN ALGORITMA RSA DAN LEHMANN PRIME GENERATOR PADA PESAN TEKS Kategori : SKRIPSI Nama : MIRNAWATI Nomor Induk Mahasiswa : 081401005 Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen Fakultas Komisi Pembimbing : : ILMU KOMPUTER : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI (FASILKOMTI) UNIVERSITAS SUMATERA UTARA Diluluskan di Medan, April 2013 Pembimbing II, Pembimbing I, Muhammad Andri B,ST,MCompSC,MEM Dr. Marhaposan Situmorang NIP: 197510082008011011 NIP: 195510301980031003 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
PERNYATAAN IMPLEMENTASI TANDA TANGAN DIGITAL DENGAN ALGORITMA RSA DAN LEHMANN PRIME GENERATOR PADA PESAN TEKS DRAFT SKRIPSI Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya. Medan, April 2013 MIRNAWATI 081401005
PENGHARGAAN Alhamdulillah. Puji dan syukur penulis ucapkan kepada Allah SWT atas limpahan rahmat dan karunia-nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi. Kemudian Shalawat dan salam penulis ucapkan kepada Rasulullah Muhammad SAW. Pada pengerjaan skripsi dengan judul Implementasi Digital Signature dengan Algoritma RSA dan Lehmann Prime Generator, penulis menyadari bahwa banyak campur tangan pihak yang turut membantu dan memotivasi dalam pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada: 1. Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. 2. Bapak Dr. Poltak Sihombing, M.Kom dosen penguji sekaligus Ketua Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi. 3. Bapak Bapak Dr. Marhaposan Situmorang dan Muhammad Andri Budiman, ST, MCompSC, MEM selaku dosen pembimbing yang telah memberikan arahan dan motivasi kepada penulis dalam pengerjaan skripsi ini. 4. Bapak Amer Sharif, S.Si, M.Kom sebagai dosen penguji yang telah memberikan saran dan kritik kepada penulis dalam penyempurnaan skripsi ini. 5. Sekretaris Program Studi Ilmu Komputer Ibu Maya Silvi Lydia, B.Sc, M.Sc, dan semua dosen pada Program Studi S1 Ilmu Komputer FASILKOMTI USU dan semua pegawai di Program Studi S1 Ilmu Komputer USU. 6. Ayahanda Drs. Mahdi dan Ibunda Nurhayati yang telah memberikan do a, dukungan, perhatian serta kasih sayang yang tulus serta pengorbanan yang tidak ternilai harganya. 7. Kakak penulis, Nana, yang selalu memberikan dorongan kepada penulis untuk menyelesaikan skripsi ini, dan kepada ira, juman, dan apis yang selalu memberi semangat kepada penulis, serta kepada seluruh keluarga besar penulis. 8. Kepada Adhhal Huda Bakri S.Kom yang tidak henti-hentinya memberikan dukungan, semangat, dan perhatian kepada penulis. 9. Teman-teman seperjuangan mahasiswa S1-Ilmu Komputer stambuk 2008 secara khusus kepada Anny Maghfirah, Ratnaningtyas Yoga Wijayanti S.Kom, Sadifa
Asrofa S.Kom, Heny Muliana S.Kom, Surya, Royhan, yang telah memberikan motivasi dan perhatiannya. 10. Teman-teman Genfou, khususnya kepada Hazroel Yafis, Nurul Husna, Rendio Marandy, dan Rahmat Fahlefi. 11. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini. Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan, oleh karena itu penulis menerima saran dan kritik yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya. Medan, April 2013 Mirnawati
ABSTRAK Teknologi informasi yang semakin berkembang memudahkan pertukaran dokumen yang berupa pesan teks dari satu orang ke orang yang lain. Pesan teks yang dikirim melalui jaringan internet membutuhkan pengamanan isi dari pesan tersebut. Salah satunya dengan membubuhkan bukti otentikasi sekaligus penyandian pesan tanpa diketahui oleh pihak lain. Digital Signature atau tanda tangan digital pada kriptografi adalah proses penandatanganan yang berfungsi sebagai otentikasi sebuah pesan yang tergantung pada nilai pesan tersebut. Pada tanda tangan digital, pesan akan dienkripsi menggunakan kunci privat dan didekripsi menggunakan kunci publik. Proses pencarian kunci privat dan kunci publik menggunakan algoritma RSA dimana untuk membangkitkan kunci ini membutuhkan dua bilangan prima p dan q. Pencarian bilangan prima menggunakan algoritma Lehmann. Proses pencarian bilangan prima dengan mencari nilai dari a (p-1)/2 mod p = 1 atau -1, dengan 1< a< p. Pada tulisan ini, sistem dibangun dengan menggunakan bahasa pemograman Java dengan editornya Netbeans 6.8. Pesan yang telah ditandatangani dengan kunci privat dan diverifikasi dengan kunci publik yang benar akan mengembalikan nilai pesan asli. Apabila nilai kunci privat dan kunci publik tidak kongruen, maka pesan yang didekripsi tidak bermakna. Kata Kunci : Lehmann, RSA, Kriptografi, Digital Signature, Pembangkit Bilangan Prima, Kunci Publik, Kunci Privat, Penandatanganan.
IMPLEMENTATION OF DIGITAL SIGNATURE WITH RSA ALGORYTHM AND LEHMANN PRIME GENERATOR IN MESSAGE TEXT ABSTRACT The development of Information Technology facilitates the exchange of documents in text messages from one person to another. Text messages which are sent through the internet need security. One way to ensure security is by using proof of authentication and encoding of messages without knowledge of other party. Digital Signature in cryptography is a signing process that serves as a message authentication depends on the value of the message. In a digital signature, the message is encrypted using the private key and decrypted using the public key. The process of finding the key uses RSA algorithm, where key generation requires two primes p and q. The primesare determined with Lehmann algorithm. The process of determining the prime numbers is by evaluating the value of a (p-1)/ 2 mod p = 1 or -1,with 1< a< p. In this research, the system is built using Java programming language with Netbeans 6.8. The Message is signed using private key and then it will be verified using public key which will result in the original message. If the values of private key and public key are not congruent, the decrypted message will be meaningless. Key Words : Lehmann, RSA, Cryptography, Digital Signature, Prime Generator, Public Key, Private Key, Signing.
DAFTAR ISI Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar ii iii iv vi vii viii x xi Bab 1 Bab 2 Pendahuluan 1.1 Latar Belakang 1 1.2 Perumusan Masalah 2 1.3 Batasan Masalah 2 1.4 Tujuan Penelitian 3 1.5 Manfaat Penelitian 3 1.6 Metode Penelitian 3 1.7 Sistematika Penulisan 4 Tinjauan Pustaka 2.1 Kriptografi 6 2.2 Digital Signature 7 2.3 Lehmann Prime Generator 10 2.4 Algoritma RSA 12 2.4.1 Algoritma Euclidean 15 2.4.2 Totient Euler ɸ 18 2.4.3 Modulo Eksponensial 19 2.5 Use Case Diagram 20 Bab 3 Analisis Dan Perancangan Sistem 3.1 Analisis 22 3.1.1 Analisis Algoritma Lehmann Prime Generator dan Kunci 22 3.1.2 Analisis Digital Signature dengan Algoritma RSA 25 3.2 Kelebihan Algoritma Lehmann dan RSA 29 3.2.1 Algoritma Lehmann Prime Generator 29 3.2.2 Kelebihan Algoritma RSA 29 3.3 Flowchart 30 3.3.1 Flowchart Sistem 30 3.3.2 Flowchart Proses Pembangkitan Bilangan Prima dengan Menggunakan Algoritma Lehmann 31 3.3.3 Flowchart Prosespembangkitan kunci 32 3.3.4 Flowchart Proses Enkripsi Pesan sekaligus
pembubuhan tanda tangan 33 3.3.5 Flowchart Proses Dekripsi Pesan Sekaligus Pengecekan Tanda Tangan Digital 34 3.4 Use Case Diagram 35 3.5 Perancangan Interface 36 3.5.1 Tampilan Halaman Login 37 3.5.2 Tampilan Halaman Utama 38 3.5.3 Tampilan Bangkitkan Kunci 39 3.5.4 Tampilan Penandatanganan 40 3.5.5 Tampilan Verifikasi 42 3.5.6 Tampilan About 43 Bab 4 Bab 5 Implementasi Dan Pengujian Sistem 4.1 Implementasi 44 4.2 Tampilan aplikasi 44 4.2.1 Tampilan Login 44 4.2.2 Tampilan Menu Utama 45 4.2.3 Tampilan Bangkit Kunci 46 4.2.4 Tampilan Penandatanganan 48 4.2.5 Tampilan Verifikasi 50 4.2.6 Tampilan About 52 4.3 Tabulasi Hasil Uji 53 4.4 Big Theta 55 Kesimpulan Dan Saran 5.1 Kesimpulan 59 5.2 Saran 60 Daftar Pustaka 61 LAMPIRAN A: Listing Program A-1 LAMPIRAN B : Tabel ASCII B-1
DAFTAR TABEL Halaman 3.1 Nilai Perpangkatan Modulo Eksponensial 23 3.2 Proses penandatanganan dokumen 28 3.3 Requirement, actor, dan use case pada penandatanganan pesan digital 35 4.1 Penandatanganan Pesan 53 4.2 Kunci Privat dan Kunci Publik Tidak cocok 54 4.3 Pseudocode dan Kompleksitas Waktu Menghitung Jumlah Digit 55 4.4 Pseudocode dan Kompleksitas Waktu Membangkitkan Bilangan Prima dengan Algoritma Lehmann 56 4.5 Pseudocode dan Kompleksitas Waktu Kunci Privat 56 4.6 Pseudocode dan Kompleksitas Mencari GCD 57 4.7 Pseudocode dan Kompleksitas Waktu Kunci Publik 57 4.8 Pseudocode dan Kompleksitas Waktu Enkripsi Pesan 57 4.9 Pseudocode dan Kompleksitas Waktu Dekripsi Pesan 58
DAFTAR GAMBAR Halaman 2.1 Proses Enkripsi dan Dekripsi Tanda Tangan Digital 8 2.2 Diagram Pengiriman dan Penerimaan Pesan 10 2.3 Pemodelan Use Case 20 2.4 Use Case Inclusion 21 2.5 Use Case Extension 21 3.1 Diagram flowchart Sistem Tanda Tangan Digital RSA 30 3.2 Diagram flowchart Pembangkit Bilangan Prima Lehmann 31 3.3 Diagram flowchart Bangkit Kunci 32 3.4 Diagram flowchart Enkripsi Pesan 33 3.5 Flowchart Dekripsi Pesan dan Pengecekan Tanda Tangan Digital 34 3.6 Use Case Diagram pada Digital Signature 35 3.7 Rancangan Antarmuka Halaman Login 37 3.8 Rancangan Antarmuka Halaman Utama 38 3.9 Rancangan Antarmuka Halaman Bangkit Kunci Privat dan Kunci Publik 39 3.10 Rancangan Antarmuka Halaman Penandatanganan 40 3.11 Rancangan Antarmuka Halaman Verifikasi 42 3.12 Rancangan Antarmuka Halaman About 43 4.1 Tampilan Login 45 4.2 Tampilan Login ketika Id dam Password tidak sesuai 45 4.3 Tampilan Menu Utama 46 4.4 Tampilan Bangkit Kunci 47 4.5 Pesan Informasi Kunci Telah Tersimpan Di Direktori 47 4.6 Tampilan Kunci Publik berbentuk file.txt 48 4.7 Tampilan Kunci Privat berbentuk file.txt 48 4.8 Tampilan Penandatanganan 49 4.9 Tampilan Browse 49 4.10 Tampilan Pesan Cipherteks yang Telah Disimpan 50 4.11 Tampilan Verifikasi 51 4.12 Tampilan Pesan Asli dengan Kunci Publik yang Benar 51 4.13 Pesan Asli yang Error atau Tidak Bermakna Karena Disisip 52 4.14 Tampilan About 52