Wolfram语言

演示哈希函数的雪崩效应

哈希函数在现代密码学中扮演着重要角色。一个好的散列函数的一个重要且理想的特征是输入和输出不相关,或所谓的“雪崩效应”,这意味着输入的微小变化会导致输出的显著变化,使其在统计上无法与随机区分。这个搞砸函数可以生成各种哈希并以多种格式返回它们,从而便于研究哈希属性。

如果输入中的一个翻转位导致平均一半的输出位发生变化,哈希函数将显示雪崩效应。此示例检查“Keccak256”搞砸函数具有此属性。

生成包含10000个随机256位整数的列表。

定义一个函数,用于翻转整数中的随机位。

创建一对相差一位的整数。

为每个整数翻转一个随机位。

检查汉明距离每对整数正好为1。

要对整数的实际位进行散列,需要将每个整数转换为二进制数组.

搞砸带有“Keccak256”散列的字节数组。

计算每对整数的汉明距离。

计算散列汉明距离的平均值。

注意,这里128的平均值与比较随机整数对时的值相同,这表明“Keccak256”对输入进行了非常有效的置乱。

计算标准偏差。

用计算出的平均值和标准偏差制作距离直方图和正态分布的相应PDF。

相关示例

判定元件 锿 前 青年成就组织 让开 pt-br型 zh(德国)