第2章随机性检测技术概述
2.1密码算法的随机性简介
随机序列从某种意义上可以理解为"随机地选择"的数,在实际中有多种不同类型的应用,例如一个安全的算法的输出需要是随机的序列,密码算法、身份认证、安全服务及密码协议都离不开高质量的随机序列。所以如何通过检测来甄别出高质量的随机序列显得十分重要。随机比特序列是指长度是《的比特序列,序列的元素值取为0,或者为1。用符号表示为:
随机数有许多种不同类型的应用t'7l。例如:a)仿真当使用一台计算机仿真自然现象时,就需要使用随机数使事情变得逼真。仿真涉及从核物理(如粒子受到随机的碰撞)直到运筹学(比如,人们在随机的时间里进入一个机场)的许多领域。b) 抽样通常,要考察所有可能的情况是不太实际的,而随机的抽样则可以使我们能了解"典型"的行为。C)数值分析利用随机数已经想出了很多巧妙的技术来解决复杂的数值问题。d)计算机程序设计为了验证计算机算法的有效性,随机值乃是数据的好来源。更重要的是,随机值对于随机化算法的运算是很重要的,随机化算法经常比确定性算法要优越的多,在实际中有广泛的应用。e)决策据说,有许多决策人是通过抛硬币或掷飞镖等等来做出他们的判断,所以有时做出这样无偏见的判断是重要的。随机性也是矩阵游戏理论中优化策略必不可少的组成部分。f)美学一点儿随机性就会使计算机生成的图形和音乐似乎更加活泼。g)娱乐摇骰子、洗扑克牌、转轮盘等,是人们喜爱的娱乐方式。随机数的这些传统用法,已经被命名为"蒙特卡洛方法",它已成为描述任何使用随机数的算法的通用术语。
在实际应用中,要产生足够多并且高质量的随机序列是比较困难的,或者是在某些情况下需要重现这个随机序列,在这些情况下,需要使用伪随机序列,但是我们在使用伪随机序列时也要保证其有良好的随机性,所以常常在应用中用真随机数作为初始条件,或者作为一个输入,即将真随机数当作伪随机发生器的种子。
2.2随机性测试数学基础
本节分为两个小节,一方面介绍随机性测试用到的概率知识,另一方面是介绍随机性测试方面数学上的一些原理和方法。
2.2.2随机性测试的理论基础
序列的随机性测试,实质上就是检验序列是否是真随机的或者是与真随机 '序列的差距,假设检验是随机性检测技术中的基本理论。在检验时,提出一个待检验的假设,称之为原假设或零假设,记为还有个与原假设相反的,称之为备择假设,记为H。对每一个检验来说,其检测后的结果是否接受原假设也就意味着待检测数据是否是随机的。
第2章随机性检测............................................5
2.1密码算法的随机性............................................5
2.2随机性测试数学............................................6
2.3NIST随机性检测项............................................9
2.4Hash函数随机性............................................22
2.5测试Hash函数............................................23
第3章Hash算法随机性模糊............................................29
3.1模糊理论评估............................................29
3.2随机性的模糊综合............................................34
第4章基于层次比较和信息墒赋权............................................45
4.2层次分析法............................................45
4.3基于信息熵的赋权法............................................48
4.4基于AHP-FUZZY信息熵的随机性............................................49
总结和展望
论文研究总结
本文主要是对Hash函数的随机性评估进行研究,Hash函数作为一种应用比较广泛的单向函数,对其随机性进行评估,进而判断其性能的优劣是很有必要的,针对密码算法的随机性研究有多种检测的算法和检测工具,但是面对繁杂的检测结果还没有一个体系和模型进行综合的评估,进而给出一个实用的量化的结论,本文就是对现在应用的检测项目进行比较和筛选,确定出针对Hash函数的检测项目,运用层次结构法,通过自上而下的逐层分解,建立起来Hash函数的随机性评价指标体系,然后是利用模糊数学中的隶属度函数,将测得的定量信息模糊化,而对于各个指标或者特性的权重因子,通过层次分析比较法和基于信息熵的权重赋值来分配,根据建立起来的综合评估模型,自下而上的逐层评估,最后就能得出被测Hash函数的综合量化评估结果。该模型得出的评估结论也为其他的算法的随机性评估提供了可以借鉴的思路。
下一步硏究计划和展望
虽然本文针对Hash函数的随机性评估提出了自己的评价方法,并通过对一些典型的Hash函数进行评测来检验其实际的效果。但是,针对此评估模型还有许多需要改进的地方,许多方面值得进一步深入研究。例如:如何更科学合理的选择随机性测试项,构建随机性评测的指标体系。隶属度函数的选择,虽然隶属度函数的选择没有统一的标准,其形式也多种多样,但是选择适合的隶属度函数对于评价结果的准确性是有重要影响的,还有各个指标评价.中阈值的设定,合理的阈值设定会使评价结果更加准确。各个指标权重的确定也是下一歩需要研究的重点,依据各个指标的重要程度设置不同的权重,这里如何寻找合适的方式來对权重进行赋值也是研究的一个重要方面,以上所述这些方面的改善都会使评测结果更加接近真实的情况。