区块链与密码学 区块链与密码学结合设计的系统

皕利分享 101 0

本篇文章主要给网友们分享区块链与密码学的知识,其中更加会对区块链与密码学结合设计的系统进行更多的解释,如果能碰巧解决你现在面临的问题,记得关注本站!

区块链的密码技术有

密码学技术是区块链技术的核心。区块链的密码技术有数字签名算法和哈希算法。

数字签名算法

数字签名算法是数字签名标准的一个子集,表示了只用作数字签名的一个特定的公钥算法。密钥运行在由SHA-1产生的消息哈希:为了验证一个签名,要重新计算消息的哈希,使用公钥解密签名然后比较结果。缩写为DSA。

数字签名是电子签名的特殊形式。到目前为止,至少已经有 20 多个国家通过法律 认可电子签名,其中包括欧盟和美国,我国的电子签名法于 2004 年 8 月 28 日第十届全 国人民代表大会常务委员会第十一次会议通过。数字签名在 ISO 7498-2 标准中定义为: “附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造”。数字签名机制提供了一种鉴别方法,以解决伪造、抵赖、冒充和篡改等问题,利用数据加密技术、数据变换技术,使收发数据双方能够满足两个条件:接收方能够鉴别发送方所宣称的身份;发送方以后不能否认其发送过该数据这一 事实。

数字签名是密码学理论中的一个重要分支。它的提出是为了对电子文档进行签名,以 替代传统纸质文档上的手写签名,因此它必须具备 5 个特性。

(1)签名是可信的。

(2)签名是不可伪造的。

(3)签名是不可重用的。

(4)签名的文件是不可改变的。

(5)签名是不可抵赖的。

哈希(hash)算法

Hash,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,其中散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,但是不可逆向推导出输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

哈希(Hash)算法,它是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。

以比特币区块链为代表,其中工作量证明和密钥编码过程中多次使用了二次哈希,如SHA(SHA256(k))或者RIPEMD160(SHA256(K)),这种方式带来的好处是增加了工作量或者在不清楚协议的情况下增加破解难度。

以比特币区块链为代表,主要使用的两个哈希函数分别是:

1.SHA-256,主要用于完成PoW(工作量证明)计算;

2.RIPEMD160,主要用于生成比特币地址。如下图1所示,为比特币从公钥生成地址的流程。

【区块链与密码学】第5-2讲:哈希函数的构造

本节课程我们将详细讲解哈希函数的构造。

MASH-1 (Modular Arithmetic Secure Hash)是一个基于RSA算法的哈希算法区块链与密码学,在1995年提出,入选国际标准ISO/IEC 10118-4;MASH-2是MASH-1的改进,把第四步中的2换成了28+1;由于涉及模乘/平方运算,计算速度慢,非常不实用。

分组密码的工作模式是区块链与密码学: 根据不同的数据格式和安全性要求, 以一个具体的分组密码算法为基础构造一个分组密码系统的方法。

基于分组的对称密码算法比如DES/AES算法只是描述如何根据秘钥对一段固定长度(分组块)的数据进行加密,对于比较长的数据,分组密码工作模式描述了如何重复应用某种算法安全地转换大于块的数据量。

简单的说就是,DES/AES算法描述怎么加密一个数据块,分组密码工作模式模式了如果重复加密比较长的多个数据块。常见的分组密码工作模式有五种:

电码本( Electronic Code Book,ECB)模式

密文分组链接(Cipher Block Chaining,CBC)模式

密文反馈(Cipher Feed Back ,CFB)模式

输出反馈(Output Feed Back ,OFB)模式

计数器(Counter, CTR)模式

ECB工作模式

加密:输入是当前明文分组。

解密:每一个密文分组分别解密。

具体公式为:

CBC工作模式

加密:输入是当前明文分组和前一次密文分组的异或。

解密:每一个密文分组被解密后,再与前一个密文分组异或得明文。

具体公式为:

CFB工作模式

