## IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK ELGAMAL DI LAPANGAN GALOIS PRIMA PADA PROSES ENKRIPSI DAN DEKRIPSI BERBANTUAN SOFTWARE PYTHON
Ummu Wachidatul Latifah 1 , Puguh Wahyu Prasetyo 2
1 Departemen Matematika, Fakultas Sains dan Teknologi Terapan, Universitas Ahmad Dahlan Yogyakarta 2 Departemen Pendidikan Matematika, Fakultas Keguruan dan Ilmu Pendidikan, Universitas Ahmad Dahlan Yogyakarta
Email: 1 ummu1600015054@webmail.uad.ac.id, 2 puguh.prasetyo@pmat.uad.ac.id
Abstract. The development of technology has an impact on the progress in all areas of human life, especially in the field of information. The development of technology also has positive and negative implications. One of the positive effects is the ease of exchanging information from the public or confidential over the internet. The negative impact is that personal data becomes less secure and can be misused by unauthorized parties. Elliptic Curve Cryptography (ECC) provides a solution for the security of information. ECC is one of the public key cryptography with a high level of protection compared to other public-key algorithms. This research aims to understand the cryptographic concept of the elliptic curve ElGamal process that will be defined in the prime Galois field. This study uses ElGamal elliptic curves in the Galois field for key formation processes, encryption processes,  and decryption processes in data using Python.
Keywords: Cryptography, Elliptic Curve ElGamal, Prime Galois Field, Python
Abstrak. Perkembangan teknologi memberikan dampak terhadap kemajuan di segala bidang kehidupan manusia  terutama dalam bidang informasi. Hal ini memberikan dampak positif dan negatif. Salah satu dampak positifnya adalah mudahnya bertukar informasi dari yang bersifat umum atau rahasia melalui internet. Dampak negatifnya adalah data yang bersifat rahasia menjadi kurang aman dan dapat disalahgunakan oleh pihak yang tidak berwenang. Kriptografi kurva eliptik ElGamal ( ECC: Eliptic Curve Cryptosystem ) memberikan solusi untuk keamanan suatu informasi. ECC merupakan salah satu metode kriptografi kunci publik yang mempunyai tingkat keamanan tinggi dibandingkan dengan algoritma kunci publik lainnya. Tujuan dari penelitian ini adalah memahami konsep kriptografi kurva eliptik ElGamal yang akan didefinisikan di Galois field prima. Hasil dari penelitian ini, yaitu penggunaan kurva eliptik ElGamal di Galois field prima untuk proses pembentukan kunci, proses enkripsi dan proses dekripsi pada suatu data dengan menggunakan Python. Kata Kunci: kriptografi, kurva eliptik ElGamal, Lapangan Galois prima, Python

## I. PENDAHULUAN
Perkembangan teknologi dan informasi saat ini sangatlah pesat. Hal tersebut dapat mempercepat dan mempermudah pertukaran informasi atau data.  Namun kemudahan tersebut
p-ISSN: 2621-6019 e-ISSN: 2621-6035
JOURNAL OF FUNDAMENTAL MATHEMATICS AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id
menjadi salah satu masalah yang dihadapi dalam pemanfaatan teknologi dan informasi, karena mudahnya terjadi pencurian informasi atau data rahasia oleh pihak yang tidak berwenang. Untuk menghindari hal tesebut, maka diperlukan  suatu  sistem keamanan yang dapat mengamankan informasi atau data. Salah satu ilmu yang mempelajari sistem keamanan, yaitu kriptografi.
Kriptografi merupakan ilmu dan seni untuk menyembunyikan pesan. Berdasarkan kuncinya, algoritma kriptografi terbagi menjadi dua, yaitu algoritma simetris (algoritma kunci privat) dan algoritma asimetris (algoritma kunci publik). Kriptografi simetris, yaitu algoritma kriptografi yang  hanya menggunakan satu buah kunci untuk proses enkripsi dan dekripsi. Proses enkripsi, yaitu proses menyandikan pesan asli ( plaintext ) menjadi pesan yang sulit dibaca ( ciphertext ) dan proses dekripsi, yaitu proses pengembalian pesan yang sulit dibaca ( ciphertext ) menjadi pesan asli ( plaintext ). Contoh algoritma kriptografi simetris, yaitu DES ( Data Encryption Standard ) dan AES ( Advanced Encryption Standard ). Kriptografi asimetris, yaitu algoritma kriptografi yang menggunakan dua buah kunci untuk proses enkripsi dan proses dekripsi. Contoh algoritma kriptografi asimetris, yaitu kriptografi kurva eliptik dan RSA.
Kriptografi kurva eliptik  merupakan kriptografi kunci publik yang membutuhkan komputasi tinggi karena perhitungan algoritma yang kompleks. Namun di sisi lain hal tersebut memberikan keuntungan, yaitu semakin kompleks perhitungan semakin sulit untuk dipecahkan atau semakin tinggi tingkat keamanannya. Salah satu solusi yang ditawarkan adalah menerapkan perhitungan aritmetika di lapangan komposit ( composit field ) [1].
Kriptografi kurva eliptik ditemukan oleh Koblitz dan Miller pada tahun 1986. Kriptografi kurva eliptik menjadi pilihan alternatif  yang sering digunakan karena mempunyai tingkat keamanan lebih tinggi dengan panjang kunci yang pendek dibandingkan dengan algoritma RSA [2].
Dalam kriptografi kunci publik, lapangan hingga atau Galois field maupun grup Galois memegang peranan yang sangat penting. Beberapa implementasi grup Galois dapat ditemukan dalam [3] dan [4]. Lebih lanjut, ada beberapa algoritma kunci publik yang mendefinisikan perhitungan aritmetika di lapangan berhingga atau Galois field , salah satunya kriptografi kurva eliptik El Gamal. Implementasi El Gamal dalam dalam proses enkripsi warna pada gambar seperti ditunjukkan oleh hasil penelitian dalam [5] dan [6]. Selain itu juga digunakan dalam proses identifikasi keaslian pesan atau disebut juga dengan istilah autentifikasi [7].
Semua perhitungan kriptografi kurva eliptik didefinisikan di Galois field prima atau 𝐺𝐺𝐹𝐹 𝑝𝑝 yang penerapannya analog dengan kriptosistem ElGamal. Untuk mempermudah perhitungan aritmetika yang sulit di Galois field tersebut diperlukan adanya sebuah software . Software yang akan digunakan dalam proses penelitian ini, yaitu Python . Python merupakan pemrograman interpretatif multiguna dengan filosofi perancangan yang berfokus pada tingkat keterbacaan kode. Python diklaim sebagai bahasa yang menggabungkan kapabilitas, kemampuan, dengan sintaksis kode yang sangat jelas, dan dilengkapi dengan fungsionalitas pustaka standar yang besar serta komprehensif [8].
Dalam penelitian ini akan dibahas implementasi kriptografi kurva eliptik ElGamal dalam proses enkripsi dan dekripsi pada Galois field prima menggunakan Python .
46 p-ISSN: 2621-6019 e-ISSN: 2621-6035

