区块链中应用到的密码学主要包括以下几方面:
区块链本质上是一种分布式数据存储方式,每一个数据区块之间靠数字摘要建立起联系,比如比特币中每一个区块都包含了它前一个区块的摘要值。因此数字摘要是区块链中应用最广泛的密码学技术,也是区块链的核心技术之一。
区块链中常用的数字摘要算法是SHA-256和RIPEMD160,其中SHA256是构造区块链所用的主要摘要算法。比如在比特币中,SHA256主要用于完成PoW(工作量证明)计算,也就是挖矿;在HyperLedger-Fabric区块链平台中,主要用于检测数据未经授权的修改,签名者的身份识别和抗抵赖。区块链中每一区块除了自身的数据外,还包含了前一区块数据的数字摘要值,并通过指针指向前一区块,这样的列表结构建立起了了整个链条。
如果攻击者篡改了某一区块(比如第K块)的值,那K+1块的保存的H(K)就和K摘要计算的值不一致,攻击者为了掩盖篡改,可以修改K+1块中的H(K)的值,但这样K+2块的H(K+1)与K+1块摘要计算结果又不一致,攻击者不得不继续修改H(K+1)值……以此类推,攻击者理论上要修改从K+1块开始的区块链上所有的节点数据才能不被发现,这在实践上根本不可行,而且某些特殊节点数据是无法被修改的。这就是区块链保证数据防篡改的原理。
Merkle树
默克尔树,它是基于数字摘要的二叉树或多叉树。Merkle树最底层节点包括了区块数据和它的数字摘要值,其它层的节点则包含了下层两个子节点数据合并后的摘要值。其结构示例如下。
Merkle树的特点是底层节点的数据变化可以一层层传递到最上层节点;反过来讲,通过最上层节点就可以监测底层节点数据的变化情况。利用这个特点,区块链中使用Merkle树可以实现数据快速比较、节点快速定位,而不需要下载整个链上数据。比特币中的简单支付验证(SPV)就是基于Merkle树的一个典型应用。
区块链使用数字签名来确认交易者的身份。比如在加密货币交易中,交易的发起方将交易信息进行数字签名,并将签名结果提交给矿工,矿工使用签名用户的公钥验证签名,验证通过,则交易信息记账,完成交易。区块链中使用的数字签名算法都是基于ECC的,如比特币中使用的是基于secp256k1椭圆曲线密码算法。
区块链中也有涉及到使用对称加密的应用场景。如比特币官方客户端使用AES(对称分组密码算法)加密钱包文件,确保客户端私钥的安全。
HMAC是Hash-based Message Authentication Code的简称,翻译成中文是基于Hash的消息认证码。它的前身就是MAC(消息认证码)。其实HMAC运算和数字签名有些类似,数字签名是使用私钥对数字摘要进行非对称加密,而HMAC则使用协商密钥对数字摘要进行对称加密(知道这一点,HMAC的过程就不用再描述了)。因此可以把HMAC看作数字摘要的加强版,目的还是保护数据的完整性。前面讲过,数字摘要在区块链中有着极其重要的作用,因此有必要为摘要再加层密,不让它“裸奔”,使其更可靠。
同态加密其实并不是新技术,区块链之前就有它了。同态加密的意思就是让加密后的数据继续保持加密前明文数据的运算特性和功能。举个简单的例子,对于下面的算式:
1+2=3
假设我们对1和2分别加密后得到两个密文(十六进制表示):
1-------->0x8CBD41
2-------->0x1EF9B7
然后把两个加密结果相加得到和:
0x8CBD41+0x1EF9B7=0xABB6F8
现在解密这个和,按照之前的加密方法,我们是无论如何也不可能解密出3的。但如果是同态加密,1和2加密结果的和,解密后也应该是3,即数据虽然加密了,但它的运算特性仍然保持着,这也就是所谓的“同态”。可以用如下公式表示,E表示同态加密算法,F表示数据运算, a,b,c为参与运算的明文数据:
F(E(a),E(b),E©)=E(F(a,b,c))
在区块链去中心化的结构中,很多重要敏感数据可能要在第三方的节点进行运算处理,因此需要将数据在加密状态下进行处理。这就是同态加密在区块链中的作用。
上面就简单介绍了区块链运用到的几项主要密码学技术,部分内容来自网络。区块链中的密码学实际应用过程远比文章描述复杂。如果大家感兴趣,可以参考专业的文章书籍。
数据的组织方式,
区块链
的块链结构。通过块的哈希链接起来的链。
世界状态:使用 merkle 哈希树组织,便于快速检索和网络传输。如账户树,交易树,账单树等。hash 函数保证数据完整性。sha256/RIPEMD160
布隆过滤器:轻客户端快速索引交易。
椭圆曲线签名算法。签名认证,确认信息发送方的身份,确认
区块链
上信息的来源。
访问控制与隐私保护:可以确定谁在什么条件下可做什么事,保证
区块链
上加密的数据只被授权用户看到。如属性加密
秘钥交换协议:
转自CCF,网址:https://dl.ccf.org.cn/institude/institudeDetail?id=4810535938246656
摘要:
区块链
账本技术具有去
中
心化、难篡改、公开可验证等特点,近年来受到广泛关注。但是,隐私问题可能成为阻碍其进一步发展的瓶颈之一。本文着重介绍现有
区块链
隐私保护技术,致力于为
区块链
隐私问题提供引导与启发。
关键词:隐私保护
区块链
密码
学
数字货币
区块链
与元宇宙是当今世界的热门话题,
密码
技术是
区块链
与元宇宙的技术基础,本文从
密码
技术和
密码
算法基础、
区块链
原理,
密码
技术在
区块链
中
的具体
应用
这几个维度对
区块链
进行了介绍,适合具备一定计算机基础的工科本科生、研究生或者IT从业者
学
习
密码
技术和
区块链
之用,通过对本文的
学
习,读者可以掌握
密码
技术发展历史、基础概念、基本算法和
区块链
原理以及
密码
技术在
区块链
中
的具体
应用
。
一.
密码
学
基础
密码
算法
PKI体系
二.
区块链
原理
区块链
1.0
区块链
2.0
三.
密码
技术在
区块链
的
应用
收入真实性验证
哈希算法
应用
对称加密,顾名思义就是公钥和私钥都是同一个,只有一把密钥,那么密钥的共享就需要特别注意,容易泄露。但是由于它的加密效率高(速度快、占用空间小),主要用在大量数据的加密,往往需要提前分发密钥。
对称
密码
从实现上可以分为两种:分组
密码
和序列
密码
。前者将明文切分为定长数据块作为基本加密单位,
应用
最为广泛。后者则每次只对一个字节或字符进行加密处理,且
密码
不断变化,只用在一些特定领域,如数字媒介的...
密码
学
技术是
区块链
数据核心技术(P2P网络协议、共识机制、
密码
学
技术、账户与存储模型)
中
核心的技术点,
区块链
主要用到的
密码
算法有哈希算法和加密算法,加密又包括对称性加密和非对称性加密两个概念,
区块链
系统里面一般常用到的是非对称加密。
本文首先把
密码
学
相关的知识说明一下,并附有部分JAVA代码,然后用比特币作为例子说明一下在
区块链
系统
中
的使用。
【算法说明】
(一)哈希算法
哈希算法是
区块链
中
用的最...
布隆过滤器是一种基于 Hash 的高效查找结构,能够快速判断某个元素是否在一个集合内。
首先回顾一下基于Hash的快速查找,由于Hash算法具有一一对应的特点,即一个内容对应一个Hash值,而Has...
本文主要总结了
密码
学
与安全领域
中
的一些核心问题和经典算法。通过阅读本文内容,相信读者已经对现代
密码
学
的发展状况和关键技术有了初步了解。掌握这些知识,对于帮助理解
区块链
系统如何实现隐私保护和安全防护都很有好处。现代
密码
学
安全技术在设计上大量
应用
了十分专业的现代数
学
知识,如果读者希望成为这方面的专家,则需要进一步
学
习并深入掌握近现代的数
学
科
学
,特别是数论、抽象代数等相关内容。可以说,
密码
学
安全
学
科是没有捷径可走的。
信息安全的性质:Condfidentiality(机密性),Authentication(认证),Data integrity(完整性),Availability(可用性),Non-repudiation(不可否认),Access control(访问控制),Anonymity(匿名性)
密码
学
工具:对称
密码
,公钥
密码
,单向散...
版权声明:本文为作者原创,如需转载,请注明出处https://blog.csdn.net/weixin_42940826注:以下图片来自于《图解
密码
学
》,这本书讲的更全面细致,建议阅读,在我资源库
中
有此书,还有使用go语言具体实现和解释此书
中
的各种加密算法的文档,有需要的可以自习前往免费下载
Q:为什么需要分组模式?
A:明文的长度不固定,而分组
密码
只能处理特定长度的一块数据,这就需要对分组
密码
的算法进行迭代,以便将一段很长的明文全部加密,而迭代的方法就是分组的模式。
一图全览五种分组模式
区块链
是多种技术相互结合的产物,其
中
最重要的一项就是加密解密。本文总结加解密技术在
区块链
中
的
应用
。
加密解密技术
加密是指利用密钥将信息生成密文的技术。解密就是反过来,利用密钥将密文还原称可读信息的技术。目前,根据密钥的不同主要分为对称加密和非对称加密两种。
对称加密是指加密和解密采用同一把密钥。其特点为算法公开、计算量小、加密速度快、加密效率高。主要算法有DES,3DES,AES,TDEA,Bl...
加密模式(英文名称及简写)
中
文名称 Electronic Code Book(ECB)