分组密码的隐秘密文分组链接模式_第1页
分组密码的隐秘密文分组链接模式_第2页
分组密码的隐秘密文分组链接模式_第3页
分组密码的隐秘密文分组链接模式_第4页
分组密码的隐秘密文分组链接模式_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

为防止一些敏感信息被人偷窥,信息加密是一种较好的应对措施。但有些情形并不需要对大量明文进行加密,比如有一些表格,每张表格上只有手机号、身份证号和电子邮箱地址等内容是较为敏感的信息,其他内容无须加密。为了让密文可方便地书写在表格内,自然希望加密后的密文能够保持明文的数据类型和长度。这就使得一些保留格式加密(FormatPreserving

Encryption,FPE)算法

应运而生。此外,近几年轻量级密码学研究开始活跃,因为轻量级算法具有功率消耗少、内存占用少等特点,易被用于嵌入式系统中。有些轻量级分组密码算法的分组长度只有32比特,当数据量较大时,数据中容易存在密文组重复。例如,当每一个密文组的出现概率均为1/232时,按照生日攻击模型,只要有77164个密文组,在这些密文组中两两比对,存在密文组重复的概率理论上可以大于0.5。实际应用中,将长段明文按32比特分组后,各个明文组的出现机会一般是不均匀的,如果使用电子密本(Electronic

CodeBook,ECB)模式会导致各个密文组的出现概率也不均匀,更容易存在密文组重复。分组较小的分组密码算法和保留格式加密算法可能需要面对明文组(密文组)空间较小引发的安全隐患。例如,用ECB模式加密长段报文后,由于分组小,也许在密文中可以找到相同的密文组,由此可推测明文段中相距某长度有重复明文,这有助于验证或猜测某长段明文是否由某段密文译出,或者猜测某段密文的底码会不会是文字、数字流、某类图片或文档等,进而攻击者能够以一定的概率获得部分明文组与密文组的对应。同样,如果攻击者对A行密文猜设了明文,当无法为B行密文猜设明文时,若发现B行与A行有一个相同密文组,则有可能以已知B行一个明文组为线索,综合场景信息和上下文关联,而合理地猜出B行其他密文组的明文。为了规避因明文组空间较小引发的这类安全问题,或者弥补分组密码安全方面的设计缺陷,本文提出一种能增强算法安全性的工作模式——分组密码隐秘密文分组链接模式。1隐秘密文分组链接模式密文分组链接(CipherBlockChaining,CBC)是当今广泛应用的分组密码工作模式,也是最受欢迎的分组密码工作模式之一。对于一些较小分组的分组密码算法或保留格式加密算法,理论上也可以使用CBC模式。不过,若出现了密文组碰撞,有可能会暴露明文格式特征,甚至导致分明文泄露。因此,当明密文空间较小时,尤其选用了保留格式加密算法时,使用CBC或者ECB工作模式可能存在安全缺陷。为了防止攻击者获得明密对,沿用CBC模式的设计理念和指导思想,设计了一种类似于CBC的专用工作模式,因前一个密文组以被加密形式参与其中,故称其为分组密码隐秘密文分组链接模式。在介绍具体方法之前,先定义3个术语。(1)字符模加:分组密码的明文组一般由若干个字符构成,例如AES算法的明文组由16个ASCII字符构成。保留格式加密算法的明文可以是若干个十进制符、十六进制符或小写英文字母等。依据字符集合大小的不同,字符模加的模数是不一样的,例如ASCII字符的字符相加是模256加,十进制符的字符相加是模10加,小写英文字母的字符相加是模26加等。下文将这种字符集合有多大就模多少的加法称为字符模加,用运算符表示。例如,明文为十进制符,模数为(无进位)。(2)字符模减:字符模加的逆运算被称为字符模减,用表示。例如,模数为10,(无借位)。(3)隐秘种子:用当前密钥将加解密双方约定的某特定数据组(系统参数)加密,产生的加密结果记作隐秘种子。它将频繁地作用于每一个数据组的加密或解密。1.1隐秘密文分组链接模式加密方法设明文字符集大小为m,分组长度为N个字符。用Enc(P,K)表示使用密钥K,将明文组P以ECB模式加密。对整个明文段的加密可以有初始向量,也可以不用初始向量。如图1所示,隐秘密文分组链接模式加密方法如下:(1)将明文数据按分组长度分成若干个组,记作(2)商定参数f并计算隐秘种子R,即R=Enc(

f,K),可默认

