enkripsi didefinisikan oleh mod dan menghasilkan siferteks c 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 Algoritme 1 Pembangkitan Kunci, diperoleh kunci publik,, (9574006709478958 762709029785327385064807, 5, 468663437 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 31 Aritmetika Kurva Eliptik Supersingular Misalkan adalah field dengan karakteristik prima 2 Supersingular dengan bentuk sederhana dari kurva eliptiknya adalah : dengan,, dan 0 0 Didefinisikan 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 (11) (12) (13) Jika dilihat dari definisi secara geometri, maka, dan, adalah segaris Jika gradiennya
6 dimisalkan dengan maka diperoleh (14) Kemudian apabila dari (11) dan (13) kita jumlahkan dan dimodulokan dengan dua, akan diperoleh Apabila pada ruas kiri kita tambahkan nilai 2, maka di atas menjadi 2 Kemudian kedua ruas disederhanakan dan dibagi dengan diperoleh (15) Setelah memperoleh (15) dengan dari (14), maka untuk (12), (13) akan diperoleh dengan cara yang sama, sehingga didapatkan (16) Untuk memperoleh dan, akan dijumlahkan (15), (16) 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 dan (17) Jika ditarik garis lurus P dan R (titik sebelum dicerminkan terhadap sumbu-x), terlihat merupakan sebuah garis singgung Dimisalkan gradiennya, maka (18) Kemudian, dengan turunan implisit dengan memisalkan,, dapat kita peroleh nilai yaitu 3 2,, (19) Sama halnya dengan penurunan kasus (pada 15), diperoleh Sehingga Untuk diperoleh dari (18) 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 dari adalah,
7 32 Algoritme Aritmetik Kurva Eliptik Supersingular 321 Pembangkitan Kurva Eliptik K(a,b,c) INPUT : Memasukkan nilai m OUTPUT : nilai kurva,, 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,, 322 Menentukan Titik P(x,y) INPUT : Nilai kurva,, OUTPUT : Titik, 1 Hitung 2 Lakukan sampai i proses jika diperoleh dengan cara a Menentukan kembali b Selesai 3 Tampilkan nilai, yang memenuhi dengan 323 Adisi Titik,, INPUT : P,,Q, dengan,, OUTPUT : Titik, 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, 324 Menentukan Invers (Negatif) Titik INPUT : Titik P, dengan kurva eliptik,, OUPUT : P, c 1 Dengan c 2 Tampilakan, 325 Menentukan (Kelipatan sebanyak ) INPUT : Titik P, dan merupakan integer positif acak dengan,, OUPUT : 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 33 Aritmetika Kurva Eliptik Non- Supersingular Misalkan adalah field dengan karakteristik prima 2 Non-Supersingular dengan bentuk sederhana dari kurva eliptiknya adalah : dengan, dan 0 Didefinisikan kurva eliptik Non-Supersingular,
8 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 (21) (22) (23) Jika dilihat dari definisi secara geometri, maka P, Q dan, adalah segaris Jika gradiennya dimisalkan dengan λ maka diperoleh (24) Kemudian dari penjumlahan (21) dan (23) yang kemudian dimodulokan dengan dua diperoleh / (25) Dengan cara yang sama dari (22), (23), dan (24) diperoleh (26) Dengan nilai gradien seperti pada (24), sehingga penjumlahan dari (25) dan (26) menghasilkan dan dari (24) 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 (27) (28) Dimisalkan gradiennya dengan (29) Kemudian, dengan turunan implisit dengan memisalkan,, dapat kita peroleh nilai yaitu 2 3 2 223 2 3 2 22 (30) karena dalam biner, maka (28) menjadi, 1, 1 (31) Seperti pada penurunan (25), dari (27), (28), dan (29) diperoleh
9 dengan menerapkan (31) maka diperoleh Selanjutnya, dengan membagi kedua ruas dengan dan diterapkan juga (29) diperoleh Untuk mendapatkan nilai digunakan (29), maka diperoleh dengan (31) 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, 34 Algoritme Aritmetika Kurva Eliptik Non-Supersingular 341 Pembangkitan Kurva K(a,b) INPUT : Memasukkan nilai m OUTPUT : Nilai kurva, 1 Pilih acak, 2 Lakukan sampai i proses dengan syarat dengan cara a Mengacak b Selesai 3 Tampilkan, 342 Menentukan Titik P(x,y) INPUT : Nilai kurva, OUTPUT : Titik, 1 Hitung 2 Lakukan sampai i proses apabila dengan cara a Hitung b Selesai 3 Tampilkan, dengan dan 343 Adisi Titik,, INPUT : P,, Q, dengan, OUTPUT : Titik, 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 5 Tampilkan,
10 344 Menentukan Invers (Negatif) Titik INPUT : Titik P, dengan, OUPUT : P, 1 Hitung 2 Tampilkan, 345 Menentukan (kelipatan sebanyak k kali) INPUT : Titik P, dan merupakan integer positif acak dengan,, OUPUT : 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 35 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 11 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 11 c Menghitung d Kunci publik B adalah, dan kunci pribadi B adalah a e Mengirim kunci publik ke A
11 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 langkahlangkah 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