预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于混沌查找表的单向Hash函数构造算法 摘要 Hash函数是一类广泛应用于信息安全领域的函数,用于将任意长度的消息压缩为定长(通常为128位或256位)的消息摘要,以保证消息的完整性和不可篡改性。本文介绍一种基于混沌查找表的单向Hash函数构造算法,该算法利用混沌系统的随机性和非线性性实现了单向性和强抗碰撞性。 关键词:Hash函数;混沌系统;单向性;强抗碰撞性 Abstract Hashfunctionisaclassoffunctionswidelyusedinthefieldofinformationsecurity,whichcompressesmessagesofarbitrarylengthintofixed-length(usually128or256bits)messagedigeststoensuremessageintegrityandnon-repudiation.Thispaperintroducesaone-wayHashfunctionconstructionalgorithmbasedonchaoslookuptable,whichutilizestherandomnessandnonlinearityofchaoticsystemstoachieveone-waynessandstrongcollisionresistance. Keywords:Hashfunction;Chaoticsystem;One-wayness;Strongcollisionresistance 1.引言 Hash函数被广泛应用于信息安全领域,例如数字签名、认证和数据完整性检查等方面。Hash函数将任意长度的消息压缩为固定长度的摘要,通常是128位或256位。由于Hash函数将不同长度的消息映射到相同长度的摘要,因此Hash函数存在碰撞的可能性。因此,设计一个具有强碰撞抵抗性的Hash函数是非常重要的。 本文介绍一种基于混沌查找表的单向Hash函数构造算法。该算法利用混沌系统的随机性和非线性性实现了单向性和强抗碰撞性。 2.Hash函数的基本原理 Hash函数基于消息填充、分组、压缩和输出四个基本过程,其中消息填充用于将任意长度的消息填充为满足处理器要求的分组长度;分组过程将填充后的消息分成N个分组;压缩过程将每个分组压缩为一个消息摘要;输出过程将所有消息摘要连接在一起,生成最终的消息摘要。 Hash函数具备以下两个基本性质: 1.单向性(One-wayness):给定一个消息摘要,通过已知的算法不能确定其原始消息。 2.抗碰撞性(CollisionResistance):难以找到两个不同的消息,其消息摘要相同。 Hash函数的安全性取决于算法的设计和密钥的保护。 3.混沌系统 混沌是指某些可描述为非线性动态系统的行为,其表现出符号动力学行为,这种行为看似随机,实际上却是确定性的。混沌系统具有以下特征: 1.敏感依赖于初始条件。小的初始条件变化,会导致系统的演化产生很大的不同。 2.拥有遍历性质。在混沌吸引子中,任意初始位置的轨道会在混沌吸引子中遍历。 3.几乎周期性。混沌系统的轨迹从来不重复,但其行踪模式却呈现出一定的周期性。 4.熵值较高。混沌系统在小时间尺度内表现随机,其熵值要比常规系统要高。 混沌系统中的一些性质,如非线性、随机性、混沌性等,使其成为信息安全领域中的重要应用。 4.基于混沌查找表的Hash函数构造算法 基于混沌查找表的Hash函数构造算法主要包含三个过程:消息分组、随机置换和消息压缩。 4.1消息分组 将消息M按照B位分组,得到M1,M2,M3,……,Mn。B一般是64位或128位。将每个分组展开为b1,b2,……,bn位的64位整数,其中n=B/64。 4.2随机置换 随机选择一个由N个元素组成的查找表T。对于每个消息分组Mi,将其展开为n个64位整数b1,b2,……,bn,然后用T中的元素进行置换: a1=T[b1modN] a2=T[b2modN] …… an=T[bnmodN] 将置换后的a1,a2,……,an进行异或操作,得到64位整数h(Mi),用于消息压缩。 4.3消息压缩 采用迭代模式,将前一次的消息摘要和当前分组的h(Mi)进行混合,得到新的消息摘要。具体的迭代模式可以根据具体需求进行设计。例如,SHA-1采用以下迭代模式: A=H0 B=H1 C=H2 D=H3 E=H4 foriinrange(0,80): if0<=i<=19: f=(B&C)|((~B)&D) k=0x5A827999 elif20<=i<=39: f=B^C^D k=0x6ED9EBA1 elif40<=i<=59: f=(B&C)|(B&D)|(C&D) k=0x8F1BBCDC elif60<