加密解密常见问题集合(四)

常见问题一:

数字签名要预先使用单向Hash函数进行处理的原因是什么?

  • HASH(摘要)函数提供了这样一种计算过程:输入一个长度不固定的字符串,它会返回一串固定长度的字符串,又称HASH值(摘要值)。单向HASH函数用于产生信息摘要。
  • HASH函数主要可以解决以下两个问题:在某一特定的时间内,无法查找经HASH操作后生成特定HASH值的原报文;也无法查找两个经HASH操作后生成相同HASH值的不同报文。这样在数字签名中就可以解决验证签名和用户身份验证、不可抵赖性的问题。 信息摘要简要地描述了一份较长的信息或文件,它可以被看作一份长文件的“数字指纹”。信息摘要用于创建数字签名,对于特定的文件而言,信息摘要是唯一的。信息摘要可以被公开,它不会透露相应文件的任何内容。目前常用的摘要算法为MD5、SHA1、SHA256等。
  • 如果不用hash,则如果源数据是10M、100M、甚至更大,那么用私钥做运算会花费很大量的时间,而且生成的数字签名会很大(一般不小于源数据大小),这都是不可容忍的。而我们知道无论多大的数据量,只要做hash,就会生成一个固定大小的信息,如sha1会统一生成20字节。在效率和数据量上,都很好,而且效果(认证、抗抵赖)是一样的。
  •    如果被签名的信息很大,签名是非对称算法,效率会非常低,所以会先做hash,hash后信息量有限,在签名效率就好了
  •    主要考虑性能,签名前和接收方验证时,两个时刻的效率。
  • 几乎所有的签名都是签hash,原因很简单,减少计算量。

猜你喜欢

转载自blog.csdn.net/zam183/article/details/85274743