PandA: Pairings and Arithmetic - Chuengsatiansup, Chitchanok; Naehrig, Michael; Ribarski, Pance; Schwabe, Peter (Pairing-Based Cryptography - Pairing 2013, 2014)
This paper introduces PandA, a software framework for Pairings and Arithmetic. It is designed to bring together advances in the efficient computation of cryptographic pairings and the development and implementation of pairing-based protocols. The intention behind the PandA framework is to give protocol designers and implementors easy access to a toolbox of all functions needed for implementing pairing-based cryptographic protocols, while making it possible to use state-of-the-art algorithms for pairing computation and group arithmetic. PandA o ffers an API in the C programming language and all arithmetic operations run in constant time to protect against timing attacks. The framework also makes it easy to consistently test and benchmark the lower level functions used in pairing-based protocols. As an example of how easy it is to implement pairing-based protocols with PandA, we use Boneh-Lynn-Shacham (BLS) signatures. Our PandA-based implementation of BLS needs only 434640 cycles for signature generation and 5832584 cycles for signature veri fication on one core of an Intel i5-3210M CPU. This includes full protection against timing attacks and compression of public keys and signatures.