密码学之公钥密码体系:Rabin公钥密码方案
Posted 摆渡沧桑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了密码学之公钥密码体系:Rabin公钥密码方案相关的知识,希望对你有一定的参考价值。
🔥点击进入【硬件安全】社区,查看更多精彩内容🔥
📢 声明:
🥭 作者主页:【摆渡沧桑的CSDN主页】。
⚠️ 未经作者允许,禁止转载。
⚠️ 本文为非盈利性质,目的为个人学习记录及知识分享。因能力受限,存在知识点分析不正确的可能。若您参考本文造成了不良后果,本人不承担相关责任。
⚠️ 若本文所采用图片或相关引用侵犯了您的合法权益,请联系我进行删除。
😄 欢迎大家指出文章错误,欢迎同行与我交流 ~
文章目录
一、Rabin公钥密码方案
Rabin密码体制,被认为是对RSA密码体制的改进,其安全性基于求合数的模平方根的难度。而这个困难性等价于求解因子分解。RSA算法中只要素数被分解,密码就会被破解。而Rabin方案其实可以看做为RSA方案的一个特例,但被证明破译的难度和分解大整数一样难度。
Rabin方案的特点:
- Rabin 方案不是一一映射的,对于同一个密文,可能会有多个对应的明文;
- Rabin算法的安全性基于求解合数模平方根困难性问题,破解难度和大整数分解相当;
- Rabin算法可以看做为RSA算法的一个特例,即指数取2
二、Rabin公钥密码加、解密方案
1. 密钥生成
首先,随机选择两个大素数
p
,
q
p,q
p,q,并满足如下条件:
p
≡
q
≡
3
m
o
d
4
p≡q≡3 mod 4
p≡q≡3mod4
即
q
,
p
q,p
q,p可以表示为
4
k
+
3
4k+3
4k+3的数学形式,在将得到的素数相乘:
n
=
q
∗
p
n=q*p
n=q∗p
其中,
n
n
n即为公钥,
q
,
p
q,p
q,p即为私钥。
想要破解通过公钥n破解对应的私钥,这是十分困难的。
2. 加密方案
加密过程为:
c
≡
m
2
m
o
d
n
c≡m^2 \\mod n
c≡m2modn
加密的过程很简单,与RSA相比,只是将指数改为常数
2
2
2。当攻击者不知道私钥的情况下,拿到密文
c
c
c时,想要恢复明文
m
m
m,相当于需要求解密文
c
c
c在模
n
n
n时的平方根,这与大整数分解的难度是等价的。
3. 解密方案
解密时,求解密文
c
c
c在模
n
n
n下的平方根。即求解:
x
2
≡
c
m
o
d
n
x^2≡c \\mod n
x2≡cmodn
由于n可以分解为
p
p
p和
q
q
q,因此,根据中国剩余定理,可以将上面方程等价于如下方程组:
x
2
≡
c
m
o
d
p
,
x
2
≡
c
m
o
d
q
,
\\begincases x^2≡c \\mod p,\\\\ x^2≡c \\mod q, \\endcases
x2≡cmodp,x2≡cmodq,
由于
p
≡
q
≡
3
m
o
d
4
p≡q≡3 \\mod 4
p≡q≡3mod4,因此,很容易求解方程组:
x
≡
y
m
o
d
p
,
x
≡
−
y
m
o
d
p
x
≡
z
m
o
d
q
,
x
≡
−
z
m
o
d
q
x≡y \\mod p, x≡-y \\mod p \\\\ x≡z \\mod q, x≡-z \\mod q
x≡ymodp,x≡−ymodpx≡zmodq,x≡−zmodq
经过组合,可以得到如下四个方程组:
x
≡
y
m
o
d
p
x
≡
z
m
o
d
q
\\begincases x≡y \\mod p\\\\ x≡z \\mod q \\endcases \\\\
x≡ymodpx≡zmodq
x
≡
−
y
m
o
d
p
x
≡
z
m
o
d
q
\\begincases x≡-y \\mod p\\\\ x≡z \\mod q \\endcases\\\\
x≡−ymodpx≡zmodq
x
≡
y
m
o
d
p
x
≡
−
z
m
o
d
q
\\begincases x≡y \\mod p\\\\ x≡-z \\mod q \\endcases\\\\
x≡ymodpx≡−zmodq
x
≡
−
y
m
o
d
p
x
≡
−
z
m
o
d
q
\\begincases x≡-y \\mod p\\\\ x≡-z \\mod q \\endcases\\\\
x≡−ymodpx≡−zmodq
因此,有中国剩余定理可以解出每一个方程组的解,一共有
4
4
4组解,因此可以看出,每一个密文所对应的明文均不唯一。
为了解决这个办法,可以在加密
m
m
m时,在
m
m
m的明文信息中加入私人信息,供解密使用。
三、Rabin方案具体案例
- 选择 p = 7 , q = 11 , n = 77 p=7,q=11, n=77 p=7,q=11,n=77,因此,明文空间为 P = 0 , 1 , 2 , . . . , 76 P=0,1,2,...,76 P=0,1,2,...,76
- 选择加密明文为 m = 20 m=20 m=20, 加密之后密文 c = 2 0 2 m o d 77 = 15 c=20^2 mod 77 =15 c=202mod77=15
- 当
n
n
n很大,无法破解时,我们无法计算,如果我们假设以及知道了
77
77
77的两个因子为
7
7
7和
11
11
11,已知密文为
15
15
15,求解明文
m
m
m.
m = c m o d p m = c m o d q m=\\sqrtc \\mod p \\\\ m=\\sqrtc \\mod q m=cmodpm=cmodq
由于 p ≡ q ≡ 3 m o d 4 p≡q≡3 \\mod 4 p≡q≡3mod4,因此,有如下公式成立:
m = c 1 / 4 ( p + 1 ) m o d p , m = − c 1 / 4 ( p + 1 ) m o d p m = c 1 / 4 ( q + 1 ) m o d q , m = − c 1 / 4 ( q + 1 ) m o d q m=c^1/4(p+1) \\mod p,m=-c^1/4(p+1) \\mod p\\\\ m=c^1/4(q+1) \\mod q,m=-c^1/4(q+1) \\mod q m=c1/4(p+1)modp,m=−c1以上是关于密码学之公钥密码体系:Rabin公钥密码方案的主要内容,如果未能解决你的问题,请参考以下文章