## JOURNAL OF FUNDAMENTAL MATHEMATICS AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id

## II. KONSEP DASAR KRIPTOGRAFI KURVA ELIPTIK EL GAMAL

## 2.1 Kriptografi Kurva Eliptik
Kriptografi kurva eliptik merupakan salah satu  sistem kriptografi kunci publik  yang mendasarkan keamanannya pada masalah kurva elips. Penentuan titik-titik kurva eliptik merupakan masalah logaritma diskrit yang sulit diselesaikan. Oleh karena itu algoritma kriptografi kurva eliptik ini memiliki keunggulan dibandingkan dengan algoritma kriptografi kunci public yang lainnya, yaitu memiliki tingkat keamanan yang sama dengan ukuran kunci yang lebih pendek [9].
Ada tiga protokol kurva eliptik yang diketahui, yaitu ECDSA ( Elliptic Curve Digital Signature), ECDH  ( Elliptic Curve Diffie-Helman) dan EC ElGamal  ( Elliptic Curve El Gamal). Pada bagian ini ini akan dibahas mengenai konsep EC ElGamal. Konsep yang mendasari penentuan titik-titik pada kurva elitpik, yaitu grafik atau kurva yang dibentuk dari persamaan:
𝑦𝑦 2 = 𝑥𝑥 3 + 𝑎𝑎𝑥𝑥 + 𝑏𝑏 (2)
dengan 𝑎𝑎 , 𝑏𝑏 merupakan konstanta. Persamaan tersebut sering disebut sebagai persamaan Weierstrass yang didefinisikan pada lapangan hingga. Secara umum, bentuk persamaan Weierstrass sebagai berikut:
𝑦𝑦 2 + 𝑎𝑎 1 𝑥𝑥𝑦𝑦 + 𝑎𝑎 3 𝑦𝑦 = 𝑥𝑥 3 + 𝑎𝑎 2 𝑥𝑥 2 + 𝑎𝑎 4 𝑥𝑥 + 𝑎𝑎 6 (3)
dengan 𝑎𝑎 1 , 𝑎𝑎 2 , . . . , 𝑎𝑎 6 merupakan konstanta. Apabila persamaan (2) didefinisikan pada lapangan yang memiliki karakteristik 𝑘𝑘 dengan 𝑘𝑘 ≠ 2 maka diperoleh:
�𝑦𝑦 + 𝑎𝑎 1 𝑥𝑥 2 + 𝑎𝑎 3 2 � 2 = 𝑥𝑥 3 + �𝑎𝑎 2 + 𝑎𝑎 1 2 4 � 𝑥𝑥 2 + �𝑎𝑎 4 + 𝑎𝑎 1 𝑎𝑎 3 4 � 𝑥𝑥 + ( 𝑎𝑎 3 2 4 + 𝑎𝑎 6 ) (4)
Persamaan (3) dapat ditulis menjadi:
𝑦𝑦 1 2 = 𝑥𝑥 3 + 𝑎𝑎 2 ′ 𝑥𝑥 2 + 𝑎𝑎 4 ′ 𝑥𝑥 + 𝑎𝑎 6 (5)
dengan 𝑦𝑦 1 = 𝑦𝑦 + 𝑎𝑎 1 𝑥𝑥 2 + 𝑎𝑎 3 2 dan 𝑎𝑎 2 ′ , 𝑎𝑎 4 ′ dan 𝑎𝑎 6 ′ merupakan konstanta.  Jika karakterikstik lapangan tidak sama dengan 3 , maka dari persamaan (5) diperoleh:
𝑦𝑦 1 2 = 𝑥𝑥 1 3 + 𝑎𝑎𝑥𝑥 1 + 𝑏𝑏 (6)
dengan 𝑥𝑥 1 = 𝑥𝑥 + 𝑎𝑎 2 ′ 3 dan 𝑎𝑎 , 𝑏𝑏 merupakan suatu konstanta.  Persamaan (6) identik dengan persamaan (2 ) , yaitu 𝑦𝑦 2 = 𝑥𝑥 3 + 𝑎𝑎𝑥𝑥 + 𝑏𝑏 .  Persamaan (2) disebut dengan depressed cubic equation. Solusi persamaan tersebut telah ditemukan oleh Girolamo Cardano. Berikut bentuk solusinya:
𝑥𝑥 = �− 𝑏𝑏 2 + � 𝑏𝑏 2 4 + 𝑎𝑎 3 27 3 + �− 𝑏𝑏 2 − � 𝑏𝑏 2 4 + 𝑎𝑎 3 27 3 (7)

## JOURNAL OF FUNDAMENTAL MATHEMATICS AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id
dari persamaan (7) diperoleh diskriminan dari persamaan (2 ) , yaitu:
𝐷𝐷 = 4 𝑎𝑎 3 + 27 𝑏𝑏 2 ≠ 0 . (8)
Terdapat dua jenis kurva eliptik yang utama, yaitu: kurva eliptik yang mempunyai tiga nyata berbeda dan kurva eliptik yang mempunyai akar tunggal. Kurva eliptik yang akan digunakan dalam penelitian ini tidak boleh mempunyai akar kembar. Dengan kata lain, suatu kurva eliptik mempunyai akar kembar jika 4 𝑎𝑎 3 + 27 𝑏𝑏 2 = 0 [10].

