版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、论文的结构一、论文的结构第一章介绍了Rijndeal算法的研究背景、意义以及现状 ;第二章简单介绍了Rijndael算法的数学基础;第三章详细介绍了算法的设计原则、加解密原理和结构,并实现该算法。第四章详细介绍了国内外关于该算法优化实现的各种方法;第五章分析了该算法对流行的各种密码分析方法的抵抗能力。第六章总结了论文并对以后的工作做了展望。二、二、Rijndael算法简介算法简介Rijndael算法是一个迭代分组密码,是由美国国家标准技术研究所(NIST)2000年推选的新的高级加密标准算法。算法的分组长度和密钥长度被设计为可变的,可指定为128比特、192比特或256比特。这一设计大大提
2、高了其应用的灵活性。Rijndael是一种10轮的代替-线性变换网络。轮数Nr依赖于分组长度和密钥长度。要用Rijndael处理的数据分组被分割 成字节矩阵,每一次密码运算都是面向字节的运算, Rijndael的轮函数由四个步骤组成。在第一个步骤,一个S-盒应用于每个字节;第二个和第三个步骤都是线性变换,矩阵按行移位,按列混合,在第四个步骤,子密钥字节异或矩阵的每个字节,而在最后一轮则省略列混合。三、三、Rijndael算法的原理算法的原理 1.加密过程加密过程 Rijndael的加密过程包括一个初始密钥加法,记作AddRoundKey,接着进行Nr-1次轮变换Round,最后再使用一个轮变换
3、 FinalRound。初始的密钥的加法和每个轮变换均以状态 State和一个轮密钥作为输入。第i轮的轮密钥记为 ExpandedKeyi,初始密钥加法的输入记为ExpandedKey0。 2.输入输入/输出输出 Rijndael 的输入/输出可看作 8 位字节的一维数组。对加密来说,其输入时一个明文分组和一个密钥,输出是一个密文分组。对解密而言,输入时一个密文分组和一个密钥,而输出是一个明文分组。 3.状态状态 Rijndael 的轮变换及其每一步均作用在中间结果上,我们将中间结果称为状态。状态可以形象地用一个行数为 4 ,列数为Nb(等于分组长度除以 32)矩形的字节数组来表示。 4.轮变
4、换轮变换轮变换 Round 由 4 个变换组成,其中每个变换称为步骤。该算法的最后一轮 Final Round 稍有不同,没有列混合 MixColumns 步骤。 (1)SubBytes:是 Rijndael 密码中惟一的非线性变换。它是一个砖匠变换,该变换包含一个作用在状态字节上的 S-盒。SubBytes 变换有以下两部分组成:1) 把 State 里的字节的值用它的乘法逆代替,其中00的逆就是本身;2) 经步骤1)处理后的字节值进行如下定义的仿射变换:(2) ShiftRows:ShiftRows 是一个字节换位,它将状态中的行按照不同的偏移量进行循环移位。第0行移动C0字节,第1行移动
5、C1字节,第2行移动C2字节,第3行移动C3字节。从第行第位的字节移动到位置。移动偏移量C0,C1, C2 , C3依赖于Nb的取值。偏移量的选择:偏移量的选择:按照简单性的准则,偏移量的值可以取0。实际上对于一个128比特的分组,偏移量的值应当取0、1、2、3,各行所使用的偏移量可以使其中的任意一个。对于简化的Rijndael算法,采用128比特作为研究对象,偏移量的值应当取0、1、2、3。 (3)MixColumns:MixColumns 是作用在状态各列的砖匠置换。对MixColumns 中D-盒的定义做如下选取:把状态的列看作 上的多项式a(x),)2(8GF并在模 下与一个给定的多项
6、式相乘。给定的多项式为:14x02010103)(23xxxxc与一个固定的多项式模乘可表示为一个矩阵乘法。设 ,则)1)(mod()()(4xxaxcxb3210321002010103030201010103020101010302aaaabbbbInvMixColumns 的矩阵乘法则为:的矩阵乘法则为:3210321000900000900000909000aaaaedbbeddbedbebbbb(4)AddRoundKey:在这个变换中,状态的调整通过与一个轮密钥(ExpandedKey i)进行逐位异或而得到。轮密钥由密码密钥通过密钥编排方案导出,轮密钥长度等于分组长度。AddRo
7、undKey 的逆仍是其自身。2.解密原理解密原理解密算法可通过直接由步骤 InvSubBytes、InvShiftRows、InvMixColumns 和 AddRoundKey 的逆并倒置其次序得到,此算法称为直接解密算法。 明文分组数据X与原始密钥K1异或(XK1)S盒变换行变换列变换与子密钥Ki异或(X Ki)S盒变换行变换与子密钥Kr+1异或(X Kr+1)得到加密分组数据Y得到加密分组数据Y从被加密文件中顺序取出一个明文分组与子密钥Kr+1异或(Y Kr+1)逆行变换逆S盒变换与子密钥Ki异或(Y Ki)逆列变换逆行变换逆列变换与原始密钥K1异或(YK1)得到解密分组数据X恢复明文
8、分组数据加解密算法流程图如下:加解密算法流程图如下:四、算法实现的优化四、算法实现的优化Rijndael算法的软件实现是基于通用PC的编程实现,它具有实现简单、可移植性强、成本相对低廉、易于升级等优点;它的缺点是庞大的操作系统和大量硬件资源的支持由于通用CPU主频的不断提高,软件实现也能达到相当高的速度。Rijndael算法实现的主要优化方案有:状态数据存储的优化、轮函数的改进 、字节间乘法的优化、S-盒的优化以及列混合及其逆运算的优化。 四、算法的安全性分析四、算法的安全性分析1.主要攻击有:强力攻击、差分与线性密码分析、渗透攻击(Square)和插值攻击。 1)强力攻击:现已知的强力攻击主要有穷尽密钥搜索攻击、字典攻击、查表攻击和时间-存储权衡攻击,攻击的复杂度只依赖于分组长度和密钥长度 。 2)差分与线性密码分析基本思想:当算法总由群加密运算时,明文分组的差分值不变的穿过群加密层,而余群加密与密钥无关;利用差分扩散不充分性有时可以逼近最后一轮的密钥。 3) Square攻击其主要思想:利用第四轮字节替代前后平衡性的改变来猜测密钥字节。4)插值攻击的基础:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北中大金匮要略重点复习
- 《汽车保险》-项目七 汽车投保实务
- 安徽省黄山市2026年高三第一次调研测试化学试卷(含答案解析)
- 六年级上册英语全单元思维导图(人教版 + 外研版)
- 2025-2030年云存储办公插件行业深度调研及发展战略咨询报告
- 2025-2030年古建筑照明保护方案企业制定与实施新质生产力战略分析研究报告
- 2025-2030年VR-AR电影体验企业制定与实施新质生产力战略分析研究报告
- 2025-2030年铅锌矿采选行业数字营销策略分析研究报告
- 2025-2030年港口安全监控系统升级行业深度调研及发展战略咨询报告
- 社区护理沟通
- 第7课 网页的数据组织 课件 2025-2026学年八年级上册信息技术浙教版
- 经胸超声心动图标准切面及标准测量
- 深度解读2025年家庭教育指导服务行业市场规模、增长速度及政策环境分析报告
- 2024年高考语文全国二卷(含答案)精校版
- 腾讯公司质量管理制度
- 教育事业十五五发展规划
- CJ/T 409-2012玻璃钢化粪池技术要求
- 单独支付药品用药申请表
- T/CNPPA 3017-2021塑料和橡胶类药包材自身稳定性研究指南
- 2025年合肥兴泰金融控股(集团)有限公司招聘23人笔试参考题库附带答案详解
- 太钢不锈钢产品手册
评论
0/150
提交评论