KRIPTOGRAFI KUNCI PUBLIK ALGORITMA ELGAMAL DENGAN METODE THE SIEVE OF ERATOSTHENES UNTUK PEMBANGKITAN BILANGAN PRIMA SKRIPSI SYAUVIKA LUBIS 061401001
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
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
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 : ILMU KOMPUTER Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan,
Komisi Pembimbing : 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,
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
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 pihak- pihak 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
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
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 EratosthenesDAFTAR ISI
14
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
2.3 Algoritma ElGamal
2.1 Kriptografi
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
6
Halaman Persetujuan ii
Pernyataan iii
1
Penghargaan iv
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel ix
Daftar Gambar x
Bab 1 Pendahuluan
1
1.1 Latar Belakang Masalah
1.2 Rumusan Masalah
4 Bab 2 Landasan Teori
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
6
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
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
DAFTAR GAMBAR
42
39
4.1 Jendela Menu Utama Aplikasi KriptoElGamal
41
4.2 Jendela Pembangkit Kunci Aplikasi KriptoElGamal
41
4.3 Jendela Enkripsi Aplikasi KriptoElGamal
4.4 Jendela Dekripsi Aplikasi KriptoElGamal
38
43
4.5 Tampilan Output Pembangkitan Kunci
47
4.6 Tampilan Output Enkripsi
48
4.7 Tampilan Layar Output Dekripsi
3.8 Flowchart Prosedur Dekripsi
3.7 Flowchart Prosedur Enkripsi
Halaman
3.3 Tampilan Rancangan Jendela Enkripsi
2.1 Skema Kriptografi Nirsimetri
12
3.1 Tampilan Rancangan Jendela Menu Utama
32
3.2 Tampilan Rancangan Jendela Pebangkit Kunci
33
34
37
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
49