ii 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 Komisi Pembimbing : Diluluskan di Medan, 7 Mei 2013 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
iii 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
iv 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. 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 temanteman mahasiswa Teknologi Informasi lainnya yang tidak dapat penulis sebutkan satu persatu. Semoga Allah SWT membalas kebaikan kalian dengan nikmat yang berlimpah.
v 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.
vi 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
vii DAFTAR ISI Hal. Persetujuan Pernyataan Ucapan Terima Kasih Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar ii iii iv v vi vii ix 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 Lampiran Listing Program 81 viii
ix 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
x 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.17 Rancangan Halaman Sent Email 66 Gambar 3.18 Rancangan Halaman Verifikasi 66
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 xi