## 2.2 Kurva Eliptik di 𝑮𝑮𝑭𝑭 𝒑𝒑
Kriptografi kurva eliptik yang didefinisikan dengan menggunakan daerah karakteristik bilangan prima atau 𝐺𝐺𝐹𝐹 𝑝𝑝 , dimana 𝑝𝑝 merupakan bilangan prima yang lebih besar dari 3 . Sebuah kurva eliptik 𝐸𝐸 pada 𝐺𝐺𝐹𝐹 𝑝𝑝 didefinisikan dalam persamaan sebagai berikut:
𝑦𝑦 2 = 𝑥𝑥 3 + 𝑎𝑎𝑥𝑥 + 𝑏𝑏 (9)
dimana 𝑎𝑎 , 𝑏𝑏 ∈ 𝐺𝐺𝐹𝐹 𝑝𝑝 dan 4 𝑎𝑎 3 + 27 𝑏𝑏 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝 ) ≠ 0 dan sebuah titik ( 𝑂𝑂 ) yang disebut titik tak hingga  ( infinity ). Titik tak hingga merupakan identitas. Himpunan 𝐸𝐸 ( 𝐺𝐺𝐹𝐹 𝑝𝑝 ) merupakan semua titik ( 𝑥𝑥 , 𝑦𝑦 ) untuk 𝑥𝑥 , 𝑦𝑦 ∈ 𝐺𝐺𝐹𝐹 𝑝𝑝 yang memenuhi persamaan (8) pada titik ( 𝑂𝑂 ) [11]. Proses enkripsi dan dekripsi dalam kurva eliptik pada 𝐺𝐺𝐹𝐹 𝑝𝑝 menggunakan operasi aljabar, yaitu penjumlahan, pengurangan dan penggandaan titik  [12]. Perhitungan dapat dilakukan sebagai berikut:
1. Penjumlahan Titik Misal diketahui 𝑀𝑀 ( 𝑥𝑥 1 , 𝑦𝑦 1 ) dan ( 𝑥𝑥 1 , 𝑦𝑦 2 ) , dimana 𝑀𝑀 ≠ 𝑁𝑁 , 𝑀𝑀 + 𝑁𝑁 = 𝑅𝑅 . Untuk mencari koordinat , diperlukan 𝑥𝑥 3 dan 𝑦𝑦 3 . Titik 𝑥𝑥 3 dapat diperoleh dengan menggunakan persamaan (10 ) dan titik 𝑦𝑦 3 dapat diperoleh dengan menggunakan persamaan (11) sebagai berikut: 𝑥𝑥 3 = ( 𝜆𝜆 2 − 𝑥𝑥 1 − 𝑥𝑥 2 ) 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝 (10)
𝑦𝑦 3 = ( 𝜆𝜆 ( 𝑥𝑥 1 − 𝑥𝑥 3 ) − 𝑦𝑦 1 ) 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝 (11)
dengan 𝜆𝜆 = 𝑦𝑦 2 −𝑦𝑦 1 𝑥𝑥 2 −𝑥𝑥 1 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝
2. Pengurangan titik
Operasi pengurangan dapat dilakukan dengan menjumlahkan satu titik dengan nilai negatif dari titik lainnya. Misalkan 𝑃𝑃 ( 𝑥𝑥 𝑝𝑝 , 𝑦𝑦 𝑝𝑝 ) dan 𝑄𝑄 ( 𝑥𝑥 𝑞𝑞 , 𝑦𝑦 𝑞𝑞 ) . Pengurangan:
𝑃𝑃 – 𝑄𝑄 = 𝑃𝑃 + ( −𝑄𝑄 ) , (12)
yang dalam hal ini – 𝑄𝑄 = ( 𝑥𝑥 𝑞𝑞 , − 𝑦𝑦 𝑞𝑞 ( 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝 ))
.
3. Penggandaan titik Misalkan diketahui titik 𝑀𝑀 ( 𝑥𝑥 1 , 𝑦𝑦 1 ) dan ( 𝑥𝑥 1 , 𝑦𝑦 2 ) , dengan 𝑀𝑀 = 𝑁𝑁 , maka untuk menggandakan titik 𝑥𝑥 dapat menggunakan persamaan (13) dan untuk menggandakan titik 𝑦𝑦 dapat menggunakan persamaan (14) .
p-ISSN: 2621-6019 e-ISSN: 2621-6035

## JOURNAL OF FUNDAMENTAL MATHEMATICS AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id
𝑥𝑥 3 = ( 𝜆𝜆 2 − 2 𝑥𝑥 1 ) 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝 (13)
𝑦𝑦 3 = ( 𝜆𝜆 ( 𝑥𝑥 1 − 𝑥𝑥 3 ) − 𝑦𝑦 1 ) 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝 (14)
dengan 𝜆𝜆 = 3𝑥𝑥 1 2 +𝑎𝑎 2𝑦𝑦 1 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝 .

## 2.3 Algoritma Pembentukan Kunci Kriptografi Kurva Eliptik
Kriptografi kurva eliptik merupakan salah satu kriptografi asimetris, yaitu kriptografi yang mempunyai dua kunci. Kunci publik dan kunci privat. Kunci publik merupakan kunci yang digunakan untuk enkripsi. Sedangkan kunci untuk dekripsi menggunakan kunci rahasia [13]. Berikut merupakan langkah-langkah yang dilakukan dalam pembuatan kunci kriptografi kurva eliptik:[9]
1. Menentukan bilangan prima 𝑝𝑝 , dengan syarat 𝑝𝑝 > 3 .
2. Menentukan persamaan kurva eliptik yang memenuhi syarat 4 𝑎𝑎 3 + 27 𝑏𝑏 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝 ) ≠ 0 3. Mencari sisa kuadratik 𝑄𝑄𝑅𝑅 𝑝𝑝 4. Menentukan titik generator 𝐺𝐺 , dari grup eliptik atas 𝐺𝐺𝐹𝐹 𝑝𝑝
5. Menentukan kunci privat 𝑚𝑚 . Kunci privat 𝑚𝑚 ditentukan dengan nilai acak dimana nilai kunci tersebut merupakan elemen dari 𝑚𝑚 ∈ 2,3, … , 𝑝𝑝 − 1 dalam 𝐹𝐹 𝑝𝑝 .
6. Menghitung kunci publik 𝑄𝑄 . Kunci publik 𝑄𝑄 = 𝑚𝑚 ∙ 𝐺𝐺 . Kunci publik dihitung oleh masing- masing pengguna dengan melakukan operasi perkalian titik antara kunci rahasia masing- masing dengan titik 𝐺𝐺 .

## 2.4 Kriptografi Kurva Eliptik El Gamal
Kriptografi kurva eliptik ElGamal  atau yang sering dikenal dengan Elliptic Curve Cryptosystem merupakan sebuah kriptosistem dengan menggunakan kunci yang telah dibangkitkan dari titik-titik kurva eliptik. Untuk proses selanjutnya, yaitu proses enkripsi dan dekripsi.
2.4.1 Proses Enkripsi Proses enkripsi merupakan proses mengubah pesan asli ( plaintext ) menjadi pesan rahasia ( ciphertext ). Adapun langkah-langkah yang dilakukan dalam proses enkripsi adalah sebagai berikut [11], [14]:
p-ISSN: 2621-6019 e-ISSN: 2621-6035

## JOURNAL OF FUNDAMENTAL MATHEMATICS AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id

## Gambar 1. Algoritma enkripsi yang digunakan
2.4.2 Proses Dekripsi Proses dekripsi merupakan proses mengubah pesan rahasia ( ciphertext ) menjadi pesan asli ( plaintext ). Adapun langkah-langkah yang dilakukan saat proses dekripsi, yaitu:
Gambar 2. Algoritma dekripsi yang digunakan

## III. METODE PENELITIAN
Penelitian ini dilakukan berdasarkan kajian pustaka, pengembangan model kriptografi kurva eliptik dan implementasi model ke dalam program komputer dengan rincian sebagai berikut:

