标签:inline https 加密 pip3 href 链接 ext rsa pre
Coppersmith算法用于求解模\(N\)多项式\(F(X)\)(\(X\)为单变量、二元变量甚至多元变量)所有小整数根(\(\big\|X\big\|<cN^{\beta^{2}/\delta}\),其中\(\delta\)为多项式\(F\)的次数,假设\(N\)具有不小于\(N^{\beta}\)的因子)
明文高位泄露:明文的二进制位表示为\(m_{b} \cdots m_{t+1}m_{t} \cdots m_{1}\),其高位\(m_{b} \cdots m_{t+1}\)泄露,记\(m‘=m_{b} \cdots m_{t+1}0 \cdots 0\),则\(m‘\)已知,但\(\Delta m=m_{t} \cdots m_{1}\)未知;由\(c \equiv m^{e}\ \textrm{mod}\ N\),则\(\Delta m\)是模多项式\(F(X)=(m‘+X)^{e}\ \textrm{mod}\ N\)的小整数根。接下来使用Coppersmith算法求解。
因子低位泄露:因子的二进制位表示为\(p_{b} \cdots p_{t+1}p_{t} \cdots p_{1}\),其高位\(p_{b} \cdots p_{t+1}\)泄露,记\(p‘=p_{b} \cdots p_{t+1}0 \cdots 0\),则\(p‘\)已知,但\(\Delta p=p_{t} \cdots p_{1}\)未知;由\(p \cdot q=N\),则\(\Delta p\)是模多项式\(F(X)=(p‘+X)\ \textrm{mod}\ N\)的小整数根。接下来使用Coppersmith算法求解。
明文低位泄露:明文的二进制位表示为\(m_{b} \cdots m_{t+1}m_{t} \cdots m_{1}\),其低位\(m_{t} \cdots m_{1}\)泄露,记\(m‘=m_{t} \cdots m_{1}\),则\(m‘\)已知,但\(\Delta m=m_{b} \cdots m_{t+1}\)未知;由\(c \equiv m^{e}\ \textrm{mod}\ N\),则\(\Delta m\)是模多项式\(F(X)=(m‘+2^{t}X)^{e}\ \textrm{mod}\ N\)的小整数根。接下来使用Coppersmith算法求解。
因子低位泄露:因子的二进制位表示为\(p_{b} \cdots p_{t+1}p_{t} \cdots p_{1}\),其低位\(p_{t} \cdots p_{1}\)泄露,记\(p‘=p_{t} \cdots p_{1}\),则\(p‘\)已知,但\(\Delta p=p_{b} \cdots p_{t+1}\)未知;由\(p \cdot q=N\),则\(\Delta p\)是模多项式\(F(X)=(p‘+2^{t}X)\ \textrm{mod}\ N\)的小整数根。接下来使用Coppersmith算法求解。
GitHub链接:RsaCtfTool
在Ubuntu18.04下的安装RsaCtfTool(进入RsaCtfTool目录下):
apt install -y libgmp-dev
apt install -y libmpfr-dev
apt install -y libmpc-dev
pip3 install gmpy2 -i https://pypi.douban.com/simple
pip3 install -r requirements.txt -i https://pypi.douban.com/simple
我认为最强大的分解因子的工具。
标签:inline https 加密 pip3 href 链接 ext rsa pre
原文地址:https://www.cnblogs.com/coming1890/p/13506057.html