• Tidak ada hasil yang ditemukan

IMPLEMENTASI SISTEM KRIPTOGRAFI HIBRIDA DENGAN KOMBINASI ELGAMAL CRYPTOSYSTEM DAN SPRITZ CIPHER UNTUK PENGAMANAN FILE DOCX SKRIPSI

N/A
N/A
Protected

Academic year: 2022

Membagikan "IMPLEMENTASI SISTEM KRIPTOGRAFI HIBRIDA DENGAN KOMBINASI ELGAMAL CRYPTOSYSTEM DAN SPRITZ CIPHER UNTUK PENGAMANAN FILE DOCX SKRIPSI"

Copied!
104
0
0

Teks penuh

(1)

IMPLEMENTASI SISTEM KRIPTOGRAFI HIBRIDA DENGAN KOMBINASI ELGAMAL CRYPTOSYSTEM DAN SPRITZ

CIPHER UNTUK PENGAMANAN FILE DOCX

SKRIPSI

RIDHO FIKRIAN SIDDIQ 141401046

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN

2019

(2)

IMPLEMENTASI SISTEM KRIPTOGRAFI HIBRIDA DENGAN KOMBINASI ELGAMAL CRYPTOSYSTEM DAN SPRITZ CIPHER UNTUK

PENGAMANAN FILE DOCX

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

RIDHO FIKRIAN SIDDIQ 141401046

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2019

(3)
(4)

PERNYATAAN

IMPLEMENTASI SISTEM KRIPTOGRAFI HIBRIDA DENGAN KOMBINASI ELGAMAL CRYPTOSYSTEM DAN SPRITZ CIPHER UNTUK

PENGAMANAN FILE DOCX

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Juli 2019

Ridho Fikrian Siddiq 141401046

(5)

UCAPAN TERIMA KASIH

Puji dan syukur penulis panjatkan kehadirat Allah SWT karena berkat rahmat dan ridho-Nya lah penulis dapat menyelesaikan skripsi ini, sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

Penulis ingin menyampaikan rasa hormat dan terima kasih yang sebesar- besarnya kepada seluruh pihak yang telah membantu dan mendukung penulis untuk menyelesaikan skripsi ini. Untuk itu penulis ingin berterima kasih kepada:

1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Opim Salim Sitompul, M.Si sebagai Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

4. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembimbing I yang selalu memberikan bimbingan, saran dan dukungan kepada penulis dalam menyelesaikan skripsi ini.

5. Ibu Amalia, S.T., M.T selaku Dosen Pembimbing II yang selalu memberikan bimbingan, saran dan dukungan kepada penulis dalam menyelesaikan skripsi ini.

6. Seluruh dosen dan staf pegawai Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

7. Kedua Orangtua penulis yaitu Ayahanda Hasanuddin, Ibunda Rahmah atas bimbingan dan sumber semangat terbesar bagi penulis dalam menyelesaikan skripsi ini, abangda penulis yaitu Agus dan Afrizal, adinda penulis yaitu Raffi, sekaligus teman yang telah memberikan do’a dukungan, pengorbanan dan perhatian yang tidak ternilai harganya.

8. Adinda Khaliza Dwi Putri yang selalu memberi semangat untuk penulis dalam menyelesaikan skripsi ini.

9. Para sahabat yang selama ini telah menjadi tempat berbagi suka maupun duka yang telah memberikan dukungan motivasi, hiburan dan nasihat yang

(6)

tak ternilai kepada penulis, M. Syahren, Adri Fachriansyah, Riki Alzuansyah, Rizky Syah Ramadhani, Muhammad Ricky Gunawan, Fakhrul Azhari Siregar, Rasyid Imam Ghani Damanik, Muhari Akbar serta Said H.

R. Aldjufri yang telah menjadi tempat belajar dan bertanya dalam pengerjaan skripsi ini.

10. Tim Official Medan.pomade dan Komunitas Bukalapak Medan yang selalu memberikan semangat kepada penulis untuk menyelesaikan skripsi ini.

11. Teman-teman KOM A 2014 dan seluruh stambuk 2014 yang telah membantu dan memberikan semangat untuk menyelesaikan skripsi ini.

12. Dan semua pihak yang telah membantu dan tidak dapat disebutkan satu per satu.

Terimakasih kepada semua pihak yang telah berkontribusi dalam membantu, memberikan kritik, saran, ide serta motivasi kepada penulis. Semoga semua kebaikan, perhatian, maupun dukungan yang telah diberikan kepada penulis mendapatkan pahala dan karunia yang melimpah dari Allah SWT. Semoga Skripsi ini dapat bermanfaat bagi orang banyak. Aamiin

Medan, Juli 2019

Penulis

(7)

ABSTRAK

Docx merupakan salah satu file pengolahan kata yang sudah sangat umum digunakan oleh orang banyak yang digunakan untuk berbagai hal. Mengirimkan informasi menggunakan file docx sangat memungkinkan namun memiliki resiko tinggi karena tingkat keamanannya yang rendah. Oleh karena itu, tidak menutup kemungkinan adanya orang tidak bertanggung jawab yang memanfaatkan kondisi ini untuk melakukan kecurangan maupun pencurian data. Sehingga, dibutuhkan suatu aplikasi yang dapat mengamankan isi informasi atau pesan pada file docx tersebut. Pada penelitian ini solusi yang diberikan adalah melakukan pengamanan dengan skema kombinasi algoritma simetris dan algoritma asimetris yang disebut dengan Kriptografi Hibrida pada file docx dengan menggunakan ElGamal Cryptosystem dan Spritz Cipher. Kriptografi merupakan suatu seni menyandikan pesan ke dalam bentuk yang lain agar pesan tidak dapat dibaca dan dimengerti oleh pihak yang tidak bertanggung jawab. Spritz Cipher merupakan algoritma simetris yang digunakan untuk mengenkripsi pesan yang akan dikirim. Kunci pada algoritma Spritz Cipher akan dienkripsi dengan menggunakan algoritma asimetris ElGamal. Pada penelitian ini disimpulkan bahwa semakin panjang plaintext yang akan dikirim menyebabkan semakin lama waktu yang dibutuhkan dalam proses enkripsi dan dekripsi serta ukuran file ciphertext hasil enkripsi memiliki ukuran yang lebih kecil dari pada ukuran file plaintext.

Kata Kunci : Docx, kriptografi, hibrida, ElGamal, Spritz Cipher.

(8)

IMPLEMENTATION OF HYBRID CRYPTOGRAPHY SYSTEM WITH COMBINATION ELGAMAL CRYPTOSYSTEM AND SPRITZ CIPHER

FOR FILE DOCX SECURITY

ABSTRACT

Docx is a word processing file that is very commonly used by many people who are used for various things. Sending information using docx files has a high security risk because of the low level of security. Therefore, it does not rule out the possibility of irresponsible people who use this condition to commit data fraud or theft. So, it takes an application that can secure the contents of information or messages in the docx file.

In this study the solution provided is to do security with a combination of symmetrical algorithms and asymmetric algorithms called Hybrid Cryptosystem in the docx file using the ElGamal Cryptosystem and Spritz Cipher. Cryptography is the art of encoding messages into other forms so that messages cannot be read and understood by irresponsible parties. Spritz Cipher is a symmetrical algorithm used to encrypt messages to be sent. The key in the Spritz Cipher algorithm will be encrypted using the ElGamal asymmetric algorithm. In this study concluded that the longer the plaintext that will be sent causes the longer the time needed in the process of encryption and decryption and the size of the ciphertext file resulting from encryption has a size smaller than the size of the plaintext file.

Keywords: Docx, cryptography, hybrid, ElGamal, Spritz Cipher.

(9)

DAFTAR ISI

Halaman

PERSETUJUAN i

PERNYATAAN ii

UCAPAN TERIMA KASIH iii

ABSTRAK v

ABSTRACT vi

DAFTAR ISI vii

DAFTAR TABEL x

DAFTAR GAMBAR xi

DAFTAR LAMPIRAN xiii

BAB 1 PENDAHULUAN

1.1. Latar Belakang 1

1.2. Rumusan Masalah 2

1.3. Tujuan Penelitian 2

1.4. Batasan Penelitian 3

