我有一个问题,它给了我q=71(我的素数),a=7(生成器),Yb=3(公钥),m=30(消息),c1=59(第一个密码文本),他想让我找到c2 (第二个密码文本),我知道c2 = rM (r:一次键),这意味着我必须找到r=Y^k或r=c1^x,但我没有k或x。唯一的解决方案就是解决这个问题,除了这个问题之外,还有什么解决方案吗?
发布于 2018-04-06 05:24:40
好吧,现在这个问题对我来说更有意义了。
是的你是对的。不幸的是,如果不解决DLP,就无法解决问题。这仅仅是因为在这个问题上,他没有分享他的秘密x或y。如果他有分享y,你可以解决它。但是你的空间很小,所以不难解决。
Public key = g^x = 7^x = 3 (mod 71)
Private key = x = 26 (since this is 7^26 == 3 mod 71) (DONT KNOW THIS)C1是:
C1 = g^y = 7^y = 59 (mod 71)
Private key = y = 3 (since this is 7^3 == 59 mod 71) (DONT KNOW THIS)消息映射到:
m' = m mod 71
m' == 30 mod 71因此,要找到c2,您需要:
c2 = m' * g^(xy)但既然你既不知道x,也不知道y,你就不能解决它。(当然,样本空间很小,所以我可以找到它)。
第一次找到g^xy
g^(xy) = (g^x)^y = (3)^3 = 27因此,你的解决办法应该是:
c2 == 30 * 27 (mod 71)
c2 == 29 (mod 71)希望这能帮上忙!
https://crypto.stackexchange.com/questions/58131
复制相似问题