首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EL密码体制

EL密码体制
EN

Cryptography用户
提问于 2018-04-06 02:57:08
回答 1查看 589关注 0票数 0

我有一个问题,它给了我q=71(我的素数),a=7(生成器),Yb=3(公钥),m=30(消息),c1=59(第一个密码文本),他想让我找到c2 (第二个密码文本),我知道c2 = rM (r:一次键),这意味着我必须找到r=Y^k或r=c1^x,但我没有k或x。唯一的解决方案就是解决这个问题,除了这个问题之外,还有什么解决方案吗?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2018-04-06 05:24:40

好吧,现在这个问题对我来说更有意义了。

是的你是对的。不幸的是,如果不解决DLP,就无法解决问题。这仅仅是因为在这个问题上,他没有分享他的秘密x或y。如果他有分享y,你可以解决它。但是你的空间很小,所以不难解决。

代码语言:javascript
复制
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是:

代码语言:javascript
复制
C1 = g^y = 7^y = 59 (mod 71)
Private key = y = 3 (since this is 7^3 == 59 mod 71) (DONT KNOW THIS)

消息映射到:

代码语言:javascript
复制
m' = m mod 71
m' == 30 mod 71

因此,要找到c2,您需要:

代码语言:javascript
复制
c2 = m' * g^(xy)

但既然你既不知道x,也不知道y,你就不能解决它。(当然,样本空间很小,所以我可以找到它)。

第一次找到g^xy

代码语言:javascript
复制
g^(xy) = (g^x)^y = (3)^3 = 27

因此,你的解决办法应该是:

代码语言:javascript
复制
c2 == 30 * 27 (mod 71) 
c2 == 29 (mod 71)

希望这能帮上忙!

票数 5
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/58131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档