Rabin密码体制是对RSA的一种修正,他有一下两个特点:
1、它不是以一一对映的单项陷门函数为基础的,对同一密文可能有两个以上对应的明文。
2、破译该体制等价于对大整数的分解
RSA中选取的公开钥e满足1 < e < Φ(n),且gcd(e,Φ(n))= 1。Rabin密码体制则取 e = 2。
一、密钥的产生
随机选择两个大素数p,q,满足p≡q≡3 mod 4,即这两个素数形式为4k + 3;计算n = p X q.
n为公钥,p,q为私钥。
二、加密
c≡m^2 mod n
其中m是明文分组,c是对应的密文分组
三、解密
解密就是求c摸n的平方根,即解x^2 ≡ c mod n,该方程等价于方程组:
x^2 ≡ c mod p
x^2 ≡ c mod q
由于p≡q≡3 mod 4,所以可以解出每个方程有两个解:
x ≡ y mod p , x ≡ -y mod p
x ≡ z mod q , x ≡ -z mod q
两两组合可得4个同余方程组:
1、
x ≡ y mod p
x ≡ z mod q
2、
x ≡ y mod p
x ≡ -z mod q
3、
x ≡ -y mod p
x ≡ z mod q
4、
x ≡ -y mod p
x ≡ -z mod q
由中国剩余定理可解出每一个方程组的解,共四个,即每一密文对应的明文不唯一。
为有效确定明文一般在m中加入某些代表性信息,如:发送者身份号、接受者身份号、时间、日期等