现实生活中,我们常用签名来验证某个文件或许可的授权者。签名的动作是授权,验证笔迹的过程是确认签名的真实性。在多种信息系统中,我们也会用到相似的数字签名方案。
签名方案一般包括签名和认证两个算法。下面依然以Alice和Bob的交互为例来说明。假设Bob要发给Alice一条信息 m ,而且两人希望建立一套机制,帮助Alice在收到信息时能验证这条信息是否真的来自于Bob,而不是Carl伪造出来的。算法的基本过程如下。
可以看到,数字签名方案背后的基本原理和非对称密码算法是相似的,但似乎公钥和私钥的使用过程反过来了。下面简要介绍哈希函数和几种常见的数字签名算法。