小编gs.*_*ndt的帖子

椭圆曲线上点的标量乘法

我正在NIST指定的曲线“ p192”上执行椭圆曲线点算术运算。为了进行测试,我采用了NIST常规文档中所示曲线p192的示例点。对于点的加法和点的加倍,我得到了正确的答案,但是对于标量乘法,我的答案是不正确的。由于这个原因,我无法确定是否

$ k^{-1}(kP) = P $
Run Code Online (Sandbox Code Playgroud)

哪里

$ k^{-1}.k = 1 mod p $
Run Code Online (Sandbox Code Playgroud)

请帮助我了解我在哪里犯错。

package a;
import java.math.BigInteger;
import java.security.spec.ECPoint;
public class ScalarMultiply {
private static final BigInteger ONE = new BigInteger("1");;
static BigInteger TWO = new BigInteger("2");
    static BigInteger p = new BigInteger("6277101735386680763835789423207666416083908700390324961279");


public static ECPoint scalmult(ECPoint P, BigInteger k){
    ECPoint R =P,S = P;
    int length = k.bitLength();
    //System.out.println("length is" + length);
    byte[] binarray = new byte[length];
    for(int i=0;i<=length-1;i++){
        binarray[i] = k.mod(TWO).byteValue(); …
Run Code Online (Sandbox Code Playgroud)

java elliptic-curve

4
推荐指数
1
解决办法
4381
查看次数

标签 统计

elliptic-curve ×1

java ×1