信息加密技术实用算法的研究与开发无密钥加密模式初探

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

信息加密技术实用算法的研究与开发——无密钥加密模式初探覃健诚广东电信肇庆分公司526000摘要本文介绍了信息加密技术之中,一种不常见但很有前途的模式——无密钥加密模式。通过与其他通用加密模式的比较,探讨了该模式的运作原理,及其在不安全信道中保护信息的技术可行性和实用性。同时,从比较中初步反映出该模式与其他加密模式之间的优缺点,进而论述不同的加密模式如何优势互补。本文内容的划分:1、信息加密技术的价值;2、加密模式的区分;3、几种加密模式的概念模型;4、加密算法的数学理论基础;5、无密钥模式的可行性研究;6、无密钥模式的增强;7、与其他加密模式的比较;8、不同加密模式的转化与结合。关键词现代密码学;无密钥加密模式;加密技术;信息安全信息加密技术的价值本文所讨论的信息加密技术,是指利用计算机、密码机等智能信息工具,通过一定的算法,对数字化的信息进行加密变换,从而保障信息安全的技术。信息加密技术,具有十分广泛的用途。典型的应用包括:互联网应用,如电子邮箱、即时通信、网页浏览等;电信业务,如IP电话、电视会议、短信等;商业用途,如公文传发、银行支付、网间结算等。这些应用涉及大量有价值的信息,需要得到真正强有力的加密技术的保护。反过来,加密技术也促进了信息应用的发展,能够使应用领域扩展到前所未有的范围。例如,IP电话本来存在易被窃听的弱点,应用范围有限。一旦采用了加密技术,窃听的难度等同于破解密码,而且可以加入数字身份认证等特性。如此一来,IP电话就可以应用到商业领域,大大提高了IP电话的价值。加密技术对于个人隐私、商业利益乃至国家安全,都有着相当重要的意义。只要看看国外对加密技术的重视程度,就会明白这一点。与直接进口国外现成加密产品相比,自主开发的核心技术有着特殊的价值。使用进口产品固然可以节省研发时间,但完全依赖进口也是不安全的。首先,自主核心技术可以打破进口技术垄断。美国长期对强加密技术实行出口管制,外商也会出于自身利益而保护核心技术,从而阻止我们在技术上的超越。只有自主开发核心加密技术,才能够缩短差距,打破垄断,防止受制于人,并以竞争拉低进口产品的价格。其次,自主核心技术在安全性上更可信。由于进口产品的核心技术掌握在外商手中,难保里面不留有后门,或者连他们自己都不发觉的缺陷。例如,至今仍不清楚DES算法中,美国政府修改过的S转换盒是否内含玄机。而自主开发的核心技术有没有后门,是否存在隐患,自己一清二楚。算法公开的加密技术,是现代密码学的主要研究对象。因为算法不公开的加密,依赖于算法的不透明来维持保密性,无法从理论上保障其安全。一旦算法暴露,安全性也就不复存在了。而算法公开的加密技术,则是在算法本身不是秘密的情况下,仍然能够保持加密的安全性。这是真正经得起考验的加密技术,因此也是商业领域加密应用的主流。本文所讨论的加密技术,以算法公开的技术为主。加密模式的区分现代密码学中,把算法公开的加密技术分为单密钥模式、双密钥模式和无密钥模式几种。其中前两者是最常见的模式,而无密钥模式由于设计难度大,虽然是一种理想的加密通信模式,却未能得到广泛的应用。单密钥模式,也称为私钥模式、对称密钥模式,是通信双方使用同一个密钥的加密模式。常见的3DES、AES标准,就属于单密钥模式。双密钥模式,也称为公钥模式、非对称密钥模式,是通信双方使用两个不同密钥的加密模式。其中一方使用的密钥是公钥,公钥可以对外公开,另一方使用的密钥是自己的私钥,私钥是保密的。常见的RSA算法、椭圆离散对数算法,就属于双密钥模式。无密钥模式,也称为随机密钥模式,通信双方并不使用固定的密钥,而是每次都各自随机生成一个密钥,用过一次就不再使用。无密钥模式并不是没有密钥,更不等于不保密,相反由于每次都采用随机密钥,而且只使用一次,这恰恰是最安全的。因为每次加密被破解,都不会影响到其他各次的加密,只因密码不同。目前比较常用的是公钥模式,其中的典型就是RSA算法,这是基于大质数分解数学难题的加密算法。许多流行的安全通信、数字签名、认证中心等应用,都采用了RSA加密。由于RSA算法的速度问题,通常都与速度较快的单密钥算法结合使用:用RSA算法进行数字签名和传送单密钥算法的密码,而实际的大量信息内容则用单密钥算法进行加密。事实上,加密模式不是孤立存在的,必然依赖于加密算法。一种加密模式可以有多种不同的加密算法。另一方面,加密算法并不局限于特定的加密模式。同一种加密算法,有可能既适用于某种模式,又适用于另一种模式。几种加密模式的概念模型为了说明这几种加密模式的区别,我们可以对这几种加密模式作个比喻。假设甲乙两人进行秘密通信,任务是甲要把某些机密信息传递给乙。但是双方之间的信息传输通道是不安全的,例如是通过互联网或电话线来通信,别人随时可以截取到通信的信息。为此,甲乙两人对信息进行了加密,使得别人即使截取到信息,也因为难以破解而无法得知里面的内容。我们分别描述甲乙两人用单密钥模式、双密钥模式、无密钥模式来进行秘密通信的情形。单密钥模式就好像是一个带锁的匣子,甲乙双方各有一把相同的钥匙,都可以打开这把锁。通信过程是:甲把信放进匣子,用钥匙锁上锁,然后把匣子邮寄给乙。运输途中匣子是锁着的,因此信是安全的。乙收到匣子后,用钥匙开锁,打开匣子,就取到了信。单密钥模式的概念模型如图一所示。双密钥模式就好像是一个信箱,上面有一条细缝,可以把信投进信箱里,但是无法从细缝里取出里面的信。信箱后面还有一个加锁的门,打开门就可以取到信。锁的钥匙只有乙才拥有。通信过程是:甲把信从细缝塞进信箱里,然后把信箱邮寄给乙。运输途中信箱是锁着的,从细缝里也取不出来,因此信是安全的。乙收到信箱后,用钥匙开锁,打开信箱门,就取到了信。双密钥模式的概念模型如图二所示。无密钥模式就好像是一个带两个锁眼的匣子,任何锁都可以扣在锁眼上。而只要任何一个锁眼扣上锁,匣子就打不开。通信过程会复杂一些:首先甲把信放进匣子,随意找一把锁和钥匙,用锁扣住锁眼A,把匣子邮寄给乙。运输途中因为锁眼A上了锁,匣子打不开,因此信是安全的。乙收到匣子,也随意找一把锁和钥匙,用锁扣住锁眼B,把匣子寄回给乙。运输途中因为锁眼A、B都上了锁,匣子打不开,因此信是安全的。甲收到匣子,用钥匙打开锁眼A上的锁,再把匣子寄回给乙。运输途中因为锁眼B仍然上了锁,匣子打不开,因此信是安全的。乙收到匣子,用钥匙打开锁眼B上的锁,打开匣子,就取到了信。无密钥模式的概念模型如图三所示。以上概念模型,描述信在运输途中是“安全”的,其实都忽略了这样一个事实:别人可以用暴力砸开信箱、匣子,取到里面的信。但是,我们仍然说信是“安全”的,这是一种相对的安全。因为信箱、匣子如果足够坚固,暴力砸开它需要付出极大的代价,即使取到信也是得不偿失。现代密码学认为:没有绝对的安全,安全只是相对而言。只要破解保护所付出的代价,超过或者相当于受保护信息的价值,我们就说受保护的信息是安全的。加密算法的数学理论基础信息加密作为实用的技术,可以采用的理论基础并不唯一。本文所涉及的加密算法与数学难题有关,而选用的理论基础也是数学上的函数理论。我们把加密、解密的运算看作是某种可逆的函数,其中解密是加密的逆函数。而且,这种函数有着如下特征:加密函数的运算很容易,并且密钥是函数中的一个参数。解密作为加密的逆函数,密钥同样是参数之一。而最为重要的一点,在知道密钥的情况下,解密函数的运算很容易,如果不知道密钥,解密运算将非常困难。加密容易、解密容易、破解困难,正是这样的特征,才使得加密信息得到保护,不会轻易被外人获取,从而使得加密算法具有了信息安全的价值。以上论述,若以整数域里的二元函数为例,可以用数学方式来描述如下:设x是未加密的明文,y是加密后的密文,a是加密密钥,b是解密密钥,x、y、a、b都是整数。设加密函数f(x,a)、解密函数g(y,b)都是整数域里的函数,g是f的逆函数。加密过程:y=f(x,a)。解密过程:x=g(y,b)=g(f(x,a),b)。破解过程:有多种途径,可以是求解下述方程之一。至于方程中哪个是未知数,哪个已知,则视情况而定。(1)求解方程y=f(x,a),(2)求解方程x=g(y,b),(3)求解方程x=g(f(x,a),b)。函数f、g的运算应该是容易的,而求解上面任何一个方程都应该是困难的。理想情况下,只能用穷举法求得方程的解,这样的加密算法最为成功。以RSA算法为例,f、g都是乘法和求模运算的函数,比较容易计算,而解方程则需要用到质数分解运算。在质数很大的情况下,这种运算是非常困难的,因此RSA算法是个好的加密算法。应当注意,加密和解密的密钥a、b可以相等,也可以不等。当a=b时,就是单密钥加密模式,否则就是双密钥或多密钥模式。以上就是加密算法的数学理论基础。理论上,任何具备上述特征的数学函数,都可以用来作为加密算法。而实际上,由于受到现实硬件性能、软件算法、经济成本等条件的限制,许多数学算法实现起来并不理想,所以不实用。无密钥模式的可行性研究从概念模型来看,无密钥模式其实是相当理想的,甚至比双密钥模式还要好。因为双密钥模式尚且需要管理公钥和私钥,而无密钥模式根本没这个必要,每次只要随机产生一个密钥即可。这种模式之所以没有广泛流行,很大程度上是因为难以设计出适用于该模式的加密算法。如前所述,这样的加密算法必须具备加密容易、解密容易、破解困难的基本特点,不能有缺陷。而无密钥模式下,至少需要进行4次加解密运算、3次信息交换,很容易存在破解的漏洞。某些算法能够满足无漏洞、难破解的要求,却又因运算复杂,导致现实情况下加密或解密的速度太慢,无法满足实用性要求。某些算法的加、解密速度足够快,但破解的速度又不够慢,导致加密强度不足,同样满足不了实用性要求。可见,研究出适当的加密算法,并且开发出现实可行的计算机程序,是实现无密钥模式的基本前提。该模式的可行性,取决于其加密算法的可行性。笔者经过长时间的思考,并参考了有关加密算法的资料,发现基于离散对数难题的加密算法,可以很好地满足无密钥模式的要求。随后,开发出关键算法程序,并进行了精心优化。经过测试和分析,加密效果令人满意。在测试环境下,采用AthlonXP1800+的普通32位PC机,3217位加密的时间不超过1.5秒,而1279位加密更达15倍的速度,低于100毫秒。解密速度与加密相同。如果采用64位算法,纯软件性能即可达到32位算法的2至4倍。考虑到当前已有更高性能的计算机硬件产品,甚至计算机集群、网格,还可以用DSP开发专用密码卡,这种加解密速度完全符合实用性要求。离散对数加密,是基于数学难题——求解以质数为模的自然数对数而设计的加密算法,其加密强度与RSA算法相当,没有明显的缺陷,能够满足信息保密的要求。至此,有了理论基础及具体算法,又有了实际程序及测试数据,无密钥加密模式的现实可行性已初步确定。无密钥模式的增强为进一步提高加解密速度,借鉴了RSA结合3DES的方式,把离散对数加密算法与单密钥算法相结合。前者负责传递后者的密钥,后者则负责加密明文信息。理论上,任何单密钥算法,包括标准的3DES在内,都可以与前者配合使用。实际中,选用了同样是自主开发的一种单密钥算法。该算法采用384位长分组的链式加密,明文经过充分糅合,达到位扩散的效果,能够较好地对抗线性分析、差分分析攻击。根据信息性质的不同,明文在加密之前,还可以选择性地进行有损或无损压缩,增加信息熵的无序性,可有效对抗概率统计分析攻击。经过以上处理,已经足以抵御攻击者窃取信息的努力,保障信息的保密性。但是,对于攻击者的身份冒充、信息破坏等手段,仍尚未能够有效防御。这就是说,加密信息通过不安全的途径进行传递,攻击者也已经无法在合理时间内破解。但是,如果攻击者冒充通信双方的身份,实施中间人攻击,真正的通信方会被欺骗。又或者,攻击者虽然破解不了,但可以篡改、删除、重发密文,而接收方不会发觉。这些攻击并不是无法抵御的,我们可以从流行的加密认证体系中得到借鉴,运用到自己的无密钥模式之中。给明文加上序列号、时间戳,则一旦信息被删除、重发,或者颠倒了发送顺序,就可以从序列号和时间戳上发觉。给

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功