密码学系列之:海绵函数sponge function

Posted 程序那些事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了密码学系列之:海绵函数sponge function相关的知识,希望对你有一定的参考价值。

简介

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

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

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

海绵函数的结构

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

\'密码学系列之:海绵函数sponge

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

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和多轮置换,海绵函数可以生成非常安全的密码算法,所以得到了广泛的使用。

以上是关于密码学系列之:海绵函数sponge function的主要内容,如果未能解决你的问题,请参考以下文章

我的世界海绵的代码是啥

密码学系列之:memory-bound函数

恒克斯过滤网发布新产品PPCF空气过滤网

搏动"城市之肾",可视化突破海绵城市发展困境

海洋动物的英文介绍 急~~快呀

密码学系列之:碰撞抵御和碰撞攻击collision attack