流密码应用广泛,对密钥流进行随机性测试在信息安全领域有重要作用。有别于对选定长度的随机序列利用NIST统计包进行随机性检测,本文针对HC256,RC4密钥流多重分段利用NIST提供的测试方法进行系统随机性检测,并对测量结果进行频率分布统计,形成二维可视化特征分布。选定的测试数据显示,该类特征分布图对HC256和RC4生成的密钥流区分明确。
在现代密码学前沿应用中,流密码的设计与分析占据重要的位置。RC4[1]是一个应用广泛的流密码算法,从eSTREAM 项目[2](ECRYPT Stream Cipher Project)中选出的HC256[3]显示出潜在应用价值。
在目前的应用环境中,对不同流密码算法生成的01 序列进行NIST(National Institute of Standards and Technology)随机性测试[4]在密码学、安全领域起着重要的作用。当前的NIST 检测包直接提供针对选定序列的测量功能,如何利用该类模型和方法做系统推广,是复杂应用环境需要重视的一类问题。
本文致力于比较不同产生机制下生成的二维可视化特征分布,对流密码算法HC256 和RC4 生成的01 序列进行区分, 并对HC256 和RC4 内部结构相似这一特征进行进一步探究, 为后续的分析提供参考。
首先对流密码算法生成的01 序列分段进行NIST 随机性检测, 然后对测得的PValue 值进行频率分布统计得到Pi,最后对Pi 进行模幂运算投影,生成可视化特征分布图。
1.1. 流密码算法 RC4 是Ron Rivest 为RSA 公司在1987 年设计的一种流密码[1]。RC4 算法以随机置换作为基础,是一个密钥长度可变,面向字节流的流密码。已被应用于多种数据传输和网络协议中。
HC-256[3]是欧洲流密码计划(eSTREAM)征集到的面向软件实现的快速同步流密码。HC-256 借鉴了RC4 的思想,同时引入了面向字节的非线性函数来更新系统的内部状态[2]。由于HC256 的内部结构和RC4 结构类似,本文选取这两种算法进行分析比较。
1.2. NIST 随机数检测标准 序列的随机性测试一直是信息安全领域重要的研究方向。美国NIST SP800-22 测试标准[4]包括15种测试手段。有别于常用的对选定长度的随机序列进行NIST 随机性检测,本文对密钥流分段进行NIST随机性检测以寻求随机序列段与段之间的内在联系与区别, 关注于流密码算法在同一条件下生成的01 序列内部分段之间的关联。
1.3. 聚类分析 聚类分析是数据挖掘的一项重要的方法。聚类问题实际上是将一组数据分成若干个组,在这些组之间寻找数据之间内在的联系[5]。
随着流密码在信息安全领域的深入应用,对于流密码的分析方法也在不断发展。本文没有采用典型的流密码分析方法[6],尝试对生成的密钥流进行多元统计分析,对数据进行分组,为聚类分析提供前期