文章目录

  • 一、数据归属:数字签名
    • 1、数字签名的概念
    • 2、对数字签名的攻击类型
    • 3、基本签名算法
    • 4、消息认证
      • 消息认证码
  • 二、数据防篡改:数字摘要
    • 1、定义
    • 2、原理
      • 哈希函数的特征:
    • 3、数字摘要的使用过程
    • 4、数字摘要常用算法(MD5)
      • MD5作用:
      • MD5典型应用
      • 数字摘要优缺点
      • 数字摘要的应用
  • 三、安全技术:数字证书
    • 1、数字证书内容
    • 2、数字证书原理
    • 3、常用的数字证书类型
    • 4、数字证书的签发机构
    • 5、数字证书基本功能
    • 6、证书的获取
    • 7、数字证书的应用范围
  • 二、链上通信:p2p传播机制
    • 1、p2p网络
      • p2p定义:
    • 2、p2p技术原理
    • 3、p2p的三种主流结构
    • 4、去中心化
      • 什么是去中心化
      • 去中心化价值
    • 5、传播机制
    • 在这里插入图片描述
  • 参考资料

一、数据归属:数字签名

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

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

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

参考资料

知链科技区块链教育。

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

  1. 区块链关键技术1(笔记)

    文章目录 一.数据链上ID:哈希 哈希算法: 哈希是如何工作的 哈希算法的应用 1.安全加密: 2. 数据校验(用于检验数据的完整性和正确性): 哈希算法在分布式中的应用 1.负载均衡 2.数据分片( ...

  2. 云小课 | 区块链关键技术之一:共识算法

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:区块链是一种去中心 ...

  3. 区块链关键技术研究进展

    摘要 区块链是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储.难以篡改.防止抵赖的记账技术,也称为分布式账本技术.近年来,区块链技术的发展对社会产生了重要的影响.本文介绍近年来 ...

  4. 国内与国外区块链关键技术现状及差异

    国内外区块链发展几乎同时起步,从全球来看,全球区块链发展正从全面否定与全面推崇的感性认识趋于理性认识,国外内都更加专注于探索区块链潜在的应用价值和商业模式.然而,国内外针对区块链技术的发展重点.部署策 ...

  5. GeeK正在探索的也是你需要了解的——区块链关键技术小览

    这些年以来,数字货币的兴起也将区块链技术带到了大家的视野中.相信大家都或多或少的听过比特币,区块链.但是,对于区块链的原理,对于区块链目前所面临的问题,可能知道的人不多.本文,将为你一一解答这些问题. ...

  6. 专家:区块链底层技术创新是关键

    封面图来源 | Pixabay 来源 | 中国证券报·中证网 作者 | 杨洁 浙江大学区块链研究中心常务副主任.浙江省区块链技术研究院院长蔡亮近日接受中国证券报记者专访时表示,当下区块链产业应用领域进 ...

  7. 超详细的【区块链】技术介绍整理(七千余字+九大板块)

    区块链:详细介绍 一.什么是区块链(Blockchain)? 1.定义 2.从不同视角认识区块链 3.用生活中的例子理解区块链 二.区块链的来源 三.区块链的发展阶段 1.酝酿期 2.萌芽期 3.发展 ...

  8. 区块链学习笔记:D02 区块链的技术发展历史和趋势

    对于区块链的技术发展历史,其实在我的印象中也就对比特币有所了解,也听过什么火币之类的玩意,但是具体是什么.怎么运作的就不清楚了... 这次的内容首先是讲解了区块链的技术演进,一张图一目了然,虽然里面涉 ...

  9. 基于区块链交易技术开发的证券

    基于区块链交易技术开发的证券 区块链交易技术在金融市场还不是主流的技术运用,但是加密货币在金融领域的影响力却不可同日而语.虽然目前的加密货币市场低迷,但是区块链技术却在全球各个国家引起了行业的重视. ...

最新文章

  1. java setrequestheader_Java SampleResult.setRequestHeaders方法代码示例
  2. 160 - 18 Brad Soblesky.1
  3. django-新的django项目
  4. (67)FPGA模块调用(Verilog调用system Verilog)
  5. 搭建用友开发环境(基于碧桂园的nchome)
  6. MacBook 摄像头不工作怎么解决
  7. Ubuntu 11.04上安装jdk1.6+oracle 11g笔记
  8. JDBC数据库编程(java实训报告)
  9. unity 2018.3.0版本界面汉化
  10. java 文档注释生成_Java的文档注释之生成帮助文档的实例
  11. Win10如何设置护眼模式?
  12. 玩大灾变出现“igxprd32显示驱动程序已经停止正常工作”解决方法
  13. 能让你脱颖而出的简历应该这么写
  14. 8.6 空间曲面及方程
  15. 哈工大操作系统学习笔记十——信号量与死锁
  16. 改变命运的早上三分钟 之 一
  17. 如何将Blender模型导入Panda3d
  18. 微信企业号开发:微信考勤百度地图定位,错误修正
  19. EasyUI的icon图标的种类
  20. py学习9——linux常见指令

热门文章

  1. 【网络】Cos和ToS和DSCP|Qos|PHB的含义和区别以及映射
  2. 支付宝开放平台 配置RSA(SHA1)密钥 OpenSSL配置公钥私钥对
  3. 单工、半双工、全双工一点通
  4. itextpdf创建pdf,开箱即用
  5. MLK | 机器学习采样方法大全
  6. 如何将服务器端的文件或文件夹下载到本地
  7. 计算机网络 第五章 应用层
  8. HTTP 401 错误
  9. iPhone13问题多,iPhone12价格贵,苹果用户难抉择
  10. AANet_Attribute_Attention_Network_for_Person_Re-Identifications