數(shù)據(jù)時代,嵌入式工程師必須知道的八大加密算法

作者:黃漢夫? 學(xué)號:16090120017 外國語學(xué)院(第三篇)

轉(zhuǎn)載自:http://mp.weixin.qq.com/s/peF4wgxLE9crzPXZ11OdeA

【嵌牛導(dǎo)讀】:伴隨著人工智能、物聯(lián)網(wǎng)時代的到來,數(shù)據(jù)應(yīng)用變得頻繁起來,數(shù)據(jù)安全應(yīng)該如何保護?

【嵌牛鼻子】:算法;軟件加密

【嵌牛提問】:軟件加密算法都有哪些,這些算法在哪些方面得到了應(yīng)用?

【嵌牛正文】:

對稱加密算法

對稱加密算法是應(yīng)用較早的加密算法,技術(shù)成熟。在對稱加密算法中,數(shù)據(jù)發(fā)信方將明文(原始數(shù)據(jù))和加密密鑰一起經(jīng)過特殊加密算法處理后,使其變成復(fù)雜的加密密文發(fā)送出去。在對稱加密算法中,使用的密鑰只有一個,發(fā)收信雙方都使用這個密鑰對數(shù)據(jù)進行加密和解密,這就要求解密方事先必須知道加密密鑰。對稱加密算法的特點是算法公開、計算量小、加密速度快、加密效率高。不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。對稱加密算法在分布式網(wǎng)絡(luò)系統(tǒng)上使用較為困難,主要是因為密鑰管理困難,使用成本較高。

DES加密算法

DES加密算法是一種分組密碼,以64位為分組對數(shù)據(jù)加密,它的密鑰長度是56位,加密解密用同一算法。DES加密算法是對密鑰進行保密,而公開算法,包括加密和解密算法。這樣,只有掌握了和發(fā)送方相同密鑰的人才能解讀由DES加密算法加密的密文數(shù)據(jù)。因此,破譯DES加密算法實際上就是搜索密鑰的編碼。對于56位長度的密鑰來說,如果用窮舉法來進行搜索的話,其運算次數(shù)為256。

隨著計算機系統(tǒng)能力的不斷發(fā)展,DES的安全性比它剛出現(xiàn)時會弱得多,然而從非關(guān)鍵性質(zhì)的實際出發(fā),仍可以認為它是足夠的。不過,DES現(xiàn)在僅用于舊系統(tǒng)的鑒定,而更多地選擇新的加密標準。

3DES加密算法

3DES是三重數(shù)據(jù)加密算法塊密碼的通稱。它相當于是對每個數(shù)據(jù)塊應(yīng)用三次DES加密算法。由于計算機運算能力的增強,原版DES密碼的密鑰長度變得容易被暴力破解;3DES即是設(shè)計用來提供一種相對簡單的方法,即通過增加DES的密鑰長度來避免類似的攻擊,而不是設(shè)計一種全新的塊密碼算法。

3DES是DES向AES過渡的加密算法,加密算法,其具體實現(xiàn)如下:設(shè)Ek()和Dk()代表DES算法的加密和解密過程,K代表DES算法使用的密鑰,M代表明文,C代表密文,這樣:

3DES加密過程為:C=Ek3(Dk2(Ek1(M)))

3DES解密過程為:M=Dk1(EK2(Dk3(C)))

AES加密算法

AES加密算法是密碼學(xué)中的高級加密標準,該加密算法采用對稱分組密碼體制,密鑰長度的最少支持為128、192、256,分組長度128位,算法應(yīng)易于各種硬件和軟件實現(xiàn)。這種加密算法是美國聯(lián)邦政府采用的區(qū)塊加密標準,這個標準用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。

AES加密算法被設(shè)計為支持128/192/256位(/32=nb)數(shù)據(jù)塊大?。捶纸M長度);支持128/192/256位(/32=nk)密碼長度,,在10進制里,對應(yīng)34×1038、62×1057、1.1×1077個密鑰。


圖片發(fā)自簡書App


非對稱加密算法

不對稱加密算法使用兩把完全不同但又是完全匹配的一對鑰匙—公鑰和私鑰。在使用不對稱加密算法加密文件時,只有使用匹配的一對公鑰和私鑰,才能完成對明文的加密和解密過程。采用不對稱加密算法,收發(fā)信雙方在通信之前,收信方必須將自己早已隨機生成的公鑰送給發(fā)信方,而自己保留私鑰。由于不對稱算法擁有兩個密鑰,因而特別適用于分布式系統(tǒng)中的數(shù)據(jù)加密。廣泛應(yīng)用的不對稱加密算法有RSA算法和美國國家標準局提出的DSA。以不對稱加密算法為基礎(chǔ)的加密技術(shù)應(yīng)用非常廣泛。

RSA加密算法

RSA加密算法是目前最有影響力的公鑰加密算法,并且被普遍認為是目前最優(yōu)秀的公鑰方案之一。RSA是第一個能同時用于加密和數(shù)宇簽名的算法,它能夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推薦為公鑰數(shù)據(jù)加密標準。RSA加密算法基于一個十分簡單的數(shù)論事實:將兩個大素數(shù)相乘十分容易,但那時想要,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰。


圖片發(fā)自簡書App


DSA加密算法

DSA是基于整數(shù)有限域離散對數(shù)難題的,其安全性與RSA相比差不多。DSA的一個重要特點是兩個素數(shù)公開,這樣,當使用別人的p和q時,即使不知道私鑰,你也能確認它們是否是隨機產(chǎn)生的,還是作了手腳。RSA算法卻做不到。DSA只是一種算法,和RSA不同之處在于它不能用作加密和解密,也不能進行密鑰交換,只用于簽名,它比RSA要快很多.

