数字签名标准DSS中的算法称为数字签名算法DSA,它作为一个密码算法,安全强度是最基础的技术指标。对于现在已经知道的主要攻击方法,分析了DSA的安全性,可总结得出如下结论。
(1)DSA充足的密钥长度能抵抗像穷搜索攻击此类的暴力攻击方法。
(2)从各种攻击方法需完成的计算可以看出:对由算法的公开信息直接求取私钥、生日攻击、已经知道消息的伪造攻击等通用攻击手段,它的计算量等价或比求解离散对数难,因此以现在的计算能力,DSA面对这些攻击是安全的。
(3)DSA可能的缺点在随机数k、和消息没有关系的签名r、公共模数p与q、Hash函数等处。相应的解决方案如下。
①随机数k。设计好的随机数生成器,避免低指数与一样随机数。
②与消息无关的签名r。模p的长度确定了共r的安全强度。
③公共模数p与口。在对安全强度要求高但运算速度却较低时用DSA素数。
④Hash函数。使用消息摘要足够长的SHA。因公钥密码体制是基于繁杂数学计算问题的,伴随计算能力的提升,包含DSA在其中的全部公钥密码算法的安全强度均存在更明显的挑战。加强DSA安全强度的最直接有用的方法是加大密钥长度,不过因受运算速度、存储容量、传输带宽等原因的约束,密钥长度并不能无限增加,因此,在DSA的生存期内,其安全问题会是值得研究与探索的长远课题。