ZenGo-X / curv

Rust language general purpose elliptic curve cryptography.
MIT License
264 stars 111 forks source link

Why use a point as generator instead of a number in feldman vss? #179

Open misaqsaadat opened 1 year ago

misaqsaadat commented 1 year ago

Hello. I recently start reading GG18 and work with your code. In feldman VSS definition it says that we need a "p" and "q" such that p | q - 1 and "p" and "q" are both primes. Then we need a generator of "q" modulus "p" and we should use it for verification.

But in your code, you use an specific point on curve as generator, and calculations are point-oriented. although it works fine, but my question is why you do that? Is it more secure? what is wrong with using numbers instead of curve points? these are numbers I am using in my feldman code (for sepc256k1):

q = 115792089237316195423570985008687907852837564279074904382605163141518161494337 (order of curve) p = 36590300198991917753848431262745378881496670312187669784903231552719739032210493 (order * 316 + 1, also a prime) generator : 20868538786266380811265443865024178980565046899815459596964866231618051563050200