Berdasarkan Tabel 2.2. diperoleh ciphertext � , � , sebagai berikut :
14, 187 168,219
44, 214 181, 226
215, 55 92, 152
202, 9 Selanjutnya ciphertext dikirim ke Bob.
2.17. Dekripsi
Setelah ciphertext diterima, proses selanjutnya adalah mendekripsikan ciphertext menggunakan kunci publik p,
� � dan kunci privat a. p, � � sebagai kunci publik dan a sebagai kunci privat, jika diberikan ciphertext
� , � maka dihitung : �
−
≡ �
�− −
mod dan
�
−
� ≡ �
−
� ≡ mod .
dengan m adalah plaintext. Algoritma dekripsi pesan :
1. Hitung �
�− −
mod Hitung
�
−
� ≡ mod
2. Setelah plaintext m diperoleh, konversikan ke dalam karakter yang sesuai
dengan kode ASCII, kemudian hasilnya digabungkan kembali.
Bob telah menerima ciphertext dari Alice, ciphertext yang diperoleh adalah sebagai berikut :
14, 187 168,219
44, 214 181, 226
215, 55 92, 152
202, 9
Universitas Sumatera Utara
Untuk itu Bob pertama kali menghitung p – 1 – a = 257 – 1 – 5 = 251.
Kemudian menggunakan kunci publik p = 257 dan kunci privat a = 5, Bob melakukan perhitungan seperti pada tabel 2.3 :
Tabel 2.3. Proses Dekripsi
i
� ��
�
251
mod 257
�� �
251
mod 257
m
1 14
187 10
71 G
2 168
219 248
85 U
3 44
214 46
78 N
4 181
226 172
65 A
5 215
55 221
76 L
6 92
152 134
65 A
7 202
9 180
78 N
Berdasarkan Tabel 2.3, Diketahui bahwa pesan tersebut adalah “GUNALAN”
2.18. Baby-step Giant-step
Keamanan ElGamal bergantung pada pemecahan masalah logaritma diskrit dengan modulo yang sangat besar Sharma et all, 2012. Metode Baby-step Giant-step
merupakan salah satu metode pencarian dengan mencocokkan dua daftar. Metode ini bertujuan untuk menemukan a dari
� mod . Dalam hal ini a disebut logaritma diskrit.
Jika ingin menemukan a langkah pertama adalah memilih � ≈ √ − + 1
sehingga p – 1 ≤ N
2
. Hal ini dilakukan karena perhitungan akan melakukan hasil yang sama jika melebihi
√ . Kemudian dibuat dua dafta dimana daftar pertama meningkatkan pemangkatan sebanyak satu, sedangkan daftar kedua meningkatkan
pemangkatan sebanyak N.
Universitas Sumatera Utara
Daftar Baby-step : �
j
mod p untuk 0 ≤ j ≤ N.
Daftar Giant-step : � �
-Nk
mod p untuk 0 ≤ k ≤ N.
Daftar Baby-step akan diproses sebanyak √ − modulo p dikarenakan �
adalah akar primitif. Daftar Giant-step mungkin akan diproses sedikit lama dikarenakan proses
berjalan sebanyak perkalian dengan � .
Jika ditemukan hasil yang sama di setiap daftar akan memakan banyak waktu jika p bernilai besar dapat ditulis
� ≡ � �
−�
mod sehingga �
+�
≡ � mod , maka ditemukanlah � = + � .
Banyaknya langkah pada algoritma ini sekitar √ dan angka sebanyak N perlu
disimpan Batten, 2013. Diberikan 20
a
mod 257 = 93. a dapat dihitung dengan mengikuti langkah langkah berikut:
1. Pilih nilai � ≈ ⌈ √
− ⌉ + 1 . N
≈ ⌈ √ − ⌉ + 1 = 17.
2. Hitung daftar Baby-step dengan rumus �
j
mod p untuk 0 ≤ j N.
Tabel 2.4. Proses Baby-step
j
�
j
mod 257
1 1
20 2
143 3
33 4
146 5
93 6
61 7
192
Universitas Sumatera Utara
j
�
j
mod 257
8 242
9 214
10 168
11 19
12 123
13 147
14 113
15 204
16 225
17 131
3. Hitung daftar Giant-step dengan rumus � �
-Nk
untuk 0 ≤ k N hinga ditemukan hasil yang cocok pada daftar Baby-step.
Tabel 2.5. Proses Giant-step
k
� ∗ �
- 17k
93
Perhitungan Giant-step dihentikan karena kecocokan yang ditemukan yaitu 20
5
≡ 93 20
mod p, jadi menurut rumus a = j + Nk, a = 5 + 0 = 5. Oleh karena itu diperoleh a = 5 yang memenuhi perhitungan 20
5
mod 257 = 93
2.19. Penelitian yang Relevan