ECC加密算法

橢圓加密算法(ECC)是一種公鑰加密體制,最初由Koblitz和Miller兩人于1985年提出,其數(shù)學(xué)基礎(chǔ)是利用橢圓曲線上的有理點構(gòu)成Abel加法群上橢圓離散對數(shù)的計算困難性。公鑰密碼體制根據(jù)其所依據(jù)的難題一般分為三類:大整數(shù)分解問題類、離散對數(shù)問題類、橢圓曲線類。有時也把橢圓曲線類歸為離散對數(shù)類。橢圓曲線密碼體制是目前已知的公鑰體制中,對每比特所提供加密強度最高的一種體制。解橢圓曲線上的離散對數(shù)問題的最好算法是Pollard rho方法,其時間復(fù)雜度為,是完全指數(shù)階的。


圖片發(fā)自簡書App


不可逆加密算法

不可逆加密算法的特征是加密過程中不需要使用密鑰,輸入明文后由系統(tǒng)直接經(jīng)過加密算法處理成密文,這種加密后的數(shù)據(jù)是無法被解密的,只有重新輸入明文,并再次經(jīng)過同樣不可逆的加密算法處理,得到相同的加密密文并被系統(tǒng)重新識別后,才能真正解密。在計算機網(wǎng)絡(luò)中應(yīng)用較多不可逆加密算法的有RSA公司發(fā)明的MD5算法和由美國國家標準局建議的不可逆加密標準SHS等。

MD5加密算法

MD5為計算機安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護。對MD5加密算法簡要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經(jīng)過了一系列的處理后,算法的輸出由四個32位分組組成,將這四個32位分組級聯(lián)后將生成—個128位散列值。

MD5被廣泛用于各種軟件的密碼認證和鑰匙識別上。MD5用的是哈希函數(shù),它的典型應(yīng)用是對一段信息產(chǎn)生信息摘要,以防止被篡改。MD5的典型應(yīng)用是對一段Message產(chǎn)生fingerprin指紋,以防止被“篡改”。如果再有—個第三方的認證機構(gòu),用MD5還可以防止文件作者的“抵賴”,這就是所謂的數(shù)字簽名應(yīng)用。MD5還廣泛用于操作系統(tǒng)的登陸認證上,如UNIX、各類BSD系統(tǒng)登錄密碼、數(shù)字簽名等諸多方。

SHA1加密算法

SHA1是和MD5一樣流行的消息摘要算法。SHA加密算法模仿MD4加密算法。SHA1設(shè)計為和數(shù)字簽名算法(DSA)一起使用。

SHA1主要適用于數(shù)字簽名標準里面定義的數(shù)字簽名算法。對于長度小于2“64位的消息,SHA1會產(chǎn)生一個160位的消息摘要。當接收到消息的時候,這個消息摘要可以用來驗證數(shù)據(jù)的完整性。在傳輸?shù)倪^程中,數(shù)據(jù)很可能會發(fā)生變化,那么這時候就會產(chǎn)生不同的消息摘要。SHA1不可以從消息摘要中復(fù)原信息,而兩個不同的消息不會產(chǎn)生同樣的消息摘要。這樣,SHA1就可以驗證數(shù)據(jù)的完整性,所以說SHA1是為了保證文件完整性的技術(shù)。

SHA1加密算法可以采用不超過264位的數(shù)據(jù)輸入,并產(chǎn)生一個160位的摘要。輸入被劃分為512位的塊,并單獨處理。160位緩沖器用來保存散列函數(shù)的中間和最后結(jié)果。緩沖器可以由5個32位寄存器(A、B、C、D和E)來表示。SHA1是一種比MD5的安全性強的算法,理論上,凡是采取“消息摘要”方式的數(shù)字驗證算法都是有“碰撞”的——也就是兩個不同的東西算出的消息摘要相同,互通作弊圖就是如此。但是安全性高的算法要找到指定數(shù)據(jù)的“碰撞”很困難,而利用公式來計算“碰撞”就更困難一目前為止通用安全算法中僅有MD5被破解。

當然除上述加密算法以外,也存在著其他方法,找到了一張圖表,以做補充。


圖片發(fā)自簡書App
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這篇文章主要講述在Mobile BI(移動商務(wù)智能)開發(fā)過程中,在網(wǎng)絡(luò)通信、數(shù)據(jù)存儲、登錄驗證這幾個方面涉及的加密...
    雨_樹閱讀 3,037評論 0 6
  • 本文主要介紹移動端的加解密算法的分類、其優(yōu)缺點特性及應(yīng)用,幫助讀者由淺入深地了解和選擇加解密算法。文中會包含算法的...
    蘋果粉閱讀 11,674評論 5 29
  • 概述 之前一直對加密相關(guān)的算法知之甚少,只知道類似DES、RSA等加密算法能對數(shù)據(jù)傳輸進行加密,且各種加密算法各有...
    Henryzhu閱讀 3,208評論 0 14
  • 隨著對于安全度的不斷要求,對于數(shù)據(jù)加解密與破解之間的斗爭,加解密的方式也在不斷發(fā)生著變化,來看看現(xiàn)在流行的一些加解...
    zhouhao_180閱讀 2,223評論 1 12
  • logt 生成 TAG標簽 private static final String TAG = "MainA...
    evanwo閱讀 2,804評論 0 2

友情鏈接更多精彩內(nèi)容