BAB 2 LANDASAN TEORI 2.1 Kriptografi - Simulasi Pencarian Kunci Privat dengan Algoritma Silver-Pohlig-Hellaman pada Algoritma Kriptografi Elgamal

BAB 2 LANDASAN TEORI

  2.1 Kriptografi

  Kriptografi adalah ilmu yang mempelajari bagaimana mengirim pesan secara rahasia sehingga hanya orang yang dituju saja yang dapat membaca pesan rahasia tersebut. Pesan asli disebut sebagai plaintext, dan pesan yang telah dirahasiakan disebut sebagai

  

ciphertext. Proses dalam mengubah plaintext menjadi ciphertext disebut sebagai

encryption (enkripsi). Proses sebaliknya, untuk mengembalikan ciphertext menjadi

plaintext di sisi penerima pesan disebut sebagai decryption (dekripsi).

  2.2 Sistem Kriptografi

  Sistem kriptografi terdiri dari 5 bagian, yaitu (Sadikin, 2012): a.

  Plaintext: pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext adalah masukan bagi algoritma enkripsi.

  b.

  Secret Key: secret key atau kunci rahasia juga merupakan masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi.

  c.

  Ciphertext: ciphertext adalah keluaran algoritma enkripsi. Ciphertext dapat dianggap sebagai pesan dalam bentuk tersembunyi. Algoritma enkripsi yang baik akan menghasilkan ciphertext yang terlihat acak.

  d.

  Algoritma Enkripsi: algoritma enkripsi memiliki 2 masukan teks asli dan kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga menghasilkan ciphertext.

  e.

  Algoritma Dekripsi: algoritma dekripsi memiliki 2 masukan yaitu ciphertext dan kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai algoritma dekripsi sama dengan kunci rahasia yang dipakai algoritma enkripsi.

  2.3 Jenis Sistem Kriptografi Berdasarkan Kunci yang Digunakan

  Sistem kriptografi dapat digolongkan ke dalam dua jenis yaitu sistem kriptografi kunci simetris dan sistem kriptografi kunci asimetris.

  2.3.1 Sistem Kriptografi Kunci Simetris

  Sistem kriptografi kunci simetris menggunakan kunci yang sama untuk mengenkripsi

  

plaintext dan mendekripsi ciphertext, Diagram sistem kriptografi kunci simetris dapat

dilihat pada Gambar 2.1.

Gambar 2.1 Diagram Sistem Kriptografi Kunci Simetris

  Arti simbol: : Data : Proses : Aliran Pada Gambar 2.1 dapat dilihat bahwa kunci yang digunakan untuk mengenkripsi dan mendekripsi sama yaitu K. Sistem kriptografi ini aman selama kunci rahasia dipastikan hanya diketahui oleh kedua pihak yang saling berkirim pesan. Namun cara untuk mengirim kunci menjadi masalah lain yang sulit untuk diamankan terutama dalam jalur publik seperti internet.

  2.3.2 Sistem Kriptografi Kunci Asimetris

  Berbeda dengan sistem kriptografi kunci simetris, sistem kriptografi asimetris atau disebut juga sistem kriptografi kunci publik menggunakan kunci yang berbeda untuk mengenkripsi dan mendekripsi pesan. Kunci untuk mengenkripsi akan didistribusikan sehingga siapapun yang ingin mengirim pesan secara rahasia dapat menggunakan kunci tersebut, dan kunci untuk mendekripsi dirahasiakan sehingga hanya pemilik kunci yang dapat mendekripsi ciphertext yang telah dienkripsi dengan kunci publik. Diagram sistem kriptografi asimetris dapat dilihat pada Gambar 2.2.

Gambar 2.2 Diagram Sistem Kriptografi Kunci Asimetris

  Pada Gambar 2.2., kunci yang digunakan untuk mengenkripsi dan mendekripsi pesan berbeda, dimana Arifin menggunakan kunci X untuk mengenkripsi pesan menjadi ciphertext, lalu Eric sebagai penerima ciphertext akan mendekripsi pesan menggunakan kunci Y. Ciphertext tidak dapat dikembalikan menjadi plaintext jika Y tidak diketahui. Disini X disebut sebagai public key dan Y disebut sebagai private key.

  

