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

2020-06-17 16:05 栏目:经验之谈 来源:网络整理 查看()

昨天我们讨论了区块链的基本技术之一的散列函数。今天我们将学习区块链的另一项基本技术——数字签名。

数字签名就是字面上的数字签名。签名历史悠久,被广泛使用。签名早在中国古代就被广泛使用。我们最熟悉的可能是,在电视连续剧中,官员们去法院裁决案件,在法庭下惩罚穷人,因其私人用途而惩罚穷人,然后屈服并付诸行动。最后,他签上了自己的名字,并在上面印上了自己的红色手印,这个人被人看见在监狱里。

事实上,古代学者和学者也非常喜欢签名。花崖又名“崖子”,起源于唐代,兴盛于宋代,兴盛于元代,故又称“元崖”。元赌大多是长方形的,通常刻有楷书姓氏,下刻有八思巴文或华赌。

从实用的角度来看,历代的印章大多起到了预防犯罪和辨别真伪的作用。当一个人任意书写时,被改变的“附随文字”(其中一些不再是一种文字,而只是用作个人标记)自然变得更加难以模仿并达到防伪效果。因此,这种旁系文字一直使用到明清。华雅不是日本人,这个名词在中国已经使用很久了,意思是个人签名。

宋徽宗赵霁是著名的书法家和画家。他的“签名文件”被称为“绝对保证”。它的样子有点像“田”这个松散的字。事实上,赵霁玩的是无原则的角色游戏,他把四个角色“一天中的下一个人”联系在一起,以显示他不仅是世界上在位的皇帝,而且是艺术造诣第一的皇帝。甘龙皇帝甚至在他最喜爱的书画作品上印了数百枚印章,以表达对这些物品的所有权。

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

由此,我们可以看出,在古代签名逐渐产生了一些功能,如:防伪认证、显示主权等。

时间已经转移到了现代,签名已经广泛应用于各个方面:当购买信用卡时,需要签名;朋友需要在彼此的信上签名。公司双方还需要签署合同或协议。这些基本上都是手写签名。

在网络时代,人们通过网络支付费用和买卖股票。为了保证网上商务活动的安全,需要一个非常重要的安全机制——数字签名。

数字签名是手写签名数字化的产物,但它有明显的区别。不同的消息有不同的签名,即使同一消息有不同的签名,否则签名将被获取并复制到另一个文件。数字签名的基础是公钥密码。

数字签名(也称为公钥数字签名)是一种数字字符串,只能由信息的发送者生成,不能由他人伪造。这个数字串也是信息发送者发送的信息真实性的有效证明。

它是一种常见的物理签名,类似于写在纸上的签名,但它是通过使用公钥加密领域的技术来实现的,并用于识别数字信息。一组数字签名通常定义两个互补的操作,一个用于签名,另一个用于验证。数字签名是不对称密钥加密和数字摘要技术的应用。

数字签名原理

数字签名文档的完整性很容易验证(不需要装订戳、装订签名或手写专家),并且数字签名具有不可否认性(不可否认性)。

简而言之,所谓的数字签名是指附在数据单元上的一些数据或对数据单元进行的加密转换。该数据或转换允许数据单元的接收者确认数据单元的来源和数据单元的完整性,并保护数据不被人(例如接收者)伪造。

这是一种以电子形式签署信息的方法。签名消息可以在通信网络中传输。数字签名可以基于公钥密码系统和私钥密码系统获得,主要基于公钥密码系统。

包括普通数字签名和特殊数字签名。常见的数字签名算法包括RSA、ElGamal、Fiat-Shamir、Guillou-Quisquart、schnoor、ong-schnoor-shamir数字签名算法、Des/DSA、椭圆曲线数字签名算法

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

让我们举一个例子来理解数字签名的应用,首先看下图:

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

会有两个问题:

爱丽丝带着这么一大笔钱发了消息吗?如果是别人发的呢?你怎么确定?

如果爱丽丝后来不承认转让呢?

数字签名由哈希算法和非对称加密算法实现。为了解决上述两个问题,爱丽丝首先写了一个小纸条“我爱丽丝想转让100万给鲍勃”,并在下面签名,以确保内容批准。

然后,将“我爱丽丝将把100万转让给鲍勃”的小纸条散列一次,得到一串“天书”字符——,这是不可理解和不可逆转的。

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

之后,另一方用私钥加密字符,加密的字符是密文。这个密文是双方的数字签名。双方公布了文本内容和与加密私钥相对应的公钥,但双方的私钥没有告诉任何人。

我们怎么知道这是爱丽丝的笔迹?这包括笔迹鉴定。首先,身份验证方应该转换“我爱丽丝将把100万转移给鲍勃”的散列处理,因为散列算法的性质将产生相同的结果。如果双方的内容相同,则使用公钥解密。然后可以证明该文本确实是由持有私钥的人签署的。

例如,如果双方不承认,爱丽丝后来说我愿意给鲍勃1万英镑,并要求他返还99万英镑。如果文本发生了变化,即使私钥是正确的,哈希内容也会发生变化,并且内容不是原始的哈希值。

这里可以看出,数字签名方案通常包括三个过程:

系统初始化过程:生成数字签名方案中的所有系统和用户参数(公开和秘密)。

签名过程:用户使用给定的签名算法对消息进行签名。签名过程可能是公开的,也可能不是公开的,但是它必须包含只有签名者拥有的秘密信息(签名密钥)。

验证过程:验证者使用公开的验证方法验证给定消息的签名。

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

因此,数字签名有以下目的和要求

数字签名的目的是保证信息的完整性和真实性,即信息没有被篡改,签名也没有被篡改。该消息只能来自声称的一方。

一个完美的签名方案应该满足以下三个条件:

难忘:没有人能伪造签名,或篡改、伪造或假装接收或发送的信息。

不可否认性:签名者在事后不能否认或否认他的签名。

公平仲裁:如果双方对签名的真实性有争议,可通过公平仲裁员验证签名来确定签名的真实性。

数字签名课程到此结束。在下一课中,我们将继续分析区块链基本技术的一致性算法。一致性算法是区块链的引擎。它是如何工作的?下一堂课就要宣布了!

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发