第二讲之第3章对称密码体系_第1页
第二讲之第3章对称密码体系_第2页
第二讲之第3章对称密码体系_第3页
第二讲之第3章对称密码体系_第4页
第二讲之第3章对称密码体系_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

第二讲信息安全技术第2章密码技术基础第3章对称密码体系第4章公钥密码体系第5章公钥基础设施PKI第六章信息隐藏技术第三章对称密码体系3.1概述3.2序列密码(流密码)3.3分组密码3.4DES数据加密标准

3.5IDEA算法3.6RC5算法3.1概述对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密。也称为“传统加密算法”、“单密钥加密算法”、“秘密密钥算法”。对称密钥保密体制模型注意:一个密钥对存储信息的保护模型对传输信息的保护模型优/缺点优点:算法简单,效率高,系统开销小,适合加密大量数据。缺点:(1)通信双方都使用同样钥匙,安全性得不到保证,存在密钥安全交换问题。(2)每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法分类(1)序列密码(流密码)(streamcipher)一次只对明文中的单个位(有时对字节)运算的算法称为序列算法或序列密码。(2)分组密码(blockcipher)对明文的一组位进行运算,这些位组称为分组,相应的算法称为分组算法或分组密码。3.2序列密码(流密码)

(StreamCipher)序列密码是由一种专业的密码,Vernam密码(也称为一次性密码本(one-timepad)),发展而来的。具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点。序列密码主要原理通过有限状态机产生性能优良的伪随机序列,使用该序列加密信息流,(逐比特加密)得到密文序列。加密与解密加密:解密:密钥流生成器构造密钥流生成器是流密码最核心的内容。密钥流生成器的目的是由一个短的随机密钥(也称实际密钥或种子密钥)k生成一个长的密钥流,用这个长的密钥流对明文加密或对密文解密,从而使一个短的密钥可用来加密更长的明文或解密更长的密文的目的。由于大部分密码是基于世界上公开的数学难题,所以造成大多数密钥流生成器的不安全性。目前应用最广泛的流密码是同步流密码。一个同步流密码是否具有很高的密码强度主要取决于密钥流生成器的设计。

序列密码典型算法RC4算法RC4加密算法是大名鼎鼎的RSA三人组中的头号人物RonRivest在1987年设计的密钥长度可变的流加密算法簇。之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。该算法的速度可以达到DES加密的10倍左右。A5算法欧洲GSM标准中规定的加密算法,用于数字蜂窝移动电话的加密,加密从用户设备到基站之间的链路。A5算法包括很多种,主要为A5/1和A5/2。其中,A5/1为强加密算法,适用于欧洲地区;A5/2为弱加密算法,适用于欧洲以外的地区。Seal算法IBM提出的、适合于软件实现的160位流密码算法,世界公认的高安全加密算法。加解密速度快,比128bitAES快8倍左右。PKZIP

广泛应用于数据压缩的算法,是一种按字节加密的流密码。

流密码的重点研究方向①自同步流密码的研究;②有记忆前馈网络密码系统的研究;③多输出密码函数的研究;④高速密码芯片的开发;⑤同步序列密码在失步后如何重新同步的问题;3.3分组密码3.3.1分组密码工作方式3.3.2分组密码的设计原则3.3.3典型分组密码算法3.3.1分组密码工作方式分组密码的工作方式:将明文分成固定长度的组(块),如64比特一组

,用同一密钥和算法对每一块加密,输出也是固定长度的密文。其中,明文为分组长度为m比特的序列,密文为分组长度为n的序列,加密与解密过程由x比特密钥控制。分组密码的优缺点分组密码主要有两个优点:易于标准化易于实现同步一些局限性。比如:分组密码不便于隐藏明文的数据模式,对于重放、插入、删除等攻击方式的抵御能力不强。但是通过采用流密码的设计思想,在加密过程中采用合理的记忆组件,能够消除这些局限性。如果在构造分组密码系统的时候直接采用分组密码算法,则称这种工作模式为电码本(ECB)模式。分组密码的上述缺陷导致了这种工作模式也具有相应的缺陷。因此,实际采用的分组密码工作模式是对电码本(ECB)模式的改进。3.3.2分组密码的设计原则

