-
-
[讨论]随机函数序列的另类使用
-
发表于:
2014-7-24 21:12
3850
-
随机函数序列的另类使用
随机函数可以生成伪随机序列,伪随机序列由于源自同样的算式方法所以数值之间不可避免是有内在关系的,不适于在密码学里面使用。
但是如果我们打乱这些内在关联不就能放心使用了吗?
一种省事的方法是多随机序列组合,例如有 n+1个函数,各函数设好编号,确定好各个函数的种子,用一个函数的取值 X[i]进行 X[i]%n的模运算,根据计算结果选用 n个函数中的一个参与序列,如此进行下去直到够用了为止。
另外也可以打乱一个函数随机序列的分布,也就是让序列重新排序,如果你按一定的规律去作这件事,免不了结果序列还是有规律的,所以要采用随机排序,这样才能彻底打乱原来的秩序生成数值之间互不相干的序列。
这样生成的随机序列仍然是伪随机序列,但你用用户密码去控制序列的生成结果和真随机数组的效果也差不多,因为过程是可控的所以比真随机数组还要方便使用,后者的保存是个问题。
安全问题,如果用固定的方式处理数据那是谁都可以做到的没有安全可言,如果是在用户密码的控制下完成这些工作就安全多了。你可以使用用户密码的衍生数据去作随机函数的种子或乘积参数等等,如果随机函数的周期很大安全性就有保障了,例如周期10的6000次方那样的随机函数,周期基本就相当于无穷大,想在那种序列里找点数据无异于大海捞针。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!