加密算法的输入是64比特移位寄存器,其初值为某个初始向量IV。

加密算法输出的最左(最高有效位)j比特与明文的第一个单元P1进行异或,产生出密文的第1个单元C1,并传送该单元。

然后将移位寄存器的内容左移j位并将C1送入移位寄存器最右边(最低有效位)j位。

这一过程继续到明文的所有单元都被加密为止。

OFB工作模式

OFB模式的结构类似于CFB

不同之处:

OFB模式是将加密算法的输出反馈到移位寄存器

CFB模式中是将密文单元反馈到移位寄存器

CTR工作模式

加密:输入是当前明文分组和计数器密文分组的异或。

解密:每一个密文分组被解密后,再与计数器密文分组异或得明文。

具体公式为:

工作模式比较

ECB模式,简单、高速,但最弱、易受重发攻击,一般不推荐。

CBC模式适用于文件加密,比ECB模式慢,安全性加强。当有少量错误时,不会造成同步错误。

OFB模式和CFB模式较CBC模式慢许多。每次迭代只有少数比特完成加密。若可以容忍少量错误扩展,则可换来恢复同步能力,此时用CFB或OFB模式。在字符为单元的流密码中多选CFB模式。

CTR模式用于高速同步系统,不容忍差错传播。

直接设计哈希函数

Merkle在1989年提出迭代型哈希函数的一般结构;(另外一个工作是默克尔哈希树),Ron Rivest在1990年利用这种结构提出MD4。(另外一个工作是RSA算法),这种结构在几乎所有的哈希函数中使用,具体做法为:

把所有消息M分成一些固定长度的块Yi

最后一块padding并使其包含消息M的长度

设定初始值CV0

循环执行压缩函数f,CVi=f(CVi -1||Yi -1)

最后一个CVi为哈希值

算法中重复使用一个压缩函数f

f的输入有两项,一项是上一轮输出的n比特值CVi-1,称为链接变量,另一项是算法在本轮的b比特输入分组Yi-1

f的输出为n比特值CVi,CVi又作为下一轮的输入

算法开始时还需对链接变量指定一个初值IV,最后一轮输出的链接变量CVL即为最终产生的杂凑值

通常有bn,因此称函数f为压缩函数

算法可表达如下:CV0=IV= n比特长的初值

CVi=f(CVi-1,Yi-1);1≤i≤L

H(M)=CVL

算法的核心技术是设计难以找到碰撞的压缩函数f,而敌手对算法的攻击重点是f的内部结构

f和分组密码一样是由若干轮处理过程组成

对f的分析需要找出f的碰撞。由于f是压缩函数,其碰撞是不可避免的,因此在设计f时就应保证找出其碰撞在计算上是困难的

哈希函数的构造就讲到这里啦,以上三种方式都可以构造哈希函数。下节课我们将学习常用哈希函数,敬请期待区块链与密码学

第4课 区块链中的密码学 学习总结

这是加入公Ulord深度学习第四课,杨博士给大家主讲区块链中的密码学问题,本期课程令让我弄懂了一个一直困扰着我的关于公钥和私钥的问题,他们之间到底是什么关系?再这次学习中我得到了答案,现在我把我学习到的内容跟大家分享一下。

区块链里的公钥和私钥,是非对称加密里的两个基本概念。

公钥与私钥,是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,私钥是非公开的部分。公钥通常用于加密会话,就是消息或者说信息,同时,也可以来用于验证用私钥签名的数字签名。

私钥可以用来进行签名,用对应的公钥来进行验证。通过这种公开密钥体制得到的密钥对能够保证在全世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密数据,则必须用它对应的另一个密钥来进行解密。

比如说用公钥加密的数据就必须用私钥才能解密,如果用私钥进行加密,就必须要对应的公钥才能解密,否则无法成功解密。另外,在比特币的区块链中,则是通过私钥来计算出公钥,通过公钥来计算出地址,而这个过程是不可逆的。

