Teknik Pemecahan Kunci Algoritma ElGamal Menggunakan Metode Index Calculus

BAB II
TINJAUAN PUSTAKA

2.1 Kriptografi
Kriptografi merupakan gabungan dari dua kata Yunani yaitu “kriptos” ( ρυ

ε oζ)

yang berarti tersembuyi, dan “grafein” (γράφε ) yang berarti tulisan, jadi secara harfiah
kriptografi dapat diartikan sebagai “tulisan rahasia” atau “tulisan tersembunyi” dan
umumnya mengacu pada kegiatan penyandian dalam suatu sistem yang dibangun untuk
pengiriman pesan rahasia (Batten, 2013).
Dalam ilmu pengetahuan modern, kriptografi didefninisikan sebagai ilmu yang
mempelajari teknik-teknik matematis yang berhubungan dengan aspek-aspek
pengamanan informasi, yaitu kerahasiaan (confidentiality), integritas data (data
integrity), keabsahan (entity authentication), dan jaminan bahwa data berasal dari
sumber yang sah (data origin authentication) (Menezes et al., 1996).
Tujuan dasar kriptografi dirangkum dalam keempat butir yang disebutkan
sebelumnya sehingga dengan terpenuhinya keempat hal tersebut maka tindakan
kecurangan dan berbagai tindakan lain yang tidak diinginkan dapat dideteksi dan
dicegah. Keamanan informasi merupakan masalah yang akan diperhatikan dalam

penelitian ini, di mana dengan memanfaatkan kriptografi pertukaran informasi melalui
jalur transmisi yang tidak aman dapat dilakukan tanpa tanpa diketahui oleh pihak lain.
Berikut disediakan beberapa istilah/terminologi dalam kriptografi (Schneier, 1996):
1. Pengirim dan Penerima
Misalkan pihak pertama hendak mengirim pesan (selanjutnya disebut pengirim) dengan
aman kepada pihak kedua maka pengirim harus memastikan bahwa pesan yang
dikirimnya hanya diterima oleh pihak yang dimaksudkan untuk menerima pesan

Universitas Sumatera Utara

7

tersebut (dalam hal ini disebut penerima), yakni pihak kedua, dan sekalipun pesan
tersebut jatuh ke pihak lain (eavesdropper), pesan tersebut tidak dapat dibaca karna
pesan tersebut tidak dimaksudkan untuknya.
2. Pesan, Enkripsi dan Dekripsi
Pesan adalah teks asli (plain text), disimbolkan sebagai P atau M. Proses penguncian
pesan untuk menyembunyikan isi pesan sehinga tidak dapat dibaca disebut proses
enkripsi dan fungsi enkripsi disimbolkan sebagai E (). Pesan baru yang dihasilkan dari
proses enkripsi (pesan yang telah terkunci) disebut cipher text dan disimbolkan sebagai

C.

E(P) = E(M) = C ........................................................ (1)
Keterangan:
E(P) = E(M) = fungsi enkripsi pesan asli
C = teks hasil enkripsi (cipher text)
Proses pengembalian cipher text menjadi plain text disebut proses dekripsi, fungsi
dekripsi disimbolkan sebagai D (C).

D (C) = P = M ............................................................ (2)
Keterangan:
D (C) = fungsi dekripsi pesan terenkripsi
P = M = teks asli hasil dekripsi
Dari penjelasan di atas, ditemukan bahwa fungsi enkripsi merupakan invers dari fungsi
dekripsi sehingga dapat dituliskan sebagai berikut:

D (E (M)) = M ............................................................ (3)
Keterangan:
D(E(M)) = fungsi dekripsi pesan terenkripsi
M = teks asli hasil dekripsi

3. Algoritma dan Kunci
Suatu algoritma kriptografi (juga disebut cipher) adalah fungsi matematika untuk
melakukan enkripsi dan dekripsi. Pada awal penggunaan kriptografi kerahasiaan
algoritma merupakan kekuatan dari algoritma kriptografi dan algoritma tersebut
dipasangkan pada perangkat transmisi pesan. Kelemahan skema ini adalah resiko yang
sangat besar harus ditanggung ketika perangkat tersebut jatuh ke tangan musuh karena
dengan mendapatkan perangkat tersebut maka secara bersamaan algoritma yang
digunakan juga sudah diketahui.

