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)
def KeyPairGenerate(): G=ecp2.generator() s = big.rand(curve.r) W=s*G SK = big.to_bytes(s) PK = W.toBytes() return (SK,PK)
def KeyPairGenerate(): G = ecp2.generator() s = big.rand(curve.r) W = s * G SK = big.to_bytes(s) PK = W.toBytes() return (SK, PK)
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))
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
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)
def random_generate(): FS = curve.EFS s = big.rand(curve.r) Z = big.to_bytes(s) return Z
def rand(self): self.x = big.rand(Fp.p) return self
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))