資料加密以及國密基礎知識
- 加密基礎知識
- 為什么要進行加密
- 密碼學的發展史
- 古典密碼學
- 置換密碼加密法
- 柵欄加密法
- 代換密碼
- 維吉尼亞密碼
- 現代密碼學
- 百科
- 基本準則
- 密碼體制的安全性
- 現代密碼破譯(密碼分析)
- 密碼體制
- 國際標準加密演算法
- 對稱性秘鑰加密
- DES
- AES
- IDEA
- 非對稱性秘鑰加密
- RSA
- DSA
- 單向散列演算法
- MD5
- SHA
- 國密
- 非對稱密鑰加密 - SM2橢圓曲線演算法
- 單向散列演算法 - SM3雜湊演算法
- 對稱密鑰加密 - SM4分組密碼演算法
- 總結
- 常用加密工具及資源
加密基礎知識
為什么要進行加密
資料加密是為了保證 資料存盤 和 傳輸中 的保密性、完整性、及進行身份驗證,

密碼學的發展史

古典密碼學
置換密碼加密法
置換密碼(Transposition Technique): 將明文字母互相換位,打亂順序,

柵欄加密法
柵欄加密法(Rail Fence):就是把要加密的明文分成N個一組,然后把每組縱向連起來,形成一段無規律的話,

代換密碼
代換密碼(Substitution Technique) : 將明文的每個字母用密文字母或符號替代,

維吉尼亞密碼

比如我們協定
- 第一行是密鑰字母列
- 第一列是明文字母行
- 密鑰為: redio

現代密碼學
百科
現代密碼學 研究資訊從發端到收端的安全傳輸和安全存盤,是研究“知己知彼”的一門科學,其核心是密碼編碼學和密碼分析學,前者致力于建立難以被敵方或對手攻破的安全密碼體制,即“知己”;后者則力圖破譯敵方或對手已有的密碼體制,即“知彼”,
基本準則
基本原則(Kerckhoff原): 安全的加密演算法建立在演算法的公開不用想文明和秘鑰的安全
密碼體制的安全性
-
無條件安全
即使破譯者提供了無窮的資源,依然無法破譯,則該密碼體制是無條件安全的,也稱為完善保密性(PerfectSecrecy), -
可證明安全性
該方法是將密碼演算法的安全性歸結為某個數學難題,而這個數學難題被證明在目前求解是困難的, -
計算安全性
指在目前的計算資源條件下,破譯該密碼演算法所需要的努力超出了破譯者的破譯能力(諸如時間、空間、資金等資源),該密碼演算法的安全是暫時的,也稱為實際安全性(PracticalSecrecy),
現代密碼破譯(密碼分析)
-
窮舉法
密碼分析者試圖試遍所有的明文或密鑰來進行破譯,
– 窮舉明文-主要用于公鑰密碼技術及數字簽名,
– 窮舉密文-增加秘鑰長度、添加隨機冗余資訊進行預防, -
統計分析法
密碼分析者通過分析密文、明文和密鑰的統計規律來達到破譯密碼技術,
– 使明文的統計特性與密文的統計特性不一樣來預防, -
密碼體制分析法
根據所掌握的明文、密文的有關資訊,通過數學求解的方法找到相應的加解密演算法,
– 選用具有堅實數學基礎和足夠復雜的加解密演算法來預防,
密碼體制

- 明文P(Plaintext)或 M(message):訊息的初始形式
- 密文C(Cipher Text):加密后的形式
- 秘鑰K(Key):加密或解密演算法用的亂數
- 加密E(Encryption):C=Ek( P),E為加密演算法
- 解密D(Decryption):P=Dk( C),D為解密演算法
- 滿足:P=D(E( P))
國際標準加密演算法
對稱性秘鑰加密
加密密鑰、解密密鑰可以相互推算得出,通常是相同的

DES
Data Encryption Standard 資料加密標準
簡介
- 由IBM公司研發,并于1977年定為美國聯邦資訊加密標準,
- 它是一種分組密碼,以64位為分組對資料加密,它的密鑰長度是56位(每個第8位作為奇偶校驗,共64位),加密解密用同一演算法,
安全性
- DES現在已經不是一種安全的加密演算法,主要因為它使用的56位密鑰過短,,
- 1999年1月,distributed.net與電子前哨基金會合作,在22小時15分鐘內即公開破解了一個DES密鑰,
- 為了提升安全性,派生了3DES,但現在它們已經被AES取代,
AES
Advanced Encryption Standard 高級加密標準
簡介
- 1997年,美國國家標準與技術研究所NIST開始征集新一代資料加密標準來接任即將退役的DES,2000年10月,由比利時密碼學家JoanDaemen和VincentRijmen發明的Rijndael密碼演算法當選成為新一代資料加密標準——AES(Advanced Encryption Standard),2001年11月26日,NIST正式公布高級加密標準,并于2002年5月26日正式生效,
- 分組密碼演算法,分組長度是128位,密鑰長度為128,192和256位;
安全性
- 速度比3DES快,安全性至少和3DES一樣,
- 目標:能抗擊所有的已知攻擊;在廣大范圍平臺上的快速和代碼簡潔;
IDEA
International Data Encryption Algorithm 國際資料加密演算法
簡介
- 由瑞士聯邦理工學院Xuejia Lai和James Massey的在1990年提出的
- 以64位分組為單位,使用128位密鑰,加密資料,
安全性
- 比DES更加安全,最近幾年提出的用來替代DES的許多演算法中的一種,
- 密碼強度包括分組長度、密鑰長度、混淆(Confusion)和擴散(Diffusion),
- 方便硬體和軟體實作:通過由超大規模集成電路(VLSI)進行的硬體實作的設計目標是取得高速度,而軟體實作則有靈活和低價的優點,
非對稱性秘鑰加密
-
加密、解密密鑰不相同,不能推算,通信模型1-資料加密

