




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文件的加密与解密算法研究与实现 第 1 页 共 36 页 第一章第一章本科毕业本科毕业 论文论文 设计设计 摘要 摘要 4 1 DES 算法 DES 算法为 密码体制中的对称密码体制 又被成 为美国数据加密标准 是 经过几个 星期的设计和开发 系统基本开发完 毕 在本次课程设计中困难遇到不少 比如 文件的加密与解密算法研究与实现 第 2 页 共 36 页 关键词 关键词 设计 算法 类别 类别 专题技术 来源 来源 牛档搜索 Niudown COM 文件的加密与解密算法研究与实现 第 3 页 共 36 页 本文系牛档搜索 Niudown COM 根据用户的指 令自动搜索的结果 文中内涉及到 的资料均来自互联网 用于学习交 流经验 作品其著作权归原作者所 有 不代表牛档搜索 Niudown COM 赞成本文的内 容或立场 牛档搜索 Niudown COM 不对其付相应 的法律责任 文件的加密与解密算法研究与实现 第 4 页 共 36 页 本科毕业论文 设计 题 目 文件加密与解密算法研究设计 学 院 计算机与信息科学学院 专 业 计算机科学与技术 年 级 学 号 姓 名 指 导 教 师 成 绩 2009 年 4 月 9 日 文件的加密与解密算法研究与实现 第 5 页 共 36 页 文件的加密与解密算法研究与实现文件的加密与解密算法研究与实现 星星 XX 大学计算机与信息科学学院 重庆 400715 摘要 摘要 随着信息社会的到来 人们在享受信息资源所带来的巨大的利益的同时 也面临着 信 息安全的严峻考验 信息安全已经成为世界性的现实问题 信息安全问题已威胁到国家的 政 治 经济 军事 文化 意识形态等领域 同时 信息安全问题也是人们能否护自己的个 人 隐私的关键 信息安全是社会稳定安全的必要前提条件 本文是一篇讨论关于常用文件加密解密算法的毕业设计论文 它详细的讲述了文件加 密解密算法实现的过程中所用到的方法 技术 对公钥密码体制和私钥密码体制进行了分 析和研究 并对公钥密码体制和私钥密码体制的代表 RSA 算法和 DES 算法进行了研究和比 较 关键词关键词 解密 文件加密 密码体制 DES RSA Design and Implementation of Document tagging software XING Faculty of Computer and Information Science Southwest China University Chongqing 400715 China Abstract With the advent of the information society people in the enjoyment of information resources brought about tremendous benefits but also faced with a letter Income security a severe test Information security has become a worldwide reality information security has been a threat to the country s political Governance economic military cultural ideological and other areas at the same time the issue of information security is also a possibility of retaining their own personal Privacy key Information security and social stability is a necessary precondition for security This article is a discussion paper on encryption and decryption algorithms commonly used in graduate design thesis which documents in detail about the encryption and decryption process of algorithm used in the methods and techniques Of public key 文件的加密与解密算法研究与实现 第 6 页 共 36 页 cryptosystem private key cryptosystem and analysis and research and public key cryptosystem and on behalf of private key cryptography algorithm RSA algorithm and DES have been studied and compared Keywords Decryption file encryption cryptosystem DES RSA 目录目录 摘要 2 目录目录 3 1 1 前言 前言 4 2 2 需求分析 需求分析 5 2 1 系统概述 5 2 1 1 概述 5 2 2 密码学的发展 5 2 3 文件加密解密中密码体制研究 8 2 3 1 密码原理 8 2 3 2密码体制 9 4 4 分组加密解密算法 分组加密解密算法 DES DES 算法算法 10 4 1 DES 算法 10 3 2 RSA 算法 11 3 2 工作原理 11 3 2 1优点 15 3 2 1 缺点 15 4 2 0 DES 加密流程图 17 4 3 详细解析 18 1 取得 64 位的密钥 每个第 8 位作为奇偶校验位 18 1 2 变换密钥 18 1 2 1 舍弃64位密钥中的奇偶校验位 根据下表 PC 1 进行密钥变换得到56位的 密钥 在变换中 奇偶校验位以被舍弃 18 1 2 2 将变换后的密钥分为两个部分 18 1 2 3 生成16个子密钥 18 2 处理 64 位的数据 19 2 1 取得64位的数据 19 2 2 将64位数据按下表变换 IP 19 2 3 将变换后的数据分为两部分 20 2 4 用16个子密钥加密数据 20 2 4 1 将32位的R I 1 按下表 20 文件的加密与解密算法研究与实现 第 7 页 共 36 页 5 DES 算法实例演示算法实例演示 24 5 1 实例程序 DES TOOL 24 5 2 文件功能描述 DES 加密类 头文件 25 5 测试分析测试分析 29 6 心得体会心得体会 30 参考文献参考文献 31 致谢致谢 31 1 1 前言 前言 信息安全是一个综合性的交叉学科领域 广泛涉及数学 密码学 计算 机 通信 控制 人工智能 安全工程 人文科学等诸多学科 是近几年迅速 发展的一个热点学科领域 信息对抗和网络安全是信息安全的核心热点 它的 研究和发展又将刺激 推动和促进相关学科的研究与发展 至今 密码技术是 取得信息安全性最有效的一种方法 密码技术是信息安全的核心技术 1 通过数据加密 人们可以有效地保证通信线路上的内容不被泄露 而且还 可以检验传送信息的完整性 进一步 密码技术可以应用于数字签名 身份认 证和信息鉴定 这些应用对于资源存取控制以及其它安全措施是必须而且有效 的 信息安全产品从应用类型上可以分为防火墙类产品 防病毒类产品 防攻 击类产品 密码类产品 认证类产品和访问控制类产品 相对于防病毒软件和 防火墙软件来说 基于密码技术密码类产品 认证类产品份额相对较小 但随 着金融 电信 政府等行业信息化建设对于网络安全整体解决方案需求的增加 将会有较大的增长 在本次毕业设计中 对公钥密码体制和私钥密码体制进行了分析和研究 并对公钥密码体制和私钥密码体制的代表 RSA 算法和 DES 算法进行了研究和 比较 并且实现了基本的文件加密解密的处理流程 能提供对文件的安全 有 文件的加密与解密算法研究与实现 第 8 页 共 36 页 效的保护 2 2 需求分析 需求分析 2 1 系统概述 2 1 1 概述 信息是一种资源 也是一种财富 在现代社会中 信息处理和通信技术日益发 展 保护信息的安全 特别是保护重要信息的安全 越来越成受到国内外有关 研究人员的极大重视 当前由于信息的保护不利和失误 世界各国遭受的损失 是巨大的 现在 国际互联网上的各站点 几乎都有各种各样的安全措施 例 如防火墙 FireWall 网络加密 加密狗等 但是 这些都是系统或网站层次的 安全设施 对于广大用户来说 更为直接 也更为有效的办法 就是使用信息 加密技术 加密技术是一门实用的技术 有着悠久的历史 过去 加密技术仅 被军事和谋报人员以及某些大型商业企业所采用 应用范围十分有限 加密学 也是一门与数学有关的深奥的科学 有能力研究加密学的人为数不多 恐怕这 也是它鲜为人知 较少应用的原因 信息安全的内容主要包括五个部分 信息 的保密性 信息的完整性 信息的可用性 信息的可控性 信息的不可否认性 密码技术是保证信息安全的核心 2 2 密码学的发展 认证过程中 用户必须向系统提供能够证明自己身份的信息 证明用 户身份的信息种类很多 可以是用户所知道的秘密 口令 也可以是生物特 征 如指纹 等 但目前使用最广泛的仍然是用户口令 password 在认证 文件的加密与解密算法研究与实现 第 9 页 共 36 页 系统中口令占据了非常重要的地位 因此对口令的保护就变得至关重要 人们 提出了许多保护口令的方法 力图保障口令的安全与秘密 这些保护认证信息 的方法以及认证系统是随着密码学的发展一起发展的 密码学为我们提供了保 护口令的一个重要方向 归根结底 用户用以证明自己身份的是一段信息 不 论它是口令还是指纹 而迄今为止 确保信息安全的最重要手段是加密 对信 息的加密 解密 信息的保密传输 这正是密码学研究的内容 密码学泛指一切有关研究密码通信的学问 其中包括下面两个领域 如何达 成秘密通信 以及如何破译秘密通信 也就是密码编码学 指如何达到信息的 秘密性 鉴别性的科学 密码分析学 泛指如何破解密码系统 或伪造信息使 密码系统误以为真的科学 从密码学的发展来看 它经历了传统 古典 密码 学 近代密码学 现代密码学几个阶段 计算机 数学领域的最新成果往往与 密码学有关或被应用于密码学研究中 传统密码学 近代密码学的发展 密码学拥有悠久 丰富多彩的历史 作为古典密码其中的一种 早期出现的 密写术形式只需要纸和笔就可以完成 古典密码学的两大范畴是将消息内容进 行重新排列的位移密码和系统地将字母进行替换的替换密码 古典密码学会透 露出与明文统计学结果相关的大量信息 因此容易被破解 如对频率分析可以 有效地攻击古典密码 尽管保密强度很低 由于实现难度低 加密解密快 古 典密码至今仍然被广泛使用 在古典密码学中 有四种类型的代替密码 1 简单代替密码 或单字母密码 就是明文的一个字符用相应的一个密文字 符代替 Caesar 密码就是典型的简单替代密码 2 多编码代替密码 它与简单代替密码系统相似 唯一的不同是单个字符明 文可以映射成密文的几个字符之一 例如 A 可能对应于 5 13 25 或 56 B 可能对应于 7 19 31 或 42 等等 3 字母代替密码 字符块被成组加密 例如 ABA 可能对应于 RTQ ABB 可能对应于 SLL 等 4 多表代替密码 由多个简单的代替密码构成 例如 可能有 5 个被使用 的不同的简单代替密码 单独的一个字符用来改变明文的每个字符的位置 20 世纪初 包括转轮机在内的一些机械密码加密装置被发明出来 其中最有 文件的加密与解密算法研究与实现 第 10 页 共 36 页 名的是二次世界大战中德国使用的恩尼格码 Enigma 机 由这些装置实现的密 码显著提高了密码分析的复杂程度 大量的攻击也仅仅取得了有限的结果 古典密码学以移位密码 替换密码 转轮机为代表 以替代和置换为基础的 密码系统在今天看来已经不堪一击 无法保证信息的安全 对处心积虑的攻击 者来说形同虚设 因为已经有成熟的分析方法来破解这一类的加密方法 借助电子计算机的发展 人们可以实现更复杂的密码系统 与古典密码和机 械密码对 26 个字母进行操作不同 计算机密码的一个显著特征是对二进制串 进行操作 计算机密码对密码分析有更强的抵抗力 只有少数情况下唯密文攻 击才会生效 密码学的大发展时期是上世纪 70 年代 以 DES 和 RSA 算法的提出为代 表 一系列的突破创立了新的密码学体系 DES 是对称密钥分组密码的一个典 型代表 美国国家标准局于 1977 年公布了由 IBM 公司研制的一种加密算法 批准把它作为非机要部门使用的数据加密标准 简称 DES DES 是 Data Encryption Standard 的缩写 自从公布以来 它一直广泛用于国际上商用保密 通信和计算机通信 但由于弱密钥的问题和新的攻击手段不断出现 差分攻击 线性攻击 单纯的 DES 加密已经很少用于实际 更多的情况下是采用增加密 钥长度和多重 DES 加密的办法 RSA 作为一种成功的公钥密码系统 与传统的对称密码系统 加密 解密使 用相同的密钥 相比 最大的特点就是解决了大量密钥分配 传输的问题 在公 钥密码系统中 每个通信者拥有一个密钥对 可用其中一个来加密 用另一个 来解密 公开其中之一 公钥 而另一半只有自己知道 私钥 当需要向某人发送 信息时 只需要用他的公开密钥对消息进行加密 接收者再用自己的私钥解密 即可 而由于公钥密码的特性 这种密码系统也可以用于数字签名 与对称密 码一样 公钥密码也容易受到攻击 解决方法是增加密钥长度 但密钥长度的 增长会使得加密 解密速度变慢 所以公钥密码目前主要仅用于密钥管理和签 名中 近代密码学的另一个分支是序列密码 这种密码体制采用与明文长度相同的 密钥 利用模加 异或 的方法来掩盖明文的内容 这种加密方法虽然简单 但在使用一次性密钥的情况下 可获得极高的安全性 由于密钥不重复使用 文件的加密与解密算法研究与实现 第 11 页 共 36 页 给破译带来了极大的困难 但这种方法也有其缺点 由于密钥只使用一次 不 适合对大量数据进行加密 尤其是流媒体数据 而且大量密钥的分发 传送也 是一个问题 这种方法安全性的关键是要保证密钥序列的随机性 然而 真 随机数是不容易通过固定算法来产生的 而使用 伪随机数 则存在着一定的 风险 近年来提出的 量子密码 采用了量子状态来传递信息 海森堡测不准原 理 是量子力学的基本原理 它表明 在同一时刻以相同的精度测定量子的位 置与动量是不可能的 只能精确测定两者之一 单量子不可复制定理 是 海森堡测不准原理 的推论 它表明 在不知道量子状态的情况下复制单个 量子是不可能的 因为要复制单个量子就只能先作测量 而测量必然改变量子 的状态 所以说不可能 这样使用量子状态作为 一次性便签 可以达到无条 件保密 因为如果量子在传输中被测量 其状态就会改变 从而在传输中监听 者会因此而暴露 虽然量子密码拥有优秀的安全特性 但目前仍处于研究阶段 2 3 文件加密解密中密码体制研究 就整体而言 计算机网络加密问题应包括文件存储加密 口令存储加密 数据库数据加密 电子邮件加密等信息加密和数据传输加密 信道加密 以及 密码体制 密钥管理中心等三个方面的内容 下面我们通过加密原理 密码体 制和产品功能介绍来概略地讲讲这三个方面的内容 2 3 1 密码原理密码原理 1 密码原理 所谓加密 就是将正常情况下可懂的文件数据输入密码 机 由密码机变成不可懂的乱码 即将 明文 变成 密文 所谓解密 就是上 述过程的逆过程 即将 密文 变成 明文 密码机可看做是一个用电子元件 实现一种复杂数学运算的机器 复杂数学运算可记为 这里 C 密文 p 明文 k 密钥 f 是密码算法 K 是自变量 C 是因变量 不同的 K 有不同的 C 对 文件的加密与解密算法研究与实现 第 12 页 共 36 页 于某个密码算法 f K 的选择范围越大 C 的变化就越多 这个密码算法被人破 译的难度就越大 保密强度就越高 如何评价 K 的选择范围大小呢 一般是看 K 的位数 位数长的 如 128 位以上 选择范围大 位数短的 如 56 位 选择 范围小 一个国家的密码政策 通常是用位数长的高强度密码 位数可达 保 护国家秘密 其它用于保护商业秘密 在数据传输加密过程中 收发双方线路密码机使用的是相同的密码算法 注入了相同的密钥 发方向收方发出明文 经密码机变成密文后送上公网通信 线路 到达收方后先经密码机解密再送到收方电脑上 密文在公用通信网上传 输时 如果被截收 窃密方收到的是不可懂的乱码 无法窃取信息内容 在文件存储加密中 加密解密卡加解密采用同一种算法和同一个密钥 工 作人员用电脑处理文件后先将文件加密再存入磁盘 以防窃密者盗用磁盘窃取 文件 工作人员调用该文件时 文件先经解密再从显示器上显示出来以供使用 2 3 2 密码体制密码体制 2 密码体制 刚才讲密码原理时 收发双方密码机的密码算法一致 密钥一 致 这在密码体制中叫 秘密密钥体制 或 单密钥体制 这是一种传统的密码 体制 有系统的理论研究和完善的管理机制 技术成熟 性能稳定 国内自行 研制的产品安全可靠 保密强度高 一般用于文件数据加密存储和传输 国外 著名的 DES 密码就是美国政府 1977 年发布的密钥长度为 56 位的 秘密密钥体 制 的密码 这种密码的缺陷是 仅适用于内部的 点对点方式的 事前双方已 知密钥的两点之间的加密传输 保守密钥的秘密十分重要 密钥一旦丢失 整 个系统都要立即更换密钥 否则窃密者将可能轻而易举的破解密文 随着近代计算机网络的发展 不同部门 不同单位网上交往增多 单密 钥体制 显出了它的局限性 人们很难对众多的部门和单位保管好各自不同的密 钥 于是人们又发明了 公开密钥体制 或叫 双密钥体制 它是基于一些数学 文件的加密与解密算法研究与实现 第 13 页 共 36 页 问题而发明出来的密码体制 这些数学问题可记为 其中 写在一起就是 这 个公式说明有这样一种数学运算 它可以将用密钥 k 加密的密文用密钥 k 解密 国外 1978 年公布的 RSA 密码就是这种有两个密钥的密码 这种密码保密强度 不如单密钥体制的密码 一般用于通信双方的身份确认和数字签名 在实用的互联网络中 各用户通过加密传输可形成一个虚拟的保密互联网 该网要由一个各用户认可的密钥管理中心来生成 管理 分发和销毁密钥 同 时各用户可将自己的 公钥 也存放在密钥管理中心 各用户需进行保密通信时 先通过公钥系统进行身份确认 这个过程中密钥管理中心可起到仲裁鉴别作用 双方确认身份后由密钥管理中心分发秘密密钥 双方用得到秘密密钥进行数 据或文件的加密传输 这种工作方式不但适用于党政机关内部 也同样适用于 电子商务 但电子商务和党政机关不能使用同一个级别的密码设备 党政机关 用的是 普密 设备 电子商务只能用 商密 设备 二者的保密强度是不一样的 4 4 分组加密解密算法 分组加密解密算法 DES DES 算法算法 4 1 DESDES 算法算法 DES 算法为密码体制中的对称密码体制 又被成为美国数据加密标准 是 1972 年美国 IBM 公司研制的对称密码体制加密算法 其密钥长度为56 位 明文按 64 位进行分组 将分组后的明文组和56 位的密钥按位替代或 交换的方法形成密文组的加密方法 DES 加密算法特点 分组比较短 密钥太短 密码生命周期短 运算速 度较慢 DES 工作的基本原理是 其入口参数有三个 key data mode key 为加密解密使用的密钥 data 为加密解密的数据 mode 为其工作模 式 当模式为加密模式时 明文按照64 位进行分组 形成明文组 key 用 于对数据加密 当模式为解密模式时 key 用于对数据解密 实际运用中 密钥只用到了 64 位中的 56 位 这样才具有高的安全性 文件的加密与解密算法研究与实现 第 14 页 共 36 页 DES Data Encryption Standard 算法 于 1977 年得到美国政府的正 式许可 是一种用 56 位密钥来加密 64 位数据的方法 虽然 56 位密钥的 DES 算法已经风光不在 而且常有用 Des 加密的明文被破译的报道 但是了 解一下昔日美国的标准加密算法总是有益的 而且目前 DES 算法得到了广 泛的应用 在某些场合 仍然发挥着余热 3 2 RSA 算法 当前最著名 应用最广泛的公钥系统 RSA 是在 1978 年 由美国麻省理工学院 MIT 的 Ron Rivest Adi Shamir 和 Leonard Adleman 在题为 获得数字签名 和公开钥密码系统的方法 的论文中提出的 它是一个基于数论的非对称 公开 钥 密码体制 是一种分组密码体制 其名称来自于三个发明者的姓名首字母 它的安全性是基于大整数素因子分解的困难性 而大整数因子分解问题是数学 上的著名难题 至今没有有效的方法予以解决 因此可以确保 RSA 算法的安全 性 RSA 系统是公钥系统的最具有典型意义的方法 大多数使用公钥密码进行 加密和数字签名的产品和标准使用的都是 RSA 算法 RSA 算法是第一个既能用于数据加密也能用于数字签名的算法 因此它为公用 网络上信息的加密和鉴别提供了一种基本的方法 它通常是先生成一对 RSA 密 钥 其中之一是保密密钥 由用户保存 另一个为公开密钥 可对外公开 甚 至可在网络服务器中注册 人们用公钥加密文件发送给个人 个人就可以用私 钥解密接受 为提高保密强度 RSA 密钥至少为 500 位长 一般推荐使用 1024 位 该算法基于下面的两个事实 这些事实保证了 RSA 算法的安全有效性 1 已有确定一个数是不是质数的快速算法 2 尚未找到确定一个合数的质因子的快速算法 文件的加密与解密算法研究与实现 第 15 页 共 36 页 3 2 工作原理 1 任意选取两个不同的大质数 p 和 q 计算乘积 r p q 2 任意选取一个大整数 e e 与 p 1 q 1 互质 整数 e 用做加密密钥 注意 e 的选取是很容易的 例如 所有大于 p 和 q 的质数都可用 3 确定解密密钥 d d e 1 modulo p 1 q 1 根据 e p 和 q 可以容易地计算出 d 4 公开整数 r 和 e 但是不公开 d 5 将明文 P 假设 P 是一个小于 r 的整数 加密为密文 C 计算方法为 C Pe modulo r 6 将密文 C 解密为明文 P 计算方法为 P Cd modulo r 然而只根据 r 和 e 不是 p 和 q 要计算出 d 是不可能的 因此 任何人都可对 明文进行加密 但只有授权用户 知道 d 才可对密文解密 数学原理 定理 若 p q 是相异质数 rm 1 mod p 1 q 1 a 是任意一个正整数 b a m mod pq c b r mod pq 则 c a mod pq 证明的过程 会用到费马小定理 叙述如下 m 是任一质数 n 是任一整数 则 n m n mod m 换另一句话说 如果 n 和 m 互质 则 n m 1 1 mod m 文件的加密与解密算法研究与实现 第 16 页 共 36 页 运用一些基本的群论的知识 就可以很容易地证出费马小定理的 证明 因为 rm 1 mod p 1 q 1 所以 rm k p 1 q 1 1 其中 k 是整数 因为在 modulo 中是 preserve 乘法的 x y mod z and u v mod z xu yv mod z 所以 c b r a m r a rm a k p 1 q 1 1 mod pq 1 如果 a 不是 p 的倍数 也不是 q 的倍数时 则 a p 1 1 mod p 费马小定理 a k p 1 q 1 1 mod p a q 1 1 mod q 费马小定理 a k p 1 q 1 1 mod q 所以 p q 均能整除 a k p 1 q 1 1 pq a k p 1 q 1 1 即 a k p 1 q 1 1 mod pq c a k p 1 q 1 1 a mod pq 2 如果 a 是 p 的倍数 但不是 q 的倍数时 则 a q 1 1 mod q 费马小定理 a k p 1 q 1 1 mod q c a k p 1 q 1 1 a mod q q c a 因 p a c a k p 1 q 1 1 0 mod p p c a 所以 pq c a c a mod pq 3 如果 a 是 q 的倍数 但不是 p 的倍数时 证明同上 文件的加密与解密算法研究与实现 第 17 页 共 36 页 4 如果 a 同时是 p 和 q 的倍数时 则 pq a c a k p 1 q 1 1 0 mod pq pq c a c a mod pq Q E D 这个定理说明 a 经过编码为 b 再经过解码为 c 时 a c mod n n pq 但我们在做编码解码时 限制 0 a n 0 c n 所以这就是说 a 等於 c 所以这个过程确实能做到编码解码的功能 为了说明该算法的工作过程 我们下面给出一个简单例子 显然我们在这只能取 很小的数字 但是如上所述 为了保证安全 在实际应用上我们所用的数字要 大的多得多 例 选取 p 3 q 5 则 r 15 p 1 q 1 8 选取 e 11 大于 p 和 q 的 质数 通过 d 11 1 modulo 8 计算出 d 3 假定明文为整数 13 则密文 C 为 C Pe modulo r 1311 modulo 15 1 792 160 394 037 modulo 15 7 复原明文 P 为 P Cd modulo r 73 modulo 15 343 modulo 15 13 因为 e 和 d 互逆 公开密钥加密方法也允许采用这样的方式对加密信息进行 签 文件的加密与解密算法研究与实现 第 18 页 共 36 页 名 以便接收方能确定签名不是伪造的 两个在不安全信道中通信的人 假设为 Alice 收信者 和 Bob 发信者 他 们希望能够安全的通信而不被他们的敌手 Oscar 破坏 Alice 想到了一种办法 她使用了一种锁 相当于公钥 这种锁任何人只要轻轻一按就可以锁上 但 是只有 Alice 的钥匙 相当于私钥 才能够打开 然后 Alice 对外发送无数把 这样的锁 任何人比如 Bob 想给她寄信时 只需找到一个箱子 然后用一把 Alice 的锁将其锁上再寄给 Alice 这时候任何人 包括 Bob 自己 除了拥有 钥匙的 Alice 都不能再打开箱子 这样即使 Oscar 能找到 Alice 的锁 即使 Oscar 能在通信过程中截获这个箱子 没有 Alice 的钥匙他也不可能打开箱子 而 Alice 的钥匙并不需要分发 这样 Oscar 也就无法得到这把 私人密钥 3 2 1 优点优点 RSA 算法是第一个能同时用于加密和数字签名的算法 也易于理解和操作 RSA 是被研究得最广泛的公钥算法 从提出到现在已近二十年 经历了各种攻 击的考验 逐渐为人们接受 普遍认为是目前最优秀的公钥方案之一 该算法 的加密密钥和加密算法分开 使得密钥分配更为方便 它特别符合计算机网络 环境 对于 网上的大量用户 可以将加密密钥用电话簿的方式印出 如果某用 户想与另一用户进行保密通信 只需从公钥簿上查出对方的加密密钥 用它对 所传送的信息加密发出即可 对方收到信息后 用仅为自己所知的解密密钥将 信息脱密 了解报文的内容 由此可看出 RSA 算法解决了大量网络用户密钥 管理的难题 这是公钥密码系统相对于对称密码系统最突出的优点 3 2 1 缺点缺点 缺点 文件的加密与解密算法研究与实现 第 19 页 共 36 页 1 产生密钥很麻烦 受到素数产生技术的限制 因而难以做到一次一密 2 安全性 RSA 的安全性依赖于大数的因子分解 但并没有从理论上证明破译 RSA 的难度与大数分解难度等价 而且密码学界多数人士倾向于因子分解不是 NPC 问题 目前 人们已能分解 140 多个十进制位的大素数 这就要求使用更 长的密钥 速度更慢 另外 目前人们正在积极寻找攻击 RSA 的方法 如选择 密文攻击 一般攻击者是将某一信息作一下伪装 Blind 让拥有私钥的实体签 署 然后 经过计算就可得到它所想要的信息 实际上 攻击利用的都是同一 个弱点 即存在这样一个事实 乘幂保留了输入的乘法结构 XM d Xd Md mod n 前面已经提到 这个固有的问题来自于公钥密码系统的最有用的特征 每个人 都能使用公钥 但从算法上无法解决这一问题 主要措施有两条 一条是采用 好的公钥协议 保证工作过程中实体不对其他实体任意产生的信息解密 不对 自己一无所知的信息签名 另一条是决不对陌生人送来的随机文档签名 签名 时首先使用 One Way Hash Function 对文档作 HASH 处理 或同时使用不同的签 名算法 除了利用公共模数 人们还尝试一些利用解密指数或 n 等等攻 击 3 速度太慢 由于 RSA 的分组长度太大 为保证安全性 n 至少也要 600 bitx 以上 使运算代价很高 尤其是速度较慢 较对称密码算法慢几个数量级 且 随着大数分解技术的发展 这个长度还在增加 不利于数据格式的标准化 目 前 SET Secure Electronic Transaction 协议中要求 CA 采用 2048 比特长的 密钥 其他实体使用 1024 比特的密钥 为了速度问题 目前人们广泛使用单 公 钥密码结合使用的方法 优缺点互补 单钥密码加密速度快 人们用它来加密较长 的文件 然后用 RSA 来给文件密钥加密 极好的解决了单钥密码的密钥分发问题 公钥加密算法中使用最广的是 RSA RSA 算法研制的最初理念与目标是努力使互 联网安全可靠 旨在解决 DES 算法秘密密钥的利用公开信道传输分发的难题 而实际结果不但很好地解决了这个难题 还可利用 RSA 来完成对电文的数字签 名以抗对电文的否认与抵赖 同时还可以利用数字签名较容易地发现攻击者对 电文的非法篡改 以保护数据信息的完整性 目前为止 很多种加密技术采用 文件的加密与解密算法研究与实现 第 20 页 共 36 页 了 RSA 算法 该算法也已经在互联网的许多方面得以广泛应用 包括在安全接 口层 SSL 标准 该标准是网络浏览器建立安全的互联网连接时必须用到的 方面的应用 此外 RSA 加密系统还可应用于智能 IC 卡和网络安全产品 但目前 RSA 算法的专利期限即将结束 取而代之的是基于椭圆曲线的密码方案 ECC 算法 较之于 RSA 算法 ECC 有其相对优点 这使得 ECC 的特性更适合 当今电子商务需要快速反应的发展潮流 此外 一种全新的量子密码也正在发 展中 文件的加密与解密算法研究与实现 第 21 页 共 36 页 4 2 0 DES 加密流程图 1 1 变换密钥 文件的加密与解密算法研究与实现 第 22 页 共 36 页 4 3 详细解析 1 1 取得 64 位的密钥 每个第 8 位作为奇偶校验位 1 2 变换密钥 1 2 1 舍弃 64 位密钥中的奇偶校验位 根据下表 PC 1 进行密钥变换得 到 56 位的密钥 在变换中 奇偶校验位以被舍弃 Permuted Choice 1 PC 1 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 1 2 2 将变换后的密钥分为两个部分 开始的 28 位称为 C 0 最后的 28 位 称为 D 0 1 2 3 生成 16 个子密钥 初始 I 1 1 2 3 1 同时将 C I D I 左移 1 位或 2 位 根据 I 值决定左移的位数 见 下表 I 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 左移位数 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 1 2 3 2 将 C I D I 作为一个整体按下表 PC 2 变换 得到 48 位的 K I 文件的加密与解密算法研究与实现 第 23 页 共 36 页 Permuted Choice 2 PC 2 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 1 2 3 3 从 1 2 3 1 处循环执行 直到 K 16 被计算完成 2 处理 64 位的数据 2 1 取得 64 位的数据 如果数据长度不足 64 位 应该将其扩展为 64 位 例如补零 2 2 将 64 位数据按下表变换 IP Initial Permutation IP 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 文件的加密与解密算法研究与实现 第 24 页 共 36 页 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 2 3 将变换后的数据分为两部分 开始的 32 位称为 L 0 最后的 32 位称 为 R 0 2 4 用 16 个子密钥加密数据 初始 I 1 2 4 1 将 32 位的 R I 1 按下表 E 扩展为 48 位的 E I 1 Expansion E 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 2 4 2 异或 E I 1 和 K I 即 E I 1 XOR K I 2 4 3 将异或后的结果分为 8 个 6 位长的部分 第 1 位到第 6 位称为 B 1 第 7 位到第 12 位称为 B 2 依此类推 第 43 位到第 48 位称为 B 8 2 4 4 按 S 表变换所有的 B J 初始 J 1 所有在 S 表的值都被当作 4 位长度处理 2 4 4 1 将 B J 的第 1 位和第 6 位组合为一个 2 位长度的变量 M M 作 为在 S J 中的行号 文件的加密与解密算法研究与实现 第 25 页 共 36 页 2 4 4 2 将 B J 的第 2 位到第 5 位组合 作为一个 4 位长度的变量 N N 作为在 S J 中的列号 2 4 4 3 用 S J M N 来取代 B J Substitution Box 1 S 1 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 S 2 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 S 3 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 S 4 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 文件的加密与解密算法研究与实现 第 26 页 共 36 页 S 5 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 S 6 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 S 7 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 S 8 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11 2 4 4 4 从 2 4 4 1 处循环执行 直到 B 8 被替代完成 2 4 4 5 将 B 1 到 B 8 组合 按下表 P 变换 得到 P 文件的加密与解密算法研究与实现 第 27 页 共 36 页 Permutation P 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 2 4 6 异或 P 和 L I 1 结果放在 R I 即 R I P XOR L I 1 2 4 7 L I R I 1 2 4 8 从 2 4 1 处开始循环执行 直到 K 16 被变换完成 2 4 5 组合变换后的 R 16 L 16 注意 R 作为开始的 32 位 按下表 IP 1 变换得到最后的结果 Final Permutation IP 1 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 文件的加密与解密算法研究与实现 第 28 页 共 36 页 以上就是 DES 算法的描述 5 DES 算法实例演示算法实例演示 5 1 实例程序 DES TOOL 这是 DES TOOL 的截图 MFC 写的 编译器是 VS 2008 文件的加密与解密算法研究与实现 第 29 页 共 36 页 5 2 文件功能描述 DES 加密类 头文件 ifndef yxyDESH define yxyDESH include include include include using namespace std class yxyDES public 文件的加密与解密算法研究与实现 第 30 页 共 36 页 yxyDES 类构造函数 yxyDES 类析构函数 void InitializeKey string 功能 产生 16 个 28 位的 key 参数 源 8 位的字符串 key 结果 函数将调用 private CreateSubKey 将结果存于 char SubKeys 16 48 void EncryptData string 功能 加密 8 位字符串 参数 8 位字符串 结果 函数将加密后结果存放于 private szCiphertext 16 用户通过属性 Ciphertext 得到 void DecryptData string 功能 解密 16 位十六进制字符串 参数 16 位十六进制字符串 结果 函数将解密候结果存放于 private szPlaintext 8 用户通过属性 Plaintext 得到 void EncryptAnyLength string 功能 加密任意长度字符串 参数 任意长度字符串 结果 函数将加密后结果存放于 private szFCiphertextAnyLength 8192 用户通过属性 CiphertextAnyLength 得到 void DecryptAnyLength string 功能 解密任意长度十六进制字符串 参数 任意长度字符串 结果 函数将加密后结果存放于 private 文件的加密与解密算法研究与实现 第 31 页 共 36 页 szFPlaintextAnyLength 4096 用户通过属性 PlaintextAnyLength 得到 void SetCiphertext char value Ciphertext 的 set 函数 char GetCiphertext Ciphertext 的 get 函数 void SetPlaintext char value Plaintext 的 set 函数 char GetPlaintext Plaintext 的 get 函数 char GetCiphertextAnyLength CiphertextAnyLength 的 get 函数 char GetPlaintextAnyLength PlaintextAnyLength 的 get 函数 private char SubKeys 16 48 储存 16 组 48 位密钥 char szCiphertext 16 储存 16 位密文 十六进制字符串 char szPlaintext 8 储存 8 位明文字符串 char szFCiphertextAnyLength 8192 任意长度密文 十
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 子空间的正交补空间课件
- 新能源汽车动力蓄电池与充电系统(微课版) 课件 任务2.1新能源汽车动力电池认知与更换
- 平面设计师课件
- 平面图行的旋转课件
- 平面向量课件
- 工业安全培训感想课件
- FLT3-IN-32-hydrochloride-生命科学试剂-MCE
- 2025年吉林公务员真题
- 2024年黄冈市市直机关遴选公务员笔试真题
- 央视地震逃生安全培训课件
- 2025年高考英语新课标Ⅱ卷点评及2026备考方向 课件
- 2025年学宪法、讲宪法知识竞赛题库及答案
- 【MOOC】《中国马克思主义与当代》(北京科技大学)中国大学MOOC慕课答案
- 第九组 生态监测与评价
- 西方国家的宪法制度课件
- 2021年色达县林业系统事业单位招聘考试《林业基础知识》笔试试题及答案解析
- 抢救车药品每月检查登记表
- 食品销售流程图
- 国家职业技能标准 (2021年版) 燃气供应服务员
- 水利工程设计标准化管理手册
- 蓝花花钢琴谱
评论
0/150
提交评论