【密码学复习】第七章 公钥加密体制(一)

公钥加密模型

Ø 密钥生成过程:接收消息的端系统(如图中的接收者Alice)产生一对密钥(PKA ,SKA ), PKA 是公开钥(用于加密), SKA 是秘密密钥(用于解密).

Ø 加密过程:Bob想向Alice发送消息m,则获取Alice的公开密钥PKA ,加密得密文c = EPKA [m], 其中E是加密算法.

Ø 解密过程: Alice收到密文c后,用自己的秘密钥SKA 解密,表示为m = DSKA [c],其中D是解密算法.

单向陷门函数

定义:一个定义在(X,Y)空间上的单向陷门函数(One-way Trapdoor functions, OTF )包含3个“有效”算法 (G, F, F -1)

n G(⋅): 随机算法,输出对(pk,sk)

n F(pk,⋅):确定算法,定义X->Y的运算

n F -1(sk,⋅): F(pk,⋅)的逆函数,定义Y->X的运算

对于任意生成的一对密钥G →(pk,sk),单向陷门函数满足:

x∈X: F-1(sk, F(pk, x) ) = x

定义: (G, F, F-1) 是一个安全的的OTF当对于所有有效的算法A:

AdvOW [A,F] = Pr[ A[F(pk, x)]=x] < 可忽略

RSA单向陷门函数及其应用

1) 密钥的产生

① 选两个安全的大素数pq

② 计算n=p×qφ(n)=(p-1)(q-1),其中φ(n)是n的欧拉函数值。

③ 选一整数e,满足1<e<φ(n),且gcd(φ(n),e)=1。

④ 计算d,满足d·e≡1 mod φ(n),即de在模φ(n)下的乘法逆元。因eφ(n)互素,故它的乘法逆元存在且唯一。

⑤ {e,n}为公开密钥,{d,n}为秘密密钥。

2) 加密

加密时首先将明文分组,使得每个分组m小于n,即分组长度小于log2 n。然后对每个明文分组m,作加密运算:cme mod n

3) 解密

对每个密文分组的解密运算:mcd mod n

4)正确性

证明: 若mn互素,由加密过程知cme mod n,所以

cd mod nmed mod nm(n)+1 mod n

由Euler定理知mφ(n)≡1 mod n,

所以 m(n)≡1 mod n,

进而 m(n)+1m mod n

cd mod nm.

6)安全性

整数分解问题:已知n是两个大素数的乘积,求n的素分解;

如果RSA加密算法的模数n被成功地分解p×q,则获得φ(n)=(p-1)(q-1),从而攻击者能够从公钥e解出私钥d,即de -1 mod φ(n),完全破译

RSA单向陷门函数及其应用

RSA的共模攻击:

若系统中用户共用一个模数n ,而拥有不同的ed;

若存在同一明文(设为m)分别用不同的公钥(e1和e2)加密,

c1 = me1 mod n ;c2 = me2 mod n

设攻击者截获ne1、e2、c1和c2, gcd(e1,e2)=1,则他可以恢复m

算法:因为e1和e2互质,故用Euclidean算法能找到r s,满足:

r * e1 + s * e2 = 1则

(c1)r * (c2)s = (me1 ) r * (me2 ) s mod n= m r * e1 + s * e2 mod n = m mod n

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

呆呆水獭_(:_」∠)_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值