散列函数在序列密码中的应用

2012-09-28 09:37:28许迎秋邱伟星
赤峰学院学报·自然科学版 2012年23期

薛 明 ,许迎秋 ,张 妍 ,邱伟星

(1.南京邮电大学 计算机学院,江苏 南京 210003;2.南京邮电大学 计算机学院,江苏 南京 210046)

散列函数和序列密码在实际生活中有很多应用,为了使其性能得到更好的实现,将二者通过一定的算法联系起来。本文利用散列函数MD5通过密码反馈模式产生序列密码的密钥,使生成的密钥序列具有尽可能高的不可预测性。序列密码则通过简单的异或运算生成。为确定这样的运算过后得到的序列能达到随机性要求,对产生的序列进行了频率测试及游程测试。

1 理论支持

1.1 序列密码

序列密码的安全强度主要依赖密钥序列的随机性,因此,如何设计一个好的密钥序列产生器,使其产生随机的密钥序列是序列密码体制的关键所在。

密钥序列产生器的主要要求:[10]

(1)种子密钥K长度足够大,一般应在128位以上;

(2)密钥序列ki具有极大周期;

(3)ki具有均匀的n元分布,即在一个周期环上,某特定形式的n长比特串与其求反比特串,两者出现的频率大抵相当(如均匀的游程分布);

(4)利用统计方法由ki提取关于KG结构或K的信息在计算上不可行;

(5)混乱性:即ki的每一比特均与K的大多数比特有关;

(6)扩散性:即K任一比特的改变要引起ki在全貌上的变化;

(7)密钥序列ki不可预测,密文及相应的明文的部分信息,不能确定整个ki.

1.2 MD5

MD5算法的输入是最大长度小于264bit的消息,输出为128bit的消息摘要。输入消息以512bit的分组为单位处理。MD5通过直接构造复杂的非线性关系实现单向性。

MD5的主要性质:[6]

(1)对“任意”给定的消息x,计算H(x)比较容易,用硬件和软件均可实现;……

登录APP查看全文