武警甘肃省总队 高 明
浅谈对称加密算法与非对称加密算法的应用
武警甘肃省总队 高 明
随着信息技术和互联网络的不断发展与进步,如何使重要信息在网络中安全传输而不被窃取成为了一个重要问题,而最有效的方法就是数据加密技术。数据加密的算法种类很多,其加密方式主要可分为对称加密和非对称加密,本文主要对这两种方式的基本原理和应用进行简要分析。
数据加密;加密算法;数字签名
随着信息技术和互联网络的不断发展与进步,对网络信息的非法窃取与反窃取的斗争也开始变得愈演愈烈。如何使信息在传输过程中更加高效和安全、如何证实收到信息的真实性等问题都已成为了当今的研究课题。本文重点介绍了数据加密的基本概念,同时还简述了对称加密算法以及非对称加密算法的基本原理并介绍了相关应用。
对于数据加密来说,在处理过程中最基本过程是依据某种特定的算法对原来的明文文件或者是数据进行加密处理,从而将这段明文其转变为一段不可识别的代码,也就是密文。想要显示密文的原本内容,只有使用与之对应的密钥解密之后才能实现。通过数据加密的方法对文件进行处理可以使得文件不被人非法窃取或者是进行阅读。
加密技术一般分为对称式加密以及非对称式加密两类。目前采用的比较广泛的是对称式加密,主要特点是加密和解密使用同一个密钥。而非对称式加密在进行加密时则使用了两个密钥,加密和解密过程中分别使用不同的密钥,这两个密钥分别为“公钥”以及“私钥”,想要能正常完成加密解密过程,就必需配对使用,而在使用过程中,“公钥”是公开的,“私钥”则必须由发送人保密,同时只能由持有人所有。对称式的加密方法如果用于通过网络传输加密文件,那么不管使用任何方法将密钥告诉对方,都有可能被窃听,而非对称式的加密方法则具有一定的优越性,因为它包含有两个密钥,且仅有其中的“公钥”是可以被公开的,接收方只需要使用自己已持有的私钥进行解密,这样就可以很好的避免密钥在传输过程中产生的安全问题。
在目前常用的加密算法主要有:
DES:即对称算法,数据加密程度标准,速度较快,适用场合为加密大量数据;
3DES:基于DES基础的对称算法,采用三个不同的密钥对一块数据进行三次加密,从而达到更高的强度;
RC2、RC4:也是对称算法,但采用了变长的密钥对大量数据进行加密,计算速度比DES快;
IDEA:国际数据加密算法,所使用128位密钥能够提供非常强的安全性能;
RSA:非对称算法,由RSA公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;
DSA:数字签名算法,是一种标准的DSS(数字签名标准),严格来说不算加密算法;
AES:AES为高级加密标准,属于对称算法的一种,也是下一代加密算法的标准,他具有速度快,安全级别高的特点,Rijndael算法是AES标准的一个实现;
BLOWFISH:使用变长的密钥,长度可达448位,运行速度很快;
MD5:严格来说不算加密算法,只能说是摘要算法。
对称加密算法也叫做私钥加密算法,他的特点是可以从解密密钥中推算出来加密密钥,与此同时解密密钥也可以从加密密钥通过推算而得出。问题是,在大多数的对称加密算法使用中,加密密钥与解密密钥是相同的,真是因为这样,所以这种加密算法也被称为秘密密钥算法或单密钥算法。这种算法要求发送方以及接收方在进行通信之前,首先商定一个密钥。由前文可知对称加密算法的安全性很大程度上依赖于密钥,一旦密钥泄漏,任何人都可以对他们发送或接收的消息进行解密,所以在进行通信时,对密钥的保护十分重要。
对称加密算法的特点是计算量小,进行加密时加密速度快,同时加密的效率高。但同时缺点为:发送方和接收方均使用相同密钥,所以会导致密钥传输的安全性无法得到保证。除此之外,每当用户使用对称加密算法时,都需要使用不同的密钥,这样就会直接导致双方所拥有的密钥的数量极快的增加,而大量的密钥就会造成用户在对密钥进行管理时十分困难。同时,对称加密算法也很难在分布式网络系统中进行应用,这是因为密钥管理难度大,从而使用成本高。
非对称加密算法在使用时需要同时拥有公开密钥和私有密钥,公开密钥与私有密钥相对应,如果在对数据的加密过程中使用了公开密钥,那么只有使用相对应的私有密钥才能解密;反之,如果在对数据进行加密时使用了私有密钥,也只有使用与之相对应的公开密钥才能解密。非对称加密算法对传信息进行加密的基本过程是:甲方首先生成一对密钥同时将其中的一把作为公开密钥;得到公开密钥的乙方再使用该密钥对需要加密的信息进行加密后再发送给甲方;甲方再使用另一把对应的私有密钥对加密后的信息进行解密,这样就实现了机密数据传输。非对称加密算法的另一种加密过程是:甲方使用自己的私有密钥对信息进行加密后再发送给乙方;乙方使用甲方提供的公开密钥对加密后的信息进行解密,如果成功解密即可证实信息确实是由甲方所发,并非他人冒充,这就是现在常用的数字签名技术。
非对称加密算法的特点是算法强度复杂,其安全性依赖于算法与密钥。由于其算法复杂,而使得加密解密的速度远远低于对称加密算法,因此不适用于数据量较大的情况。由于非对称加密算法有两种密钥,其中一个是公开的,所以在密钥传输上不存在安全性问题,使得其在传输加密数据的安全性上又高于对称加密算法。
保发送者无法否认曾发送过该信息。非对称加密的缺点则是加密解密的速度,非对称加密的计算速度远远慢于对称加密,在一些比较极端情况下,非对称加密的计算耗时则是对称加密的运算耗时的1000倍以上。
对称加密算法和非对称加密算法在性能上各有其利弊,综合应用两种算法的优势,可以在加密数据传输过程中实现高效和安全。下面以常用的SSH加密通讯方式的加密解密过程为例进行说明。SSH加密通讯方式主要包括以下几个步骤:
(1)甲方使用非对称加密算法生成一对密钥并将其中的一把作为公钥向乙方公开。
(2)乙方使用对称加密算法生成一对密钥,然后将其中的一把用甲方提供的公钥加密后发送给甲方。
(3)甲方收到乙方发送的加密密钥后用私钥进行解密,获得乙方提供的密钥。
(4)双方均使用对称加密算法生成的两把密钥进行加密数据通讯。
通过综合使用两种类型的加密方式进行加密数据通讯,既保证了密钥传输过程的安全性,又兼顾了数据加密的效率。
[1]段钢.加密与解密[J].程序员,2003(9):53-53.
[2]耿国华.算法设计与分析[M].高等教育出版社,2012.
[3]秦志光.密码算法的现状和发展研究[J].计算机应用,2004,24(2):1-4.
[4]韦宝典,刘东苏,王新梅.AES算法Rijndael的原理、实现和攻击[J].通信技术,2002(12):1002-0802.
[5]刘传领,范建华.RSA非对称加密算法在数字签名中的应用研究[J].通信技术,2009,42(3).
[6]黄志清.网络安全中的数据加密技术研究[J].计算机系统应用,2000,16(5):20-21.
非对称加密算法最大的优势就在于密钥分发手段相对简单。假设两个用户要互相传输数据,首先双方交换公钥,如果一方用对方的公钥加密,另一方只需用自己的私钥解密即可。如果在一个企业中已有n个用户,那么企业需要生成n对密钥,同时分发这n个公钥。因为公钥是可以被公开的,用户所要做的只是保管好自己的私钥,这样密钥的分发将变得十分简单。由于每个用户拥有的私钥是唯一的,所以其他用户不但可以通过信息发送者的公钥来验证信息的来源是否真实,同时还可以确