Algoritma
Schnorr
Algoritma
Schnorr adalah salah satu dari lagoritma pada asimetris. Algoritma schnorr
adalah algoritma tanda tangan yang memanfaatkan kesulitan dari beberapa
permasalahan logaritma diskrit untuk dipecahkan sebagai dasar dari keamanannya.
Algoritma Schnorr terdiri dari tiga bagian yang terdiri dari :
1. Pembangkitan
Kunci
Langkah- langkah yang
terdapat pada pembangkitan kunci adalah :
a. Pilih
terlebih dahulu bilangan prima p dengan syarat p ≥ 2512
b. Pilih
bilangan prima q dengan syarat q | p-1 dan q ≥ 2160
c. Pilih
g dari Zp * dan g ≠ 1. Zp * adalah sekumpulan bilangan yang kongruen dan
relatif prima dengan p (atau multiplicative group of integers modulo p) untuk
beberapa bilangan prima p
d. Pilih
x dari Zq
e. Hitung
y ≡ gx (mod p)
f. Kunci
publiknya adalah y dan kunci privatnya adalah x
2. Penandatanganan
Langkah- langkah untu
penandatanganan suatu pesan atau dokumen adalah :
a. Tentukan
fungsi hash yang akan digunakan (misalnya h)
b. Pilih
k secara acak dari Zq
c. Hitung
r = gk (mod p)
d. Hitung
e = h(r, M) dengan M adalah pesan
e. Hitung
s = k – xe (mod q)
f. Tanda
tangannya adalah S = (e, s)
3. Verifikasi
Untuk melakukan verifikasi maka
perlu dihitung r’ = gS y e (mod p). Tanda tangan akan
valid jika e = h(r’, M
Algoritma
Schnorr dapat direpresentasikan dengan cara lain, namun cara lain ini
memerlukan semua pengguna skema algoritma untuk menyetujui suatu group G dengan
pembangkit g dari prime order q yang
memiliki permasalah logaritma diskrit yang sulit dipecahkan. Biasanya yang
digunakan adalah Schnorr group. Schnorr group adalah kumpulan bilangan
prima berorde besar yang merupakan subgroup dari Zp *. Selain itu fungsi hash
yang digunakan juga sudah harus disetujui bersama. Selanjutnya langkah yang
dilakukan sama dengan langkah sebelumnya namun langkah ini memiliki beberapa modifikasi
seperti :
1. Pembangkitan
Kunci
Langkah – langkah yang
diperlukan adalah:
a. Pilih
bilangan x sebagai kunci privat dengan syarat 0 < x < q
b. Kunci
publiknya sendiri adalah y dimana y = gx
2. Penandatanganan
Dalam melakukan
penandatanganan pada pesan M, langkah – langkah yang harus dilakukan yaitu:
a. Pilih
bilangan acak k yang memenuhi persyaratan 0 < k < q
b. Hitung
r = gk
c. Kemudian
hitung e = H(M||r)
d. Terakhir
hitung s = (k – xe) mod q
e. Tanda
tangan digital yang dihasilkan ialah pasangan (e,s)
Dengan catatan nilai e
seharusnya terletak di antara 0 dan q (0 ≤ e < q)
3. Verifikasi
Untuk melakukan
verifikasi terhadap pesan M dan pasangan tanda tangan digital (e,s), langkah –
langkah yang harus dilakukan adalah:
a. Hitung
rv = gsye
b. Kemudian
hitung ev = H(M||rv)
c. Jika
ev = e, maka tanda tangan digital (e,s) valid untuk pesan M. Dengan
kata lain, jika diasumsikan (e,s) benar – benar tanda tangan digital untuk
pesan M, maka pesan M valid dan masih otentik, sama dengan pesan asli yang
dibuat oleh pembuatnya.
Tidak ada komentar:
Posting Komentar