IMPLEMENTASI MODIFIKASI SISTEM KRIPTOGRAFI RSA DAN ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM (ECDSA) SKRIPSI ANDRUS 111401094 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2016
IMPLEMENTASI MODIFIKASI SISTEM KRIPTOGRAFI RSA DAN ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM (ECDSA) SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer ANDRUS 111401094 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2016
ii PERSETUJUAN Judul : IMPLEMENTASI MODIFIKASI SISTEM KRIPTOGRAFI RSA DAN ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM (ECDSA) Kategori : SKRIPSI Nama : ANDRUS Nomor Induk Mahasiswa : 111401094 Program Studi : SARJANA (S1) ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA Komisi Pembimbing : Dosen Pembimbing II Dosen Pembimbing I Jos Timanta Tarigan, S. Kom, M. Sc Prof. Dr. Opim Salim Sitompul, M. Sc. NIP. 19850126 29504 1 001 NIP. 19610817 198701 1 001 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 19620317 19910210 01
iii PERNYATAAN IMPLEMENTASI MODIFIKASI SISTEM KRIPTOGRAFI RSA DAN ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM (ECDSA) SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya. Medan, Mei 2016 Andrus 111401094
iv PENGHARGAAN Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa, karena rahmat dan izin-nya penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi. Banyak bantuan berupa bantuan, kebaikan, buah pikiran dan kerjasama yang telah penulis peroleh selama menjalani studi sampai dengan penyelesaian skripsi ini. Oleh karena itu, sudah sepantutnya penulis menyampaikan ucapan terimakasih kepada pihak-pihak yang telah membantu. Ucapan terima kasih penulis sampaikan kepada: 1. Almarhum ayah Harris Max, ibu tercinta Ng Siu San, kepada adik Diorman, dua kakak Yenny dan Selly yang selalu memberikan perhatian dan dukungan serta kasih sayang kepada penulis. 2. Bapak Prof. Dr. Opim Salim Sitompul, M. Sc selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi, dan dosen pembimbing I yang telah memberikan bimbingan selaku dosen pembanding I yang telah memberikan bimbingan, kritik, dan saran kepada penulis dalam menyelesaikan skripsi ini. 3. Bapak Jos Timanta Tarigan, S. Kom, M. Sc selaku dosen pembimbing II yang telah memberikan bimbingan selaku dosen pembanding I yang telah memberikan bimbingan, kritik, dan saran kepada penulis dalam menyelesaikan skripsi ini. 4. Ibu Dr. Elviawaty Muisa Zamzami, ST., MT., MM selaku Wakil Dekan I dan dosen pembanding I yang telah memberikan bimbingan, kritik, dan saran kepada penulis dalam menyelesaikan skripsi ini. 5. Bapak Herriyance, ST., M.Kom selaku dosen pembanding II yang telah memberikan bimbingan, kritik, dan saran kepada penulis dalam menyelesaikan skripsi ini. 6. Bapak Prof. Dr. Runtung Sitepu selaku Rektor.
v 7. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer dan dosen Pembimbing Akademik yang telah memberikan bimbingan dan dukungan kepada penulis. 8. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Wakil Dekan III dan Sekretaris Program Studi S1 Ilmu Komputer. 9. Seluruh tenaga pengajar dan pegawai di Fakultas Ilmu Komputer dan Teknologi Informasi USU, terutama abangda Faisal Hamid yang telah membantu proses akademik dan tugas akhir penulis. 10. Stambuk 2011 yang telah memberikan semangat, teman diskusi dan teman seperjuangan dalam menggapai gelar Sarjana Komputer. 11. Stambuk 2010, adik-adik stambuk 2012 dan 2013 yang telah memberikan bantuan moral, nasihat, pengetahuan, semangat, serta berbagi canda tawa kepada penulis. 12. Semua pihak yang terlibat langsung atau tidak langsung yang penulis tidak dapat tuliskan satu per satu. Semoga Tuhan Yang Maha Esa memberikan berkah kepada semua pihak yang telah memberikan bantuan, semangat, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini. Semoga skripsi ini dapat bermanfaat bagi pribadi, keluarga, masyarakat, organisasi dan negara. Medan, Mei 2016 Penulis
vi ABSTRAK Semakin pesat perkembangan teknologi informasi membuat keamanan data menjadi salah satu faktor yang penting dalam komunikasi data. Hal ini diperlukan untuk menghindari akses oleh pihak yang tidak berhak. Salah cara yang digunakan untuk menjaga kerahasian pesan dan menjamin pengirim pesan dapat dikenali adalah dengan menggunakan sistem kriptografi. Dalam penelitian ini, penulis menggabungkan penggunaan algoritma Rivest-Shamir-Adleman (RSA) yang dimodifikasi dengan algoritma Elliptic Curve Digital Signature Algorithm (ECDSA), dimana pengirim akan membuat tanda tangan digital untuk pesan kemudian dienkripsi bersamaan dengan pesan dengan menggunakan kunci penerima. Modifikasi pada algoritma RSA bertujuan untuk mempercepat proses dalam algoritma tersebut. Proses pembacaan pesan yang sudah disamarkan dan pengidentifikasian pengirim hanya dapat dilakukan oleh orang yang mengetahui kunci yang digunakan. Berdasarkan penelitian yang dilakukan algoritma ECDSA keaslian dan kepemilikan dari pesan dan dijamin. Kata kunci: ECDSA, Kunci, Modifikasi RSA, Kriptografi, Pesan.
vii ABSTRACT Rapid development of information technology makes data security is one of important factor in data communications. The former is necessary to avoid access by unauthorized parties. One of the way to maintain message confidentiality and ensure the sender of the message can be identified by using a cryptography system. In this research, the writer combines the use of modified Rivest-Shamir-Adleman (RSA) algorithm with Elliptic Curve Digital Signature Algorithm (ECDSA), the sender will create a digital signature over the message and then encrypted together with the message by using receiver key. Modifications to RSA algorithm purpose is to speed up the process in the algorithm. The process of reading the message that has camouflaged and to identify sender can only be done by someone who know the used key. Based on research, ECDSA algorithm can guarante authenticity and ownership of message. Keyword : ECDSA, Key, Modified RSA, Cryptography and Message.
viii DAFTAR ISI Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar Daftar Lampiran ii iii iv vi vii viii x xi xiii Bab I Pendahuluan 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 II Tinjauan Pustaka 2.1 Kriptografi 5 2.1.1 Terminologi 5 2.1.2 Tujuan Kriptografi 8 2.2 Grup 8 2.3 Teori Bilangan Bulat 9 2.3.1 Kekongruenan 9 2.3.2 Faktor Persekutuan Terbesar 9 2.3.3 Relatif Prima 9 2.3.4 Fungsi Phi Euler 10 2.3.5 Algoritma Extended Euclidean 10 2.3.6 Inversi Modulo 11 2.3.7 Eksponensial Modulo 12 2.3.8 Pengujian Bilangan Prima Miller-Rabin 13 2.4 Algoritma SHA-1 15 2.5 Algoritma SHA-2 17 2.6 Kurva Elips 19 2.6.1 Kriptografi Kurva Elips 20 2.6.2 Aturan Penjumlahan Dua Titik Pada Kurva Elips 22 2.7 Sistem Kriptografi RSA 24 2.7.1 Pembangkitan Kunci RSA 25
ix 2.7.2 Enkripsi RSA 25 2.7.3 Dekripsi RSA 26 2.8 Algoritma Tanda Tangan Digital Kurva Elips Elliptic Curve Digital Signature Algorithm 26 2.8.1 Pembangkitan Kunci ECDSA 26 2.8.2 Pembentukan Tanda Tangan ECDSA 27 2.8.3 Proses Verifikasi Tanda Tangan ECDSA 27 2.9 Pretty Good Privacy (PGP) 28 2.10 Penelitian yang Relevan 28 Bab 3 Analisis dan Perancangan Sistem 3.1 Analisis Sistem 30 3.1.1 Analisis Permasalah an 30 3.1.2 Analisis Kebutuhan 30 3.1.3 Perancangan Sistem 32 Bab 4 Implementasi dan Pengujian 4.1 Implementasi Sistem 44 4.1.1 Tampilan Halaman Depan 44 4.1.2 Tampilan Bangkitkan Kunci 45 4.1.3 Tampilan Bangkitkan Tanda Tangan Digital dan Enkripsi Pesan 45 4.1.4 Tampilan Enkripsi Pesan dan Verifikasi Tanda Tangan Digital 46 4.1.5 Tampilan Pilihan 46 4.2 Pengujian Sistem 47 4.2.1 Skenario Skenario Pembangkitan Kunci dengan menggunakan algoritma ECDSA dan RSA 47 4.2.2 Skenario Pembangkitan Tanda Tangan Digital dan Enkripsi Pesan 50 4.2.3 Skenario Dekripsi Pesan dan Verifikasi Tanda Tangan Digital 54 4.2.4 Pengujian Pembangkitan Kunci, Enkripsi dan Dekripsi RSA 57 4.2.5 Pengujian Pembangkitan Kunci, Pembangkitan Tanda Tangan Digital dan Verifikasi Tanda Tangan Digital ECDSA 58 Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 61 5.2.Saran 61 Daftar Pustaka 62
x DAFTAR TABEL Nomor Tabel Nama Tabel Halaman 2.1 Tabel Algoritma Extended Euclidean 11 2.2 Tabel Inversi Modulo 11 2.3 Tabel Modulus Eksponensial 12 2.4 Tabel Perhitungan Algoritma Miller-Rabin 13 2.5 Tabel Perhitungan Algoritma Miller-Rabin 14 2.6 Tabel Perhitungan Algoritma Miller-Rabin 14 2.7 Tabel Perhitungan Algoritma Miller-Rabin 14 2.8 Nilai Konstanta Variabel K 19 2.9 Hubungan antara Grup dengan kurva 20 2.10 Perhitungan Euler Criterion 21 2.11 Pasangan koordinat pada kurva elips 21 4.1 Pengujian Pembangkitan Kunci RSA yang dimodifikasi 57 4.2 Pengujian Enkripsi dan Dekripsi RSA yang dimodifikasi 58 4.3 Pengujian Pembangkitan Kunci ECDSA 59 4.4 Pengujian Pembangkitan Tanda Tangan dan Verifikasi Tanda Tangan Digital 60
xi DAFTAR GAMBAR Nomor Gambar Nama Gambar Halaman 2.1 Skema Sebuah Sistem Kriptografi 6 2.2 Skema Tanda Tangan Digital. 6 2.3 Proses SHA-1 untuk setiap bitword 16 2.4 Proses SHA-1 untuk setiap 512 bit blok 17 2.5 Proses SHA-2 pada setiap iterasi 19 2.6 Sebaran titik-titik pada kurva elips 22 2.7 Gambaran secara geometri penjumlahan dua titik berbeda 23 2.8 Gambaran Secara geometri penjumlahan dua titik sama 23 2.9 Gambaran Geometris untuk (3,10) + (9,7) = (17,20) 23 2.10 Gambaran Geometris untuk (3,10) + (3,10) = (7,12) 24 3.1 Flowchart Proses Pembangkitan Kunci 32 3.2 Flowchart Proses Enkripsi Pesan dan Tanda Tangan 33 Digital 3.3 Flowchart Dekripsi Pesan dan Verifikasi Tanda Tangan 34 Digital 3.4 Use Case 35 3.5 Activity Bangkitkan Kunci 36 3.6 Activity Bangkitkan Tanda Tangan Digital dan Enkripsi 37 Pesan 3.7 Activity Diagram Dekripsi Pesan dan Verifikasi Tanda 38 Tangan Digital 3.8 Sequence Diagram Bangkitkan Kunci 39 3.9 Sequence Diagram Bangkitkan Tanda Tangan 39 Digital dan Dekripsi Pesan 3.10 Sequence Diagram Dekripsi Pesan dan Verifikasi Tanda 40 Tangan Digital 3.11 Rancangan Antarmuka Bangkitkan Kunci 41 3.12 Rancangan Antarmuka Bangkitkan Tanda Tangan Digital 42 dan Enkripsi Pesan. 3.13 Rancangan Baca Pesan dan Verifikasi Tanda Tangan 43 4.1 Tampilan Halaman Depan 44
xii 4.2 Tampilan Bangkitkan Kunci 45 4.3 Tampilan Bangkitkan Tanda Tangan Digital dan Enkripsi 45 Pesan 4.4 Tampilan Enkripsi Pesan dan Verifikasi Tanda Tangan 46 Digital 4.5 Tampilan Pilihan 46 4.6 Grafik Pembangkitan Kunci RSA 57 4.7 Grafik Enkripsi dan Dekripsi RSA 58 4.8 Grafik Pembangkitan Kunci ECDSA 59 4.9 Grafik Pembangkitan dan Verifikasi Tanda Tangan Digital 60
xiii DAFTAR LAMPIRAN Nomor Lampiran Nama Lampiran Halaman 1 Tabel Bitword 64 2 Tabel Perubahan nilai variabel A, B, C, D, E, F, G, H 65 3 Tabel Enkripsi 68 4 Ciphertext 70 5 Tabel Dekripsi 71 6 Listing Program 73