密码学分组密码运行模式-大数据加密一、计算机数据的特殊性1、存在明显的数据模式:•许多数据都具有某种固有的模式。这主要是由数据冗余和数据结构引起的。•各种计算机语言的语句和指令都十分有限,因而在程序中便表现为少量的语句和指令的大量重复。•各种语言程序往往具有某种固定格式。•数据库的记录也往往具有某种固定结构。•操作系统和网络也有同样的问题。一、计算机数据的特殊性1、存在明显的数据模式:•根据明文相同、密钥相同,则密文相同的道理,这些固有的数据模式将在密文中表现出来。•掩盖明文数据模式的方法:预处理技术(随机掩盖)链接技术•如果不能掩盖数据模式,既使采用安全的密码算法也是徒劳的。一、计算机数据的特殊性数据的特殊性带来的需求:•分组固定而待加密的数据量是不定的。•即使有了安全的分组密码算法,也需要采用适当的工作模式来隐蔽明文的统计特性、数据的格式等,以提高整体的安全性,降低删除、重放、插入、和伪造成功的机会。•不仅要保持各分组的完整性,还有保持各分组的次序不变。二、分组密码的工作模式1977年DES颁布。1981年美国针对DES的应用制定了四种基本工作模式:电码本模式(ECB)每个明文组独立地以同一密钥加密,单个数据加密。密文反馈链接模式(CBC)将前一组密文与当前明文组逐步异或后再进行分组、加密,用途:加密、认证。二、分组密码的工作模式密码反馈模式(CFB)每次只处理k位数据,将上一次的密文反馈到输入端,从加密器的输出取k位,与当前的k位明文逐位异或,产生相应密文;用途:一般传送数据的流加密,认证输出反馈模式(OFB)类似于CFB,以加密器输出的k位随机数字直接反馈到加密器的输入,用途:对有扰信道传送的数据流进行加密(如卫星数传)二、分组密码的工作模式2000年美国在征集AES的同时又公开征集AES的工作模式。共征集到15个候选工作模式。新的工作模式标准还在评审中。这些新的工作模式将为AES的应用作出贡献。二、分组密码的工作模式1、电码本模式(ECB)直接利用分组密码对明文的各分组进行加密。设明文M=(M1,M2,…,Mn),密钥为K,密文C=(C1,C2,…,Cn),其中Ci=E(Mi,K),i=1,2,…,n电码本方式是分组密码的基本工作模式。缺点:可能出现短块,这时需要特殊处理。缺点:暴露明文的数据模式。应用:适合加密密钥等短数据二、分组密码的工作模式2、密文反馈链接模式(CBC)①明密文链接方式(PlaintextandCiphertextBlockChaining)设明文M=(M1,M2,…,Mn),密钥为K,密文C=(C1,C2,…,Cn),其中E(Mi⊕Z,K),i=1E(Mi⊕Mi-1⊕Ci-1,K),i=2,…,nZ为初始化向量。Ci=二、分组密码的工作模式2、密文反馈链接模式(CBC)①明密文链接方式即使Mi=Mj,但因一般都有Mi-1⊕Ci-1≠Mj-1⊕Cj-1,从而使Ci≠Cj,从而掩盖了明文中的数据模式。加密时,当Mi或Ci中发生一位错误时,自此以后的密文全都发生错误。这种现象称为错误传播无界。解密时也是错误传播无界。二、分组密码的工作模式2、密文反馈链接模式(CBC)①明密文链接方式错误传播无界的缺点:当磁盘发生一点损坏时将导致整个文件无法解密。错误传播无界的优点:可用于数据完整性、真实性认证。二、分组密码的工作模式M1EC1M1DM2EC2DMnECnDMnM2加密解密KKKKKKZZ二、分组密码的工作模式2、密文反馈链接模式(CBC)明密文链接方式具有加解密错误传播无界的特性,而磁盘文件加密和通信加密通常希望解密错误传播有界,这时可采用密文链接方式。②密文链接方式(CiphertextBlockChaining)设明文M=(M1,M2,…,Mn),密钥为K,密文C=(C1,C2,…,Cn),其中E(Mi⊕Z,K),i=1E(Mi⊕Ci-1,K),i=2,…,nCi=二、分组密码的工作模式M1EC1M1DM2EC2DMnECnDMnM2加密解密KKKKKKZZ二、分组密码的工作模式2、密文反馈链接模式(CBC)②密文链接方式加密:错误传播无界解密时:错误传播有界D(Ci,K)⊕Z,i=1D(Ci,K)⊕Ci-1,i=2,…,nCi-1发生了错误,则只影响Mi-1和Mi发生错误,其余不错,因此错误传播有界。缺点也是要求数据的长度是密码分组长度的整数倍,否则最后一个数据块将是短块。Mi=二、分组密码的工作模式3、输出反馈模式(OFB)将一个分组密码转换为一个密钥序列产生器。从而可以实现用分组密码按流密码的方式进行加解密。64移位寄存器K位EK位明文K位密文K位种子R0K二、分组密码的工作模式3、输出反馈模式(OFB)如果分组密码是安全的,则产生的密钥序列也是安全的。加解密都没有错误传播。适于加密冗余度较大的数据,如语音和图象数据。为了提高速度可输出最右边的8位。但因无错误传播而对密文的篡改难以检测。二、分组密码的工作模式4、密码反馈模式CFB(CipherFeedback)CFB模式也是用分组密码产生密钥序列。64移位寄存器K位EK位明文K位密文k位种子R0K二、分组密码的工作模式4、密码反馈模式(CFB)与OFB的不同是,把密文反馈到移位寄存器。加密时若明文错了一位,则影响相应的密文错,这一错误反馈到移位寄存器后将影响到后续的密钥序列错,导致后续的密文都错。解密时若密文错了一位,则影响相应的明文错,但密文的这一错误反馈到移位寄存器后将影响到后续的密钥序列错,导致后续的明文都错。因错误传播无界,可用于检查发现对明密文的篡改。二、分组密码的工作模式5、XCBC(ExtendedCipherBlockChainingEncryption)模式2000年美国学者J0hnBlack和PhllipRogaway提出XCBC模式,作为CBC模式的扩展,被美国政府采纳作为标准。XCBC主要是解决了CBC要求明文数据的长度是密码分组长度的整数倍的限制,可以处理任意长的数据。如果用分组密码是安全的,则密钥序列就是安全的。二、分组密码的工作模式5、XCBC(ExtendedCipherBlockChainingEncryption)模式设明文M=(M1,M2,…,Mn-1,Mn),相应的密文C=(C1,C2,…,Cn-1,Cn),而Mn可能是短块。使用3个密钥K1,K2,K3进行加密。使用填充函数Pad(X)对短块数据进行填充。二、分组密码的工作模式5、XCBC(ExtendedCipherBlockChainingEncryption)模式•填充函数Pad(X)定义如下:X,当X不是短块;X10…0,当X是短块。•经填充函数Pad(X)填充后的数据块一定是标准块。Pad(X)=二、分组密码的工作模式5、XCBC(ExtendedCipherBlockChainingEncryption)模式令Z=0,以Z作为初始化向量。加密过程如下:E(Mi⊕Z,K1),i=1E(Mi⊕Ci-1,K1),i=2,…,n-1E(Mn⊕Cn-1⊕K2,K1),当Mn不是短块;E(PAD(Mn)⊕Cn-1⊕K3,K1),当Mn是短块。Ci=Cn=二、分组密码的工作模式5、XCBC(ExtendedCipherBlockChainingEncryption)模式XCBC与CBC区别:♣CBC要求最后一个数据块是标准块,不是短块。♣XCBC既允许最后一个数据块是标准块,也允许是短块。♣最后一个数据块的加密方法与CBC不同。♣因为有填充,需要传输填充长度信息。二、分组密码的工作模式5、XCBC(ExtendedCipherBlockChainingEncryption)模式XCBC模式的主要优点:可以处理任意长度的数据。适于计算产生检测数据完整性的消息认证码MAC。XCBC模式的主要缺点:有填充,不适合文件和数据库加密。使用3个密钥,需要传填充长度,复杂。二、分组密码的工作模式6、CTR(CounterModeEncryption)模式CTR模式是Diffie和Hellman于1979年提出的,在征集AES工作模式的活动中由California大学的PhillipRogaway等人的推荐。设T1,T2,…,Tn-1,Tn是一给定的计数序列,M1,M2,…,Mn-1,Mn是明文,其中M1,M2,…,Mn-1是标准块,Mn的可能是标准块,也可能是短块。设其长度等于u,u小于等于分组长度。二、分组密码的工作模式6、CTR(CounterModeEncryption)模式CTR的工作模式的加密过程如下:•Oi=E(Ti,K),i=1,2,…,n.•Ci=Mi⊕Oi,i=1,2,…,n-1.•Cn=Mn⊕MSBu(On).•其中MSBu(On)表示On中的高u位。计数器加密算法EMiCiTiOiKT1时钟脉冲二、分组密码的工作模式6、CTR(CounterModeEncryption)模式CTR的工作模式的解密过程如下:•Oi=E(Ti,K),i=1,2,…,n.•Mi=Ci⊕Oi,i=1,2,…,n-1.•Mn=Cn⊕MSBu(On).二、分组密码的工作模式6、CTR(CounterModeEncryption)模式CTR的工作模式的优点:•CTR模式的优点是安全、高效、可并行、适合任意长度的数据;•Oi的计算可预处理高速进行;•加解密过程仅涉及加密运算,不涉及解密运算,因此不用实现解密算法。•适合随机存储数据的解密。CTR模式的缺点是没有错误传播,因此不易确保数据完整性。三、短块加密分组密码一次只能对一个固定长度的明文(密文)块进行加(解)密。称长度小于分组长度的数据块为短块。必须采用合适的技术解决短块加密问题。短块处理技术:1、填充技术2、密文挪用技术3、序列加密三、短块加密1、填充技术•用无用的数据填充短块,使之成为标准块。•为了确保加密强度,填充数据应是随机的。•但是收信者如何知道哪些数字是填充的呢?•这就需要增加指示信息,通常用最后8位作为填充指示符。•填充法适于通信加密而不适于文件和数据库加密。三、短块加密Mn-1aabMnECnDMnMn-1加密解密KKKKEDbMnabbMnCn-12、密文挪用技术三、短块加密密文挪用法也需要指示挪用位数的指示符,否则收信者不知道挪用了多少位,从而不能正确解密。密文挪用加密短块的优点是不引起数据扩展。缺点是解密时要先解密Cn、还原挪用后再解密Cn-1,从而使控制复杂。三、短块加密3、序列加密•对于最后一块短块数据,直接使用密钥K与短块数据模2相加。•序列加密方法的优点是简单。•但是如果短块太短,则加密强度不高。大作业以DES、AES或SMS4作为加密算法开发出文件加密软件系统:•具有文件加密和解密功能;•具有加解密速度统计功能;•采用密文反馈链接和密文挪用短块处理技术;•具有较好的人机界面。复习题①计算机数据加密有些什么特殊问题?②分析CBC和XCBC工作模式的加解密错误传播情况。③为什么说填充法不适合计算机文件和数据库加密应用?④密文挪用方法有什么优缺点?