{ "info": { "author": "Homer Hsing", "author_email": "homer.hsing@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "Introduction\n\nThis package is a Python library for calculating Tate bilinear pairing, \nespecially on super-singular elliptic curve $E:y^2=x^3-x+1$ in affine \ncoordinates defined over a Galois Field $GF(3^m)$. The largest order of \n$G_1$ is 911 bits.\n\nThis package is also for calculating the addition of two elements \nin the elliptic curve group, and the addition of $k$ identical element \nin the elliptic curve group.\n\nThe code of this package for computing the Tate bilinear pairing follows \nthe paper by Beuchat et al [3]. The code of this package for computing \nthe elliptic curve group operation follows the paper by Kerins et al [2].\n\nThis package is in PURE Python, working with Python 2.7 and 3.2.\n\nThis package computes one Tate bilinear pairing within 3.26 seconds \n@ Intel Core2 L7500 CPU (1.60GHz) if the order of $G_1$ is 151 bits.\n\n=================================================\n\nWhat is Tate bilinear pairing\n\nGenerally speaking, The Tate bilinear pairing algorithm is a transformation \nthat takes two points on an elliptic curve and outputs a nonzero element \nin the extension field $GF(3^{6m})$. The state-of-the-art way of computing \nthe Tate bilinear pairing is eta pairing, introduced by Barreto et al [4]. \nFor more information, please refer to [1,2,3,4].\n\n=================================================\n\nUsage 1: calculating Tate bilinear pairing\n\nSpecify the order of G1 is of 151 bits:\n\n>>> from tate_bilinear_pairing import eta\n>>> eta.init(151)\n\nGiven two random numbers like this:\n\n>>> import random\n>>> a = random.randint(0,1000)\n>>> b = random.randint(0,1000)\n\nComputing two elements $[inf1, x1, y1]$, and $[inf2, x2, y2]$ in \nthe elliptic curve group:\n\n>>> from tate_bilinear_pairing import ecc\n>>> g = ecc.gen()\n>>> inf1, x1, y1 = ecc.scalar_mult(a, g)\n>>> inf2, x2, y2 = ecc.scalar_mult(b, g)\n\nTate bilinear pairing is done via:\n\n>>> from tate_bilinear_pairing import eta\n>>> t = eta.pairing(x1, y1, x2, y2)\n\n=================================================\n\nUsage 2: calculating the addition of two elements in the elliptic curve group\n\nGiven two elements $p1=[inf1, x1, y1]$, and $p2=[inf2, x2, y2]$ in the \nelliptic curve group, the addition is done via:\n\n>>> p1 = [inf1, x1, y1]\n>>> p2 = [inf2, x2, y2]\n>>> p3 = ecc.add(p1, p2)\n\n=================================================\n\nUsage 3: calculating the addition of $k$ identical elements\n\nGiven a non-negative integer $k$ and an group element $p1=[inf1, x1, y1]$, \n$k \\cdot p1$ is computed via:\n\n>>> k = random.randint(0,1000)\n>>> p3 = ecc.scalar_mult(k, p1)\n\n=================================================\n\nReferences\n\n[1] I. Duursma, H.S. Lee. \n Tate pairing implementation for hyper-elliptic curves $y^2=x^p-x+d$.\n Advances in Cryptology - Proc. ASIACRYPT \u201903, pp. 111-123, 2003.\n[2] T. Kerins, W.P. Marnane, E.M. Popovici, and P.S.L.M. Barreto.\n Efficient hardware for the Tate pairing calculation in characteristic three.\n Cryptographic Hardware and Embedded Systems - Proc. CHES \u201905, pp. 412-426, 2005.\n[3] J. Beuchat, N. Brisebarre, J. Detrey, E. Okamoto, M. Shirase, and T. Takagi. \n Algorithms and Arithmetic Operators for Computing the $\\eta_T$ Pairing in Characteristic Three.\n IEEE Transactions on Computers, Special Section on Special-Purpose Hardware for Cryptography and Cryptanalysis, vol. 57 no. 11 pp. 1454-1468, 2008.\n[4] P.S.L.M. Barreto, S.D. Galbraith, C. O hEigeartaigh, and M. Scott,\n Efficient Pairing Computation on Supersingular Abelian Varieties.\n Designs, Codes and Cryptography, vol. 42, no. 3, pp. 239-271, Mar. 2007.", "description_content_type": null, "docs_url": "https://pythonhosted.org/tate_bilinear_pairing/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/tate_bilinear_pairing/", "keywords": "Tate bilinear pairing elliptic curve", "license": "LGPL", "maintainer": null, "maintainer_email": null, "name": "tate_bilinear_pairing", "package_url": "https://pypi.org/project/tate_bilinear_pairing/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/tate_bilinear_pairing/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pypi.python.org/pypi/tate_bilinear_pairing/" }, "release_url": "https://pypi.org/project/tate_bilinear_pairing/0.6/", "requires_dist": null, "requires_python": null, "summary": "a library for calculating Tate bilinear pairing especially on super-singularelliptic curve E:y^2=x^3-x+1 in affine coordinates defined over a Galois Field GF(3^m)", "version": "0.6" }, "last_serial": 800382, "releases": { "0.2.3": [ { "comment_text": "", "digests": { "md5": "8e9db10dde19a0b4d562c97a41ce4cbd", "sha256": "68f18f01e81681a45dcaa2420f8fbb37f007d185273ddbcadbbf169c3e51929a" }, "downloads": -1, "filename": "tate_bilinear_pairing-0.2.3.tar.gz", "has_sig": false, "md5_digest": "8e9db10dde19a0b4d562c97a41ce4cbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12208, "upload_time": "2012-03-18T07:54:55", "url": "https://files.pythonhosted.org/packages/e3/65/8c5e58c904d5bc1a8a03426d73ee4bbe45f29f48b45971765ca9cdc1a0e0/tate_bilinear_pairing-0.2.3.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "b63c612b906ee3ac7e178a1c5f6f38eb", "sha256": "725f493780fa6869c62d9a774040f38185b21c768474968530d2c4221801428f" }, "downloads": -1, "filename": "tate_bilinear_pairing-0.3.tar.gz", "has_sig": false, "md5_digest": "b63c612b906ee3ac7e178a1c5f6f38eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13855, "upload_time": "2012-03-29T16:17:40", "url": "https://files.pythonhosted.org/packages/00/62/8d3dc434fbe8368072dd389855bd531357a41ba7e7eeb9996799a11da3e8/tate_bilinear_pairing-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "8b23ff885f70d8b4fc277a988934dfd1", "sha256": "5cd0b0e21a3ce848c956c7268a176e404ce5380b930fc9884dee13710f76e9a8" }, "downloads": -1, "filename": "tate_bilinear_pairing-0.4.tar.gz", "has_sig": false, "md5_digest": "8b23ff885f70d8b4fc277a988934dfd1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21254, "upload_time": "2012-06-22T15:05:55", "url": "https://files.pythonhosted.org/packages/ac/f9/c493412d38d5c9fbaad65a80283e81eb40f98c16341818123c1fe8c37e58/tate_bilinear_pairing-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "ec0dacf469fce239430fdaba41e4be49", "sha256": "8df97abae0bbaf432ba12bd4432cff7594bf08ca9ee435cf5d8cd91a325a2652" }, "downloads": -1, "filename": "tate_bilinear_pairing-0.5.tar.gz", "has_sig": false, "md5_digest": "ec0dacf469fce239430fdaba41e4be49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22165, "upload_time": "2012-11-12T12:31:00", "url": "https://files.pythonhosted.org/packages/2d/f5/32c2e812c4f33457ece0fc09481625413f50f283baa7cf7b49bb0e19115d/tate_bilinear_pairing-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "614276909ee8282d473cdfe78596b759", "sha256": "4ad368190140c89b24a85e39fbad3ac9ee83d5e9f3227644d08375fcb9b3dc89" }, "downloads": -1, "filename": "tate_bilinear_pairing-0.6.tar.gz", "has_sig": false, "md5_digest": "614276909ee8282d473cdfe78596b759", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22482, "upload_time": "2012-11-24T12:06:14", "url": "https://files.pythonhosted.org/packages/f0/66/8a3586cd2a8915b1e1d8ca82ebccc6421effddef782b48066245636ff725/tate_bilinear_pairing-0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "614276909ee8282d473cdfe78596b759", "sha256": "4ad368190140c89b24a85e39fbad3ac9ee83d5e9f3227644d08375fcb9b3dc89" }, "downloads": -1, "filename": "tate_bilinear_pairing-0.6.tar.gz", "has_sig": false, "md5_digest": "614276909ee8282d473cdfe78596b759", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22482, "upload_time": "2012-11-24T12:06:14", "url": "https://files.pythonhosted.org/packages/f0/66/8a3586cd2a8915b1e1d8ca82ebccc6421effddef782b48066245636ff725/tate_bilinear_pairing-0.6.tar.gz" } ] }