签名与摘要个人总结
前些日子发现自己对于签名算法以及摘要算法有点概念模糊,于是在此做个总结,而且回想了下,发现之前面试的时候对于这两种概念也模糊了
摘要算法
摘要的目的
- 验证消息的完整性
如何实现这个目的?
本质上我们利用的是Hash函数,例如:
x是原本消息
h(x)就是通过hash函数得到的摘要
通常我们是利用Hash函数的性质进行实现,即弱碰撞性以及发生碰撞的概率极低来保证说极大概率原有信息的完整
场景的hash函数
与校验码的相同与区别
相同:
- 都是为了检测出数据发生一定的修改
区别:
- 校验码碰撞的概率是大于摘要算法的
- 一些校验码算法是可逆的,也就是具有一定的纠错功能
签名算法
签名的目的
为了让其他人能够确定签名者
如何实现?
通常是利用非对称密钥
- 用私钥加密对应的信息(通常是加密摘要,因为加密大量数据慢,并且有些算法实现可能对于明文大小也有限制)
- 把对应加密后的消息让其他人得到
- 同时我们公钥暴露在外
- 当使用公钥解密得出的结果与预期结果一致,那么则可确定这个签名者,进而可以确定数据来源是否可信

浙公网安备 33010602011771号