目前,计算机已广泛应用到军事、科研、经济、文化等各个领域,成为人们学习、工作、生活中不可或缺的工具,管理信息系统将企业的各种信息进行整合,可有效地帮助企业提高工作效率,因此,绝大多数的企业都使用了管理信息系统。中小企业的管理信息系统考虑到使用成本、系统兼容性和运行速度等问题,一般都采用目前流行的B/S+SQL(SQL SERVER或 MYSQL)模式,且未对数据进行加密处理,通常都存在一定的数据安全问题。针对中小企业管理信息系统的这些特点,笔者设计了一种由非对称加密算法、动态对称加密算法和组件技术相结合的复合加密技术,以较小的系统开销达到提高系统安全性的目的。

一、加密算法简介

随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是出现了加密技术。数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

1997年,美国国家标准局公布实施了《美国数据加密标准(DES)》,从此,民间力量开始全面介入密码学的研究和应用,采用的加密算法有DES、RSA、SHA等。随着对加密强度需求的不断提高,又出现了AES、ECC等新型的加密算法。现代加密技术中根据密钥类型不同将加密技术分为两类:对称加密算法和非对称加密算法。

对称加密算法又称为秘密钥匙加密算法,其加密和解密均采用同一把秘密钥匙,通常称之为“Session Key”,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。这种加密技术目前被广泛用于对敏感数据等信息进行加密,但不利于在网络传输加密文件。常用的对称加密算法有:DES、3DES、AES等。

非对称加密算法又称为公开密钥加密算法,其加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,两个必需配对使用,否则不能打开加密文件。其中公钥是可以对外公布的,私钥则不能公开,只能由持有人一个人知道。由于非对称加密算法有两个密钥,在网络上传输加密文件时不怕被别人知道公钥,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。常用的非对称加密算法有:RSA、DSA、ECC等。

二、动态对称加密算法的设计

动态对称加密算法的设计是本复合加密技术的核心,本动态加密算法以密码字典为基础,将明文输入后,通过随机函数从字典中取掩码片段与明文进行异或运算,生成的密文中包含运算结果和随机种子,解密时只需从密文中取出随机种子,根据随机种子从字典中重新获得加密掩码片段,通过掩码片段与密文的再次异或即可还原出明文,由于这种加密方式每次输入明文得到的密文都不同,具有较强的隐蔽性,且运算速度快。

根据以上算法在实际应用中可通过任意一种编程语言来实现,以下是动态加密算法通过VB实现的源代码:

Public Function encode(ByVal s) As String

Dim buff() As Byte

Dim i As Long

Dim j As Byte

Dim k As Byte, m As Byte

Dim outs As String

Dim mstr As String

Dim temps As String

'设定加密字典

mstr = "ABCDEFGHIJKLMNOPQRSTU-VWXYZ0123456789abcdefghijklmnopqrstuvwxyz"

'判断需加密明文长度

If Len(s) = 0 Then Exit Function

buff = StrConv(s, vbFromUnicode)

i = UBound(buff) + 1

outs = Space(2 * i)

For i = 0 To UBound(buff)

'生成随机种子

Randomize Time

j = CByte(5 * (Math.Rnd()) + 0)

'根据随机种子从字典中取掩码片段

k = buff(i) Mod Len(mstr)

'将明文与掩码进行异或运算

buff(i) = buff(i) Xor j

m = buff(i) \ Len(mstr)

m = m * 2 ^ 3 + j

'合并运算结果

temps = Mid(mstr, k + 1, 1) + Mid(mstr, m + 1, 1)

Mid(outs, 2 * i + 1, 2) = temps

Next

'输出密文

encode = outs

End Function

三、复合加密技术及应用

由于管理信息系统中的主要对象就是信息,信息的安全性对于管理信息系统而言是至关重要的。为提高信息安全性,同时减少系统开销,我们设计了一种由非对称加密算法、对称加密算法、组件封装技术和加壳技术构成的安全、高效的复合加密技术。即:采用加密算法将关键信息进行加密保护,同时,将加密算法采用组件技术封装编译后生成的DLL动态链接库文件,然后用UPXShell、ASProtect等加壳工具对生成的组件进行加壳处理,从而进一步加强组件的安全性,防止组件被反编译后进行分析,以达到保护系统安全的目的。

在实际应用中,我们将信息管理系统中的数据分为高度敏感信息、敏感信息和普通信息三大类,对于系统用户的密码、权限等少量的高度敏感信息,采用非对称加密算法进行保护,以防止用户数据被非法读取、非法更改,确保数据的安全可靠;对于商品数量、价格、库存等大量的敏感信息,则采用本文设计的动态对称加密算法进行保护,虽然其安全性要低于非对称加密算法,但足以满足实际应用的需要,且具有系统开销少、速度快的优势;对于那些数量较大而又不太重要的普通信息则无需进行加密;同时,为确保系统中的加密算法代码的安全性,将加密算法代码用组件技术进行封装并进行加壳处理。

数据的安全性总是相对的,任何一种加密算法都只是在一定的时期和一定的条件下被称为安全的,随着计算机硬件和网络的发展,目前常用的加密算法都有可能在短时间内被破解,因此,未来数据安全的发展方向必定是从密钥的简单性、成本的低廉性、管理的简易性、算法的复杂性、保密的安全性以及计算的快速性等多个方面去考虑,结合多种安全技术的优点于一身的复合加密技术必定是未来数据安全技术的发展方向。

知识点:

对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。