Pembentukan Kunci Proses Pembentukan Kunci Enkripsi

= 216 mod 7 = 6 Karena kemungkinan p prima adalah 75, p dapat dikatakan bilangan prima. Metode pembangkit bilangan prima Lehmann dipilih karen pada prosesnya hanya perlu melakukan perulangan sebanyak sepuluh kali untuk menentukan sebuah bilangan prima atau tidak.

2.13. Algoritma ElGamal

Algoritma ElGamal ditemukan oleh Taher ElGamal pada tahun 1984. Algoritma ini pada mulanya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. ElGamal digunakan di dalam perangkat lunak sekuriti yang dikembangkan oleh GNU, program PGP dan pada sistem keamanan lainnya, Keamanan algoritma ini terletak pada sulitnya menghitung logaritma diskrit Munir, 2006. Algoritma ini didasarkan pada masalah logaritma diskret dan terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi, dan proses dekripsi. Algoritma ini merupakan cipher blok, yaitu melakukan proses enkripsi pada blok-blok palinteks dan menghasilkan blok-blok ciphertext yang kemudian dilakukan proses dekripsi, dan hasilnya digabungkan kembali menjadi pesan yang utuh dan dapat dimengerti. Untuk membentuk sistem kriptografi ElGamal, dibutuhkan bilangan prima p dan elemen primitif Massandy, 2009.

2.14. Pembentukan Kunci

Proses pertama pada algoritma ElGamal adalah pembentukan kunci yang terdiri dari kunci privat dan kunci publik. Pada proses ini dibutuhkan sebuah bilangan prima aman p, akar primitif � yang, dan sembarang a ∈ {0,1,...,p-2}. Pada proses pembentukan kunci, panjang digit bilangan prima p sangat berpengaruh pada panjang pesan yang dienkripsi Singh Kumar 2012. Universitas Sumatera Utara Kunci publik algoritma ElGamal berupa pasangan 3 bilangan, yaitu � , �, p, dengan � mod dimana a merupakan kunci rahasia Batten, 2013.

2.15. Proses Pembentukan Kunci

Langkah-langkah dalam pembentukan kunci adalah sebagai berikut Menezes et all, 1996: 1. Pilih bilangan prima besar p 255 dan elemen primitif � dari bilangan bulat mod p. 2. Pilih bilangan bulat a, dimana 1 ≤ a ≤ p – 2. 3. Hitung � mod . 4. Publikasikan nilai � , �, dan p, serta rahasiakan nilai a. Pihak yang membuat kunci adalah pihak penerima. Penerima kemudian akan mengirimkan kunci publik yaitu � , �, dan p untuk digunakan pada proses enkripsi. Misalkan Alice dan Bob ingin berkomunikasi. Dalam hal ini Bob akan membuat kunci publik dan kunci privat. Bob memilih bilangan prima p = 257, � = 20, dan kunci privat a = 5. � mod = 20 5 mod 257 = 93 Jadi kunci publik Bob adalah p = 257, � = 20, dan � = 93 dan kunci privatnya adalah 5. Bob mengirimkan 257, 20, 93 pada Alice dan menyimpan kunci privatnya.

2.16. Enkripsi

Pada proses enkripsi, pesan asli plaintext diubah menjadi pesan rahasia ciphertext. Pada proses ini digunakan kunci publik p, � � . Dalam perhitungannya, algoritma ElGamal menggunakan bilangan bulat. Oleh karena itu digunakanlah kode ASCIIAmerican Standard for Information Interchange. Kode ASCII adalah representasi numerik dari karakter-karakter yang digunakan dalam komputer. Universitas Sumatera Utara Setelah mendapatkan kunci publik, Alice memilih bilangan acak rahasia b ∈ {0,1,...,p-2}. Bilangan acak b sebaiknya berbeda untuk setiap plaintext menghindari serangan acak bilangan b yang dapat mempengaruhi plaintext lainnya Sharma et all, 2012. Misalkan m adalah pesan yang akan dikirim. Selanjutnya m diubah ke dalam blok-blok karakter dan setiap karakter dikonversikan ke dalam kode ASCII, sehingga diperoleh plaintext m 1 , m 2 , m 3 , ... , m n dengan m i ∈ {1, 2,..., p-1} dan i =1, 2,..., n. Enkripsi kemudian dilakukan dengan menghitung � mod dan � mod Algoritma enkripsi pesan : 1. Plaintext disusun menjadi blok-blok m 1 , m 2 , ... , m n sehingga setiap blok merepresentasikan nilai di dalam rentang 0 sampai p – 1 dengan mengubah nilai m menjadi kode ASCII. 2. Pilih bilangan acak b dengan rentang 0 b p – 1, sehingga b relatif prima dengan p – 1. 3. Setiap blok m dienkripsi dengan rumus � mod dan � mod . 4. Setelah dienkripsi, blok teks disusun menjadi = � , � . Menggunakan kunci publik Bob p, � � = 257, 20, 93, Alice ingin mengirimkan pesan ”GUNALAN” kepada Bob. Pesan tersebut harus dienkripsi, oleh karena itu hal yang dilakukan oleh Alice adalah memotong pesan-pesan menjadi blok- blok karakter dan setiap karakter dikonversi menjadi kode ASCII. Dapat dilihat pada Tabel 2.1 : Universitas Sumatera Utara Tabel 2.1. Konversi Blok-blok Karakter Pesan ke Kode ASCII i Karakter Plaintext m i ASCII 1 G m 1 71 2 U m 2 85 3 N m 3 78 4 A m 4 65 5 L m 5 76 6 A m 6 65 7 N m 7 78 Dari Tabel 1, diperoleh banyaknya karakter pada pesan tersebut adalah n = 7. Proses selanjutnya adalah menentukan bilangan acak rahasia b i ∈ {0,1,....,257}. Kemudian dihitung � mod dan � mod . Tabel 2.2. Proses Enkripsi i m i b i � � mod 257 � � m i mod 257 1 71 67 14 187 2 85 10 168 219 3 78 124 44 214 4 65 43 181 226 5 76 234 215 55 6 65 228 92 152 7 78 189 202 9 Universitas Sumatera Utara Berdasarkan Tabel 2.2. diperoleh ciphertext � , � , sebagai berikut : 14, 187 168,219 44, 214 181, 226 215, 55 92, 152 202, 9 Selanjutnya ciphertext dikirim ke Bob.

2.17. Dekripsi