论文部分内容阅读
本文围绕分组密码的工作模式进行研究,旨在设计出一种更高效的可变长度输入的密码方案。分组密码是密码学的一个重要分支,加解密的实现比较简单,并且速度很快,已经广泛应用于信息安全领域。典型的分组密码算法如AES(Rijndael加密算法)是美国联邦政府的高级加密标准,并且已经在世界范围内广泛传播使用。AES的应用范围从电子邮件加密到转账业务,与我们的生活密切相关。2002年,可调分组密码的概念被提出。可调分组密码与传统分组密码相比,前者的参数除了明文P和密钥K外,还多了一个“调柄”,这个“调柄”和其他某些密码结构中的初始化向量或“nonce”相似,使可调分组密码有了更大的灵活性。分组密码的工作模式设计是对称密码学的核心研究之一。由于分组密码一次只能处理固定长度的消息,如果想处理超过分组长度的消息,就必须对分组密码进行迭代。而迭代方式就称为分组密码的工作模式(mode of operation)。分组密码的工作模式有很多,常见的有计数器(CTR)模式、密文反馈(CFB)模式和密文分组链接(CBC)模式等。简单的分组密码迭代只能处理分组长度整数倍的消息,如果待加密的消息长度不是分组长度整数倍,就需要改进工作模式或者设计新的工作模式。另外,一些机密应用程序要求加密后的密文保持明文的长度,为了实现这一目的,就必须设计密码方案(cipher)。密码方案(cipher)是一簇带密钥的置换,包括加密算法和解密算法两部分。密码方案(cipher)通常也被称为“加密方案”。与消息认证码(MAC)、签名(signature)等许多其他原语相比,从分组密码等一些固定输入长度(FIL)密码方案构建可变长度输入(VIL)密码方案并不容易,“填充(padding)”等技术均不能达到这个目的。到目前为止,已经有一些方案陆续被提出。很多方法(例如HEH方案、EME方案,EME~*方案、TET方案等)都是用了密文窃取(ciphertext stealing)这一技巧,还有部分方案使用了基于计数器的伪随机函数,例如XCB方案、HCTR方案和HCH方案。但是这些方案都是专用方案,并不能直接应用于分组密码已有的工作模式中。后来Ristenpart和Rogaway的XLS结构基于分组密码构建了一个可以处理长度为[n,···,2n-1]的明文消息的加密算法。这种能处理长度从n到2n-1的明文消息的可变长度输入(VIL)密码引起了部分密码学研究者的兴趣。这种可变长度输入(VIL)密码将可处理的消息大小增加了将近1倍,因此称之为“length doubler”。遗憾的是,XLS构造已被Nandi证明不是一个强伪随机置换(SPRP)。破解XLS构造之前,Nandi已经提出了他的构造DE。2012年,Haibin Zhang提出了HEM和THEM构造,其中THEM构造第一次在length doubler中引入调柄。在2018年,Chen等人发表在FSE上的一篇论文中提出了一个新的length doubler——“LDT”,LDT第一次将可调分组密码作为底层密码使用,使我们的研究受到了很大的启发。本论文分析了Chen等人的length doubler LDT结构,研究了该结构优化的可能性,最终从减少密钥提高效率的方向提出了一种基于可调分组密码的单密钥Length Doubler,称之为“SLDT”。它是一个可以处理n至2n-1比特字符串的保长密码方案。SLDT减小了LDT的密钥长度,而密钥管理在实践中总是具有很大挑战性。同时,本论文实现了和LDT同样的安全性,即如果底层的可调分组密码是可调强伪随机置换(TSPRP),那么SLDT也是可调强伪随机置换(TSPRP)。