感觉接近了。假设Alice拿的数是i,Bob拿的数是j。公开一个大素数p和其一个元根g。Alice生成一个随机数a不公开,Bob生成一个随机数b不公开。Alice计算
x = g^(ia) mod p
给Bob。Bob计算
y = x^b mod p = g^(iab) mod p 以及 z = g^(jb) mod p
给Alice。 Alice验算 z^a mod p 是否等于 y。等于则说明 i=j。
这里利用了幂运算可交换,即先做a次方再做b次方和先做b次方再做a次方是一回事。其他可交换的加密算法同样可行。
【 在 vale (浅谷 - mind over mountain) 的大作中提到: 】
: 我想岔了,题目是要求双方不知道a/b
--
FROM 182.149.109.*