区块链与密码学全民课堂:区块链基础技术大分析之数字签名

时间:2021-07-30 17:15       来源: www.xiangcunluyou.com

出处: PlatON 作者:PlatON

昨天大家讲到区块链基础技术之一的哈希函数,今天这一讲大家来认识另一个区块链的基础技术——数字签名。

数字签名从字面上理解,是数字化签名。签名由来已久,作用与功效极广。早在中国古时候签名便已经广泛应用。大家最熟知的可能是电视剧中,官老爷升堂断案,对堂下贫民,私用大刑,屈打成招。最后签字画押,按上红手印,这人就天牢见了。

其实古时候文人墨客也极喜欢签名,花押又称“押字”,始于唐,兴于宋,盛于元,故又称“元押”。元押多为长方,通常上刻楷书姓氏,下刻八思巴文或花押。

从实用意义上说历代印章大都有防奸辨伪有哪些用途,作为个人任意书写,变化出来的“押字”(有的已不是一种文字,只作为个人专用记号),自然就更难以摹仿而达到防伪的成效,因而这种押字一直沿用到明清年代。花押不是日本语,此名词在中国早有用,其意思是个人化的署名。

宋徽宗赵佶是著名的字画家,他的“签名档”让人称为“绝押”,其外形有点像写得松散的“天”字,事实上赵佶玩的是拆字游戏,把“天下一人”四字连贯在一块,来表明自己不止是君临天下的皇帝,且在艺术造诣上也是天下第一。乾隆皇帝更是在自己喜欢的字画作品上盖上数百个印章,来表达物品的归属权。

这样来看,在古时候签名就渐渐衍生出一些用途,如:防伪认证,表明主权等等。

时间挪移到现代,签名已经广泛应用到很多方面:购物刷信用卡时,需要签名;友人互达信件时需要签名;公司双方签署合同或协议时也需要签名。而这部分基本都是手写签名。

在互联网年代,大家通过互联网支付成本、交易股票,为了保证网上商务活动的安全,需要一个非常重要的安全机制——数字签名。

数字签名是手写签名数字化的产物,但又有着显著的区不同消息的签名不同,甚至相同消息也有不一样的签名,不然签名就会被获得并复制到另外的文件中。数字签名的基础是公钥密码学。

数字签名(又称公钥数字签名)是只有信息的发送者才能产生的其他人没办法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。

它是一类型似写在纸上的一般的物理签名,但用了公钥加密范围的技术来达成的,用于辨别数字信息的办法。一套数字签名一般概念两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。

数字签名原理

数字签名的文件的完整性是比较容易验证的(无需骑缝章,骑缝签名,也无需笔迹专家),而且数字签名具备不可抵赖性(不能否认性)。

容易地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的出处和数据单元的完整性并保护数据,预防让人进行伪造。

它是对电子形式的消息进行签名的一种办法,一个签名消息能在一个通信互联网中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主如果基于公钥密码体制的数字签名。

包括一般数字签名和特殊数字签名。一般数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、加盟签名、群签名、不能否认签名、公平盲签名、门限签名、具备消息恢复功能的签名等,它与具体应用环境密切有关。

显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题拟定了我们的数字签名标准。

大家通过一个例子来认识数字签名的应用,先看下图:

这里面会产生两个问题:

· 这么大一笔资金,这消息是爱丽丝发送的吗,若是其他人呢?如何确定?
· 如果过后爱丽丝否认这笔转账如何解决?

数字签名是运用哈希算法和非对称加密算法达成的,要解决上面的两个问题,爱丽丝第一要写一个小纸条“我爱丽丝要向鲍勃转100万”并在下面签名,确保内容认同。

然后将“我爱丽丝要向鲍勃转100万”的小纸条用哈希算法运算一次,会得到一串“天书”般的文字——看不明白且不可逆的字符串。

之后他们用私钥给这段字符加密,加密后是一段密文。这段密文就是双方的数字签名了。双方公布了文本内容,和加密私钥对应的公钥,但两方的私钥不告诉其他人。

大家怎么样知晓笔迹是爱丽丝的呢?这里就涉及到笔迹的辨别,第一辨别方要把“我爱丽丝要向鲍勃转100万”哈希处置换算一下,由于哈希算法的性质,会得出一样的结果。之后用公开密钥来解密,假如双方内容完全一致。那样就可以证明,这段文字确实是由保存私钥的人签署的。

并且假如当事人否认的话,譬如事后爱丽丝说我想给鲍勃1万,请他退回99万,假如文本有所改动,即使是私钥正确,哈希处置后的内容也会改变,内容就不是原有哈希值。

这里可以看到数字签名策略通常包括三个过程:

· 系统初始化过程:产生数字签名策略中的所有系统和用户参数(公开的+秘密的)。
· 签名过程:用户借助给定的签名算法对消息签名,签名过程可以公开也可以不公开,但肯定包含仅签名者才拥有些秘密信息(签名密钥)。
· 验证过程:验证者借助公开的验证办法对给定消息的签名进行验证。

所以数字签名具备以下目的和需要

数字签名的目的:保证信息的完整性和真实性,即消息没被篡改,而且签名也没被篡改,消息只能始发于所声称的一方。

一个健全的签名策略应满足以下三个条件:

不可伪造性:其他其他人均不可以伪造签名,也不可以对接收或发送的信息进行篡改、伪造和冒充。

不能否认性:签名者事后不可以不承认或抵赖我们的签名。

公正的仲裁:若当事双方对签名真伪发生争执时,能通过公正的仲裁者验证签名来确定其真伪。

有关于数字签名的课程就讲到这里啦,下节课大家将继续分析区块链基础技术之共识算法,共识算法是区块链的发动机,那它是怎么样运作的呢?下节课揭晓!

« 上一篇:啥是创世纪区块?
» 下一篇:没有了

相关推荐