·什么是加密算法?它的應(yīng)用領(lǐng)域和應(yīng)用地位是什么?
算法加密是目前信息互聯(lián)行業(yè)前后端開發(fā)必須應(yīng)用的算法,它的目的就是是信息在傳輸和解讀上的安全性提高,讓設(shè)定的群體讀到我傳遞的內(nèi)容,而不被別人竊取到我的傳遞信息。
算法加密和數(shù)字簽名是前后端開發(fā)繞不開的技術(shù)問題。它要解決的是用戶登入、交易、信息通訊、oauth等應(yīng)用場(chǎng)景提出的技術(shù)問題,給使用者提供更完善的服務(wù)。
·當(dāng)前有哪些加密算法類型?它們有什么特點(diǎn)?
1、數(shù)字簽名
數(shù)字簽名,簡(jiǎn)單來說就是通過提供可鑒別的數(shù)字信息驗(yàn)證自身身份的一種方式。一套數(shù)字簽名通常定義兩種互補(bǔ)的運(yùn)算,一個(gè)用于簽名,另一個(gè)用于驗(yàn)證。分別由發(fā)送者持有能夠代表自己身份的私鑰 (私鑰不可泄露),由接受者持有與私鑰對(duì)應(yīng)的公鑰能夠在接受到來自發(fā)送者信息時(shí)用于驗(yàn)證其身份。
私鑰與公鑰相對(duì)的解密方式,通常也被看作是非對(duì)稱加密驗(yàn)證過程,嚴(yán)格說來,它在分類上還不算另作一大類。但是數(shù)字簽名的加密過程和普通的公鑰加密存在很大的差異,所以它的歸類也存在人際和領(lǐng)域差異。
---------------------
2、對(duì)稱性加密算法
何謂對(duì)稱性加密算法呢?
簡(jiǎn)單說來就是加密明文,生成編譯密文和逆向的解密過程,即將編譯信息轉(zhuǎn)換成可讀信息需要相同的密鑰。是應(yīng)用較早的加密算法,又稱為共享密鑰加密算法。通常稱之為“Session Key”這種加密技術(shù)目前被廣泛采用。
常見的對(duì)稱加密算法則包含DES、3DES、AES等。
對(duì)稱式加密使用便捷,效率高,但也有其缺陷:
密鑰長(zhǎng)度不夠,推薦1024Bit或更高。
明文存儲(chǔ)密使用弱隨機(jī)數(shù),攻擊者很容易猜測(cè)。
3、非對(duì)稱加密算法與區(qū)塊鏈非對(duì)稱加密算法
非對(duì)稱加密(也稱為公鑰加密)。Public-key Cryptography)就是加密和解密所使用的不是同一個(gè)密鑰,通常有兩個(gè)密鑰,稱為“公鑰(publickey)”和“私鑰(privatekey)”,它們兩個(gè)必需配對(duì)使用,否則不能打開加密文件。這里的“公鑰”指的是公共密鑰可以公布的,“私鑰”不僅可以通過持有人了解。這就是優(yōu)點(diǎn)所在,因?yàn)槿绻用芪募峭ㄟ^網(wǎng)絡(luò)傳輸?shù)模瑢?duì)稱加密可能很難告訴它的密鑰,而且任何人都可以竊聽它,不管使用什么方法。非對(duì)稱加密方法有兩個(gè)密鑰,并且“公鑰”可以公開,因此接收者只能在解密時(shí)使用他的私鑰。這樣就避免了密鑰傳輸?shù)陌踩珕栴}。
區(qū)塊鏈加密算法運(yùn)用了哈希函數(shù)和橢圓曲線公鑰密碼技術(shù)在內(nèi)的大量現(xiàn)代密碼學(xué)技術(shù)。這些密碼學(xué)技術(shù)被用于設(shè)計(jì)基于工作量證明的共識(shí)算法并識(shí)別用戶。
哈希函數(shù):是一類數(shù)學(xué)函數(shù),可以在有限合理的時(shí)間內(nèi),將任意長(zhǎng)度的消息壓縮為固定長(zhǎng)度的二進(jìn)制串,其輸出值稱為哈希值,也稱為散列值。
以哈希函數(shù)為基礎(chǔ)構(gòu)造的哈希算法,在現(xiàn)代密碼學(xué)中扮演著重要的角色,常用于實(shí)現(xiàn)數(shù)據(jù)完整性和實(shí)體認(rèn)證,同時(shí)也構(gòu)成多種密碼體制和協(xié)議的安全保障。
碰撞是與哈希函數(shù)相關(guān)的重要概念,體現(xiàn)著哈希函數(shù)的安全性,所謂碰撞是指兩個(gè)不同的消息在同一個(gè)哈希函數(shù)作用下,具有相同的哈希值。
哈希函數(shù)的安全性是指在現(xiàn)有的計(jì)算資源(包括時(shí)間、空間、資金等)下,找到一個(gè)碰撞是不可行的。
常見的此類算法有RSA、ECC等。
值得一提的是RSA基于素?cái)?shù)因式分解數(shù)學(xué)理論的困難度,安全性非常高。
但是此類算法安全性雖高,但是讀取速度慢,只適用小數(shù)據(jù)量的加密存取。
4、散列加密算法
是一個(gè)密碼散列函數(shù)家族,是FIPS所認(rèn)證的安全散列算法。能計(jì)算出一個(gè)數(shù)字消息所對(duì)應(yīng)到的,長(zhǎng)度固定的字符串(又稱消息摘要)的算法。且若輸入的消息不同,它們對(duì)應(yīng)到不同字符串的機(jī)率很高。代表算法即是SHA算法系列和MD5等。
由于算法的特殊性,哈希算法多用于驗(yàn)證加密信息的完整性。
·加密手段
1、同態(tài)加密
同態(tài)加密是一種特殊的加密方法,它允許對(duì)密文進(jìn)行處理,結(jié)果仍然是加密的,即直接處理密文,其結(jié)果與明文相同。從代數(shù)的角度講,即同態(tài)性。
在代數(shù)中,同態(tài)包括加法、乘法、減法和除法四種。如果同時(shí)滿足加法同態(tài)和乘同態(tài),則表示代數(shù)同態(tài)。同時(shí)滿足四個(gè)同態(tài)稱為算術(shù)同態(tài)。
同態(tài)加密最早是1978年,由Ron Rivest、Leonard Adleman和Michael L德圖佐斯提出,但直到2009年,第一個(gè)“全同態(tài)”算法,才被克雷格(Craig Gentry)證明。
常見的算法中,Paillier算法和Benaloh算法僅滿足加法同態(tài),RSA算法和ElGamal算法只滿足乘法同態(tài)的算法。而Gentry算法則是全同態(tài)的。
云時(shí)代同態(tài)加密的重要性非常顯著。它真的從根本上解決問題,當(dāng)數(shù)據(jù)和業(yè)務(wù)保密委托給第三方,如各種云計(jì)算應(yīng)用。目前,從安全角度來看,用戶不敢將敏感信息直接放在第三方云上進(jìn)行處理。如果您有一種更實(shí)用的同態(tài)加密技術(shù),那么您可以放心地使用各種云服務(wù)。
2、函數(shù)加密
同態(tài)加密保護(hù)的是數(shù)據(jù)本身,而函數(shù)加密顧名思義保護(hù)的是處理函數(shù)本身,即讓第三方看不到處理過程的前提下,對(duì)數(shù)據(jù)進(jìn)行處理。
函數(shù)加密的方法是:任何人可以使用公鑰PK對(duì)明文m進(jìn)行加密得到密文Enc(m),密鑰的持有者對(duì)某個(gè)函數(shù) F 頒發(fā)一個(gè)KEY, 任何擁有KEY和密文Enc(m)的一方,都可以計(jì)算F(m), 但是除了F(m)外不能獲得關(guān)于m的任何信息。
·常見加密算法解析
1、對(duì)稱加密算法

2、非對(duì)稱加密算法

3、散列算法
