密码学基础:完整性、源认证、数字签名详解
单向散列函数
单向散列函数出现的原因?
1.如图,客户如何确保文件是没有被修改过的?
2.可能有人想到了一个解决方案,保存之后,再拷贝一份,是可以解决这个问题的,如图所示:每次将文件做一次拷贝,然后进行比对
4.如果面向的文件对象为1T的数据或1万字的电子书时,拷贝对比的方法是否可行?
那么又会引发另一个问题:
如果原文件为100G,那么就需要保存100G的副本,这个方案这样看来是不可行的
5.若文件的本体拷贝对比方式不可行,能否获取文件的指纹呢?
通过文件的指纹来对比,是否就可以识别文件是否曾被篡改
如图所示:抓到凶手后的获取指纹与从数据库中提取到的嫌疑犯的指纹做比对,证明是否是一个人
散列值就相当于文件指纹
6.获取文件指纹的技术,便是‘单向散列函数’出现的原因
什么是单向散列函数
1.单向散列函数,有一个输入和输出:
1)输入称为消息
2)输出称为“散列值”
2.依据消息的内容来计算出散列值,再利用散列值来验证‘数据完整性’
比对流程:对重要文件做散列值计算,对比两边文件的散列值是否一样,一样,则证书文件完整;不一样,则证明文件呗修改了。