-
-
[原创]随机函数加密文件
-
发表于:
2018-11-29 10:49
12663
-
随机函数的生成值一般称为伪随机数,认为其不够随机又有周期性,不能作为密钥加密,这个结论不能认同,假如用其做密钥,你能够破解其密文,那确实是不能做密钥了,不可靠能做密钥吗?我认为能不能用要看你怎么用了。
直接使用随机函数的生成值(序列值)做密钥是不可取的,因为破解者了解你的做法,他也可以做同样的事情,将一小段序列值组成密钥串,虽然他不知道随机函数的种子值是什么,但他可以假定种子然后去尝试,不行则向后或向前推移,让密钥串和密文相互作用,并观察结果从而判断是否发现了种子,一旦发现种子的位置破解也就完成了。
下面只举两例说明如何用随机函数值做密钥。
一、参数法
我们从用户密码那里,除了计算出种子外,还可以计算出许多参数C,随便取两个C1和C2,假设明文序列是M1、M2、......,随机函数序列是S1、S2、......,密文序列m1、m2、......,将这样产生
m1 = M1 + S1×C1 + C2;
m2 = M2 + S2×C1 + C2;
.......;
而解密是加密的逆运算。
二、多元法
多元是指使用多个随机函数,以一个为主,其它的为辅助,以二元为例,从用户密码那里需要计算出两个种子,一个用于第一个随机函数,另一个用于第二个随机函数,而有第一个随机函数序列是S1、S2、......,第二个随机函数序列是s1、s2、......,N是个用户密码计算出的小质数,
m1 = M1 + S1 + s1%N;
m2 = M2 + S2 + s2%N;
.......;
解密是加密的逆运算。
s1%N表示随机函数二的第一个函数值除以N的余数,这个值较小但也严重的干扰了整个算式的数值,让分析破解难上加难。
使用随机函数尽量避讳其周期让周期远远大于被加密内容的长度即可不受其影响。工具在那里就看怎么用了。古代韩信被称为战神何也,其能指挥老弱病残的军队打胜仗,我们也争取利用现有条件使数据更加安全,努力加油吧。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)