type
status
date
slug
summary
tags
category
icon
password
Sub-item
Last edited time
Oct 28, 2023 10:43 AM
Parent item
领域
该函数专门为区块链设计,可以抵抗量子攻击,具备抗碰撞性,且雪崩效应明显,当输入改变1比特的信息时,输出结果将产生50%的变化。该函数基于希尔伯特第十问题,即在未知数个数大于整数多项式方程个数且方程组含有3次以上的多项式时,求解该证书多项式方程的整数根,该问题无算法可解。
算法步骤
- 准备一组和输入文件相关的十进制整数:,每个数字具有固定的位数组成一个块,表示块的位数是,相当于切割的块数
- 准备一个矩阵:,向量,其中为系数 ???和例子有出入,例子中是
- 计算哈希:,其中函数没有限制定义的形式,例如可以采用: ,输出的hash大小为
其他处理:由于形成循环序列的规则,在大文件中,某些项很可能为零。为了避免在算法的基本版本中出现这种情况,我们使用循环移位。在另一个版本中,我们可以将零分量替换为固定数字,固定数字也可以是参数。
综上,我们构建了一个带参数的哈希方案,其中参数为:素数 、向量维度 、块大小 、项生成规则 。
举例
- 构造参数:一个素数,例如4049,向量维度 = 4, m = 4,块大小 =6,项生成规则(窗口大小是2),系数集合
- 把文件分割成块,例如文件长度是32位,以6位长度分割后是:
- 生成系数 ,
- 设置初始向量
- 根据计算
- 接下来读取文件的2个块:34和16,计算:
- 计算:
- 计算
- 相加
- 重复上面的计算,算出最后结果是