IMPLEMENTASI ALGORITMA RC4-P1 DAN ALGORITMA ELGAMAL DALAM SKEMA HYBRID CRYPTOSYSTEM
UNTUK PENGAMANAN DATA
SKRIPSI
INDAH PERMATA SYAHNAN 161401086
PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2020
IMPLEMENTASI ALGORITMA RC4-P1 DAN ALGORITMA ELGAMAL DALAM SKEMA HYBRID CRYPTOSYSTEM
UNTUK PENGAMANAN DATA
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
INDAH PERMATA SYAHNAN 161401086
PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2020
PERNYATAAN
IMPLEMENTASI ALGORITMA RC4-P1 DAN ALGORITMA ELGAMAL DALAM SKEMA HYBRID CRYPTOSYSTEM UNTUK
PENGAMANAN DATA
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 24 Agustus 2020
Indah Permata Syahnan
161401086
PENGHARGAAN
Alhamdulillah, Puji dan syukur kehadirat Allah SWT, yang hanya dengan 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 Universitas Sumatera Utara.
Pada kesempatan ini penulis juga ingin memberikan ucapan terima kasih yang sebesar-besarnya kepada semua pihak yang telah membantu penulis dalam memotivasi pengerjaannya. Ucapan terima kasih penulis sampaikan kepada:
1. Bapak Prof. Dr. Runtung Sitepu, S.H, M.Hum sebagai Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc sebagai Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
4. Bapak M. Andri Budiman, S.T, M.Comp.Sc, M.E.M sebagai Dosen Pembimbing I yang telah memberikan arahan, kritik, saran dan motivasi yang luar biasa kepada penulis serta bersedia dalam mendengarkan keluh dan kesah penulis selama pengerjaan skripsi ini.
5. Ibu Dian Rachmawati, S.Si, M.Kom sebagai Dosen Pembimbing II yang telah memberikan arahan, kritik, saran dan motivasi yang sangat berharga kepada penulis dalam pengerjaan skripsi ini.
6. Bapak Herriyance, S.T, M.Kom yang telah memberikan kritik dan saran terhadap skripsi ini.
7. Ibu Elviwani, S.Kom, M.Kom yang telah memberikan kritik dan saran terhadap skripsi ini.
8. Seluruh Dosen serta staf Pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara
9. Kepada dua orang yang paling berharga dalam hidup penulis yaitu Syahril dan Nani Rosnani yang telah memberikan doa, dukungan, kasih sayang, serta motivasi kepada penulis.
10. Kepada abang dan kakak tersayang Ahmad Prima Syahnan, Masita, Fadly Heriadi Nasution dan Dwi Puspita Sari Syahnan yang telah memberikan kasih sayang, motivasi, kritik dan saran yang luar biasa kepada penulis.
11. Sahabat seperjuangan yang telah menemani dalam memberikan saran dan motivasi serta hiburan selama masa perkuliahan, Rizki Nofianty Tanjung, Rini Natalia Sinaga, T. Amadhea Irvida, Nazli Alvira Siregar, Azizah Nur Lubis, Dwi Fimoza, Ika Nurul Faradilla, Annissa Kamila Mardhiyyah, Mega Ayuamartha Putri, Selina Amelia Savittri, Syarifah Kemala Putri dan Mirta Amalia.
12. Teman-teman selama penulis berkuliah S-1 Ilmu Komputer USU, keluarga besar UKMI Al Khuwarizmi Fasilkom-TI USU, Keluarga Besar IKLC dan Generasi Baru Indonesia (GENBI) yang telah memenuhi ruang dan memberikan warna warni selama masa perkuliahan penulis.
13. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu-persatu yang telah membantu penyelesaian skripsi ini.
Semoga semua kebaikan, bantuan, perhatian, serta dukungan yang telah diberikan kepada penulis mendapatkan berkat yang melimpah dari Tuhan Yang Maha Kuasa.
Medan, 24 Agustus 2020 Penulis,
Indah Permata Syahnan
ABSTRAK
Dokumen adalah sarana untuk menyampaikan informasi secara tertulis dari satu pihak ke pihak lainnya. Pada umumnya, masyarakat menggunakan file yang berekstensi (*.docx) untuk bertukar data. Sehingga, dibutuhkan suatu aplikasi yang dapat mengamankan isi informasi pa. Untuk menjaga keamanan data menggunakan teknik kriptografi. Pada penelitian ini solusi yang diberikan adalah mengimplementasikan Algoritma RC4-P1 dan Algoritma ElGamal dalam Skema Hybrid Cryptosystem. Algoritma RC4-P1 melakukan proses enkripsi dan dekripsi file kemudian kunci algoritma RC4-P1 dienkripsi dan didekripsi menggunakan algoritma ElGamal. Pada penelitian ini disimpulkan bahwa waktu enkripsi dan dekripsi pada algoritma RC4-P1 dan algoritma ElGamal berbanding lurus secara linear dengan panjang karakter. Dan waktu yang dibutuhkan untuk proses enkripsi Algoritma RC4-P1 dan Algoritma ElGamal lebih lama daripada melakukan proses dekripsi.
Kunci: Docx, ElGamal, Hybrid, Kriptografi, RC4-P1.
IMPLEMENTATION OF RC4-P1 ALGORITHM AND ELGAMAL ALGORITHM IN HYBRID CRYPTOSYSTEM SCHEME FOR
DATA SECURITY
ABSTRACT
Document is a tool to convey information in writing from one person to another person. In general, people use files with extensions (*. Docx) to exchange data.
So, we need an application that can secure the information. To maintain data security using cryptographic techniques. In this study the solution given is to implement the RC4-P1 Algorithm and the ElGamal Algorithm in the Hybrid Cryptosystem Scheme. RC4-P1 algorithm performs the process of encrypting and decrypting files then the key of RC4-P1 algorithm is encrypted and decrypted using the ElGamal algorithm. In this study it was concluded that the time of encryption and decryption on the RC4-P1 algorithm and ElGamal algorithm are linearly proportional to the length of character. And the time needed for the encryption process of RC4-P1 Algorithm and ElGamal Algorithm is longer than the decryption process.
Keywords: Docx, ElGamal, Hybrid, Cryptography, RC4-P1.
DAFTAR ISI
Halaman
PERSETUJUAN ii
PERNYATAAN iii
UCAPAN TERIMA KASIH 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 3
1.3. Batasan Masalah 3
1.4. Tujuan Penelitian 3
1.5. Manfaat Penelitian 4
1.6. Metode Penelitian 4
1.7. Sistematika Penulisan 5
BAB 2 LANDASAN TEORI
2.1. Kriptografi 7
2.1.1. Defenisi Kriptografi 7
2.1.2. Tujuan Kriptografi 8
2.1.3. Jenis-Jenis Algoritma Kriptografi 8
2.1.3.1. Algoritma Simetris 8
2.1.3.2. Algoritma Asimetris 9
2.2. Metode Hybrid Cryptosystem 9
2.3. Algoritma RC4-P1 10
2.3.1. Key Scheduling Algorithm 10
2.3.2. Pseudo-Random Generation Algorithm 15
2.4. Algoritma ElGamal 20
2.4.1. Landasan Matematika Algoritma ElGamal 20
2.4.2. Proses Pembentukan Kunci 23
2.4.2.1. Penentuan Bilangan Prima Aman Besar 23
2.4.2.2. Penentuan Emelen Primitif 24
2.4.2.3. Pembentukan Kunci 24
2.4.3. Proses Enkripsi 25
2.4.4. Proses Dekripsi 28
2.5. Penelitian Yang Relevan 29
BAB 3 ANALISIS DAN PERANCANGAN 31
3.1. Analisis Sistem 31
3.1.1. Analisis Masalah 31
3.1.2. Analisis Kebutuhan 32
3.1.2.1. Kebutuhan Fungsional 32
3.1.2.2. Kebutuhan Nonfungsional 33
3.1.3. Diagram Umum Sistem 34
3.2. Pemodelan Sistem 35
3.2.1. Use Case Diagram 35
3.2.2. Diagram Aktivitas 36
3.2.2.1.Diagram Aktivitas Pembangkit Kunci 36 3.2.2.2.Diagram Aktivitas Proses Enkripsi 37 3.2.2.3.Diagram Aktivitas Proses Dekripsi 38
3.2.3. Sequence Diagram 39
3.2.4. Flowchart 40
3.2.4.1.Flowchart Sistem 40
3.2.4.2.Flowchart Pembangkit Bilangan Prima 43
3.2.4.3.Flowchart Algoritma ElGamal 44
3.2.4.4.Flowchart Algoritma RC4-P1 46
3.3. Perancangan Interface 48
3.3.1. Halaman Utama 49
3.3.2. Halaman Menu 49
3.3.3. Halaman Pembangkit Kunci 50
3.3.4. Halaman Enkripsi 51
3.3.5. Halaman Dekripsi 53
3.3.6. Halaman Tentang 54
BAB 4 IMPLEMENTASI DAN PENGUJIAN 56
4.1. Implementasi 56
4.1.1. Halaman Utama 56
4.1.2. Halaman Menu 56
4.1.3. Halaman Pembangkit Kunci 57
4.1.4. Halaman Enkripsi 58
4.1.5. Halaman Dekripsi 59
4.1.6. Halaman Tentang 60
4.2. Pengujian Sistem 60
4.2.1. Pengujian Pembangkit Kunci 61 4.2.2. Pengujian Enkripsi Algoritma RC4-P1 63 4.2.3. Pengujian Enkripsi Algoritma ElGamal 74 4.2.4. Pengujian Dekripsi Algoritma ElGamal 76 4.2.5. Pengujian Dekripsi Algoritma RC4-P1 78 4.2.6. Waktu Proses (Real Running Time) 84 4.2.6.1. Waktu Proses Enkripsi Algoritma RC4-P1 84 4.2.6.2. Waktu Proses Enkripsi Algoritma ElGamal 85
4.2.6.3. Waktu Proses Dekripsi Algoritma ElGamal 86 4.2.6.4. Waktu Proses Dekripsi Algoritma RC4-P1 87
BAB 5 PENUTUP 88
5.1. Kesimpulan 89
5.2. Saran 89
DAFTAR PUSTAKA 91
LAMPIRAN
DAFTAR TABEL
Halaman
Tabel 2.1. Larik 256 Byte Hasil Perhitungan Tahap Key Scheduling 14
Tabel 2.2. Penyelesaian GCD 22
Tabel 2.3. Penyelesaian Inverse Modulo 22
Tabel 2.4. Penyelesaian Relatif Prima 23
Tabel 2.5. Perhitungan Elemen Primitif 24
Tabel 2.6. Konversi Pesan Kedalam Kode ASCII 26
Tabel 2.7. Perhitungan Proses Enkripsi 27
Tabel 2.8. Perhitungan Proses Dekripsi 28
Tabel 4.1. Larik 256 Byte Hasil Perhitungan Tahap Key Scheduling 67 Tabel 4.2. Konversi Kunci Kedalam Kode ASCII 74 Tabel 4.3. Perhitungan Proses Enkripsi Algoritma ElGamal 76 Tabel 4.4. Perhitungan Proses Dekripsi Algoritma ElGamal 78 Tabel 4.5. Waktu Proses Pengujian Enkripsi Algoritma RC4-P2 85 Tabel 4.6. Waktu Proses Pengujian Enkripsi Algoritma ElGamal 86 Tabel 4.7. Waktu Proses Pengujian Dekripsi Algoritma ElGamal 87 Tabel 4.8. Waktu Proses Pengujian Dekripsi Algoritma RC4-P1 86
DAFTAR GAMBAR
Halaman
Gambar 2.1. Skema Proses Enkripsi dan Dekripsi 7
Gambar 2.2. Proses Enkripsi dan Dekripsi Pada Kunci Simetris 9 Gambar 2.3. Proses Enkripsi dan Dekripsi Pada Kunci Asimetris 9
Gambar 2.4. Prinsip Kerja Hybrid Cryptosystem 10
Gambar 3.1. Diagram Ishikawa Masalah Penelitian 32
Gambar 3.2. Diagram Umum Sistem 34
Gambar 3.3. Diagram Use Case Sistem 35
Gambar 3.4. Diagram Aktivitas Proses Pembangkit Kunci 36 Gambar 3.5. Diagram Aktivitas Proses Enkripsi 37 Gambar 3.6. Diagram Aktivitas Proses Dekrips i 38
Gambar 3.7. Diagram Sequence Sistem 39
Gambar 3.8. Flowchart Pembangkit Kunci 40
Gambar 3.9. Flowchart Enkripsi 41
Gambar 3.10. Flowchart Dekripsi 42
Gambar 3.11. Flowchart Pembangkit Bilangan Prima 43
Gambar 3.12. Flowchart Pembangkit Kunci Algoritma ElGamal 44
Gambar 3.13. Flowchart Enkripsi Algoritma ElGamal 45
Gambar 3.14. Flowchart Dekripsi Algoritma ElGamal 45
Gambar 3.15. Flowchart Enkripsi Algoritma RC4-P1 46
Gambar 3.16. Flowchart Dekripsi Algoritma RC4-P1 47
Gambar 3.17. Flowchart KSA RC4-P1 47
Gambar 3.18. Flowchart PRGA RC4-P1 48
Gambar 3.19. Perancangan Interface Halaman Utama 49
Gambar 3.20. Perancangan Interface Halaman Menu 50
Gambar 3.21. Perancangan Interface Halaman Pembangkit Kunci 51 Gambar 3.22. Perancangan Interface Halaman Enkripsi 52 Gambar 3.23. Perancangan Interface Halaman Dekripsi 53
Gambar 3.24. Perancangan Interface Halaman Tentang 55
Gambar 4.1. Tampilan Halaman Utama 56
Gambar 4.2. Tampilan Halaman Menu 57
Gambar 4.3. Tampilan Halaman Pembangkit Kunci 57
Gambar 4.4. Tampilan Halaman Enkripsi 58
Gambar 4.5. Tampilan Halaman Dekripsi 59
Gambar 4.6. Tampilan Halaman Tentang 60
Gambar 4.7. Hasil Nilai Pembangkit Kunci 61
Gambar 4.8. Hasil Enkripsi Algoritma RC4-P1 63
Gambar 4.9. Hasil Enkripsi Kunci Algoritma ElGamal 74 Gambar 4.10. Hasil Dekripsi Kunci Algoritma ElGamal 76
Gambar 4.11. Hasil Dekripsi Algoritma RC4-P1 78
Gambar 4.12. Grafik Hubungan Panjang Plaintext dan Waktu Proses Enkripsi 85 Gambar 4.13. Grafik Hubungan Panjang Key dan Waktu Proses Enkripsi 86 Gambar 4.14. Grafik Hubungan Panjang Key dan Waktu Proses Dekripsi 87 Gambar 4.15. Grafik Hubungan Panjang Plaintext dan Waktu Proses Dekripsi 88
DAFTAR LAMPIRAN
Halaman
Listing Program A-1
Curriculum Vitae B-1
BAB 1 PENDAHULUAN
1.1 Latar Belakang
Teknologi yang semakin berkembang, akan mempermudah masyarakat dalam mengirimkan pesan. Antar kota antar wilayah bahkan antar benua bukan merupakan suatu kendala lagi dalam mengirimkan pesan. Pada umumnya pesan yang dikirimkan berupa dokumen. Dokumen merupakan alat atau sarana untuk menyampaikan pernyataan ataupun informasi secara tertulis dari satu pihak ke pihak lainnya. Saat ini, perkembangan pesan teks semakin pesat dan orang-orang lebih banyak menggunakan dokumen elektronik. Dokumen elektronik adalah informasi elektronik yang dibuat, diteruskan, dikirimkan, diterima, atau disimpan dalam bentuk analog, digital, atau sejenisnya. Yang dapat dilihat, ditampilkan melalui komputer atau sistem elektronik lainnya. Pada umumnya, masyarakat menggunakan file yang berekstensi (*.docx) untuk bertukar data. File berbasis (*.docx) hadir di Microsoft Word, tepatnya versi Microsoft Office Word 2007.
Oleh karena itu, muncul tuntutan untuk adanya suatu aplikasi yang dapat mengamankan isi informasi atau pesan pada file docx tersebut. Ada beberapa cara dan teknik yang digunakan untuk menjaga keamanan data dari sebuah informasi yang dikirim. Salah satunya adalah menerapkan ilmu kriptografi.
Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari pihak ketiga. Secara umum ada dua tipe algoritma kriptografi berdasarkan kuncinya yaitu algoritma simetris dan algoritma asimetris.
Algoritma simetris adalah algoritma yang memiliki kunci enkripsi dan dekripsi yang sama, sedangkan untuk algoritma asimetris terdiri atas dua buah kunci yaitu kunci publik untuk melakukan enkripsi sedangkan kunci rahasia untuk melakukan dekripsi.
Algoritma RC4-P1 diusulkan pada tahun 2018 yang dirancang oleh Poonam Jindal and Shikhar Makkar. Algoritma RC4-P1 adalah algoritma kunci simetris dan merupakan varian dari Algoritma RC4. Pada algoritma ini memiliki kelebihan yaitu memerlukan waktu yang relatif lebih singkat untuk melakukan proses enkripsi dan dekripsi, namun dalam pendistribusian kunci RC4-P1 memiliki kelemahan yaitu menggunakan kunci tunggal. Prosedur utama pada algoritma RC4-P1 terdiri dari proses Key Scheduling Algorithm (KSA), Pseudo-Random Generation Algorithm (PRGA), enkripsi dan dekripsi.
Algoritma ElGamal adalah algoritma kunci asimetris yang ditemukan pada tahun 1985 oleh ilmuwan Mesir yaitu Taher ElGamal. Algoritma ini mempunyai kelebihan terletak pada kesulitan perhitungan logaritma diskrit pada modulo prima yang besar, sehingga upaya untuk menyelesaikan masalah logaritma ini menjadi sulit untuk dipecahkan. Algoritma ini memiliki kelebihan yaitu pembangkitan kunci yang menggunakan logaritma diskrit dan metode enkripsi dekripsi yang menggunakan proses komputasi yang besar sehingga hasil enkripsinya berukuran berkali-kali lipat dari ukuran semula. Kekurangan algoritma ini adalah membutuhkan resource besar karena ciphertext yang dihasilkan berkali-kali lipat dari panjang plaintext sehingga memerlukan waktu yang relatif lebih lama untuk melakukan proses enkripsi maupun dekripsi.
Dengan melihat kelebihan dan kekurangan dari Algortima RC4-P1 dan Algoritma ElGamal, penulis menggabungkan keduanya untuk mengamankan pesan atau data sehingga tingkat keamanan dan kerahasian data menjadi lebih baik. Berdasarkan latar belakang yang telah diuraikan, maka pada kesempatan kali ini, penulis ingin melakukan penelitian dengan judul "Implementasi Algoritma RC4-P1 dan Algoritma ElGamal dalam Skema Hybrid Cryptosystem untuk Pengamanan Data”.
1.2 Rumusan Masalah
Dokumen elektronik yang berekstensi docx adalah dokumen yang sering digunakan oleh masyarakat untuk bertukar data. Sehingga, muncul tuntutan untuk
adanya suatu aplikasi yang dapat mengamankan isi informasi atau pesan pada file docx tersebut. Oleh karena itu, untuk meningkatkan keamanan file dan mempercepat proses pengiriman dilakukan Hybrid Cryptosystem dengan menggunakan Algoritma RC4-P1 dan Algoritma ElGamal. Algoritma RC4-P1 digunakan untuk proses enkripsi dan dekripsi file sedangkan algoritma elgamal digunakan untuk proses enkripsi dan dekripsi kunci.
1.3 Batasan Masalah
Dalam melakukan penelitian ini, peneliti membatasi ruang masalah yang akan diteliti. Batasan-batasan masalah yang digunakan adalah :
1. Jenis file yang digunakan adalah file yang berekstensi (*.docx) dan hanya mengenkripsi berupa string (tidak mengenkripsi gambar dan tabel).
2. Menggunakan Algoritma RC4-P1 untuk melakukan proses enkripsi dan dekripsi file dan Algoritma ElGamal untuk melakukan proses enkripsi dan dekripsi kunci.
3. Karakter yang digunakan pada plaintext dan ciphertext adalah kode ASCII (American Standart Code for Information Interchange) Printable Character 256 karakter (8 bit).
4. Menghitung real running time (milisecond).
5. Prime Generator menggunakan Teorema Fermat.
6. Greatest Common Divisor menggunakan Metode Square And Multiply.
7. Tidak melakukan cryptanalysis.
8. Bahasa pemrograman yang digunakan adalah C#.
1.4 Tujuan Penelitian
1. Untuk mengimplementasikan Hybrid Cryptosystem menggunakan Algoritma RC4-P1 dan Algoritma ElGamal untuk Pengamanan Data.
2. Untuk memperoleh sebuah sistem yang dapat mengamankan data.
3. Untuk mengetahui waktu nyata (Real Time) enkripsi dan dekripsi dalam millisecond.
1.5 Manfaat Penelitian
Manfaat yang diperoleh dari penelitian ini antara lain :
1. Penelitian ini diharapkan mampu memberikan kemudahan kepada masyarakat dalam merahasiakan pesan yang mereka kirimkan dan mendapatkan kembali pesan seperti semula.
2. Memperoleh sebuah sistem yang dapat mengamankan data.
1.6 Metode Penelitian
Metode penelitian yang dilakukan dalam penelitian ini adalah:
1. Studi Pustaka
Pada tahap awal ini, penulis akan mencari, meneliti, mempelajari dan menelaah dari berbagai referensi berdasarkan topik judul yang telah dipaparkan dengan tujuan untuk mengumpulkan informasi dan data-data yang dibutuhkan dalam penelitian ini. Pencarian referensi tersebut meliputi buku- buku, artikel ilmiah, dan penelitian-penelitian lainnya dalam bentuk jurnal yang berhubungan dengan Algoritma RC4-P1, Algoritma ElGamal dan Skema Hybrid Cryptosystem.
2. Analisis dan Perancangan
Berdasarkan batasan masalah, penulis melakukan analisa terhadap apa saja yang akan dibutuhkan dalam penelitian untuk segera dirancang dalam sebuah Diagram Ishikawa, Diagram Umum Sistem, Use Case Diagram, Activity Diagram, Sequence Diagram, Flowchart dan perancangan tampilan form pada aplikasi.
3. Implementasi
Pada tahap implementasi, penulis membuat sebuah sistem dengan menggunakan bahasa pemrograman C# sesuai dengan diagram alir yang telah dirancang.
4. Pengujian
Pada tahap pengujian ini, sistem yang telah dirancang dilakukan uji coba untuk melakukan Skema Hybrid Cryptosystem terhadap Algoritma RC4-P1
dan Algoritma ElGamal, dengan menggunakan file teks yang berekstensi
*.docx.
5. Dokumentasi
Pada tahap ini, penelitian yang telah dilakukan, didokumentasikan mulai dari tahap analisis sampai kepada pengujian dalam bentuk skripsi.
1.7 Sistematika Penulisan
Agar pembahasan lebih sistematis, maka tulisan sistematika penulisan skripsi ini terdiri dari lima bab yaitu :
BAB 1 PENDAHULAN
Bab ini berisi tentang latar belakang masalah pemilihan judul skripsi “Kombinasi Algoritma RC4-P1 dan Algoritma ElGamal dalam Skema Hybrid Cryptosystem untuk Pengamanan Data”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian dan sistematika penulisan.
BAB 2 LANDASAN TEORI
Bab ini berisi tentang teori kriptografi , dasar dasar perhitungan pada algoritma RC4-P1 dan algoritma ElGamal, serta mekanisme pada skema Hybrid Cryptosystem.
BAB 3 ANALISIS DAN PERANCANGAN
Berisi analisis terhadap algoritma RC4-P1 dan algoritma ElGamal dalam skema Hybrid Cryptosystem yang dirancang menggunakan Diagram Ishikawa, Diagram Umum Sistem, Use Case Diagram, Activity Diagram, Sequence Diagram, Flowchart dan perancangan tampilan form pada aplikasi.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi tentang pembuatan sistem sebagai implementasi yang telah dianalisis dan dirancang serta
pembahasan pengujian sistem dan hasil analisis pengujian sistem.
BAB 5 KESIMPULAN DAN SARAN
Bab terakhir ini berisi tentang kesimpulan akhir dari penelitian yang telah dilakukan serta saran saran hasil akhir yang telah diperoleh sehingga dapat membantu pengembangan penelitian lebih lanjut.
BAB 2
LANDASAN TEORI
2.1 Kriptografi
2.1.1 Definisi Kriptografi
Kriptografi (Cryptography) berasal dari bahasa yunani, Cryptos artinya secret atau rahasia sedangkan graphein berarti: writing atau tulisan. Sehingga kriptografi berarti secret writing atau tulisan rahasia. Menurut Bruce Scheiner (1996) : Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan sedangkan menurut Menezes (1996) : Kriptografi adalah ilmu yang mempelajari teknik- teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, otentikasi dan anti penyangkalan. Secara terminologi, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim sampai pesan tersebut diterima (Mollin, 2007).
Gambar 2.1. Skema Proses Enkripsi dan Dekripsi
Pesan awal dalam sistem kriptografi disebut juga sebagai plaintext (disimbolkan dengan p) yaitu pesan yang hendak dikirimkan yang berisi data asli.
Ciphertext (disimbolkan dengan c) yaitu tidak bisa dibaca karena berisi karakter- karakter yang tidak memiliki makna (arti). Kunci yang dikirimkan pengirim kepada penerima pesan yang kemudian untuk melakukan proses dekripsi disebut dengan key (disimbolkan dengan k). Enkripsi yaitu proses pengubahan plaintext menjadi ciphertext disimbolkan dengan E(p) sedangkan dekripsi yaitu mengubah ciphertext menjadi plaintext, sehingga menghasilkan data awal atau asli yang dapat disimbolkan dengan D(c).
2.1.2 Tujuan Kriptografi
Tujuan dari kriptografi adalah antara lain (Bellare & Rogaway, 2005) :
1. Kerahasiaan (Secrecy), yaitu layanan yang digunakan untuk menjaga dan merahasiakan isi informasi yang dikirim maupun diterima dan hanya dapat diakses oleh pihak yang memiliki kepentingan dengan informasi tersebut.
2. Integritas (Integrity), merupakan layanan memiliki kemampuan untuk menjaga keaslian data dan mendeteksi manipulasi pesan oleh pihak yang tidak bertanggung jawab seperti penyisipan, penghapusan, dan pengsubsitusian data.
3. Otentikasi (Authentication), adalah layanan yang berhubungan dengan identifikasi dan verifikasi. Pihak yang saling bertukar pesan harus dapat mengotentikasi satu sama lainnya sehingga dapat memastikan kebenaran pesan yang diterimanya.
4. Nirpenyangkalan (Non-Repudiation), merupakan layanan untuk menghindari adanya penyangkalan agar pesan maupun kunci yang dikirimkan adalah benar-benar pesan dan kunci yang asli.
2.1.3 Jenis-Jenis Algoritma Kriptografi
Algoritma kriptografi dapat diklasifikasikan menjadi dua jenis berdasarkan kuncinya, yaitu algoritma simetris dan algoritma asimetris (Prayudi, 2005).
2.1.3.1 Algoritma Simetris
Algoritma ini disebut simetris karena memiliki key atau kunci yang sama dalam proses enkripsi dan dekripsi sehingga algoritma ini juga sering disebut algoritma kunci tunggal atau algoritma satu kunci. Key dalam algoritma ini bersifat rahasia atau private key sehingga algoritma ini biasa disebut dengan algoritma kunci rahasia (Prayudi, 2005). Dalam penerapan skema kriptografi simetris diharuskan mencari cara yang aman untuk memberikan kunci kepada penerima pesan, dapat dilihat pada gambar 2.2. Contoh algoritma yang menggunakan kriptografi simetris adalah Stream Cipher, Block Cipher, RC4, RC4A, RC4-P1, RC5, VMPC, MDTM
Cipher, Double Trasposition, Double Playfair, Spritz, Beaufort, Blowfish, Twofish, DES (Data Encryption Standard) dan algoritma lainnya.
Gambar 2.2. Proses Enkripsi dan Dekripsi pada Kunci Simetris
2.1.3.2 Algoritma Asimetris
Algoritma ini disebut asimetris karena kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Algoritma asimetris ini menggunakan dua kunci yaitu kunci publik (public key) dan kunci rahasia (private key). Kunci yang digunakan untuk proses enkripsi adalah kunci publik. Sedangkan kunci untuk proses dekripsi menggunakan kunci rahasia. Contoh algoritma yang menggunakan kriptografi asimetris adalah ElGamal, RSA, Knapsack, Rabin dan algoritma lainnya.
Gambar 2.3. Proses Enkripsi dan Dekripsi pada Kunci Asimetris
2.2 Metode Hybrid Cryptosystem
Metode Hibrida (Hybrid) merupakan metode yang mengkombinasikan antara algoritma simetris dan algoritma asimetris. Kelebihan dari metode hibrida adalah algoritma simetris dengan proses data yang cepat ditambah algoritma asimetris dengan transfer kunci yang mudah menyebabkan peningkatan kecepatan dan keamanan yang baik (Annelis, 2010). Metode ini menerapkan kriptosistem yang
sangat aman dengan proses enkripsi maupun dekripsi pesan menggunakan algoritma simetris dan proses pertukaran kunci menggunakan algoritma asimetris (Gutub & Khan, 2012).
Gambar 2.4. Prinsip Kerja Hybrid Cryptosystem
2.3 Algoritma RC4-P1
RC4-P1 merupakan sebuah varian dari RC4 yang mengimplementasikan sponge- based construction dalam penghasilan kunci rahasia dan proses enkripsi.
Algoritma RC4-P1 adalah algoritma pada kriptografi yang termaksud dalam algoritma simetris. Prosedur utama pada algoritma RC4-P1 terdiri dari proses Key Scheduling Algorithm (KSA), Pseudo-Random Generation Algorithm (PRGA), enkripsi dan dekripsi.
2.3.1 Key Scheduling Algorithm (KSA)
Key-Scheduling Algorithm (KSA) pada algoritma RC4-P1 ini sama dengan algoritma RC4 yaitu menghasilkan permutasi dari 256 kemungkinan bytes yang ada pada array S. Dimana S adalah permutasi 256-byte yang diinisialisasikan KSA, variabel i dan j merupakan variabel integer yang mempunyai nilai awal 0.
Adapun key adalah kunci rahasia yang akan dimasukkan.
for i=0 to 255 do S[i]=i
T[i]=k[i mod keylength]
end for
j=0
for i=0 to 255 do j=(j+S[i]+T[i]) mod n swap(S[i],S[i+j+1]) end for
Contoh :
Plaintext = “IND”
Key = “$7)”
Kunci yang akan dimasukkan adalah “$7)”.
Maka panjang kuncinya adalah 3 karakter dengan : Larik kunci key[0] = “$” = 36
Larik kunci key[1] = “7” = 55 Larik kunci key[2] = “)” = 41 Untuk i = 0
S [0] = 0
T [0] = k [0 mod 3]
= k [0]
= 36 Untuk i = 1
S [1] = 1
T [1] = k [1 mod 3]
= k [1]
= 55 Untuk i = 2
S [2] = 2
T [2] = k [2 mod 3]
= k [2]
= 41 Untuk i = 3
S [3] = 3
T [3] = k [3 mod 3]
= k [0]
= 36 Untuk i = 4
S [4] = 4
T [4] = k [4 mod 3]
= k [1]
= 55 Untuk i = 5
S [5] = 5
T [5] = k [5 mod 3]
= k [2]
= 41
Dilanjutkan sampai i = 255 j = 0
Untuk i = 0
j = (0+S [0]+T[0]) mod 256 = (0+0+36) mod 256 = 36 mod 256 = 36
swap(S[0],S[0+36+1])=swap(S[0],S[37]) S[0] = 37
S[37] = 0 Untuk i = 1
j = (36+S[1]+T[1]) mod 256 = (36+1+55) mod 256 = 92 mod 256
= 92
swap(S[1],S[1+92+1])=swap(S[1],S[94]) S[1] = 94
S[94] = 1 Untuk i = 2
j = (92+S[2]+T[2]) mod 256 = (92+2+41) mod 256 = 135 mod 256 = 135
swap(S[2],S[2+135+1])=swap(S[2],S[138]) S[2] = 138
S[138] = 2 Untuk i = 3
j = (135+S[3]+T[3]) mod 256 = (135+3+36) mod 256 = 174 mod 256
= 174
swap(S[3],S[3+174+1])=swap(S[3],S[178]) S[3] = 178
S[178] = 3 Untuk i = 4
j = (174+S[4]+T[4]) mod 256 = (174+4+55) mod 256 = 233 mod 256
= 233
swap(S[4],S[4+233+1])=swap(S[4],S[238]) S[4] = 238
S[238] = 4 Untuk i = 5
j = (233+S[5]+T[5]) mod 256 = (233+5+41) mod 256 = 279 mod 256
= 23
swap(S[5],S[5+23+1])=swap(S[5],S[29]) S[5] = 29
S[29] = 5
Dilanjutkan sampai i = 255
Tabel 2.1. Larik 256 Byte Hasil Perhitungan Tahap Key Scheduling
0 1 2 3 4 5 6 7 8 9 10 11 12 13
54 126 85 123 238 154 59 116 129 231 19 92 14 212 14 15 16 17 18 19 20 21 22 23 24 25 26 27 134 114 188 221 75 44 131 189 1 76 137 218 30 11 28 29 30 31 32 33 34 35 36 37 38 39 40 41 9 225 32 119 187 94 91 168 83 106 107 113 10 162 42 43 44 45 46 47 48 49 50 51 52 53 54 55 26 73 60 109 64 57 253 121 102 153 97 165 37 217 56 57 58 59 60 61 62 63 64 65 66 67 68 69 209 104 161 72 67 77 47 35 233 90 84 2 164 61 70 71 72 73 74 75 76 77 78 79 80 81 82 83 6 8 71 170 135 108 198 12 176 234 98 93 80 223 84 85 86 87 88 89 90 91 92 93 94 95 96 97 88 229 101 182 193 163 33 133 22 141 132 38 157 120 98 99 100 101 102 103 104 105 106 107 108 109 110 111 96 173 197 48 130 166 255 27 124 186 31 240 16 160 112 113 114 115 116 117 118 119 120 121 122 123 124 125 140 100 235 181 145 150 232 196 112 191 139 82 247 224 126 127 128 129 130 131 132 133 134 135 136 137 138 139 43 184 178 185 190 251 62 254 180 70 51 36 103 156 140 141 142 143 144 145 146 147 148 149 150 151 152 153 66 18 192 17 171 74 21 5 40 89 53 159 177 99 154 155 156 157 158 159 160 161 162 163 164 165 166 167
29 15 222 4 248 179 228 143 213 78 125 242 87 172
168 169 170 171 172 173 174 175 176 177 178 179 180 181 136 152 210 34 7 226 117 245 194 58 236 205 174 20 182 183 184 185 186 187 188 189 190 191 192 193 194 195 201 148 28 250 227 158 249 243 46 203 52 86 200 246 196 197 198 199 200 201 202 203 204 205 206 207 208 209 142 79 56 155 39 206 237 219 204 23 69 110 63 122 210 211 212 213 214 215 216 217 218 219 220 221 222 223 147 65 128 149 111 55 49 214 95 105 41 195 25 241 224 225 226 227 228 229 230 231 232 233 234 235 236 237 115 42 151 81 45 138 208 175 169 244 144 50 215 230 238 239 240 241 242 243 244 245 246 247 248 249 250 251 13 202 0 3 127 207 239 24 220 183 211 199 216 252 252 253 254 255
167 146 118 68
2.3.2 Pseudo-Random Generation Algorithm (PRGA)
Pseudo-Random Generation Algorithm (PRGA) berbeda dengan algoritma RC4.
Pseudo-Random Generation Algorithm (PRGA) untuk mendapatkan byte acak untuk enkripsi.
i=0 j=0 loop
i=(i+1) mod n j=(j+S[i]) mod n
swap(S[i],S[[i+j+1] mod n]) t=(S[i]+S[j]) mod n
output Z=S[t]
end loop
Variabel i, j merupakan variabel integer yang mempunyai nilai awal 0 dan z merupakan variabel integer yang merupakan output dan mempunyai nilai awal 0.
Contoh Enkripsi : Karakter “I”
i=0 ; j=0 ;
i = (i+1) mod 256 = (0+1) mod 256
= 1 mod 256
= 1
j = (j+S[i]) mod 256 = (0+S[1]) mod 256
= (0+126) mod 256
= 126 mod 256
= 126 S[1] = 126 ; S[1+126+1] = S[128] = 178 swap(S[1],S[128])
S[1] = 178 ; S[128] = 126
t = (S[i]+S[j]) mod 256 = (S[1]+S[126]) mod 256
= (178+43) mod 256
= 221 mod 256
= 221 Z = S[221] = 195
Kemudian lakukan XOR I = 73
Z = 195
73 = 01001001 195 = 11000011
= 10001010 = 13810 dalam tabel ASCII merupakan “Š“ Karakter “N”
i=1 ; j=126 ;
i = (i+1) mod 256 = (1+1) mod 256
= 2 mod 256
= 2
j = (j+S[i]) mod 256 = (126+S[2]) mod 256
= (126+85) mod 256
= 211 mod 256
= 211 S[2] = 85 ; S[2+211+1] = S[214] = 111 swap(S[2],S[214])
S[2] = 111 ; S[214] = 85
t = (S[i]+S[j]) mod 256 = (S[2]+S[211]) mod 256
= (111+65) mod 256
= 176 mod 256
= 176 Z = S[176] = 194
Kemudian lakukan XOR N = 78
Z = 194
78 = 01001110 194 = 11000010
= 10001100 = 14010 dalam tabel ASCII merupakan “Œ“ Karakter “D”
i=2 ; j=211 ;
i = (i+1) mod 256 = (2+1) mod 256
= 3 mod 256
= 3
j = (j+S[i]) mod 256 = (211+S[3]) mod 256
= (211+123) mod 256
= 334 mod 256
= 78 S[3] = 123 ; S[3+78+1] = S[82] = 80 swap(S[3],S[82])
S[3] = 80 ; S[82] = 123
t = (S[i]+S[j]) mod 256 = (S[3]+S[78]) mod 256
= (80+176) mod 256
= 256 mod 256 = 0
Z = S[0] = 54
Kemudian lakukan XOR D = 68
Z = 54
68 = 01000100 54 = 00110110
= 01110010 = 11410 dalam tabel ASCII merupakan “r“
Contoh Dekripsi : Karakter “Š” i=0 ; j=0 ;
i = (i+1) mod 256 = (0+1) mod 256
= 1 mod 256
= 1
j = (j+S[i]) mod 256 = (0+126) mod 256
= 126 mod 256
= 126 S[1] = 126 ; S[1+126+1] = S[128] = 178 swap(S[1],S[128])
S[1] = 178 ; S[128] = 126
t = (S[i]+S[j]) mod 256 = (S[1]+S[126]) mod 256
= (178+43) mod 256
= 221 mod 256
= 221 Z = S[221] = 195
Kemudian lakukan XOR Š = 138
Z = 195
138 = 10001010 195 = 11000011
= 01001001 = 7310 dalam tabel ASCII merupakan “I“
Karakter “Œ” i=1 ; j=126 ;
i = (i+1) mod 256 = (1+1) mod 256
= 2 mod 256
= 2
j = (j+S[i]) mod 256 = (126+S[2]) mod 256
= (126+85) mod 256
= 211 mod 256
= 211 S[2] = 85 ; S[2+211+1] = S[214] = 111 swap(S[2],S[214])
S[2] = 111 ; S[214] = 85
t = (S[i]+S[j]) mod 256 = (S[2]+S[211]) mod 256
= (111+65) mod 256
= 176 mod 256
= 176 Z = S[176] = 194
Kemudian lakukan XOR
Œ = 140 Z = 194
140 = 10001100 194 = 11000010
= 01001110 = 7810 dalam tabel ASCII merupakan “N“
Karakter “r”
i=2 ; j=211 ;
i = (i+1) mod 256 = (2+1) mod 256
= 3 mod 256
= 3
j = (j+S[i]) mod 256 = (211+S[3]) mod 256
= (211+123) mod 256
= 334 mod 256 = 78
S[3] = 123 ; S[3+78+1] = S[82] = 80 swap(S[3],S[82])
S[3] = 80 ; S[82] = 123
t = (S[i]+S[j]) mod 256 = (S[3]+S[78]) mod 256
= (80+176) mod 256
= 256 mod 256
= 0 Z = S[0] = 54
Kemudian lakukan XOR r = 114
Z = 54
114 = 01110010 54 = 00110110
= 01000100 = 6810 dalam tabel ASCII merupakan “D“
2.4 Algoritma ElGamal
Algoritma ElGamal merupakan algoritma asimetris yang memiliki dua kunci yaitu kunci publik (public key) dan kunci rahasia (private key). Pada Algoritma ElGamal terdapat tiga pasang bilangan untuk kunci publik (public key), dan satu bilangan untuk kunci rahasia (private key). Algoritma ElGamal terdiri dari tiga proses yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi.
2.4.1 Landasan Matematika Algoritma ElGamal 1. Modulo Exponensial
Perhitungan yang dilakukan adalah menghitung dengan n yang sangat besar. Cara Square and Multiply (SAM) merupakan satu cara untuk menghitung modulo eksponensial.
Langkah-langkah menggunakan cara Square and Multiply :
• Konversi exponent menjadi binary
• Ambil Z = 1
• Iterasi nilai Z mulai dari bit paling depan ke bit paling belakang.
• Bila bit = 0 , maka Z = Z2 mod n
• Bila bit = 1 , maka Z = X.Z2 mod n Contoh :
Berapakah hasil dari 345mod 15 dengan cara square and multiply.
45 = 1 0 1 1 0 1 Z = 1
Z = = 3. 12 mod 15 = 3 Z = = 32 mod 15 = 9 Z = = 3.92 mod 15 = 3 Z = = 3.32 mod 15 = 12 Z = = 122 mod 15 = 9 Z = = 3.92 mod 15 = 3 Maka hasil dari 345mod 15 adalah 3 2. Bilangan Prima
Bilangan prima merupakan sebuah bilangan bulat yang lebih besar dari 1 dan jika bilangan tersebut hanya memiliki pembagi 1 dan bilangan itu sendiri. Seluruh bilangan prima adalah bilangan ganjil, kecuali dua yang merupakan bilangan genap.
3. Algoritma Euclidean
Algoritma Euclidean merupakan algoritma yang digunakan untuk mencari nilai pembagi persekutuan terbesar (greatest common divisor) dari dua bilangan bulat.
Algoritma Euclidean (gcd(a,b)) A ← a
B ← b
while B > 0 do R ← A mod B A ← B
B ← R end while return A
Contoh :
Berapakah gcd(40,15) ?
Penyelesaiannya dapat dilihat pada Tabel 2.2.
Tabel 2.2. Penyelesaian gcd(40,15)
A B R = A mod B
40 15 10
15 10 5
10 5 0
5 0
Maka gcd (40,15) adalah 5.
4. Inverse Modulo
Inverse dari m mod n dapat ditemukan apabila m dan n relatif prima dan n > 1.
Inverse bilangan bulat m-1sedemikian sehingga m.m-1≡ 1 (mod n). Pembuktian dari persamaan di atas dapat dilihat dari definisi relatif prima diketahui bahwa GCD(m, n) = 1.
Contoh:
Berapa Inverse dari 3 (mod 5)
Penyelesaiannya dapat dilihat pada Tabel 2.3.
Tabel 2.3. Penyelesaian Inverse dari 3 (mod 5) m-1 m-1. 3 (mod 5)
1 3
2 1
Pada Tabel 2.3. Iterasi berhenti ketika m-1.m ≡ 1 (mod n) dan diperoleh m-1= 2.
5. Bilangan Relatif Prima
Bilangan relatif prima merupakan dua buah bilangan bulat a dan b jika pembagi persekutuan terbesar atau GCD (greatest common divisor) dari a dan b bernilai 1.
Contoh :
Apakah 20 dan 3 merupakan relatif prima ? Penyelesaiannya dapat dilihat pada Tabel 2.4.
Tabel 2.4. Penyelesaian relatif prima
A B R = A mod B
20 3 1
3 1 0
Maka dari penyelesaian di atas didapat : 20 dan 3 relatif prima karena gcd (20,3) = 1.
2.4.2 Proses Pembentukan Kunci
Proses pembentukan kunci terdiri atas dua proses yaitu pembentukan kunci publik dan kunci rahasia. Pada proses ini menggunakan sebuah bilangan prima p untuk membentuk grup Zp*, elemen primitif α dan sembarangan a ϵ {0,1,...,p-2}. Public key algoritma elgamal mempunyai 3 pasang bilangan (p,α,β) dimana :
β=αa mod p ... (1) Sedangkan private key adalah bilangan a. Proses pembentukan kunci untuk algoritma elgamal terdiri atas (Ifanto, 2009) :
a. Penentuan bilangan prima aman yang bernilai besar.
b. Penentuan elemen primitif.
c. Pembentukan kunci berdasarkan bilangan prima aman dan elemen primitif.
2.4.2.1 Penentuan Bilangan Prima Aman Besar
Penentuan bilangan prima aman ini untuk mempermudah dalam penentuan elemen primitif. Untuk menguji keprimaan suatu bilangan, digunakan suatu metode disebut Teorema Fermat.
Teorema Fermat
Jika x adalah bilangan prima dan y adalah bilangan bulat yang tidak habis dibagi dengan x, yaitu PBB(y,x) = 1, maka
yx-1 ≡ 1 (mod p) ... (2) Contoh :
Apakah 17 bilangan prima ?
Diuji apakah 17 bilangan prima atau bukan.
Kemudian diambil nilai a = 2 karena PBB(17,2) = 1
217-1 = 65536 ≡ 1 (mod 17)
Karena 17 habis membagi 65536 – 1 = 65535 (65535 / 17 = 3855).
Oleh karena itu 17 merupakan bilangan prima.
2.4.2.2 Penentuan Elemen Primitif Teorema:
“Suatu elemen yang membangun Zp* disebut elemen primitif (primitive root) mod p.”
“Bila α2 mod p ≠ 1 dan αq mod p ≠ 1. Jika keduanya dipenuhi, maka α adalah elemen primitif dari Zp*.”
Langkah-langkah penentuan elemen primitif dapat dinyatakan sebagai berikut:
a. Tentukan bilangan prima p ≥ 255 dan α ∈ Zp*
b. Hitung nilai q. Dimana : = c. Hitung α mod p dan α mod p.
d. Jika α mod p = 1 atau α mod p = 1, maka α bukan merupakan elemen primitif.
e. Jika α mod p ≠ 1 dan α mod p ≠ 1, maka α merupakan elemen primitif.
Contoh :
Selanjutnya membuat tabel perhitungan untuk beberapa nilai α untuk mengecek apakah nilai tersebut termaksud elemen primitif atau tidak.
Tabel 2.5. Perhitungan mod p dan mod p
α 1 2 3 4 5
mod p 1 4 9 16 25
mod p 1 1 1 1 382
Nilai α yang dipakai sebagai elemen primitif adalah α = 5
2.4.2.3 Pembentukan Kunci Berdasarkan Bilangan Prima Aman dan Elemen Primitif
Setelah mendapatkan bilangan prima aman dan elemen primitif, public key dan private key untuk algoritma ElGamal dapat dibentuk. Dalam perhitungan
algoritma elgamal menggunakan bilangan bulat. Oleh karena itu, pesan yang terkandung dalam plaintext harus dalam bentuk bilangan bulat. Untuk memenuhi persyaratan tersebut, digunakan kode ASCII (American Standard for Information Interchange) yang merupakan representasi numeric dari karakter-karakter yang digunakan pada komputer, serta mempunyai nilai minimal 0 dan maksimal 255.
Selanjutnya, dengan kondisi-kondisi tersebut, pembentukan kunci dapat dibentuk dengan mengacu pada langkah berikut (Ifanto, 2009):
a. Tentukan bilangan prima p ≥ 255 dan α ϵ Zp * b. Pilih a ϵ{0,1,..., p − 2} sembarang.
c. Hitung nilai β dengan rumus :
β = αa mod p ... (3) Diperoleh kunci publik (p,α,β) yang dapat dipublikasikan serta nilai kunci rahasia a yang dirahasiakan nilainya. Pihak yang membuat kunci publik dan kunci rahasia merupakan pihak penerima pesan. Sedangkan pihak pengirim hanya mengetahui kunci publik dari penerima untuk mengenkripsi pesan yang akan dikirim.
Contoh :
Kunci rahasia a (dimana a {0,1,2,...,p-2}). Misalkan nilai a adalah 103.
Sehingga nilai (p,α,a) = (383,5,103)
Dengan nilai a = 103. Maka mencari nilai β β = mod p
β = mod 383 β = 198
Maka nilai dari β adalah 198 2.4.3 Proses Enkripsi
Proses enkripsi menggunakan kunci publik (p,α,β) dan sebuah bilangan integer acak k (k ϵ{0,1,..., p − 1}) yang dijaga kerahasiaannya oleh penerima yang mengenkripsi pesan. Untuk setiap karakter dalam pesan dienkripsi dengan menggunakan bilangan k yang berbeda-beda.
Langkah proses enkripsi:
a. Ambil sebuah karakter dalam pesan yang akan dienkripsi dan transformasi karakter tersebut ke dalam kode ASCII sehingga diperoleh bilangan bulat M.
b. Hitung nilai r dan t dengan persamaan berikut:
r = αk (mod p) ... (4) t = βk. M (mod p) ... (5) c. Diperoleh ciphertext untuk karakter M tersebut dalam blok (r, t)
d. Lakukan proses di atas untuk seluruh karakter dalam pesan termasuk karakter spasi.
Contoh :
(p,α,β) = (383,5,198)
Pesan = “INDAH SYAHNAN”
1. Mengonversi pesan tersebut dalam kode ASCII
Tabel 2.6. Konversi Pesan kedalam Kode ASCII
i Karakter Plaintext Mi ASCII
1 I M1 073
2 N M2 078
3 D M3 068
4 A M4 065
5 H M5 072
6 spasi M6 032
7 S M7 083
8 Y M8 089
9 A M9 065
10 H M10 072
11 N M11 078
12 A M12 065
13 N M13 078
2. Menentukan bilangan acak k (k {0,1,2,...,382} yang dijaga kerahasiaannya untuk setiap plaintext M dan mengenkripsi plaintext tersebut dengan menghitung nilai r dan t dengan persamaan (4) dan persamaan (5)
Tabel 2.7. Perhitungan Proses Enkripsi
i Mi Ki r = (mod 383) t = . Mi (mod 383)
1 73 14 49 202
2 78 6 305 356
3 68 7 376 230
4 65 4 242 4
5 72 5 61 182
6 32 2 25 203
7 83 10 274 335
8 89 11 221 353
9 65 3 125 89
10 72 8 348 96
11 78 9 208 293
12 65 12 339 133
13 78 13 163 348
2.4.4 Proses Dekripsi
Dekripsi dari ciphertext ke plaintext menggunakan kunci private a yang disimpan oleh penerima pesan secara rahasia.
Teorema:
Diberikan (p,α,β) yang merupakan kunci publik dan a merupakan kunci private pada algoritma ElGamal. Jika diberikan ciphertext (r, t), maka :
M = t (r a)-1 mod p ... (6) dengan M adalah plaintext. Di mana nilai :
(r a)-1 = r-a = r p-1-a mod p ... (7) Langkah proses dekripsi:
a. Ambil sebuah blok ciphertext dari pesan yang telah dienkripsi oleh pengirim.
b. Dengan menggunakan nilai a yang dirahasiakan oleh penerima, hitung nilai plaintext dengan menggunakan “persamaan (6)” dan “persamaan (7)”.
Contoh :
Proses Dekripsi :
Tabel 2.8. Perhitungan Proses Dekripsi
i r t r279 mod 383 Mi = t.r279 mod 383 Plaintext
1 49 202 317 73 I
2 305 356 295 78 N
3 376 230 340 68 D
4 242 4 112 65 A
5 61 182 194 72 H
6 25 203 136 32 sp
7 274 335 102 83 S
8 221 353 163 89 Y
9 125 89 345 65 A
10 348 96 288 72 H
11 208 293 280 78 N
12 339 133 84 65 A
13 163 348 337 78 N
2.5 Penelitian Yang Relevan
Beberapa penelitian terdahulu yang relevan dengan penelitian yang akan dilakukan oleh penulis antara lain :
1. Berdasarkan jurnal yang berjudul An Implementation Of Elias Delta Code And ElGamal Algorithm In Image Compression And Security menyimpulkan ukuran pixel citra berbanding lurus dengan waktu. Hal tersebut dikarenakan algoritma Elias Delta Code mampu memampatkan ukuran citra ditambah dengan algoritma ElGamal yang menghasilkan tidak terlalu besar ukuran file ketika melakukan proses enkripsi maupun dekripsi (Rachmawati, D., Budiman, M. A. & Saffiera, C, A, 2017).
2. Berdasarkan jurnal yang berjudul ElGamal Algoritm for Encryption of Data Transmission menyimpulkan Algoritma ElGamal dapat melindungi informasi dengan mengenkripsi file dan kunci yang dimasukkan ke dalam transmisi informasi bertujuan untuk mencapai enkripsi dan dekripsi teks sehingga menjamin transmisi informasi (Wu, Zengqiang, dkk, 2015).
3. Berdasarkan jurnal yang berjudul ElGamal’s Algorithm in Cryptography menyimpulkan bahwa kriptografi ElGamal memiliki pengamanan yang baik karena menghasilkan ciphertext yang selalu berbeda dalam setiap plaintext yang dienkripsi (Singh, Rashmi & Kumar, Shiv, 2015).
4. Berdasarkan penelitian (Hasibuan, Rachmat Saleh., 2015) yang berjudul
“Perancangan Perangkat Lunak Pengamanan File Text Menggunakan Algoritma ElGamal dan Kompresi File Text Menggunakan Algoritma
Huffman” disimpulkan bahwa dokumen atau file teks yang sudah dienkripsi menjadi ciphertext memiliki karakter yang lebih banyak atau lebih panjang dibandingkan dengan file teks sebelum dilakukan proses enkripsi. Dan file hasil dekripsi sama persis seperti file awal sebelum dilakukan proses enkripsi.
5. Berdasarkan jurnal yang berjudul “Perancangan dan Implementasi Algoritma ElGamal untuk Keamanan Data pada Video Streaming” menyimpulkan bahwa Algoritma ElGamal harus menggunakan bilangan prima yang lebih besar dari 255.
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Analisis sistem (systems analysis) adalah sebuah tahapan penelitian terhadap sistem untuk dapat memecahkan masalah dimana sistem yang utuh diuraikan kedalam berbagai bagian komponennya dengan tujuan untuk mengetahui kinerja masing-masing komponen dalam mencapai tujuan sistem.
Analisis sistem meliputi analisis masalah, analisis kebutuhan dan analisis proses. Analisis masalah bertujuan untuk mengidentifikasi masalah dan sebab- akibat dari masalah tersebut. Analisis kebutuhan bertujuan untuk mengidentifikasi data dan proses yang dibutuhkan dalam merancang sebuah sistem. Analisis proses bertujuan untuk mengetahui alur dan tools yang digunakan dalam sebuah sistem yang akan dirancang.
3.1.1 Analisis Masalah
Analisis masalah bertujuan untuk mengetahui faktor-faktor masalah yang terjadi dan memahami masalah yang akan diselesaikan oleh sistem. Seluruh masalah akan dimasukkan kedalam sebuah diagram yang disebut dengan Diagram Ishikawa atau Fishbone Diagram. Pada umumnya diagram ishikawa merupakan diagram yang digunakan para analis sistem untuk mengidentifikasi, menganalisis dan semua faktor masalah yang akan diselesaikan.
Diagram Ishikawa berbentuk seperti ikan yang terdiri atas kepala ikan (fish’s bones) yang menunjukkan judul dari masalah yang sedang diidentifikasi dan tulang-tulang ikan (fish’s bones) yang menunjukkan penyebab masalah yang diperoleh. Masalah dalam penelitian ini yang dirancang dalam bentuk diagram Ishikawa dapat dilihat pada Gambar 3.1.
Gambar 3.1. Diagram Ishikawa Masalah Penelitian
Berdasarkan Diagram Ishikawa diatas terdapat empat kategori penyebab masalah dalam penelitian. Masalah utama terdapat pada segi empat yang berada paling kanan pada bagian kepala ikan yaitu kombinasi algoritma simetris dengan melakukan enkripsi dan dekripsi file dan algoritma asimetris untuk melakukan proses enkripsi dan dekripsi pada kunci hasil dari algoritma simetris yang berkaitan dengan user, material, sistem dan metode dalam pengamanan file docx.
Terdapat tanda panah yang mengarah ke masing-masing kategori menunjukkan maupun menggambarkan penyebab masalah pada sistem.
3.1.2 Analisis Kebutuhan
Pada tahap ini dilakukan setelah tahap analisis masalah. Tahap ini bertujuan untuk mengetahui model, spesifikasi perangkat lunak yang diinginkan oleh user.
Analisis kebutuhan terbagi menjadi dua yaitu kebutuhan fungsional dan kebutuhan nonfungsional. Kebutuhan fungsional adalah kebutuhan yang berisi proses-proses apa saja yang disediakan oleh sistem dan bagaimana sistem harus berproses pada input tertentu. Sedangkan kebutuhan nonfungsional adalah menjelaskan tentang hal yang digunakan sebagai pelengkap dari suatu sistem seperti fitur, karakteristik dan batasan lainnya.
3.1.2.1 Kebutuhan Fungsional
Kebutuhan Fungsional adalah kebutuhan yang harus dipenuhi oleh sistem agar sistem dapat melakukan sesuai dengan yang dibutuhkan. Kebutuhan fungsional yang harus dipenuhi dari kombinasi algoritma RC4-P1 dan algoritma ElGamal dalam skema hybrid cryptosystem untuk pengamanan data adalah sebagai berikut :
1. Pembangkit kunci
Membangkitkan kunci yaitu kunci public dan kunci private secara acak dengan algoritma ElGamal.
2. Memasukkan file
User memasukkkan file yang berekstensi docx. Kemudian akan dibaca oleh sistem.
3. Enkripsi file
File akan dienkripsi dengan menggunakan algoritma RC4-P1 dan akan menghasilkan ciphertext.
4. Enkripsi kunci simetris
Kunci pada algoritma RC4-P1 dienkripsi dengan menggunakan kunci public algoritma ElGamal sehingga menghasilkan cipherkey.
5. Menyimpan hasil enkripsi
Ciphertext dan cipherkey akan disimpan oleh sistem untuk digunakan pada proses dekripsi.
6. Dekripsi kunci simetris
Cipherkey akan didekripsi dengan menggunakan kunci private algoritma ElGamal dan menghasilkan kunci algoritma RC4-P1.
7. Dekripsi file
Ciphertext didekripsi dengan menggunakan kunci algortima RC4-P1 sehingga akan menghasilkan file kembali seperti semula.
8. Menyimpan hasil dekripsi
File teks dekripsi disimpan kembali.
3.1.2.2 Kebutuhan Nonfungsional
Kebutuhan nonfungsional pada kombinasi algoritma RC4-P1 dan algoritma ElGamal dalam skema hybrid cryptosystem untuk pengaman data adalah sebagai berikut :
1. Kinerja Sistem
Sistem yang dibangun dapat menujukkan hasil proses enkripsi pesan dan dapat mengembalikan file (*.docx) yang dienkripsi menjadi file asli dengan menggunakan algoritma RC4-P1 dan algoritma ElGamal melalui proses dekripsi.
2. Dokumentasi
Sistem yang dibangun dapat menunjukkan kegunaan sistem, penjelasan singkat tentang algoritma RC4-P1 dan algoritma ElGamal serta metode Hybrid Cryptosystem dan menyimpan data hasil proses enkripsi dan dekripsi.
3. Pengendalian
Sistem yang dibangun akan menampilkan pesan error jika terdapat masukan yang tidak sesuai.
4. Kualitas
Sistem yang dibangun akan menghasilkan output yang bersifat benar dan akurat ketika melakukan proses enkripsi dan dekripsi.
5. User Friendly
Sistem yang dibangun akan menggunakan tampilan yang mudah digunakan, mudah dipelajari dan mudah dimengerti sehingga dapat digunakan dengan baik oleh pengguna.
3.1.3 Diagram Umum Sistem
Diagram umum sistem dapat dilihat pada gambar 3.2.
Gambar 3.2. Diagram Umum Sistem
Gambar 3.2 menjelaskan bahwa proses dimulai dengan membangkitkan kunci dengan Algoritma ElGamal yang dilakukan oleh Alice (Recipient).
Kemudian public key diberikan kepada Bob (Sender). Selanjutnya Bob akan mengenkripsi pesan dengan menggunakan Algoritma RC4-P1, maka akan menghasilkan ciphertext. Lalu Kunci RC4-P1 akan di enkripsi dengan
menggunakan Kunci Public Algoritma ElGamal. Untuk proses dekripsi, Ciphertext dan cipherkey hasil enkripsi dikirim kepada Alice dan setelah diterima, Alice mendekripsi cipherkey dengan Algoritma ElGamal menggunakan private key yang dimilikinya sehingga menghasilkan kunci RC4-P1. Alice kemudian mendekripsi ciphertext menggunakan kunci RC4-P1 dan menghasilkan file yang berisi informasi sebenarnya. Seluruh proses enkripsi maupun dekripsi akan dicatat hasil running time dan perubahan besar file menjadi ciphertext.
3.2 Pemodelan Sistem
Pemodelan sistem betujuan untuk menggambarkan semua kondisi dari bagian yang berperan pada sistem yang dirancang. Pemodelan sistem ditampilkan dengan menggunakan flowchart, use case diagram, sequence diagram dan activity diagram.
3.2.1 Use Case Diagram
Use case diagram merupakan gambaran dari beberapa atau semua actor, dan interaksi diantaranya yang diperkenalkan dalam suatu sistem. Use case pada sistem dapat ditunjukkan pada Gambar 3.3.
Gambar 3.3. Diagram Use Case Sistem
Gambar 3.3 menjelaskan bahwa use case sistem diakses oleh 2 buah aktor yaitu pengirim dan penerima. Pengirim pesan memiliki hak akses yaitu menginput file, enkripsi pesan dengan algoritma RC4-P1, enkripsi kunci RC4-P1 dengan algoritma ElGamal dan menyimpan file. Sedangkan penerima pesan memiliki hak akses yaitu membangkitkan kunci Algoritma ElGamal, dekripsi kunci RC4-P1 dengan algoritma ElGamal, dekripsi pesan dengan algoritma RC4-P1 dan menyimpan file.
3.2.2 Diagram Aktivitas
Diagram Aktivitas (Activity Diagram) menggambarkan aliran kerja atau interaksi aktivitas antara pengirim dan sistem dari sebuah sistem atau perangkat lunak yang dikembangkan, dari aktivitas mulai, decision yang mungkin terjadi sampai aktivitas berhenti.
3.2.2.1 Diagram Aktivitas Pembangkit Kunci
Gambar 3.4. Diagram Aktivitas Proses Pembangkitan Kunci
Gambar 3.4 menunjukkan diagram aktivitas proses pembangkitas kunci.
Tahap awal, user harus menekan tombol Generate untuk mendapatkan nilai bilangan prima, alpa, a dan beta. Kemudian user menyimpan nilai tersebut, agar nilai tersebut dipakai untuk tahap selanjutnya.
3.2.2.2 Diagram Aktivitas Enkripsi
Gambar 3.5. Diagram Aktivitas Proses Enkripsi
Gambar 3.5 menunjukkan proses enkripsi dari sistem. Untuk tahap awal file yang berisi pesan akan enkripsi dan dimasukkan kedalam sistem. Kemudian sistem akan menampilkan open file dialog dan selanjutnya user memilih file yang akan dienkripsi. Setelah dipilih, user memasukkan kunci RC4-P1 yang nantinya akan digunakan untuk mengenkripsi file. Kemudian user menekan tombol enkripsi pesan dengan algoritma RC4-P1 lalu sistem akan memproses. Kemudian user menekan tombol simpan ciphertext dan sistem akan menampilkan jendela simpan
file. Selanjutnya user menginputkan nama file dan menyimpan file tersebut.
Kemudian, user menekan tombol enkripsi ElGamal dan sistem menampilkan cipherkey hasil enkripsi, lalu tekan tombol simpan kunci dan jendela save file akan keluar dan user menginputkan nama file tersebut lalu menyimpannya.
3.2.2.3 Diagram Aktivitas Dekripsi
Gambar 3.6. Diagram Aktivitas Proses Dekripsi
Gambar 3.6 menunjukkan proses dekripsi dari sistem. Pada tahap awal yaitu file yang berisi cipherkey yang akan didekripsi dimasukkan pada sistem. Sistem akan menampilkan open file dialog dan user memilih file cipherkey yang akan
didekripsi. Setelah dipilih, user menekan tombol dekripsi kunci RC4-P1 dengan algoritma ElGamal maka hasil dekripsi akan muncul pada sistem. Kemudian tekan tombol browse untuk memilih file ciphertext yang akan didekripsi. Setelah itu akan muncul jendela open file dialog dan user memilih file. Setelah fie dipilih lalu user menekan tombol dekripsi RC4-P1 dan sistem akan mendekripsi file dan menampilkan hasil dekripsi yaitu plaintext semula. Selanjutnya untuk menyimpan file, user menekan tombol save file dan sistem akan menampilkan jendela simpan file. Selanjutnya user menginput nama dan menyimpan file tersebut.
3.2.3 Sequence Diagram
Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar objek. Diagram ini menunjukkan serangkaian pesan yang dipertukarkan oleh objek-objek yang melakukan suatu tugas atau aksi tertentu dalam suatu urutan waktu. Aktivitas yang terjadi ketika pengguna sistem atau objek berinteraksi ke objek lain digambarkan dengan tanda panah garis penuh, sedangkan garis putus- putus menggambarkan respon sistem terhadap pengguna sistem yaitu pengirim dan penerima.
Gambar 3.7. Diagram Sequence Sistem
Gambar 3.7. menggambarkan user dan objek saling berinteraksi di mana seluruh objek mengirimkan pesan perintah yang akan dieksekusi. Pengguna sistem awalnya melakukan pembangkitan kunci, setelah itu melakukan proses enkripsi pesan dan kunci. Kemudian menuju halaman dekripsi dan melakukan dekripsi kunci lalu dekripsi pesan untuk mendapatkan pesan kembali ke bentuk asli.
3.2.4 Flowchart
Flowchart merupakan diagram alir yang memiliki arus gambar mengenai langkah- langkah penyelesaian suatu masalah. Kemudian, flowchart juga mempunyai fungsi untuk mengetahui proses pengecekan pada sistem yang akan dibuat.
3.2.4.1. Flowchart Sistem
Flowchart sistem yang akan dibangun seperti pada gambar di bawah ini yang merupakan flowchart pembangkit kunci, enkripsi dan juga dekripsi.
Gambar 3.8. Flowchart Pembangkit Kunci
Flowchart sistem pembangkitan kunci yang dimulai dengan membangkitkan kunci yang menghasilkan kunci public dan kunci private. Selanjutnya kunci tersebut akan disimpan untuk digunakan pada proses selanjutnya.
Kunci Public (p,𝛼, 𝛽) Kunci Private (a)
Membangkitkan Kunci (p,𝛼, 𝛽,a)
Simpan Kunci Public dan Kunci Private
Mulai
Selesai
Gambar 3.9. Flowchart Enkripsi
Flowchart sistem enkripsi yang dimulai dengan memasukkan file dan kunci RC4- P1 ke dalam sistem kemudian melakukan proses enkripsi maka akan menghasilkan ciphertext. Selanjutnya, kunci RC4-P1 akan dienkripsi dengan
Enkripsi kunci RC4-P1 dengan kunci public Algoritma ElGamal
Input File Kunci RC4-P1
Enkripsi File dengan RC4-P1
Ciphertext
Menampilkan Kunci Public
Cipherkey (C1,C2)
Simpan Ciphertext dan Cipherkey
Mulai
Selesai