为保证密码的安全性,Shannon提出了混乱原则和扩散原则:

混乱原则指的是:为了避免密码分析者利用明文和密文之间的依赖关系进行破译,密码的设计因该保证这种依赖关系足够复杂。

扩散原则指的是:为避免密码分析者对密钥逐段破译,密码的设计因该保证密钥的每位数字能够影响密文中的多位数字

在设计分组密码时,必须结合预定的实现方法进行考虑

3.3.3典型分组密码算法DESIDEARC5SAFERBlowfishSkipjack3.4DES数据加密标准DES算法描述DES安全分析三重DES3.4.1DES算法描述DES算法加密时把明文以64bit为单位分成块,而后用密钥把每一块明文转化成同样64bit的密文块。DES可提供72,000,000,000,000,000个密钥,用每微秒可进行一次DES加密的机器来破译密码需两千年。。

1、DES历史历史:IBM在60年代启动了LUCIFER项目,当时的算法采用128位密钥改进算法,降低为56位密钥,IBM提交给NBS(NIST),于是产生DES

1977年由美国的标准化局(NBS,现为NIST采纳)选为数据加密标准。该标准每5年重新审查和评估一次,至今继续64位分组、56位密钥2、DES算法步骤DES算法大致可以分成四个部分:(1)初始置换(2)迭代过程(3)逆初始置换(4)子密钥生成①DES算法基本逻辑结构结构说明16轮迭代:Round1~Round16每轮采用不同的密钥:K1~K16每轮的密钥都是从上一轮密钥产生而来②迭代过程DES每一轮:Li=Ri-1Ri=Li-1F(Ri-1,Ki)③DES:FunctionFExpansion:3248S-box:64Permutation32bits④DES:32位到48位的扩展表—E-table32|01020304|0504|05060708|0908|09101112|1312|13141516|1716|17181920|2120|21222324|2524|25262728|2928|29303132|01比特位序号第30个位值⑤DES:S-box把Si的输入b1,b2,b3,b4,b5,b6分成中b1b6和b2,b3,b4,b5,计算出x=b1*2+b6,y=b5+b4*2+b3*4+b2*8。然后从Si表中查出x行,y列的值Sxy。将Sxy化为二进制,即得Si盒的输出。Si表⑥DES:PermutationIP置换表58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157(1)58表示:结果中位于第1个位置的值,等于原文中第58个位置的值(2)图中的一格代表1bit,共有64bit,即8字节⑦DES:InitialPermutation待加密的64比特明文串m,经过IP置换后,得到的比特串的下标列表如下:34⑧DES:InverseInitialPermutation3、密钥生成64位初始密钥k=8位是奇偶校验位+56位密钥。56位密钥的密钥生成16个48比特的子密钥。其生成过程如右图。PC-1置换64bits密钥变换为56bits密钥经置换后的56bits密钥分为各28bits的C0和D0。循环左移运算初始密钥k经过PC-1置换后分为C0和D0,其它的Ci和Di循环左移得到:式中i=1,2,…,16,LS是循环左移位变换,其中LS1、LS2、LS9、LS16是循环左移一位,其余的LSi是循环左移两位。第i次密钥PC-2置换首先将Ci和Di组合成56位,然后按下面表进行置换。4、解密算法

解密是加密的逆变换解密算法和加密算法相同,但是它使用的子密钥顺序是相反的:第一次是用K16,第2次迭代用K15,……最后一次用K1。5、DES加密的一个例子取16进制明文X:0123456789ABCDEF密钥K为:133457799BBCDFF1去掉奇偶校验位以二进制形式表示的密钥是:00010010011010010101101111001001101101111011011111111000应用IP,我们得到:

L0=11001100000000001100110011111111

L1=R0=11110000101010101111000010101010然后进行16轮加密。最后对L16,R16使用IP-1得到密文:85E813540F0AB4056、DES的四种工作方式