f=1。(3)加密第一个明文组时,由于未产生过密文组,默认前一个密文组为IV,如果不使用IV,则默认前一个密文组为“0”。先对加密,即得到中间变量或者明文组与V按位字符模加,得然后将P加密得到第一组密文,即(4)对于第i个明文组先计算中间变量再计算图1隐秘密文分组链接模式加密注1:图中表示按位字符模加,“分组加密”是指调用分组算法的ECB模式。其中的参数f为加解密双方事先协商为某固定常数(可以默认f=1),或者选定某个类似于Hash算法的函数,双方以密钥为输入参数由函数算出f值。该f值不是IV,约定了f值还可以照常使用IV。该f值既可以是公开常数,也可以是密钥的一部分。注2:为什么方案中采用字符模加,而不采用异或呢?这是因为本工作模式要顺应保留格式加密。当保留格式加密的字符集大小为10或26等非2的方幂数值时,不方便做异或运算。1.2隐秘密文分组链接模式解密过程该工作模式的解密方法与加密方法相似,需要由相同的

f

参数计算出相同的隐秘种子

R。解密情形的步骤(1)至步骤(3)与上节的加密情形相同。步骤(4)相应地变为这里表示字符模减,是字符模加的逆运算),如图2所示。图2隐秘密文分组链接模式解密上述图1和图2均为明文段长度恰好是分组长度的整倍数情形。当明文段长度不是分组长度的整倍数时,会出现末尾组是一个不满组。常见的不满组加密处理方法包括协议填充和密文偷垒等多种方法。本工作模式采用弱处理法,即省去末尾组的分组迭代。也就是说,设分组长度为N个字符,末尾明文组的字符个数为m,若对第组密文做加密运算,即计算中间变量取V的左边(高权位)m个字符与做字符模加,产生不满密文组,即(这里MSC为MostSignificantCharacter的缩写)。解密时依据末尾密文组是否满组,并选择合适的解密方式。1.3隐秘密文分组链接加密认证模式与分组密码工作模式CBCMAC、XCBC、OCB

等类似,隐秘密文分组链接模式也可以用于产生具有完整性校验用途的MAC码,将上述模式改造成隐秘密文分组链接加密认证模式,如图3所示。设分组长度为N个字符,加密方法如下文所述。(1)将明文数据按分组长度分成若干个组,记作(2)清空一批单元用于存放明文累加和,即令数据组

M=0。(3)商定参数f并计算隐秘种子R,即R=Enc(

f,K),可默认

f=1。(4)约定密文组若是满组,则对计算:图3隐秘密文分组链接加密认证模式①将明文组以字符模加形式累加到M中,即②计算若

不是满组,设

只有m个字符,m<N,则对计算:①将明文组Pi以字符模加形式累加到M中,即②计算对于第n组,可以形式化地在右边(低位)补N-m个“0”,并将补“0”后的以字符模加形式累加到M中,即不满组密文为(5)将数据组M(明文累加和)加密。若是满组,则计算Cn+1=Enc(Enc(Cn◎R,K)◎M,K)。若

