一键拔号 咨询客服

当前位置:首页 > 技术资讯

数据加密技术及其发展趋势(一)

来源:超时代软件     更新时间:2012年06月18日 11:31:06

作者:严洪 整理:超时代软件

随着计算机联网的逐步实现,计算机信息的保密问题显得越来越重要。数据保密变换,或密码技术,是对计算机信息进行保护的*实用和*可靠的方法。密码术以非常简单却具有革命性的数学思想为基础:诸如字母表中的字母这样的数据能够作为数字进行处理(例如,根据在字母表中的顺序,使用从1到26的数字来替换每个字母),并且这些数字能够进行数学计算。数学计算的目的是把信息弄乱,变成毫无意义,使截获该信息的对手无法弄清楚。然而,信息的合法接受方知道如何撤销这些数学计算,从而恢复原始信息。

 

1、加密的概念

一个典型的数据加密模型如图1所示,由四个部分组成:

(1)未加密的报文,也称明文,用P表示。

(2)加密后的报文,也称密文,用Y表示。

(3)加密解密算法E、D。

(4)加密解密的密钥Ke、Kd。

 

发送方用加密密钥,通过加密设备或算法,将信息加密后发送出去。接收方在收到密文后,用解密密钥将密文解密,恢复为明文。其数学表达式可以写成:P=Dkd(Kd,Eke(Ke,P))。如果传输中有人窃取,他只能得到无法理解的密文,从而对信息起到保密作用。

 

2、对称密码术和非对称密码术

根据所使用的密钥的不同,密码可分为两种:对称密码和非对称密码。

 

(1)对称密码技术。

在这种密码里,加密和解密使用同一个密钥。其代表是美国的数据加密标准DES。DES主要采用替换和移位的方法加密。它用56位密钥对64位二进制数据块进行加密,每次加密可对64位的输入数据进行16轮编码,经一系列替换和移位后,输入的64位原始数据转换成完全不同的64位输出数据。

 

DES曾是一种世界公认的较好的加密算法。但是它的密钥长度太短,只有56位。随着计算机技术的飞速发展,这么短的密钥已经不再安全。科学家又研制了80位的密钥,以及在DES的基础上采用三重DES和双密钥加密的方法。即用两个56位的密钥K1、K2,发送方用K1加密,K2解密,再使用K1加密。接收方则使用K1解密,K2加密,再使用K1解密,其效果相当于将密钥长度加倍。另外IDEA算法也是一种非常安全的加密算法。超时代手机视频加密软件采用高强度加密算法,安全可靠性非常高。

 

对称加密方法的主要问题是密钥的生成、注入、存储、管理、分发等很复杂,特别是随着用户的增加,密钥的需求量成倍增加。在网络通信中,大量密钥的分配是一个难以解决的问题。

 

例如,若系统中有n个用户,其中每两个用户之间需要建立密码通信,则系统中每个用户须掌握(n-1)个密钥,而系统中所需的密钥总数为n*(n-1)/2个。对10个用户的情况,每个用户必须有9个密钥,系统中密钥的总数为45个。对100个用户来说,每个用户必须有99个密钥,系统中密钥的总数为4950个。这还仅考虑用户之间的通信只使用一种会话密钥的情况。如此庞大数量的密钥生成、管理、分发确实是一个难处理的问题。

 

(2)非对称密码技术。

为了解决对称密码系统所面临的一系列问题,本世纪70年代,美国斯坦福大学的两名学者迪菲和赫尔曼提出了一种新的加密方法)公开密钥加密对PKE方法。在公钥密码系统中,加密和解密使用的是不同的密钥(相对于对称密钥,人们把它叫做非对称密钥),这两个密钥之间存在着相互依存关系:即用其中任一个密钥加密的信息只能用另一个密钥进行解密。这使得通信双方无需事先交换密钥就可进行保密通信。其中加密密钥和算法是对外公开的,人人都可以通过这个密钥加密文件然后发给收信者,这个加密密钥又称为公钥;而收信者收到加密文件后,它可以使用他的解密密钥解密,这个密钥是由他自己私人掌管的,并不需要分发,因此又称为私钥,这就解决了密钥分发的问题。

 

