def Verify(**kwargs):
msg, A, m, n, sd, q, eta, z, c, kappa = kwargs['msg'], kwargs['A'], kwargs['m'], kwargs['n'], kwargs['sd'], kwargs['q'], kwargs['eta'], kwargs['z'], kwargs['c'], kwargs['kappa']
B2 = eta*sd*np.sqrt(m)
reduced_prod = util.vector_to_Zq(np.matmul(A,z) + q*c, 2*q)
#print np.sqrt(z.dot(z)),B2
#print LA.norm(z,np.inf),float(q)/4
if np.sqrt(z.dot(z)) > B2 or LA.norm(z,np.inf) >= float(q)/4:
return False
if np.array_equal(c, hash_iterative(np.array_str(reduced_prod)+msg, n, kappa)):
return True
return False
评论列表
文章目录