1.5. Manfaat Penelitian 3

1.6. Metologi Penelitian 4

1.7. Sistemaika Penulisan 5

BAB 2 LANDASAN TEORI

2.1. Kriptografi 6

2.1.1. Definisi Kriptografi 6

2.1.2. Tujuan Kriptografi 7

2.1.3. Sistem Kriptografi Klasik 7

2.1.4. Sistem Kriptografi Modern 8

2.1.5. Algoritma Kunci Simetris 8

2.1.6. Algoritma Kunci Asimetris 8

2.1.7. Metode Hibrida 9

2.2. Algoritma ElGamal 10

2.2.1. Landasan Matematika Algoritma ElGamal 10

2.2.2. Prinsip Kerja Algoritma ElGamal 14

2.2.2.1. Proses Pembangkitan Kunci ElGamal 14

(10)

2.2.2.2. Proses Enkripsi Algoritma ElGamal 15 2.2.2.3. Proses Dekripsi Algoritma ElGamal 15

2.3. Algoritma Spritz Cipher 16

2.3.1. Key Scheduling Algorithm (KSA) 16

2.3.2. Pseudo Random Generation Algorithm (PRGA) 17

2.3.3. Enkripsi Spritz Cipher 19

2.3.4. Dekripsi Spritz Cipher 20

2.4. Penelitian Terdahulu 21

BAB 3 ANALISIS DAN PERANCANGAN

3.1. Analisis Sistem 22

3.1.1. Analisis Masalah 22

3.1.2. Analisis Kebutuhan 23

3.1.2.1. Kebutuhan Fungsional 23

3.1.2.2. Kebutuhan Non Fungsional 24

3.1.3. Diagram Umum Sistem 25

3.2. Pemodelan Sistem 26

3.2.1. Use-Case Diagram 26

3.2.2. Diagram Aktivitas 27

3.2.2.1. Diagram Aktivitas Pembangkit Kunci 27 3.2.2.2. Diagram Aktivitas Proses Enkripsi 28 3.2.2.3. Diagram Aktivitas Proses Dekripsi 30

3.2.3. Sequence Diagram 31

3.2.4. Flowchart 32

3.2.4.1. Flowchart Sistem 32

3.2.4.2. Flowchart Algoritma ElGamal 35

3.2.4.3. Flowchart Spritz Cipher 38

3.3. Perancangan Interface 42

3.3.1. Halaman Utama 42

3.4.2. Halaman Enkripsi 43

3.4.3. Halaman Dekripsi 45

3.4.4. Halaman Tentang 47

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1. Implementasi Sistem 48

(11)

4.1.1. Halaman Utama 48

4.1.2. Halaman Tentang 48

4.1.3. Halaman Enkripsi 49

4.1.1. Halaman Dekripsi 50

4.2. Pengujian Sistem 50

4.2.1. Pengujian Pembangkit Kunci 51

4.2.2. Pengujian Enkripsi Spritz Cipher 52

4.2.3. Pengujian Enkripsi Algoritma ElGamal 61 4.2.4. Pengujian Dekripsi Algoritma ElGamal 63

4.2.5. Pengujian Dekripsi Spritz Cipher 66

4.2.6. Waktu Proses (Real Running Time) 67

4.2.6.1. Waktu Proses Enkripsi Spritz Cipher 67 4.2.6.2. Waktu Proses Enkripsi Algoritma ElGamal 68 4.2.6.3. Waktu Proses Dekripsi Algoritma ElGamal 69 4.2.6.4. Waktu Proses Dekripsi Spritz Cipher 70

4.2.7. Ukuran Ciphertext 71

BAB 5 PENUTUP

5.1. Kesimpulan 73

5.2. Saran 74

DAFTAR PUSTAKA 75

(12)

DAFTAR TABEL

Halaman

Tabel 2.1. Penyelesaian Modulo eksponensial 11

Tabel 2.2. Penyelesaian GCD 12

Tabel 2.3. Penyelesaian Inversi Modulo 12

Tabel 2.4. Penyelesaian Relatif Prima (a) 13

Tabel 2.5. Penyelesaian Relatif Prima (b) 13

Tabel 2.6. Penyelesaian Element Primitif 14

Tabel 2.7. Key Scheduling Algorithm (KSA) 17

Tabel 2.8. Pseudo Random Generation Algorithm (PRGA) 17

Tabel 2.9. Larik 256 byte 18

Tabel 4.1. Larik 256 byte hasil perhitungan key scheduling 55

Tabel 4.2. Hasil Enkripsi Algoritma ElGamal 63

Tabel 4.3. Hasil Dekripsi Algoritma ElGamal 65

Tabel 4.4. Waktu Proses Pengujian Enkripsi Spritz Cipher 67 Tabel 4.5. Waktu Proses Pengujian Enkripsi Algoritma ElGamal 68 Tabel 4.6. Waktu Proses Pengujian Dekripsi Algoritma ElGamal 69 Tabel 4.7. Waktu Proses Pengujian Dekripsi Spritz Cipher 70 Tabel 4.8. Pengujian Ukuran File Ciphertext Hasil Enkripsi 71

(13)

DAFTAR GAMBAR

Halaman

Gambar 2.1. Proses Enkripsi dan Dekripsi 7

Gambar 2.2. Algoritma Simetris 8

Gambar 2.3. Algoritma Asimetris 9

Gambar 2.4. Prinsip kerja Metode Hibrida 9

Gambar 2.5. Prinsip Kerja Algortima ElGamal 14

Gambar 3.1. Diagram Ishikawa 23

Gambar 3.2. Diagram Umum Sistem 25

Gambar 3.3. Use Case Diagram 26

Gambar 3.4. Activity Diagram Proses Pembangkit Kunci 27

Gambar 3.5. Activity Diagram Proses Enkripsi 28

Gambar 3.6. Activity Diagram Proses Dekripsi 30

Gambar 3.7. Sequence Diagram Sistem 31

Gambar 3.8. Flowchart Pembangkit Kunci 32

Gambar 3.9. Flowchart Enkripsi 33

Gambar 3.10. Flowchart Dekripsi 34

Gambar 3.11. Flowchart Pembangkit Kunci Algoritma ElGamal 35 Gambar 3.12. Flowchart Enkripsi Algoritma ElGamal 36 Gambar 3.13. Flowchart Dekripsi Algoritma ElGamal 37

Gambar 3.14. Flowchart Enkripsi Spritz Cipher 38

Gambar 3.15. Flowchart Dekripsi Spritz Cipher 39

Gambar 3.16. Flowchart KSA Spritz Cipher 40

Gambar 3.17. Flowchart PRGA Spritz Cipher 41

Gambar 3.18. Rancangan Interface Halaman Utama 42

Gambar 3.19. Rancangan Interface Halaman Enkripsi 43 Gambar 3.20. Rancangan Interface Halaman Dekripsi 45

Gambar 3.21. Rancangan Interface Halaman Tentang 47

Gambar 4.1. Tampilan Halaman Utama 48

Gambar 4.2. Tampilan Halaman Tentang 49

Gambar 4.3. Tampilan Halaman Enkripsi 49

Gambar 4.4. Tampilan Halaman Dekripsi 50

(14)

Gambar 4.5. Hasil Pembangkitan Kunci 51

Gambar 4.6. Hasil Enkripsi Spritz Cipher 53

Gambar 4.7. Hasil Enkripsi Algoritma ElGamal 61

Gambar 4.8. Hasil Dekripsi Algoritma ElGamal 63

Gambar 4.9. Hasil Dekripsi Spritz Cipher 66

Gambar 4.10. Grafik Hubungan Panjang Plaintext dan Waktu Proses Enkripsi

Spritz Cipher 67

Gambar 4.11. Grafik Hubungan Panjang Key dan Waktu Proses Enkripsi algoritma

ElGamal 68

Gambar 4.12. Grafik Hubungan Panjang Cipherkey dan Waktu Proses Dekripsi

algoritma ElGamal 69

Gambar 4.13. Grafik Hubungan Panjang Ciphertext dan Waktu Proses Dekripsi

Spritz Cipher 70

Gambar 4.14. Grafik Hubungan Panjang Ciphertext dan Ciphertext 72

