区块链关键技术3(笔记)


一、数据归属:数字签名

比特币的数字签名,就是由比特币转出方才能生成的一段防伪造字符串。通过验证该交易是由转出方本人发起的,另一方面验证信息的完整性。数字签名由数字摘要技术和非对称加密技术组成。

1、数字签名的概念

数字签名是利用密码运算实现“手写签名”效果的一种技术,它通过某种数学变换来实现对数字内容的签名和盖章。在ISO7498-2标准中,定义为:

附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性,并保护数据,防止被人伪造。

在这里插入图片描述
一个数字签名由签名算法和验证算法组成。那么要实现“手写签名”的效果,数字签名应具有不可伪造、不可抵赖和可验证的特点

2、对数字签名的攻击类型

对数字签名的攻击主要是对签名进行伪造。从对数字签名的伪造程度可分为下面几种:

1、完全伪造,即攻击者能计算出私钥或者能找到一个能产生合法签名的算法,从而可以对任何消息产生合法的签名;
2、选择性伪造,即攻击者可以实现对某一些特定的消息构造出合法的签名;
3、存在性伪造,即攻击者能够至少伪造出一个消息的签名,但对该消息几乎没有控制力。

3、基本签名算法

RSA算法(R. L. Rivest, A. Shamir, and L. M. Adleman, 1978);
ElGamal签名(T. ElGamal, 1985);
Schnorr签名(C. P. Schnorr, 1989);
DSS签名(NIST, 1991);

4、消息认证

消息认证是指验证者验证所接收到的消息是否确实来自真正的发送方,并且消息在传送中没被修改的过程
消息认证是抗击伪装、内容篡改、序号篡改、计时篡改和信源抵赖的有效方法。
加密技术和数字签名均可用来实现消息认证,数字签名中,验证者对签名后的数据不仅能确定消息来源,而且可以向第三方证明其真实性,因而还能防止信源抵赖

消息认证码

消息认证更为简单的实现方法是利用消息认证码。消息认证码(MAC)也称密码校验和,是指消息被一密钥控制的公开单向函数作用后,产生的固定长度的数值,即MAC=CK(M)。
流程如下:
在这里插入图片描述

如图所示,假设通信双方A和B共享一密钥K,A欲发送给B的消息是M,A首先计算MAC=CK(M),其中CK()是密钥控制的公开单向函数,然后向B发送M‖MAC,B收到后做与A相同的计算,求得一新MAC,并与收到的MAC做比较,如果B计算得到的MAC与接收到的MAC一致,则。
原理:

1、接收方相信发送方发来的消息未被篡改,这是因为攻击者不知道密钥,所以不能够在篡改消息后相应地篡改MAC,而如果仅篡改消息,则接收方计算的新MAC将与收到的MAC不同。
2、接收方相信发送方不是冒充的,这是因为除收发双方外再无其他人知道密钥,因此其他人不可能对自己发送的消息计算出正确的MAC。

二、数据防篡改:数字摘要

为了保护信息在生成、存储或传输过程中保证不被偶然或蓄意地删除、修改、伪造、乱序、重放、插入等破坏和丢失,数字摘要算法,一种能够提供数据完整性的安全标准。典型算法有MD5和SHA-1.

1、定义

一个唯一对应一个任意长度消息或文本的固定长度的值,它由一个单向Hash函数对消息进行作用而产生。

2、原理

通过某种密码运算生成一系列符号及代码组成电子密码进行签名,来代替书写签名或印章,对于这种电子式的签名还可进行技术验证,其验证的准确度是一般手工签名和图章的验证而无法比拟的。
在这里插入图片描述

数字摘要i=Hash(信息报文i)、这里的Hash是一个不可逆的单一对应函数。

哈希函数的特征:

对不同的输入能够生成不同的值的特性使得无法找到两个具有相同哈希值的输入。

3、数字摘要的使用过程