## 3.1 Tahap Awal Penelitian
Berdasarkan data yang diperoleh dari berbagai sumber seperti jurnal ilmiah, buku, ataupun penelitian sebelumnya, maka diperoleh beberapa metode analisis yang dilakukan dalam penelitian ini:
1. Mengumpulkan data berupa teori mengenai kriptografi kurva eliptik ElGamal.
2. Menentukan  nilai 𝑎𝑎 , 𝑏𝑏 dan 𝑝𝑝 untuk dapat memperoleh persamaan kurva eliptik pada lapangan Galois field ( 𝐺𝐺𝐹𝐹 𝑝𝑝 ) .
Algoritma Enkripsi
Input: Parameter 𝑝𝑝 , 𝐺𝐺 , 𝐸𝐸 , 𝑛𝑛 , kunci publik 𝑄𝑄 , pesan asli 𝑀𝑀 . Output: Ciphertext ( 𝐶𝐶 1 , 𝐶𝐶 2 )
1. Mengonversi pesan asli menjadi titik-titik kurva eliptik yang telah ditentukan.
2. Memilih suatu bilangan acak 𝑘𝑘 ∈ [ 1, 𝑛𝑛 − 1 ]
3. Menghitung nilai ( 𝐶𝐶 1 , 𝐶𝐶 2 ) yang merupakan ciphertext , dengan 𝐶𝐶 1 = 𝑘𝑘 . 𝐺𝐺
4. Menghitung nilai 𝐶𝐶 2 menggunakan rumus 𝐶𝐶 2 = 𝑀𝑀 + 𝑘𝑘 . 𝑄𝑄 dimana M merupakan plaintext yang sudah dikonversikan ke dalam titik-titik kurva eliptik dan 𝑄𝑄 merupakan kunci publik.
5. Diperoleh ciphertext ( 𝐶𝐶 1 , 𝐶𝐶 2 ) Algoritma Dekripsi
Input: Parameter 𝑝𝑝 , 𝐺𝐺 , 𝐸𝐸 , 𝑛𝑛 , kunci privat 𝑚𝑚 , Ciphertex t ( 𝐶𝐶 1 , 𝐶𝐶 2 ). Output: Pesan asli ( 𝑀𝑀 ) 1. Hitung 𝑀𝑀 = 𝐶𝐶 2 − 𝑚𝑚 . 𝐶𝐶 1 2. Hasil 𝑀𝑀
p-ISSN: 2621-6019 e-ISSN: 2621-6035

## JOURNAL OF FUNDAMENTAL MATHEMATICS AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id
3. Menentukan elemen-elemen grup eliptik 𝐸𝐸�𝐺𝐺𝐹𝐹 𝑝𝑝 � dengan cara menghitung nilai residu kuadrat modulo 𝑝𝑝 kemudian membandingkannya dengan nilai dari persamaan 𝑦𝑦 2 = 𝑥𝑥 3 + 𝑎𝑎𝑥𝑥 + 𝑏𝑏 ( 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝 ) . 4. Menentukan grup 𝑃𝑃 sebagai generator dari grup eliptik �𝐺𝐺𝐹𝐹 𝑝𝑝 � .
5. Menentukan domain kurva eliptik.
6. Mencari algoritma kriptografi kurva eliptik pada skema enkripsi ElGamal.
7. Merepresentasikan titik-titik kurva eliptik dengan simbol yang dipilih.
8. Menentukan kunci yang akan digunakan.
9. Melakukan enkripsi pesan yang akan diamankan.
10. Melakukan proses dekripsi pesan.

## 3.2 Proses Konstruksi
Program yang akan dibuat memiliki tampilan awal (menu utama) yang memiliki beberapa pilihan, yaitu pembentukan titik-titik kurva eliptik, pembentukan kunci, enkripsi dan dekripsi. Hasil pembentukan kunci kemudian disimpan menjadi dua buah file objek Python yang masing-masing berisi kunci publik dan kunci rahasia. Input dari proses enkripsi berupa plaintext yang akan dienkripsi dengan output berupa ciphertext disimpan ke dalam sebuah file objek Python . Sementara dalam proses dekripsi, input berupa file objek Python yang berisi ciphertext dan file objek Python kunci rahasia dengan output berupa plaintext hasil dekripsi.

## 3.3 Proses Pengujian
Pada tahap ini dilakukan pengujian terhadap output program yang diperoleh. Pengujian berupa pengecekan hasil plaintext yang sudah mengalami proses enkripsi dan dekripsi apakah sama dengan plaintext aslinya atau tidak.

## IV. HASIL DAN DISKUSI
4.1 Pembentukan Titik-titik Kurva Eliptik di 𝑮𝑮𝑭𝑭 𝒑𝒑
Langkah pertama dalam kriptografi kurva eliptik, yaitu menentukan titik-titik  kurva eliptik. Misalkan dipilih nilai 𝑝𝑝 = 13. Kemudian menentukan nilai 𝑎𝑎 , 𝑏𝑏 yang merupakan bilangan bulat positif. Dipilih nilai 𝑎𝑎 = 4 dan 𝑏𝑏 = 7. Menentukan persamaan kurva eliptik dengan nilai 𝑎𝑎 = 4, 𝑏𝑏 = 7 dan 𝑝𝑝 = 13, sehingga diperoleh:
𝑦𝑦 2 = 𝑥𝑥 3 + 4 𝑥𝑥 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13)
Diperiksa jika 𝑎𝑎 , 𝑏𝑏 dan 𝑝𝑝 memenuhi persamaan 4 𝑎𝑎 3 + 27 𝑏𝑏 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝 ) ≠ 0 maka persamaan kurva eliptik tersebut dapat berlaku.
4 𝑎𝑎 3 + 27 𝑏𝑏 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝 ) ≠ 0 4. 4 3 + 27. 7 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) ≠ 0 4. 4 3 + 27. 7 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 4096 + 1323 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 4. 4 3 + 27. 7 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 5419 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 8 ≠ 0
p-ISSN: 2621-6019 e-ISSN: 2621-6035

