Back to IF4020 Kriptografi
Kurva Eliptik pada Medan Berhingga
Questions/Cues
- Mengapa kurva eliptik pada bilangan riil tidak cocok untuk kriptografi?
- Bagaimana bentuk kurva eliptik di dan bagaimana mencari semua titiknya?
- Bagaimana rumus penjumlahan, pengurangan, dan penggandaan titik di ?
- Bagaimana pembagian dihitung di ?
- Bagaimana grup titik eliptik terlihat dari tabel ?
Reference Points
- IF4020 Kriptografi — Elliptic Curve Cryptography Bagian 2 (Slides 24-36)
Dari Bilangan Riil ke
Operasi kurva eliptik pada bilangan riil tidak akurat karena melibatkan pembulatan, sedangkan kriptografi bekerja di ranah integer. Maka kurva eliptik didefinisikan di atas medan berhingga atau (Aljabar Abstrak - Grup, Medan, dan Galois Field). Kuliah ini hanya membahas :
dengan prima dan . Grafiknya bukan lagi kurva mulus, melainkan sebaran titik diskret.
Mencari Semua Titik:
Untuk tiap hitung , lalu cari yang kuadratnya sama (akar kuadrat modulo):
0 6 tidak ada 1 8 tidak ada 2 5 4, 7 3 3 5, 6 Dilanjutkan sampai diperoleh 12 titik: . Ditambah , grup eliptik memiliki elemen. Kurva memiliki 26 titik (afin) pada contoh slide, dari sampai .
Operasi Titik di
Rumus sama dengan versi riil, hanya semuanya modulo , dan pembagian berarti perkalian dengan invers modulo .
Operasi Gradien Hasil () , (mod ) () , (mod ) dengan Bila maka .
Contoh pada
, :
(a) : . . . Jadi .
(b) : (karena ). . . Jadi .
Hasil keduanya terverifikasi: dan ada di daftar 12 titik.
Tabel dan ECDLP
Dengan titik basis pada kurva yang sama:
1 2 3 4 5 6 7 8 9 10 11 12 13 (2,7) (5,2) (8,3) (10,2) (3,6) (7,9) (7,2) (3,5) (10,9) (8,8) (5,9) (2,4) Karena , titik basis mempunyai orde 13 dan membangkitkan seluruh grup (siklik). Mudah menghitung bila diketahui, tetapi diberi dan , mencari sangat sukar ketika orde grup besar (ECDLP). Pada contoh kecil ini cukup menelusuri tabel, pada kurva sungguhan orde grup .
flowchart LR R["Kurva riil<br/>y² = x³ + ax + b<br/>(pembulatan, tak akurat)"] -->|"pindah ke<br/>medan berhingga"| F["GF(p)<br/>y² ≡ x³ + ax + b (mod p)"] F --> T["himpunan titik diskret<br/>+ titik O"] T --> G["grup abelian<br/>berorde n"]
Agar dapat dipakai di kriptografi, kurva eliptik didefinisikan di medan berhingga (di sini ): . Titik-titiknya dicari dengan mencoba tiap dan menyelesaikan (akar kuadrat modulo); contoh memiliki 12 titik + = 13 elemen. Rumus penjumlahan dan penggandaan identik dengan versi riil tetapi semua modulo dan pembagian = perkalian dengan invers modulo (mis. dan ). Pengurangan dengan . Menghitung mudah sedangkan membalikkannya (ECDLP) sulit.
Additional Information
Berapa Banyak Titik? Teorema Hasse
Jumlah titik pada kurva atas memenuhi batas Hasse: . Pada contoh : antara dan ; memenuhi. Kurva praktis dihitung orde grupnya dengan algoritma Schoof/SEA, dan dipilih agar (atau kofaktor kecilnya) prima besar.
Mencari Akar Kuadrat Modulo
Memeriksa apakah merupakan kuadrat residu memakai kriteria Euler: . Untuk , akarnya adalah ; untuk lainnya dipakai Tonelli-Shanks.
dan Kurva Biner
Di bentuk Weierstrass berubah menjadi karena karakteristik 2. Slide tidak membahasnya, tetapi standar NIST (K-163, B-233, dsb.) memakainya karena aritmetikanya efisien di perangkat keras.
Proyek Eksplorasi Mandiri
- Tulis program yang menghitung semua titik dan orde tiap titik; verifikasi batas Hasse untuk beberapa .
- Cari secara brute force dengan pada kurva ; ukur waktu lalu perkirakan untuk .
Bacaan Lanjutan
- Washington, Elliptic Curves: Number Theory and Cryptography, Bab 2.
- Silverman, The Arithmetic of Elliptic Curves.
- Demo:
andrea.corbellini.name/ecc/interactive/modk-add.html(penjumlahan di ).