解讀「高大上」的加密算法

2019-07-26     NIIC邊緣計算CMO

·什麼是加密算法?它的應用領域和應用地位是什麼?

算法加密是目前信息互聯行業前後端開發必須應用的算法,它的目的就是是信息在傳輸和解讀上的安全性提高,讓設定的群體讀到我傳遞的內容,而不被別人竊取到我的傳遞信息。

算法加密和數字簽名是前後端開發繞不開的技術問題。它要解決的是用戶登入、交易、信息通訊、oauth等應用場景提出的技術問題,給使用者提供更完善的服務。

·當前有哪些加密算法類型?它們有什麼特點?

1、數字簽名

數字簽名,簡單來說就是通過提供可鑑別的數字信息驗證自身身份的一種方式。一套數字簽名通常定義兩種互補的運算,一個用於簽名,另一個用於驗證。分別由發送者持有能夠代表自己身份的私鑰 (私鑰不可泄露),由接受者持有與私鑰對應的公鑰能夠在接受到來自發送者信息時用於驗證其身份。

私鑰與公鑰相對的解密方式,通常也被看作是非對稱加密驗證過程,嚴格說來,它在分類上還不算另作一大類。但是數字簽名的加密過程和普通的公鑰加密存在很大的差異,所以它的歸類也存在人際和領域差異。

---------------------

2、對稱性加密算法

何謂對稱性加密算法呢?

簡單說來就是加密明文,生成編譯密文和逆向的解密過程,即將編譯信息轉換成可讀信息需要相同的密鑰。是應用較早的加密算法,又稱為共享密鑰加密算法。通常稱之為「Session Key」這種加密技術目前被廣泛採用。

常見的對稱加密算法則包含DES、3DES、AES等。

對稱式加密使用便捷,效率高,但也有其缺陷:

密鑰長度不夠,推薦1024Bit或更高。

明文存儲密使用弱隨機數,攻擊者很容易猜測。

3、非對稱加密算法與區塊鏈非對稱加密算法

非對稱加密(也稱為公鑰加密)。Public-key Cryptography)就是加密和解密所使用的不是同一個密鑰,通常有兩個密鑰,稱為「公鑰(publickey)」和「私鑰(privatekey)」,它們兩個必需配對使用,否則不能打開加密文件。這裡的「公鑰」指的是公共密鑰可以公布的,「私鑰」不僅可以通過持有人了解。這就是優點所在,因為如果加密文件是通過網絡傳輸的,對稱加密可能很難告訴它的密鑰,而且任何人都可以竊聽它,不管使用什麼方法。非對稱加密方法有兩個密鑰,並且「公鑰」可以公開,因此接收者只能在解密時使用他的私鑰。這樣就避免了密鑰傳輸的安全問題。

區塊鏈加密算法運用了哈希函數和橢圓曲線公鑰密碼技術在內的大量現代密碼學技術。這些密碼學技術被用於設計基於工作量證明的共識算法並識別用戶。

哈希函數:是一類數學函數,可以在有限合理的時間內,將任意長度的消息壓縮為固定長度的二進位串,其輸出值稱為哈希值,也稱為散列值。

 以哈希函數為基礎構造的哈希算法,在現代密碼學中扮演著重要的角色,常用於實現數據完整性和實體認證,同時也構成多種密碼體制和協議的安全保障。

碰撞是與哈希函數相關的重要概念,體現著哈希函數的安全性,所謂碰撞是指兩個不同的消息在同一個哈希函數作用下,具有相同的哈希值。

哈希函數的安全性是指在現有的計算資源(包括時間、空間、資金等)下,找到一個碰撞是不可行的。

常見的此類算法有RSA、ECC等。

值得一提的是RSA基於素數因式分解數學理論的困難度,安全性非常高。

但是此類算法安全性雖高,但是讀取速度慢,只適用小數據量的加密存取。

4、散列加密算法

是一個密碼散列函數家族,是FIPS所認證的安全散列算法。能計算出一個數字消息所對應到的,長度固定的字符串(又稱消息摘要)的算法。且若輸入的消息不同,它們對應到不同字符串的機率很高。代表算法即是SHA算法系列和MD5等。

由於算法的特殊性,哈希算法多用於驗證加密信息的完整性。

·加密手段

1、同態加密

同態加密是一種特殊的加密方法,它允許對密文進行處理,結果仍然是加密的,即直接處理密文,其結果與明文相同。從代數的角度講,即同態性。

在代數中,同態包括加法、乘法、減法和除法四種。如果同時滿足加法同態和乘同態,則表示代數同態。同時滿足四個同態稱為算術同態。

同態加密最早是1978年,由Ron Rivest、Leonard Adleman和Michael L德圖佐斯提出,但直到2009年,第一個「全同態」算法,才被克雷格(Craig Gentry)證明。

常見的算法中,Paillier算法和Benaloh算法僅滿足加法同態,RSA算法和ElGamal算法只滿足乘法同態的算法。而Gentry算法則是全同態的。

雲時代同態加密的重要性非常顯著。它真的從根本上解決問題,當數據和業務保密委託給第三方,如各種雲計算應用。目前,從安全角度來看,用戶不敢將敏感信息直接放在第三方雲上進行處理。如果您有一種更實用的同態加密技術,那麼您可以放心地使用各種雲服務。

2、函數加密

同態加密保護的是數據本身,而函數加密顧名思義保護的是處理函數本身,即讓第三方看不到處理過程的前提下,對數據進行處理。

函數加密的方法是:任何人可以使用公鑰PK對明文m進行加密得到密文Enc(m),密鑰的持有者對某個函數 F 頒發一個KEY, 任何擁有KEY和密文Enc(m)的一方,都可以計算F(m), 但是除了F(m)外不能獲得關於m的任何信息。

·常見加密算法解析

1、對稱加密算法

2、非對稱加密算法

3、散列算法

文章來源: https://twgreatdaily.com/zh-tw/8__2LGwBmyVoG_1Zvs-e.html