## JOURNAL OF FUNDAMENTAL MATHEMATICS AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id
Maka diperoleh persamaan kurva eliptik:
𝑦𝑦 2 = 𝑥𝑥 3 + 4 𝑥𝑥 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13)
Untuk dapat membuat titik ( 𝑥𝑥 , 𝑦𝑦 ) maka tentukan terlebih dahulu elemen dari kurva eliptik 𝐸𝐸 13 (4,7) atas 𝐺𝐺𝐹𝐹 13 , sebagai berikut: 𝐺𝐺𝐹𝐹 13 = {0,1,2,3,4,5,6,7,8,9,10,11,12} .  Sebelum membentuk semua titik ( 𝑥𝑥 , 𝑦𝑦 ) tenukan terlebih dahulu daerah elemen/ range kurva eliptik 𝑄𝑄𝑅𝑅 13 ( Quadratic Residue Module ). Pada Tabel 1 berikut ini merupakan quadratic residue module dari 𝐺𝐺𝐹𝐹 13 Tabel 1 Quadratic Residue Modulo 13
𝐺𝐺𝐹𝐹 𝑝𝑝 𝑦𝑦 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 𝑄𝑄𝑅𝑅 13 0 0 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 0 1 1 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 1
2 2 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 4 3 3 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 9
4 4 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 3 5 5 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 12 6 6 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 10
7 7 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 10 8 8 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 12 9 9 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 3 10 10 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 9 11 11 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 4
12 12 2 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 1
Dari Tabel 1 di atas, diperoleh 𝑄𝑄𝑅𝑅 13 = {0,1,3,4,9,10,12} . Selanjutnya, akan ditentukan elemen grup kurva eliptik 𝐸𝐸 13 (4,7) yang merupakan himpunan penyelesaian dari 𝑦𝑦 2 = 𝑥𝑥 3 + 4 𝑥𝑥 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) untuk 𝑥𝑥 ∈ 𝐺𝐺𝐹𝐹 13 dan 𝑦𝑦 2 ∈ 𝑄𝑄𝑅𝑅 13 .  Berikut ini dalam Tabel 2 diberikan elemen-elemen dari gurp kurva eliptik yang terbentuk dari kurva eliptik 𝑦𝑦 2 = 𝑥𝑥 3 + 4 𝑥𝑥 + 7 atas lapangan Galois prima 𝐺𝐺𝐹𝐹 13 .
Tabel 2. Elemen Grup Kurva Eliptik yang dibentuk dari 𝑦𝑦 2 = 𝑥𝑥 3 + 4 𝑥𝑥 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13)
atas 𝐺𝐺𝐹𝐹 13 𝑥𝑥 𝑦𝑦 2 = 𝑥𝑥 3 + 4 𝑥𝑥 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) 𝑦𝑦 2 ∈ 𝑄𝑄𝑅𝑅 13 ( 𝑥𝑥 , 𝑦𝑦 ) ∈ 𝐸𝐸 13 (4,7) 0 𝑦𝑦 2 = 0 3 + 4.0 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 7 𝑦𝑦 2 ∉ 𝑄𝑄𝑅𝑅 13 − 1 𝑦𝑦 2 = 1 3 + 4.1 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 12 𝑦𝑦 2 ∈ 𝑄𝑄𝑅𝑅 13 (1,5) & (1,8) 2 𝑦𝑦 2 = 2 3 + 4.2 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 10 𝑦𝑦 2 ∈ 𝑄𝑄𝑅𝑅 13 (2,6) & (2,7) 3 𝑦𝑦 2 = 3 3 + 4.3 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 7 𝑦𝑦 2 ∉ 𝑄𝑄𝑅𝑅 13 − 4 𝑦𝑦 2 = 4 3 + 4.4 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 9 𝑦𝑦 2 ∈ 𝑄𝑄𝑅𝑅 13 (4,3) & (4,10) 5 𝑦𝑦 2 = 5 3 + 4.5 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 9 𝑦𝑦 2 ∈ 𝑄𝑄𝑅𝑅 13 (5,3) & (5,10) 6 𝑦𝑦 2 = 6 3 + 4.6 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 0 𝑦𝑦 2 ∈ 𝑄𝑄𝑅𝑅 13 (6,0) 7 𝑦𝑦
2 = 7 3 + 4.7 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 1 𝑦𝑦 2 ∈ 𝑄𝑄𝑅𝑅 13 (7,1) & (7,12) 8 𝑦𝑦 2 = 8 3 + 4.8 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 5 𝑦𝑦 2 ∉ 𝑄𝑄𝑅𝑅 13 − 9 𝑦𝑦 2 = 9 3 + 4.9 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 5 𝑦𝑦 2 ∉ 𝑄𝑄𝑅𝑅 13 −

## JOURNAL OF FUNDAMENTAL MATHEMATICS AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id
10 𝑦𝑦 2 = 10 3 + 4.10 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 7 𝑦𝑦 2 ∉ 𝑄𝑄𝑅𝑅 13 −
11 𝑦𝑦 2 = 11 3 + 4.11 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 4 𝑦𝑦 2 ∈ 𝑄𝑄𝑅𝑅 13 (11,2) & (11,11)
12 𝑦𝑦 2 = 12 3 + 4.12 + 7 ( 𝑚𝑚𝑚𝑚𝑚𝑚 13) = 2 𝑦𝑦 2 ∉ 𝑄𝑄𝑅𝑅 13 −
Oleh sebab itu diperoleh Grup Eliptik sebagai berikut: 𝐸𝐸 13 (4,7) = {(1,5), (1,8), (2,6), (2,7), (4,3), (4,10), (5,3), (5,10), (6,0), (7,1), (7,12), (11,2), (11,11)}. Setelah itu memilih salah satu titik yang akan dijadikan generator atau pembangkit 𝐺𝐺 . Untuk merepresentasikan titik-titik kurva eliptik terhadap simbol bilangan, huruf  dan yang lainnya dilakukan dengan menentukan pembangkit, yaitu 𝐺𝐺 . Representasi tersebut tergantung dengan titik yang dipilih, sehingga hal tersebut tidak dapat berlaku secara umum.

## 4.2 Pembentukan Kunci Kurva Eliptik
Kekuatan dari kriptografi ini adalah banyaknya titik yang terdapat pada sebuah kurva dan sulit untuk mengetahui bentuk kurva seperti apa yang digunakan. Kriptografi kurva eliptik menggunakan dua kunci untuk proses enkripsi dan dekripsi. Kunci publik dan kunci privat. Kunci publik, yaitu titik pada kurva bersifat acak yang diperoleh dari perkalian antara kunci privat dengan titik pembangkit atau generator 𝐺𝐺 dan kunci privat adalah  angka yang kita tentukan sendiri.    Berikut ini akan diberikan contoh pembentukan kunci publik dan kunci privat.
Pada pembahasan 4.1 diambil contoh 𝑎𝑎 = 4, 𝑏𝑏 = 7 dan 𝑝𝑝 = 13. Dari nilai 𝑎𝑎 , 𝑏𝑏 dan 𝑝𝑝 diperoleh suatu grup kurva eliptik, yaitu 𝐸𝐸 13 (4,7) = {(1,5), (1,8), (2,6), (2,7), (4,3), (4,10), (5,3), (5,10), (6,0), (7,1), (7,12), (11,2),
(11,11)}.
Langkah selanjutnya, yaitu menentukan titik pembangkit atau generator 𝐺𝐺 ∈ 𝐸𝐸 13 (4,7) . Sebagai contoh diambil 𝐺𝐺 = (2,6) . Selanjutnya menentukan kunci privat 𝑚𝑚 . Kunci privat ditentukan secara acak  dengan syarat 𝑚𝑚 ∈ 2,3, … 𝑝𝑝 − 1 ∈ 𝐺𝐺𝐹𝐹 𝑝𝑝 . Sebagai contoh akan ditentukan 𝑚𝑚 = 3.
Setelah menentukan generator 𝐺𝐺 = (2,6) dan kunci privat 𝑚𝑚 = 3 , maka langkah selanjutnya yaitu menghitung kunci publik 𝑄𝑄 dengan menggunakan persamaan penjumlahan titik kurva eliptik pada 𝐺𝐺𝐹𝐹 𝑝𝑝 antara nilai 𝑚𝑚 dan titik 𝐺𝐺 .
𝑄𝑄 = 𝑚𝑚 . 𝐺𝐺 = 3. (2,6)
= (2,6) + (2,6) + (2,6)
= (5,3) + (2,6)
= (7,12) diperoleh nilai kunci publik 𝑄𝑄 = (7,12) .