Public key harus didistribusikan kepada siapapun yang ingin mengirim pesan secara

  rahasia kepada pemilik kunci sedangkan private key harus tetap disimpan secara rahasia.

  Sistem kriptografi ini memiliki keunggulan dimana pengiriman kunci bukan lagi menjadi masalah karena kunci publik tidak akan menjadi masalah jika diketahui oleh siapapun.

2.4 Matematika untuk Sistem Kriptografi Asimetris

  Sistem kriptografi asimetris bekerja dengan dasar berbagai perhitungan matematika terutama persoalan teori bilangan. Bagian ini akan membahas beberapa topik matematika yang akan digunakan dalam sistem kriptografi asimteris.

  2.4.1 Greatest Common Divisor (GCD) dan Algoritma Euclid

  Jika a dan b adalah bilangan bulat, maka Greatest Common Divisor (GCD) dari a dan

  

b adalah sebuah bilangan positif terbesar yang dapat membagi habis kedua bilangan

tersebut.

  Sebagai contoh, GCD dari 12 dan 18 adalah 6 karena 6 dapat membagi 12 dan 18 dan tidak ada bilangan yang lebih besar dari 6 yang dapat membagi 12 dan 18. Dapat ditulis:

  GCD(12,18) = 6 Salah satu cara untuk mendapatkan GCD dari dua buah bilangan adalah dengan menggunakan Algoritma Euclid. Teorema Euclid menyatakan: jika a = qb + r maka GCD(a,b) = GCD(b,r)

  2.4.2. Relatif Prima

  Dua buah bilangan a dan b dikatakan relatif prima jika GCD(a, b) = 1. Sebagai contoh 4 dan 7 adalah relatif prima karena GCD(4, 7) = 1.

  2.4.3 Aritmatika Modular dan Kongruensi

  Ketika masih kecil kita mempelajari „aritmatika jam‟ dimana angka berikutnya setelah 12 adalah 1 sehingga kita menuliskan (Hoffstein, 2008): 8 + 7 = 3 dan 2 − 5 = 9 ini masuk akal karena 7 jam setelah jam 8 adalah jam 3. Yang kita lakukan sebenarnya adalah menghitung 8 + 7 = 15 kemudian menguranginya 12 sehingga menghasilkan 3. Dan dengan cara yang sama 5 jam sebelum jam 2 adalah jam 9 dengan menghitung 2 – 5 = -3 kemudian menambahkannya dengan 12.

  Konsep ini disebut sebagai dengan teori kongruensi. Kita katakan a dan b kongruen m jika selisih a – b dapat dibagi dengan m. Ditulis sebagai berikut: ≡ (mod ) untuk mengetahui a dan b kongruen, m disebut sebagai modulus.

  Dari contoh perhitungan jam diatas, maka dapat ditulis:

  6 + 9 ≡ 3 (mod 12) dan 2 − 3 ≡ 1 (mod 12)

  2.4.4 Inversi Modulo

  Jika dua buah bilangan a dan m relatif prima, maka dapat dipastikan terdapat sebuah bilangan b yang memenuhi: . ≡ 1 (mod ) pada kongruensi diatas, b disebut sebagai invers modulo dari a modulo m.

  2.4.5 Grup Perkalian

  Sebuah grup perkalian (G, ×) dengan G merupakan himpunan simbol dan × adalah sebuah operator perkalian yang memenuhi kondisi (Sadikin, 2012):

  1.

  ∀ , ∈ ∶ × ∈ (Closure) 2. ∀ , , ∈ ∶ ( × ) × = × ( × ) (Asosiatif) 3. ∃ yang unik ∈ ∶ ∀ ∈ ∶ × = × = Elemen e disebut sebagai elemen identitas.

  −1 −1 −1 4.

  ∀ ∈ : ∃ ∈ : × = × = (Invers)

  2.4.6 Bilangan Prima

  Bilangan prima adalah sebuah bilangan yang hanya dapat dibagi habis oleh 1 dan bilangan itu sendiri. Bilangan yang dapat dibagi habis oleh selain 1 dan bilangan itu sendiri disebut sebagai bilangan komposit. Semua bilangan positif integer n dapat dituliskan sebagai hasil product dari bilangan prima seperti berikut: 1 2

  = … = ∏

  1

  2 =1

  2.4.7 Fermat’s Little Theorem

  Teori fermat merupakan fondasi dari banyak pengetesan bilangan prima (Riesel, 2012). Jika p merupakan sebuah bilangan prima dan GCD(a, p) = 1, maka

  −1

  ≡ 1 dan sebaliknya jika n adalah sebuah bilangan komposit dan GCD(a, p) = 1, maka

  −1

  ≢ 1

  2.4.8 Fungsi ϕ Euler

  Fungsi ϕ Euler atau yang disebut juga fungsi totien euler, dilambangkan dengan ϕ(n) adalah banyaknya bilangan m yang relatif prima terhadap n dimana m < n (Mollin, 2007). Sebagai contoh jika p adalah bilangan prima, maka untuk semua ∈ dengan < pasti relatif prima terhadap p, maka ϕ(p) = p – 1.

  Sebagai contoh beberapa hasil fungsi ϕ(n) adalah (Sadikin, 2012): 1. ϕ(1) = 0 2. ϕ(p) = p – 1 jika p adalah bilangan prima. Sebab semua elemen merupakan prima relatif dengan p.

  3.

  ϕ(m × n) = ϕ(m) × ϕ(n) jika m merupakan prima relatif dengan n.

  −1 4. dengan p adalah bilangan prima.

  ϕ( ) = −

  2.4.9 Akar Primitif

  yang jika Jika p adalah bilangan prima, maka terdapat sebuah elemen ∈

  ∗

  (Hoffstein, 2008), misalkan: dipangkatkan dengan setiap elemen di dalam

  ∗

  

