区块链核心技术解析:揭秘哈希算法与密码学原理

创始人
2024-12-18 17:35:52
0 次浏览
0 评论

区块链密码算法是怎样的?

区块链作为互联网时代的新技术,传统技术、分布式数据存储技术、共识机制和加密技术的新应用,越来越受到人们的关注。
通过组建各类区块链研究联盟,相关研究获得了更多的资金和人力支持。
区块链中使用的哈希算法、零知识证明、环签名等密码算法:

哈希算法

哈希算法是哈希的基础技术。
函数是映射到一组有限长度的数据流的任意长度(有限)的数据集。
如果这个函数同时满足:

(1)任何输入集合的哈希值的计算都是非常容易的

(2)你想找到2个不同的数据相同的哈希值计算起来很困难。

除非另有说明,满足上述两个属性的哈希函数通常称为密码哈希函数。
对于哈希函数来说,找到这样的值称为冲突。
目前流行的哈希函数有MD5、SHA1、SHA2、SHA3。

比特币使用SHA256,大多数区块链系统都使用SHA256算法。
那么这里我们先介绍一下SHA256。

1.SHA256算法步骤

第1步:添加哈希位。
该消息被屏蔽,以便消息的长度与448mod512匹配(长度=448mod512)。

第2步:附加长度值。
将原始消息(相加之前)的64位比特长度绑定到步骤1的结果(低位字节在前)。

第三步:初始化缓存。
使用256位缓存来存储哈希函数的中间结果和最终结果。

第4步:处理512位(16个字)消息包序列。
该算法使用6个基本逻辑函数,包括64次迭代运算。
每个步骤都将256位缓存值作为输入,然后更新缓存内容。
每个步骤使用32位常数值Kt和32位Wt。
其中Wt是一组之后的数据包,t=1,2,...,16。

第五步:处理完所有512位数据包后,最终SHA256算法生成的输出是256位消息。

哈希函数作为加密签名系统的核心算法,其安全性关系到整个区块链系统的根本安全。
所以哈希有必要关注当前研究活动的水平。

(哈希函数nsMD4、MD5、HAVAL-128和RIPEMD、CRYPTO2004Rampsession、HowtoBreakMD5和其他哈希函数、EuroCrypt2005的碰撞)。
该攻击非常复杂,在普通计算机上只需几秒钟。
当年2005年,王小云教授及其同事提出了SHA-1算法的碰撞算法,但其数学复杂度为2的63次方,在实际情况下很难实现。
他们的研究网站被黑了。
PDF文件内容不同,但SHA-1消息摘要相同,这意味着在理论研究早已警告SHA-1算法的危险性之后,SHA-1算法的实际攻击案例已经出现,也标志着。
SHA-1算法终于走到了生命的尽头。

NIST于2007年正式宣布将在全球范围内寻求新的下一代加密哈希算法,并将举办SHA-3竞赛。
新的哈希算法称为SHA-3,作为新的安全哈希标准,在现有FIPS180-2标准的基础上进行了改进。
算法供应于2008年10月结束。
NIST分别于2009年和2010年召开了两轮会议,选出进入两轮筛选的算法,获奖算法将于2012年公布。
整个公开竞赛流程是按照高级加密标准AES查询流程设计的。
2012年10月2日,Kecak被选为NIST竞赛获胜者,成为SHA-3。

Kecak算法是SHA-3的候选算法,于2008年10月推出。
Kecak使用创新的“海绵引擎”对消息文本进行哈希处理。
其设计简单,便于硬件实现。
KCsiak可以承受至少2n复杂度的攻击,其中N是哈希值的大小。
它具有广泛的安全裕度。
到目前为止,第三方密码学尚未显示出Kecak存在任何严重弱点。

袋鼠毛巾算法是Kecak最近提出的一个变体,计算轮数减少到12,但与原始算法相比,功能并不固定。

零知识证明

在密码学中,零知识证明(ZKP)是一种由一方用来向另一方证明A知道某个消息的技术。
揭示与x相关的任何其他内容的策略,前者称为证明者,后者称为证明者它称为验证器。
想象一个场景,系统中的所有用户都有所有文件的备份,使用自己的私钥加密并在系统中公开。
有时,用户Alice想要向用户Bob提供她的部分文件,问题是Alice如何让Bob相信她发送的文件是正确的。
一个简单的解决方案是爱丽丝将她的私钥发送给鲍勃。
零知识证明就是可以用来解决上述问题的解决方案。
零知识证明主要基于复杂性理论,在密码学领域具有广泛的理论扩展。
在复杂性理论中,我们主要讨论哪些语言可以用于零知识证明应用,而在密码学中我们主要讨论如何构建不同的零知识证明方案并使其足够最优和高效。