## 4.3 Kriptografi Kurva Eliptik ElGamal
Kriptografi kurva eliptik El Gamal merupakan salah satu kriptografi yang sistemnya analog atau sesuai dengan protokol kurva eliptik. Pada sistem kriptografi kurva eliptik El Gamal terdapat proses enkripsi dan dekripsi.
p-ISSN: 2621-6019 e-ISSN: 2621-6035

## JOURNAL OF FUNDAMENTAL MATHEMATICS AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id

## 4.3.1 Proses Enkripsi
Berdasarkan pembahasan 4.1 dan 4.2 dengan nilai 𝑎𝑎 = 4, 𝑏𝑏 = 7 dan 𝑝𝑝 = 13 diperoleh titik- titik kurva eliptik, nilai kunci privat dan kunci publik. Untuk melakukan enkripsi pada suatu pesan, maka perlu dilakukan langkah-langkah algoritma enkripsi. Akan diambil contoh huruf 𝐴𝐴𝐴𝐴 , berikut langkah-langkah enkripsi kriptografi kurva eliptik:
1. Langkah awal  proses enkripsi, yaitu menentukan titik pembangkit yang dalam penelitian ini memilih contoh 𝐺𝐺 = (2,6) sebagai representasi huruf 𝐴𝐴 . Huruf 𝐴𝐴 dapat dituliskan sebagai 𝜃𝜃 , maka diperoleh 𝐴𝐴 = 𝜃𝜃 = (2,6). Sedangkan huruf 𝐴𝐴 dapat dituliskan sebagai 2 𝜃𝜃 , sehingga diperoleh 𝐴𝐴 = 2 𝜃𝜃 = (5,3) . Nilai 2 𝜃𝜃 dapat dicari dengan menggunakan operasi penggandaan titik-titik kurva eliptik. Untuk huruf, angka dan symbol yang lainnya dapat direpresentasikan menjadi 3 𝜃𝜃 , 4 𝜃𝜃 , … 𝑛𝑛𝜃𝜃 dengan menggunakan operasi penjumlahan atau penggandaan titik kurva eliptik.
2. Langkah selanjutnya, yaitu memilih suatu bilangan acak 𝑘𝑘 ∈ [ 1, 𝑛𝑛 − 1 ] . Dipilih 𝑘𝑘 = 4.
3. Menghitung nilai ( 𝐶𝐶 1 , 𝐶𝐶 2 ) yang merupakan ciphertext , dengan 𝐶𝐶 1 = 𝑘𝑘 . 𝐺𝐺 . karena nilai 𝐶𝐶 1 sama untuk setiap representasi symbol menjadi titik –titik kurva eliptik, maka  cukup dihitung satu kali. Diketahui nilai 𝑘𝑘 = 4 dan nilai 𝐺𝐺 = (2,6), maka dengan menggunakan operasi penjumlahan dan penggandaan titik-tiitk kurva eliptik diperoleh: 𝐶𝐶 1 = 𝑘𝑘 . 𝐺𝐺 = 5. (2,6) = (2,6) + (2,6) + (2,6) + (2,6) + (2,6) = (5,3) + (5,3) + (2,6)
= (5,10)
4. Menghitung nilai 𝐶𝐶 2 menggunakan rumus 𝐶𝐶 2 = 𝑀𝑀 + 𝑘𝑘 . 𝑄𝑄 . M merupakan plaintext yang sudah dikonversikan ke dalam titik-titik kurva eliptik, 𝑄𝑄 = (7,12) merupakan kunci publik dan 𝑘𝑘 = 5 dengan menggunakan operasi penggandaan dan penjumlahan titik- titik kurva eliptik.
Untuk 𝐶𝐶 2 A, diperoleh:
𝐶𝐶 2 = 𝑀𝑀 + 𝑘𝑘 . 𝑄𝑄 = (2,6) + 5. (7,12) = (2,6) + � (7,12) + (7,12) + (7,12) + (7,12) + (7,12) � = (2,6) + � (2,7) + (2,7) + (7,12) � = (2,6) + � (5,10) + (7,12) � = (5,3) Untuk 𝐶𝐶 2 B, diperoleh: 𝐶𝐶 2 = 𝑀𝑀 + 𝑘𝑘 . 𝑄𝑄 = (5,3) + 5. (7,12) = (5,3) + � (7,12) + (7,12) + (7,12) + (7,12) + (7,12) � = (5,3) + � (2,7) + (2,7) + (7,12) �
= (5,3) + � (5,10) + (7,12) � = (7,12)
5. Diperoleh ciphertext untuk huruf 𝐴𝐴 = ( 𝐶𝐶 1 , 𝐶𝐶 2 ) = � (5,10), (5,3) � dan ciphertext untuk huruf 𝐴𝐴 = ( 𝐶𝐶 1 , 𝐶𝐶 2 ) = � (5,10), (7,12) � .
p-ISSN: 2621-6019 e-ISSN: 2621-6035

## JOURNAL OF FUNDAMENTAL MATHEMATICS AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id

## 4.3.2 Proses Dekripsi
Berdasarkan 4.3.1 diperoleh bahwa nilai ciphertext dari 𝐴𝐴 = � (5,10), (5,3) � � (5,10), (7,12) � . Supaya pesan dapat terbaca, maka perlu dilakukan proses dekripsi. Berikut langkah-langkah dekripsi pesan:
1. Menghitung nilai pesan teks 𝑀𝑀 = 𝐶𝐶 2 − 𝑚𝑚 . 𝐶𝐶 1 , dengan kunci privat 𝑚𝑚 = 3 . 𝑀𝑀 = (5,3) − 3. (5,10)
= (5,3) − � (5,10) + (5,10) + (5,10) � = (5,3) − � (7,12) + (5,10) � = (2,6) = 𝐴𝐴 𝑀𝑀 = (7,12) − 3. (5,10) = (7,12) − � (5,10) + (5,10) + (5,10) �
= (7,12) − � (7,12) + (5,10) � = (5,3) = 𝐴𝐴 2. Hasil 𝑀𝑀 Diperoleh pesan asli, yaitu 𝐴𝐴𝐴𝐴

## 4.4 Implementasi pada Phyton
Proses penghitungan titik-titik kurva eliptik, proses enkripsi dan proses dekripsi pada kriptografi kurva eliptik El Gamal merupakan perhitungan matematika yang sulit dan memerlukan banyak waktu, sehingga akan sangat terbatas nilainya apabila dilakukan secara manual. Oleh karena itu, penulis mencoba mengimplementasikan algoritma kriptografi kurva eliptik El Gamal di Galois 𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑚𝑚 prima dengan menggunakan software Python, yaitu berbentuk GUI. Adanya GUI Python diharapkan dapat meningkatkan keamanan sistem dengan menggunakan nilai yang lebih besar dan mpercepat proses penentuan titik-titik kurva eliptik, proses enkripsi dan proses dekripsi pada algoritma kriptografi El Gamal.
Diambil contoh nilai 𝑎𝑎 = 21, 𝑏𝑏 = 34 dan 𝑝𝑝 = 317. Berikut tampilan awal GUI Python dapat dilihat pada Gambar 3 di bawah ini:
p-ISSN: 2621-6019 e-ISSN: 2621-6035

