网易首页 > 网易号 > 正文 申请入驻

【区块链与密码学】第5-4讲:详解常用哈希函数(二)

0
分享至

导语

本课堂用通俗易懂的系列内容为大家呈现区块链与密码学领域相关知识。这里有知识也有故事,从感兴趣到有乐趣,点宽课堂等你来学。

这个系列中的课程内容首先从比特币着手进行入门介绍,再延伸至区块链的相关技术原理与发展趋势,然后深入浅出地依次介绍在区块链中应用的各类密码学技术。欢迎大家订阅本公众号,持续进行学习。

【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】

5.4.1

Keccak算法简介

美国国家标准与技术研究院(National Institute of Standards and Technology,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算法的分析与实现详见:

https://keccak.team/index.html

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

在海绵函数中,输入数据被分为固定长度的数据分组。每个分组逐次作为迭代的输入,同时上轮迭代的输出也反馈至下轮的迭代中,最终产生输出哈希值。

海绵函数允许输入长度和输出长度都可变,具有灵活的性,能够用于设计哈希函数(固定输出长度)、伪随机数发生器,以及其他密码函数。

5.4.2

Keccak算法描述

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

符号与函数

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

符号

r:比特率(比特 rate),其值为每个输入块的长度

c:容量(capacity),其长度为输出长度的两倍

b:向量的长度,b=r+c,而b的值依赖于指数I,即b=25×2I

Keccak算法的参数定义

函数

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

算法描述

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

填充

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

设消息m长度为l比特。首先将比特“1”添加到m的末尾,再添加k个“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),在预处理(padding并分成大小相同的块)后,海绵结构主要分成两部分:

吸入阶段(Absorbing Phase):将块xi传入算法并处理。

挤出阶段(Squeezing Phase):产生一个固定长度的输出。

Keccak算法的整体结构如下图:

Keccak算法的整体运算示意图

吸入与挤出阶段

给定输入串x,首先对x做padding,使其长度能被r整除,将padding后分割成长度为r的块,即x=x0|| x1|| x2||...|| xt-1 。然后执行以下吸入阶段和挤出阶段:

1.初始化一个长度为r+c比特的全零向量。

2.输入块xi,将xi和向量的前r个比特做异或运算,然后输入到f函数中处理。

3.重复上一步,直至处理完x中的每个块。

4.输出长为r的块作为y0,并将向量输入到f函数中处理,输出y1,以此类推,得到的哈希序列即为y= y0||y1||y2||...||yu。在Keccak-224/256/384/512中,只需要在y0中取出前224/ 256/ 384/ 512位即可。

Keccak算法的吸入阶段和挤出阶段示意图

压缩函数

  • 压缩函数f是Keccak算法的核心,它包含nr轮。



  • nr的取值与我们之前计算b时用到的指数I (b=25×2I)有关,具体地,nr=12+2*I.Keccak-224/256/384/512中,取I=6,因此nr=24。



  • 在每一轮中,要以此执行五步,即θ(theta)、ρ(rho)、π(pi)、χ(chi)、ι(iota)


  • 在处理过程中,我们把b=1600个比特排列成一个5*5*w的三维数组,其中w=2I=64比特,如右图所示:

Keccak算法的三维数组示意图

Keccak算法的压缩函数结构示意图

安全性与性能

安全性


  • 可以抵御对哈希函数的所有现有攻击。



  • 到目前为止,没有发现它有严重的安全弱点。


灵活性

  • 可选参数配置,能够适应哈希函数的各种应用。

高效性

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



  • 尚未广泛应用,需要经过实践检验。


常用的Keccak算法就讲到这里啦,下节课我们将学习常用哈希函数SM3算法,敬请期待!

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

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

FOLLOW US

© DigQuant

点击“阅读原文”,登录官网www.digquant.com,一起解锁更多金融科技姿势:涵盖 Python 、 金融基础 、 量化投资 、 区块链 、 大数据 、 人工智能 。 Dig More, Learn More!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
邱彪有麻烦了!剩7场比赛,对手全是狠角色,媒体人:能赢3场算赚

邱彪有麻烦了!剩7场比赛,对手全是狠角色,媒体人:能赢3场算赚

金山话体育
2026-04-07 09:54:48
张本美和夺冠,三十多年前何智丽的回旋镖打回中国乒乓球队

张本美和夺冠,三十多年前何智丽的回旋镖打回中国乒乓球队

罗纳尔说个球
2026-03-17 21:33:29
新款萤火虫上市售价7.98万元起 内外焕新动力全面提升

新款萤火虫上市售价7.98万元起 内外焕新动力全面提升