第一种:电子密码本方式(ECB)这种模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密。DES算法中,采用该模式加密时,就是将要加密的数据分成每组64位的数据,如果最后一组不够64位,那么就补齐为64位,然后每组数据都采用DES算法的64位密钥进行加密。

ECB加密模型第二种:密文分组链接方式(CBC)

在CBC方式下,每个明文组xi在加密前与先一组密文按位模二加后,再送到DES加密,CBC方式克服了ECB方式报内组重的缺点,但由于明文组加密与前一组密文有关,因此前一组密文的错误会传播到下一组。CBC加密模型CBC加密步骤1)首先将数据按照8个字节一组进行分组得到D1D2……Dn(若数据不是8的整数倍,用指定的PADDING数据补位)2)第一组数据D1与初始化向量I异或后的结果进行DES加密得到第一组密文C1(初始化向量I为全零)3)第二组数据D2与第一组的加密结果C1异或以后的结果进行DES加密,得到第二组密文C24)之后的数据以此类推,得到Cn5)按顺序连为C1C2C3……Cn即为加密结果。CBC解密过程1)首先将数据按照8个字节一组进行分组得到C1C2C3……Cn2)将第一组数据进行解密后与初始化向量I进行异或得到第一组明文D1(注意:一定是先解密再异或)3)将第二组数据C2进行解密后与第一组密文数据进行异或得到第二组数据D24)之后依此类推,得到Dn5)按顺序连为D1D2D3……Dn即为解密结果。第三种:密文反馈方式(CFB)

将少量递增的纯文本加密成密码文本,而不是一次处理整个块。该模式使用在长度上为一个块且被分为几部分的移位寄存器。例如,如果块大小为8个字节,并且每次处理一个字节,则移位寄存器被分为8个部分。如果密码文本中有一个位出错,则一个纯文本位出错,并且移位寄存器损坏。这将导致接下来若干次递增的纯文本出错,直到出错位从移位寄存器中移出为止。CFB加密模型CFB解密模型第四种:输出反馈方式(OFB)

将少量递增的纯文本处理成密码文本,而不是一次处理整个块。此模式与CFB相似。与CFB唯一不同的是OFB是直接取DES输出的t个比特,而不是取密文的t个比特,其余都与CFB相同。但它取的是DES的输出,所以它克服了CFB的密文错误传播的缺点。3.4.2DES安全分析DES的安全性取决于密钥的保密

,与算法无关。主要表现在:密钥的互补性、弱密钥与半弱密钥、密文-明文相关性、密文-密钥相关性、S盒的设计、密钥搜索等。对DES的攻击方法:

(1)穷举攻击

(2)差分密码分析(3)线性密码分析不同条件下DES攻击时间的预测攻击者类型密钥长度个人攻击小组攻击院校网络攻击大公司军事情报机构计算资源(假设)1台高性能计算机16台高性能计算机256台高性能计算机大型机(百万美元级)大型机(百万美元级)及先进攻击技术40bit数周数日数小时数毫秒数微秒56bit数百年数十年数年数小时数秒钟64bit数千年数百年数十年数日数分钟80bit不可能不可能不可能数百年数百年128bit不可能不可能不可能不可能数千年3.4.3三重DESDES的唯一密码学缺点就是密钥长度较短。解决密钥长度的问题的办法之一是采用三重DES。三重DES由Tuchman于1979年提出,使用了168bits密钥。1985年成为金融应用标准,1999年并入美国国家标准与技术研究局的数据加密标准。三重DES方法需要执行三次常规的DES加密步骤。其算法步骤:①用密钥进行DES加密;②用步骤①的结果使用密钥进行DES解密③用步骤②的结果使用密钥进行DES加密三重DES示意图三重DES加密:设K1、K2、K3是三个长度为56的密钥,给定明文m,则密文为:解密:给定密文c,则明文为:56三重DES说明三重DES的加密次序:考虑兼容性;当K1=K2=K3,三重DES退化为单重DES;当K1=K3,密钥长度为112bits。3.5IDEA算法IDEAInternationDataEncryptionAlgorithm可用于加密和解密,一个非常成功的分组密码,并广泛的应用在安全电子邮件PGP中。主要有三种运算:异或、模加、模乘,容易用软件和硬件来实现581、IDEA算法历史由中国学者来学嘉博士和著名的密码专家

