The Pairing-Based Cryptography Library

Ancient History

0.2.16

Uses (generalized) Karatsuba polynomial multiplication for degree 3, 6 polynomials giving a slight speedup. Commented out Sakai-Kasahara Schnorr identity-based signature scheme due to patent issues.

Wed Apr 5 14:10:51 PDT 2006

0.2.15

Various optimizations, e.g. removed gross inefficiencies in polynomial multiplication that were somehow overlooked.

Fri Mar 31 21:02:10 PST 2006

0.2.14

More cleanup. Every source file is in a subdirectory now. Formatted manual in DocBook. Changed output of listmnt. Can see progress of Hilbert polynomial computation. Renamed testmnt to gencparam.

Fri Mar 31 15:38:48 PST 2006

0.2.13

Fixed problems with MNT curve generation.

Thu Mar 30 17:53:59 PST 2006

0.2.12

Started organizing source files into subdirectories. Added Cha-Cheon and Sakai-Kasahara-Schnorr identity-based signatures. Matt Steiner’s broadcast encryption code is now included.

Sat Mar 11 11:22:08 PST 2006

0.2.11

Added BGN curves i.e. type A curves of any given order.

Thu Feb 2 01:19:39 PST 2006

0.2.10

Changed the way compressed points work. Incompatible with last version.

Mon Jan 30 12:20:49 PST 2006

0.2.9

Added wrapper functions for reading/writing compressed/x-coordinate-only points.

Sun Jan 29 22:25:01 PST 2006

0.2.8

Type F pairings implemented: these use curves with embedding degree 12.

Fri May 13 18:23:13 PDT 2005

0.2.7

Sliding windows for exponentiations in finite fields (due to Hovav Shacham). Fixed problem which prevented previous version from compiling.

Sun May 1 02:23:26 PDT 2005

0.2.6

Code cleanup. Type A pairings use projective coordinates. Minor type C pairing optimization.

Thu Apr 28 16:22:30 PDT 2005

0.2.5

Plugged a memory leak.

Thu Apr 28 13:23:26 PDT 2005

0.2.4

When possible, generated curves have group orders whose length in bits match the desired length exactly. Before it could be a off by one. Generated new sample A and E pairing parameters. Type E pairing optimized.

Wed Apr 27 23:18:37 PDT 2005

0.2.3

A few more optimizations.

Tue Apr 26 20:24:38 PDT 2005

0.2.2

Minor optimizations, bugfixes and cleanup.

Tue Apr 26 01:18:20 PDT 2005

0.2.1

Cleaned up code, plugged a memory leak. Implemented one type of singular curve.

Mon Apr 25 14:00:47 PDT 2005

0.2.0

New makefile from Hovav. Now creates the library libpbc.a. More documentation. API changes, pairings can be initialized with parameters from different types of curves.

Sun Apr 24 13:59:18 PDT 2005

0.1.5

Fixed a bug that caused element_from_bytes for field extensions to fail in some situations. Applied patch due to Hovav Shacham: new Makefile, code cleanup, multiexponentiation, bugfix.

Fri Apr 22 11:07:29 PDT 2005

0.1.4

Fixed curve parameter output bugs.

Thu Apr 21 02:35:38 PDT 2005

0.1.3

Plugged a memory leak.

Thu Apr 21 02:04:50 PDT 2005

0.1.2

Tate exponentiation optimization for MNT k=6 curves. The pairing is now over twice as fast for this case.

Wed Apr 20 14:22:58 PDT 2005

0.1.1

Optimizations e.g. denominator elimination for even embedding degrees by using twist curves. Bug fixes, e.g. length_in_bytes() for some fields.

Wed Apr 20 02:42:53 PDT 2005

0.1.0

Plugged memory leaks, some pairing optimizations (Solinas-prime-specific Miller’s algorithm, improved Tate exponentiation for degree 2 extensions). Bumped up minor version number rather than patch level to reflect increased confidence in the library for real applications.

Tue Apr 19 14:31:04 PDT 2005

0.0.6

Code cleanup, implemented k=2 supersingular curves.

Sun Apr 17 02:37:40 PDT 2005

0.0.5

Minor bugfix, BBS group signatures demo.

Thu Apr 14 02:37:48 PDT 2005

0.0.4

Implemented serialization for points.

Fri Apr 8 12:17:58 PDT 2005

0.0.3

Added different ways of generating random numbers. e.g. can call random_set_file("/dev/urandom") to use /dev/urandom as the source of random bits.

Thu Feb 3 13:58:37 PST 2005

0.0.2

Wrote basic serialization/deserialization routines for some data types. Example Boneh-Lynn-Shacham and Boneh-Boyen signature libraries included, though eventually I intend to have a separate library for these.

Mon Jan 24 00:02:50 PST 2005

0.0.1

Introduced the ‘pairing_t’ data type, to make it easier to write programs using pairings. IBE, short signature demo programs.

Thu Dec 9 13:17:13 PST 2004

0.0.0

Routines for MNT curve generation, pairing computation.

Mon Dec 6 18:41:05 PST 2004