一种高速CCD数据采集系统的设计
扫描二维码
随时随地手机看文章
现行的网络安全传输方案中经典的方法分为对称加密和非对称加密2种。对称加密运算速度快但容易被攻击和破解;非对称加密算法复杂,不易被破解,但加密速度慢,不适宜传输大量的安全数据。通过对哈夫曼压缩方法研究可知,不同的数据文件经过哈夫曼压缩后可形成不同的少量数据的哈夫曼压缩编码表和压缩文件。通过对哈夫曼编码表进行非对称加密设计的方案,可以减少非对称加密算法加密的字节数,实现大数据量文件的非对称加密。同时通过对大数据文件的压缩,可以减少整个文件大小,提高网络传输效率。该方案已在多个网络安全传输项目中得到应用,完全能够满足网络传输安全要求。
近年来,随着计算机和网络技术的迅速发展,越来越多的社会团体、机关、企事业单位建立了计算机网络,人们更多的将社会活动、办公以及科研等各个方面活动的重心转移到了网络当中,形成了由局域网络为节点组成的庞大的互联网络。在互联网络节点之间越来越多的数据交换任务需要完成,以实现计算机软、硬件资源和信息资源的共享。在互联网络这种开放系统中进行数据交换,对于安全级别要求较高的数据,传输过程中的数据安全是至关重要的。
网络数据传输安全的核心是通过对数据发送、网络传输、数据接收各个环节中的数据进行加密处理,以达到实现数据安全的目的。保护在公用网络信息系统中传输、交换和存储的数据的保密性、完整性、真实性、可靠性、可用性和不可抵赖性等。而加密技术则是数据传输安全的核心。它通过加密算法将数据从明文加密为密文并进行通信,密文即使被黑客截取也很难被破译,然后通过对应解码技术解码密文还原明文。
目前国际上通用的加密方法主要有对称加密和不对称加密,不同的加密方法有不同的特点,在数据传输高安全性要求比较高的网络系统中得到了普遍采用,例如电子商务、邮件传输等方面。
1 加密算法的现状
密码学是为了保证在发送者和接收者之间传递的数据不被第三者获得而对要传递的数据进行加密使其获得保密的科学。通常将传递的数据称为明文,为了保护明文,以将其通过某种方式变换成无法识别的密文,这个变换过程称为加密;另一方面密文可以通过相应的逆变换再还原成明文,这个过程称为解密。
加密算法可以看作是一个复杂的函数变换:
C=F(M,Key)
式中:C代表密文,即加密后得到的字符序列;M代表明文,即待加密的字符序列;Key表示密钥,是秘密选定的一个字符序列。
当加密完成后,可以将密文通过不安全渠道送给数据接收人,只有拥有解密密钥的数据接收人才可以对密文进行解密,即反变换得到明文。密钥的传递必须通过安全渠道。
目前通用的加密算法主要分为对称和非对称算法。对称算法采用相同的密钥进行加密和解密。常用的对称加密算法有AES、IDEA、RC2/RC4、DES 等,其最大的困难是密钥分发问题,必须通过当面或在公共传送系统中使用安全的方法交换密钥。对称加密由于加密速度快、硬件容易实现、安全强度高,因此仍被广泛用来加密各种信息。但对称加密也存在着固有的缺点:密钥更换困难,经常使用同一密钥进行数据加密,给攻击者提供了攻击密钥的信息和时间。非对称算法,采用公钥进行加密而利用私钥进行解密。公钥是可以公开的,任何人都可以获得,数据发送人用公钥将数据加密后再传给数据接收人,接收人用自己的私钥解密。非对称加密的安全性主要依赖难解的数学问题,密钥的长度比对称加密大得多,因此加密效率较低,主要使用在身份认证、数字签名等领域。非对称加密的加密速度慢,对于大量数据的加密传输是不适合的。非对称加密算法包括RSA、DH、EC、DSS等。目前比较流行的、最有名的非对称加密算法是RSA。
RSA的安全性在于大整数因子分解的难度,其体制构造是基于数论的欧拉定理,产生公开密钥和秘密密钥的方法为:
(1)取2个互异的大素数p和q;
(2)计算n=p&TImes;q;
(3)随机选取整数e,且e与(p-1)&TImes;(q-1)互为素数;
(4)另找一个数d,使其满足(e&TImes;d)mod[(p-1)&TImes;(q-1)]=1;(n,e)即为公钥;(n,d)为私钥。对于明文M,用公钥(n,e)加密可得到密文C,C=Me mod n;对于密文C,用私钥(n,d)解密可得到明文M,M=Cd mod n。
利用当今可预测的计算能力,在十进制下,分解2个250位质数的积要用数十万年的时间,并且质数用尽或2台计算机偶然使用相同质数的概率小到可以被忽略。由此可见,企图利用公钥和密文推断出明文或者企图利用公钥推断出私钥的难度极其巨大,几乎是不可行的。因此,这种机制为信息传输提供了很高的安全保障。
由上述内容可以发现,无论是对称加密和非对称加密的过程都是完成如下的过程:
(1)产生密钥key;
(2)C=F(M,Key),即使用已经产生的密钥,通过加密算法将明文转换为密文。
(3)数据传输;
(4)M=F’(C,key),即接收方使用解密算法,将密文转换为明文。
如果需要传输的明文数据庞大,则加密和解密的算法的耗时将非常长,并且数据传输时也会占用大量的网络资源。也就是以上的(2),(3),(4)三个过程都会占用大量的时间和资源,如果能够降低这3个过程的时间,就会节省大量的资源,提高数据传输的效率。通过使用哈夫曼编码对文件进行压缩,就可以大大降低以上3个环节的处理时间,并同时在传输处理过程中减少计算机资源和网络资源的占用。
2 哈夫曼编码介绍
哈夫曼编码是20世纪50年代由哈夫曼教授研制开发的,它借助了数据结构当中的树型结构,在哈夫曼算法的支持下构造出一棵最优二叉树,把这类树命名为哈夫曼树。因此,准确地说,哈夫曼编码是在哈夫曼树的基础之上构造出来的一种编码形式,它的本身有着非常广泛的应用。
2.1 基本原理
数据能够被压缩的理论依据如下:
定义1 对于给定的信源和码符号集,若有一个惟一可译码,其平均码长L小于所有其他惟一可译码,则称这种码为紧致码或最佳码。
定理1 哈夫曼编码是紧致码。
计算机文件是以字节为单位组成的,每个字节的取值为O~255。每个字节都看成字符,共256种字符。因此,每个字节都是以8个二进制位的定长编码表示的。由于这种定长码也是惟一可译码,根据定理1有L≤8。
设某个文件有N个字节组成,则该文件总长度为8N比特。如果对该文件进行哈夫曼编码,则该文件总长度为LN比特。由于L≤8,所以LN≤8。所以,只要文件满足L<8,用哈夫曼编码总可以对其压缩。
哈夫曼编码是一种变长编码,即通过使用较短的码字来给出现概率较高的信源符号编码,而出现概率较小的信源符号用较长的码字来编码,从而使平均码长最短,达到最佳编码的目的。由于哈夫曼编码只能对概率已知的信源符号编码,因此是一种统计编码。