ElGamal 解密零知识证明:如何验证解密正确性
P 可以使用零知识证明向 V 证明他 ElGamal 解密正确性,具体步骤如下:
-
P 选择一个随机数 r,并计算出解密后的明文 m。
-
P 计算出一个值 c,使得 c = g^r mod p,其中 g 和 p 为 ElGamal 加密算法中的公共参数。
-
P 将 c 发送给 V,并要求 V 验证其正确性。
-
V 随机生成一个挑战数 e,并将其发送给 P。
-
P 使用 e 计算出一个响应数 s,使得 s = r + e * m mod (p-1)。
-
P 将 s 发送给 V。
-
V 使用公式 g^s * y^e mod p 计算出一个值 d,并将其与 c 进行比较。如果 d 等于 c,则说明 P 解密的正确性被证明。
-
如果 V 想进一步验证 P 的身份,可以要求 P 提供其证书或者其他身份证明信息,以确保 P 是合法的解密者。
通过这种方式,P 可以向 V 证明他 ElGamal 解密正确性,而不需要将具体的解密过程暴露给 V。同时,由于该证明是零知识的,V 也无法获得任何有关 m 或 r 的信息。
原文地址: https://www.cveoy.top/t/topic/oOh2 著作权归作者所有。请勿转载和采集!