James

L.

Massey

于1990年联合提出的,91年修订,92公布细节128位密钥,64位分组设计目标可从两个方面考虑加密强度易实现性2、IDEA

算法框架IDEA总共进行8轮迭代操作,每轮需要6个子密钥,另外还需要4个额外子密钥,所以总共需要52个子密钥,这52个子密钥都是从128位密钥中扩展出来的。异或运算()整数模216加(+)整数模216+1乘()(IDEA的S盒)扩散由称为MA结构的算法基本构件提供。3、IDEA运算MA盒子4、IDEA每一轮64IDEA的各轮都相同的结构,但所用的子密钥和轮输入不同。从结构图可见,IDEA不是传统的Feistel密码结构。每轮开始时有一个变换,该变换的输入是4个子段和4个子密钥,变换中的运算是两个乘法和两个加法,输出的4个子段经过异或运算形成了两个16比特的子段作为MA结构的输入。MA结构也有两个输入的子密钥,输出是两个16比特的子段。5、IDEA的轮结构65加密过程由连续的8轮迭代和一个输出变换组成,算法将64比特的明文分组分成4个16比特的子段,每轮迭代以4个16比特的子段作为输入,输出也为4个16比特的子段。最后的输出变换也产生4个16比特的子段,链接起来后形成64比特的密文分组。每轮迭代还需使用6个16比特的子密钥,最后的输出变换需使用4个16比特的子密钥,所以子密钥总数为52。6.IDEA加密过程66算法框架的右半部分表示由初始的128比特密钥产生52个子密钥的子密钥产生器。

最后,变换的4个输出子段和MA结构的两个输出子段经过异或运算产生这一轮的4个输出子段。注意,由X2产生的输出子段和由X3产生的输出子段交换位置后形成Wi2和Wi3,目的在于进一步增加混淆效果,使得算法更易抵抗差分密码分析。IDEA加密过程(续)67在每一轮中,执行的顺序如下:1.X1和第一个子密钥相乘。2.X2和第二个子密钥相加。3.X3和第三个子密钥相加。4.X4和第四个子密钥相乘。5.将第1步和第3步的结果相异或。6.将第2步和第4步的结果相异或。7、IDEA每一轮的加密顺序687.将第5步的结果与第五个子密钥相乘。8.将第6步和第7步的结果相加。9.将第8步的结果与第六个子密钥相乘。10.将第7步和第9步的结果相加。11.将第1步和第9步的结果相异或。12.将第3步和第9步的结果相异或。13.将第2步和第10步的结果相异或。14.将第4步和第10步的结果相异或。IDEA每一轮的加密顺序(续1)69

算法的第9步是一个输出变换。它的结构和每一轮开始的变换结构一样,不同之处在于输出变换的第2个和第3个输入首先交换了位置,目的在于撤销第8轮输出中两个子段的交换。还需注意,第9步仅需4个子密钥,而前面8轮中每轮需要6个子密钥。IDEA每一轮的加密顺序(续2)8、IDEA输出变换阶段9、IDEA的安全性①穷举法攻击IDEA的密匙空间(密匙长度)是128位,用十进制表示所有可能的密匙个数将是一个天文数字:340,282,366,920,938,463,463,374,607,431,768,211,456.

为了试探出一个特定的密匙,平均要试探一半上面的可能性。即使你用了十亿台每秒钟能够试探十亿个密匙的计算机,所需的时间也比目前所知的宇宙的年龄要长,而即使是在当代制造每秒试探十亿个密匙的计算机还是不可能的。②差分密码分析已证明IDEA算法在其8轮迭代的第4圈之后便不受差分密码分析的影响了③线性分析④弱密钥

3.6RC5算法

