shuijian-xu / bitcoin

0 stars 0 forks source link

如何快速计算公钥? #256

Open shuijian-xu opened 4 years ago

shuijian-xu commented 4 years ago

def __rmul__(self, coefficient): coef = coefficient current = self result = self.__class__(None, None, self.a, self.b) while coef: if coef & 1: result += current current += current coef >>= 1 return result

shuijian-xu commented 4 years ago

`public static Point rmul(BigInteger coefficient, Point other) { S256Point obj = (S256Point) other; BigInteger coef = coefficient.mod(N);

S256Point current = obj;
S256Point result = new S256Point(null, null, obj.a, obj.b);
int len = coef.bitLength();
int count = len;
while (count > 0) {
    if (coef.testBit(len - count)) {
        result = (S256Point) result.add(current);
    }
    current = (S256Point) current.add(current);
    count--;
}
return result;

}`