不是满组,只有m个字符,则通过在右边(低位)补N-m个“0”,然后计算除此之外,也可根据约定的认证标签长度,只输出的左边若干个字符。比如使用AES或者SM4算法时,收发双方可约定只输出第n+1组16个字节中的左边8字节、10字节或者12字节等作为认证标签。解密方在解密过程中也要计算明文累加和M,解密完n组明文后将数据组M加密,将加密结果与认证标签(第n+1密文组)进行比对,检验密文是否被篡改。如果输出整个第n+1密文组作为认证标签,则解密方也可以在解密认证标签后,比对明文累加和与解密出来的累加和是否相同。依据约定的认证标签长度和接收到的密文长度,解密之前需要注意密文倒数第二组是否为不满组。由此可见,这种简单的不满组处理方法可能不适用于接收方在线同步解译的场景中。2隐秘密文分组链接模式性能分析本文给出的隐秘密文分组链接模式与传统的分组密码CBC模式有些相似。尽管CBC模式被许多人公认为“完美的分组密码算法工作模式”,但它还是有一个小小的缺陷。例如,在不变更密钥的情况下,若密文中出现了相同的密文组,不妨将第一份密文的第i-1个和第i个密文组分别记作和设对应的明文组是第二份密文的第k-1个和第k个密文组分别记作设对应的明文组是那么,若出现了数据组相同,则攻击者可以知其中符号“⊕”表示两个数据组做异或。探知了两明文组间的距差,可能会有助于攻击者猜出明文组以及进行更为深入的密码分析和攻击行为。如果将隐秘种子R看作初始向量,隐秘密文分组链接模式可以描述为以R为初始向量将前一个密文组作类CBC模式加密,得到一组更加难以预测的实用初始向量或称乱数(因为R原本已经难以预测),又基于这个秘密的难以预测的实用初始向量,用类CBC模式将明文组加密为密文组。这里所述的类CBC模式与CBC模式略有不同,CBC模式是前一组密文(或IV)与明文组异或后做分组迭代,而类CBC模式是一组码符与明文组字符模加后做分组迭代。设想Eve偷偷地复制了Alice发给Bob的一段密文,试图破解Alice与Bob之间的共享密钥。正当Eve冥思苦想地猜测报文内容的时候,Bob公开了全部明文,Eve欣喜若狂,因为这恰好是他想要的明文。可是,Eve的笑容很快就会消失,因为明文段与密文段对准后,明文组与密文组之间没有“确定的”对应关系,也不能用通常的相关分析方法求取密钥。隐秘密文分组链接模式的分组加密过程也可以描述为“产生乱数并对明文组做自同步序列加密,然后对已加密的数据组又做了一次ECB模式分组加密”。破译复合加密体制的方法通常是分割分析,各个击破。Eve将明文段与密文段对准后,如果他想攻击序列密码,需要拥有一段乱数序列,通过研究序列特征取得进展。可是,在实际中获取不到乱数。如果Eve想攻击分组密码,需要有若干个明密对,通过研究分组迭代变换输入与输出之间的相关特性或函数关系求取密钥。可是,取不到明密对,因为没有办法去除加在明文上的扰码。结论:对这样的分组序列混合加密体制不能有效地实施各个击破攻击。对于分组密码的输出反馈(OutputFeedback

Mode,OFB)和计数器CTR等工作模式,IV重用会导致信息泄露。而隐秘密文分组链接模式的IV重用不会对安全性产生影响,最坏情形的安全性仍优于ECB模式。之所以说隐秘密文分组链接模式可以增强分组算法的安全强度,是因为它限制了攻击者有效地获取和形成数据条件。数据条件是密码分析及密码破译的基本素材,也是攻击成功的必备基础。没有适度的数据条件,就不能实施有效的攻击。隐秘密文分组链接模式能够弥补分组密码算法在安全性上存在的不足或缺陷。例如,用户使用了一种有缺陷的分组密码算法,比如使用只迭代8轮的DES算法,其中的8个48比特的轮密钥是由128比特密钥派生的(因56比特时存在密钥穷尽攻击,故密钥加长到128比特)。因存在可供利用的高概率差分路径,只要几万个已知明密对就可用差分攻击方法求取密钥。可是,如果用户不使用ECB或CBC模式,而是用了本文的隐秘密文分组链接模式,攻击者就不能做差分攻击。每个密文组会与明文组、前一个密文组和隐秘因子三者相关。如果将不可见的隐秘因子看作长期不变的秘密常数或者密钥的一部分,那么一个64比特密文组由明文组和前一个密文组共同确定。如果研究输出比特与输入比特间的相关关系,需要寻找一比特密文与128比特输入状态之间的相关性。因为前一个密文组与隐秘因子模加后被8轮DES加密,所以,相关程度与16轮DES相近,但相关关系利用会更加困难。如果报文充分长,在密文中按前一个密文组状态归类,在同一类内密文组完全由明文组确定,若某一类内能够存在上万个已知明文,则可用该类数据实施基于8轮DES的差分攻击。这样优厚的数据条件与实际应用相差太远。由此可见,如果选对了工作模式,有缺陷的密码算法是可以使用的。在信道上传输密文时,如果因干扰而发生了一比特误码,那么会导致当前密文组译出错误明文组,且影响下一个密文组的正确解密。这与CBC模式的错误扩散率等同,即密文中的一比特错误通常会导致两个明文组解译出错。由于隐秘密文分组链接模式分组加密约等于进行了两次普通分组加密迭代,因此,它的加解密效率大约相当于通常CBC模式的1/2。对于许多实际应用情形,不会带来较大影响。在分组密码算法和算法工作模式设计方面,算法安全与加解密效率通常是相互制约的两个方面。对于分组长度较短的分组密码算法和保留格式加密算法,可能需要弥补算法设计和使用上潜在的不足,当需要面对的安全问题比效率问题更为突出时,有必要采用隐秘密文分组链接工作模式。3结语自20世纪80年代以来,人们的密码学认知水平有了长足进步。随着国际上有关分组密码和序列密

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论