1. 程式人生 > >大資料時代,嵌入式工程師必須知道的八大加密演算法

大資料時代,嵌入式工程師必須知道的八大加密演算法

隨著人工智慧、物聯網時代的到來,資料應用變得頻繁起來,資料安全應該如何保護?軟體加密演算法都有哪些,這些演算法在哪些方面得到了應用?慢慢讀下去,你會發現圍繞在我們身邊的“小密碼”。 

對稱加密演算法

對稱加密演算法是應用較早的加密演算法,技術成熟。在對稱加密演算法中,資料發信方將明文(原始資料)和加密金鑰一起經過特殊加密演算法處理後,使其變成複雜的加密密文傳送出去。在對稱加密演算法中,使用的金鑰只有一個,發收信雙方都使用這個金鑰對資料進行加密和解密,這就要求解密方事先必須知道加密金鑰。對稱加密演算法的特點是演算法公開、計算量小、加密速度快、加密效率高。不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。對稱加密演算法在分散式網路系統上使用較為困難,主要是因為金鑰管理困難,使用成本較高。

在這裡我還是要推薦下我自己建的大資料學習交流qq裙: 957205962, 裙 裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料開發相關的),包括我自己整理的一份2018最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴

DES加密演算法

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

 

隨著計算機系統能力的不斷髮展,DES的安全性比它剛出現時會弱得多,然而從非關鍵性質的實際出發,仍可以認為它是足夠的。不過,DES現在僅用於舊系統的鑑定,而更多地選擇新的加密標準。

 

3DES加密演算法

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

 

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

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

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

 

AES加密演算法

AES加密演算法是密碼學中的高階加密標準,該加密演算法採用對稱分組密碼體制,金鑰長度的最少支援為128、192、256,分組長度128位,演算法應易於各種硬體和軟體實現。這種加密演算法是美國聯邦政府採用的區塊加密標準,這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。

 

AES加密演算法被設計為支援128/192/256位(/32=nb)資料塊大小(即分組長度);支援128/192/256位(/32=nk)密碼長度,,在10進位制裡,對應34×1038、62×1057、1.1×1077個金鑰。

 

非對稱加密演算法

不對稱加密演算法使用兩把完全不同但又是完全匹配的一對鑰匙—公鑰和私鑰。在使用不對稱加密演算法加密檔案時,只有使用匹配的一對公鑰和私鑰,才能完成對明文的加密和解密過程。採用不對稱加密演算法,收發信雙方在通訊之前,收信方必須將自己早已隨機生成的公鑰送給發信方,而自己保留私鑰。由於不對稱演算法擁有兩個金鑰,因而特別適用於分散式系統中的資料加密。廣泛應用的不對稱加密演算法有RSA演算法和美國國家標準局提出的DSA。以不對稱加密演算法為基礎的加密技術應用非常廣泛。

 

RSA加密演算法

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

在這裡我還是要推薦下我自己建的大資料學習交流qq裙: 957205962, 裙 裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料開發相關的),包括我自己整理的一份2018最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴

DSA加密演算法

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

 

ECC加密演算法

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

不可逆加密演算法

不可逆加密演算法的特徵是加密過程中不需要使用金鑰,輸入明文後由系統直接經過加密演算法處理成密文,這種加密後的資料是無法被解密的,只有重新輸入明文,並再次經過同樣不可逆的加密演算法處理,得到相同的加密密文並被系統重新識別後,才能真正解密。在計算機網路中應用較多不可逆加密演算法的有RSA公司發明的MD5演算法和由美國國家標準局建議的不可逆加密標準SHS等。

 

MD5加密演算法

MD5為電腦保安領域廣泛使用的一種雜湊函式,用以提供訊息的完整性保護。對MD5加密演算法簡要的敘述可以為:MD5以512位分組來處理輸入的資訊,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成—個128位雜湊值。

 

MD5被廣泛用於各種軟體的密碼認證和鑰匙識別上。MD5用的是雜湊函式,它的典型應用是對一段資訊產生資訊摘要,以防止被篡改。MD5的典型應用是對一段Message產生fingerprin指紋,以防止被“篡改”。如果再有—個第三方的認證機構,用MD5還可以防止檔案作者的“抵賴”,這就是所謂的數字簽名應用。MD5還廣泛用於作業系統的登陸認證上,如UNIX、各類BSD系統登入密碼、數字簽名等諸多方。

 

SHA1加密演算法

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

 

SHA1主要適用於數字簽名標準裡面定義的數字簽名演算法。對於長度小於2“64位的訊息,SHA1會產生一個160位的訊息摘要。當接收到訊息的時候,這個訊息摘要可以用來驗證資料的完整性。在傳輸的過程中,資料很可能會發生變化,那麼這時候就會產生不同的訊息摘要。SHA1不可以從訊息摘要中復原資訊,而兩個不同的訊息不會產生同樣的訊息摘要。這樣,SHA1就可以驗證資料的完整性,所以說SHA1是為了保證檔案完整性的技術。

 

SHA1加密演算法可以採用不超過264位的資料輸入,併產生一個160位的摘要。輸入被劃分為512位的塊,並單獨處理。160位緩衝器用來儲存雜湊函式的中間和最後結果。緩衝器可以由5個32位暫存器(A、B、C、D和E)來表示。SHA1是一種比MD5的安全性強的演算法,理論上,凡是採取“訊息摘要”方式的數字驗證演算法都是有“碰撞”的——也就是兩個不同的東西算出的訊息摘要相同,互通作弊圖就是如此。但是安全性高的演算法要找到指定資料的“碰撞”很困難,而利用公式來計算“碰撞”就更困難一目前為止通用安全演算法中僅有MD5被破解。

 

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