數據加密以及國密基礎知識

加密基礎知識

爲何要進行加密

數據加密是爲了保證 數據存儲傳輸中保密性、完整性、及進行身份驗證git

在這裏插入圖片描述

密碼學的發展史

在這裏插入圖片描述

古典密碼學

置換密碼加密法

置換密碼(Transposition Technique): 將明文字母互相換位,打亂順序。
在這裏插入圖片描述
算法

柵欄加密法

柵欄加密法(Rail Fence):就是把要加密的明文分紅N個一組,而後把每組縱向連起來,造成一段無規律的話。安全

在這裏插入圖片描述

代換密碼

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

在這裏插入圖片描述

  • 維吉尼亞密碼
    在這裏插入圖片描述
    好比咱們協定

  • 第一行是密鑰字母列
  • 第一列是明文字母行
  • 密鑰爲: redio

在這裏插入圖片描述

現代密碼學

百科

現代密碼學 研究信息從發端到收端的安全傳輸和安全存儲,是研究「知己知彼」的一門科學。其核心是密碼編碼學和密碼分析學。前者致力於創建難以被敵方或對手攻破的安全密碼體制,即「知己」;後者則力圖破譯敵方或對手已有的密碼體制,即「知彼」。工具

基本準則

基本原則(Kerckhoff原): 安全的加密算法創建在算法的公開不用想文明和祕鑰的安全編碼

密碼體制的安全性

  • 無條件安全
    即便破譯者提供了無窮的資源,依然沒法破譯,則該密碼體制是無條件安全的,也稱爲完善保密性(PerfectSecrecy)。
    加密

  • 可證實安全性
    該方法是將密碼算法的安全性歸結爲某個數學難題,而這個數學難題被證實在目前求解是困難的。
    spa

  • 計算安全性
    指在目前的計算資源條件下,破譯該密碼算法所須要的努力超出了破譯者的破譯能力(諸如時間、空間、資金等資源)。該密碼算法的安全是暫時的,也稱爲實際安全性(PracticalSecrecy)。
    .net

現代密碼破譯(密碼分析)

  • 窮舉法
    密碼分析者試圖試遍全部的明文或密鑰來進行破譯。
    – 窮舉明文-主要用於公鑰密碼技術及數字簽名。
    – 窮舉密文-增長祕鑰長度、添加隨機冗餘信息進行預防。


    設計

  • 統計分析法
    密碼分析者經過分析密文、明文和密鑰的統計規律來達到破譯密碼技術。
    – 使明文的統計特性與密文的統計特性不同來預防。

  • 密碼體制分析法
    根據所掌握的明文、密文的有關信息,經過數學求解的方法找到相應的加解密算法。
    – 選用具備堅實數學基礎和足夠複雜的加解密算法來預防。

密碼體制

在這裏插入圖片描述

  • 明文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設計的,包括MD二、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-25六、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》
相關文章
相關標籤/搜索