復合加密技術(shù)在管理信息系統(tǒng)中的應用

目前,計算機已廣泛應用到軍事、科研、經(jīng)濟、文化等各個領(lǐng)域,成為人們學習、工作、生活中不可或缺的工具,管理信息系統(tǒng)將企業(yè)的各種信息進行整合,可有效地幫助企業(yè)提高工作效率,因此,絕大多數(shù)的企業(yè)都使用了管理信息系統(tǒng)。中小企業(yè)的管理信息系統(tǒng)考慮到使用成本、系統(tǒng)兼容性和運行速度等問題,一般都采用目前流行的B/S+SQL(SQL SERVER或 MYSQL)模式,且未對數(shù)據(jù)進行加密處理,通常都存在一定的數(shù)據(jù)安全問題。針對中小企業(yè)管理信息系統(tǒng)的這些特點,筆者設(shè)計了一種由非對稱加密算法、動態(tài)對稱加密算法和組件技術(shù)相結(jié)合的復合加密技術(shù),以較小的系統(tǒng)開銷達到提高系統(tǒng)安全性的目的。

一、加密算法簡介

隨著信息化和數(shù)字化社會的發(fā)展,人們對信息安全和保密的重要性認識不斷提高,于是出現(xiàn)了加密技術(shù)。數(shù)據(jù)加密的基本過程就是對原來為明文的文件或數(shù)據(jù)按某種算法進行處理,使其成為不可讀的一段代碼,通常稱為“密文”,使其只能在輸入相應的密鑰之后才能顯示出本來內(nèi)容,通過這樣的途徑來達到保護數(shù)據(jù)不被非法人竊取、閱讀的目的。該過程的逆過程為解密,即將該編碼信息轉(zhuǎn)化為其原來數(shù)據(jù)的過程。

1997年,美國國家標準局公布實施了《美國數(shù)據(jù)加密標準(DES)》,從此,民間力量開始全面介入密碼學的研究和應用,采用的加密算法有DES、RSA、SHA等。隨著對加密強度需求的不斷提高,又出現(xiàn)了AES、ECC等新型的加密算法?,F(xiàn)代加密技術(shù)中根據(jù)密鑰類型不同將加密技術(shù)分為兩類:對稱加密算法和非對稱加密算法。

對稱加密算法又稱為秘密鑰匙加密算法,其加密和解密均采用同一把秘密鑰匙,通常稱之為“Session Key”,而且通信雙方都必須獲得這把鑰匙,并保持鑰匙的秘密。這種加密技術(shù)目前被廣泛用于對敏感數(shù)據(jù)等信息進行加密,但不利于在網(wǎng)絡(luò)傳輸加密文件。常用的對稱加密算法有:DES、3DES、AES等。

非對稱加密算法又稱為公開密鑰加密算法,其加密和解密所使用的不是同一個密鑰,通常有兩個密鑰,稱為“公鑰”和“私鑰”,兩個必需配對使用,否則不能打開加密文件。其中公鑰是可以對外公布的,私鑰則不能公開,只能由持有人一個人知道。由于非對稱加密算法有兩個密鑰,在網(wǎng)絡(luò)上傳輸加密文件時不怕被別人知道公鑰,收件人解密時只要用自己的私鑰即可以,這樣就很好地避免了密鑰的傳輸安全性問題。常用的非對稱加密算法有:RSA、DSA、ECC等。

二、動態(tài)對稱加密算法的設(shè)計

動態(tài)對稱加密算法的設(shè)計是本復合加密技術(shù)的核心,本動態(tài)加密算法以密碼字典為基礎(chǔ),將明文輸入后,通過隨機函數(shù)從字典中取掩碼片段與明文進行異或運算,生成的密文中包含運算結(jié)果和隨機種子,解密時只需從密文中取出隨機種子,根據(jù)隨機種子從字典中重新獲得加密掩碼片段,通過掩碼片段與密文的再次異或即可還原出明文,由于這種加密方式每次輸入明文得到的密文都不同,具有較強的隱蔽性,且運算速度快。

根據(jù)以上算法在實際應用中可通過任意一種編程語言來實現(xiàn),以下是動態(tài)加密算法通過VB實現(xiàn)的源代碼:

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

'設(shè)定加密字典

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)

'根據(jù)隨機種子從字典中取掩碼片段

k = buff(i) Mod Len(mstr)

'將明文與掩碼進行異或運算

buff(i) = buff(i) Xor j

m = buff(i) \ Len(mstr)

m = m * 2 ^ 3 + j

'合并運算結(jié)果

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

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

Next

'輸出密文

encode = outs

End Function

三、復合加密技術(shù)及應用

由于管理信息系統(tǒng)中的主要對象就是信息,信息的安全性對于管理信息系統(tǒng)而言是至關(guān)重要的。為提高信息安全性,同時減少系統(tǒng)開銷,我們設(shè)計了一種由非對稱加密算法、對稱加密算法、組件封裝技術(shù)和加殼技術(shù)構(gòu)成的安全、高效的復合加密技術(shù)。即:采用加密算法將關(guān)鍵信息進行加密保護,同時,將加密算法采用組件技術(shù)封裝編譯后生成的DLL動態(tài)鏈接庫文件,然后用UPXShell、ASProtect等加殼工具對生成的組件進行加殼處理,從而進一步加強組件的安全性,防止組件被反編譯后進行分析,以達到保護系統(tǒng)安全的目的。

在實際應用中,我們將信息管理系統(tǒng)中的數(shù)據(jù)分為高度敏感信息、敏感信息和普通信息三大類,對于系統(tǒng)用戶的密碼、權(quán)限等少量的高度敏感信息,采用非對稱加密算法進行保護,以防止用戶數(shù)據(jù)被非法讀取、非法更改,確保數(shù)據(jù)的安全可靠;對于商品數(shù)量、價格、庫存等大量的敏感信息,則采用本文設(shè)計的動態(tài)對稱加密算法進行保護,雖然其安全性要低于非對稱加密算法,但足以滿足實際應用的需要,且具有系統(tǒng)開銷少、速度快的優(yōu)勢;對于那些數(shù)量較大而又不太重要的普通信息則無需進行加密;同時,為確保系統(tǒng)中的加密算法代碼的安全性,將加密算法代碼用組件技術(shù)進行封裝并進行加殼處理。

數(shù)據(jù)的安全性總是相對的,任何一種加密算法都只是在一定的時期和一定的條件下被稱為安全的,隨著計算機硬件和網(wǎng)絡(luò)的發(fā)展,目前常用的加密算法都有可能在短時間內(nèi)被破解,因此,未來數(shù)據(jù)安全的發(fā)展方向必定是從密鑰的簡單性、成本的低廉性、管理的簡易性、算法的復雜性、保密的安全性以及計算的快速性等多個方面去考慮,結(jié)合多種安全技術(shù)的優(yōu)點于一身的復合加密技術(shù)必定是未來數(shù)據(jù)安全技術(shù)的發(fā)展方向。

知識點:

對稱加密算法是應用較早的加密算法,技術(shù)成熟。在對稱加密算法中,數(shù)據(jù)發(fā)信方將明文(原始數(shù)據(jù))和加密密鑰一起經(jīng)過特殊加密算法處理后,使其變成復雜的加密密文發(fā)送出去。收信方收到密文后,若想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密算法中,使用的密鑰只有一個,發(fā)收信雙方都使用這個密鑰對數(shù)據(jù)進行加密和解密,這就要求解密方事先必須知道加密密鑰。