数字签名是融合了非对称密钥
加密技术与
哈希函数,用于鉴别数字信息的方法。
在现实社会中,签订合同等场景都需要手写签名,以表明签名者知晓并同意文件内容。笔迹专家也可以根据签名,鉴定签名是否出自本人。因此签名可以防止伪造和签署人抵赖情况的出现,签署后的文件也不可以被随意篡改。数字签名也具有这些功能,它通过非对称密钥
加密技术和
哈希函数来实现
加密货币的
交易确认等功能。
非对称密码可以简单理解为
加密、解密的钥匙不可以是同一把。
区块链里
私钥与
公钥的概念由此衍生:同一个人私钥
加密的信息,只可以用同一个人的
公钥解密;同样,同一个人
公钥加密的信息,只可以用同一个人的
私钥解密。其中,
公钥可以公开,
私钥只能自己保存。我们可以通过一个例子来了解数字签名是如何运作的:
1. Jim想给Bob传输一份文件,Jim首先用Bob的
公钥对原文进行
加密,因为只有Bob的
私钥可以对此信息解密,因此可以确保信息被其他人截获后不能被破译,避免被篡改。
2. Jim运用
哈希函数将原文计算成摘要,然后用自己的
私钥对摘要进行
加密,生成数字签名,表明此信息为Jim发出的。
3. Jim将自己的
公钥、数字签名、
加密后的原文发送给Bob。
4. Bob先用自己的
私钥对
加密的原文进行解密,然后运用同样的
哈希函数计算出一个
哈希值。
5. Bob再用Jim的
公钥对数字签名进行解密,得到摘要,说明信息确实是Jim发送过来的。最后将摘要与上一步得出的
哈希值进行对比,如果两者一致,说明信息未被篡改过。
当然,平时我们交易过程中并不需要亲自执行上述步骤。只需要输入
私钥即可,这些
加密解密的过程都是后台系统自动运行的。
加密解密过程中使用的
哈希函数有不可逆的特性,无法根据计算出的
哈希值来倒推输入的内容,因此可以防止原始信息被篡改。另外,两组只有微小差别的数据经过
哈希函数的计算,会得出两个完全不同的
哈希值。因此即使Jim用私钥
加密的摘要被其他人用
公钥截获后篡改,Jim也可以在最后一步对比时发现这一情况。
从这个例子我们可以看出数字签名的几个特征:
1.真实性:可以
验证由本人发送;
2.数据完整性:可以
验证信息是否遭到篡改,消息中的任何变动都会导致数字签名变化;
3.不可否认性:生成签名后无法否认。
数字签名的应用
区块链:数字签名可确保在
私钥不泄露的情况下,唯有
加密货币的所有人能够签署并转移资金。
金融领域:可应用于财务审计签名,贷款协议等;
法律领域:可应用于法律协议、政府文件、商业合同签署等;
卫生保健:可防止医疗记录及医疗药物器械编码等信息的篡改;
信息技术:可增加互联网的使用安全性与加强对隐私的保护。
数字签名面临的挑战
由前文介绍我们可以看出,数字签名中较为重要的要素是
算法和
私钥。如果
算法的安全性低,那么相应通过该
算法得出的信息摘要则很可能被解密。而丢失
私钥将无法保证信息的真实性。对于持有
加密货币的用户而言,丢失
私钥还意味着资产的直接损失。数字签名技术已经发展良久,但从目前的实际应用来看还只占有市场的一小部分。随着社会信息数字化程度的提高和
区块链技术的普及,数字签名将会有更广泛的应用。