Parameter-parameter domain ECDSA
Parameter-parameter domain untuk ECDSA terdiri dari sebuah pilihan yang sesuai dengan kurva eliptik E yang didefinisikan melebihi field hingga F_q dari karakteristik p, dan sebuah titik dasar (base point) G ∈E (Fq). Parameter-parameter domain dapat digunakan bersama-sama dalam sebuah grup atau khusus untuk seorang pemakai tunggal.
1.1 parameter domain
Field requirement:
Orde dari field hingga adalah selain q=p, sebuah prima ganjil, atau q=2^m, dengan basis faktor 2. Dalam kasus q=p, field hingga adalah F_q mod p. Sedangkan pada q=2^m, field hingga adalah F_(2^m ), dimana elemen-elemen direpresentasikan menjadi polinomial atau basis normal.
Elliptic Curve Requirement:
Untuk menghindari serangan terhadap permasalahan logaritma diskrit, maka jumlah dari titik-titik rasional F_q pada E dapat dibagi dengan n prima besar. Sesuai dengan ANSI X9.62, nilai n memenuhi n>2^160. Dalam paper ini, diasumsikan bahwa n>2^160 dan n>4√q sehingga co-factor ditentukan menjadi h=#E(F_q)≠q). Hal lain yang perlu diperhatikan adalah pemilihan kurva eliptik E dengan nilai acak dan memenuhi kondisi dimana #E(F_q) dapat dibagi dengan bilangan prima besar. Kurva tsb dapat dipilih secara acak dengan memilih koefisien yang menentukan persamaan eliptic curve sebagai output dari fungsi satu arah seperti SHA-1.
Parameter-parameter domain terdiri dari:
- Sebuah field berukuran q, dimana kondisi q=p , sebuah prima ganjil, atau q = 2m ;
- sebuah indikasi FR (field representation) dari representasi yang digunakan untuk elemen F_q;
- (opsional) sebuah string bit seedE dengan ukuran minimal 160 bit , jika kurva eliptik dihasilkan sesuai dengan metode yang dijelasksan pada sect.5.2;
- dua elemen field a dan b dalam Fq yang mendefinisikan persamaan dari kurva eliptik E pada F_q, ( dimana p>3, dan dalam hal ini p = 2);
- dua elemen field x_G dan y_G dalam Fq yang mendefinisikan sebuah titik hingga G=(x_G,y_G) dari orde prima pada E(F_q).
- Order n pada titik G, dengan n>2^160 dan n>4√q ; dan
- kofaktor h=#E(F_q)/n
Pembangkitan Parameter Domain
Berikut ini adalah suatu cara untuk menghasilkan parameter-parameter domain secara kriptografi:
- Pilih koefisien-koefisien a dan b dari F_q secara acak dengan menggunakan algoritma 1 atau algoritma 3. Misalkan E adalah kurva y^2=x^3+ax+b pada kondisi q=p, dan y^2+xy=x^3+ax^2+b pada kondisi q=2^m
- Hitung nilai N=#E(F_q)
- Verifikasi bahwa nilai N dapat dibagi dengan prima besar n (n>2^160 dan n>4√q). Jika tidak kembali ke tahap 1.
- Verifikasi bahwa n tidak habis membagi q^k-1 untuk setiap k,1≤k≤20. Jika tidak kembali ke tahap 1.
- Verifikasi bahwa n≠q. Jika tidak kembali ke tahap 1.
- Pilih sembarang titik G^'∈E(F_q) dan ubah G=(N/n) G'. Ulangi langkah hingga G≠Ο.
- Validasi Parameter Domain
- Proses validasi parameter domain dilakukan untuk menjamin bahwa parameter domain memenuhi karakteristik aritmatika. Selain itu, proses validasi ini dapat mendeteksi kesalahan kode atau transmisi dan melindungi serangan penambahan parameter domain yang tidak valid.
Metode validasi parameter domain:
Menjamin bahwa himpunan D=(q,FR,a,b,G,n,h) dari parameter domain Elliptic Curve adalah valid dengan langkah-langkah berikut:
- A melakukan secara eksplisit validasi parameter domain menggunakan algoritma di bawah ini
- A membangkitkan D menggunakan sistem yang terpercaya
- A menerima jaminan dari pihak ke-3 yang terpecaya T (Certification Authority) yang telah melakukan validasi parameter domain D dengan algoritma di bawah ini.
- A menerima jaminan dari pihak terpecaya T bahwa D dibangkitkan dengan sistem yang dapat dipercaya.
Algoritma Validasi Himpunan dari Parameter Domain Elliptic CurveInput: himpunan parameter domain EC, D=(q,FR,a,b,G,n,h)
Output: Penerimaan atau penolakan dari validitas D
- Verifikasi bahwa q adalah prima ganjil (q=p)atau basis faktor 2 (q=2^m)
- Verifikasi bahwa FR adalah representasi yang valid dari F_q
- Verifikasi bahwa G≠O
- Verifikasi bahwa a,b,x_G dan y_Gadalah representasi elemen pada F_q(integer pada interval [0,p-1] pada kondisi q=p, dan bit string dengan panjang m-bit pada kondisi q=2^m)
- (pilihan) jika kurva eliptik dihasilkan secara acak pada algoritma yang sesuai dengan algoritma 1 atau algoritma 3 pada bagian 5.7. Verifikasi bahwa seedE adalah sebuah bit string dengan panjang bit terakhir 160 dan gunakan algoritma 2 atau algoritma 4 untuk memverifikasi apakah a dan b diperoleh dari sedE.
- Buktikan bahwa a dan b membatasi kurva eliptik melewati Fq (4a3 + 27b2 ≡ 0 (mod P)jika q = p ; b ≠ 0 jiak q – 2m )
- Buktikan bahwa G lies pada kurva eliptik dibatasi oleh a dan b ( pada kasus q = p dan Pada kasus q = 2m )
- Buktikan bahwa n utama (prime)
- Buktikan bahwa n > 21260 dan apakah n >
- Buktikan bahwa nG = 0
- Hitung h’ = dan verifikasi bahwa h’ = h
- Buktikan bahwa n tidak dibagi qk – 1 untuk masing-masing k 1≤ k ≥ 20
- Buktikan bahwa n ≠ q
- Jika beberapa pembuktian salah, D tidak valid apabila sebaliknya D vaild
sumber: Menezes, Alfred. dkk. Elliptic Curve Digital Signature Algorithm. Canada: Univercity of Waloo.2001