(15)

DAFTAR LAMPIRAN

Halaman

Lampiran 1 Listing Program A-1

Lampiran 2 Curriculum Vitae B-1

(16)

BAB 1 PENDAHULUAN

1.1. Latar Belakang

Berkembangnya kemajuan sistem informasi pada era serba digital sekarang ini sangatlah cepat. Informasi yang bersifat digital sudah menjadi hal yang sangat penting dan sudah menjadi kebutuhan umum di masyarakat. Informasi yang dikirim maupun ditukar dapat diakses dengan mudah menggunakan perangkat elektronik seperti komputer yang terkadang informasi tersebut berisi hal penting bahkan merupakan informasi rahasia yang harus dijaga keamanannya. Salah satu bentuk informasi yang dikirim dapat berupa file dengan format docx.

Docx merupakan format file yang digunakan pada aplikasi Microsoft Office Word, yang merupakan aplikasi pengolah kata yang sudah sangat umum digunakan oleh pengguna komputer. Maka dari itu, mengirimkan informasi menggunakan file docx sangat memungkinkan namun memiliki resiko tinggi apabila informasi yang dikirimkan bersifat rahasia karena tingkat keamanannya yang rendah. Oleh karena itu, tidak menutup kemungkinan adanya orang tidak bertanggung jawab yang memanfaatkan kondisi ini untuk melakukan kecurangan maupun pencurian data.

Sehingga, dibutuhkan suatu aplikasi yang dapat mengamankan isi informasi atau pesan pada file docx tersebut.

Salah satu teknik yang dapat digunakan untuk menjaga keamanan informasi ialah kriptografi. Kriptografi berasal dari bahasa yunani, yang dibagi menjadi dua kata yaitu kripto dan graphia. Kripto berarti secret (rahasia) dan graphia berarti writing (tulisan). Kriptografi (Cryptography) merupakan ilmu dan seni penyimpanan pesan, data, atau informasi secara aman (Oppliger, 2005). Pada saat ini, terdapat banyak metode yang dapat digunakan untuk menyandikan sebuah pesan dalam kriptografi.

Algoritma kriptografi yang dapat digunakan juga cukup banyak seperti algoritma simetris maupun asimetris. Namun terdapat beberapa kelemahan pada masing-masing algoritma. Algoritma simetris memiliki kunci yang sama dalam proses enkripsi dan

(17)

dekripsi. Keunggulan dari algoritma simetris adalah proses eksekusi yang lebih cepat karena transformasi hasil enkripsi secara langsung disalurkan untuk kinerja yang lebih baik. Salah satu masalah utama pada algoritma simetris adalah menemukan metode yang efisien untuk menyetujui dan bertukar kunci dengan aman (Gutub & Khan, 2012). Maka dari itu, algoritma simetris perlu dikombinasikan dengan algoritma asimetri yang diperuntukkan agar dapat menambah peningkatan keamanan data. Pada dunia kriptografi hal tersebut disebut dengan metode hibrida.

Metode hibrida merupakan algortima yang digunakan dengan mengkombinasikan beberapa algoritma simetri dan asimetri yang diperuntukkan agar dapat menambah keamanan data. Banyak algoritma yang dapat digunakan untuk proses kriptografi hibrida, namun dalam penelitian ini penulis akan membahas mengenai algoritma kriptografi ElGamal dan algoritma kriptografi Spritz Cipher.

1.2. Rumusan Masalah

ElGamal merupakan algoritma asimetris yang memerlukan waktu yang relatif lebih lama untuk melakukan proses enkripsi maupun dekripsi karena ciphertext yang dihasilkannya berukuran dua kali dari ukuran semula. Spritz Cipher merupakan algoritma simetris yang memerlukan waktu yang relatif lebih singkat untuk melakukan proses enkripsi dan dekripsi, namun dalam pendistribusian kunci Spritz Cipher memiliki kelemahan yaitu menggunakan kunci publik. Sehingga untuk pengamanan file dan mempercepat proses dilakukan kombinasi yaitu Spritz Cipher melakukan proses enkripsi dan dekripsi file kemudian cipherkey hasil Spritz Cipher dienkripsi dan didekripsi menggunakan algoritma ElGamal.

1.3. Tujuan Penelitian

Tujuan dari penelitian ini adalah :

1. Untuk mengimplementasikan metode Hibdrida dalam sebuah aplikasi yang menggunakan kombinasi algoritma ElGamal dan Spritz Cipher dalam pengamanan file docx.

2. Untuk menganalisa waktu enkripsi dan dekripsi pada pengamanan file teks dalam millisecond.

(18)

3. Untuk menganalisa ukuran (besar data) pada ciphertext hasil enkripsi dalam kilobyte.

1.4. Batasan Penelitian

Batasan masalah dalam penelitian ini antara lain : 1. Menggunakan bahasa pemrograman C#.

2. Menggunakan algoritma simetris Spritz Cipher dan algoritma asimetris ElGamal.

3. Menghitung real running time (milisecond).

4. Menghitung ukuran (besar data) ciphertext yang dihasilkan (kilobyte).

5. Plaintext dan ciphertext yang dapat dibuat berdasarkan ASCII (American Standard Code for Information Interchange).

6. Format file teks yang digunakan berekstensi *.docx.

7. Hanya melakukan proses enkripsi dan dekripsi pada file yang bertipe string.

1.5. Manfaat Penelitian

Penelitian ini diharapkan mampu :

1. Memberikan pengetahuan kepada penulis dalam merancang aplikasi penyandian pesan dengan teknik Hibrida menggunakan algoritma ElGamal dan Spritz Cipher.

2. Memperoleh sebuah sistem yang dapat mengamankan file teks.

3. Menjadi bahan referensi bagi penelitian lain yang ingin membahas topik yang berkaitan dengan penelitian ini.

(19)

1.6. Metodologi Penelitian

Metode penelitian yang dilakukan dalam penelitian ini adalah:

1. Studi Pustaka

Pada tahap ini penelitian dimulai dengan cara meneliti, mempelajari dan menelaah berbagai literatur-literatur berupa buku-buku, artikel-artikel ilmiah dan penelitian-penelitian terdahulu yang berhubungan dengan metode Hibrida, Algoritma ElGamal dan Spritz Cipher.

2. Analisis dan Perancangan

Berkaitan dengan batasan masalah, pada tahap ini dianalisa apa saja yang dibutuhkan dalam penelitian ini dan selanjutnya dirancang dalam sebuah program.

3. Implementasi

Pada tahap ini sistem diimplementasikan dengan algoritma ElGamal dan Spritz Cipher menggunakan bahasa pemrograman C#.

4. Pengujian

Pada tahap ini sistem yang telah dirancang dilakukan pengujian dengan menggunakan file teks berekstensi *.docx.

5. Dokumentasi

Pada tahap ini dilakukan penyusunan laporan hasil perancangan sistem yang telah dilakukan mulai dari tahap analisis sampai kepada pengujian dalam format penulisan skripsi.

(20)

1.7. Sistematika Penulisan

Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama, yaitu:

BAB 1 PENDAHULUAN

Bab ini berisi latar belakang pemilihan judul skripsi

“Implementasi Sistem Kriptografi Hibrida dengan Kombinasi Algoritma ElGamal dan Spritz Cipher untuk Pengamanan File Docx”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian dan sistematika penulisan.

BAB 2 LANDASAN TEORI

Bab ini menjelaskan tentang sistem kriptografi secara umum, teori dan dasar-dasar perhitungan serta contoh implementasi algoritma ElGamal, Spritz Cipher dan mekanisme Sistem Hibrida.

BAB 3 ANALISIS DAN PERANCANGAN

Bab ini berisi analisis terhadap masalah penelitian dan perancangan sistem yang akan dibangun sebagai solusi permasalahan tersebut.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi implementasi algoritma ElGamal dan Spritz Cipher, selanjutnya pengujian terhadap sistem yang telah dibangun dengan beberapa sampel file *.docx serta pembahasan hasil pengujian dan analisisnya.

BAB 5 KESIMPULAN DAN SARAN

