揭秘区块链加密技术:核心算法与应用解析
区块链是怎么加密,区块链加密技术应用
区块链密码学技术包括加密动物学技术是区块链技术的核心。
区块链密码技术包括数字签名算法和哈希算法。
数字签名算法
数字签名算法是数字签名标准的子集,代表仅用于数字签名的特定公钥算法。
密钥在SHA-1生成的消息哈希上运行:为了验证签名,重新计算消息哈希,使用公钥解密签名,然后比较结果。
缩写为DSA。
?
数字签名是电子签名的一种特殊形式。
到目前为止,至少有20多个国家通过了承认电子签名的法律,其中包括欧盟和美国。
8月28日,第十届全国人民代表大会常务委员会第十一次会议通过了《电子签名法》。
2004年..数字签名在ISO7498-2中被定义为:“添加到数据单元的某些数据,或者对数据单元进行的加密转换。
这种数据和转换允许数据单元的接收者确认数据单元的来源和数据并保护数据免遭第三方(例如接收者)篡改,以解决诸如此类的问题。
”篡改、否认、冒充和伪造它使用数据加密技术和数据转换技术,让双方发送和接收数据,以满足两个条件:接收方可以识别数据是什么;发送方以后不能声称其身份;否认他发送了数据的事实。
数字签名是密码学理论的一个重要分支。
提出以电子文档签名来替代传统纸质文档上的手写签名,因此它必须具备5个特征。
(1)签名可信。
(2)签名不可伪造。
(3)签名不可重复使用。
(4)签名文件是不可变的。
(5)签名构成不可否认性。
哈希算法(hashing)
哈希是将任意长度的输入(也称为预映射、原像)通过哈希算法变换为固定长度的输出,输出是哈希值。
这种转换是一种压缩映射,其中哈希值空间通常比输入空间小得多。
不同的输入可以散列到相同的输出,但输入值不能向后推断。
简单来说,就是将任意长度的消息压缩成固定长度的消息摘要的函数。
哈希算法是一种单向密码系统,即从明文到密文的不可逆映射,只有加密过程,没有解密过程。
同时,哈希函数可以修改任意长度的输入以获得固定长度的输出。
哈希函数的单向特性和哈希数据的固定长度输出允许它生成消息或数据。
以比特币区块链为例,在工作量证明和密钥编码过程中会重复使用二次哈希,例如SHA(SHA256(k))或RIPEMD160(SHA256(K))),这种方法的优点是增加了工作量或者在协议不清楚的情况下增加了破解的难度。
以比特币区块链为代表,主要使用的两种哈希函数为:
1SHA-256,主要用于进行PoW(工作量证明)计算;
2.RIPEMD160,主要用于生成比特币地址。
如下图1所示,比特币的公钥生成地址的过程。
先放一张以太坊的架构图:
在学习的过程中,我们主要使用的是单一的模块用于学习和理解,包括P2P、密码学、网络、协议等。
我们直接开始总结吧:
密钥分发问题也是密钥传输问题。
如果密钥是对称的,那么密钥只能离线交换。
如果密钥是在线传输的,则可以被截获。
因此,采用非对称加密,有两个密钥,一个私钥保密,另一个公钥公开。
公钥可以通过互联网传输。
无需线下交易。
确保数据安全。
如上图所示,节点A向节点B发送数据,此时采用公钥加密。
节点A从自己的公钥中获取节点B的公钥,对数据进行明文加密,并将密文发送给节点B。
节点B使用自己的私钥进行解密。
2.无法解决消息篡改问题。
如上图所示,节点A使用B的公钥进行加密,然后将密文传输给节点B。
节点B使用节点A的公钥对密文进行解密。
1.由于A的公钥是公开的,一旦网络黑客截获了该消息,密文就毫无用处。
说白了,这种加密方式只要消息被截获就可以解密。
2.还有无法确定消息来源的问题以及消息篡改的问题。
如上图所示,节点A在发送数据之前,先用B的公钥加密得到密文1,然后用A的私钥加密密文1得到密文2节点B获得密文后,首先使用A的公钥解密,得到密文1,然后用B的私钥解密得到明文。
1.当数据密文2在网络上被截获时,由于A的公钥是公开的,所以可以用A的公钥解密密文2,得到密文1。
所以看起来是双重加密,但实际上是最后的私钥签名层无效。
一般来说,我们都希望签名是在最原始的数据上签名的。
如果签名稍后放置,则签名缺乏安全性,因为公钥是公开的。
2.存在性能问题。
非对称加密本身效率很低,要进行两次加密过程。
如上图所示,节点A先用A的私钥加密,再用B的公钥加密。
节点B收到消息后,首先使用B的私钥来加密解密它,然后使用A的公钥解密它。
1.当密文2的数据被黑客截获时,由于密文2只能使用B的私钥才能解密,而B的私钥只属于节点B,其他人无法保密。
因此安全性是最高的。
2.当节点B解密得到密文1时,它只能使用A的公钥来解密。
只有A的私钥加密的数据才能用A的公钥成功解密,只有节点A拥有A的私钥,因此可以确定数据是节点A传输的。
经过两次非对称加密后,性能问题很严重。
基于上述数据篡改问题,我们引入了消息认证。
消息认证后的加密过程如下:
节点A发送消息时,首先对明文数据进行哈希计算。
获得摘要,然后将照明和原始数据同时发送到节点B。
当节点B收到消息时,它会解密该消息。
分析哈希摘要和原始数据,然后对原始数据进行相同的哈希计算,得到摘要1,并将摘要1与摘要1进行比较。
如果相同,则没有被更改;如果相同,则没有被更改。
如果它们不同,则它们已被更改。
在传输过程中,只要密文2被篡改,得到的hash就会与hash1不同。
签名问题无法解决,即双方互相攻击。
A始终无法识别他发送的消息。
例如,A向B发送错误消息,导致B损失。
但A否认该消息是他自己发送的。
在(3)的过程中,没有办法解决交互双方之间的相互攻击问题。
这意味着什么?可能A发送的消息对节点A不利,后来A否认该消息不是他发送的。
为了解决这个问题,引入了签名。
这里我们将(2)-4的加密方法与消息签名结合起来。
上图中,我们使用节点A的私钥对其发送的摘要信息进行签名,然后添加签名+原文,然后使用B的公钥进行加密。
B获得密文后,首先使用B的私钥解密,然后使用A的公钥解密摘要。
它仅比较两个摘要的内容是否相同。
这样既避免了防篡改的问题,又避免了双方攻击的问题。
由于A签署了信息,因此无法否认。
为了解决非对称数据加密时的性能问题,常采用混合密。
在这里我们需要引入对称加密如下所示:
在加密数据时,我们使用双方共享的对称密钥进行加密。
对称密钥尽量不要在网络上传输,以免丢失。
这里共享的对称密钥是根据自己的私钥和对方的公钥计算出来的,然后用对称密钥来加密数据。
对方收到数据时,也计算对称密钥并解密密文。
上述对称密钥并不安全,因为A的私钥和B的公钥一般在短期内是固定的,因此共享的对称密钥也是固定的。
提高安全性的最佳方法是为每次交互生成临时共享对称密钥。
那么我们如何在每次交互过程中生成随机对称密钥而不传输它呢?
那么如何生成一个随机共享密钥进行加密呢?
对于发送节点A来说,每次发送都会生成一个临时的非对称密钥对,然后根据节点B的公钥和临时的非对称私钥就可以计算出对称密钥。
。
(KA-密钥协议算法)。
然后使用对称密钥来加密数据。
这里共享密钥的过程如下:
对于节点B来说,收到发送的数据后,解析出节点A的随机公钥。
。
然后使用节点A的随机公钥和节点B本身的私钥计算对称密钥(KA算法)。
然后使用对称密钥对数据进行加密。
对于上述加密方式,还存在很多问题,比如如何避免重放攻击(通过在消息中添加Nonce),以及弧表-en-ciel等问题(参考KDF机制来解决)。
由时间和能力有限,我暂时忽略它。
那么您应该使用什么类型的加密?
主要是根据要传输的数据的安全级别。
不重要的数据其实是可以进行认证和签名的,但是非常重要的数据就必须使用安全级别比较高的加密系统。
密码套件是一个网络协议概念。
主要包括身份认证、加密、消息认证(MAC)、密钥交换等算法。
整个网络的传输过程中,算法按照密码套件主要分为以下几类:
密钥交换算法:如ECDHE、RSA等。
主要用于客户端和服务器协商时的认证。
消息认证算法:如SHA1、SHA2、SHA3。
主要用于消息摘要。
批量加密算法:如AES,主要用于对信息流进行加密。
伪随机数算法:例如,TLS1.2的伪随机函数使用MAC算法的哈希函数来创建主密钥——连接双方共享的48字节私钥。
在创建会话密钥(如创建MAC)时,主密钥充当熵源。
在网络中,消息的传输一般需要采用以下四个步骤进行加密,以保证消息传输的安全可靠。
握手阶段/网络协商:
双方在握手阶段,需要进行链路协商。
主要的加密算法有RSA、DH、ECDH等。
身份认证阶段:
在身份认证阶段,必须确定发送消息的来源。
主要使用的加密方法有RSA、DSA、ECDSA(ECC加密、DSA签名)等。
消息加密步骤:
消息加密是指对发送的信息流进行加密。
主要使用的加密方法有DES、RC4、AES等。
消息身份认证阶段/防伪阶段:
主要涉及保证消息在传输过程中不被篡改。
主要的加密方法有MD5、SHA1、SHA2、SHA3等。
ECC:EllipticCurvesCryptography,椭圆曲线密码学。
它是一种基于椭圆上的点积生成公钥和私钥的算法。
用于生成公钥和私钥。
ECDSA:用于数字签名,是一种数字签名算法。
有效的数字签名使接收者有理由相信该消息是由已知的发送者创建的,因此发送者无法否认该消息已发送(身份验证和不可否认性)并且该消息在传输过程中未被修改。
。
ECDSA签名算法是ECC和DSA的结合。
整个签名过程与DSA类似。
不同的是,签名时使用的算法是ECC,最终的签名值也分为r和s。
主要用于身份认证阶段。
ECDH:这也是基于ECC算法的哈夫曼树密钥。
使用ECDH,双方可以在不共享任何秘密的情况下协商出一个共享秘密,并且这个共享秘密密钥就是当前的秘密密钥。
通讯是暂时产生的。
随机,一旦通信中断,密钥就会消失。
主要用在握手协商阶段。
ECIES:是一种集成加密系统,也称为混合加密系统,提供针对选定明文和密文攻击的语义安全性。
ECIES可以使用不同类型的函数:密钥协商函数(KA)、密钥导出函数(KDF)、对称加密方案(ENC)、哈希函数(HASH)、H-MAC函数(MAC)。
ECC是一种椭圆加密算法。
主要描述了公钥和私钥是如何在椭圆上生成的,并且是不可逆的。
ECDSA主要使用ECC算法来创建签名,而ECDH则使用ECC算法来生成对称密钥。
以上三种都是ECC加密算法的应用。
在现实场景中,我们经常使用混合加密(对称加密、非对称加密、签名技术等的组合)。
ECIES是底层ECC算法提供的一套集成(混合)加密解决方案。
这包括非对称加密、对称加密和签名功能。
metacharset="utf-8"
这个先决条件是确保曲线不包含任何奇异点。
所以随着曲线参数a和b不断变化,曲线也呈现出不同的形状。
例如:
非对称加密的所有基本原理基本上都是基于一个公式K=kG。
其中,K代表公钥,k代表私钥,G代表选定的基点。
非对称加密算法保证公式不可逆(即G/K无法计算)。
*
ECC如何计算公钥和私钥?这里我按照自己的理解来描述一下。
我理解ECC的基本思想就是在曲线上选择一个基点G,然后在ECC曲线上随机选择一个点k(作为私钥),然后计算我们的公钥K基于kG。
并确保公钥K也在曲线上。
*
那么如何计算kG呢?如何计算kG才能保证最终结果不可逆转?这就是ECC算法要解决的问题。
首先,我们随机选择一条ECC曲线,a=-3,b=7,得到如下曲线:
在这条曲线上,我随机选择了两个点。
如何计算。
点的乘法?我们可以把问题简单化。
乘法可以用加法来表示,如22=2+2、35=5+5+5。
那么,只要我们能算出曲线上的加法,理论上就可以算出乘法了。
因此,只要能对该曲线进行加法计算,理论上就可以计算出乘法,并且理论上可以计算出k*G等表达式的值。
如何计算曲线上两点的相加?这里,为了保证不可逆性,ECC在曲线上定制了加法系统。
其实,1+1=2、2+2=4,但是在ECC算法中,我们理解的加法系统是不可能的。
因此有必要定制一套适应该曲线的添加系统。
ECC定义,在图中随机找一条直线,在三个点(可能是两个点)切割ECC曲线。
这三个点分别是P、Q、R。
则P+Q+R=0。
其中0并不是坐标轴上的0点,而是ECC中的无穷大点。
换句话说,无限点被定义为点0。
同理,我们可以得到P+Q=-R。
由于R和-R关于X轴对称,我们可以在曲线上找到它们的坐标。
P+R+Q=0,因此P+R=-Q,如上图所示。
上面描述了ECC曲线世界中如何执行加法运算。
如上图所示,直线和曲线只有两个交点,也就是说直线与曲线相切。
此时,P和R重合。
即P=R根据上面提到的ECC加法系统,P+R+Q=0,我们可以得出P+R+Q=2P+Q=2R+Q。
=0
因此我们得到2P=-Q(这是否接近我们非对称算法的公式K=kG?)。
所以我们得出结论,乘法可以计算,但是只能在切点计算,而且只能计算2。
如果2可以计算转化为任意数进行乘法运算,意味着可以在ECC曲线上进行乘法运算,则ECC算法可以满足非对称加密算法的要求。
那么我们可以计算任意的乘法吗?随机数?答案是肯定的。
这就是计算点积的方法。
选择一个随机数k,那么k*P等于多少?
我们知道,在IT世界中,一切都是二进制的。
由于ECC可以计算2的乘法,因此我们可以将随机数k描述为二进制,然后进行计算。
如果k=151=10010111
由于2P=-Q,kP就是这样计算的。
这就是点积算法。
因此,在ECC曲线系统下可以计算乘法,所以我认为这种非对称加密方法是可行的。
至于为什么这个计算是不可逆的。
这需要大量的推演,我也看不懂。
但我觉得可以这样理解:
我们的手表一般都有时间刻度。
现在,如果我们以1990年1月1日0:00:00为起点,如果我们告诉你到起点已经过去了一整年,那么我们就可以计算出当前时间,即我们可以计算出它在手表上。
时针、分针和秒针的读数应为00:00:00。
但反过来说,我说手表的时针、分针、秒针现在指向00:00:00。
你能告诉我从起点到现在已经过去了多少年吗?
ECDSA签名算法与其他DSA和RSA基本相似,都使用私钥签名和公钥验证。
只不过算法系统采用了ECC算法。
交互双方必须采用同一套参数系统。
签名原理如下:
选取曲线上的无限一点作为基点G=(x,y)。
随机选择曲线上的一个点k作为私钥,K=k*G计算公钥。
签名过程:
生成随机数R并计算RG。
根据随机数R,得到消息M的HASH值H,以及私钥k,计算签名S=(H+kx)/R。
发送消息M、RG、S给接收者。
签名验证过程:
接收消息M、RG、S
根据消息计算HASHH值
根据发送方对于公钥K,计算HG/S+xK/S,并将计算结果与RG进行比较。
如果相等,则检查成功。
公式推论:
HG/S+xK/S=HG/S+x(kG)/S=(H+xk)/GS=RG
在介绍原理之前,说明一下ECC满足结合律和交换律,即A+B+C=A+C+B=(A+C)+B。
这里有一个WIKI上的例子来说明如何生成共享密钥。
你也可以参考AliceAndBob的例子。
Alice和Bob要进行通信,双方必须拥有ECC基于相同参数系统生成的公钥和私钥。
因此,ECC存在一个公共基点G。
密钥生成步骤:
Alice使用公钥算法KA=ka*G,生成公钥KA和私钥ka,并返回密钥公钥KApublic。
Bob使用公钥算法KB=kb*G,生成公钥KB和私钥kb,并将公钥KB公开。
ECDH计算步骤:
Alice使用计算公式Q=ka*KB计算密钥Q。
Bob使用计算公式Q'=kb*KA计算密钥Q'。
验证共享密钥:
Q=kaKB=ka*kb*G=ka*G*kb=KA*kb=kb*KA=Q'
因此,双方计算的共享密钥不需要在使用Q加密之前必须先公开。我们将Q称为共享密钥。
在以太坊中,使用的ECIEC加密套件的其他内容:
1HASH算法使用最安全的SHA3算法Keccak。
2.签名算法采用ECDSA
3认证方式采用H-MAC
4ECC参数系统采用secp256k1,其他请参考。
这里的参数系统
H-MAC整个过程称为Hash-basedMessageAuthenticationCode。
模型如下:
在以太坊的UDP通信中(RPC通信加密方式不同),采用并扩展了上述实现方法。
首先,以太坊的UDP通信的结构如下:
其中,sig是私钥加密后的签名信息。
mac可以理解为整个消息的总结,ptype是消息的事件类型,data是RLP编码的传输数据。
UDP的整个加密、认证和签名模型如下:
如何配置加密音乐区块链
区块LianMusic加密配置方法如下:
1.选择一些MP3文件进行解密。
选择后,右键单击并单击添加到压缩文件。
2.选择高级进行加密。
区块链加密算法(EncryptionAlgorithm)
非对称加密算法是利用加密密钥将原始的明文文件或数据转换为一串不可读的密文代码的功能。
加密过程是不可逆的。
只有持有相应的解密密钥,才能将加密信息解密为可读的明文。
加密允许私人数据通过低风险的公共网络传输,并保护数据免遭第三方窃取和读取。
区块链技术的主要优势是去中心化。
它可以利用数据加密、时间戳、分布式共识和经济激励等方式将节点分布在互不信任的情况下,实现基于去中心化信用的点对点交易、协调和协作,从而解决高成本、高成本的问题。
中心化机构中普遍存在低效率和不安全的数据存储。
区块链的应用领域包括数字货币、通证、金融、防伪溯源、隐私、供应链、娱乐等。
区块链和比特币的流行导致了许多著名域名的创建。
。
被注册,对域名行业影响较大。
隐私保护方式可以分为三类:
第一类是交易信息、交易发送者、交易的隐私保护。
对接收者和交易金额的机密性保护,包括货币混合、环签名和机密交易。
第二是智能合约的隐私保护。
这合同数据保护解决方案包括零知识证明、安全多方计算、同态加密等。
三是链上数据隐私保护,主要包括账本隔离、私有数据、授权访问数据加密等解决方案。
扩展信息:
1.区块链加密算法隔离身份信息和交易数据
1.区块链上的交易数据,包括交易地址、金额和交易。
时间等都是公开透明的,可以查询。
但交易地址对应的用户身份是匿名的。
通过区块链加密算法,实现用户身份与用户交易数据的分离。
在数据记录到区块链之前,可以对用户的身份信息进行哈希处理,并将得到的哈希值作为用户的唯一标识符。
用户的哈希值而不是实际的身份数据存储在链上。
使用哈希值而不是有关用户身份的信息进行分组。
2.因此,在利用这些数据进行研究和分析时,用户生成的数据是真实的,由于区块链的不可逆性,任何人都无法通过哈希值恢复注册的用户名。
。
、电话号码、电子邮件等私人数据,起到保护隐私的作用。
2.区块链“加密存储+分布式存储”
加密存储意味着必须提供私钥才能访问数据。
与普通密码相比,私钥的安全性是。
更高,用蛮力几乎不可能。
分布式存储和去中心化的特性在一定程度上降低了所有数据泄露的风险。
然而,采用中心化的数据库存储,一旦数据库受到黑客攻击,所有数据很容易被窃取。
通过“加密存储+分布式存储”,可以更好地保护用户数据隐私。
3.区块链共识机制防范个体风险
共识机制是区块链节点对区块信息达成全网共识的机制,可以保证最新的区块被准确地添加到区块链中并存储在节点一致,不分叉,能够抵抗恶意攻击。
区块链的价值之一是共识数据治理,即所有用户对链上数据拥有平等的管理权利。
因此,首先要从操作中消除个体错误的风险。
通过全网区块链共识解决数据去中心化,可以利用零知识证明解决验证问题,实现在去中心化公共系统中使用机密用户数据的场景,同时满足互联网平台的需求。
这也使得部分数据始终只掌握在用户手中。
4.区块链零知识证明
证明零知识意味着证明者可以在不向验证者提供任何有用信息的情况下使验证者相信某事。
即证明者能够充分证明自己是某项权利的合法拥有者,并且不泄露相关信息,即对外界的“知识”是“无效”的。
通过应用零知识证明技术,可以在密文背景下进行数据关联性验证,在保证数据机密性的同时实现数据共享。
区块链的密码技术有
1.首先介绍一下区块链加密技术。
加密算法一般分为对称加密和非对称加密。
非对称加密是指集成到区块链中的加密技术,以满足安全性要求和所有权验证要求。
非对称加密在加密和解密过程中通常使用两个非对称密钥,称为公钥和私钥。
2.哈希算法、零知识证明、环签名等区块链中使用的密码算法:哈希算法哈希算法是区块链的基础技术。
哈希函数的本质就是将任意长度(有限)的一组数据映射成一组定义长度的数据流。
3.区块链中的密码学包括布隆过滤器、哈希函数、加解密算法、数字证书和数字签名、同态加密、PKI系统等。
4.当前区块链应用中使用了许多现代密码学的经典算法,主要包括:哈希算法、对称加密、非对称加密、数字签名等。
第三种是分布式存储。
区块链是点对点网络上的分布式账本。
每个参与节点都会独立完整地存储写入的区块数据信息。
区块链需要哪些技术
区块链技术主要依赖于分布式账本、加密算法、共识机制和智能合约等核心组件。1.分布式账本:区块链的基础是分布式账本技术,分布式账本技术是一个记录所有交易历史、分布在多个网络节点的去中心化数据库。
每个节点都拥有一份完整的账本副本,保证了信息的透明性和不可篡改,因为要改变任何一个区块的信息,都需要在很多节点上同时修改,这在实际操作中几乎不可能实现。
2、加密算法:区块链利用加密技术来保证数据的安全性和保密性。
哈希函数用于将交易数据转换为固定长度的哈希值,以保证数据的完整性和不可逆性。
数字签名采用公私钥非对称加密技术,保证交易发起者身份真实、不可否认。
3.共识机制:在区块链网络中,所有交易都必须经过一定的共识机制验证后才能添加到新的区块中。
常见的共识机制包括工作量证明、权益证明等。
这种机制确保网络中的所有参与者都同意交易历史记录,防止欺诈和双重支出问题。
4.智能合约:智合约是区块链上的自动执行协议,允许在没有第三方的情况下进行可信交易。
智能合约包含预定义的规则和条件,一旦满足这些条件,合约就会自动执行,提高交易效率并减少中间环节。
这些技术的结合使得区块链成为一个安全、透明、去中心化的信息存储和交换平台,广泛应用于数字货币、供应链金融、物联网、身份验证等领域。
区块链什么算法
主要的区块链算法是区块链算法。
这是一种结合了密码学、哈希函数、分布式网络等技术的新算法。
区块链算法是一种基于链的数据结构,通过多种特定机制保证数据的安全性和保密性。
下面是区块链算法的详细解释:
1.密码学技术。
区块链算法基于密码学技术,包括加密算法和密钥对技术。
得益于加密算法,区块链可以确保数据的完整性和安全性,并防止未经授权的访问和伪造。
同时,利用密钥对技术,区块链可以提供身份认证和授权,确保只有合法用户才能访问和管理数据。
2.哈希函数。
在区块链中,哈希函数被广泛用于生成唯一的区块标识。
每个区块都包含前一个区块的哈希值,从而形成一个不可变的链式结构。
一旦特定区块的数据被篡改,其哈希值就会发生变化,从而损害整个链的完整性。
3.分布式网络:区块链算法的运行基于分布式网络,即多个节点共同参与维护和更新区块链。
这种分布式的性质使得区块链去中心化,任何单个节点都无法控制或篡改整个区块链的数据。
通过共识算法或权利证明等),节点实现一致性,共同维护区块链的完整性和安全性。
综上所述,我们可以说区块链算法是一个综合了多种技术的复杂系统。
它使用密码学、哈希函数、分布式网络和其他技术手段来确保安全并防止未经授权的访问。
该算法的使用为数字货币、智能合约、链管理提供了可靠的技术支持交付和其他场景。