- 1、本文档共111页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
4.1分组密码的设计准则
4.2数据加密标准(DES)
4.3高级数据加密标准(AES)
4.4IDEA算法
4.5SM4分组加密算法
4.6分组密码的工作模式
4.7分组密码的安全性;4.1分组密码的设计准则;分组密码是指对固定长度的一组明文进行加密的一种加密算法,这一固定长度称为分组长度。分组长度是分组密码的一个参数,其值取决于实际应用的环境。对于通过计算机来实现的分组密码算法,通常选取的分组长度为64位。这是一个折中的选择,考虑到分组算法的安全性,分组长度不能太短,以保证加密算法能够应付密码分析;考虑到分组密码的实用性,分组长度又不能太长,以便于操作和运算。近年来,随着计算机计算能力的不断提高,分组长度为64位的分组密码的安全性越来越不能满足实际需求,为了提高加密的安全性,很多分组密码开始选择128位作为算法的分组长度。
分组密码的加密是对整个明文进行操作的,包括空格、标点符号和特殊字符,而不仅仅是字符。分组密码的加密过程是按分组长度n将明文分成若干个组,对每一个长度为n位的明文消息分组执行相同的加密操作,相应地产生一个n位的密文分组。由此可见,不同的n位明文消息分组共有2n个。考虑到加密算法的可逆性(即保证解密过程的可行性),每一个不同的n位明文消息分组都应该产生一个唯一的密文消息分组,加密过程对应的变换被称为可逆变换或非奇异变换。所以分组密码算法从本质上定义了一种从分组的明文消息到相应的密文消息的可逆变换。;在分组密码中,必须处理一个问题———填充。因为分组加密是作用在大小固定的块上的,如果明文的大小不是分组长度的整数倍,就需要进行填充。例如,分组的长度是64位(即8个字节),而明文的大小只有96位(即12个字节),在这种情况下,第二个分组就只有32位,这时需要进行填充。在分组加密中,要求填充是可逆的。也就是说,必须在加密时能添加填充字符,而在解密时能检测出填充字符。常见的解决办法是为明文添加(填充)足够的0,从而使明文长度是分组长度的整数倍。这样做就面临它可能不可逆的问题。例如,对于明文字母“p”与添加了一些“0”后的明文字母“p”,经加密后,再解密都得到“p”,这就无从知道明文是否带有“0”。下面以举例的方式介绍4种常见的分组密码填充方式,其中第1种填充方式不可逆,后3种填充方式均可逆。
假定块长度为8字节,要加密的明文数据长度为9字节,那么消息被切成两个块,第2块只有1字节,需要填充7字节。如果把9字节的明文数据记为;(1)Zeros填充算法:需要填充的7字节全部填充0。分组结果如下:
第1个消息分组:F1F2F3F4F5F6F7F8。
第2个消息分组:F900000000000000。
Zeros填充算法无法区分第2个消息分组中F9后的0序列是否明文中的原始序列,因此该填充算法不可逆。
(2)X923填充算法:需要填充的7字节中前6字节填充0,最后1字节记录填充的总字节数。分组结果如下:
第1个消息分组:F1F2F3F4F5F6F7F8。
第2个消息分组:F900000000000007。;(3)PKCS7填充算法:需要填充的7字节中的每字节填充需要填充的总字节数。分组结果如下:
第1个消息分组:F1F2F3F4F5F6F7F8。
第2个消息分组:F907070707070707。
(4)ISO10126填充算法:需要填充的7字节中前6字节填充随机字节序列,最后1字节记录填充的总字节数。分组结果如下:
第1个消息分组:F1F2F3F4F5F6F7F8。
第2个消息分组:F97D2A75EFF8EF07。;与古典密码不同的是,在分组密码中,密文块的所有位与明文块的所有位有关,正是这个原因体现了分组密码的最重要特征:如果明文的单个位发生了改变,那么密文块的位平均有一半要发生改变。分组密码是现代密码学的重要组成部分,当前被广泛使用的分组加密算法几乎都是基于Feistel分组密码的结构设计的。为了对具有代表性的分组密码DES算法、AES算法和IDEA算法进行深入研究和分析,我们首先介绍Feistel分组密码的基本结构和设计准则。
4.1.1Feistel分组密码的基本结构
Feistel密码结构是基于1949年Shannon提出的交替使用替换和置换方式构造密码体制的设想提出的。在设计密码体制的过程中,Shannon提出了能够破坏对密码系统进行各种统计分析攻击的两个基本操作:扩散和混淆。扩散的目的是使明文和密文之间的统计关系变得尽可能复杂;混淆的目的是使密文和密钥之间的统计关系变得尽可能复杂。为了使攻击者无法得到密钥,在扩散过程中,明文的统计信息被扩散到密文的更长的统计信息中,使得每一个密文数字与许多明文数字相关,从而使密文的统计信息与
您可能关注的文档
- 信号与系统(第五版)课件 第1章 信号与系统.pptx
- 信号与系统(第五版)课件 第6章 z 变换及其应用.pptx
- 信号与系统(第五版)课件第2章 连续时间信号和系统的时域分析.pptx
- 信号与系统(第五版)课件第3章 连续时间信号和系统的频域表示与分析.pptx
- 信号与系统(第五版)课件第4章 连续时间信号和系统的复频域表示与分析.pptx
- 信号与系统(第五版)课件第5章 离散时间系统的时域分析.pptx
- 新编密码学 课件 第1章 绪论.pptx
- 新编密码学 课件 第2章 基础知识.pptx
- 新编密码学 课件 第3章 古典密码.pptx
- 新编密码学 课件 第5章 中外文网络数据库检索.pptx
文档评论(0)