首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解同余方程,如N= p*q c1 = (2*p + 3*q)**e1 mod N c2 = (5*p + 7*q)**e2 mod N

解同余方程,如N= p*q c1 = (2*p + 3*q)**e1 mod N c2 = (5*p + 7*q)**e2 mod N
EN

Cryptography用户
提问于 2023-05-04 13:38:44
回答 1查看 67关注 0票数 1

这里有一个CTF密码挑战“喜欢”(它的编写在https://ctftime.org/writeup/15438上公开):

N = p*q\\ c1 = (2*p + 3*q)^{e_{1}} mod N\\ c2 = (5*p + 7*q)^{e_{2}} mod N

在我将这些转化之后:

(c^{e_2}_1)\equiv (2p)^{e_1e_2}+(3q)^{e_1e_2}\pmod{N}\\ (c^{e_1}_2)\equiv (5p)^{e_1e_2}+(7q)^{e_1e_2}\pmod{N}

在乘积5^{e_1e_2},2^{e_1e_2}从两个方程中取消p之后,我可以解决这个问题,直到得到方程liks:

(c^{e_2}_1)*(5)^{e_1e_2}-(c^{e_1})*(2)^{e_1e_2}\equiv q^{e_1e_2}*(15^{e_1e_2}-14^{e_1e_2})\pmod{N}

这意味着把左边和右边的区别分开。

但我不知道为什么p或q可以从:

gcd((c^{e_2}_1)*(5)^{e_1e_2}-(c^{e_1})*(2)^{e_1e_2},N)

有人能解释一下这些知识或原因吗?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2023-05-04 14:06:14

这个问题已经表明

{c_1}^{e_2}\times5^{e_1e_2}-{c_2}^{e_1}\times2^{e_1e_2}\equiv q^{e_1e_2}(15^{e_1e_2}-14^{e_1e_2})\pmod{pq}

如果一个同余包含两个整数的乘积,那么它保持每个整数的模。因此,同余保持模q

同余的右边是q的倍数。因此

{c_1}^{e_2}\times5^{e_1e_2}-{c_2}^{e_1}\times2^{e_1e_2}

q的倍数。

N也是q的倍数。因此,q{c_1}^{e_2}\times5^{e_1e_2}-{c_2}^{e_1}\times2^{e_1e_2}N的除数。

N的唯一除数是1pqNq,它们只除以后两个除法。因此,\gcd\left({c_1}^{e_2}\times5^{e_1e_2}-{c_2}^{e_1}\times2^{e_1e_2},N\right)要么是q,要么是N。只有当p拆分{c_1}^{e_2}\times5^{e_1e_2}-{c_2}^{e_1}\times2^{e_1e_2}时,后者才能成立,这没有什么特别的理由,因此不太可能。

因此,\gcd\left({c_1}^{e_2}\times5^{e_1e_2}-{c_2}^{e_1}\times2^{e_1e_2},N\right)很可能是q。我们可以计算{c_1}^{e_2}\times5^{e_1e_2}-{c_2}^{e_1}\times2^{e_1e_2},或者更有效地计算{c_1}^{e_2}\times5^{e_1e_2}-{c_2}^{e_1}\times2^{e_1e_2}\bmod N,然后通过欧氏算法将它与N一起取为GCD,并分解N

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

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

复制
相关文章

相似问题

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