Hash

哈希(Hash)算法主要作用是将一段任意长度的数据,经过计算转换成一段定长的数据。

这种算法的特性是:几乎不能通过Hash的结果推导出原文。并且几乎没有可能找到两个不同的信息,对两个信息进行Hash计算之后得到相同的哈希值。

Hash算法的一个重要特性就是:作验证的时候是快速的,但逆向推出明文是基本不可能的。例如:有两条信息,可以很快速的计算出来它们各自的哈希值,并通过哈希值的比对,就可以判定出两条信息是否内容相同,但是几乎不可能从过哈希值计算出信息的原文。

注:哈希函数的另外一个特性,难题友好性在区块链的工作量证明POW中起到很大作用。所谓难题友好性,是指没有便捷的方法去产生一个满足特殊要求的哈希值。比如,比特币区块,就是要求矿工计算到18个0开头的哈希值,这通常需要一个非常大的计算量。

非对称密码学的特征和用途

非对称密码学又称公钥密码学,是使用一对公钥和私钥的密码学,加密和解密用的不是同一把钥匙。

可以公开的钥匙叫公钥,需要保密的钥匙叫私钥。

公钥由私钥产生,私钥可以推导出公钥,但从公钥无法推导出私钥。

非对称密码的主要用途是:加密和数字签名

加密

加密,顾名思义就是对信息进行加密,在这种场景下,用公钥加密,用私钥解密

例如,小李要向小王发送保密信息时,首先小李使用小王的公钥对信息加密,然后把密文发送给小王,小王接收到密文之后,用自己的私钥解密获得信息明文

数字签名

数字签名主要的目的就是让签名者无法抵赖。和加密相反,在签名的时候,用私钥加密(签名),用公钥解密(验证)

例如:乙方收到甲方传过来的一串信息,怎么能够确定是由甲方而不是其他人伪造的呢?首先,需要甲方用自己的私钥对信息加密,然后把密文和明文发送给乙方,乙方使用甲方的公钥解密,如果能够成功解密就可以证明信息确实是甲方发出的。但是,通常不需要对发送信息的整个内容都加密,因为太慢,为了提高速度,可以利用Hash算法的特性,首先用Hash算法计算出信息的唯一摘要,然后对信息摘要加密,乙方用甲方公钥解密后得到的是信息的摘要,然后对信息作Hash计算得到摘要,将两个摘要对比,如果相同,可以认为该信息是甲方发出的。

证书和证书链

证书

证书是由证书签证机关(CA)签发的对用户的公钥的认证。

