徐蕊
【摘要】 當今世界,人們在關鍵業務和行業部門大量的采用計算系統和網絡技術,從而帶來了新的威脅和風險,如未經授權的訪問、信息竊取和篡改、病毒傳輸等。文章針對數據的機密性和完整性提出一種基于MD5單向加密技術的擴展,并通過對該算法的深入研究,介紹MD5加密算法的基本原理和實現流程,并給出此加密算法利用Java語言編程在實際系統的使用方法和使用效果。
【關鍵詞】 MD5 加密 Java
一、引言
在信息行業,安全從未像今天這樣重要。安全是一個涉及面很廣的問題,在信息系統的各個環節中都至關重要。因此,在談到信息安全時,可以指多個領域:應用、數據、網絡、通信、用戶和主機系統等等。在這些領域中,一項共同的安全需求和目標是對數據的保護,這進一步突出了安全的重要性,要求所有企業和組織承擔起倫理和法律責任,采取適當的措施和步驟確保信息安全。在各個層面采取安全措施,可確保信息可靠的處理、存儲或傳輸,同時讓任何得到授權的實體都能夠使用它們。其中,單向數字簽名散列算法更是使數據完整性驗證和通過混淆保護數據的機密性成為可能。
二、MD5算法的研究與擴展
2.1 MD5算法的描述
MD5是一種迭代型強加密單向散列函數。單向散列函數指的是根據輸入消息(任何字節串,如文本字符串、Word文檔、JPG文件等)輸出固定長度數值的算法,輸出數值也稱為“散列值”或“消息摘要”,其長度取決于所采用的算法,MD5生成128位的散列值。為了實現對數據的認證的目的,散列函數應滿足以下條件:(1)函數的輸入可以是任意長。(2)函數的輸出是固定長。(3)已知x,求H(x)較為容易,可用硬件或者軟件實現。(4)已知h,求使得H(x)=h的x在計算上是不可行的,這一性質稱為函數的單向性,稱H(x)為單向散列函數。(5)已知x,找出y(y≠x)使得H(y)=H(x)在計算上是不可行的。如果單向雜湊函數滿足這一性質,則稱其為弱單向雜湊函數。(6)找出任意兩個不同的輸入x、y,使得H(y)=H(x)在計算上是不可行的,則稱其為強單向雜湊函數。MD5算法結構采用迭代型雜湊函數的一般結構。其中,CV0=IV=n比特長的初值;CVi=f(CVi-1,Yi-1)1≤i≤L;H(M)=CVL;CVi-1,稱為鏈接變量;通常b>n,稱函數f為壓縮函數。
2.2 MD5算法的擴展
在數據的加密處理方面,MD5總體看來是安全的,目前破解MD5主要依靠大型字典的方法,將常用密碼進行MD5后建立數據庫,然后和MD5數值進行對比,通過這樣的方法來破解MD5。為了應對大型字典破譯的問題,提出一種基于MD5算法擴展的加密方法?;贛D5算法的擴展算法流程是,原始的數據信息首先經過MD5的單向加密得到加密數據,然后對加密數據再利用雙向加密算法加密。得到最終的加密信息由于采用二次加密,且二次加密算法和對應參數多樣和未知性,如DES、RSA等,從而使MD5大型字典破解方法完全失效。
三、MD5算法的應用
3.1 Java安全架構與技術
Java平臺提供了一種通用的面向對象編程語言和一個標準的運行環境,可用于開發和實現安全的跨平臺應用解決方案。為提供基于Java平臺的應用解決方案的端到端安全,Java運行環境和Java語言在格式和結構方面對代碼及其執行環境做了嚴格的限制,從而提供了全面的安全基礎。Java之所以能成為安全可靠的運行環境,在很大程度上應歸功于Java架構基礎的固有的安全性,該架構包括Java虛擬機和Java語言,其中JVM提供了內置的安全策略、訪問控制機制和安全擴展。在J2SE中,JCA為Java平臺提供加密服務和算法,以保護消息的安全。JCA定義了提供者概念及一個用于訪問加密服務和實現相關功能的一般API框架。通過標準化API框架和提供者實現,JCA還提供了算法和實現的獨立性。MD5消息摘要是單向安全散列函數,在J2SE中,JCA提供者支持消息摘要算法:消息摘要算法5(Message Digest 5, MD5),MD5可生成128位散列值。消息摘要使用引擎類java.security.MessageDigest表示,其形式為字節數組,MessageDigest.getInstance創建一個實現了指定算法的消息摘要對象實例,條件是提供者支持該算法。方法MessageDigest.update使用由字節數組指定的數據更新摘要,而方法MessageDigest.digest計算散列值并返回一個字節數組。
3.2 MD5算法擴展的應用
隨著信息技術的飛速發展,擁有著效率高、便捷性強等特性的信息系統被越來越多的企業和個人使用,信息系統一般都會采取用戶名和密碼結合的登錄方式進行身份驗證,此時用戶名和密碼及其其他敏感信息會存入數據庫中保存,然而如果服務器和數據庫被人攻破,用戶的密碼將會暴露,從而導致很嚴重的后果?,F給出基于MD5擴展算法并采用Java語言編程的核心代碼,此算法已應用于無線局科技服務管理系統,用于解決用戶密碼安全問題。
四、結束語
通過對MD5加密算法的研究分析得出,MD5的核心是壓縮函數,也正因如此MD5是一種不可逆的安全性很高的加密算法,但卻收到大字典攻擊的威脅,從而導致強度弱的密碼被泄露,通過在MD5加密算法原有基礎上的擴展,克服了外界的攻擊,增強了加密算法的強壯性,這種基于MD5擴展的加密算法,可用于保護數據庫敏感信息、身份驗證、數據完整性等方面。