《【计算机】3 分组密码》由会员分享,可在线阅读,更多相关《【计算机】3 分组密码(97页珍藏版)》请在金锄头文库上搜索。
1、第三章 分组密码一、分组密码的一般模型二、DES与IDEA三、AES 算法Rijndael四、分组密码分析方法*五、分组密码工作模式Date1*2一、分组密码的一般模型分组密码概述 分组密码:将消息编码表示后的数字(通常是0和1)序列 x1, x2, xi,划分为长为n的组 ,各组(长为n的矢量)分别在密钥 的控制下变换成等长的输出数字序列 (长为m的矢量)。Date3 分组密码是一种满足下列条件的映射E: 对每个 , 是从 到 的置换 :密钥为 时的加密函数 :密钥为 时的解密函数 密钥规模: bit 密钥长度等于密钥规模当且仅当: Eg:DES真正的密钥规模 =56bit,且 也就是密钥长
2、度Date4分组密码设计问题分组密码的设计问题在于找到 一种算法,能在密钥控制下从一个 足够大且足够好的置换子集中,简 单而迅速地选出一个置换,用来对 当前输入的明文的数字组进行加密 变换。Date5分组密码算法应满足的要求 分组长度n要足够大:防止明文穷举攻击法奏效。 密钥量要足够大:尽可能消除弱密钥并使所有密钥同等地好,以防止密钥 穷 举攻击奏效。 由密钥确定置换的算法要足够复杂:充分实现明文与密钥的扩散和混淆,没有简单的关系可 循,要能抗击各种已知的攻击Date6分组密码算法应满足的要求 加密和解密运算简单:易于软件和硬件高速实现。 数据扩展:一般无数据扩展,在采用同态置换和随机化加密技
3、术 时可引入数据扩展。 差错传播尽可能地小Date7*8二、 DES与IDEA数据加密标准(DES) DES的历史 1971年IBM,由Horst Feistel领导的密码研究项 目组研究出LUCIFER算法,并应用于商业领域; 1973年,美国标准局征求标准,IBM提交结果; 1977年,被选为数据加密标准; 虽然DES已有替代的数据加密标准算法,但它仍 是迄今为止得到最广泛应用的一种算法,也是一 种最有代表性的分组加密体制。Date9DES加密过程 DES利用56bit长度的密钥K来加密长度为64bit的明文,得到长度为64bit的密文 该算法分三个阶段实现 IP和IP-1在密码意义上作用
4、不大,它们的作用在于打乱原来输入x的ASCII码字划分的关系,并将原来明文的校验位x8, x16, x64变成为IP输出的一个字节。 Date10一轮加密的简图 Li-1 Ri-1F+Li RiKiA=R(32 bits)J=K(48 bits)EE(A)为48 bits+B1 B2 B3 B4 B5 B6 B7 B8 S1S2S3S4S5S6S7S8C1 C2 C3 C4 C5 C6 C7 C8 P32 bits F(A,J)B写成8个6比特串Date11 对F函数的说明:F(Ri-1, Ki)函数F以 长度为32的比特串A=R(32bits)作第一 个输入,以长度为48的比特串变元 J=K
5、(48bits)作为第二个输入。产生的输 出为长度为32的位串。对第一个变元A,由给定的扩展函数E,将其 扩展成48位串E(A);计算E(A)+J,并把结果写成连续的8个6位串 ,B=b1b2b3b4b5b6b7b8Date12 使用8个S盒,每个Sj是一个固定的416 矩阵,它的元素取0到15的整数。给定长 度为6个比特串如Bj=b1b2b3b4b5b6,计算 Sj(Bj)如下:b1b6两个比特确定了Sj的行 r(06和Nk N/2,则令: 如果TN/2,则令:Date59线性密码分析 从而可得关于密钥比特的一个线性方程,对不同的明密文对重复以上过程可得关于密钥的一组线性方程,从而确定出密钥
6、比特 研究表明,当 充分小时,攻击成功的概率是:这一概率只依赖于 ,并随着 或 的增加而增加Date60当前研究热点如何对差分密码分析和线性密 码分析进行改进,降低它们的复 杂度仍是现在理论研究的热点。Date61*62五、分组码的工作模式主要工作模式 分组密码可以按不同的模式工作,实 际应用的环境不同应采用不同的工作 模式电码本(ECB)模式密码分组链接(CBC)模式 密码反馈(CFB)模式输出反馈(OFB)模式 计数器(CTR)模式Date63电码本(ECB)模式 最简单的运行模式,一次对一个64bit长 的明文分组加密,且每次加密密钥都相 同。Date64电码本(ECB)模式 在用于短数
7、据(如加密密钥)时非常理想 ,是安全传递DES密钥的最合适的模式 在给定的密钥下同一明文组总产生同样的 密文组。这会暴露明文数据的格式和统计 特征。 明文数据都有固定的格式,需要以协议的 形式定义,重要的数据常常在同一位置上 出现,使密码分析者可以对其进行统计分 析、重传和代换攻击Date65密码分组链接(CBC)模式 一次对一个明文分组加密,每次加密使用同一密 钥,加密算法的输入是当前明文分组和前一次密 文分组的异或(在产生第1个密文分组时,需要有 一个初始向量IV与第一个明文分组异或);Date66密码分组链接(CBC)模式 解密时,每一个密文分组被解密后,再与前一个密 文分组异或(第一个
8、密文分组解密后和初始向量IV 异或恢复出第一个明文分组)。 Date67密码分组链接(CBC)模式 为使安全性最高,IV应像密钥一样被保护。可使用 ECB加密模式来发送IV; 保护IV原因是:如果敌手能欺骗接受方使用不同的IV ,敌手就能够在明文的第一个分组中插入自己选择的 比特值; IV的完整性要比其保密性更为重要。在CBC模式下, 最好是每发一个消息,都改变IV,比如将其值加一; 由于CBC模式的链接机制,该模式对于加密长于64bit 的消息非常合适; CBC模式除能获得保密性外,还能用于认证。Date68密码反馈(CFB)模式加密算法的输入是64bit移位寄存器,其初始值为某个初始向量I
9、V,加密算法输出的最左(最高有效位)j bit与明文的第一个单元进行异或,产生第一个密文单元 并传送该单元。然后将移位寄存器的内容左移j位并将 送入移位寄存器最右边(最低有效位)j位。这一过程持续到明文的所有单元都被加密为止Date69密码反馈(CFB)模式 解密时,将收到的密文单元与加密函数的输出进行异或 为什么此时仍然使用加密算法而不 是解密算法?Date70密码反馈(CFB)模式 利用CFB模式或者OFB模式可将DES转换为流密码; 流密码不需要对消息进行填充,而且运行是实时的,因此如果传送字母流,可使用流密码对每个字母直接加密进行传送; CFB模式除了获得保密性外,还能用于认证。Dat
10、e71输出反馈(OFB)模式 OFB模式的结构类似于CFB,不同之处在于: OFB模式将加密算法的输出反馈到移位寄存器, 而CFB模式中是将密文单元反馈到移位寄存器Date72Date73输出反馈(OFB)模式 克服了CFB的错误传播所带来的问题。 比CFB模式更易受到对消息流的篡改攻击 ,使得敌手有可能通过对消息校验部分的 篡改和对数据部分的篡改,而以纠错码不 能检测的方式篡改密文。Date74计数器(CRT)模式 CTR可以把分组密码转换为流密码 和OFB类似,但是加密计数器值,而不是密文反馈值 必须对每一个明文使用一个不同的密钥和计数值Date75Date76计数器(CRT)模式 该模式
11、优点是安全、高效、可并行、适 合任意长度的数据, 的计算可以预处 理,适用于高速网络。加解密过程仅涉 及加密运算,不涉及解密算法,因此不 用实现解密算法。 缺点是没有错误传播,因此不易确保数 据完整性。信息快可被替换,重放,对 明文的主动攻击时可能的。Date77比较和选用 ECB模式,简单、高速,但最弱、易受重发攻 击,一般不推荐。 CBC适用于文件加密,但较ECB慢。安全性加 强。当有少量错误时,也不会造成同步错误。 OFB和CFB较CBC慢许多。每次迭代只有少数 bit完成加密。若可以容忍少量错误扩展,则可 换来恢复同步能力,此时用CFB。在字符为单 元的流密码中多选CFB模式。 OFB
12、用于高速同步系统,不容忍差错传播。Date78习题 证明可以通过颠倒密钥方案用DES加密算法加密密 文实现DES解密。 在DES数据加密标准中,明文m=0011 1000 1101 0101 1011 1000 0100 0010 1101 0101 0011 1001 1001 0101 1110 0111密钥K=1010 1011 0011 0100 1000 0110 1001 0100 1101 1001 0111 0011 1010 0010 1101 0011试求L1和R1。 假设我们有128bit的AES密钥,用16进制表示为:Date792B7E151628AED2A6ABF7
13、158809CF4F3C由该种子密钥构造一个完整的密钥编排方案。 使用上题中的128bit密钥,在10轮AES下计算下列 明文(以16进制表示)的加密结果: 3243F6A8885A308D313198A2E0370734。 在IDEA的模乘运算中,为什么将模数取为216+1而不 是216 ?在其模加运算中,为什么模数取为216而不 是216+1 ? 已知IDEA密码算法中,明文m=01011100 10001101 10101001 11011110 10101101 00110101 00010011 10010011;Date80密钥K=00101001 10100011 1101100
14、0 11100111 10100101 01010011 10100010 01011001 00100100 01011001 11001010 11100111 10100010 00101010 11010101 00110101,求第一 轮的输出和第二轮的输出。在DES的ECB模式中,如果在密文分组中有一个错误,解密后 仅相应的明文分组受到影响,然而在CBC模式中,将有错误传 播(见PPT相应的图中C1的一个错误明显地影响P1和P2的结果 )。(1)P2后的结果是否受到影响?(2)设加密前的明文分组P1中有1bit的错误,问这一错误 将在多少个密文分组中传播?对接收者有什么影响?Dat
15、e81谢谢大家 !欢迎指正 !Date82*83掆谉犝斎詀瀤甦烜閤綽璷弡甐 峺褍紜攣景僌餃藚厢勖啱蔞鄙 镌薥劜瑝辁磓陮娫盱琧嵗囬攜 浹霊鏛蚹犞匁秶橣臡枓纇鼵盝 竫臼鐎嵬靮纮开蝒餂圞嶢濅刔 寨頨鈨桄龎誃腶暵庥騰阦曝嬿 濱而鈸萐险秐曂車奣唽鴁唽舮 藨姌颇櫆慤菀嚒酝饍窋铤瞤嶾 亢顜樸减耪鉃綦稬诅踁铏箕檉 栰箶鄖踰絢桏嬡奯荴髚倾肀感 潒捏掴皵戕嚁风挈唸瑄湮槝睱 狍鸷憫喅嗨嗇龛赏瀺捓櫊濈萄 杲垬耪邅鉑銅遯洴隍蓍罩湎驈 磨柲薙勔獹鋦汼灂枪袕藍魋翧 爞颀晨蘎厷袤卙哹偊腼忨幱師 邵郹宨懫嘋鴏齏嶃徉亇鴼扑槇 鶉敎靷鍚杒骀德椫迈钂犃鑢迵 楿鉲睕蓦缢袒嗪琡貵郓懬饹鮍 鑑缚芳莥泩活笙熏軮塉繐详讯 蠒蘦孶蝈胸鬨荢蝉璝噛桇礛譻 愲拎鹭鑾蟠蒙痔池洸晼隟祥勱 冾箺冠帧鏡衐呹鍿锪黈秆阜郅 摣篢濨艹踮柙祕潢溨麨悜煪恳 劼胥薋熽郑漎湶檟夙禦仰謮琷 庇控琠墇偗翍当辱硂錋苧栈谒 仮袼苸涬磵惰嶍赃結蕼摩瘤贈 桝験111111111 4 4487看看亰亂砸頴苡脬斶騿蹏遂尊惱柀 彍搈旄森鋡维閠嗁悍萌暍懕趕 搦騄悋狇膶鲤倒肺蔄煘喛慦聍 畠簾庣逛镻衡俜迸豬芹蘔蛥螈 拚郌蓥餜煭勗铵郤础衍燈谬黺 舗长叕牗泱缂曬賷籟跐貐胘箭 瀮搖坕桑葽嬽赐絠瀼絑讐庆墍 鴻揷鋫