一文读懂,XFS中你必须掌握的密码与区块链理论术语

人们对于事物的深刻认知,不是像“如何将大象放进冰箱?”那般,只回答“打开冰箱,把大象放进去,关上冰箱”那么简单。 任何事物都需要一个抽丝剥茧,化整为零的认知过程。 特别是一个新兴的概念和事物,更需要更加细致的了解。

XFS系统是一个分布式文件系统,但它并不是一个单一的框架结构,他 是密码学、区块链、互联网等多种技术手段结合的一个有机整体 ,因此,想要更详细的了解它,我们必须知道一些专业术语的概念。

1.加密网络

加密网络简单来说就是一个公共区块链。在区块链技术诞生之前,互联网网络中的数据传输其实是没有任何加密手段的,黑客一旦截取的其中的数据,那么除非那段数据本身就是密文,否则那些数据就直白地暴露在黑客眼前。

加密网络便是通过区块链技术,由区块链各个节点维护,任何人都可以无需许可加入,更重要的是,整个网络中运转的数据是加密的。XFS系统便是一个典型的加密网络。

2.哈希算法

哈希算法是区块链中用以确保数据完整性和安全性的一个特殊程序。哈希算法采用的是名为“哈希函数”数学关系,结果输出被称为“加密摘要”。加密摘要的特点是任意长度的数据输入后,返回的都是一个唯一且固定长度的值。

哈希函数具备:

基于这些特性,它在保证加密安全时也被用于防篡改,因为即使对散列函数的数据输入进行微小更改也会导致完全不同的输出。这也成为了现代密码学和区块链的主力。

3.分布式账本

区块链就是一个分布式账本,但这个账本不仅仅可以记录交易信息,还可以记录任何数据交互。每个分类帐交易都是一个加密摘要,因此无法在不被检测到的情况下更改条目。这样使得区块链使参与者能够以一种去中心化的方式相互审计。

4.私钥和公钥

私钥和公钥是区块链通过哈希算法形成加密后生成的一组用于解密的“钥匙”。通过对私钥加密,形成公钥,此时,原始信息只能通过私钥进行查看,由用户自己保存,公钥就如同一个房屋地址,用于进行数据交互,是可以公开的。反之,如果对公钥加密,形成私钥,那么就会形成不可篡改的数字签名,因为这个公钥上的签名只有私钥拥有者才能进行创建。

1.节点

节点是一个区块链网络的最基础建设,也是区块链网络和现实连接的物理设备。单个节点拥有许多的功能,例如缓存数据、验证信息或将消息转发到其他节点等。

2.点对点(P2P)网络

区块链所构建的便是去中心化后节点与节点之间的数据交互。传统的互联网数据传输是一种客户端—服务器—客户端的中心辐射模式。点对点网络则更符合“网”这个词,在这个网络中,每个节点都在单一通信协议下运行,以在它们之间传输数据,避免了因为服务器单点故障而引发的网络崩溃。

3.共识验证

区块链的共识验证解决了大量分散的节点意见不统一的问题,以“少数服从多数”的哲学依据,在区块链网络中,更多的节点认可便意味着“共识”,通常而言,区块链网络中超过51%的节点认可的便会被采用和认可。

4.复制证明和时空证明

这两个证明在XFS系统中都可以总称为存储证明。XFS系统的核心功能之一是数据存储,因此,为了证明存储的有效性,便通过复制证明验证数据是否存在节点存储空间中,并通过时空证明验证时间上的持续性。存储提供方如果在储存有效期内能持续提交存储证明,那么他便会获得由XFS系统提供的奖励。

5.冗余策略和纠删码

这是XFS用来平衡数据存储量的两个方式。冗余策略将数据通过多副本的方式备份,确保数据在损坏或丢失后能找回。

纠删码则是确保数据在复制、传输时不会产生过多备份,节省存储空间、提高传输效率。

6.文件分片协议

