示例#1
0
def KeyPairGenerate():
    G = ecp2.generator()
    s = big.rand(curve.r)
    W = s * G
    SK = big.to_bytes(s)
    PK = W.toBytes(True)    #set to True to compress public key
    return (SK, PK)
示例#2
0
def KeyPairGenerate():
    G=ecp2.generator()
    s = big.rand(curve.r)
    W=s*G
    SK = big.to_bytes(s)
    PK = W.toBytes()
    return (SK,PK)
示例#3
0
def KeyPairGenerate():
    G = ecp2.generator()
    s = big.rand(curve.r)
    W = s * G
    SK = big.to_bytes(s)
    PK = W.toBytes()
    return (SK, PK)
示例#4
0
文件: mpin.py 项目: lovesh/core
def client_1(ID, X):
    P = H(ID)
    if X:
        w = big.from_bytes(X)
    else:
        w = big.rand(curve.r)
        X = big.to_bytes(w)
    P = w * P
    return (X, P.toBytes(False))
示例#5
0
def client_1(ID, X):
    P = H(ID)
    if X:
        w = big.from_bytes(X)
    else:
        w = big.rand(curve.r)
        X = big.to_bytes(w)
    P = w * P
    return (X, P.toBytes(False))
示例#6
0
def ECP_SpDSA(S, F):
    FS = curve.EFS
    G = generator()
    m = hashlib.new(curve.SHA)
    m.update(F)
    H = m.digest()
    HS = m.digest_size
    if HS >= FS:
        B = H[0:FS]
    else:
        B = bytearray(FS)
        for i in range(0, HS):
            B[i + FS - HS] = H[i]

    C = bytearray(FS)
    D = bytearray(FS)

    r = curve.r
    s = big.from_bytes(S)
    f = big.from_bytes(B)

    c = 0
    d = 0
    while d == 0:
        u = big.rand(curve.r)
        w = big.rand(curve.r)  # masking
        V = G.copy()
        V = u * V
        vx = V.getx()
        c = vx % r
        if c == 0:
            continue
        u = big.modmul(u, w, r)
        u = big.invmodp(u, r)
        d = big.modmul(s, c, r)
        d += f
        d = big.modmul(d, w, r)
        d = big.modmul(d, u, r)

    C = big.to_bytes(c)
    D = big.to_bytes(d)

    return C, D
示例#7
0
def ECP_SpDSA(S, F):
    FS = curve.EFS
    G = generator()
    m = hashlib.new(curve.SHA)
    m.update(F)
    H = m.digest()
    HS = m.digest_size
    if HS >= FS:
        B = H[0:FS]
    else:
        B = bytearray(FS)
        for i in range(0, HS):
            B[i + FS - HS] = H[i]

    C = bytearray(FS)
    D = bytearray(FS)

    r = curve.r
    s = big.from_bytes(S)
    f = big.from_bytes(B)

    c = 0
    d = 0
    while d == 0:
        u = big.rand(curve.r)
        w = big.rand(curve.r)  # masking
        V = G.copy()
        V = u * V
        vx = V.getx()
        c = vx % r
        if c == 0:
            continue
        u = big.modmul(u, w, r)
        u = big.invmodp(u, r)
        d = big.modmul(s, c, r)
        d += f
        d = big.modmul(d, w, r)
        d = big.modmul(d, u, r)

    C = big.to_bytes(c)
    D = big.to_bytes(d)

    return C, D
示例#8
0
def ECP_KeyPairGenerate(S):
    G = generator()

    if S is None:
        s = big.rand(curve.r)
    else:
        s = big.from_bytes(S) % curve.r

    Y = s * G

    SK = big.to_bytes(s)

    PK = Y.toBytes(False)
    return (SK, PK)
示例#9
0
def ECP_KeyPairGenerate(S):
    G = generator()

    if S is None:
        s = big.rand(curve.r)
    else:
        s = big.from_bytes(S) % curve.r

    Y = s * G

    SK = big.to_bytes(s)

    PK = Y.toBytes(False)
    return (SK, PK)
示例#10
0
文件: mpin.py 项目: lovesh/core
def random_generate():
    FS = curve.EFS
    s = big.rand(curve.r)
    Z = big.to_bytes(s)
    return Z
示例#11
0
文件: fp.py 项目: hhalpin/CoconutGo
 def rand(self):
     self.x = big.rand(Fp.p)
     return self
示例#12
0
文件: mpin.py 项目: hhalpin/CoconutGo
def client_1(ID):
    P = H(ID)
    w = big.rand(curve.r)
    X = big.to_bytes(w)
    P = w * P
    return (X, P.toBytes(False))
示例#13
0
def random_generate():
    FS = curve.EFS
    s = big.rand(curve.r)
    Z = big.to_bytes(s)
    return Z
示例#14
0
 def rand(self):
     self.x = big.rand(Fp.p)
     return self