## JOURNAL OF FUNDAMENTAL MATHEMATICS AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id

## Gambar 3. Tampilan GUI dengan Phyton

## 4.4.1 Pembentukan Titik-titik Kurva Eliptik
Sebelum melakukan proses enkripsi, maka langkah awal adalah memastikan bahwa diskriminan dari kurva eliptik yang digunakan tidak sama dengan 0 . Dalam proses ini, yang digunakan adalah 𝑦𝑦 2 = 𝑥𝑥 3 + 21 𝑥𝑥 + 34 dengan bilangan prima 𝑝𝑝 = 317 . Dengan menggunakan program  yang telah dikontruksi, maka diperoleh tampilan seperti yang ditunjukkan oleh Gambar 4 di bawah ini.
Gambar 4. Pembentukan titik-titik dalam 𝑦𝑦 2 = 𝑥𝑥
3 + 21 𝑥𝑥 + 34 atas 𝑝𝑝 = 317
p-ISSN: 2621-6019 e-ISSN: 2621-6035

## JOURNAL OF FUNDAMENTAL MATHEMATICS AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id
Dengan  memilih titik 𝑃𝑃 = (3,21) sebagai pembangkit, maka langkah berikutnya adalah penggandaan titik yang prosesnya dengan program yang telah dikonstruksi dapat dilihat pada Gambar 5 berikut ini.
Gambar 5. Penggandaan Titik 𝑃𝑃 = (3,21)
4.4.3 Representasi Titik-titik Kurva Eliptik Untuk menyederhanakan proses simulasi kriptografi kurva eliptik atas Galois field prima, maka dalam penelitian ini didefinisikan representasi simbol yang diwakili oleh huruf 𝐴𝐴 − 𝑍𝑍 dan 0,1, … ,9, +, ? dengan titik-titik dalam kurva eliptik yang telah diperoleh. Banyaknya karakter yang dapat direpresentasikan bergantung pada jumlah titik yang diperoleh. Adapun rincian representasi ini dapat dilihat pada Tabel
Tabel 3. Representasi Titik-titik Kurva Eliptik Titik-titik Kurva Eliptik Simbol Titik-titik Kurva Eliptik Simbol 𝜃𝜃 = (3,21) A 20 𝜃𝜃 = (311,314) T 2 𝜃𝜃 = (60,95)
B 21 𝜃𝜃 = (151,7) U
3 𝜃𝜃 = (223,66)
C
22 𝜃𝜃 = (200,139) V 4 𝜃𝜃 = (140,304) D 23 𝜃𝜃 = (142,47 ) W 5 𝜃𝜃 = (9,316)
E
24 𝜃𝜃 = (209,148)
X
6 𝜃𝜃 = (248,32)
F
25 𝜃𝜃 = (121,134) Y 7 𝜃𝜃 = (302,214) G 26 𝜃𝜃 = (44,66) Z 8 𝜃𝜃 = (216,308) H 27 𝜃𝜃 = (301,255) 0 9 𝜃𝜃 = (105,230)
I 28 𝜃𝜃 = (220,249)
1
10 𝜃𝜃 = (288,37)
J 29 𝜃𝜃 = (50,251) 2 11 𝜃𝜃 = (161,236)
K 30 𝜃𝜃 = (46,180)
3 12 𝜃𝜃 = (242,41)
L 31 𝜃𝜃 = (108,210)
4 13 𝜃𝜃 = (11,168)
M 32 𝜃𝜃 = (298,82) 5 14 𝜃𝜃 = (180,174) N 33 𝜃𝜃 = (230.277)
6 15 𝜃𝜃 = (176,39) O 34 𝜃𝜃 = (127,219) 7 16 𝜃𝜃 = (34,181)
P 35 𝜃𝜃 = (12,72) 8 17 𝜃𝜃 = (304,307) Q 36 𝜃𝜃 = (158,263) 9 18 𝜃𝜃 = (67,172) R 37 𝜃𝜃 = (20,294) + 19 𝜃𝜃 = (7,29) S 38 𝜃𝜃 = (89,127) ?

## JOURNAL OF FUNDAMENTAL MATHEMATICS
AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id
https://doi.org/10.14710/jfma.v4i1.9278

## 4.4.2 Penggandaan Titik