Universitas Sumatera Utara

8

Pada kriptografi modern kekuatan kriptografi diletakkan pada kerahasiaan kunci
sesuai dengan prinsip Kerckhoff bahwa cipher text diasumsikan telah jatuh ke tangan
musuh sehingga jika teknik kriptografi hanya bergantung pada kerahasiaan algoritma
kemungkinan pesan untuk dipecahkan semakin besar karena ketika instrumen
kriptografi jatuh ke tangan musuh algoritma enkripsi dapat diketahui maka pada saat itu
juga pesan dapat dibaca, selanjutnya algoritma tersebut tidak dapat digunakan lagi
sehingga harus melakukan riset lagi untuk menemukan algoritma baru sedangkan jika

meletakkan tingkat keamanan pada kunci maka meskipun algoritma diketahui oleh
pihak lain pesan tetap tidak dapat dibaca karena selain algoritma masih diperlukan kunci
untuk mengembalikan cipher text menjadi pesan. Kunci yang dimaksudkan di sini
adalah suatu angka (biasanya cukup besar) yang sama halnya dengan prinsip kunci
gembok yaitu digunakan untuk mengunci pesan dengan algoritma sebagai pembangkit
kunci sekaligus gembok yang mengunci pesan. Algoritma kriptografi modern dibagi
menjadi 2 bagian besar yaitu algoritma kunci simetris dan algoritma kunci asimetris
atau algoritma kunci publik.
4. Algoritma Simetris
Algoritma Kriptografi Simetris adalah algoritma yang menggunakan kunci yang sama
untuk melakukan enkripsi dan dekripsi.
Proses enkripsi dan dekripsi disimbolkan sebagai berikut:
� (P)

Keterangan:
� (P)

� (C)

� (C)


= C ................................................................... (4)
= M .................................................................. (5)

= fungsi enkripsi pesan asli P dengan kunci K
= fungsi dekripsi pesan terenkripsi dengan kunci K

C = pesan terenkripsi
M = pesan asli
5. Algoritma Kunci Publik (Algoritma Asimetris)
Algoritma kriptografi kunci publik atau algoritma kriptografi asimetris adalah algoritma
kriptografi yang menggunakan kunci yang berbeda dalam proses enkripsi dan dekripsi.
Disebut algoritma kunci publik karena terdapat 2 jenis kunci yang digunakan pada
algoritma ini, yaitu kunci publik yaitu kunci yang tidak dirahasiakan, disebarluaskan
kepada umum dan kunci privat yaitu kunci yang dirahasiakan. Secara berurutan kedua
kunci tersebut masing-masing digunakan untuk penguncian atau enkripsi dan yang lain

Universitas Sumatera Utara

9


untuk dekripsi. Algoritma kriptografi kunci publik pertama kali diperkenalkan oleh
Bailey Whitfield Diffie dan Martin Hellman pada tahun 1976 dalam sebuah paper
berjudul “Diffie-Hellman Key Exchange” di mana dalam paper tersebut dikemukakan
suatu sistem untuk berkomunikasi secara aman semata-mata dengan memanfaatkan
jalur transmisi umum. Dalam sistem kriptografi yang diajukan tersebut langkah pertama
yang perlu dilakukan adalah pemilihan kunci EK dan kunci DK di mana DK tidak dapat
dihitung dari EK atau secara teori dapat dihitung namun menghabiskan waktu dan
sumber daya yang besar, pemilihan algoritma enkripsi E dan fungsi dekripsi D dengan
fungsi E dan fungsi D merupakan invers terhadap satu sama lain dan masing-masing E
dan D dapat dihitung dengan mudah (feasible) untuk setiap pesan M, yang dilakukan
oleh pihak pertama. Selanjutnya kunci EK didistribusikan kepada pihak (baik tunggal
maupun jamak) yang akan mengirimkan pesan dan mencatat nama beserta alamat
pemilik kunci EK tersebut. Selain menjamin keamanan pesan sistem kriptografi ini juga
menawarkan fitur untuk menguji keabsahan tiap pesan yang diterima oleh pihak
pertama yang disebut one-way authentication (Diffie & Helman, 1976).
Dari penjelasan di atas diketahui bahwa kelebihan algoritma kunci publik adalah
kedua pihak yang hendak berkomunikasi secara aman tidak memerlukan jalur transmisi
khusus atau bertemu secara langsung untuk melakukan pertukaran kunci karena pada
skema algoritma kunci publik masing-masing pihak memilih kunci rahasianya masingmasing dan hanya kunci publik yang dipertukarkan melalui jalur transmisi yang tidak

