#基于线性方程进行模拟 import random import gmpy2 from Crypto.Util.number import *
a = 0 ; b = 0 ; c = 0 ; d = 0 ; p = 0
def init(): global a, b, c, d, p p = getPrime(512) while True: a = random.randint(1, 2**512) c = random.randint(1, 2**512) if gmpy2.gcd(a, p) == 1 and gmpy2.gcd(c, p) == 1: # 确保 a 和 c 与 p 互质 break b = random.randint(1, 2**512) d = random.randint(1, 2**512)
# 线性变换函数 def f1(x): return (a * x + b) % p
def f2(x): return (c * x + d) % p
# 线性变换逆函数 def inv_f1(y): return (y - b) * gmpy2.invert(a, p) % p
上一篇论文提供了一种密钥无暴露变色龙哈希函数的具体构造,该函数在具有双线性配对的
Gap
群设置下工作。虽然这无疑是密钥无暴露变色龙哈希的第一个完整构造,但它并没有解决是否存在基于其他加密假设或更高效方案的构造的问题,例如与
[12] 中的原始变色龙哈希函数具有可比性能的构造。
Ateniese, G., de Medeiros, B.: Identity-based chameleon hash and
applications. In Fi- nancial Cryptography 2004. LNCS 3110,
Springer-Verlag (2004) 164–180. Available online at
http://eprint.iacr.org/2003/167/.