加密算法
透明加密,顾名思义有两个要素:“透明”和“加密”。那么是“如何实现透明”的,但如果要问究竟如何完成加密工作,那就必须涉及到加密算法和密钥
通常所说的加密算法类别有两类:对称算法和非对称算法。所谓对称算法是指加密运算和解密运算都采用同一个密钥。而非对称算法则相反,加密运算和解密运算采用两个不同但配对的密钥,其中一个称为“公钥”,另一个称为“私钥”。在非对称算法中,要么采用公钥加密而私钥解密,要么采用私钥加密而公钥解密。一般来说,非对称算法的可靠性更强。但是非对称加密也有一些局限性。首先,报文的发送方和接收方在事先必须各自掌握一对密钥中的其中之一。也就是说,要么由发报方生成一对密钥,并将其中的公钥(所谓公钥,即“可以公开的密钥”)事先告知收报方;要么由收报方来生成一对密钥并将其中的公钥事先告知发报方。其次,非对称算法的运算量较大,信息处理的时间相对要长。由于这些特性,非对称算法通常用于安全级别较高的单位,而且通常是用于通讯加密。
由于透明加密的特性是要求内部机器都能够打开公司的所有密文,所以目前透明加密系统只能够采用对称算法。对称算法中,也有一些非常的经典的算法。算法本身是公开的。但是算法公开并不意味着可靠性降低。非法用户即便获取了密文,也知道相应的算法,但是只要他不知道密钥也无法破解。例如DES算法就是这样。二战结束以前,人们很重视算法本身的保密,因为当时并没有出现具备这种特性的对称加密算法。但是二战后,人们几乎放弃了算法本身的保密,而将重点放在了算法的改良、改进以及密钥的保密上了。
值得说明的是,对称算法还可以分为两类:数据流加密和数据块加密。前者的运算更快一些,实现起来也更简单一些;但是后者的可靠性更高一些,实现起来也相对要复杂一点。上面所说的DES算法,就是数据块加密算法。
加密的可靠性,除了算法之外,关键就是密钥。在同样的算法的前提下,密钥越长,可靠性越强。而且正如前文所述,当今人们已经不再关注算法的保密,甚至大量地采用公开算法。这个时候,密钥就非常关键了。一般来说,密钥长度低于64位是不可取的。对于民用而言,128位和256位的长度都是足够的。需要注意的是,密钥长度越长,运算量越大,消耗的计算资源(包括机器性能和时间)就越多。
密钥的保管也是关键问题。这包括密钥的生成、传送和备份。密钥的生成,多数加密系统都解决得比较好。通常的做法是根据全球唯一的硬件特征码来生成全球唯一的密钥。这个硬件特征码,有的是指客户的硬件(例如服务器),有的是厂商提供的硬件(例如Ukey)。这都是可行的。需要注意的是,厂商是否也掌握客户的密钥?如果掌握,那么客户就需要考虑采购合同中的保密条款。密钥的传送和备份,是密钥保管的重点环节。一般而言,密钥的传送和备份,都需要进行加密,也就是说对密钥本身进行加密。