密码学与信息安全 第3章 分组密码和数据加密标准
- 格式:ppt
- 大小:1.26 MB
- 文档页数:23
密码学之分组密码算法密码学之分组密码算法简介分组密码算法(Block Cipher Algorithm)是将输⼊数据划分成固定长度的组进⾏加密和解密的⼀类对称密码算法。
其安全性主要以来于密钥,通信双⽅使⽤相同的密钥加密和解密。
其优势有速度快,易于标准化和便于软硬件实现等特点。
下标集:₀₁₂₃₄₅₆₇₈₉⁻ ¹ ₋DES加密算法DES简介于1977年公布的第⼀个被⼴泛应⽤的商⽤数据加密算法,在抵抗了⼆⼗余年的密码分析后,其安全性已⽆法得到保障。
所以在1998年12⽉以后就不再使⽤DES加密算法。
但是其衍⽣的三重DES加密算法⽬前还有其应⽤场景。
加密过程算法总览DES加密算法就如下图所⽰。
其输⼊为64位(bit)的明⽂,使⽤56位(bit)的密钥,但是附加了8位奇偶校验位(位于8,16,...,64位)组合成64位密钥。
在64位密钥的控制下,最终产⽣了64(bit)的密⽂。
在下图中X=X₁X₂X₃...X₆₄即为输⼊明⽂,在经过初始转换IP的换位处理后,得到⼀个乱序的明⽂组,并将其分为L₀和R₀两部分,每部分各32位。
⽽K₁K₂...K₁₆则是⽣成由初始密钥⽣成的轮密钥,长度有48位。
其次进⾏如下图所⽰与密钥有关的16轮迭代变换。
对R₀在进⾏⼦密钥K₁控制下的f变换,其得到的结果与L₀作逐位异或后,作为下⼀轮的R₁,⽽R₀则作为下⼀轮的L₁。
在经过16轮如上步骤,最后经过逆初始置换P⁻¹处理后得到密⽂Y=Y₁Y₂Y₃...Y₆₄初始置换IP与逆初始置换IP⁻¹IP操作是对原明⽂的位次顺序进⾏打乱,⽽逆初始置换IP⁻¹是IP操作的⼀个逆操作,其⽬的是为了撤销之前的初始置换操作。
其实这两种操作对密码⽅⾯的作⽤并不⼤。
其具体操作正如表格中所⽰,在如下表格中依次填⼊该顺序位次下的bit位,最终组成新的位次顺序。
如第⼀位的的内容即为原明⽂中第58位处的内容。
轮密钥的产⽣初始密钥K在经过选择置换PC_1后同样分为两个部分C₀和D₀,每部分各28位(bit),该选择置换实际是在除去了奇偶校验位的置换。
第三章习题1简述分组密码算法的基本工作原理。
答分组密码在加密过程中不是将明文按字符逐位加密而是首先要将待加密的明文进行分组每组的长度相同然后对每组明文分别加密得到密文。
分组密码系统采用相同的加密密钥和解密密钥这是对称密码系统的显著特点。
例如将明文分为m块0121mPPPP每个块在密钥作用下执行相同的变换生成m个密文块0121mCCCC每块的大小可以任意长度但通常是每块的大小大于等于64位块大小为1比特位时分组密码就变为序列密码如图是通信双方最常用的分组密码基本通信模型。
加密算法解码算法明文x密文y明文x密钥k密钥kkExykDyxAliceBob不安全信道安全信道密钥k攻击者图分组密码基本通信模型图在图中参与通信的实体有发送方Alice、接收方Bob。
而攻击者是在双方通信中试图攻击发方或者收方信息服务的实体攻击者经常也称为敌人、对手、搭线者、窃听者、入侵者等并且攻击者通常企图扮演合法的发送方或者接收方。
2为了保证分组密码算法的安全对分组密码算法的要求有哪些答为了保证分组密码的安全强度设计分组密码时应遵循如下的基本原则1分组长度足够长防止明文穷举攻击例如DESData Encryption Standard、IDEAInternational Data Encryption Algorithm等分组密码算法分组块大小为64比特在生日攻击下用322组密文破解成功概率为0.5同时要求32152642bitsMB大小的存储空间故在目前环境下采用穷举攻击DES、IDEA等密码算法是不可能而AES明文分组为128比特同样在生日攻击下用642组密文破解成功概率为0.5同时要求存储空间大小为644821282bitsMB采用穷举攻击AES算法在计算上就更不可行。
2 密钥量足够大同时需要尽可能消除弱密钥的使用防止密钥穷举攻击但是由于对称密码体制存在密钥管理问题密钥也不能过大。
3密钥变换足够复杂能抵抗各种已知攻击如差分攻击、线性攻击、边信道攻击等即使得攻击者除了穷举攻击外找不到其它有效攻击方法。
第3章分密组密码算法DES教学内容要点:(2课时)1.分组加密 (4)2.Feistel(费斯妥)分组密码 (6)3.数据加密标准(DES)的历史 (15)4.DES算法的入口参数 (18)5.DES算法加密过程 (19)6.变换密钥 (25)7.处理64位的数据 .............................................. 31 8. 轮函数Round 说明111(,,)(,);015i i i i i Round L R k L R i +++=从到 (37)9. DES 算法的解密过程 (45)10. 雪崩效应 (46)11. DES 算法的强度(安全性)争议 (48)12. 对密钥长度的攻击 (48)13. DES 的未来 (52)14.差分分析方法和线性分析方法(提及) (53)15.作业 (54)16.课后资料 (56)说明:1.分组加密“分组加密(block cipher):一次处理固定比特长度的分组,每次处理都有复杂的数据处理过程。
现代常规分组加密算法有:1. DES2. IDEA3. RC54. RC65. AES在近代密码史上,典型的影响相当大的分组密码算法是DES算法,它们和所有早已退出的算法由于安全与强度的原因已近退出历史舞台,但它们曾做出了重要贡献,对它们的学习对后面算法的理解和密码算法的发展及其理由有积极意义。
本章将详解DES和略解其它分组算法。
现在来看看现代分组密码,其中一个最广泛使用的加密算法提供保密/认证服务(基于密码的消息验证码:确保消息未被改动),重点DES (数据加密标准);分组密码一直得以广泛使用的理由在于:它处理速度很快,且安全性高。
学习目的此外也在于以DES为例来说明让大家了解现代分组密码的设计原则。
分组密码以固定长度的分组来处理模块,每个然后加/解密;像在一个非常大的字符集合上进行替代运算。
64位或更长;2.Feistel(费斯妥)分组密码许多对称的分组加密算法,都是基于结构称为Feistel分组密码,如:IBM的LUCIFER卖给英国公司Lloyd公司的现金发放卡上;此外DES算法。
一、分组密码算法的要求分组密码算法是一种广泛应用于数据加密和保护的密码算法,其要求具有以下特点:1. 安全性:分组密码算法需要保证加密后的数据在没有密钥的情况下不容易被解密,即具有高度的安全性,能够抵御各种攻击手段。
2. 效率:除了安全性之外,分组密码算法在加密和解密过程中需要具有较高的运算效率,不会过多消耗计算资源。
3. 可逆性:加密后的数据需要能够通过相应的密钥进行解密,还原原始的明文数据。
4. 弹性:分组密码算法需要能够根据不同的应用场景和需求,灵活地使用不同的密钥长度和数据块大小。
5. 抗攻击能力:分组密码算法需要能够抵御不同类型的攻击,如差分攻击、线性攻击、差分攻击等。
二、采用的方法为了满足上述要求,分组密码算法采用了以下方法来保证安全性和效率:1. 替代与置换:分组密码算法中常常采用替代与置换的方法,通过将明文数据进行替代和置换,从而混淆数据的结构,在密文中隐藏原始信息。
2. 数据扩散:通过多轮的置换和替代操作,将明文数据扩散到密文的不同位置,增加了攻击者破解的难度。
3. 密钥调度:分组密码算法通过密钥调度算法,将密钥的信息混淆、扩散到整个加密过程,增加了密码算法的强度。
4. 轮函数:分组密码算法通常采用多轮加密的方式,每一轮通过不同的轮函数进行替代、置换和扩散操作,增加了密码算法的复杂度和混淆程度。
5. 非线性变换:在分组密码算法中,使用非线性函数进行变换操作,增加了密码算法的复杂性和难度,提高了安全性。
分组密码算法在满足安全性、效率、可逆性、弹性和抗攻击能力等要求的基础上,采用替代与置换、数据扩散、密钥调度、轮函数和非线性变换等方法来保证加密过程的安全性和有效性。
随着密码学和计算机技术的不断发展,分组密码算法也在不断完善和改进,以适应不同的应用需求和安全标准。
分组密码算法是数据加密领域的一个非常重要的分支,它是许多安全通信协议和系统中必不可少的核心部分。
而实现一个安全可靠的分组密码算法并不是一件容易的事情,它需要满足一系列严格的要求和采用一系列复杂的方法。
第3章 分组密码习题及参考答案1. 设DES 算法中,明文M 和密钥K 分别为:M =0011 1000 1100 0100 1011 1000 0100 0011 1101 0101 0010 0011 1001 1110 0101 1110K =1010 1001 0011 0101 1010 1100 1001 1011 1001 1101 0011 1110 1101 0101 1100 0011求L 1和R 2。
解:初始变换IP :1001 1010 1101 0101 1101 0010 0011 1000 0101 0110 0010 0101 1100 0101 1110 1000则,0L =1001 1010 1101 0101 1101 0010 0011 10000R =0101 0110 0010 0101 1100 0101 1110 1000K 去校验位得:0C =1101 0111 1100 0000 0010 0111 01110D =1010 1000 0111 0110 0011 0101 0010循环左移一位:1C =1010 1111 1000 0000 0100 1110 11111D =0101 0000 1110 1100 0110 1010 0101经过置换选择得到:1K =0000 1111 0110 1000 1101 1000 1001 1010 1000 0111 0011 0001同样可以得到:2K =0101 0101 0110 0001 1101 1101 1011 0101 0101 0000 0110 11101L =0R =0101 0110 0010 0101 1100 0101 1110 1000经过轮函数F 后,0R 经过扩展置换E 后为:0010 1111 1100 0001 0000 1011 1110 0000 1011 1111 0000 0000和1K 异或后经S 盒替换:0100 1100 0011 1000 0100 1100 0000 1010经过P 盒置换后输出:0001 1100 0000 1110 1000 0000 0101 1100和0L 异或得1R :1000 0110 1101 1011 0101 0010 0110 01001R 经过扩展置换E 得48位输出:1000 1010 0100 0010 0000 1000 0010 0101 1101 0100 10101010同上过程可得2R :1101 0100 1100 0111 0000 1101 0001 0110即:1L =0101 0110 0010 0101 1100 0101 1110 10002R =1101 0100 1100 0111 0000 1101 0001 01102. 设DES 算法中S 4盒的输入为010101,求其输出。