DSA签名简介及对其的攻击方式

DSA

1、DSA算法描述

1985年提出的ElGamal算法是首次在有限域上基于离散对数问题设计的数字签名方案, DSA算法是在ElGamal算法的基础上设计的, 算法描述如下。

1.1 密钥生成
1) 全局参数

p: 满足2L-1 <p<2L的大素数, 其中L=512+64d, d=0, 1, 2, …, 8 q: p-1 的素因子, 且2159<q<2160。 g: g=h (p-1) /q mod p, 其中h满足1<h<p-1, 且h (p-1) /q mod p>1。

以上3个参数是用户公用的参数, 称之为全局参数, 也称为共享的公共模数。

2) 私钥

x: 选取满足1<x<q的随机数。

3) 公钥

y: 通过y=gx mod p求得。

1.2 签名过程
  1. 生成随机数k, 1<k<q;

  2. 计算r= (gk mod p) mod q;

  3. 计算 s= (k-1 * (H (M) + x * r) ) mod q。 其中M是待签名的消息, H (M) 是由SHA-1(Secure Hash Algorithm-1) 求出的Hash值。

消息M的签名结果即为 (r, s) 。

1.3 验证过程
  1. 计算w=s-1 mod q;

  2. 计算 u1= (H(M) * w) mod q;

  3. 计算 u2= (r * w) mod q;

  4. 计算 v= ( (gu1 * yu2) mod p) mod q。

比较r和v, 如果r=v, 表示签名有效; 否则, 签名非法

2、通用安全攻击(基本都是高复杂度的)

2.1求取私钥

对DSA最直接也是最彻底的攻破方法是利用算法的公开信息求取用户私钥。DSA算法中的公开信息包括:全局参数、公钥、消息和签名, 由这些数据求取私钥有两种方法。

1、根据公钥y计算私钥(基本不可能)

x = l o g g y ( m o d p ) x=log_gy\pmod p x=loggy(modp)

2、根据公共模数p与q, 消息M, 签名 (r, s) 等公开信息计算随机数k(基本也不可能)

T = g u 1 y u 2 ( m o d p ) k = l o g g T ( m o d p ) T=g^{u_1}y^{u_2}\pmod p\\ k=log_gT\pmod p T=gu1y

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
RSA(Rivest-Shamir-Adleman)和DSA(Digital Signature Algorithm)是两种常用的加密算法,用于加密和数字签名。 1. 加密算法: - RSA 是一种非对称加密算法,使用一对公钥和私钥。发送方使用接收方的公钥进行加密,接收方使用自己的私钥进行解密。 - DSA 是一种数字签名算法,使用一对公钥和私钥。发送方使用自己的私钥进行签名,接收方使用发送方的公钥进行验证。 2. 安全性: - RSA 基于大数分解难题(如质因数分解),其安全性基于大数的复杂计算。当选用足够大的密钥长度时,目前没有已知的有效攻击方法。 - DSA 基于离散对数问题,其安全性基于在有限域上的离散对数计算。同样,当密钥长度足够大时,DSA 也被认为是安全的。 3. 密钥长度: - RSA 密钥长度通常要比 DSA 密钥长度长,以达到相同的安全级别。通常建议使用 2048 位或更长的 RSA 密钥。 - DSA 密钥长度相对较短,通常建议使用 1024 位的 DSA 密钥。 4. 签名机制: - RSA 可用于加密和数字签名,RSA 签名使用私钥进行签名,而公钥用于验证签名。 - DSA 主要用于数字签名,使用私钥进行签名,而公钥用于验证签名。 总结: - RSA 是一种既可以用于加密也可以用于数字签名的非对称加密算法,而 DSA 主要用于数字签名。 - RSA 密钥长度通常比 DSA 密钥长度长,但相应地提供更高的安全性。 - 无论是 RSA 还是 DSA,密钥的安全性都依赖于其密钥长度的选择。较长的密钥长度通常提供更高的安全级别。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值