It's our wits that make us men.

2019/5/24 《图解密码技术》第九章

Posted on By LuLu

《图解密码技术》第九章

  • 明文签名:clearsign

数字签名的应用实例

安全信息公告

明文签名:对明文消息所施加的签名

安全信息方面的组织在其网站发布相关安全漏洞警告时,对文件施加数字签名

软件下载

判断下载的软件是否可以安全运行,软件作者对软件加上数字签名,下载后验证数字签名,就可以知道软件是否被攻击者篡改

e.g.一种带签名的Applet的软件,安卓系统无法安装没有数字签名的应用软件

公钥证书

公钥证书:对公钥施加数字签名

验证数字签名时要用到合法公钥,将公钥当做消息,对他加上数字签名,就可以知道公钥是否合法时

SSL/TLS

SSL/TLS在验证服务器身份是否合法时,会使用服务器证书,它就是加上了数字签名的服务器公钥.

通过RSA实现数字签名

用RSA生成/验证签名

在RSA中,被签名的都是以数字形式表示的,先将文本编码成数字,RSA生成签名的过程的公式描述:

img

其他的数字签名

  • ElGamal:利用mod N中求离散对数的难度,可用于公钥密码和数字签名,但密码软集GnuPG中的ElGamal仅用于公钥密码
  • DSA:只能被用于数字签名
  • ECDSA:利用椭圆曲线密码来实现数字签名算法
  • Rabin:利用了mod N中求平方根的困难度,可用于公钥密码和数字签名

对数字签名的攻击

中间人攻击

对单向散列函数的攻击

数字签名中所使用的单向散列函数必须具有抗碰撞性

利用数字签名攻击公钥密码

请对消息签名=请解密消息,巧妙利用数字签名来破译密文

对于这样的攻击:

  • 不要直接对消息签名,对散列值签名比较安全
  • 公钥密码和数字签名最好使用不同的密钥对
  • 绝对不要对意思不清楚的密钥对进行签名

潜在伪造

潜在伪造:如果攻击者能够对无意义的消息生成合法的数字签名(能通过校验),这就是对签名算法的一种潜在威胁

随机序列S用RSA的公钥加密生成密文M,则S是M的合法数字签名,即对数字签名的潜在伪造也可以实现

RSA-PSS是对消息的散列值进行签名,为了提高安全性,在计算散列值的时候还要对消息加盐salt

其他攻击

针对公钥密码的攻击方法大多都可以被用于攻击数字签名

各种密码技术的对比

img

混合密码系统与对散列值签名:

  • 对称密码的密钥是机密性的精华,单向散列函数的散列值是完整性的精华

数字签名无法解决的问题

使用数字签名的前提:公钥必须属于真正的发送者

为了确认自己得到的公钥是否合法,需要用到证书,

  • 证书:将公钥当作一条消息,由一个可靠的第三方对其签名后所得到的公钥

###