
[提 要] 在管理信息系統中使用密碼可以防止用戶數據被非法讀取、非法更改,確保數據的安全可靠。文章針對中小企業管理信息系統的特點,設計了一種以動態加密算法為基礎的復合加密技術,以期進一步提高中小企業管理信息系統的數據安全性,從而保護軟件作者以及軟件使用者的合法權益。
[關鍵詞] 管理信息系統;密碼;動態加密算法;復合加密技術
[作者簡介]孔 麗(1976—),女,武漢大學軟件工程國家重點實驗室。(湖北武漢 430072)
一、引言
目前,計算機已廣泛應用到軍事、科研、經濟、文化等各個領域,成為人們學習、工作、生活中不可或缺的工具,管理信息系統將企業的各種信息進行整合,可有效地幫助企業提高工作效率,因此,絕大多數的企業都使用了管理信息系統。中小企業的管理信息系統考慮到使用成本、系統兼容性和運行速度等問題,一般都采用目前流行的B/S+SQL(SQL SERVER或 MYSQL)模式,且未對數據進行加密處理,通常都存在一定的數據安全問題。針對中小企業管理信息系統的這些特點,筆者設計了一種由非對稱加密算法、動態對稱加密算法和組件技術相結合的復合加密技術,以較小的系統開銷達到提高系統安全性的目的。
二、加密算法簡介
隨著信息化和數字化社會的發展,人們對信息安全和保密的重要性認識不斷提高,于是出現了加密技術。數據加密的基本過程就是對原來為明文的文件或數據按某種算法進行處理,使其成為不可讀的一段代碼,通常稱為“密文”,使其只能在輸入相應的密鑰之后才能顯示出本來內容,通過這樣的途徑來達到保護數據不被非法人竊取、閱讀的目的。該過程的逆過程為解密,即將該編碼信息轉化為其原來數據的過程。
1997年,美國國家標準局公布實施了《美國數據加密標準(DES)》,從此,民間力量開始全面介入密碼學的研究和應用,采用的加密算法有DES、RSA、SHA等。隨著對加密強度需求的不斷提高,又出現了AES、ECC等新型的加密算法。現代加密技術中根據密鑰類型不同將加密技術分為兩類:對稱加密算法和非對稱加密算法。
對稱加密算法又稱為秘密鑰匙加密算法,其加密和解密均采用同一把秘密鑰匙,通常稱之為“Session Key”,而且通信雙方都必須獲得這把鑰匙,并保持鑰匙的秘密。這種加密技術目前被廣泛用于對敏感數據等信息進行加密,但不利于在網絡傳輸加密文件。常用的對稱加密算法有:DES、3DES、AES等。
非對稱加密算法又稱為公開密鑰加密算法,其加密和解密所使用的不是同一個密鑰,通常有兩個密鑰,稱為“公鑰”和“私鑰”,兩個必需配對使用,否則不能打開加密文件。其中公鑰是可以對外公布的,私鑰則不能公開,只能由持有人一個人知道。由于非對稱加密算法有兩個密鑰,在網絡上傳輸加密文件時不怕被別人知道公鑰,收件人解密時只要用自己的私鑰即可以,這樣就很好地避免了密鑰的傳輸安全性問題。常用的非對稱加密算法有:RSA、DSA、ECC等。
三、動態對稱加密算法的設計
動態對稱加密算法的設計是本復合加密技術的核心,本動態加密算法以密碼字典為基礎,將明文輸入后,通過隨機函數從字典中取掩碼片段與明文進行異或運算,生成的密文中包含運算結果和隨機種子,解密時只需從密文中取出隨機種子,根據隨機種子從字典中重新獲得加密掩碼片段,通過掩碼片段與密文的再次異或即可還原出明文,由于這種加密方式每次輸入明文得到的密文都不同,具有較強的隱蔽性,且運算速度快。動態對稱加密算法描述如圖1所示:
根據以上算法在實際應用中可通過任意一種編程語言來實現,以下是動態加密算法通過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等加殼工具對生成的組件進行加殼處理,從而進一步加強組件的安全性,防止組件被反編譯后進行分析,以達到保護系統安全的目的。
在實際應用中,我們將信息管理系統中的數據分為高度敏感信息、敏感信息和普通信息三大類,對于系統用戶的密碼、權限等少量的高度敏感信息,采用非對稱加密算法進行保護,以防止用戶數據被非法讀取、非法更改,確保數據的安全可靠;對于商品數量、價格、庫存等大量的敏感信息,則采用本文設計的動態對稱加密算法進行保護,雖然其安全性要低于非對稱加密算法,但足以滿足實際應用的需要,且具有系統開銷少、速度快的優勢;對于那些數量較大而又不太重要的普通信息則無需進行加密;同時,為確保系統中的加密算法代碼的安全性,將加密算法代碼用組件技術進行封裝并進行加殼處理。
五、結束語
數據的安全性總是相對的,任何一種加密算法都只是在一定的時期和一定的條件下被稱為安全的,隨著計算機硬件和網絡的發展,目前常用的加密算法都有可能在短時間內被破解,因此,未來數據安全的發展方向必定是從密鑰的簡單性、成本的低廉性、管理的簡易性、算法的復雜性、保密的安全性以及計算的快速性等多個方面去考慮,結合多種安全技術的優點于一身的復合加密技術必定是未來數據安全技術的發展方向。
[責任編輯:上官濤]