EasyPass背后的密碼學(xué)基礎(chǔ)
密碼學(xué)是數(shù)學(xué)和計(jì)算機(jī)科學(xué)的分支嘴办,目前也是少數(shù)幾個(gè)守方的優(yōu)勢遠(yuǎn)遠(yuǎn)大于攻方的領(lǐng)域峰搪,主流加密算法都難以被暴力破解的攻破绍赛。密碼學(xué)是一個(gè)博大精深的學(xué)科缘琅,本文并展開去講奇唤,主要從加密算法方面入手逊抡,闡述EasyPass如何在技術(shù)上實(shí)現(xiàn)安全地保存用戶的帳號(hào)密碼信息南誊。
加密算法分類
加密算法主要分為以下幾種:單向加密算法(Hash算法)了罪、對(duì)稱加密算法飒赃、非對(duì)稱加密算法利花。下面,我們詳細(xì)介紹一下這幾種算法的特點(diǎn)载佳。
單向加密算法
顧名思義炒事,這種加密算法是不可逆的,加密后的數(shù)據(jù)并不能通過解密恢復(fù)蔫慧,常見的加密算法有md5挠乳、sha-1、sha256等等姑躲。單向加密算法雖然不可逆睡扬,但是它有個(gè)特性,就是加密后的數(shù)據(jù)和加密前的數(shù)據(jù)基本是可以一一對(duì)應(yīng)的黍析,即不同的數(shù)據(jù)加密出來的結(jié)果是不同的卖怜。因此,在給出加密結(jié)果的前提下阐枣,驗(yàn)證給定數(shù)據(jù)是否為該加密結(jié)果的原始數(shù)據(jù)马靠。
當(dāng)下熱門的區(qū)塊鏈技術(shù)的共識(shí)機(jī)制POW就利用了單向加密算法的不可以逆性奄抽。原理就是給定加密結(jié)果的限制條件(比如開頭必須是大于8個(gè)0),由于算法不可逆,計(jì)算機(jī)只能通過暴力枚舉的方式去求解虑粥,得出正確的解體現(xiàn)了工作量如孝,限制位數(shù)越多越能體現(xiàn)工作量。比特幣就是靠這種機(jī)制保證了系統(tǒng)的可靠性娩贷,至今仍然堅(jiān)固無比第晰。
對(duì)稱加密算法
加密和解密使用相同密鑰的加密算法。目前流行的加密算法有DES彬祖、3DES和AES茁瘦。這種加密算法的特點(diǎn)是:算法公開、計(jì)算量小储笑、加密速度快甜熔、加密效率高。缺點(diǎn)是:傳輸方和接收方都需要知道密鑰突倍。
最新出來的是DES加密算法腔稀,是在1977年,IBM公司設(shè)計(jì)的方案羽历。在當(dāng)時(shí)的計(jì)算力下焊虏,已足夠安全,但是隨著計(jì)算機(jī)的發(fā)展和摩爾定律秕磷,DES的安全性已經(jīng)受到危險(xiǎn)诵闭,因此3DES應(yīng)運(yùn)而生。3DES的原理是對(duì)每個(gè)數(shù)據(jù)塊進(jìn)行三次DES加密澎嚣,從而使得密鑰長度的增加了3倍疏尿,提高了算法的安全性,但是加密原理并沒有改變易桃,而且加密時(shí)間的耗時(shí)變長了褥琐。AES是DES的升級(jí)版,解決了DES加密的缺陷颈抚,堪稱最流行的對(duì)稱算法踩衩。相比DES,AES具有更高的密碼安全性和更快的加密速度贩汉,按照當(dāng)今計(jì)算機(jī)的算力驱富,需要花費(fèi)上千億年的時(shí)間才能破解。
非對(duì)稱加密算法
加密和解密使用不同密鑰的加密算法匹舞。目前主要的非對(duì)稱加密算法有RSA和ECC(橢圓曲線加密算法)褐鸥。在安全性上,RSA的安全性基于對(duì)極大整數(shù)做因數(shù)分解的難度赐稽,目前除了暴力破解沒有任何辦法叫榕;ECC的安全性基于解決橢圓曲線離散對(duì)數(shù)問題的困難性浑侥。在使用上,密鑰分公鑰和私鑰晰绎,私鑰用戶自己保存寓落,公鑰對(duì)外公開。用私鑰加密后的數(shù)據(jù)只能有公鑰解開荞下,相反用公鑰加密后的數(shù)據(jù)也只能用私鑰解開伶选。
總結(jié)
加密算法 | 是否可逆 | 加密速度 | 密鑰安全 |
---|---|---|---|
單向Hash算法 | 否 | 快 | 無密鑰 |
對(duì)稱加密算法 | 是 | 快 | 低 |
非對(duì)稱加密算法 | 是 | 慢 | 高 |
EasyPass如何利用密碼學(xué)保證用戶帳號(hào)密碼的絕對(duì)安全
EasyPass采用AES-256加密算法,具體的處理流程圖如下:
如上圖所示尖昏,服務(wù)器只存儲(chǔ)了加密后的數(shù)據(jù)仰税,而且服務(wù)器并不保存主密碼,數(shù)據(jù)的加解密算法采用了AES-256算法抽诉,從而在技術(shù)上保證了用戶數(shù)據(jù)的絕對(duì)安全陨簇。因?yàn)橹髅艽a只有用戶自己知道,所以即使服務(wù)器上的數(shù)據(jù)完全泄露迹淌,黑客在不知道用戶主密碼的情況下河绽,根本無法解密用戶的數(shù)據(jù)。
EasyPass的Android端采用的AES加密算法庫是javax.crypto.Cipher唉窃,IOS端采用的AES加密算法庫是CryptoSwift葵姥。
廣告時(shí)間(哈哈,允許我推廣一下我的密碼管理工具)
簡單專業(yè)的密碼管理EasyPass
官網(wǎng)地址:https://www.easypass.tech