2.5. Elliptic Curve Kurva Eliptik
Kurva eliptik adalah himpunan solusi dalam bentuk persamaan: =
+ + .
Persamaan jenis ini disebut persamaan Weierstrass, seorang ahli matematika yang telah mempelajarinya secara ekstensif selama abad ke-19. Gambar 2.3 adalah dua
contoh kurva eliptik, :
= −
+ dan : =
− + .
Gambar 2.3: Dua contoh kurva eliptik Sebuah fitur yang mengagumkan dari kurva eliptik adalah bahwa ada cara alami
untuk mengambil dua buah titik pada sebuah kurva eliptik dan menambahkan-nya untuk menghasilkan titik ketiga. Cara yang paling tepat untuk menggambarkan hukum
penambahan pada kurva eliptik ini adalah dengan menggunakan geometri.
Gambar 2.4: Hukum penambahan pada kurva eliptik. Misalkan dan adalah dua titik pada kurva eliptik , seperti yang diilustrasi-
kan pada Gambar 2.4. Jika ada garis melalui titik dan , maka garis ini akan memotong di tiga titik, yaitu , , dan satu titik lainnya . Selanjutnya, titik ini
dicerminkan terhadap sumbu dengan mengalikan koordinat dengan − untuk
mendapatkan titik yang baru,
′
. Titik
′
ini adalah hasil penambahan dari dan :
= −
+ :
= −
+
Universitas Sumatera Utara
yang tidak sama seperti proses penambahan pada umumnya. Hukum penjumlahan ini dilambangkan dengan
. Sehingga dapat ditulis =
′
Hoffstein, et al. 2008.
Contoh 2.2 . Misalkan kurva eliptik sebagai berikut:
= −
+ Titik
= , dan
= , berada di kurva . Persamaan garis yang menghubungkan kedua titik itu adalah
∶ = −
Untuk mencari titik-titik di mana kurva dan garis berpotongan, substitusikan persamaan
ke dalam persamaan , sehingga:
− = −
+ −
+ = −
+ =
− −
+ Selanjutnya, perlu ditemukan akar kubik dari persamaan polinomial ini. Secara
umum, menemukan akar kubik sangat sulit. Namun, dalam hal ini dua akar sudah diketahui, yaitu
= dan = , karena dan berada di perpotongan . Hal
ini menjadi mudah untuk menemukan akar yang lain, −
− +
= −
∙ −
∙ + sehingga titik ketiga dari perpotongan garis dan kurva memiliki koordinat sama
dengan − . Selanjutnya mencari koordinat dengan menyubstitusikan = − ke
dalam persamaan 2, sehingga diketahui titik = − ,
. Terahir, refleksikan titik ini dengan sumbu untuk mendapatkan
= − , −
Ada beberapa hal yang perlu diperhatikan pada penambahan kurva eliptik. Bayangkan apa yang terjadi pada garis yang menghubungkan titik dan , jika titik
digeser sepanjang kurva dan semakin dekat ke titik . Dalam limit mendekati , garis akan menjadi garis tangen pada kurva di titik . Jadi, dapat dikatakan titik
ditambahkan ke dirinya sendiri. Untuk menambahkan titik dengan , garis harus menjadi garis tangen terhadap kurva di titik , seperti pada Gambar 2.5. Maka garis
Universitas Sumatera Utara
memotong di titik dan satu titik lainnya, . Sama seperti sebelumnya, garis tetap memotong kurva di tiga titik, namun dihitung sebagai dua di antaranya.
Gambar 2.5: Penambahan titik dengan dirinya sendiri. Melanjutkan dengan kurva dan titik pada Contoh 2.2 untuk menghitung
, kemiringan � dapat dihitung dengan diferensiasi dari persamaan .
= − ,
= −
Dengan menyubstitusikan titik = ,
, diperoleh kemiringan � = . Jadi,
persamaan garis tangen di titik adalah: : =
− Sekarang substitusikan persamaan
ke dalam persamaan untuk kurva ,
sederhanakan, lalu faktorkan:
− =
− +
− +
+ =
− ∙ −
=
Koordinat pada titik , yaitu
= , muncul sebagai akar kuadrat dari polinomial kubik, sehingga mudah untuk mencari akar ketiga. Akhirnya, substitusikan
= ke persamaan
pada garis , sehingga didapatkan = −
, lalu ganti tanda pada untuk mendapatkan
= ,
menjadi garis tangen kurva di titik
Universitas Sumatera Utara
Muncul permasalahan pada hukum penambahan jika mencoba untuk menambahkan titik
, dengan refleksinya dengan sumbu , yaitu ′ , − . Garis yang melalui titik dan
′ adalah garis vertikal = , dan garis ini memotong kurva hanya di dua titik, yaitu dan
′. Tidak ada titik ketiga yang memotong kurva, sehingga tampak terjebak dalam permasalahan ini. Tapi, sebenarnya inilah jalan
keluarnya. Solusinya adalah dengan membuat titik tambahan, � yang ada di tak
terhingga. Lebih tepatnya titik � tidak ada dalam koordinat , tapi diandaikan bahwa
titik ini terletak di sepanjang garis vertikal. Selanjutnya ditetapkan ′ = �
Garis yang menghubungkan ke � adalah garis vertikal yang melalui titik
dan � yang diandaikan ada dan terletak di sepanjang garis vertikal dan garis vertikal ini
memotong kurva pada titik-titik , �, dan
′
, − . Untuk menambahkan dengan �, refleksikan ′ pada sumbu yang mendapat kembali titik . Dengan kata lain,
� = ′. Jadi, � bertindak seperti nol pada penjumlahan kurva.
Gambar 2.6: Garis vertikal yang melalui , dan ′ , − .
Maka dapat diambil kesimpulan baru, kurva eliptik adalah himpunan solusi untuk persamaan Weierstrass
: =
+ +
bersama dengan titik tambahan �, di mana konstanta dan harus memenuhi
+ ≠ .
Hukum penambahan pada kurva didefinisikan sebagai berikut: misalkan dan adalah dua titik pada kurva , dan adalah garis yang menghubungkan dan
, atau garis singgung terhadap di titik jika = . Kemudian perpotongan
dengan terdiri dari tiga titik , , dan , dan dengan pemahaman bahwa � diandaikan
Universitas Sumatera Utara
ada dan terletak di sepanjang garis vertikal. Jika , adalah hasil penjumlahan dari
dan yang didefinisikan sebagai pencerminan dari terhadap sumbu , yaitu
′
, − . Penjumlahan ini dinotasikan dengan , atau hanya dengan
+ Hoffstein, et al. 2008.
Selanjutnya, jika = , , maka refleksi terhadap sumbu dapat dinotasi-
kan dengan = , − , atau hanya dengan – , dan dapat didefinisikan
atau − menjadi
. Demikian pula, penambahan berulang dapat direpresentasikan sebagai perkalian suatu titik dengan integer Hoffstein, et al. 2008,
= + + + +
Hasil dari △
�
= +
disebut diskriminan . Kondisi △
�
≠ adalah setara dengan kondisi bahwa polinomial kubik
+ + tidak memiliki akar yang
diulang, yaitu jika +
+ difaktorkan secara lengkap menjadi: +
+ = −
− −
di mana ,
, adalah bilangan kompleks, kemudian
+ ≠ jika dan
hanya jika , , dan
semua berbeda. Kurva dengan
△
�
= memiliki titik tunggal. Hukum penambahan tidak bekerja dengan baik pada kurva tersebut. Itulah sebabnya mengapa diperlukan kondisi
△
�
≠ dalam sebuah kurva eliptik.
Teorema 2.5 . Misalkan menjadi kurva eliptik, maka hukum penambahan
memiliki sifat sebagai berikut: a
+ � = � + = untuk semua
∈ . Identitas
b + − = �
untuk semua ∈ .
Invers c
+ + = +
+ untuk semua
, , ∈ . Asosiatif
d + = +
untuk semua , ∈ .
Komutatif Dengan kata lain, hukum penambahan menjadikan titik-titik pada menjadi
grup abelian Hoffstein, et al. 2008.
Teorema 2.6 : Algoritma Penambahan pada Kurva Eliptik. Misalkan
: =
+ +
adalah sebuah kurva eliptik, dan misalkan dan
adalah titik-titik pada . Maka: a
Jika = �, maka + = .
b Sebaliknya, jika = �, maka +
= .
kali
Universitas Sumatera Utara
c Sebaliknya, nyatakan =
, dan
= ,
. d
Jika = dan = − , maka + = �.
e Sebaliknya, definisikan � dengan:
� = {
− − ,
≠ +
, =
lalu tentukan = � −
− dan = � −
− . Maka + =
, Untuk bagian e, diketahui bahwa jika
≠ , maka � adalah kemiringan garis yang melalui
dan , dan jika
= , maka � adalah kemiringan garis singgung di = . Dalam kedua kasus, garis diberikan oleh persamaan = � + dengan =
− � . Dengan menyubstitusikan persamaan garis ke dalam persamaan untuk , maka:
� + =
+ +
− � +
− � +
− =
− � +
− � +
− =
− −
− Koefisien
di sisi kanan adalah − −
− , yang sama dengan −� , koefisien
di sisi kiri. Dengan demikian dapat diperoleh: −� = − −
− = � −
− , dan kemudian untuk mendapatkan koordinat dari titik ketiga yang memotong kurva
adalah: = � +
= � + − �
= � −
+ Akhirnya untuk mendapatkan
+ , refleksikan terhadap sumbu yang berarti mengalikan koordinat dengan
− , − = � −
− Hoffstein, et al. 2008.
2.5.1. Kurva eliptik dalam finite field
Untuk menerapkan teori kurva eliptik ke dalam kriptografi, hanya perlu melihat kurva eliptik di mana titik-titiknya memiliki koordinat dalam finite field
� . Secara sederhana, persamaan kurva eliptik dalam finite field
� dapat didefinisikan dalam bentuk: :
= +
+
Universitas Sumatera Utara
di mana , ∈ � harus memenuhi kondisi
+ ≠ , kemudian titik-titik pada
dengan koordinatnya dalam � , dapat dinotasikan sebagai
� = { , ∶ , ϵ � memenuhi =
+ + } {�}.
Misalkan sebuah kurva eliptik ∶
= +
+ dalam finite field � . Titik-titik pada
� dapat ditemukan dengan menyubstitusikan semua kemungkinan nilai
= , , , … , dan melihat nilai mana yang sama dengan kuadrat dari +
+ . Misalkan, untuk
= , maka +
+ = +
+ = , dan
. Selanjutnya untuk = , maka
+ + =
dan merupakan kuadrat modulo
. Pada kenyataannya, nilai tersebut selalu memiliki dua akar kuadrat, yaitu:
dan . Hasilnya adalah dua
titik , dan , pada � . Dan berikut adalah daftar seluruh titik pada � ,
� = { �, , , , , , , ,
, , , , , , ,
, }.
Jadi, � terdiri dari 9 buah titik atau �
= . Selanjutnya, gunakan algoritma penambahan dua buah titik untuk menambah-
kan titik = , dan = , pada � . Langkah pertama adalah hitung
kemiringan garis, �. Karena ≠ , maka:
� = −
− =
− − = −
Selanjutnya hitung: =
− � = − = −
. Terakhir hitung
dan yang merupakan koordinat dari titik hasil penambahan dan ,
= � − −
= − − =
− = − � + = −
+ = −
Jadi, + = ,
+ , = ,
dalam � .
Demikian pula, jika ingin menambahkan = , ke dirinya sendiri. Karena
= , maka hitung � dengan: � =
+ =
+ =
kemudian hitung: = � −
− = − − = −
− = � −
− =
− ∙ − = −
. Jadi,
+ = , + ,
= , dalam � .
Universitas Sumatera Utara
Hal ini jelas bahwa himpunan titik-titik � adalah himpunan berhingga,
karena banyaknya kemungkinan untuk koordinat dan juga berhingga. Lebih
tepatnya ada kemungkinan untuk , dan untuk setiap dalam persamaan =
+ + menghasilkan paling banyak dua kemungkinan nilai untuk . Penambahan
dengan titik � menunjukkan bahwa ⋕ � memiliki paling banyak
+ titik. Namun, perkiraan ini jauh lebih besar dari ukuran sebenarnya. Hoffstein, et al. 2008
2.5.2. Masalah logaritma diskrit kurva eliptik
Kriptografi kurva eliptik pertama kali dikembangkan oleh Neal Koblitz dan Victor S. Miller pada tahun 1985. Untuk menciptakan sistem kriptografi berdasarkan masalah
logaritma diskrit dalam finite field �
∗
, publikasikan dua buah parameter dan ℎ, dan
parameter rahasianya adalah pangkat yang memenuhi kongruensi ℎ
�
. Selanjutnya parameter dan
ℎ dapat dipandang sebagai anggota dari group �
∗
, maka parameter rahasia dapat ditemukan sedemikian rupa sehingga
ℎ × × × … ×
.
Dengan kata lain, untuk mendapatkan ℎ perlu menentukan berapa kali harus
dikalikan. Dengan formulasi ini, jelas bahwa Alice dapat melakukan hal yang sama dengan titik-titik pada group
� dari sebuah kurva elips dalam finite field � . Alice memilih dan memublikasikan dua buah titik dan dalam
� , dan parameter rahasianya adalah sebuah bilangan bulat yang membuat
= + + + + = .
Kemudian Eve perlu mencari tahu berapa kali titik harus ditambahkan dengan dirinya sendiri untuk mendapatkan . Meskipun hukum penambahan pada kurva
eliptik secara konvensional ditulis dengan tanda tambah, penambahan pada sebenarnya operasi yang sangat rumit, sehingga masalah kurva eliptik ini dapat
dianalogikan dengan masalah logaritma diskrit yang mungkin cukup sulit untuk dipecahkan.
Definisi 2.11 . Misalkan adalah kurva eliptik dalam finite field
� , lalu dan menjadi titik-titik di
� . Masalah logaritma diskrit kurva eliptik adalah masalah
kali
kali penambahan
Universitas Sumatera Utara
menemukan bilangan bulat sedemikian rupa sehingga =
. Dengan meng- analogikan masalah logaritma diskrit untuk
�
∗
, bilangan bulat dapat dinotasikan sebagai
=
�
, dan dapat disebut logaritma diskrit eliptik terhadap
Hoffstein, et al. 2008. Definisi
�
tidak cukup tepat. Kesulitan pertama adalah bahwa mungkin ada titik-titik
, ∈ � , tetapi bukan kelipatan dari . Dalam kasus ini,
�
tidak terdefinisi. Namun untuk tujuan kriptografi,
�
ada dan nilainya adalah parameter rahasia milik Alice.
Kesulitan kedua adalah bahwa jika ada suatu nilai yang memenuhi =
, maka ada banyak nilai untuk . Untuk memahaminya, pertama perhatikan bahwa ada
bilangan bulat positif sehingga = �. Karena � adalah berhingga, maka titik
, ,
, … seluruhnya tidak bisa menjadi berbeda. Oleh karena itu, ada bilangan bulat , sehingga = dan = − . Bilangan terkecil di mana
disebut order dari . Jadi, jika adalah order dari dan jika
adalah bilangan bulat apapun di mana =
, maka solusi =
adalah bilangan bulat =
+ ∙ dengan ∈ ℤ. Ini berarti bahwa nilai
�
adalah anggota ℤ ℤ, yaitu
�
yang merupakan bilangan bulat modulo , di mana adalah order dari . Keuntungan dari
mendefinisikan nilai-nilai menjadi ℤ ℤ adalah bahwa logaritma diskrit eliptik akan
memenuhi
�
+ =
�
+
�
untuk semua ,
∈ � . 2.6.
Elliptic Curve ElGamal Public Key Cryptosystem
Sangat mudah untuk membuat analogi langsung sistem kriptografi kunci publik ElGamal terhadap kriptografi kurva eliptik. Secara singkat, Alice dan Bob setuju untuk
menggunakan bilangan prima tertentu , kurva eliptik , dan titik ∈
� . Alice memilih pengali rahasia
�
dan memublikasikan titik
�
=
�
sebagai kunci publik- nya. Pesan rahasia Bob adalah titik
∈ � , dia memilih sebuah bilangan bulat
untuk dijadikan kunci ephemeral dan menghitung =
dan =
+
�
. Bob mengirimkan dua titik
, ke Alice, yang akan digunakan untuk
menghitung −
�
= +
�
−
�
= +
�
−
�
= dan mendapatkan kembali pesan rahasia.
Universitas Sumatera Utara
Gambar 2.7: Sistem kriptografi kunci publik ElGamal kurva eliptik. Bangkitkan sebuah bilangan prima � yang besar.
Bangkitkan sebuah persamaan kurva eliptik dalam �
�
. Pilih sebuah titik ∈ �
�
.
Bob Alice
Pembuatan Parameter Publik
Pilih sebuah kunci rahasia
�
�
.
Hitung
�
= �
�
∈ �
�
.
Pilih plaintext
∈ �
�
.
Pilih sebuah kunci ephemeral
�.
Gunakan kunci publik
�
dari Alice untuk menghitung: � = � ∈ �
�
� = + �
�
∈ �
�
. Hitung
� − �
�
� ∈ �
�
untuk mendapatkan pesan .
Meminta kunci publik
Kirim kunci publik
�
Kirim cipher
�
dan
�
Universitas Sumatera Utara
BAB 3 ANALISIS DAN PERANCANGAN SISTEM