搜索
您的当前位置:首页详解加密技术、加密算法

详解加密技术、加密算法

来源:飒榕旅游知识分享网
维普资讯 http://www.cqvip.com 垫 Q: Science and Technology fnnovation Herald 科教平台 详解加密技术 加密算法 2 吕艳娟’ (1、营口中等专业学校 2、沈阳理工大学) 摘 要;如今时代是信息时代,信息的安全性对我们非常重要,所以,我们要采取一种安全措施来保护机密数据,这种技术就是加 密,本文介绍几种加密方法。 关键词:置换表法循环移位xor密钥 中图分类号:G4 0 文献标识码:A 文章编号:l 674-098x(2008)03(b)一0246--0l 在信息时代,信息可以帮助我仃】,使我 们受益,同时,信息也可以对我们构成威胁, 造成破坏。因此,在客观上就需要一种强有 力的安全措施来保护机密数据不被窃取或篡 不可能!但是,使用非波那列数列这种伪 随机的方式所产生的密码对我们的解密程 序来讲是非常容易的。 循环冗余校验是一种典型的校验数据 对他们进行排序,使用这样一种方式(我们 要记住最初的位置)使用最初的位置来产生 个表,随意排序的表,表中的数字在0到 2 5 5之间。如果不是很明白如何来做,就可 一改。加密与解密的一些方法是非常直接的, 的方法。对于每一个数据块,它使用位循环 很容易掌握,可以很方便的对机密数据进行 移位和XOr操作来产生一个l 6位或32位的 加密和解密。 校验和,这使得丢失一位或两个位的错误 一定会导致校验和出错。这种方式很久以 1数据加密方法 来就应用于文件的传输,例如xmodem crc。 在所有的加密算法中最简单的一种就是 这是方法已经成为标准,而且有详细的文 “置换表”算法,这种算法也能很好达到加密 档。但是,基于标准c rc算法的一种修改算 的需要。每一个数据段(总是一个字节)对 法对于发现加密数据块中的错误和文件是 应着“置换表”中的一个偏移量,偏移量所 否被病毒感染是很有效的。 对应的值就输出成为加密后的文件。加密程 2基于公钥的加密算法 序和解密程序都需要一个这样的“置换表”。 一个好的加密算法的重要特点之一是 事实上,80x86 cpu系列就有一个指令‘xlat’ 具有这种能力:可以指定一个密码或密钥, 在硬件级来完成这样的工作。这种加密算法 并用它来加密明文,不同的密码或密钥产 比较简单,加密解密速度都很快,但是一旦 生不同的桁文。这又分为两种方式:对称密 这个“置换表”被对方获得,那这个加密方 钥算法和非对称密钥算法。所谓对称密钥 案就完全被识破了。更进一步讲,这种加密 算法就是加密解密都使用相同的密钥,非 算法对于黑客破译来讲是相当直接的,只要 对称密钥算法就是加密解密使用不同的密 找到一个“置换表”就可以了。这种方法在 钥。非常著名的PgP公钥加密以及rsa加密 计算机出现之前就已经被广泛的使用。 方法都是非对称加密算法。加密密钥,即公 对这种“置换表”方式的一个改进就是 钥,与解密密钥,即私钥,是非常的不同的。 使用2个或者更多的“置换表”,这些表都是 从数学理论』 讲,几乎没有真正不可逆的 基于数据流中字节的位置的,或者基于数据 算法存存。对于一个没有定义的操作来讲, 流本身。这时,破译变的更加困难,因为黑 基于加密算法,可以成功地防止把一个公 客必须正确的做几次变换。通过使用更多的 钥变换成为私钥。 此,要想破译非对称加 “置换表”,并且按伪随机的方式使用每个 密算法,找到那个唯一的密钥,唯一的方法 表,这种改进的加密方法已经变的很难破 只能是反复的试验,而这需要大量的处理 译。比如,我们可以对所有的偶数位置的数 时 。 据使用a表,对所有的奇数位置使用b表,即 r s a加密算法使用r两个非常大的素数 使黑客获得了明文和密文,他想破译这个加 来产生公钥相私钥。即使从一个公钏中通 密方案也是非常困难的,除非黑客确切的知 过因数分解可以得到私钥,但这个运算所 道用了两张表。 包含的计算量是非常巨大的,以至于在现 与使用“置换表”相类似,“变换数据位 实上是不可行的。加密算法本身也是很慢 置”也在计算机加密中使用。但是,这需要 的,这使得使用r sa算法加密大量的数据变 更多的执行时间。从输入中读入明文放到一 的有些不可行。这就使得一些现实中加密 个buffer中,再在buffer中对他们重排序,然 算法都基于rsa加密算法。PgP算法(以及大 后按这个顺序再输出。解密程序按相反的顺 多数基于rsa算法的加密方法)使用公钥来加 序还原数据。这种方法总是和一些别的加密 密一个对称加密算法的密钥,然后再利用 算法混合使用,这就使得破译变的特别的困 一个快速的对称加密算法来加密数据。这 难,几乎有些不可能了。 个对称算法的密钥是随机产生的,是保密 还有一种更好的加密算法,只有计算机 的,因此,得到这个密钥的唯一方法就是使 可以做,就是字/字节循环移位和xor操作。 用私钥来解密。 如果我们把一个字或字节在一个数据流内做 循环移位,使用多个或变化的方向(左移或 3—个崭新的多步加密算法 右移),就可以迅速的产生一个加密的数据 现在又出现了…种新的加密算法,据 流。这种方法是很好的,破译它就更加困 说是几乎不可能被破译的。下面详细的介 难!而且,更进一步的是,如果再使用x o r 绍这个算法: 操作,按位做异或操作,就就使破译密码更 使用一系列的数字(比如说l 2 8位密 加困难了。如果再使用伪随机的方法,这涉 钥),来产生一个可重复的但高度随机化的 及到要产生一系列的数字,我们可以使用菲 伪随机的数字的序列。一次使用2 5 6个表 波那列数列。对数列所产生的数做模运算 项,使用随机数序列来产生密码转表,如下 (例如模3),得列一个结果,然后循环移位 所示: 这个结果的次数,将使破译次密码变的几乎 把2 56个随机数放在一个距阵中,然后 246 科技创新导报Science and Technology Innovation Herald 以不管它。但是,下面也提供了一些原码(在 下面)是我们明白是如何来做的。现在,产 生了.一个具体的2 5 6字节的表。让这个随机 数产生器接着来产生这个表中的其余的数, 以至于每个表是不同的。下一步,使用 “shotgun technique”技术来产生解码表。基 本上说,如果a映射到b,那么b一定可以 映射到a,所以b【a【n】】==n.(n是一个在0到 2 5 5之间的数)。在一个循环中赋值,使用一 个2 5 6字节的解码表它对应于我们刚才在上 一步产生的2 5 6字节的加密表。 使用这个方法,已经可以产生这样的一 个表,表的顺序是随机,所以产生这2 56个 字节的随机数使用的是二次伪随机,使用了 两个额外的l 6位的密码.现在,已经有了两 张转换表,基本的加密解密是如下这样工作 的。前一个字节密文是这个2 5 6字节的表的 索引。 加密时所产生的伪随机序列是很随意 的,可以设计成想要的任何序列。没有关于 达个随机序列的详细的信息,解密密文是不 现实的。例如;一些a s cii码的序列,如 “eeeeeeee”可能被转化成一些随机的没有任何 意义的乱码,每一个字节都依赖于其前一个 字节的密文,而不是实际的值。对于任一个 单个的字符的这如果想产生一系列的随机数 字,比如说,在0和列表中所有的随机数之 间的一些数,就可以使用下面的方法: 作为一个测试,开发了一个应用程序来 测试上面所描述的加密算法。程序本身都经 过了几次的优化和修改,来提高随机数的真 正的随机性和防止会产生一些短的可重复的 用于加密的随机数。用这个程序来加密一个 文件,破解这个文件可能会需要非常巨大的 时间以至于在现实上是不可能的。 4结论 由于在现实生活中,我们要确保一些敏 感的数据只能被有相应权限的人看到,要确 保信息在传输的过程中不会被篡改,截取, 这就需要很多的安全系统大量的应用于政 府、大公司以及个人系统。数据加密是肯定 可以被破解的,但我们所想要的是一个特定 时期的安全,也就是说,密文的破解应该是 足够的困难,在现实上是不可能的,尤其是 短时间内。 参考文献 [1】加密与解密.清华大学出版社 [2】加密技术.东北大学出版社. 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top