Implementasi Digital Signature dengan Algoritma RSA dan Lehmann Prime Generator

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

Universitas Sumatera Utara

PERSETUJUAN

Judul


Kategori
Nama
Nomor Induk Mahasiswa
Program Studi
Departemen
Fakultas

: IMPLEMENTASI DIGITAL SIGNATURE DENGAN
ALGORITMA RSA DAN LEHMANN PRIME
GENERATOR PADA PESAN TEKS
: SKRIPSI
: MIRNAWATI
: 081401005
: SARJANA (S1) ILMU KOMPUTER
: ILMU KOMPUTER
: 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
NIP: 197510082008011011

Dr. Marhaposan Situmorang
NIP: 195510301980031003

Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,

Dr. Poltak Sihombing, M.Kom

NIP. 196203171991031001

Universitas Sumatera Utara

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

Universitas Sumatera Utara


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.
9. Teman-teman seperjuangan mahasiswa S1-Ilmu Komputer stambuk 2008 secara
khusus kepada Anny Maghfirah, Ratnaningtyas Yoga Wijayanti S.Kom, Sadifa

Universitas Sumatera Utara

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

Universitas Sumatera Utara

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.

Universitas Sumatera Utara

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.


Universitas Sumatera Utara

DAFTAR ISI

Halaman
Persetujuan
Pernyataan
Penghargaan
Abstrak
Abstract
Daftar Isi
Daftar Tabel
Daftar Gambar
Bab 1

Bab 2

ii
iii

iv
vi
vii
viii
x
xi

Pendahuluan
1.1 Latar Belakang
1.2 Perumusan Masalah
1.3 Batasan Masalah
1.4 Tujuan Penelitian
1.5 Manfaat Penelitian
1.6 Metode Penelitian
1.7 Sistematika Penulisan

1
2
2
3

3
3
4

Tinjauan Pustaka
2.1 Kriptografi
2.2 Digital Signature
2.3 Lehmann Prime Generator
2.4 Algoritma RSA
2.4.1 Algoritma Euclidean
2.4.2 Totient Euler ɸ
2.4.3 Modulo Eksponensial
2.5 Use Case Diagram

6
7
10
12
15
18
19
20

Bab 3 Analisis Dan Perancangan Sistem
3.1 Analisis
3.1.1 Analisis Algoritma Lehmann Prime Generator dan
Kunci
3.1.2 Analisis Digital Signature dengan Algoritma RSA
3.2 Kelebihan Algoritma Lehmann dan RSA
3.2.1 Algoritma Lehmann Prime Generator
3.2.2 Kelebihan Algoritma RSA
3.3 Flowchart
3.3.1 Flowchart Sistem
3.3.2 Flowchart Proses Pembangkitan Bilangan Prima
dengan Menggunakan Algoritma Lehmann
3.3.3 Flowchart Prosespembangkitan kunci
3.3.4 Flowchart Proses Enkripsi Pesan sekaligus

22
22
25
29
29
29
30
30
31
32

Universitas Sumatera Utara

Bab 4

Bab 5

pembubuhan tanda tangan
3.3.5 Flowchart Proses Dekripsi Pesan Sekaligus Pengecekan
Tanda Tangan Digital
3.4 Use Case Diagram
3.5 Perancangan Interface
3.5.1 Tampilan Halaman Login
3.5.2 Tampilan Halaman Utama
3.5.3 Tampilan Bangkitkan Kunci
3.5.4 Tampilan Penandatanganan
3.5.5 Tampilan Verifikasi
3.5.6 Tampilan About

33
34
35
36
37
38
39
40
42
43

Implementasi Dan Pengujian Sistem
4.1 Implementasi
4.2 Tampilan aplikasi
4.2.1 Tampilan Login
4.2.2 Tampilan Menu Utama
4.2.3 Tampilan Bangkit Kunci
4.2.4 Tampilan Penandatanganan
4.2.5 Tampilan Verifikasi
4.2.6 Tampilan About
4.3 Tabulasi Hasil Uji
4.4 Big Theta

44
44
44
45
46
48
50
52
53
55

Kesimpulan Dan Saran
5.1 Kesimpulan
5.2 Saran

59
60

Daftar Pustaka

61

LAMPIRAN A: Listing Program
LAMPIRAN B : Tabel ASCII

A-1
B-1

Universitas Sumatera Utara

DAFTAR TABEL

Halaman
3.1 Nilai Perpangkatan Modulo Eksponensial
3.2 Proses penandatanganan dokumen
3.3 Requirement, actor, dan use case pada penandatanganan pesan digital
4.1 Penandatanganan Pesan
4.2 Kunci Privat dan Kunci Publik Tidak cocok
4.3 Pseudocode dan Kompleksitas Waktu Menghitung Jumlah Digit
4.4 Pseudocode dan Kompleksitas Waktu Membangkitkan Bilangan
Prima dengan Algoritma Lehmann
4.5 Pseudocode dan Kompleksitas Waktu Kunci Privat
4.6 Pseudocode dan Kompleksitas Mencari GCD
4.7 Pseudocode dan Kompleksitas Waktu Kunci Publik
4.8 Pseudocode dan Kompleksitas Waktu Enkripsi Pesan
4.9 Pseudocode dan Kompleksitas Waktu Dekripsi Pesan

23
28
35
53
54
55
56
56
57
57
57
58

Universitas Sumatera Utara

DAFTAR GAMBAR

Halaman
2.1
2.2
2.3
2.4
2.5
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14

Proses Enkripsi dan Dekripsi Tanda Tangan Digital
Diagram Pengiriman dan Penerimaan Pesan
Pemodelan Use Case
Use Case Inclusion
Use Case Extension
Diagram flowchart Sistem Tanda Tangan Digital RSA
Diagram flowchart Pembangkit Bilangan Prima Lehmann
Diagram flowchart Bangkit Kunci
Diagram flowchart Enkripsi Pesan
Flowchart Dekripsi Pesan dan Pengecekan Tanda Tangan Digital
Use Case Diagram pada Digital Signature
Rancangan Antarmuka Halaman Login
Rancangan Antarmuka Halaman Utama
Rancangan Antarmuka Halaman Bangkit Kunci Privat dan Kunci
Publik
Rancangan Antarmuka Halaman Penandatanganan
Rancangan Antarmuka Halaman Verifikasi
Rancangan Antarmuka Halaman About
Tampilan Login
Tampilan Login ketika Id dam Password tidak sesuai
Tampilan Menu Utama
Tampilan Bangkit Kunci
Pesan Informasi Kunci Telah Tersimpan Di Direktori
Tampilan Kunci Publik berbentuk file .txt
Tampilan Kunci Privat berbentuk file .txt
Tampilan Penandatanganan
Tampilan Browse
Tampilan Pesan Cipherteks yang Telah Disimpan
Tampilan Verifikasi
Tampilan Pesan Asli dengan Kunci Publik yang Benar
Pesan Asli yang Error atau Tidak Bermakna Karena Disisip
Tampilan About

8
10
20
21
21
30
31
32
33
34
35
37
38
39
40
42
43
45
45
46
47
47
48
48
49
49
50
51
51
52
52

Universitas Sumatera Utara