实现非对称密码技术的关键问题是如何确定公钥和私钥及加/解密的算法,也就是说如何找到“Alice的锁和钥匙”的问题。我们假设在这种体制中,PK是公开信息,用作加密密钥,而SK需要由用户自己保密,用作解密密钥。加密算法E和解密算法D也都是公开的。虽然SK与PK是成对出现,但却不能根据PK计算出SK。它们须满足条件:

 

1)加密密钥PK对明文X加密后,再用解密密钥SK解密,即可恢复出明文,或写为:DSK(EPK(X))=X。

2)加密密钥不能用来解密,即DPK(EPK(X))不等于X。

3)在计算机上可以容易地产生成对的PK和SK。

4)从已知的PK实际上不可能推导出SK。

5)加密和解密的运算可以对调,即:EPK(DSK(X))=X。

 

要找到满足上述条件的算法,关键是要寻求合适的单向陷门函数。单向陷门函数的特点是一个方向求值很容易,但其逆向计算却很困难。许多形式为Y=f(x)的函数,对于给定的自变量x值,很容易计算出函数Y的值;而由给定的Y值,在很多情况下依照函数关系f(x)计算x值十分困难。例如,两个大素数p和q相乘得到乘积n比较容易计算,但从它们的乘积n分解为两个大素数p和q则十分困难。如果n为足够大,当前的算法不可能在有效的时间内实现。

 

非对称密码术比较常用的有RSA和椭圆曲线密码,RSA的原理在多种文献刊物上都有所阐述,本文只介绍椭圆曲线密码。

 

椭圆曲线密码是一种非常有效的非对称密码,其基本思想就是使用椭圆曲线上的点(由横坐标和纵坐标组成的一对值来表示)来定义公钥和私钥对。由于有限域上椭圆曲线的离散对数实际上是一般有限域上的离散对数在椭圆曲线上的一种类比物,因此它至少在实用上比一般有限域上的离散对数的计算要困难些,因此其安全性也要强一些,当然目前人们还不能证明这一点。

 

下面介绍基于椭圆曲线的El-Gamal公钥密码体制(其他的很多公钥密码体制都可以很容易地推广到椭圆曲线上去)。

 

A和两人要事先在公开的通道上选定有限域Fq(其中q=p,p为素数)上的一条椭圆曲线E,以及随机点P包含于E(该点要能生成一个很大的子群,这个子群*好和椭圆曲线E本身所构成的群一样大或比较接近)。

 

A选定一个随机数a包含于{1,2,,,q-1}(a可以认为是A之私钥),并计算出aP(aP可以认为是A之公钥),且将其传输给B;B选定一个随机数b包含于{1,2,,,q-1}(b可以认为是之私钥),并计算出bP(bP可以认为是之公钥),且将其传输给A;

现假定A要给传输信息M(明码)。首先A要选定一个随机数k,并利用的公钥bP计算出密码C=(kP,M+(bP)),且将其传输给B。

为了能够将C变换回M,需要对C进行解密计算,但由于B有b,所以他可以很容易地计算出M=M+k(bP)-b(kP)。

显然,敌方如能计算椭圆曲线上的离散对数,他就能从公开的信息P和bP中确定出b,从而破译C。庆幸的是,求解椭圆曲线上的离散对数比求解一般有限域上的离散对数更困难,当所选的有限域R很大、所选的椭圆曲线以及这条曲线上的点P又很合适时,a或b是很难算出的,因此基于椭圆曲线离散对数的密码体制也就要更安全些(至少比基于整数分解或一般有限域上的离散对数的密码体制要更安全些)。另外,椭圆曲线密码体制与其他公钥密码体制相比,在密钥的长度相同的情况下,它的安全性要更高些。正是基于上述这些原因,目前人们才会对椭圆曲线密码体制更感兴趣。