-
-
[求助]帮忙看看这是什么算法?
-
发表于:
2011-3-16 21:56
4727
-
这里有一个100bit到90bit的转换算法,由于对密码学不了解,不知道这是不是已知的某种算法。
输入的100bit,记为x1,x2,...,x100,
输出的90bit,记为b1,b2,...,b90,
x1与x2~x100分别乘,x2与x3~x100分别乘,类推......
系数x1*x2的系数记为a12,系数同样是1bit,取值0,1,
90bit中任意一个bit的计算过程:
a11*x1+a22*x2+...+a100100*x100+
a12*x1*x2+a13*x1*x3+...+a1n*x1*x100+
a23*x2*x3+a24*x2*x4+...+a2n*x2*x100+
...
a99100*x99*x100
= b1
以上x,a,b都是二进制的一个bit,乘法可以认为是普通乘法,当然也可以认为是二进制按bit与,加法是二进制按bit异或,对于b2~b90,每个bit都有一组单独的多项式系数。
因为x是二进制的1个bit,x*x与x是相等的,所以也可以用矩阵表示:
Xt * A1 * X = B1
Xt * A2 * X = B2
...
Xt * A90 * X = B90
其中X是列向量x1,x2,...,xn,Xt是X的转置,B1~B90就是90bit结果,A1~A90都是系数矩阵,都是上三角矩阵,其中元素都是0,1。
总的来说,这里每个输出bit,都是所有输入bit经过非线性变换得到,与所有输入bit相关。
希望各位能帮忙看看,这是不是一种已知算法?有没有可能直接得到其逆运算(已知:算法,系数,输出的90bit,求:输入的100bit)?
另,本人对密码学相关的内容有些接触,但是了解不多,现在对这方面有点兴趣,暂时也有时间,欢迎各位推荐一些密码学入门书籍,中英文均可,多谢。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)