Introduction
This package is a Python library for calculating the Tate bilinear pairing, especially on the super-singular elliptic curve $E:y^2=x^3-x+1$ in affine coordinates over the Galois Field $\text{GF}(3^m)$. The largest order of $G_1$ supported is 911 bits.
It also provides functions for:
- Point addition on the elliptic curve group
- Scalar multiplication ($k \cdot P$).
The Tate pairing implementation follows the paper by Beuchat et al. [3], while the elliptic curve group operations follow Kerins et al. [2].
This package is in Pure Python., working with Python 2.7 and 3.2+.
Performance: One Tate bilinear pairing takes approximately 3.26 seconds on an Intel Core2 L7500 (1.60 GHz) when $|G_1| = 151$ bits.
What is Tate bilinear pairing?
The Tate bilinear pairing is a map that takes two points on an elliptic curve and outputs a nonzero element in the extension field $\text{GF}(3^{6m})$.
The most efficient method for computing it in characteristic three is the $\eta_T$ pairing, introduced by Barreto et al.
For more information, see references [1], [2], [3], and [4].
Usage
1. Tate Bilinear Pairing
from tate_bilinear_pairing import eta
# Initialize for 151-bit order of G1
eta.init(151)
import random
a = random.randint(0, 1000)
b = random.randint(0, 1000)
from tate_bilinear_pairing import ecc
g = ecc.gen()
inf1, x1, y1 = ecc.scalar_mult(a, g)
inf2, x2, y2 = ecc.scalar_mult(b, g)
# Compute Tate pairing
t = eta.pairing(x1, y1, x2, y2)
2. Point Addition
# p1 = [inf1, x1, y1]
# p2 = [inf2, x2, y2]
p3 = ecc.add(p1, p2)
3. Scalar Multiplication
k = random.randint(0, 1000)
p3 = ecc.scalar_mult(k, p1)
References
[1] I. Duursma, H.S. Lee. Tate pairing implementation for hyper-elliptic curves $y^2=x^p-x+d$. Advances in Cryptology - Proc. ASIACRYPT ’03, pp. 111-123, 2003.
[2] T. Kerins, W.P. Marnane, E.M. Popovici, and P.S.L.M. Barreto. Efficient hardware for the Tate pairing calculation in characteristic three. Cryptographic Hardware and Embedded Systems - Proc. CHES ’05, pp. 412-426, 2005.
[3] J. Beuchat, N. Brisebarre, J. Detrey, E. Okamoto, M. Shirase, and T. Takagi. Algorithms and Arithmetic Operators for Computing the $\eta_T$ Pairing in Characteristic Three. IEEE Transactions on Computers, Special Section on Special-Purpose Hardware for Cryptography and Cryptanalysis, vol. 57 no. 11 pp. 1454-1468, 2008.
[4] P.S.L.M. Barreto, S.D. Galbraith, C. O hEigeartaigh, and M. Scott, Efficient Pairing Computation on Supersingular Abelian Varieties. Designs, Codes and Cryptography, vol. 42, no. 3, pp. 239-271, Mar. 2007.
Metadata
Release files for tate-bilinear-pairing 1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| tate_bilinear_pairing-1.0.tar.gz | 26.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tate_bilinear_pairing-1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.3 kB
Release files / tate_bilinear_pairing-1.0.tar.gz
| Download URL | tate_bilinear_pairing-1.0.tar.gz |
|---|---|
| Size | 26.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
745d8ff1e64f8b23ecfc79eab281a14e5bf0bc36c06d4cc493bf8b24f61f9b80
|
|
BLAKE2b-256 checksum How to use checksums |
144de5ae7940f157f61fc1d982e8a4e21e1806a61b335747723060da6ced0d63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|
Release files / tate_bilinear_pairing-1.0-py3-none-any.whl
| Download URL | tate_bilinear_pairing-1.0-py3-none-any.whl |
|---|---|
| Size | 25.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
56d2ddb0113c12f30d7e1d3d7d7c6f63c4dcd96b2df397bb5d4179634b932deb
|
|
BLAKE2b-256 checksum How to use checksums |
30c7dfe058a0e822c43ef953d1515cb9775c9a3683ff22874814fb5e393053b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|
Security for tate-bilinear-pairing 1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.