An application will most likely need to instantiate a bilinear pairing before performing any other operations. The easiest way to do this is to initialize a pairing with previously-generated pairing parameters.
Parameters for various pairings are included with the PBC
library distribution in the param
subdirectory and should be suitable for cryptographic use. Some
programs in the gen subdirectory
may be used to generate parameters (see the chapter on bundled
programs). Also, on the PBC website an archive containing many
pairing parameters is available for download.
Particular instantiations of bilinear pairings are stored in
the data type pairing_t. Functions
that operate on them start with pairing_.
Pairings involve three groups of prime order. The PBC library labels them G1, G2, and GT, and labels the order r. The pairing is a bilinear map that takes two elements as input, one from G1 and one from G2, and outputs an element of GT.
The elements of G2 are at least as long as G1; G1 is
guaranteed to be the shorter of the two. Sometimes G1 and G2
are the same group (i.e. the pairing is symmetric) so their
elements can be mixed freely. In this case the pairing_is_symmetric function returns 1.
A later chapter discusses the different pairing types.