aman dan kunci public diasumsikan tidak dapat secara langsung digunakan untuk
membuka pesan yang terkunci. Algoritma kunci publik memiliki kekurangan yaitu
untuk menjamin tingkat keamanan yang tinggi diperlukan kunci yang berukuran besar
pula sehingga ukuran pesan terenkripsi menjadi sangat besar. Selain ukuran pesan
terenkripsi yang besar, sumber daya yang besar juga diperlukan untuk melakukan
perhitungan baik dalam proses pembangkitan kunci, proses enkripsi maupun proses
dekripsi.

2.2

Kriptanalisis dan Kriptanalis

Kriptanalisis adalah usaha yang dilakukan untuk memecahkan teknik kriptografi
dengan syarat usaha pemecahan yang dilakukan memiliki kompleksitas yang lebih kecil
daripada brute force. Misal nilai kompleksitas untuk memecahkan suatu teknik
kriptografi dengan brute force adalah 2128 maka usaha lain untuk pemecahan masalah

Universitas Sumatera Utara

10


yang sama dengan nilai kompleksitas sebesar 2108 masih disebut usaha kriptanalisis
(Schneier, 2000).
Jika dilihat sekilas kegiatan kriptanalisis seperti ancaman bagi kriptografi karena
jika ternyata teknik kriptografi berhasil dipecahkan yang berarti bahwa informasi gagal
dirahasiakan maka teknik kriptografi tersebut tidak layak lagi untuk digunakan. Namun
sebenarnya tujuan kegiatan kriptanalisis adalah justru untuk menemukan batasan suatu
algoritma atau seaman apakah algoritma tersebut bila dibandingkan dengan metode dan
teknologi yang ada. Dengan demikian kegiatan kriptanalisis merupakan usaha untuk
mengembangkan teknik kriptografi yang sudah ada dengan jalan mencari kelemahan
dari teknik kriptografi tersebut. Pihak yang melakukan kegiatan kriptanalisis disebut
kriptanalis.

2.3

Faktor Pembagi Terbesar (Greatest Common Divisor/GCD)

Misalkan a dan b merupakan bilangan bulat positif dan bukan nol maka faktor pembagi
terbesar dari a dan b adalah bilangan bulat positif terbesar m di mana m habis membagi
masing-masing a dan b sehingga jika salah satu atau kedua bilangan a dan b adalah

prima maka faktor pembagi terbesarnya adalah 1.
Misalkan diberi bilangan 21 dan 35 dan diketahui bahwa faktor pembagi 21
adalah (3, 7) sementara faktor pembagi dari 35 adalah (5, 7) maka faktor pembagi
terbesar dari 21 dan 35 adalah 7.
Algoritma Euclid adalah algoritma dapat digunakan untuk menemukan gcd dua
buah bilangan. Misal m dan n adalah dua buah bilangan bulat positif dan m > n. Jika m
dibagikan terhadap n maka diperoleh q (quotient) dan bersisa r (remainder) dengan q
dan r masing-masing merupakan bilangan bulat positif dan r < n dan dapat ditulis m =
nq + r. Perlakuan tersebut dilakukan berulang-ulang dengan masing-masing nilai q pada
perulangan ke-k digunakan sebagai m pada baris ke-(k-1) dan nilai r pada perulangan
ke-k digunakan sebagai n pada baris ke-(k-1) hingga r = 0. Dengan demikian gcd kedua
bilangan adalah nilai n pada perulangan terakhir (Kromodimoeljo, 2010).
Contoh:
Misal diberi bilangan m = 72 dan n = 56, maka:
72 = 1 × 56 + 16
56 = 3 × 16 + 8
16 = 2 × 8

