网上商城购物系统设计毕业论文.doc_第1页
网上商城购物系统设计毕业论文.doc_第2页
网上商城购物系统设计毕业论文.doc_第3页
网上商城购物系统设计毕业论文.doc_第4页
网上商城购物系统设计毕业论文.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 I 页 共 II 页 网上商城购物系统设计毕业论文网上商城购物系统设计毕业论文 目 录 1 绪论 1 1 1选题背景 1 1 1 1 信息安全 1 1 1 2 安全现状 1 1 2国内外信息安全研究现状 2 1 3课题目的 3 1 4本文的工作和组织结构 4 2 密码学基础知识 6 2 1密码学简介 6 2 2对称加密算法 9 2 2 1 对称加密算法简介 9 2 2 2 AES 算法 10 2 3非对称加密算法 11 2 3 1 非对称加密算法简介 11 2 3 2 RSA 算法 12 2 4HASH 算法 15 3 信息安全性设计 17 3 1AES 算法分析 17 3 1 1 AES 加密 解密算法原理 17 3 1 2 S 盒变换 SUBBYTES 18 3 1 3 行变换 SHIFTROWS 19 3 1 4 列变换 MIXCOLUMNS 19 3 1 5 异或运算 ADDROUNDKEY 20 3 1 6 密钥扩展程序算法 KEYEXPANSION 20 3 2RSA 算法分析 21 3 2 1 RSA 加密 解密算法过程 21 第 II 页 共 II 页 3 2 2 EULER定理与 FERMAT定理 21 3 2 3 MILLER RABIN素数检测算法 22 3 2 4 欧氏算法 23 3 3SHA 1 算法分析 23 4 信息安全性实现 26 4 1开发环境和工具的选择 26 4 2AES 加解密的实现 26 4 3RSA 加解密的实现 29 4 4SHA 1 数字摘要的实现 33 4 5信息安全应用系统的实现 36 5 总结与展望 43 5 1总结 43 5 2展望 43 参考文献 44 致 谢 46 附件 47 第 1 页 共 47 页 1 1绪论绪论 1 11 1选题背景选题背景 1 1 1 信息安全 信息作为一种资源 在社会生活中起着越来越重要的作用 它的普遍性 共享性 增值性 可处理性和多效用性 使其对于人类具有特别重要的意义 它推动着全球经 济的迅速发展 改变着人们的生活和工作方式 然而 随着网络技术的进一步发展 解决信息安全问题已成为当前网络个体用户 企业团体 乃至一个国家的迫切需要 信息安全的实质就是要保护信息系统或信息网络中的信息资源免受各种类型的威胁 干扰和破坏 即保证信息的安全性 根据国际标准化组织的定义 信息安全性的含义 主要是指信息的完整性 可用性 保密性和可靠性 信息安全是任何国家 政府 部 门 行业都必须十分重视的问题 是一个不容忽视的国家安全战略 信息安全主要实 现如下目标 真实性 对信息的来源进行判断 能对伪造来源的信息予以鉴别 保密性 保证机密信息不被窃听 或窃听者不能了解信息的真实含义 完整性 保证数据的一致性 防止数据被非法用户篡改 可用性 保证合法用户对信息和资源的使用不会被不正当地拒绝 不可抵赖性 建立有效的责任机制 防止用户否认其行为 这一点在电子商务中是 极其重要的 可控制性 对信息的传播及内容具有控制能力 可审查性 对出现的网络安全问题提供调查的依据和手段 1 1 2 安全现状 在网络技术高速发展的今天 信息的地位和作用随着信息技术的快速发展而急剧 上升 随之而来的是网络信息的安全问题日益突出并面临着严峻的考验 网络在带给 人们自由开放的同时 也带来不可忽视的安全风险 世界各地有关信息安全犯罪的报 道日益增多 通信网 互联网上安全事件不断出现 电脑病毒网络化趋势愈来愈明显 利用互联网传播有害信息的手段日益翻新 网络犯罪和网络恐怖主义的危害也在日益 凸显 信息泄露 授权侵犯 业务欺骗等等的威胁以及制作传播计算机病毒 入侵和 第 2 页 共 47 页 攻击计算机网络等犯罪活动 直接影响政府施政 危害人民的生命财产安全和社会正 常运转 1 当前 网络与信息安全问题已成为社会各界共同关注的焦点 和面临的严 峻挑战 面对复杂多变的国际环境和互联网的广泛应用 我国信息安全问题也日益突出 2 在 21 世纪信息大爆炸的今天 更是对信息安全保障提出了新的 更高的要求 所以信 息安全产业应该作为国家战略性产业 必须从经济发展 社会稳定 国家安全 公众 利益的高度 充分认识信息安全的极端重要性 3 1 21 2国内外信息安全研究国内外信息安全研究现状现状 随着信息技术的发展与应用 对信息的开发 控制和利用已经成为国家间相互争 夺的内容 同时信息安全的内涵在不断的延伸 从最初的信息保密性发展到信息的完 整性 可用性 可控性和不可否认性 进而又发展为 攻 攻击 防 防范 测 检测 控 控制 管 管理 评 评估 等多方面的基础理论和实施技术 信 息安全是一个综合 交叉的学科领域 它要综合利用数学 物理 通信和计算机诸多 学科的长期知识积累和最新发展成果 进行自主创新研究 加强顶层设计 提出系统 的 完整的 协同的解决方案 与其他学科相比 信息安全的研究更强调自主性和创 新性 自主性可以避免 后门 体现国家主权 而创新性可以抵抗各种攻击 适应技 术发展的需求 密码理论与技术 安全协议理论与技术 安全体系结构理论与技术 信息对抗理论与技术等是当今世界研究信息安全的几个大的方面 但是最基础最重要 的还是于密码学的应用为主 密码理论与技术主要包括两部分 即基于数学的密码理论与技术 包括公钥密码 分组密码 序列密码 认证码 数字签名 Hash 函数 身份识别 密钥管理 PKI 技 术等 和非数学的密码理论与技术 包括信息隐形 量子密码 基于生物特征的识别 理论与技术 自从 1976 年公钥密码的思想提出以来 国际上已经提出了许多种公钥 密码体制 但比较流行的主要有两类 一类是基于大整数因子分解问题的 其中最典 型的代表是 RSA 另一类是基于离散对数问题的 比如 ElGamal 公钥密码和影响比较 大的椭圆曲线公钥密码 我国学者也提出了一些公钥密码 另外在公钥密码的快速实 现方面也做了一定的工作 比如在 RSA 的快速实现和椭圆曲线公钥密码的快速实现方 面都有所突破 公钥密码主要用于数字签名和密钥分配 当然 数字签名和密钥分配 第 3 页 共 47 页 都有自己的研究体系 形成了各自的理论框架 目前数字签名的研究内容非常丰富 包括普通签名和特殊签名 特殊签名有盲签名 代理签名 群签名 不可否认签名 公平盲签名 门限签名 具有消息恢复功能的签名等 它与具体应用环境密切相关 序列密码主要用于政府 军方等国家要害部门 尽管用于这些部门的理论和技术都是 保密的 但由于一些数学工具 比如代数 数论 概率等 可用于研究序列密码 其 理论和技术相对而言比较成熟 从八十年代中期到九十年代初 序列密码的研究非常 热 在序列密码的设计与生成以及分析方面出现了一大批有价值的成果 我国学者在 这方面也做了非常优秀的工作 国外目前不仅在密码基础理论方面的研究做的很好 而且在实际应用方面也做的 非 常好 制定了一系列的密码标准 特别规范 信息安全产品和技术已从加密 防病毒 防火墙 防电磁辐射 过渡到包括平台型产品 管理型产品 平台系统等防护体系 虽然算法的征集和讨论都已经公开化 但是密码技术作为一种关键技术 各国都不会 放弃自主权和控制权 都在争夺霸权地位 我国在密码基础理论的某些方面的研究也 做得很好 但在实际应用方面与国外存在差距 缺乏自己的标准 也不够规范 密码 技术特别是加密技术是信息安全技术中的核心技术 国家关键基础设施中不可能引进 或采用别人的加密技术 只能自主开发 目前我国在密码技术的应用水平方面与国外 还有一定的差距 国外的密码技术将对我们有一定的冲击 有些做法必须要逐渐与国 际接轨 因此 我们必须要有我们自己的算法 自己的一套标准 自己的一套体系 来对付未来的挑战 实用密码技术的基础是密码基础理论 没有好的密码理论不可能 有好的密码技术 也不可能有先进的 自主的 创新的密码技术 因此 首先必须持 之以恒地坚持和加强密码基础理论研究 与国际保持同步 这方面的工作必须要有政 府的支持和投入 另一方面 密码理论研究也是为了应用 没有应用的理论是没有价 值的 我们应在现有理论和技术基础上充分吸收国外先进经验形成自主的 创新的密 码技术以适应国民经济的发展 1 31 3课题目的课题目的 以 Internet Intranet 为代表的计算机网络技术突飞猛进 并在军事和民用信息领域 得到广泛应用 国际上围绕信息获取 使用和控制的斗争愈演愈烈 在国际互联网络 第 4 页 共 47 页 上进行一场信息战是完全可能的 4 信息安全人才的扩充也自然成为了现今世界各国 的一个重要目标 因此计算机网络已经成为国家信息基础设施 也是军事上 C4ISR 指挥 控制 通信 计算机 情报 监视 侦查 系统的基础 5 同时网络信 息的安全性问题也是现今世界人民所共同面临的一大挑战 目前国际上已有众多的信息安全解决方案和产品 但由于出口政策和自主性等问 题 不能直接用于解决我国自身的信息安全问题 因此我国的信息安全产品只能借鉴 这些先进技术和产品 自行解决 6 产品技术上 国产产品在加密 防病毒及个别产 品方面还不错 但相当多产品的水平与国外同类产品相比尚有一定的差距 另外 核 心技术如芯片 操作系统 数据库 基础网络设施及整体平台和管理技术还受制于人 7 因此 对网络信息的安全性展开研究 并构建一个性能优良的网络信息安全应用系统 具有十分重要的意义 可实现信息安全的各种各样的技术层出不穷 但这些技术基本上以软件为基础 注入密码学技术 其中密码技术是最基础最重要的技术手段 8 本课题就是要对网络 信息的安全性进行讨论分析 对实现信息安全的重点技术 密码学技术 进行重 点的研究剖析 从而给出一套网络信息安全问题的解决方案 并用软件进行了实际的 实现 希望能为现今的网络信息安全事业贡献出自己的微薄之力 1 41 4本文的工作和组织结构本文的工作和组织结构 本人在阅读了大量国内外有关网络信息的安全性研究这方面的文献之后 决定从 实现信息安全最基础最重要的技术 密码学技术 着手研究 之后便开始学习了 密码学技术有关的知识 对密码学加解密技术的重点 AES 加密算法 RSA 加密算 Hash 算法等技术 进行了重点的学习与研究 进而对三大算法进行了单独的设计与软 件实现 最后对三大算法进行整合优化 构建出一个功能更加完善 性能更加强大的 信息安全应用系统 以此来解决保护信息安全所需要的最基本的四项服务 保密性 数据完整性 鉴别 抗抵赖性 本文的工作分以下五章组成 第一章 为绪论部分 首先阐述了进行网络信息的安全性研究的有关背景 目标 意 义 接着介绍实现网络信息安全的重要技术 密码学技术 在国内外的研 究现状和发展趋势 进而给出了课题研究的目的与意义 最后对本文的工作和 组织结构进行了说明 第 5 页 共 47 页 第二章 为密码学基础概述 首先介绍了密码学的一些基本概念 然后引出对称密码 体制 非对称密码体制和 HASH 体系 并对 AES 算法 RSA 算法和 SHA 1 算法进行了详细的学习介绍 第三章 为具体算法进行理论研究学习 对密码学技术的重要三大算法 AES 算法 RSA 算法和 SHA 1 算法进行了深入的学习研究和设计 第四章 为算法实现部分 在前面分析的基础之上 分别用软件实现了三大算法 AES 算法 RSA 算法和 SHA 1 最后对三大算法进行整合优化 使之整合成 功能更加强大的信息安全应用系统 第五章 总结与展望 对本文所做的工作进行了总结 并对下一步完善工作进行了展 望 第 6 页 共 47 页 2 2密码学基础知识密码学基础知识 密码学是研究信息以及研究信息系统安全保密的科学 它起源于保密通信技术 密码学又分为密码编码学和密码分析学 研究如何对信息编码 以实现信息和通信保 密的科学称为密码编码学 研究如何破解或攻击加密信息的科学称为密码分析学 密 码学是在编码与破译的矛盾斗争中逐步发展起来的 已经由古典的对称密码体制发展 到了非对称密码体制 并随着计算机等先进科学技术的发展与应用 密码学已经成为 一门综合性 交叉性的学科 它与语言学 数学 电子学 信息论 计算机科学等有 着广泛而密切的联系 2 12 1密码学密码学简介简介 自古以来 密码主要用于军事 政治 外交等要害部门 关于密码的起源 尚无 确实可靠的资料 目前公认的是公元 5 世纪斯巴达人使用的一种叫 天书 的器械 它用一根木棍 将羊皮条紧紧地缠在木棒上 密信自上而写在羊皮条上 然后将羊皮 条解开送出 这些不连接的字母看以来毫无意义 除非把羊皮条重新缠在一根同样直 径的木棍上 才能把密信的内容读出来 这是最早的一种移位密码 9 随后 密码学 的发展大致可以分为四个阶段 第一个阶段是第一次世界大战之前的古典密码术 密码编制比较简单 且都是用 手工或者简单器械进行操作的 这个阶段大概有几千年的历史 密码的发展相对来说 是非常缓慢的 第二阶段是出现在第一次世界大战期间的机械密码时机 在有线电 无线电发明 并作为战争工具在第一次世界大战中广泛应用后 密码才很快的发展起来 第一次世 界大战期间 出现了各式各样的机械密码机 复杂精巧的密码机是有轮子 齿轮 链 杆等部件组成 它们代替了繁重的手工加密和解密作业 在战争中发挥了较好的作用 第 7 页 共 47 页 一战以后 各国普遍加强了对密码编制和密码破译的研究 密码科学迅速发展 新的 密码形态和密码机不断出现 1920 年前后 美国的赫本 荷兰的科克 德国的舍尔比 尤斯和瑞典的达姆几乎同时发明了电动密钥机 第三阶段是第二次世界大战出现的电子密码机 第二次世界大战前后 随着晶体 管的出现和通信技术的发展 美国开始研制和使用以线性网络和非线性网络为基础的 电子机内乱密码 由电子计算机在机器内部根据密钥生成乱码的方式 并用这些密码 机逐步代替了机械密码机和电动密码机 这类密码机适应性强 速度快 变化复杂 因此 在美国之后 前苏联 英国和美国等国家也陆续研制和使用这类密码机 第四阶段是程序实现计算机密码编码 随着电子技术进入微电子时代 大规模的 集成电路和微型处理机被引入到密码通信中 进一步加快了密码和密码机的发展进程 这个时期提出了公要密码体制的概念 它的特点是加密和解密使用不同的密钥 所以 也叫做非对称密码体制 相对于对称密码体制来说 非对称密码体制的出现解决了密 钥管理的难题 但是公要密码体制加密速度较慢 这是它的一个很大的缺点 密码学 cryptography 是一门关于发现 认识 掌握和利用密码内在规律的科学 由密码编码学和密码分析学组成 密码编码学是研究密码编码科学 密码分析学是研 究密码破译的科学 总的来说 它是研究信息安全的数学技巧 是实现保密性 数据 完整性 认证 不可否认性的关键 10 是信息安全技术的核心 密钥是一种参数 它是在明文转换为密文或将密文转换为明文的算法中输入的数 据 密钥分为两种 对称密钥与非对称密钥 对称密钥加密 又称私钥加密 即信息 的发送方和接收方 用一个密钥去加密和解密数据 它的最大优势是加 解密速度快 适合对大数据量进行加密 但密钥管理困难 非对称密钥加密系统 又称公钥密钥加 密 它需要使用一对密钥来分别完成加密和解密操作 一个公开发布 即公开密钥 另一个由用户自己秘密保存 即私用密钥 信息发送者用公开密钥去加密 而信息接 收者则用私用密钥去解密 公钥机制灵活 但加密和解密速度却比对称密钥加密慢得 多 数字签名使用私有密钥来加密 而用公开密钥来验证文件 举个简单的例子 假 设你和你的供应商要签订一份电子介质的供货合同 如果没有使用电子签名技术 那 么这份合同将形同虚设 因为电子文档非常容易被复制 当发生纠纷时 对方可能会 辩称你手中的文档是非法伪造而来的 不具备法律效力 11 因此 在实际签名过程中 第 8 页 共 47 页 双方应当使用各自的私有密钥对该电子合同进行签名 这样 如果发生纠纷 便可以 使用公开密钥来验证合同上对方的签名 如果配对关系吻合 则证明合同上签名的就 是对方 这样就防止了抵赖现象的发生 12 密码学的基本原理是信息变换 使未授权的用户不能获得 或者说不能理解信息 的真实含义 一个密码系统 通常简称为密码体制 cryptosystem 由五元组 M C K E D 构成密码体制模型 如下图 2 1 所示 攻击者 明 文 加 密 算 法 信 道 解 密 算 法 明 文 M C C M 加密密钥 解密密钥 安全信道 密钥 K 图 2 1 密码体制模型 五元组 M C K E D 的描述如下 明文空间 M 它是全体明文的集合 密文空间 C 它是全体密文的集合 密钥空间 K 它是全体密钥的集合 其中每一个密钥 K 均由加密密钥和解密密钥 e k 组成 即有 d k ed kk k 加密算法 E 它是一簇由 M 到 C 的加密变换 即有 e CM k 解密算法 D 它是一簇由 C 到 M 的解密变换 即有 e DC k 密码装置和密码通信的发展趋势是 体积向着微型化方向发展 速度向着更高方 向发展 操作向着全自动方向发展 编码向着程序化方向发展 密钥量向着无穷方向 发展 加解密向着后台化方向发展 通信向着网络化方向发展 所有操作向着实时化 方向发展 密码分析学是密码学的一个重要分支 是研究在不知道密钥的情况下 利用密钥 第 9 页 共 47 页 体制的弱点恢复明文的一门学科 对一个密码系统采取截获密文进行分析的这类攻击 称为被动攻击 Passive Attack 另一种是主动攻击 Active Attack 即非法入侵者主 动向系统进行攻击 采取删除 更改 增添 伪造等手段向系统插入假的信息 以达 到窃取非法信息的目的 密码攻击者攻击密码体制的方法主要有以下三种 1 穷举攻击 密码攻击者通过试遍所有的密钥来进行破译 当然 可以通过增大密钥 量来对抗穷举攻击 从理论上来讲 只要有足够的资源 任何实用密码都可以用穷 举攻击法破译 2 统计分析攻击 密码攻击者通过分析密文和明文的统计规律来破译密码 对抗这种 攻击方法是设法使明文的统计特性和密文的统计特性不一样 3 数学分析攻击 密码攻击者针对加密变换的数学基础 通过数学求解的方法来设法 找到相应的解密变换 对这种攻击方法 应该选用具有坚实的数学基础和足够复杂 的加密算法 根据密码攻击者在密码系统中获得信息的不同 通常可以在下述四种情况下对密 码体制进行攻击 1 仅知密文攻击 cipher text only attack 密码攻击者仅知道一些密文来破译密码 这是密码分析者在可利用数据资源最少的情况下进行的最强密码攻击 2 已知明文攻击 known plaintext Attack 密码攻击者知道一些明文和相应的密文 近代密码学要求 一个密码仅当它能经得起已知明文攻击时才是可行的 3 选择明文攻击 chosen plaintext Attack 密码攻击者可以选择一些明文 并得到 相应的密文 这种状态对密码分析者十分有利 4 选择密文攻击 chosen cipher text Attack 密码攻击者可以选择一些密文 并得到 相应的明文 这种攻击主要针对公要密码体制 尤其是攻击数字签名 如果密码分析者无论截获多少密文和无论采用什么技术方法进行攻击都不能攻破 一个密码 则称该密码绝对不可破译的 目前已知的仅有 一次一密 one time pad 密码属于绝对不可破译密码 但是 考虑到密钥管理上的困难 一次一密 密码是不 实用的 理论上 如果能够利用足够的资源 任何实际可使用的密码都是可破译的 一个密码不能被密码分析者根据可利用的资源所破译 称为计算上不可破译 computationally unbreakable 密码 对于我们来说 计算上不可破译的密码才是常见 的和可实现的 第 10 页 共 47 页 2 22 2对称加密算法对称加密算法 2 2 1 对称加密算法简介 在对称加密算法中 双方使用的密钥相同 要求解密方事先必须知道对方使用的 加密密钥 其算法一般公开 优势是计算量较小 加密速度较快 效率较高 不足之 处是 通信双方都使用同样的密钥 密钥在传送的过程中 可能被敌方获取 安全性 得不到保证 当然 为了安全起见 用户每次使用该算法 密钥可以更换 但是原来 通信的密钥也不能马上删除 这样 使得双方所拥有的密钥数量很大 对于双方来说 密钥管理较为困难 对称加密算法中 目前流行的算法有 DES 3DES IDEA AES 等等 其中 AES 由美国国家标准局倡导 即将作为新标准取代 DES 对称加密算法 应用较早 技术较为成熟 其过程如下 1 发送方将明文用加密密钥和加密算法进行加密处理 变成密文 连同密钥一起 发 送给接收方 2 接收方收到密文后 使用发送方的加密密钥及相同算法的逆算法对密文解密 恢复 为明文 2 2 2 AES 算法 对称密码算法主要用于保证数据的机密性 通信双方在加解密过程中使用它们共享 的单一密钥 对称密码算法的使用相当广泛 密码学界已经对它们进行了深入的研究 1 最常用的对称密码算法是数据加密标 DES 算法 它是由 IBM 在美国国家安全局 NSA 授意之下研制的一种使用 56 位密钥的分组密码算法 自 1977 年公布成为美国政府的 商用加密标准以来已使用 20 多年 2 DES 的主要问题是其密钥长度较短 已不适合于 当今分布式开放网络对数据加密安全性的要求 在 DES 每隔五年的评估会议中 最后一 次在 1998 年美国政府终于决定不再继续延用 DES 作为联邦加密标准 也就表明了 DES 将退出加密标准的舞台 而新的标准 AES AdvancedEncryptionStandard 将粉墨登场 4 AES 是美国国家标准技术研究所 NIST 旨在取代 DES 的新一代的加密标准 NIST 对 AES 候选算法的基本要求是 对称分组密码体制 密钥长度支持 128 192 256 位 明文分组 长度 128 位 算法应易于各种硬件和软件实现 1998 年 NIST 开始 AES 第一轮征集 分 析 测试 共产生了 15 个候选算法 1999 年 3 月完成了第二轮 AES 的分析 测试 1999 年 8 月 NIST 公布了五种算法 MARS RC6 Rijndael Serpent Twofish 成为候选算法 第 11 页 共 47 页 最后 Rijn2dael 这个由比利时人设计的算法与其它候选算法在成为高级加密标准 AES 的竞争中取得成功 于 2000 年 10 月被 NIST 宣布成为取代 DES 的新一代的数据加密标 准 即 AES 尽管人们对 AES 还有不同的看法 8 但总体来说 Rijndael 作为新一代的数 据加密标准汇聚了强安全性 高性能 高效率 易用和灵活等优点 AES 设计有三个 密钥长度 128 192 256 比特 相对而言 AES 的 128 比特密钥比 DES 的 56 比特密钥强 1021 倍 5 2006 年 高级加密标准已然成为对称密钥加密中最流行的算法之一 下表 2 1 给出了 AES 与 3DES 部分参数的比较 表 2 1 AES 与 3DES 参数比较 算法名称算法类型密钥长度速度解密时间 建设机器每秒 尝试 255 个密钥 资源消耗 AES 对称 block 密码128 192 256 位 高1490000 亿年低 3DES 对称 feistel 密 码 112 位或 168 位低46 亿年中 2 32 3非对称加密算法非对称加密算法 2 3 1 非对称加密算法简介 在传统的加密技术中 如 20 世纪 70 年代之前 是使用相同的密钥进行加密和解 密操作的 这意味着对数据进行加密和解密双方 需要共享他们之间相同的解密密钥 各方之间建立一个共享密钥 是一个有趣的挑战 如果双方已经共享一个密钥 他们 可以很容易地通过他们事先的密钥对新密钥加密 然后分发给对方 但如果他们还没 有共享一个密钥 如何建立第一个共享密钥呢 这一挑战对保护网络上和许多其他应用程序的敏感数据是有重大作用的 您的计 算机最初没有与网站共享任何密钥 那么你又如何加密的数据发送到网站 最终 你 可能设置了密码 然后可以用来获得加密密钥的密码 但当你第一次设置它的时候 你又如何保护这个密码不被截取呢 这样的问题 促使两名斯坦福大学的研究人员 Whitfield Diffie 和 Martin Hellman 在 1976 年写一个具有里程碑意义的文件 在密码学的新方向 该文件建议 加密和 解密也许可以用不同的密钥对 而不是使用相同的密钥 解密密钥仍然保密 但是加 密密钥可以公开 这种思想被称为公钥加密 因为加密密钥任何人都可以知道 第 12 页 共 47 页 Diffie 和 Hellman 的做法立即回答在线数据保护的设置问题 为了使计算机对网站 进行加密 该网站只需要在一个目录中公布加密密钥 每台计算机都可以使用该加密 密钥 以保护发送到该网站的数据 但只有网站有相应的解密密钥 因此只有它可以 对数据进行解密 非对称加密体制必须满足以下条件 1 公钥和私钥之间具有紧密的联系 即公钥和私钥源自同一数学推导关系 2 用公钥加密的信息只能由相应的私钥进行解密 反之亦然 而由公钥推知私钥 在 计算上是不可能的 利用非对称加密方案进行通信的过程是 发送发 A 先查找接收方 B 的公钥 因为 公开公钥并不影响通信的保密性 B 可以将自己的公钥公布在公共数据中 然后 A 采用公钥加密算法用 B 的公钥对原始信息进行加密 并通过非安全信道将密文发送给 B 当 B 接收到密文之后 通过自己持有的私钥对密文进行解密而还原出明文 13 与对称加密算法不同 非对称加密算法需要两个密钥 公开密钥 publickey 和 私有密钥 privatekey 每个人都可以产生这两个密钥 其中 公开密钥对外公开 可 以通过网上发布 也可以传输给通信的对方 私有密钥不公开 对于同一段数据 利 用非对称加密算法具有如下性质 如果用公开密钥对数据对其进行加密 那么只有用 对应的私有密钥才能对其解密 如果用私有密钥对数据对其进行加密 那么只有用对 应的公开密钥才能对其解密 非对称加密算法的基本过程是 1 通信前 接收方随机生成一对公开密钥和私有密钥 将公开密钥公开给发送方 自 己保留私有密钥 2 发送方利用接收方的公开密钥加密明文 使其变为密文 3 接收方收到密文后 使用自己的私有密钥解密密文 获得明文 目前 在非对称密码体系中 使用得比较广泛的是非对称加密算法有 RSA DSA Elgamal 背包算法 Rabin D H ECC 椭圆曲线加密算法 等等 和对称加密算法相比 非对称加密算法的保密性比较好 在通信的过程中 只存 在公开密钥在网络上的传输 而公开密钥被敌方获取 也没有用 因此 基本不用担 心密钥在网上被截获而引起的安全的问题 但该加密体系中 加密和解密花费时间比 较长 速度比较慢 一般情况下 它不适合于对大量数据的文件进行加密 而只适用 于对少量数据进行加密 第 13 页 共 47 页 2 3 2 RSA 算法 1978 年 三位年青数学家 R Rivest A Shamir 及 L Adleman 提出了一种基于大整 数分解困难问题的密码算法 称为 RSA 算法 14 RSA 是最具代表性的公钥密码体制 即可用于数据加密 又可用于数字签名 安全性良好 易于实现和理解 RSA 已成为 一种应用极广的公钥密码体制 当今世界公认 RSA 算法是目前最好的密码算法 它不仅可以作为加密算法使用 而且还可以用作数字签名和密钥分配与管理 该算法的加密密钥和加密算法分开 使 得密钥分配更为方便 而且它特别符合计算机网络环境 对于网上的大量用户 可以 将加密密钥用电话薄的方式印出 如果某用户想与另一用户进行保密通信 只需从公 钥薄上查出对方的加密密钥 用它对所传送的信息加密发出即可 对方收到信息后 用仅为自己所知的解密密钥将信息脱密 了解报文的内容 由此可看出 RSA 算法解 决了大量网络用户密钥管理的难题 这是公钥密码系统相对于对称密码系统最突出的 优点 经历了 20 多年的应用检验 RSA 已成为最流行的一种加密标准 许多硬件 软件 产品的内核中都有 RSA 的软件和类库 方便人们的使用 在 Apple 的协作软件 PowerTalk 上还增加了签名拖放功能 用户只要把需要加密的数据拖到相应的图标上 就完成了电子形式的数字签名 15 但是由于 RSA 算法所采用的大数模幂乘运算耗时太多 这一直是制约其广泛应用 的瓶颈问题 在实现过程中 由于算法中包含有大数的乘方运算 在计算机上运算时 会耗费大量的时间 严重影响了 RSA 的加密效率 制约了它的应用 因此人们对其从 不同方面进行了改进 并形成了以下实现算法 传统实现算法 由 Rivest 等人在 RSA 体制建立时提出 是把乘方后求模的计算改 为在边乘方边求模的计算 以减小中间结果的数值 尽量避免大数的乘方计算 该算 法在一定程度上改善了 RSA 的效率 SMM 算法 是利用 乘同余对称特性 来减少加密和解密运算中乘法和求模运算 量的一种改进算法 其本质是减小求幂运算中的基数的大小 但并没有考虑指数的情 况 故只是在一定的程度上改进了原算法的效率 指数 2k 进制化算法 模幂乘运算是 RSA 算法中的主要内容 传统的模幂乘运算 第 14 页 共 47 页 是将指数化为二进制数进行迭代 指数 2k 进制化算法是其改进的算法 能缩短指数的序 列长度 减少迭代次数 16 但是 在求幂运算的过程中 基数的大小也是影响运算速 度的重要因素 而该算法只是减小了指数的长度 RSR 算法 是将 RSA 传统算法中的求模运算变成一系列 2 的乘幂的余数和运算 可以在一定程度上提高计算速度 但是由于在实际实现时 RSR 算法要进行对大整数 进行字节 比特的不断转换 不适合与其他算法联合使用 此外还有蒙哥马利算法 利用中国剩余定理降指法等 17 总之 上述各个实现算法分别从不同方面改进了 RSA 加密算法 使得加密速度有 了一定的提高 但是 随着计算机软 硬件的不断发展 数据量也在急剧增大 对加 密的速度要求也越来越高 人们需要不断改进加密算法 以提高加密运算的速度 目前影响较大的制订信息安全相关标准的组织有 ISO 和国际电子技术委员会 IIEC 美国国家标准与技术委员会 NIST 制订的美国联邦信息处理标准 FIPS 系列 Internet 研究和发展共同体制订的标准 IEEE 制订的标准 RSA 公司制定的 PKCS 系列等等 18 对于数字签名 比较有代表性的有 美国 NIST 制定的数字签名标准 DSS Digital Signature Standard 对应的数字签名算法是 DSA 公钥密码学标准 PKCS Public Key Cry Standard 是 RSA 数据安全公司制定的公钥密码学的工业标准接口 也 是第一个公钥密码学的工业标准接口 其中 PKCS 7 对用 RSA 数字签名的算法的通用 语法及数字信封做出了规定 RSA 算法是第一个能同时用于加密和数字签名的算法 也易于理解和操作 RSA 是被研究得最广泛的公钥算法 从提出到现在的三十多年里 经历了各种攻击的考验 逐渐为人们接受 普遍认为是目前最优秀的公钥方案之一 近些年 RSA 主要专注信息安全市场的几个领域 也是各有特色的领域 在身份 认证领域 RSA 关注到很多网上交易企业包括金融 搜索等行业 用户对身份认证关 注的程度明显不一样 另外钓鱼 木马比以前更加猖狂 网上的身份认证 反欺诈增 长趋势很强劲 此外 企业内控方面 目前 中国还在不断成熟的过程中 在防数据 泄露方面 RSA 有一些新的防木马服务提供给社会 对强身份认证方面 也有一些新的 业务上的突破 RSA 公开密钥加密算法自 20 世纪 70 年代提出以来 已经得到了广泛认可和应用 第 15 页 共 47 页 RSA 公钥加密算法也是第一个既能用于数据加密也能用于数字签名的算法 它易于理 解和操作 也十分流行 RSA 实现密钥配对的机制是基于大数分解 公开密钥和私有 密钥是一对大素数 长度在 100 200 个十进制数或更大 公开密钥从密文中恢复出明文 的难度等于分解两个大素数之积 经历了多年来各种深入的密码破解技术的检验 具 有相当高的可信度 RSA 作为最重要的公开密钥算法 在各领域的应用数不胜数 金融行业在世界上任何一个地方 都是存在最高安全风险的行业 不论是现实中 的犯罪还是网络犯罪 金融都是一个香饽饽 随着网络银行的发展 金融行业对信息 安全解决方案的需求始终非常旺盛 金融行业正是 RSA 最大的发展空间 并且在未来 一段时间仍然会是 如何保障金融行业信息安全 防止数据泄露 同时应对新的金融 服务 成为 RSA 今后业务发展的重点 2 42 4HashHash 算法算法 哈希算法将任意长度的二进制值映射为固定长度的较小二进制值 这个小的二进 制值称为哈希值 哈希值是一段数据唯一且极其紧凑的数值表示形式 如果散列一段 明文而且哪怕只更改该段落的一个字母 随后的哈希都将产生不同的值 要找到散列 为同一个值的两个不同的输入 在计算上是不可能的 所以数据的哈希值可以检验数 据的完整性 典型的哈希算法包括 MD2 MD4 MD5 和 SHA 1 哈希算法也称为 哈希函数 总的来说它具有以下特点 弱无冲突 weakly collision free 给定消息 x 如果寻找一个 x x 使得 h x h x 在计算上不可行 相应的 hash 函数 h x 是弱无冲突的 强无冲突 strongly collision free 寻找一对消息 x x 使得 h x h x 在计算上 不可行 相应的 hash 函数 h x 是强无冲突的 ONE WAY 称 Hash 函数是 ONE WAY FUNCTION 给定摘要 z 如果寻找一个消 息 x 使 h x z 计算上不可行 19 1993 年美国国家标准局 NIST 公布了安全散列算法 SHA SHA 已经被美国政 府核准 作为标准 即 FIPS 180 Secure Hash Standard SHS FIPS 规定必须用 SHS 实施数字签名算 法 该算法主要是和数字签名算法 DSA 配合的 很快 SHA 在算 法中发现了弱点 1994 年 NIST 公布了 SHA 的改进版 SHA 1 即 FIPS 180 1 Secure Hash Standard SHS 取代了 SHA SHA 1 的设计思想基于 MD4 因此在很 第 16 页 共 47 页 多方面与 MD5 算法有相似之处 曾被视为是 MD5 更早之前被广为使用的散列函数 的后继者 SHA 1 对任意长度的明文可以生成 160bits 的消息摘要 20 Hash 算法在 信息安全方面的应用主要体现在以下的 3 个方面 1 文件校验 我们比较熟悉的校验算法有奇偶校验和 CRC 校验 这 2 种校验并没有抗 数据篡改的能力 它们一定程度上能检测并纠正数据传输中的信道误码 但却不能 防止对数据的恶意破坏 MD5 Hash 算法的 数字指纹 特性 使它成为目前应用最 广泛的一种文件完整性校验和 Checksum 算法 不少 Unix 系统有提供计算 md5 checksum 的命令 2 数字摘要 Hash 算法也是现代密码体系中的一个重要组成部分 由于非对称算法的 运算速度较慢 所以在数字签名协议中 单向散列函数扮演了一个重要的角色 对 Hash 值 又称 数字签名 进行数字签名 在统计上可以认为与对文件本身进行 数字签名是等效的 而且这样的协议还有其他的优点 3 鉴权协议 如下的鉴权协议又被称作挑战 认证模式 在传输信道是可被侦听 但不 可被篡改的情况下 这是一种简单而安全的方法 21 第 17 页 共 47 页 3信息安全性设计信息安全性设计 本文要研究设计的密码安全体系结合了密码学的众多主要知识 例如 AES 实现 RSA 的实现 数字签名等等 因此 有必要对其中有关的主要数学理论及设计思想做 一下介绍 本章先对其中有关的重要知识进行讨论分析 最后把各知识结合在一起组 成密码安全体系系统 3 13 1AESAES 算法分析算法分析 3 1 1 AES 加密 解密算法原理 对称密码算法根据对明文消息加密方式的不同可分为两大类 即分组密码和流密码 分组密码将消息分为固定长度的分组 输出的密文分组通常与输入的明文分组长度相同 AES 算法基于排列和置换运算 排列是对数据重新进行安排 置换是将一个数据单元 替换为另一个 AES 使用几种不同的方法来执行排列和置换运算 迭代加密使用一个 循环结构 在该循环中重复置换和替换输入数据 AES 是一个迭代的 对称密钥分组 的密码 它可以使用128 192 和 256 位密钥 用NK 4 6 8 代表密钥串的字数 1字 32 比特 用Nr表示对一个数据分组加密的轮数 由于外部输入的加密密钥K长度有限 所 以在AES中要用一个密钥扩展程序 KeyExpansion 把外部密钥K扩展成更长的比特串 以 生成各轮的加密密钥 每一轮都需要一个和输入分组具有同样长度 128比特 的扩展密 钥Ke的参与 密码运算的中间结果称为State 22 下面表3 1列出了AES各参数的情况 表 3 1 AES 参数 AES 类型位数密匙长度 字分组大小 字轮数 次 第 18 页 共 47 页 1284410 1926412 2568414 AES每一个圈变换由以下三个层组成 非线性层 进行Subbyte变换 线行混合层 进行ShiftRow和MixColumn运算 密钥加层 进行AddRoundKey运算 各种变换 将在下面详细分析 S S盒置换 即对每一个字节用S Box做一个置换 S Box是一个给定的转换表 R 行 置换 C 列置换 s x a x s x 在下面的内容中将一一介绍 加密开始 时 输入分组的各字节按表3 1的方式装入一个矩阵State中 如输入 A1 A2 A3 A15 A16 则输入块影射到如下图3 1的状态矩阵State中 23 图 3 1 状态矩阵 State 解密变换是加密变换的逆变换 这里不再详述 AES 的加密与解密流程图如图 3 2 所示 128 位数据分组 128 位数据分组 与扩展密钥的异或运算 行变换 列变换 S 盒变换 行变换 S 盒变换 与扩展密钥的异或 输出 128 位数据 与扩展密钥的异或 反行变换 反 S 盒变换 反列变换 与扩展密钥的异或运算 输出 128 位数据 反行变换 反列变换 与扩展密钥的异或 与扩展密钥的异或 图 3 2 AES 加解密流程图 A1 A5 A9 A13 A2 A6 A10 A14 A3 A7 A11 A15 A4 A8 A12 A16 第 19 页 共 47 页 3 1 2 S 盒变换 SubBytes 对输入矩阵的任一个元素A做如下变换S A 1 一个元素 A 从存储角度看都是一个八位的二进制数 算出前四位所代表的十六 进制数 x 和后四位所代表的十六进制数y 如A 11010100时 x c y 4 2 从AES算法给定的S Box 16行16列的矩阵 其中每个元素为一个字节 具体的 S Box 略 中找出S A S x y 的值 如A 11010100 S A S x y S c 4 1c 00011101 3 1 3 行变换 ShiftRows 在行变换中 中间状态矩阵State的第一行不变 第二行左循环移动1位 第三行 左循环移动2位 第四行左循环移动3位 如下图3 3所示 图 3 3 行变换 3 1 4 列变换 MixColumns 列变换是对中间状态矩阵State逐列进行变换 其变换为如下的矩阵运算 经过上面 的运算 原来的一列就被替换成下面的式子所表达的新列 S 0 c 02 S 0 c 03 S 1 c S 2 c S 3 c 式 3 1 S 1 c S 0 c 02 S 1 c 03 S 2 c S 3 c 式3 2 S 2 c S 0 c S 1 c 02 S 2 c 03 S 3 c 式3 3 S 3 c 03 S 0 c S 1 c S 2 c 02 S 3 c 式3 4 这里 为按位异或运算 其中的乘法 按照下面介绍的模乘同余规则进行计算 列变换中要用到的模乘同余规则和我们一般用到的乘法有些不同 由于每一个元 素都是一个字节 于是可把这个字节看成一个形式上的七次多项式 即将 b7 b6 b5 b4 b3 b2 b1 b0 视为 b7 x7 b6 x6 b5 x5 b4 x4 b3 x3 b2 x2 b1 x b0 如 11011001 2 d9 16可以被看成是x7 x 6 x 4 x 3 1 列变换希望把一个字节变换为 一个新的字节 所以需要把两个形式上的七次多项式的乘法结果变为一个新的形式上 A1 A5 A9 A13 A2 A6 A10 A14 A3 A7 A11 A15 A4 A8 A12 A16 A1 A5 A9 A13 A6 A10 A14 A2 A11 A15 A3 A7 A16 A4 A8 A12 第 20 页 共 47 页 的七次多项式 然后才能将其恢复为一个字节的长度 这里采用模一个八次不可约多 项式的同余乘法 即将两七次多项式的乘法结果除以这 个八次不可约多项式再取其余 式 24 在AES中这个八次不可约多项式为 C x x 8 x 4 x 3 x 1 例如 x6 x 4 x 2 x 1 x7 x 1 x 13 x 11 x 9 x 8 x 6 x 5 x 4 x 3 1 x13 x 11 x 9 x 8 x 6 x 5 x 4 x 3 1 mod x8 x 4 x 3 x 1 x7 x6 1 对应为 57 83 c1 图 3 4 列变换 3 1 5 异或运算 AddRoundKey 这一轮的轮密匙是由原始密匙扩展而来 同样排成一个4 4的矩阵 这一步的操 作是将MixColumns 变换的输出和轮密匙做异或 25 B0 0 B0 1 B0 2 B0 3 B1 0 B1 1 B1 2 B1 3 B2 0 B2 2 B2 2 B2 3 B3 0 B3 3 B3 2 B3 3 A0 0 A0 1 A0 2 A0 3 A1 0 A1 1 A1 2 A1 3 A2 0 A2 1 A2 2 A2 3 A3 0 A3 1 A3 2 A3 3 X C x A0 0 A0 1 A0 2 A0 3 A1 0 A1 1 A1 2 A1 3 A2 0 A2 1 A2 2 A2 3 A3 0 A3 1 A3 2 A3 3 K0 0 K0 1 K0 2 K0 3 K1 0 K1 1 K1 2 K1 3 K2 0 K2 2 K2 2 K2 3 K3 0 K3 3 K3 2 K3 3 B0 0 B0 1 B0 2 B0 3 B1 0 B1 1 B1 2 B1 3 B2 0 B2 1 B2 2 B2 3 B3 0 B3 1 B3 2 B3 3 A3 3 K3 3 B3 3 第 21 页 共 47 页 图 3 5 异或运算 3 1 6 密钥扩展程序算法 KeyExpansion 假如原始密匙有 128 位 排列成一个 4 4 的矩阵 这个矩阵通过加入了 40 多列 进行了扩展 过程如下 记开始的 4 列为 W 0 W

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论