当前位置: 首页>>代码示例>>C++>>正文


C++ BigInteger::invm方法代码示例

本文整理汇总了C++中BigInteger::invm方法的典型用法代码示例。如果您正苦于以下问题:C++ BigInteger::invm方法的具体用法?C++ BigInteger::invm怎么用?C++ BigInteger::invm使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在BigInteger的用法示例。


在下文中一共展示了BigInteger::invm方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: doublePoint

ECPoint ECCurve::doublePoint(ECPoint &p)
{
	if (p.isPointAtInfinity()) {
		return p;
	}

	BigInteger px = p.getX();
	BigInteger py = p.getY();
	BigInteger rx;
	BigInteger ry;

	// 1 / 2py
	BigInteger yInv = (py + py) % _p;
	yInv = yInv.invm(_p);

	// 3 * px^2 + a
	BigInteger s = ((((px * px) * 3) + _a) * yInv) % _p;

	// rx = s^2 - 2px
	rx = (s * s - px - px) % _p;

	// ry = -py + s(px - rx)
	ry = (s * (px - rx) - py) % _p;

	return ECPoint(rx, ry);
}
开发者ID:im-infamou5,项目名称:SPAKEclient,代码行数:26,代码来源:ecc.cpp

示例2: toAffine

ECPoint ECCurve::toAffine(ECPointJacobian &p)
{
	BigInteger z = p.getZ();

	BigInteger zInv = z.invm(_p);
	BigInteger z2Inv = (zInv * zInv) % _p;
	BigInteger z3Inv = (z2Inv * zInv) % _p;

	BigInteger x = p.getX();
	BigInteger y = p.getY();

	return ECPoint((x * z2Inv) % _p, (y * z3Inv) % _p);
}
开发者ID:im-infamou5,项目名称:SPAKEclient,代码行数:13,代码来源:ecc.cpp

示例3: addPoint

ECPoint ECCurve::addPoint(ECPoint &p, ECPoint &q)
{
	BigInteger rx;
	BigInteger ry;
	BigInteger px = p.getX();
	BigInteger py = p.getY();
	BigInteger qx = q.getX();
	BigInteger qy = q.getY();

	// Px == Qx && Py == Qy
	if (p == q) {
		return doublePoint(p);
	}

	// Px == Qx && Py != Qy
	if (px == qx) {
		return ECPoint();
	}

	if (p.isPointAtInfinity()) {
		return q;
	}

	if (q.isPointAtInfinity()) {
		return p;
	}

	// s = (py - qy)/(px - qx)
	BigInteger rise = (py - qy) % _p;
	BigInteger run = (px - qx) % _p;
	BigInteger s = (run.invm(_p) * rise) % _p;

	// rx = s^2 - px - qx
	rx = (s*s - px - qx) % _p;

	// ry = -py + s(px - rx)
	ry = (s * (px - rx) - py) % _p;

	return ECPoint(rx, ry);
}
开发者ID:im-infamou5,项目名称:SPAKEclient,代码行数:40,代码来源:ecc.cpp


注:本文中的BigInteger::invm方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。