首頁 > 書法

常用資料加密和解密方法彙總

作者:由 roffey 發表于 書法日期:2022-07-01

如何加密自己的資訊

資料加密技術是網路中最基本的安全技術,主要是透過對網路中傳輸的資訊進行資料加密來保障其安全性,這是一種主動安全防禦策略,用很小的代價即可為資訊提供相當大的安全保護。

一、加密的基本概念

“加密”,是一種限制對網路上傳輸資料的訪問權的技術。原始資料(也稱為明文,plaintext)被加密裝置(硬體或軟體)和金鑰加密而產生的經過編碼的資料稱為密文(ciphertext)。將密文還原為原始明文的過程稱為解密,它是加密的反向處理,但解密者必須利用相同型別的加密裝置和金鑰對密文進行解密。

加密的基本功能包括:

1。 防止不速之客檢視機密的資料檔案;

2。 防止機密資料被洩露或篡改;

3。 防止特權使用者(如系統管理員)檢視私人資料檔案;

4。 使入侵者不能輕易地查詢一個系統的檔案。

資料加密是確保計算機網路安全的一種重要機制,雖然由於成本、技術和管理上的複雜性等原因,目前尚未在網路中普及,但資料加密的確是實現分散式系統和網路環境下資料安全的重要手段之一。

資料加密可在網路OSI七層協議(OSI是Open System Interconnect的縮寫,意為開放式系統互聯。國際標準組織(國際標準化組織)制定了OSI模型。這個模型把網路通訊的工作分為7層,分別是物理層、資料鏈路層、網路層、傳輸層、會話層、表示層和應用層。)的多層上實現、所以從加密技術應用的邏輯位置看,有三種方式:

①鏈路加密:通常把網路層以下的加密叫鏈路加密,主要用於保護通訊節點間傳輸的資料,加解密由置於線路上的密碼裝置實現。根據傳遞的資料的同步方式又可分為同步通訊加密和非同步通訊加密兩種,同步通訊加密又包含位元組同步通訊加密和位同步通訊加密。

②節點加密:是對鏈路加密的改進。在協議傳輸層上進行加密,主要是對源節點和目標節點之間傳輸資料進行加密保護,與鏈路加密類似。只是加密演算法要結合在依附於節點的加密模件中,克服了鏈路加密在節點處易遭非法存取的缺點。

③端對端加密:網路層以上的加密稱為端對端加密。是面向網路層主體。對應用層的資料資訊進行加密,易於用軟體實現,且成本低,但金鑰管理問題困難,主要適合大型網路系統中資訊在多個發方和收方之間傳輸的情況。

二、資料加密的應用

1、 媒體加密:DRM

2、 檔案加密:文字加密、pdf、word

