Landasan Matematika Algoritma ElGamal

2.3 Landasan Matematika Algoritma ElGamal

Dalam mempelajari sebuah algoritma kriptografi, sebaiknya kita memahami terlebih dahulu konsep-konsep dasar perhitungan matematis yang akan digunakan dalam suatu algoritma kriptografi tersebut. 2.3.1 Modulo Exponensial Modulo eksponensial sering digunakan dalam bidang kriptografi untuk menghitung hasil enkripsi maupun hasil dekripsi. Permasalahan pada operasi modulo adalah bagaimana menghitung x y mod n dengan n yang sangat besar. Terdapat beberapa cara untuk menghitung modulo eksponensial, antara lain adalah dengan cara iteratif . Function mod exp x, y, n{ z =1 for i=1; i ≤ y; i++{ z = x z mod n } return z } Contoh : Tentukan hasil dari 2 5 mod 30 dengan cara iterasi Diketahui nilai x = 2, y = 5 dan n = 30. z = 1 i = 1 z = 2 1 mod 30 = 2 i = 2 z = 2 2 mod 30 = 4 i = 3 z = 2 4 mod 30 = 8 i = 4 z = 2 8 mod 30 = 16 i = 5 z = 2 16 mod 30 = 2  berhenti Maka hasil dari 2 5 mod 30 adalah 2. 2.3.2 Algoritma Euclidean Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar PBB dari dua bilangan bulat. Algoritma ini didasarkan pada pernyataan bahwa ada dua buah bilangan bulat tak negatif yakni m dan n dimana nilai m ≥ n. Adapun tahap-tahap pada algoritma Euclidean adalah: 1. Jika n = 0 maka m adalah PBB m, n; stop. Kalau tidak yaitu n ≠ 0 lanjutkan ke langkah nomor β. 2. Bagilah m dengan n dan misalkan sisanya adalah r. 3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah nomor 1. Algoritma Euclidean dapat digunakan untuk mencari dua buah bilangan bulat yang relatif prima. Contoh : Tentukan gcd 108, 360 360 mod 108 = 36 108 mod 36 = 0 STOP Jadi gcd 108, 360 = 36 Tentukan gcd 45, 13 45 mod 13 = 6 13 mod 6 = 1 6 mod 1 = 0 STOP Jadi gcd 45, 13 = 1. Apabila GCD dari m n = 1, maka mn disebut Relatif prima. 2.3.3 Inversi Modulo Jika a dan n relatif prima dan n 1, maka inversi dari a mod n dapat ditemukan. Inversi dari a mod n , juga disebut inversi perkalian, dimana bilangan bulat a -1 sedemikian sehingga: aa -1 ≡ 1 mod n Pembuktian dari persamaan diatas dapat dilihat dari definisi relatif prima diketahui bahwa GCD a , n = 1. Contoh: untuk inversi dari 7 mod 11, penyelesaiannya dapat dilihat pada Tabel 2.1. Tabel 2.1. Penyelesaian contoh soal inversi modulo. a -1 a -1 x 7mod 11 1 1 x7 mod11 = 7 2 2 x7 mod11 = 3 3 3 x7 mod11 = 10 4 4 x7 mod11 = 6 5 5 x7 mod11 = 2 6 6 x7 mod11 = 9 7 7 x7 mod11 = 5 8 8 x7 mod11 = 1 Pada Tabel 2.1, iterasi berhenti ketika a -1 a ≡ 1 mod n dan diperoleh a -1 = 8. 2.3.4 Bilangan Prima Bilangan positif p p1 disebut bilangan prima jika pembaginya hanya 1 dan p . Sebagai contoh bilangan 23 adalah bilangan prima karena ia hanya habis dibagi 1 dan 23. Karena bilangan prima harus lebih besar dari satu, maka barisan bilangan prima dimulai dari 2, yaitu 2, 3, 5 , 7, 11, 13, .... Seluruh bilangan prima adalah bilangan ganjil, kecuali dua yang merupakan bilangan genap. Sebuah bilangan bulat p 1 disebut bilangan prima, jika bilangan tersebut hanya memiliki pembagi positif 1 dan p. Bilangan bulat yang lebih dari 1 yang bukan bilangan prima disebut bilangan komposit Putra, E. 2013. 2.3.5 Bilangan Relatif Prima Dua buah bilangan bulat a dan b dikatakan relatif prima jika PBB atau GCD greatest common divisor dari a dan b bernilai 1. Contoh : 20 dan 3 relatif prima sebab PBB 20, 3 = 1. Begitu juga 7 dan 11 relatif prima karena PBB 7, 11 = 1. Tetapi β0 dan 5 tidak relatif prima sebab PBB β0, 5 = 5 ≠ 1. 2.3.6 Elemen Primitif Selain bilangan prima, dalam kriptografi ElGamal juga digunakan elemen primitif yang merupakan elemen pembangun dari grup Z p . Untuk mencari elemen ini digunakan p = 2q+ 1 , dimana q merupakan bilangan prima. Jika elemen α memenuhi α 2 mod p ≠ 1 dan α q mod p ≠ 1, maka α merupakan elemen primitif Jeffrey dkk, 2008.. Untuk mengetahui suatu bilangan merupakan elemen primitif atau tidak dapat dilakukan langkah-langkah sebagai berikut : 1. Input bilangan prima aman p ≥ 5. 2. Hitung q= −1 2 3. Hitung α 2 mod p dan α q mod p . 4. Jika α 2 mod p = 1, maka α bukan elemen primitif. 5. Jika α q mod p = 1, maka α bukan elemen primitif. 6. Jika tidak terpenuhi dua persyaratan di atas maka q merupakan elemen primitif. Misalkan p = 2579 yang merupakan bilangan prima aman. Oleh karena itu, dapat ditentukan bilangan prima = 2579 −1 2 = 1289. Untuk menunjukkan bahwa suatu bilangan bulat a merupakan elemen primitif Z 2579 , harus ditunjukkan bahwa α 2 � � 5 ≠ dan α 1289 � � 5 ≠ . Berikut diberikan tabel perhitungan untuk beberapa nilai a yang diberikan. Tabel 2.2. Perhitungan α 2 mod 2579 dan α mod 2579 a 2 3 4 5 6 7 8 α 2 � 4 9 16 25 36 49 64 α � 2578 1 1 1 2578 1 2578 2.3.7 Fermat’s Little Theorem Fermat’s little theorem adalah suatu metode yang digunakan untuk menguji keprimaan suatu bilangan bulat. Teorema Fermat ditemukan oleh Pierre De Fermat merupakan seorang matematikawan Perancis pada tahun 1640. Meskipun dapat digunakan untuk mempermudah kalkulasi dalam kriptografi, peran terpenting dari Fermats little theorem adalah sebagai dasar dari berbagai teknik enkripsi asimetris. Salah satu perhitungan matematis yang digunakan untuk menghasilkan bilangan prima adalah metode Fermat yang dapat dirumuskan sebagai berikut: Untuk bilangan prima p dan bilangan bulat a, a p ≡ a mod p dan jika a tidak dapat dibagi oleh p, maka a p-1 ≡1 mod p Kromodimoeljo, S. 2010. Di mana p adalah bilangan bulat dan a adalah urutan bilangan yang lebih kecil dari p. Contoh penerapan metode Fermat adalah sebagai berikut: a. Bila p = 4 Maka 1 ≤ a 4, didapat a = {1, 2, 3} a p-1 mod p 1 4-1 mod 4 = 1 3 mod 4 = 1 2 4-1 mod 4 = 2 3 mod 4 = 0 3 4-1 mod 4 = 3 3 mod 4 = 3 Jadi, angka 4 bukan merupakan bilangan prima sebab dalam pengecekan menggunakan metode Fermat didapat semua hasil dari urutan bilangan yang lebih kecil dari 4 terdapat nilai yang 0. b. Bila p = 5 Maka 1 ≤ a 5, jadi didapat a = {1, 2, 3, 4} a p-1 mod p 1 5-1 mod 5 = 1 4 mod 5 = 1 2 5-1 mod 5 = 2 4 mod 5 = 1 3 5-1 mod 5 = 3 4 mod 5 = 1 4 5-1 mod 5 = 4 4 mod 5 = 1 Jadi, angka 5 merupakan bilangan prima sebab dalam pengecekan menggunakan metode Fermat didapat semua hasil dari urutan bilangan yang lebih kecil dari 5 adalah 1. Untuk angka yang besar dengan jumlah nilai a yang banyak, hanya diambil beberapa angka sebagai contoh untuk dilakukan pengujian dengan metode Fermat.

2.4 Prinsip Kerja Algoritma ElGamal