Universitas Sumatera Utara


11

Dari perhitungan yang dilakukan diperoleh bahwa gcd (72, 56) adalah 8.

Kelipatan Persekutuan Terkecil (Least Common Multiple/LCM)

2.4

Kelipatan Persekutuan Terkecil dari dua buah bilangan bulat positif a dan b (selanjutnya
akan dinotasikan sebagai lcm (a, b)) adalah bilangan bulat positif terkecil d yang habis
dibagi a dan b atau dapat ditulis a|d dan b|d. Kelipatan Persekutuan Terkecil dari dua
buah bilangan dapat dihitung dengan: a·b / gcd (a, b) (Menezes et al., 1996)
Contoh:
Misal diberi 2 buah bilangan a = 72 dan b = 56. Kita mengetahui bahwa gcd (72, 56) =
8, maka lcm (72, 56) = 72*56 / lcm (72, 56) = 4032 / 8 = 504.

2.5

Bilangan Prima


Jika terdapat bilangan bulat positif yang lebih besar dari 1 yang tidak memiliki faktor
bilangan bulat positif kecuali 1 dan dirinya sendiri maka bilangan tersebut adalah
bilangan prima (Mollin, 2007).

2.6

Relatif Prima (Coprime)

Jika terdapat 2 buah bilangan m dan n yang hanya memiliki bilangan 1 sebagai faktor
persekutuan terbesar (gcd (m, n) = 1) maka kedua bilangan tersebut adalah relatif prima
satu terhadap yang lain (Mollin, 2007).

2.7

Fungsi Euler (ϕ)

Fungsi Euler ϕ (n) adalah fungsi yang menunjukkan banyaknya bilangan bulat positif
yang relatif prima terhadap n untuk n ≥ 1. Fungsi Euler dihitung dengan ketentuan
(Menezes et al., 1996):
(i)

Jika p adalah bilangan prima maka ϕ (p) = p – 1

(ii) Jika gcd (m, n) = 1, maka ϕ (m, n) = ϕ (m) · ϕ (n)
(iii) Jika n = p1e1 p2e2 . . . pkek adalah faktorisasi prima terhadap n maka:
ϕ (n) = n 1 −
Contoh:



1−



... 1 −



1. Misal p = 19, karena 19 merupakan bilangan prima, maka ϕ (19) = 19 – 1 = 18.

Universitas Sumatera Utara

12

2. Misal n = 21. n dapat difaktorkan menjadi 7 dan 3 dan keduanya merupakan
bilangan prima. Dengan menggunakan ketentuan ii, ϕ (21) dapat dihitung
dengan ϕ (7, 3) = ϕ (7) · ϕ (3) = 6 × 2 = 12.
3. Misal n = 1800. n dapat difaktorkan menjadi 25, 9 dan 8 dan keduanya
merupakan perpangkatan dari bilangan prima yaitu: 25 = 52, 9 = 32 dan 8 = 23,
maka dengan menggunakan ketentuan iii di atas ϕ (1800) dapat dihitung
dengan: ϕ (1800) = 1800 1 −
2.8

5

1−

1−

= 480.

Grup Siklik

Grup siklik G adalah suatu grup dengan n anggota (dengan n merupakan bilangan
berhingga) yang dihasilkan oleh hasil operasi a terhadap pembangkit g dan elemen a
pada grup siklik tersebut disebut generator (Siang, 2002).

2.9

Kekongruenan

Bilangan a dan disebut kongruen terhadap b dalam modulo n, ditulis a ≡ b (mod n), jika
n habis membagi (a - b) (Menezes et al., 1996).
Contoh:
Misal a = 7 dan n = 4. Karena 7 mod 4 = 3 maka 7 kongruen dengan 3 dalam modulus
4, ditulisμ ι ≡ 3 (mod ι).
2.10 Ordo Modulo
Jika terdapat suatu bilangan bulat positif m dan bilangan asli n dan gcd (m, n) = 1 maka
order dari modulo n adalah bilangan bulat terkecil e sedemikian sehingga ae ≡ 1 (mod
n) (Mollin, 2007).

