java-信息安全(二)-對稱加密算法DES,3DES,AES,Blowfish,RC2,RC4

概述

信息安全基本概念:git

  • DES(Data Encryption Standard,數據加密標準)
  • 3DES(Triple DES,三重數據加密算法(TDEA,Triple Data Encryption Algorithm))
  • AES(Advanced Encryption Standard,高級加密標準)
  • Blowfish
  • RC2
  • RC4

DES

  DES全稱爲Data Encryption Standard,即數據加密標準,是一種使用密鑰加密的塊算法,1977年被美國聯邦政府的國家標準局肯定爲聯邦資料處理標準(FIPS),並受權在非密級政府通訊中使用,隨後該算法在國際上普遍流傳開來。須要注意的是,在某些文獻中,做爲算法的DES稱爲數據加密算法(Data Encryption Algorithm,DEA),已與做爲標準的DES區分開來。github

  DES算法的入口參數有三個:Key、Data、Mode。其中Key爲7個字節共56位,是DES算法的工做密鑰;Data爲8個字節64位,是要被加密或被解密的數據;Mode爲DES的工做方式,有兩種:加密或解密。算法

  DES設計中使用了分組密碼設計的兩個原則:混淆(confusion)和擴散(diffusion),其目的是抗擊敵手對密碼系統的統計分析。混淆是使密文的統計特性與密鑰的取值之間的關係儘量複雜化,以使密鑰和明文以及密文之間的依賴性對密碼分析者來講是沒法利用的。擴散的做用就是將每一位明文的影響儘量迅速地做用到較多的輸出密文位中,以便在大量的密文中消除明文的統計結構,而且使每一位密鑰的影響儘量迅速地擴展到較多的密文位中,以防對密鑰進行逐段破譯。數組

  

3DES

  3DES又稱Triple DES,是DES加密算法的一種模式,它使用3條56位的密鑰對3DES.3DES數據進行三次加密。數據加密標準(DES)是美國的一種由來已久的加密標準,它使用對稱密鑰加密法,並於1981年被ANSI組織規範爲ANSI X.3.92。DES使用56位密鑰和密碼塊的方法,而在密碼塊的方法中,文本被分紅64位大小的文本塊而後再進行加密。比起最初的DES,3DES更爲安全。
  3DES(即Triple DES)是DES向AES過渡的加密算法(1999年,NIST將3-DES指定爲過渡的加密標準),加密算法,其具體實現以下:設Ek()和Dk()表明DES算法的加密和解密過程,K表明DES算法使用的密鑰,M表明明文,C表明密文,這樣:
    3DES加密過程爲:C=Ek3(Dk2(Ek1(M)))
    3DES解密過程爲:M=Dk1(EK2(Dk3(C)))安全

  

AES

  高級加密標準(英語:Advanced Encryption Standard,縮寫:AES),在密碼學中又稱Rijndael加密法,是美國聯邦政府採用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣爲全世界所使用。通過五年的甄選流程,高級加密標準由美國國家標準與技術研究院(NIST)於2001年11月26日發佈於FIPS PUB 197,並在2002年5月26日成爲有效的標準。2006年,高級加密標準已然成爲對稱密鑰加密中最流行的算法之一。函數

  

Blowfish

  Blowfish算法是一個64位分組及可變密鑰長度的對稱密鑰分組密碼算法,可用來加密64比特長度的字符串。加密

  Blowfish算法是一種對稱的分組加密算法,算法核心在於子密鑰生成,它將變長密鑰擴展成總長4168 Byte的子密鑰數組。算法中使用了大量的子密鑰,而子密鑰又依賴於用戶密鑰,實際加/解密過程當中使用的是更新後的子密鑰數組,子密鑰即P數組和S盒。Blowfish算法有一個核心加密函數:BF_En(),該函數的輸人是64位明文信息,通過運算,以64位密文信息的形式輸出。用Blowfish算法加密信息,須要兩個過程:密鑰預處理和信息加密。一樣,解密亦須要兩個過程,密鑰預處理和信息解密。  
  Blowfish算法的源密鑰——pbox和sbox是固定的,而咱們要加密一個信息,須要本身選擇一個key,用這個key對pbox和sbox進行變換,獲得下一步信息加密所要用的key_pbox和key_sbox。解密亦是如此,因爲Blowfish是對稱加密算法,解密方在獲得key後根據key生成解密所需的key_box和key_sbox。對同一個信息加密解密,選取的key的不一樣會致使密文的不一樣。所以,Blowfish算法的關鍵在於key的選擇以及保密。

RC2

  RC2是由著名密碼學家Ron Rivest設計的一種傳統對稱分組 加密算法,它可做爲DES算法的建議替代算法。它的輸入和輸出都是64 比特密鑰的長度是從1字節到128字節可變,但目前的實現是8字節(1998年)

RC4

  RC4加密算法是大名鼎鼎的RSA三人組中的頭號人物Ronald Rivest在1987年設計的密鑰長度可變的流加密算法簇。之因此稱其爲簇,是因爲其核心部分的S-box長度可爲任意,但通常爲256字節。該算法的速度能夠達到 DES加密的10倍左右,且具備很高級別的非線性。

示例代碼

代碼地址:https://github.com/bjlhx15/algorithm-sign.git設計

相關文章
相關標籤/搜索