证书内容主要包括:电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等。(其实证书可以简单的看作一个公钥

证书链

CA是Certificate authority的缩写,证书授权者。就是颁发证书的机构。

根证书是颁发机构颁发给自己的(自签名,self-signed),这是信任的起点。

其实CA签发证书,就是用它自己的私钥对证书的公钥做数字签名。

某机构获得颁发机构颁发的证书及对应的私钥后,还可以用自己的私钥再颁发新的证书(数字签名),这样就形成了一个证书链。

对于一个证书链,如果头一个证书是可信的,那么后续的证书就都是可信任的

TLS

Fabric通过使用TLS(Transport Layer Security)实现节点间安全通信。

一个Peer节点同时是TLS服务端和TLS客户端:当另外一个Peer节点、应用或者CLI与当前Peer节点建立连接的时候,当前Peer节点是TLS服务端;当Peer节点与其它Peer节点或Orderer节点建立连接时,它是TLS客户端。

Hyperledger Fabric的一些密码学常识的更多相关文章

  1. HyperLedger Fabric 1.0的Transaction处理流程

    如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作.以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为 ...

  2. Hyperledger Fabric中的Identity

    Hyperledger Fabric中的Identity 什么是Identity 区块链网络中存在如下的角色:peers, orderers, client application, administ ...

  3. Hyperledger Fabric(3)通道与组织

    1,通道的结构 通道是Fabric中非常重要的概念(类似微信群?),它实质是由排序节点划分和管理的私有原子广播通道,目的是对通道的信息进行隔离,使得通道外的实体无法访问通道内的信息,从而实现交易的隐私 ...

  4. Hyperledger fabric 链码篇GO(四)

    Hyperledger fabric 链码篇GO(四) fabric中的链码也就是我们区块链所认知的智能合约,fabric中可由nodejs,java,go编写,本篇只针对GO语言编写链码.将详细介绍 ...

  5. 使用Node.JS访问Hyperledger Fabric的gRPC服务

    在即将正式发布的Hyperledger Fabric SDK 1.0中,Hyperledger Fabric通过gRPC提供服务接口以取代现有的REST API.本文介绍了如何使用Node.JS访问H ...

  6. Hyperledger fabric Client Node.js Hello World示例程序

    简介 Hyperledger fabric Client (HFC)提供了基于Node.js的应用接口来访问Hyperledger区块. 本文介绍了一个使用HFC访问IBM Bluemixr区块服务的 ...

  7. 基于docker的 Hyperledger Fabric 多机环境搭建(上)

    环境:ubuntu 16.04 Docker  17.04.0-ce go 1.7.4 consoul v0.8.0.4 ======================================= ...

  8. Hyperledger Fabric 1.0 从零开始(八)——Fabric多节点集群生产部署

    6.1.平台特定使用的二进制文件配置 该方案与Hyperledger Fabric 1.0 从零开始(五)--运行测试e2e类似,根据企业需要,可以控制各节点的域名,及联盟链的统一域名.可以指定单独节 ...

  9. Hyperledger Fabric 1.0 从零开始(五)——运行测试e2e

    3:运行测试e2e 3.1.运行fabric-samples的问题说明 该问题说明能够解决6.1.平台特定使用的二进制文件配置第一步的问题.可以选择继续阅读该说明,或者等参考到6.1小节时再反向阅读本 ...

随机推荐

  1. Dalvik指令备忘

    跳转指令 if-eq vx, vy, 目标 如果vx == vy注2,跳转到目标.if-ne vx,vy, 目标 如果vx != vy注2,跳转到目标. if-lt vx,vy, 目标 如果vx &l ...

  2. Python pandas & numpy 笔记

    记性不好,多记录些常用的东西,真·持续更新中::先列出一些常用的网址: 参考了的 莫烦python pandas DOC numpy DOC matplotlib 常用 习惯上我们如此导入: impo ...

  3. 【Alpha】团队课程展示

    团队展示报告 团队分工 陈涵 PM + 后端开发 ,统筹全队安排,完成了登录界面,以及一部分部门模块和课程中教室模块的编写. 张鹏 后端开发,主要完成了主界面和其他功能界面的编写,课程界面的编写,以及 ...

  4. PyQt5---ChangeIcon

    # -*- coding:utf-8 -*- ''' Created on Sep 13, 2018 @author: SaShuangYiBing ''' import sys from PyQt5 ...

  5. ajax知识点及正则表达式总结

    一.JSON JSON是JavaScript  Object  Notation 的首字母缩写,单词的意思是javascript对象表示法,这里说的json指的是类似于javascript对象的一种数 ...

  6. Python2.7-shutil

    shutil 模块,高级文件操作模块,支持文件或文件夹的复制和删除 模块方法: shutil.copyfileobj(fsrc, fdst[, length]):将类文件对象(在python中打开的文 ...

  7. Python2.7-SciPy

    SciPy函数库在NumPy库的基础上增加了众多的数学.科学以及工程计算中常用的库函数.例如线性代数.常微分方程数值求解.信号处理.图像处理.稀疏矩阵等等 1.最小二乘拟合 详细介绍:https:// ...

  8. 使用Tortoise结合Git比较两个版本的差异

    1.右键项目,TortoiseGit -------> Diff with previous version 2.单击出分支选择弹窗,进行选择要比较的两个分支 3.比较同个分支的两个不同的版本 ...

  9. Android处理ListView中的Item中的Button按钮不能点击的问题

    问题描述:ListView列表中的Button按钮按钮不能点击 解决办法:在ListView中的Item项的布局文件中加上:android:descendantFocusability="b ...

  10. 添加静态路由 route add -host 子网掩码 -- 在线解析

    1.215        -----       R(172.16.0.1)      <--------- gw(61.146.164.109) |                       ...