2.11 Perpangkatan Modulo
Perpangkatan modulo adalah operasi perpangkatan bilangan bulat yang dilakukan
bersamaan dengan operasi modulo dan hasilnya ditulis dalam kekongruenan (Menezes
et al., 1996).

Universitas Sumatera Utara

13

2.12 Akar Primitif
Jika m merupakan bilangan bulat dan n merupakan bilangan asli dan ordn (m) = ϕ (n),
maka m adalah elemen primitif modulo n. Misal terdapat suatu bilangan bulat m, dan
dua buah bilangan e dan n masing-masing merupakan anggota bilangan asli dengan gcd
(m, n) = 1 maka ordm (me) = ordn (m) jika dan hanya jika gcd (e, ordn(m)) = 1.
Algoritma Gauss dapat digunakan untuk menghitung akar primitif dari fungsi
perpangkatan modulo p dengan cara sebagai berikut (Mollin, 2007):
1. Misal m merupakan suatu bilangan asli sedemikian sehingga 1 < m < p, hitung mt
untuk t = 1, 2, … hingga mt = 1 (mod p). Dengan kata lain melakukan operasi
perpangkatan modulo hingga ordp (m). Jika t = ordp(m) = p – 1 maka m merupakan
akar primitif dan proses pencarian dihentikan. Sebaliknya, jika kondisi tersebut tidak
tercapai maka lanjutkan ke langkah ke-2.
2. Pilih suatu bilangan asli b dalam rentang 1 < b < p dan b ≢ mj (mod p) untuk setiap

j= 1, 2, …, t. Hitung u = ordp (b). Jika u ≠ p – 1 maka hitung v = factor persekutuan
terkecil t dan u. Oleh karena itu v = a·c di mana a|t dan c|u dengan a relatif prima
terhadap c. Inisiasi masing-masing m1 dan b1 sebagai sisa bagi terkecil dari mt/a dan
bu/c modulo p. Dengan demikian g = m1·b1 berorder ac = v dalam modulo p. Jika v =

p – 1 maka g merupakan akar primitif dan pencarian dihentikan. Sebaliknya jika
kondisi tersebut tidak terpenuhi maka lanjutkan ke langkah ke-3.
3. Ulangi langkah ke-2 dengan menggantikan nilai t dengan nilai v dan nilai m
digantikan oleh nilai m1·b1.
Contoh:
Diketahui m = 13 dan ditanyakan α yang memenuhi sedemikian sehingga setiap elemen
bilangan bulat dalam 1 ≤ r ≤ m-1 dapat dituliskan sebagai fungsi αi = r (mod 13) untuk
1 ≤ i ≤ m-1.
Untuk α = 3 diperolehμ
31 ≡ 3 (mod 13)
32 ≡ 9 (mod 13)
33 ≡ 1 (mod 13)
34 ≡ 3 (mod 13)
Dari perhitungan di atas ditemukan bahwa untuk 31 ≡ 34 (mod p) sehingga dapat
disimpulkan bahwa 3 bukan merupakan akar primtif dari m = 13.

Universitas Sumatera Utara

14

Untuk α = 4 diperoleh:
61 ≡ 4 (mod 13)

67 ≡ ι (mod 13)

62 ≡ 10 (mod 13)

68 ≡ 3 (mod 13)

63 ≡ κ (mod 13)

69 ≡ 5 (mod 13)

64 ≡ 9 (mod 13)

610 ≡ 4 (mod 13)

65 ≡ 2 (mod 13)

611 ≡ 1 (mod 13)

66 ≡ 12 (mod 13)
Dari perhitungan yang telah dilakukan ditemukan bahwa untuk α = 5 fungsi αi (mod 13)
dapat mendistribusikan setiap nilai r dalam 1 ≤ r ≤ 12 sebagai produknya sehingga dapat
disimpulkan bahwa 6 merupakan akar primtif dari m = 13.

