Modulus Exponential Algoritma ElGamal

2.6 Fermat’s Little Theorem

Teorema : Untuk bilangan prima p dan bilangan bulat a, a p ≡ amod p dan jika a tidak dapat dibagi oleh p, maka a p-1 ≡ 1 mod p. Teorema ini dapat digunakan untuk mempermudah kalkulasi pemangkatan modulo bilangan prima. Sebagai contoh, kita coba kalkulasi 2 74 mod 13. Karena 13 adalah bilangan prima dan 2 tidak dapat dibagi 13, maka teorema ini dapat digunakan untuk mengkalkulasi 2 12 ≡ 2 13-1 mod 13 ≡ 1 mod 13. Jadi 2 74 = 2 12 6 × 2 2 ≡ 1 6 × 2 2 ≡ 4 mod 13. Meskipun dapat digunakan untuk mempermudah kalkulasi, dalam kriptografi, peran terpenting dari Fermat’s little theorem adalah sebagai dasar dari berbagai teknik enkripsi asimetris. Untuk memudahkan pembuatan program untuk pembangkitan bilangan prima maka digunakan teknik iterasi. Untuk bilangan yang lebih kecil dari 100 maka akan dilakukan pengujian sebanyak tiga kali, untuk bilangan yang lebih besar dari 100 maka dilakukan pengujian sebanyak digit bilangan tersebut. Kromodimoeljo. 2010

2.7 Modulus Exponential

Dalam kriptografi, perhitungan modulus exponential sering dijumpai. Sistem kriptografi asimetris seperti RSA dan ElGamal menggunakan modulus exponential dalam perhitungan enkripsi dan dekripsinya. Persamaan modulus exponential adalah Sadikin, 2012: y = a x mod n Salah satu metode untuk menghitung modulus exponential adalah Square and Multiply. Langkah-langkah untuk menghitung modulus exponential menggunakan Square And Multiply Sadikin, 2012: 1. Ubah nilai x ke dalam nilai biner. 2. Tentukan y = 1. 3. Lakukan perhitungan sebanyak panjang biner, jika x i = 1 maka, Universitas Sumatera Utara y = y 2 a mod n Jika x i = 0 maka, y = y 2 mod n Perhitungan modulus exponential menggunakan Square And Multiply dicontohkan sebagai berikut: Hitung nilai 17 25 mod 11. Penyelesaian: Ubah 25 ke dalam nilai biner, maka didapat 11001, y = 1 Untuk nilai x 1 = 1 y = y 2 17 mod 11 = 1 2 17 mod 11 = 6 Untuk nilai x 2 = 1 y = y 2 17 mod 11 = 6 2 17 mod 11 = 7 Untuk nilai x 3 = 0 y = y 2 mod 11 = 7 2 mod 11 = 5 Untuk nilai x 4 = 0 y = y 2 mod 11 = 5 2 mod 11 = 3 Untuk nilai x 5 = 1 y = y 2 17 mod 11 = 3 2 17 mod 11 = 10 Maka, didapat hasil 17 25  10 mod 11 Universitas Sumatera Utara

2.8 Algoritma ElGamal

Algoritma ElGamal merupakan algoritma kriptografi asimetris yang menggunakan dua jenis kunci, yaitu kunci publik dan kunci rahasia. Kunci publik berfungsi untuk mengenkripsi pesan sedangkan kunci rahasia berfungsi untuk mendekripsi pesan. Tingkat keamanan algoritma ini didasarkan atas masalah logaritma diskrit pada grup pergandaan bilangan bulat modulo prima. Singh, 2012 Algoritma ElGamal mempunyai kunci publik berupa urutan tiga bilangan dan sebuah bilangan sebagai kunci rahasia. Algoritma ElGamal merupakan cipher block, yaitu melakukan proses enkripsi pada blok-blok plaintext dan menghasilkan blok-blok ciphertext yang kemudian dilakukan proses dekripsi, dan hasilnya digabungkan kembali menjadi pesan yang utuh dan dapat dimengerti. Algoritma ElGamal terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Kelebihan algoritma ElGamal adalah suatu plaintext yang sama akan dienkripsi menjadi ciphertext yang berbeda-beda, tetapi pada proses dekripsi akan diperoleh plaintext yang sama. Bahary, 2010 ElGamal dapat digunakan untuk tanda tangan digital dan enkripsi, algoritma ini memberikan keamanan dari sulitnya menghitung logaritma diskrit yang digunakan dalam tempat terbatas. Untuk membangkitkan pasangan kunci, dilakukan langkah berikut Mollin, 2007: 1. Pilih bilangan prima p dan cari akar primitif  mod p 2. Pilih bilangan random a dimana 2 a p – 1, dan hitung nilai  a 3. Public key yang diperoleh adalah p, , dan  a sedangkan private key adalah a Setelah didapatkan public key yang disepakati, maka dilakukan enkripsi dengan langkah berikut Mollin, 2007: 1. Pilih bilangan random b dengan syarat b p -1 2. Hitung nilai  b mod p untuk C1 dan m  ab mod p untuk C2, dimana m adalah plaintext Universitas Sumatera Utara 3. Maka setiap satu karakter plaintext memiliki dua ciphertext. Mollin, 2007 Proses selanjutnya adalah dekripsi. Setelah memperoleh ciphertext, maka penerima pesan akan mengubah ciphertext menjadi plaintext. Sehingga dapat dengan mudah membaca isi dari pesan tersebut. Untuk mendekripsi pesan, penerima membutuhkan kunci private a. Dan dilakukan perhitungan berikut: 1. Kunci yang digunakan adalah nilai a 2. Hitung nilai dengan menggunakan C1 dengan cara C1 p-1-a mod p yang disebut m1 3. Dari hasil perhitungan m1 maka untuk memperoleh hasil dilakukan perhitungan m1C2 mod p, langkah-langkah ini dilakukan per karakter. Maka akan didapat plaintext yang disampaikan oleh pengirim. Mollin, 2007

2.9 Transposisi Segitiga