第壹新车
2026-04-07 20:19:12
从8.3飙到9.6,这是国产真·神剧

从8.3飙到9.6,这是国产真·神剧

独立鱼
2026-04-07 21:09:03
8700 万镑!曼联锁定边路新杀器,实力碾压姆贝莫

8700 万镑!曼联锁定边路新杀器,实力碾压姆贝莫

奶盖熊本熊
2026-04-08 04:52:55
疯三总奖金高达2.26亿美元!NCAA真的令中国联赛汗颜?

疯三总奖金高达2.26亿美元!NCAA真的令中国联赛汗颜?

田先生篮球
2026-04-06 23:02:37
浙江新增一所985大学,全国都在限制,浙江为什么突围?

浙江新增一所985大学,全国都在限制,浙江为什么突围?

高等教育数字局
2026-04-07 12:25:12
随着63岁穆帅率队爆冷1-1,波尔图2-2,葡体4-2,葡超最新积分榜出炉

随着63岁穆帅率队爆冷1-1,波尔图2-2,葡体4-2,葡超最新积分榜出炉

侧身凌空斩
2026-04-07 06:04:43
伊朗民众组成人链保护发电厂和桥梁

伊朗民众组成人链保护发电厂和桥梁

21世纪经济报道
2026-04-07 23:38:05
为什么WTO很少被提起了?中国入世谈判花了15年,如今几乎被架空

为什么WTO很少被提起了?中国入世谈判花了15年,如今几乎被架空

古史青云啊
2026-04-07 14:52:09
中国的“性萧条”时代,正式到来了

中国的“性萧条”时代,正式到来了

律法刑道
2025-12-15 08:28:58
为什么没人联合打以色列,答案很简单:不是没人想打,是没人敢打

为什么没人联合打以色列,答案很简单:不是没人想打,是没人敢打

墨印斋
2026-04-07 13:47:02
陈丽华去世后,富华已完成交接,迟重瑞的晚年也成关注点

陈丽华去世后,富华已完成交接,迟重瑞的晚年也成关注点

白浅娱乐聊
2026-04-07 22:32:15
你的亲戚能坏到啥地步?网友:只要你有道理,千万别怕,发疯到底

你的亲戚能坏到啥地步?网友:只要你有道理,千万别怕,发疯到底

带你感受人间冷暖
2026-04-08 00:40:03
为何中年女性出轨不开房了,反而喜欢选择这些地点呢?

为何中年女性出轨不开房了,反而喜欢选择这些地点呢?

思絮
2026-03-20 12:18:19
偶像,约基奇赛后主动找到杨瀚森拥抱致意

偶像,约基奇赛后主动找到杨瀚森拥抱致意

懂球帝
2026-04-07 12:58:11
2020年,长沙女子癌症晚期,争夺女儿40万学费,直言:我只想活着

2020年,长沙女子癌症晚期,争夺女儿40万学费,直言:我只想活着

大鱼简科
2026-04-06 11:33:07
王濛当面怼倪萍,这一句“我不吃这套”让多少人破防了

王濛当面怼倪萍,这一句“我不吃这套”让多少人破防了

情感大头说说
2026-04-07 16:52:00
航天从不是赌局!NASA拿4人生命赶进度,反观中国,行稳致远才是王道

航天从不是赌局!NASA拿4人生命赶进度,反观中国,行稳致远才是王道

Thurman在昆明
2026-04-06 01:26:13
可爱教主,真润啊!

可爱教主,真润啊!

贵圈真乱
2026-04-07 12:25:06
2026-04-08 05:56:49
点宽DigQuant
点宽DigQuant
从理论到实践的最后一公里
652文章数 24关注度
往期回顾 全部

科技要闻

满嘴谎言!OpenAI奥特曼黑料大起底

头条要闻

特朗普:伊朗人愿为自由承受轰炸

头条要闻

特朗普:伊朗人愿为自由承受轰炸

体育要闻

阿韦洛亚:诺伊尔是本场最佳;我们会带着必胜的信念前往德国

娱乐要闻

女首富陈丽华离世 被曝生前已分好遗产

财经要闻

10万亿财政转移支付,被谁拿走了?

汽车要闻

不止是大 极狐首款MPV问道V9静态体验

态度原创

游戏
旅游
教育
时尚
家居

PlayStation全新炸裂计划公开!利好所有玩家

旅游要闻

废弃“老北京景观”能否随意搬回家

教育要闻

别再问“哪个专业最好”先问这3个问题!选错专业=毁四年#新学期超给力

120元和120分钟,哪个更奢侈?

家居要闻

雅致惬意 感知生活之美

无障碍浏览 进入关怀版