翻新时间:2013-12-18
一种新的数据加密技术
一种新的数据加密技术 一种新的数据加密技术 信息技术论文 更新:2006-4-8 阅读: 一种新的数据加密技术
潘晓中 孙 军 杨晓元 王法能
(武警工程学院电子技术系 西安 710086)
【摘要】该文简要介绍了数据加密的一般方法及基于公钥加密算法的方法与步骤,较为详细介绍了多步加密算法的原理与算法。
【关键词】加密算法 密钥 多步加密
A New Data Encryption Techniques
Pan xiaozhong Yang xiaoyuan Wang faneng Sun jun
(Electronic Technology Department,
Armed Police Force
8
6)
【abstract】The general method about date encryption is introduced in this paper as well as method and steps based on public key encrypted algorithm. The principle and algorithm of multi-step encrypted algorithm is detailedly introduced too. And an applied program about the multi-step encrypted algorithm is given out in this paper.
【key word】encrypted algorithm secret key multi-step encryption
我们处在一个信息时代,人们需要一种强有力的安全措施来保护机密数据不被他人窃取或篡改。数据加密与解密从宏观上讲是非常简单的。加密与解密的一些方法是非常直接的,很容易掌握。因此,可以很方便地对机密数据进行加密和解密。
1、数据加密方法
在传统上,我们有几种方法来加密数据流。所有这些方法都可以用软件很容易的实现,但是当我们只知道密文的时候,是不容易破译这些加密算法的(当同时有原文和密文时,破译加密算法虽然也不是很容易,但已经是可能的了)。最好的加密算法对系统性能几乎没有影响,并且还可以带来其他内在的优点。例如,大家都知道的pkzip,它既压缩数据又加密数据。又如,dbms的一些软件包总是包含一些加密方法以使复制文件这一功能对一些敏感数据是无效的,或者需要用户的密码。所有这些加密算法都要有高效的加密和解密能力。
在所有的加密算法中最简单的一种就是“置换表”算法,这种算法也能很好达到加密的需要。每一个数据段(总是一个字节)对应着“置换表”中的一个偏移量,偏移量所对应的值就输出成为加密后的文件。加密程序和解密程序都需要一个这样的“置换表”。事实上,80x86 cpu系列就有一个指令‘xlat’在硬件级来完成这样的工作。这种加密算法比较简单,加密解密速度都很快,但是一旦这个“置换表”被对方获得,那这个加密方案就完全被识破了。更进一步讲,这种加密算法对于黑客破译来讲是相当直接的,只要找到一个“置换表”就可以了。这种方法在计算机出现之前就已经被广泛地使用。
对这种“置换表”方式的一个改进就是使用2个或者更多的“置换表”,这些表都是基于数据流中字节的位置的,或者基于数据流本身。这时,破译变得更加困难,因为黑客必须正确地做几次变换。通过使用更多的“置换表”,并且按伪随机的方式使用每个表,这种改进的加密方法已经变的很难破译。比如,我们可以对所有的偶数位置的数据使用a表,对所有的奇数位置使用b表,即使黑客获得了明文和密文,他想破译这个加密方案也是非常困难的,除非黑客确切的知道用了两张表。
与使用“置换表”相类似,“变换数据位置”也在计算机加密中使用。但是,这需要更多的执行时间。从输入中读入明文放到一个buffer中,再在buffer中对他们重排序,然后按这个顺序再输出。解密程序按相反的顺序还原数据。这种方法总是和一些别的加密算法混合使用,这就使得破译变得特别的困难,几乎有些不可能了。例如,有这样一个词,变换其字母的顺序,slient 可以变为listen,但所有的字母都没有变化,没有增加也没有减少,但是字母之间的顺序已经变化了。
但是,还有一种更好的加密算法,只有计算机可以做,就是字/字节循环移位和xor操作。如果我们把一个字或字节在一个数据流内做循环移位,使用多个或变化的方向(左移或右移),就可以迅速的产生一个加密的数据流。这种方法是很好的,破译它就更加困难。而且,更进一步的是,如果再使用xor操作,按位做异或操作,就使破译密码更加困难了。如果再使用伪随机的方法,这涉及到要产生一系列的数字,我们可以使用fibbonaci数列。对数列所产生的数做模运算(例如模3),得到一个结果,然后循环移位这个结果的次数,将使破译次密码变得几乎不可能!但是,使用fibbonaci数列这种伪随机的方式所产生的密码对我们的解密程序来讲是非常容易的。
在一些情况下,我们想能够知道数据是否已经被篡改了或被破坏了,这时就需要产生一些校验码,并且把这些校验码插入到数据流中。这样做对数据的防伪与程序本身都是有好处的。但是感染计算机程序的病毒才不会在意这些数据或程序是否加过密,是否有数字签名。所以,加密程序在每次load到内存要开始执行时,都要检查一下本身是否被病毒感染,对与需要加、解密的文件都要做这种检查!很自然,这样一种方法体制应该保密的,因为病毒程序的编写者将会利用这些来破坏别人的程序或数据。因此,在一些反病毒或杀病毒软件中一定要使用加密技术。
2.基于公钥的加密算法
一个好的加密算法的重要特点之一是具有这种能力:可以指定一个密码或密钥,并用它来加密明文,不同的密码或密钥产生不同的密文。这又分为两种方式:对称密钥算法和非对称密钥算法。所谓对称密钥算法就是加密解密都使用相同的密钥,非对称密钥算法就是加密解密使用不同的密钥。非常著名的pgp公钥加密以及rsa加密方法都是非对称加密算法。加密密钥,即公钥,与解密密钥,即私钥,是非常的不同的。从数学理论上讲,几乎没有真正不可逆的算法存在。例如,对于一个输入‘a’执行一个操作得到结果‘b’,那么我们可以基于‘b’,做一个相对应的操作,导出输入‘a’。在一些情况下,对于每一种操作,我们可以得到一个确定的值,或者该操作没有定义(比如,除数为0)。对于一个没有定义的操作来讲,基于加密算法,可以成功地防止把一个公钥变换成为私钥。因此,要想破译非对称加密算法,找到那个唯一的密钥,唯一的方法只能是反复的试验,而这需要大量的处理时间。
rsa加密算法使用了两个非常大的素数来产生公钥和私钥。即使从一个公钥中通过因数分解可以得到私钥,但这个运算所包含的计算量是非常巨大的,以至于在现实上是不可行的。加密算法本身也是很慢的,这使得使用rsa算法加密大量的数据变的有些不可行。这就使得一些现实中加密算法都基于rsa加密算法。pgp算法(以及大多数基于rsa算法的加密方法)使用公钥来加密一个对称加密算法的密钥,然后再利用一个快速的对称加密算法来加密数据。这个对称算法的密钥是随机产生的,是保密的,因此,得到这个密钥的唯一方法就是使用私钥来解密。
下载文档
网友最新关注
- 美好的时光
- 家乡的果林
- 美丽的冰雕
- 菊景
- 享受佳肴
- 游中国地质大学逸夫博物馆
- 游烂柯山
- 人间仙境----九寨沟
- 秋天的图画
- 观世界航天科普展
- 仙都之旅
- 游欢乐谷
- 游玩散记
- 游海洋公园
- 难忘的一次--海南三亚游
- 在新职工上岗前培训班上的总结讲话(医院)
- 会议主持词(创建全国文明城市动员大会)
- 创建学习型企业动员大会上的讲话提纲
- 在全县城区环境综合整治工作会议上的主持词
- 军训总结会上的讲话 2
- 在高峰会开幕式上的讲话
- 注册会计师工作会议总结讲话
- 纪念少年先锋队建队55周年讲话
- 在新闻发布会上的讲话
- 军训总结会上的讲话
- 厂长在庆祝中国共产党成立83周年大会上的讲话
- 全县贯彻实施行政许可法工作会议上的主持词
- 在收购仪式上的讲话
- 在全区工作目标完成情况督查会上的讲话
- 在全区党委系统办公室工作会议上的讲话
- 地方文献与西部开发
- 浅析化学史教育融入化学教学中的实践与思考
- 数字图书馆与地方文献数字化
- 浅析“配电网综合自动化技术”课程网络学堂建设的分析
- 论文献收藏的地方特色
- 试论《高级英语》教学中的难点及对策
- 浅论高校师资培训模式的创新发展
- 关于建立三峡库区特色文献资源馆藏的思考
- 地方文献的征管用
- 地方石刻资料的收集与利用
- 我国图书馆地方文献研究综述
- 试论如何培养学生的语言形式能力
- 探讨网络游戏与现代教育的结合
- 浅谈工科院校非物理专业大学物理教学改革初探
- 浅谈现代教育观指导下的发展性评价机制的建立
- 《荷花》教学设计之二
- 《火烧云》第二课时教学设计之五
- 《翠鸟》
- 《火烧云》第一课时
- 《翠鸟》教学设计之一
- 《找骆驼》教学设计之四
- 《荷花》第二课时
- 《找骆驼》教学设计之一
- 《找骆驼》教学设计之五
- 《火烧云》教学设计之三
- 《翠鸟》教学赏析
- 《火烧云》教学设计之一
- 《找骆驼》教学设计之三
- 《翠鸟》教学设计之二
- 《荷花》教学设计