Rabin加密

Rabin加密是一种基于模平方和模平方根的加密技术。加密过程为:c=m^2 mod n,其中m为明文,c为密文,n为公钥(p*q,p和q为素数)。解密通过计算mp和mq,再利用扩展欧几里得算法找到yp和yq,最后得出原文r和s。每个密文对应四个可能的原文,实际原文需结合验证码判断。此加密算法常在CTF挑战中出现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文档:http://www.cnblogs.com/iptables/p/5598049.html

                  http://www.jianshu.com/p/a81f5eaf445d

Rabin加密是一种基于模平方和模平方根的非对称加密算法。

a=x^2 mod m    称a为x模m时的平方,x为a模m时的平方根。


1、加密过程

设私钥p q为两个素数,公钥n=p*q,对于明文m和密文c,定义一下加密过程:

c=m^2 mod n


2、解密过程

根据以下公式计算出mp和mq:

mp = c^((1/4)(p+1)) mod p

mq = c^((1/4)(q+1)) mod q


根据以下公式推导出一个可用的yp和yq:

yp * p + yq * q = 1

根据以下公式计算最终结果:

r = (yp * p * mq + yq * q * mp) mod n

-r = n - r

s = (yp * p * mq - yq * q * mp) mod n

-s = n - s

可以证明每一个密文对应四个原文,而真正的原文一般需要根据验证码来对应。


CTF 中应用Rabin加密的题:https://www.jarvisoj.co

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值