数据加密以及国密基础知识
數(shù)據(jù)加密以及國密基礎(chǔ)知識(shí)
- 加密基礎(chǔ)知識(shí)
- 為什么要進(jìn)行加密
- 密碼學(xué)的發(fā)展史
- 古典密碼學(xué)
- 置換密碼加密法
- 柵欄加密法
- 代換密碼
- 維吉尼亞密碼
- 現(xiàn)代密碼學(xué)
- 百科
- 基本準(zhǔn)則
- 密碼體制的安全性
- 現(xiàn)代密碼破譯(密碼分析)
- 密碼體制
- 國際標(biāo)準(zhǔn)加密算法
- 對(duì)稱性秘鑰加密
- DES
- AES
- IDEA
- 非對(duì)稱性秘鑰加密
- RSA
- DSA
- 單向散列算法
- MD5
- SHA
- 國密
- 非對(duì)稱密鑰加密 - SM2橢圓曲線算法
- 單向散列算法 - SM3雜湊算法
- 對(duì)稱密鑰加密 - SM4分組密碼算法
- 總結(jié)
- 常用加密工具及資源
加密基礎(chǔ)知識(shí)
為什么要進(jìn)行加密
數(shù)據(jù)加密是為了保證 數(shù)據(jù)存儲(chǔ) 和 傳輸中 的保密性、完整性、及進(jìn)行身份驗(yàn)證。
密碼學(xué)的發(fā)展史
古典密碼學(xué)
置換密碼加密法
置換密碼(Transposition Technique): 將明文字母互相換位,打亂順序。
柵欄加密法
柵欄加密法(Rail Fence):就是把要加密的明文分成N個(gè)一組,然后把每組縱向連起來,形成一段無規(guī)律的話。
代換密碼
代換密碼(Substitution Technique) : 將明文的每個(gè)字母用密文字母或符號(hào)替代。
維吉尼亞密碼
比如我們協(xié)定
- 第一行是密鑰字母列
- 第一列是明文字母行
- 密鑰為: redio
現(xiàn)代密碼學(xué)
百科
現(xiàn)代密碼學(xué) 研究信息從發(fā)端到收端的安全傳輸和安全存儲(chǔ),是研究“知己知彼”的一門科學(xué)。其核心是密碼編碼學(xué)和密碼分析學(xué)。前者致力于建立難以被敵方或?qū)κ止テ频陌踩艽a體制,即“知己”;后者則力圖破譯敵方或?qū)κ忠延械拿艽a體制,即“知彼”。
基本準(zhǔn)則
基本原則(Kerckhoff原): 安全的加密算法建立在算法的公開不用想文明和秘鑰的安全
密碼體制的安全性
-
無條件安全
即使破譯者提供了無窮的資源,依然無法破譯,則該密碼體制是無條件安全的,也稱為完善保密性(PerfectSecrecy)。 -
可證明安全性
該方法是將密碼算法的安全性歸結(jié)為某個(gè)數(shù)學(xué)難題,而這個(gè)數(shù)學(xué)難題被證明在目前求解是困難的。 -
計(jì)算安全性
指在目前的計(jì)算資源條件下,破譯該密碼算法所需要的努力超出了破譯者的破譯能力(諸如時(shí)間、空間、資金等資源)。該密碼算法的安全是暫時(shí)的,也稱為實(shí)際安全性(PracticalSecrecy)。
現(xiàn)代密碼破譯(密碼分析)
-
窮舉法
密碼分析者試圖試遍所有的明文或密鑰來進(jìn)行破譯。
– 窮舉明文-主要用于公鑰密碼技術(shù)及數(shù)字簽名。
– 窮舉密文-增加秘鑰長(zhǎng)度、添加隨機(jī)冗余信息進(jìn)行預(yù)防。 -
統(tǒng)計(jì)分析法
密碼分析者通過分析密文、明文和密鑰的統(tǒng)計(jì)規(guī)律來達(dá)到破譯密碼技術(shù)。
– 使明文的統(tǒng)計(jì)特性與密文的統(tǒng)計(jì)特性不一樣來預(yù)防。 -
密碼體制分析法
根據(jù)所掌握的明文、密文的有關(guān)信息,通過數(shù)學(xué)求解的方法找到相應(yīng)的加解密算法。
– 選用具有堅(jiān)實(shí)數(shù)學(xué)基礎(chǔ)和足夠復(fù)雜的加解密算法來預(yù)防。
密碼體制
- 明文P(Plaintext)或 M(message):消息的初始形式
- 密文C(Cipher Text):加密后的形式
- 秘鑰K(Key):加密或解密算法用的隨機(jī)數(shù)
- 加密E(Encryption):C=Ek( P),E為加密算法
- 解密D(Decryption):P=Dk( C),D為解密算法
- 滿足:P=D(E( P))
國際標(biāo)準(zhǔn)加密算法
對(duì)稱性秘鑰加密
加密密鑰、解密密鑰可以相互推算得出,通常是相同的
DES
Data Encryption Standard 數(shù)據(jù)加密標(biāo)準(zhǔn)
簡(jiǎn)介
- 由IBM公司研發(fā),并于1977年定為美國聯(lián)邦信息加密標(biāo)準(zhǔn)。
- 它是一種分組密碼,以64位為分組對(duì)數(shù)據(jù)加密,它的密鑰長(zhǎng)度是56位(每個(gè)第8位作為奇偶校驗(yàn),共64位),加密解密用同一算法。
安全性
- DES現(xiàn)在已經(jīng)不是一種安全的加密算法,主要因?yàn)樗褂玫?6位密鑰過短。。
- 1999年1月,distributed.net與電子前哨基金會(huì)合作,在22小時(shí)15分鐘內(nèi)即公開破解了一個(gè)DES密鑰。
- 為了提升安全性,派生了3DES。但現(xiàn)在它們已經(jīng)被AES取代。
AES
Advanced Encryption Standard 高級(jí)加密標(biāo)準(zhǔn)
簡(jiǎn)介
- 1997年,美國國家標(biāo)準(zhǔn)與技術(shù)研究所NIST開始征集新一代數(shù)據(jù)加密標(biāo)準(zhǔn)來接任即將退役的DES。2000年10月,由比利時(shí)密碼學(xué)家JoanDaemen和VincentRijmen發(fā)明的Rijndael密碼算法當(dāng)選成為新一代數(shù)據(jù)加密標(biāo)準(zhǔn)——AES(Advanced Encryption Standard)。2001年11月26日,NIST正式公布高級(jí)加密標(biāo)準(zhǔn),并于2002年5月26日正式生效。
- 分組密碼算法,分組長(zhǎng)度是128位,密鑰長(zhǎng)度為128,192和256位;
安全性
- 速度比3DES快,安全性至少和3DES一樣。
- 目標(biāo):能抗擊所有的已知攻擊;在廣大范圍平臺(tái)上的快速和代碼簡(jiǎn)潔;
IDEA
International Data Encryption Algorithm 國際數(shù)據(jù)加密算法
簡(jiǎn)介
- 由瑞士聯(lián)邦理工學(xué)院Xuejia Lai和James Massey的在1990年提出的
- 以64位分組為單位,使用128位密鑰,加密數(shù)據(jù)。
安全性
- 比DES更加安全,最近幾年提出的用來替代DES的許多算法中的一種。
- 密碼強(qiáng)度包括分組長(zhǎng)度、密鑰長(zhǎng)度、混淆(Confusion)和擴(kuò)散(Diffusion)。
- 方便硬件和軟件實(shí)現(xiàn):通過由超大規(guī)模集成電路(VLSI)進(jìn)行的硬件實(shí)現(xiàn)的設(shè)計(jì)目標(biāo)是取得高速度,而軟件實(shí)現(xiàn)則有靈活和低價(jià)的優(yōu)點(diǎn)。
非對(duì)稱性秘鑰加密
-
加密、解密密鑰不相同,不能推算。通信模型1-數(shù)據(jù)加密
-
加密、解密密鑰不相同,不能推算。通信模型2-數(shù)字簽名
RSA
簡(jiǎn)介
- 1978年,R.L.Rivest,A.Shamir和L.Adleman實(shí)現(xiàn)了RSA公鑰密碼學(xué),此后成為了公鑰密碼學(xué)中杰出的代表。
- 兩個(gè)相關(guān)密鑰中任何一個(gè)都可以用作加密而讓另一個(gè)用作解密(數(shù)據(jù)加密與數(shù)據(jù)簽名)
- SA算法的安全性依賴于大整數(shù)分解因子的難度。。
安全性
- 1999年底,有人把512位的整數(shù)分解因子,512位的RSA秘鑰被破解。。
- 就目前的計(jì)算機(jī)水平,用1024位的密鑰是安全的,2048位是絕對(duì)安全的。
- 私鑰的長(zhǎng)度和安全性是保證RSA加密算法安全的重要手段。
DSA
- Digital Signature Algorithm 簽名算法
簡(jiǎn)介
- Schnorr和ElGamal簽名算法的變種
- 驗(yàn)證時(shí)計(jì)算 w = s^(-1)mod q
安全性
- DSA是基于整數(shù)有限域離散對(duì)數(shù)難題的,其安全性與RSA相比差不多。
- DSA的一個(gè)重要特點(diǎn)是兩個(gè)素?cái)?shù)公開,這樣,當(dāng)使用別人的p和q時(shí),即使不知道私鑰,你也能確認(rèn)它們是否是隨機(jī)產(chǎn)生的,還是作了手腳。RSA算法卻做不到。
單向散列算法
單向散列算法,又稱hash函數(shù),Hash函數(shù)(也稱雜湊函數(shù)或雜湊算法)
將任意長(zhǎng)度的二進(jìn)制值映射為較短的固定長(zhǎng)度的二進(jìn)制值,這個(gè)較短的固定長(zhǎng)度的二進(jìn)制值稱為哈希值
MD5
Message Digest Algorithm 信息摘要
簡(jiǎn)介
- MD系列單向散列算法是Ron Rivest設(shè)計(jì)的,包括MD2、MD4和MD5。
- 以變長(zhǎng)的信息為輸入,把其壓縮成一個(gè)定長(zhǎng)128位(即32位16進(jìn)制)的散列值輸出。例如:2db3f62a87dfd43714394a0d971060ea
安全性
- MD5的安全性弱點(diǎn)在于其壓縮函數(shù)的沖突已經(jīng)被找到。1995年有論文指出,花費(fèi) 1,000萬美元,設(shè)計(jì)尋找沖突的特制硬件設(shè)備,平均在24天內(nèi)可以找出一個(gè)MD5的沖突。
- 主要破解手段:使用彩虹表記錄明文與密文之間的對(duì)應(yīng)關(guān)系,根據(jù)獲得的密文從彩虹表查找其對(duì)應(yīng)的明文。
SHA
- Secure Hash Algorithm,安全哈希算法
簡(jiǎn)介
是美國國家標(biāo)準(zhǔn)技術(shù)研究所發(fā)布的國家標(biāo)準(zhǔn)FIPS PUB 180,最新的標(biāo)準(zhǔn)已經(jīng)于2008年更新到FIPS PUB 180-3。其中規(guī)定了SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512這幾種。SHA-1,SHA-224和SHA-256適用于長(zhǎng)度不超過264二進(jìn)制位的消息。SHA-384和SHA-512適用于長(zhǎng)度不超過2128二進(jìn)制位的消息。
安全性
- 2005年,密碼學(xué)家就證明SHA-1的破解速度比預(yù)期提高了2000倍。隨著計(jì)算機(jī)發(fā)展,計(jì)算速度的加快,SHA-1算法的安全性逐年降低,現(xiàn)在逐漸由安全強(qiáng)度更高的SHA-2(SHA-256、HSA-512)替代它。
國密
非對(duì)稱密鑰加密 - SM2橢圓曲線算法
- SM2算法就是ECC橢圓曲線密碼機(jī)制,包括:
– 數(shù)字簽名算法(包括數(shù)字簽名生成算法和驗(yàn)證算法)。
– 密鑰交換協(xié)議
– 以及公鑰加密算法(包括加密算法和解密算法)。 - 在簽名、密鑰交換方面不同于ECDSA、ECDH等國際標(biāo)準(zhǔn),而是采取了更為安全的機(jī)制。
- SM2推薦了一條256位的曲線作為標(biāo)準(zhǔn)曲線。
單向散列算法 - SM3雜湊算法
- SM3算法適用于商用密碼應(yīng)用中的:
– 數(shù)字簽名和驗(yàn)證。
– 消息認(rèn)證碼的生成與驗(yàn)證
– 以及隨機(jī)數(shù)的生成。 - 在SM2,SM9標(biāo)準(zhǔn)中使用。
- 此算法對(duì)輸入長(zhǎng)度小于2的64次方的比特消息,經(jīng)過填充和迭代壓縮,生成長(zhǎng)度為256比特的雜湊值。
- 其中使用了異或,模,模加,移位,與,或,非運(yùn)算,由填充,迭代過程,消息擴(kuò)展和壓縮函數(shù)所構(gòu)成。
對(duì)稱密鑰加密 - SM4分組密碼算法
- SM4算法主要用于無線局域網(wǎng)產(chǎn)品。該算法的分組長(zhǎng)度為128比特,密鑰長(zhǎng)度為128比特。
- 加密算法與密鑰擴(kuò)展算法都采用32輪非線性迭代結(jié)構(gòu)。解密算法與加密算法的結(jié)構(gòu)相同,只是輪密鑰的使用順序相反。
- 此算法采用非線性迭代結(jié)構(gòu),每次迭代由一個(gè)輪函數(shù)給出,其中輪函數(shù)由一個(gè)非線性變換和線性變換復(fù)合而成,非線性變換由S盒所給出。
總結(jié)
常用加密工具及資源
- 工具類
– SM.js - 書籍
– 《Java加密與解密的藝術(shù)》
– 《Communication Theory of Secrecy Systems》
總結(jié)
以上是生活随笔為你收集整理的数据加密以及国密基础知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SketchUp-2022版本
- 下一篇: 音视频开发系列(10):基于qt的音频推