夏淑华
XIA Shu-hua
(湖南司法警官职业学院,长沙 410131)
1.1 DES计算方法
这个DES即也就是一种标准的加密方式,计算的方式可以看做是分组加密,其核心的方法是按64bit分组,将数据分成若干组进行加密,使用的是8bit的奇数偶数检验,按照长度为56bit字节为密钥的有效长度。计算过程为64bit的明文从输入端进入,从另一端输出的即为64位的密文。DES加密的算法在对数据加密和解密是使用一种计算方法,安全的保证完全依靠密钥。执行过程中,DES对64bit的明文进行分组,实现加密,通过转换器实现这个过程,即明文进行左右两组,其长度相等为32bit。在相同的16轮次计算过程中,完成加密的实现,预算的整个过程被命名为f,运算的目的就是让数据和密钥进行结合。经过16轮次的计算,轮次计算,左右两边的两组数据就会在此组合,在完成后输出经由另一个转换器,在这里的计算和前面的过程正好是相反的,也就完成了算法的进行。在每个轮次的处理中,密钥就会产生固定的位移,过程为在56位中选取48位,并通过扩展器的作用让右边的数据形成一个48位的信息,并在这里完成与48位的密钥相结合的目的,通过装置内的8个s盒的转化,这样就得到了32位新的数据,这样就完成了加密的运算过程。同样的操作在数的左半边同时进行,利用异或运算,函数f和左半边数据结合,形成了新的右半边部分,原来的右半边数据形成了新的左边数据。这个操作在重复了16次后,就实现了DES的16论计算。
1.2 RSA计算方法
这个计算方法与DES不同的是,RSA在加密的过程中有两个密钥,其中一个为公共密钥,相对的就是私有的密钥。在加密的过程中,使用其中的一个加密,则另一个为解密。在RSA的算法中密钥为40-2048字节,加密的时候将明文分解成“小块”,其大小是可以变化的,但是,无论这样的设置都不能超过密钥,RSA算法核心的思路就是将明文分解成小块,其长度和密钥相一致。显而易见的是密钥长则加密效果好。但是,随之产生的加密和解密的消耗也就越大,因此要在安全性和应用性之间进行权衡,一般采用的都是64位。RSA算法的实现,首先是对安全大素数的选取,其分别为P和Q。为了达到最佳的安全效果,这两个素数的长度是相等的。计算n=p×q,而n>512bit,这时为了保证安全性,因为这个算法的安全性是建立在因子分解大数上的;其次,计算出n的欧拉函数Ø(n)=(p-1)(q-1),其中Ø(n)的是不应超过n,而且和n的互素数;第三,[0,Ø(n)-1]的数列当中随机选取出加密的密钥e,同时让e和Ø(n);第四,计算利用Euclid方法,得出密钥解密的d,并且且de=1(mod Ø(n))。其中的n与d为互质。数e和n即公共密钥,d为私有密钥。算法加密和解除:如加密的信息为m,则将m视为一长度整数:若m大于n则将m分成等长度的数据块,即m1……mi,其长度为s位,满足2^s<=n的条件,且s尽量大。
结束前面的过程后,将对数据块进行加密。分组加密的过程中,mi所产生的密文是ci=mi^e(mod n);分块进行解密为,ci与之配合的是明文为:mi=ci^d(mod n)。
RSA的计算主要的计算方式遵循以下原则,即在对N位密钥、N位资料处理时,加减法所消耗的时间为O(N),而乘除法所消耗的时间为O(n^2),在计算a^b mod c需要消耗的时间就为O(N^3)。由此可以推算出,对N位数据信息进行计算所消耗的时间为O(N^3)。一般采用的加密,资料N的长度为512-1024之间,主要是考虑到安全长度保证,因此计算N^3的计算量将相当的巨大。这样利用RSA来进行数据的加密和解密降消耗大量的时间,如果需要加密的数据过大,就将消耗更长的时间,这个时间将是DES的N多倍。
另外,所产生RSA密钥所耗费的时间也相当巨大,以N列为密钥的话,两个相邻质数平均间隔为O(N)。2、RSA与DES的结合方式假设发送的信息为A,加密密钥为kea,解密密钥为kda,接收方为B,加密密钥为keb,解密密钥为kdb,其结合方式为:1)在数据的传输中,发送者先生成DES的密钥K;2)发送者对数据的加密采用的是接收者上传至服务器上的RSA计算的公共密钥keb,并利用这个密钥将DES的密钥K进行加密处理,3)发送者将编制好的信息利用kda和keb进行签名,以方便在解密的时候进行识别;4)发送者将加密数据利用K进行加密,并形成签名文件,再将其和CK结合形成完整的加密数据发送给接收方。5)接收的一端受到C后,首先利用自己的解密密钥kdb解密出C中的DES密钥,即K,在利用K解密出明文以及签名信息;6)接收端用发送方的公开密钥kea和自己的解密密钥kdb对签名的信息进行认证,然后再进行适当的处理,在形成自己的数字签名信息发往对方;7)发送和接收双方在接收和处理完成后删除DES密钥K。
3.1 DES和RSA实现过程
1)对称加密的算法
在对称的数据加密过程中,利用DES算法来实现,从根本上看是一种传统的分组加密模式。在其进行加密的实现过程中,采用的是DES的64位加密分组的方式,密钥的长度和前面说阐述的一样,为56位,而且在加密数据的时候进行16轮次的计算和编制。可以看到每个计算轮次都会产生48位的子密钥,其产生的来源是在56位的基础上进行移位计算而得来的。为了在数据传输中提高安全性,在数据处理时,增加了DES的算法改进技术,也就是利用三个密钥来实现逐层加密,在这里假定密钥为K1、K2、K3,而P为明文,C为密文,则C=EK3[DK2[EK1[P]]]可见需要三倍的时间来处理,但是三重加密编制的168位密钥无疑可以增强加密的安全度。按照三个步骤就产生了密钥生成、计算加密、解读解密为基础的DES算法。在使用的过程中还考虑到了平台多元适应性,因此多采用C语言的作为算法设计的基本语言,把加密的三个关键分组打包成三个函数,并可以在主流的操作系统上进行验证。这种软件加密的形式,速度虽然比电子硬件形式要慢,但是成本、操作、应用范围都具备了优势。
2)非对称数据加密
对非对称数据进行处理的时候,采用RSA方法实现有其明显的实用性。即可以是相对数据本身的加密也可以对数字签名进行安全维护,如利用RSA的特殊功能,来实现对DES密钥的加密就是一个明显的优势,并通过网络将这些二次加密的文件进行传输,就大大提高了数据的安全性传输。这就是两种算法提高数据传输的安全性的根本原因。和前面的对称加密相似,在设计中也应当考虑到广泛应用的问题。
3.2 数据安全传输的实现
1)数据传输的主要模块
在系统中,数据传输模块是所有加密过程的中间环节,是各个模块的桥梁。首先传输模块与中央控制器形成关联,在功能实现时创建一个检视窗口,让所有的组件和中央控制器进行数据传输;反过来中央处理器也通过它将指令传递给其他控制组件。要达成这个功能就需要数据传输模块具备接受和发送功能。
2)安全传输中的加密算法实现
DES的计算设计让其形成了主要的三个功能参数,即Key、Data、Mode。其中Key有8个字节,共计64位大小,是计算中的工作性密钥;Data有8个字节,其大小也是64位,它是DES计算处理的对象;Mode解读的是算法的共工作形式。
该算法对数据的处理为:当Mode指令加密时,系统利用Key将对象Data做相应的密钥结合,即对数据进行加密,而其生成的数据就是系统的输出结果;如Mode指令为解密,则系统就利用Key数据解读,将数据还原,结果输出。在数据传输的发送和接收中,双方应约定好Key,并在数据传输的发起方,用该密钥对核心的秘密数据进行处理,然后再以加密文件的形式在网络中实现传递,数据达到目标地后,接收方利用密钥对密码数据进行解密,这样就可得到明文形式的数据。这样保证了核心数据的传输安全性。DES算法设计在利用DES的过程中,设计的算法主要有三个步骤,即密钥生成、加密函数、解密函数。为了更好的实现平台跨越性,统一选择了C语言作为实现加密的语言。其语言构成为:struct deskeytype{int keylen;//密钥长度char key[20];//密钥};
DES在数据安全传输中的功能实现,在整个数据传输过程中,负责发送的模块可以将加密模块所生成的加密数据作为输入信息,然后按照约定好的协议进行数据传输前的处理,随后利用网络协议将整个文件传输到接收方。这时接收的模块就把这个完整的数据存储下来,并按照协议进行分解和解读,也就是将数据向下一级模块进行处理。在完成解密后将输出数据传递给其他应用程序。这个过程中,为了保证数据传输的安全性,在发送和接收的模块中利用TCP协议作为低层次的传输协议,并且为了生成的代码可以跨平台使用,应当使用标准C的套接自编程,在经过测试。
如果采用的是VC6.0系统构建,就需要考虑到集成性。也就是将某个处理的方式汇集到一个特定的模块上,并使之能够完成功能的实现。这样就可以将整个加密和解密的系统人为的分解成简单的模块化处理区域。这样可以让系统更加的简单化清晰化。简化的系统设计就是对加密和解密功能的优化,这种优化就是将系统分解成为四个模块,控制、加密、签字、传输模块,在这些模块中控制模块是负责对其他模块的控制和调节,整个加密的功能实现依靠的是控制模块的指挥。与此同时,系统还会附加某些功能,如对话功能的实现,主要是帮助接收和传送双方实现实时的对话,并保证传输的时间一致。采用明文的传输模式,这主要是传输一些正规的文件,只有文件不含有乱码就可在这种方式的帮助下进行传输;传送含有不规则符号的文件,它是专门为传送一些特殊文件设计,一般不使用。
[1]陈明举,陈善学.基于DES算法和RSA算法的数据加密方案[J].南昌工程学院学报,2006,(01).
[2]吴昊.基于DES算法和RSA算法的数据加密方案[J].焦作工学院学报:自然科学版,2002,(05).
[3]程一飞.RSA算法及其应用[J].安庆师范学院学报,2004,10(02).
[4]程明慧.基于DES和RSA算法的数据加密方案及实现[J].河南教育学院学报,2009,(02).
[5]杨波.现代密码学[M].北京:清华大学出版社,2003.
[6]章照止.现代密码学基础[M].北京:邮电大学出版社,2004:57-59.
[7]徐向文.蓝牙技术中的一种基于DES加密的安全策略[J].通信技术,2008,(11).
[8]李海斌,周玉洁.一种抗DPA攻击的DES设计[J].通信技术,2007,(11).