2.13 Pengujian Miller-Selfridge-Rabin
Pengujian Miller-Rabin adalah algoritma pengujian primalitas yang merupakan
pengembangan dari Fermat’s Little Theorem, di mana untuk setiap bilangan bulat
positif a dan bilangan prima p berlaku:
ap ≡ a (mod p) ............................................................ (7)
Keterangan:
a = bilangan bulat positif
p = bilangan prima
Misal terdapat suatu bilangan asli n yang akan diuji apakah merupakan bilangan ganjil
atau bilangan komposit dengan n – 1 = 2t · m dengan m dan t masing-masing merupakan
anggota bilangan asli dan m harus merupakan bilangan ganjil, maka pengujian MillerSelfridge-Rabin terhadap n dilakukan dengan serangkaian tahap berikut:
1. Memilih sembarang bilangan bulat a dengan batasan 2 ≤ a < n – 2
2. Menyelesaikan persamaan kongruensi modulo x ≡ am (mod n)
Jika x ≡ ± 1 (mod n) maka p mungkin merupakan bilangan prima.
Jika t = 1, akhiri algoritma dengan output “p merupakan bilangan komposit”
Jika tidak memenuhi salah satu dari kedua kondisi tersebut maka inisialisasi variabel j
= 1 dan lanjutkan ke tahap ke-3.
3. Menghitung nilai x ≡



(mod n)

Jika x ≡ 1 (mod n), akhiri algoritma dengan output “n merupakan bilangan komposit”
Jika x ≡ -1 (mod n) maka n mungkin merupakan bilangan prima.

Universitas Sumatera Utara

15

Jika tidak memenuhi salah satu dari kedua kondisi tersebut maka ubah nilai j menjadi j
+ 1 dan lanjutkan ke tahap ke-4.
4. Jika j = t – 1, maka lanjutkan ke tahap ke-5. Sebaliknya jika tidak memenuhi kondisi
tersebut kembali ke tahap ke-3
5. Hitung x =

− ·

(mod n)

Jika x ≢ -1 (mod n), maka akhiri algoritma dengan output “n merupakan bilangan
komposit”

Jika x ≡ -1 (mod n), maka akhiri algoritma dengan output “n mungkin merupakan
bilangan prima” (Mollin, 2005).

2.14 Algoritma ElGamal
Algoritma ElGamal merupakan algoritma kunci publik yang ditemukan oleh Taher
ElGamal pada tahun 1984 sebagai pengembangan skema kriptografi kunci publik yang
diperkenalkan oleh Whitfield Diffie dan Martin Hellman pada tahun 1976 dimana sejak
saat itu berbagai usaha dilakukan untuk menemukan cara agar skema kriptografi kunci
publik dapat diterapkan (ElGamal, 1985).
Algoritma ElGamal merupakan algoritma yang bersifat one-way-function dan
mengandalkan kesulitan dalam memecahkan masalah logaritma diskrit pada grup
perpangkatan bilangan bulat modulo prima Zp* dalam finite field yang besar di mana
perpangkatan bilangan bulat dimodulokan terhadap bilangan prima yang besar n dapat
dilakukan dalam waktu yang dapat diabaikan namun untuk menemukan pangkat yang
digunakan dalam perpangkatan akar primitif dianggap tidak dapat dihitung dalam waktu
yang masuk akal.
Misal Alice dan Bob hendak berkomunikasi secara rahasia dengan menggunakan
algoritma ElGamal maka proses yang harus mereka lakukan dibagi menjadi 3 tahap
proses, yaitu: pembangkitan kunci, proses enkripsi dan proses dekripsi yang masingmasing akan dijelaskan kemudian.

Universitas Sumatera Utara

16

