3. Algoritme 3 Dekripsi
Untuk menemukan kembali m dari c, B harus melakukan hal-hal berikut
a. Menggunakan kunci pribadi a untuk menghitung mod . Dengan
catatan .
b. Menemukan kembali m dengan menghitung mod .
Pada proses dekripsi, dengan dan didefinisikan : , sehingga fungsi dekripsi didefinisikan oleh
mod .
(Menezes et al. 1996) Berikut ini diberikan suatu ilustrasi penyandian yang dihitung dengan menggunakan software Maple 12 dengan PC processor Intel Pentium Dual Core 1,73 GHz, Ram 512 MB.
Contoh ElGamal
A mengirim pesan kepada B. Pesan tersebut adalah 91819250104.
Langkah pertama, B membuat kunci publik dan kunci pribadi. Setelah melalui
0436292147431903521064446370856) dan kunci pribadi (665638090635425982769 337333168305062441). Kemudian, kunci publik tersebut dikirim ke A.
Setelah A memperoleh kunci publik , , dari B, kemudian A memilih integer positif acak k dan menghitung
mod 52940576363150816401527749-6545355441362, dan mod = 598-510960553455680182318130888811111301. A mengirim pesan yang telah disandikan tadi (siferteks) kepada B dengan bentuk
, = (529405763631508164015277496-545355441362, 5985109605534556801823-18130888811111301).
Setelah B menerima siferteks tadi, maka B mendekripsikan siferteks tadi untuk menemukan kembali pesan m dengan menggunakan kunci pribadi,
91819250104 mod , dimana pesan yang telah didekripsikan tadi sama dengan pesan yang sebelum dienkripsikan.
III PEMBAHASAN
Field dengan karakteristik prima 2 merupakan suatu kasus khusus, dimana tidak ada pengurangan pada operasi aljabarnya.
Seperti yang telah dipaparkan pada bab 2, di bawah ini akan dibahas struktur grup kurva eliptik Supersingular dengan , 0 dan Non-Supersingular 0 sehingga titik (0,0) berada di luar kurva yang merepresentasikan titik ∞.
3.1 Aritmetika Kurva Eliptik Supersingular.
Misalkan adalah field dengan karakteristik prima 2 Supersingular dengan bentuk sederhana dari persamaan kurva eliptiknya adalah
:
dengan , , dan ∆ 0 ∆
0.
Didefinisikan persamaan kurva eliptik Supersingular
, |
∞ .
1. Misalkan terdapat titik , sembarang. Karena syarat 0
dan dengan 0, maka titik 0,0 dijamin tidak terletak pada kurva dan dapat digunakan untuk merepresentasikan ∞ 0,0 . Akibatnya,
∞ 0, 0 ,
2. Dengan titik 0,0 yang direpresentasikan dengan titik di tak-hingga maka untuk
setiap , , terdapat
invers dari yang dinotasikan dengan
– , berlaku,
0,0 ∞. dimana ∞ ∞.
3. Untuk setiap , dimana
, , , dan
maka titik yang akan dicari adalah , .
Terdapat tiga titik pada E, maka berlaku tiga persamaan
(1.1)
(1.2) (1.3) Jika dilihat dari definisi secara geometri, maka , dan ,
dimisalkan dengan maka diperoleh persamaan
(1.4) Kemudian apabila dari persamaan (1.1) dan (1.3) kita jumlahkan dan dimodulokan dengan dua, akan diperoleh
Apabila pada ruas kiri kita tambahkan nilai 2 , maka persamaan di atas menjadi
2
Kemudian kedua ruas disederhanakan dan dibagi dengan diperoleh
(1.5) Setelah memperoleh persamaan (1.5) dengan dari persamaan (1.4), maka untuk persamaan (1.2), (1.3) akan diperoleh dengan cara yang sama, sehingga didapatkan
(1.6) Untuk memperoleh dan , akan dijumlahkan persamaan (1.5), (1.6) sehingga kita peroleh
Apabila kita bagi kedua ruas dengan maka didapatkan
dan dari dihasilkan .
Jadi, dihasilkan , dengan dan
dengan .
4. Untuk setiap , dan
, titik yang ingin ditentukan
adalah , .
Apabila diperhatikan secara geometri, titik P dan R berada pada kurva E. Oleh sebab itu, terdapat dua persamaan
dan
. (1.7) Jika ditarik garis lurus P dan R’ (titik
sebelum dicerminkan terhadap sumbu-x), terlihat merupakan sebuah garis singgung. Dimisalkan gradiennya , maka
(1.8) Kemudian, dengan turunan implisit
dengan memisalkan , ,
dapat kita peroleh nilai yaitu
3
2
, , (1.9) Sama halnya dengan penurunan kasus
(pada persamaan 1.5), diperoleh persamaan
Sehingga . Untuk diperoleh dari persamaan (1.8) yaitu
dengan . Dari uraian di atas, diperoleh aritmetik pada kurva eliptik Supersingular sebagai berikut
1. Titik di luar kurva yang digunakan adalah ∞ 0,0 . 2. , dan – , apabila dijumlahkan menghasilkan titik ∞. 3. , dimana , , , dan maka, , dimana dan dengan . 4. , dan , berlaku , dimana dan dengan .
Di bawah operasi di atas, maka kurva eliptik supersingular merupakan grup dengan unsur identitas ∞ 0,0 dan invers
3.2 Algoritme Aritmetik Kurva Eliptik Supersingular.
3.2.1 Pembangkitan Kurva Eliptik
K(a,b,c)
INPUT : Memasukkan nilai m OUTPUT : nilai kurva , , Mulai
1. Pilih acak , , .
2. Lakukan sampai i proses jika ∞ dengan cara
a. Mengacak b. Selesai
3. Kemudian lakukan juga sampai i proses jika diperoleh ∞ dengan cara
a. Mengacak b. Selesai
4. Tampilkan , ,
3.2.2 Menentukan Titik P(x,y) INPUT : Nilai kurva , , OUTPUT : Titik , Mulai
1. Hitung
2. Lakukan sampai i proses jika diperoleh ∞ dengan cara
a. Menentukan kembali b. Selesai.
3. Tampilkan nilai , yang memenuhi dengan ∞. 3.2.3 Adisi Titik , , INPUT : P , , Q , dengan , , OUTPUT : Titik , Mulai
1. Jika ∞ atau ∞, maka a.
b.
2. Jika dan , maka a. 0 b. 0 3. Jika . Maka a. b. c.
4. Jika tidak , maka : a.
b. c.
5. Tampilkan ,
3.2.4 Menentukan Invers (Negatif) Titik
INPUT : Titik P ,
dengan kurva eliptik , , OUPUT : P , c Mulai 1. Dengan c 2. Tampilakan , . 3.2.5 Menentukan (Kelipatan sebanyak )
INPUT : Titik P , dan merupakan integer positif acak dengan , ,
OUPUT : Mulai
1. Pilih suatu integer acak dan diubah menjadi basis 2
2. Misalkan
3. Jika hanya terdapat satu titik P, maka a. Nilai yaitu nilai P
b. Selesai
4. Untuk langkah kedua, lakukan sampai i kali apabila terdapat beberapa titik yang sama dengan cara
a. Nilai yaitu nilai . Jadi apabila terdapat dua titik yang sama dan masing-masing bisa dipasangkan, titik tersebut digandakan sampai i sehingga ditemukan satu titik.
b. Jika operasi ke i kali yang nilai biner 1 (terdapat satu titik yang tidak ada pasangan untuk digandakan), maka lakukan
1. Titik yang digandakan sebelumnya dijumlahkan dengan satu titik yang tidak mempunyai pasangan sehingga proses a
2. Selesai c. Selesai 5. Tampilkan titik
3.3 Aritmetika Kurva Eliptik Non-Supersingular.
Misalkan adalah field dengan karakteristik prima 2 Non-Supersingular dengan bentuk sederhana dari persamaan kurva eliptiknya adalah
:
dengan , dan ∆ 0.
Didefinisikan persamaan kurva eliptik Non-Supersingular
, |
1. Misalkan terdapat titik , sembarang. Karena syarat 0, maka titik 0,0 dijamin tidak terletak pada kurva dan dapat digunakan untuk merepresentasikan ∞ 0,0 . Akibatnya,
∞ 0, 0 , .
2. Dengan titik 0,0 yang direpresentasikan dengan titik di tak-hingga maka untuk
setiap , , terdapat
invers dari yang dinotasikan dengan
– , berlaku,
0,0 ∞. dimana ∞ ∞.
3. Untuk setiap , dimana
, , , dan
maka titik yang akan dicari adalah , .
Apabila ditelaah pada tiga titik pada E, maka berlaku tiga persamaan
(2.1)
(2.2) (2.3) Jika dilihat dari definisi secara geometri, maka P, Q dan ,
adalah segaris. Jika gradiennya dimisalkan dengan λ maka diperoleh persamaan
(2.4) Kemudian dari penjumlahan persamaan (2.1) dan (2.3) yang kemudian dimodulokan dengan dua diperoleh
/ ⁄ (2.5) Dengan cara yang sama dari persamaan (2.2), (2.3), dan (2.4) diperoleh
(2.6)
Dengan nilai gradien seperti pada (2.4), sehingga penjumlahan dari (2.5) dan (2.6) menghasilkan
dan dari persamaan (2.4) diperoleh
Dengan demikian, diperoleh , dimana
dan dengan
.
4. Untuk setiap , dan
, titik yang ingin ditentukan
adalah , .
Dilihat secara geometri, titik dan , segaris. Titik dan , merupakan garis singgung kurva pada titik . Maka berlaku persamaan
(2.7) (2.8) Dimisalkan gradiennya dengan
(2.9) Kemudian, dengan turunan implisit
dengan memisalkan , ,
dapat kita peroleh nilai yaitu
2 3 2
2 2 3 2
3 2
2 2
(3.0) karena dalam biner, maka (2.8) menjadi
, 1,1
(3.1) Seperti pada penurunan persamaan
(2.5), dari persamaan (2.7), (2.8), dan (2.9) diperoleh
dengan menerapkan persamaan (3.1) maka diperoleh
Selanjutnya, dengan membagi kedua ruas dengan dan diterapkan juga persamaan (2.9) diperoleh
Untuk mendapatkan nilai digunakan persamaan (2.9), maka diperoleh
dengan persamaan (3.1) persamaan di atas menjadi
1 Akhirnya diperoleh
, dimana dan
1 dengan . Dari uraian di atas, diperoleh aritmetik pada kurva eliptik Non-Supersingular sebagai berikut
a. Titik di luar kurva yang digunakan adalah ∞ 0,0 . b. , dan – , apabila dijumlahkan menghasilkan titik ∞. c. , sembarang. Misalkan , , , dan maka, , dimana dan adalah
dan dengan .
d. Untuk setiap , dan
, berlaku ,
dimana dan
dengan .
Di bawah operasi di atas, maka kurva eliptik Non-Supersingular merupakan grup dengan unsur identitas ∞ 0,0 dan invers dari adalah – ,
.
3.4 Algoritme Aritmetika Kurva Eliptik Non-Supersingular
3.4.1 Pembangkitan Kurva K(a,b)
INPUT : Memasukkan nilai m OUTPUT : Nilai kurva , Mulai
1. Pilih acak , .
2. Lakukan sampai i proses dengan syarat ∞ dengan cara
a. Mengacak b. Selesai 3. Tampilkan ,
3.4.2 Menentukan Titik P(x,y) INPUT : Nilai kurva , OUTPUT : Titik , Mulai
1. Hitung
2. Lakukan sampai i proses apabila ∞ dengan cara a. Hitung b. Selesai. 3. Tampilkan , dengan dan ∞. 3.4.3 Adisi Titik , , INPUT : P , , Q , dengan , OUTPUT : Titik , Mulai
1. Jika ∞ atau ∞, maka a.
b.
2. Jika dan , maka
a. 0 b. 0 3. Jika . Maka a. b. c.
4. Jika tidak , maka : a.
b.
c. 1
3.4.4 Menentukan Invers (Negatif) Titik
INPUT : Titik P , dengan , OUPUT : P , Mulai 1. Hitung 2. Tampilkan , 3.4.5 Menentukan (kelipatan sebanyak k kali)
INPUT : Titik P , dan merupakan integer positif acak dengan , ,
OUPUT : Mulai
1. Pilih suatu integer acak dan diubah menjadi basis 2
2. Misalkan
3. Jika hanya terdapat satu titik P, maka a. Nilai yaitu nilai P
b. Selesai
4. Untuk langkah kedua, lakukan sampai i kali apabila terdapat beberapa titik yang sama dengan cara
a. Nilai yaitu nilai . Jadi apabila terdapat dua titik yang sama dan masing-masing bisa dipasangkan, titik tersebut digandakan sampai i sehingga ditemukan satu titik.
b. Jika operasi ke i kali yang nilai biner 1 (terdapat satu titik yang tidak ada pasangan untuk digandakan), maka lakukan
1. Titik yang digandakan sebelumnya dijumlahkan dengan satu titik yang tidak mempunyai pasangan sehingga proses a
2. Selesai c. Selesai 5. Tampilkan titik
3.5 ElGamal Kurva Eliptik atas
Untuk penerapan kurva eliptik dalam algoritme ElGamal, maka terdapat beberapa perubahan yang terjadi dalam algoritme tersebut. Perubahannya dari grup multiplikatif yang digeneralisasi menjadi aritmetik kurva eliptik .
Berikut langkah-langkah penyandian dengan grup multiplikatif digeneralisasi. Diilustrasikan A mengirim pesan kepada B. 1. Algoritme 1 Pembangkitan Kunci
B membuat sebuah kunci publik dan kunci pribadi. Hal yang dilakukan adalah
a. Memilih suatu grup siklik berorder dengan generator .
b. Memilih suatu integer acak a dalam
1 1.
c. Menghitung .
d. Kunci publik B adalah , dan kunci pribadi B adalah a.
e. Kemudian kunci publik tersebut dikirimkan ke A.
2. Algoritme 2 Enkripsi
A menyandikan atau me-enkripsi sebuah pesan m ke B. Langkah-langkah yang harus dilakukan oleh A adalah
a. Memperoleh kunci publik , . b. Merepresentasikan pesan tersebut
sebagai suatu integer
c. Memilih integer acak k, dimana positif.
d. Menghitung dan . e. Mengirim siferteks , ke B. 3. Algoritme 3 Dekripsi
Untuk menemukan kembali m dari c, B harus melakukan hal-hal berikut
a. Menggunakan kunci pribadi a untuk menghitung . Dengan catatan
.
b. Menemukan kembali m dengan menghitung , sehingga diperoleh
. (Menezes et al. 1996) Sedangkan untuk aritmetika kurva eliptik digunakan aturan definisi grup kurva eliptik dengan menggunakan proses adisi. Perubahan yang terjadi adalah
a. menjadi
Sebanyak kali
b. menjadi .
Oleh karena itu, algoritme ElGamal dalam grup multiplikatif diatas diganti menjadi aritmetika kurva eliptik (diilustrasikan A mengirim pesan ke B).
1. Algoritme 1 Pembangkitan Kunci B membuat sebuah kunci publik dan kunci pribadi. Hal yang dilakukan adalah
a. Memilih suatu generator , yang merupakan titik pada kurva eliptik. .
b. Memilih suatu integer acak a dalam
1 1.
c. Menghitung .
d. Kunci publik B adalah , dan kunci pribadi B adalah a.
2. Algoritme 2 Enkripsi
A menyandikan atau me-enkripsi sebuah pesan m ke B. Langkah-langkah yang harus dilakukan oleh A adalah
a. Memperoleh kunci publik , . b. Merepresentasikan pesan tersebut
sebagai suatu titik . c. Memilih integer acak k, 1 1
d. Menghitung dan .
e. Mengirim siferteks , ke B. 3. Algoritme 3 Dekripsi
Untuk menemukan kembali m dari c, B harus melakukan hal-hal berikut
a. Menggunakan kunci pribadi a untuk menghitung .
b. Menemukan kembali pesan m dengan
menghitung , sehingga
diperoleh
.
Contoh ElGamal Kurva Eliptik (Lihat
Lampiran 4) :
Diilustrasikan Andi mengirim pesan kepada Beni. Hal pertama yang dilakukan Beni adalah membuat kunci pribadi dan kunci publik. Dimisalkan menggunakan aritmetik kurva eliptik Non-Supersingular. Hal ini dikarenakan langkah-langkah yang dilakukan sama.
1. Algoritme 1 Pembangkitan Kunci.
a. Beni memilih generator yang merupakan suatu titik pada kurva eliptik. , 2,5,7,9 , 0,1,3, 4,5,7,8 .
b. Beni memilih integer acak yang nantinya merupakan kunci pribadi
93.
c. Kemudian menghitung 2,7,8 , 0,1,6,8,9 .
d. Kunci Publik adalah , dengan nilai 2,5,7,9 , 0,1,3,4,5,7,8 ,
2,7,8 , 0,1,6,8,9 . 2. Algoritme 2 Enkripsi
Setelah menerima kunci publik dari Beni, Andi menyandi pesan tersebut dengan
menggunakan kunci tersebut. Kemudian yang dilakukan Andi adalah
a. Membangkitkan pesan. Di sini dimisalkan pesan yang dibangkitkan Andi adalah suatu titik
1,2,3,4,5,8 , 3,5,8,9 .
b. Kemudian Andi memilih sembarang integer 53.
c. Setelah itu Andi mencari nilai 0,1,2,3,6,7,9 , 2,5,6,9 . Kemudian, mencari nilai
3,4,5,8,9 , 0,2,3,7,9 .
d. Nilai yang diperoleh tersebut dikirim kepada Beni dalam bentuk siferteks
, 0,1,2,3,6,7,9 , 2,5,6,9 , 3,4,5,8,9 , 0,2,3,7,9 .
3. Algoritme 3 Dekripsi
Setelah Beni menerima siferteks, barulah dia menemukan kembali pesan yang telah disandikan tersebut dengan menggunakan kunci pribadi yang hanya dia sendiri yang mengetahuinya dengan cara
a. Mencari – dimana a merupakan kunci pribadi, sehingga diperoleh –
0,1,3,4,5,7,9 , 1,3,5,6 .
b. Menemukan kembali m dengan
menghitung sehingga
diperoleh pesan yang sama seperti pesan yang belum disandikan
1,2,3,4,5,8 , 3,5,8,9 .
Terlihat dengan jelas bahwa dalam melakukan penyandian tersebut, digunakan empat prinsip hukum grup dari kurva eliptik
. Titik yang diperoleh di atas merupakan suatu himpunan. Himpunan-himpunan tersebut merupakan pangkat dari definisi
. Misalkan contoh pesan yang digunakan pada contoh di atas. Pasangan titik
1,2,3,4,5,8 , 3,5,8,9 sama dengan pasangan polinomial 1. 1. 1.
1. 1. 1. , 1. 1. 1.
1. . Sedangkan untuk nilai 1 merupakan nilai untuk a. Ini dikarenakan berapapun nilai a dan dimodulokan dengan dua, hasilnya hanya mempunyai nilai 0 atau 1.