A bilinear pairing library for petlib.
Project description
The bplib is a library implementing support for computations on groups supporting bilinear pairings, as used in modern cryptography.
It is based on the OpenPairing library by Diego Aranha (https://github.com/dfaranha/OpenPairing), which is itself based on, and compatible with, OpenSSL math functions (bn and ec). The bplib is compatible with petlib types including petlib.bn and the group G1 is a petlib.ec EC group. Along with petlib, they provide easy to use support for maths and ciphers used in modern Privacy Enhancing Technologies.”
A set of bilinear EC groups is defined as:
>>> G = bp.BpGroup()
Such a BpGroup describes 3 groups G1, G2 and GT such that pair(G1,G2)->GT. Generators for the groups G1 and G2 are denoted by:
>>> g1, g2 = G.gen1(), G.gen2()
The special pair operation computes to pairing into GT:
>>> gt = G.pair(g1, g2)
Operations are defined on all elements of G1, G2 or GT in a natural additive infix notation for G1 and G2, and a multiplicative notation for GT:
>>> gt6 = gt**6
As expected the pair operations is additive:
>>> G.pair(g1, 6*g2) == gt6 True >>> G.pair(6*g1, g2) == gt6 True >>> G.pair(2*g1, 3*g2) == gt6 True
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for bplib-0.0.6-py3.6-linux-x86_64.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89775bece3eb7beba9e42f2c4fc2975e988956def54a162f40f6acd4a415a862 |
|
MD5 | ee40995dcd7c7f922451f8cb75e6d379 |
|
BLAKE2b-256 | 63900a6bcb9cbdbf648063fc824651f80690b372e1ab7b05c034ef6b59ab65ea |
Hashes for bplib-0.0.6-py2.7-linux-x86_64.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb1a326377f6a7ecf0ac2a7b942a66cf728d8f04f1097f5c01a2635eb9b1ed8a |
|
MD5 | 794bab7f35e18b7ce88c728f54af2f48 |
|
BLAKE2b-256 | 0ede8aa8fece59a0486867f37b52019939831854303aea710b60e4c53c2827f6 |