3、 資料加密:ASP。NET(C#)中的資料加密

4、 硬體加密:加密狗

三.加密技術發展趨勢

①私用金鑰加密技術與公開金鑰加密技術相結合:鑑於兩種密碼體制加密的特點,在實際應用中可以採用折衷方案,即結合使用DES/IDEA和RSA,以DES為“核心”,RSA為“外殼”,對於網路中傳輸的資料可用DES或IDEA加密,而加密用的金鑰則用RSA加密傳送,此種方法既保證了資料安全又提高了加密和解密的速度,這也是目前加密技術發展的新方向之一。

②尋求新演算法:跳出以常見的迭代為基礎的構造思路,脫離基於某些數學問題複雜性的構造方法。如劉尊全先生提出的劉氏演算法,是一種基於金鑰的公開金鑰體制,它採用了隨機性原理構造加解密變換,並將其全部運算控制隱匿於金鑰中,金鑰長度可變。它是採用選取一定長度的分割來構造大的搜尋空間,從而實現一次非線性變換。此種加密演算法加密強度高、速度快、計算開銷低。

③加密最終將被整合到系統和網路中,例如IPV6協議就已有了內建加密的支援,在硬體方面,Intel公司正研製一種加密協處理器。它可以整合到微機的主極上。

四、加密技術的分類

加密型別可以簡單地分為四種:

1。 根本不考慮解密問題;

2。 私用金鑰加密技術:對稱式加密(Symmetric Key Encryption):對稱式加密方式對加密和解密使用相同的金鑰。通常,這種加密方式在應用中難以實施,因為用同一種安全方式共享金鑰很難。如:RC4、RC2、DES 和 AES 系列加密演算法。

3。 公開金鑰加密技術:非對稱金鑰加密(Asymmetric Key Encryption):非對稱金鑰加密使用一組公共/私人金鑰系統,加密時使用一種金鑰,解密時使用另一種金鑰。公共金鑰可以廣泛的共享和透露。當需要用加密方式向伺服器外部傳送資料時,這種加密方式更方便。如: RSA

4。 數字證書。(Certificate):數字證書是一種非對稱金鑰加密,但是,一個組織可以使用證書並透過數字簽名將一組公鑰和私鑰與其擁有者相關聯。

五、對稱加密之DES加密與解密

1、對稱加密

對稱加密,是一種比較傳統的加密方式,其加密運算、解密運算使用的是同樣的金鑰,資訊的傳送者和資訊的接收者在進行資訊的傳輸與處理時,必須共同持有該密碼(稱為對稱密碼)。因此,通訊雙方都必須獲得這把鑰匙,並保持鑰匙的秘密。

單鑰密碼系統的安全性依賴於以下兩個因素:

第一、加密演算法必須是足夠強的,僅僅基於密文字身去解密資訊在實踐上是不可能的。

第二、加密方法的安全性依賴於金鑰的秘密性,而不是演算法的秘密性,因此,我們沒有必要確保演算法的秘密性(事實上,現實中使用的很多單鑰密碼系統的演算法都是公開的),但是我們一定要保證金鑰的秘密性。

DES(Data Encryption Standard)和TripleDES是對稱加密的兩種實現。

DES和TripleDES基本演算法一致,只是TripleDES演算法提供的key位數更多,加密可靠性更高。

DES使用的金鑰key為8位元組,初始向量IV也是8位元組。

TripleDES使用24位元組的key,初始向量IV也是8位元組。

兩種演算法都是以8位元組為一個塊進行加密,一個數據塊一個數據塊的加密,一個8位元組的明文加密後的密文也是8位元組。如果明文長度不為8位元組的整數倍,新增值為0的位元組湊滿8位元組整數倍。所以加密後的密文長度一定為8位元組的整數倍。

2、加密解密過程

常用資料加密和解密方法彙總

Figure 1。 DES加密解密過程

上圖是整個DES和TripleDES演算法的加密解密過程,下面以TripleDES為例,結合dotnet分析加密解密的各個步驟,並給出相關實現程式碼。

說到軟體安全保護,小編為大家推薦幾款給力的加密解密軟體保護工具,希望對您有所幫助。

慧都科技響應“全面加強智慧財產權保護,推動構建新發展格局”號召,加密解密產品為您的應用程式保駕護航!線上購買享受限時特惠,Go!>>

★VMProtect 【慧都網免費下載】

VMProtect是新一代的軟體保護實用程式,具有內建的反彙編程式,可與Windows和Mac OS X可執行程式配合使用,還可以連結編譯器建立的MAP檔案,以快速選擇程式碼片段進行保護。

VMProtect的基本原則是透過使應用程式程式碼和邏輯非常複雜以進行進一步分析和破解,從而有效保護應用程式程式碼免受檢查。VMProtect的主要軟體程式碼保護機制適用於:虛擬化,變異和組合保護,涉及應用程式程式碼的突變以及隨後的虛擬化。

VMProtect與其他軟體保護程式的主要區別在於:

它能夠使用不同的方法保護程式碼的不同部分:部分程式碼可以虛擬化,另一部分進行模糊處理,使用組合方法保護關鍵片段。

VMProtect中使用的虛擬化方法的關鍵優勢:

執行虛擬化程式碼片段的虛擬機器嵌入到受保護應用程式的結果程式碼中——VMProtect保護的應用程式不需要第三方庫或模組來執行

VMProtect允許使用多個不同的虛擬機器來保護同一應用程式的不同程式碼片段——駭客必須分析多個虛擬機器的體系結構

網路評價:

加密的安全級別非常高,破解難度很大,但是加密資料多,需要注意系統的效能。

★Themida 【慧都網免費下載】

Themida是先進的Windows軟體保護系統,它被用於滿足軟體開發人員對於所開發應用程式安全保護的需求,使其遠離被先進的逆向工程和軟體破解的危險。

透過Themida,集中在軟體保護器所具有的主要弱點,從而提供瞭解決這些問題的完整解決方案。Themida使用SecureEngine®保護技術,當以最高優先順序執行時,實施前所未見的保護技術,以保護應用程式免受高階軟體破解。

常用資料加密和解密方法彙總

SecureEngine®會破壞可用於受保護應用程式的所有當前破解工具,並確保受保護的應用程式僅在安全的環境中執行。

常用資料加密和解密方法彙總

Themida的主要特點:

•檢測/欺騙任何型別的偵錯程式的反偵錯程式技術

•任何Ring3和Ring0轉儲器的反記憶體轉儲器技術

•每個受保護應用程式中的加密演算法和金鑰不同

•反API掃描程式技術,可避免重建原始匯入表

•目標應用中的自動反編譯和加擾技術

•先進的Mutator引擎

•反“偵錯程式隱藏器”技術

•目標應用中的反記憶體修補和CRC技術

•針對檔案和登錄檔監視器的反監視技術

•SDK與保護層的通訊

•適用於任何靜態和互動式拆卸器的反拆卸技術

•目標應用程式中的動態加密

網路評價:

用好其虛擬機器保護功能,將關鍵敏感程式碼用虛擬機器保護起來,能很好提高強度。

★WinLicense 【慧都網免費下載】

WinLicense是一個功能強大的保護系統,專為希望保護其應用程式免受高階逆向工程和軟體破解的軟體開發人員而設計。開發人員不需要任何原始碼更改或程式設計經驗來使用WinLicense保護其應用程式。WinLicense使用SecureEngine®保護技術,該技術能夠以最高優先順序執行其程式碼,以實現前所未有的保護技術; 這可以保護任何具有最高安全級別的應用程式。

WinLicense的主要特點:

保護功能:

WinLicense的主要目標是涵蓋軟體保護中的所有當前漏洞,例如過時的保護技術、作業系統限制執行等等。

試用/許可功能:

WinLicense提供最廣泛的選項和功能,以便為應用程式建立試用版和註冊版。WinLicense還提供自動處理所有可能情況的功能,例如應用程式到期,許可證損壞等,從而使開發人員無需在應用程式中包含額外的程式碼。

WinLicense專門用於解決當前許可證管理器的一些主要缺陷。

網路評價:

WinLicense主要比Themida多了一個協議,可以設定使用時間,執行次數等功能,兩者核心保護是一樣的。