Ron.Rivest于1994年设计的一种新的分组算法,1995年正式公开。它的前身RC2、RC4分别是可变密钥长度的分组和流加密算法。RC5是可变密文长度、可变轮数、可变密钥长度的分组加密算法。1、算法特点RC5加密算法的特点有:基本运算是微处理器上常见的初等运算字的位数作为RC5的参数安全性依赖于旋转运算和不同运算的混合存储要求低,适合在智能卡上实现轮数和密钥长度可以变化RC5算法由密钥扩展算法、加密算法、解密算法组成。2、RC5的参数RC5实际上是由三个参数决定的一族加密算法。一个特定的RC5表示为

RC5-w/r/b,data=2w2、RC5的参数(续)Rivest建议使用的标注RC5为

RC5-32/12/16明文分组32位的字,长度64位加密轮数12密钥长度128bits3、三个基本运算三个基本运算字的加法模2w+按位异或⊕左循环移位<<<4、RC5密钥扩展

RC5采用t=2r+2个子密钥字,每个密钥的长度为一个字长(wbits)。子密钥存储在数组S[i],i=0..t-1中s[0],s[1],…,s[t-1]它为w×t矩阵对给定的密钥K来说,经过一些复合运算可产生总数为t的字密钥,使得每一轮都分配一对密钥。除此之外的非轮运算部分也要分配一对密钥。初始化混合转换s[0]S[1]

S[t-1]……L[0]L[1]L[c-1]……K[0]K[1]……K[b-1]S[0]S[1]……S[t-1]r,wByteswordswords步骤说明1将参数r,w输入,左面标出的t-字阵列是一些伪随机bit,按r,w的规格选入的。然后把b-bytes长的密钥K[0,…,b-1]转换成c-字阵列L[0,…,c-1](字的bit数为w,这里c=b×8/w;注意:密钥长度为b个字节)。如果b不是w的整数倍,那么L右端的空位用0填入。下面描述密钥生成的细节:对于给定的参数r和w,开始初始化运算

Pw=Odd((e-2)2w)Qw=Odd((Φ-1)2w)这里

e=2.718281828459…(自然对数的底)

Φ=1.618033988749…(黄金分割比率)并且Odd[x]表示最接近x且可左可右的奇整数。例:Odd[e]=3,Odd[Φ]=1用上述两个常数,按下述方式得到初始化的阵列S:S[0]=PwFori=1tot-1do S[i]=S[i-1]+Qw

其中的加法是模2w的加法运算。说明2

得到初始化阵列S,然后与最后产生的密钥阵列L做混合,最终得到子密钥阵列。注1*.为了增强复杂性,可对阵列S,L做多次处理:

i=j=x=y=0do3×max(t,c)times:{S[i]=(S[i]+X+Y)<<<3;

X=S[i];i=(i+1)(modt);L[j]=(L[j]+X+Y)<<<(X+Y);

Y=L[j];j=(j+1)(modc);}2*.Rivest声称,这个扩张函数具有单向性。说明35、加解密运算图6、加密算法加密:将明文分组为左右A,B;用变量LEi,REi参与运算程序为:

LE0=A+S[0]RE0=B+S[1]fori=1tordoLEi=((LEi-1⊕REi-1)<<<REi-1)+S[2×i];REi=((REi-1⊕LEi)<<<LEi)+S[2×i+1];每一轮相当DES的两轮,移位是算法中唯一的非线性部分7、解密算法对两个1-字变量LDr和RDr。用变量LDi和RDi从r到1做:

fori=rdownto1doRDi-1=((RDi-S[2*i+1]>>>LDi)⊕LDi);LDi-1=((LDi-S[2*i]>>>RDi-1)⊕RDi-1);B=RD0-S[1];A=LD0-S[0].8、RC5运行模式RFC2040定义了RC5的4种运行模式RC5BlockCipher,isECBmodeRC5-CBC,isCBCmodeRC5-CBC-PAD,isCBCwithpaddingbybyteswithvaluebeingthenumberofpaddingbytesRC5-CTS,avariantofCBCwhichisthesamesizeastheoriginalmessage,usesciphertextstealingtokeepsizesameasoriginal9、RC5的安全性①RC5的安全主要依赖循环移位操作和不同运算的混合使用。②逐位异或操作与mod2w加法操作存在漏洞。③5轮迭代后的统计特性相当好。

温馨提示

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

评论

0/150

提交评论