数字签名到底是怎么一回事

在漫长的人类历史中,人们一直在寻求一种可以长久保存且不易篡改的凭证,重点在于其唯一性,例如,尚方宝剑、调兵虎符等。这些曾在古代被用作凭证的物件,随着社会的发展进步,逐步被合同、契约等取代,而签名、盖章等则作为具有唯一性的信任背书,就成为这些凭证产生效力的关键,并且具有法律效力。需要进行验证的时候,就能够根据签名来确认一致性。但是只要是实物,就不免会遇到遗失、损毁等问题,合同损毁、字据遗失等都是日常生活中容易出现的状况。随着互联网的诞生,越来越多的场景和信息都迁移到网络之上,有人想把签名这种可靠的方法也应用到互联网中,于是,数字签名应运而生。

在互联网中加入“签名”机制,也就形成了数字签名,或称为电子签名,就类似于现实世界中的盖章、签字,是一种在计算机世界中进行实现的技术。数字签名不是指将签名扫描成数字图像,或者用触摸板获取的签名,更不是落款。

数字签名到底是怎么一回事

基于数字签名的通信机制如下。发送方对待发送的文件进行哈希运算,也就是我们之前讲过的单向散列函数,得到文件的摘要(散列值),也即“指纹”,再用自己的私钥对其进行加密,得到摘要的数字签名,之后将该数字签名与文件一同发送给接收方。接收方收到文件后,运用哈希运算计算出原文件摘要,并利用发送方的公钥对其数字签名进行解密得到另一个文件摘要,对比两个文件摘要。如果相同,则表明该文件没有被篡改,能够被信任;如果不同,则说明文件可能被篡改。下图就表示了基于数字签名的通信过程。

数字签名到底是怎么一回事

在比特币的交易中也运用到了数字签名技术,由转账发起方根据交易信息生成一段防伪造的字符串,通过验证该字符串,证明该交易确实由其发起,同时证明其中的交易信息未被篡改。大致过程如下,首先,利用数字摘要技术将交易信息缩短为固定长度的字符串,然后用发起方的私钥对其进行加密,生成数字签名,然后将交易信息和数字签名一起,广播给矿工,矿工用发起方的公钥进行验证。整个过程就类似于上面讲到的基于数字签名的通信过程。

利用数字签名技术,我们就可以相对可靠地进行信息的传输,既可以识别出篡改和伪装,还可以防止否认。鉴于这一特性,数字签名有很多应用场景,现在为公众熟知不过是沧海一粟,数字货币、企业供应链管理、地产租赁、劳动合同、电子公文、电子病历、旅游租车、金融借贷、数据凭证、物流仓储订单等,这些场景都会用到数字签名,只要人与人、企业与企业之间建立连接,发生商业性关系,就有可能用到数字签名服务。数字签名的价值显而易见,节约成本、提高效率、环保、增强安全性等,而其最本质的价值则是推动万物互联的数字化浪潮。

撰文 | 悟空
出品 | Trias团队