主页 > 苹果版下载imtoken > 常用哈希函数详解(Keccak算法)

常用哈希函数详解(Keccak算法)

苹果版下载imtoken 2023-03-15 07:39:00

以太坊 算法 矿机_以太坊共识算法_以太坊 算法

Keccak算法介绍

美国国家标准技术研究院 (NIST) 于 2007 年公开征集 SHA-3,要求:

它可以直接替代SHA-2,这就要求SHA-3也必须能够生成224、256、384、512位的哈希值。

要保持SHA-2的在线处理能力,这就要求SHA-33必须能够处理小数据块(比如512或1024位)。

安全性:抵抗原像和碰撞攻击的能力,抵抗现有或潜在的 SHA-2 攻击的能力。

高效:可以在各种硬件平台上实现,高效、节省存储。

灵活性:可以设置可选参数,以在安全性和效率之间提供折衷,便于并行计算等。

2008 年 10 月,64 种算法正式向 NIST 提交了提案。 经过初步评估,共有51个算法进入第一轮评估,主要分析算法的安全性、消耗和实现特性。

2009年7月24日公布,其中14个算法通过第一轮评审,进入第二轮; 2010年12月9日公布,其中5个算法(JH、Grstl、Blake、Keccak、Skein)通过第二轮评审进入第三轮。

2012年10月2日,NIST公布了最终的获胜者,即意法半导体的Guido Bertoai Bertoai、Jean Daemen Daemen、Gilles Van Assche Assche和恩智半导体的Micha Michaël Peeters共同设计的Keccak算法。

以太坊共识算法_以太坊 算法_以太坊 算法 矿机

SHA-3 已成为 NIST 的新散列函数标准算法(FIPS PUB 180--5)。 Keccak算法的分析与实现见:

SHA-3的结构仍然属于Merkle提出的迭代哈希函数。 最大的创新是采用了一种新的迭代结构,称为海绵结构。 海绵结构也称为海绵函数。

在海绵函数中,输入数据被分成固定长度的数据包。 每一组作为迭代的输入,上一次迭代的输出也反馈给下一次迭代,最终生成输出哈希值。

海绵函数允许输入长度和输出长度都是可变的,具有灵活性,可用于设计散列函数(固定输出长度)、伪随机数生成器和其他密码函数。

Keccak算法说明

输入数据没有长度限制,输出哈希值的位长分为:224、256、384、512。

符号和功能

Keccak 算法使用以下符号和函数:

象征

r:比特率(bit rate),它的值是每个输入块的长度

c:capacity(容量),它的长度是输出长度的两倍

以太坊 算法 矿机_以太坊共识算法_以太坊 算法

b:向量的长度,b=r+c,b的值取决于索引I,即b=25×2I

wang.com.cn/Public/attached/2020/10/04/160178803627377.jpg" alt="">

· 功能

Keccak 算法使用以下五个函数:θ(theta)、ρ(rho)、π(pi)、χ(chi)、ι(iota)

算法说明

Keccak 算法填充数据,然后迭代压缩它以生成哈希值。

· 填充

数据填充的目的是使填充数据的长度为r的整数倍。 因为迭代压缩是对r位的数据块进行的,如果数据的长度不是r的整数倍,那么最后一块数据会是一个短块,无法处理。

令消息长度 m 为 l 位。 先在m的末尾加一位“1”,然后在m的末尾加“0”,其中k是满足下式的最小非负整数:l+1+k=r-1modr;

然后在末尾添加位“1”。 填充消息的比特长度m必须是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算法使用海绵结构(Sponge Construction)。 经过预处理(填充并分成大小相同的块)后,海绵结构主要分为两部分:

吸收阶段:块 xi 被传递到算法中并进行处理。

挤压阶段:产生固定长度的输出。

Keccak算法的整体结构如下:

以太坊 算法 矿机_以太坊 算法_以太坊共识算法

以太坊 算法 矿机_以太坊 算法_以太坊共识算法

· 吸入和挤出阶段

以太坊 算法 矿机_以太坊共识算法_以太坊 算法

·压缩功能

以太坊 算法_以太坊共识算法_以太坊 算法 矿机

以太坊 算法 矿机_以太坊 算法_以太坊共识算法

安全性和性能

安全

可以抵抗所有现有的哈希函数攻击。

到目前为止,还没有发现严重的安全漏洞。

灵活性

可选的参数配置可以适应哈希函数的各种应用。

以太坊 算法 矿机_以太坊 算法_以太坊共识算法

效率

设计简单,软硬件实现方便。 在效率方面,它是高效的。

目前还没有广泛使用,需要在实践中进行检验。

常用的Keccak算法到此结束。 下一节课,我们将学习常用的哈希函数SM3算法,敬请期待!

区块链核心技术:委托权益证明算法DPoS

Delegated Proof of Stake(简称DPoS)是比特股采用的一种区块链公知算法。 在加密货币技术中,通过共识算法来保证整个区块链网络的安全性和可靠性。 众所周知的共识算法有比特币网络使用的工作量证明PoW,以及Peercoin和NXT使用的权益证明PoS。 然而,这些共识算法都不能解决交易性能问题,尤其是PoW算法需要大量消耗计算所需的电力。而委托权益证明DPoS则好

区块链核心技术:拜占庭共识算法之PBFT

PBFT是PracticalByzantineFaultTolerance的缩写,意思是实用的拜占庭容错算法。 该算法由Miguel Castro(卡斯特罗)和Barbara Liskov(里斯科夫)于1999年提出以太坊 算法,解决了原始拜占庭容错算法效率低下的问题,将算法的复杂度从指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。该论文发表于1999年国际操作系统设计与实现会议

欧盟 2018 年预算法案将讨论 4 项与区块链相关的修正案

投资于各种项目的四项区块链相关修正案将进入欧盟2018年预算法案。 根据公开文件以太坊 算法,区块链被提议作为欧盟免费 Wi-Fi 联网项目的支付渠道,同时投资两个相关的技术工作组。 将区块链加入“WiFi4EU”实际上有两项修正案,一项来自政党“社会民主党进步联盟”(Progressive Alliance of Socialists and Democrats),一项来自议会工业、研究和能源委员会(Parl

本文哈希:880861e7d525782248725b537f93f8453ceb0e0f

免责声明:本文由Leo分享发布,不代表链世界赞同其观点。 文章内容仅供参考。 如果本文侵犯了您的合法权益,请联系我们。