2

3 −2 +.

  = *1, , , , … , ∗ atau generator dari .

  elemen dengan properti ini disebut dengan akar primitif dari

  ∗ memiliki order p – 1.

  Elemen tersebut merupakan elemen dari

  2.4.10. Algoritma Miller-Rabin

  Algoritma Miller-Rabin merupakan algoritma probabilistik yang menguji keprimaan sebuah bilangan yang diberikan berdasarkan pada Fermat’s LittleTheorem. Algoritma 2

  2

  2 Miller-Rabin menghitung deret berikut secara berulang : ≡ ≡ ≡ ⋯ ≡ −1

  2

  2

  2

  dilakukan pengujian Fermat dan ≡ ( ). Pada perhitungan pengujian kepemilikan akar kuadrat untuk i = 0, 1, 2, …, k . Jika pengujian akar kuadrat ialah positif, n dideklarasikan sebagai bilangan komposit. Jika pengujian Fermat ialah positif, maka n mungkin bilangan prima.

2.4.11 Discrete Log Problem

  dan h merupakan sebuah elemen yang tidak nol Jika g merupakan akar primitif dari pada . Discrete Log Problem merupakan sebuah masalah dalam menemukan x yang memenuhi persamaan berikut (Hoffstein, 2008):

  ≡ ℎ (mod ) Pada persamaan diatas, x disebut sebagai logaritma diskrit dari h untuk basis g dan ditulis sebagai log (ℎ).

  2.4.12 Chinese Remainder Theorem

Chinese Remainder Theorem (CRT) diformulasikan sebagai penyelesaian

  permasalahan kongruen dengan modulus yang berbeda. Secara formal CRT menyelesaikan sistem persamaan kongruen berikut ini: ≡ mod

  1

  1

  ≡ mod

  2

  2

