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
Kategori Nama Nomor Induk Mahasiswa Program Studi Departemen Fakultas
: KRIPTOGRAFI KUNCI PUBLIK ALGORITMA ELGAMAL DENGAN METODE THE SIEVE OF ERATOSTHENES UNTUK PEMBANGKITAN BILANGAN PRIMA : SKRIPSI : SYAUVIKA LUBIS : 061401001 : SARJANA (S1) ILMU KOMPUTER : ILMU KOMPUTER : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA Diluluskan di Medan,
Komisi Pembimbing
:
Pembimbing 2
Pembimbing 1
Maya Silvi Lydia, B. Sc, MSc NIP. 197401272002122001
M. Andri Budiman, S.T, M.CompSc, MEM 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 Bab 1 Pendahuluan 1.1 Latar Belakang Masalah 1.2 Rumusan Masalah 1.3 Batasan Masalah 1.4 Tujuan Penelitian 1.5 Manfaat Penelitian 1.6 Metode Penelitian 1.7 Sistematika Penulisan
ii iii iv v vi vii ix x 1 1 2 3 3 3 4 4
Bab 2 Landasan Teori 2.1 Kriptografi 2.1.1 Tujuan Kriptografi 2.1.2 Sejarah Kriptografi 2.2 Kriptografi Kunci Publik 2.2.1 Konsep Kriptografi Kunci Publik 2.2.2 Aplikasi Penggunaan Kriptografi Kunci Publik 2.3 Algoritma ElGamal 2.3.1 Bilangan Prima 2.3.2 The Sieve of Eratosthenes 2.3.3 Relatif Prima 2.3.4 Fungsi Totient Euler 2.3.5 Akar Primitif (Primitive Root) dari Bilangan Prima p 2.3.6 Perpangkatan Modulo 2.4 NetBeans IDE
6 6 7 7 10 11 14 14 15 16 18 19 19 20 21
Bab 3 Analisis dan Perancangan Sistem 3.1 Analisis Sistem 3.1.1 Pembangkit Bilangan Prima 3.1.1.1 The Sieve of Eratosthenes 3.1.2 Algoritma Kriptografi Kunci Publik ElGamal 3.1.2.1 Proses Pembangkitan Kunci Algoritma ElGamal
23 23 24 25 26 26
viii
3.1.2.2 Proses Enkripsi Algoritma ElGamal 3.1.2.3 Proses Dekripsi Algoritma ElGamal 3.2 Perancangan Aplikasi 3.2.1 Perancangan Antar Muka 3.2.2 Flowchart 3.2.2.1 Flowchart Pembangkit Kunci 3.2.2.2 Flowchart The Sieve of Eratosthenes 3.2.2.3 Flowchart Enkripsi 3.2.2.4 Flowchart Dekripsi
27 27 31 32 35 35 36 38 39
Bab 4 Implementasi dan Pengujian 4.1 Tampilan Antar Muka 4.1.1 Jendela Menu Utama 4.1.2 Jendela Pembangkit Kunci 4.1.3 Jendela Enkripsi 4.1.4 Jendela Dekripsi 4.2 Pengujian
40 40 40 41 42 43 44
Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 5.2 Saran
50 50 51
Daftar Pustaka Lampiran
52 54
ix
DAFTAR TABEL
Halaman 2.1
2.2
2.3 2.4 3.1 4.1
Komputasi running time pembangkit bilangan prima metode standar pada komputer 3.2 GHz sistem operasi Linux Komputasi running time pembangkit bilangan prima metode The Sieve of Eratosthenes pada komputer 3.2 GHz sistem operasi Linux Prosedur Pembangkit Bilangan Prima Metode Standar Prosedur Pembangkit Bilangan Prima Metode The Sieve of Eratosthenes Tabel Bilangan Prima di antara Bilangan 1-350 Tabel Hasil Pengujian Aplikasi KriptoElGamal
17
17 17 18 28 44
x
DAFTAR GAMBAR
Halaman 2.1 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 4.1 4.2 4.3 4.4 4.5 4.6 4.7
Skema Kriptografi Nirsimetri Tampilan Rancangan Jendela Menu Utama Tampilan Rancangan Jendela Pebangkit Kunci Tampilan Rancangan Jendela Enkripsi Tampilan Rancangan Jendela Dekripsi Flowchart Prosedur Pembangkit Kunci Flowchart Prosedur Pembangkit Bilangan Prima The Sieve of Eratosthenes Flowchart Prosedur Enkripsi Flowchart Prosedur Dekripsi Jendela Menu Utama Aplikasi KriptoElGamal Jendela Pembangkit Kunci Aplikasi KriptoElGamal Jendela Enkripsi Aplikasi KriptoElGamal Jendela Dekripsi Aplikasi KriptoElGamal Tampilan Output Pembangkitan Kunci Tampilan Output Enkripsi Tampilan Layar Output Dekripsi
12 32 33 34 35 36 37 38 39 41 41 42 43 47 48 49