Algoritma El Gamal LANDASAN TEORI

3. Otentikasi Autentication Otentikasi adalah berhubungan dengan identifikasipengenalan, baik secara kesatuan sistem maupun informasi itu sendiri, dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain. 4. Ketiadaan Penyangkalan Non-repudiation. Ketiadaan penyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman terciptanya suatu informasi oleh yang mengirimkanmembuat.

2.2. Algoritma El Gamal

El Gamal merupakan suatu sistem kriptografi asimetris, yang pertama kali ditemukan oleh Taher El Gamal pada tahun 1984. Algoritma ini pada mulanya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga bisa digunakan untuk enkripsi dan dekripsi [Mollin, R. A. 2007]. 2.2.1. Algoritma Membangkitan Pasangan Kunci 1. Pilih bilangan prima p p harus dites melalui primality test untuk membukitkan merupakan bilangan prima atau tidak, p dapat di-share di antara anggota kelompok. 2. Pilih dua buah bilangan acak, g dan x, dengan syarat gp dan 1  x  p – 2. 3. Hitung y = g x mod p [Schneier, Bruce. 1996]. Hasil dari algoritma ini: a. Kunci public: tripel y, g, p b. Kunci privat: pasangan x, p 2.2.1.1. Algoritma Miller - Rabin Algoritma pengujian bilangan prima ini juga disebut algoritma Selfridge-Miller-Rabin atau strong prime test. Ini merupakan penyempurnaan dari algoritma Fermat, dan bekerja dengan sangat baik dalam praktiknya. Algoritma ini dikembangkan oleh Michael Rabin yang didasarkan pada sebagian ide Gary Miller Schneier, 1996. Sampai saat ini algoritma pengujian bilangan prima yang banyak dipakai dalam sistem kriptografi adalah algoritma Universitas Sumatera Utara probabilistik Miller-Rabin yang memiliki komputasi yang ringan dan memberikan probabilitas yang tinggi. Berikut ini adalah algoritma Miller-Rabin Cormen, et al. 2009. Langkah 1: Pilih bilangan yang ingin diuji keprimaannya n, dimana n≥3 dan n merupakan bilangan ganjil n mod 2 ≠ 0. Langkah 2: Hitung n-1 = u2 t , dimana u adalah bilangan ganjil dan t ≥1. Representasi bilangan biner dari n-1 adalah representasi biner dari bilangan ganjil u yang diikuti oleh bit 0 sebanyak t. Langkah 3: Uji n yang akan diperiksa keprimaannya dengan bilangan integer sembarang a, dimana 2 ≤a≤n-1 sebanyak s kali. Jika pengujian sudah sampai s kali, maka lanjutkan ke Langkah 6. Langkah 4: Hitung ≡a u mod n. Langkah 5: Hitung sebanyak t kali dimana 1≤i≤t. Jika , 1 mod n dan ≢n-1 maka hentikan algoritma dengan menyatakan n adalah bilangan komposit. Selain dari itu, maka lanjut ke Langkah 3. Langkah 6: Jika , maka hentikan algoritma dengan menyatakan n adalah bilangan komposit. Jika tidak, maka hentikan algoritma dan nyatakan n adalah kemungkinan bilangan prima. Contoh : Langkah 1: misalnya bilangan prima n = 11 Langkah 2: n-1 = u2 t 11 – 1 = u2¹ 10 = u2 2u = 10 u = 5 Langkah 3: misalkan a = 4 Langkah 4: ≡a u mod n mod n = a u mod n = 4 5 mod n = 1024 = 1024 mod 11 = 1 Karena atau xt = 1 maka bilangan n = 11 kemungkinan bilangan prima. Universitas Sumatera Utara 2.2.2. Enkripsi El Gamal Berikut adalah langkah mengenkripsi sebuah pesan pada algoritma El Gamal [Munir, Rinaldi. 2006], 1. Susun plainteks menjadi blok-blok m 1 , m 2 , …, nilai setiap blok di dalam selang [0, p – 1]. 2. Pilih bilangan acak k, yang dalam hal ini 1  k  p – 2. 3. Setiap blok m dienkripsi dengan rumus [Munir, Rinaldi. 2006]: a = g k mod p b = y k m mod p Pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks dua kali ukuran plainteksnya [Munir, Rinaldi. 2006]. 2.2.3. Dekripsi El Gamal Berikut ini adalah langkah-langkah dalam mendekripsi sebuah pesan plaintext dengan menggunakan algoritma El Gamal [Munir, Rinaldi. 2006], 1. Gunakan kunci privat x untuk menghitung a x – 1 = a p – 1 – x mod p 2. Hitung plainteks m dengan persamaan [Munir, Rinaldi. 2006]: m = ba x mod p = b a x – 1 mod p 2.2.4. Contoh Cara Kerja El Gamal Berikut ini ada contoh cara kerja El Gamal dalam mengenkripsi dan mendekripsi sebuah pesan, sebagai berikut: p = bilangan prima k = bilangan acak m = plaintext a dan b = chiperteks x = bilangan acak Misal p = 2357, g = 2 dan x = 1751. Hitung: y = g x mod p = 2 1751 mod 2357 = 1185 Hasil: Kunci public: y = 1185, g = 2, p = 2357 Kunci privat: x = 1751, p = 2357. Misal Bob memilih bilangan acak k = 1520 nilai k masih berada di dalam selang [0, 2357 – 1]. Universitas Sumatera Utara Bob menghitung a = g k mod p = 2 1520 mod 2357 = 1430 b = y k m mod p= 1185 1520 2035 mod 2357 = 697 Jadi, cipherteks yang dihasilkan adalah 1430, 697. Bob mengirim cipherteks ini ke Alice, oleh alice 1a x = a x – 1 = a p – 1 – x mod p = 1430 605 mod 2357 = 872 m = ba x p = 697 872 mod 2357 = 2035

2.3. Algoritma Huffman