8.14.1. Pembangkitan kunci
Seperti telah dijelaskan sebelumnya bahwa algoritma ElGamal menggunakan sepasang
kunci yaitu kunci publik dan kunci privat di mana kunci publik akan dipublikasikan
sedangkan kunci privat akan dirahasiakan. Pembangkitan kunci algoritma ElGamal
dilakukan oleh pihak penerima pesan (dalam kasus ini Bob sebagai penerima) dengan
tahapan sebagai berikut:
1. Membangkitkan bilangan prima p dengan p merupakan bilangan prima yang
cukup besar dan generator α yang merupakan pembangkit grup Zp* dengan
fungsi pembangkit yang digunakan adalah fungsi eksponensial modulo G = αx
(mod p).
2. Memilih A secara acak di mana 1 ≤ A ≤ p - 2 dan A merupakan kunci privat
sehingga akan dirahasiakan.
3. Menghitung kunci publik αA mod p. Kunci publik algoritma ElGamal yang
akan dipublikasikan adalah triplet (p, α, αA).
4. Mempublikasi kunci publik.
8.14.2. Proses enkripsi
Proses penguncian pesan dilakukan oleh Alice sebagai pengirim dan pihak pengirim
harus terlebih dahulu memperoleh kunci publik yang telah dipublikasi sebelum Alice
dapat melakukan penguncian pesan.
1. Memperoleh triplet kunci publik (p, α, αA) dari Bob selaku pihak yang akan
menerima pesan.
2. Mengubah pesan M menjadi himpunan bilangan bulat (m1, m2, …, mn) di mana
n ≤ p – 1.
3. Memilih k secara acak di mana k terdapat dalam rentang 1 ≤ k ≤ p - 2 dan k
merupakan kunci privat yang akan dirahasiakan oleh pihak pengirim.
Keacakan kunci k dan penggunaan k yang tidak tetap untuk setiap mi sangat
dianjurkan agar tiap potongan pesan yang akan dienkripsi pada tahap
berikutnya tidak dapat dipecahkan jika salah satu k berhasil ditemukan oleh
pihak ketiga.
4. Hitung

= αk mod p dan tiap nilai

akan dikombinasikan dengan pesan

terenkripsi ci.

Universitas Sumatera Utara

17

5. Mengenkripsi blok-blok pesan asli (m1, m2, …, mi) dengan fungsi enkripsi ci =
mi (αA)k sehingga pesan terenkripsi C yang akan dikirim merupakan himpunan
(c1, c2, …, ci)
8.14.3. Proses dekripsi
Untuk mengembalikan pesan terenkripsi C menjadi pesan asli M maka Alice harus
melakukan:
1. Menghitung (αk)p -1-A = (αk)-A = α-Ak
2. Mengembalikan setiap ci menjadi mi dengan menghitung mi = (αk)-A ci (mod p).
Setelah setiap mi berhasil dihitung maka setiap mi disusun sedemikian rupa
untuk memeroleh pesan asli M (Meier, 2005).

2.15 Metode Index Calculus
Misalkan n dan b merupakan bilangan asli dan n relatif prima terhadap n maka akan
terdapat suatu nilai e dalam rentang 0 ≤ e ≤ ϕ (n)-1 yang menghasilkan b ≡ me (mod n).
Nilai e mod ϕ (n) merupakan Index b dalam factor base m mod n, dinotasikan �

Lm(b). Misal m = 23 dan n = 5, maka �

5

atau

(15) = 17, karena 517 ≡ 15 (mod 23).

Jika n merupakan anggota bilangan asli dan m merupakan akar primitif modulo n, maka
untuk setiap bilangan bulat positif c dan d berlaku:
1. �

(cd) ≡ �

3. �

(1) = 0

5. �

(-1) = ϕ (n)/2 untuk n > 2

(c) + �

(d) (mod ϕ(n))

2. Untuk setiap bilangan asli t, �
4. �

(m) = 1

6. �

(n - c) ≡ �

(ct) ≡ t · �

(-c) ≡ ϕ (n)/2 + �

(c) (mod ϕ(n))

(c) (mod ϕ (n)). (Mollin, 2007)

Misal diberi suatu Grup Siklik dengan α sebagai pembangkit, yaitu akar primitif

dari grup, dengan αk ≡ (mod m) sebagai fungsi pembangkit dan disediakan suatu nilai
x

yang merupakan hasil pemetaan dari daerah asal dengan x merupakan sembarang

bilangan yang tidak diketahui nilainya ke daerah hasil maka untuk memperoleh nilai x
dapat dilakukan dengan menggunakan metode Index Calculus dengan langkah sebagai
berikut:
1. Membangkitkan himpunan bilangan prima kecil F dengan batas B yang akan
digunakan sebagai factor base. Nilai B (yang akan menentukan ukuran F)

