14.07.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!