环签名群签名

1个群签名

在群签名方案中,任何群成员都可以匿名代表整个群并对消息进行签名。

与其他数字签名一样,群签名是可公开验证的,并且只能使用一个群公钥进行验证。
群签名的一般流程:

(1)初始化群管理员建立群资源并生成相应的群公钥(GroupPublicKey)和群私钥(GroupPrivateKey)。
整个系统中的公共,如群组成员、验证者等。

(2)会员加入当用户加入群组时,群组管理员会颁发群组成员证书(群组证书)。

(3)签名,群组成员使用获得的群组证书对文件进行签名,生成群组签名。

(4)验证同时,验证者只能利用群公钥验证获得的群签名的真实性,而无法知道群内的正式签名者。

(5)泄露群组管理员可以使用群组私钥来跟踪群组用户创建的群组签名,并泄露签名者的身份。

环是只有2个环成员、没有管理员的群签名,不需要环成员之间的配合。
在环中在签名方案中,签名者首先选择一组临时签名者,其中包括签名者。
然后签名者可以使用自己的私钥和其他人的公钥来生成签名,而无需其他人的帮助。
签署者团体的成员可能不知道他们被包括在内。

环签名方案由以下部分组成:

(1)密钥生成。
为环中的每个成员生成密钥对(公钥PKi,私钥SKi)。

(2)签名。
签名者使用自己的私钥和任意n个环成员(包括他自己)的公钥为消息M创建签名A。

(3)签名验证。
验证者根据环签名和消息m验证签名是否由环成员签名,如果接受,否则丢弃。

环签名满足以下属性:

(1)无条件匿名Anonymity匿名性:即使环成员获得了私有信息,攻击者也无法确定环签名是由环中的哪个成员创建的;钥匙。
,概率不超过1/n。

(2)真实性:签名必须经过所有其他人的验证。

这是一个由3个人代表一个团体签名的系统,验证者可以验证签名是由该团体的成员签署的,但不知道是哪个成员,从而达到签名者的匿名性。

(2)可追溯性。
在群签名中,群管理员的存在确保了签名跟踪。
群组管理员可以撤销签名以显示真正的签名者。
环签名本身不能泄露签名者,除非签名者自己想要公开签名或向签名添加附加信息。
提出了一种可验证的环签名方案,希望真实签名者知道自己的身份,在这种情况下,真实签名者可以通过泄露自己持有的秘密信息来确认自己的身份。

(三)管理体系。
群签名由群管理员管理,而环签名不需要管理。

链桥教育在线旗下学说创新区块链技术工作站是“智慧学习工场2020——学说创新工场”中唯一获得教育部规划建设发展中心认可的“区块链技术”。
“中国教育专业”试点站为学生提供多种发展路径、培养模式完善。
专业学位以产学研一体化为基础,构建实用型、一体化的技能培养体系。

区块链技术中的哈希算法是什么?

1.1。
简介

计算机从业者应该熟悉哈希这个词,将数据从一个维度映射到另一个维度。
通常业界用y=hash(x)来表示。
该哈希函数对x进行运算,计算出哈希值y。
区块链哈希函数的特点:

函数参数为String类型;

固定大小输出;

高效计算;

hash(x)!=hash(y)隐藏原始信息:例如验证区块链中不同节点之间的交易时,只需要将该信息被验证成为交易的熵,并且它节点之间无需比对原始信息,无需传输交易的原始数据。
常见的算法有SHA系列和MD5算法

1.2链上常用的是Hash。
哈希指针是指变量的值是根据实际数据计算出来的,指向实际数据的存储位置,即既可以表示实际数据内容,也可以表示实际数据的存储位置。
下图是HashPointer的示意图。

HashPointer在区块链中主要用在两个地方。
首先是构建区块链数据结构。
熟悉区块链的读者应该知道,区块链的数据结构是从创世区块开始,通过区块之间的指针连接起来的。
这个指针使用如图所示的HashPointer。
这样的数据结构的好处是,后续的区块可以查找之前所有区块中的信息,并且该区块的HashPointer的计算融合了之前区块的信息,在一定程度上保证了区块链不被轻易篡改。
第二个用途是创建MerkleTree。
MerkleTree的每个节点都是使用HashPointer创建的。
在接下来的文章中,我们将更详细地介绍区块链数据结构和MerkleTree的内容。

哈希还用于其他技术,例如交易验证和数字签名。

2.加密算法

2.1简要说明

加密简单来说就是通过算法对原始信息进行变换,使信息的接收者能够利用密钥进行解密密文的过程,得到原文。
根据加密和解密双方是否拥有相同的密钥,加密算法大致可分为三种子类型:

对称加密使用相同的密钥进行加密和解密,解密速度快、安全1然而,密钥的分发是困难的,常见的对称加密算法包括DES、AES、...

非对称加密非对称加密系统也称为公钥系统。
加密和解密时,加密方拥有公钥和私钥。
加密方可以将公钥发送给其他相关方,私钥由自己保管。
例如,在非对称加密中,银行向个人用户颁发的私钥存储在个人的USB盾已保存。
私钥可以被加密,其他人可以使用公钥来解密,反之亦然,通常更复杂并且执行时间更长。
相对对称加密的优点是不存在密钥分发的问题。
其他常见的非对称加密算法有RSA和ECC。
椭圆曲线ECC算法主要应用于区块链中。

对称加密和非对称加密的结合将加密过程分为两个阶段。
第一阶段使用非对称加密来分发密钥,以便对方能够安全地获取对称加密密钥。
使用对称加密对原始文本进行加密和解密。

2.2数字签名

数字签名也称为公钥数字签名,是一种类似于纸质签名的物理签名。
数字签名主要用于识别数据更改并确保签名者的不可否认性。
数字签名具有三个重要特征:

只有您可以签署自己的数字签名,但其他人可以验证该签名是由您签发的。

数字签名必须由特定的签名者签署。
链接签名可以肯定的是,实际上您的签名应该链接到纸质媒体;依赖非对称加密机制时,数字签名无法伪造。
首先需要生成个人公私钥对:(sk,pk):=generateKeys(keysize)sk的私钥由用户自己保存,pk的公钥可以与他人共享。
您可以使用sk对特定消息进行签名:sig:=sign(sk,message)。
这样你就可以得到特定的签名。
最后,持有公钥的一方可以验证签名:isValid:=verify(pk,message)。
,sig)在区块链系统中,每笔数据交易都需要签名。
在比特币的设计过程中,直接用用户的公钥来代表用户的比特币地址。
这样,当用户发起电汇等比特币交易时,可以轻松验证用户交易的合法性。

2.3数字证书与认证中心

2.3.1数字证书(DigitalCertificate)

数字证书也称为“数字ID”、“网络ID”“它是由认证机构授权发布并经过认证机构数字签名的电子文件,包含公钥所有者和公钥信息。
它可以用来识别数字证书的所有者。
数字证书包含:公钥、证书名称信息、颁发机构对证书的数字签名以及匹配的私钥。
该证书可以存储在网络上的数据库中。
用户可以利用网络相互交换证书。
如果证书被吊销,颁发该证书的认证机构仍将保留该证书的副本,以解决将来可能出现的争议。

2.3.2证书颁发机构(CertificateAuthority)

证书颁发机构一般简称为CA一般指的是被认可和信任的第三方组织。
它的主要任务是为每个用户颁发证书。
包含名称和公钥的唯一数字证书。

2.4常见加密算法比较

热门文章
1
新加坡区块链行业薪资福利揭秘:高薪与职业... 区块链工程待遇如何?新加坡的区块链公司表现如何?1.薪资。在新加坡的一家区块链公...

2
揭秘区块链发票:与传统电子发票的五大关键... 区块链发票有什么好处(区块链发票是什么样子的)区块链电子发票涉及的主要角色有:1...

3
深入解析:区块链智能合约原理与核心技术 区块链智能合约的原理1、智能合约的原理是基于区块链技术实现点对点的直接连接。这种...

4
揭秘区块链:去中心化时代的信任与价值创新 区块链技术特点区块链技术具有去中心化、开放、自由、安全、匿名等特点。区块链本质上...

5
Filecoin/IPFS挖矿攻略:算力... Filecoin挖矿原理解析,怎样计算矿机算力和选择矿机?FileCoin/IP...

6
区块链钱包搭建指南:从基础到应用 如何搭建区块链钱包通道(如何搭建区块链钱包通道)区块链钱包开发、数字货币钱包ap...

7
EsportsChain(TMD):全球... 国际区块链竞赛有哪些(国际区块链平台)全球首个区块链电竞商业链平台——电竞链(T...

8
探索BitBlue与Swap:揭秘数字货... 比特蓝是什么意思?BitBlue又称BitcoinBlue,是一种基于区块链技术...

9
揭秘区块链:五大核心特性与广泛应用 区块链的特性包括哪些(区块链的特性包括哪些内容)区块链技术的特点1.区块链技术的...

10
USDT详解:不同版本互操作性与市场风险... 持仓币种笔记1——USDT(Tether)如果T是ETH地址(地址以0x开头),...