Universitas Sumatera Utara

18

seyogianya disesuaikan dengan nilai m yang merupakan basis perpangkatan
modulo.
2. Menghitung logaritma diskrit dari bilangan-bilangan dalam factor base dengan
menghitung αk. Nilai k oleh berupa beberapa bilangan acak atau dapat
menggunakan α1, α2, … ,αn. Langkah ini akan menghasilkan persamaan linier




= ∑�=



��

− 1 dan dengan menggunakan persamaan linier

yang ada kemudian dihitung masing-masing nilai Lm(pi) (mod (m-1)) dalam
factor base.
3. Menghitung logaritma diskrit dari elemen menggunakan logaritma dari elemenelemen dalam factor base yang telah diketahui.
3.1. Menghitung nilai k sedemikian sehingga

αr = ∏ �





3.2. Setelah nilai k dan a ditemukan maka kita akan memperoleh bentuk Lα(b αr)

Contoh:

= Lα(∏ � � ) (mod (p-1)), sehingga Lα(b) = -r + ∑� ��



−1

Misal diberikan m = 113 dan akar primitif α = 5 dan ditanyakan x yang memenuhi untuk
≡ 5x ≡ 107 (mod 113).
Dengan menentukan batas factor base B ≤ 10, sehingga B = {2, 3, 5, 7}. Misal kita
memberi pangkat acak 1 ≤ k ≤ 20 dan 19 untuk fungsi αk (mod 112) diperoleh beberapa
persamaan linier yang menghasilkan beberapa nilai unik sebagai berikut:
51 ≡ 5 (mod 113), sehingga 1 = L5 (5) (mod 112)
53 ≡ 12 (mod 113), sehingga 3 = 2·L5 (2) + L5 (3) (mod 112)
54 ≡ 60 (mod 113), sehingga 4 = L3 (2) + L3 (3) + L5(5) (mod 112)
57 ≡ 42 (mod 113), sehingga 7 = L5 (2) + L3 (3) + L5(7) (mod 112)
515 ≡ 6 (mod 113), sehingga 6 = L3 (3) + L5 (5) (mod 112)
Dengan menyelesaikan persamaan linier yang ada diperoleh L5 (3) = 27, L5(5) = 1, L5(7)
= 104. Setelah nilai logaritma diskrit dalam factor base telah diketahui maka selanjutnya
menghitung nilai 107·531 ≡ 3 · 5 · 7 (mod 113), sehingga L3 (107) ≡ -31 + L3 (2) + L3
(3) + L3 (5) + L3 (7) (mod 112) = 110. Dengan metode Index Calculus diperoleh bahwa
x untuk masalah logaritma diskrit 5x ≡ 107 (mod 113) dengan x < 113 adalah x = 110.

Universitas Sumatera Utara

19

2.15 Penelitian yang relevan
Berikut beberapa penelitian yang berkaitan dengan judul penelitian penulis pada saat
ini:
1. Gunalan Anggirasa (2015) dalam tugas akhir yang berjudul “Teknik Pemecahan
Kunci ElGamal dengan Metode Baby-step Giant-step” menyatakan bahwa Metode
Baby-step Giant-step dapat memecahkan kunci publik ElGamal dengan running
time selama 172817 ms untuk memecahkan algoritma ElGamal dengan panjang
kunci 10 digit. Pemecahan kunci lebih dari 10 digit semakin tidak efisien karena
memakan waktu hingga lebih dari 1 jam.
2. B. A. LaMacchia dan A. M. Odlyzko (1992) dalam jurnal berjudul “Computation
of Discrete Logarithms in Prime Fields” menyatakan bahwa algoritma kriptografi
kunci publik yang memanfaatkan masalah logaritma diskrit pada umumnya
memiliki ciri menggunakan bilangan prima yang tetap yang tidak dapat diganti
dengan mudah sehingga memungkinkan untuk melakukan serangan yang
menghabiskan bukan hanya dalam beberapa bulan tetapi bertahun-tahun waktu
komputasi.

Universitas Sumatera Utara