莆田学院《科研专题与论文写作》题目:数据加密方法研究及仿真姓名:李海杰院系:电子信息工程系专业:电子信息工程班级:112班学号:1107062182013年6月数据加密方法研究及仿真李海杰中文摘要:保密通信具有悠久的历史,现在更是被广泛应用于军事、经济、商业等各行各业。在保密通信中原信息称为明码,加密后的信息称为密码。如果不知道加密方法,一般人无法知道明文内容,这样就起到了保密的作用。加密和解密的过程可以抽象为一个数学模型。关键词:数据加密加密解密明文密文密钥随着计算机的飞速发展,网络也在不断的发展,相对应的各种攻击网络的手段也随之产生,网络安全已经成为现在人类网络生活的重要要求,保证网络安全的最主要的方法之一是数据加密,[1]所谓数据加密(DataEncryption)技术是指将一个信息(或称明文,plaintext)经过加密钥匙(Encryptionkey)及加密函数转换,变成无意义的密文(ciphertext),而接收方则将此密文经过解密函数、解密钥匙(Decryptionkey)还原成明文。[7]数据加密是防止数据在数据存储和和传输中失密的有效手段,数据加密与解密从宏观上讲是非常简单的,很容易掌握,可以很方便的对机密数据进行加密和解密,从而实现对数据的安全保障。它在计算机网络安全中的应用大大提高了网络信息传输的安全性,加密技术是网络安全技术的基石。一、数据加密的概念数据加密也也就是把明文的信息转换成不可辨识形式的密码,通过这样一个转换使得不明白这个信息的人不能够很好的进行识别,这样就起到了对这些数据进行保护的作用,数据加密技术也就是的在数据传输的过程中使用的方法,这些技术对于数据的加密起着非常重要的作用,加密系统整个是由加密系统和解密系统两个部分组成的,不论在多么复杂的加密系统中进行加密,其加密系统一般都由以下几个方面组成,首先是需要我们进行加密的报文,这也是我们经常所说的明文,其次是我们进行加密过后的报文,这也就是我们经常所说的密文,再次加密解密用的装置或算法,最后用于加密或解密的密钥,密钥可以有很多种形式既可以使词汇也可以是数字或者语句,利用数据加密技术就是要使得只有在指定的用户或者网络下才能使得密码解出从而使得用户能够获得相应的数据,这就要求数据的发送方和接收方之间必须要有特殊的密钥进行加密才能使得上述情况很好的实现。[8]二、数据加密技术结合现代加密技术和密码体制的特点,将加密技术分成两种:对称加密和非对称加密技术。最有名的对称加密算法有DES算法、IDEA算法,非对称加密算法比较流行的主要有RSA算法和ECC算法等。(一)、对称加密技术对称加密也称为单密钥加密,即加密密钥和解密是同一个,通常称之为“SessionKey”这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的SessionKey长度为56Bits。[2]如果进行通信的双方能够确保密钥在密钥交换阶段未曾发生泄露,则可以通过对称加密方法加密信息,安全性取决于密钥的保密。对称加密技术按照加密方式可以分为流加密和分组加密。在流加密中,明文消息按字符逐位加密;在分组加密中,将明文消息分组,逐组进行加密。[3]对称加密技术的优点:(1)加密速度快,能够适应大量数据和信息的加密;(2)密钥长度当比较短;(3)可用来构建各种密码体制。对称加密技术的缺点:(1)密钥难于传输;(2)密钥的数目难于管理;(3)对称加密算法一般不能提供信息完整性的鉴别,不能实现数字签名;(4)对称密钥不能对外公开,必须保密,所以密钥的管理和分发会存在潜在的危险。[3]对称加密技术这类方法主要包括代码加密法、替换加密法、变位加密法、一次性密码簿加密法和数据加密标准DES等。[7]1、代码加密法。这种加密的方法是最为简单的也是最容易实现的,通信双方使用预先设定的一组代码表达特定的意义而实现的一种最简单的加密方法。2、替换加密法。替换加密法也是传统的加密方法中非常普遍的一种加密方法,采用这种加密方法进行加密时,首先我们要制定一种规则,然后根据这种规则对明文中的字母进行替换,将原来的字母按照规则替换成其它的字母,通过这样的方法来实现对明文的加密。3、变位加密法。变位加密法不隐藏原来明文的字符,而是将字符重新排序。比如,加密方首先选择一个用数字表示的密钥,写成一行,然后把明文逐行写在数字下。按照密钥中数字指示的顺序,将原文重新抄写,就形成密文。4、一次性密码簿加密法这种加密方法是通过密码簿来实现的,采用这种加密方法进行加密时,首先要制定一个密码簿,并且每一页都有不同的密码表,在进行加密时每使用一页对明文进行加密就会将该页销毁,然后在利用下一页对明文进行加密,这样直到把全部的明文转换成密文才算最后完成,这样一来就使得进行密码破译时,只有找到相同的密码簿才能对这种方法加密的密文进行破译,否则破译这种密文是相当困难的。5、数据加密标准DESDES(DataEncryptionStandard)是一个对称密钥系统,加密和解密使用相同的密钥。它通常选取一个64位(bit)的数据块,使用56位的密钥,在内部实现多次替换和变位操作来达到加密的目的。DES有ECB,CBC和CFB三种工作模式,其中ECB采用的是数据块加密模式,CBC与CFB采用的是数据流加密模式。(二)、非对称加密技术非对称式加密又称为公开密钥加密系统,就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件,这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。对称式的加密方法很难公开密钥,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,非对称式的公钥是可以公开的,可以在网络中安全传输,不怕别人知道,收件人解密时只要用自己的私钥即可,很好地避免了密钥的传输安全性问题,它的优越性就体现在这里。[2]非对称加密技术的优点:(1)密钥空间大;(2)私钥保密,公钥公开,只要保证它的真实性。(3)安全性高,能适应网络的开放性要求。非对称加密技术的缺点:(1)密钥长度比对称加密的密钥要长;(2)加密速度慢。对称加密和非对称加密技术各自有其优缺点,单独使用一种加密技术很容易出现问题。因此,可将两种加密技术相结合,利用它们自身的优点来弥补对方的缺点,提高数据加解密的速度、安全性。[3]非对称加密技术这类方法主要包括三层DES、RC2和RC4、数字摘要、国际数据加密算法IDEA和基于硬件的加密方法等。[7]1、三层DES(Triple-DES)这种方法是DES的改进加密算法,它使用两把密钥对报文作三次DES加密,效果相当于将DES密钥的长度加倍。三层DES克服了DES的显著缺点,即其56位的短密钥。2、RC2和RC4RC指RivestCode,它是以发明人美国麻省理工学院的RonRivest教授的姓氏命名的,由RSADSI公司发行,是不公开的专有算法。RC2采用的是数据块加密算法,RC4采用的是数据流加密算法。3、数字摘要(DigitalDigest)该加密方法也是由RonRivest设计的,也被称为安全Hash编码法SHA(SecureHashAlgorithm)或MD5(MDStandardsforMessageDigest)。SHA其实就是RC方法的一种实现。4、国际数据加密算法IDEAIDEA(InternationalDataEncryptionAlgorithm)是1990年瑞士的JamesMassey,XuejiaLai等人发表的一个数据块加密算法。该算法使用128位的密钥,能够有效地消除试图穷尽搜索密钥的可能攻击。5、基于硬件的加密算法为克服软件加密算法在容易复制、容易尝试方面的不足,人们又开发了基于硬件的加密算法。三、数据加密技术的例子(一)、移位加密法移位加密法是一种简单的对称加密的加密方法。它通过将明文的字母按字母表中的次序平移若干位实现加密。如加密方法是字母平移5位,则明文字母和密文字母对应关系如下:明文字母ABCDEFGHIJKLMNOPQRSTUVWXYZ密文字母FGHIJKLMNOPQRSTUVWXYZABCDE明文THEOLYMPICGAMES加密后就成了YMJTQDRUNHLFRJX.一般人不知道它是什么意思,这就起到了加密的作用。如果知道它是由字母表平移5位得来的,那就很容易获得原文。数字5是解开密码的一把钥匙,称为密钥。在移位加密法中,明文字母和密文字母之间的对应关系是固定的,这种加密方法可以通过分析词频,利用统计方法破译。(二)、Hill加密法下面要介绍的Hill密码是用矩阵运算实现加密的,它不保持明文字母和密文字母之间固定的对应关系,破译起来比移位法困难。1、Hill加密法(1)先将英文字母变换成数字;ABCDEFGHIJKLMNOPQRSTUVWXYZ,.[]12345678910………………………………24252627280称其为字母表的表值。(2)将明文按n个字母分组,并用对应的数字取代字母,构成一个个n维向量。(3)取一个在模n运算下可逆的n阶矩阵A,用A左乘(2)中的向量得到新向量;把新向量中的数字按(1)中的对应关系换回成字母即得到密文。(4)按例中的方法求出可逆矩阵A在模n下的逆矩阵B,用B左乘(3)中得到的新向量则重新得到(2)的向量,从而得到原始明文。矩阵A是解密的关键,称为密钥。2、实例分析2.1在模26运算下,求矩阵1203A的逆矩阵1A。解:由于det(A)=3,且139(mod26),故11*3218390109AA2.2采用Hill2加密法(即明文2个2个分组),加密矩阵取2745A,对“THEOLYMPICGAMES”进行加密,再将结果解密。解:(1)为了保留英文单词之间的空格,可以增加逗号“,”,句号“.”和空格“”当做字母,连同26个英文字母一起与数字1,2,…,28,0之间建立对应关系,其中1~26分别对应A~Z,“,”对应27,“.”对应28,“”对应0。(2)将“THEOLYMPICGAMES”两两分组,最后不足两个字母时用“空格”补足,并用数字代替,得205152516371319,,,,,,,,80121390150(3)取矩阵2745A,输入A=[27;45];x=[208;50;1512;2513;169;30;71;135;190]';y=mod(A*x,29)结果为:y=9102725862139420420221241918这个换成字母就是“IDJT,DYTHVFLUDCSIR”,这就是密文。注意,明文中的两个“E”,在密文中分别变成了“J”和“S”;而密文中的三个“D”对应明文中的“H”,“L”和“A”,它们并不一一对应。(4)如果知道密钥A,解密是一件很容易的事情。A是模29下的可逆矩阵,其逆矩阵1122616B,用B左乘(3)中的向量重新得到20515251637131980121390150换成字母就是“THEOLYMPICGAMES”,即原始明文。四、仿真4.1根据移位加密法编写一段加密和解密的程序,并将所编程序应用于明文“HELLOWORLD”,密钥取3.clear;clc;closeall;x='HELLOWORLD'x2=double(x);x3=(x2-64).*(x264)+(x2-17).*(x2==44)+(x2-18).*(x2==46)+(x2-32).*(x2==32);x4=x3+3;x5=(x4+64).*(x427&x4)+(x4+17).*(x4==27)+(x4+18).*(x4==46)+(x4+32).*(x4==0);y=char(x5)y2=double(y);y3=(y2-64).*