浅析对计算机数据进行加密的方法

时间:2022-08-31 06:13:16

浅析对计算机数据进行加密的方法

摘要:随着当今计算机网络的飞速发展,计算机安全已经成为社会各界关注的焦点。该文浅谈了几种对数据进行加密方法

关键词:网络安全;数据;加密

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)26-1691-02

随着当今计算机网络的飞速发展,计算机安全已经成为社会各界关注的焦点。由于在现实生活中,我们要确保一些敏感的数据只能被有相应权限的人看到,要确保信息在传输的过程中不会被篡改,截取,这就需要很多的安全系统大量的应用于政府、大公司以及个人系统。本文介绍几种数据加密的方法。在传统上,我们有几种方法来加密数据流。所有这些方法都可以用软件很容易的实现,但是当我们只知道密文的时候,是不容易破译这些加密算法的(当同时有原文和密文时,破泽加密算法虽然也不是很容易,但已经是可能的了。最好的加密算法对系统性能几乎没有影响,并且还可以带来其他内在的优点。

1 “置换表”算法

幸运的是,在所有的加密算法中最简单的一种就是“置换表”算法,这种算法也能很好达到加密的需要。每一个数据段(总是一个字节)对应着“置换表”中的一个偏移量,偏移量所对应的值就输出成为加密后的文件。加密程序和解密程序都需要一个这样的“置换表”。但是一旦这个“置换表”被对方获得,那这个加密方案就完全被识破了。更进一步讲,这种加密算法对于黑客破译来讲是相当直接的,只要找到一个“置换表”就可以了。这种方法在计算机出现之前就已经被广泛的使用。

对这种“置换表”方式的一个改进就是使用2个或者更多的“置换表”,这些表都是基于数据流中字节的位置的,或者基于数据流本身。这时,破译变的更加困难,因为黑客必须正确的做几次变换。通过使用更多的“置换表”,并且按伪随机的方式使用每个表,这种改进的加密方法已经变的很难破译。比如,我们可以对所有的偶数位置的数据使用a表,对所有的奇数位置使用b表,即使黑客获得了明文和密文,他想破译这个加密方案也是非常困难的,除非黑客确切的知道用了两张表。

2 密码算法

设计一种密度强的密码算法有两种方法,一是研究用于密码分析的所有可能性解法,然后设计一套规则以挫败这些解法中的任何一种算法,于是便能构造一种能够抗拒这些解法的算法,二是构造这样的一些算法,使得要破解它就必须解决一些问题,而这些问题被认为是不可解的。下面将要介绍的DES算法属于第一种,而RSA则属于第二种。

加密技术按照密钥的公开与否可以分为两种体系,第一是对称密钥体系,这里加密密钥匙和解密密钥是相同的。为了安全性,密钥要定期的改变。对称算法速度快,所以在处理大量数据的时候被广泛使用,其关键是保证密钥的安全。典型的算法有DES及其各种变形(如Triple DES),IDEA,RC4、RC5以及古典密码(如代换密码和转轮密码)等。在众多的对称密码中影响最大的是DES密码。第二是公开密钥体系,分别存在一个公钥和私钥,公钥公开,私钥保密。公钥和私钥具有一一对应的关系,用公钥加密的数据只有用私钥才能解开,其效率低于对称密钥体系,典型的算法有RSA、背包密码,Elliptic Curve、E1Gamal算法等等。最有影响的公钥加密算法是RSA,足够位数的RSA能够抵抗到目前为止已知的所有密码攻击。下面选取两体系中各最具有代表性最有影响的算法DES和RSA进行讨论。

1.1 RSA算法

RSA算取自于它的创始人的名字:Rivest,Shamir,Adelman,该算法于1978年最早提出,至今仍没有发现严重的安全漏洞。RSA基于数学难题,即具有大素数因子的合数分解,以最新的计算方法也还是计算上不可行的。数论经验表明,这个问题是难解的。

RSA使用两个密钥,一个是公钥(publickey,以下用PK表示),一个是私钥(private key,以下用SK表示)加密时把明文分成块,块的大小可变,但不超过密钥的长度。RSA把明文块转化为与密钥长度相同的密文。其算法如下:

首先选择两个秘密的相异质数p,q,计算n=pq,取r是与(p-1)(q-1)互质的数,这里r便是SK。接着找一数m,使得rm= =1mod(p-1)(q-1),根据欧几里得算法(a=bn+c,则a与b的gcd就等于b与c的gcd),这样的m一定可以找到。这里m和n便是公钥PK。在编码时,假设资料为A,将其分成等长数据N块,每块为a

对于p,q的选择,一般来说是足够大的素数,对于大,并没有一个确定的界限,因为随着计算机技术的发展,破解能力正在逐步增强(根据摩尔定理计算能力18个月就翻一番)。一般来说,安全等级高的,则密钥选取大的,安全等级低些,则选取相对小些的数。RSA的安全性依赖于大数分解,然而值得注意的是,是否等同于大数分解一直未得到理论上的证明,并没有证明要破解RSA就一定得进行大数分解。

1.2 DES

DES采用传统的换位和置换的方法进行加密,在56比特密钥的控制下,将64比特明文块变换为64比特密文块,加密过程包括16轮的加密迭代,每轮都采用一种乘积密码方式(代替和移位)。首先是处理原密钥,产生16个48位子密钥K(i),i=1,2…16,接着处理64位数据块。其中置换和g函数的选择都按特定的规则进行,g函数操作是先将R(I)扩充成48位后与K(I+1)异或运算,接着将所得的48位数分成8个6位数,记为B[I],I=1,2…8,选取8个S密箱,将B[I]的第一位和第六位串联成一个数记位m,取出B[I]的第二至五位串联成一个四位数记位n,用S密箱中的第n行第m列的数替换B[I],替换完全部的B[I]后,将B[I]至B[8]串联成一个32位数,再经过换位,至此g函数操作全部结束。将所得结果与L[I]异或后,得到R[I+1]。进行下一轮的加密,直到用完K(16),再经过逆初始置换,全部加密过程结束。而脱密时只需要将密钥顺序倒过来,即第一轮用K(16),第二轮用K(15),以此类推。于是DES加密算法又可以简单地用下式表示:Ek(m)=N(IP)*T16*T15……T1*IP(m)其中IP为初始置换,N(X)是X的逆,Ti,i=1,2,…16是一系列的变换。Ek(m)表示明文m在密钥k的作用下产生的密文解密算法:N(Ek)=N(IP)*T1*T2……T16*IP[Ek(m)]在应用时一般是将DES和RSA综合起来使用。DES加密效率高,但是要解决密钥的存储问题,因为只要传输就难以保证密钥不被泄露。这时可以采用如下策略:假如A要向B发送密文(DES)和密钥SK,可以用B公布的公开密钥对Sk进行RSA加密,将其结果和密文一起发送给B,B接受数据首先用自己的私钥对SK进行解密,得到A的密钥SK。再用SK解密密文。这样就解决了密钥的传输问题。因为没有人知道B的私钥,也就没有办法获得SK。以上讨论了数据加密技术,介绍了当今使用最为广泛的DES和RSA算法。 DES效率高,但是密钥保存难,RSA安全性高,但是效率低,在实际应用中经常把两者结合起来使用。

在现实生活中,我们要确保一些敏感的数据只能被有相应权限的人看到,要确保信息在传输的过程中不会被篡改,截取,这就需要很多的政府、大公司以及个人的计算机系统作好加密工作。数据加密是肯定可以被破解的,但我们所想要的是一个特定时期的安全,也就是说,密文的破解应该是足够的困难,在现实上是不可能的,尤其是短时间内。

参考文献:

[1] 朱卫华.数据加密技术与安全电子交易浅析[M].北京:清华大学出版社,2002.

[2] 计算机网络保密系统设计与实现指南[M].卢起骏,译.重庆:科学技术文献出版社重庆分社,2001.

上一篇:高速网络传输控制协议研究综述 下一篇:基于增量型PID控制的烘箱自动控温系统