区块链核心技术揭秘:数字签名与哈希算法详解
区块链中的密码学是什么(区块链的密码技术)
加密动物技术是区块链技术的核心。
区块链的加密技术包括数字签名算法和哈希算法。
数字签名算法
数字签名算法是数字签名标准的子集,代表仅用于数字签名的特定公钥算法。
密钥在SHA-1生成的消息哈希上执行。
为了验证签名,重新计算消息哈希,使用公钥解密签名,然后比较结果。
缩写为DSA。
?
数字签名是电子签名的一种特殊形式。
到目前为止,包括欧盟和美国在内的至少20个国家已经通过了承认电子签名的法律。
8月28日,第十届全国人民代表大会常务委员会第十一次会议通过了我国《电子签名法》。
2004年..数字签名在ISO7498-2标准中定义如下:“添加到数据单元中的一些数据,或者对数据单元执行的加密转换。
这些数据和转换允许数据单元的接收者验证签名和数据的来源。
它确保了数据单元的完整性和保护其免受他人侵害,例如,保护数据免遭收件人伪造。
”数字签名机制提供了一种识别方法,解决了伪造、拒绝、冒充、篡改等问题,它利用数据加密技术和数据变换技术来保证发送和接收数据的双方都满足两个条件的数字签名。
是密码学理论的重要组成部分,因为它允许发送者声称他或她已经发送了现有纸质文档的数据。
既然电子签名被提出来取代手写签名,那么它必须具备五个特征:(1)签名是可信的;(2)签名是伪造的;(3)签名不能重复使用。
/p>
(4)签名文件不可更改。
散列算法
散列是将任意长度的输入(也称为预映射、原像)通过散列算法转换为固定长度的输出。
这种转换通常是一种压缩映射,其中不同的输入可以散列到相同的输出,但根本无法将任何长度的消息压缩为固定长度的消息摘要。
函数
哈希算法是一种单向加密系统,即只有加密过程而没有解密过程,同时哈希函数是明文到明文的不可逆映射通过更改输入,可以使用SHA(SHA256(k))或获得固定长度的输出。
以比特币区块链为例,其中二次哈希在工作量证明和密钥编码过程中多次使用,例如RIPEMD160(SHA256(K))。
这种方法的优点是增加了工作量,或者说在协议不明确的情况下增加了破解的难度。
比特币区块链代表的两个主要哈希函数是:
1.SHA-256,主要用于完成工作量证明(PoW)计算;
2.RIPEMD160,主要用于生成比特币地址。
下图1显示了从比特币公钥生成地址的过程。
密码动物学是数学和计算机科学的交叉点。
它有两个主要用途:一是加密通信。
这个方向的主要任务是保证信息在传输过程中不被篡改或截获。
这是我们很容易想到的一个方向。
但实际上,另一个方向同样重要。
这是一个数字签名。
数字签名类似于现实世界中的纸笔签名,可用于验证签名者的身份并提供不可否认性。
最初,加密货币在军事领域变得更加普遍,而民用应用则包括电子商务、银行支付、数字版权和其他关键社会领域。
因此,毫不夸张地说,加密货币是现代的支柱。
社会。
近年来,随着区块链和加密货币的出现,加密货币的发展进入了一个新的阶段。
区块链的底层是加密货币技术,但也包括经济学。
区块链应用了哪些技术来实现这个功能?
区块链应用了以下技术来实现这个功能
第一个是共识机制。
常用的共识机制主要有PoW、PoS、DPoS、PBFT、PAXOS等。
由于区块链系统没有中心,因此需要预设规则来引导各方节点就数据处理达成共识。
所有的数据交互都必须按照严格的规则和协议进行。
第二是加密技术。
加密技术是区块链的核心技术之一。
主要使用现代密码学中的许多经典算法,包括哈希算法、对称加密、非线性加密等。
对称加密、数字签名等。
第三种是分布式存储,是P2P网络中的分布式账本,每个参与节点独立完整地存储创建的区块数据信息。
与传统的中心化存储相比,去中心化存储的优势主要体现在两个方面:数据信息在各节点进行备份,防止单点故障导致数据丢失。
每个节点的数据独立存储,有效防止历史数据被恶意篡改。
。
智能合约:智能合约允许在不需要第三方的情况下进行可信交易。
只要一方达到预设的合约目标,合约就会自动执行交易且无法逆转。
。
具有透明、可靠、自动执行、强制履行等优点。
区块链技术具有许多独特的功能,使其成为一项独特的发明,并为探索提供了无限的视野。
这是Ulord关于深度学习的第四讲。
杨博士主讲区块链中的密码学问题。
这让我很烦恼。
他们之间是什么关系?我从这项研究中得到了答案,现在我知道了我将与您分享。
区块链中的公钥和私钥是非对称加密的两个基本概念。
公钥和私钥是通过算法得到的密钥对。
公钥是密钥对的公开部分,私钥是私有部分。
公钥通常用于加密对话,即消息或信息,也可用于验证使用私钥签名的数字签名。
您可以使用您的私钥进行签名并使用相应的公钥进行验证。
通过该公钥系统获得的密钥对可以保证全球唯一。
使用此密钥对时,如果使用一个密钥来加密数据,则必须使用该密钥来解密数据。
例如,使用公钥加密的数据必须使用私钥解密,如果使用私钥加密,则必须使用该公钥解密。
否则解密不会成功。
。
另外,在比特币区块链中,公钥是通过私钥计算出来的,地址是通过公钥计算出来的,这个过程是不可逆的。
1983年-DavidChaum解释的盲签名
1997年-AdamBack发明的HashCash(工作量证明系统的示例)
2001年-RonRivest、AdiShamir和YaelTauman向加密货币社区提出了环签名。
2004年-PatrickP.Tsang和VictorK.Ring关于投票和电子现金。
提议使用签名系统。
2008年-中本聪发表的比特币白皮书
2011年-比特币系统中的匿名性分析,FergalReid和MartinHarrigan
2012-比特币匿名目标地址(CryptoNote的一次性地址)。
安全多方计算始于1982年姚期智的百万富翁问。
随后,OdedGoldreich进行了更为详细、系统的讨论。
姚百万富翁问题最早由中国计算机科学家、图灵奖获得者姚期智教授提出。
问题表述如下:两个百万富翁,爱丽丝和鲍勃,想知道他们谁更富有,但他们都不希望其他人知道有关他们财富的信息。
这个问题有几个实际应用。
假设Alice想从Bob那里购买一些商品,但她愿意支付的最高金额是x元,而Bob愿意出售的最低价格是y元。
Alice和Bob都非常想知道x和y哪个更大。
任何xy都可以开始谈判。
如果你很高兴,就没有必要浪费口气。
但两人都不愿告诉对方自己的提议,以免在谈判中处于不利地位。
该方法用于比较两个数字以确定哪个数字更大。
Alice知道整数i,Bob知道整数j。
Alice和B0b想知道i=j还是ji,但他们不希望对方知道他们的号码。
为简单起见,假设j和i在[1,100]范围内。
Bob有一个公钥Eb和一个私钥Db。
安全多方计算(SecureMulti-PartyComputation)的研究主要针对如何在没有可信第三方的情况下安全计算约定函数的问题。
,电子投票,电子在拍卖、秘密共享、门限签名等场景中发挥着重要作用。
同态加密是密码学界很早之前提出的一个OpenProblem。
早在1978年,RonRivest、LeonardAdleman和MichaelL.Dertouzos在银行业背景下提出了这个概念[RAD78]。
是的,没错。
RonRivest和LeonardAdleman分别是著名的RSA算法中的R和A。
什么是同态加密?CraigGentry提出了FullHomomorphicEncryption[Gen09]的第一个构造,提供了最直观的定义。
也就是说,在不授予数据访问权限的情况下,不要委托数据处理。
这是什么意思?常见的加密方案侧重于数据存储安全。
这意味着您想要将加密的内容发送给其他人,想要在您的计算机或其他服务器上存储某些内容,或者想要在发送或存储数据之前对其进行加密。
如果没有密钥,用户无法从加密结果中获取有关原始数据的任何信息。
只有拥有密钥的用户才能正确解密并获取原始内容。
在此过程中,我们确保用户无法对加密结果进行任何操作,只能存储和传输它们。
对加密结果进行操作可能会导致解密错误或解密失败。
同态加密最有趣的地方在于它注重数据处理的安全性。
同态加密提供了处理加密数据的能力。
这意味着其他人可以处理您的加密数据,但原始内容在此过程中永远不会泄露。
同时,拥有密钥的用户对处理后的数据进行解密,得到准确的处理结果。
这有点抽象吗?让我们看一个真实的例子。
一位名叫爱丽丝的用户购买了一块大金块,并希望工人将其制成项链。
然而,工人可以在施工过程中窃取黄金。
毕竟,即使是1克黄金也值很多钱……那么有没有办法让工人处理金块(委托数据处理)但得不到任何黄金呢?而不授予访问权限)?当然有办法。
爱丽丝可以做到这一点。
爱丽丝将金子锁在一个密封的盒子里,盒子配有手套。
工人可以戴上这些手套来处理盒子内的黄金。
然而,由于箱子被锁住,工人们不仅拿不到金块,就连加工过程中掉落的黄金也拿不到。
这是处理完成后的样子。
爱丽丝把盒子拿回来,打开它,得到了金子。
这里,关系如下:盒子:加密算法盒子锁:用户密钥将金块放入盒子中,然后用挂锁锁上。
使用同态加密对数据进行加密。
它是一个同态函数,在无法获取数据的情况下直接处理加密结果。
解锁:哪里可以解密结果并直接得到处理后的结果?最近不是提到了云计算的概念吗?同态加密几乎是为云计算量身定做的!让我们考虑以下场景:用户想要处理一段数据,但是计算机的计算能力很弱。
该用户您可以使用云计算概念,您可以通过云处理并获得结果。
但数据直接传输到云端,安全性无法得到保证!因此,他可以使用同态加密,然后让云端直接处理加密后的数据,并将处理结果返回给他。
这样,用户向云服务提供商付费并获得处理结果。
云服务提供商收取费用并在不知道用户数据的情况下正确处理数据。
聚合签名是由Boneh等人开发的。
等人。
人们主要建议通过将多个签名合并为一个签名来提高签名和验证的效率。
如果要对多个用户的数据进行签名,聚合签名可以大大降低签名计算的复杂度。
CL是聚合签名。
零知识证明过程有两个参与者,一个称为证明者,另一个称为验证者。
证明者有一个秘密,并希望验证者相信它有一个秘密,但又不想向验证者透露该秘密。
通过双方基于协议的一系列交互,验证者最终得出证明者是否知道秘密的明确结论。
对于比特币来说,你只需要证明一笔转账交易是否合法的三件事:
发送的钱属于交易的发送者
发送者发送的金额和接收者收到的金额是相同的。
发送者的钱实际上已经被烧毁。
矿工在整个过程中没有做任何事情证明过程。
我们关心实际花了多少钱以及受益人是谁。
矿工只关心系统中的钱是否被保存下来。
Zcash就是利用这个思想来实现私密交易。
零知识证明的三个属性是:
(1)完整性。
如果证明者和验证者都是诚实的,遵循证明过程中的所有步骤,并执行正确的计算,证明应该成功,验证者应该能够接受证明者。
(2)理性。
任何人都无法通过冒充证明者来成功完成这一证明。
(3)根本没有知识。
证明过程完成后,验证者仅获得“证明者拥有该知识”的信息,而不会获得有关知识本身的任何信息。
只有环成员,没有管理者,环成员之间不需要合作。
签名者可以使用自己的私钥和集合中其他成员的公钥独立签名。
在帮助下,该组的其他成员甚至可能没有意识到他们也被包括在内。
环签名可以用作泄露秘密的一种方式。
例如,环签名允许您提供“白宫高级官员”的匿名签名,而无需透露哪位官员签署了该消息。
环签名适合这种应用,因为环签名的匿名性无法撤销,并且用于环签名的组可以动态创建。
1)密钥创建。
为环中的每个成员生成密钥对(公钥PKi,私钥SKi)
2)签名。
签名者使用他的私钥和n个环成员的公钥对消息m进行签名。
生成。
3)验证签名。
签名者根据环签名和消息m检查该环的成员是否已签名。
如果有效,则接收;如果无效,则丢弃。
群签名的一般流程
BlindSignature是签名者在对消息内容进行签名之前的一种数字签名方法。
内容不可见。
盲签名的概念由DavidChaum于1982年首次提出。
盲签名因其能够有效保护签名消息的具体内容而被广泛应用于电子商务、电子选举等领域。
比喻示例:签署文件就像将复写纸放入信封中。
当签名者在信封上签名时,文件是通过复写纸签署的。
所谓盲签名,就是先将隐藏的文档放入信封中,去除盲元素的过程保证文档一旦放入信封就无人能读取。
那。
要签署文档,请将复写纸放入信封中,签名者在信封上签名,然后签名通过复写纸转移到文档上。
一般来说,一个好的盲签名应该具备以下特性:
不可伪造。
除签名者外,任何人都不能以自己的名义创建有效的盲签名。
这是最基本的属性。
无免责声明。
一旦签名者签署了消息,他或她就不能否认签署了该消息。
即使是实名签名者对消息进行签名,消息的具体内容也是未知的。
没有跟踪。
一旦消息的签名被泄露,签名者就无法确定他或她何时签署了该消息。
满足上述属性的盲签名被认为是安全的。
这四个属性不仅是我们设计盲签名时遵循的准,也是判断盲签名性能的基础。
方案的可操作性和实施效率也是设计盲签名时需要考虑的重要因素。
私有签名的可操作性和实施速度取决于以下几个方面:
1.私人签名的长度;3、盲签名算法和验证算法。
隐藏签名具体步骤
1.接收者首先对待签名的数据进行盲转换,并将转换后的隐藏数据发送给签名者。
2.签名者签名完成后,会将其发送给收件人。
3.接收者对签名进行盲变换,从而得到签名者对原始数据的盲签名。
因为是4,所以满足条件①。
为了满足条件②,签名者不得在以后将盲签名与盲数据关联起来。
这通常是通过依赖某种协议来实现的。
在区块链技术中,主要采用加密机制来保证交易信息的完整性、真实性和隐私性。
?
区块链中的密码学包括布隆过滤器、哈希函数、加解密算法、数字证书和数字签名、同态加密、PKI系统等。
区块链的密码技术主要有
哈希算法;数字签名算法。哈希算法:哈希算法主要用于保证数据的完整性和安全性,可以将任意长度的二进制值映射为更小的固定长度的二进制值。
在区块链中,哈希算法用于为交易创建唯一标识符,并确保交易数据的安全性和完整性。
数字签名算法:数字签名算法主要用于验证数据的来源和完整性,防止数据被篡改或伪造。
区块链中,通过数字签名算法来验证交易的发起者和交易数据的真实性,从而保证交易的安全性和真实性。