IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 以太坊学习一:密码学 -> 正文阅读

[区块链]以太坊学习一:密码学

??密码学作为区块链最基础的的技术之一,这些知识既包括对信息的转换、加解密,以及校验过程,也包括以太坊地址和交易Hash,交易信息RLP编码、基于椭圆曲线公私钥签名、区块Merkle树交易。

Hash

?? Hash在数学上也被成为"散列", 是指将任意长度的二进制(明文)转换为较短的固定长度的二进制(Hash值)。Hash算法的特点如下。

  1. 输出长度小于输入长度
  2. 对于任何输入都能进行快速和高效的计算
  3. 强抗冲突性:任何输入改变都会影响大量的输出位。输入数据只要稍有变化,就会得到一个千差万别的结果,且结果无法事先预知。
  4. 单向值:输入不由输出决定

?? 当然,不同的输入有时候也可能产生相同的输出,出现相同输出值的概率成为Hash的碰撞率。本质上,Hash是一种将不同信息通过一种恰当的方法产生消息摘要,以便于在后续使用时得到较好的识别,Hash函数的实现,经过多年的发展已经包含了非常多的种类和实现,有的强调实现简单快速,有的注重Hash结果的较小的碰撞率,还有的则关注算法以实现较高的安全性,总之要根据不同的应用场景,选择不同且恰当的Hash算法。目前的一些知名的Hash函数包括MD5,SHA系列,以及PBKDF2等

MD5: Message-Digest Algorithm,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。

SHA家族的系列Hash算法是在全球范围内被广泛使用的安全Hash算法,常常应用在数字签名和校验的场景中,其中SHA-1使用尤其广泛。但是2005年2月,山东大学王小云等发表了完整版的对SHA-1的攻击,只需小于2的69次方的计算复杂度,就能找到一组碰撞,根据摩尔定律,随着计算机计算能力的提高,SHA-1很快被认为是一种不安全的Hash算法。这之后,NIST又相继发布了SHA-224、SHA-256、SHA-384和SHA-512,后四者成为SHA-2,SHA-256和SHA-512是很新的Hash函数,实际上二者的结构是相同的,只在循环次数上有差异,SHA-224和SHA-384是前面两种Hash函数的截短版,利用不同的初始值做计算

Keccak算法

?? Keccak是一种被选定为SHA-3标准的单向散列函数算法,在设计上与SHA-2存在极大差别,之前针对SHA-2的攻击方法无法有地攻击Keccak。
?? Keccak算法采用了一种称之为海绵的结构,海绵结构由两个阶段,一个是吸收阶段,另外一个称之为压缩阶段。在海绵函数中,输入数据被分为固定长度的数据分组。每个分组逐次作为迭代的输入,同时上轮迭代的输出也反馈至下轮的迭代中,最终产生输出哈希值,其输入数据没有长度限制,输出哈希值的比特长度分为:224,256,384,512。

?? r:比特率(比特 rate),其值为每个输入块的长度
?? c:容量(capacity),其长度为输出长度的两倍
?? b:向量的长度,b=r+c

在这里插入图片描述
??填充:对数据填充的目的是使填充后的数据长度为r的整数倍,因为迭代压缩是对r位数据块进行的,如果数据的长度不是r的整数倍,最后一块数据将是短块,这将无法处理。

以算法Keccak-256,输入abc为例显示补位的过程. a, b, c对应的ASCII码分别是97, 98, 99;于是原始信息的二进制编码为:01100001 01100010 01100011。此时r  = 1088。

① 补一个“1” :0110000101100010 01100011 1

② 补1062个“0”:

01100001 01100010 01100011 10000000 00000000 … 00000000

③ 补一个“1” ,得到1088比特的数据:

??Keccak算法的整体结构如下图:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:48:21  更:2022-04-18 17:48:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:13:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码