Rabin加密原理
昨天做一道ctf遇到了Rabin加密,其实之前我也想过这个问题,RSA加密最小的
因为 ,
都是质数,所以
是偶数
,无法取模逆。
之前遇到过一道题目 (p为质数),当时是先用
当做
解RSA, 然后爆破解决最后的平方模, 当时就在想有没有什么数学方法,爆破实在是大海捞针。
这次学习了Rabin加密,对于二次剩余有了更深入的理解,加之查找资料的时候发现很多博文都非常简略(我太菜了),所以这里详细的记录一下,方便自己回看之余,也希望也能帮到一些人。
1.二次剩余
定义:对于 ,
为模
的二次剩余,反之则称为非二次剩余
定理1:二次剩余满足关于p对称,即
推论1:模p的全部二次剩余为:
已知寻找模p的全部二次剩余系的最直接的方法是计算:
根据定理1,易知推论1
定理2:对于奇素数 ,二次剩余
的个数为
,二次非剩余的也为
证明:假设存在整数
,
,如果我们能证明对于任意
的二次剩余不相同,就相当于证明了二次剩余个数为
。
反证法:假设 (二次剩余相同),可得
,
为奇素数,又有
,
的因子只有
,
都不是
的因子
只能存在
(
恒成立)
证伪
定理3: 对于奇素数
是模
的二次剩余的充要条件为:
是模
的二次非剩余的充要条件为:
证明:根据欧拉定理: 对于素数 ,
上述式子说明 对于任意给定 ,
有且只有
两个解
假设 是模
的二次剩余(
),那么等式
等价于 ,根据欧拉定理可知 等式恒成立
的根的数量最多为指数的数量
根据定理2,二次剩余的数量为
充要得证
补充1: 刚刚的证明用到了这个条件
证明(正向):
两根为
那么现在用到的轮子都已经造好了,开始解密Rabin
2.Rabin解密原理
Rabin其实就是 情况下的RSA。对于明文
,密文
,有:
,
为两个大质数,跟RSA一样,破解Rabin的难度等同于质因数分解
2.1解密过程:
已知 求明文
是
的二次剩余
根据等式构造出 ,满足:
因为 是质数,所以一定能找到一个大数
,满足:
这里问题就变得开朗了,用中国余数定理就可以解得唯一解 :
对于只有两个模数的中国余数定理,先用bezout算出 的
值
现在就差上面式子中 的值带入即可
根据定理3:
可得:
由于常规Rabin加密规定 ,所以
是整数,可得:
的四个解依次带入即可得
2.2
模4不等于3
等看懂了再写 猪鼻巴巴

浙公网安备 33010602011771号