The Pairing-Based Cryptography Library

News Archive 10

Released pbc-0.3.12

The previous release accidentally omitted a certain header file, due to a problem with Makefile.am.

Preprocessing for A1 pairings was implemented.

I was a little surprised because I have a script named makerelease that performs basic sanity checks when I release new versions. But then I realized my script only checks building from a git export, not from a tarball built by the autotools.

To avoid these sorts of problems in the future, I rewrote my script to create the tarball from the git tree, rather than rely on make dist. I’m not very good with the autotools, and for me it is much more important that the git repository contains every file.

Thu Oct 5 14:58:03 PDT 2006

Released pbc-0.3.11

Fixed a bug in the element_to_bytes() function for finite fields causing the output to depend on the host byte order.

Behind the scenes, code was cleaned. For example, I got rid of the curve_t data type which I found confusing, and did not fit with my philosophy of shoehorning every algebraic structure into the field_t data type.

Wed Oct 4 15:02:05 PDT 2006

Released pbc-0.3.10

The main improvement is Hovav Shacham’s preprocessed element exponentiation routines. See the manual for details.

Tue Oct 3 00:29:29 PDT 2006

Mailing List Created

Hovav Shacham and I created a mailing list to discuss the development of the PBC library.

From now, if you have any PBC-related questions please send them to pbc-devel at googlegroups dot com.

Mon Oct 2 16:57:54 PDT 2006

pbc-0.3.9 Released

I spent most of my time since the last release on a new test program confusingly named pbc. It allows interactive testing of the library. During the development I felt I may have been better off working on performance improvements instead of squandering time on a hand-written parser and interpreter, but now that it works, I’m pleased with the results. I have yet to document it. The following session shows how it can be used:

$ test/pbc
Pairing-Based Calculator
> a=rnd(G1)
> b=rnd(G2)
> c=pairing(a,b,A)
> c
[8123908995412397222629407861526403178767561618899656268507645810910469570940171
354920981464587606639849486738202862428348258236992210185732214124221043399 1895
53814264885989040711088624722149213923285853653986751240825585711288561007379288
8682665226785064897799276077038762941403815137279201878124496544381814]
> r=rand(Zr)
> c^r
[3657835355267111517147932281225731429445945576520458069770856379924948048294629
981309298603543337841873858888814047590238596753897868865331802933313743255 5062
40043246682709738369359568183546905789682883656306401246404807118581570274256476
4691903194225678537056515561674449527079685938158385917551215894965196]
> ar=a^r
> pairing(ar, b)
expect three arguments
runtime error (error code = 0)
> pairing(ar,b,A)
[3657835355267111517147932281225731429445945576520458069770856379924948048294629
981309298603543337841873858888814047590238596753897868865331802933313743255 5062
40043246682709738369359568183546905789682883656306401246404807118581570274256476
4691903194225678537056515561674449527079685938158385917551215894965196]
> br=b^r
> pairing(a,br,A)
[3657835355267111517147932281225731429445945576520458069770856379924948048294629
981309298603543337841873858888814047590238596753897868865331802933313743255 5062
40043246682709738369359568183546905789682883656306401246404807118581570274256476
4691903194225678537056515561674449527079685938158385917551215894965196]

There are actually no prompts. I edited them in afterwards to show exactly what I was typing.

I made a couple of minor fixes so that mingw can compile PBC. The resulting binaries for Windows are on the download page.

I generally get worse times with the Windows binaries, and they seem to vary more from run to run.

Fri Sep 29 12:33:33 PDT 2006

News: 0 1 2 3 4 5 6 7 8 9 10 11 12