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
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 : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI (FASILKOMTI) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, April 2013
Komisi Pembimbing :
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,
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
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 Universitas Sumatera Utara. 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 Universitas Sumatera Utara.
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.
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
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.
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
1.2Perumusan Masalah 2
1.3Batasan Masalah 2
1.4Tujuan Penelitian 3
1.5Manfaat Penelitian 3
1.6Metode Penelitian 3
1.7Sistematika Penulisan 4
Bab 2 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
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 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
Bab 5 Kesimpulan Dan Saran
5.1 Kesimpulan 59
5.2 Saran 60
Daftar Pustaka 61
LAMPIRAN A: Listing Program A-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
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