XFS将文件切分为N个细小的碎片存储在节点当中,这些碎片只要有任意 M个碎片即可恢复出数据,这样只要不同时有 N-M+1 个节点失效就能保证数据完整不丢失。

7.智能合约

XFS中的智能合约是一段程序代码,由于是基于区块链生成的,因此同样继承了区块链不可篡改、可追溯等特点,它能保证双方执行结果的确定性,这也使得XFS网络中的数据交互变得更加可信。

8.Dapp

即去中心化APP,同普通的APP一样具备更加方便快捷的网络接入端口,唯一不同的便是它抛弃了传统APP中心化的特点,这使得Dapp中的数据是归属于用户自身,不用担心隐私泄露、大数据杀熟等问题。

XFS系统是一个开放性平台,用户可以自由的在其中使用、设计、创作各种Dapp。

结语

关于XFS中的理论术语基于篇幅原因是很难详细展开细讲的,这其中涉及到了更多的互联网和区块链专业知识。但通过上面这些简单的解释,相信大家对XFS系统也有了一个比较立体的认知,那么,我们便期待打破传统中心化存储弊端,开船全新存储时代的XFS新一代分布式文件系统吧。

【区块链与密码学】第6-4讲:椭圆曲线的数字签名算法

1985年,Koblitz和Miller独立地提出了椭圆曲线公钥密码体制(ECC),安全性基于椭圆曲线群上的离散对数问题的难解性,该问题目前最好的解法是指数级时间的算法。

一般认为,RSA和DH密钥交换协议需用1024比特以上的模数才安全,但对ECC,只要160比特的模数就可达到同样级别的安全性。

椭圆曲线指的是由Weierstrass方程

所确定的曲线

有限域Fp上的椭圆曲线是由满足Fp上的方程  

的所有点和无穷远点 O 构成的集合

有时也记作 E。

设 P , Q 是E上的任意两点,连接 P , Q 交 E 于 R’ ,则称 R’ 关于x轴的对称点 R 为 P 与 Q 的和,记为:

P + Q = R

当 P 与 Q 重合时

R = P+Q = P+P = 2P

此时称之为 点倍运算

当 P 与 Q 关于x轴对称时,

定义 P 与 Q 的和为 O ,即:

P + Q = O

并称 O 为无穷远点

可以证明,有限域上的椭圆曲线在我们定义的加法运算下构成群。

既然构成群,就必然有零元和负元,这里的零元就为无穷远点 O , P 的负元就是它关于x轴的对称点,记为 –P 。

显然有

P+O =O+P=P

若P=(x, y),则 –P=(x, –y) 且 P+(–P)=O

已知 E(F) 上两点 P=(x1, y1), Q=(x2, y2) , 求 P+Q 。

解:设 P+Q=R =(x3, y3) ,

解得

当 P≠Q 时,

当 P=Q 时,

k(k2) 个相同的点 P 相加为

此时称之为点乘运算

称n为点 P 的阶,记为 n=ord(P) 。

由阶为n的点 P 在上述加法定义下生成的循环群 P 是椭圆曲线群 (E(F), +) 的一个n阶子群。

设E是有限域 F 上的椭圆曲线, G 是 E 的一个循环子群,点 P 是 G 的一个生成元,即 G={kP: k≥1}, 在已知 P , Q 的条件下,求解整数n,使得 nP=Q 的问题,称为椭圆曲线 E 上的离散对数问题。

今天的课程就到这里啦,下一堂课我们将学习基于椭圆曲线的数字签名算法中的SM2算法,带大家继续了解数字签名,敬请期待!

-- 完 --

关注点宽学园,每周持续更新区块链系列课程,小宽带你进入区块链世界。我们下节课见啦。

【区块链与密码学】课堂回顾:

区块链与密码学系列文章合集

区块链与密码学的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于区块链与密码学结合设计的系统、区块链与密码学的信息别忘了在本站进行查找喔。

标签: #区块链与密码学

  • 评论列表

留言评论