Bab ini memuat kesimpulan dari uraian penjelasan bab-bab sebelumnya dan saran berdasarkan hasil pengujian yang diharapkan dapat bermanfaat untuk pengembangan sistem selanjutnya.

(21)

BAB 2

LANDASAN TEORI

2.1. Kriptografi

2.1.1 Definisi Kriptografi

Kriptografi (Cryptography) adalah suatu ilmu yang mempelajari teknik matematis yang berhubungan dengan keamanan informasi yang berupa keabsahan dan integritas data serta keamanan autentikasi suatu data. Kata kriptografi dibagi menjadi dua, yaitu kripto dan graphia yang berasal dari bahasa Yunani, kripto memiliki arti secret (rahasia) dan graphia memiliki arti writing (tulisan). Kriptografi merupakan bagian dari suatu cabang ilmu matematika yang memiliki tujuan menjaga kerahasiaan informasi yang terkandung dalam data agar tidak menyebabkan kerugian bagi pihak pengirim maupun penerima informasi karena kebocoran informasi tersebut (Munir, 2006).

Pada prinsipnya kriptografi melakukan transformasi data yang dimengerti manusia (plaintext) ke dalam bentuk data sandi yang tak dimengerti (ciphertext). Data sandi (ciphertext) tersebut akan dikirimkan pengirim (sender) kepada penerima (receiver). Setelah pesan diterima maka penerima akan melakukan tranformasi pesan tersebut (ciphertext) kembali ke dalam bentuk data yang dimengerti manusia (plaintext) agar dapat dibaca oleh penerima. Dalam kriptografi akan sering dijumpai istilah enkripsi dan dekripsi. Proses enkripsi (encryption) merupakan suatu proses konversi dari plaintext menjadi ciphertext, sedangkan proses dekripsi (decryption) adalah proses mengkonversikan kembali ciphertext menjadi plaintext seperti semula (Munir, 2006).

Algoritma (cipher) dan kunci (key) merupakan hal yang umum digunakan dalam proses enkripsi dan dekripsi kriptografi. Untuk melakukan proses enkripsi maupun dekripsi terdapat fungsi matematika yang digunakan yang disebut Cipher.

Sedangkan dalam melakukan proses enkripsi dan dekripsi data diperlukan sederetan

(22)

bit yang disebut kunci (key) yang pada uumnya terbagi 2 bagian, yaitu kunci pribadi (private key) dan kunci umum (public key) (Munir, 2006).

Gambar 2.1. Proses Enkripsi dan Dekripsi 2.1.2. Tujuan Kriptorafi

