Hashing with SL2

首先知道群论

群的类型从有限置换群和一些特殊的矩阵群逐渐进展到抽象群, 这些抽象群可以由生成元和关系给定,一种集合加上一种运算的代数结构。主要类型:置换群、矩阵群、变换群、抽象群、代数群等。群元素不一定是数字或矩阵,可以是任何抽象的东西,比如三维空间中的旋转,某种抽象的置换等等。

某种操作下的不变性。

一个矩阵群(matrix group)G 由某个域 K(通常为了方便是固定的)上可逆方块矩阵组成,群运算分别为矩阵乘法与逆运算。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Hashing with SL2

提出了一种新的基于特征线性组的、在有限域中计算的哈希函数族。这些函数可以快速计算,检测输入文本的微小修改,其安全性相当于一个精确的数学问题。它们依赖于SL2矩阵组的算法,并基于相同的策略对以前的函数进行了改进。产生了hwsl2。

Cayley图

在这里插入图片描述
只有两个顶点满足
在这里插入图片描述时才存在
连接这两个顶点的边。能够找到一个值δ使得任意两个顶点连接的长度都大于这个值δ。对于关联的Cayley图C(G,S),这个概念在文中被转换成散列函数的以下属性:

a.替换某一部分文本仍然可以得出相同的编码值,并且仍然满足两个顶点连接的长度大于特定的值δ。 换句话说,如果我们可以获得C(G, S)的δ,我们就可以防止文本的局部修改。
在这里插入图片描述
b. 文本长度趋向于一个确定值时,哈希编码呈均匀分布。
c.如果x和y是两个文本,则它们的连接XY具有散列值H(xy) = H(x)H(y)。这显然允许方案的简单并行化,并在提前知道消息的部分内容时进行预计算。
在这里插入图片描述
哈希函数基于阶数为2的特殊线性组中的矩阵乘法。

hwsl2的安装使用

适合Linux环境下运行

使用haskell2010编写,该语言不适合Windows环境

nodejs环境的版本:直接下载缺少文件和依赖,需要手动安装。如果使用nodejs版本的包,要先确认装了nodejs,在解压好的文件中运行power shell,使用node example.js命令进行试验。

C版本:windows中缺少相关头文件,仍然需要Linux环境下编译运行。
pip install cityhash
同样有不同长度的函数,直接在python环境下使用即可。

from cityhash import CityHash32, CityHash64, CityHash128
print(CityHash32(“abc”))795041479
print(CityHash64(“abc”))2640714258260161385
print(CityHash128(“abc”))76434233956484675513733017140465933893

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值