IMPLEMENTASI ELLIPTIC CURVE ELGAMAL PUBLIC KEY CRYPTOSYSTEM SEBAGAI PENGAMAN DISTRIBUSI KUNCI DARI BLOCK CIPHER AES SKRIPSI MUHAMMAD REZA NASUTION 101401028 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2015
IMPLEMENTASI ELLIPTIC CURVE ELGAMAL PUBLIC KEY CRYPTOSYSTEM SEBAGAI PENGAMAN DISTRIBUSI KUNCI DARI BLOCK CIPHER AES SKRIPSI Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer MUHAMMAD REZA NASUTION 101401028 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2015
ii PERSETUJUAN Judul : IMPLEMENTASI ELLIPTIC CURVE ELGAMAL PUBLIC KEY CRYPTOSYSTEM SEBAGAI PENG- AMAN DISTRIBUSI KUNCI DARI BLOCK CIPHER AES Kategori : SKRIPSI Nama : MUHAMMAD REZA NASUTION Nomor Induk Mahasiswa : 101401028 Program Studi : S1 ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA Diluluskan di Medan, Juli 2015 Komisi Pembimbing : Pembimbing 2 Pembimbing 1 Herriyance, ST., M.Kom M. Andri Budiman, ST., M.Comp.Sc., MEM NIP. 198010242010121002 NIP. 197510082008011011 Diketahui/disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
iii PERNYATAAN IMPLEMENTASI ELLIPTIC CURVE ELGAMAL PUBLIC KEY CRYPTOSYSTEM SEBAGAI PENGAMAN DISTRIBUSI KUNCI DARI BLOCK CIPHER AES SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya. Medan, Juli 2015 Muhammad Reza Nasution 101401028
iv PENGHARGAAN Alhamdulillah. Puji dan syukur kehadirat Allah SWT yang dengan rahmat dan karunia-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. Pada pengerjaan skripsi dengan judul Implementasi Elliptic Curve ElGamal Public Key Cryptosystem sebagai Pengaman Distribusi Kunci dari Block Cipher AES, penulis menyadari bahwa banyak pihak-pihak yang turut membantu, baik dari keluarga, sahabat, dan orang-orang terkasihi yang memotivasi dalam proses pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada: 1. Bapak Prof. Subhilhar MA, Ph.D selaku Pejabat Rektor. 2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi. 3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara dan Dosen Pembanding I. 4. Bapak M. Andri Budiman, ST., M.Comp.Sc., MEM selaku Dosen Pembimbing I yang telah banyak memberikan masukan dan saran kepada penulis dalam mendesain algoritma kriptografi yang diangkat menjadi judul skripsi ini. 5. Bapak Herriyance, ST., M.Kom selaku Dosen Pembimbing II yang telah banyak memberikan arahan, kritik dan saran kepada penulis dalam pengerjaan skripsi ini. 6. Ibu Maya Silvi Lydia B.Sc., M.Sc. selaku Dosen Pembanding II yang telah banyak memberikan arahan dan masukan yang sangat berharga kepada penulis. 7. Ayahanda Darwin Nasution dan Ibunda Wini Astuti yang mana telah banyak memberikan kasih sayang, semangat, serta dorongan kepada penulis. 8. Seluruh tenaga pengajar dan pegawai di Fakultas Ilmu Komputer dan Teknologi Informasi USU, terutama kepada Ibu Dian Rachmawati, S.Si., M.Kom yang telah memberikan ide pemilihan judul skripsi ini.
v 9. Kekasih tercinta Indah Dwi Yanti Purba yang selalu memberikan dorongan motivasi dan semangat demi terselesainya skripsi ini. 10. Teman-teman seperjuangan, khususnya kepada Ahmad Rasyidi, Mego Suntoro, Dwi Rizky Ananda, Imam Matra, Irwansyah, Safriatullah, Andri Agasi, Arif Tri Hidayat, Arifin, Wahyu Eko Putra, serta seluruh Stambuk 2010 yang tidak dapat disebut satu-persatu, yang telah banyak membantu dalam selesainya pengerjaan skripsi ini. 11. Semua pihak yang terlibat langsung maupun tidak langsung yang tidak dapat penulis ucapkan satu demi satu yang telah membantu penyelesaian laporan ini. Semoga Allah SWT melimpahkan berkah kepada kalian semua yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini. Medan, Juli 2015 Penulis, Muhammad Reza Nasution
vi ABSTRAK Kriptografi kunci publik (asimetri) yang umum digunakan, seperti RSA dan ElGamal membutuhkan kunci privat minimal sebesar 1024 sampai dengan 3072 bit untuk bisa mengenkripsi pesan dengan aman (Paar, 2010). Dengan ukuran kunci sebesar ini, tentu tidak efisien jika komputasi diterapkan pada hardware dengan spesifikasi terbatas. Kriptografi kunci publik yang berdasarkan pada kurva eliptik, seperti kriptografi ElGamal Kurva Eliptik hadir dengan kelebihan ukuran kunci privat yang jauh lebih kecil, namun menghasilkan tingkat keamanan yang sama. Pesan rahasia yang dienkripsi menggunakan kriptografi kurva eliptik sebesar 160 bit setara keamanannya dengan kunci RSA sebesar 1024 bit, di mana perbandingannya sekitar 1:6 (Paar, 2010). Dengan kelebihan ini, implementasi algoritma kriptografi kurva eliptik dapat menghemat penggunaan resource dan waktu proses yang cukup besar, sehingga dapat dijalankan pada smartphone yang saat ini banyak digunakan oleh masyarakat. Di sisi lain, kriptografi asimetri memerlukan waktu enkripsi yang jauh lebih besar dibandingkan dengan kriptografi simetri. Namun saat pengiriman, pesan acak hasil enkripsi menggunakan kriptografi simetri harus dikirim beserta kuncinya (bersifat rahasia) agar dapat didekripsi kembali. Dengan menerapkan kombinasi dari kriptografi simetri yang unggul dalam kecepatan proses dan kriptografi asimetri yang unggul dalam tingkat keamanan akan menghasilkan sistem keamanan data yang handal, di mana pesan yang akan dikirim dienkripsi terlebih dahulu menggunakan algoritma kriptografi AES (Advanced Encryption Standard), kemudian kuncinya akan dienkripsi kembali menggunakan algoritma kriptografi ElGamal Kurva Eliptik, sehingga pesan acak dan kunci acak yang dihasilkan dapat dikirim dengan aman. Hasil pengujian sistem dengan pesan sebesar 3.2 MB yang dienkripsi menggunakan kunci sebesar 32 byte, dan persamaan kurva eliptik A = 190460112, B = 187944061, dan F p = 682782445026322639, memerlukan waktu sekitar 19 detik. Kata kunci: Kriptografi Kurva Eliptik, ElGamal Kurva Eliptik, Rijndael, AES, Miller- Rabin.
vii IMPLEMENTATION OF ELLIPTIC CURVE ELGAMAL PUBLIC KEY CRYPTOSYSTEM AS KEY EXCHANGE OF AES (ADVANCED ENCRYPTION STANDARD) BLOCK CIPHER ABSTRACT Public key cryptography (asymmetric) is commonly used, such as RSA and ElGamal requires a minimum private key of 1024 up to 3072 bits to be able encrypting messages securely (Paar 2010). With a key measure of this magnitude, certainly not efficient when applied to computing hardware with limited specifications. Public key cryptography based on elliptic curves, such as Elliptic Curve cryptography ElGamal comes with oversized private keys are much smaller, but it produces the same level of security. Secret message encrypted using elliptic curve cryptography equivalent of 160 bits of security with RSA keys of 1024 bits, in which the ratio of about 1: 6 (Paar 2010). With these advantages, the implementation of elliptic curve cryptography algorithms can save resource usage and processing time is quite large, so it can run on a smartphone that is currently widely used by the public. On the other hand, asymmetric cryptography encryption takes far greater than the symmetric cryptography. But when shipping, cipher encrypted using symmetric cryptography should be sent along with the key (confidential) that can be decrypted back. By applying a combination of symmetric cryptography is superior in asymmetric cryptographic processing speed and superior in security levels will produce reliable data security system, in which the messages to be sent encrypted first using a cryptographic algorithm AES (Advanced Encryption Standard), then the key will be encrypted re-use Elliptic Curve ElGamal cryptographic algorithm, so that the cipher and cipher-key can be sent securely. Results of testing the system with the message of 3.2 MB which is encrypted using a key of 32 bytes, and an elliptic curve A = 190460112, B = 187944061, and F p = 682782445026322639, takes about 19 seconds. Keywords: Elliptic Curve Cryptography, Elliptic Curve ElGamal, Rijndael, Advanced Encryption Standard, Miller-Rabin.
viii DAFTAR ISI Hal PERSETUJUAN... ii PERNYATAAN... iii PENGHARGAAN... iv ABSTRAK... vi ABSTRACT... vii DAFTAR ISI... viii DAFTAR TABEL... xi DAFTAR GAMBAR... xii DAFTAR LAMPIRAN... xiv BAB 1: PENDAHULUAN 1.1. Latar Belakang... 1 1.2. Rumusan Masalah... 2 1.3. Ruang Lingkup Penelitian... 3 1.4. Tujuan Penelitian... 3 1.5. Manfaat Penelitian... 3 1.6. Metodologi Penelitian... 4 1.7. Sistematika Penulisan... 4 BAB 2: TINJAUAN PUSTAKA 2.1. Kriptografi... 6 2.1.1. Konsep acak (random)... 7 2.1.2. Manajemen kunci... 8 2.2. Matematika Dasar dalam Kriptografi... 8 2.2.1. Keterbagian dan GCD (Greatest Common Divisors)... 9 2.2.2. Aritmatika modular... 12 2.2.3. Bilangan prima, faktorisasi prima, dan finite field... 15 2.3. AES (Advanced Encryption Standard)... 16 2.3.1. Matematika pengantar... 17 2.3.2. State, cipher key dan jumlah putaran... 20
ix 2.3.3. Enkripsi... 21 2.3.4. Dekripsi... 25 2.3.5. Key sechedule... 28 2.4. Algoritma Percobaan Bilangan Prima Miller-Rabin... 29 2.5. Elliptic Curve (Kurva Eliptik)... 31 2.5.1. Kurva eliptik dalam finite field... 36 2.5.2. Masalah logaritma diskrit kurva eliptik... 38 2.6. Elliptic Curve ElGamal Public Key Cryptosystem... 39 BAB 3: ANALISIS DAN PERANCANGAN SISTEM 3.1. Analisis Sistem... 41 3.1.1. Analisis masalah... 41 3.1.2. Analisis kebutuhan... 42 3.1.3. Analisis proses... 42 3.2. Pemodelan Sistem... 48 3.2.1. Use-case diagram... 48 3.2.2. Activity diagram... 55 3.2.3. Sequence diagram... 56 3.3. Perancangan Sistem... 56 3.3.1. Perancangan sistem pangkalan data (database)... 56 3.3.2. Perancangan proses sistem... 57 3.3.3. Perancangan antar-muka sistem... 58 BAB 4: IMPLEMENTASI DAN PENGUJIAN SISTEM 4.1. Implementasi Sistem... 65 4.1.1. MainActivity... 65 4.1.2. MessageFragment... 66 4.1.3. FileActivity... 67 4.1.4. MyTopSecretFragment... 67 4.1.5. SettingActivity... 68 4.1.6. FeedbackFragment... 69 4.1.7. InputKeyDialog... 69 4.2. Pengujian Sistem... 70 4.2.1. Pengujian enkripsi teks (plain-text) dan file... 70 4.2.2. Pengujian pembuatan parameter dan kunci publik... 72 4.2.3. Pengujian enkripsi kunci Rijndael... 74
x 4.2.4. Pengujian dekripsi kunci acak (cipher-key)... 76 4.2.5. Pengujian dekripsi naskah acak (cipher-text dan cipher-file)... 76 4.3. Hasil Pengujian... 78 4.3.1. Hasil pengujian algoritma kriptografi Rijndael... 78 4.3.2. Hasil pengujian algoritma kriptografi ElGamal kurva eliptik... 83 BAB 5: KESIMPULAN DAN SARAN 5.1. Kesimpulan... 87 5.2. Saran... 88 DAFTAR PUSTAKA... 89
xi DAFTAR TABEL Tabel 2.1. Penjumlahan dan perkalian dalam modulo 5 14 Tabel 2.2. Perkalian group of units modulo 24 14 Tabel 2.3. Contoh representasi state (N b = 6) dan cipher key (N k = 4) 21 Tabel 2.4. Jumlah putaran N r sebagai fungsi blok terhadap panjang kunci 21 Tabel 2.5. AES S-Box 22 Tabel 2.6. Besarnya pergeseran baris pada shiftrows terhadap panjang blok 22 Tabel 2.7. AES S-Box 27 Tabel 3.1. Naratif Use-Case Enkripsi Pesan Rahasia dengan AES 49 Tabel 3.2. Naratif Use-Case Mengirim Pesan Acak (Cipher) dan Kunci Acak (Cipher-key) 50 Tabel 3.3. Naratif Use-Case Membangkitkan Kunci Privat 51 Tabel 3.4. Naratif Use-Case Membangkitkan Kunci Publik 51 Tabel 3.5. Naratif Use-Case Membangkitkan Bilangan Prima dengan Metode Miller-Rabin 52 Tabel 3.6. Naratif Use-Case Enkripsi Kunci dengan ElGamal Kurva Eliptik 52 Tabel 3.7. Naratif Use-Case Dekripsi Kunci Acak dengan ElGamal Kurva Eliptik 53 Tabel 3.8. Naratif Use-Case Dekripsi Pesan Acak (Cipher) dengan AES 54 Tabel 4.1. Representasi blok dari kunci dan pesan 79 Tabel 4.2. Expanded key yang dihasilkan dari proses key schedule 79 Tabel 4.3. Proses enkripsi pada Blok 1 79 Tabel 4.4. Cipher yang dihasilkan proses enkripsi Rijndael 81 Tabel 4.5. Hasil pengujian kecepatan enkripsi/ dekripsi algoritma Rijndael 82 Tabel 4.6. Cipher C 1 dan C 2 yang dihasilkan proses enkripsi ElGamal kurva eliptik 83 Tabel 4.7. Hasil pengujian kecepatan enkripsi/ dekripsi algoritma ElGamal kurva eliptik terhadap ukuran file 83 Tabel 4.8. Hasil pengujian kecepatan enkripsi/ dekripsi algoritma ElGamal kurva eliptik terhadap panjang bit finite field F p 85 Hal.
xii DAFTAR GAMBAR Gambar 2.1. Flowchart algoritma enkripsi AES 25 Gambar 2.2. Flowchart algoritma dekripsi AES 26 Gambar 2.3. Dua contoh kurva eliptik 31 Gambar 2.4. Hukum penambahan pada kurva eliptik 31 Gambar 2.5. Penambahan titik P dengan dirinya sendiri 33 Gambar 2.6. Garis vertikal L yang melalui P(a, b) dan P (a, b) 34 Gambar 2.7. Sistem kriptografi kunci publik ElGamal kurva eliptik 40 Gambar 3.1. Diagram Ishikawa untuk menganalisis masalah 41 Gambar 3.2. Analisis proses terhadap input yang diterima dan output yang dihasilkan 43 Gambar 3.3. Blok dari kunci "Muhammad_RezΔNst" 44 Gambar 3.4. Flowchart proses Rijndael 46 Gambar 3.5. Diagram use-case sistem keamanan data 49 Gambar 3.6. Diagram activity sistem keamanan data 55 Gambar 3.7. Diagram sequence sistem keamanan data 56 Gambar 3.8. Entity Relationship Diagram (ERD) sistem keamanan data 57 Gambar 3.9. Physical DFD sistem keamanan data 58 Gambar 3.10. Desain MainActivity 59 Gambar 3.11. Desain MessageFragment 60 Gambar 3.12. Desain FileActivity 61 Gambar 3.13. Desain MyTopSecretFragment 62 Gambar 3.14. Desain SettingActivity 63 Gambar 3.15. Desain FeedbackFragment 63 Gambar 3.16. Desain KeyInputDialog 64 Gambar 4.1. MainActivity yang memiliki navigation drawer dan option menu 66 Gambar 4.2. MessageFrament yang muncul saat memilih menu Message 66 Gambar 4.3. FileActivity yang menampilkan seluruh file 67 Gambar 4.4. MyTopSecretFragment yang menampilkan seluruh cipher-file 68 Gambar 4.5. SettingActivity untuk melakukan pengaturan 68 Gambar 4.6. FeedbackFragment untuk mengirim umpan-balik pengguna 69 Gambar 4.7. InputKeyDialog untuk menerima input kunci Rijndael 69 Gambar 4.8. Proses enkripsi teks (plain-text) pada MessageFragment 71 Gambar 4.9. Proses enkripsi file pada FileActivity 71 Gambar 4.10. Enkripsi file test. txt menghasilkan cipher-file test. zain 72 Gambar 4.11. Proses pengiriman permintaan parameter publik dari pengirim 73 Gambar 4.12. Pengiriman permintaan parameter publik melalui e-mail 73 Hal.
xiii Gambar 4.13. Pembangkitan parameter publik dengan tingkat keamanan Normal 74 Gambar 4.14. Pengiriman pesan acak (cipher-text) kepada penerima 75 Gambar 4.15. E-mail yang berisi pesan acak (cipher-text) dan kunci acak (cipher-key) 75 Gambar 4.16. Hasil dekripsi pesan rahasia mendapatkan kembali pesan asli 76 Gambar 4.17. Proses dekripsi teks acak mendapatkan kembali teks asli 77 Gambar 4.18. Proses dekripsi file acak mendapatkan kembali file asli 78 Gambar 4.19. Grafik perbandingan kecepatan enkripsi dan dekripsi algoritma kriptografi Rijndael terhadap ukuran file dan blok N b 83 Gambar 4.20. Grafik perbandingan kecepatan enkripsi dan dekripsi algoritma kriptografi ElGamal kurva eliptik terhadap ukuran file 85 Gambar 4.21. Grafik perbandingan kecepatan enkripsi dan dekripsi algoritma kriptografi ElGamal kurva eliptik terhadap besar finite field F p 86
xiv DAFTAR LAMPIRAN Source Codes 90 Curriculum Vitae 105 Hal.