Tujuan kriptografi adalah sebagai berikut (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. Sistem Kriptografi Klasik

Sistem kriptografi klasik merupakan suatu sistem penyandian pesan yang menggunakan satu kunci untuk mengamankan data yang telah digunakan beberapa abad yang lalu sebelum adanya komputer. Pada kriptografi klasik terdapat dua teknik dasar yang digunakan, yaitu teknik subsitusi yang dilakukan dengan penggantian setiap karakrer pesan asli dengan karakter lain, dan teknik transposisi (permutasi) yang dilakukan dengan urutan karakter pada pesan asli dilakukan pengacakan tanpa mengganti karakter pesan (Ariyus, 2008).

Plaintext Plaintext

Ciphertext

Enkripsi Dekripsi

(23)

2.1.4. Sistem Kriptografi Modern

Sistem kriptografi modern merupakan teknik kriptografi yang memanfaatkan mode bit dan tidak lagi menggunakan mode karakter dalam proses enkripsi dan dekripsi yang sudah menggunakan perhitungan komputasi atau program dalam pengoperasiannya yang berguna untuk melindungi keamanan maupun keaslian pesan. Terdapat dua pengelompokan algoritma kriptografi modern, yaitu Stream Cipher yang melakukan penyandian bit per bit atau byte per byte, sedangkan Block Cipher melakukan penyandian per bagian dengan membagi file/text ke dalam beberapa bagian sudah ditentukan sebelumnya (Sadikin, 2012).

2.1.5. Algoritma Kunci Simetris

Kriptografi kunci simetris merupakan model kriptografi yang menggunakan kunci rahasia (sharing key) yang di mana jika kunci telah dibocorkan maka siapa saja dapat melakukan enkripsi dan dekripsi pesan karena kunci yang digunakan untuk enkripsi dan dekripsi menggunakan kunci yang sama (Henriquies dan Vernekar, 2017).

Gambar 2.2. Algoritma Simetris

2.1.6. Algoritma Kunci Asimetris

Algoritma kunci asimetris merupakan algoritma kunci umum (public key algorithm) yang memiliki kunci yang berbeda pada proses enkripsi maupun dekripsi. Di mana kunci yang digunakan dalam proses enkripsi dibuat umum sehingga disebut kunci public (public key), sedangkan kunci dekripsi disebut kunci pribadi (private key) sehingga hanya boleh diketahui oleh orang yang berhak mengetahui data yang dienkripsi (Dafid, 2006).

Plaintext

Ciphertext

Enkripsi Dekripsi

KunciRahasia

Plaintext

(24)

Gambar 2.3. Algoritma Asimetris

2.1.7. Metode Hibrida

Metode Hibrida (Hybrida) 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 Metode Hibrida Plaintext

Ciphertext

Enkripsi Dekripsi

KunciRahasia Kunci Publik

Plaintext

Plaintext Ciphertext

Enkripsi file dengan Spritz Cipher

Session Key

Dekripsi file dengan kunci

Spritz Cipher

Session Key

Enkripsi dengan Kunci Publik

ElGamal

Dekripsi Cipherkey dengan Kunci Privat ElGamal CipherKey

Plaintext

(25)

2.2. Algoritma ElGamal

ElGamal merupakan algoritma kriptografi asimetris yang terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi yang merupakan pertama kali dipublikasikan oleh Taher ElGamal pada tahun 1985 (Sadikin, 2012).

Algoritma ElGamal merupakan cipher blok yang melakukan proses enkripsi pada blok-blok plaintext dan menghasilkan blok-blok ciphertext yang kemudian dilakukan proses enkripsi, hasilnya digabungkan kembali menghasilkan pesan yang utuh.

Algoritma ElGamal memiliki kunci public dan dapat dibagi menjadi tiga bagian yaitu pembangkit kunci, enkripsi pesan dan dekripsi pesan. Kelebihan yang dimiliki ElGamal yaitu pembangkitan kunci yang menggunakan algoritma diskrit dan metode enkripsi serta dekripsi yang menggunakan proses komputasi yang besar menyebabkan ciphertext berukuran dua kali dari ukuran semula yang merupakan kekurangan algoritma ElGamal yaitu plaintext menghasilkan ciphertext yang lebih panjang.

Algoritma ElGamal mempunyai pembangkitan kunci publik yang menggunakan besaran – besaran, yaitu bilangan prima yang dinotasikan dengan “p”

yang bersifat tidak rahasia, bilangan acak dinotasikan dengan ”α” sebagai akar primitf ( α < p) yang bersifat tidak rahasia, bilangan acak dinotasikan dengan “d” di mana (d<

p) yang bersifat rahasia, blok plainteks dinotasikan dengan ”P” yang bersifat rahasia, serta cipherteks C1dan C2 yang bersifat tidak rahasia (Taufiq, M. 2010).

2.2.1. Landasan Matematika Algoritma ElGamal 1. Modulo Exponensial

Perhitungan yang dilakukan adalah menghitung xy (mod n) dengan n yang sangat besar. Cara iteratif merupakan satu cara untuk menghitung modulo eksponensial.

function (x, y, n){

z =1

for (i=1; i ≤ y; i++){

z = x * z mod n }

return z }

5

(26)

Diketahui nilai x = 2, y = 5 dan n = 10.

Penyelesaiannya dapat dilihat pada Tabel 2.1.

Tabel 2.1. Penyelesaian contoh modulo eksponensial 25 mod 10 Iterasi (i) Z = z * x mod n

1 2

2 * 1 mod 10 = 2 2 * 2 mod 10 = 4 3 2 * 4 mod 10 = 8 4 2 * 8 mod 10 = 6 5 2 * 6 mod 10 = 2 Maka hasil dari 25 mod 10 adalah 2.

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(15,2)?

Penyelesaiannya dapat dilihat pada Tabel 2.2.

→ berhenti

(27)

Tabel 2.2. Penyelesaian gcd(15,2)

A B R = A mod B

15 2 1

2 1 0

1 0

Maka gcd (15,2) adalah 1.

4. Inversi Modulo

Inversi dari a mod n dapat ditemukan apabila a dan n relatif prima dan n > 1. Inversi bilangan bulat a-1 sedemikian sehingga aa-1 ≡ 1 (mod n). Pembuktian dari persamaan di atas dapat dilihat dari definisi relatif prima diketahui bahwa GCD(a, n) = 1.

Contoh: Inversi dari 5 (mod 12)

Penyelesaiannya dapat dilihat pada Tabel 2.3.

Tabel 2.3. Penyelesaian soal inversi modulo 5 (mod 12) a-1 a-1 x 5 (mod12)

1 2 3 4 5

1 x 5 (mod12) = 5 2 x 5 (mod12) = 7 3 x 5 (mod12) = 3 4 x 5 (mod12) = 8 5 x 5 (mod12) = 1

Pada Tabel 2.2.1.4. Iterasi berhenti ketika a-1a ≡ 1 (mod n) dan diperoleh a-1 = 5.

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 A dan B merupakan relatif prima?

a. A = 40, B = 7 b. A = 30, B = 4

Penyelesaiannya dapat dilihat pada Tabel 2.4. dan Tabel 2.5.

(28)

Tabel 2.4. Penyelesaian soal relatif prima (a)

A B R = A mod B

40 7 5

7 5

5 2

2 1 2

1

1 0

0

Tabel 2.5. Penyelesaian soal relatif prima (b)

A B R = A mod B

30 4 2

4 2

2 0

0

Maka dari penyelesaian di atas didapat :

a. 40 dan 7 relatif prima karena gcd (40,7) = 1.

b. 30 dan 4 tidak relatif prima karena gcd (30,4) = 2 ≠ 1.

6. Element Primitif

Elemen primitif merupakan elemen pembangun dari grup Zp. Dalam mencari elemen ini digunakan p=2q+1, di mana q merupakan bilangan prima. α merupakan elemen primitif jika elemen α memenuhi α2 mod p ≠ 1 dan αq mod p ≠ 1.

Langkah untuk mengetahui bilangan elemen primitif : 1. Tentukan bilangan prima (p ≥ 5).

2. Cari

3. Cari α2 mod p dan αq mod p.

4. α bukan elemen primitif, jika α2 mod p = 1 dan αq mod p = 1.

5. q merupakan elemen primitif jika tidak terpenuhi persyaratan di atas.

Contoh :

Bilangan prima p = 11.

Bilangan prima = 5.

Jika terbukti bahwa α2 𝑚𝑜𝑑 11 ≠1 dan α5𝑚𝑜𝑑 11 ≠1, bilangan bulat α merupakan elemen primitif Z11*.

Perhitungan pembuktian dapat dilihat pada Tabel 2.6.

(29)

Tabel 2.6. Perhitungan α2 𝑚𝑜𝑑 11 dan α5𝑚𝑜𝑑 11

A 2 3 4 5

α2 𝑚𝑜𝑑 11 4 9 5 3 α5𝑚𝑜𝑑 11 10 1 1 1

Maka dari perhitugan di atas nilai α yang memenuhi sebagai elemen primitif Z11* adalah 2.

2.2.2. Prinsip Kerja Algoritma ElGamal

Algoritma ElGamal memiliki 2 buah kunci, yaitu kunci publik dan kunci privat, oleh karena itu algoritma ElGamal merupakan salah satu penerapan dari algoritma asimetris.

Gambar 2.5. Prinsip Kerja Algoritma ElGamal 2.2.2.1 Proses Pembangkitan Kunci Algoritma ElGamal

Langkah dalam pembangkitan kunci :

1. Tentukan bilangan prima p besar sebagai basis grup perkalian (Z*p,x).

2. Tentukan α akar primitif.

3. Tentukan d (1 ≤ d ≤ p – 2).

4. Hitung β= mod p.

Maka dihasilkan kunci publik (p,α, β) dan kunci privat = d.

Contoh :

1. Bilangan prima p = 19 2. α = 13

3. d = 7 Plaintext

Ciphertext Enkripsi

c1 = αr mod p c2 = P x βr mod

KunciRahasia (d) Kunci Publik (P,α,β)

P,α,d, β = αd mod p

Dekripsi

P = c2 x (c1d)-1 mod p Plaintext

(30)

4. β = αd mod p = 137 mod 19 = 10

Berdasarkan perhitungan diperoleh : 1. Kunci publik (p,α, β) = (19, 13, 10) 2. Kunci privat (d) = (7)

2.2.2.2. Proses Enkripsi Algoritma ElGamal Langkah enkripsi pesan :

1. Didapatkan kunci publik (p,α, β) = (19, 13, 10)

2. Plainteks m disusun menjadi blok-blok m1, m2, …, mp-1 3. Nilai blok pesan diubah ke dalam nilai ASCII.

Pesan P1 = FF = 12 (ASCII).

4. Tentukan sebuah bilangan asli (r< p-1). Contoh r = 10.

5. Hitung nilai dan . = mod p

= 1310 mod 19

= 6

= P1 x mod p

= 12 x 1010 mod 19

= 13

Maka didapatkan hasil cipherteks dengan nilai =6, dan =13.

Ulangi proses agar semua blok pesan terbaca dan menghasilkan cipherteks.

6. Kirim dan , (6,13).

2.2.2.3 Proses Dekripsi Algoritma ElGamal

Perhitungan dekripsi ElGamal adalah P = x mod p.

Dengan teorema Fermat dapat disederhanakan menjadi:

P = x mod p

Perhitungan di atas dapat dipermudah agar tiap-tiap blok pesan dapat dihitung.

𝑍 = 𝑚𝑜𝑑 𝑃 = 𝑍 𝑚𝑜𝑑

Langkah dalam mendekripsi pesan :

1. Terima ( , ) dari sender, yaitu (6, 13) 2. Hitung 𝑍 dan P.

(31)

Z = 𝑚𝑜𝑑

= 619-1-7 mod 19

= 611 mod 19

= 17

P = 𝑍 𝑚𝑜𝑑

= 13 17 mod 19

= 12

Maka didapatkan P = 12 dalam karakter dalam ASCII 12 = FF, dan hasil tersebut sesuai dengan plainteks yang dikirim sender yaitu FF.

3. Kemudian ulangi dan gabungkan hingga blok m1, m2, ..., menjadi plainteks yang utuh.

2.3. Spritz Cipher

Spritz Cipher merupakan algoritma kriptografi dengan kunci simetris yang merupakan sebuah pembaharuan dari algoritma RC4 yang ditemukan pada tahun 2014 oleh Ron Rivest dan Jacob Schuldt. Spritz Cipher mengimplementasikan sponge-based construction dalam penghasilan kunci rahasia maupun proses enkripsi yang di mana apabila dibandingkan dari RC4, tingkat keamanan dari Spritz Cipher lebih tinggi (Ron Rivest, Ron & Schuldt, Jacob, 2014). Namun, tingkat keamanan Spritz Cipher berbanding lurus dengan waktu yang digunakan untuk mengenkripsi sebuah data. Hal tersebut dikarenakan Spritz Cipher memiliki kompleksitas tinggi dikarenakan sponge- based construction (Alvarez dan Zamora, 2015).

Spritz Cipher mengenkripsi pesan satu per satu karakter dengan menggunakan transformasi enkripsi yang bergantung pada waktu singkat yang umumnya disebut algoritma Stream cipher. Spritz Cipher memiliki dua bagian utama, yaitu Key Scheduling Algorithm (KSA) dan Pseudo-Random Generation Algorithm (PRGA).

2.3.1 Key Scheduling Algorithm (KSA)

Struktur dari algoritma Spritz Cipher sama seperti struktur algoritma RC4 Cipher.

Kedua algoritma tersebut memiliki Key Scheduling Algorithm (KSA). KSA algoritma Spritz Cipher adalah :

(32)

Tabel 2.7. Key Scheduling Algorithm (KSA)

2.3.2 Pseudo Random Generation Algorithm (PRGA)

Algoritma Spritz digunakan dengan mendapatkan byte acak untuk proses enkripsi yang di mana w merupakan relatif prima dengan panjang S.

Tabel 2.8. Pseudo Random Generation Algorithm (PRGA)

Tabel 2.9. Larik 256 byte hasil perhitungan tahap key scheduling for i from 0 to 255

S[i] ← i endfor

j ← 0

for i from 0 to 255

j ← (j + S[i] + key[i mod keylength]) mod 256 swap values of S[i] and S[j]

endfor

For a from 0 to plaintext-1 i ← i + w

j ← k + S[j + S[i]]

k ← i + k + S[j]

swap S[i] with S[j]

z ← S[j + S[i + S[z + k]]]

output z EndFor

(33)

0 1 2 3 4 5 6 7 8 9 10 11 12 13 114 150 58 206 32 201 6 113 225 80 213 90 144 72 14 15 16 17 18 19 20 21 22 23 24 25 26 27 228 44 20 162 76 22 207 17 4 165 5 244 160 182

28 29 30 31 32 33 34 35 36 37 38 39 40 41 163 47 126 138 104 52 119 108 49 92 172 139 95 115

42 43 44 45 46 47 48 49 50 51 52 53 54 55 13 54 86 215 51 147 132 222 152 11 241 134 24 128 56 57 58 59 60 61 62 63 64 65 66 67 68 69 111 142 180 82 154 178 77 251 203 93 50 71 0 140

70 71 72 73 74 75 76 77 78 79 80 81 82 83 199 105 190 155 248 65 208 48 62 184 249 42 94 246

84 85 86 87 88 89 90 91 92 93 94 95 96 97 27 106 179 157 75 10 161 166 40 129 7 96 19 175 98 99 100 101 102 103 104 105 106 107 108 109 110 111 41 137 107 242 167 231 14 63 12 196 254 218 186 146 112 113 114 115 116 117 118 119 120 121 122 123 124 125 25 9 70 183 83 250 168 252 55 87 176 15 235 79 126 127 128 129 130 131 132 133 134 135 136 137 138 139 158 194 33 217 205 85 30 43 116 118 112 38 67 181 140 141 142 143 144 145 146 147 148 149 150 151 152 153 209 2 148 177 234 103 117 236 255 3 39 216 200 100 154 155 156 157 158 159 160 161 162 163 164 165 166 167 185 37 198 230 191 133 124 102 26 214 202 131 101 136 168 169 170 171 172 173 174 175 176 177 178 179 180 181 192 64 189 56 245 81 170 237 123 1 233 226 110 127 182 183 184 185 186 187 188 189 190 191 192 193 194 195 91 193 45 59 66 211 73 130 253 120 145 121 227 224 196 197 198 199 200 201 202 203 204 205 206 207 208 209 69 169 23 243 187 151 46 174 229 247 8 156 210 159 210 211 212 213 214 215 216 217 218 219 220 221 222 223 238 28 239 88 98 29 78 122 240 60 221 57 99 109 224 225 226 227 228 229 230 231 232 233 234 235 236 237 84 173 204 220 171 143 195 153 212 125 18 97 36 53 238 239 240 241 242 243 244 245 246 247 248 249 250 251

16 35 164 61 68 31 34 232 223 219 21 89 135 141 252 253 254 255

188 74 149 197

(34)

Sebagai contoh enkripsi Spritz Cipher, pesan plainteks yang akan dikirim adalah “r”

dengan kode ASCII 114 dan Key yang akan digunakan adalah “d” dengan kode ASCII 100. Setelah itu, nilai i, j, k, z dengan nilai 0 akan diinisialisasikan dengan proses Pseudo-Random Generation Algorithm (PRGA) dan menentukan nilai w.

Sebagai contoh nilai w yang akan digunakan adalah 29 yang merupakan nilai acak relatif prima dengan 256 dan setiap baris di modulo dengan 256.

2.3.3. Enkripsi Spritz Cipher Contoh enkripsi Spritz Cipher :

i = i + w = 0+29 mod 256

= 29

j = k + S[j + S[i]] = 0 + S[0 + S[29]] mod 256

= 0 + S[0+47] mod 256

= 0 + S[47] mod 256

= 0 + 147

= 147

k = i + k + S[j] = 29 + 0 + S[147] mod 256

= 29 + 0 + 236 mod 256

= 9

S[i] , S[j] = S[i] = S[29] = 47, S[j] = S[147] = 236 Swap S[i] with S[j] = S[i] = S[29] = 236, S[j] = S[147] = 47 z = S[j + S[i + S[z+k]]] = S[147 + S[29 + S[256 + 9]]] mod 256

= S[147 + S[29 + S[9]]] mod 256

= S[147 + S[29 + 80]] mod 256

= S[147 + S[109] mod 256 \

= S[147 + 218] mod 256

= S[109]

= 218

Lakukan operasi XOR pada karakter plaintext dengan nilai akhir perhitungan.

114 = 01110010 218 = 11011010

= 10101000 = dalam tabel ASCII merupakan karakter “ ”.

(35)

2.3.3. Dekripsi Spritz Cipher Contoh dekripsi Spritz Cipher :

i = i + w = 0+29 mod 256

= 29

j = k + S[j + S[i]] = 0 + S[0 + S[29]] mod 256

= 0 + S[0+47] mod 256

= 0 + S[47] mod 256

= 0 + 147

= 147

k = i + k + S[j] = 29 + 0 + S[147] mod 256

= 29 + 0 + 236 mod 256

= 9

S[i] , S[j] = S[i] = S[29] = 47, S[j] = S[147] = 236 Swap S[i] with S[j] = S[i] = S[29] = 236, S[j] = S[147] = 47 z = S[j + S[i + S[z+k]]] = S[147 + S[29 + S[256 + 9]]] mod 256

= S[147 + S[29 + S[9]]] mod 256

= S[147 + S[29 + 80]] mod 256

= S[147 + S[109] mod 256 \

= S[147 + 218] mod 256

= S[109]

= 218

Lakukan operasi XOR pada karakter ciphertext dengan nilai akhir perhitungan.

168 = 10101000 218 = 11011010

= 01110010 = dalam tabel ASCII merupakan karakter “r”.

(36)

2.4. Penelitian yang Terdahulu

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 On the Security of a Variant of ElGamal Encryption Scheme menyimpulkan bahwa Algoritma Elgamal dapat memungkinkan distribusi kunci dapat lebih mudah dan pendistribusian pesan yang sudah didekripsi dari sebuah plaintext yang besar (Rao, Fang-Yu, 2017).

3. Berdasarkan penelitian mengimpelementasikan kombinasi Beaufort Cipher dan algoritma Spritz. Penelitian tersebut menimpulkan dan membuktikan bahwa algoritma Spritz berhasil memperkuat Beaufort Cipher (Rahmadianti, 2017).

4. Berdasarkan penelitian algoritma Playfair Cipher dan algoritma ElGamal menyimpulkan pertumbuhan waktu dalam enkripsi dan dekripsi pesan berbanding lurus dengan panjang plaintext. Hal tersebut dibuktikan dengan grafik waktu proses yang diperoleh hasil O(n) yaitu linear (Mizfar, 2016).

5. 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).

6. 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).

(37)

BAB 3

ANALISIS DAN PERANCANGAN

3.1. Analisis Sistem

Analisis sistem (systems analysis) merupakan tahapan awal dari pengembangan sistem yang menjadi fondasi yang akan menentukan keberhasilan sistem informasi yang dihasilkan di mana hal tersebut betujuan untuk menganalisis persoalan-persoalan apa saja yang akan muncul pada perancangan maupun sebagai gambaran untuk menentukan bentuk sistem dan hal-hal apa saja yang akan dilakukan pada proses perancangan sistem nantinya. Analisis sistem harus dilakukan sebelum melakukan perancangan sistem karena setiap kesalahan pada tahap ini maka pada tahap berikutnya akan menyebabkan kesalahan.

3.1.1. Analisis Masalah

Analisis masalah bertujuan untuk menghasilkan faktor-faktor penyebab masalah dan memahami masalah-masalah yang akan diselesaikan oleh sistem. Seluruh masalah kemudian akan dimasukkan ke dalam diagram yang disebut Diagram Ishikawa atau Fishbone Diagram. Di mana diagram ishikawa pada umumnya merupakan diagram yang digunakan oleh para analis sistem untuk mengidentifikasi, menganalisis dan menggambarkan semua penyebab yang berkaitan dengan masalah yang akan dipecahkan. Masalah-masalah yang diperoleh tersebut kemudian digambarkan dengan diagram ishikawa.

Diagram Ishikawa berbentuk seperti ikan yang kepalanya menghadap ke kanan yang terdiri atas kepala ikan (fish’s head) menunjukkan nama atau judul dari masalah yang diidentifikasi dan tulang-tulang ikan (fish’s bones) yang menunjukkan penyebab- penyebab masalah yang diperoleh. Masalah dalam penelitian ini yang dirancang dalam bentuk diagram Ishikawa dapat dilihat pada Gambar 3.1

(38)

Gambar 3.1. Diagram Ishikawa Masalah Penelitian

Berdasarkan Diagram Ishikawa di atas terdapat empat kategori penyebab masalah pada penelitian. Masalah utama terdapat pada segi empat paling kanan pada bagian kepala ikan (fish’s head) yaitu implementasi sistem kriptografi hibrida menggunakan kombinasi algoritma simetris yang digunakan untuk melakukan enkripsi maupun dekripsi file dan algoritma asimetris melakukan enkripsi dan dekripsi kunci hasil dari algoritma simetris yang berkaitan dengan user, material, metode dan sistem dalam pengamanan file docx. Terdapatnya tanda panah yang mengarah ke masing-masing kategori menunjukkan maupun menggambarkan penyebab masalah pada sistem.

3.1.2. Analisis Kebutuhan

Tahap analisis kebutuhan mempunyai tujuan yaitu mengetahui apa saja kebutuhan yang diperlukan sistem yang pada umumnya disebut requirement. Analisis kebutuhan dilakukan dengan dua bagian yaitu kebutuhan fungsional dan kebutuhan nonfungsional.

3.1.2.1. Kebutuhan Fungsional

Kebutuhan fungsional merupakan kebutuhan yang dipenuhi pada sistem yang dirancang agar sistem dapat melakukan sesuai yang dibutuhkan. Kebutuhan fungsional yang harus dipenuhi dari Implementasi Sistem Kriptografi Hibrida dengan

Metode

Sistem

User

Material

Pengamanan File Docx dengan Kombinasi Kriptografi ElGamal dan Spritz Cipher.

Keamanan algoritma simetris kurang baik karena dalam proses enkripsi dan dekripsi menggunakan kunci yang sama

Algoritma asimetris dalam melakukan proses enkripsi maupun dekripsi membutuhkan waktu yang cukup lama dan besar ciphertext hasil enkripsi dua kali ukuran semula.

Pihak lain ingin mengetahui informasi yang dikirim

Pengamanan informasi dinilai kurang aman apabila hanya menggunakan satu algoritma

Jalur pengiriman tidak aman

Algoritma simetris diketahui banyak pihak

Kamanan File docx rentan

(39)

Kombinasi Algoritma ElGamal dan Spritz Cipher untuk pengamanan file docx adalah sebagai berikut :

1. Pembangkitan kunci

Membangkitkan kunci yaitu kunci publik dan kunci rahasia secara acak dengan algoritma ElGamal.

2. Memasukkan file

Sistem membaca file yang berekstensi docx.

3. Enkripsi file

File akan dienkripsi menggunakan algoritma spritz cipher dan menghasilkan ciphertext.

4. Enkripsi kunci simetris

Kunci algoritma spritz cipher dienkripsi menggunakan kunci publik 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 menggunakan kunci rahasia algoritma ElGamal dan menghasilkan kunci algoritma spritz cipher.

7. Dekripsi file

Ciphertext didekripsi menggunakan kunci algoritma spritz cipher sehingga menghasilkan file kembali seperti semula.

8. Menyimpan hasil dekripsi

File teks hasil dari dekripsi disimpan kembali.

3.1.2.2. Kebutuhan Non Fungsional

Kebutuhan nonfungsional menggambarkan fitur, karakteristik dan batasan lainnya yang dibutuhkan. Kebutuhan nonfungsional dari sistem sebagai berikut :

1. Performa

Proses enkripsi maupun dekripsi yang dilakukan oleh sistem memiliki waktu yang relatif singkat.

2. Kemampuan

Sistem mampu melakukan proses enkripsi maupun dekripsi dan dapat menyimpan hasil enkripsi maupun dekripsi tersebut dengan baik.

(40)

3. Pengendalian

Saat inputan tidak sesuai sistem akan menampilkan pesan error.

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 diagram umum sistem. Pada awalnya, penerima pesan yaitu Alice akan melakukan pembangkitan kunci dengan menggunakan algoritma ElGamal. Dengan membangkitkan kunci ElGamal akan menghasilkan public key yang akan diberikan kepada Bob selaku pengirim pesan dan juga private key yang juga dibangkitkan disimpan oleh Alice. Selanjutnya setelah public key diterima Bob, lalu Bob akan melakukan proses enkripsi file dengan Spritz Cipher sehingga menghasilkan ciphertext. Kunci yang digunakan untuk proses enkripsi tersebut lalu dienkripsi kembali menggunakan public key Algoritma ElGamal dan menghasilkan cipherkey. 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 Spritz Cipher. Alice kemudian mendekripsi ciphertext menggunakan kunci Spritz Cipher dan

Bob Alice

File Ciphertext File

Private Key Public Key

1 2

3

4

5

6

Enkripsi file Dengan kunci Spritz Cipher

Dekripsi file Dengan kunci Spritz Cipher Enkripsi cipher key

Menggunakan Public key ElGamal

Public Key diberikan Pada Bob

Membangkitkan Kunci dengan Algoritma ElGamal

Catat running time Proses dekripsi

Catat running time Proses dekripsi

Catat running time Proses enkripsi

Dekripsi cipherkey menggunakan Private key dengan ElGamal Catat running time

Proses enkripsi

(41)

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

Dalam menggambarkan kerja dari sistem, maka pemodelan sistem yang digunakan adalah Use Case Diagram, Activity Diagram dan Sequence Diagram.

3.2.1. Use Case Diagram

Use case diagram merupakan penggambaran apa saja yang berhubungan maupun yang dilakukan oleh sistem. Use case pada sistem dapat di tunjukkan pada gambar 3.3.

Gambar 3.3. Diagram Use Case Sistem

Pada gambar 3.3. menjelaskan bahwa use case sistem diakses oleh dua aktor yaitu pengirim dan penerima yang memiliki hak akses utama pada sistem. Hak akses pada penerima pesan yaitu berupa input file, enkripsi pesan dengan kunci Spritz

(42)

pengirim adalah pembangkitan kunci dan dekripsi yang didalamnya berupa dekripsi kunci Spritz Cipher, dekripsi pesan dengan kunci Spritz Cipher, 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 pembangkitan kunci. Awalnya user menekan tombol generate, dan mendapatkan nilai bilangan prima, alpha, beta dan d. Kemudian user menyimpan kunci publik dan privat yang dihasilkan untuk digunakan pada proses selanjutnya.

(43)

3.2.2.2. Diagram Aktivitas Proses Enkripsi

Gambar 3.5. Diagram Aktivitas Proses Enkripsi

Gambar 3.5. menjelaskan proses enkripsi dari sistem. Awalnya file yang berisi

(44)

file dialog dan user memilih file yang akan dienkripsi. Setelah dipilh, user memasukkan kunci simetris yang nantinya akan digunakan untuk mengenkripsi file.

Kemudian tekan tombol enkripsi kunci Spritz Cipher lalu sistem akan memproses.

Lalu tekan tombol simpan ciphertext dan sistem akan menampilkan jendela simpan file. Selanjutnya user menginput nama file dan menyimpan file tersebut. Setelah itu, 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.

(45)

3.2.2.3. Diagram Aktivitas Proses Dekripsi

Gambar 3.6. Diagram Aktivitas Proses Dekripsi

Gambar 3.6. menjelaskan proses dekripsi dari sistem. Hal pertama yaitu file yang berisi cipherkey yang akan dekripsi dimasukkan pada sistem. Sistem akan menampilkan open file dialog dan user memilih file cipherkey yang akan didekripsi.

Setelah dipilh, user menekan tombol dekripsi ElGamal dan kunci Spritz Cipher hasil

(46)

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 Spritz Cipher 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 merupakan suatu diagram yang bertujuan untuk menggambarkan interaksi antara objek dengan apa yang akan dilakukan sistem dalam sebuah urutan waktu. Pada gambar 3.7. terlihat sequence diagram untuk proses enkripsi dan dekripsi antara user yang menjadi aktor dengan sistem yang akan dibangun. Aktivitas yang terjadi ketika aktor atau objek berinteraksi ke objek lain digambarkan dengan tanda panah garis penuh, sedangkan garis putus-putus menggambarkan respon sistem terhadap aktor.

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

(47)

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

Dalam perancangan sistem ini terdapat beberapa flowchart yang akan dibuat, yaitu:

flowchar sistem, flowchart algoritma ElGamal dan flowchart Spritz Cipher.

3.2.4.1. Flowchart Sistem

Flowchart sistem yang akan dibangun ditunjukkan pada gambar di bawah ini yang merupakan flowchart pembangkit kunci, enkripsi dan juga dekripsi.

Gambar 3.8. Flowchart Pembangkit Kunci

Gambar 3.8. menunjukkan flowchart sistem pembangkitan kunci yang dimulai dengan membangkitkan kunci yang menghasilkan kunci publik dan kunci privat.

Selanjutnya kunci tersebut akan disimpan untuk digunakan pada proses selanjutnya.

Kunci public (p, α, β), Kunci privat (d)

Mulai

Selesai

Simpan kunci publik dan kunci privat Membangkitkan

Kunci (p, α, β, d)

(48)

Gambar 3.9. Flowchart Enkripsi

Gambar 3.9. menunjukkan flowchart sistem enkripsi yang dimulai dengan memasukkan file dan kunci Spritz Cipher ke dalam sistem kemudian melakukan proses enkripsi menggunakan Spritz Cipher dan menghasilkan ciphertext. Selanjutnya, kunci Spritz Cipher akan dienkripsi dengan kunci publik ElGamal dan menghasilkan cipherkey lalu cipherkey dan ciphertext hasil enkripsi disimpan untuk digunakan pada proses dekripsi.

Input File, Kunci Spritz Cipher

Mulai

Selesai

Simpan ciphertext dan cipherkey Enkripsi file dengan

Spritz Cipher

Ciphertext

Menampilkan kunci Spritz Cipher, kunci

publik

Enkripsi kunci Spritz Cipher dengan kunci public algoritma

ElGamal Cipherkey

(C1, C2)

(49)

Gambar 3.10. Flowchart Dekripsi

Gambar 3.9. menunjukkan flowchart Dekripsi Sistem yang dimulai dengan memasukkan cipherkey dan kunci privat lalu kemudian akan didekripsi menggunakan Algoritma ElGamal dan menghasilkan kunci Spritz Cipher. Setelah itu, ciphertext dan kunci tersebut akan didekripsi menggunakan Spritz Cipher dan menghasilkan file asli lalu file tersebut disimpan.

Input Cipherkey, Kunci Privat

Mulai

Selesai Simpan File Dekripsi Cipherkey dengan Kunci Privat

Kunci Spritz Cipher

Input Kunci Spritz Cipher, Ciphertext

Dekripsi Ciphertext dengan Kunci Spritz Cipher

File

(50)

3.2.4.2. Flowchart Algoritma ElGamal

Algoritma ElGamal memiliki 3 buah flowchart yang menggambarkan langkah- langkah dilakukan oleh algoritma tersebut yaitu flowchart pembangkit kunci, flowchart enkripsi dan flowchart dekripsi. Flowchart pembangkit kunci ditunjukkan pada gambar 3.11., flowchart enkripsi ditunjukkan pada gambar 3.12., dan flowchart dekripsi ditunjukkan pada gambar 3.1

Gambar 3.11. Flowchart Pembangkit Kunci Algoritma ElGamal

Gambar 3.11. menunjukkan flowchart Pembangkit Kunci Algoritma ElGamal yang dimulai dari menginputkan bilangan bulat prima dan diproses lalu akan menghasilkan dua kunci ElGamal yaitu kunci public dan kunci privat ElGamal.

P Bilangan

prima?

ya

Kunci publik (p,α, β) Kunci privat (d) Mulai

β = αd mod p

Selesai 𝑞 𝑝 −

2

α2 mod p≠1?

αq mod p≠1?

tidak

ya Input p

tidak

Input d (1 ≤ d ≤ p – 2)

(51)

Gambar 3.12. Flowchart Enkripsi Algoritma ElGamal

Algoritma Enkripsi ElGamal dimulai dari mengenkripsi plaintext dengan kunci publik yang telah dihasilkan dari pembangkitan kunci algoritma ElGamal, kemudian akan menghasilkan ciphertext dan C1 maupun C2 yang akan disimpan untuk proses berikutnya.

Ciphertext (𝑐 , 𝑐 ) Mulai

Selesai 𝑐 = 𝑎𝑟 mod p Input plaintext, Kunci publik (p,α, β),

bilangan acak r (r < p - 1)

𝑐 = P1 x β𝑟mod p

(52)

Gambar 3.13. Flowchart Dekripsi pada Algoritma ElGamal

Dalam proses mendapatkan kembali plaintext seperti semula, maka dilakukan proses dekripsi di mana ciphertext, kunci privat, maupun bilangan p yang dihasilkan dari proses sebelumnya akan didekripsi menggunakan algoritma dekripsi ElGamal dan akan menghasilkan plaintext berupa pesan asli yang berisi informasi yang dimengerti manusia.

Plaintext Mulai

Selesai Z = 𝑐 𝑝 𝑑 𝑚𝑜𝑑 𝑝

Input Ciphertext (𝑐 , 𝑐 ),

Kunci privat (d), bilangan prima p

P = 𝑐 𝑥 𝑍 𝑚𝑜𝑑 𝑝

Gambar

Gambar 3.1. Diagram Ishikawa Masalah Penelitian
Diagram umum sistem dapat dilihat pada gambar 3.2.
Gambar 3.3. Diagram Use Case Sistem
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
+7

Referensi

Dokumen terkait

Tujuan Penelitian ini dilakukan adalah untuk mengetahui dan menganalisis apakah pajak daerah dan retribusi daerah berpengaruh terhadap belanja modal pada Pemerintahan Kabupaten

Pendidikan Islam pada dasarnya merupakan upaya normatif untuk membantu seseorang atau sekelompok peserta didik dalam mengembangkan pandangan hidup islami (bagaimana akan menjalani

Tujuan dari paper ini adalah untuk memperlihatkan bagaimana pemimpin NU, Abdurrahman Wahid (selanjutnya ditulis Gus Dur), menggunakan wacana dialog antaragama sebagai: pertama

Peran dan Fungsi Penilai Kerugian (Loss Adjuster) Dalam Penyelesaian Klaim Asuransi Kerugian Berdasarkan Undang-Undang Nomor 40 Tahun 2014 Tentang Perasuransian. Fakultas Hukum

Dari sini, tentu saja makna dan kapasitas syakur hamba (manusia) berbeda dengan sifat yang disandang Allah. Manusia yang bersyukur kepada manusia/makhluk lain adalah ia yang

a) semua perjanjian yang dibuat secara sah berlaku sebagai Undang- undang bagi mereka yang membuatnya. b) suatu perjanjian tidak dapat ditarik kembali selain dengan sepakat

Artinya bahwa hilangnya pengetahuan tentang hakikat alam semesta dalam kehidupan manusia, yang telah dianulir oleh rasionalitas yang kemudian menjadi akar dari krisis

Penilai kerugian asuransi dalam industri asuransi di Indonesia berdasarkan Undang-Undang Nomor 40 Tahun 2014, yaitu usaha jasa penilaian klaim dan/atau jasa konsultasi atas