. . .

  ≡ mod dengan nilai dan diketahui, dan x adalah bilangan yang , , … , , , … ,

  1

  2

  1

  2 perlu ditemukan.

  Berikut adalah algoritma untuk menemukan x: a.

  Hitung = × × … ×

  1

  2 b.

  Hitung = , = , … , =

  1 1

  2 2 −1 −1 −1

  c. terhadap

  Temukan invers modulo untuk setiap , , … , , , … ,

  

1

  2

  1

  2 d.

  Temukan x dengan menghitung

  −1 −1

  = (( × × ) + ⋯ + ( × × ))

  1

  1

  1

2.5 Sistem Kriptografi ElGamal

  Sistem kriptografi ElGamal adalah sistem kriptografi dengan kunci asimetris yang ditemukan oleh Taher ElGamal pada tahun 1984. Sistem kriptografi ini bersandar pada kesulitan persoalan logaritma diskrit. Diagram proses sistem kriptografi ElGamal dapat dilihat pada Gambar 2.3.

Gambar 2.3 Diagram Proses Sistem Kriptografi ElGamal

  ∗

  Sistem kriptografi ElGamal bekerja pada sebuah grup perkalian ( ,×) yang pada grup itu persoalan logaritmik diskrit sulit untuk dipecahkan. Grup perkalian G dapat berupa grup perkalian siklik dengan α adalah akar primitif pada Zp dengan p merupakan bilangan prima. (Sadikin, 2012)

2.5.1 Algoritma ElGamal

  Algoritma kriptografi ElGamal adalah sebagai berikut: a.

  Pembangkit kunci ElGamal

  ∗ 1.

  Pilih bilangan prima p yang cukup besar sebagai basis grup perkalian ( ,×)

  ∗ 2.

  Pilih α sebagai akar primitif pada grup ( ,×) 3. Pilih d yang memenuhi 1 ≤ dp – 2 4. mod p

  Hitung β = 5. Kunci publik : (p, α, β) 6. Kunci privat : d

  Setelah kunci publik dan kunci privat didapatkan, kunci publik akan didistribusikan kepada siapapun yang perlu untuk mengirimkan pesan secara rahasia (dienkripsi), sedangkan kunci privat dijaga kerahasiaannya untuk mendekripsi pesan yang telah dienkripsi dengan kunci publik.

  b.

  Enkripsi Pesan Orang yang menerima kunci publik dapat mengirimkan pesan secara rahasia kepada pemberi kunci, dengan langkah sebagai berikut:

  ∗

  1. {P adalah plaintext} Input : = (p, α, β) , ∈

  ∗ 2.

  Output : , ∈

  1

  2 ∗

  3. {r dipilih secara acak} r

  4. mod p

  =

  1 5.

  mod p = P ×

  2 c.

  Dekripsi Pesan Setelah ciphertext diterima, maka pemegang kunci privat dapat mendekripsi pesan dengan cara sebagai berikut:

  ∗ 1.

  Input : = d, ,

  1

  2 ∗

  2. Output : P

  −1 3.

  = , × ( ) - mod

  2

  1

2.5.2 Contoh Penerapan Algoritma Kriptografi ElGamal

  Berikut ini adalah contoh penerapan dari algoritma kriptografi ElGamal, Misalkan Adit memiliki kunci ElGamal sebagai berikut: Kunci publik :

  α = 345, β = 223, p = 379,

  Kunci privat : d = 43 Kemudian Adit mendistribusikan kunci publik kepada siapa saja yang mau mengirim pesan kepadanya. Arifin yang juga mendapatkan kunci publik key milik Adit akan mengenkripsi pesan menggunakan kunci publik yang diketahui sebagai berikut:

  Plaintext : mundur

  Kode ascii dari plaintext adalah:

Tabel 2.1 Kode ASCII dari Plaintext

  

