ALGORITMA KRIPTOGRAFI KUNCI PUBLIK RSA
SKRIPSI
LIA SILVIANA
071402051
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2013
ALGORITMA KRIPTOGRAFI KUNCI PUBLIK RSA
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Teknologi Informasi
LIA SILVIANA 071402051
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2013
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
UCAPAN TERIMA KASIH
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.
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 RSA 45
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
DAFTAR TABEL
Hal. Tabel 2.1 Kelebihan dan Kelemahan Kriptografi Kunci Simetri 8 Tabel 2.2 Kelebihan dan Kekurangan Kriptografi Kunci Asimetri 8 Tabel 2.2 Kelebihan dan Kekurangan Kriptografi Kunci Asimetri (Lanjutan) 9
Tabel 2.3 Simbol Aktivitas Diagram 37
Tabel 2.4 Fungsi simbol-simbol flowchart 38
Tabel 2.5 Penelitian Terdahulu 42
Tabel 2.5 Penelitian Terdahulu (Lanjutan) 43
Tabel 3.1 Nilai GCD 45
Tabel 3.1 Nilai GCD (Lanjutan) 46
Tabel 3.2 Perhitungan Kunci Privat 46
Tabel 3.3 Enkripsi 47
Tabel 3.4 Dekripsi 48
Tabel 3.5 Konversi Pesan Ke Karakter ASCII 49
Tabel 3.6 Spesifikasi Use case User Login 55
Tabel 3.7 Spesifikasi Use case User Daftar Akun 55 Tabel 3.7 Spesifikasi Use case User Daftar Akun (Lanjutan) 56 Tabel 3.8 Spesifikasi Use case User Lihat Profil 56 Tabel 3.9 Spesifikasi Use case User Lihat Email Masuk 57 Tabel 3.10 Spesifikasi Use case User Kirim Email 57 Tabel 3.10 Spesifikasi Use case User Kirim Email (Lanjutan) 58 Tabel 3.11 Spesifikasi Use case User Lihat Email Keluar 58
Tabel 3.12 Spesifikasi Use case User Logout 59
DAFTAR GAMBAR
Hal.
Gambar 2.1 Proses Kriptografi 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 18
Gambar 2.10 Pembuatan message digest dengan algoritma MD5 20 Gambar 2.11 Pengolahan blok 512 bit (Proses HMD5) 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 32
Gambar 2.20 Skema proses untuk verifikasi dengan algoritma RSA 33
Gambar 2.21 Aktor-aktor use case 35
Gambar 2.22 Aktor dan use case 36
Gambar 2.23 Keterhubungan 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.9 Diagram Aktivitas Kirim Pesan 61
Gambar 3.10 Diagram Aktivitas Inbox 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.19 Rancangan Halaman Cari User 67
Gambar 4.1 Tampilan utama 70
Gambar 4.2 Form daftar email 70
Gambar 4.3 Halaman Login 71
Gambar 4.4 Halaman Beranda (Home) 71
Gambar 4.5 Halaman Pembangkit Kunci 71
Gambar 4.6 Nilai p dan q 72
Gambar 4.7 Tampilan pasangan kunci publik dan private 72
Gambar 4.8 Halaman Compose 72
Gambar 4.9 Hasil Signature 73
Gambar 4.10 Halaman Sent Email 73
Gambar 4.11 Halaman Inbox 74
Gambar 4.12 Halaman Verifikasi 74
Gambar 4.13 Halaman Cari User 75
Gambar 4.14 Pasangan Kunci public (D, N) 75
Gambar 4.15 Input D dan N 75
Gambar 4.16 Hasil Verifikasi Benar 76
Gambar 4.17 Hasil Verifikasi Salah 76