PBC Library Manual 0.5.11 - Stanford Crypto Group
PBC Library Manual 0.5.11 - Stanford Crypto Group
PBC Library Manual 0.5.11 - Stanford Crypto Group
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Chapter 5. Param functions<br />
Generate type A1 pairing parameters and store them in p. The group order will be n. The order of the base field<br />
is a few bits longer. To be secure, generic discrete log algorithms must be infeasible in groups of order n, and<br />
finite field discrete log algorithms must be infeasible in finite fields of order roughly n 2 . Additionally, n should<br />
be hard to factorize.<br />
For example: n a product of two primes, each at least 512 bits.<br />
The file param/a1.param contains sample parameters for a type A1 pairing, but it is only for benchmarking:<br />
it is useless without the factorization of n, the order of the group.<br />
void pbc_param_init_d_gen(pbc_param_t p, pbc_cm_t cm)<br />
Type D curves are generated using the complex multiplication (CM) method. This function sets p to a type D<br />
pairing parameters from CM parameters cm. Other library calls search for appropriate CM parameters and the<br />
results can be passed to this function.<br />
To be secure, generic discrete log algorithms must be infeasible in groups of order r, and finite field discrete log<br />
algorithms must be infeasible in finite fields of order q 6 . For usual CM parameters, r is a few bits smaller than q.<br />
Using type D pairings allows elements of group G1 to be quite short, typically 170-bits. Because of a certain<br />
trick, elements of group G2 need only be 3 times longer, that is, about 510 bits rather than 6 times long. They<br />
are not quite as short as type F pairings, but much faster.<br />
I sometimes refer to a type D curve as a triplet of numbers: the discriminant, the number of bits in the prime q,<br />
and the number of bits in the prime r. The gen/listmnt program prints these numbers.<br />
Among the bundled type D curve parameters are the curves 9563-201-181, 62003-159-158 and<br />
496659-224-224 which have shortened names param/d201.param, param/d159.param and<br />
param/d225.param respectively.<br />
See gen/listmnt.c and gen/gendparam.c for how to generate type D pairing parameters.<br />
void pbc_param_init_e_gen(pbc_param_t p, int rbits, int qbits)<br />
Generate type E pairing parameters and store them in p, where the group order r is rbits long, and the order of<br />
the base field q is qbits long. To be secure, generic discrete log algorithms must be infeasible in groups of order<br />
r, and finite field discrete log algorithms must be infeasible in finite fields of order q, e.g. rbits = 160, qbits =<br />
1024.<br />
This pairing is just a curiosity: it can be implemented entirely in a field of prime order, that is, only arithmetic<br />
modulo a prime is needed and there is never a need to extend a field.<br />
26