## 4.4.4 Proses Enkripsi dan Dekripsi
Untuk proses enkripsi dan dekripsi menggunakan kunci privat 𝑚𝑚 = 7, kunci publik 𝑄𝑄 = 𝑚𝑚 . 𝐺𝐺 = 7. (3,21) = (302,214) dan nilai 𝑘𝑘 = 6. Berikut pada Tabel 4 di bawah ini merupakan proses enkripsi dan dekripsi dari kata “MATEMATIKA”:
Tabel 4. Proses enkripsi plaintext “MATEMATIKA” Karakter 𝐶𝐶 1 = 𝑘𝑘 . 𝐺𝐺 𝐶𝐶 2 = 𝑀𝑀 + 𝑘𝑘 . 𝑄𝑄 ( 𝐶𝐶 1 , 𝐶𝐶 2 ) 13 𝜃𝜃 = (11,168) = 𝑀𝑀 (248,32) (73,255) [(248,32), (73,255)] 𝜃𝜃 = (3,21) = 𝐴𝐴 (248,32)
(6,196) [(248,32), (6,196)] 20 𝜃𝜃 = (311,314) = 𝑇𝑇 (248,32) (297,217) [(248,32), (297,217)] 5 𝜃𝜃 = (9,316) = 𝐸𝐸 (248,32) (79,264) [(248,32), (79,264)] 13 𝜃𝜃 = (11,168) = 𝑀𝑀 (248,32) (73,255) [(248,32), (73,255)] 𝜃𝜃 = (3,21) = 𝐴𝐴 (248,32) (6,196) [(248,32), (6,196)] 20 𝜃𝜃 = (311,314) = 𝑇𝑇 (248,32) (297,217) [(248,32), (297,217)] 9 𝜃𝜃 = (105,230) = 𝐼𝐼 (248,32) (177,220) [(248,32), (177,220)] 11 𝜃𝜃 = (161,236) = 𝐾𝐾 (248,32) (16,36) [(248,32), (16,36)] 𝜃𝜃 = (3,21) = 𝐴𝐴 (248,32) (6,196) [(248,32), (6,196)]
Selanjutnya, untuk hasil dari proses dekripsi dapat dilihat pada Tabel 5 di bawah ini
Tabel 5. Proses Dekripsi
𝐶𝐶 1 𝐶𝐶 2 𝑚𝑚 𝑀𝑀 = 𝐶𝐶 2 − 𝑚𝑚 . 𝐶𝐶 1 (248,32) (73,255) 7 𝑀𝑀 = (73,255) − 7(248,32) = (11,168) = 𝑀𝑀 (248,32) (6,196) 7 𝑀𝑀 = (6,196) − 7(248,32) = (3,21) = 𝐴𝐴
(248,32) (297,217) 7 𝑀𝑀 = (297,217) −
7(248,32) = (311,314) = 𝑇𝑇 (248,32) (79,264) 7 𝑀𝑀 = (79,264) − 7(248,32) = (9,316) = 𝐸𝐸 (248,32) (73,255) 7 ( 𝑀𝑀 = (73,255) − 7(248,32) = (11,168) = 𝑀𝑀
(248,32) (6,196) 7 𝑀𝑀 = (6,196) − 7(248,32) = (3,21) = 𝐴𝐴
(248,32) (297,217) 7 𝑀𝑀 = (297,217) − 7(248,32) = (311,314) = 𝑇𝑇
(248,32) (177,220) 7 𝑀𝑀 = (177,220) − 7(248,32) = (105,230) = 𝐼𝐼
(248,32) (16,36) 7 𝑀𝑀 = (16,36) − 7(248,32) = (161,236) = 𝐾𝐾
(248,32) (6,196) 7
𝑀𝑀 (6,196) − 7(248,32) = (3,21) = 𝐴𝐴
Tampilan Graphical User Interface (GUI) pada proses enkripsi maupun deskripsi dengan menggunakan program yang telah dikonstruksi dapat dilihat pada Gambar 6 di bawah ini.
p-ISSN: 2621-6019 e-ISSN: 2621-6035

## JOURNAL OF FUNDAMENTAL MATHEMATICS
AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id

## Gambar 6. Proses enkripsi dan dekripsi

## V. KESIMPULAN
Berdasarkan hasil yang diperoleh dari penelitian ini, maka dapat disimpulkan bahwa Kriptografi kurva eliptik ElGamal yang diimplementasikan di Galois field prima menggunakan konsep matematika. Sistem kriptografi jenis ini merupakan sistem yang aman untuk menjaga kerahasiaan sebuah pesan atau informasi. Karena dengan perhitungan titik-titik kurva eliptik yang rumit, hal tersebut akan sangat sulit diretas keamanannya.  Kemudian, implementasi kriptografi kurva eliptik ElGamal  menggunakan Python memiliki tiga tahapan, yaitu pembentukan kunci, enkripsi dan dekripsi. Hasil pembentukan kunci diperoleh kunci publik dan kunci rahasia. Input dari proses enkripsi berupa plaintext yang akan dienkripsi menggunakan kunci publik dan kunci privat dengan output berupa ciphertext . Sementara dalam proses dekripsi input berupa ciphertext dan kunci privat dengan output berupa plaintext . Berdasarkan penelitian ini diperoleh bahwa dengan menggunakan Python akan lebih mempercepat proses perhitungan sistem kriptografi kurva eliptik ElGamal pada Galois field prima.

## UCAPAN TERIMAKASIH
Penulis mengucapkan terimakasih kepada Ibu Dian Eka Wijayanti, M.Si dan Bapak Dr. Yudi Ari Adi, M.Si atas komentar dan saran sehingga penelitian ini dapat terselesaikan dengan baik.

## REFERENSI
[1]  B. Raharjo, Kuspriyanto, M. Paryasto, I. Muchtadi-Alamsyah, F. Yuliawan, and Nopendri, Pengantar Kurva eliptik dan lapangan hingga . Bandung: Penerbit Institut Teknologi Bandung, 2014.
[2]  A. H. Koblitz, N. Koblitz, and A. Menezes, Elliptic Curve Cryptography: The Serpentine Course of a Paradigm Shift, Journal of Number Theory , vol 131, no. 5, pp. 781-814, 2011.
p-ISSN: 2621-6019 e-ISSN: 2621-6035

## JOURNAL OF FUNDAMENTAL MATHEMATICS AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id
[3]  D. Krumm and N. Sutherland, Galois Groups Over Rational Function Fields and Explicit Hilbert Irreducibility, Journal of Symbolic Computation, vol. 103, pp. 108-126. 2021.
[4]  A. Bachmayr, D. Harbater, J. Hartmann, and M. Wibmer, The Differential Galois Group of the Rational Function Field, Advance in Mathematics, vol. 381, 2021.
[5]  J. Wu, X. Liao, and B. Yang, Color Image Encryption Based on Chaotic Systems and Elliptic Curve ElGamal Scheme, Signal Processing , vol. 141, pp. 109-124, 2017.
[6]  Y. Luo, X. Ouyang, J. Liu, and L. Cao, An Image Encryption Method Based on Elliptic Curve Elgamal Encryption and Chaotic Systems, IEEE Access , vol. 7, pp. 38507-38522, 2019.
[7]  A. Abro, Z. Deng, and K. A. Memon, A  Lightweight  Elliptic-ElGamal-Based Authentication Scheme for Secure Device-to-Device Communication, Future Internet , vol. 11, no. 5, 2019
[8]  M. C. Sinaga, Kriptografi dan Python . Medan, 2017.
[9]  Litasari and B. Rahadjo, Design and Implementation Stegocrypto Based on ElGamal Elliptic  Curve,  in Proceedings of the International Conference on Information Technology, Information Systems and Electrical Engineering (ICITISEE) , pp 95-99, 2018.
[10]  P. W. Prasetyo and M. Z. Riyanto, Penerapan Kurva Eliptik Atas Zp Pada Skema Tanda Tangan El Gamal,  in Prosiding Seminar Nasional Matematika Dan Pendidikan Matematika , pp. 67–72, 2010.
[11]  J. Silverman, Advanced Topics in the Arithmetic of Elliptic Curves . New York: Springer- Verlag, 1994.
[12]  H. K. Mohanta, Secure Data Hiding using Elliptical Curve Cryptography and Steganography, International Journal of Computer Applications , vol. 108, no. 3, pp. 16- 20, 2014.
[13]  I. Halik and Y. Prayudi, Studi dan Analisis Algoritma Rivest Code 6 (RC6) dalam Enkripsi/Dekripsi Data, in Prosiding Seminar Nasional Aplikasi Teknologi Informasi (SNATI) , pp. 149-158, 2005.
[14]  A. Zelviana, S. Efendi, and A. Dedy, Perancangan Aplikasi Pembelajaran Kriptografi Kunci Publik ElGamal Untuk Mahasiswa, Jurnal Dunia Teknologi Informasi , vol. 1, no. 1, pp. 56-62, 2012.
p-ISSN: 2621-6019 e-ISSN: 2621-6035

## JOURNAL OF FUNDAMENTAL MATHEMATICS
AND APPLICATIONS (JFMA) VOL. 4 NO. 1 (JUN 2021) Available online at www.jfma.math.fsm.undip.ac.id