首先知道群论
群的类型从有限置换群和一些特殊的矩阵群逐渐进展到抽象群, 这些抽象群可以由生成元和关系给定,一种集合加上一种运算的代数结构。主要类型:置换群、矩阵群、变换群、抽象群、代数群等。群元素不一定是数字或矩阵,可以是任何抽象的东西,比如三维空间中的旋转,某种抽象的置换等等。
某种操作下的不变性。
一个矩阵群(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