1、发方A将原文信息进行哈希运算,得一哈希值即数字摘要MD;
2、发方A用自己的私钥PVA,采用非对称RSA算法,对数字摘要MD进行加密,即得数字签名DS;
3、发方A用对称算法DES的对称密钥SK对原文信息、数字签名DS及发方A证书的公钥PBA采用对称算法加密,得加密信息E;
4、发方A用收方B的公钥PBB,采用RSA算法对对称密钥SK加密,形成数字信封DE,就好像将对称密钥SK装到了一个用收方公钥加密的信封里;
5、发方A将加密信息E和数字信封DE一起发送给收方B;
注;这里的数字信封里含有对称密钥,后面用来对E进行解密,而信封需要B的私钥去解开;而加密信息E里包含原文信息、数字签名、A的公钥,B拿到后会使用A的公钥对数字签名进行解密得到数字摘要,然后对原文进行哈希运算,比较两种哈希值。具体如下
6、收方B接受到数字信封DE后,首先用自己的私钥PVB解密数字信封,取出对称密钥SK;
7、收方B用对称密钥SK通过DES算法解密加密信息E,还原出原文信息、数字签名DS及发方A证书的公钥PBA;
8、收方B验证数字签名,先用发方A的公钥解密数字签名得数字摘要MD;
9、收方B同时将原文信息用同样的哈希运算,求得一个新的数字摘要MD;
10、将两个数字摘要MD和MD进行比较,验证原文是否被修改。如果二者相等,说明数据没有被篡改,是保密传输的,签名是真实的;否则拒绝该签名。这样就做到了敏感信息在数字签名的传输中不被篡改,未经认证和授权的人,看不见原数据,起到了在数字签名传输中对敏感数据的保密作用。

4、数字摘要常用算法(MD5)

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现,MD5的前身有MD2、MD3和MD4。

MD5作用:

让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串。

MD5典型应用

对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。

数字摘要优缺点

优点
数字摘要可以保证信息原文的真实性,可在一定程度上防伪、防篡改,类似于签名的真实性检验,所以数字摘要也是数字签名技术之一。
缺点
数字摘要技术(如哈希算法)本身并不能保证数据的完整性,还必须与其他密钥加密技术结合起来使用才行。

数字摘要的应用

1、数字签名
2、文件校验
3、鉴权协议

三、安全技术:数字证书

数字证书就是标志网络用户身份信息的一系列数据,用来在网络通讯中识别通讯各方的身份,即要在 Internet上解决“我是谁”的问题。有点类似生活中的身份证

数字证书是由权威公正的第三方机构即数字证书认证中心(CA)签发和管理的,是标志网络用户身份信息的电子文档。

在这里插入图片描述

1、数字证书内容

最简单的证书包含一个公开密钥名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间发证机关(证书授权中心)的名称,该证书的序列号等信息。
在这里插入图片描述

2、数字证书原理

数字证书采用公钥机制,证书颁发机构提供的程序为用户产生一对密钥,一把是公开的公钥,它将在用户的数字证书中公布并寄存于数字证书认证中心。另一把是私人的私钥,它将存放在用户的计算机上。
在这里插入图片描述

3、常用的数字证书类型

1、个人数字证书:个人数字证书中包含证书持有者的个人身份信息、公钥及CA中心的签名,它就像我们日常生活中使用的身份证一样,在网络通讯中标识证书持有者个人身份的电子身份证书。
2、WEB服务器证书:是Web Server与用户浏览器之间建立安全连接时所使用的数字证书。
3、设备身份证书:设备身份证书中包含设备信息、公钥及CA中心的签名,在网络通讯中标识和验证设备的身份以保证与其他服务器或客户端通信的安全性。
4、无线应用证书:无线应用证书用于无线通讯用户的身份识别和信息安全。

4、数字证书的签发机构

提供电子认证服务的机构一般称为数字证书认证中心(Certificate Authority)数字证书是**数字证书认证中心(CA)**签发的,CA作为第三方认证机构具有三个特性:

1、权威性
2、公正性
3、可信性

5、数字证书基本功能

1、信息的保密性;
2、网络合法身份的确认性:能方便而可靠地确认网络中对方合法身份是网络信息交换的需要;
3、完整性:数字证书具有签名验证和对电子文件进行加密的功能,可以通过验证方式确认电子信息是否被修改过;
4、不可抵赖性

6、证书的获取

只要是具有公民权的个人、合法设立的单位、组织机构或网络设备、软件系统均可向CA中心申请数字证书。

7、数字证书的应用范围

1、网银系统;
2、网上报税;
3、网上公文传输;
4、网络身份认证;
5、电子商务;
6、电子政务;
7、安全电子邮件等。

二、链上通信:p2p传播机制

1、p2p网络

p2p定义:

网络的参与者共享他们所拥有的一部分硬件资源(CPU处理能力、GPU显卡能力、内存资源等),这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中心。在此网络中的参与者既是资源、服务和内容的提供者(Server),又是资源、服务和内容的获取者(Client)。
注意:

P2P 网络中的每个节点都可以既是客户端也是服务端,因此也不适合使用HTTP 协议进行节点之间的通信,一般都是直接使用Socket 进行网络编程

2、p2p技术原理

P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。在P2P网络中,每个节点既可以从其他节点得到服务,也可以向其他节点提供服务。解决了CS模式中的单一服务器容易出现单一失效点和单一的资源能力有限的问题。

3、p2p的三种主流结构

1、分布式哈希表(DHT)

在这个结构里每个节点具有一个唯一的节点标识(ID),节点ID是一个128位的哈希值。每个节点都在路由表里保存了其他前驱、后继节点的ID。如图所示。通过这些路由信息,可以方便地找到其他节点。这种结构多用于文件共享和作为底层结构用于流媒体传输。

在这里插入图片描述

2、树形结构

信息的流向沿着树枝流动。最初的树形结构多用于P2P流媒体直播。

在这里插入图片描述
3、网状结构

网状结构为P2P提供了最大的容忍性、动态适应性,在流媒体直播和点播应用中取得了极大的成功。当网络变得很大时,常常会引入超级节点的概念,超级节点可以和任何一种以上结构结合起来组成新的结构,如KaZaA[6]。

在这里插入图片描述

4、去中心化

区块链中加入P2P网络,使得区块链中的每一个节点都是完全对等的,从而达到去中心化的目的。去中心化,不是不要中心,而是由节点来自由选择中心、自由决定中心。任何中心都不是永久的,而是阶段性的,任何中心对节点都不具有强制性。

什么是去中心化

节点与节点之间的影响,会通过网络而形成非线性因果关系。这种开放式、扁平化、平等性的系统现象或结构,我们称之为去中心化

去中心化价值

1、容错力
2、抗攻击力
3、防勾结串联

5、传播机制

对于区块链来说,链上的信息传播,也需要具备传播者、传播途径、传播媒介以及接受者四个基本元素。

①所谓的传播者是链上交易的发起人,一般是一个区块链地址,也就是发起地址;
②传播途径是区块链的P2P组网机制,通过分布式的网络来完成信息的传播;
③传播媒介是区块链上的多有节点,交易信息需要经过每一个节点的验证和打包,才能最终达到接收者的地址里;
④接收者是接收该信息的区块链地址。区块链比较特殊,对于接受者地址可以是一个明确的区块链地址,也可以是空的地址,空的地址就代表了这条交易数据是部署的智能合约。

区块链的传播是有一定的规律的,如图所示,这是区块链完全去中心化的一种结构。当其中一个节点进行数据传输时,先将信息传给与自己相连的几个节点,这几个节点接收到信息之后,再往与自己相连的节点进行传输。按照这种传输的模式,将数据传输到全网。

在这里插入图片描述

参考资料

知链科技区块链教育。

猜你喜欢

转载自blog.csdn.net/qq_52215423/article/details/127236027