




已阅读5页,还剩128页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息安全原理及其应用 黄建华计算机科学与工程系jhhuang 参考书目 熊平 朱天清 信息安全原理及应用 M 北京 清华大学出版社 2010程光 张艳丽 江洁欣 信息与网络安全 M 北京 清华大学出版社 2008AppliedCryptography Protocols Algorithms andSourceCodeinC 2ndEditionbyBruceSchneier 考核方式 考核期末考试 70 作业 20 考勤 10 作业不定期布置作业或课堂测验 不交 迟交或抄袭的按0分记 不接受电子版作业 每次课后的作业 在下次课上课时上交 内容安排 信息安全概述与密码学基础对称密码体制与公钥密码体制消息认证 身份认证与数字签名密钥管理访问控制 网络攻击防火墙与入侵检测安全协议 第1章信息安全概述 信息安全的概念信息安全的发展历史信息安全的目标信息安全的研究内容 1 1信息安全的概念 信息信息安全定义是指信息网络系统的硬件 软件及其系统中的数据受到保护 不受偶然的或者恶意的原因而遭到破坏 更改 泄露 系统连续可靠正常地运行 信息网络服务不中断信息安全是一门综合性学科涉及计算机科学 网络技术 密码学 应用数学 等多种学科 信息安全涉及的知识领域 操作系统 编程语言 密码 网络 心理学 数学 法律 物理学 1 2信息安全的发展历史 古典信息安全建立在古典密码学的基础上辐射安全20世纪50年代 人们认识到可以通过获取电话线上的电信号来获取消息计算机安全网络安全信息安全 1 3信息安全的目标 保障信息系统在遭受攻击的情况下的某些安全性质不变安全性攻击 1 被动攻击 2 主动主动攻击被动攻击搭线攻击无线截获其他截获流量分析被动攻击不涉及数据更改 很难察觉 保护方法是加密等预防措施 而不是检测 安全性攻击 主动攻击伪装重放消息篡改拒绝服务 总结 被动攻击破坏了信息的机密性 主动攻击的伪装 重放 消息篡改破坏了信息的完整性拒绝服务破坏了信息系统的可用性 信息安全的目标 目标 保护信息的机密性 完整性和可用性 CIA 信息安全的基本属性 机密性 Confidentiality sensitiveinformationisnotdisclosedtounauthorizedrecipients完整性 Integrity thesystemisabletoprovideinformationorservicesthatareauthoritative unimpairedandcanbetrusted可用性 Availability referstotheabilityofasystemtocontinuetoprovideitsservicesforittobeuseful 信息安全属性的其他描述 可靠性 Reliability continuityofservice 系统在规定条件下和规定时间内完整规定功能的概率 如网络硬件设备的可靠性不可抵赖性 non repudiation 可控性 controllability 可审查性 audit 1 4信息安全的研究内容 数据加密 消息摘要 数字签名 密钥管理 身份认证 访问控制 安全审计 安全协议 密码理论 安全理论 边界安全 系统安全 信息安全基础理论 物理安全 用户安全 数据安全 网络安全 入侵 病毒检测 漏洞扫描与分析 防火墙 安全平台技术 安全实现技术 信息安全应用技术 安全标准 安全策略 安全测评 信息安全管理 1 4 1信息安全基础研究 分密码学研究和网络信息安全基础理论研究密码理论数据加密算法消息认证算法数字签名算法密钥管理 密码理论的应用 攻击方式 1 泄密 2 传输分析 3 伪装 4 内容修改 5 顺序修改 6 计时修改 7 发送方否认 8 接收方否认 应对方法 对付 1 2 两种攻击可用密码编码理论对付 3 6 的攻击可用消息认证算法对付 7 8 攻击则用数字签名算法 安全理论 身份认证授权与访问控制安全审计安全协议 1 4 2信息安全应用研究 安全技术防火墙技术 漏洞扫描和分析技术 入侵检测技术 入侵容忍技术 防病毒等安全平台物理安全 网络安全 系统安全 数据安全 用户安全 边界安全 1 4 3信息安全管理研究 安全策略研究安全风险评估 安全代价评估 安全机制的制定 安全措施的实施和管理安全标准研究安全等级划分 安全技术操作标准 安全体系结构标准 安全产品测评标准和安全工程实施标准安全测评研究测评模型 测评方法 测评工具 测评规程 第2章密码学基础 密码学的发展历史密码学的基本概念密码系统的分类密码分析经典密码学 2 1密码学的发展历史 密码学 cryptography古代的密码通信JuliusCaesar发明了凯撒密码第一次世界大战1920年发明弗纳姆密码其原理是利用电传打字机的五单位码与密钥字母进行模2相加加密 解密进入机器时代 两次世界大战大大促进了密码学的发展 转轮密码机ENIGMA 由德国发明家ArthurScherbius于1918年发明 面板前有灯泡和插接板 4轮ENIGMA在1942年装备德国海军 英国从1942年2月到12月都没能解读德国潜艇的信号 英国的TYPEX打字密码机 是德国3轮ENIGMA的改进型密码机 它在英国通信中使用广泛 且在破译密钥后帮助破解德国信号 1946年计算机出现1949年香农发表 保密系统的通信理论 标志着密码学作为一门学科的形成ShannonCE Communicationtheoryofsecrecysystem J BellSyst Thech J 1949 28 656 715 Shannon信息论 信息在信道传输中可能受到攻击 引入密码理论阐明了密码系统 完善保密 理论保密和实际保密等概念提出以扩散和混淆两种基本方法来设计密码 香农 1916 2001 生于美国密执安州的加洛德 1940年获得麻省理工学院数学博士学位和电子工程硕士学位 1941年他加入了贝尔实验室数学部 在此工作了15年 现代密码学的形成 1976年WhitefieldDiffie和MartinHellman提出了加密算法和密钥可以公开的思想 公钥密码体制 1978年MIT的数学家R L Rivest A Shamir和L Adleman提出了RSA公钥密码体制1977年美国国家标准局颁布了数据加密标准DES1994年美国颁布了数字签名标准DSS2001年美国正式颁布AES取代DES作为美国国家标准 2 2密码学的基本概念 1 密码学是关于加密和解密变换的一门科学 是保护数据和信息的有力武器 密码是什么 密码就是变换 信息代码变换 数据电平变换 变换是什么 变换是一种算法实现过程 谁来做变换 变换可以由硬件和软件实现 人 器件部件 计算机 密码学的基本概念 2 密码学 Cryptology 研究信息系统安全保密的科学 它包含两个分支 密码编码学 Cryptography 对信息进行编码实现隐蔽信息的一门学问 密码分析学 Cryptanalytics 研究分析破译密码的学问 密码学的基本概念 3 伪装 对数据 消息 Message 施加一种可逆的数学变换明文 plaintext 伪装前的消息密文 ciphertext 伪装后的消息加密 Encryption 伪装的过程解密 Decryption 去掉伪装恢复明文的过程 密码体制的基本组成 一个密码系统通常称为密码体制 由五部分组成 1 明文空间 M 全体明文的集合 2 密文空间 C 全体密文的集合 3 加密算法 E 一组由M到C的加密变换 4 解密算法 D 一组由C到M的解密变换 5 密钥空间 K 全体密钥的集合 加钥密钥Kc 解密密钥Kd 信息的加密传输过程 攻击者 加密密钥 解密密钥 明文 加密算法 信道 解密算法 明文 M C C M Kc Kd 密钥K 安全信道 用户A 用户B 传送给B的信息 B收到信息 C窃听到的信息 算法设计的公开原则 算法的全部描述必须公开披露密码必须可以在世界范围内免费使用 2 3密码系统的分类 1 根据密钥的使用方式分类对称密码体制 秘密钥密码体制 用于加密数据的密钥和用于解密数据的密钥相同 或者二者之间存在着某种明确的数学关系 加密 EK M C解密 DK C M非对称密码体制 公钥密码体制 用于加密的密钥与用于解密的密钥是不同的 而且从加密的密钥无法推导出解密的密钥 用公钥KP对明文加密可表示为 EKP M C用相应的私钥KS对密文解密可表示为 DKS C M 密码系统的分类 2 根据明文和密文的处理方式分类分组密码体制 BlockCipher 设M为明文 分组密码将M划分为一系列明文块Mi 通常每块包含若干字符 并且对每一块Mi都用同一个密钥Ke进行加密 M M1 M2 Mn C C1 C2 Cn 其中Ci E Mi Ke i 1 2 n 序列密码体制 StreamCipher 将明文和密钥都划分为位 bit 或字符的序列 并且对明文序列中的每一位或字符都用密钥序列中对应的分量来加密 M M1 M2 Mn Ke ke1 ke2 ken C C1 C2 Cn 其中Ci E mi kei i 1 2 n 密码系统的分类 3 根据加密算法是否变化分类设E为加密算法 K0 K1 Kn 为密钥 M0 M1 Mn为明文 C为密文固定算法密码体制C0 E M0 K0 C1 E M1 K1 Cn E Mn Kn 变化算法密码体制C0 E1 M0 K0 C1 E2 M1 K1 Cn En Mn Kn 2 4密码分析 密码分析 破译的过程攻击密码体制 密码分析穷举攻击 密码分析学 密码分析学定义 在不知道密钥的情况下恢复出明文的一门科学攻击 对密码进行分析的尝试常见的攻击形式唯密文攻击 ciphertextonly 以知明文攻击 knownplaintext 选择明文攻击 chosenplaintext 选择密文攻击 chosenciphertext 穷举攻击 尝试所有的密钥直到有一个正确的密钥能够把密文还原成明文一般来说 要获取成功必须尝试所有可能密钥的一半密钥为1位 则密钥只能是0或1密钥为2位 则攻击者需要尝试4次DES为本56位密钥 则其密钥个数为256个1997年Internet上数万台微机用4个月破译了DES因此密钥必须足够长 至少为本128位 2 5经典密码学 经典密码体制ClassicalCryptography 或称为古典密码体制 采用手工或者机械操作实现加解密经典密码学定义为不要用计算机实现的所有加密算法古典密码一般指从古代至二次世界大战前后产生的密码经典密码采用的两种基本技术 代换技术 Substitution 置换技术 Permutation 编制古典密码的基本方法对于编制现代密码仍然有效 置换 Permutation 和代换 Substitution Permutation Mathematics Anorderedarrangementoftheelementsofaset Substitution Onethattakestheplaceofanother areplacement 置换起到扩散 diffusion 的作用 代换起到混淆 confusion 的作用 扩散和混乱是对称密码设计的基本思想 Shannon1949 置换和代换在现代密码设计中仍然被采用 代换密码 代换是将明文字母替换成其他字母 数字或符号代换密码 Substitutioncipher 就是明文中的每一个字符被替换成密文中的另一个字符 接收者对密文进行逆替换恢复出明文 代换密码类型简单代换密码多名代换密码字母代换密码多表代换密码 恺撒密码 以知的最早的代换密码 由Caesar发明 它对字母表中的每个字母 用它之后的第三个字母来代换 例如 凯撒想把下面的消息发送给他的将军 youmustattackatmidnight加密消息的第一步 251521132119201202012013941497820第二步 对上面每一个数进行模26加3的运算218241624222342323423161271712101123BRXPXVWCWWCWOLGQLJKW 移位密码 恺撒密码 k 3 加密公式 C p 3 mod 26 解密公式 p C 3 mod 26 移位密码加密公式 C p k mod 26 解密公式 p C k mod 26 单表代换密码 密文行是26个字母的任意置换明文a用c代换 b用剩下的25个字母中随机的一个来代换 c用剩下的24个字母中随机的一个来代换 依此类推 密钥空间为本26 多表代换密码 在明文消息中采用不同的单表代换 这样一来 密文中每个字母都有多个可能的密文来代换它著名的多表代换密码PlayfairHillVigen re采用相关的单表代换规则由密钥来决定给定变换的具体规则 最著名的多表代换加密体制 Playfair 由英国科学家CharlesWheatstone于1854年发明 以其好友BaronPlayfair的名字命名 在第一次世界大战中 英军使用Playfair密码作为陆军的标准加密体制 在第二次世界大战中 盟军使用它作为通信加密工具 Playfair算法例子 密钥词monarchyPlayfair算法基于使用一个5 5字母矩阵 该矩阵使用一个关键词构造 从左至右 从上至下填入该关键词的字母 去除重复字母 然后再以字母表顺序将余下的字母填入矩阵剩余空间 字母I和J被算作一个字母 代换规则 属于相同对中的重复的明文字母将用一个填充字母进行分隔 因此 词balloon将被加密为balxloon 属于该矩阵相同行的明文字母将由其右边的字母替代 而行的最后一个字母由行的第一个字母代替 例如 ar被加密为RM 属于相同列的明文字母将由它下面的字母代替 而列的最后一个字母由列的第一个字母代替 例如 mu被加密为CM否则 明文的其他字母将由与其同行 且与下一个同列的字母代替 因此 hs成为BP ea成为IM 或JM 这可根据加密者的意愿而定 Playfair密码的优点 Playfair密码与简单的单一字母替代法密码相比有了很大的进步虽然仅有26个字母 但有26 26 676种字母对 因此 识别字母对要比单个字母要困难得多一个明文字母有多种可能的代换密文字母 使得频率分析困难的多 hs成为BP hq成为YP 由于这些原因 Playfair密码过去长期被认为是不可破的 置换技术 置换密码把明文中的字母重新排列 字母本身不变 但其位置改变了 在代换密码中 明文中的每个字母都被替代为另外的字母在置换密码中 整个明文被替换为它自身的一个置换置换密码并不是替换明文字母 只是从其原始位置移动到另外一个位置 置换技术1 栅栏技术 明文以Z型栅栏排列 按对角线的顺序写入明文 其高度是置换密码的密钥例如 假设明文为 meetmeatmydepartment 密钥为2 则Z型栅栏如下 memamdprmn etetyeatet 逐行扫描这个Z型栅栏可以生成密文memamdprmnetetyeatet密钥改为3 则Z型栅栏如下 mmmpm etetyeatet eadrn 逐行扫描这个Z型栅栏可以生成密文mmmpmetetyeateteadrn 置换技术2 矩阵技术 定义密钥k k1k2 kn 将明文逐行写入一个n列的矩阵中 随后按照k1k2 kn从小到大顺序逐列读取密文例如 明文getitinthecomputerdepartment 4312567 getitin thecomp uterdep artment 密钥4312567 密文teeticrmehtrgtuatodeimennppt多步置换密码 见书上p26 转轮机 经典密码的机械阶段 20世纪20年代 随着机械和机电技术的成熟 以及电报和无线电需求的出现 引起了密码设备方面的一场革命 发明了转轮密码机 简称转轮机 Rotor 转轮机的出现是密码学发展的重要标志之一 转轮机由一个键盘和一系列转轮组成 每个转轮是26个字母的任意组合 转轮被齿轮连接起来 当一个转轮转动时 可以将一个字母转换成另一个字母 照此传递下去 当最后一个转轮处理完毕时 就可以得到加密后的字母 为了使转轮密码更安全 人们还把几种转轮和移动齿轮结合起来 所有转轮以不同的速度转动 并且通过调整转轮上字母的位置和速度为破译设置更大的障碍 转轮机的经典 ENIGMA 1918年 德国发明家ArthurScherbius用二十世纪的电气技术来取代已经过时的铅笔加纸的加密方法 他研究的结果就是永远被尊为经典的ENIGMA ENIGMA首先是作为商用加密机器得到应用的 它的专利在1918年在美国得到确认 售价大约相当于现在的30000美元 ENIGMA在二战中的传奇 二战中德国军队大约装备了三万台ENIGMA 在第二次世界大战开始时 德军通讯的保密性在当时世界上无与伦比 ENIGMA在纳粹德国二战初期的胜利中起到的作用是决定性的 闪电战 的提出者 德国装甲部队之父 纳粹德国的海因茨 古德里安 HeinzGuderian 将军在指挥车上 在照片的左下方我们可以看见一台ENIGMA 波兰人破译ENIGMA 雷杰夫斯基和罗佐基在ENIGMA的基础上设计了一台能自动验证密钥的机器 6台ENIGMA和为使它们协作的其他器材组成了一整个大约一米高的机器 它能在两小时内找出当日密钥 整整十三年里 英国人和法国人都以为ENIGMA是不可破译的 波兰人的成功重新鼓起了他们的勇气 虽然德国人已经加强了密码机的安全性能 但是波兰人的实践表明 ENIGMA决非坚不可破 波兰密码局的经验也表明 数学家在密码分析中能够起到多么重要的作用 在英国密码局 40局 以往都是由精于文字的语言学家或作家来担负起密码分析的重任 此后40局开始通过局内人际关系向牛津大学和剑桥大学招聘数学家和数学系学生 隐蔽通道和隐写术 严格来说 隐蔽通道和隐写术这两种技术并不是加密 而是隐藏 它们隐藏明文信息的存在 而密码学通过对文本信息的不同转换而实现信息对外的不可读 同加密相比 隐蔽通道和隐写术有一些缺点 它需要许多额外的付出来隐蔽相对较少的信息 尽管采用一些上述的方案也许有效 但是一旦被破解 整个方案就毫无价值了 它的优点是可以应用于通信双方宁愿他们的秘密通信被发现而不愿其中的重要内容丢失的情况 作业 按书上p25页图试的矩证例子和明文 进行二轮加密运算 密钥是您自己的学号 求密文 要求写出过程 第3章对称密码体制 分组密码数据加密标准DES高级加密标准AES序列密码其他对称加密算法 概述 对称密码体制就是在加密和解密是用到的密钥相同 或者加密密钥和解密密钥之间存在着确定的转换关系 对称密码体制又有两种不同的实现方式 即分组密码和序列密码 或称流密码 流密码与分组密码 流密码每次加密数据流中的一位或一个字节 分组密码 就是先把明文划分为许多分组 每个明文分组被当作一个整体来产生一个等长 通常 的密文分组 通常使用的是64位或128位分组大小 分组密码的实质 是设计一种算法 能在密钥控制下 把n比特明文简单而又迅速地置换成唯一n比特密文 并且这种变换是可逆的 解密 分组密码 分组密码算法实际上就是在密钥的控制下 简单而迅速地找到一个置换 用来对明文分组进行加密变换 一般情况下对密码算法的要求是 安全性分组长度m足够大 64 128比特 密钥空间足够大 密钥长度64 128比特 密码变换必须足够复杂 包括子密钥产生算法 运行速度实现平台 硬 软件 芯片 填充 Padding 给定加密消息的长度是随机的 若按64bit分组时 最后一组消息长度可能不足64bit 可以填充一些数字 通常用最后1字节作为填充指示符 PI 它所表示的十进制数字就是填充占有的字节数 数据尾部 填充字符和填充指示符一起作为一组进行加密 分组密码的设计思想 扩散 diffusion 将明文及密钥的影响尽可能迅速地散布到较多个输出的密文中 产生扩散的最简单方法是通过 置换 Permutation 比如 重新排列字符 混淆 confusion 其目的在于使作用于明文的密钥和密文之间的关系复杂化 使明文和密文之间 密文和密钥之间的统计相关特性极小化 从而使统计分析攻击不能奏效 通常的方法是 代换 Substitution 回忆恺撒密码 Feistel密码结构 很多分组密码结构本质上基于一个Feistel结构 加密算法的输入是分组长为本2w位的明文和一个密钥K 输出是2w位的密文迭代前将明文分成左 由两半L0和R0在子密钥的作用下进行n轮迭代 L0和R0 K1作为迭代函数f的输入 f的输出与L进行异或运算得到下一次迭代R1 而R0则成为下一次迭代的L1Li Ri 1Ri Li f Ri 1 Ki 迭代完成后再交换左 右两半数据 Feistel密码结构 DES DataEncryptionStandard 美国国家标准局NBS于1973年5月发出通告 公开征求一种标准算法用于对计算机数据在传输和存储期间实现加密保护的密码算法 1975年美国国家标准局接受了美国国际商业机器公司IBM推荐的一种密码算法并向全国公布 征求对采用该算法作为美国信息加密标准的意见 经过两年的激烈争论 美国国家标准局于1977年7月正式采用该算法作为美国数据加密标准 1980年12月美国国家标准协会正式采用这个算法作为美国的商用加密算法 DES的实质 DES是一种对称密码体制 它所使用的加密和解密密钥是相同的 是一种典型的按分组方式工作的密码 其基本思想是将二进制序列的明文分成每64bit一组 用长为64bit 56bit 的密钥对其进行16轮代换和置换加密 最后形成密文 DES的基本加密流程 加密前 先将明文分成64bit的分组 然后将64bit二进制码输入到密码器中 密码器对输入的64位码首先进行初始置换 然后在64bit主密钥产生的16个子密钥控制下进行16轮乘积变换 接着再进行末置换就得到64位已加密的密文 DES算法的一般描述 DES算法 X0 IP X L0R0 L0表示X0的前32位 R0表示X0的后32位 DES16轮置换的输出可表示为 Xi LiRi1 i 16Li Ri 1Ri Li f Ri 1 Ki Ki是由初始56位密钥经过密钥编排函数产生的48位块左右交换密文c IP 1 R16L16 IP 1逆置换 1 初始置换 将64个明文比特的位置进行置换 得到一个乱序的64bit明文组 然后分成左右两段 每段为32bit以L和R表示 密码函数f Ri 1 Ki 计算 32比特Ri 1 48比特 E 48比特Ki P 32比特 扩展函数E和置换函数P P S盒的置换输出 某个Si盒的6比特的前后两个比特形成一个2比特的二进制数 由它在Si的4行中选择一行其中间的4比特形成的一个介于0 15之间的数 用它在Si的16列中选择一列例如 如果S1的输入是101011 第1位和最后1位形成11 对应S1的3行 从0开始 中间4位是0101 对应第5列 S1第3行第5列处的数是9 因此S1输出的结果是1001 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 8 0 13 S1 计算Ki的密钥编排函数算法 56位密钥 PC 1 D0 C0 LS1 LS1 D1 C1 LSi LSi Di Ci LS16 LS16 D16 C16 PC 2 K1 PC 2 Ki PC 2 K16 密钥编排函数置换表 PC 2 1 1 2 2 2 2 2 1 2 2 2 2 2 2 1 移位 左循环移位方案 0 子密钥产生器 密钥 64bit 除去第8 16 64位 共8个校验位 置换选择1 PC 1 Ci 28bit Di 28bit 循环左移ti 1位 循环左移ti 1位 置换选择2 PC 2 Ki 48bit 置换选择1 移位次数表 若C1 c1c2 c28 D1 d1d2 d28则C2 c2c3 c28c1 D2 d2d3 d28d1 置换选择2 置换选择PC 2将C中第9182225位和D中第791526位删去 并将其余数字置换位置后送出48bit数字作为第i次迭代时所用的子密钥ki CiDi b1b2 b56 则ki b14b17b11b24 b36b29b32 3 逆初始置换IP 1 将16轮迭代后给出的64bit组进行置换得到输出的密文组 不同微处理器上的DES软件实现速度 关于S盒 S盒是DES的核心 也是DES算法最敏感的部分 其设计原理至今仍讳莫如深 显得非常神秘 所有的替换都是固定的 但是又没有明显的理由说明为什么要这样 有许多密码学家担心美国国家安全局设计S盒时隐藏了某些陷门 使得只有他们才可以破译算法 但研究中并没有找到弱点 S盒的设计准则 迄今为止 有关方面未曾完全公开有关DES的S盒的设计准则 Branstead等曾披露过下述准则 S盒的输出都不是其输入的线性或仿射函数 改变S盒的一个输入比特 其输出至少有两比特产生变化 即近一半产生变化 当S盒的任一输入位保持不变 其它5位输入变化时 共有25 32种情况 输出数字中的0和1的总数近于相等 这三点使DES的S盒能够实现较好的混淆 DES解密算法 DES解密算法和加密算法基本相同 不同之处在于 第1次迭代用K16 第2次用K15 第16次用K1 其余部分完全一样 DES举例 已知明文m computer 密钥k program 用ASCII码表示为 M 0110001101101111011011010111000001110101011101000110010101110010K 01110000011100100110111101100111011100100110000101101101M经过P置换后得到L0 11111111101110000111011001010111R0 00000000111111110000011010000011 密钥通过PC 1得到C0 1110110010011001000110111011D0 1011010001011000100011100110再各自左移一位 通过PC 2得到48位K1 001111011000111111001101001101110011111100000110R0通过E作用膨胀为48位10000000000101111111110100000001101010000000110 在和K1作异或运算得到101111011001100000110011101101111110101101001110通过S盒后输出32比特01110110001101000010011010100001经过P置换得到01000100001000001001111010011111L1 R0 L1与上行输出模2相加运算 异或 得到R1最后得到L1R1 DES的安全性 DES在20多年的应用实践中 没有发现严重的安全缺陷 在世界范围内得到了广泛的应用 为确保信息安全做出了不可磨灭的贡献 存在的安全弱点 密钥较短 56位密钥空间约为7 2 1016 1997年6月RockeVerser小组通过因特网利用数万台微机历时4个月破译了DES 1998年7月 EFF用一台25万美元的机器 历时56小时破译DES 存在弱密钥 有的密钥产生的16个子密钥中有重复者 互补对称性 C DES M K 则C DES M K 其中 M C K 是M C K的非 DES具有良好的雪崩效应 雪崩效应 明文或密钥的微小改变将对密文产生很大的影响 特别地 明文或密钥的某一位发生变化 会导致密文的很多位发生变化 DES显示了很强的雪崩效应两条仅有一位不同的明文 使用相同的密钥 仅经过3轮迭代 所得两段准密文就有21位不同 一条明文 使用两个仅一位不同的密钥加密 经过数轮变换之后 有半数的位都不相同 多重DES DES在穷举攻击下相对比较脆弱 因此需要用某种算法来替代它 有两种解决方法 设计全新的算法 用DES进行多次加密 且使用多个密钥 即多重DES 这种方法能够保护用于DES加密的已有软件和硬件继续使用 二重DES DoubleDES 给定明文P和两个加秘密钥k1和k2 采用DES对P进行加密E 有密文C EK2 EK1 P 对C进行解密D 有明文P DK1 DK2 C E E P X C K2 K1 加密图 D D K2 K1 C X P 解密图 二重DES很难抵挡住中间相遇攻击法 Meet in the MiddleAttack C EK2 EK1 P 从图中可见X EK1 P DK2 C 若给出一个已知的明密文对 P C 做 对256个所有密钥K1做对明文P的加密 得到一张密钥对应于密文X的一张表 类似地对256个所有可能的密钥K2做对密文C的解密 得到相应的 明文 X 做成一张X与K2的对应表 比较两个表就会得到真正使用的密钥对K1 K2 带有双密钥的三重DES TripleDESwithTwoKeys Tuchman给出双密钥的EDE模式 加密 解密 加密 C EK1 DK2 EK1 P 对P加密P DK1 EK2 DK1 C 对C解密这种替代DES的加密较为流行并且已被采纳用于密钥管理标准 TheKeyManagerStandardsANSX9 17和ISO8732 E D E D E D C B A P P A B C K1 K2 K1 K1 K2 K1 加密图 解密图 ABlockEncryptionAlgorithmCombinedwiththeLogisticMappingandSPNStructure Jian HuaHuang YangLiu ABlockEncryptionAlgorithmCombinedwiththeLogisticMappingandSPNStructure C The2ndInternationalConferenceonIndustrialandInformationSystems Dalian China July10 11 2010 EI 论文提出了一种新颖的结合一维离散混沌映射 Logistic映射 和SPN结构的分组密码算法 算法分别对S盒和P盒引入混沌 充分利用混沌系统的伪随机性 轨道不可预测性和初值敏感性 使得设计出来的S盒具有良好的 混乱 效果 P盒具有良好的 扩散 效果 实验和理论证明算法具备严格的雪崩效应和较大的密钥空间 而且具有很好加密强度 同时 本文还考虑了S盒和P盒各自的优缺点 把它们灵活应用到迭代当中 使得算法的具有良好的运算效率 高级加密标准AES 1997年1月 美国国家标准局NIST向全世界密码学界发出征集21世纪高级加密标准 AES AdvancedEncryptionStandard 算法的公告 并成立了AES标准工作研究室 1997年4月15日的例会制定了对AES的评估标准 AES的要求 1 AES是公开的 2 AES为单钥体制分组密码 3 AES的密钥长度可变 可按需要增大 4 AES适于用软件和硬件实现 5 AES可以自由地使用 或按符合美国国家标准 ANST 策略的条件使用 算法衡量条件 满足以上要求的AES算法 需按下述条件判断优劣a 安全性b 计算效率c 内存要求d 使用简便性e 灵活性 AES的评审 1998年4月15日全面征集AES算法的工作结束 1998年8月20日举行了首届AES讨论会 对涉及14个国家的密码学家所提出的候选AES算法进行了评估和测试 初选并公布了15个被选方案 供大家公开讨论 CAST 256 RC 6 CRYPTON 128 DEAL 128 FROG DFC LOKI 97 MAGENTA MARS HPC RIJNDAEL SAFER SERPENT E 2 TWOFISH 这些算法设计思想新颖 技术水平先进 算法的强度都超过3 DES 实现速度快于3 DES AES的评审 1999年8月9日NIST宣布第二轮筛选出的5个候选算法为 MARS C Burwick等 IBM RC6TM R Rivest等 RSALab RIJNDEAL J Daemen 比 SERPENT R Anderson等 英 以 挪威 TWOFISH B Schiener 2000年10月2日 NIST宣布Rijndael作为新的AES AES加密数学基础 参考书 覃中平 张焕国 信息安全数学基础 M 北京 清华大学出版社 2006 AES加密数学基础 群 是一个代数系统 它由一个非空集合组成 在集合上定义了一个二元运算 其满足 封闭性 对任意的 结合律 对任何的 有 单位元 存在一个元素 称为单位元 对任意元素有 逆元 对任意 存在一个元素 称为逆元 使得 记作 交换群与有限群 若群还满足交换律 即对任何 有 则称为交换群 或加法群 阿贝尔群等 若集合G中只含有有限多个元素 则我们称为有限群 此时 把集合G中元素的个数称为有限群的阶 群的性质 群中的单位元是惟一的 消去律成立 即对任意的 如果 则如果 则群中的每一元素的逆元是惟一的 域 域是一个代数系统 它由一个 至少包含两个元素的 非空集合F组成 在集合F上定义有两个二元运算 加法与乘法 并满足下面条件 F的元素关于加法成交换群 记其单位元为 0 称为域的零元 F关于乘法成交换群 记其单位元为 1 称其为域的单位元 乘法在加法上满足分配律 即记为 有限域 若集合F只包含有限个元素 则称这个域F为有限域 有限域中元素的个数称为该有限域的阶 若有一任意的素数P和正整数 存在阶有限域 这个有限域记为 当n 1时 有限域称为素域 GF 28 域上的多项式表示及运算 一个字节的元素的二进制展开成的多项式系数为 例如 上的 37 为十六进制 其二进制为 00110111 对应多项式为 有限域GF 28 上的字节运算 GF 28 4域上的多项式表示及运算 一个四个字节的字 有32比特位 可以看作是域上的多项式 每个字对应于一个次数小于4的多项式 两个域上的元素相加时 将这两个元素对应多项式系数相加即得到结果 相加时采用比特异或来实现 两个域上的元素相乘时 要将结果对一个特定的多项式取模 以使相乘后的结果还是一个4字节的向量 AES加密原理 AES密码长度有128 192 256AES算法的数据处理单元是字节 处理块的长度是4 6 8个字例如 如分组为128位 分组的16个字节按顺序被复制到一个4X4的矩阵中 称为状态矩阵AES所有变化都是基于状态的变换AES变换由轮函数通过多轮迭代实现见46表3 3 各轮AES加密循环 除最后一轮外 均包含4个步骤 SubBytes 通过一个非线性的替换函数 用查找表的方式把每个字节替换成对应的字节 ShiftRows 将矩阵中的每个横列进行循环式移位 MixColumns 为了充分混合矩阵中各个直行的操作 这个步骤使用线性转换来混合每内联的四个字节 AddRoundKey 矩阵中的每一个字节都与该次回合密钥 roundkey 做XOR运算 每个子密钥由密钥生成方案产生 最后一个加密循环中省略MixColumns步骤 而以另一个AddRoundKey取代 AES加密算法的具体实现 AES每轮要经过四次变换 分别是字节代换运算 SubByte ShiftRows 行移位 变换MixColumns 列混合 变换AddRoundKey 轮密钥的混合 变换我们用的128bit的密钥 循环次数为10 那么每次加密的分组长为128bit 16个字节 每次从明文中按顺序取出16个字节假设为a0a1a2a3a4a5a6a7a8a9a10a11a12a13a14a15 这16个字节在进行变换前先放到一个4 4的矩阵中 如下页图所示 这个矩阵称为状态 state 以后所有的变换都是基于这个矩阵进行的 到此 准备工作已经完成 现在按照前面的顺序进行加密变换 首先开始第一次循环的第一个变换 字节代换 SubByte 字节代换 SubByte 查表 字节代换 S盒变换 查表 S12 53 则X 5 Y 3 out9 ed ShiftRows 行移位 变换 行变换示意图 S S MixColumns 列混合 变换 S 0c 02 S0c 03 S1c S2c S3c 但这个结果可能会超出一个字节的存储范围 所以实际上还要对结果进行处理 MixColumns步骤 在MixColumns步骤 每一直行的四个字节通过线性变换互相结合 每一直行的四个元素分别当作1 x x2 x3的系数 合并即
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 声乐四级考试试题及答案
- 精算评估面试题及答案
- 中国现代艺术课件
- 2025年中国攀登睡垫行业市场全景分析及前景机遇研判报告
- 2025春季开学安全教育第一课
- 职业性肿瘤概述与防治策略
- 2025年新员工培训计划
- 检验科实习生培训
- 环境健康安全培训
- 采光井工程节能设计与绿色施工合同
- 华能光伏发电项目-施工组织设计(Ⅲ标段)
- 广东省深圳市罗湖区螺岭外国语实验学校小学五年级下册期末语文试题
- 【语文】贵州省贵阳市甲秀小学小学四年级下册期末试卷(含答案)
- 汽车改色备案流程委托书范本
- 2024届高考语文复习:语句补写 课件
- 发那科注塑机讲义课件
- 幼儿园班级管理学习通超星课后章节答案期末考试题库2023年
- 初中英语2022版新课程标准测试卷及答案
- 养老护理员初级(单选+判断)测试题(附参考答案)
- 四川省宜宾市高县2023年数学六年级第二学期期末联考试题含解析
- 2023年民航职业技能鉴定-民航货运员考试题库+答案
评论
0/150
提交评论