已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机计算机 数据加密技术数据加密技术 数据加密技术 我们经常需要一种措施来保护我们的数据,防止被一 些怀有不良用心的人所看到或者破坏。在信息时代,信息 可以帮助团体或个人,使他们受益,同样,信息也可以用 来对他们构成威胁,造成破坏。在竞争激烈的大公司中, 工业间谍经常会获取对方的情报。因此,在客观上就需要 一种强有力的安全措施来保护机密数据不被窃取或篡改。 数据加密与解密从宏观上讲是非常简单的,很容易理解。 加密与解密的一些方法是非常直接的,很容易掌握,可以 很方便的对机密数据进行加密和解密。 一:数据加密方法 在传统上,我们有几种方法来加密数据流。所有这些 方法都可以用软件很容易的实现,但是当我们只知道密文 的时候,是不容易破译这些加密算法的(当同时有原文和 密文时,破译加密算法虽然也不是很容易,但已经是可能 的了) 。最好的加密算法对系统性能几乎没有影响,并且还 可以带来其他内在的优点。例如,大家都知道的 pkzip,它 既压缩数据又加密数据。又如,dbms 的一些软件包总是包 含一些加密方法以使复制文件这一功能对一些敏感数据是 无效的,或者需要用户的密码。所有这些加密算法都要有 高效的加密和解密能力。 幸运的是,在所有的加密算法中最简单的一种就是 “置换表”算法,这种算法也能很好达到加密的需要。每 一个数据段(总是一个字节)对应着“置换表”中的一个 偏移量,偏移量所对应的值就输出成为加密后的文件。加 密程序和解密程序都需要一个这样的“置换表” 。事实上, 80x86cpu 系列就有一个指令xlat在硬件级来完成这样 的工作。这种加密算法比较简单,加密解密速度都很快, 但是一旦这个“置换表”被对方获得,那这个加密方案就 完全被识破了。更进一步讲,这种加密算法对于黑客破译 来讲是相当直接的,只要找到一个“置换表”就可以了。 这种方法在计算机出现之前就已经被广泛的使用。 对这种“置换表”方式的一个改进就是使用 2 个或者 更多的“置换表” ,这些表都是基于数据流中字节的位置的, 或者基于数据流本身。这时,破译变的更加困难,因为黑 客必须正确的做几次变换。通过使用更多的“置换表” ,并 且按伪随机的方式使用每个表,这种改进的加密方法已经 变的很难破译。比如,我们可以对所有的偶数位置的数据 使用 a 表,对所有的奇数位置使用 b 表,即使黑客获得了 明文和密文,他想破译这个加密方案也是非常困难的,除 非黑客确切的知道用了两张表。 与使用“置换表”相类似, “变换数据位置”也在计算 机加密中使用。但是,这需要更多的执行时间。从输入中 读入明文放到一个 buffer 中,再在 buffer 中对他们重排 序,然后按这个顺序再输出。解密程序按相反的顺序还原 数据。这种方法总是和一些别的加密算法混合使用,这就 使得破译变的特别的困难,几乎有些不可能了。例如,有 这样一个词,变换起字母的顺序,slient 可以变为 listen,但所有的字母都没有变化,没有增加也没有减少, 但是字母之间的顺序已经变化了。 但是,还有一种更好的加密算法,只有计算机可以做, 就是字/字节循环移位和 xor 操作。如果我们把一个字或字 节在一个数据流内做循环移位,使用多个或变化的方向 (左移或右移) ,就可以迅速的产生一个加密的数据流。这 种方法是很好的,破译它就更加困难!而且,更进一步的 是,如果再使用 xor 操作,按位做异或操作,就就使破译 密码更加困难了。如果再使用伪随机的方法,这涉及到要 产生一系列的数字,我们可以使用 fibbonaci 数列。对数 列所产生的数做模运算(例如模 3) ,得到一个结果,然后 循环移位这个结果的次数,将使破译次密码变的几乎不可 能!但是,使用 fibbonaci 数列这种伪随机的方式所产生 的密码对我们的解密程序来讲是非常容易的。 在一些情况下,我们想能够知道数据是否已经被篡改 了或被破坏了,这时就需要产生一些校验码,并且把这些 校验码插入到数据流中。这样做对数据的防伪与程序本身 都是有好处的。但是感染计算机程序的病毒才不会在意这 些数据或程序是否加过密,是否有数字签名。所以,加密 程序在每次 load 到内存要开始执行时,都要检查一下本身 是否被病毒感染,对与需要加、解密的文件都要做这种检 查!很自然,这样一种方法体制应该保密的,因为病毒程 序的编写者将会利用这些来破坏别人的程序或数据。因此, 在一些反病毒或杀病毒软件中一定要使用加密技术。 循环冗余校验是一种典型的校验数据的方法。对于每 一个数据块,它使用位循环移位和 xor 操作来产生一个 16 位或 32 位的校验和,这使得丢失一位或两个位的错误一定 会导致校验和出错。这种方式很久以来就应用于文件的传 输,例如 xmodem-crc。这是方法已经成为标准,而且有详 细的文档。但是,基于标准 crc 算法的一种修改算法对于 发现加密数据块中的错误和文件是否被病毒感染是很有效 的。 二基于公钥的加密算法 一个好的加密算法的重要特点之一是具有这种能力: 可以指定一个密码或密钥,并用它来加密明文,不同的密 码或密钥产生不同的密文。这又分为两种方式:对称密钥 算法和非对称密钥算法。所谓对称密钥算法就是加密解密 都使用相同的密钥,非对称密钥算法就是加密解密使用不 同的密钥。非常著名的 pgp 公钥加密以及 rsa 加密方法都 是非对称加密算法。加密密钥,即公钥,与解密密钥,即 私钥,是非常的不同的。从数学理论上讲,几乎没有真正 不可逆的算法存在。例如,对于一个输入a执行一个操 作得到结果b,那么我们可以基于b ,做一个相对应 的操作,导出输入a 。在一些情况下,对于每一种操作, 我们可以得到一个确定的值,或者该操作没有定义(比如, 除数为 0) 。对于一个没有定义的操作来讲,基于加密算法, 可以成功地防止把一个公钥变换成为私钥。因此,要想破 译非对称加密算法,找到那个唯一的密钥,唯一的方法只 能是反复的试验,而这需要大量的处理时间。 rsa 加密算法使用了两个非常大的素数来产生公钥和私 钥。即使从一个公钥中通过因数分解可以得到私钥,但这 个运算所包含的计算量是非常巨大的,以至于在现实上是 不可行的。加密算法本身也是很慢的,这使得使用 rsa 算 法加密大量的数据变的有些不可行。这就使得一些现实中 加密算法都基于 rsa 加密算法。pgp 算法(以及大多数基于 rsa 算法的加密方法)使用公钥来加密一个对称加密算法的 密钥,然后再利用一个快速的对称加密算法来加密数据。 这个对称算法的密钥是随机产生的,是保密的,因此,得 到这个密钥的唯一方法就是使用私钥来解密。 我们举一个例子:假定现在要加密一些数据使用密钥 12345 。利用 rsa 公钥,使用 rsa 算法加密这个密钥 12345 ,并把它放在要加密的数据的前面(可能后面跟 着一个分割符或文件长度,以区分数据和密钥) ,然后,使 用对称加密算法加密正文,使用的密钥就是12345 。当 对方收到时,解密程序找到加密过的密钥,并利用 rsa 私 钥解密出来,然后再确定出数据的开始位置,利用密钥 12345来解密数据。这样就使得一个可靠的经过高效加 密的数据安全地传输和解密。 一些简单的基于 rsa 算法的加密算法可在下面的站点 找到: ftp:/pub/crypt/cryptography/asymmetric/rsa 三一个崭新的多步加密算法 现在又出现了一种新的加密算法,据说是几乎不可能 被破译的。这个算法在 1998 年 6 月 1 日才正式公布的。下 面详细的介绍这个算法: 使用一系列的数字(比如说 128 位密钥) ,来产生一个 可重复的但高度随机化的伪随机的数字的序列。一次使用 256 个表项,使用随机数序列来产生密码转表,如下所示: 把 256 个随机数放在一个距阵中,然后对他们进行排 序,使用这样一种方式(我们要记住最初的位置)使用最 初的位置来产生一个表,随意排序的表,表中的数字在 0 到 255 之间。如果不是很明白如何来做,就可以不管它。 但是,下面也提供了一些原码(在下面)是我们明白是如 何来做的。现在,产生了一个具体的 256 字节的表。让这 个随机数产生器接着来产生这个表中的其余的数,以至于 每个表是不同的。下一步,使用“shotguntechnique“技术 来产生解码表。基本上说,如果 a 映射到 b,那么 b 一定可 以映射到 a,所以 ban=n.(n 是一个在 0 到 255 之间的 数) 。在一个循环中赋值,使用一个 256 字节的解码表它对 应于我们刚才在上一步产生的 256 字节的加密表。 使用这个方法,已经可以产生这样的一个表,表的顺 序是随机,所以产生这 256 个字节的随机数使用的是二次 伪随机,使用了两个额外的 16 位的密码.现在,已经有了两 张转换表,基本的加密解密是如下这样工作的。前一个字 节密文是这个 256 字节的表的索引。或者,为了提高加密 效果,可以使用多余 8 位的值,甚至使用校验和或者 crc 算法来产生索引字节。假定 这个表是 256*256 的数组,将会是下面的样子: crypto1=acrypto0value 变量crypto1是加密后的数据,crypto0是前一个 加密数据(或着是前面几个加密数据的一个函数值) 。很自 然的,第一个数据需要一个“种子” ,这个“种子”是我们 必须记住的。如果使用 256*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 排球 模块化说课稿-2024-2025学年高一上学期体育与健康人教版必修第一册
- 2024年海南省海口地区医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 外来入侵生物普查培训
- 临床科研课题
- 2024版演出经纪合同范本
- 2024年骨伤科护理工作总结
- 2024版离婚协议书律师建议3篇
- 2024挂靠经营合作合同模板大全版
- 中国金属轧机用轧辊行业市场现状分析及前景战略研判报告
- 小学信息技术冀教版三年级下册《十八“龟兔赛跑”卡通画》说课稿
- 管理后台策划方案
- 现代物业服务体系实操系列物业服务沟通与投诉解决指南
- 人防、物防、技防工作措施
- 市场部培训课程课件
- 八年级历史上册论述题汇总
- 资产评估学教程(第八版)习题及答案 乔志敏
- 提高留置针规范使用率
- 垃圾清运服务投标方案(技术方案)
- 《民俗旅游学》教学大纲(含课程思政元素)
- 人教版小学三年级上学期期末数学试卷(及答案)
- 2021年学校意识形态工作总结
评论
0/150
提交评论