RSA-Rabin算法
Rabin算法
1.简介
Rabin 密码系统是一种基于模合数平方根困难问题的非对称加密算法,其安全性依赖于 大整数分解的困难性。换句话说,如果能够快速分解 n,就能破解 Rabin 加密。
2.特点
e=2,n=p*q
3.数学原理
$$Ⅰ.若p \equiv -1 \pmod 4$$
首先
$$由于x^2 \equiv a \pmod p,且a^{(p-1)/2} \equiv 1 \pmod p$$
$$那么x \equiv +-a^{(p+1)/4} \pmod p$$
所以
$$记m_p \equiv c^{(p+1)/4} \pmod p,m_q \equiv c^{(q-1)/4} \pmod q$$
$$Ⅱ.若p \equiv 1 \pmod 4$$
参考AMM算法

Ⅲ.那么我们会得到四个方程组
$$(1)m \equiv m_p \pmod p,m \equiv m_q \pmod q$$
$$(2)m \equiv -m_p \pmod p,m \equiv m_q \pmod q$$
$$(3)m \equiv m_p \pmod p,m \equiv -m_q \pmod q$$
$$(4)m \equiv -m_p \pmod p,m \equiv -m_q \pmod q$$
用CRT得到四个解,根据题目判断哪个是正确明文
4.另一种方法

脚本
1 | from Crypto.Util.number import * |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Lamb!