Huruf Kode Ascii

  m 109 u 117 n 110 d 100 u 117 r 114

  Berikut tahap-tahap yang akan dilakukan oleh Arifin untuk mengenkripsi pesan: 1.

  Memilih nilai r secara acak, didapati

  r = 143

  2. Menghitung nilai C1 = mod , sehingga didapati

  C1 = 10 3.

  Untuk setiap huruf dalam plaintext, dilakukan pengubahan nilai = P ×

  2

  mod , sehingga didapati:

Tabel 2.2 Ciphertext 2, Hasil Enkripsi dari Plaintext ‘mundur’

  

Huruf P = P mod p

  × m 109 257 u 117 255 n 110 162 d 100 354 u 117 255 r 114 161 Setelah pesan terenkripsi, Arifin mengirim ciphertext 1 dan ciphertext 2 kepada Adit.

  Lalu Adit akan mendekripsi ciphertext tersebut kembali menjadi plaintext menggunakan kunci privat sebagai berikut:

Tabel 2.3 Hasil Dekripsi dari Ciphertext

  − Ciphertext Plaintext P=

  [ × ( ) ] 255 109 m 162 117

  u

  354 110 n 255 100 d 161 117 u 255 114

  r

2.6 Kriptanalisis

  Kriptanalisis adalah ilmu yang mempelajari cara untuk mendekripsi ciphertext tanpa memiliki akses terhadap kunci rahasia dengan cara menemukan kelemahan pada sistem kriptografi yang digunakan. Ada banyak teknik yang bisa dilakukan dalam kriptanalisis, tergantung dari apa saja akses yang bisa didapat terhadap sistem kriptografi dan kunci yang digunakan.

  Di dalam penelitian ini, penulis mengetahui algoritma kriptografi apa yang digunakan dan kunci publik yang telah didistribusikan. Dari itu diketahui bahwa ada algoritma yang dapat digunakan untuk memecahkan kunci privat. Sehingga teknik yang akan digunakan adalah membuat sebuah ciphertext dari kunci publik yang diketahui, lalu mencoba memecahkan kunci privatnya berdasarkan kunci publik dan ciphertext yang telah dibuat.

2.7 Algoritma Silver-Pohlig-Hellman

  Algoritma Silver-Pohlig-Hellman (SPH) adalah sebuah algoritma untuk menghitung logaritma diskrit dari sebuah grup perkalian. Cara kerja algoritma Silver-Pohlig- Hellman dijabarkan sebagai berikut:

  ∗ ∗ a.

  , dan kita memiliki faktorisasi berikut: Diketahui α adalah generator , β

  − 1 = ∏ ∈ N

  =1

  dimana adalah distinct primes. Cara untuk menghitung ≡ (mod ) adalah untuk j = 1, 2, … , r, lalu gunakan Chinese dengan menghitung e modulo Remainder Theorem.

  b. kita harus menentukan e dengan basis

  Untuk menghitung setiap nilai e modulo :

  −1 ( )

  = ∑

  

=0

( )

  , kita lakukan hal berikut. untuk menghitung b.1

  Set =

  ( )

  b.2 dengan cara sebagai berikut: Temukan

  ( −1)

  Hitunglah untuk setiap k = 0, 1, …, − 1 sampai kita dapati:

  ( −1) ( −1)

  ≡ ( )

  ( )

  Pada kondisi diatas, k =

  ( )

  b.3 Hitunglah untuk i = 1, 2, …, − 1 seperti berikut.

  : Tentukan −1 ( )

  − ∑ =0

  =

  ( −1)

  Hitunglah nilai mod untuk setiap k = 0, 1, …, − 1 sampai kita dapati:

  • +1 ( −1) ( −1)

  ≡ (mod )

  ( )

  Setelah k didapatkan, isi nilai ← c. Temukan e dengan menggunakan Chinese Remainder Theorem .

  Di bawah ini contoh dari penggunaan algoritma Silver-Pohlig-Hellman dalam memecahkan kunci privat ElGamal, Berdasarkan contoh pada penerapan kriptografi ElGamal, diketahui bahwa p = 379,

  α = 345 dan = = 223. Kita ingin mencari

  kunci privat = log (223). Pada perhitungan dibawah, semua persamaan berikut

  345 diasumsikan sebagai modulo 379. 1 2 3

  1

  3

