目录
6.1 数字签名
-
对称密码体制
-
非对称密码体制
-
由于非对称密码体制用户私钥的私有性,在实现数字签名方面具有巨大的优势。
-
作用:进行身份认证
(1) 四个基本要求
(2)数字签名方案的基本描述
-
数字签名算法是一个由(签名)密钥控制的函数。签名算法可以是公开的,但签名密钥是保密的。
(3)数字签名方案的分类
-
仲裁:与签名识别的过程相同,都是利用公钥进行验证。
6.2 RSA数字签名方案
6.2.1 RSA数字签名
给定n=pq,p和q是大素数,ed mod φ(n)=1,公开密钥为(n,e),秘密密钥为(p,q,d)
-
加密:c=me mod n
-
解密:m=cdmod n =med mod n =m
-
签名:s=md mod n
-
验证:m=se mod n =med mod n =m
6.2.2 RSA签名的同态性
(1)RSA签名的同态性
(2)利用同态性进行攻击
6.2.3 RSA数字签名与加密的结合
设用户A:nA,eA,dA;用户B:nB,eB,dB;A→B:m
-
若nA<nB:
A:c = E(PUB, D(PRA,m))
B:m = E(PUA, D(PRB,c))
-
若nB<nA:
A:c = D(PRA, E(PUB,m))
B:m = D(PRB, E(PUA,c))
必须先用小模数对应密钥操作,再用大模数对应的密钥操作
-
伪装攻击
-
解决方案:
6.2.4 RSA数字签名的缺点
6.3 ElGamal签名方案
6.3.1 ElGamal签名方案描述
6.3.2 ElGamal签名方案的安全性分析
-
r=gk mod p
-
m = (xAr + ks) mod p-1
-
k不能被泄露,否则私钥XA可以被解出
-
k不能被重复使用(可以通过观察 r 发现),两次的方程联立可解出私钥
-
若s为零,则应更换k重新计算。否则私钥可以被解出
-
r作为签名一部分被公开,签名者和攻击者都可以准备k-r预运算表,攻击复杂度就是查表的复杂度