SISTEM TANDA TANGAN DIGITAL PADA PESAN TEKS MENGGUNAKAN ALGORITMA KRIPTOGRAFI KUNCI PUBLIK RSA SKRIPSI LIA SILVIANA 071402051
PERSETUJUAN
Judul : SISTEM TANDA TANGAN DIGITAL PADA PESAN TEKS MENGGUNAKAN ALGORITMA KRIPTOGRAFI KUNCI PUBLIK RSA
Kategori : SKRIPSI Nama : LIA SILVIANA Nomor Induk Mahasiswa : 071402051 Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI Departemen : TEKNOLOGI INFORMASI Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI (FASILKOMTI) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, 7 Mei 2013
Komisi Pembimbing : Pembimbing 2 Pembimbing 1 Dra. Mardiningsih Drs. Sawaluddin, MIT.
NIP 19630405 198811 2 001 NIP 19591231 199802 1 001 Diketahui/Disetujui oleh Program Studi S1 Teknologi Informasi Ketua, Prof. Dr. Opim Salim Sitompul, M.Sc.
NIP 19610817 198701 1 001
PERNYATAAN
PREDIKSI KURS RUPIAH TERHADAP DOLLAR AMERIKA SERIKAT MENGGUNAKAN EVOLVING FUZZY NEURAL NETWORK (EFUNN)
SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Januari 2013 Lia Silviana 071402051
Puji dan syukur penulis sampaikan kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Teknologi Informasi, Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada Bapak Drs. Sawaluddin, MIT dan Ibu Dra. Mardiningsih, M.Sc selaku pembimbing yang telah banyak meluangkan waktu dan pikirannya, memotivasi dan memberikan kritik dan saran kepada penulis. Ucapan terima kasih juga ditujukan kepada Bapak Syahril Efendi, S.Si, M.IT dan Bapak Dedy Arisandi, S.T, M.Kom yang telah bersedia menjadi dosen pembanding. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi Teknologi Informasi, Prof. Dr. Opim Salim Sitompul, M.Sc. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen serta seluruh pegawai biro Tata Usaha Fasilkomti usu yang telah membantu penulis memberikan pelayanan ketatausahaan selama penulis mengikuti perkuliahan di Program Studi S1 Teknologi Informasi.
Skripsi ini terutama penulis persembahkan untuk kedua orang tua dan keluarga penulis yang telah memberikan dukungan dan motivasi, ayahanda Drs. Johansyah Tanjung dan ibunda Nurhayati, SmHk yang telah melahirkan dan selalu sabar dalam mendidik dan membesarkan serta membimbing penulis hingga dapat melanjutkan pendidikan sampai ke perguruan tinggi. Untuk kakak penulis Santi Utari S.Pd yang selalu memberikan doa dan dorongan kepada penulis. Terima kasih juga penulis ucapkan kepada teman-teman yang selalu memberikan dukungan, Boy, Veny, Azwar, Roni, Nurul, Shifa, Tika, Polin, seluruh angkatan 07 serta teman- teman mahasiswa Teknologi Informasi lainnya yang tidak dapat penulis sebutkan satu persatu. Semoga Allah SWT membalas kebaikan kalian dengan nikmat yang berlimpah.
ABSTRAK
Pengiriman pesan melalui e-mail semakin meningkat sehingga diperlukan sistem keamanan yang mampu menjaga kerahasiaan pesan yang dikirim melalui e-mail. Sering terjadinya penyadapan pesan oleh pihak-pihak yang tidak bertanggung jawab membuat penulis melakukan analisis dan membuat aplikasi tandan tangan digital yang mampu menjaga keamanan e-mail. Tanda tangan digital adalah sebuah tanda tangan yang berbasiskan skema kriptografi. Tanda tangan digital dibuat dengan memanfaatkan kriptografi kunci publik. Algoritma RSA adalah salah satu algoritma kunci publik yang dapat digunakan untuk sistem tanda tangan digital. Mekanisme kerja algoritma RSA cukup sederhana dan mudah dimengerti tetapi kokoh. Keamanan RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Perangkat lunak untuk sistem tanda tangan digital yang dibangun dengan menggunakan bahasa pemrograman web PHP dan database MySQL. Perangkat lunak yang dibangun akan menjelaskan proses tanda tangan digital. Aplikasi tersebut dibuat dengan menggunakan algoritma RSA (Ron Rivest, Adi Shamir, dan Leonard Adleman) untuk mengenkripsi dan mendekripsi pesan. Pada tulisan ini penulis akan menganalisis bagaimana implementasi algoritma RSA terhadap pengiriman pesan dan penerimaan pesan sehingga pengguna dapat menjaga kerahasiaan pesan. Kata Kunci : email, tanda tangan digital, algoritma RSA, kriptografi.
DIGITAL SIGNATURE SYSTEM ON TEXT MESSAGE USING RSA PUBLIC KEY CRYPTOGRAPHY ALGORITHM ABSTRACT
Sending messages via e-mail has increased so that the security system is needed that is able to maintain the confidentiality of messages sent through e-mail. Frequent occurrence intercepts messages by parties who are not responsible to make the authors analyze and make a bunch of digital signature applications are able to maintain the security of e-mail. Digital signature is a signature-based cryptographic schemes. Digital signature created by using public key cryptography. RSA algorithm is a public key algorithm that can be used for digital signature system. Mechanism of action of the RSA algorithm is quite simple and easy to understand but sturdy. RSA security lies in the difficulty of factoring large numbers into prime factors. Software for digital signature system is built using the PHP web programming language and MySQL database. The software is built to explain the process of digital signatures. The application is created using the RSA algorithm (Ron Rivest, Adi Shamir, and Leonard Adleman) to encrypt and decrypt messages. In this paper the author will analyze how the implementation of the RSA algorithm for message sending and receiving messages so that users can keep messages confidential. Keyword : email, digital signature, RSA algorithm, cryptography
DAFTAR ISI Hal.
Persetujuan ii
Pernyataan iii
Ucapan Terima Kasih iv
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel ix
Daftar Gambar x
BAB 1 Pendahuluan
1
1.1. Latar Belakang
1
1.2. Rumusan Masalah
2
1.3. Batasan Masalah
2
1.4. Tujuan Penelitian
3
1.5. Manfaat Penelitian
3
1.6. Metodologi Penelitian
3
1.7 Sistematika Penulisan
4 BAB 2 Landasan Teori
5
2.1. Kriptografi
5
2.2.1. Tujuan Kriptografi
5
2.2.2. Proses Kriptografi
6
2.2. Kriptografi berdasarkan Kunci
7
2.2.1. Kriptografi Kunci Simetri (Symmetric-key Cryptography)
7
2.2.2. Kunci Asimetri (Asymmetric-key Cryptography)
7
2.3. Keamanan Sistem Kriptografi
9
2.3.1. Kriteria Keamanan Kriptografi
9
2.3.2. Jenis-Jenis Ancaman Keamanan
10
2.4. Jenis-Jenis Serangan Terhadap Sistem Kriptografi
12
2.4.1. Berdasarkan keterlibatan penyerang dalam komunikasi
12
2.4.2. Berdasarkan banyaknya informasi yang diketahui kriptanalis
12
2.4.3. Berdasarkan teknik yang digunakan dalam menemukan kunci
13
2.5. Tanda Tangan Digital
13
2.5.1. Sifat umum dari tanda tangan digital
14
2.5.2. Penandatanganan Pesan
14
2.5.3. Skenario tandatangan digital
15
2.6. Fungsi Hash
17
2.6.1. Fungsi hash satu-arah (One-way Hash)
18
2.6.2. Algoritma MD5
19
2.6.3. Perbedaan algoritma MD4 dan MD5
20
2.7. Bilangan Prima
21
2.7.1. Metode penentuan bilangan prima
21
2.7.2. Metode The Sieve of Eratothenes
22
2.8. Algoritma RSA
27
2.8.1. Konsep dasar perhitungan matematis algoritma RSA
27
2.9. Proses Enkripsi dan Dekripsi RSA
30
2.9.1. Proses pembentukan kunci
30
2.9.2. Proses enkripsi
31
2.9.3. Proses dekripsi
31
2.10. Kecepatan Algoritma RSA
31
2.11. RSA Digital Signature
32
2.11.1 Message Digest
32
2.11.2 Digital Signature
33
2.11.3 Verifikasi Digital Signature
33
2.12. Unified Modeling Language
34
2.12.1 Diagram Use case
35
2.12.2 Spesifikasi Use case (Use case specification)
36
2.12.3 Diagram Aktivitas(Activity Diagram)
37
2.13. Flowchart
38
2.14. Bahasa Pemrograman PHP
39
2.15. Penelitian Terdahulu
41 BAB 3 Analisis dan Perancangan
44
3.1. Analisis Sistem Enkripsi dan Dekripsi dengan Algoritma RSA
44
3.1.1. Algoritma membangkitkan pasangan kunci
44
3.1.2. Enkripsi
45
3.1.3. Dekripsi
45
3.1.4. Contoh perhitungan pembangkit kunci, enkripsi RSA dan
dekripsi RSA45
3.2. Perancangan Flowchart Sistem
49
3.3. Use case Diagram
53
3.3.1.Model spesifikasi Use case
54
3.3.2.Diagram Aktivitas
59
3.4. Perancangan Antarmuka Pemakai
63 BAB 4 Implementasi dan Pengujian Sistem
68
4.1. Implementasi Sistem
68
4.2. Tahap-Tahap Implementasi
69
4.3. Komponen Utama Dalam Implementasi
69
4.4. Pengujian dan Tampilan
70 BAB 5 Kesimpulan dan Saran
77
5.1 Kesimpulan
77
5.2 Saran
77 Daftar Pustaka
79 Lampiran Listing Program
81
DAFTAR TABEL Hal.
48 Tabel 3.5 Konversi Pesan Ke Karakter ASCII
58 Tabel 3.12 Spesifikasi Use case User Logout
58 Tabel 3.11 Spesifikasi Use case User Lihat Email Keluar
57 Tabel 3.10 Spesifikasi Use case User Kirim Email (Lanjutan)
57 Tabel 3.10 Spesifikasi Use case User Kirim Email
56 Tabel 3.9 Spesifikasi Use case User Lihat Email Masuk
56 Tabel 3.8 Spesifikasi Use case User Lihat Profil
55 Tabel 3.7 Spesifikasi Use case User Daftar Akun (Lanjutan)
55 Tabel 3.7 Spesifikasi Use case User Daftar Akun
49 Tabel 3.6 Spesifikasi Use case User Login
47 Tabel 3.4 Dekripsi
Tabel 2.1 Kelebihan dan Kelemahan Kriptografi Kunci Simetri46 Tabel 3.3 Enkripsi
46 Tabel 3.2 Perhitungan Kunci Privat
45 Tabel 3.1 Nilai GCD (Lanjutan)
43 Tabel 3.1 Nilai GCD
42 Tabel 2.5 Penelitian Terdahulu (Lanjutan)
38 Tabel 2.5 Penelitian Terdahulu
37 Tabel 2.4 Fungsi simbol-simbol flowchart
9 Tabel 2.3 Simbol Aktivitas Diagram
8 Tabel 2.2 Kelebihan dan Kekurangan Kriptografi Kunci Asimetri (Lanjutan)
8 Tabel 2.2 Kelebihan dan Kekurangan Kriptografi Kunci Asimetri
59
DAFTAR GAMBAR Hal.
61 Gambar 3.9 Diagram Aktivitas Kirim Pesan
36 Gambar 3.1 Flowchart proses pembuatan tandatangan digital
50 Gambar 3.2 Flowchart proses verifikasi tandatangan digital
51 Gambar 3.3 Flowchart Enkripsi
52 Gambar 3.4 Flowchart Dekripsi
53 Gambar 3.5 Diagram Use case
54 Gambar 3.6 Diagram Aktivitas Login
60 Gambar 3.7 Diagram Aktivitas Daftar Email
60 Gambar 3.8 Diagram Aktivitas Pembuatan Kunci
61 Gambar 3.10 Diagram Aktivitas Inbox
35 Gambar 2.22 Aktor dan use case
62 Gambar 3.11 Diagram Aktivitas Cari User
62 Gambar 3.12 Rancangan Halaman Login
63 Gambar 3.13 Rancangan Halaman Daftar Email
64 Gambar 3.14 Rancangan Halaman Beranda
64 Gambar 3.15 Rancangan Halaman Pembangkit Kunci
65 Gambar 3.16 Tampilan Halaman Compose
65 Gambar 3.17 Rancangan Halaman Sent Email
66 Gambar 3.18 Rancangan Halaman Verifikasi
36 Gambar 2.23 Keterhubungan
33 Gambar 2.21 Aktor-aktor use case
Gambar 2.1 Proses Kriptografi18 Gambar 2.10 Pembuatan message digest dengan algoritma MD5
6 Gambar 2.2 Skema Kriptografi Kunci Simetri
7 Gambar 2.3 Skema Kriptografi Kunci Asimetri
7 Gambar 2.4 Interruption
10 Gambar 2.5 Interception
11 Gambar 2.6 Modification
11 Gambar 2.7 Fabrication
11 Gambar 2.8 Skenario tanda tangan digital
15 Gambar 2.9 Fungsi hash satu-arah
20 Gambar 2.11 Pengolahan blok 512 bit (Proses HMD5)
32 Gambar 2.20 Skema proses untuk verifikasi dengan algoritma RSA
20 Gambar 2.12 Proses 1 pembangkit bilangan prima The Sieve of Eratothenes
23 Gambar 2.13 Proses 2 pembangkit bilangan prima The Sieve of Eratothenes
24 Gambar 2.14 Proses 3 pembangkit bilangan prima The Sieve of Eratothenes
24 Gambar 2.15 Proses 4 pembangkit bilangan prima The Sieve of Eratothenes
25 Gambar 2.16 Proses 5 pembangkit bilangan prima The Sieve of Eratothenes
25 Gambar 2.17 Proses 6 pembangkit bilangan prima The Sieve of Eratothenes
26 Gambar 2.18 Proses 7 pembangkit bilangan prima The Sieve of Eratothenes
26 Gambar 2.19 Skema Digital Signature
66
Gambar 3.19 Rancangan Halaman Cari User73 Gambar 4.10 Halaman Sent Email
76 Gambar 4.17 Hasil Verifikasi Salah
75 Gambar 4.16 Hasil Verifikasi Benar
75 Gambar 4.15 Input D dan N
75 Gambar 4.14 Pasangan Kunci public (D, N)
74 Gambar 4.13 Halaman Cari User
74 Gambar 4.12 Halaman Verifikasi
73 Gambar 4.11 Halaman Inbox
72 Gambar 4.9 Hasil Signature
67 Gambar 4.1 Tampilan utama
72 Gambar 4.8 Halaman Compose
72 Gambar 4.7 Tampilan pasangan kunci publik dan private
71 Gambar 4.6 Nilai p dan q
71 Gambar 4.5 Halaman Pembangkit Kunci
71 Gambar 4.4 Halaman Beranda (Home)
70 Gambar 4.3 Halaman Login
70 Gambar 4.2 Form daftar email
76