密码学之公钥密码体系(4):Rabin公钥密码方案

🔥点击进入【硬件安全】社区,查看更多精彩内容🔥

🔥点击查看《硬件安全》系列文章🔥

📢 声明
🥭 作者主页:【摆渡沧桑的CSDN主页】
⚠️ 未经作者允许,禁止转载。
⚠️ 本文为非盈利性质,目的为个人学习记录及知识分享。因能力受限,存在知识点分析不正确的可能。若您参考本文造成了不良后果,本人不承担相关责任。
⚠️ 若本文所采用图片或相关引用侵犯了您的合法权益,请联系我进行删除。
😄 欢迎大家指出文章错误,欢迎同行与我交流 ~

一、Rabin公钥密码方案

Rabin密码体制,被认为是对RSA密码体制的改进,其安全性基于求合数的模平方根的难度。而这个困难性等价于求解因子分解。RSA算法中只要素数被分解,密码就会被破解。而Rabin方案其实可以看做为RSA方案的一个特例,但被证明破译的难度和分解大整数一样难度。
Rabin方案的特点:

  1. Rabin 方案不是一一映射的,对于同一个密文,可能会有多个对应的明文;
  2. Rabin算法的安全性基于求解合数模平方根困难性问题,破解难度和大整数分解相当;
  3. Rabin算法可以看做为RSA算法的一个特例,即指数取2

二、Rabin公钥密码加、解密方案

1. 密钥生成

首先,随机选择两个大素数 p , q p,q p,q,并满足如下条件:
p ≡ q ≡ 3 m o d 4 p≡q≡3 mod 4 pq3mod4
q , p q,p q,p可以表示为 4 k + 3 4k+3 4k+3的数学形式,在将得到的素数相乘:
n = q ∗ p n=q*p n=qp
其中, n n n即为公钥, q , p q,p q,p即为私钥。
想要破解通过公钥n破解对应的私钥,这是十分困难的。

2. 加密方案

加密过程为:
c ≡ m 2 m o d    n c≡m^2 \mod n cm2modn
加密的过程很简单,与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 x2cmodn
由于n可以分解为 p p p q q q,因此,根据中国剩余定理,可以将上面方程等价于如下方程组:
{ x 2 ≡ c m o d    p , x 2 ≡ c m o d    q , \begin{cases} x^2≡c \mod p,\\ x^2≡c \mod q, \end{cases} {x2cmodp,x2cmodq,

由于 p ≡ q ≡ 3 m o d    4 p≡q≡3 \mod 4 pq3mod4,因此,很容易求解方程组:
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 xymodp,xymodpxzmodq,xzmodq
经过组合,可以得到如下四个方程组:
{ x ≡ y m o d    p x ≡ z m o d    q \begin{cases} x≡y \mod p\\ x≡z \mod q \end{cases} \\ {xymodpxzmodq { x ≡ − y m o d    p x ≡ z m o d    q \begin{cases} x≡-y \mod p\\ x≡z \mod q \end{cases}\\ {xymodpxzmodq { x ≡ y m o d    p x ≡ − z m o d    q \begin{cases} x≡y \mod p\\ x≡-z \mod q \end{cases}\\ {xymodpxzmodq { x ≡ − y m o d    p x ≡ − z m o d    q \begin{cases} x≡-y \mod p\\ x≡-z \mod q \end{cases}\\ {xymodpxzmodq
因此,有中国剩余定理可以解出每一个方程组的解,一共有 4 4 4组解,因此可以看出,每一个密文所对应的明文均不唯一。
为了解决这个办法,可以在加密 m m m时,在 m m m的明文信息中加入私人信息,供解密使用。

三、Rabin方案具体案例

  1. 选择 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
  2. 选择加密明文为 m = 20 m=20 m=20, 加密之后密文 c = 2 0 2 m o d 77 = 15 c=20^2 mod 77 =15 c=202mod77=15
  3. 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=\sqrt{c} \mod p \\ m=\sqrt{c} \mod q m=c modpm=c modq
    由于 p ≡ q ≡ 3 m o d    4 p≡q≡3 \mod 4 pq3mod4,因此,有如下公式成立:
    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/4(p+1)modpm=c1/4(q+1)modq,m=c1/4(q+1)modq
    两两一组,可以求解 m m m { 64 , 20 , 13 , 57 } \{64,20,13,57\} {64,20,13,57}

🔥 精选往期 《硬件安全》系列文章🔥
【算法篇】
密码学之公钥密码体系(1):背包算法
密码学之公钥密码体系(2):RSA算法
密码学之公钥密码体系(3):ElGamal算法

【概述篇】
硬件安全技术——概述1(安全威胁和硬件安全技术)
硬件安全技术——概述2(5G时代IoT环境下芯片安全风险与挑战)
硬件安全技术——芯片安全设计技术1
硬件安全技术——芯片安全设计技术2
硬件安全技术——芯片安全设计技术3
硬件安全技术——芯片安全设计技术4(PUF)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摆渡沧桑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值