Rabin加密

Rabin加密

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

加密过程

Rabin加密的公私钥生成和RSA一样,只是e = 2

生成两个大素数,p,q,N = p*q
c = m 2   m o d   N c = m^2~mod~N c=m2 mod N

解密过程

由于Rabin加密使用的e=2,导致e和 ϕ ( N ) \phi(N) ϕ(N)不互素数。无法求得私钥d,使得 e d ≡ 1   m o d   N ed ≡ 1~mod~N ed1 mod N。而且由于不互素,解密得到的明文不止一个。

  1. 解密先得到mp和mq

m p = c ( p + 1 ) / 4   m o d   p m_p = c^{(p+1)/4}~mod~p mp=c(p+1)/4 mod p

m q = c ( q + 1 ) / 4   m o d   q m_q = c^{(q+1)/4}~mod~q mq=c(q+1)/4 mod q

  1. 求得yp和yq,满足如下条件(yp是p对于模q的模反,yq是q对于模p的模反)
    y p ∗ p + y q ∗ q = 1 y_p*p + y_q*q = 1 ypp+yqq=1

  2. 求得四个明文解
    m 1 = ( y p ∗ p ∗ m q + y q ∗ q ∗ m p )   m o d   N m_1 = (y_p*p*m_q + y_q*q*m_p )~mod~N m1=(yppmq+yqqmp) mod N

    m 2 = N − m 1 m_2 = N - m_1 m2=Nm1

    m 3 = ( y p ∗ p ∗ m q − y q ∗ q ∗ m p )   m o d   N m_3 = (y_p*p*m_q - y_q*q*m_p )~mod~N m3=(yppmqyqqmp) mod N

    m 4 = N − m 3 m_4 = N - m_3 m4=Nm3

Rabin解密推导

二次剩余定理

如果存在一个整数x,使得 x 2 ≡ n   m o d   p x^2 ≡ n~mod~p x2n mod p,那么则称n是模p的二次剩余。
有一种很巧妙的办法,可以得出一个数是否是模p的二次剩余。这个办法是勒让德符号 ( n p ) (\frac{n}{p}) (pn)
( n p )   =   { 1 ,   n 是 模 p 的 二 次 剩 余 − 1 ,

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值