椭圆曲线上点的基本算术运算。

PyECCArithmetic的Python项目详细描述


Pyecc算术

该软件包提供了椭圆曲线上的基本算术点运算。点的以下操作可用:

  • 添加
  • 减法
  • 乘法
  • 部门
  • 点顺序(公平点)
  • 点的反转
  • 是曲线上的点吗?

以下曲线已经实现:

  • secp224r1
  • secp256r1
  • 第384r1节
  • SECP521R1
  • 脑池160R1
  • 脑池p192r1
  • 脑池p224r1
  • 大脑池p256r1
  • 脑池p320r1
  • 脑池p384r1
  • 大脑池p512r1

也可以定义自己的曲线。

安装

pip install PyECCArithmetic

添加

fromPyECCArithmeticimport*p=Point(x_1,y_1,curve=Curve.secp256r1())q=Point(x_2,y_2,curve=Curve.secp256r1())z=p+q# z is a new point

减法

fromPyECCArithmeticimport*p=Point(x_1,y_1)# curve defaults to Curve.secp256r1()q=Point(x_2,y_2)z=p-q# z = p + (-q), z is a new point

乘法

乘法是用double-and-add算法实现的。

fromPyECCArithmeticimport*p=Point(x_1,y_1)# curve defaults to Curve.secp256r1()z=p*3# z is a new point

分区

fromPyECCArithmeticimport*p=Point(x_1,y_1)# curve defaults to Curve.secp256r1()q=Point(x_2,y_2)z=p/q# z is int, such that z * q == p

订单计算

fromPyECCArithmeticimport*p=Point(x_1,y_1)# curve defaults to Curve.secp256r1()order=p.calcOrder(timeout=5)# tries to calculate the order for maximal timeout seconds 

自定义曲线定义

fromPyECCArithmeticimport*# Only curves defined as Weierstrass equation are supported# y^2 = x^3 + a * x + b mod pc=Curve(a,b,p,name='optional')

是曲线上的点吗?

fromPyECCArithmeticimport*onCurve=Point(1,1).isOnCurve# true or false 

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Selenium Web驱动程序。负载策略不稳定   JAVAsql。SQLException:没有合适的驱动程序无法创建“oracle”类的JDBC驱动程序。jdbc。驾驶员用于连接URL的OracleDriver   java谷歌地图“优化路径点”如何解决旅行推销员的问题?   java这段代码可能会造成潜在的内存泄漏吗?   java更改JCombobox的高度   java如何清除jtable中的数据   JavaHadoop:错误安全性。UserGroupInformation:MapReduce程序中的PriviledgedActionException   java如何将sonarlint添加到gradle任务中?   性能为什么Java排序优于原语计数排序   java Spring属性PlaceHolderConfigure从数据库加载   java从泛型获取类不起作用   java Spring@Transactional传播属性   java试图拥有主菜单和子菜单类   XSL的java后处理步骤   java第一个字母和最后一个字母、第二个字母和倒数第二个字母之间的差值之和,依此类推,直到单词的中心   switch语句在Java中的下一个出发点   java 安卓如何在OnBackpress()时设置viewpager的特定项目位置?