Simpler than RSA?
题目
|
|
simple.py:
enc.txt和pubkey.txt就不直接贴出来了。
思路
前期分析
先对题目进行一下分析。目前已知
密文c也已知。由simply.py知道:
可以推出:
其中的r
是未知的,我们要想办法消去它。
继续分析。n = p q p,其中q,p均为质数,拿到factordb上分解出:
引理
参考:The smallest solution of a^x = 1 mod m with (a,m) = 1,这边简要记录。
假设正整数n是满足下列同余式的最小正整数,并且a和m互质:
由欧拉定理,有如下同余式。其中φ(m)是m的欧拉函数,表示小于m的与m互质的正整数的个数。
现在假设$φ(m)=n\times{q}+r$,其中n的意义同上,q为商,r为余数。则欧拉定理可以改写为:
又因为$ a^{n\times{q}}\equiv 1\mod m $(这是n的性质),所以有:
因为r<n,而n是使同余式成立的最小正整数,所以必有r=0。所以接下去推导有:
结论
回到本题中,$n={p}^{2}\times{q}$,接下来我们考虑n的欧拉函数φ(n)。
因为:
所以:
因为:
所以:
所以对φ(n),有如下等式成立:
我们想要消去r,所以对h进行考虑,h和n互质,现在我们要找到φ(n)的一个分解因子k,使得根据引理,有$h^{k} \equiv 1 \mod n$。选择k=(p-1)*(q-1)恰好满足。
所以有:
也即:
在$ c\equiv(g^{m}\times h^{r}) \mod n $同时加上(p-1)*(q-1)次方。可以推得:
其中m是明文的每一个字符,是可显的,范围为从32~126。可以对其进行爆破。
exp
|
|
题目涉及文件:链接:http://pan.baidu.com/s/1qYTsJjY 密码:rnw7
nub_cryptosystem
|
|