KRIPTOGRAFI KUNCI PUBLIK ALGORITMA ELGAMAL DENGAN METODE THE SIEVE OF ERATOSTHENES UNTUK PEMBANGKITAN BILANGAN PRIMA SKRIPSI SYAUVIKA LUBIS 061401001 PROGRAM STUDI S-1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2012
KRIPTOGRAFI KUNCI PUBLIK ALGORITMA ELGAMAL DENGAN METODE THE SIEVE OF ERATOSTHENES UNTUK PEMBANGKITAN BILANGAN PRIMA SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer SYAUVIKA LUBIS 061401001 PROGRAM STUDI S-1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2012
ii PERSETUJUAN Judul : KRIPTOGRAFI KUNCI PUBLIK ALGORITMA ELGAMAL DENGAN METODE THE SIEVE OF ERATOSTHENES UNTUK PEMBANGKITAN BILANGAN PRIMA Kategori : SKRIPSI Nama : SYAUVIKA LUBIS Nomor Induk Mahasiswa : 061401001 Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen Fakultas Komisi Pembimbing : : ILMU KOMPUTER : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA Diluluskan di Medan, Pembimbing 2 Pembimbing 1 Maya Silvi Lydia, B. Sc, MSc M. Andri Budiman, S.T, M.CompSc, MEM NIP. 197401272002122001 NIP. 197510082008011001 Diketahui/ Disetujui oleh Departemen Ilmu Komputer FMIPA USU Ketua, Dr. Poltak Sihombing, M. Kom NIP. 196203171991021001
iii PERNYATAAN KRIPTOGRAFI KUNCI PUBLIK ALGORITMA ELGAMAL DENGAN METODE THE SIEVE OF ERATOSTHENES UNTUK PEMBANGKITAN BILANGAN PRIMA SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya. Medan, Syauvika Lubis 061401001
iv PENGHARGAAN Alhamdulillahirrabbil alamin. Puji dan syukur penulis panjatkan kepada Allah SWT atas limpahan rahmat dan karunia-nya sehingga penulis dapat menyelesaikan tugas akhir ini sebagai salah satu syarat untuk menyelesaikan studi pada S1 Ilmu Komputer FMIPA USU. Shalawat dan salam kepada Rasulullah Muhammad SAW. Pada kesempatan ini penulis ingin menyampaikan terima kasih kepada pihakpihak yang telah bersedia membantu dalam proses pembuatan tugas akhir ini hingga selesai. Dengan tulus penulis mengucapkan terima kasih kepada: 1. Bapak M. Andri Budiman, S.T, M.CompSc, MEM dan Ibu Maya Silvi Lydia, B. Sc, MSc selaku dosen pembimbing yang telah bersedia meluangkan waktu, tenaga, dan pikiran untuk penulis demi terselesaikannya tugas akhir ini. 2. Bapak Dr. Poltak Sihombing, M. Kom selaku dosen pembanding I dan Ketua Program Studi S1 Ilmu Komputer Fakultas MIPA Universitas Sumatera Utara, serta Ibu Dian Rachmawati, S. Si, M. Kom selaku dosen pembanding II dan Kepala Lab. Studio Tugas Akhir yang telah memberikan kritik dan saran untuk perbaikan skripsi ini. 3. Dekan dan Pembantu Dekan Fakultas MIPA Universitas Sumatera Utara. 4. Seluruh Dosen Program Studi S1 Ilmu Komputer Fakultas MIPA Universitas Sumatera Utara yang telah memberikan ilmu yang bermanfaat kepada penulis selama kuliah. 5. Semua pegawai Studi S1 Ilmu Komputer. 6. Teman-teman kuliah, terutama Siti Rezeki, Faurina, Suharsono, Putri, dan Amelia yang membantu memberikan motivasi dan saran. 7. Adik-adik tersayang, Syaravina dan Sofyanda yang membantu memberikan semangat. 8. Dan yang teristimewa Ibunda Syafrida Rahmi dan Ayahanda Satria Muda Lubis yang selalu mendukung moril dan materil, serta berdořa untuk kebaikan diri penulis. Akhirnya, penulis hanya dapat memanjatkan dořa, semoga Allah SWT membalas kebaikan semuanya.
v ABSTRAK Pada penelitian untuk tugas akhir ini dibangun sistem kriptografi kunci publik berdasarkan algoritma ElGamal yang berguna mengamankan pesan user tanpa perlu mengalami kesulitan dalam mendistribusikan kunci karena kunci untuk dekripsi (kunci privat) berbeda dengan kunci untuk enkripsi (kunci publik) sehingga kunci enkripsi dapat didistribusikan kepada publik tanpa harus mengungkapkan kunci dekripsi, berbeda dengan kriptografi kunci simetri yang kunci dekripsi dan enkripsinya sama. Selain algoritma ElGamal, penelitian ini juga menerapkan pembangkit bilangan prima metode The Sieve of Eratosthenes pada sistem karena proses pembangkitan kunci algoritma ElGamal melibatkan bilangan prima. Dengan diterapkannya metode The Sieve of Eratosthenes pada sistem, proses pembangkitan kunci dimulai dengan input bilangan integer N untuk membangkitkan deretan bilangan prima antara 2 dan N menggunakan The Sieve of Eratosthenes, kemudian pasangan kunci publik dan kunci privat algoritma ElGamal dibangkitkan berdasarkan deretan tersebut. Sistem diwujudkan dalam bentuk sebuah aplikasi komputer yang dibangun menggunakan bahasa pemrograman Java dan NetBeans IDE. Pengujian pada aplikasi membuktikan sistem dapat menjalankan fungsi-fungsinya sesuai dengan rancangan, yaitu enkripsi pada aplikasi ini dapat mengubah plainteks ke bentuk cipherteks kemudian mengembalikannya ke bentuk plainteks semula melalui proses dekripsi, serta mampu menghasilkan pasangan kunci untuk digunakan pada proses enkripsi dan dekripsi dengan syarat kunci publik p lebih besar dari plainteks. Kata Kunci : Kriptografi Kunci Publik, ElGamal, Pembangkit Kunci, Enkripsi, Dekripsi, The Sieve of Eratosthenes
vi ELGAMAL PUBLIC KEY CRYPTOSYSTEM USING THE SIEVE OF ERATOSTHENES TO GENERATE PRIME NUMBERS ABSTRACT This work is to built a public key cryptosystem based on the ElGamal algorithm which is useful for securing user messages without having difficulty in key distribution since it uses a different key for decryption (private key) and encryption (public key). Thus the encryption key can be distributed to public without having to disclose the decryption key, in contrast to symmetric key cryptography which uses the same key for encryption and decryption. Not only ElGamal algorithm, this research applies The Sieve of Eratosthenes method as a prime numbers generator on the system because the ElGamal key generation algorithm involves prime numbers. With the implementation of the Sieve of Eratosthenes method on the system, key generation process starts with an integer input N to generate a set of primes between 2 and N using the Sieve of Eratosthenes, then the public and private key pair's of ElGamal algorithm will be generated based on the set. System embodied in the form of a software is built using the Java programming language and NetBeans IDE. Tests on the software prove the system can carry out its functions in accordance with the design, that is encryption on this software can convert a plaintext into ciphertext form then convert it back to its original plaintext form through a decryption process and is able to generate key pairs for use in the process of encryption and decryption with terms the public key p is greater than the plaintext. Key Words : Public Key Cryptography, ElGamal, Key Generator, Encryption, Decryption, The Sieve of Eratosthenes
vii DAFTAR ISI Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar ii iii iv v vi vii ix x Bab 1 Pendahuluan 1 1.1 Latar Belakang Masalah 1 1.2 Rumusan Masalah 2 1.3 Batasan Masalah 3 1.4 Tujuan Penelitian 3 1.5 Manfaat Penelitian 3 1.6 Metode Penelitian 4 1.7 Sistematika Penulisan 4 Bab 2 Landasan Teori 6 2.1 Kriptografi 6 2.1.1 Tujuan Kriptografi 7 2.1.2 Sejarah Kriptografi 7 2.2 Kriptografi Kunci Publik 10 2.2.1 Konsep Kriptografi Kunci Publik 11 2.2.2 Aplikasi Penggunaan Kriptografi Kunci Publik 14 2.3 Algoritma ElGamal 14 2.3.1 Bilangan Prima 15 2.3.2 The Sieve of Eratosthenes 16 2.3.3 Relatif Prima 18 2.3.4 Fungsi Totient Euler 19 2.3.5 Akar Primitif (Primitive Root) dari Bilangan Prima p 19 2.3.6 Perpangkatan Modulo 20 2.4 NetBeans IDE 21 Bab 3 Analisis dan Perancangan Sistem 23 3.1 Analisis Sistem 23 3.1.1 Pembangkit Bilangan Prima 24 3.1.1.1 The Sieve of Eratosthenes 25 3.1.2 Algoritma Kriptografi Kunci Publik ElGamal 26 3.1.2.1 Proses Pembangkitan Kunci Algoritma ElGamal 26
viii 3.1.2.2 Proses Enkripsi Algoritma ElGamal 27 3.1.2.3 Proses Dekripsi Algoritma ElGamal 27 3.2 Perancangan Aplikasi 31 3.2.1 Perancangan Antar Muka 32 3.2.2 Flowchart 35 3.2.2.1 Flowchart Pembangkit Kunci 35 3.2.2.2 Flowchart The Sieve of Eratosthenes 36 3.2.2.3 Flowchart Enkripsi 38 3.2.2.4 Flowchart Dekripsi 39 Bab 4 Implementasi dan Pengujian 40 4.1 Tampilan Antar Muka 40 4.1.1 Jendela Menu Utama 40 4.1.2 Jendela Pembangkit Kunci 41 4.1.3 Jendela Enkripsi 42 4.1.4 Jendela Dekripsi 43 4.2 Pengujian 44 Bab 5 Kesimpulan dan Saran 50 5.1 Kesimpulan 50 5.2 Saran 51 Daftar Pustaka 52 Lampiran 54
ix DAFTAR TABEL Halaman 2.1 Komputasi running time pembangkit bilangan prima metode standar pada komputer 3.2 GHz sistem operasi Linux 17 2.2 Komputasi running time pembangkit bilangan prima metode The Sieve of Eratosthenes pada komputer 3.2 GHz sistem operasi Linux 17 2.3 Prosedur Pembangkit Bilangan Prima Metode Standar 17 2.4 Prosedur Pembangkit Bilangan Prima Metode The Sieve of Eratosthenes 18 3.1 Tabel Bilangan Prima di antara Bilangan 1-350 28 4.1 Tabel Hasil Pengujian Aplikasi KriptoElGamal 44
x DAFTAR GAMBAR Halaman 2.1 Skema Kriptografi Nirsimetri 12 3.1 Tampilan Rancangan Jendela Menu Utama 32 3.2 Tampilan Rancangan Jendela Pebangkit Kunci 33 3.3 Tampilan Rancangan Jendela Enkripsi 34 3.4 Tampilan Rancangan Jendela Dekripsi 35 3.5 Flowchart Prosedur Pembangkit Kunci 36 3.6 Flowchart Prosedur Pembangkit Bilangan Prima The Sieve of Eratosthenes 37 3.7 Flowchart Prosedur Enkripsi 38 3.8 Flowchart Prosedur Dekripsi 39 4.1 Jendela Menu Utama Aplikasi KriptoElGamal 41 4.2 Jendela Pembangkit Kunci Aplikasi KriptoElGamal 41 4.3 Jendela Enkripsi Aplikasi KriptoElGamal 42 4.4 Jendela Dekripsi Aplikasi KriptoElGamal 43 4.5 Tampilan Output Pembangkitan Kunci 47 4.6 Tampilan Output Enkripsi 48 4.7 Tampilan Layar Output Dekripsi 49