SpongeBob SquarePants

Minggu, 06 Mei 2018

Apa itu Algoritma Schnorr


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