-
加密、解密密鑰不相同,不能推算,通信模型2-數字簽名

RSA
簡介
- 1978年,R.L.Rivest,A.Shamir和L.Adleman實作了RSA公鑰密碼學,此后成為了公鑰密碼學中杰出的代表,
- 兩個相關密鑰中任何一個都可以用作加密而讓另一個用作解密(資料加密與資料簽名)
- SA演算法的安全性依賴于大整數分解因子的難度,,
安全性
- 1999年底,有人把512位的整數分解因子,512位的RSA秘鑰被破解,,
- 就目前的計算機水平,用1024位的密鑰是安全的,2048位是絕對安全的,
- 私鑰的長度和安全性是保證RSA加密演算法安全的重要手段,
DSA
- Digital Signature Algorithm 簽名演算法
簡介
- Schnorr和ElGamal簽名演算法的變種
- 驗證時計算 w = s^(-1)mod q
安全性
- DSA是基于整數有限域離散對數難題的,其安全性與RSA相比差不多,
- DSA的一個重要特點是兩個素數公開,這樣,當使用別人的p和q時,即使不知道私鑰,你也能確認它們是否是隨機產生的,還是作了手腳,RSA演算法卻做不到,
單向散列演算法
單向散列演算法,又稱hash函式,Hash函式(也稱雜湊函式或雜湊演算法)
將任意長度的二進制值映射為較短的固定長度的二進制值,這個較短的固定長度的二進制值稱為哈希值

MD5
Message Digest Algorithm 資訊摘要
簡介
- MD系列單向散列演算法是Ron Rivest設計的,包括MD2、MD4和MD5,
- 以變長的資訊為輸入,把其壓縮成一個定長128位(即32位16進制)的散列值輸出,例如:2db3f62a87dfd43714394a0d971060ea
安全性
- MD5的安全性弱點在于其壓縮函式的沖突已經被找到,1995年有論文指出,花費 1,000萬美元,設計尋找沖突的特制硬體設備,平均在24天內可以找出一個MD5的沖突,
- 主要破解手段:使用彩虹表記錄明文與密文之間的對應關系,根據獲得的密文從彩虹表查找其對應的明文,
SHA
- Secure Hash Algorithm,安全哈希演算法
簡介
是美國國家標準技術研究所發布的國家標準FIPS PUB 180,最新的標準已經于2008年更新到FIPS PUB 180-3,其中規定了SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512這幾種,SHA-1,SHA-224和SHA-256適用于長度不超過264二進制位的訊息,SHA-384和SHA-512適用于長度不超過2128二進制位的訊息,
安全性
- 2005年,密碼學家就證明SHA-1的破解速度比預期提高了2000倍,隨著計算機發展,計算速度的加快,SHA-1演算法的安全性逐年降低,現在逐漸由安全強度更高的SHA-2(SHA-256、HSA-512)替代它,
國密
非對稱密鑰加密 - SM2橢圓曲線演算法
- SM2演算法就是ECC橢圓曲線密碼機制,包括:
– 數字簽名演算法(包括數字簽名生成演算法和驗證演算法),
– 密鑰交換協議
– 以及公鑰加密演算法(包括加密演算法和解密演算法), - 在簽名、密鑰交換方面不同于ECDSA、ECDH等國際標準,而是采取了更為安全的機制,
- SM2推薦了一條256位的曲線作為標準曲線,
單向散列演算法 - SM3雜湊演算法
- SM3演算法適用于商用密碼應用中的:
– 數字簽名和驗證,
– 訊息認證碼的生成與驗證
– 以及亂數的生成, - 在SM2,SM9標準中使用,
- 此演算法對輸入長度小于2的64次方的位元訊息,經過填充和迭代壓縮,生成長度為256位元的雜湊值,
- 其中使用了異或,模,模加,移位,與,或,非運算,由填充,迭代程序,訊息擴展和壓縮函式所構成,
對稱密鑰加密 - SM4分組密碼演算法
- SM4演算法主要用于無線局域網產品,該演算法的分組長度為128位元,密鑰長度為128位元,
- 加密演算法與密鑰擴展演算法都采用32輪非線性迭代結構,解密演算法與加密演算法的結構相同,只是輪密鑰的使用順序相反,
- 此演算法采用非線性迭代結構,每次迭代由一個輪函式給出,其中輪函式由一個非線性變換和線性變換復合而成,非線性變換由S盒所給出,
總結

常用加密工具及資源
- 工具類
– SM.js - 書籍
– 《Java加密與解密的藝術》
– 《Communication Theory of Secrecy Systems》
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/227176.html
標籤:其他
上一篇:K8S安全-RBAC
下一篇:Java知識
