2021-09-14

作者: flydean程序那些事 | 来源:发表于2021-09-14 09:18 被阅读0次

简介

海绵函数sponge function是密码学中使用的一种函数,它接收一定长度的输入,然后输出一定长度的输出,中间包含了有限个内部状态。

因为海绵函数的强大功能,所以可以用来建模和实现许多密码原语,包括密码散列,消息身份验证码,生成掩码,流密码,伪随机数生成器等。

本文将会讲解海绵函数的结构。

海绵函数的结构

我们先看一个海绵函数的结构图:

[图片上传失败...(image-968310-1631582298536)]

这个函数被分成了两部分,左边部分叫做吸收部分,右边部分叫做输出部分,一吸一出,像是海绵一样,所以叫做海绵函数。

P表示的是输入的字符串,Z表示的时候输出字符串。

一个海绵函数由三部分组成,分别是state, 函数f和填充函数pad。

state就是上图的r+c部分,r被称为Bitrate, c被称为Capacity

P被分成n份,每一份都会跟Bitrate进行异或操作,如果P的长度不是Bitrate的整数倍,那么需要使用Pad函数进行填充。

每一轮,Bitrate跟P进行异或操作的结果作为最新的Bitrate, 然后生成新的state,然后这个state又被f(state)来替换。

其中函数 f 是 从n个{0,1} 到n个{0,1}的映射。

就这样一轮一轮进行下去,直到所有的P都参与了运算。

输出部分是将最终生成的state进行f运算,每次运算都取Bitrate部分作为输出,从而得到最终的输出。

海绵函数的应用

因为海绵函数的优秀的特性,所以被用在很多方面。比如SHA-3的实现算法Keccak就是使用的海绵函数。

通过替换f和多轮置换,海绵函数可以生成非常安全的密码算法,所以得到了广泛的使用。

本文已收录于 http://www.flydean.com/36-sponge-function/

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

相关文章

  • 524. 通过删除字母匹配到字典里最长单词

    2021-09-14 LeetCode每日一题 链接:https://leetcode-cn.com/proble...

  • 防不胜防

    2021-09-14 周二 雨 昨晚把电脑背回家,心想,如果今天狂风暴雨无法出门,准备申请在家办公,结果早上满怀...

  • 尽人事听天命

    幸福日志2021-09-14 周二多云 “尽人事,听天命”一直是我的生活做事方式,所以生活一直安然自若。以前被人称...

  • 当局者迷,旁观者清

    日记917篇 2021-09-14 经常有人说,机缘巧合到了,自然就悟道了或自然而然就学到某种信念和课程了。 这理...

  • 多一点点行动,成为更受欢迎的人!

    2021-09-14举两个例子:1.请学生在实验室做点事。第一位说:我中午要有个面试,不好意思,做不了!第二位说:...

  • 2021-09-14

    早上坐在公交车上,看车上的人面无表情,车外的行人在视野中来去。 每个人的背后都有不怎么光彩,不怎么幸福的故事吧。 ...

  • 2021-09-14

    多一些时间思考,在生活中学会更新和改变自己固有的思维,多一些全新的视角去看待新的一天,生活中的体会让我们看到自己的...

  • 2021-09-14

    在不断的学习传统文化的过程中,不断的保持“谦逊”的态度,避免自己的傲慢心升起来,我发现对自己的阴火和阴金很有帮助,...

  • 2021-09-14

    简介 海绵函数sponge function是密码学中使用的一种函数,它接收一定长度的输入,然后输出一定长度的输出...

  • 2021-09-14

    在这个时代, 能够让自己安静下来, 是一种非凡的能力。 周二,戒骄戒躁。

网友评论

    本文标题:2021-09-14

    本文链接:https://www.haomeiwen.com/subject/kptcgltx.html