1 Kita dapati

  − 1 = 378 = 2 . 3 . 7 =

  

1

  2

  3 Untuk

  = 2:

  1 ( −1) 1 378 2

  = 223 = 378

  k

  1

  189 ( −1) 1

  1 5 = 378 Disini kita dapati

  = 1. Maka kita dapati representasi basis 2 dari log (223) 2 adalah:

  345 1 −1

  1

  ∑ = 1 . 2 ≡ 1 (mod 2)

  1 =0

  Untuk = 3:

  2 ( −1) 2 378 3

  = 223 ≡ 51

  ≡ 223 (mod 379) Sehingga kita dapati bahwa kunci privat ElGamal berhasil dipecahkan dengan nilai d = 43.

  ( −1) 1

  1

  2

  ≡ 16 (mod 27) Untuk

  3

  = 7:

  ( −1) 2

  = 223

  378 7

  ≡ 195

  k

  1

  1

  2 2 −1 =0

  3

  54

  ≡ 195 Disini kita dapati

  = 1. Maka kita dapati representasi basis 7 dari log

  345

  (223) 7 adalah: ∑

  3

  3 3 −1 =0

  = 1 . 7 ≡ 1 (mod 7) Lalu kita akan mencari nilai e dengan menggunakan Chinese Remainder Theorem untuk setiap nilai pada basis . Dan kita dapati bahwa e = 43, jika nilai e disubstitusikan pada persamaan awal, maka:

  345

  43

  = 1 . 3 + 2 . 3

  2

  k

  ≡ 51 339

  1

  ( −1) 1

  1

  3

  126

  ≡ 51 i

  1

  2 223 339 255

  ( −1) 2 +1

  223

  126

  42

  (223) 27 adalah: ∑

  ≡ 327 255

  14

  ≡ 51

  2

  1

  2

  1 Disini kita dapati = 1,

  1

  = 2,

  2

  = 1 . Maka kita dapati representasi basis 3 dari log

  345

  • 1 . 3

2.8 Tinjauan Penelitian yang Relevan

  Berikut adalah penelitian yang membahas seputar algoritma kriptografi ElGamal: a.

  Andrian. Y. (2013) membuat penelitian yang berfokus pada penggunaan elemen primitif dan elemen non-primitif pada kunci publik ElGamal. Hasil penelitian menunjukkan bahwa Elemen primitif maupun elemen non-primitif tidak mempengaruhi proses enkripsi, proses dekripsi, dan besarnya file hasil enkripsi.

  b.

  Asmar. N. D. (2008) membentuk sebuah sistem yang mengamankan data dan informasi dengan menggunakan Algoritma ElGamal. Hasil penelitian mengungkapkan bahwa Algoritma kriptografi asimetris seperti ElGamal sangat baik digunakan untuk mengatasi masalah distribusi kunci.

  c.

  Wijayanti. R. Y. (2013) membuat penelitian yang berfokus pada analisa metode pembangkitan bilangan prima yang lebih baik dalam membuat kunci pada algoritma ElGamal. Hasil penelitian mengungkapkan bahwa waktu enkripsi dengan menggunakan metode Lucas-Lehmer lebih cepat daripada metode Fermat.

  d.

  Putra, E. (2013) mengkaji bagaimana menyederhanakan perhitungan pada kriptografi kurva eliptik dan berusaha mempersingkat waktu proses tanpa mengurangi tingkat keamanan dengan menggunakan metode enkripsi Algoritma ElGamal, implementasi juga melibatkan pembangkitan kunci dengan metode pembangkitan bilangan prima Rabin-Miller. Hasil pengujian menunjukkan bahwa dengan membatasi nilai a dan b menjadi 1 pada fungsi kurva eliptik serta membatasi bilangan prima sebanyak dua digit, berhasil mempersingkat waktu proses, enkripsi juga berlangsung dengan baik dan cepat.